@rosthq/cli 0.7.146 → 0.7.148

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -210,6 +210,6 @@ rost implementation access install-mcp --client codex
210
210
  rost implementation access install-mcp --client cursor
211
211
  ```
212
212
 
213
- The implementation credential is intentionally narrow and fail-closed. It can run vetted reads (for example `onboarding.status`, `graph.get`, `charter.get/list`, `compass.get_current`, `goal.list`, `agent.list_fleet`, `system.health`), stage human-gated proposals (`onboarding.setup`, `onboarding.activate`, `seat.create_complete`, `agent.create_custom`, `agent.create_from_template`, `compass.set`, `compass.approve_version`, `onboarding.finish`), execute only the receipt-bound sandbox exception `onboarding.rehearse`, and close its own run. `seat.create_complete` stages one atomic complete-Seat proposal for an owner to approve; it never makes an optional agent live. `onboarding.activate` stages the one post-rehearsal owner decision and cannot approve itself. The rehearsal exception grants no general agent execution authority and cannot reach unrelated agents. Everything else, including other confirmation-free durable mutations and `confirmation.approve`, is denied. The policy module is `packages/commands/src/implementation-bootstrap-policy.ts` and is enforced by both the runtime guard and a CI drift test.
213
+ The implementation credential is intentionally narrow and fail-closed. It can run vetted reads (for example `onboarding.status`, `graph.get`, `charter.get/list`, `compass.get_current`, `goal.list`, `agent.list_fleet`, `system.health`), stage human-gated proposals (`onboarding.setup`, `onboarding.activate`, `seat.create_complete`, `agent.create_custom`, `agent.create_from_template`, `compass.set`, `compass.approve_version`, `onboarding.finish`, `agent.run_now`), execute only the receipt-bound sandbox exception `onboarding.rehearse`, and close its own run. `seat.create_complete` stages one atomic complete-Seat proposal for an owner to approve; it never makes an optional agent live. `onboarding.activate` stages the one post-rehearsal owner decision and cannot approve itself. `agent.run_now` stages one manual production run at a time, bounded to agents this same implementation run's own setup receipt created and re-checked when the approved run dispatches; it arms no schedule. The rehearsal exception grants no general agent execution authority and cannot reach unrelated agents. Everything else, including other confirmation-free durable mutations and `confirmation.approve`, is denied. The policy module is `packages/commands/src/implementation-bootstrap-policy.ts` and is enforced by both the runtime guard and a CI drift test.
214
214
 
215
215
  With **no** login session and an implementation credential present, the CLI runs every one of those classified commands over the credential — on `rost command <id> --json '<body>'` and on the ergonomic verbs that resolve to a classified command (`rost graph show`, `rost seat list`, `rost agent list-fleet`, `rost agent templates`, `rost goal list`, `rost system health`, `rost skills list`, `rost skills catalog`, `rost charter list`, `rost charter get`, `rost compass get-current`). A denied command is refused locally, before the credential reaches the network, and prints the same `Not logged in` message a CLI with no credential prints — sending it would put the bearer on the wire for a surface never entitled to see it. A usable login session takes precedence for these general verbs; the credential makes them reachable without a personal login, it does not replace a session you already have. Note that a Markdown-rendering `show` verb resolves to a `*.show_markdown` command the policy denies (so `rost compass show` stays session-only; use `rost compass get-current`), and `rost agent fleet-digest` is likewise denied (use `rost agent list-fleet`).
package/dist/index.js CHANGED
@@ -13293,7 +13293,7 @@ var init_command_discovery = __esm({
13293
13293
  { "id": "agent.resume", "title": "Resume agent", "description": "Resume a paused agent back to live. Blocks if the steward chain no longer resolves to a human.", "required_scope": "tenant", "confirmation": "human_required", "trusted_execution": { "mode": "always_human", "risk_flags": [], "rationale": "Trusted mode cannot bypass this command's human confirmation or high-risk boundary." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "reason": { "type": "string", "minLength": 1, "maxLength": 500 } }, "required": ["seat_id"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "agent_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "status": { "type": "string", "const": "live" } }, "required": ["seat_id", "agent_id", "status"], "additionalProperties": false }, "help": "Resume a paused agent back to live; the no-orphan guard blocks a resume whose steward chain no longer resolves to a human.", "guide_slugs": ["agent-staffing-playbook", "how-agents-work"], "stages": ["operating_rhythm"], "related_command_ids": ["agent_setup.get", "agent_setup.relane", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.decommission", "agent.get_run", "agent.go_live", "agent.list_runs", "agent.list_tool_calls", "agent.pause", "agent.run_dry_run", "agent.run_now", "agent.status", "agent.update_schedule", "confirmation.approve", "mcp_token.create", "staffing.assign_agent_dry_run", "staffing.assign_user"] },
13294
13294
  { "id": "agent.run_dry_run", "title": "Run agent dry run", "description": "Run the sandbox dry run for a draft agent. Durable and idempotent per Charter version; a passed result is reused, never re-run.", "required_scope": "seat", "confirmation": "none", "trusted_execution": { "mode": "not_applicable", "risk_flags": [], "rationale": "This command is not part of the Trusted positive allowlist." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "charter_version_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" } }, "required": ["seat_id", "charter_version_id"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "agent_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "charter_version_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "status": { "type": "string", "enum": ["passed", "failed"] }, "summary": { "type": "string", "minLength": 1 }, "reused": { "type": "boolean" }, "transcript": { "type": "object", "properties": { "status": { "type": "string", "enum": ["passed", "failed"] }, "escalated": { "type": "boolean" }, "must_escalate_clause": { "type": "string", "minLength": 1 }, "summary": { "type": "string", "minLength": 1 }, "steps": { "minItems": 1, "type": "array", "items": { "type": "object", "properties": { "kind": { "type": "string", "enum": ["task", "message", "tool_call", "escalation", "result"] }, "text": { "type": "string", "minLength": 1 }, "tool_name": { "type": "string", "minLength": 1 }, "guard": { "type": "string", "enum": ["allowed", "denied_manifest", "escalated"] } }, "required": ["kind", "text"], "additionalProperties": false } }, "tool_preview": { "type": "array", "items": { "type": "object", "properties": { "tool_name": { "type": "string", "minLength": 1 }, "intended_action": { "type": "string", "minLength": 1 }, "status": { "type": "string", "enum": ["intended", "blocked", "escalated"] }, "guard": { "type": "string", "enum": ["allowed", "denied_manifest", "escalated"] } }, "required": ["tool_name", "intended_action", "status", "guard"], "additionalProperties": false } }, "lane": { "type": "string", "enum": ["cloud", "mcp_session", "runner"] }, "granted_tools": { "type": "array", "items": { "type": "object", "properties": { "tool_name": { "type": "string", "minLength": 1 }, "executability": { "type": "string", "enum": ["executable", "unimplemented_in_lane", "held_for_steward"] } }, "required": ["tool_name", "executability"], "additionalProperties": false } }, "run_id": { "type": "string", "minLength": 1 } }, "required": ["status", "escalated", "must_escalate_clause", "summary", "steps"], "additionalProperties": false } }, "required": ["seat_id", "agent_id", "charter_version_id", "status", "summary", "reused"], "additionalProperties": false }, "example": { "seat_id": "0190aaaa-aaaa-7aaa-8aaa-aaaaaaaaaaaa", "charter_version_id": "0190cccc-cccc-7ccc-8ccc-cccccccccccc" }, "help": "Run the sandbox dry run for a draft agent after the manifest is signed; the result is durable and idempotent per Charter version, and a passed run is reused.", "guide_slugs": ["agent-staffing-playbook", "how-agents-work"], "stages": ["staffing"], "related_command_ids": ["agent_setup.get", "agent_setup.relane", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.decommission", "agent.fleet_digest", "agent.get_run", "agent.go_live", "agent.list_fleet", "agent.list_runs", "agent.list_tool_calls", "agent.pause", "agent.resume", "agent.run_now", "agent.show_markdown", "agent.status", "agent.update_schedule", "aicos.brain_settings.get", "aicos.brain_settings.update", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "charter.set", "charter.sign_manifest", "charter.update_draft", "command.describe", "compass.answer_gap", "compass.approve_version", "compass.draft", "compass.get_current", "compass.list_gaps", "compass.reject_draft", "compass.set", "compass.update_draft", "confirmation.activation_set.list", "confirmation.approve", "confirmation.reject", "credential.ingress", "deliverable.accept", "deliverable.attach", "deliverable.create", "deliverable.get", "deliverable.list", "deliverable.reject", "error_log.list", "error_log.resolve", "error_log.supersede", "escalation.get", "escalation.list", "escalation.reject", "escalation.resolve", "friction.file_issue", "friction.list", "friction.resolve", "graph.get", "implementation_access.abandon", "implementation_access.complete", "implementation_access.status", "integration.list", "integration.readiness", "integration.status", "integration.test", "mcp_token.create", "mcp_token.list", "mcp_token.revoke", "model.catalog", "onboarding.activate", "onboarding.advance_step", "onboarding.attach_reference", "onboarding.create_invite", "onboarding.finish", "onboarding.rehearse", "onboarding.resume", "onboarding.setup", "onboarding.source_ingest", "onboarding.status", "onboarding.upload_context", "runner.diagnose", "runner.list", "runner.repair", "seat.create", "seat.create_complete", "seat.get", "seat.set_type", "signal.bind", "signal.confirm_reading", "signal.draft_first_readings", "signal.report", "skill.assign_to_seat", "skill.assigned.list", "skill.catalog", "skill.check_dependencies", "skill.create", "skill.enable_catalog", "skill.file.get", "skill.get", "skill.import_github", "skill.import_upload", "skill.install_local", "skill.list", "skill.publish", "skill.revoke_from_seat", "skill.sync_local", "skill.update_draft", "staffing.assign", "staffing.assign_agent_dry_run", "staffing.assign_user", "sync.brief.compile", "sync.brief.get", "sync.item.assign", "sync.run.complete", "sync.run.start", "system.health", "tenant.anthropic_key.disable", "tenant.model_gateway_policy.update", "tenant.rename", "tool_grants.tenant.update", "tool.catalog", "usage.report", "usage.snapshot", "user.tenants", "user.use_tenant", "user.whoami"] },
13295
13295
  { "id": "agent.run_heartbeats", "title": "Get run heartbeats", "description": "Reads the per-seat run-heartbeat roll-up for long-running agent programs. Every roll-up is cross-checked against durable tool-call/event evidence, so a renewing lease alone never reports healthy: `state` is working, quiet_healthy, recovered, stalled, or unavailable. `unavailable` means that evidence check could not be performed \u2014 treat it as unknown, not healthy and not stalled, and branch on `state` rather than the `stalled` boolean.", "required_scope": "tenant", "confirmation": "none", "trusted_execution": { "mode": "not_applicable", "risk_flags": [], "rationale": "This command is not part of the Trusted positive allowlist." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "seat_ids": { "minItems": 1, "maxItems": 200, "type": "array", "items": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" } } }, "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "seats": { "type": "array", "items": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "state": { "type": "string", "enum": ["working", "quiet_healthy", "recovered", "stalled", "unavailable"] }, "stalled": { "type": "boolean" }, "run_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "stalled_run_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "current_phase": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "last_progress_at": { "anyOf": [{ "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, { "type": "null" }] }, "expected_next_at": { "anyOf": [{ "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, { "type": "null" }] }, "stall_after_at": { "anyOf": [{ "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, { "type": "null" }] }, "done_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "in_flight_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "queued_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "lease_remaining_ms": { "anyOf": [{ "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, { "type": "null" }] }, "reasons": { "type": "array", "items": { "type": "string" } } }, "required": ["seat_id", "state", "stalled", "run_count", "stalled_run_count", "current_phase", "last_progress_at", "expected_next_at", "stall_after_at", "done_count", "in_flight_count", "queued_count", "lease_remaining_ms", "reasons"], "additionalProperties": false } } }, "required": ["seats"], "additionalProperties": false }, "help": "Read the per-seat run-heartbeat roll-up to tell a quiet-but-healthy long-running agent program apart from a stalled one, or from one whose durable-evidence check could not be performed (state unavailable).", "guide_slugs": ["mcp-and-cli-guide", "how-agents-work", "troubleshooting-guide"], "stages": ["operating_rhythm"], "related_command_ids": [] },
13296
- { "id": "agent.run_now", "title": "Run agent now", "description": "Queue and dispatch a manual production run for a live cloud or runner agent on a seat. task_id is cloud-lane only; a runner-lane agent rejects it.", "required_scope": "tenant", "confirmation": "human_required", "trusted_execution": { "mode": "eligible_bounded", "risk_flags": [], "rationale": "Re-running the acting seat's own live agent is a bounded, same-seat worker action safe to auto-apply under a standing Trusted grant." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "task_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" } }, "required": ["seat_id"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "execution_mode": { "type": "string", "const": "production_manual" }, "work_order": { "anyOf": [{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "agent_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "task_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "execution_mode": { "anyOf": [{ "type": "string", "enum": ["production_manual", "production_scheduled"] }, { "type": "null" }] }, "lane": { "type": "string", "enum": ["cloud", "runner"] }, "status": { "type": "string", "enum": ["queued", "claimed", "running", "done", "failed", "expired"] }, "claimed_by_runner_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "scheduled_for": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "grace_deadline": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "created_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "schedule_id": { "type": "null" }, "schedule_revision": { "type": "null" }, "schedule_local_occurrence": { "type": "null" } }, "required": ["id", "agent_id", "task_id", "execution_mode", "lane", "status", "claimed_by_runner_id", "scheduled_for", "grace_deadline", "created_at", "schedule_id", "schedule_revision", "schedule_local_occurrence"], "additionalProperties": false }, { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "agent_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "task_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "execution_mode": { "anyOf": [{ "type": "string", "enum": ["production_manual", "production_scheduled"] }, { "type": "null" }] }, "lane": { "type": "string", "enum": ["cloud", "runner"] }, "status": { "type": "string", "enum": ["queued", "claimed", "running", "done", "failed", "expired"] }, "claimed_by_runner_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "scheduled_for": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "grace_deadline": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "created_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "schedule_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "schedule_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "schedule_local_occurrence": { "type": "string", "minLength": 1, "maxLength": 80 } }, "required": ["id", "agent_id", "task_id", "execution_mode", "lane", "status", "claimed_by_runner_id", "scheduled_for", "grace_deadline", "created_at", "schedule_id", "schedule_revision", "schedule_local_occurrence"], "additionalProperties": false }] } }, "required": ["execution_mode", "work_order"], "additionalProperties": false }, "help": "Queue and dispatch a manual production run without changing the agent's saved schedule. A human with authority runs it directly; a same-Seat agent may auto-execute only under a bounded Trusted standing authorization, while a cross-Seat agent request requires a human. task_id is cloud-lane only; a runner-lane agent rejects it.", "guide_slugs": ["ai-model-data-handling-guide", "mcp-and-cli-guide", "how-agents-work", "runner-guide"], "stages": ["operating_rhythm"], "related_command_ids": ["agent_setup.get", "agent_setup.relane", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.decommission", "agent.get_run", "agent.go_live", "agent.list_runs", "agent.list_tool_calls", "agent.pause", "agent.resume", "agent.run_dry_run", "agent.status", "agent.trust.create", "agent.update_schedule", "command.describe", "command.list", "confirmation.approve", "credential.ingress", "friction.resolve", "goal.bind_measurable", "mcp_token.create", "runner.pairing.start", "skill.assign_to_seat", "staffing.assign_agent_dry_run", "staffing.assign_user", "tenant.anthropic_key.disable", "tenant.anthropic_key.save", "tool.catalog", "work_order.enqueue"] },
13296
+ { "id": "agent.run_now", "title": "Run agent now", "description": "Queue and dispatch a manual production run for a live cloud or runner agent on a seat. task_id is cloud-lane only; a runner-lane agent rejects it.", "required_scope": "tenant", "confirmation": "human_required", "trusted_execution": { "mode": "eligible_bounded", "risk_flags": [], "rationale": "Re-running the acting seat's own live agent is a bounded, same-seat worker action safe to auto-apply under a standing Trusted grant." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "task_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" } }, "required": ["seat_id"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "execution_mode": { "type": "string", "const": "production_manual" }, "work_order": { "anyOf": [{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "agent_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "task_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "execution_mode": { "anyOf": [{ "type": "string", "enum": ["production_manual", "production_scheduled"] }, { "type": "null" }] }, "lane": { "type": "string", "enum": ["cloud", "runner"] }, "status": { "type": "string", "enum": ["queued", "claimed", "running", "done", "failed", "expired"] }, "claimed_by_runner_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "scheduled_for": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "grace_deadline": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "created_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "schedule_id": { "type": "null" }, "schedule_revision": { "type": "null" }, "schedule_local_occurrence": { "type": "null" } }, "required": ["id", "agent_id", "task_id", "execution_mode", "lane", "status", "claimed_by_runner_id", "scheduled_for", "grace_deadline", "created_at", "schedule_id", "schedule_revision", "schedule_local_occurrence"], "additionalProperties": false }, { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "agent_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "task_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "execution_mode": { "anyOf": [{ "type": "string", "enum": ["production_manual", "production_scheduled"] }, { "type": "null" }] }, "lane": { "type": "string", "enum": ["cloud", "runner"] }, "status": { "type": "string", "enum": ["queued", "claimed", "running", "done", "failed", "expired"] }, "claimed_by_runner_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "scheduled_for": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "grace_deadline": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "created_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "schedule_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "schedule_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "schedule_local_occurrence": { "type": "string", "minLength": 1, "maxLength": 80 } }, "required": ["id", "agent_id", "task_id", "execution_mode", "lane", "status", "claimed_by_runner_id", "scheduled_for", "grace_deadline", "created_at", "schedule_id", "schedule_revision", "schedule_local_occurrence"], "additionalProperties": false }] } }, "required": ["execution_mode", "work_order"], "additionalProperties": false }, "help": "Queue and dispatch a manual production run without changing the agent's saved schedule. A human with authority runs it directly; a same-Seat agent may auto-execute only under a bounded Trusted standing authorization, while a cross-Seat agent request requires a human. An implementation agent always stages a request for the owner to approve, and only for a Seat its own setup receipt created; the approved run dispatches only the agent that receipt created there. task_id is cloud-lane only; a runner-lane agent rejects it.", "guide_slugs": ["ai-model-data-handling-guide", "mcp-and-cli-guide", "how-agents-work", "runner-guide"], "stages": ["operating_rhythm"], "related_command_ids": ["agent_setup.get", "agent_setup.relane", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.decommission", "agent.get_run", "agent.go_live", "agent.list_runs", "agent.list_tool_calls", "agent.pause", "agent.resume", "agent.run_dry_run", "agent.status", "agent.trust.create", "agent.update_schedule", "command.describe", "command.list", "confirmation.approve", "credential.ingress", "friction.resolve", "goal.bind_measurable", "mcp_token.create", "runner.pairing.start", "skill.assign_to_seat", "staffing.assign_agent_dry_run", "staffing.assign_user", "tenant.anthropic_key.disable", "tenant.anthropic_key.save", "tool.catalog", "work_order.enqueue"] },
13297
13297
  { "id": "agent.show_markdown", "title": "Show agent setup as markdown", "description": "Compose a seat's agent setup, steward, model, tools, and Charter into a clean, human-skimmable markdown card for review.", "required_scope": "tenant", "confirmation": "none", "trusted_execution": { "mode": "not_applicable", "risk_flags": [], "rationale": "This command is not part of the Trusted positive allowlist." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" } }, "required": ["seat_id"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "markdown": { "type": "string", "minLength": 1 } }, "required": ["markdown"], "additionalProperties": false }, "help": "Render a seat's agent setup, model, steward, tools, and Charter as a clean markdown card to show your human a quick review.", "guide_slugs": ["agent-builder-guide", "agent-staffing-playbook"], "stages": ["staffing"], "related_command_ids": ["agent_setup.get", "agent_setup.start", "agent_setup.update", "agent.configure_tools", "agent.create_custom", "agent.go_live", "agent.run_dry_run", "charter.update_draft", "command.describe", "model.catalog", "tool.catalog"] },
13298
13298
  { "id": "agent.status", "title": "Get agent status", "description": "Return the agent occupancy, lane, schedule, live/offline state, steward chain, dry-run result, and Runner availability for a seat.", "required_scope": "seat", "confirmation": "none", "trusted_execution": { "mode": "not_applicable", "risk_flags": [], "rationale": "This command is not part of the Trusted positive allowlist." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" } }, "required": ["seat_id"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "has_agent": { "type": "boolean" }, "lifecycle": { "type": "string", "enum": ["none", "draft_setup", "dry_run", "live", "paused", "decommissioned"] }, "agent_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "kind": { "anyOf": [{ "type": "string", "enum": ["stock", "custom", "external_mcp", "runner_local"] }, { "type": "null" }] }, "display_name": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "lane": { "anyOf": [{ "type": "string", "enum": ["cloud", "mcp_session", "runner"] }, { "type": "null" }] }, "status": { "anyOf": [{ "type": "string", "enum": ["draft", "dry_run", "live", "paused", "decommissioned"] }, { "type": "null" }] }, "schedule_cron": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "schedule_timezone": { "anyOf": [{ "type": "string", "minLength": 1, "maxLength": 100 }, { "type": "null" }] }, "live": { "type": "boolean" }, "charter_version_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] }, "steward_chain": { "type": "array", "items": { "type": "object", "properties": { "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "name": { "type": "string" } }, "required": ["seat_id", "name"], "additionalProperties": false } }, "steward_chain_resolves_to_human": { "type": "boolean" }, "dry_run": { "anyOf": [{ "type": "object", "properties": { "status": { "type": "string", "enum": ["passed", "failed"] }, "summary": { "type": "string" } }, "required": ["status", "summary"], "additionalProperties": false }, { "type": "null" }] }, "runner_available": { "type": "boolean" } }, "required": ["seat_id", "has_agent", "lifecycle", "agent_id", "kind", "display_name", "lane", "status", "schedule_cron", "schedule_timezone", "live", "charter_version_id", "steward_chain", "steward_chain_resolves_to_human", "dry_run", "runner_available"], "additionalProperties": false }, "help": "Check an agent's lane, live state, steward chain, dry-run result, and Runner availability before relying on it.", "guide_slugs": ["how-agents-work", "agent-staffing-playbook"], "stages": ["staffing", "operating_rhythm"], "related_command_ids": ["agent_setup.get", "agent_setup.relane", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.decommission", "agent.fleet_digest", "agent.get_run", "agent.go_live", "agent.list_fleet", "agent.list_runs", "agent.list_tool_calls", "agent.pause", "agent.resume", "agent.run_dry_run", "agent.run_now", "agent.update_schedule", "charter.approve", "charter.draft", "compass.answer_gap", "compass.approve_version", "compass.draft", "compass.set", "confirmation.approve", "confirmation.reject", "deliverable.accept", "deliverable.attach", "deliverable.create", "deliverable.get", "deliverable.list", "deliverable.reject", "error_log.list", "error_log.resolve", "error_log.supersede", "escalation.get", "escalation.list", "escalation.raise", "escalation.reject", "escalation.resolve", "friction.file_issue", "friction.list", "goal.set_status", "graph.get", "implementation_access.abandon", "implementation_access.complete", "implementation_access.status", "integration.list", "integration.readiness", "integration.status", "integration.test", "mcp_token.create", "mcp_token.list", "mcp_token.revoke", "onboarding.attach_reference", "onboarding.rehearse", "onboarding.resume", "onboarding.status", "onboarding.upload_context", "runner.diagnose", "runner.repair", "seat.create", "seat.create_complete", "seat.get", "signal.confirm_reading", "signal.list", "skill.assign_to_seat", "skill.assigned.list", "skill.catalog", "skill.check_dependencies", "skill.create", "skill.enable_catalog", "skill.file.get", "skill.get", "skill.import_github", "skill.import_upload", "skill.install_local", "skill.list", "skill.publish", "skill.revoke_from_seat", "skill.sync_local", "skill.update_draft", "staffing.assign", "staffing.assign_agent_dry_run", "staffing.assign_user", "status.record", "system.health", "task.accept", "task.complete", "task.create", "task.decline", "task.list", "team.health_score", "tenant.anthropic_key.disable", "tenant.rename", "tool_grants.tenant.update", "usage.report", "usage.snapshot", "user.tenants", "user.use_tenant", "user.whoami", "work.log"] },
13299
13299
  { "id": "agent.trust.create", "title": "Create agent Trusted grant", "description": "Create a bounded Trusted execution grant for a live agent after a human steward/admin signs the current activation receipt digest. When Company Guardrails are enforced, max_autonomous_risk must be at least high; observe mode remains non-blocking.", "required_scope": "tenant", "confirmation": "human_required", "trusted_execution": { "mode": "always_human", "risk_flags": ["self_approval", "spend"], "rationale": "Trusted activation and grant lifecycle commands establish or change standing authority, so a human must decide." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "agent_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "expected_scope_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "budget_cents": { "type": "integer", "minimum": 0, "maximum": 1e7 }, "expires_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "reason": { "type": "string", "minLength": 1, "maxLength": 500 } }, "required": ["agent_id", "expected_scope_digest", "budget_cents"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "grant": { "type": "object", "properties": { "grant_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "agent_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "seat_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "granted_by_user_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "scope_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "classifier_version": { "type": "string", "pattern": "^[a-z][a-z0-9_.-]{0,79}$" }, "budget_cents": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "reserved_cents": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "spent_cents": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "currency": { "type": "string", "const": "USD" }, "status": { "type": "string", "enum": ["active", "revoked", "superseded", "expired"] }, "effective_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, "expires_at": { "anyOf": [{ "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, { "type": "null" }] }, "revoked_at": { "anyOf": [{ "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" }, { "type": "null" }] }, "supersedes_id": { "anyOf": [{ "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, { "type": "null" }] } }, "required": ["grant_id", "agent_id", "seat_id", "granted_by_user_id", "scope_digest", "classifier_version", "budget_cents", "reserved_cents", "spent_cents", "currency", "status", "effective_at", "expires_at", "revoked_at", "supersedes_id"], "additionalProperties": false }, "event_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" } }, "required": ["grant", "event_id"], "additionalProperties": false }, "help": "Create a bounded Trusted execution grant only after reviewing the activation receipt digest, budget, and always-human boundary. Human steward/admin only. When Company Guardrails are enforced, the autonomy ceiling must be at least high; observe mode remains non-blocking.", "guide_slugs": ["security-model-guide", "agent-staffing-playbook", "confirmations-guide"], "stages": ["staffing", "operating_rhythm"], "related_command_ids": ["agent_grant_intervention.decide", "agent.activation_sign", "agent.go_live", "agent.run_now", "agent.trust.expire", "agent.trust.revoke", "agent.trust.supersede", "agent.update_schedule", "charter.approve", "command.describe", "command.list", "confirmation.approve", "confirmation.dismiss", "confirmation.dismiss_stale", "confirmation.list", "confirmation.reject", "confirmation.remint", "credential.ingress", "friction.resolve", "goal.bind_measurable", "goal.reassign_owner", "goal.reparent", "mcp_token.create", "onboarding.setup", "skill.assign_to_seat", "staffing.assign_user", "task.confirm_proposal", "task.decline_proposal"] },
@@ -52334,7 +52334,7 @@ var COMMAND_MANIFEST = [
52334
52334
  { "id": "agent.resume", "namespace": "agent", "action": "resume", "title": "Resume agent", "description": "Resume a paused agent back to live. Blocks if the steward chain no longer resolves to a human.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "reason", "flag": "reason", "type": "string", "required": false }], "hasComplexInput": false, "help": "Resume a paused agent back to live; the no-orphan guard blocks a resume whose steward chain no longer resolves to a human." },
52335
52335
  { "id": "agent.run_dry_run", "namespace": "agent", "action": "run_dry_run", "title": "Run agent dry run", "description": "Run the sandbox dry run for a draft agent. Durable and idempotent per Charter version; a passed result is reused, never re-run.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "charter_version_id", "flag": "charter-version-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Run the sandbox dry run for a draft agent after the manifest is signed; the result is durable and idempotent per Charter version, and a passed run is reused.", "example": { "seat_id": "0190aaaa-aaaa-7aaa-8aaa-aaaaaaaaaaaa", "charter_version_id": "0190cccc-cccc-7ccc-8ccc-cccccccccccc" } },
52336
52336
  { "id": "agent.run_heartbeats", "namespace": "agent", "action": "run_heartbeats", "title": "Get run heartbeats", "description": "Reads the per-seat run-heartbeat roll-up for long-running agent programs. Every roll-up is cross-checked against durable tool-call/event evidence, so a renewing lease alone never reports healthy: `state` is working, quiet_healthy, recovered, stalled, or unavailable. `unavailable` means that evidence check could not be performed \u2014 treat it as unknown, not healthy and not stalled, and branch on `state` rather than the `stalled` boolean.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_ids", "flag": "seat-ids", "type": "array", "required": false, "itemType": "string" }], "hasComplexInput": false, "help": "Read the per-seat run-heartbeat roll-up to tell a quiet-but-healthy long-running agent program apart from a stalled one, or from one whose durable-evidence check could not be performed (state unavailable)." },
52337
- { "id": "agent.run_now", "namespace": "agent", "action": "run_now", "title": "Run agent now", "description": "Queue and dispatch a manual production run for a live cloud or runner agent on a seat. task_id is cloud-lane only; a runner-lane agent rejects it.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "task_id", "flag": "task-id", "type": "string", "required": false }], "hasComplexInput": false, "help": "Queue and dispatch a manual production run without changing the agent's saved schedule. A human with authority runs it directly; a same-Seat agent may auto-execute only under a bounded Trusted standing authorization, while a cross-Seat agent request requires a human. task_id is cloud-lane only; a runner-lane agent rejects it." },
52337
+ { "id": "agent.run_now", "namespace": "agent", "action": "run_now", "title": "Run agent now", "description": "Queue and dispatch a manual production run for a live cloud or runner agent on a seat. task_id is cloud-lane only; a runner-lane agent rejects it.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "task_id", "flag": "task-id", "type": "string", "required": false }], "hasComplexInput": false, "bootstrapClass": "stage", "help": "Queue and dispatch a manual production run without changing the agent's saved schedule. A human with authority runs it directly; a same-Seat agent may auto-execute only under a bounded Trusted standing authorization, while a cross-Seat agent request requires a human. An implementation agent always stages a request for the owner to approve, and only for a Seat its own setup receipt created; the approved run dispatches only the agent that receipt created there. task_id is cloud-lane only; a runner-lane agent rejects it." },
52338
52338
  { "id": "agent.show_markdown", "namespace": "agent", "action": "show_markdown", "title": "Show agent setup as markdown", "description": "Compose a seat's agent setup, steward, model, tools, and Charter into a clean, human-skimmable markdown card for review.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Render a seat's agent setup, model, steward, tools, and Charter as a clean markdown card to show your human a quick review." },
52339
52339
  { "id": "agent.status", "namespace": "agent", "action": "status", "title": "Get agent status", "description": "Return the agent occupancy, lane, schedule, live/offline state, steward chain, dry-run result, and Runner availability for a seat.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Check an agent's lane, live state, steward chain, dry-run result, and Runner availability before relying on it." },
52340
52340
  { "id": "agent.trust.create", "namespace": "agent", "action": "trust.create", "title": "Create agent Trusted grant", "description": "Create a bounded Trusted execution grant for a live agent after a human steward/admin signs the current activation receipt digest. When Company Guardrails are enforced, max_autonomous_risk must be at least high; observe mode remains non-blocking.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "agent_id", "flag": "agent-id", "type": "string", "required": true }, { "name": "expected_scope_digest", "flag": "expected-scope-digest", "type": "string", "required": true }, { "name": "budget_cents", "flag": "budget-cents", "type": "integer", "required": true }, { "name": "expires_at", "flag": "expires-at", "type": "string", "required": false }, { "name": "reason", "flag": "reason", "type": "string", "required": false }], "hasComplexInput": false, "help": "Create a bounded Trusted execution grant only after reviewing the activation receipt digest, budget, and always-human boundary. Human steward/admin only. When Company Guardrails are enforced, the autonomy ceiling must be at least high; observe mode remains non-blocking." },
@@ -52468,7 +52468,7 @@ var COMMAND_MANIFEST = [
52468
52468
  { "id": "runner.pairing.start", "namespace": "runner", "action": "pairing.start", "title": "Start runner pairing", "description": "Open a runner pairing session and return the human pairing code and URL. The runner bearer secret is never returned here.", "requiredScope": "tenant_admin", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "name", "flag": "name", "type": "string", "required": true }, { "name": "platform", "flag": "platform", "type": "string", "required": true }], "hasComplexInput": false, "help": "Open a runner pairing session and share the user code; the runner bearer secret is never surfaced here." },
52469
52469
  { "id": "runner.repair", "namespace": "runner", "action": "repair", "title": "Runner repair guidance", "description": "Returns actionable repair steps for a runner: restart, re-pair, revoke stale, or install missing CLI runtime. No secrets exposed.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "runner_id", "flag": "runner-id", "type": "string", "required": true }, { "name": "issue", "flag": "issue", "type": "enum", "required": false, "enumValues": ["restart", "re_pair", "revoke_stale", "missing_cli_runtime"] }], "hasComplexInput": false, "help": "Get focused repair steps for a runner: restart, re-pair, revoke a stale runner, or install missing CLI runtime." },
52470
52470
  { "id": "runner.revoke", "namespace": "runner", "action": "revoke", "title": "Revoke runner", "description": "Revoke a runner so it can no longer authenticate or claim work.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "runner_id", "flag": "runner-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Revoke a runner when a machine should no longer authenticate or claim work; this is a human-gated action." },
52471
- { "id": "runner.status", "namespace": "runner", "action": "status", "title": "Runner status", "description": "Read a single runner's capability and online/offline/revoked state.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "runner_id", "flag": "runner-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Check a runner's capability and heartbeat state when diagnosing offline work." },
52471
+ { "id": "runner.status", "namespace": "runner", "action": "status", "title": "Runner status", "description": "Read a single runner's capability and online/offline/revoked state.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "runner_id", "flag": "runner-id", "type": "string", "required": true }], "hasComplexInput": false, "bootstrapClass": "read", "help": "Check a runner's capability and heartbeat state when diagnosing offline work." },
52472
52472
  { "id": "scorecard.grid", "namespace": "scorecard", "action": "grid", "title": "Read the scorecard grid", "description": "Return the leadership scorecard trailing grid: rows are measurables of a cadence (default weekly), columns are the trailing N periods with a colour-coded cell per period, plus the computed Org-Checkup system-health measurables. Seat-scoped callers see only their own seat.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "cadence", "flag": "cadence", "type": "enum", "required": false, "enumValues": ["daily", "weekly", "monthly", "quarterly", "annual"] }, { "name": "trailing", "flag": "trailing", "type": "integer", "required": false }, { "name": "seat_id", "flag": "seat-id", "type": "string", "required": false }, { "name": "as_of", "flag": "as-of", "type": "string", "required": false }], "hasComplexInput": false, "help": "Read the leadership scorecard trailing grid (rows = measurables of a cadence, columns = trailing periods, colour-coded cells) plus the computed Org-Checkup system-health measurables. Keep exception-first as the default view." },
52473
52473
  { "id": "seat.create", "namespace": "seat", "action": "create", "title": "Create seat", "description": "Create a Responsibility Graph seat.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "name", "flag": "name", "type": "string", "required": true }, { "name": "parent_seat_id", "flag": "parent-seat-id", "type": "string", "required": false }, { "name": "seat_type", "flag": "seat-type", "type": "enum", "required": false, "enumValues": ["human", "agent", "hybrid"] }], "hasComplexInput": false, "help": "Create seats from functions before assigning people or agents." },
52474
52474
  { "id": "seat.create_complete", "namespace": "seat", "action": "create_complete", "title": "Create complete seat", "description": "Create a Seat with its Charter, disclosed staffing, and optional dry-run agent shell after owner confirmation.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "idempotency_key", "flag": "idempotency-key", "type": "string", "required": true }], "hasComplexInput": true, "bootstrapClass": "stage", "help": "Submit one complete Seat proposal with its Charter, disclosed staffing, and optional dry-run agent configuration. Read the exact schema first; the command stages one owner confirmation, never goes live, and applies every approved effect atomically." },
@@ -53523,7 +53523,7 @@ Drafting can be assisted by agents. Activation is a human decision. When authori
53523
53523
  order: 40,
53524
53524
  title: "Agent staffing playbook",
53525
53525
  summary: "How to decide whether a seat should be human, agent, or hybrid, and how to go live safely.",
53526
- version: "2026-07-29.4",
53526
+ version: "2026-07-31.1",
53527
53527
  public: true,
53528
53528
  audiences: ["human", "cli", "mcp", "in_app_agent"],
53529
53529
  stages: ["staffing"],
@@ -53581,7 +53581,7 @@ Two creation paths, both draft-first. Read the stock-agents guide for templates
53581
53581
  - From a template: list with \`agent_template.list\` / \`rost_list_agent_templates\`, then \`agent.create_from_template\` / \`rost_create_agent_from_template\` with \`seat_id\` and \`template_slug\`. Returns a draft agent and draft Charter only.
53582
53582
  - Custom: \`agent_setup.start\` / \`rost_start_agent_setup\` (returns a \`setup_id\`), iterate with \`agent_setup.get\` and \`agent_setup.update\`, then \`agent.create_custom\` / \`rost_create_custom_agent\`. Stage tools with \`agent.configure_tools\` (vault refs only) and sandbox with \`agent.run_dry_run\`.
53583
53583
  - Inspect runtime: \`agent.status\` / \`rost_get_agent_status\` with \`{"seat_id":"<seat-id>"}\` returns lane, live state, steward chain, dry-run result, and Runner availability.
53584
- - Run on demand: \`{{cli}} agent run-now --seat-id <seat-id>\` / \`agent.run_now\` / \`rost_run_agent_now\` queues a manual production run and returns \`execution_mode: "production_manual"\` without changing or arming the saved schedule. The command requires the shared readiness result's \`execution_ready: true\`; cloud agents dispatch to the Inngest executor and runner agents queue work for the selected paired runner. It is \`human_required\` (DER-1766/DER-2081): a human with authority requesting a run acts directly, an agent re-running its OWN seat (same-seat) may auto-execute only under a bounded Trusted standing authorization, and a cross-seat dispatch (one seat running a different seat's agent) always asks a human. An implementation agent cannot approve its own request. It still requires a live staffed agent and passes the normal server-side tool guard.
53584
+ - Run on demand: \`{{cli}} agent run-now --seat-id <seat-id>\` / \`agent.run_now\` / \`rost_run_agent_now\` queues a manual production run and returns \`execution_mode: "production_manual"\` without changing or arming the saved schedule. The command requires the shared readiness result's \`execution_ready: true\`; cloud agents dispatch to the Inngest executor and runner agents queue work for the selected paired runner. It is \`human_required\` (DER-1766/DER-2081): a human with authority requesting a run acts directly, an agent re-running its OWN seat (same-seat) may auto-execute only under a bounded Trusted standing authorization, and a cross-seat dispatch (one seat running a different seat's agent) always asks a human. An implementation agent onboarding a company may request a run (DER-2961) but never dispatches one itself: every such request stages a confirmation for the owner, and only for a Seat whose agent that same implementation run's own setup receipt created \u2014 any other Seat is refused before a confirmation exists. The same bound is re-checked when the approved run actually dispatches, against the agent that is live on the Seat at that moment, so an approval cannot dispatch a substitute agent the receipt never created. It cannot approve its own request. It still requires a live staffed agent and passes the normal server-side tool guard.
53585
53585
  - Audit what an agent did (Trust Card): \`{{cli}} command agent.list_runs --json '{"seat_id":"<seat-id>"}'\` / \`rost_list_agent_runs\` returns the seat's run history with per-run Skill activation counts plus tool-call, guard-denied, and guard-held counts; \`{{cli}} agent get-run --seat-id <seat-id> --run-id <run-id>\` / \`agent.get_run\` / \`rost_get_agent_run_diagnostics\` reads one run's transcript reference, token/cost usage, outcome, product-visible run errors, and any Skill versions/files loaded for that run. Pass \`--transcript\` (\`{"transcript":true}\`) to also return the persisted, secret-scrubbed session transcript for that run when one exists \u2014 cloud-lane and runner turns persist a bounded transcript at turn end. Final run outcomes are no longer chopped to a short summary; the full report survives. Loaded Skill file hashes and sizes identify the immutable source package; the runtime may still bound or truncate prompt text before sending it to the model. \`{{cli}} command agent.list_tool_calls --json '{"seat_id":"<seat-id>"}'\` / \`rost_list_agent_tool_calls\` returns the tool-call ledger with each call's guard result. Both list commands include \`denied_tool_call_count\` and \`held_tool_call_count\` rollups: hard guard denials stay separate from actions escalated for review. Pass \`{"seat_id":"<seat-id>","held_only":true}\` to \`agent.list_tool_calls\` for only the held calls. The web seat page shows the same facts as a Trust Card, and its Activity tab additionally renders the full persisted transcript and artifacts rail for a selected session inline (no \`--transcript\` flag needed there) alongside the business-activity ledger (\`work.record\`/\`work.list\`) \u2014 counter tiles and a run-grouped feed with each record's verb, object, outcome, evidence, and \`template_ref\` when one was used.
53586
53586
  - Read a guard result (one vocabulary everywhere): every \`guard_result\` falls into exactly one of three buckets, and the Trust Card, the run-watch panel, the run receipt, and the \`agent.list_tool_calls\` rollups all use the same split. **Executed** is \`allowed\` \u2014 the call ran. **Refused** is \`denied_manifest\` (the tool is not in the seat's Charter) and \`denied_budget\` (the call would exceed the seat's budget) \u2014 the guard blocked the call outright and no human review is pending. **Held** is \`escalated\` and \`denied_tenant_policy\` (the call exceeded the company automation ceiling) \u2014 the call did not run but is waiting on a human, so it is a decision you can still make. The \`denied_tool_call_count\` rollup counts refusals; \`held_tool_call_count\` counts holds. Refused and held are never merged: a refusal needs a Charter or budget change, a hold needs a person.
53587
53587
 
@@ -54125,7 +54125,7 @@ External connectors are being rolled out provider by provider, conservatively (r
54125
54125
  order: 48,
54126
54126
  title: "CLI and MCP installation guide",
54127
54127
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
54128
- version: "2026-07-31.5",
54128
+ version: "2026-07-31.6",
54129
54129
  public: true,
54130
54130
  audiences: ["human", "cli", "mcp", "in_app_agent"],
54131
54131
  stages: ["company_setup", "staffing"],
@@ -54291,7 +54291,7 @@ This installs the single \`rost_impl_\` bearer directly. There is no \`mcp_token
54291
54291
 
54292
54292
  The implementation bootstrap policy (\`implementation-bootstrap-policy\`) projects a fixed allowlist for the \`rost_impl_\` principal. That surface is intentionally narrow and fail-closed:
54293
54293
 
54294
- - **Vetted reads:** \`onboarding.status\`, \`onboarding.resume\`, \`graph.get\`, \`charter.list\`, \`charter.get\`, \`compass.get_current\`, \`goal.list\`, \`agent.list_fleet\`, \`skill.list\`, \`skill.catalog\`, \`agent_template.list\`, \`system.health\`.
54294
+ - **Vetted reads:** \`onboarding.status\`, \`onboarding.resume\`, \`graph.get\`, \`charter.list\`, \`charter.get\`, \`compass.get_current\`, \`goal.list\`, \`agent.list_fleet\`, \`skill.list\`, \`skill.catalog\`, \`agent_template.list\`, \`system.health\`, \`runner.status\` (lets the agent tell a runner-lane run's "runner offline" apart from "agent broken" while a staged \`agent.run_now\` awaits approval; every other \`runner.*\` command stays denied).
54295
54295
  - **Human-confirmed drafts:** \`seat.create_complete\`, \`agent.create_custom\`, \`agent.create_from_template\`, \`compass.set\`, \`compass.approve_version\`, \`onboarding.finish\`. Each stages a pending confirmation for a human owner to decide. \`seat.create_complete\` is the one atomic complete-Seat path described below; it does not make its optional agent live.
54296
54296
  - **Lifecycle close:** \`implementation_access.status\`, \`implementation_access.complete\`, \`implementation_access.abandon\`.
54297
54297
  - **Denied by default:** everything else, including all direct durable mutations and \`confirmation.approve\`. The policy lives in \`packages/commands/src/implementation-bootstrap-policy.ts\` and is enforced by both the runtime guard and a CI drift test.
@@ -55997,7 +55997,7 @@ Keep agent scope tight at first. Approve more autonomy only after evidence. Use
55997
55997
  order: 71,
55998
55998
  title: "Confirmations and human gates guide",
55999
55999
  summary: "How {{brand}} routes authority-changing work through human confirmation, and why agents never approve their own requests.",
56000
- version: "2026-07-26.6",
56000
+ version: "2026-07-31.1",
56001
56001
  public: true,
56002
56002
  audiences: ["human", "cli", "mcp", "in_app_agent"],
56003
56003
  stages: ["graph_design", "charter_design", "staffing", "operating_rhythm"],
@@ -56032,11 +56032,12 @@ The \`dangerous\` confirmation **level** is rare and is not the same as the **ri
56032
56032
 
56033
56033
  The bounded implementation-bootstrap principal behind an agent-led onboarding run (see the CLI/MCP guide's "Bounded bootstrap surface") pauses by a rule: **it pauses once for every command the bootstrap policy classifies \`stage\`**, because every command in that class is \`human_required\` and returns a pending confirmation instead of mutating. Its read-only commands are \`none\` and never pause; everything outside the classified surface is denied and so cannot pause at all.
56034
56034
 
56035
- The stage class tells you which **kinds** of pause a run can raise. It does not bound **how many**:
56035
+ The stage class tells you which **kinds** of pause a run can raise; the ones below are the kinds whose count depends on how your agent works. It does not bound **how many**:
56036
56036
 
56037
56037
  - \`compass.set\` / \`compass.approve_version\` \u2014 activating the Compass. \`compass.set\` takes an \`approve\` flag defaulting to \`false\`, so an agent that drafts first and activates after raises **two** confirmations here, while one that passes \`approve: true\` raises one.
56038
56038
  - \`agent.create_custom\` / \`agent.create_from_template\` \u2014 creating an agent. Both are \`human_required\`, so this repeats **once per agent proposed**, and a run that proposes none never raises it.
56039
56039
  - \`onboarding.finish\` \u2014 closing out the run.
56040
+ - \`agent.run_now\` \u2014 dispatching a manual production run on an agent the same implementation setup created, to prove it works end to end. It is the one pause in this list that acts on an agent that is already live rather than creating something, and your agent only ever **asks**: it cannot approve its own request, and the server refuses a request for any agent outside that setup's own receipt \u2014 at staging and again when the approved run dispatches. This repeats **once per run requested**, and a run that asks for none never raises it.
56040
56041
 
56041
56042
  Two properties of this surface are commonly assumed and are **not** true. **Cardinality is an input property, not a registry one** \u2014 the counts above depend on the arguments the agent passes, and any stage command can simply be invoked more than once, so no fixed total is correct. **Order is not enforced** \u2014 neither agent-creation command requires an active Compass, and \`onboarding.finish\` does not re-check its requirement set when it executes, so no server-side sequence backs a numbered timeline.
56042
56043