Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/hive-agent/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 8b01dbeef1 permissions: give the built-in tool list one home, next to ToolGroup
The `--tools` list a harness session gets is not a constant: the base set
plus whatever the agent's `HIVE_TOOL_GROUPS` add (today, `web_tools` →
`WebFetch`/`WebSearch`). That resolution lived in `hive-agent`'s
`mcp_config`, which is fine while the harness is the only thing that
spawns a `claude` — and it is not: `hive-subagent-mcp` spawns one too.

`hive-agent` is binary-only (no `src/lib.rs`, no lib target), so nothing
can depend on it to reach `builtin_tools_arg`. The alternative to a
shared home is a second list in the subagent daemon, which diverges on
the first tool anyone adds to either — and diverging upward is a
subagent holding a built-in its parent does not have.

So move the base list, the `HIVE_TOOL_GROUPS` parse and the resolution
into `hive_sh4re::permissions`, beside `ToolGroup` — whose
`builtin_tools()` was already half of the answer. `hive-agent`
re-exports them, so `mcp_config::builtin_tools_arg()` still reads the
same at the call site, and `allowed_tools_arg` now derives its built-in
half from the same function rather than repeating the merge loop.

Behaviour is unchanged. The parse is `strum::EnumString` rather than a
`serde_json::from_value` round-trip through a `Value::String`: same
`snake_case` names (a test pins the two derives against each other),
without `hive-sh4re` needing `serde_json` outside its dev-dependencies.
It is now a pure function of its input, so the fallbacks are testable
without mutating the environment — which under edition 2024 is `unsafe`
and racy across a test binary's threads.

Refs #4416
2026-09-15 17:40:27 +02:00
..
web_ui term_msg: carry the source event's time on every row 2026-09-13 14:23:11 +02:00
claude_md_watch.rs hive-agent: warn + emit an OTEL gauge on a grown CLAUDE.md 2026-08-26 18:34:36 +02:00
db_migrate.rs todos: reopen an acked keyed row when the caller says so 2026-08-13 12:55:20 +02:00
disk_watch.rs todos: reopen an acked keyed row when the caller says so 2026-08-13 12:55:20 +02:00
events.rs hive-agent: trim narrative comment bloat in doc comments (#3901) 2026-09-02 01:52:53 +02:00
harness_state.rs docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
identity.rs docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
login.rs docs: stop writing repo-doc pointers as relative links rustdoc cannot resolve 2026-09-02 08:59:48 +02:00
login_session.rs refactor(#2464): rename hive-ag3nt crate to hive-agent, collapse lib into main 2026-07-15 16:09:39 +02:00
main.rs swarm: publish each agent's turn-state header on its own subject 2026-09-14 15:12:23 +02:00
mcp_config.rs permissions: give the built-in tool list one home, next to ToolGroup 2026-09-15 17:40:27 +02:00
otel_turn_metrics.rs docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
paths.rs docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
plugins.rs refactor(#2464): rename hive-ag3nt crate to hive-agent, collapse lib into main 2026-07-15 16:09:39 +02:00
prompt.rs hive-c0re/hive-sh4re: remove the ask/answer wire protocol + core routing 2026-08-30 01:18:17 +02:00
reminder_timer.rs docs/hive-c0re: fix ask/answer removal doc gaps argus caught on #3741 2026-08-30 03:02:31 +02:00
reminders.rs hive-sh4re: split approval-queue schema into its own topic module 2026-08-10 23:05:18 +02:00
serve_common.rs hive-agent: remove dead bash-task- wake_from special-case 2026-08-14 12:09:02 +02:00
state_entry_watch.rs fix hint text per argus review: group into subdirs, not split into more top-level files 2026-08-18 22:07:05 +02:00
stats.rs hive-sh4re: split approval-queue schema into its own topic module 2026-08-10 23:05:18 +02:00
stream_enrich.rs refactor(hive-c0re): drop the request_init_config tool and InitConfig approval 2026-09-14 19:03:44 +02:00
swarm_agent_state.rs fix: resolve unresolved rustdoc link and quote-punctuation lint 2026-09-14 15:37:09 +02:00
swarm_queue.rs hive-agent: publish the agent terminal to the swarm queue 2026-09-13 11:59:55 +02:00
swarm_term.rs term_msg: carry the source event's time on every row 2026-09-13 14:23:11 +02:00
term_msg.rs term_msg: carry the source event's time on every row 2026-09-13 14:23:11 +02:00
todo_server.rs hive-sh4re: one saturating_age for every loose-end producer 2026-09-02 14:20:25 +02:00
todos.rs todos: reopen an acked keyed row when the caller says so 2026-08-13 12:55:20 +02:00
turn.rs hive-agent: guarantee a wake after a self-requested /compact 2026-08-13 23:17:10 +02:00
turn_stats.rs swap hive-claude to the crates.io registry dependency (#2931) 2026-08-02 14:19:26 +02:00
vacuum.rs docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00