Tools and action classes¶
config effective is the authority for all active and hidden candidates.
tools list is the authority for the current model-visible catalog, JSON Schemas,
source, family, action class, effect identity, decision, prerequisites, mutation labels,
and output bounds.
| Family | Tools | Boundary |
|---|---|---|
| Utility | echo, user.ask, tool.search, trace.show |
Pure; user.ask requires an interactive interface |
| Filesystem | filesystem.list, filesystem.read, filesystem.search, filesystem.write, filesystem.replace |
Declared canonical roots under isolation; exact host paths under ambient authority; reads quarantined and writes atomic |
| Git and process | git.status, git.diff, git.show, shell.run |
Normally an exact executable, workspace cwd, isolated environment, and enforced resource limits; acknowledged danger_full_access uses ambient host resources with supervised timeout/output and best-effort Unix detached-descendant cleanup/accounting |
| Patch | patch.preview, patch.apply, patch.reverse |
Preview read; apply/reverse write; declared roots or ambient host paths |
| Trace export | trace.export |
Bounded metadata-only write; workspace-confined under isolation and host-wide under ambient authority |
| Repository context | repo.map, repo.symbol_search, repo.references, repo.file_summary |
Workspace-confined under isolation; absolute and traversing host paths accepted under ambient authority |
| Tasks | task.create, task.update, task.list |
Canonical session work |
| Decisions | decision.create, decision.update, decision.list, decision.archive, decision.supersede |
Binding canonical decisions |
| Plans | plan.create, plan.update, plan.show, plan.approve_request |
Session-scoped, revision-aware lifecycle; the update target is bound by the runtime |
| Goals | goal.show, goal.update |
Active goal lineage only |
| Subagents | agent.delegate, agent.result, agent.list |
Durable child jobs; recursive delegation denied |
| Memories | memory.create, memory.update, memory.list, memory.search, memory.archive, memory.supersede |
Canonical lifecycle; retrieval post-gated |
| Context | context.show, context.compact, context.snapshots, context.restore |
Encrypted immutable snapshots |
| Skills | skill.scaffold, skill.inspect, skill.read, skill.write, skill.validate, skill.install, skill.resource.list, skill.resource.read |
Data-only authoring/resources |
| Search and fetch | web.search, web.fetch, docs.fetch, network.http |
Search needs an explicit route; generic fetch needs host activation plus declared or ambient HTTP(S) authority; quarantined output |
| MCP | mcp.servers, mcp.tools, mcp.call |
Configured stdio servers and exact tool allowlists |
| Integrations | Connected operation names | Configured, trusted, and selected only |
Every tool schema denies unknown fields. Tool availability does not imply permission. The access profile and exact overrides decide visibility and the built-in decision; policy, approval, trust, the Safety Kernel, permits, sandbox obligations, quarantine, and post-effect release remain independent.
repo.file_summary applies both the requested line ceiling and a 64 KiB serialized
result ceiling. Its preview and structural-hint collections are byte-bounded before
they enter durable tool history; preview_truncated is true when either the line or
encoded-byte ceiling was reached. This keeps generated or minified long lines from
consuming an entire model input budget.
Plan Mode catalog and lifecycle actions¶
Plan Mode narrows the already-resolved tool catalog; it never widens access. A Create
turn exposes plan.create, while an Update turn exposes plan.update. The latter schema
contains only replacement content and steps: the runtime binds the exact plan ID and
expected revision, so the model cannot redirect the write.
The remaining Plan Mode allowlist is:
echo,tool.search, and interactiveuser.ask;filesystem.list,filesystem.read,filesystem.search,git.status,git.diff,git.show,repo.map,repo.symbol_search,repo.references,repo.file_summary, andpatch.preview;context.show,context.snapshots,skill.resource.read,task.create,task.list,decision.list,plan.show,memory.list,memory.search,agent.result, andagent.list.
Normal access resolution and prerequisites can remove entries from that list. Plan Mode never offers filesystem writes, patch application, command/process execution, approval, networking, delegation, plan execution, or plan discard.
plan.discard is an operator-only Local State action rather than a model tool.
plan.approve_request remains Administration. Direct execution and approved-plan Goal
handoff both use the plan.execute Execution action. Update, discard, approval, and
execution all cross the ordinary effect gateway; terminal commands do not bypass access,
policy, approval, permits, or audit.
shell.run¶
shell.run accepts exactly one invocation form:
command is the recommended form for a bounded non-interactive script. Colossus
selects the trusted shell supplied by workspace-development or one explicit shell
grant and invokes it without startup profiles. argv preserves exact execution and
requires its first entry to resolve to one configured or derived executable. Shell
wrappers used in argv cannot request login, interactive, or startup-profile behavior.
Under a configured isolating boundary, cwd remains inside the canonical workspace.
Colossus supplies an isolated HOME/temp directory and sanitized absolute PATH;
model arguments cannot override those names or proxy variables. Under acknowledged
danger full access, the working directory may be any existing host directory,
executables resolve through ambient PATH, and the child receives ambient environment
and networking. Output and a maximum of 64 observed proxy origins are quarantined
before release.
Under development, execution remains approval-required. workspace-development
supplies resources but never changes that action decision.
Tool-to-action exceptions¶
Most effectful built-ins use the same exact tool and action name. These are the exceptions operators need when writing action overrides:
| Tool | Effect action |
|---|---|
echo, user.ask, tool.search, trace.show, mcp.servers |
None; pure tool |
filesystem.replace |
filesystem.write |
agent.delegate |
subagent.create |
agent.result |
subagent.read |
agent.list |
subagent.list |
web.fetch, docs.fetch, network.http |
network.http |
mcp.tools |
mcp.tools |
mcp.call |
mcp.call |
Connected integration operations use their generated tool name as the action name.
Verified pack tools use pack.tool.PACK.TOOL; pack MCP operations use
pack.mcp.PACK.SERVER.tools and pack.mcp.PACK.SERVER.call. Inspect the exact active
names with config effective.
Plan lifecycle operations that have no model-callable tool keep their action identity:
operator discard is plan.discard, and either execution strategy is plan.execute.
Exact built-in action catalog¶
The following names are the complete first-party catalog accepted by exact access overrides. Dynamic integration and verified-pack actions are added only from their active trusted declarations.
| Class | Exact action names |
|---|---|
| Provider | provider.echo, provider.openai.responses, provider.openai.codex, provider.openai.chat, provider.models, provider.call |
| Read | filesystem.read, filesystem.list, filesystem.metadata, filesystem.search, git.status, git.diff, git.show, repo.map, repo.symbol_search, repo.references, repo.file_summary, context.show, context.snapshots, patch.preview, task.list, decision.list, plan.show, goal.show, subagent.read, subagent.list, memory.read, memory.list, memory.search, memory.index.status, skill.inspect, skill.read, skill.validate, skill.resource.list, skill.resource.read, pack.verify, bundle.verify, bundle.key.inspect, collection.verify, mcp.tools |
| Local state | context.compact, context.restore, presentation.preferences.update, presentation.history.append, task.create, task.update, decision.create, decision.update, decision.archive, decision.supersede, plan.create, plan.update, plan.discard, goal.create, goal.update, goal.iteration.record, subagent.create, subagent.start, subagent.complete, subagent.fail, subagent.cancel, subagent.interrupt, subagent.requeue, memory.create, memory.update, memory.archive, memory.supersede, memory.index.sync, memory.index.rebuild, workflow.webhook.ingest, workflow.subscription.dispatch |
| Workspace mutation | filesystem.write, patch.apply, patch.reverse, trace.export, skill.scaffold, skill.write, skill.install, audit.export.write |
| Execution | process.spawn, shell.run, workflow.execute, workflow.start, agent.run, plan.execute |
| External network | network.http, web.search, embedding.openai.create, memory.index.chroma.search, memory.index.chroma.status, memory.index.chroma.upsert, memory.index.chroma.remove, memory.index.chroma.reset, research.run, integration.openapi.import, integration.connect, integration.disconnect, integration.invoke, mcp.invoke, mcp.call |
| Administration | plan.approve_request, audit.export.worm.write, pack.install, pack.enable, pack.disable, pack.uninstall, pack.trust.add, bundle.build, bundle.install, collection.build, collection.install, registry.pull, registry.push |
Effect action classes¶
Exact action names are printed by tools list and config effective. They fall into
these operational classes:
| Class | Examples | Typical development posture |
|---|---|---|
| Pure | Echo and catalog search | Allowed, no adapter effect |
| Provider | Model and provider calls | Allowed when configured |
| Read | Filesystem, Git, repository, memory, context | Allowed with exact obligations; output may be post-gated |
| Colossus state mutation | Tasks, decisions, plans, goals, sessions | Allowed with canonical ownership checks |
| Workspace mutation | File write, patch apply | Approval-required |
| Execution | Process and pack tool | Approval-required |
| External network | HTTP, search, integration, registry | Approval-required |
| Installation and trust | Skill/pack/bundle/collection lifecycle | Approval-required |
| Administration and recovery | Export reset, recovery transitions | Approval-required |
An action decision never supplies a resource grant. allow_all still requires a trusted
registered action, valid explicit, profile-derived, or ambient obligations, and
permit-bound execution. Configured * remains public HTTP(S)-only. Ambient authority
is a separate acknowledged mode and permits exact private, loopback, link-local, and
metadata HTTP(S) origins.
Call and recovery contract¶
- Tool arguments are validated before execution.
- Malformed provider arguments receive at most two bounded correction turns and never reach an adapter.
- A permit is one-use, short-lived, actor/request/decision-bound, and opaque outside the policy boundary.
- Each effect records request, decision, approval, start, and terminal evidence.
- A missing terminal event after start becomes
outcome_unknown. - Unknown external effects are not silently retried.
- Credentials remain references and raw values are hard-redacted.