@rosthq/cli 0.5.15 → 0.5.17
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/index.js +223 -27
- package/dist/index.js.map +3 -3
- 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
|
@@ -41637,7 +41637,7 @@ The Compass is drafted, then activated by a human through supersession.
|
|
|
41637
41637
|
order: 20,
|
|
41638
41638
|
title: "Responsibility Graph playbook",
|
|
41639
41639
|
summary: "How to build a functions-first graph with seats, owners, Stewards, vacancies, and clean authority.",
|
|
41640
|
-
version: "2026-06-
|
|
41640
|
+
version: "2026-06-20.2",
|
|
41641
41641
|
public: true,
|
|
41642
41642
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
41643
41643
|
stages: ["graph_design", "staffing"],
|
|
@@ -41689,7 +41689,13 @@ The graph is also where you land after onboarding \u2014 it is the mission contr
|
|
|
41689
41689
|
- **Structure** \u2014 seat type and reporting lines.
|
|
41690
41690
|
- **Cascade** \u2014 whether each seat's goal branch is on track.
|
|
41691
41691
|
- **Signal** \u2014 the worst measurable state per seat.
|
|
41692
|
-
- **Scoreboard** \u2014
|
|
41692
|
+
- **Scoreboard** \u2014 direct work and direct cost on each seat, plus a separate team/subtree rollup for manager seats. The tenant summary counts direct agent work once, so a parent seat's team cost does not double-count the same run again. A seat whose direct cost is a clear outlier above the rest of the fleet is flagged as cost drift (labelled, not colour-only). Human seats and seats with no direct or team runs read calmly rather than showing a bare zero. For a small fleet the Scoreboard also leads with a two-tile summary \u2014 total work and total cost \u2014 framed as the single question that matters: is it earning its keep.
|
|
41693
|
+
|
|
41694
|
+
The graph also carries a mission-control panel. It pulls the same operational state visible on the agent and setup-health surfaces: held actions that need steward decisions, failed runs, open Friction, pending Signal readings, stale agents, and setup recommendations. Each item can focus the affected seat on the canvas and links to the route where the operator can act.
|
|
41695
|
+
|
|
41696
|
+
## Review an agent seat's delivered work
|
|
41697
|
+
|
|
41698
|
+
Agent seat pages show the operator-facing output trail, not just low-level run telemetry. The completed work area combines explicit \`agent_deliverables\`, successful \`work.log\` evidence, and recent successful run summaries into one readable list. Each item shows what was delivered, when it happened, what kind of work it was, and safe evidence links labelled as internal, Linear, GitHub, or external. Secret-shaped values are redacted before display, and run or task context is shown only when it belongs to the same seat.
|
|
41693
41699
|
|
|
41694
41700
|
## First-pass structure
|
|
41695
41701
|
|
|
@@ -41824,7 +41830,7 @@ Drafting can be assisted by agents. Activation is a human decision. When authori
|
|
|
41824
41830
|
order: 40,
|
|
41825
41831
|
title: "Agent staffing playbook",
|
|
41826
41832
|
summary: "How to decide whether a seat should be human, agent, or hybrid, and how to go live safely.",
|
|
41827
|
-
version: "2026-06-
|
|
41833
|
+
version: "2026-06-20.1",
|
|
41828
41834
|
public: true,
|
|
41829
41835
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
41830
41836
|
stages: ["staffing"],
|
|
@@ -41885,6 +41891,12 @@ Two creation paths, both draft-first. Read the stock-agents guide for templates
|
|
|
41885
41891
|
- Run on demand: \`{{cli}} agent run-now --seat-id <seat-id>\` / \`agent.run_now\` / \`rost_run_agent_now\` queues an immediate live run without changing the saved schedule. Cloud agents dispatch to the Inngest executor; runner agents queue work for the paired runner. The command is ungated but still requires a live staffed agent and the normal server-side tool guard.
|
|
41886
41892
|
- Audit what an agent did (Trust Card): \`{{cli}} command agent.list_runs --json '{"seat_id":"<seat-id>"}'\` / \`rost_list_agent_runs\` returns the seat's run history with per-run tool-call and guard-held counts; \`{{cli}} agent get-run --seat-id <seat-id> --run-id <run-id>\` / \`agent.get_run\` / \`rost_get_agent_run_diagnostics\` reads one run's transcript reference, token/cost usage, outcome, and product-visible run errors; \`{{cli}} command agent.list_tool_calls --json '{"seat_id":"<seat-id>"}'\` / \`rost_list_agent_tool_calls\` returns the tool-call ledger with each call's guard result. Both list commands include a \`denied_tool_call_count\` rollup \u2014 the actions held because they exceeded the charter. Pass \`{"seat_id":"<seat-id>","held_only":true}\` to \`agent.list_tool_calls\` for only the held calls. The web seat page shows the same facts as a Trust Card.
|
|
41887
41893
|
|
|
41894
|
+
## Review readiness before go-live
|
|
41895
|
+
|
|
41896
|
+
The fleet page and seat page should make readiness inspectable, not implied. A staffed agent row shows whether the Steward chain, lane or runtime substrate, vaulted credentials, granted tools, model config, sandbox dry run, and go-live state are complete. Each missing item links to the exact setup surface that fixes it: seat staffing, the Charter Builder, agent operations, runner settings, vault settings, or tool configuration.
|
|
41897
|
+
|
|
41898
|
+
After an agent runs, review its completed work as well as its telemetry. Seat pages combine explicit deliverables, work-log evidence, and successful run summaries into a readable output trail with safe evidence links labelled as internal, Linear, GitHub, or external. Held confirmations and escalations remain visible until decided or expired: confirmations can be approved or rejected from the seat page, while escalations link to the Steward queue for the human decision.
|
|
41899
|
+
|
|
41888
41900
|
## When to stop for confirmation
|
|
41889
41901
|
|
|
41890
41902
|
\`agent.create_from_template\`, \`agent.create_custom\`, \`staffing.assign_user\`, \`agent.go_live\`, \`agent.update_schedule\`, and \`mcp_token.create\` are \`human_required\`; \`agent.configure_tools\` and \`credential.ingress\` are \`credential_flow\` (both gate through the vault-backed credential path with human approval; \`agent.configure_tools\` stages the request and only \`credential.ingress\` takes the raw secret, as a vault reference); \`agent.decommission\` is \`dangerous\`. \`agent.run_now\` is not human-gated because it does not expand authority or change the schedule; it only queues an immediate run for an already-live agent. An agent may draft, configure (with vault refs), dry-run, and request an on-demand run; the human approves go-live, credentials, schedule changes, and decommission. \`run_dry_run\` is ungated by human approval, but it is **precondition-gated**: the seat's permission manifest must be signed first (\`charter.sign_manifest\`). Attempting a dry run before sign-off returns a clean \`COMMAND_PRECONDITION_FAILED\` naming \`charter.sign_manifest\`, not a generic failure. Go-live after a passed dry run is \`human_required\`. See the confirmations guide.
|
|
@@ -42053,7 +42065,7 @@ The dry run is a real sandbox rehearsal, not a stamp. It executes a mock-provide
|
|
|
42053
42065
|
order: 80,
|
|
42054
42066
|
title: "Sync rhythm playbook",
|
|
42055
42067
|
summary: "How Signal, Friction, Cascade, and Sync Briefs turn weekly meetings into decision time.",
|
|
42056
|
-
version: "2026-06-20.
|
|
42068
|
+
version: "2026-06-20.2",
|
|
42057
42069
|
public: true,
|
|
42058
42070
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
42059
42071
|
stages: ["operating_rhythm"],
|
|
@@ -42100,6 +42112,10 @@ The Sync Brief should answer:
|
|
|
42100
42112
|
|
|
42101
42113
|
On screen the brief reads in plain terms: Signal exceptions, goal progress, task review, ranked Friction, and agent activity. Where a section has no source data, it lists gaps to confirm \u2014 the missing inputs a human should know about before the meeting \u2014 rather than a blank section.
|
|
42102
42114
|
|
|
42115
|
+
Before the first brief exists, the Sync pages are readiness views. They show the next scheduled compile and the source areas that will feed it: Signal, Cascade, Tasks, Friction, and Agents. Use those links to add the missing source data; there is no manual compile button until the system has an idempotent persisted operation to run.
|
|
42116
|
+
|
|
42117
|
+
The same readiness model appears around the meeting loop. Steward shows the governance loop even when no decision is waiting: which agent seats are stewarded, how many escalations are open, and recent raised/decided counts. Tasks explains when nothing is due and points to recently completed or agent-blocked work when it exists. The agent fleet shows configuration completeness per staffed agent seat \u2014 steward chain, lane/trigger/substrate, credentials, tools, model, dry run, and go-live \u2014 with links to the exact setup surface rather than a generic action button.
|
|
42118
|
+
|
|
42103
42119
|
## During Sync
|
|
42104
42120
|
|
|
42105
42121
|
Start with the exceptions, not a tour of every seat. Resolve the highest-value Friction first. Convert decisions into handoffs with owners and dates. Clarify Charters when ownership is ambiguous.
|
|
@@ -42123,7 +42139,7 @@ Decisions should be recorded as human decisions. Handoffs should attach to seats
|
|
|
42123
42139
|
order: 45,
|
|
42124
42140
|
title: "How agents work",
|
|
42125
42141
|
summary: "How {{brand}} agents operate inside seats, use Charters, report work, and escalate beyond authority.",
|
|
42126
|
-
version: "2026-06-20.
|
|
42142
|
+
version: "2026-06-20.4",
|
|
42127
42143
|
public: true,
|
|
42128
42144
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
42129
42145
|
stages: ["staffing", "operating_rhythm"],
|
|
@@ -42215,20 +42231,20 @@ Before an agent goes live, the sandbox dry run rehearses this against fake data
|
|
|
42215
42231
|
|
|
42216
42232
|
## What humans should review
|
|
42217
42233
|
|
|
42218
|
-
The Agents page shows fleet health first: live state, recent runs, failed runs, open held actions, last activity, cost, and the next operator action. A seat's Trust Card drills into the same facts: run history, one-run detail, tool-call outcomes, product-visible errors, transcript references, and held confirmations or escalations. Open confirmations stay visible until they are decided or expire, even when they are older than the default activity window. Approving or rejecting a held confirmation from the seat page is scoped to that seat; rejection can include a short reason.
|
|
42234
|
+
The Agents page shows fleet health first: live state, recent runs, failed runs, open held actions, last activity, cost, and the next operator action. It also shows configuration completeness for each staffed agent seat: Steward chain, lane or runtime substrate, vaulted credentials, granted tools, model config, sandbox dry run, and go-live state, each with a remediation link when incomplete. A seat's Trust Card drills into the same facts: run history, one-run detail, tool-call outcomes, product-visible errors, transcript references, and held confirmations or escalations. Open confirmations stay visible until they are decided or expire, even when they are older than the default activity window. Approving or rejecting a held confirmation from the seat page is scoped to that seat; rejection can include a short reason.
|
|
42219
42235
|
|
|
42220
|
-
Review the first dry runs, fleet overview, tool-call audit rows, escalations, and Signal impact. The fleet view at \`/agents\` shows every staffed agent seat at a glance; the agent-native equivalents are \`{{cli}} command agent.list_fleet --json '{}'\` / \`rost_list_agent_fleet\` for the compact overview, and \`{{cli}} agent fleet-digest --json\` / \`agent.fleet_digest\` / \`rost_get_dogfood_fleet_health_digest\` for the daily dogfood evidence bundle. The digest returns live/idle state, 24h/7d turns, 7d/30d spend, recent failed runs, unresolved product errors, failed notifications, and a next action per seat. Fleet real-turn counts use the same seat-run association as \`agent.list_runs\`, filtered to real runs. Scheduled agents are checked in rounded five-minute buckets, so a minute-level cron inside the bucket queues one work order for that bucket rather than one order per minute. Sandbox dry runs do not count as real turns. If the agent is repeatedly blocked, revise the Charter or split the seat. If the agent is taking too much judgment, narrow its autonomous scope.`
|
|
42236
|
+
Review the first dry runs, fleet overview, tool-call audit rows, escalations, deliverables, and Signal impact. A seat's completed-work area combines explicit deliverables, work-log evidence, and successful run summaries into one operator-facing trail with safe links labelled as internal, Linear, GitHub, or external. The fleet view at \`/agents\` shows every staffed agent seat at a glance; the agent-native equivalents are \`{{cli}} command agent.list_fleet --json '{}'\` / \`rost_list_agent_fleet\` for the compact overview, and \`{{cli}} agent fleet-digest --json\` / \`agent.fleet_digest\` / \`rost_get_dogfood_fleet_health_digest\` for the daily dogfood evidence bundle. The digest returns live/idle state, 24h/7d turns, 7d/30d spend, recent failed runs, unresolved product errors, failed notifications, and a next action per seat. Fleet real-turn counts use the same seat-run association as \`agent.list_runs\`, filtered to real runs. Scheduled agents are checked in rounded five-minute buckets, so a minute-level cron inside the bucket queues one work order for that bucket rather than one order per minute. Sandbox dry runs do not count as real turns. If the agent is repeatedly blocked, revise the Charter or split the seat. If the agent is taking too much judgment, narrow its autonomous scope.`
|
|
42221
42237
|
},
|
|
42222
42238
|
{
|
|
42223
42239
|
slug: "tool-access-and-vault",
|
|
42224
42240
|
order: 46,
|
|
42225
42241
|
title: "Tool access and vault",
|
|
42226
42242
|
summary: "How to give agents access to tools without exposing raw credentials or expanding authority by accident.",
|
|
42227
|
-
version: "2026-06-20.
|
|
42243
|
+
version: "2026-06-20.5",
|
|
42228
42244
|
public: true,
|
|
42229
42245
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
42230
42246
|
stages: ["staffing"],
|
|
42231
|
-
relatedCommandIds: ["charter.sign_manifest", "credential.ingress", "agent.configure_tools", "integration.list", "integration.status", "integration.test", "mcp_token.create", "mcp_token.revoke", "mcp_token.list", "confirmation.approve"],
|
|
42247
|
+
relatedCommandIds: ["charter.sign_manifest", "credential.ingress", "agent.configure_tools", "integration.list", "integration.readiness", "integration.status", "integration.test", "mcp_token.create", "mcp_token.revoke", "mcp_token.list", "confirmation.approve"],
|
|
42232
42248
|
legal: {
|
|
42233
42249
|
publicRisk: "low",
|
|
42234
42250
|
notes: [
|
|
@@ -42278,6 +42294,8 @@ Google can be connected from Settings once the workspace OAuth app is configured
|
|
|
42278
42294
|
|
|
42279
42295
|
CLI and MCP can inspect connector readiness without seeing secrets: \`integration.list\` / \`rost_list_integrations\` lists connected providers and health metadata, \`integration.status\` / \`rost_get_integration_status\` reads one provider by id or name, and \`integration.test\` / \`rost_test_integration_connection\` runs the installed provider-specific health check. For Google, the test refreshes the vaulted OAuth credential and reads the Gmail profile, then records only account, scope, and health metadata.
|
|
42280
42296
|
|
|
42297
|
+
\`integration.readiness\` / \`{{cli}} integration readiness --provider google --json\` / \`rost_check_integration_readiness\` returns the same setup checklist Settings shows: OAuth env and callback status, tenant connection state, granted scopes, latest test state, external verification/CASA caveats, handler availability, and the next Linear issue or action. The checklist is metadata-only. It never returns access tokens, refresh tokens, client secrets, vault refs, or raw provider responses.
|
|
42298
|
+
|
|
42281
42299
|
## One write-only credential flow across every surface
|
|
42282
42300
|
|
|
42283
42301
|
There is exactly one way to give a connected tool its credential, and it is the same on every surface (agent setup, Charter Builder, CLI, MCP). Connecting a tool only authorizes the access \u2014 it never captures a secret. When a connected tool needs a credential, you stage a vault-backed *request* (provider, scope, and a credential name \u2014 all labels, never the secret). You then provide the actual secret separately through the vault-backed ingress flow from Settings. No {{brand}} surface ever has a field that accepts raw secret material, so a secret can never reach a prompt, log, event, or tool argument.
|
|
@@ -42307,7 +42325,7 @@ There is exactly one way to give a connected tool its credential, and it is the
|
|
|
42307
42325
|
order: 47,
|
|
42308
42326
|
title: "Available tools guide",
|
|
42309
42327
|
summary: "How to think about tool categories available to seats and what each category should be used for.",
|
|
42310
|
-
version: "2026-06-20.
|
|
42328
|
+
version: "2026-06-20.4",
|
|
42311
42329
|
public: true,
|
|
42312
42330
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
42313
42331
|
stages: ["staffing"],
|
|
@@ -42341,6 +42359,10 @@ There is exactly one way to give a connected tool its credential, and it is the
|
|
|
42341
42359
|
|
|
42342
42360
|
Start from the seat's responsibility, not the tool list. If a tool does not directly support a responsibility or measurable, do not connect it yet.
|
|
42343
42361
|
|
|
42362
|
+
## Skills and tool dependencies
|
|
42363
|
+
|
|
42364
|
+
Skills are reusable procedures a seat can learn from; they are not tools and they never grant authority. A skill package may declare required or optional tool dependencies so setup can identify blockers before assignment. Those dependencies are checked against the discoverable \`tool.catalog\` ids and scope tiers, then compared to the seat's Charter permission manifest. Missing required tools block approval; optional tools produce setup warnings. A published skill version is immutable, so later corrections create a new version instead of rewriting what a run may have used.
|
|
42365
|
+
|
|
42344
42366
|
## How agents should request tools
|
|
42345
42367
|
|
|
42346
42368
|
Agents should explain the job, the required tool category, the minimum permission needed, and the escalation boundary. Humans approve or decline the request.
|
|
@@ -42356,7 +42378,7 @@ External connectors are being rolled out provider by provider, conservatively (r
|
|
|
42356
42378
|
order: 48,
|
|
42357
42379
|
title: "CLI and MCP installation guide",
|
|
42358
42380
|
summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
|
|
42359
|
-
version: "2026-06-20.
|
|
42381
|
+
version: "2026-06-20.11",
|
|
42360
42382
|
public: true,
|
|
42361
42383
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
42362
42384
|
stages: ["company_setup", "staffing"],
|
|
@@ -42395,7 +42417,11 @@ External connectors are being rolled out provider by provider, conservatively (r
|
|
|
42395
42417
|
"agent.fleet_digest",
|
|
42396
42418
|
"agent.get_run",
|
|
42397
42419
|
"agent.list_runs",
|
|
42398
|
-
"agent.list_tool_calls"
|
|
42420
|
+
"agent.list_tool_calls",
|
|
42421
|
+
"integration.list",
|
|
42422
|
+
"integration.readiness",
|
|
42423
|
+
"integration.status",
|
|
42424
|
+
"integration.test"
|
|
42399
42425
|
],
|
|
42400
42426
|
legal: {
|
|
42401
42427
|
publicRisk: "low",
|
|
@@ -42769,11 +42795,12 @@ These ergonomic wrappers (including the \`{{cli}} agent\` group) require **{{cli
|
|
|
42769
42795
|
| \`{{cli}} sync brief|compile|complete\` | \`sync.brief.get\`, \`sync.brief.compile\`, \`sync.run.complete\` | Compile, read, and complete a weekly Sync. | Tenant | \`{{cli}} sync brief --json\` |
|
|
42770
42796
|
| \`{{cli}} runner list|status|work-orders|revoke\` | \`runner.list\`, \`runner.status\`, \`work_order.list\`, \`runner.revoke\` | Inspect runners and work orders; revoke a runner. | Tenant | \`{{cli}} runner list --json\` |
|
|
42771
42797
|
| \`{{cli}} notification settings|test|errors\` | \`notification.settings.get\`, \`notification.test\`, \`notification.list_errors\` | Read notification settings, send a test, and list failed deliveries with linked product error source, seat id, and run id when available. | Tenant | \`{{cli}} notification errors --limit 10 --json\` |
|
|
42772
|
-
| \`{{cli}} integration list|status|test\` | \`integration.list\`, \`integration.status\`, \`integration.test\` | List connector metadata, read one connector's health, and run the provider-specific connection test without exposing credentials. | Tenant | \`{{cli}} integration
|
|
42798
|
+
| \`{{cli}} integration list|readiness|status|test\` | \`integration.list\`, \`integration.readiness\`, \`integration.status\`, \`integration.test\` | List connector metadata, read the setup-readiness checklist, read one connector's health, and run the provider-specific connection test without exposing credentials. | Tenant | \`{{cli}} integration readiness --provider google --json\` |
|
|
42773
42799
|
| \`{{cli}} settings get|update\` | \`settings.get\`, \`settings.update\` | Read tenant settings; update budget caps. | Tenant | \`{{cli}} settings get --json\` |
|
|
42774
42800
|
| \`{{cli}} member invite|update|remove\` | \`member.invite\`, \`member.update\`, \`member.remove\` | Manage tenant members. | Tenant | \`{{cli}} member invite --email ops@example.com --role member\` |
|
|
42775
42801
|
| \`{{cli}} agent templates|create|setup|tools|dry-run|go-live|status|run-now|fleet-digest|get-run|show\` | \`agent_template.list\`, \`agent.create_from_template\`, \`agent.create_custom\`, \`agent_setup.get\`, \`agent_setup.update\`, \`agent.configure_tools\`, \`agent.run_dry_run\`, \`agent.go_live\`, \`agent.status\`, \`agent.run_now\`, \`agent.fleet_digest\`, \`agent.get_run\`, \`agent.show_markdown\` | Run the full agent setup and operation flow: list templates, create a draft from a template or guided custom answers (with \`--model\` and \`--effort\`), read or answer setup state, connect or decline tools, dry-run, go live, run on demand, capture the fleet-health digest, read one run's transcript/error diagnostics, and show a markdown readout. Create and go-live stop at human gates; the dry-run is ungated by human approval but requires a signed manifest first. | Tenant and seat | \`{{cli}} agent fleet-digest --json\` |
|
|
42776
42802
|
| \`{{cli}} tools list\` | \`tool.catalog\` | List the discoverable tool catalog the builder reads (id, scope tiers, credential requirement, access policy, and execution-boundary guidance). | Tenant | \`{{cli}} tools list --json\` |
|
|
42803
|
+
| \`{{cli}} skills list|get|file|assigned|check-dependencies\` | \`skill.list\`, \`skill.get\`, \`skill.file.get\`, \`skill.assigned.list\`, \`skill.check_dependencies\` | Discover reusable Skills, read descriptors and stored package files, list approved Seat assignments, and compare required/optional tool dependencies with a Seat's signed Charter manifest. Skills are instructions, not authority. | Tenant and seat | \`{{cli}} skills list --json\`; \`{{cli}} skills file --slug invoice-review --path SKILL.md\` |
|
|
42777
42804
|
| \`{{cli}} model list\` | \`model.catalog\` | List guided model tiers with recommendations, token prices, cost bands, best-fit work, and model ids for \`--model\`. | Tenant | \`{{cli}} model list --json\` |
|
|
42778
42805
|
| \`{{cli}} compass show\` | \`compass.show_markdown\` | Render the current Compass as a clean markdown card for review. | Tenant | \`{{cli}} compass show --markdown\` |
|
|
42779
42806
|
| \`{{cli}} charter show\` | \`charter.show_markdown\` | Render a seat's Charter as a clean markdown card for review. | Tenant | \`{{cli}} charter show --seat-id <id> --markdown\` |
|
|
@@ -42800,7 +42827,7 @@ This catalog is the canonical machine surface \u2014 the \`rost_*\` tools your M
|
|
|
42800
42827
|
3. **\`{{cli}} model list\` / \`model.catalog\`** (MCP \`rost_list_model_catalog\`) \u2014 the guided model-tier catalog the builder reads for recommendations, effort, token prices, cost bands, and model id selection.
|
|
42801
42828
|
4. **The "Available tools guide"** (in the sidebar) \u2014 covers tool *categories* and governance, not a callable surface. See the available-tools-guide.
|
|
42802
42829
|
|
|
42803
|
-
Sections below: Command discovery (2) \xB7 Public reference (3) \xB7 Tenant-admin tools (grouped by domain) \xB7 Seat-scoped operating tools (9) \xB7 MCP operation resources (
|
|
42830
|
+
Sections below: Command discovery (2) \xB7 Public reference (3) \xB7 Tenant-admin tools (grouped by domain) \xB7 Seat-scoped operating tools (9) \xB7 MCP operation resources (13).
|
|
42804
42831
|
|
|
42805
42832
|
### Command discovery tools
|
|
42806
42833
|
|
|
@@ -42852,7 +42879,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
42852
42879
|
| \`rost_approve_pending_confirmation\` | \`confirmation.approve\` | Approve a pending confirmation. | Tenant | Call with \`{"confirmation_id":"<confirmation-id>"}\`. |
|
|
42853
42880
|
| \`rost_reject_pending_confirmation\` | \`confirmation.reject\` | Reject a pending confirmation. | Tenant | Call with \`{"confirmation_id":"<confirmation-id>"}\`. |
|
|
42854
42881
|
| \`rost_draft_compass\` | \`compass.draft\` | Create a Compass draft. | Tenant | Call with a concise Compass document. |
|
|
42855
|
-
| \`rost_update_compass_draft\` | \`compass.update_draft\` | Replace a Compass draft document. | Tenant | Call with \`draft_id\` and updated document. |
|
|
42882
|
+
| \`rost_update_compass_draft\` | \`compass.update_draft\` | Replace a Compass draft document. | Tenant | Call with the \`compass_version_id\` from \`compass.draft\` as \`draft_id\` and the updated document. |
|
|
42856
42883
|
| \`rost_approve_compass_version\` | \`compass.approve_version\` | Activate a Compass version by supersession. | Tenant | Call after human review. |
|
|
42857
42884
|
| \`rost_reject_compass_draft\` | \`compass.reject_draft\` | Reject and remove a Compass draft. | Tenant | Call when the draft should not proceed. |
|
|
42858
42885
|
| \`rost_answer_compass_gap\` | \`compass.answer_gap\` | Record a human answer for a Compass gap. | Tenant | Call with \`gap_id\` and answer text. |
|
|
@@ -42902,6 +42929,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
42902
42929
|
| \`rost_send_test_notification\` | \`notification.test\` | Emit an in-app test notification to the acting human. | Tenant | Call with \`{}\`. |
|
|
42903
42930
|
| \`rost_list_notification_errors\` | \`notification.list_errors\` | List recent failed notification deliveries with linked \`error_log_id\`, source, seat id, and run id when available. | Tenant | Call with optional \`limit\`; \`source=run\` rows can be followed with \`agent.get_run\`. |
|
|
42904
42931
|
| \`rost_list_integrations\` | \`integration.list\` | List connected integration metadata and latest health state. | Tenant | Call with \`{}\` or \`{"provider":"google"}\`; no secrets or vault refs are returned. |
|
|
42932
|
+
| \`rost_check_integration_readiness\` | \`integration.readiness\` | Return the connector setup checklist: OAuth env/callback, tenant connection, scopes, latest test state, external verification/CASA, handler availability, and DER-coded next actions. | Tenant | Call with \`{"provider":"google"}\`; metadata only, no secrets or vault refs. |
|
|
42905
42933
|
| \`rost_get_integration_status\` | \`integration.status\` | Read one integration's metadata by provider or integration id. | Tenant | Call with \`{"provider":"google"}\` or \`{"integration_id":"<id>"}\`. |
|
|
42906
42934
|
| \`rost_test_integration_connection\` | \`integration.test\` | Run the provider-specific connection test and update integration health. | Tenant | Call with \`{"provider":"google"}\`; result is bounded metadata only. |
|
|
42907
42935
|
| \`rost_invite_member\` | \`member.invite\` | Create a pending tenant invite for a human teammate. | Tenant | Call with \`email\` and \`role\`. |
|
|
@@ -42938,6 +42966,11 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
42938
42966
|
| \`rost_show_charter_as_markdown\` | \`charter.show_markdown\` | Render a seat's active or latest Charter as a clean markdown card for review. | Tenant | Call with \`{"seat_id":"<seat-id>"}\`. |
|
|
42939
42967
|
| \`rost_show_agent_setup_as_markdown\` | \`agent.show_markdown\` | Render a seat's agent setup, model, steward, tools, and Charter as a clean markdown card for review. | Tenant | Call with \`{"seat_id":"<seat-id>"}\`. |
|
|
42940
42968
|
| \`rost_list_tool_catalog\` | \`tool.catalog\` | List the discoverable tool catalog the agent builder reads \u2014 id, prescriptive description, scope tiers, credential requirement, access policy, and execution-boundary guidance. | Tenant | Call with \`{}\` or \`{"provider":"google"}\`. |
|
|
42969
|
+
| \`rost_list_skills\` | \`skill.list\` | List tenant Skills with application descriptors, dependency metadata, source status, latest version, and assigned Seat count. Seat-scoped reads are available through \`rost://skills\`. | Tenant-admin | Call with \`{}\` or \`{"query":"invoice"}\`. |
|
|
42970
|
+
| \`rost_get_skill\` | \`skill.get\` | Read one Skill descriptor and latest stored version metadata. Seat-scoped reads are available through \`rost://skills/{slug}\`. | Tenant-admin | Call with \`{"slug":"invoice-review"}\`. |
|
|
42971
|
+
| \`rost_get_skill_file\` | \`skill.file.get\` | Read stored Skill package file content by slug and package path; paths resolve only inside the stored package payload. Seat-scoped reads are available through \`rost://skills/{slug}/files/{path}\`. | Tenant-admin | Call with \`{"slug":"invoice-review","path":"SKILL.md"}\`. |
|
|
42972
|
+
| \`rost_list_assigned_skills\` | \`skill.assigned.list\` | List approved Skill assignments for a Seat, including immutable version, dependency status, rationale, and approval time. Seat-scoped reads are available through \`rost://seat/{id}/skills\`. | Tenant-admin | Call with \`{"seat_id":"<seat-id>"}\`. |
|
|
42973
|
+
| \`rost_check_skill_dependencies\` | \`skill.check_dependencies\` | Compare a Skill version's required and optional tools with a Seat's active or draft Charter permission manifest. Returns ready/blocked/warning and suggested \`agent.configure_tools\` input; it never grants permissions. | Tenant-admin | Call with \`{"seat_id":"<seat-id>","slug":"invoice-review"}\`. |
|
|
42941
42974
|
| \`rost_list_model_catalog\` | \`model.catalog\` | List guided model tiers \u2014 recommendations, token prices, cost bands, best-fit work, and model ids for \`--model\`. | Tenant | Call with \`{}\`. |
|
|
42942
42975
|
|
|
42943
42976
|
### Seat-scoped operating tools
|
|
@@ -42967,9 +43000,13 @@ These read-only resources bundle the facts the UI shows so an agent can avoid gu
|
|
|
42967
43000
|
| \`rost://seat/{id}/context\` | A seat's Compass, Charter, goals, measurables, open tasks, open issues, and protocol. | Seat (own seat) or tenant-admin (any seat) | Read \`rost://seat/<seat-id>/context\` for the acting seat. |
|
|
42968
43001
|
| \`rost://compass/current\` | Active and draft Compass versions plus source documents. | Tenant-admin | Read before drafting Compass changes. |
|
|
42969
43002
|
| \`rost://sync/latest\` | The most recent compiled Sync Brief and its agenda. | Tenant-admin | Read before running the weekly Sync. |
|
|
43003
|
+
| \`rost://skills\` | Tenant Skills library for tenant-admin tokens; assigned published Skills for seat tokens. | Tenant-admin or seat | Read before creating, assigning, or loading Skill instructions. |
|
|
43004
|
+
| \`rost://skills/{slug}\` | One Skill descriptor and latest stored version metadata. | Tenant-admin or assigned seat | Read \`rost://skills/<slug>\` before loading the full file. |
|
|
43005
|
+
| \`rost://skills/{slug}/files/{path}\` | Stored Skill package file content by package path; never server filesystem paths. | Tenant-admin or assigned seat | Read \`rost://skills/<slug>/files/SKILL.md\`. |
|
|
42970
43006
|
| \`rost://agents/templates\` | Stock agent templates: responsibilities, default tools, safety boundaries, and dry-run rehearsal. | Tenant-admin | Read before creating an agent from a template. |
|
|
42971
43007
|
| \`rost://agent-setup/{id}\` | A draft agent setup's mode, parent, steward, lane, schedule, tool decisions, dry-run, blockers, and next action. | Tenant-admin | Read \`rost://agent-setup/<setup-id>\` to resume a draft. |
|
|
42972
43008
|
| \`rost://seat/{id}/agent-status\` | A seat's agent occupancy, lane, schedule, live state, steward chain, and dry-run result. | Seat (own seat) or tenant-admin (any seat) | Read \`rost://seat/<seat-id>/agent-status\` for the acting seat. |
|
|
43009
|
+
| \`rost://seat/{id}/skills\` | Approved Skill assignments for a Seat, including immutable version and dependency status. | Seat (own seat) or tenant-admin (any seat) | Read \`rost://seat/<seat-id>/skills\` before a run loads Skills. |
|
|
42973
43010
|
| \`rost://operations/reference-map\` | Machine-facing map of which guide to read before each workflow. | Any valid MCP token | Read first when planning a CLI/MCP workflow. |
|
|
42974
43011
|
|
|
42975
43012
|
## Troubleshooting
|
|
@@ -43120,7 +43157,7 @@ Retrieve the narrowest relevant guide before making a setup recommendation. Pref
|
|
|
43120
43157
|
order: 60,
|
|
43121
43158
|
title: "Cascade guide",
|
|
43122
43159
|
summary: "How to connect company goals to seat-level work without turning {{brand}} into a project-management tool.",
|
|
43123
|
-
version: "2026-06-
|
|
43160
|
+
version: "2026-06-20.2",
|
|
43124
43161
|
public: true,
|
|
43125
43162
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
43126
43163
|
stages: ["operating_rhythm"],
|
|
@@ -43156,11 +43193,27 @@ Cascade connects company direction to seat-level commitments. It is a goal tree,
|
|
|
43156
43193
|
## Good Cascade structure
|
|
43157
43194
|
|
|
43158
43195
|
- Company goals connect back to the Compass.
|
|
43159
|
-
- Team or function goals connect to company goals.
|
|
43196
|
+
- Team or function goals connect to company goals. This is the accountable human layer for most agent work.
|
|
43197
|
+
- Agent execution goals connect below the human or function goal they advance, unless the agent seat is intentionally accountable for that outcome.
|
|
43160
43198
|
- Seat commitments connect to the goal they advance.
|
|
43161
43199
|
- Each commitment has one owning seat.
|
|
43162
43200
|
- Status is evidence-based where possible.
|
|
43163
43201
|
|
|
43202
|
+
## Setup-health recommendations
|
|
43203
|
+
|
|
43204
|
+
Cascade warnings are advisory, not blockers. They point to setup that should be reviewed before the next Sync:
|
|
43205
|
+
|
|
43206
|
+
- Uncovered Compass objective: the objective has no active child seat goal.
|
|
43207
|
+
- Objective skips accountable function: current child goals are agent-owned without a human or function goal between Compass and execution.
|
|
43208
|
+
- Seat missing cycle goals: an active seat has no current-cycle goal.
|
|
43209
|
+
- Seat missing active Charter: an active seat has no approved Charter.
|
|
43210
|
+
- Agent goal missing human accountability parent: an agent-owned goal has no human or hybrid goal in its ancestry.
|
|
43211
|
+
- Orphaned goal branch: the owner seat or parent chain no longer reaches an active Compass objective.
|
|
43212
|
+
|
|
43213
|
+
On \`/cascade\`, the screen renders the full goal depth, not just one or two levels. Off-track descendant branches stay open so the operator can see why a parent rolled up to risk.
|
|
43214
|
+
|
|
43215
|
+
On human and function seat pages, goal visibility includes both direct goals and descendant seat goals from the Responsibility Graph subtree, so a manager can review team progress without double-owning the agent's work.
|
|
43216
|
+
|
|
43164
43217
|
## What does not belong
|
|
43165
43218
|
|
|
43166
43219
|
Do not put every task into Cascade. Small errands, private notes, and work with no strategic connection should stay out. Cascade should answer whether the company is moving toward its stated outcomes.
|
|
@@ -43252,7 +43305,7 @@ Agents may record readings when the Charter allows it. Agent-reported readings s
|
|
|
43252
43305
|
order: 62,
|
|
43253
43306
|
title: "Friction guide",
|
|
43254
43307
|
summary: "How to capture issues with evidence, rank them, and resolve them without losing ownership.",
|
|
43255
|
-
version: "2026-06-
|
|
43308
|
+
version: "2026-06-20.1",
|
|
43256
43309
|
public: true,
|
|
43257
43310
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
43258
43311
|
stages: ["operating_rhythm"],
|
|
@@ -43301,6 +43354,8 @@ Friction is where operational issues become visible. A good Friction item is spe
|
|
|
43301
43354
|
|
|
43302
43355
|
Agents should file Friction when a measurable breaks, a tool fails, a repeated exception appears, or the Charter says a condition must be escalated. The agent should attach evidence and avoid deciding beyond its scope.
|
|
43303
43356
|
|
|
43357
|
+
In the app, operational evidence is summarized for humans instead of shown as the primary interface. Incident fields, proposed tool calls, schedules, payload labels, and source links render as readable fields with raw details tucked behind supporting context when useful. Secret-shaped values stay redacted.
|
|
43358
|
+
|
|
43304
43359
|
## Operate Friction, tasks, and escalations from CLI or MCP
|
|
43305
43360
|
|
|
43306
43361
|
Friction, tasks, and escalations are the issue-to-action loop. A seat files, a task carries the work, and an escalation routes a decision a seat cannot make alone.
|
|
@@ -43322,7 +43377,7 @@ Resolving Friction should produce one of four outcomes: a decision, a task, a Ch
|
|
|
43322
43377
|
order: 70,
|
|
43323
43378
|
title: "Steward queue guide",
|
|
43324
43379
|
summary: "How Stewards review escalations, approve agent boundaries, and keep agents accountable.",
|
|
43325
|
-
version: "2026-06-
|
|
43380
|
+
version: "2026-06-20.1",
|
|
43326
43381
|
public: true,
|
|
43327
43382
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
43328
43383
|
stages: ["staffing", "operating_rhythm"],
|
|
@@ -43359,6 +43414,8 @@ Read the seat, Charter, evidence, and recommended action. Decide the narrow ques
|
|
|
43359
43414
|
|
|
43360
43415
|
In the app, the evidence is shown as a legible card, not raw data: a proposed tool call lists the tool and its summarized arguments, and any attached context shows as labeled fields. Values that read like credentials are redacted, so you can decide without seeing secret material.
|
|
43361
43416
|
|
|
43417
|
+
When nothing is waiting, the Steward page still proves the governance loop. It shows which agent or hybrid seats the human stewards, how many escalations were raised or decided recently, and whether any are open. That empty state is an operating summary, not a dead end.
|
|
43418
|
+
|
|
43362
43419
|
## Work the queue from CLI or MCP
|
|
43363
43420
|
|
|
43364
43421
|
The Steward reads the queue from any surface but decides as a human.
|
|
@@ -43435,11 +43492,11 @@ Stop before: approving a Charter, signing a manifest, connecting a tool or crede
|
|
|
43435
43492
|
order: 72,
|
|
43436
43493
|
title: "Settings guide",
|
|
43437
43494
|
summary: "How to use Settings as the control plane for company access, channels, providers, tokens, and operating defaults.",
|
|
43438
|
-
version: "2026-06-20.
|
|
43495
|
+
version: "2026-06-20.7",
|
|
43439
43496
|
public: true,
|
|
43440
43497
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
43441
43498
|
stages: ["company_setup", "staffing"],
|
|
43442
|
-
relatedCommandIds: ["onboarding.create_invite", "mcp_token.create", "mcp_token.revoke", "mcp_token.list", "integration.list", "integration.status", "integration.test", "settings.get", "settings.update", "settings.sync_brief_scope.get", "settings.sync_brief_scope.update"],
|
|
43499
|
+
relatedCommandIds: ["onboarding.create_invite", "mcp_token.create", "mcp_token.revoke", "mcp_token.list", "integration.list", "integration.readiness", "integration.status", "integration.test", "settings.get", "settings.update", "settings.sync_brief_scope.get", "settings.sync_brief_scope.update"],
|
|
43443
43500
|
legal: { publicRisk: "low", notes: ["{{brand}}-native settings guidance."] },
|
|
43444
43501
|
sources: [
|
|
43445
43502
|
{
|
|
@@ -43469,11 +43526,11 @@ Start with members and invites, then provider and channel connections, then MCP
|
|
|
43469
43526
|
|
|
43470
43527
|
Settings lifecycle timestamps are display metadata for tokens, connected machines, integrations, and stored credentials. They may be emitted by the database as either timestamp values or strings, but Settings renders them as safe labels rather than treating timestamp formatting failures as page-level failures.
|
|
43471
43528
|
|
|
43472
|
-
When a settings source is temporarily unavailable, the app keeps the route open and marks affected sections as unavailable instead of showing raw errors or stale-looking editable values. Budget and Sync Brief controls stay read-only until their server-backed data can be loaded.
|
|
43529
|
+
When a settings source is temporarily unavailable, the app keeps the route open and marks affected sections as unavailable instead of showing raw errors or stale-looking editable values. Budget and Sync Brief controls stay read-only until their server-backed data can be loaded. Notification timestamps and integration test timestamps follow the same safe-label rule, so a malformed or missing timestamp becomes \`Unknown\` or unavailable copy rather than a page crash.
|
|
43473
43530
|
|
|
43474
43531
|
## Integration health
|
|
43475
43532
|
|
|
43476
|
-
\`integration.list\` lists connector metadata for CLI and MCP operators, \`integration.status\` reads one provider or integration id, and \`integration.test\` runs the installed provider-specific health check. These commands return account labels, scopes, capabilities, timestamps, and health only; they never return vault references, access tokens, refresh tokens, or raw provider responses. Google's test refreshes the vaulted OAuth credential and reads the Gmail profile as the minimal live check. Settings exposes the same Google
|
|
43533
|
+
\`integration.list\` lists connector metadata for CLI and MCP operators, \`integration.readiness\` returns the setup checklist, \`integration.status\` reads one provider or integration id, and \`integration.test\` runs the installed provider-specific health check. These commands return account labels, scopes, capabilities, timestamps, checklist status, DER-coded next actions, and health only; they never return vault references, access tokens, refresh tokens, client secrets, or raw provider responses. Google's test refreshes the vaulted OAuth credential and reads the Gmail profile as the minimal live check. Settings exposes the same Google readiness facts and test action beside Connect/Reconnect, showing whether OAuth env, callback registration, tenant connection, scopes, tests, Google verification/CASA, and Gmail/Sheets handler slices are ready or still waiting on DER-880, DER-881, DER-866, DER-867, or DER-869.
|
|
43477
43534
|
|
|
43478
43535
|
Reconnects keep historical rows for audit, but provider status in Settings, CLI, and MCP prefers the current connected row first, then the latest error or disconnected row.
|
|
43479
43536
|
|
|
@@ -43736,7 +43793,7 @@ Templates may draft. Humans approve. A stock agent should not go live until a hu
|
|
|
43736
43793
|
order: 77,
|
|
43737
43794
|
title: "Troubleshooting guide",
|
|
43738
43795
|
summary: "How users and agents should diagnose common setup, tool, Signal, Friction, and MCP problems.",
|
|
43739
|
-
version: "2026-06-
|
|
43796
|
+
version: "2026-06-20.1",
|
|
43740
43797
|
public: true,
|
|
43741
43798
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
43742
43799
|
stages: ["company_setup", "staffing", "operating_rhythm"],
|
|
@@ -43769,10 +43826,12 @@ Before calling a command that changes state, discover its exact shape so you do
|
|
|
43769
43826
|
- Onboarding seems stuck: call \`onboarding.status\` / \`rost_onboard_status\` and inspect missing graph, Charter, Compass, or staffing steps.
|
|
43770
43827
|
- Graph looks wrong: read \`graph.get\` / \`rost://graph\` to confirm seat ids, parents, and occupancy before mutating.
|
|
43771
43828
|
- Agent cannot act: check the Charter, permission manifest, Steward chain, and token scope with \`agent.status\` / \`rost_get_agent_status\` and \`seat.get\`.
|
|
43829
|
+
- Agent looks incomplete: open the fleet row on \`/agents\` and follow the configuration readiness links for the missing Steward chain, lane/substrate, credentials, tools, model config, sandbox dry run, or go-live state.
|
|
43772
43830
|
- Signal looks wrong: read \`signal.list\` / \`rost_list_signals\` and check owner seat, cadence, target, and evidence.
|
|
43773
43831
|
- Friction is noisy: read \`friction.list\` and check whether the underlying Charter or measurable is unclear.
|
|
43774
43832
|
- Escalations are aging: read \`escalation.list\` / \`rost_list_escalations\`; a human resolves through the Steward queue.
|
|
43775
43833
|
- MCP access fails: revoke and recreate the narrowest token after checking scope (\`mcp_token.revoke\` then \`{{cli}} mcp install --client <client> --scope seat --seat-id <seat-id>\`; standalone \`mcp install\` requires an explicit \`--scope\`).
|
|
43834
|
+
- Settings section unavailable: keep the route open, read which section is marked unavailable, and retry or fix that source directly. Do not treat a missing Settings panel as permission to write blind values; budget and Sync Brief settings stay read-only until their data loads.
|
|
43776
43835
|
|
|
43777
43836
|
## Surface-specific failures
|
|
43778
43837
|
|
|
@@ -43920,7 +43979,7 @@ Agents should not teach EOS as EOS. They should use {{brand}}'s method. When a u
|
|
|
43920
43979
|
order: 11,
|
|
43921
43980
|
title: "Compass authoring guide",
|
|
43922
43981
|
summary: "Field-by-field guidance for authoring a strong Compass document directly, with the full JSON contract and worked examples.",
|
|
43923
|
-
version: "2026-06-
|
|
43982
|
+
version: "2026-06-20.1",
|
|
43924
43983
|
public: true,
|
|
43925
43984
|
audiences: ["cli", "mcp", "in_app_agent"],
|
|
43926
43985
|
stages: ["company_setup"],
|
|
@@ -44028,7 +44087,7 @@ A consultancy's purpose might be "Make expert tax guidance affordable for first-
|
|
|
44028
44087
|
|
|
44029
44088
|
1. \`compass.draft\` \u2014 submit the document above. Drafting is safe for an agent; it returns a \`compass_version_id\`.
|
|
44030
44089
|
2. \`compass.list_gaps\` \u2014 see what is unanswered. \`compass.answer_gap\` records a human's answer and produces a fresh draft.
|
|
44031
|
-
3. \`compass.update_draft\` \u2014 revise the draft as answers arrive.
|
|
44090
|
+
3. \`compass.update_draft\` \u2014 revise the draft as answers arrive. Pass the same \`compass_version_id\` from \`compass.draft\` as \`draft_id\`; the command replaces that unpublished draft in place and returns the draft row's current version number. If the id is missing, belongs to another tenant, or is already approved or rejected, start from \`compass.get_current\` instead of retrying blindly.
|
|
44032
44091
|
4. \`compass.approve_version\` \u2014 activation by supersession. This is \`human_required\`: a human approves it. Prepare the draft and surface the approve link; do not approve on a human's behalf. See the confirmations guide.`
|
|
44033
44092
|
},
|
|
44034
44093
|
{
|
|
@@ -45739,6 +45798,17 @@ var integrationWrapper = (context, args) => dispatch(context, "integration", arg
|
|
|
45739
45798
|
return integrations.map((entry) => formatIntegrationLine(asRecord(entry))).join("\n");
|
|
45740
45799
|
});
|
|
45741
45800
|
},
|
|
45801
|
+
readiness: (ctx, rest) => {
|
|
45802
|
+
const parsed = parseFlags(rest);
|
|
45803
|
+
const body = withOptional({}, { provider: optionalValue(parsed, "provider") });
|
|
45804
|
+
return execute(ctx, parsed, "integration.readiness", body, (output) => {
|
|
45805
|
+
const connectors = asArray(asRecord(output).connectors);
|
|
45806
|
+
if (connectors.length === 0) {
|
|
45807
|
+
return "No connector readiness facts found.";
|
|
45808
|
+
}
|
|
45809
|
+
return connectors.map((entry) => formatIntegrationReadiness(asRecord(entry))).join("\n\n");
|
|
45810
|
+
});
|
|
45811
|
+
},
|
|
45742
45812
|
status: (ctx, rest) => {
|
|
45743
45813
|
const parsed = parseFlags(rest);
|
|
45744
45814
|
const body = integrationLookupBody(parsed);
|
|
@@ -45772,9 +45842,24 @@ function integrationLookupBody(parsed) {
|
|
|
45772
45842
|
function formatIntegrationLine(record2) {
|
|
45773
45843
|
return `${field(record2, "provider")} status=${field(record2, "status")} account=${field(record2, "account_email")} last_test=${field(record2, "last_test_result")} id=${field(record2, "id")}`;
|
|
45774
45844
|
}
|
|
45845
|
+
function formatIntegrationReadiness(record2) {
|
|
45846
|
+
const checks = asArray(record2.checks).map((entry) => {
|
|
45847
|
+
const check2 = asRecord(entry);
|
|
45848
|
+
const issue2 = field(check2, "linear_issue") === "\u2014" ? "" : ` ${field(check2, "linear_issue")}`;
|
|
45849
|
+
return ` - ${field(check2, "label")}: ${field(check2, "status")}${issue2} \u2014 ${field(check2, "detail")}`;
|
|
45850
|
+
});
|
|
45851
|
+
const actions = asArray(record2.next_actions).map((entry) => ` - ${String(entry)}`);
|
|
45852
|
+
return [
|
|
45853
|
+
`${field(record2, "provider")} readiness=${field(record2, "overall_status")} id=${field(record2, "integration_id")}`,
|
|
45854
|
+
field(record2, "summary"),
|
|
45855
|
+
checks.length > 0 ? ["checks:", ...checks].join("\n") : "",
|
|
45856
|
+
actions.length > 0 ? ["next:", ...actions].join("\n") : ""
|
|
45857
|
+
].filter((line) => line.length > 0).join("\n");
|
|
45858
|
+
}
|
|
45775
45859
|
function integrationUsage(bin) {
|
|
45776
|
-
return `Usage: ${bin} integration list|status|test [--json]
|
|
45860
|
+
return `Usage: ${bin} integration list|readiness|status|test [--json]
|
|
45777
45861
|
${bin} integration list [--provider <name>]
|
|
45862
|
+
${bin} integration readiness [--provider google]
|
|
45778
45863
|
${bin} integration status --provider <name>
|
|
45779
45864
|
${bin} integration test --provider <name>`;
|
|
45780
45865
|
}
|
|
@@ -46091,6 +46176,113 @@ function toolsUsage(bin) {
|
|
|
46091
46176
|
return `Usage: ${bin} tools list [--provider <name>] [--json]
|
|
46092
46177
|
${bin} tools list \u2014 the discoverable tool catalog the builder reads; live handlers execute only behind signed manifests, guards, credentials, and bindings.`;
|
|
46093
46178
|
}
|
|
46179
|
+
function formatSkillList(output) {
|
|
46180
|
+
const skills = asArray(asRecord(output).skills);
|
|
46181
|
+
if (skills.length === 0) {
|
|
46182
|
+
return "No skills found.";
|
|
46183
|
+
}
|
|
46184
|
+
return [
|
|
46185
|
+
"# Skills",
|
|
46186
|
+
...skills.map((entry) => {
|
|
46187
|
+
const r = asRecord(entry);
|
|
46188
|
+
return `- \`${field(r, "slug")}\` v${field(r, "latest_version")} [${field(r, "status")} \xB7 ${field(r, "visibility")} \xB7 assigned ${field(r, "assigned_seat_count")}]
|
|
46189
|
+
${field(r, "description")}`;
|
|
46190
|
+
})
|
|
46191
|
+
].join("\n");
|
|
46192
|
+
}
|
|
46193
|
+
function formatSkillDetail(output) {
|
|
46194
|
+
const skill = asRecord(asRecord(output).skill);
|
|
46195
|
+
const required2 = asArray(skill.required_tools).map((entry) => field(asRecord(entry), "tool")).join(", ") || "none";
|
|
46196
|
+
const optional2 = asArray(skill.optional_tools).map((entry) => field(asRecord(entry), "tool")).join(", ") || "none";
|
|
46197
|
+
const files = asArray(skill.files).map((entry) => field(asRecord(entry), "path")).join(", ") || "SKILL.md";
|
|
46198
|
+
return [
|
|
46199
|
+
`# ${field(skill, "name")} (\`${field(skill, "slug")}\`)`,
|
|
46200
|
+
`${field(skill, "description")}`,
|
|
46201
|
+
`version: ${field(skill, "latest_version")} (${field(skill, "latest_version_id")})`,
|
|
46202
|
+
`required tools: ${required2}`,
|
|
46203
|
+
`optional tools: ${optional2}`,
|
|
46204
|
+
`files: SKILL.md${files === "SKILL.md" ? "" : `, ${files}`}`
|
|
46205
|
+
].join("\n");
|
|
46206
|
+
}
|
|
46207
|
+
function formatAssignedSkills(output) {
|
|
46208
|
+
const record2 = asRecord(output);
|
|
46209
|
+
const assignments = asArray(record2.assignments);
|
|
46210
|
+
if (assignments.length === 0) {
|
|
46211
|
+
return `No assigned skills${record2.seat_id ? ` for seat ${field(record2, "seat_id")}` : ""}.`;
|
|
46212
|
+
}
|
|
46213
|
+
return [
|
|
46214
|
+
`# Assigned skills${record2.seat_id ? ` for ${field(record2, "seat_id")}` : ""}`,
|
|
46215
|
+
...assignments.map((entry) => {
|
|
46216
|
+
const r = asRecord(entry);
|
|
46217
|
+
return `- \`${field(r, "slug")}\` v${field(r, "version")} \u2192 seat ${field(r, "seat_id")} (${field(r, "assignment_id")})
|
|
46218
|
+
${field(r, "rationale")}`;
|
|
46219
|
+
})
|
|
46220
|
+
].join("\n");
|
|
46221
|
+
}
|
|
46222
|
+
function formatDependencyCheck(output) {
|
|
46223
|
+
const record2 = asRecord(output);
|
|
46224
|
+
const render = (label, items) => {
|
|
46225
|
+
if (items.length === 0) {
|
|
46226
|
+
return `${label}: none`;
|
|
46227
|
+
}
|
|
46228
|
+
return [
|
|
46229
|
+
`${label}:`,
|
|
46230
|
+
...items.map((entry) => {
|
|
46231
|
+
const r = asRecord(entry);
|
|
46232
|
+
return `- \`${field(r, "tool")}\` ${field(r, "status")} (needs ${field(r, "min_scope_tier")}, has ${field(r, "current_scope_tier")})`;
|
|
46233
|
+
})
|
|
46234
|
+
].join("\n");
|
|
46235
|
+
};
|
|
46236
|
+
return [
|
|
46237
|
+
`Skill dependencies: ${field(record2, "status")}`,
|
|
46238
|
+
`skill_version_id: ${field(record2, "skill_version_id")}`,
|
|
46239
|
+
`seat_id: ${field(record2, "seat_id")}`,
|
|
46240
|
+
render("required", asArray(record2.required)),
|
|
46241
|
+
render("optional", asArray(record2.optional))
|
|
46242
|
+
].join("\n");
|
|
46243
|
+
}
|
|
46244
|
+
var skillsWrapper = (context, args) => dispatch(context, "skills", args, {
|
|
46245
|
+
list: (ctx, rest) => {
|
|
46246
|
+
const parsed = parseFlags(rest, /* @__PURE__ */ new Set(["include-archived"]));
|
|
46247
|
+
const body = withOptional({}, {
|
|
46248
|
+
status: optionalValue(parsed, "status"),
|
|
46249
|
+
visibility: optionalValue(parsed, "visibility"),
|
|
46250
|
+
query: optionalValue(parsed, "query"),
|
|
46251
|
+
include_archived: parsed.flags.has("include-archived") ? true : void 0
|
|
46252
|
+
});
|
|
46253
|
+
return execute(ctx, parsed, "skill.list", body, formatSkillList);
|
|
46254
|
+
},
|
|
46255
|
+
get: (ctx, rest) => {
|
|
46256
|
+
const parsed = parseFlags(rest);
|
|
46257
|
+
return execute(ctx, parsed, "skill.get", { slug: requireValue2(parsed, "slug") }, formatSkillDetail);
|
|
46258
|
+
},
|
|
46259
|
+
file: (ctx, rest) => {
|
|
46260
|
+
const parsed = parseFlags(rest);
|
|
46261
|
+
const body = { slug: requireValue2(parsed, "slug"), path: requireValue2(parsed, "path") };
|
|
46262
|
+
return execute(ctx, parsed, "skill.file.get", body, (output) => field(asRecord(output), "content"));
|
|
46263
|
+
},
|
|
46264
|
+
assigned: (ctx, rest) => {
|
|
46265
|
+
const parsed = parseFlags(rest);
|
|
46266
|
+
const body = withOptional({}, { seat_id: optionalValue(parsed, "seat-id") });
|
|
46267
|
+
return execute(ctx, parsed, "skill.assigned.list", body, formatAssignedSkills);
|
|
46268
|
+
},
|
|
46269
|
+
"check-dependencies": (ctx, rest) => {
|
|
46270
|
+
const parsed = parseFlags(rest);
|
|
46271
|
+
const body = withOptional({ seat_id: requireValue2(parsed, "seat-id") }, {
|
|
46272
|
+
slug: optionalValue(parsed, "slug"),
|
|
46273
|
+
skill_version_id: optionalValue(parsed, "skill-version-id")
|
|
46274
|
+
});
|
|
46275
|
+
return execute(ctx, parsed, "skill.check_dependencies", body, formatDependencyCheck);
|
|
46276
|
+
}
|
|
46277
|
+
}, skillsUsage(context.binName));
|
|
46278
|
+
function skillsUsage(bin) {
|
|
46279
|
+
return `Usage: ${bin} skills list|get|file|assigned|check-dependencies [--json]
|
|
46280
|
+
${bin} skills list [--status draft|pending_review|published|archived] [--visibility private|seat|tenant] [--query <text>]
|
|
46281
|
+
${bin} skills get --slug <slug>
|
|
46282
|
+
${bin} skills file --slug <slug> --path SKILL.md
|
|
46283
|
+
${bin} skills assigned [--seat-id <id>] [--seat <id>]
|
|
46284
|
+
${bin} skills check-dependencies --seat-id <id> (--slug <slug>|--skill-version-id <id>)`;
|
|
46285
|
+
}
|
|
46094
46286
|
var modelWrapper = (context, args) => dispatch(context, "model", args, {
|
|
46095
46287
|
list: (ctx, rest) => {
|
|
46096
46288
|
const parsed = parseFlags(rest);
|
|
@@ -46165,6 +46357,7 @@ var OPERATION_GROUPS = [
|
|
|
46165
46357
|
"member",
|
|
46166
46358
|
"agent",
|
|
46167
46359
|
"tools",
|
|
46360
|
+
"skills",
|
|
46168
46361
|
"model",
|
|
46169
46362
|
"compass",
|
|
46170
46363
|
"charter"
|
|
@@ -46184,6 +46377,7 @@ var wrappers = {
|
|
|
46184
46377
|
member: memberWrapper,
|
|
46185
46378
|
agent: agentWrapper,
|
|
46186
46379
|
tools: toolsWrapper,
|
|
46380
|
+
skills: skillsWrapper,
|
|
46187
46381
|
model: modelWrapper,
|
|
46188
46382
|
compass: compassWrapper,
|
|
46189
46383
|
charter: charterWrapper
|
|
@@ -46206,6 +46400,7 @@ var groupUsageBuilders = {
|
|
|
46206
46400
|
member: memberUsage,
|
|
46207
46401
|
agent: agentUsage,
|
|
46208
46402
|
tools: toolsUsage,
|
|
46403
|
+
skills: skillsUsage,
|
|
46209
46404
|
model: modelUsage,
|
|
46210
46405
|
compass: compassUsage,
|
|
46211
46406
|
charter: charterUsage
|
|
@@ -46236,6 +46431,7 @@ function operationUsageLines(bin) {
|
|
|
46236
46431
|
`${bin} member invite|update|remove`,
|
|
46237
46432
|
`${bin} agent templates|create|setup|tools|dry-run|go-live|status|run-now|fleet-digest|get-run|show`,
|
|
46238
46433
|
`${bin} tools list`,
|
|
46434
|
+
`${bin} skills list|get|file|assigned|check-dependencies`,
|
|
46239
46435
|
`${bin} model list`,
|
|
46240
46436
|
`${bin} compass show`,
|
|
46241
46437
|
`${bin} charter show`
|