Tools are typed, executable capabilities exposed to a specific Flue agent.
They are implemented with defineTool(...), validate model-supplied arguments,
perform one bounded operation, and return structured results.
Tools are not protocols, skills, workers, or registries:
| Layer | Registration | Examples |
|---|---|---|
| Product built-ins | Explicit imports and the owning agent’s tools array |
Protocol lookup, memory, schedules, capability administration, image generation |
| Worker-local tools | Explicitly attached by a worker profile | Coding repository, shell, verification, approval, and GitHub tools |
| Runtime tools | Enabled SQLite capability records loaded with dynamic import() |
User- or agent-added defineTool(...) modules |
| MCP tools | Returned by built-in or runtime MCP connections and attached to an owner | Astro Docs MCP and enabled user MCP servers |
Flue does not discover arbitrary product tools from the filesystem. Built-in tools are imported and attached explicitly. Runtime tools become discoverable through the SIM-ONE capability loader during orchestrator initialization.
The orchestrator owns tools that support coordination or bounded product capabilities, including:
load_protocols;The orchestrator does not own web search or Coding Worker repository tools.
The researcher owns web_research and its lower-level retrieval machinery.
General web, current, external, and source-backed research stays inside this
worker boundary.
The Coding Worker lead owns repository, file, shell, test, Git, GitHub, approval, schedule, memory-task, and code-intelligence tools. Internal coding subagents receive only the tools assigned by the Coding Worker lead and are not exposed to the orchestrator.
Built-in product tools follow this path:
defineTool(...)
-> export from the owning tool module
-> import into the owning agent or worker
-> attach to that profile's tools array
-> include the name in the generated built-in capability manifest
The generated manifest reserves names for collision checking. It does not attach tools to an agent.
Runtime-added tools follow this path:
sim-one CLI or agent capability tool
-> validate id and cross-kind collisions
-> write disabled or enabled SQLite record
-> materialize source under <configured-capability-directory>/tools/<id>/
-> gateway process restart
-> read enabled capability records
-> dynamic import of index.mjs
-> validate exported defineTool(...) definitions
-> merge loaded tools into the orchestrator tools array
src/engine/capabilities/tool-loader.ts accepts a default export, an array
export, or named exports that resolve to Flue tool definitions. A failed import
or invalid export is reported and omitted rather than granting a partially
loaded capability.
The configured capability directory defaults to ~/.gorombo/capabilities/.
GOROMBO_CAPABILITIES_DIR overrides it; GOROMBO_CAPABILITY_DIR is the
fallback override.
Agent-added runtime tools are installed disabled. An explicit user action can
enable them through the product CLI or control surface. CLI additions may use
--enable because the authenticated user is the principal.
Enablement means the tool may be loaded and attached. It does not grant unrestricted authority. A loaded tool remains constrained by:
The release contract adds active protocol scoring and orchestrator/critic result validation across every tool path. Complete enforcement remains a release gate.
Tools must derive sensitive scope from trusted runtime state rather than accepting model-selected authority fields.
src/engine/tools/runpod-image/
generate-image-tool.ts
record-image-artifact-tool.ts
list-image-artifacts-tool.ts
catalog.ts
runpod-client.ts
artifact-store.ts
models.yaml
These tools are attached directly to the orchestrator because image generation is a bounded product capability. Artifact recording derives trusted event scope and persists metadata separately from the generated binary.
| Responsibility | Source |
|---|---|
| Orchestrator tool attachment | src/agents/orchestrator.ts |
| Product built-in tools | src/engine/tools/ |
| Runtime tool loader | src/engine/capabilities/tool-loader.ts |
| Capability records | src/engine/capabilities/capability-store.ts |
| Materialization | src/engine/capabilities/skill-materializer.ts |
| Built-in name manifest | scripts/generate-builtin-registry.mjs |
| Research tools | src/engine/workers/researcher/ |
| Coding Worker tools | src/engine/workers/coding-worker/tools/ |