@rosthq/cli 0.7.136 → 0.7.138
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/dist/commands/onboarding.d.ts.map +1 -1
- package/dist/generator/manifest-types.d.ts +1 -0
- package/dist/generator/manifest-types.d.ts.map +1 -1
- package/dist/generator/runtime.d.ts +7 -1
- package/dist/generator/runtime.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +615 -554
- package/dist/index.js.map +4 -4
- package/dist/operations.d.ts +1 -1
- package/dist/operations.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -13409,13 +13409,13 @@ var init_command_discovery = __esm({
|
|
|
13409
13409
|
{ "id": "notification.settings.update", "title": "Update notification settings", "description": "Update tenant notification preferences.", "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": { "escalations_enabled": { "type": "boolean" }, "sync_brief_enabled": { "type": "boolean" }, "default_channel": { "type": "string", "enum": ["slack", "email", "in_app"] } }, "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "escalations_enabled": { "type": "boolean" }, "sync_brief_enabled": { "type": "boolean" }, "default_channel": { "type": "string", "enum": ["slack", "email", "in_app"] } }, "required": ["escalations_enabled", "sync_brief_enabled", "default_channel"], "additionalProperties": false }, "help": "Update notification preferences for escalations, Sync briefs, and the default channel.", "guide_slugs": ["notifications-guide"], "stages": ["operating_rhythm"], "related_command_ids": ["agent.go_live", "confirmation.approve", "confirmation.reject", "notification.list_errors", "notification.settings.get", "notification.test"] },
|
|
13410
13410
|
{ "id": "notification.test", "title": "Send test notification", "description": "Emit an in-app test notification to the acting human to verify delivery is wired.", "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": {}, "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "notification_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)$" }, "delivered": { "type": "boolean" } }, "required": ["notification_id", "delivered"], "additionalProperties": false }, "help": "Send an in-app test notification to confirm the delivery path is wired.", "guide_slugs": ["notifications-guide"], "stages": ["operating_rhythm"], "related_command_ids": ["agent.go_live", "confirmation.approve", "confirmation.reject", "notification.list_errors", "notification.settings.get", "notification.settings.update"] },
|
|
13411
13411
|
{ "id": "onboarding.activate", "title": "Activate onboarding agents", "description": "Stage one owner approval to activate every agent in an applied onboarding receipt and complete onboarding atomically.", "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": { "idempotency_key": { "type": "string", "minLength": 1, "maxLength": 120 }, "setup_application_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_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_receipt_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "terminal_rehearsal_batch_receipt_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)$" }, "rehearsal_runs": { "minItems": 1, "maxItems": 100, "type": "array", "items": { "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)$" }, "rehearsal_run_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": ["agent_id", "rehearsal_run_id"], "additionalProperties": false } }, "configuration_digests": { "minItems": 1, "maxItems": 100, "type": "array", "items": { "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)$" }, "configuration_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" } }, "required": ["agent_id", "configuration_digest"], "additionalProperties": false } } }, "required": ["idempotency_key", "setup_application_id", "expected_input_digest", "expected_receipt_revision", "terminal_rehearsal_batch_receipt_id", "rehearsal_runs", "configuration_digests"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "application_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": "activated" }, "receipt": { "type": "object", "properties": { "activation_receipt_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)$" }, "activation_confirmation_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)$" }, "setup_application_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)$" }, "implementation_run_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" }] }, "activation_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "setup_receipt_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "terminal_rehearsal_batch_receipt_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)$" }, "agents": { "minItems": 1, "maxItems": 100, "type": "array", "items": { "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)$" }, "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)$" }, "status": { "type": "string", "const": "live" }, "schedule_armed": { "type": "boolean" } }, "required": ["agent_id", "seat_id", "status", "schedule_armed"], "additionalProperties": false } }, "onboarding_completed_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)))$" }, "activated_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)))$" } }, "required": ["activation_receipt_id", "activation_confirmation_id", "setup_application_id", "implementation_run_id", "activation_input_digest", "setup_receipt_revision", "terminal_rehearsal_batch_receipt_id", "agents", "onboarding_completed_at", "activated_at"], "additionalProperties": false } }, "required": ["application_id", "status", "receipt"], "additionalProperties": false }, "help": "After a terminal all-passed onboarding rehearsal, submit its exact batch receipt, per-agent run IDs, and configuration digests. One owner approval activates the entire group and completes onboarding atomically.", "guide_slugs": ["rost-implementation-method", "mcp-and-cli-guide", "agent-reference-map"], "stages": ["staffing"], "related_command_ids": ["agent.go_live", "agent.run_dry_run", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "charter.sign_manifest", "charter.update_draft", "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", "credential.ingress", "friction.file_issue", "friction.list", "friction.resolve", "onboarding.advance_step", "onboarding.attach_reference", "onboarding.create_invite", "onboarding.finish", "onboarding.rehearse", "onboarding.setup", "onboarding.source_ingest", "onboarding.status", "onboarding.upload_context", "seat.create", "seat.set_type", "signal.bind", "signal.confirm_reading", "signal.draft_first_readings", "signal.report", "staffing.assign_agent_dry_run", "staffing.assign_user", "sync.brief.compile", "sync.brief.get", "sync.item.assign", "sync.run.complete", "sync.run.start"] },
|
|
13412
|
-
{ "id": "onboarding.advance_step", "title": "Advance onboarding step", "description": "Persist the current onboarding step after server-side validation.", "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": { "step": { "type": "string", "
|
|
13412
|
+
{ "id": "onboarding.advance_step", "title": "Advance onboarding step", "description": "Persist the current onboarding step after server-side validation.", "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": { "step": { "type": "string", "enum": ["setup_path", "company_basics", "how_it_works", "compass_context", "org_intake", "charters_preview", "sync_rhythm", "invite_team", "staff_agent", "finish"] }, "state": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "completed": { "default": false, "type": "boolean" } }, "required": ["step"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "step": { "type": "string", "enum": ["setup_path", "company_basics", "how_it_works", "compass_context", "org_intake", "charters_preview", "sync_rhythm", "invite_team", "staff_agent", "finish", "complete"] }, "state": {}, "completed_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" }] } }, "required": ["step", "state", "completed_at"], "additionalProperties": false }, "help": "Advance onboarding only after the current setup step is represented in the tenant state.", "guide_slugs": ["rost-implementation-method"], "stages": ["company_setup"], "related_command_ids": ["agent.go_live", "agent.run_dry_run", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "charter.sign_manifest", "charter.update_draft", "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", "credential.ingress", "friction.file_issue", "friction.list", "friction.resolve", "onboarding.activate", "onboarding.attach_reference", "onboarding.create_invite", "onboarding.finish", "onboarding.rehearse", "onboarding.setup", "onboarding.source_ingest", "onboarding.status", "onboarding.upload_context", "seat.create", "seat.set_type", "signal.bind", "signal.confirm_reading", "signal.draft_first_readings", "signal.report", "staffing.assign_agent_dry_run", "staffing.assign_user", "sync.brief.compile", "sync.brief.get", "sync.item.assign", "sync.run.complete", "sync.run.start"] },
|
|
13413
13413
|
{ "id": "onboarding.attach_reference", "title": "Attach reference document", "description": "Attach a company reference document (text/markdown) so Compass and Charters can cite it. Reference-only \u2014 it does not build a Compass; convert each meaningful doc to markdown and attach it with a title, kind, and source.", "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": { "text": { "type": "string", "minLength": 1 }, "filename": { "default": "mcp-org-context.txt", "type": "string", "minLength": 1 }, "mime_type": { "default": "text/plain", "type": "string", "enum": ["text/plain", "text/markdown", "text/csv"] }, "title": { "type": "string", "minLength": 1, "maxLength": 200 }, "kind": { "type": "string", "enum": ["plan", "financial", "org_chart", "process"] }, "source": { "type": "string", "minLength": 1, "maxLength": 500 } }, "required": ["text"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "document_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)$" }, "storage_ref": { "type": "string", "minLength": 1 }, "kind": { "type": "string", "enum": ["org_chart", "role_doc", "plan", "financial", "other"] }, "title": { "anyOf": [{ "type": "string", "minLength": 1 }, { "type": "null" }] } }, "required": ["document_id", "storage_ref", "kind", "title"], "additionalProperties": false }, "example": { "text": "# Company handbook\n\nWe build precision components for the aerospace supply chain.", "filename": "handbook.md", "mime_type": "text/markdown", "title": "Company handbook", "kind": "plan", "source": "handbook/overview.md" }, "help": "Convert each meaningful company doc to markdown and attach it as a reference (title, kind, source) so Compass and Charters can cite it; this attaches a reference, it does not build a Compass \u2014 author Compass directly.", "guide_slugs": ["compass-authoring-guide", "rost-implementation-method", "responsibility-graph-playbook"], "stages": ["company_setup", "graph_design"], "related_command_ids": ["agent_setup.get", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.fleet_digest", "agent.get_run", "agent.go_live", "agent.list_fleet", "agent.list_runs", "agent.list_tool_calls", "agent.run_dry_run", "agent.status", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "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", "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.activate", "onboarding.advance_step", "onboarding.create_invite", "onboarding.finish", "onboarding.rehearse", "onboarding.resume", "onboarding.setup", "onboarding.source_ingest", "onboarding.status", "onboarding.upload_context", "runner.diagnose", "runner.repair", "seat.create", "seat.create_complete", "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.rename", "tool_grants.tenant.update", "usage.report", "usage.snapshot", "user.tenants", "user.use_tenant", "user.whoami"] },
|
|
13414
13414
|
{ "id": "onboarding.create_invite", "title": "Create onboarding invite", "description": "Create a pending invite for an onboarding team member.", "required_scope": "tenant", "confirmation": "none", "trusted_execution": { "mode": "always_human", "risk_flags": ["external_send"], "rationale": "Trusted mode cannot bypass this command's human confirmation or high-risk boundary." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "email": { "type": "string", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "role": { "default": "member", "type": "string", "enum": ["owner", "admin", "steward", "member"] }, "flags": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "required": ["email"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "invite_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)$" }, "email": { "type": "string", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "role": { "type": "string", "enum": ["owner", "admin", "steward", "member"] }, "token": { "type": "string", "minLength": 1 } }, "required": ["invite_id", "email", "role", "token"], "additionalProperties": false }, "help": "Invites should give humans access to the company without assigning work directly to people instead of seats.", "guide_slugs": ["settings-members-and-invites-guide"], "stages": ["company_setup"], "related_command_ids": ["agent.go_live", "agent.run_dry_run", "aicos.brain_settings.get", "aicos.brain_settings.update", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "charter.sign_manifest", "charter.update_draft", "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", "credential.ingress", "friction.file_issue", "friction.list", "friction.resolve", "integration.list", "integration.readiness", "integration.status", "integration.test", "mcp_token.create", "mcp_token.list", "mcp_token.revoke", "member.invite", "member.remove", "member.update", "onboarding.activate", "onboarding.advance_step", "onboarding.attach_reference", "onboarding.finish", "onboarding.rehearse", "onboarding.setup", "onboarding.source_ingest", "onboarding.status", "onboarding.upload_context", "seat.create", "seat.set_type", "settings.agent_policy.get", "settings.agent_policy.update", "settings.confirmation_policy.get", "settings.confirmation_policy.update", "settings.get", "settings.member_visibility.get", "settings.member_visibility.update", "settings.product_learning.get", "settings.product_learning.update", "settings.sync_brief_scope.get", "settings.sync_brief_scope.update", "settings.update", "signal.bind", "signal.confirm_reading", "signal.draft_first_readings", "signal.report", "staffing.assign_agent_dry_run", "staffing.assign_user", "sync.brief.compile", "sync.brief.get", "sync.item.assign", "sync.run.complete", "sync.run.start", "tenant.model_gateway_policy.update", "tenant.rename"] },
|
|
13415
|
-
{ "id": "onboarding.finish", "title": "Finish onboarding", "description": "Mark onboarding complete after the existing onboarding requirements pass.", "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": {}, "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "step": { "type": "string", "
|
|
13415
|
+
{ "id": "onboarding.finish", "title": "Finish onboarding", "description": "Mark onboarding complete after the existing onboarding requirements pass.", "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": {}, "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "step": { "type": "string", "enum": ["setup_path", "company_basics", "how_it_works", "compass_context", "org_intake", "charters_preview", "sync_rhythm", "invite_team", "staff_agent", "finish", "complete"] }, "state": {}, "completed_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" }] } }, "required": ["step", "state", "completed_at"], "additionalProperties": false }, "help": "Finish onboarding when the graph, at least one Charter, and the first operating rhythm are clear.", "guide_slugs": ["rost-implementation-method", "sync-rhythm-playbook"], "stages": ["company_setup", "operating_rhythm"], "related_command_ids": ["agent.go_live", "agent.run_dry_run", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "charter.sign_manifest", "charter.update_draft", "coach.draft_guide", "compass.alignment", "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", "credential.ingress", "escalation.raise", "friction.assist", "friction.file_issue", "friction.get", "friction.link_task", "friction.list", "friction.resolve", "friction.update_status", "goal.bind_measurable", "goal.create", "goal.drop", "goal.get", "goal.list", "goal.list_at_risk", "goal.reassign_owner", "goal.reparent", "goal.set_auto_status", "goal.set_progress", "goal.set_status", "goal.unbind_measurable", "goal.update", "onboarding.activate", "onboarding.advance_step", "onboarding.attach_reference", "onboarding.create_invite", "onboarding.rehearse", "onboarding.setup", "onboarding.source_ingest", "onboarding.status", "onboarding.upload_context", "seat.create", "seat.set_type", "signal.bind", "signal.confirm_reading", "signal.draft_first_readings", "signal.report", "staffing.assign_agent_dry_run", "staffing.assign_user", "sync.brief.compile", "sync.brief.get", "sync.item.assign", "sync.run.complete", "sync.run.start", "task.accept", "task.complete", "task.confirm_proposal", "task.create", "task.decline", "task.decline_proposal", "task.list"] },
|
|
13416
13416
|
{ "id": "onboarding.rehearse", "title": "Rehearse onboarding agents", "description": "Run the exact setup receipt's agents through a resumable sandbox-only rehearsal batch. Returns immutable evidence and never stages activation.", "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": { "idempotency_key": { "type": "string", "minLength": 1, "maxLength": 120 }, "setup_application_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_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_receipt_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": ["idempotency_key", "setup_application_id", "expected_input_digest", "expected_receipt_revision"], "additionalProperties": false }, "output_schema": { "anyOf": [{ "type": "object", "properties": { "status": { "type": "string", "const": "in_progress" }, "batch": { "type": "object", "properties": { "batch_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)$" }, "setup_application_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)$" }, "implementation_run_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" }] }, "idempotency_key": { "type": "string", "minLength": 1, "maxLength": 120 }, "rehearsal_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_receipt_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "expected_agent_set_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_agents": { "minItems": 1, "maxItems": 100, "type": "array", "items": { "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)$" }, "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)$" }, "configuration_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" } }, "required": ["agent_id", "seat_id", "configuration_digest"], "additionalProperties": false } }, "batch_attempt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "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)))$" } }, "required": ["batch_id", "setup_application_id", "implementation_run_id", "idempotency_key", "rehearsal_input_digest", "expected_input_digest", "expected_receipt_revision", "expected_agent_set_digest", "expected_agents", "batch_attempt", "created_at"], "additionalProperties": false }, "checkpoints": { "minItems": 1, "maxItems": 100, "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "checkpoint_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)$" }, "batch_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)$" }, "runtime_run_key": { "type": "string", "minLength": 1, "maxLength": 240 }, "configuration_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "status": { "type": "string", "const": "pending" }, "rehearsal_run_id": { "type": "null" }, "claimed_at": { "type": "null" }, "lease_expires_at": { "type": "null" }, "started_at": { "type": "null" }, "completed_at": { "type": "null" } }, "required": ["checkpoint_id", "batch_id", "agent_id", "seat_id", "runtime_run_key", "configuration_digest", "status", "rehearsal_run_id", "claimed_at", "lease_expires_at", "started_at", "completed_at"], "additionalProperties": false }, { "type": "object", "properties": { "checkpoint_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)$" }, "batch_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)$" }, "runtime_run_key": { "type": "string", "minLength": 1, "maxLength": 240 }, "configuration_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "status": { "type": "string", "const": "running" }, "rehearsal_run_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" }] }, "claimed_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)))$" }, "lease_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)))$" }, "started_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)))$" }, "completed_at": { "type": "null" } }, "required": ["checkpoint_id", "batch_id", "agent_id", "seat_id", "runtime_run_key", "configuration_digest", "status", "rehearsal_run_id", "claimed_at", "lease_expires_at", "started_at", "completed_at"], "additionalProperties": false }, { "type": "object", "properties": { "checkpoint_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)$" }, "batch_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)$" }, "runtime_run_key": { "type": "string", "minLength": 1, "maxLength": 240 }, "configuration_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "status": { "type": "string", "enum": ["passed", "failed"] }, "rehearsal_run_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)$" }, "claimed_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)))$" }, "lease_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)))$" }, "started_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)))$" }, "completed_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)))$" } }, "required": ["checkpoint_id", "batch_id", "agent_id", "seat_id", "runtime_run_key", "configuration_digest", "status", "rehearsal_run_id", "claimed_at", "lease_expires_at", "started_at", "completed_at"], "additionalProperties": false }] } }, "next_action": { "type": "string", "const": "retry" } }, "required": ["status", "batch", "checkpoints", "next_action"], "additionalProperties": false }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["passed", "failed"] }, "batch_receipt": { "type": "object", "properties": { "receipt_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)$" }, "batch_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)$" }, "setup_application_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)$" }, "implementation_run_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" }] }, "expected_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_receipt_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "rehearsal_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_agent_set_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "status": { "type": "string", "enum": ["passed", "failed"] }, "agent_count": { "type": "integer", "exclusiveMinimum": 0, "maximum": 100 }, "started_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)))$" }, "completed_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)))$" } }, "required": ["receipt_id", "batch_id", "setup_application_id", "implementation_run_id", "expected_input_digest", "expected_receipt_revision", "rehearsal_input_digest", "expected_agent_set_digest", "status", "agent_count", "started_at", "completed_at"], "additionalProperties": false }, "agent_receipts": { "minItems": 1, "maxItems": 100, "type": "array", "items": { "type": "object", "properties": { "receipt_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)$" }, "batch_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)$" }, "setup_application_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)$" }, "implementation_run_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" }] }, "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)$" }, "rehearsal_run_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)$" }, "caller_idempotency_key": { "type": "string", "minLength": 1, "maxLength": 120 }, "rehearsal_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_input_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "expected_receipt_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "configuration_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }, "status": { "type": "string", "enum": ["passed", "failed"] }, "evidence": { "type": "object", "properties": { "tool_previews": { "maxItems": 100, "type": "array", "items": { "type": "object", "properties": { "tool_name": { "type": "string", "minLength": 1, "maxLength": 160 }, "operation": { "type": "string", "minLength": 1, "maxLength": 160 }, "summary": { "type": "string", "minLength": 1, "maxLength": 1e3 } }, "required": ["tool_name", "operation", "summary"], "additionalProperties": false } }, "manifest_holds": { "maxItems": 100, "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", "minLength": 1, "maxLength": 120 }, "summary": { "type": "string", "minLength": 1, "maxLength": 1e3 } }, "required": ["code", "summary"], "additionalProperties": false } }, "errors": { "maxItems": 100, "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", "minLength": 1, "maxLength": 120 }, "message": { "type": "string", "minLength": 1, "maxLength": 1e3 }, "retryable": { "type": "boolean" } }, "required": ["code", "message", "retryable"], "additionalProperties": false } } }, "required": ["tool_previews", "manifest_holds", "errors"], "additionalProperties": false }, "started_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)))$" }, "completed_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)))$" } }, "required": ["receipt_id", "batch_id", "setup_application_id", "implementation_run_id", "agent_id", "seat_id", "rehearsal_run_id", "caller_idempotency_key", "rehearsal_input_digest", "expected_input_digest", "expected_receipt_revision", "configuration_digest", "status", "evidence", "started_at", "completed_at"], "additionalProperties": false } }, "next_action": { "type": "string", "enum": ["activate", "fix_and_retry"] } }, "required": ["status", "batch_receipt", "agent_receipts", "next_action"], "additionalProperties": false }] }, "help": "Run the exact setup receipt's agents through the sandbox-only rehearsal batch. It returns immutable terminal evidence and never stages activation, arms schedules, accesses credentials, or sends externally.", "guide_slugs": ["rost-implementation-method", "mcp-and-cli-guide", "agent-reference-map"], "stages": ["staffing"], "related_command_ids": ["agent_setup.get", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.fleet_digest", "agent.get_run", "agent.go_live", "agent.list_fleet", "agent.list_runs", "agent.list_tool_calls", "agent.run_dry_run", "agent.status", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "charter.sign_manifest", "charter.update_draft", "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", "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.activate", "onboarding.advance_step", "onboarding.attach_reference", "onboarding.create_invite", "onboarding.finish", "onboarding.resume", "onboarding.setup", "onboarding.source_ingest", "onboarding.status", "onboarding.upload_context", "runner.diagnose", "runner.repair", "seat.create", "seat.create_complete", "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.rename", "tool_grants.tenant.update", "usage.report", "usage.snapshot", "user.tenants", "user.use_tenant", "user.whoami"] },
|
|
13417
13417
|
{ "id": "onboarding.resume", "title": "Onboard resume", "description": "Return the onboarding resume state: path choice, pending setup, and the next step.", "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": {}, "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "path_choice": { "anyOf": [{ "type": "string", "enum": ["guided", "agent_led"] }, { "type": "null" }] }, "setup_pending": { "type": "boolean" }, "resume_kind": { "type": "string", "enum": ["guided", "agent_led", "complete"] }, "web_url": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "next_command": { "anyOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["path_choice", "setup_pending", "resume_kind", "web_url", "next_command"] }, "help": "Resume an in-progress onboarding session from the implementation bootstrap principal; reports path choice, pending setup, and the next step.", "guide_slugs": ["rost-implementation-method", "agent-reference-map"], "stages": ["company_setup"], "related_command_ids": ["agent_setup.get", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.fleet_digest", "agent.get_run", "agent.go_live", "agent.list_fleet", "agent.list_runs", "agent.list_tool_calls", "agent.run_dry_run", "agent.status", "charter.approve", "charter.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.reject", "escalation.resolve", "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.status", "onboarding.upload_context", "runner.diagnose", "runner.repair", "seat.create", "seat.create_complete", "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", "system.health", "tenant.anthropic_key.disable", "tenant.rename", "tool_grants.tenant.update", "usage.report", "usage.snapshot", "user.tenants", "user.use_tenant", "user.whoami"] },
|
|
13418
|
-
{ "id": "onboarding.select_path", "title": "Select onboarding path", "description": "Record whether this company continues guided onboarding or hands setup to an agent (agent-led). Human-only (web UI or CLI), not an MCP tool. Never marks onboarding complete or grants any authority.", "required_scope": "tenant_admin", "confirmation": "none", "trusted_execution": { "mode": "always_human", "risk_flags": ["admin"], "rationale": "Trusted mode cannot bypass this command's human confirmation or high-risk boundary." }, "expose_over_mcp": false, "input_schema": { "type": "object", "properties": { "path": { "type": "string", "enum": ["guided", "agent_led"] } }, "required": ["path"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "step": { "type": "string", "
|
|
13418
|
+
{ "id": "onboarding.select_path", "title": "Select onboarding path", "description": "Record whether this company continues guided onboarding or hands setup to an agent (agent-led). Human-only (web UI or CLI), not an MCP tool. Never marks onboarding complete or grants any authority.", "required_scope": "tenant_admin", "confirmation": "none", "trusted_execution": { "mode": "always_human", "risk_flags": ["admin"], "rationale": "Trusted mode cannot bypass this command's human confirmation or high-risk boundary." }, "expose_over_mcp": false, "input_schema": { "type": "object", "properties": { "path": { "type": "string", "enum": ["guided", "agent_led"] } }, "required": ["path"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "step": { "type": "string", "enum": ["setup_path", "company_basics", "how_it_works", "compass_context", "org_intake", "charters_preview", "sync_rhythm", "invite_team", "staff_agent", "finish", "complete"] }, "state": {}, "completed_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" }] } }, "required": ["step", "state", "completed_at"], "additionalProperties": false }, "help": "Records whether the owner continues guided onboarding or hands setup to an agent (agent-led). Owner-only; it never marks onboarding complete or grants authority.", "guide_slugs": ["mcp-and-cli-guide", "agent-reference-map"], "stages": ["company_setup"], "related_command_ids": [] },
|
|
13419
13419
|
{ "id": "onboarding.setup", "title": "Apply onboarding setup", "description": "Stage one owner approval for a complete declarative onboarding setup. Approval applies the plan atomically without invites, credentials, external messages, or go-live.", "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": { "schema_version": { "type": "number", "const": 1 }, "idempotency_key": { "type": "string", "minLength": 1, "maxLength": 120 }, "company_name": { "type": "string", "minLength": 2, "maxLength": 120 }, "sources": { "maxItems": 100, "type": "array", "items": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "source_upload_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)$" }, "title": { "type": "string" }, "kind": { "type": "string", "enum": ["org_chart", "signal_export", "goal_export", "friction_export", "meeting_export", "other"] }, "sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "row_ref": { "type": "string" } }, "required": ["source_key", "source_upload_id", "title", "kind", "sha256"], "additionalProperties": false } }, "reconciliation": { "maxItems": 1e3, "type": "array", "items": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "source_sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "family": { "type": "string", "enum": ["source", "seat", "planned_person", "goal", "signal", "reading", "friction", "task", "schedule", "agent"] }, "input_count": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "normalized_identity_digest": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "applied_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "skipped": { "maxItems": 5e3, "type": "array", "items": { "anyOf": [{ "type": "object", "properties": { "logical_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "reason": { "type": "string", "enum": ["context_only", "invalid", "duplicate", "unsupported"] } }, "required": ["logical_key", "reason"], "additionalProperties": false }, { "type": "object", "properties": { "row_ref": { "type": "string", "minLength": 1, "maxLength": 160 }, "reason": { "type": "string", "enum": ["context_only", "invalid", "duplicate", "unsupported"] } }, "required": ["row_ref", "reason"], "additionalProperties": false }] } } }, "required": ["source_key", "source_sha256", "family", "input_count", "normalized_identity_digest", "applied_count", "skipped"], "additionalProperties": false } }, "compass": { "oneOf": [{ "type": "object", "properties": { "schema_version": { "type": "number", "const": 1 }, "purpose": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "principles": { "minItems": 1, "maxItems": 5, "type": "array", "items": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false } }, "cycle_objectives": { "minItems": 1, "maxItems": 3, "type": "array", "items": { "type": "object", "properties": { "title": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "definition_of_done": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "horizon": { "type": "string", "enum": ["ten_year", "three_year", "one_year", "cycle"] } }, "required": ["title", "definition_of_done", "horizon"], "additionalProperties": false } }, "gaps": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "field": { "type": "string", "minLength": 1 }, "question": { "type": "string", "minLength": 1 }, "severity": { "type": "string", "enum": ["required", "recommended"] }, "reason": { "type": "string", "minLength": 1 } }, "required": ["id", "field", "question", "severity", "reason"], "additionalProperties": false } }, "follow_up_tasks": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string", "minLength": 1 }, "description": { "type": "string", "minLength": 1 }, "acceptance_criteria": { "minItems": 1, "type": "array", "items": { "type": "string", "minLength": 1 } }, "gap_id": { "type": "string", "minLength": 1 } }, "required": ["title", "description", "acceptance_criteria", "gap_id"], "additionalProperties": false } }, "source_ids": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "horizon_goals": { "type": "object", "properties": { "three_year": { "type": "object", "properties": { "title": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "definition_of_done": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "horizon": { "type": "string", "enum": ["ten_year", "three_year", "one_year", "cycle"] } }, "required": ["title", "definition_of_done", "horizon"], "additionalProperties": false }, "one_year": { "type": "object", "properties": { "title": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "definition_of_done": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "horizon": { "type": "string", "enum": ["ten_year", "three_year", "one_year", "cycle"] } }, "required": ["title", "definition_of_done", "horizon"], "additionalProperties": false } }, "required": ["three_year", "one_year"], "additionalProperties": false } }, "required": ["schema_version", "purpose", "principles", "cycle_objectives", "gaps", "follow_up_tasks", "source_ids", "horizon_goals"], "additionalProperties": false }, { "type": "object", "properties": { "schema_version": { "type": "number", "const": 2 }, "purpose": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "principles": { "minItems": 1, "maxItems": 5, "type": "array", "items": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false } }, "cycle_objectives": { "minItems": 1, "maxItems": 3, "type": "array", "items": { "type": "object", "properties": { "title": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "definition_of_done": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "horizon": { "type": "string", "enum": ["ten_year", "three_year", "one_year", "cycle"] } }, "required": ["title", "definition_of_done", "horizon"], "additionalProperties": false } }, "gaps": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "field": { "type": "string", "minLength": 1 }, "question": { "type": "string", "minLength": 1 }, "severity": { "type": "string", "enum": ["required", "recommended"] }, "reason": { "type": "string", "minLength": 1 } }, "required": ["id", "field", "question", "severity", "reason"], "additionalProperties": false } }, "follow_up_tasks": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string", "minLength": 1 }, "description": { "type": "string", "minLength": 1 }, "acceptance_criteria": { "minItems": 1, "type": "array", "items": { "type": "string", "minLength": 1 } }, "gap_id": { "type": "string", "minLength": 1 } }, "required": ["title", "description", "acceptance_criteria", "gap_id"], "additionalProperties": false } }, "source_ids": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "horizon_goals": { "type": "object", "properties": { "ten_year": { "type": "object", "properties": { "title": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "definition_of_done": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "horizon": { "type": "string", "enum": ["ten_year", "three_year", "one_year", "cycle"] } }, "required": ["title", "definition_of_done", "horizon"], "additionalProperties": false }, "three_year": { "type": "object", "properties": { "title": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "definition_of_done": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "horizon": { "type": "string", "enum": ["ten_year", "three_year", "one_year", "cycle"] } }, "required": ["title", "definition_of_done", "horizon"], "additionalProperties": false }, "one_year": { "type": "object", "properties": { "title": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "definition_of_done": { "type": "object", "properties": { "value": { "type": "string", "minLength": 1 }, "citations": { "type": "array", "items": { "type": "object", "properties": { "source_id": { "type": "string", "minLength": 1 }, "document_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)$" }, "label": { "type": "string", "minLength": 1 }, "locator": { "type": "string", "minLength": 1 }, "quote": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["source_id", "label", "locator", "confidence"], "additionalProperties": false } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "placeholder": { "default": false, "type": "boolean" } }, "required": ["value", "citations", "confidence"], "additionalProperties": false }, "horizon": { "type": "string", "enum": ["ten_year", "three_year", "one_year", "cycle"] } }, "required": ["title", "definition_of_done", "horizon"], "additionalProperties": false } }, "required": ["three_year", "one_year"], "additionalProperties": false } }, "required": ["schema_version", "purpose", "principles", "cycle_objectives", "gaps", "follow_up_tasks", "source_ids", "horizon_goals"], "additionalProperties": false }] }, "cycle": { "type": "object", "properties": { "key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "name": { "type": "string", "minLength": 1, "maxLength": 160 }, "starts_on": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "ends_on": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "status": { "type": "string", "const": "active" } }, "required": ["key", "name", "starts_on", "ends_on", "status"], "additionalProperties": false }, "seats": { "minItems": 1, "maxItems": 100, "type": "array", "items": { "type": "object", "properties": { "seat_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "name": { "type": "string" }, "seat_type": { "type": "string", "enum": ["human", "agent", "hybrid"] }, "parent": { "oneOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "existing" }, "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": ["kind", "seat_id"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "logical" }, "seat_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["kind", "seat_key"], "additionalProperties": false }] }, "purpose": { "type": "string", "minLength": 1, "maxLength": 2e3 }, "charter": { "type": "object", "properties": { "payload_version": { "type": "number", "const": 1 }, "purpose": { "type": "string", "minLength": 1 }, "accountabilities": { "minItems": 1, "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string", "minLength": 1 }, "description": { "type": "string", "minLength": 1 } }, "required": ["title", "description"], "additionalProperties": false } }, "decision_authority": { "type": "object", "properties": { "autonomous": { "type": "array", "items": { "type": "object", "properties": { "action": { "type": "string", "minLength": 1 }, "condition": { "type": "string", "minLength": 1 }, "rationale": { "type": "string", "minLength": 1 }, "unanswered_boundary": { "default": false, "type": "boolean" } }, "required": ["action", "condition", "rationale"], "additionalProperties": false } }, "approval": { "type": "array", "items": { "type": "object", "properties": { "action": { "type": "string", "minLength": 1 }, "condition": { "type": "string", "minLength": 1 }, "rationale": { "type": "string", "minLength": 1 }, "unanswered_boundary": { "default": false, "type": "boolean" } }, "required": ["action", "condition", "rationale"], "additionalProperties": false } }, "escalate": { "minItems": 1, "type": "array", "items": { "type": "object", "properties": { "action": { "type": "string", "minLength": 1 }, "condition": { "type": "string", "minLength": 1 }, "rationale": { "type": "string", "minLength": 1 }, "unanswered_boundary": { "default": false, "type": "boolean" } }, "required": ["action", "condition", "rationale"], "additionalProperties": false } } }, "required": ["autonomous", "approval", "escalate"], "additionalProperties": false }, "escalation_rules": { "minItems": 1, "type": "array", "items": { "type": "string", "minLength": 1 } }, "measurables": { "minItems": 1, "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "target": { "type": "string", "minLength": 1 }, "cadence": { "type": "string", "enum": ["daily", "weekly", "monthly", "quarterly"] }, "source": { "type": "string", "enum": ["human", "agent", "integration"] }, "signal": { "type": "object", "properties": { "unit": { "type": "string", "minLength": 1 }, "direction": { "type": "string", "enum": ["up_good", "down_good"] }, "target": { "type": "number" } }, "required": ["unit", "direction", "target"], "additionalProperties": false } }, "required": ["name", "target", "cadence", "source"], "additionalProperties": false } }, "permission_manifest": { "type": "array", "items": { "type": "object", "properties": { "tool": { "type": "string", "minLength": 1 }, "capability_id": { "type": "string", "minLength": 1 }, "integration_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": { "type": "string", "minLength": 1 }, "granted": { "type": "boolean" }, "rationale": { "type": "string", "minLength": 1 }, "scope_tier": { "type": "string", "enum": ["read", "draft", "write_with_approval", "full"] }, "access_policy": { "type": "string", "enum": ["always_allow", "always_ask"] }, "args": { "type": "object", "properties": { "equals": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "$ref": "#/definitions/__schema0" } } }, "additionalProperties": false } }, "required": ["tool", "scope", "granted", "rationale"], "additionalProperties": false } }, "budget": { "type": "object", "properties": { "monthly_usd": { "anyOf": [{ "type": "number", "minimum": 0 }, { "type": "null" }] }, "approval_required_over_usd": { "anyOf": [{ "type": "number", "minimum": 0 }, { "type": "null" }] }, "notes": { "type": "string", "minLength": 1 } }, "required": ["monthly_usd", "approval_required_over_usd", "notes"], "additionalProperties": false }, "unanswered_boundaries": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "seat_type_recommendation": { "type": "object", "properties": { "recommendation": { "type": "string", "enum": ["human", "agent", "hybrid"] }, "rationale": { "type": "string", "minLength": 1 }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 } }, "required": ["recommendation", "rationale", "confidence"], "additionalProperties": false } }, "required": ["payload_version", "purpose", "accountabilities", "decision_authority", "escalation_rules", "measurables", "permission_manifest", "budget"], "additionalProperties": false }, "human_staffing": { "oneOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "owner" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "planned" }, "display_name": { "type": "string" }, "source_ref": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["source_key"], "additionalProperties": false } }, "required": ["kind", "display_name"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "vacant" } }, "required": ["kind"], "additionalProperties": false }] }, "agent": { "type": "object", "properties": { "display_name": { "type": "string" }, "steward": { "oneOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "existing" }, "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": ["kind", "seat_id"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "logical" }, "seat_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["kind", "seat_key"], "additionalProperties": false }] }, "lane": { "type": "string", "enum": ["cloud", "runner"] }, "model_config": { "type": "object", "properties": { "provider": { "type": "string", "enum": ["anthropic"] }, "model": { "type": "string", "minLength": 1, "maxLength": 120, "pattern": "^[^\\n\\r]+$" }, "effort": { "type": "string", "enum": ["low", "medium", "high", "xhigh", "max"] } }, "required": ["provider", "model"], "additionalProperties": false }, "skills": { "maxItems": 50, "type": "array", "items": { "type": "object", "properties": { "slug": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{1,80}$" }, "skill_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)$" }, "content_sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" } }, "required": ["slug", "skill_version_id", "content_sha256"], "additionalProperties": false } }, "schedule_cron": { "anyOf": [{ "type": "string", "minLength": 1, "maxLength": 120 }, { "type": "null" }] }, "schedule_timezone": { "type": "string", "minLength": 1, "maxLength": 100 } }, "required": ["display_name", "steward", "lane", "model_config", "skills", "schedule_cron", "schedule_timezone"], "additionalProperties": false }, "source_uses": { "maxItems": 100, "type": "array", "items": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["source_key"], "additionalProperties": false } } }, "required": ["seat_key", "name", "seat_type", "charter", "human_staffing", "source_uses"], "additionalProperties": false }, "description": "The first seat (seats[0]) must be the plan's single parentless root Seat and adopts the already-provisioned root Seat \u2014 its name must match the provisioned root seat's name after whitespace/case normalization." }, "goals": { "maxItems": 200, "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "title": { "type": "string", "minLength": 1, "maxLength": 200 }, "definition": { "type": "string", "minLength": 1, "maxLength": 2e3 }, "kind": { "type": "string", "enum": ["company_objective", "seat_goal", "milestone"] }, "owner_seat_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "parent_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "source_compass_objective_index": { "type": "integer", "minimum": 0, "maximum": 2 }, "source_ref": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["source_key"], "additionalProperties": false } }, "required": ["key", "title", "definition", "kind", "owner_seat_key"], "additionalProperties": false } }, "signals": { "maxItems": 250, "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "name": { "type": "string", "minLength": 1, "maxLength": 120 }, "owner_seat_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "unit": { "type": "string", "minLength": 1, "maxLength": 40 }, "direction": { "type": "string", "enum": ["up_good", "down_good"] }, "cadence": { "type": "string", "enum": ["daily", "weekly", "monthly", "quarterly", "annual"] }, "source_ref": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["source_key"], "additionalProperties": false } }, "required": ["key", "name", "owner_seat_key", "unit", "direction", "cadence"], "additionalProperties": false } }, "signal_readings": { "maxItems": 5e3, "type": "array", "items": { "type": "object", "properties": { "signal_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "period_start": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "value": { "type": "string", "minLength": 1, "maxLength": 100, "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$" }, "source_ref": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["source_key"], "additionalProperties": false } }, "required": ["signal_key", "period_start", "value"], "additionalProperties": false } }, "frictions": { "maxItems": 250, "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "title": { "type": "string", "minLength": 1, "maxLength": 200 }, "description": { "type": "string", "minLength": 1, "maxLength": 2e3 }, "owner_seat_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "raised_by_seat_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "source_ref": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["source_key"], "additionalProperties": false } }, "required": ["key", "title", "description", "owner_seat_key"], "additionalProperties": false } }, "tasks": { "maxItems": 500, "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "title": { "type": "string", "minLength": 1, "maxLength": 200 }, "description": { "type": "string", "minLength": 1, "maxLength": 2e3 }, "owner_seat_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "goal_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "friction_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "due_on": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "initial_status": { "type": "string", "const": "in_progress" }, "source_ref": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" } }, "required": ["source_key"], "additionalProperties": false } }, "required": ["key", "title", "description", "owner_seat_key", "initial_status"], "additionalProperties": false } }, "sync_brief_scope": { "type": "string", "enum": ["company_wide", "per_cluster"] }, "managed_inference_hard_cap_usd": { "anyOf": [{ "type": "string", "maxLength": 11, "pattern": "^(?:0|[1-9]\\d{0,7})\\.\\d{2}$" }, { "type": "null" }] } }, "required": ["schema_version", "idempotency_key", "company_name", "sources", "reconciliation", "compass", "cycle", "seats", "goals", "signals", "signal_readings", "frictions", "tasks", "sync_brief_scope"], "additionalProperties": false, "definitions": { "__schema0": { "anyOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "array", "items": { "$ref": "#/definitions/__schema0" } }, { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "$ref": "#/definitions/__schema0" } }] } } }, "output_schema": { "type": "object", "properties": { "application_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)$" }, "root_foundation_bound": { "type": "boolean", "const": true }, "receipt": { "type": "object", "properties": { "receipt_revision": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "created": { "type": "object", "propertyNames": { "type": "string", "enum": ["source", "seat", "charter", "decision", "planned_person", "goal", "signal", "reading", "friction", "task", "schedule", "agent", "sync_brief", "onboarding"] }, "additionalProperties": { "maxItems": 5e3, "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)$" } } }, "skipped": { "maxItems": 500, "type": "array", "items": { "type": "object", "properties": { "family": { "type": "string", "enum": ["source", "seat", "charter", "decision", "planned_person", "goal", "signal", "reading", "friction", "task", "schedule", "agent", "sync_brief", "onboarding"] }, "reason": { "type": "string", "enum": ["context_only", "invalid", "duplicate", "unsupported"] }, "count": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": ["family", "reason", "count"], "additionalProperties": false } }, "warnings": { "maxItems": 500, "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", "pattern": "^[a-z][a-z0-9_]{0,63}$" }, "count": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": ["code", "count"], "additionalProperties": false } }, "counts": { "type": "object", "propertyNames": { "type": "string", "pattern": "^[a-z][a-z0-9_]{0,63}$" }, "additionalProperties": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "digests": { "type": "object", "propertyNames": { "type": "string", "pattern": "^[a-z][a-z0-9_]{0,63}$" }, "additionalProperties": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" } }, "agent_bindings": { "maxItems": 100, "type": "array", "items": { "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)$" }, "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)$" }, "configuration_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" } }, "required": ["agent_id", "seat_id", "configuration_digest"], "additionalProperties": false } }, "receipt_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" } }, "required": ["receipt_revision", "created", "skipped", "warnings", "counts", "digests", "receipt_digest"], "additionalProperties": false } }, "required": ["application_id", "root_foundation_bound", "receipt"], "additionalProperties": false }, "help": "Submit the complete declarative setup plan once. It stages one owner confirmation and applies the approved plan atomically without invites, credentials, external messages, or go-live.", "guide_slugs": ["rost-implementation-method", "mcp-and-cli-guide", "agent-reference-map"], "stages": ["company_setup", "graph_design", "charter_design", "staffing"], "related_command_ids": ["agent_grant_intervention.decide", "agent.activation_sign", "agent.go_live", "agent.run_dry_run", "agent.trust.create", "agent.trust.expire", "agent.trust.revoke", "agent.trust.supersede", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "charter.sign_manifest", "charter.update_draft", "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.dismiss", "confirmation.dismiss_stale", "confirmation.list", "confirmation.reject", "confirmation.remint", "credential.ingress", "friction.file_issue", "friction.list", "friction.resolve", "goal.reassign_owner", "goal.reparent", "mcp_token.create", "onboarding.activate", "onboarding.advance_step", "onboarding.attach_reference", "onboarding.create_invite", "onboarding.finish", "onboarding.rehearse", "onboarding.source_ingest", "onboarding.status", "onboarding.upload_context", "seat.create", "seat.set_type", "signal.bind", "signal.confirm_reading", "signal.draft_first_readings", "signal.report", "staffing.assign_agent_dry_run", "staffing.assign_user", "sync.brief.compile", "sync.brief.get", "sync.item.assign", "sync.run.complete", "sync.run.start", "task.confirm_proposal", "task.decline_proposal"] },
|
|
13420
13420
|
{ "id": "onboarding.source_ingest", "title": "Ingest onboarding source", "description": "Retain one bounded setup source under the exact tenant and implementation run.", "required_scope": "tenant", "confirmation": "none", "trusted_execution": { "mode": "always_human", "risk_flags": ["admin"], "rationale": "Source ingestion is bootstrap-only and never inherits Trusted standing execution." }, "expose_over_mcp": true, "input_schema": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "kind": { "type": "string", "enum": ["org_chart", "signal_export", "goal_export", "friction_export", "meeting_export", "other"] }, "title": { "type": "string" }, "content_base64": { "type": "string", "minLength": 1, "maxLength": 6666671 } }, "required": ["source_key", "kind", "title", "content_base64"], "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "source_upload_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)$" }, "descriptor": { "type": "object", "properties": { "kind": { "type": "string", "enum": ["org_chart", "signal_export", "goal_export", "friction_export", "meeting_export", "other"] }, "title": { "type": "string", "minLength": 1, "maxLength": 200 }, "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "byte_count": { "type": "integer", "exclusiveMinimum": 0, "maximum": 5e6 }, "family_manifest": { "minItems": 1, "maxItems": 4, "type": "array", "items": { "type": "object", "properties": { "family": { "type": "string", "enum": ["source", "seat", "planned_person", "goal", "signal", "reading", "friction", "task", "agent"] }, "input_count": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "normalized_identity_digest": { "type": "string", "pattern": "^[0-9a-f]{64}$" } }, "required": ["family", "input_count", "normalized_identity_digest"], "additionalProperties": false } } }, "required": ["kind", "title", "sha256", "byte_count", "family_manifest"], "additionalProperties": false }, "source_ref": { "type": "object", "properties": { "source_key": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,79}$" }, "source_upload_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)$" }, "title": { "type": "string" }, "kind": { "type": "string", "enum": ["org_chart", "signal_export", "goal_export", "friction_export", "meeting_export", "other"] }, "sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "row_ref": { "type": "string" } }, "required": ["source_key", "source_upload_id", "title", "kind", "sha256"], "additionalProperties": false } }, "required": ["source_upload_id", "descriptor", "source_ref"], "additionalProperties": false }, "help": "Ingest one bounded CSV source into encrypted tenant/run-bound retained storage. The server computes its digest and canonical family manifest; paths, URLs, and client digests are not accepted.", "guide_slugs": ["rost-implementation-method", "mcp-and-cli-guide"], "stages": ["company_setup"], "related_command_ids": ["agent.go_live", "agent.run_dry_run", "cascade.import", "charter.approve", "charter.draft", "charter.draft_all", "charter.sign_manifest", "charter.update_draft", "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", "credential.ingress", "friction.file_issue", "friction.list", "friction.resolve", "onboarding.activate", "onboarding.advance_step", "onboarding.attach_reference", "onboarding.create_invite", "onboarding.finish", "onboarding.rehearse", "onboarding.setup", "onboarding.status", "onboarding.upload_context", "seat.create", "seat.set_type", "signal.bind", "signal.confirm_reading", "signal.draft_first_readings", "signal.report", "staffing.assign_agent_dry_run", "staffing.assign_user", "sync.brief.compile", "sync.brief.get", "sync.item.assign", "sync.run.complete", "sync.run.start"] },
|
|
13421
13421
|
{ "id": "onboarding.status", "title": "Onboard status", "description": "Return current onboarding progress, graph summary, and the next recommended actions.", "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": {}, "additionalProperties": false }, "output_schema": { "type": "object", "properties": { "completed_steps": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "missing_requirements": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "graph_summary": { "type": "object", "properties": { "seat_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "active_seat_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "agent_seat_count": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "required": ["seat_count", "active_seat_count", "agent_seat_count"], "additionalProperties": false }, "agent_summary": { "type": "object", "properties": { "draft_setup": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "dry_run": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "live": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "required": ["draft_setup", "dry_run", "live"], "additionalProperties": false }, "onboarded": { "type": "boolean" }, "completed_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" }] }, "next_recommended_actions": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "path_choice": { "anyOf": [{ "type": "string", "enum": ["guided", "agent_led"] }, { "type": "null" }] } }, "required": ["completed_steps", "missing_requirements", "graph_summary", "agent_summary", "onboarded", "completed_at", "next_recommended_actions", "path_choice"], "additionalProperties": false }, "help": "Start by checking onboarding status, then use the implementation method guide to choose the next setup step.", "guide_slugs": ["rost-implementation-method", "agent-reference-map"], "stages": ["company_setup"], "related_command_ids": ["agent_setup.get", "agent_setup.start", "agent_setup.update", "agent_template.list", "agent.configure_tools", "agent.create_custom", "agent.create_from_template", "agent.fleet_digest", "agent.get_run", "agent.go_live", "agent.list_fleet", "agent.list_runs", "agent.list_tool_calls", "agent.run_dry_run", "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", "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", "onboarding.activate", "onboarding.advance_step", "onboarding.attach_reference", "onboarding.create_invite", "onboarding.finish", "onboarding.rehearse", "onboarding.resume", "onboarding.setup", "onboarding.source_ingest", "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.list", "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", "usage.report", "usage.snapshot", "user.tenants", "user.use_tenant", "user.whoami"] },
|
|
@@ -36532,6 +36532,23 @@ var onboardingSetupApprovalProjectionSchema = external_exports.object({
|
|
|
36532
36532
|
])
|
|
36533
36533
|
}).strict();
|
|
36534
36534
|
|
|
36535
|
+
// ../../packages/protocol/src/onboarding-steps.ts
|
|
36536
|
+
var onboardingStepSequence = [
|
|
36537
|
+
"setup_path",
|
|
36538
|
+
"company_basics",
|
|
36539
|
+
"how_it_works",
|
|
36540
|
+
"compass_context",
|
|
36541
|
+
"org_intake",
|
|
36542
|
+
"charters_preview",
|
|
36543
|
+
"sync_rhythm",
|
|
36544
|
+
"invite_team",
|
|
36545
|
+
"staff_agent",
|
|
36546
|
+
"finish"
|
|
36547
|
+
];
|
|
36548
|
+
var advanceableOnboardingStepSchema = external_exports.enum(onboardingStepSequence);
|
|
36549
|
+
var persistedOnboardingStepSchema = external_exports.enum([...onboardingStepSequence, "complete"]);
|
|
36550
|
+
var firstOnboardingStep = onboardingStepSequence[0];
|
|
36551
|
+
|
|
36535
36552
|
// ../../packages/protocol/src/onboarding-setup-preflight.ts
|
|
36536
36553
|
var MAX_ONBOARDING_SETUP_PREFLIGHT_ISSUES = 5e4;
|
|
36537
36554
|
var onboardingSetupPreflightIssueCodeSchema = external_exports.enum([
|
|
@@ -37120,12 +37137,17 @@ var onboardingAttachReferenceOutputSchema = external_exports.object({
|
|
|
37120
37137
|
title: external_exports.string().min(1).nullable()
|
|
37121
37138
|
}).strict();
|
|
37122
37139
|
var onboardingAdvanceStepInputSchema = external_exports.object({
|
|
37123
|
-
|
|
37140
|
+
// DER-2852 round 3: bounded to the canonical sequence. `complete` is excluded
|
|
37141
|
+
// because `onboarding.finish` (confirmation: "human_required") owns that sentinel;
|
|
37142
|
+
// `advance_step` is confirmation: "none" and must not write it.
|
|
37143
|
+
step: advanceableOnboardingStepSchema,
|
|
37124
37144
|
state: external_exports.record(external_exports.string(), external_exports.unknown()).default({}),
|
|
37125
37145
|
completed: external_exports.boolean().default(false)
|
|
37126
37146
|
}).strict();
|
|
37127
37147
|
var onboardingProgressOutputSchema = external_exports.object({
|
|
37128
|
-
|
|
37148
|
+
// DER-2852 round 3: stored rows are canonical steps or the finish-owned
|
|
37149
|
+
// `complete` sentinel (migration 0161). This is the read-side of the same boundary.
|
|
37150
|
+
step: persistedOnboardingStepSchema,
|
|
37129
37151
|
state: external_exports.unknown(),
|
|
37130
37152
|
completed_at: external_exports.string().datetime({ offset: true }).nullable()
|
|
37131
37153
|
}).strict();
|
|
@@ -52405,7 +52427,7 @@ var referenceDocuments = [
|
|
|
52405
52427
|
order: 10,
|
|
52406
52428
|
title: "{{brand}} implementation method",
|
|
52407
52429
|
summary: "The staged operating-system setup path used by humans, CLI sessions, MCP clients, and in-app agents.",
|
|
52408
|
-
version: "2026-07-30.
|
|
52430
|
+
version: "2026-07-30.2",
|
|
52409
52431
|
public: true,
|
|
52410
52432
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
52411
52433
|
stages: ["company_setup", "graph_design", "charter_design", "staffing", "operating_rhythm"],
|
|
@@ -52479,6 +52501,8 @@ var referenceDocuments = [
|
|
|
52479
52501
|
|
|
52480
52502
|
{{brand}} setup is a staged operating-system implementation. The goal is not to mirror a historical org chart. The goal is to make the company legible enough that humans and agents can operate inside the same accountability model.
|
|
52481
52503
|
|
|
52504
|
+
Setup opens with one decision: continue through the guided step rail yourself, or hand the CLI- and MCP-driven implementation off to your own coding agent. Either path drives the same staged implementation below, and provider connections stay human-approved either way \u2014 the choice can change later.
|
|
52505
|
+
|
|
52482
52506
|
## Stage 1: Bring the company into view
|
|
52483
52507
|
|
|
52484
52508
|
Start with the company context that already exists: org charts, team notes, planning docs, process notes, metrics, or a founder transcript. The first output is a rough Compass and a draft Responsibility Graph.
|
|
@@ -52516,6 +52540,8 @@ Durable changes that expand authority require human confirmation.
|
|
|
52516
52540
|
|
|
52517
52541
|
## Stage 5: Run the rhythm
|
|
52518
52542
|
|
|
52543
|
+
Guided setup asks you to set the Sync Brief scope \u2014 one company-wide brief, or one per cluster \u2014 as its own step, scoped against the graph you have built so far. It is not a one-time choice: change it any time in settings. See the Sync rhythm playbook for what the brief compiles.
|
|
52544
|
+
|
|
52519
52545
|
Once the graph is live, run the operating rhythm: Signal tracks measurable health, Friction captures issues, Cascade ties work to goals, and Sync turns the weekly meeting into a decision forum.
|
|
52520
52546
|
|
|
52521
52547
|
The system should surface exceptions before the meeting. Humans should spend Sync time deciding, resolving, and clarifying authority.
|
|
@@ -53680,7 +53706,7 @@ External connectors are being rolled out provider by provider, conservatively (r
|
|
|
53680
53706
|
order: 48,
|
|
53681
53707
|
title: "CLI and MCP installation guide",
|
|
53682
53708
|
summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
|
|
53683
|
-
version: "2026-07-
|
|
53709
|
+
version: "2026-07-31.1",
|
|
53684
53710
|
public: true,
|
|
53685
53711
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
53686
53712
|
stages: ["company_setup", "staffing"],
|
|
@@ -54267,7 +54293,7 @@ These ergonomic wrappers (including the \`{{cli}} agent\` group) require **{{cli
|
|
|
54267
54293
|
|
|
54268
54294
|
**Generated verbs (0.6.0+).** Every registry command now has a first-class \`{{cli}} <namespace> <action>\` verb, projected directly from the command's input schema \u2014 so namespaces that previously had no ergonomic wrapper (for example \`{{cli}} measurable create\`, \`{{cli}} work_order enqueue\`, \`{{cli}} mcp_token create\`) are usable without dropping to the raw \`command <id>\` path. Flags follow the schema field names (\`--seat-id\`, \`--name\`, \u2026); read a command's exact input offline with \`{{cli}} <namespace> <action> --schema\` before calling it, and pass a nested payload with \`--input '<json>'\` or \`--input-file <path>\` (a JSON file read client-side) when a field is a complex object \u2014 explicit field flags merge on top of either payload form. On these generated verbs, a flag the verb does not support is a usage error naming the flag before anything is sent, never silently ignored (the bespoke handler verbs, such as \`status record\` and \`agent create\`, still parse flags by hand and are being hardened separately). \`--json\` still selects machine output, \`--seat <id>\` still sets seat scope, and \`{{cli}} command <id> --json '<body>'\` remains the universal fallback.
|
|
54269
54295
|
|
|
54270
|
-
For a complete Seat, inspect \`{{cli}} seat create-complete --schema\`, then pass the strict nested request with \`{{cli}} seat create-complete --input '<json>' --json\`. The generic \`{{cli}} command seat.create_complete --json '<json>'\` path and the generated MCP tool \`rost_create_complete_seat\` expose the same registry schema and server-side command. \`seat create-complete\` authenticates with an existing implementation-bootstrap credential first (it is one of the vetted bootstrap staging primitives) and falls back to the user session. Staging
|
|
54296
|
+
For a complete Seat, inspect \`{{cli}} seat create-complete --schema\`, then pass the strict nested request with \`{{cli}} seat create-complete --input '<json>' --json\`. The generic \`{{cli}} command seat.create_complete --json '<json>'\` path and the generated MCP tool \`rost_create_complete_seat\` expose the same registry schema and server-side command. \`seat create-complete\` authenticates with an existing implementation-bootstrap credential first (it is one of the vetted bootstrap staging primitives) and falls back to the user session. Staging is the success outcome for this verb: the CLI exits 0 and prints the pending confirmation id and the exact approval URL (\`Approve once: <url>\`), and with \`--json\` it prints the pending-confirmation object verbatim for machines \u2014 the command has done its job at that point. The raw \`{{cli}} command seat.create_complete --json '<json>'\` path renders staging the same way \u2014 the pending-confirmation JSON on stdout, exit 0. The human owner reviews one card covering the Seat, canonical Charter and permission manifest, disclosed staffing, effective agent lane/readiness, exact pinned Skill versions and dependency state, and schedule. Approval applies the proposal in one transaction and returns its application and receipt ids. Any failure rolls back the whole proposal. An optional agent remains in \`dry_run\`; this command never approves go-live. Direct calls use existing parent and Steward Seat ids\u2014logical references are reserved for the later composite onboarding flow. Retained source ingestion is not available on this direct command yet, so \`sources\` and every \`source_uses\` collection must be empty and planned staffing must omit \`source_ref\`; the command rejects source-backed provenance instead of accepting an unverified upload id or caller-supplied digest.
|
|
54271
54297
|
|
|
54272
54298
|
The signed-in app exposes the same Skill command surface at **Skills**, linked from the Agents page (the nav collapse moved it out of the primary sidebar). Use \`/skills\` to filter the tenant library, \`/skills/new\` to build canonical \`SKILL.md\` frontmatter with \`tool.catalog\` dependencies, \`/skills/import\` for bounded GitHub or upload imports, and each Skill detail page to review validation, publish, check Seat dependencies, and assign a published version. During \`/agents/new\`, \`agent_setup.get\` can return \`next_action: "choose_skills"\`; selected Skills are proposed immutable-version assignments and required Skill tools block sign-off/go-live until tool configuration is ready.
|
|
54273
54299
|
|
|
@@ -58564,8 +58590,8 @@ var COMMAND_MANIFEST = [
|
|
|
58564
58590
|
{ "id": "agent.activation_receipt", "namespace": "agent", "action": "activation_receipt", "title": "Build agent activation receipt", "description": "Read the compiled authority receipt for one agent: effective capabilities, connection metadata, stale-scope digest, budget, and always-human boundary.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "agent_id", "flag": "agent-id", "type": "string", "required": true }, { "name": "proposed_budget_cents", "flag": "proposed-budget-cents", "type": "integer", "required": false }], "hasComplexInput": false, "help": "Build the current compiled activation receipt before signing or creating a Trusted grant. Rebuild it after any Charter, capability, connection, schedule, or lane change." },
|
|
58565
58591
|
{ "id": "agent.activation_sign", "namespace": "agent", "action": "activation_sign", "title": "Sign agent activation receipt", "description": "Human steward/admin activation sign-off for the current compiled receipt digest. Refuses stale receipts and records a human decision plus append-only event.", "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": "reason", "flag": "reason", "type": "string", "required": false }], "hasComplexInput": false, "help": "Human steward/admin sign-off for the exact activation receipt digest. Agents can surface the pending confirmation but cannot sign their own authority." },
|
|
58566
58592
|
{ "id": "agent.configure_tools", "namespace": "agent", "action": "configure_tools", "title": "Configure agent tools", "description": "Save tool proposals, declines, and credential-ingress requests for a draft agent. Never stores or echoes secret material; vault refs only.", "requiredScope": "seat", "confirmation": "credential_flow", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }], "hasComplexInput": true, "help": "Connect or decline proposed tools and stage credential-ingress requests; never place raw secrets here \u2014 secrets flow through vault-backed credential.ingress as vault refs only.", "example": { "seat_id": "0190aaaa-aaaa-7aaa-8aaa-aaaaaaaaaaaa", "tool_decisions": [{ "tool": "ap.invoices.read", "decision": "connect" }, { "tool": "email.draft", "decision": "connect" }] } },
|
|
58567
|
-
{ "id": "agent.create_custom", "namespace": "agent", "action": "create_custom", "title": "Create custom agent", "description": "Create a draft custom agent shell and a draft Charter seed from operational answers (what it owns, success, never-do-alone, steward).", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "steward_seat_id", "flag": "steward-seat-id", "type": "string", "required": false }, { "name": "lane", "flag": "lane", "type": "enum", "required": false, "enumValues": ["cloud", "mcp_session", "runner"] }, { "name": "what_it_owns", "flag": "what-it-owns", "type": "string", "required": false }, { "name": "what_success_looks_like", "flag": "what-success-looks-like", "type": "string", "required": false }, { "name": "what_it_must_never_do_alone", "flag": "what-it-must-never-do-alone", "type": "string", "required": false }], "hasComplexInput": true, "help": "Create a draft custom agent from operational answers (what it owns, success, never-do-alone, steward); the Charter Builder owns the contract and go-live stays human-gated.", "example": { "seat_id": "0190aaaa-aaaa-7aaa-8aaa-aaaaaaaaaaaa", "steward_seat_id": "0190bbbb-bbbb-7bbb-8bbb-bbbbbbbbbbbb", "lane": "cloud", "what_it_owns": "Drafting AP invoice entries from inbound vendor emails for human review.", "what_success_looks_like": "Every inbound invoice is drafted within one business day with the correct GL coding.", "what_it_must_never_do_alone": "Never send payment or approve an invoice without a human sign-off." } },
|
|
58568
|
-
{ "id": "agent.create_from_template", "namespace": "agent", "action": "create_from_template", "title": "Create agent from template", "description": "Create a draft stock agent and draft Charter from a stock template. Creates the agent occupancy only when a human steward chain resolves; the agent stays draft until a signed manifest, a passed dry run, and human go-live.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "template_slug", "flag": "template-slug", "type": "string", "required": true }, { "name": "expected_template_version", "flag": "expected-template-version", "type": "string", "required": false }], "hasComplexInput": false, "help": "Create a draft stock agent and draft Charter from a template; the agent occupancy is created only when a human steward chain resolves, and the agent stays draft until a signed manifest, a passed dry run, and human go-live." },
|
|
58593
|
+
{ "id": "agent.create_custom", "namespace": "agent", "action": "create_custom", "title": "Create custom agent", "description": "Create a draft custom agent shell and a draft Charter seed from operational answers (what it owns, success, never-do-alone, steward).", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "steward_seat_id", "flag": "steward-seat-id", "type": "string", "required": false }, { "name": "lane", "flag": "lane", "type": "enum", "required": false, "enumValues": ["cloud", "mcp_session", "runner"] }, { "name": "what_it_owns", "flag": "what-it-owns", "type": "string", "required": false }, { "name": "what_success_looks_like", "flag": "what-success-looks-like", "type": "string", "required": false }, { "name": "what_it_must_never_do_alone", "flag": "what-it-must-never-do-alone", "type": "string", "required": false }], "hasComplexInput": true, "bootstrapStage": true, "help": "Create a draft custom agent from operational answers (what it owns, success, never-do-alone, steward); the Charter Builder owns the contract and go-live stays human-gated.", "example": { "seat_id": "0190aaaa-aaaa-7aaa-8aaa-aaaaaaaaaaaa", "steward_seat_id": "0190bbbb-bbbb-7bbb-8bbb-bbbbbbbbbbbb", "lane": "cloud", "what_it_owns": "Drafting AP invoice entries from inbound vendor emails for human review.", "what_success_looks_like": "Every inbound invoice is drafted within one business day with the correct GL coding.", "what_it_must_never_do_alone": "Never send payment or approve an invoice without a human sign-off." } },
|
|
58594
|
+
{ "id": "agent.create_from_template", "namespace": "agent", "action": "create_from_template", "title": "Create agent from template", "description": "Create a draft stock agent and draft Charter from a stock template. Creates the agent occupancy only when a human steward chain resolves; the agent stays draft until a signed manifest, a passed dry run, and human go-live.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "template_slug", "flag": "template-slug", "type": "string", "required": true }, { "name": "expected_template_version", "flag": "expected-template-version", "type": "string", "required": false }], "hasComplexInput": false, "bootstrapStage": true, "help": "Create a draft stock agent and draft Charter from a template; the agent occupancy is created only when a human steward chain resolves, and the agent stays draft until a signed manifest, a passed dry run, and human go-live." },
|
|
58569
58595
|
{ "id": "agent.decommission", "namespace": "agent", "action": "decommission", "title": "Decommission agent", "description": "Retire an agent occupancy safely. Blocks if it would leave another live agent without a human steward chain.", "requiredScope": "tenant", "confirmation": "dangerous", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "reason", "flag": "reason", "type": "string", "required": false }], "hasComplexInput": false, "help": "Retire an agent occupancy safely; the no-orphan guard blocks any decommission that would leave another live agent without a human steward chain." },
|
|
58570
58596
|
{ "id": "agent.fleet_digest", "namespace": "agent", "action": "fleet_digest", "title": "Get dogfood fleet health digest", "description": "Return a daily tenant fleet health digest with live/idle state, run counts, spend, failed runs, unresolved product errors, notification errors, and next actions.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "window_hours", "flag": "window-hours", "type": "integer", "required": false }, { "name": "error_limit", "flag": "error-limit", "type": "integer", "required": false }], "hasComplexInput": false, "help": "Capture a daily dogfood fleet health digest with fleet state, run counts, spend, failed runs, unresolved errors, failed notifications, and next actions." },
|
|
58571
58597
|
{ "id": "agent.get_run", "namespace": "agent", "action": "get_run", "title": "Get agent run diagnostics", "description": "Return one seat run's diagnostic record: run status, transcript reference, token/cost usage, outcome, and linked product-visible run errors.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "run_id", "flag": "run-id", "type": "string", "required": true }, { "name": "transcript", "flag": "transcript", "type": "boolean", "required": false }], "hasComplexInput": false, "help": "Read one run's diagnostic record, transcript reference, token/cost usage, outcome, and linked product-visible errors." },
|
|
@@ -58610,13 +58636,13 @@ var COMMAND_MANIFEST = [
|
|
|
58610
58636
|
{ "id": "command.list", "namespace": "command", "action": "list", "title": "List commands", "description": "List every callable command id with its title, required scope, confirmation gate, and onboarding stages. Use 'command.describe' for a single command's full contract.", "requiredScope": "user", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "List the callable command surface, then use command.describe for the exact contract of the one you need." },
|
|
58611
58637
|
{ "id": "compass.alignment", "namespace": "compass", "action": "alignment", "title": "Check Compass alignment", "description": "Advisory drift check: scores whether cycle goals still ladder up to the active vision and flags orphan/contradictory goals. Read-only \u2014 it never edits the Compass or any goal.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Advisory drift check: scores whether cycle goals still ladder to the active vision and flags orphan/contradictory goals. Read-only." },
|
|
58612
58638
|
{ "id": "compass.answer_gap", "namespace": "compass", "action": "answer_gap", "title": "Answer Compass gap", "description": "Record a human answer for a Compass gap and create a replacement draft.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "gap_id", "flag": "gap-id", "type": "string", "required": true }, { "name": "answer", "flag": "answer", "type": "string", "required": true }], "hasComplexInput": false, "help": "Answer Compass gaps with explicit human input before turning direction into graph, Charter, or Cascade decisions." },
|
|
58613
|
-
{ "id": "compass.approve_version", "namespace": "compass", "action": "approve_version", "title": "Approve Compass version", "description": "Activate a Compass version by supersession.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "draft_id", "flag": "draft-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Compass approval is a human decision and should anchor later Cascade commitments." },
|
|
58639
|
+
{ "id": "compass.approve_version", "namespace": "compass", "action": "approve_version", "title": "Approve Compass version", "description": "Activate a Compass version by supersession.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "draft_id", "flag": "draft-id", "type": "string", "required": true }], "hasComplexInput": false, "bootstrapStage": true, "help": "Compass approval is a human decision and should anchor later Cascade commitments." },
|
|
58614
58640
|
{ "id": "compass.draft", "namespace": "compass", "action": "draft", "title": "Draft Compass", "description": "Create a Compass draft version.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": true, "help": "Submit a full Compass document; read the Compass authoring guide for the field-by-field contract and worked examples before drafting. Drafting is safe for an agent; approving a version is a human act.", "example": { "doc": { "schema_version": 1, "purpose": { "value": "Help small manufacturers ship quality products on time.", "citations": [], "confidence": 0.9, "placeholder": false }, "principles": [{ "value": "Bias to action; decide with the information we have.", "citations": [], "confidence": 0.9, "placeholder": false }, { "value": "Customers feel the quality of every order.", "citations": [], "confidence": 0.9, "placeholder": false }], "horizon_goals": { "three_year": { "title": { "value": "Reach $10M ARR with a 25-person team", "citations": [], "confidence": 0.9, "placeholder": false }, "definition_of_done": { "value": "ARR is at or above $10M and team headcount is 25 with no key-role gaps.", "citations": [], "confidence": 0.9, "placeholder": false }, "horizon": "three_year" }, "one_year": { "title": { "value": "Hit $3M ARR and 99% on-time delivery", "citations": [], "confidence": 0.9, "placeholder": false }, "definition_of_done": { "value": "Trailing-12-month ARR \u2265 $3M and on-time delivery rate \u2265 99% for two consecutive quarters.", "citations": [], "confidence": 0.9, "placeholder": false }, "horizon": "one_year" } }, "cycle_objectives": [{ "title": { "value": "Cut order-to-ship cycle time by 20%", "citations": [], "confidence": 0.9, "placeholder": false }, "definition_of_done": { "value": "Median order-to-ship time is 20% lower than the prior cycle baseline.", "citations": [], "confidence": 0.9, "placeholder": false }, "horizon": "cycle" }], "gaps": [], "follow_up_tasks": [], "source_ids": [] } } },
|
|
58615
58641
|
{ "id": "compass.get_current", "namespace": "compass", "action": "get_current", "title": "Get current Compass", "description": "Return the active and draft Compass versions plus the source documents that informed them.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Read the active and draft Compass before drafting goals or recommending direction changes." },
|
|
58616
58642
|
{ "id": "compass.import", "namespace": "compass", "action": "import", "title": "Import a ninety V/TO into a Compass draft", "description": "AI-draft a Compass from a ninety V/TO (values -> principles, 10/3/1-year -> horizons, Rocks -> cycle objectives). Produces a DRAFT a human confirms by supersession; never writes an accepted Compass.", "requiredScope": "tenant_admin", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "dry_run", "flag": "dry-run", "type": "boolean", "required": false }, { "name": "source_name", "flag": "source-name", "type": "string", "required": false }, { "name": "text", "flag": "text", "type": "string", "required": true }], "hasComplexInput": false, "help": "AI-draft a Compass from a ninety V/TO (values -> principles, 10/3/1-year -> horizons, Rocks -> cycle objectives). Lands a draft a human confirms; idempotent by document content." },
|
|
58617
58643
|
{ "id": "compass.list_gaps", "namespace": "compass", "action": "list_gaps", "title": "List Compass gaps", "description": "Return unanswered and answered Compass context gaps for the latest draft or active version.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "List unanswered Compass gaps so a human can answer them before direction anchors graph or Cascade work." },
|
|
58618
58644
|
{ "id": "compass.reject_draft", "namespace": "compass", "action": "reject_draft", "title": "Reject Compass draft", "description": "Reject and remove a draft Compass version.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "draft_id", "flag": "draft-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Reject Compass drafts when the direction, language, or company intent is not ready to anchor implementation." },
|
|
58619
|
-
{ "id": "compass.set", "namespace": "compass", "action": "set", "title": "Set Compass", "description": "Compatibility command for the DER-626 MCP Compass tool.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "draft_id", "flag": "draft-id", "type": "string", "required": false }, { "name": "approve", "flag": "approve", "type": "boolean", "required": false }], "hasComplexInput": true, "help": "Set Compass drafts in the product's own vocabulary and approve only with explicit human confirmation." },
|
|
58645
|
+
{ "id": "compass.set", "namespace": "compass", "action": "set", "title": "Set Compass", "description": "Compatibility command for the DER-626 MCP Compass tool.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "draft_id", "flag": "draft-id", "type": "string", "required": false }, { "name": "approve", "flag": "approve", "type": "boolean", "required": false }], "hasComplexInput": true, "bootstrapStage": true, "help": "Set Compass drafts in the product's own vocabulary and approve only with explicit human confirmation." },
|
|
58620
58646
|
{ "id": "compass.show_markdown", "namespace": "compass", "action": "show_markdown", "title": "Show Compass as markdown", "description": "Compose the current Compass and its open gaps into a clean, human-skimmable markdown card for review.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Render the current Compass and its open gaps as a clean markdown card to show your human a quick review." },
|
|
58621
58647
|
{ "id": "compass.update_draft", "namespace": "compass", "action": "update_draft", "title": "Update Compass draft", "description": "Replace a draft Compass document.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "draft_id", "flag": "draft-id", "type": "string", "required": true }], "hasComplexInput": true, "help": "Pass the compass_version_id returned by compass.draft as draft_id; update_draft replaces only an unpublished draft in this tenant." },
|
|
58622
58648
|
{ "id": "confirmation.activation_set.list", "namespace": "confirmation", "action": "activation_set.list", "title": "List activation approval sets", "description": "List agent-authored activation confirmation sets that the caller can review.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Review the routine activation confirmations from one implementation run before approving them in dependency order. Sensitive, dangerous, and previously-failed confirmations are not in this set \u2014 they stay in the general confirmation list (confirmation.list) and are approved individually. Each redacted_args is a partial projection of the proposal: content may be omitted, and no surface today renders it in full." },
|
|
@@ -58695,15 +58721,15 @@ var COMMAND_MANIFEST = [
|
|
|
58695
58721
|
{ "id": "notification.settings.get", "namespace": "notification", "action": "settings.get", "title": "Get notification settings", "description": "Read tenant notification preferences (escalations, Sync brief, default channel).", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Read notification preferences before changing escalation or Sync brief delivery." },
|
|
58696
58722
|
{ "id": "notification.settings.update", "namespace": "notification", "action": "settings.update", "title": "Update notification settings", "description": "Update tenant notification preferences.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "escalations_enabled", "flag": "escalations-enabled", "type": "boolean", "required": false }, { "name": "sync_brief_enabled", "flag": "sync-brief-enabled", "type": "boolean", "required": false }, { "name": "default_channel", "flag": "default-channel", "type": "enum", "required": false, "enumValues": ["slack", "email", "in_app"] }], "hasComplexInput": false, "help": "Update notification preferences for escalations, Sync briefs, and the default channel." },
|
|
58697
58723
|
{ "id": "notification.test", "namespace": "notification", "action": "test", "title": "Send test notification", "description": "Emit an in-app test notification to the acting human to verify delivery is wired.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Send an in-app test notification to confirm the delivery path is wired." },
|
|
58698
|
-
{ "id": "onboarding.activate", "namespace": "onboarding", "action": "activate", "title": "Activate onboarding agents", "description": "Stage one owner approval to activate every agent in an applied onboarding receipt and complete onboarding atomically.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "idempotency_key", "flag": "idempotency-key", "type": "string", "required": true }, { "name": "setup_application_id", "flag": "setup-application-id", "type": "string", "required": true }, { "name": "expected_input_digest", "flag": "expected-input-digest", "type": "string", "required": true }, { "name": "expected_receipt_revision", "flag": "expected-receipt-revision", "type": "integer", "required": true }, { "name": "terminal_rehearsal_batch_receipt_id", "flag": "terminal-rehearsal-batch-receipt-id", "type": "string", "required": true }], "hasComplexInput": true, "help": "After a terminal all-passed onboarding rehearsal, submit its exact batch receipt, per-agent run IDs, and configuration digests. One owner approval activates the entire group and completes onboarding atomically." },
|
|
58699
|
-
{ "id": "onboarding.advance_step", "namespace": "onboarding", "action": "advance_step", "title": "Advance onboarding step", "description": "Persist the current onboarding step after server-side validation.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "step", "flag": "step", "type": "
|
|
58724
|
+
{ "id": "onboarding.activate", "namespace": "onboarding", "action": "activate", "title": "Activate onboarding agents", "description": "Stage one owner approval to activate every agent in an applied onboarding receipt and complete onboarding atomically.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "idempotency_key", "flag": "idempotency-key", "type": "string", "required": true }, { "name": "setup_application_id", "flag": "setup-application-id", "type": "string", "required": true }, { "name": "expected_input_digest", "flag": "expected-input-digest", "type": "string", "required": true }, { "name": "expected_receipt_revision", "flag": "expected-receipt-revision", "type": "integer", "required": true }, { "name": "terminal_rehearsal_batch_receipt_id", "flag": "terminal-rehearsal-batch-receipt-id", "type": "string", "required": true }], "hasComplexInput": true, "bootstrapStage": true, "help": "After a terminal all-passed onboarding rehearsal, submit its exact batch receipt, per-agent run IDs, and configuration digests. One owner approval activates the entire group and completes onboarding atomically." },
|
|
58725
|
+
{ "id": "onboarding.advance_step", "namespace": "onboarding", "action": "advance_step", "title": "Advance onboarding step", "description": "Persist the current onboarding step after server-side validation.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "step", "flag": "step", "type": "enum", "required": true, "enumValues": ["setup_path", "company_basics", "how_it_works", "compass_context", "org_intake", "charters_preview", "sync_rhythm", "invite_team", "staff_agent", "finish"] }, { "name": "completed", "flag": "completed", "type": "boolean", "required": false }], "hasComplexInput": true, "help": "Advance onboarding only after the current setup step is represented in the tenant state." },
|
|
58700
58726
|
{ "id": "onboarding.attach_reference", "namespace": "onboarding", "action": "attach_reference", "title": "Attach reference document", "description": "Attach a company reference document (text/markdown) so Compass and Charters can cite it. Reference-only \u2014 it does not build a Compass; convert each meaningful doc to markdown and attach it with a title, kind, and source.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "text", "flag": "text", "type": "string", "required": true }, { "name": "filename", "flag": "filename", "type": "string", "required": false }, { "name": "mime_type", "flag": "mime-type", "type": "enum", "required": false, "enumValues": ["text/plain", "text/markdown", "text/csv"] }, { "name": "title", "flag": "title", "type": "string", "required": false }, { "name": "kind", "flag": "kind", "type": "enum", "required": false, "enumValues": ["plan", "financial", "org_chart", "process"] }, { "name": "source", "flag": "source", "type": "string", "required": false }], "hasComplexInput": false, "help": "Convert each meaningful company doc to markdown and attach it as a reference (title, kind, source) so Compass and Charters can cite it; this attaches a reference, it does not build a Compass \u2014 author Compass directly.", "example": { "text": "# Company handbook\n\nWe build precision components for the aerospace supply chain.", "filename": "handbook.md", "mime_type": "text/markdown", "title": "Company handbook", "kind": "plan", "source": "handbook/overview.md" } },
|
|
58701
58727
|
{ "id": "onboarding.create_invite", "namespace": "onboarding", "action": "create_invite", "title": "Create onboarding invite", "description": "Create a pending invite for an onboarding team member.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "email", "flag": "email", "type": "string", "required": true }, { "name": "role", "flag": "role", "type": "enum", "required": false, "enumValues": ["owner", "admin", "steward", "member"] }], "hasComplexInput": true, "help": "Invites should give humans access to the company without assigning work directly to people instead of seats." },
|
|
58702
|
-
{ "id": "onboarding.finish", "namespace": "onboarding", "action": "finish", "title": "Finish onboarding", "description": "Mark onboarding complete after the existing onboarding requirements pass.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Finish onboarding when the graph, at least one Charter, and the first operating rhythm are clear." },
|
|
58728
|
+
{ "id": "onboarding.finish", "namespace": "onboarding", "action": "finish", "title": "Finish onboarding", "description": "Mark onboarding complete after the existing onboarding requirements pass.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "bootstrapStage": true, "help": "Finish onboarding when the graph, at least one Charter, and the first operating rhythm are clear." },
|
|
58703
58729
|
{ "id": "onboarding.rehearse", "namespace": "onboarding", "action": "rehearse", "title": "Rehearse onboarding agents", "description": "Run the exact setup receipt's agents through a resumable sandbox-only rehearsal batch. Returns immutable evidence and never stages activation.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "idempotency_key", "flag": "idempotency-key", "type": "string", "required": true }, { "name": "setup_application_id", "flag": "setup-application-id", "type": "string", "required": true }, { "name": "expected_input_digest", "flag": "expected-input-digest", "type": "string", "required": true }, { "name": "expected_receipt_revision", "flag": "expected-receipt-revision", "type": "integer", "required": true }], "hasComplexInput": false, "help": "Run the exact setup receipt's agents through the sandbox-only rehearsal batch. It returns immutable terminal evidence and never stages activation, arms schedules, accesses credentials, or sends externally." },
|
|
58704
58730
|
{ "id": "onboarding.resume", "namespace": "onboarding", "action": "resume", "title": "Onboard resume", "description": "Return the onboarding resume state: path choice, pending setup, and the next step.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Resume an in-progress onboarding session from the implementation bootstrap principal; reports path choice, pending setup, and the next step." },
|
|
58705
58731
|
{ "id": "onboarding.select_path", "namespace": "onboarding", "action": "select_path", "title": "Select onboarding path", "description": "Record whether this company continues guided onboarding or hands setup to an agent (agent-led). Human-only (web UI or CLI), not an MCP tool. Never marks onboarding complete or grants any authority.", "requiredScope": "tenant_admin", "confirmation": "none", "exposeOverMcp": false, "fields": [{ "name": "path", "flag": "path", "type": "enum", "required": true, "enumValues": ["guided", "agent_led"] }], "hasComplexInput": false, "help": "Records whether the owner continues guided onboarding or hands setup to an agent (agent-led). Owner-only; it never marks onboarding complete or grants authority." },
|
|
58706
|
-
{ "id": "onboarding.setup", "namespace": "onboarding", "action": "setup", "title": "Apply onboarding setup", "description": "Stage one owner approval for a complete declarative onboarding setup. Approval applies the plan atomically without invites, credentials, external messages, or go-live.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "schema_version", "flag": "schema-version", "type": "number", "required": true }, { "name": "idempotency_key", "flag": "idempotency-key", "type": "string", "required": true }, { "name": "company_name", "flag": "company-name", "type": "string", "required": true }, { "name": "sync_brief_scope", "flag": "sync-brief-scope", "type": "enum", "required": true, "enumValues": ["company_wide", "per_cluster"] }, { "name": "managed_inference_hard_cap_usd", "flag": "managed-inference-hard-cap-usd", "type": "string", "required": false }], "hasComplexInput": true, "help": "Submit the complete declarative setup plan once. It stages one owner confirmation and applies the approved plan atomically without invites, credentials, external messages, or go-live." },
|
|
58732
|
+
{ "id": "onboarding.setup", "namespace": "onboarding", "action": "setup", "title": "Apply onboarding setup", "description": "Stage one owner approval for a complete declarative onboarding setup. Approval applies the plan atomically without invites, credentials, external messages, or go-live.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "schema_version", "flag": "schema-version", "type": "number", "required": true }, { "name": "idempotency_key", "flag": "idempotency-key", "type": "string", "required": true }, { "name": "company_name", "flag": "company-name", "type": "string", "required": true }, { "name": "sync_brief_scope", "flag": "sync-brief-scope", "type": "enum", "required": true, "enumValues": ["company_wide", "per_cluster"] }, { "name": "managed_inference_hard_cap_usd", "flag": "managed-inference-hard-cap-usd", "type": "string", "required": false }], "hasComplexInput": true, "bootstrapStage": true, "help": "Submit the complete declarative setup plan once. It stages one owner confirmation and applies the approved plan atomically without invites, credentials, external messages, or go-live." },
|
|
58707
58733
|
{ "id": "onboarding.source_ingest", "namespace": "onboarding", "action": "source_ingest", "title": "Ingest onboarding source", "description": "Retain one bounded setup source under the exact tenant and implementation run.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "source_key", "flag": "source-key", "type": "string", "required": true }, { "name": "kind", "flag": "kind", "type": "enum", "required": true, "enumValues": ["org_chart", "signal_export", "goal_export", "friction_export", "meeting_export", "other"] }, { "name": "title", "flag": "title", "type": "string", "required": true }, { "name": "content_base64", "flag": "content-base64", "type": "string", "required": true }], "hasComplexInput": false, "help": "Ingest one bounded CSV source into encrypted tenant/run-bound retained storage. The server computes its digest and canonical family manifest; paths, URLs, and client digests are not accepted." },
|
|
58708
58734
|
{ "id": "onboarding.status", "namespace": "onboarding", "action": "status", "title": "Onboard status", "description": "Return current onboarding progress, graph summary, and the next recommended actions.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Start by checking onboarding status, then use the implementation method guide to choose the next setup step." },
|
|
58709
58735
|
{ "id": "onboarding.upload_context", "namespace": "onboarding", "action": "upload_context", "title": "Upload org context", "description": "Compatibility alias for onboarding.attach_reference: attach a company reference document (text/markdown) that Compass and Charters can cite. Reference-only \u2014 it does not build a Compass.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "text", "flag": "text", "type": "string", "required": true }, { "name": "filename", "flag": "filename", "type": "string", "required": false }, { "name": "mime_type", "flag": "mime-type", "type": "enum", "required": false, "enumValues": ["text/plain", "text/markdown", "text/csv"] }, { "name": "title", "flag": "title", "type": "string", "required": false }, { "name": "kind", "flag": "kind", "type": "enum", "required": false, "enumValues": ["plan", "financial", "org_chart", "process"] }, { "name": "source", "flag": "source", "type": "string", "required": false }], "hasComplexInput": false, "help": "Compatibility alias for onboarding.attach_reference: attach a company reference document so Compass and Charters can cite it. It does not build a Compass.", "example": { "text": "# Company handbook\n\nWe build precision components for the aerospace supply chain.", "filename": "handbook.md", "mime_type": "text/markdown", "title": "Company handbook", "kind": "plan", "source": "handbook/overview.md" } },
|
|
@@ -58715,7 +58741,7 @@ var COMMAND_MANIFEST = [
|
|
|
58715
58741
|
{ "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." },
|
|
58716
58742
|
{ "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." },
|
|
58717
58743
|
{ "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." },
|
|
58718
|
-
{ "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, "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." },
|
|
58744
|
+
{ "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, "bootstrapStage": true, "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." },
|
|
58719
58745
|
{ "id": "seat.decommission", "namespace": "seat", "action": "decommission", "title": "Decommission seat", "description": "Retire a seat: end occupancies, archive the active charter, revoke seat tokens/credentials, cancel schedules, and emit a tombstone event. Blocks if it would leave another live agent without a human steward chain.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Retiring a seat ends occupancies, archives the active Charter, revokes seat tokens and credentials, and emits a tombstone event. No-orphan guarded. To retire only the agent and keep the seat, use agent.decommission." },
|
|
58720
58746
|
{ "id": "seat.decommission_preview", "namespace": "seat", "action": "decommission_preview", "title": "Preview seat decommission", "description": "Show exactly what retiring a seat would end, revoke, archive, or expire without mutating state. The no-orphan steward guard is still checked when the real decommission executes.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Preview the occupancies, agents, Charter versions, tokens, credentials, work orders, and schedules that seat.decommission would affect without mutating state." },
|
|
58721
58747
|
{ "id": "seat.get", "namespace": "seat", "action": "get", "title": "Get seat detail", "description": "Return seat profile, steward chain, occupancy, Charter ids, agent status, token metadata, and open-work counts.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Inspect a seat's Charter ids, steward chain, occupancy, agent status, token metadata, and open-work counts before acting on it." },
|
|
@@ -58849,6 +58875,183 @@ var COMMAND_MANIFEST = [
|
|
|
58849
58875
|
{ "id": "work.record", "namespace": "work", "action": "record", "title": "Record work", "description": "Append one or more structured business-activity records to the agent work ledger for the acting seat. Batch-accepting, append-only, secret-redacted, and idempotent on dedup_key. Corrections are superseding records.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": true, "help": "Append structured business-activity records (verb + entity refs + outcome + evidence) to the seat's work ledger, in a batch, right after each action succeeds." }
|
|
58850
58876
|
];
|
|
58851
58877
|
|
|
58878
|
+
// src/generator/runtime.ts
|
|
58879
|
+
var UsageError = class extends Error {
|
|
58880
|
+
};
|
|
58881
|
+
var SECRET_ARGV_GUIDANCE = "This command stores a secret and cannot accept it from the command line. Provide the secret through the vault-backed flow \u2014 web Settings or the integration connect flow \u2014 never as a CLI argument (a flag, --input, or --json body would expose it in shell history and process arguments).";
|
|
58882
|
+
function parseFlags(args, booleanFlags = /* @__PURE__ */ new Set()) {
|
|
58883
|
+
const values = /* @__PURE__ */ new Map();
|
|
58884
|
+
const flags = /* @__PURE__ */ new Set();
|
|
58885
|
+
let json2 = false;
|
|
58886
|
+
let seat;
|
|
58887
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
58888
|
+
const token = args[index];
|
|
58889
|
+
if (token === void 0) {
|
|
58890
|
+
continue;
|
|
58891
|
+
}
|
|
58892
|
+
if (!token.startsWith("--")) {
|
|
58893
|
+
throw new UsageError(`Unexpected argument: ${token}`);
|
|
58894
|
+
}
|
|
58895
|
+
const key = token.slice(2);
|
|
58896
|
+
if (key === "json") {
|
|
58897
|
+
json2 = true;
|
|
58898
|
+
continue;
|
|
58899
|
+
}
|
|
58900
|
+
if (key === "seat") {
|
|
58901
|
+
const next2 = args[index + 1];
|
|
58902
|
+
if (next2 === void 0 || next2.startsWith("--")) {
|
|
58903
|
+
throw new UsageError("Missing required --seat value.");
|
|
58904
|
+
}
|
|
58905
|
+
seat = next2;
|
|
58906
|
+
index += 1;
|
|
58907
|
+
continue;
|
|
58908
|
+
}
|
|
58909
|
+
if (booleanFlags.has(key)) {
|
|
58910
|
+
flags.add(key);
|
|
58911
|
+
continue;
|
|
58912
|
+
}
|
|
58913
|
+
const next = args[index + 1];
|
|
58914
|
+
if (next === void 0 || next.startsWith("--")) {
|
|
58915
|
+
flags.add(key);
|
|
58916
|
+
continue;
|
|
58917
|
+
}
|
|
58918
|
+
values.set(key, next);
|
|
58919
|
+
index += 1;
|
|
58920
|
+
}
|
|
58921
|
+
return { json: json2, ...seat === void 0 ? {} : { seat }, values, flags };
|
|
58922
|
+
}
|
|
58923
|
+
function requireValue2(parsed, key) {
|
|
58924
|
+
const value = parsed.values.get(key);
|
|
58925
|
+
if (value === void 0 || value.length === 0) {
|
|
58926
|
+
throw new UsageError(`Missing required --${key} value.`);
|
|
58927
|
+
}
|
|
58928
|
+
return value;
|
|
58929
|
+
}
|
|
58930
|
+
function optionalValue(parsed, key) {
|
|
58931
|
+
const value = parsed.values.get(key);
|
|
58932
|
+
return value === void 0 || value.length === 0 ? void 0 : value;
|
|
58933
|
+
}
|
|
58934
|
+
function parseNumber(parsed, key, options) {
|
|
58935
|
+
const raw = parsed.values.get(key);
|
|
58936
|
+
if (raw === void 0 || raw.length === 0) {
|
|
58937
|
+
if (options.required) {
|
|
58938
|
+
throw new UsageError(`Missing required --${key} value.`);
|
|
58939
|
+
}
|
|
58940
|
+
return void 0;
|
|
58941
|
+
}
|
|
58942
|
+
const parsedNumber = Number(raw);
|
|
58943
|
+
if (!Number.isFinite(parsedNumber)) {
|
|
58944
|
+
throw new UsageError(`--${key} must be a finite number.`);
|
|
58945
|
+
}
|
|
58946
|
+
return parsedNumber;
|
|
58947
|
+
}
|
|
58948
|
+
function parseList(parsed, key) {
|
|
58949
|
+
const raw = parsed.values.get(key);
|
|
58950
|
+
if (raw === void 0 || raw.length === 0) {
|
|
58951
|
+
return void 0;
|
|
58952
|
+
}
|
|
58953
|
+
return raw.split(",").map((entry) => entry.trim()).filter((entry) => entry.length > 0);
|
|
58954
|
+
}
|
|
58955
|
+
function withOptional(base, extra) {
|
|
58956
|
+
const next = { ...base };
|
|
58957
|
+
for (const [key, value] of Object.entries(extra)) {
|
|
58958
|
+
if (value !== void 0) {
|
|
58959
|
+
next[key] = value;
|
|
58960
|
+
}
|
|
58961
|
+
}
|
|
58962
|
+
return next;
|
|
58963
|
+
}
|
|
58964
|
+
function asRecord2(value) {
|
|
58965
|
+
return typeof value === "object" && value !== null ? value : {};
|
|
58966
|
+
}
|
|
58967
|
+
function asArray(value) {
|
|
58968
|
+
return Array.isArray(value) ? value : [];
|
|
58969
|
+
}
|
|
58970
|
+
function field2(record2, key) {
|
|
58971
|
+
const value = record2[key];
|
|
58972
|
+
if (value === null || value === void 0) {
|
|
58973
|
+
return "\u2014";
|
|
58974
|
+
}
|
|
58975
|
+
return String(value);
|
|
58976
|
+
}
|
|
58977
|
+
function usageWithSchemaFooter(usage2, bin) {
|
|
58978
|
+
return `${usage2}
|
|
58979
|
+
discover a command's exact input with: ${bin} command schema <id>`;
|
|
58980
|
+
}
|
|
58981
|
+
async function dispatch(context, group, args, actions, usage2) {
|
|
58982
|
+
const usageText = usageWithSchemaFooter(usage2, context.binName);
|
|
58983
|
+
const action = args[0];
|
|
58984
|
+
if (action === "--help" || action === "-h" || action === "help") {
|
|
58985
|
+
context.io.stdout.write(`${usageText}
|
|
58986
|
+
`);
|
|
58987
|
+
return 0;
|
|
58988
|
+
}
|
|
58989
|
+
const handler = action === void 0 ? void 0 : actions[action];
|
|
58990
|
+
if (!handler) {
|
|
58991
|
+
context.io.stderr.write(`${usageText}
|
|
58992
|
+
`);
|
|
58993
|
+
return 1;
|
|
58994
|
+
}
|
|
58995
|
+
try {
|
|
58996
|
+
return await handler(context, args.slice(1));
|
|
58997
|
+
} catch (error51) {
|
|
58998
|
+
if (error51 instanceof UsageError) {
|
|
58999
|
+
context.io.stderr.write(`${error51.message}
|
|
59000
|
+
${usageText}
|
|
59001
|
+
`);
|
|
59002
|
+
return 1;
|
|
59003
|
+
}
|
|
59004
|
+
throw error51;
|
|
59005
|
+
}
|
|
59006
|
+
}
|
|
59007
|
+
function execute(context, parsed, commandId, body, format) {
|
|
59008
|
+
const autoConfirm = parsed.flags.has("yes") || parsed.flags.has("y");
|
|
59009
|
+
const options = {
|
|
59010
|
+
...parsed.seat === void 0 ? {} : { targetSeatId: parsed.seat },
|
|
59011
|
+
...autoConfirm ? { autoConfirm: true } : {}
|
|
59012
|
+
};
|
|
59013
|
+
if (parsed.json) {
|
|
59014
|
+
return context.run(context.client, commandId, body, void 0, options);
|
|
59015
|
+
}
|
|
59016
|
+
return context.run(context.client, commandId, body, format, options);
|
|
59017
|
+
}
|
|
59018
|
+
var STAGE_CLASS_COMMAND_IDS = new Set(
|
|
59019
|
+
COMMAND_MANIFEST.filter((entry) => entry.bootstrapStage === true).map((entry) => entry.id)
|
|
59020
|
+
);
|
|
59021
|
+
function isStageClassCommand(commandId) {
|
|
59022
|
+
return STAGE_CLASS_COMMAND_IDS.has(commandId);
|
|
59023
|
+
}
|
|
59024
|
+
function stagedConfirmationFromError(commandId, error51) {
|
|
59025
|
+
if (!isStageClassCommand(commandId)) {
|
|
59026
|
+
return null;
|
|
59027
|
+
}
|
|
59028
|
+
if (!(error51 instanceof CommandClientError) || !error51.response || error51.response.ok || error51.response.error.code !== "COMMAND_CONFIRMATION_REQUIRED") {
|
|
59029
|
+
return null;
|
|
59030
|
+
}
|
|
59031
|
+
const details = error51.response.error.details;
|
|
59032
|
+
if (typeof details !== "object" || details === null) {
|
|
59033
|
+
return null;
|
|
59034
|
+
}
|
|
59035
|
+
const record2 = details;
|
|
59036
|
+
return record2.commandId === commandId ? record2 : null;
|
|
59037
|
+
}
|
|
59038
|
+
function formatStagedConfirmation(commandId, details, overrides = {}) {
|
|
59039
|
+
const headline = overrides.headline ?? (commandId === "seat.create_complete" ? "Seat creation approval is ready." : `${commandId} approval is ready.`);
|
|
59040
|
+
const guidance = overrides.guidance ?? (commandId === "seat.create_complete" ? "After the owner approves, re-run this command with the identical input to read the applied Seat receipt." : void 0);
|
|
59041
|
+
const approveVia = asRecord2(details.approveVia);
|
|
59042
|
+
const lines = [
|
|
59043
|
+
headline,
|
|
59044
|
+
`Confirmation: ${field2(details, "confirmationId")}`
|
|
59045
|
+
];
|
|
59046
|
+
if (typeof approveVia.webUrl === "string") {
|
|
59047
|
+
lines.push(`Approve once: ${approveVia.webUrl}`);
|
|
59048
|
+
}
|
|
59049
|
+
if (guidance !== void 0) {
|
|
59050
|
+
lines.push(guidance);
|
|
59051
|
+
}
|
|
59052
|
+
return lines.join("\n");
|
|
59053
|
+
}
|
|
59054
|
+
|
|
58852
59055
|
// src/commands/onboarding.ts
|
|
58853
59056
|
var REHEARSE_USAGE = `${cliBrand.binName} onboard rehearse --setup-application-id <uuid> --expected-input-digest <sha256:digest> --expected-receipt-revision <integer> --idempotency-key <key> [--json]`;
|
|
58854
59057
|
var ACTIVATE_USAGE = `${cliBrand.binName} onboard activate --setup-application-id <uuid> --expected-input-digest <sha256:digest> --expected-receipt-revision <integer> --terminal-rehearsal-batch-receipt-id <uuid> --rehearsal-runs '<json-array>' --configuration-digests '<json-array>' --idempotency-key <key> [--json]`;
|
|
@@ -58896,9 +59099,9 @@ async function executeOnboardingInvocation(invocation, io, client, options = {})
|
|
|
58896
59099
|
`);
|
|
58897
59100
|
return 0;
|
|
58898
59101
|
} catch (error51) {
|
|
58899
|
-
const staged =
|
|
59102
|
+
const staged = stagedConfirmationFromError(invocation.commandId, error51);
|
|
58900
59103
|
if (staged !== null) {
|
|
58901
|
-
io.stdout.write(`${invocation.json ? JSON.stringify(staged, null, 2) :
|
|
59104
|
+
io.stdout.write(`${invocation.json ? JSON.stringify(staged, null, 2) : formatStagedOnboardingConfirmation(invocation, staged)}
|
|
58902
59105
|
`);
|
|
58903
59106
|
return 0;
|
|
58904
59107
|
}
|
|
@@ -58947,33 +59150,27 @@ async function resolveOnboardingInvocationFiles(invocation, readFileImpl = readF
|
|
|
58947
59150
|
delete invocation.inputFile;
|
|
58948
59151
|
}
|
|
58949
59152
|
}
|
|
58950
|
-
function
|
|
58951
|
-
|
|
58952
|
-
|
|
58953
|
-
|
|
58954
|
-
|
|
58955
|
-
|
|
59153
|
+
function formatStagedOnboardingConfirmation(invocation, details) {
|
|
59154
|
+
const action = invocation.action;
|
|
59155
|
+
if (action === "setup-status") {
|
|
59156
|
+
return formatStagedConfirmation("onboarding.setup", details, {
|
|
59157
|
+
headline: "Onboarding setup approval is pending. The URL below is the current card: an identical still-valid card is reused as-is; if live state moved, the stale card was superseded and this fresh one minted.",
|
|
59158
|
+
guidance: "After the owner approves, re-run this command with the identical plan to read the immutable setup receipt."
|
|
59159
|
+
});
|
|
58956
59160
|
}
|
|
58957
|
-
|
|
58958
|
-
|
|
58959
|
-
|
|
59161
|
+
if (action === "setup") {
|
|
59162
|
+
return formatStagedConfirmation("onboarding.setup", details, {
|
|
59163
|
+
headline: "Onboarding setup approval is ready.",
|
|
59164
|
+
guidance: "After the owner approves, re-run this command with the identical plan to read the immutable setup receipt."
|
|
59165
|
+
});
|
|
58960
59166
|
}
|
|
58961
|
-
|
|
58962
|
-
|
|
58963
|
-
|
|
58964
|
-
|
|
58965
|
-
|
|
58966
|
-
const lines = [
|
|
58967
|
-
action === "setup-status" ? "Onboarding setup approval is pending. The URL below is the current card: an identical still-valid card is reused as-is; if live state moved, the stale card was superseded and this fresh one minted." : "Onboarding setup approval is ready.",
|
|
58968
|
-
`Confirmation: ${field2(details, "confirmationId")}`
|
|
58969
|
-
];
|
|
58970
|
-
if (typeof approveVia.webUrl === "string") {
|
|
58971
|
-
lines.push(`Approve once: ${approveVia.webUrl}`);
|
|
59167
|
+
if (action === "activate") {
|
|
59168
|
+
return formatStagedConfirmation("onboarding.activate", details, {
|
|
59169
|
+
headline: "Onboarding activation approval is ready.",
|
|
59170
|
+
guidance: "After the owner approves, re-run this command with the identical evidence to read the activation receipt."
|
|
59171
|
+
});
|
|
58972
59172
|
}
|
|
58973
|
-
|
|
58974
|
-
"After the owner approves, re-run this command with the identical plan to read the immutable setup receipt."
|
|
58975
|
-
);
|
|
58976
|
-
return lines.join("\n");
|
|
59173
|
+
return formatStagedConfirmation(invocation.commandId, details);
|
|
58977
59174
|
}
|
|
58978
59175
|
function parseSetupPlanJson(text, flag) {
|
|
58979
59176
|
let parsed;
|
|
@@ -59213,73 +59410,66 @@ function parseJsonArrayFlag(flag, value) {
|
|
|
59213
59410
|
}
|
|
59214
59411
|
}
|
|
59215
59412
|
function formatActivationOutput(output) {
|
|
59216
|
-
const record2 =
|
|
59217
|
-
const
|
|
59218
|
-
if (typeof approveVia.webUrl === "string") {
|
|
59219
|
-
return [
|
|
59220
|
-
"Onboarding activation approval is ready.",
|
|
59221
|
-
`Approve once: ${approveVia.webUrl}`
|
|
59222
|
-
].join("\n");
|
|
59223
|
-
}
|
|
59224
|
-
const receipt = asRecord2(record2.receipt);
|
|
59413
|
+
const record2 = asRecord3(output);
|
|
59414
|
+
const receipt = asRecord3(record2.receipt);
|
|
59225
59415
|
const agents = Array.isArray(receipt.agents) ? receipt.agents : [];
|
|
59226
59416
|
if (record2.status === "activated") {
|
|
59227
59417
|
return [
|
|
59228
59418
|
"Onboarding activation completed.",
|
|
59229
|
-
`Activation receipt: ${
|
|
59419
|
+
`Activation receipt: ${field3(receipt, "activation_receipt_id")}`,
|
|
59230
59420
|
`Agents live: ${agents.length} of ${agents.length}`,
|
|
59231
|
-
`Onboarding completed: ${
|
|
59421
|
+
`Onboarding completed: ${field3(receipt, "onboarding_completed_at")}`
|
|
59232
59422
|
].join("\n");
|
|
59233
59423
|
}
|
|
59234
59424
|
return JSON.stringify(output, null, 2);
|
|
59235
59425
|
}
|
|
59236
59426
|
function formatSourceIngestOutput(output) {
|
|
59237
|
-
const record2 =
|
|
59238
|
-
const descriptor =
|
|
59427
|
+
const record2 = asRecord3(output);
|
|
59428
|
+
const descriptor = asRecord3(record2.descriptor);
|
|
59239
59429
|
const families = Array.isArray(descriptor.family_manifest) ? descriptor.family_manifest : [];
|
|
59240
59430
|
return [
|
|
59241
59431
|
"Source retained for this run.",
|
|
59242
|
-
`Upload: ${
|
|
59243
|
-
`SHA-256: ${
|
|
59244
|
-
`Bytes: ${
|
|
59432
|
+
`Upload: ${field3(record2, "source_upload_id")}`,
|
|
59433
|
+
`SHA-256: ${field3(descriptor, "sha256")}`,
|
|
59434
|
+
`Bytes: ${field3(descriptor, "byte_count")}`,
|
|
59245
59435
|
...families.map((entry) => {
|
|
59246
|
-
const item =
|
|
59247
|
-
return `- ${
|
|
59436
|
+
const item = asRecord3(entry);
|
|
59437
|
+
return `- ${field3(item, "family")}: ${field3(item, "input_count")} rows`;
|
|
59248
59438
|
}),
|
|
59249
59439
|
"Reference it from the setup plan's sources[] via the returned source_ref (run with --json to capture it verbatim)."
|
|
59250
59440
|
].join("\n");
|
|
59251
59441
|
}
|
|
59252
59442
|
function formatAppliedSetupOutput(output) {
|
|
59253
|
-
const record2 =
|
|
59443
|
+
const record2 = asRecord3(output);
|
|
59254
59444
|
if (typeof record2.application_id !== "string") {
|
|
59255
59445
|
return JSON.stringify(output, null, 2);
|
|
59256
59446
|
}
|
|
59257
|
-
const receipt =
|
|
59258
|
-
const digests =
|
|
59447
|
+
const receipt = asRecord3(record2.receipt);
|
|
59448
|
+
const digests = asRecord3(receipt.digests);
|
|
59259
59449
|
return [
|
|
59260
59450
|
"Onboarding setup is applied.",
|
|
59261
|
-
`Setup application: ${
|
|
59262
|
-
`Receipt revision: ${
|
|
59263
|
-
`Input digest: ${
|
|
59264
|
-
`Next: ${cliBrand.binName} onboard rehearse --setup-application-id ${
|
|
59451
|
+
`Setup application: ${field3(record2, "application_id")}`,
|
|
59452
|
+
`Receipt revision: ${field3(receipt, "receipt_revision")}`,
|
|
59453
|
+
`Input digest: ${field3(digests, "input")}`,
|
|
59454
|
+
`Next: ${cliBrand.binName} onboard rehearse --setup-application-id ${field3(record2, "application_id")} --expected-input-digest ${field3(digests, "input")} --expected-receipt-revision ${field3(receipt, "receipt_revision")} --idempotency-key <stable-key> --json`
|
|
59265
59455
|
].join("\n");
|
|
59266
59456
|
}
|
|
59267
59457
|
function formatRehearsalOutput(output) {
|
|
59268
|
-
const record2 =
|
|
59458
|
+
const record2 = asRecord3(output);
|
|
59269
59459
|
if (record2.status === "in_progress") {
|
|
59270
|
-
const batch =
|
|
59460
|
+
const batch = asRecord3(record2.batch);
|
|
59271
59461
|
const checkpoints = Array.isArray(record2.checkpoints) ? record2.checkpoints : [];
|
|
59272
59462
|
const completed = checkpoints.filter((checkpoint) => {
|
|
59273
|
-
const status =
|
|
59463
|
+
const status = asRecord3(checkpoint).status;
|
|
59274
59464
|
return status === "passed" || status === "failed";
|
|
59275
59465
|
}).length;
|
|
59276
59466
|
return [
|
|
59277
59467
|
"Onboarding rehearsal is in progress.",
|
|
59278
|
-
`Batch: ${
|
|
59468
|
+
`Batch: ${field3(batch, "batch_id")}`,
|
|
59279
59469
|
`Checkpoints complete: ${completed} of ${checkpoints.length}`,
|
|
59280
59470
|
...checkpoints.map((checkpoint) => {
|
|
59281
|
-
const item =
|
|
59282
|
-
return `- Agent ${
|
|
59471
|
+
const item = asRecord3(checkpoint);
|
|
59472
|
+
return `- Agent ${field3(item, "agent_id")} / Seat ${field3(item, "seat_id")}: ${field3(item, "status")}`;
|
|
59283
59473
|
}),
|
|
59284
59474
|
"Retry with the same idempotency key to continue this batch."
|
|
59285
59475
|
].join("\n");
|
|
@@ -59295,10 +59485,10 @@ function formatRehearsalOutput(output) {
|
|
|
59295
59485
|
}
|
|
59296
59486
|
return JSON.stringify(output, null, 2);
|
|
59297
59487
|
}
|
|
59298
|
-
function
|
|
59488
|
+
function asRecord3(value) {
|
|
59299
59489
|
return typeof value === "object" && value !== null ? value : {};
|
|
59300
59490
|
}
|
|
59301
|
-
function
|
|
59491
|
+
function field3(record2, key) {
|
|
59302
59492
|
const value = record2[key];
|
|
59303
59493
|
return typeof value === "string" || typeof value === "number" ? String(value) : "\u2014";
|
|
59304
59494
|
}
|
|
@@ -59585,147 +59775,6 @@ function defaultImplementationAccessDeps(appUrl2) {
|
|
|
59585
59775
|
// src/generator/groups.ts
|
|
59586
59776
|
import { readFileSync as readFileSync2 } from "node:fs";
|
|
59587
59777
|
|
|
59588
|
-
// src/generator/runtime.ts
|
|
59589
|
-
var UsageError = class extends Error {
|
|
59590
|
-
};
|
|
59591
|
-
var SECRET_ARGV_GUIDANCE = "This command stores a secret and cannot accept it from the command line. Provide the secret through the vault-backed flow \u2014 web Settings or the integration connect flow \u2014 never as a CLI argument (a flag, --input, or --json body would expose it in shell history and process arguments).";
|
|
59592
|
-
function parseFlags(args, booleanFlags = /* @__PURE__ */ new Set()) {
|
|
59593
|
-
const values = /* @__PURE__ */ new Map();
|
|
59594
|
-
const flags = /* @__PURE__ */ new Set();
|
|
59595
|
-
let json2 = false;
|
|
59596
|
-
let seat;
|
|
59597
|
-
for (let index = 0; index < args.length; index += 1) {
|
|
59598
|
-
const token = args[index];
|
|
59599
|
-
if (token === void 0) {
|
|
59600
|
-
continue;
|
|
59601
|
-
}
|
|
59602
|
-
if (!token.startsWith("--")) {
|
|
59603
|
-
throw new UsageError(`Unexpected argument: ${token}`);
|
|
59604
|
-
}
|
|
59605
|
-
const key = token.slice(2);
|
|
59606
|
-
if (key === "json") {
|
|
59607
|
-
json2 = true;
|
|
59608
|
-
continue;
|
|
59609
|
-
}
|
|
59610
|
-
if (key === "seat") {
|
|
59611
|
-
const next2 = args[index + 1];
|
|
59612
|
-
if (next2 === void 0 || next2.startsWith("--")) {
|
|
59613
|
-
throw new UsageError("Missing required --seat value.");
|
|
59614
|
-
}
|
|
59615
|
-
seat = next2;
|
|
59616
|
-
index += 1;
|
|
59617
|
-
continue;
|
|
59618
|
-
}
|
|
59619
|
-
if (booleanFlags.has(key)) {
|
|
59620
|
-
flags.add(key);
|
|
59621
|
-
continue;
|
|
59622
|
-
}
|
|
59623
|
-
const next = args[index + 1];
|
|
59624
|
-
if (next === void 0 || next.startsWith("--")) {
|
|
59625
|
-
flags.add(key);
|
|
59626
|
-
continue;
|
|
59627
|
-
}
|
|
59628
|
-
values.set(key, next);
|
|
59629
|
-
index += 1;
|
|
59630
|
-
}
|
|
59631
|
-
return { json: json2, ...seat === void 0 ? {} : { seat }, values, flags };
|
|
59632
|
-
}
|
|
59633
|
-
function requireValue2(parsed, key) {
|
|
59634
|
-
const value = parsed.values.get(key);
|
|
59635
|
-
if (value === void 0 || value.length === 0) {
|
|
59636
|
-
throw new UsageError(`Missing required --${key} value.`);
|
|
59637
|
-
}
|
|
59638
|
-
return value;
|
|
59639
|
-
}
|
|
59640
|
-
function optionalValue(parsed, key) {
|
|
59641
|
-
const value = parsed.values.get(key);
|
|
59642
|
-
return value === void 0 || value.length === 0 ? void 0 : value;
|
|
59643
|
-
}
|
|
59644
|
-
function parseNumber(parsed, key, options) {
|
|
59645
|
-
const raw = parsed.values.get(key);
|
|
59646
|
-
if (raw === void 0 || raw.length === 0) {
|
|
59647
|
-
if (options.required) {
|
|
59648
|
-
throw new UsageError(`Missing required --${key} value.`);
|
|
59649
|
-
}
|
|
59650
|
-
return void 0;
|
|
59651
|
-
}
|
|
59652
|
-
const parsedNumber = Number(raw);
|
|
59653
|
-
if (!Number.isFinite(parsedNumber)) {
|
|
59654
|
-
throw new UsageError(`--${key} must be a finite number.`);
|
|
59655
|
-
}
|
|
59656
|
-
return parsedNumber;
|
|
59657
|
-
}
|
|
59658
|
-
function parseList(parsed, key) {
|
|
59659
|
-
const raw = parsed.values.get(key);
|
|
59660
|
-
if (raw === void 0 || raw.length === 0) {
|
|
59661
|
-
return void 0;
|
|
59662
|
-
}
|
|
59663
|
-
return raw.split(",").map((entry) => entry.trim()).filter((entry) => entry.length > 0);
|
|
59664
|
-
}
|
|
59665
|
-
function withOptional(base, extra) {
|
|
59666
|
-
const next = { ...base };
|
|
59667
|
-
for (const [key, value] of Object.entries(extra)) {
|
|
59668
|
-
if (value !== void 0) {
|
|
59669
|
-
next[key] = value;
|
|
59670
|
-
}
|
|
59671
|
-
}
|
|
59672
|
-
return next;
|
|
59673
|
-
}
|
|
59674
|
-
function asRecord3(value) {
|
|
59675
|
-
return typeof value === "object" && value !== null ? value : {};
|
|
59676
|
-
}
|
|
59677
|
-
function asArray(value) {
|
|
59678
|
-
return Array.isArray(value) ? value : [];
|
|
59679
|
-
}
|
|
59680
|
-
function field3(record2, key) {
|
|
59681
|
-
const value = record2[key];
|
|
59682
|
-
if (value === null || value === void 0) {
|
|
59683
|
-
return "\u2014";
|
|
59684
|
-
}
|
|
59685
|
-
return String(value);
|
|
59686
|
-
}
|
|
59687
|
-
function usageWithSchemaFooter(usage2, bin) {
|
|
59688
|
-
return `${usage2}
|
|
59689
|
-
discover a command's exact input with: ${bin} command schema <id>`;
|
|
59690
|
-
}
|
|
59691
|
-
async function dispatch(context, group, args, actions, usage2) {
|
|
59692
|
-
const usageText = usageWithSchemaFooter(usage2, context.binName);
|
|
59693
|
-
const action = args[0];
|
|
59694
|
-
if (action === "--help" || action === "-h" || action === "help") {
|
|
59695
|
-
context.io.stdout.write(`${usageText}
|
|
59696
|
-
`);
|
|
59697
|
-
return 0;
|
|
59698
|
-
}
|
|
59699
|
-
const handler = action === void 0 ? void 0 : actions[action];
|
|
59700
|
-
if (!handler) {
|
|
59701
|
-
context.io.stderr.write(`${usageText}
|
|
59702
|
-
`);
|
|
59703
|
-
return 1;
|
|
59704
|
-
}
|
|
59705
|
-
try {
|
|
59706
|
-
return await handler(context, args.slice(1));
|
|
59707
|
-
} catch (error51) {
|
|
59708
|
-
if (error51 instanceof UsageError) {
|
|
59709
|
-
context.io.stderr.write(`${error51.message}
|
|
59710
|
-
${usageText}
|
|
59711
|
-
`);
|
|
59712
|
-
return 1;
|
|
59713
|
-
}
|
|
59714
|
-
throw error51;
|
|
59715
|
-
}
|
|
59716
|
-
}
|
|
59717
|
-
function execute(context, parsed, commandId, body, format) {
|
|
59718
|
-
const autoConfirm = parsed.flags.has("yes") || parsed.flags.has("y");
|
|
59719
|
-
const options = {
|
|
59720
|
-
...parsed.seat === void 0 ? {} : { targetSeatId: parsed.seat },
|
|
59721
|
-
...autoConfirm ? { autoConfirm: true } : {}
|
|
59722
|
-
};
|
|
59723
|
-
if (parsed.json) {
|
|
59724
|
-
return context.run(context.client, commandId, body, void 0, options);
|
|
59725
|
-
}
|
|
59726
|
-
return context.run(context.client, commandId, body, format, options);
|
|
59727
|
-
}
|
|
59728
|
-
|
|
59729
59778
|
// src/generator/flags.ts
|
|
59730
59779
|
var SEAT_FLAG_FILLS_REQUIRED_SEAT_ID = /* @__PURE__ */ new Set([
|
|
59731
59780
|
"agent.status",
|
|
@@ -59923,7 +59972,7 @@ function buildBodyFromFlags(entry, parsed, positional, overrides = {}) {
|
|
|
59923
59972
|
|
|
59924
59973
|
// src/generator/render.ts
|
|
59925
59974
|
function markdownLine(output) {
|
|
59926
|
-
const markdown =
|
|
59975
|
+
const markdown = asRecord2(output).markdown;
|
|
59927
59976
|
return typeof markdown === "string" ? markdown : JSON.stringify(output, null, 2);
|
|
59928
59977
|
}
|
|
59929
59978
|
function dryRunToolActionLabel(status) {
|
|
@@ -59961,28 +60010,28 @@ function dryRunLaneExecutabilityLines(transcript) {
|
|
|
59961
60010
|
return [];
|
|
59962
60011
|
}
|
|
59963
60012
|
const laneLabel = dryRunLaneLabel(lane);
|
|
59964
|
-
const unimplemented = grantedTools.map((tool) =>
|
|
60013
|
+
const unimplemented = grantedTools.map((tool) => asRecord2(tool)).filter((tool) => tool.executability === "unimplemented_in_lane");
|
|
59965
60014
|
const warningLines = unimplemented.map(
|
|
59966
|
-
(tool) => ` warning: ${
|
|
60015
|
+
(tool) => ` warning: ${field2(tool, "tool_name")} is granted but unimplemented in the ${laneLabel}`
|
|
59967
60016
|
);
|
|
59968
60017
|
const verdict = dryRunLaneVerdict(lane, grantedTools.length, unimplemented.length);
|
|
59969
60018
|
return ["lane executability:", ...warningLines, ` verdict: ${verdict}`];
|
|
59970
60019
|
}
|
|
59971
60020
|
function formatDryRunTranscript(value) {
|
|
59972
|
-
const transcript =
|
|
60021
|
+
const transcript = asRecord2(value);
|
|
59973
60022
|
const steps = asArray(transcript.steps);
|
|
59974
60023
|
if (steps.length === 0) {
|
|
59975
60024
|
return "";
|
|
59976
60025
|
}
|
|
59977
60026
|
const lines = steps.map((step) => {
|
|
59978
|
-
const record2 =
|
|
59979
|
-
const kind =
|
|
59980
|
-
const guard = record2.guard === null || record2.guard === void 0 ? "" : ` [${
|
|
59981
|
-
return ` ${kind}: ${
|
|
60027
|
+
const record2 = asRecord2(step);
|
|
60028
|
+
const kind = field2(record2, "kind");
|
|
60029
|
+
const guard = record2.guard === null || record2.guard === void 0 ? "" : ` [${field2(record2, "guard")}]`;
|
|
60030
|
+
return ` ${kind}: ${field2(record2, "text")}${guard}`;
|
|
59982
60031
|
});
|
|
59983
60032
|
const toolPreview = asArray(transcript.tool_preview).map((action) => {
|
|
59984
|
-
const record2 =
|
|
59985
|
-
return ` ${dryRunToolActionLabel(
|
|
60033
|
+
const record2 = asRecord2(action);
|
|
60034
|
+
return ` ${dryRunToolActionLabel(field2(record2, "status"))}: ${field2(record2, "intended_action")} [${field2(record2, "tool_name")}]`;
|
|
59986
60035
|
});
|
|
59987
60036
|
const laneLines = dryRunLaneExecutabilityLines(transcript);
|
|
59988
60037
|
return [
|
|
@@ -60012,9 +60061,9 @@ function renderCommandOutput(output) {
|
|
|
60012
60061
|
if (output.length === 0) {
|
|
60013
60062
|
return "No results.";
|
|
60014
60063
|
}
|
|
60015
|
-
return output.map((entry) => isScalar(entry) ? String(entry) : renderRow(
|
|
60064
|
+
return output.map((entry) => isScalar(entry) ? String(entry) : renderRow(asRecord2(entry))).join("\n");
|
|
60016
60065
|
}
|
|
60017
|
-
const record2 =
|
|
60066
|
+
const record2 = asRecord2(output);
|
|
60018
60067
|
if (typeof record2.markdown === "string") {
|
|
60019
60068
|
return record2.markdown;
|
|
60020
60069
|
}
|
|
@@ -60025,7 +60074,7 @@ function renderCommandOutput(output) {
|
|
|
60025
60074
|
if (list.length === 0) {
|
|
60026
60075
|
return `No ${humanize(name)}.`;
|
|
60027
60076
|
}
|
|
60028
|
-
return list.map((entry) => isScalar(entry) ? String(entry) : renderRow(
|
|
60077
|
+
return list.map((entry) => isScalar(entry) ? String(entry) : renderRow(asRecord2(entry))).join("\n");
|
|
60029
60078
|
}
|
|
60030
60079
|
const lines = [];
|
|
60031
60080
|
for (const [key, value] of orderedEntries(record2)) {
|
|
@@ -60037,11 +60086,11 @@ function renderCommandOutput(output) {
|
|
|
60037
60086
|
lines.push(` (none)`);
|
|
60038
60087
|
} else {
|
|
60039
60088
|
for (const entry of value) {
|
|
60040
|
-
lines.push(` ${isScalar(entry) ? String(entry) : renderRow(
|
|
60089
|
+
lines.push(` ${isScalar(entry) ? String(entry) : renderRow(asRecord2(entry))}`);
|
|
60041
60090
|
}
|
|
60042
60091
|
}
|
|
60043
60092
|
} else {
|
|
60044
|
-
lines.push(`${key}: ${renderRow(
|
|
60093
|
+
lines.push(`${key}: ${renderRow(asRecord2(value))}`);
|
|
60045
60094
|
}
|
|
60046
60095
|
}
|
|
60047
60096
|
return lines.length > 0 ? lines.join("\n") : JSON.stringify(output, null, 2);
|
|
@@ -60207,48 +60256,48 @@ function resolveModelConfig(model, effort) {
|
|
|
60207
60256
|
};
|
|
60208
60257
|
}
|
|
60209
60258
|
function renderTaskList(output) {
|
|
60210
|
-
const tasks = asArray(
|
|
60259
|
+
const tasks = asArray(asRecord2(output).tasks);
|
|
60211
60260
|
if (tasks.length === 0) {
|
|
60212
60261
|
return "No tasks in this seat's queue.";
|
|
60213
60262
|
}
|
|
60214
60263
|
return tasks.map((task) => {
|
|
60215
|
-
const record2 =
|
|
60216
|
-
return `${
|
|
60264
|
+
const record2 = asRecord2(task);
|
|
60265
|
+
return `${field2(record2, "id")} ${field2(record2, "status")} ${field2(record2, "title")}`;
|
|
60217
60266
|
}).join("\n");
|
|
60218
60267
|
}
|
|
60219
60268
|
function renderTaskAccept(output) {
|
|
60220
|
-
const task =
|
|
60221
|
-
return `Accepted task ${
|
|
60269
|
+
const task = asRecord2(asRecord2(output).task);
|
|
60270
|
+
return `Accepted task ${field2(task, "id")} (status ${field2(task, "status")}).`;
|
|
60222
60271
|
}
|
|
60223
60272
|
function renderTaskDecline(output) {
|
|
60224
|
-
const task =
|
|
60225
|
-
return `Declined task ${
|
|
60273
|
+
const task = asRecord2(asRecord2(output).task);
|
|
60274
|
+
return `Declined task ${field2(task, "id")} (status ${field2(task, "status")}).`;
|
|
60226
60275
|
}
|
|
60227
60276
|
function renderTaskComplete(output) {
|
|
60228
|
-
const record2 =
|
|
60229
|
-
return `Completed task ${
|
|
60277
|
+
const record2 = asRecord2(output);
|
|
60278
|
+
return `Completed task ${field2(record2, "task_id")} (event ${field2(record2, "event_id")}).`;
|
|
60230
60279
|
}
|
|
60231
60280
|
function renderTaskCreate(output) {
|
|
60232
|
-
const record2 =
|
|
60233
|
-
return `Created task ${
|
|
60281
|
+
const record2 = asRecord2(output);
|
|
60282
|
+
return `Created task ${field2(record2, "task_id")} for seat ${field2(record2, "owner_seat_id")} (status ${field2(record2, "status")}).`;
|
|
60234
60283
|
}
|
|
60235
60284
|
function renderStatusRecord(output) {
|
|
60236
|
-
return `Recorded status event ${
|
|
60285
|
+
return `Recorded status event ${field2(asRecord2(output), "event_id")}.`;
|
|
60237
60286
|
}
|
|
60238
60287
|
function renderGraph(output) {
|
|
60239
|
-
const record2 =
|
|
60288
|
+
const record2 = asRecord2(output);
|
|
60240
60289
|
const nodes = asArray(record2.nodes);
|
|
60241
60290
|
if (nodes.length === 0) {
|
|
60242
60291
|
return "No seats in the Responsibility Graph.";
|
|
60243
60292
|
}
|
|
60244
60293
|
const lines = [
|
|
60245
|
-
`root_seat_id=${
|
|
60294
|
+
`root_seat_id=${field2(record2, "root_seat_id")}`,
|
|
60246
60295
|
"seat_id parent_seat_id type status name"
|
|
60247
60296
|
];
|
|
60248
60297
|
const assigned = [];
|
|
60249
60298
|
const unassigned = [];
|
|
60250
60299
|
for (const node of nodes) {
|
|
60251
|
-
const row =
|
|
60300
|
+
const row = asRecord2(node);
|
|
60252
60301
|
if (row.unassigned) {
|
|
60253
60302
|
unassigned.push(row);
|
|
60254
60303
|
} else {
|
|
@@ -60256,47 +60305,47 @@ function renderGraph(output) {
|
|
|
60256
60305
|
}
|
|
60257
60306
|
}
|
|
60258
60307
|
for (const row of assigned) {
|
|
60259
|
-
lines.push(`${
|
|
60308
|
+
lines.push(`${field2(row, "seat_id")} ${field2(row, "parent_seat_id")} ${field2(row, "seat_type")} ${field2(row, "status")} ${field2(row, "name")}`);
|
|
60260
60309
|
}
|
|
60261
60310
|
if (unassigned.length > 0) {
|
|
60262
60311
|
lines.push("");
|
|
60263
60312
|
lines.push("Unassigned (no path to root \u2014 data-quality signal)");
|
|
60264
60313
|
lines.push("seat_id parent_seat_id type status name");
|
|
60265
60314
|
for (const row of unassigned) {
|
|
60266
|
-
lines.push(`${
|
|
60315
|
+
lines.push(`${field2(row, "seat_id")} ${field2(row, "parent_seat_id")} ${field2(row, "seat_type")} ${field2(row, "status")} ${field2(row, "name")}`);
|
|
60267
60316
|
}
|
|
60268
60317
|
}
|
|
60269
60318
|
return lines.join("\n");
|
|
60270
60319
|
}
|
|
60271
60320
|
function renderSeatList(output) {
|
|
60272
|
-
const nodes = asArray(
|
|
60321
|
+
const nodes = asArray(asRecord2(output).nodes);
|
|
60273
60322
|
if (nodes.length === 0) {
|
|
60274
60323
|
return "No seats.";
|
|
60275
60324
|
}
|
|
60276
60325
|
return nodes.map((node) => {
|
|
60277
|
-
const row =
|
|
60278
|
-
return `seat_id=${
|
|
60326
|
+
const row = asRecord2(node);
|
|
60327
|
+
return `seat_id=${field2(row, "seat_id")} parent_seat_id=${field2(row, "parent_seat_id")} type=${field2(row, "seat_type")} status=${field2(row, "status")} name=${field2(row, "name")}`;
|
|
60279
60328
|
}).join("\n");
|
|
60280
60329
|
}
|
|
60281
60330
|
function renderSeatDetail(output) {
|
|
60282
|
-
const record2 =
|
|
60283
|
-
const counts =
|
|
60331
|
+
const record2 = asRecord2(output);
|
|
60332
|
+
const counts = asRecord2(record2.counts);
|
|
60284
60333
|
return [
|
|
60285
|
-
`seat_id=${
|
|
60286
|
-
`parent_seat_id=${
|
|
60287
|
-
`agent_status=${
|
|
60288
|
-
`counts: open_tasks=${
|
|
60334
|
+
`seat_id=${field2(record2, "seat_id")} name=${field2(record2, "name")} type=${field2(record2, "seat_type")} status=${field2(record2, "status")}`,
|
|
60335
|
+
`parent_seat_id=${field2(record2, "parent_seat_id")} active_charter_version_id=${field2(record2, "active_charter_version_id")} draft_charter_version_id=${field2(record2, "draft_charter_version_id")}`,
|
|
60336
|
+
`agent_status=${field2(record2, "agent_status")} agent_lane=${field2(record2, "agent_lane")}`,
|
|
60337
|
+
`counts: open_tasks=${field2(counts, "open_tasks")} owned_goals=${field2(counts, "owned_goals")} active_measurables=${field2(counts, "active_measurables")} open_issues=${field2(counts, "open_issues")}`
|
|
60289
60338
|
].join("\n");
|
|
60290
60339
|
}
|
|
60291
60340
|
function renderSeatMutation(output) {
|
|
60292
|
-
return `seat_id=${
|
|
60341
|
+
return `seat_id=${field2(asRecord2(output), "seat_id")}`;
|
|
60293
60342
|
}
|
|
60294
60343
|
function renderSeatCreate(output) {
|
|
60295
|
-
const record2 =
|
|
60296
|
-
const effect =
|
|
60344
|
+
const record2 = asRecord2(output);
|
|
60345
|
+
const effect = asRecord2(record2.effect);
|
|
60297
60346
|
const lines = [
|
|
60298
|
-
`seat_id=${
|
|
60299
|
-
`effect=${
|
|
60347
|
+
`seat_id=${field2(record2, "seat_id")} status=${field2(record2, "status")}`,
|
|
60348
|
+
`effect=${field2(effect, "outcome")} applied=${field2(effect, "applied")} of ${field2(effect, "attempted")}`
|
|
60300
60349
|
];
|
|
60301
60350
|
if (record2.status === "vacant") {
|
|
60302
60351
|
lines.push(
|
|
@@ -60306,206 +60355,206 @@ function renderSeatCreate(output) {
|
|
|
60306
60355
|
return lines.join("\n");
|
|
60307
60356
|
}
|
|
60308
60357
|
function renderSeatDecommissionPreview(output) {
|
|
60309
|
-
const record2 =
|
|
60358
|
+
const record2 = asRecord2(output);
|
|
60310
60359
|
const effects = asArray(record2.effects).map((effect) => `- ${String(effect)}`);
|
|
60311
60360
|
return [
|
|
60312
|
-
`seat_id=${
|
|
60313
|
-
`active_occupancies=${
|
|
60314
|
-
`active_charters=${
|
|
60315
|
-
`open_work_orders=${
|
|
60361
|
+
`seat_id=${field2(record2, "seat_id")} name=${field2(record2, "seat_name")} status=${field2(record2, "previous_status")}`,
|
|
60362
|
+
`active_occupancies=${field2(record2, "active_occupancy_count")} active_agents=${field2(record2, "active_agent_ids")}`,
|
|
60363
|
+
`active_charters=${field2(record2, "active_charter_count")} mcp_tokens=${field2(record2, "active_mcp_token_count")} credentials=${field2(record2, "active_credential_count")}`,
|
|
60364
|
+
`open_work_orders=${field2(record2, "open_work_order_count")} schedules=${field2(record2, "schedule_count")} no_orphan_steward_guard=${field2(record2, "no_orphan_steward_guard")}`,
|
|
60316
60365
|
"effects:",
|
|
60317
60366
|
...effects
|
|
60318
60367
|
].join("\n");
|
|
60319
60368
|
}
|
|
60320
60369
|
function renderSignalList(output) {
|
|
60321
|
-
const signals = asArray(
|
|
60370
|
+
const signals = asArray(asRecord2(output).signals);
|
|
60322
60371
|
if (signals.length === 0) {
|
|
60323
60372
|
return "No Signals defined.";
|
|
60324
60373
|
}
|
|
60325
60374
|
return signals.map((signal) => {
|
|
60326
|
-
const record2 =
|
|
60327
|
-
return `${
|
|
60375
|
+
const record2 = asRecord2(signal);
|
|
60376
|
+
return `${field2(record2, "measurable_id")} ${field2(record2, "state")} ${field2(record2, "name")} (latest ${field2(record2, "latest_value")} / target ${field2(record2, "target")}, measured by ${field2(record2, "effective_source")})`;
|
|
60328
60377
|
}).join("\n");
|
|
60329
60378
|
}
|
|
60330
60379
|
function renderSignalGet(output) {
|
|
60331
|
-
const record2 =
|
|
60380
|
+
const record2 = asRecord2(output);
|
|
60332
60381
|
const readings = asArray(record2.readings);
|
|
60333
|
-
const head2 = `${
|
|
60382
|
+
const head2 = `${field2(record2, "measurable_id")} ${field2(record2, "state")} ${field2(record2, "name")} (target ${field2(record2, "target")})`;
|
|
60334
60383
|
const lines = readings.map((reading) => {
|
|
60335
|
-
const r =
|
|
60336
|
-
return ` ${
|
|
60384
|
+
const r = asRecord2(reading);
|
|
60385
|
+
return ` ${field2(r, "reading_id")} ${field2(r, "period_start")} ${field2(r, "value")} confirmed=${field2(r, "confirmed")}`;
|
|
60337
60386
|
});
|
|
60338
60387
|
return [head2, ...lines].join("\n");
|
|
60339
60388
|
}
|
|
60340
60389
|
function renderSignalConfirm(output) {
|
|
60341
|
-
return `Confirmed reading ${
|
|
60390
|
+
return `Confirmed reading ${field2(asRecord2(output), "reading_id")}.`;
|
|
60342
60391
|
}
|
|
60343
60392
|
function renderSignalCorrect(output) {
|
|
60344
|
-
const record2 =
|
|
60345
|
-
return `Corrected reading ${
|
|
60393
|
+
const record2 = asRecord2(output);
|
|
60394
|
+
return `Corrected reading ${field2(record2, "reading_id")} for measurable ${field2(record2, "measurable_id")} (${field2(record2, "period_start")} = ${field2(record2, "value")}).`;
|
|
60346
60395
|
}
|
|
60347
60396
|
function renderGoalList(output) {
|
|
60348
|
-
const goals = asArray(
|
|
60397
|
+
const goals = asArray(asRecord2(output).goals);
|
|
60349
60398
|
if (goals.length === 0) {
|
|
60350
60399
|
return "No goals in this Cascade.";
|
|
60351
60400
|
}
|
|
60352
60401
|
return goals.map((goal) => {
|
|
60353
|
-
const record2 =
|
|
60354
|
-
return `${
|
|
60402
|
+
const record2 = asRecord2(goal);
|
|
60403
|
+
return `${field2(record2, "goal_id")} ${field2(record2, "status")} ${field2(record2, "title")}`;
|
|
60355
60404
|
}).join("\n");
|
|
60356
60405
|
}
|
|
60357
60406
|
function renderWarnings(record2) {
|
|
60358
60407
|
return asArray(record2.warnings).map((warning) => `Warning: ${String(warning)}`);
|
|
60359
60408
|
}
|
|
60360
60409
|
function renderGoalCreate(output) {
|
|
60361
|
-
const record2 =
|
|
60410
|
+
const record2 = asRecord2(output);
|
|
60362
60411
|
return [
|
|
60363
|
-
`Created goal ${
|
|
60412
|
+
`Created goal ${field2(record2, "goal_id")} (status ${field2(record2, "status")}).`,
|
|
60364
60413
|
...renderWarnings(record2)
|
|
60365
60414
|
].join("\n");
|
|
60366
60415
|
}
|
|
60367
60416
|
function renderGoalUpdate(output) {
|
|
60368
|
-
const record2 =
|
|
60417
|
+
const record2 = asRecord2(output);
|
|
60369
60418
|
return [
|
|
60370
|
-
`Updated goal ${
|
|
60419
|
+
`Updated goal ${field2(record2, "goal_id")}.`,
|
|
60371
60420
|
...renderWarnings(record2)
|
|
60372
60421
|
].join("\n");
|
|
60373
60422
|
}
|
|
60374
60423
|
function renderGoalStatus(output) {
|
|
60375
|
-
const record2 =
|
|
60376
|
-
return `Goal ${
|
|
60424
|
+
const record2 = asRecord2(output);
|
|
60425
|
+
return `Goal ${field2(record2, "goal_id")} status set to ${field2(record2, "status")}.`;
|
|
60377
60426
|
}
|
|
60378
60427
|
function renderGoalGet(output) {
|
|
60379
|
-
const record2 =
|
|
60428
|
+
const record2 = asRecord2(asRecord2(output).goal);
|
|
60380
60429
|
return [
|
|
60381
|
-
`${
|
|
60382
|
-
`kind: ${
|
|
60383
|
-
`progress: ${
|
|
60384
|
-
`definition of done: ${
|
|
60430
|
+
`${field2(record2, "id")} ${field2(record2, "status")} ${field2(record2, "title")}`,
|
|
60431
|
+
`kind: ${field2(record2, "kind")} status source: ${field2(record2, "status_source")}`,
|
|
60432
|
+
`progress: ${field2(record2, "progress_pct")}`,
|
|
60433
|
+
`definition of done: ${field2(record2, "definition_of_done")}`
|
|
60385
60434
|
].join("\n");
|
|
60386
60435
|
}
|
|
60387
60436
|
function renderGoalReparent(output) {
|
|
60388
|
-
const record2 =
|
|
60389
|
-
return `Goal ${
|
|
60437
|
+
const record2 = asRecord2(output);
|
|
60438
|
+
return `Goal ${field2(record2, "goal_id")} reparented under ${field2(record2, "parent_goal_id")}.`;
|
|
60390
60439
|
}
|
|
60391
60440
|
function renderGoalReassignOwner(output) {
|
|
60392
|
-
const record2 =
|
|
60393
|
-
return `Goal ${
|
|
60441
|
+
const record2 = asRecord2(output);
|
|
60442
|
+
return `Goal ${field2(record2, "goal_id")} owner reassigned to seat ${field2(record2, "seat_id")}.`;
|
|
60394
60443
|
}
|
|
60395
60444
|
function renderGoalDrop(output) {
|
|
60396
|
-
const record2 =
|
|
60397
|
-
return `Dropped goal ${
|
|
60445
|
+
const record2 = asRecord2(output);
|
|
60446
|
+
return `Dropped goal ${field2(record2, "goal_id")} (status ${field2(record2, "status")}).`;
|
|
60398
60447
|
}
|
|
60399
60448
|
function renderFrictionList(output) {
|
|
60400
|
-
const issues = asArray(
|
|
60449
|
+
const issues = asArray(asRecord2(output).issues);
|
|
60401
60450
|
if (issues.length === 0) {
|
|
60402
60451
|
return "No Friction issues.";
|
|
60403
60452
|
}
|
|
60404
60453
|
return issues.map((issue2) => {
|
|
60405
|
-
const record2 =
|
|
60406
|
-
return `${
|
|
60454
|
+
const record2 = asRecord2(issue2);
|
|
60455
|
+
return `${field2(record2, "issue_id")} ${field2(record2, "status")} ${field2(record2, "severity")} ${field2(record2, "summary")}`;
|
|
60407
60456
|
}).join("\n");
|
|
60408
60457
|
}
|
|
60409
60458
|
function renderFrictionFile(output) {
|
|
60410
|
-
const record2 =
|
|
60411
|
-
return `Filed Friction issue ${
|
|
60459
|
+
const record2 = asRecord2(output);
|
|
60460
|
+
return `Filed Friction issue ${field2(record2, "issue_id")} (event ${field2(record2, "event_id")}).`;
|
|
60412
60461
|
}
|
|
60413
60462
|
function renderFrictionResolve(output) {
|
|
60414
|
-
const record2 =
|
|
60415
|
-
return `Resolved issue ${
|
|
60463
|
+
const record2 = asRecord2(output);
|
|
60464
|
+
return `Resolved issue ${field2(record2, "issue_id")} \u2192 action task ${field2(record2, "action_task_id")} (decision ${field2(record2, "decision_id")}).`;
|
|
60416
60465
|
}
|
|
60417
60466
|
function renderFrictionLink(output) {
|
|
60418
|
-
const record2 =
|
|
60419
|
-
return `Linked task ${
|
|
60467
|
+
const record2 = asRecord2(output);
|
|
60468
|
+
return `Linked task ${field2(record2, "action_task_id")} to issue ${field2(record2, "issue_id")}.`;
|
|
60420
60469
|
}
|
|
60421
60470
|
function renderFrictionGet(output) {
|
|
60422
|
-
const record2 =
|
|
60471
|
+
const record2 = asRecord2(asRecord2(output).issue);
|
|
60423
60472
|
return [
|
|
60424
|
-
`${
|
|
60425
|
-
`summary: ${
|
|
60426
|
-
`raised by: ${
|
|
60427
|
-
`impact score: ${
|
|
60428
|
-
`root cause: ${
|
|
60429
|
-
`action task: ${
|
|
60473
|
+
`${field2(record2, "issue_id")} ${field2(record2, "status")} ${field2(record2, "severity")}`,
|
|
60474
|
+
`summary: ${field2(record2, "summary")}`,
|
|
60475
|
+
`raised by: ${field2(record2, "raised_by_seat_name")}`,
|
|
60476
|
+
`impact score: ${field2(record2, "impact_score")}`,
|
|
60477
|
+
`root cause: ${field2(record2, "root_cause")}`,
|
|
60478
|
+
`action task: ${field2(record2, "action_task_id")}`
|
|
60430
60479
|
].join("\n");
|
|
60431
60480
|
}
|
|
60432
60481
|
function renderConfirmationList(output) {
|
|
60433
|
-
const confirmations = asArray(
|
|
60482
|
+
const confirmations = asArray(asRecord2(output).confirmations);
|
|
60434
60483
|
if (confirmations.length === 0) {
|
|
60435
60484
|
return "No pending confirmations.";
|
|
60436
60485
|
}
|
|
60437
60486
|
return confirmations.map((entry) => {
|
|
60438
|
-
const record2 =
|
|
60439
|
-
return `${
|
|
60487
|
+
const record2 = asRecord2(entry);
|
|
60488
|
+
return `${field2(record2, "id")} ${field2(record2, "risk_level")} ${field2(record2, "command_id")} ${field2(record2, "summary")}`;
|
|
60440
60489
|
}).join("\n");
|
|
60441
60490
|
}
|
|
60442
60491
|
function safetyRefusalTag(record2) {
|
|
60443
60492
|
return record2.category === "safety_refusal" ? "[safety refusal] " : "";
|
|
60444
60493
|
}
|
|
60445
60494
|
function renderEscalationList(output) {
|
|
60446
|
-
const escalations = asArray(
|
|
60495
|
+
const escalations = asArray(asRecord2(output).escalations);
|
|
60447
60496
|
if (escalations.length === 0) {
|
|
60448
60497
|
return "No escalations on this steward chain.";
|
|
60449
60498
|
}
|
|
60450
60499
|
return escalations.map((escalation) => {
|
|
60451
|
-
const record2 =
|
|
60452
|
-
return `${
|
|
60500
|
+
const record2 = asRecord2(escalation);
|
|
60501
|
+
return `${field2(record2, "id")} ${field2(record2, "status")} ${safetyRefusalTag(record2)}${field2(record2, "seat_name")}: ${field2(record2, "reason")}`;
|
|
60453
60502
|
}).join("\n");
|
|
60454
60503
|
}
|
|
60455
60504
|
function renderEscalationGet(output) {
|
|
60456
|
-
const record2 =
|
|
60457
|
-
return `${
|
|
60458
|
-
reason: ${
|
|
60459
|
-
recommended: ${
|
|
60505
|
+
const record2 = asRecord2(asRecord2(output).escalation);
|
|
60506
|
+
return `${field2(record2, "id")} ${field2(record2, "status")} ${safetyRefusalTag(record2)}${field2(record2, "seat_name")}
|
|
60507
|
+
reason: ${field2(record2, "reason")}
|
|
60508
|
+
recommended: ${field2(record2, "recommended_action")}`;
|
|
60460
60509
|
}
|
|
60461
60510
|
function renderEscalationResolve(output) {
|
|
60462
|
-
const record2 =
|
|
60463
|
-
return `Resolved escalation ${
|
|
60511
|
+
const record2 = asRecord2(output);
|
|
60512
|
+
return `Resolved escalation ${field2(record2, "escalation_id")} (status ${field2(record2, "status")}, decision ${field2(record2, "decision_id")}).`;
|
|
60464
60513
|
}
|
|
60465
60514
|
function renderEscalationReject(output) {
|
|
60466
|
-
const record2 =
|
|
60467
|
-
return `Rejected escalation ${
|
|
60515
|
+
const record2 = asRecord2(output);
|
|
60516
|
+
return `Rejected escalation ${field2(record2, "escalation_id")} (status ${field2(record2, "status")}, decision ${field2(record2, "decision_id")}).`;
|
|
60468
60517
|
}
|
|
60469
60518
|
function renderSyncBrief(output) {
|
|
60470
|
-
const record2 =
|
|
60471
|
-
return `Sync brief ${
|
|
60472
|
-
${
|
|
60519
|
+
const record2 = asRecord2(output);
|
|
60520
|
+
return `Sync brief ${field2(record2, "sync_brief_id")} (${field2(record2, "period_start")} \u2192 ${field2(record2, "period_end")})
|
|
60521
|
+
${field2(record2, "summary")}`;
|
|
60473
60522
|
}
|
|
60474
60523
|
function renderSyncCompile(output) {
|
|
60475
|
-
const record2 =
|
|
60476
|
-
return `Compiled sync brief ${
|
|
60524
|
+
const record2 = asRecord2(output);
|
|
60525
|
+
return `Compiled sync brief ${field2(record2, "sync_brief_id")} (${field2(record2, "period_start")} \u2192 ${field2(record2, "period_end")}, degraded=${field2(record2, "degraded")}).`;
|
|
60477
60526
|
}
|
|
60478
60527
|
function renderSyncComplete(output) {
|
|
60479
|
-
const record2 =
|
|
60528
|
+
const record2 = asRecord2(output);
|
|
60480
60529
|
const decisions = asArray(record2.decision_ids).length;
|
|
60481
60530
|
const tasks = asArray(record2.task_ids).length;
|
|
60482
|
-
return `Completed sync run for brief ${
|
|
60531
|
+
return `Completed sync run for brief ${field2(record2, "sync_brief_id")} (event ${field2(record2, "event_id")}, ${decisions} decisions, ${tasks} tasks).`;
|
|
60483
60532
|
}
|
|
60484
60533
|
function renderRunnerList(output) {
|
|
60485
|
-
const runners = asArray(
|
|
60534
|
+
const runners = asArray(asRecord2(output).runners);
|
|
60486
60535
|
if (runners.length === 0) {
|
|
60487
60536
|
return "No runners paired.";
|
|
60488
60537
|
}
|
|
60489
60538
|
return runners.map((runner) => {
|
|
60490
|
-
const record2 =
|
|
60491
|
-
const posture =
|
|
60492
|
-
const capacity =
|
|
60493
|
-
const execution =
|
|
60539
|
+
const record2 = asRecord2(runner);
|
|
60540
|
+
const posture = asRecord2(record2.posture);
|
|
60541
|
+
const capacity = asRecord2(record2.capacity);
|
|
60542
|
+
const execution = asRecord2(record2.execution);
|
|
60494
60543
|
const capabilitySet = asArray(posture.capability_set).map((value) => String(value)).join(", ");
|
|
60495
|
-
return `${
|
|
60544
|
+
return `${field2(record2, "id")} ${field2(record2, "health")} ${field2(record2, "name")} (${field2(record2, "platform")}) cli=${field2(record2, "cli_version")} sandbox=${field2(posture, "sandbox")} network=${field2(posture, "network")}${capabilitySet.length > 0 ? ` capabilities=${capabilitySet}` : ""} execution=${field2(execution, "state")} capable=${field2(execution, "capable")} capacity=${field2(capacity, "state")} account=${field2(capacity, "account_alias")} freshness=${field2(capacity, "freshness")}`;
|
|
60496
60545
|
}).join("\n");
|
|
60497
60546
|
}
|
|
60498
60547
|
function renderRunnerStatus(output) {
|
|
60499
|
-
const record2 =
|
|
60500
|
-
const posture =
|
|
60501
|
-
const capacity =
|
|
60502
|
-
const execution =
|
|
60548
|
+
const record2 = asRecord2(output);
|
|
60549
|
+
const posture = asRecord2(record2.posture);
|
|
60550
|
+
const capacity = asRecord2(record2.capacity);
|
|
60551
|
+
const execution = asRecord2(record2.execution);
|
|
60503
60552
|
const capabilitySet = asArray(posture.capability_set).map((value) => String(value)).join(", ");
|
|
60504
60553
|
const lines = [
|
|
60505
|
-
`${
|
|
60506
|
-
`cli_version: ${
|
|
60507
|
-
`execution: ${
|
|
60508
|
-
`capacity: ${
|
|
60554
|
+
`${field2(record2, "id")} ${field2(record2, "health")} ${field2(record2, "name")} (last heartbeat ${field2(record2, "last_heartbeat_at")}).`,
|
|
60555
|
+
`cli_version: ${field2(record2, "cli_version")} sandbox: ${field2(posture, "sandbox")} network: ${field2(posture, "network")}`,
|
|
60556
|
+
`execution: ${field2(execution, "state")} capable: ${field2(execution, "capable")} execute_ready: ${field2(execution, "execute_ready")}`,
|
|
60557
|
+
`capacity: ${field2(capacity, "state")} account: ${field2(capacity, "account_alias")} freshness: ${field2(capacity, "freshness")} rate_limited_until: ${field2(capacity, "rate_limited_until")}`
|
|
60509
60558
|
];
|
|
60510
60559
|
if (capabilitySet.length > 0) {
|
|
60511
60560
|
lines.push(`capabilities: ${capabilitySet}`);
|
|
@@ -60513,424 +60562,424 @@ function renderRunnerStatus(output) {
|
|
|
60513
60562
|
return lines.join("\n");
|
|
60514
60563
|
}
|
|
60515
60564
|
function renderRunnerDiagnose(output) {
|
|
60516
|
-
const record2 =
|
|
60565
|
+
const record2 = asRecord2(output);
|
|
60517
60566
|
const guidance = asArray(record2.repair_guidance);
|
|
60518
60567
|
const lines = [
|
|
60519
|
-
`Runner ${
|
|
60520
|
-
`health: ${
|
|
60521
|
-
`paired_at: ${
|
|
60522
|
-
`capabilities: claude=${String(
|
|
60523
|
-
`revocation_state: ${
|
|
60568
|
+
`Runner ${field2(record2, "name")} (${field2(record2, "id")})`,
|
|
60569
|
+
`health: ${field2(record2, "health")} platform: ${field2(record2, "platform")}`,
|
|
60570
|
+
`paired_at: ${field2(record2, "paired_at")} last_heartbeat: ${field2(record2, "last_heartbeat_at")}`,
|
|
60571
|
+
`capabilities: claude=${String(asRecord2(record2.capabilities).claude)} codex=${String(asRecord2(record2.capabilities).codex)}`,
|
|
60572
|
+
`revocation_state: ${field2(record2, "revocation_state")}`
|
|
60524
60573
|
];
|
|
60525
60574
|
if (guidance.length > 0) {
|
|
60526
60575
|
lines.push("repair_guidance:");
|
|
60527
60576
|
guidance.forEach((step) => {
|
|
60528
|
-
const s =
|
|
60529
|
-
lines.push(` ${
|
|
60577
|
+
const s = asRecord2(step);
|
|
60578
|
+
lines.push(` ${field2(s, "action")}: ${field2(s, "detail")}`);
|
|
60530
60579
|
});
|
|
60531
60580
|
}
|
|
60532
60581
|
return lines.join("\n");
|
|
60533
60582
|
}
|
|
60534
60583
|
function renderRunnerRepair(output) {
|
|
60535
|
-
const record2 =
|
|
60584
|
+
const record2 = asRecord2(output);
|
|
60536
60585
|
const steps = asArray(record2.repair_steps);
|
|
60537
60586
|
const lines = [
|
|
60538
|
-
`Runner ${
|
|
60539
|
-
`requires_human: ${
|
|
60587
|
+
`Runner ${field2(record2, "runner_name")} (${field2(record2, "runner_id")}) health: ${field2(record2, "runner_health")}`,
|
|
60588
|
+
`requires_human: ${field2(record2, "requires_human")}`
|
|
60540
60589
|
];
|
|
60541
60590
|
if (steps.length > 0) {
|
|
60542
60591
|
lines.push("repair_steps:");
|
|
60543
60592
|
steps.forEach((step) => {
|
|
60544
|
-
const s =
|
|
60545
|
-
lines.push(` ${
|
|
60546
|
-
lines.push(` command: ${
|
|
60547
|
-
lines.push(` detail: ${
|
|
60593
|
+
const s = asRecord2(step);
|
|
60594
|
+
lines.push(` ${field2(s, "action")}`);
|
|
60595
|
+
lines.push(` command: ${field2(s, "command")}`);
|
|
60596
|
+
lines.push(` detail: ${field2(s, "detail")}`);
|
|
60548
60597
|
});
|
|
60549
60598
|
}
|
|
60550
60599
|
return lines.join("\n");
|
|
60551
60600
|
}
|
|
60552
60601
|
function renderWorkOrders(output) {
|
|
60553
|
-
const workOrders = asArray(
|
|
60602
|
+
const workOrders = asArray(asRecord2(output).work_orders);
|
|
60554
60603
|
if (workOrders.length === 0) {
|
|
60555
60604
|
return "No work orders.";
|
|
60556
60605
|
}
|
|
60557
60606
|
return workOrders.map((workOrder) => {
|
|
60558
|
-
const record2 =
|
|
60559
|
-
return `${
|
|
60607
|
+
const record2 = asRecord2(workOrder);
|
|
60608
|
+
return `${field2(record2, "id")} ${field2(record2, "status")} ${field2(record2, "lane")} agent ${field2(record2, "agent_id")}`;
|
|
60560
60609
|
}).join("\n");
|
|
60561
60610
|
}
|
|
60562
60611
|
function renderRunnerRevoke(output) {
|
|
60563
|
-
const record2 =
|
|
60564
|
-
return `Revoked runner ${
|
|
60612
|
+
const record2 = asRecord2(output);
|
|
60613
|
+
return `Revoked runner ${field2(record2, "runner_id")} (revoked=${field2(record2, "revoked")}).`;
|
|
60565
60614
|
}
|
|
60566
60615
|
function renderNotificationSettings(output) {
|
|
60567
|
-
const record2 =
|
|
60568
|
-
return `escalations=${
|
|
60616
|
+
const record2 = asRecord2(output);
|
|
60617
|
+
return `escalations=${field2(record2, "escalations_enabled")} sync_brief=${field2(record2, "sync_brief_enabled")} default_channel=${field2(record2, "default_channel")}`;
|
|
60569
60618
|
}
|
|
60570
60619
|
function renderNotificationTest(output) {
|
|
60571
|
-
const record2 =
|
|
60572
|
-
return `Test notification ${
|
|
60620
|
+
const record2 = asRecord2(output);
|
|
60621
|
+
return `Test notification ${field2(record2, "notification_id")} (delivered=${field2(record2, "delivered")}).`;
|
|
60573
60622
|
}
|
|
60574
60623
|
function renderNotificationErrors(output) {
|
|
60575
|
-
const errors = asArray(
|
|
60624
|
+
const errors = asArray(asRecord2(output).errors);
|
|
60576
60625
|
if (errors.length === 0) {
|
|
60577
60626
|
return "No failed notification deliveries.";
|
|
60578
60627
|
}
|
|
60579
60628
|
return errors.map((entry) => {
|
|
60580
|
-
const record2 =
|
|
60581
|
-
return `${
|
|
60629
|
+
const record2 = asRecord2(entry);
|
|
60630
|
+
return `${field2(record2, "created_at")} ${field2(record2, "channel")} source=${field2(record2, "source")} seat=${field2(record2, "seat_id")} run=${field2(record2, "run_id")} ${field2(record2, "error_message")}`;
|
|
60582
60631
|
}).join("\n");
|
|
60583
60632
|
}
|
|
60584
60633
|
function formatIntegrationLine(record2) {
|
|
60585
|
-
return `${
|
|
60634
|
+
return `${field2(record2, "provider")} status=${field2(record2, "status")} account=${field2(record2, "account_email")} last_test=${field2(record2, "last_test_result")} id=${field2(record2, "id")}`;
|
|
60586
60635
|
}
|
|
60587
60636
|
function renderIntegrationList(output) {
|
|
60588
|
-
const integrations = asArray(
|
|
60637
|
+
const integrations = asArray(asRecord2(output).integrations);
|
|
60589
60638
|
if (integrations.length === 0) {
|
|
60590
60639
|
return "No integrations are connected.";
|
|
60591
60640
|
}
|
|
60592
|
-
return integrations.map((entry) => formatIntegrationLine(
|
|
60641
|
+
return integrations.map((entry) => formatIntegrationLine(asRecord2(entry))).join("\n");
|
|
60593
60642
|
}
|
|
60594
60643
|
function renderIntegrationReadiness(output) {
|
|
60595
|
-
const connectors = asArray(
|
|
60644
|
+
const connectors = asArray(asRecord2(output).connectors);
|
|
60596
60645
|
if (connectors.length === 0) {
|
|
60597
60646
|
return "No connector readiness facts found.";
|
|
60598
60647
|
}
|
|
60599
|
-
return connectors.map((entry) => formatIntegrationReadinessLine(
|
|
60648
|
+
return connectors.map((entry) => formatIntegrationReadinessLine(asRecord2(entry))).join("\n\n");
|
|
60600
60649
|
}
|
|
60601
60650
|
function formatIntegrationReadinessLine(record2) {
|
|
60602
60651
|
const checks = asArray(record2.checks).map((entry) => {
|
|
60603
|
-
const check2 =
|
|
60604
|
-
const issue2 =
|
|
60605
|
-
return ` - ${
|
|
60652
|
+
const check2 = asRecord2(entry);
|
|
60653
|
+
const issue2 = field2(check2, "linear_issue") === "\u2014" ? "" : ` ${field2(check2, "linear_issue")}`;
|
|
60654
|
+
return ` - ${field2(check2, "label")}: ${field2(check2, "status")}${issue2} \u2014 ${field2(check2, "detail")}`;
|
|
60606
60655
|
});
|
|
60607
60656
|
const actions = asArray(record2.next_actions).map((entry) => ` - ${String(entry)}`);
|
|
60608
60657
|
return [
|
|
60609
|
-
`${
|
|
60610
|
-
|
|
60658
|
+
`${field2(record2, "provider")} readiness=${field2(record2, "overall_status")} id=${field2(record2, "integration_id")}`,
|
|
60659
|
+
field2(record2, "summary"),
|
|
60611
60660
|
checks.length > 0 ? ["checks:", ...checks].join("\n") : "",
|
|
60612
60661
|
actions.length > 0 ? ["next:", ...actions].join("\n") : ""
|
|
60613
60662
|
].filter((line) => line.length > 0).join("\n");
|
|
60614
60663
|
}
|
|
60615
60664
|
function renderIntegrationStatus(output) {
|
|
60616
|
-
const integration =
|
|
60665
|
+
const integration = asRecord2(output).integration;
|
|
60617
60666
|
if (integration === null) {
|
|
60618
60667
|
return "Integration not found.";
|
|
60619
60668
|
}
|
|
60620
|
-
return formatIntegrationLine(
|
|
60669
|
+
return formatIntegrationLine(asRecord2(integration));
|
|
60621
60670
|
}
|
|
60622
60671
|
function renderIntegrationTest(output) {
|
|
60623
|
-
const record2 =
|
|
60624
|
-
return `${
|
|
60672
|
+
const record2 = asRecord2(output);
|
|
60673
|
+
return `${field2(record2, "provider")} ${field2(record2, "status")} (ok=${field2(record2, "ok")}) ${field2(record2, "message")}`;
|
|
60625
60674
|
}
|
|
60626
60675
|
function renderSettingsGet(output) {
|
|
60627
|
-
const record2 =
|
|
60628
|
-
const spend =
|
|
60629
|
-
const policy =
|
|
60630
|
-
return `tenant ${
|
|
60676
|
+
const record2 = asRecord2(output);
|
|
60677
|
+
const spend = asRecord2(record2.spend);
|
|
60678
|
+
const policy = asRecord2(record2.product_learning);
|
|
60679
|
+
return `tenant ${field2(record2, "tenant_id")} plan=${field2(record2, "plan")} status=${field2(record2, "status")} spend=$${field2(spend, "spend_usd")} has_anthropic_key=${field2(record2, "has_anthropic_key")} product_learning=${field2(policy, "mode")}`;
|
|
60631
60680
|
}
|
|
60632
60681
|
function renderSettingsUpdate(output) {
|
|
60633
|
-
const spend =
|
|
60634
|
-
return `Updated budget caps (soft=$${
|
|
60682
|
+
const spend = asRecord2(asRecord2(output).spend);
|
|
60683
|
+
return `Updated budget caps (soft=$${field2(spend, "soft_cap_usd")}, hard=$${field2(spend, "hard_cap_usd")}).`;
|
|
60635
60684
|
}
|
|
60636
60685
|
function renderTenantRename(output) {
|
|
60637
|
-
const record2 =
|
|
60638
|
-
return `Renamed company from ${
|
|
60686
|
+
const record2 = asRecord2(output);
|
|
60687
|
+
return `Renamed company from ${field2(record2, "previous_name")} to ${field2(record2, "name")}.`;
|
|
60639
60688
|
}
|
|
60640
60689
|
function renderProductLearningGet(output) {
|
|
60641
|
-
const policy =
|
|
60642
|
-
return `product_learning ${
|
|
60690
|
+
const policy = asRecord2(asRecord2(output).product_learning);
|
|
60691
|
+
return `product_learning ${field2(policy, "mode")} product_analytics_enabled=${field2(policy, "product_analytics_enabled")} security_audit_logs_enabled=${field2(policy, "security_audit_logs_enabled")}`;
|
|
60643
60692
|
}
|
|
60644
60693
|
function renderProductLearningUpdate(output) {
|
|
60645
|
-
const policy =
|
|
60646
|
-
return `Updated product-learning policy to ${
|
|
60694
|
+
const policy = asRecord2(asRecord2(output).product_learning);
|
|
60695
|
+
return `Updated product-learning policy to ${field2(policy, "mode")} (product_analytics_enabled=${field2(policy, "product_analytics_enabled")}).`;
|
|
60647
60696
|
}
|
|
60648
60697
|
function renderAgentPolicyGet(output) {
|
|
60649
|
-
const policy =
|
|
60650
|
-
return `agent_policy profile=${
|
|
60698
|
+
const policy = asRecord2(asRecord2(output).agent_policy);
|
|
60699
|
+
return `agent_policy profile=${field2(policy, "profile")} enforcement=${field2(policy, "enforcement")} max_autonomous_risk=${field2(policy, "max_autonomous_risk")} explicit=${field2(policy, "explicit")}`;
|
|
60651
60700
|
}
|
|
60652
60701
|
function renderAgentPolicySet(output) {
|
|
60653
|
-
const policy =
|
|
60654
|
-
return `Set company autonomy ceiling to ${
|
|
60702
|
+
const policy = asRecord2(asRecord2(output).agent_policy);
|
|
60703
|
+
return `Set company autonomy ceiling to ${field2(policy, "profile")} (max_autonomous_risk=${field2(policy, "max_autonomous_risk")}, enforcement=${field2(policy, "enforcement")}).`;
|
|
60655
60704
|
}
|
|
60656
60705
|
function renderConfirmationModeGet(output) {
|
|
60657
|
-
const policy =
|
|
60658
|
-
return `confirmation_policy cli_mode=${
|
|
60706
|
+
const policy = asRecord2(asRecord2(output).confirmation_policy);
|
|
60707
|
+
return `confirmation_policy cli_mode=${field2(policy, "cli_mode")} explicit=${field2(policy, "explicit")}`;
|
|
60659
60708
|
}
|
|
60660
60709
|
function renderConfirmationModeSet(output) {
|
|
60661
|
-
const policy =
|
|
60662
|
-
return `Updated CLI confirmation mode to ${
|
|
60710
|
+
const policy = asRecord2(asRecord2(output).confirmation_policy);
|
|
60711
|
+
return `Updated CLI confirmation mode to ${field2(policy, "cli_mode")}.`;
|
|
60663
60712
|
}
|
|
60664
60713
|
function renderMemberInvite(output) {
|
|
60665
|
-
const record2 =
|
|
60666
|
-
return `Invited ${
|
|
60714
|
+
const record2 = asRecord2(output);
|
|
60715
|
+
return `Invited ${field2(record2, "email")} as ${field2(record2, "role")} (invite ${field2(record2, "invite_id")}).`;
|
|
60667
60716
|
}
|
|
60668
60717
|
function renderMemberUpdate(output) {
|
|
60669
|
-
const record2 =
|
|
60670
|
-
return `Updated member ${
|
|
60718
|
+
const record2 = asRecord2(output);
|
|
60719
|
+
return `Updated member ${field2(record2, "member_id")} \u2192 ${field2(record2, "role")}.`;
|
|
60671
60720
|
}
|
|
60672
60721
|
function renderMemberRemove(output) {
|
|
60673
|
-
const record2 =
|
|
60674
|
-
return `Removed member ${
|
|
60722
|
+
const record2 = asRecord2(output);
|
|
60723
|
+
return `Removed member ${field2(record2, "member_id")} (removed=${field2(record2, "removed")}).`;
|
|
60675
60724
|
}
|
|
60676
60725
|
function agentSetupStateLine(output) {
|
|
60677
|
-
const record2 =
|
|
60678
|
-
const dryRun = record2.dry_run === null || record2.dry_run === void 0 ? "\u2014" :
|
|
60726
|
+
const record2 = asRecord2(output);
|
|
60727
|
+
const dryRun = record2.dry_run === null || record2.dry_run === void 0 ? "\u2014" : field2(asRecord2(record2.dry_run), "status");
|
|
60679
60728
|
const lines = [
|
|
60680
|
-
`setup ${
|
|
60681
|
-
`status=${
|
|
60729
|
+
`setup ${field2(record2, "setup_id")} seat ${field2(record2, "seat_id")} agent ${field2(record2, "agent_id")}`,
|
|
60730
|
+
`status=${field2(record2, "status")} next=${field2(record2, "next_action")} dry_run=${dryRun}`
|
|
60682
60731
|
];
|
|
60683
60732
|
const model = record2.model_config;
|
|
60684
60733
|
if (model && typeof model === "object") {
|
|
60685
|
-
const m =
|
|
60686
|
-
const effort = m.effort ? ` (effort ${
|
|
60687
|
-
lines.push(`model=${
|
|
60734
|
+
const m = asRecord2(model);
|
|
60735
|
+
const effort = m.effort ? ` (effort ${field2(m, "effort")})` : "";
|
|
60736
|
+
lines.push(`model=${field2(m, "provider")}/${field2(m, "model")}${effort}`);
|
|
60688
60737
|
}
|
|
60689
60738
|
return lines.join("\n");
|
|
60690
60739
|
}
|
|
60691
60740
|
function renderAgentTemplates(output) {
|
|
60692
|
-
const templates = asArray(
|
|
60741
|
+
const templates = asArray(asRecord2(output).templates);
|
|
60693
60742
|
if (templates.length === 0) {
|
|
60694
60743
|
return "No stock agent templates available.";
|
|
60695
60744
|
}
|
|
60696
60745
|
return templates.map((template) => {
|
|
60697
|
-
const record2 =
|
|
60698
|
-
return `${
|
|
60746
|
+
const record2 = asRecord2(template);
|
|
60747
|
+
return `${field2(record2, "slug")} ${field2(record2, "tier")} ${field2(record2, "display_name")} \u2014 ${field2(record2, "function")}`;
|
|
60699
60748
|
}).join("\n");
|
|
60700
60749
|
}
|
|
60701
60750
|
function renderAgentDryRun(output) {
|
|
60702
|
-
const record2 =
|
|
60703
|
-
const header = `dry run for seat ${
|
|
60704
|
-
${
|
|
60751
|
+
const record2 = asRecord2(output);
|
|
60752
|
+
const header = `dry run for seat ${field2(record2, "seat_id")} (charter ${field2(record2, "charter_version_id")}): ${field2(record2, "status")} (reused=${field2(record2, "reused")})
|
|
60753
|
+
${field2(record2, "summary")}`;
|
|
60705
60754
|
return [header, formatDryRunTranscript(record2.transcript)].filter((part) => part.length > 0).join("\n");
|
|
60706
60755
|
}
|
|
60707
60756
|
function renderAgentGoLive(output) {
|
|
60708
|
-
const record2 =
|
|
60709
|
-
return `agent seat ${
|
|
60757
|
+
const record2 = asRecord2(output);
|
|
60758
|
+
return `agent seat ${field2(record2, "seat_id")} is now ${field2(record2, "status")} (charter ${field2(record2, "charter_version_id")}).`;
|
|
60710
60759
|
}
|
|
60711
60760
|
function renderAgentStatus(output) {
|
|
60712
|
-
const record2 =
|
|
60713
|
-
return `agent seat ${
|
|
60761
|
+
const record2 = asRecord2(output);
|
|
60762
|
+
return `agent seat ${field2(record2, "seat_id")} status=${field2(record2, "status")} live=${field2(record2, "live")} lane=${field2(record2, "lane")}`;
|
|
60714
60763
|
}
|
|
60715
60764
|
function renderAgentRunNow(output) {
|
|
60716
|
-
const record2 =
|
|
60717
|
-
const workOrder =
|
|
60718
|
-
return `manual production run ${
|
|
60765
|
+
const record2 = asRecord2(output);
|
|
60766
|
+
const workOrder = asRecord2(record2.work_order);
|
|
60767
|
+
return `manual production run ${field2(record2, "execution_mode")}: queued ${field2(workOrder, "lane")} work order ${field2(workOrder, "id")} for agent ${field2(workOrder, "agent_id")} (${field2(workOrder, "status")})`;
|
|
60719
60768
|
}
|
|
60720
60769
|
function renderAgentFleetDigest(output) {
|
|
60721
|
-
const record2 =
|
|
60722
|
-
const summary =
|
|
60770
|
+
const record2 = asRecord2(output);
|
|
60771
|
+
const summary = asRecord2(record2.summary);
|
|
60723
60772
|
const agents = asArray(record2.agents);
|
|
60724
|
-
const header = `fleet ${
|
|
60773
|
+
const header = `fleet ${field2(summary, "fleet_count")} seats live=${field2(summary, "live_count")} idle=${field2(summary, "idle_count")} turns24h=${field2(summary, "turns_24h")} failed24h=${field2(summary, "failed_runs_24h")} spend7d=$${field2(summary, "spend_7d_usd")}`;
|
|
60725
60774
|
const lines = agents.map((agent) => {
|
|
60726
|
-
const r =
|
|
60727
|
-
return `${
|
|
60775
|
+
const r = asRecord2(agent);
|
|
60776
|
+
return `${field2(r, "seat_name")} ${field2(r, "health_status")} live=${field2(r, "live")} turns24h=${field2(r, "turns_24h")} failed=${field2(r, "failed_runs_24h")} next=${field2(r, "suggested_next_action")}`;
|
|
60728
60777
|
});
|
|
60729
60778
|
return [header, ...lines].join("\n");
|
|
60730
60779
|
}
|
|
60731
60780
|
function renderAgentGetRun(output) {
|
|
60732
|
-
const run2 =
|
|
60781
|
+
const run2 = asRecord2(asRecord2(output).run);
|
|
60733
60782
|
const errors = asArray(run2.error_logs);
|
|
60734
|
-
const errorLine = errors.length === 0 ? "errors=0" : `errors=${errors.length} first=${
|
|
60735
|
-
return `run ${
|
|
60736
|
-
transcript=${
|
|
60783
|
+
const errorLine = errors.length === 0 ? "errors=0" : `errors=${errors.length} first=${field2(asRecord2(errors[0]), "message")}`;
|
|
60784
|
+
return `run ${field2(run2, "run_id")} status=${field2(run2, "status")} lane=${field2(run2, "lane")} cost=$${field2(run2, "cost_usd")}
|
|
60785
|
+
transcript=${field2(run2, "transcript_ref")}
|
|
60737
60786
|
${errorLine}`;
|
|
60738
60787
|
}
|
|
60739
60788
|
function renderAgentConfigureTools(output) {
|
|
60740
|
-
const record2 =
|
|
60789
|
+
const record2 = asRecord2(output);
|
|
60741
60790
|
const decisions = asArray(record2.tool_decisions).map((entry) => {
|
|
60742
|
-
const r =
|
|
60743
|
-
return ` ${
|
|
60791
|
+
const r = asRecord2(entry);
|
|
60792
|
+
return ` ${field2(r, "tool")} ${field2(r, "decision")}`;
|
|
60744
60793
|
}).join("\n");
|
|
60745
|
-
return [`Configured tools for seat ${
|
|
60794
|
+
return [`Configured tools for seat ${field2(record2, "seat_id")} (agent ${field2(record2, "agent_id")}).`, decisions].filter((line) => line.length > 0).join("\n");
|
|
60746
60795
|
}
|
|
60747
60796
|
function renderToolCatalog(output) {
|
|
60748
|
-
const record2 =
|
|
60797
|
+
const record2 = asRecord2(output);
|
|
60749
60798
|
const tools = asArray(record2.tools);
|
|
60750
60799
|
const header = `# Tool catalog
|
|
60751
60800
|
|
|
60752
|
-
${
|
|
60801
|
+
${field2(record2, "note")}
|
|
60753
60802
|
`;
|
|
60754
60803
|
if (tools.length === 0) {
|
|
60755
60804
|
return `${header}
|
|
60756
60805
|
No tools in the catalog.`;
|
|
60757
60806
|
}
|
|
60758
60807
|
const lines = tools.map((entry) => {
|
|
60759
|
-
const r =
|
|
60808
|
+
const r = asRecord2(entry);
|
|
60760
60809
|
const cred = r.credential_required === true ? " (credential required)" : "";
|
|
60761
|
-
return `- \`${
|
|
60762
|
-
${
|
|
60810
|
+
return `- \`${field2(r, "id")}\` [${field2(r, "provider")} \xB7 ${field2(r, "default_scope_tier")} \xB7 ${field2(r, "default_access_policy")}]${cred}
|
|
60811
|
+
${field2(r, "description")}`;
|
|
60763
60812
|
});
|
|
60764
60813
|
return `${header}
|
|
60765
60814
|
${lines.join("\n")}`;
|
|
60766
60815
|
}
|
|
60767
60816
|
function renderModelCatalog(output) {
|
|
60768
|
-
const record2 =
|
|
60817
|
+
const record2 = asRecord2(output);
|
|
60769
60818
|
const tiers = asArray(record2.tiers);
|
|
60770
60819
|
const header = `# Model tiers
|
|
60771
60820
|
|
|
60772
|
-
${
|
|
60821
|
+
${field2(record2, "note")}
|
|
60773
60822
|
`;
|
|
60774
60823
|
if (tiers.length === 0) {
|
|
60775
60824
|
return `${header}
|
|
60776
60825
|
No model tiers are configured.`;
|
|
60777
60826
|
}
|
|
60778
|
-
const defaultTier =
|
|
60827
|
+
const defaultTier = field2(record2, "default_tier");
|
|
60779
60828
|
const lines = tiers.map((entry) => {
|
|
60780
|
-
const r =
|
|
60781
|
-
const tier =
|
|
60829
|
+
const r = asRecord2(entry);
|
|
60830
|
+
const tier = field2(r, "tier");
|
|
60782
60831
|
const recommended = r.recommended === true || tier === defaultTier ? " recommended" : "";
|
|
60783
60832
|
const bestFor = asArray(r.best_for).map(String).join(", ");
|
|
60784
60833
|
return [
|
|
60785
|
-
`- \`${tier}\` [${
|
|
60786
|
-
` ${
|
|
60834
|
+
`- \`${tier}\` [${field2(r, "provider")}/${field2(r, "model")} \xB7 effort ${field2(r, "effort")} \xB7 cost ${field2(r, "cost_band")}${recommended}]`,
|
|
60835
|
+
` ${field2(r, "description")}`,
|
|
60787
60836
|
` Best for: ${bestFor}`,
|
|
60788
|
-
` Price: $${
|
|
60789
|
-
` Cost: ${
|
|
60790
|
-
` Avoid for: ${
|
|
60837
|
+
` Price: $${field2(r, "input_usd_per_million_tokens")}/1M input \xB7 $${field2(r, "output_usd_per_million_tokens")}/1M output`,
|
|
60838
|
+
` Cost: ${field2(r, "cost_note")}`,
|
|
60839
|
+
` Avoid for: ${field2(r, "avoid_for")}`
|
|
60791
60840
|
].join("\n");
|
|
60792
60841
|
});
|
|
60793
60842
|
return `${header}
|
|
60794
60843
|
${lines.join("\n")}`;
|
|
60795
60844
|
}
|
|
60796
60845
|
function renderErrorList(output) {
|
|
60797
|
-
const record2 =
|
|
60846
|
+
const record2 = asRecord2(output);
|
|
60798
60847
|
const errors = asArray(record2.errors);
|
|
60799
60848
|
if (errors.length === 0) {
|
|
60800
60849
|
return "No error logs matching the filter.";
|
|
60801
60850
|
}
|
|
60802
60851
|
return errors.map((entry) => {
|
|
60803
|
-
const r =
|
|
60804
|
-
const disposition =
|
|
60852
|
+
const r = asRecord2(entry);
|
|
60853
|
+
const disposition = field2(r, "disposition");
|
|
60805
60854
|
const marker = disposition === "active" ? "*" : " ";
|
|
60806
|
-
const severityLabel =
|
|
60807
|
-
return `${marker} ${
|
|
60808
|
-
}).join("\n") + (
|
|
60809
|
-
Total: ${
|
|
60855
|
+
const severityLabel = field2(r, "severity").charAt(0).toUpperCase();
|
|
60856
|
+
return `${marker} ${field2(r, "error_log_id")} [${severityLabel}] ${field2(r, "source")} ${disposition} ${field2(r, "code")} ${field2(r, "message")} ${field2(r, "created_at")}`;
|
|
60857
|
+
}).join("\n") + (field2(record2, "total") !== "" ? `
|
|
60858
|
+
Total: ${field2(record2, "total")}` : "");
|
|
60810
60859
|
}
|
|
60811
60860
|
function renderErrorResolve(output) {
|
|
60812
|
-
const record2 =
|
|
60813
|
-
return `Resolved error ${
|
|
60861
|
+
const record2 = asRecord2(output);
|
|
60862
|
+
return `Resolved error ${field2(record2, "error_log_id")} as ${field2(record2, "disposition")} at ${field2(record2, "resolved_at")}.`;
|
|
60814
60863
|
}
|
|
60815
60864
|
function renderErrorSupersede(output) {
|
|
60816
|
-
const record2 =
|
|
60817
|
-
return `Superseded error ${
|
|
60865
|
+
const record2 = asRecord2(output);
|
|
60866
|
+
return `Superseded error ${field2(record2, "error_log_id")} \u2192 ${field2(record2, "superseded_by_id")} at ${field2(record2, "resolved_at")}.`;
|
|
60818
60867
|
}
|
|
60819
60868
|
function renderDeliverableList(output) {
|
|
60820
|
-
const deliverables = asArray(
|
|
60869
|
+
const deliverables = asArray(asRecord2(output).deliverables);
|
|
60821
60870
|
if (deliverables.length === 0) {
|
|
60822
60871
|
return "No deliverables for this seat.";
|
|
60823
60872
|
}
|
|
60824
60873
|
return deliverables.map((entry) => {
|
|
60825
|
-
const r =
|
|
60826
|
-
const summary =
|
|
60827
|
-
return `${
|
|
60874
|
+
const r = asRecord2(entry);
|
|
60875
|
+
const summary = field2(r, "summary") === "\u2014" ? "" : ` \u2014 ${field2(r, "summary")}`;
|
|
60876
|
+
return `${field2(r, "id")} [${field2(r, "kind")}] ${field2(r, "title")}${summary}`;
|
|
60828
60877
|
}).join("\n");
|
|
60829
60878
|
}
|
|
60830
60879
|
function renderDeliverableDetail(output) {
|
|
60831
|
-
const d =
|
|
60880
|
+
const d = asRecord2(asRecord2(output).deliverable);
|
|
60832
60881
|
const links = asArray(d.links).map((entry) => {
|
|
60833
|
-
const l =
|
|
60834
|
-
return ` ${
|
|
60882
|
+
const l = asRecord2(entry);
|
|
60883
|
+
return ` ${field2(l, "kind")}: ${field2(l, "label")} <${field2(l, "url")}>`;
|
|
60835
60884
|
}).join("\n");
|
|
60836
60885
|
return [
|
|
60837
|
-
`# ${
|
|
60838
|
-
|
|
60839
|
-
|
|
60840
|
-
|
|
60841
|
-
${
|
|
60842
|
-
`delivered: ${
|
|
60843
|
-
`run: ${
|
|
60844
|
-
`task: ${
|
|
60886
|
+
`# ${field2(d, "title")} [${field2(d, "kind")}]`,
|
|
60887
|
+
field2(d, "id"),
|
|
60888
|
+
field2(d, "summary") === "\u2014" ? "" : field2(d, "summary"),
|
|
60889
|
+
field2(d, "content") === "\u2014" ? "" : `content:
|
|
60890
|
+
${field2(d, "content")}`,
|
|
60891
|
+
`delivered: ${field2(d, "delivered_at")}`,
|
|
60892
|
+
`run: ${field2(d, "source_run_status")} ${field2(d, "source_run_model")}`,
|
|
60893
|
+
`task: ${field2(d, "source_task_title")}`,
|
|
60845
60894
|
links.length > 0 ? `links:
|
|
60846
60895
|
${links}` : ""
|
|
60847
60896
|
].filter((line) => line.length > 0).join("\n");
|
|
60848
60897
|
}
|
|
60849
60898
|
function renderDeliverableWrite(output) {
|
|
60850
|
-
return `deliverable ${
|
|
60899
|
+
return `deliverable ${field2(asRecord2(output), "deliverable_id")} recorded.`;
|
|
60851
60900
|
}
|
|
60852
60901
|
function formatSystemHealth(output) {
|
|
60853
|
-
const record2 =
|
|
60854
|
-
const scope =
|
|
60855
|
-
const sections =
|
|
60902
|
+
const record2 = asRecord2(output);
|
|
60903
|
+
const scope = asRecord2(record2.scope);
|
|
60904
|
+
const sections = asRecord2(record2.sections);
|
|
60856
60905
|
const actions = asArray(record2.top_actions);
|
|
60857
60906
|
const findings = asArray(record2.findings);
|
|
60858
60907
|
const lines = [
|
|
60859
|
-
`verdict: ${
|
|
60908
|
+
`verdict: ${field2(record2, "verdict")} scope: ${field2(scope, "mode")} seats: ${field2(scope, "total_seat_count")} findings: ${findings.length}`
|
|
60860
60909
|
];
|
|
60861
60910
|
if (actions.length > 0) {
|
|
60862
60911
|
lines.push("top_actions:");
|
|
60863
60912
|
for (const action of actions) {
|
|
60864
|
-
const item =
|
|
60865
|
-
lines.push(` ${
|
|
60866
|
-
if (
|
|
60867
|
-
lines.push(` ${
|
|
60913
|
+
const item = asRecord2(action);
|
|
60914
|
+
lines.push(` ${field2(item, "label")} command=${field2(item, "command_id")} schema=${field2(item, "schema_ref")} cli=${field2(item, "cli")}`);
|
|
60915
|
+
if (field2(item, "help") !== "\u2014") {
|
|
60916
|
+
lines.push(` ${field2(item, "help")}`);
|
|
60868
60917
|
}
|
|
60869
60918
|
}
|
|
60870
60919
|
}
|
|
60871
|
-
const fleet =
|
|
60872
|
-
const runs =
|
|
60873
|
-
const signals =
|
|
60874
|
-
const cascade =
|
|
60875
|
-
const workLoop =
|
|
60876
|
-
const connectivity =
|
|
60877
|
-
const sync =
|
|
60920
|
+
const fleet = asRecord2(sections.fleet);
|
|
60921
|
+
const runs = asRecord2(sections.runs);
|
|
60922
|
+
const signals = asRecord2(sections.signals);
|
|
60923
|
+
const cascade = asRecord2(sections.cascade_setup);
|
|
60924
|
+
const workLoop = asRecord2(sections.work_loop);
|
|
60925
|
+
const connectivity = asRecord2(sections.connectivity);
|
|
60926
|
+
const sync = asRecord2(sections.sync);
|
|
60878
60927
|
lines.push(
|
|
60879
|
-
`fleet: agents=${
|
|
60880
|
-
`runs: failed_24h=${
|
|
60881
|
-
`signals: off_track=${
|
|
60882
|
-
`cascade: recommendations=${
|
|
60883
|
-
`work_loop: open_issues=${
|
|
60884
|
-
`connectivity: runners=${
|
|
60885
|
-
`sync: latest_brief=${
|
|
60928
|
+
`fleet: agents=${field2(fleet, "agent_count")} live=${field2(fleet, "live_count")} stale=${field2(fleet, "stale_count")} setup_gaps=${field2(fleet, "setup_gap_count")}`,
|
|
60929
|
+
`runs: failed_24h=${field2(runs, "failed_24h")} failed_7d=${field2(runs, "failed_7d")} unresolved_errors=${field2(runs, "unresolved_error_count")}`,
|
|
60930
|
+
`signals: off_track=${field2(signals, "off_track_count")} pending=${field2(signals, "pending_count")}`,
|
|
60931
|
+
`cascade: recommendations=${field2(cascade, "recommendation_count")} warnings=${field2(cascade, "warning_count")}`,
|
|
60932
|
+
`work_loop: open_issues=${field2(workLoop, "open_issue_count")} friction_without_task=${field2(workLoop, "friction_without_task_count")} open_or_stalled_tasks=${field2(workLoop, "open_or_stalled_task_count")}`,
|
|
60933
|
+
`connectivity: runners=${field2(connectivity, "runner_count")} offline_runners=${field2(connectivity, "offline_runner_count")} not_ready_runners=${field2(connectivity, "not_capable_runner_count")} integrations=${field2(connectivity, "integration_count")} disconnected_integrations=${field2(connectivity, "disconnected_integration_count")} failed_notifications=${field2(connectivity, "failed_notification_count")}`,
|
|
60934
|
+
`sync: latest_brief=${field2(sync, "latest_brief_at")} missing_latest_brief=${field2(sync, "missing_latest_brief")} flagged_gaps=${field2(sync, "flagged_gap_count")}`
|
|
60886
60935
|
);
|
|
60887
60936
|
return lines.join("\n");
|
|
60888
60937
|
}
|
|
60889
60938
|
function renderSkillList(output) {
|
|
60890
|
-
const skills = asArray(
|
|
60939
|
+
const skills = asArray(asRecord2(output).skills);
|
|
60891
60940
|
if (skills.length === 0) {
|
|
60892
60941
|
return "No skills found.";
|
|
60893
60942
|
}
|
|
60894
60943
|
return [
|
|
60895
60944
|
"# Skills",
|
|
60896
60945
|
...skills.map((entry) => {
|
|
60897
|
-
const r =
|
|
60898
|
-
return `- \`${
|
|
60899
|
-
${
|
|
60946
|
+
const r = asRecord2(entry);
|
|
60947
|
+
return `- \`${field2(r, "slug")}\` v${field2(r, "latest_version")} [${field2(r, "status")} \xB7 ${field2(r, "visibility")} \xB7 assigned ${field2(r, "assigned_seat_count")}]
|
|
60948
|
+
${field2(r, "description")}`;
|
|
60900
60949
|
})
|
|
60901
60950
|
].join("\n");
|
|
60902
60951
|
}
|
|
60903
60952
|
function renderSkillDetail(output) {
|
|
60904
|
-
const skill =
|
|
60905
|
-
const required2 = asArray(skill.required_tools).map((entry) =>
|
|
60906
|
-
const optional2 = asArray(skill.optional_tools).map((entry) =>
|
|
60907
|
-
const files = asArray(skill.files).map((entry) =>
|
|
60953
|
+
const skill = asRecord2(asRecord2(output).skill);
|
|
60954
|
+
const required2 = asArray(skill.required_tools).map((entry) => field2(asRecord2(entry), "tool")).join(", ") || "none";
|
|
60955
|
+
const optional2 = asArray(skill.optional_tools).map((entry) => field2(asRecord2(entry), "tool")).join(", ") || "none";
|
|
60956
|
+
const files = asArray(skill.files).map((entry) => field2(asRecord2(entry), "path")).join(", ") || "SKILL.md";
|
|
60908
60957
|
return [
|
|
60909
|
-
`# ${
|
|
60910
|
-
`${
|
|
60911
|
-
`version: ${
|
|
60958
|
+
`# ${field2(skill, "name")} (\`${field2(skill, "slug")}\`)`,
|
|
60959
|
+
`${field2(skill, "description")}`,
|
|
60960
|
+
`version: ${field2(skill, "latest_version")} (${field2(skill, "latest_version_id")})`,
|
|
60912
60961
|
`required tools: ${required2}`,
|
|
60913
60962
|
`optional tools: ${optional2}`,
|
|
60914
60963
|
`files: SKILL.md${files === "SKILL.md" ? "" : `, ${files}`}`
|
|
60915
60964
|
].join("\n");
|
|
60916
60965
|
}
|
|
60917
60966
|
function renderAssignedSkills(output) {
|
|
60918
|
-
const record2 =
|
|
60967
|
+
const record2 = asRecord2(output);
|
|
60919
60968
|
const assignments = asArray(record2.assignments);
|
|
60920
60969
|
if (assignments.length === 0) {
|
|
60921
|
-
return `No assigned skills${record2.seat_id ? ` for seat ${
|
|
60970
|
+
return `No assigned skills${record2.seat_id ? ` for seat ${field2(record2, "seat_id")}` : ""}.`;
|
|
60922
60971
|
}
|
|
60923
60972
|
return [
|
|
60924
|
-
`# Assigned skills${record2.seat_id ? ` for ${
|
|
60973
|
+
`# Assigned skills${record2.seat_id ? ` for ${field2(record2, "seat_id")}` : ""}`,
|
|
60925
60974
|
...assignments.map((entry) => {
|
|
60926
|
-
const r =
|
|
60927
|
-
return `- \`${
|
|
60928
|
-
${
|
|
60975
|
+
const r = asRecord2(entry);
|
|
60976
|
+
return `- \`${field2(r, "slug")}\` v${field2(r, "version")} \u2192 seat ${field2(r, "seat_id")} (${field2(r, "assignment_id")})
|
|
60977
|
+
${field2(r, "rationale")}`;
|
|
60929
60978
|
})
|
|
60930
60979
|
].join("\n");
|
|
60931
60980
|
}
|
|
60932
60981
|
function renderDependencyCheck(output) {
|
|
60933
|
-
const record2 =
|
|
60982
|
+
const record2 = asRecord2(output);
|
|
60934
60983
|
const render = (label, items) => {
|
|
60935
60984
|
if (items.length === 0) {
|
|
60936
60985
|
return `${label}: none`;
|
|
@@ -60938,52 +60987,52 @@ function renderDependencyCheck(output) {
|
|
|
60938
60987
|
return [
|
|
60939
60988
|
`${label}:`,
|
|
60940
60989
|
...items.map((entry) => {
|
|
60941
|
-
const r =
|
|
60942
|
-
return `- \`${
|
|
60990
|
+
const r = asRecord2(entry);
|
|
60991
|
+
return `- \`${field2(r, "tool")}\` ${field2(r, "status")} (needs ${field2(r, "min_scope_tier")}, has ${field2(r, "current_scope_tier")})`;
|
|
60943
60992
|
})
|
|
60944
60993
|
].join("\n");
|
|
60945
60994
|
};
|
|
60946
60995
|
return [
|
|
60947
|
-
`Skill dependencies: ${
|
|
60948
|
-
`skill_version_id: ${
|
|
60949
|
-
`seat_id: ${
|
|
60996
|
+
`Skill dependencies: ${field2(record2, "status")}`,
|
|
60997
|
+
`skill_version_id: ${field2(record2, "skill_version_id")}`,
|
|
60998
|
+
`seat_id: ${field2(record2, "seat_id")}`,
|
|
60950
60999
|
render("required", asArray(record2.required)),
|
|
60951
61000
|
render("optional", asArray(record2.optional))
|
|
60952
61001
|
].join("\n");
|
|
60953
61002
|
}
|
|
60954
61003
|
function renderSkillFile(output) {
|
|
60955
|
-
return
|
|
61004
|
+
return field2(asRecord2(output), "content");
|
|
60956
61005
|
}
|
|
60957
61006
|
function renderSkillWrite(label) {
|
|
60958
61007
|
return (output) => {
|
|
60959
|
-
const skill =
|
|
60960
|
-
const warnings = asArray(
|
|
61008
|
+
const skill = asRecord2(asRecord2(output).skill);
|
|
61009
|
+
const warnings = asArray(asRecord2(skill.validation).warnings).length;
|
|
60961
61010
|
return [
|
|
60962
|
-
`${label}: \`${
|
|
60963
|
-
`status: ${
|
|
60964
|
-
`content_sha256: ${
|
|
61011
|
+
`${label}: \`${field2(skill, "slug")}\` v${field2(skill, "version")} (${field2(skill, "skill_version_id")})`,
|
|
61012
|
+
`status: ${field2(skill, "status")}`,
|
|
61013
|
+
`content_sha256: ${field2(skill, "content_sha256")}`,
|
|
60965
61014
|
`validation_warnings: ${warnings}`
|
|
60966
61015
|
].join("\n");
|
|
60967
61016
|
};
|
|
60968
61017
|
}
|
|
60969
61018
|
function renderAssignment(output) {
|
|
60970
|
-
const record2 =
|
|
60971
|
-
const assignment =
|
|
61019
|
+
const record2 = asRecord2(output);
|
|
61020
|
+
const assignment = asRecord2(record2.assignment);
|
|
60972
61021
|
return [
|
|
60973
|
-
`Skill assignment ${
|
|
60974
|
-
`assignment_id: ${
|
|
60975
|
-
`skill_version_id: ${
|
|
60976
|
-
`dependency_status: ${
|
|
60977
|
-
`next: ${
|
|
61022
|
+
`Skill assignment ${field2(record2, "approval_status")}: \`${field2(assignment, "slug")}\` v${field2(assignment, "version")} \u2192 seat ${field2(assignment, "seat_id")}`,
|
|
61023
|
+
`assignment_id: ${field2(assignment, "assignment_id")}`,
|
|
61024
|
+
`skill_version_id: ${field2(assignment, "skill_version_id")}`,
|
|
61025
|
+
`dependency_status: ${field2(asRecord2(record2.dependency_status), "status")}`,
|
|
61026
|
+
`next: ${field2(record2, "local_sync_next_step")}`
|
|
60978
61027
|
].join("\n");
|
|
60979
61028
|
}
|
|
60980
61029
|
function renderRevocation(output) {
|
|
60981
|
-
const record2 =
|
|
61030
|
+
const record2 = asRecord2(output);
|
|
60982
61031
|
return [
|
|
60983
|
-
`Skill assignment revoked: \`${
|
|
60984
|
-
`assignment_id: ${
|
|
60985
|
-
`skill_version_id: ${
|
|
60986
|
-
`next: ${
|
|
61032
|
+
`Skill assignment revoked: \`${field2(record2, "slug")}\` from seat ${field2(record2, "seat_id")}`,
|
|
61033
|
+
`assignment_id: ${field2(record2, "assignment_id")}`,
|
|
61034
|
+
`skill_version_id: ${field2(record2, "skill_version_id")}`,
|
|
61035
|
+
`next: ${field2(record2, "local_sync_next_step")}`
|
|
60987
61036
|
].join("\n");
|
|
60988
61037
|
}
|
|
60989
61038
|
function packageFromSkillFile(filePath) {
|
|
@@ -68913,6 +68962,12 @@ ${onboardingUsage()}
|
|
|
68913
68962
|
deadRun = true;
|
|
68914
68963
|
return 1;
|
|
68915
68964
|
}
|
|
68965
|
+
const staged = stagedConfirmationFromError(commandId, error51);
|
|
68966
|
+
if (staged !== null) {
|
|
68967
|
+
io.stdout.write(`${format === void 0 ? JSON.stringify(staged, null, 2) : formatStagedConfirmation(commandId, staged)}
|
|
68968
|
+
`);
|
|
68969
|
+
return 0;
|
|
68970
|
+
}
|
|
68916
68971
|
return printCommandError3(io, error51);
|
|
68917
68972
|
}
|
|
68918
68973
|
}
|
|
@@ -69242,6 +69297,12 @@ async function printCommandOutput(io, client, commandId, body = {}, format, opti
|
|
|
69242
69297
|
return printCommandError3(io, approvalError);
|
|
69243
69298
|
}
|
|
69244
69299
|
}
|
|
69300
|
+
const staged = stagedConfirmationFromError(commandId, error51);
|
|
69301
|
+
if (staged !== null) {
|
|
69302
|
+
io.stdout.write(`${format === void 0 ? JSON.stringify(staged, null, 2) : formatStagedConfirmation(commandId, staged)}
|
|
69303
|
+
`);
|
|
69304
|
+
return 0;
|
|
69305
|
+
}
|
|
69245
69306
|
return printCommandError3(io, error51);
|
|
69246
69307
|
}
|
|
69247
69308
|
}
|