@rosthq/cli 0.5.7 → 0.5.8

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 CHANGED
@@ -27867,6 +27867,11 @@ var marketingUrl = process.env.NEXT_PUBLIC_MARKETING_URL ?? "";
27867
27867
  var BRAND = {
27868
27868
  name: "ROST",
27869
27869
  legalName: "ROST, Inc.",
27870
+ // The legal entity that operates the product and publishes the privacy policy
27871
+ // / terms (the data controller). Distinct from the product brand name — the
27872
+ // operating company is not subject to brand/trademark renaming. Set via env
27873
+ // (e.g. "SKBD LLC"); falls back to the product legal name when unset.
27874
+ operatingEntity: process.env.NEXT_PUBLIC_LEGAL_ENTITY?.trim() || "ROST, Inc.",
27870
27875
  tagline: "Mission control for humans and AI.",
27871
27876
  categoryDescriptor: "The agentic operating system for hybrid companies.",
27872
27877
  domain: domainFromUrl(marketingUrl),
@@ -41486,7 +41491,7 @@ var referenceDocuments = [
41486
41491
  order: 10,
41487
41492
  title: "{{brand}} implementation method",
41488
41493
  summary: "The staged operating-system setup path used by humans, CLI sessions, MCP clients, and in-app agents.",
41489
- version: "2026-06-18.1",
41494
+ version: "2026-06-18.2",
41490
41495
  public: true,
41491
41496
  audiences: ["human", "cli", "mcp", "in_app_agent"],
41492
41497
  stages: ["company_setup", "graph_design", "charter_design", "staffing", "operating_rhythm"],
@@ -41554,6 +41559,10 @@ Build the Responsibility Graph from functions and seats first. Do not start by a
41554
41559
 
41555
41560
  The first graph should be small enough to understand. Start with the top operating seat, then major functions, then the first operational seats that carry measurable work. Add detail only when it clarifies ownership.
41556
41561
 
41562
+ ### Solo founders and small flat teams
41563
+
41564
+ If it is just you, or a small flat team of four or fewer people, declare that at the start of org intake. Setup skips the org-chart upload and the "who reports to you" question, and instead asks which functions the company needs covered today. It proposes a standard small-company function tree \u2014 company leadership, revenue, sales, marketing, delivery and operations, finance and admin \u2014 that you occupy, then pivots straight to which functions to staff with agents. Because there is no one to invite, the team-invite step is skipped. You can still invite people later from settings.
41565
+
41557
41566
  ## Stage 3: Convert seats into Charters
41558
41567
 
41559
41568
  A Charter is the executable job description for a seat. It should define purpose, responsibilities, autonomous scope, approval scope, must-escalate conditions, measurables, and tool permissions.
@@ -41591,7 +41600,7 @@ The Compass is drafted, then activated by a human through supersession.
41591
41600
  order: 20,
41592
41601
  title: "Responsibility Graph playbook",
41593
41602
  summary: "How to build a functions-first graph with seats, owners, Stewards, vacancies, and clean authority.",
41594
- version: "2026-06-18.1",
41603
+ version: "2026-06-18.2",
41595
41604
  public: true,
41596
41605
  audiences: ["human", "cli", "mcp", "in_app_agent"],
41597
41606
  stages: ["graph_design", "staffing"],
@@ -41638,6 +41647,13 @@ Each entry opens the same conservative setup flow \u2014 seat placement, Steward
41638
41647
 
41639
41648
  The graph canvas fits the whole structure into the frame when it opens and refits whenever the frame changes \u2014 opening a side panel, resizing the window, or rotating a phone. Zoom moves between three altitudes: a constellation of seat dots when zoomed out, seat cards at the working zoom, and charter detail when zoomed in. Seat cards stay legible on small screens, and the canvas is the one always-dark surface in the otherwise light app. Search the toolbar to fly to any seat by name.
41640
41649
 
41650
+ The graph is also where you land after onboarding \u2014 it is the mission control for the company, not a separate dashboard. Switch lenses from the toolbar to recolour the same structure four ways:
41651
+
41652
+ - **Structure** \u2014 seat type and reporting lines.
41653
+ - **Cascade** \u2014 whether each seat's goal branch is on track.
41654
+ - **Signal** \u2014 the worst measurable state per seat.
41655
+ - **Scoreboard** \u2014 two live numbers on every seat: work done (agent runs) and cost over the last 30 days. A seat whose 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 runs read calmly as no agent cost rather than 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.
41656
+
41641
41657
  ## First-pass structure
41642
41658
 
41643
41659
  Start with the operating root, then major functions, then the few seats that own the most important recurring work. Do not over-model. A graph with eight clear seats is better than a graph with thirty vague boxes.
@@ -41769,11 +41785,11 @@ Drafting can be assisted by agents. Activation is a human decision. When authori
41769
41785
  order: 40,
41770
41786
  title: "Agent staffing playbook",
41771
41787
  summary: "How to decide whether a seat should be human, agent, or hybrid, and how to go live safely.",
41772
- version: "2026-06-18.1",
41788
+ version: "2026-06-19.1",
41773
41789
  public: true,
41774
41790
  audiences: ["human", "cli", "mcp", "in_app_agent"],
41775
41791
  stages: ["staffing"],
41776
- relatedCommandIds: ["staffing.assign_user", "staffing.assign_agent_dry_run", "agent.go_live", "agent.status", "mcp_token.create", "agent_template.list", "agent.create_from_template", "agent_setup.start", "agent_setup.get", "agent_setup.update", "agent.update_schedule", "agent.decommission", "agent.create_custom", "agent.configure_tools", "agent.run_dry_run", "confirmation.approve"],
41792
+ relatedCommandIds: ["staffing.assign_user", "staffing.assign_agent_dry_run", "agent.go_live", "agent.status", "agent.run_now", "agent.list_runs", "agent.list_tool_calls", "mcp_token.create", "agent_template.list", "agent.create_from_template", "agent_setup.start", "agent_setup.get", "agent_setup.update", "agent.update_schedule", "agent.decommission", "agent.create_custom", "agent.configure_tools", "agent.run_dry_run", "confirmation.approve"],
41777
41793
  legal: {
41778
41794
  publicRisk: "low",
41779
41795
  notes: [
@@ -41814,6 +41830,12 @@ A seat can be human, agent, or hybrid. The staffing decision should follow the w
41814
41830
  5. Review Signal, Friction, and tool-call audit rows.
41815
41831
  6. Human approves go-live.
41816
41832
 
41833
+ ## In the onboarding funnel
41834
+
41835
+ Staffing your first agent is a step in onboarding, right before the finish step. Its content is the stock-template gallery: pick a template to staff an agent seat, and you continue on the agents surface to name the Steward, sign the manifest, and run the sandbox dry run \u2014 the same draft-first path described below, not a separate one. Staffing the first agent is the activation moment, so the funnel asks for it before exit.
41836
+
41837
+ Working solo, or staffing later? Skip the step with intent and finish onboarding without an agent. Nothing is forced: you can staff an agent any time from the agents surface, and the staffing decision still follows the work, the risk, and the measurable.
41838
+
41817
41839
  ## Create and stage an agent from CLI or MCP
41818
41840
 
41819
41841
  Two creation paths, both draft-first. Read the stock-agents guide for templates and the how-agents-work guide for the operating loop.
@@ -41821,10 +41843,12 @@ Two creation paths, both draft-first. Read the stock-agents guide for templates
41821
41843
  - From a template: list with \`agent_template.list\` / \`rost_list_agent_templates\`, then \`agent.create_from_template\` / \`rost_create_agent_from_template\` with \`seat_id\` and \`template_slug\`. Returns a draft agent and draft Charter only.
41822
41844
  - Custom: \`agent_setup.start\` / \`rost_start_agent_setup\` (returns a \`setup_id\`), iterate with \`agent_setup.get\` and \`agent_setup.update\`, then \`agent.create_custom\` / \`rost_create_custom_agent\`. Stage tools with \`agent.configure_tools\` (vault refs only) and sandbox with \`agent.run_dry_run\`.
41823
41845
  - Inspect runtime: \`agent.status\` / \`rost_get_agent_status\` with \`{"seat_id":"<seat-id>"}\` returns lane, live state, steward chain, dry-run result, and Runner availability.
41846
+ - 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.
41847
+ - 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}} 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 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.
41824
41848
 
41825
41849
  ## When to stop for confirmation
41826
41850
 
41827
- \`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\`. An agent may draft, configure (with vault refs), and dry-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.
41851
+ \`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.
41828
41852
 
41829
41853
  ## Non-negotiables
41830
41854
 
@@ -41835,7 +41859,7 @@ No orphan agents. No raw secrets in prompts, logs, or tool arguments. No durable
41835
41859
  order: 41,
41836
41860
  title: "Add agents to your Responsibility Graph",
41837
41861
  summary: "The visual journey for adding an agent seat: where to start, choosing a mode, placing the seat, naming a Steward, setup, the safety gates, and go-live.",
41838
- version: "2026-06-15.2",
41862
+ version: "2026-06-18.1",
41839
41863
  public: true,
41840
41864
  audiences: ["human", "in_app_agent"],
41841
41865
  stages: ["staffing"],
@@ -41908,14 +41932,14 @@ Reopening the builder for a seat whose agent is already live shows its live stat
41908
41932
  - Parent or Steward seat archived during setup: go-live is blocked until you choose a live parent or reassign the Steward.
41909
41933
  - Failed dry run or a declined tool: the draft is preserved; fix the Charter or tool decision and rerun. See the troubleshooting guide.
41910
41934
 
41911
- In read-only or demo mode the **Add agent** affordance is disabled or routes to sign-up rather than attempting a change.`
41935
+ In read-only or demo mode the **Add agent** affordance never starts a write. The public demo instead replays the add-an-agent journey end to end \u2014 describe the role, watch the draft Charter assemble, see the four safety gates light, and watch a sandbox dry run reach the must-escalate boundary and stop \u2014 then routes go-live to sign-up, because going live is a human decision.`
41912
41936
  },
41913
41937
  {
41914
41938
  slug: "custom-agents-guide",
41915
41939
  order: 42,
41916
41940
  title: "Design a custom agent",
41917
41941
  summary: "How to build a custom agent from operational questions through the Charter Builder, tools, dry run, and go-live without writing prompts.",
41918
- version: "2026-06-18.2",
41942
+ version: "2026-06-18.4",
41919
41943
  public: true,
41920
41944
  audiences: ["human", "cli", "mcp", "in_app_agent"],
41921
41945
  stages: ["staffing", "charter_design"],
@@ -41945,15 +41969,23 @@ Begin from the agents surface (**Design a custom agent**) or from the CLI/MCP. T
41945
41969
 
41946
41970
  From your answers, the Charter Builder drafts responsibilities, decision authority, Signals, handoffs, and escalation rules. Review and edit every clause. Keep the autonomous scope tight at first; you can grant more authority later once dry runs and evidence justify it.
41947
41971
 
41948
- ## Choose a lane
41972
+ ## Choose a lane and a trigger
41973
+
41974
+ Pick where the agent runs and what starts it. Both lead with a safe default, so a non-technical operator never has to write a raw schedule or reason about an internal lane name.
41949
41975
 
41950
41976
  A custom agent runs on one of three lanes:
41951
41977
 
41952
- - **Cloud agent** \u2014 the {{brand}}-managed runtime using the tenant model key.
41978
+ - **Cloud agent** (recommended) \u2014 the {{brand}}-managed runtime using the tenant model key. It needs no local machine, pairing, or token, so it is the default if you are unsure.
41953
41979
  - **External MCP agent** \u2014 a Claude Code, Codex, or Cursor agent that connects to {{brand}} as the seat.
41954
41980
  - **Local Runner** \u2014 scheduled local execution through a paired Runner.
41955
41981
 
41956
- Lane and schedule stay advanced unless the work needs them.
41982
+ Then choose one of three named triggers:
41983
+
41984
+ - **On demand** (default) \u2014 runs only when you or a teammate start it. No schedule.
41985
+ - **Scheduled** \u2014 runs on a recurring cadence you pick (every weekday morning, every morning, weekly, hourly). No cron to write.
41986
+ - **Event** \u2014 runs in response to work routed to it, like a sync or a mention, rather than on a clock.
41987
+
41988
+ Open **Advanced** for the explicit lane select and a raw cron expression when you need a custom cadence. The same schedule presets appear on the agent's seat page after go-live (Agent operations \u2192 Run schedule).
41957
41989
 
41958
41990
  ## Configure tools and credentials
41959
41991
 
@@ -41971,7 +42003,7 @@ The same path is command-backed:
41971
42003
 
41972
42004
  ## Dry run and go-live
41973
42005
 
41974
- The dry run is a real sandbox rehearsal, not a stamp. It executes a mock-provider run derived from the Charter \u2014 the agent works against sandbox data only and is expected to escalate where the Charter's must-escalate clause requires it. The result is earned: a run that escalates the must-escalate boundary passes; a run that acts on that boundary instead of escalating fails. A failed dry run keeps the draft and shows the reason so you can edit and rerun. The rehearsal returns a transcript \u2014 the steps the agent took and the escalation it raised \u2014 shown step by step in the builder and printed by the CLI, so you can see the governance model working before anything goes live. When the dry run passes, a human promotes the agent live. The dry run rehearses the specific model tier you chose, so once it passes the model is locked \u2014 changing the model requires re-running the dry run on the new model before go-live.
42006
+ The dry run is a real sandbox rehearsal, not a stamp. It executes a mock-provider run derived from the Charter \u2014 the agent works against sandbox data only and is expected to escalate where the Charter's must-escalate clause requires it. The same rehearsal works on all three lanes: cloud, external MCP, and local Runner. External MCP dry runs require an active seat-scoped MCP token; Runner dry runs require a paired Runner. Missing substrate returns a typed precondition error, not a generic failure. The recorded run keeps the agent's actual lane, so the evidence you review matches the lane you selected. The result is earned: a run that escalates the must-escalate boundary passes; a run that acts on that boundary instead of escalating fails. A failed dry run keeps the draft and shows the reason so you can edit and rerun. The rehearsal returns a transcript \u2014 the steps the agent took and the escalation it raised \u2014 shown step by step in the builder and printed by the CLI, so you can see the governance model working before anything goes live. When the dry run passes, a human promotes the agent live. The dry run rehearses the specific model tier you chose, so once it passes the model is locked \u2014 changing the model requires re-running the dry run on the new model before go-live.
41975
42007
 
41976
42008
  ## When to stop for confirmation
41977
42009
 
@@ -42052,7 +42084,7 @@ Decisions should be recorded as human decisions. Handoffs should attach to seats
42052
42084
  order: 45,
42053
42085
  title: "How agents work",
42054
42086
  summary: "How {{brand}} agents operate inside seats, use Charters, report work, and escalate beyond authority.",
42055
- version: "2026-06-18.1",
42087
+ version: "2026-06-19.4",
42056
42088
  public: true,
42057
42089
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42058
42090
  stages: ["staffing", "operating_rhythm"],
@@ -42060,6 +42092,7 @@ Decisions should be recorded as human decisions. Handoffs should attach to seats
42060
42092
  "staffing.assign_agent_dry_run",
42061
42093
  "agent.go_live",
42062
42094
  "agent.status",
42095
+ "agent.list_fleet",
42063
42096
  "agent_setup.get",
42064
42097
  "agent_setup.update",
42065
42098
  "agent.decommission",
@@ -42125,16 +42158,27 @@ A seat-scoped MCP token already carries the seat, so its tools (\`rost_get_tasks
42125
42158
 
42126
42159
  \`task.accept\`, \`task.decline\`, \`task.complete\`, \`status.record\`, \`work.log\`, and \`escalation.raise\` are all \`none\` \u2014 a seat operates its own queue and reports its own work directly. None of these carry a confirmation gate. An agent still never approves a human's confirmation on another seat's behalf; these are simply the acting seat's own reversible actions.
42127
42160
 
42161
+ ## How a tool call is executed
42162
+
42163
+ The model is only ever offered the tools the seat's manifest grants \u2014 a denied tool is never even shown to it \u2014 and each tool carries its real input schema, so the model knows exactly what shape an action takes. Some model runtimes see SDK-safe aliases such as \`rost_report_status\`; the server maps those back to the canonical manifest name such as \`rost.report_status\` before guard checks, handler execution, and audit. Tool outcomes return to the model as structured tool-result blocks tied to the provider tool-use id, so retries and transcripts stay reconstructible. When the model proposes a tool call:
42164
+
42165
+ 1. The manifest guard runs first and decides: allowed, denied, or must-escalate. A denied or must-escalate call never runs the action; an escalation is raised for a human.
42166
+ 2. For an allowed call, the proposed input is validated against the tool's schema. Malformed input fails closed \u2014 the action does not run, and the model is told to correct it.
42167
+ 3. The action runs bound to the seat's vaulted credential. The secret stays inside the call and never reaches the result, the audit row, the logs, or the model.
42168
+ 4. Every call \u2014 allowed, denied, escalated, or invalid \u2014 writes a tool-call audit row you can review.
42169
+
42170
+ Before an agent goes live, the sandbox dry run rehearses this against fake data and returns a per-tool preview: for each tool the agent would touch, whether it would run it, would be blocked, or would escalate \u2014 no external side effect. Review that preview before you approve go-live.
42171
+
42128
42172
  ## What humans should review
42129
42173
 
42130
- Review the first dry runs, tool-call audit rows, escalations, and Signal impact. 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.`
42174
+ 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 equivalent is \`{{cli}} command agent.list_fleet --json '{}'\` / \`rost_list_agent_fleet\`, which returns lane, live state, last real turn, 24h/7d real turns, top measurable status, open escalations, and 7-day spend. 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.`
42131
42175
  },
42132
42176
  {
42133
42177
  slug: "tool-access-and-vault",
42134
42178
  order: 46,
42135
42179
  title: "Tool access and vault",
42136
42180
  summary: "How to give agents access to tools without exposing raw credentials or expanding authority by accident.",
42137
- version: "2026-06-18.1",
42181
+ version: "2026-06-19.2",
42138
42182
  public: true,
42139
42183
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42140
42184
  stages: ["staffing"],
@@ -42174,6 +42218,14 @@ Tool access belongs to the seat, not to a person or a chat session. A tool shoul
42174
42218
 
42175
42219
  Connecting a tool is a human-controlled step. The agent can recommend a tool, explain why it is useful, and draft the manifest. A human approves the tool connection and any credentials.
42176
42220
 
42221
+ ## Generic REST connector
42222
+
42223
+ For an API with no dedicated connector, the generic REST tool lets a seat call an HTTP endpoint with a credential you paste through the vault \u2014 no {{brand}}-owned app. It is escalate-by-default: the agent may only call a host a steward has signed onto the allowlist; any other host is refused and escalated, with no request made. The connector sets the Authorization header from the vaulted credential itself \u2014 the agent never sees the token, and the secret is redacted from the response before it reaches the agent, the audit row, or the logs. The token is only ever sent over HTTPS, only to the signed host, and a redirect is never followed \u2014 so an allowlisted endpoint cannot bounce the call (and the token) to another host. A sandbox dry run of a REST tool makes no real request.
42224
+
42225
+ ## One write-only credential flow across every surface
42226
+
42227
+ 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.
42228
+
42177
42229
  ## What to check before connecting a tool
42178
42230
 
42179
42231
  - The seat has an active or ready-to-approve Charter.
@@ -42198,7 +42250,7 @@ Connecting a tool is a human-controlled step. The agent can recommend a tool, ex
42198
42250
  order: 47,
42199
42251
  title: "Available tools guide",
42200
42252
  summary: "How to think about tool categories available to seats and what each category should be used for.",
42201
- version: "2026-06-13.1",
42253
+ version: "2026-06-18.1",
42202
42254
  public: true,
42203
42255
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42204
42256
  stages: ["staffing"],
@@ -42234,14 +42286,20 @@ Start from the seat's responsibility, not the tool list. If a tool does not dire
42234
42286
 
42235
42287
  ## How agents should request tools
42236
42288
 
42237
- Agents should explain the job, the required tool category, the minimum permission needed, and the escalation boundary. Humans approve or decline the request.`
42289
+ Agents should explain the job, the required tool category, the minimum permission needed, and the escalation boundary. Humans approve or decline the request.
42290
+
42291
+ ## How a tool actually runs
42292
+
42293
+ Every tool call passes the server-side guard first: the guard checks the call against the seat's signed permission manifest and records a tool-call audit row for **every** call \u2014 allowed, denied, or escalated. Tool selection is never authorization. Only an allowed call reaches its handler. A connected credential is bound into the handler for the duration of the call only; the secret never appears in the result, the audit summary, logs, or the model's context.
42294
+
42295
+ External connectors (such as email, drive, or a generic API) are being rolled out provider by provider, conservatively (read and draft before send; write behind approval). Until a provider's connector is live, a tool you select is configuration only and has no external side effect \u2014 the guard and audit trail are already in force, so nothing runs silently.`
42238
42296
  },
42239
42297
  {
42240
42298
  slug: "mcp-and-cli-guide",
42241
42299
  order: 48,
42242
42300
  title: "CLI and MCP installation guide",
42243
42301
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
42244
- version: "2026-06-18.10",
42302
+ version: "2026-06-19.3",
42245
42303
  public: true,
42246
42304
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42247
42305
  stages: ["company_setup", "staffing"],
@@ -42275,7 +42333,10 @@ Agents should explain the job, the required tool category, the minimum permissio
42275
42333
  "agent.configure_tools",
42276
42334
  "agent.run_dry_run",
42277
42335
  "agent.go_live",
42278
- "agent.status"
42336
+ "agent.status",
42337
+ "agent.list_fleet",
42338
+ "agent.list_runs",
42339
+ "agent.list_tool_calls"
42279
42340
  ],
42280
42341
  legal: {
42281
42342
  publicRisk: "low",
@@ -42651,7 +42712,7 @@ These ergonomic wrappers (including the \`{{cli}} agent\` group) require **{{cli
42651
42712
  | \`{{cli}} notification settings|test\` | \`notification.settings.get\`, \`notification.test\` | Read notification settings; send a test. | Tenant | \`{{cli}} notification settings --json\` |
42652
42713
  | \`{{cli}} settings get|update\` | \`settings.get\`, \`settings.update\` | Read tenant settings; update budget caps. | Tenant | \`{{cli}} settings get --json\` |
42653
42714
  | \`{{cli}} member invite|update|remove\` | \`member.invite\`, \`member.update\`, \`member.remove\` | Manage tenant members. | Tenant | \`{{cli}} member invite --email ops@example.com --role member\` |
42654
- | \`{{cli}} agent templates|create|setup|tools|dry-run|go-live|status|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.show_markdown\` | Run the full agent setup 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, 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 templates --json\` |
42715
+ | \`{{cli}} agent templates|create|setup|tools|dry-run|go-live|status|run-now|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.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, 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 templates --json\` |
42655
42716
  | \`{{cli}} tools list\` | \`tool.catalog\` | List the discoverable tool catalog the builder reads (id, scope tiers, credential requirement, access policy). Configuration only; the tools do not execute yet. | Tenant | \`{{cli}} tools list --json\` |
42656
42717
  | \`{{cli}} compass show\` | \`compass.show_markdown\` | Render the current Compass as a clean markdown card for review. | Tenant | \`{{cli}} compass show --markdown\` |
42657
42718
  | \`{{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\` |
@@ -42748,6 +42809,10 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
42748
42809
  | \`rost_get_current_compass\` | \`compass.get_current\` | Read the active and draft Compass versions and source documents. | Tenant | Call with \`{}\`. |
42749
42810
  | \`rost_list_compass_gaps\` | \`compass.list_gaps\` | List unanswered and answered Compass context gaps. | Tenant | Call with \`{}\` before answering gaps. |
42750
42811
  | \`rost_get_agent_status\` | \`agent.status\` | Read agent lane, live state, steward chain, dry-run result, Runner availability. | Seat or tenant-admin | Call with \`{"seat_id":"<seat-id>"}\`. |
42812
+ | \`rost_list_agent_fleet\` | \`agent.list_fleet\` | Read every staffed agent seat at once: lane, live state, last real turn, 24h/7d real turns, measurable status, escalations, and 7-day spend. | Tenant | Call with \`{}\`; sandbox dry runs are excluded from real turns. |
42813
+ | \`rost_run_agent_now\` | \`agent.run_now\` | Queue an immediate run for a live staffed agent without changing its saved schedule; cloud lane dispatches to the executor and runner lane queues for the paired runner. | Tenant | Call with \`{"seat_id":"<seat-id>"}\`. |
42814
+ | \`rost_list_agent_runs\` | \`agent.list_runs\` | Read a seat's agent run history (status, lane, model, cost, per-run tool-call and guard-held counts) plus the seat's run/tool-call rollup including held-action count. | Seat or tenant-admin | Call with \`{"seat_id":"<seat-id>"}\`; pass \`limit\` for a deeper window. |
42815
+ | \`rost_list_agent_tool_calls\` | \`agent.list_tool_calls\` | Read a seat's tool-call ledger (tool name, guard result, manifest clause, outcome) with the held-action count as the hero metric. Never returns argument summaries or secret material. | Seat or tenant-admin | Call with \`{"seat_id":"<seat-id>"}\`; pass \`held_only: true\` for only guard-held calls. |
42751
42816
  | \`rost_list_agent_templates\` | \`agent_template.list\` | List stock agent templates and metadata. | Tenant | Call with \`{}\`. |
42752
42817
  | \`rost_create_agent_from_template\` | \`agent.create_from_template\` | Create a draft stock agent and draft Charter from a template (draft-only; occupancy needs a human steward). | Tenant | Call with \`seat_id\` and \`template_slug\`; expect human confirmation. |
42753
42818
  | \`rost_start_agent_setup\` | \`agent_setup.start\` | Start an agent setup draft for template, custom, or existing mode. | Tenant | Call with \`mode\` and seat placement. |
@@ -42783,6 +42848,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
42783
42848
  | \`rost_get_signal\` | \`signal.get\` | Read a measurable with its full reading history. | Seat or tenant-admin | Call with \`{"measurable_id":"<id>"}\`. |
42784
42849
  | \`rost_confirm_signal_reading\` | \`signal.confirm_reading\` | Confirm an unconfirmed reading as human-verified. | Seat or tenant-admin | Humans confirm; call with \`{"reading_id":"<id>"}\`. |
42785
42850
  | \`rost_correct_signal_reading\` | \`signal.correct_reading\` | Overwrite a reading with a human-confirmed value. | Seat or tenant-admin | Manual correction; expect confirmation. |
42851
+ | \`rost_add_a_measurable\` | \`measurable.create\` | Add a measurable a seat owns (name, unit, direction, target, cadence). | Seat or tenant-admin | Call with \`{"seat_id":"<id>","name":"...","unit":"...","direction":"up_good","target":0,"cadence":"weekly"}\`. |
42786
42852
  | \`rost_list_cascade_goals\` | \`goal.list\` | List Cascade goals, optionally by cycle or seat. | Seat or tenant-admin | Call with \`{}\` or \`{"cycle_id":"<id>"}\`. |
42787
42853
  | \`rost_create_cascade_goal\` | \`goal.create\` | Create a cycle goal under an objective. | Tenant | Call with cycle, seat, parent, title, definition of done. |
42788
42854
  | \`rost_update_cascade_goal\` | \`goal.update\` | Update a goal's title or definition of done. | Tenant | Call with \`goal_id\` and the changed fields. |
@@ -42852,6 +42918,7 @@ These rows are quick, at-a-glance triage. For deeper auth, tenant, scope, confir
42852
42918
  - Revoked, **expired**, or invalid MCP token: run \`{{cli}} mcp install --client <client> --scope <tenant-admin|seat>\` again to mint and register a fresh one (a direct install requires \`--scope\`; or rotate the old token in place with \`--rotate <old-token-id>\`, which inherits its scope). Tokens minted by \`mcp install\` default to a 90-day expiry \u2014 check \`expires_in_days\` in \`{{cli}} command mcp_token.list\`; mint with \`--expires-in <days>\` or \`--no-expiry\` to change it.
42853
42919
  - Confirmation required: a human approves from the \`approveVia\` web link or runs the \`{{cli}} command confirmation.approve --json ...\` command shown in the CLI error output (an agent never approves its own request \u2014 see the confirmations-guide).
42854
42920
  - Command denied by scope or manifest: switch to a tenant-admin token for setup, or ask a human Steward to update the seat Charter and permission manifest.
42921
+ - Inference budget hard cap reached (a run stops with a budget precondition error): raise the tenant hard cap with \`{{cli}} settings update --hard-cap-usd <amount>\` (command \`settings.update\`), then retry. A new company starts at a $0 hard cap, so managed-inference runs are blocked until it is set. The sandbox dry run is free and is never blocked by the cap, so you can charter, dry-run, and go live before setting a budget.
42855
42922
  - Need command guidance: run \`{{cli}} docs\`, \`{{cli}} reference search "onboarding"\`, or \`{{cli}} reference get agent-reference-map\`.
42856
42923
  - Need MCP guidance: call \`rost_reference_get\` with \`{"slug":"agent-reference-map"}\`.
42857
42924
  `
@@ -42914,7 +42981,11 @@ Never guess a command's JSON shape. Before calling a command that changes state,
42914
42981
  - List the tool catalog the agent builder reads (id, scope tiers, credential requirement, access policy \u2014 configuration only; the tools do not execute yet): {{cli}} tools list (CLI) or rost_list_tool_catalog (MCP)
42915
42982
  - Show a Compass, Charter, or agent setup as a markdown card to review with your human: {{cli}} compass show --markdown, {{cli}} charter show --seat-id <id> --markdown, {{cli}} agent show --seat-id <id> --markdown
42916
42983
 
42917
- When a command fails, the error returns a machine-readable code, a message, and a help field naming the exact command to run next. Read the help field and run the command it points at \u2014 do not retry the same call blindly. A failed precondition (for example a manifest not yet signed, or a dry run that has not passed) returns COMMAND_PRECONDITION_FAILED with a help pointer, not an opaque internal error.
42984
+ When a command fails, the error returns a machine-readable code, a message, and a help field naming the exact command to run next. Read the help field and run the command it points at \u2014 do not retry the same call blindly. A failed precondition (for example a manifest not yet signed, a dry run that has not passed, or the inference budget hard cap reached) returns COMMAND_PRECONDITION_FAILED with a help pointer, not an opaque internal error.
42985
+
42986
+ ## Inference budget
42987
+
42988
+ Agents that run on {{brand}}-managed inference draw against a tenant inference budget. A new company starts with a hard cap of $0, so a real managed-inference run is blocked until a human raises the cap with settings.update ({{cli}} settings update --hard-cap-usd <amount>). Hitting the cap returns a typed COMMAND_PRECONDITION_FAILED whose details.reason is budget.hard_cap_exceeded, with a help pointer naming that exact next command \u2014 not a generic internal error. The sandbox dry run is free and is never blocked by the cap, so an agent can be chartered, dry-run, and taken live before any budget is set; only real runs are gated. See settings-guide.
42918
42989
 
42919
42990
  ## Standard setup order
42920
42991
 
@@ -43045,7 +43116,7 @@ Agents can suggest commitments and report progress. They should not create a new
43045
43116
  order: 61,
43046
43117
  title: "Signal guide",
43047
43118
  summary: "How to define and read measurables so the company runs on evidence instead of status theater.",
43048
- version: "2026-06-18.1",
43119
+ version: "2026-06-18.2",
43049
43120
  public: true,
43050
43121
  audiences: ["human", "cli", "mcp", "in_app_agent"],
43051
43122
  stages: ["operating_rhythm"],
@@ -43056,7 +43127,8 @@ Agents can suggest commitments and report progress. They should not create a new
43056
43127
  "signal.list",
43057
43128
  "signal.get",
43058
43129
  "signal.confirm_reading",
43059
- "signal.correct_reading"
43130
+ "signal.correct_reading",
43131
+ "measurable.create"
43060
43132
  ],
43061
43133
  legal: {
43062
43134
  publicRisk: "low",
@@ -43090,12 +43162,17 @@ Avoid vanity numbers, manual-only status fields, and metrics nobody can act on.
43090
43162
  ## Operate Signal from CLI or MCP
43091
43163
 
43092
43164
  - Read: \`{{cli}} signal list --json\` / \`signal.list\` / \`rost_list_signals\` returns measurables with their latest reading and on/off-track state. \`signal.get\` / \`rost_get_signal\` returns one measurable's full reading history.
43165
+ - Add a measurable: \`measurable.create\` (scope: seat) defines a measurable a seat owns \u2014 name, unit, direction, target, cadence. The seat owns it; readings attach to it afterward.
43093
43166
  - Record a reading: \`{{cli}} status record --measurable-id <id> --value <n>\` (\`status.record\`, scope: seat) writes a status event with the reading. This is not gated.
43094
43167
  - Confirm a reading: \`{{cli}} signal confirm\` / \`signal.confirm_reading\` / \`rost_confirm_signal_reading\` marks a reading human-verified. \`signal.correct_reading\` / \`rost_correct_signal_reading\` overwrites a reading with a human-confirmed value.
43095
43168
 
43169
+ ## Run Signal without an agent
43170
+
43171
+ A human can run the whole loop from the Signal page. Each measurable has a "Log this period's number" control that records a human reading (the same \`signal.correct_reading\` path), and an "Add a measurable" form creates one against a seat (the \`measurable.create\` path). You do not need an agent to keep Signal current.
43172
+
43096
43173
  ## When to stop for confirmation
43097
43174
 
43098
- \`signal.correct_reading\` is \`human_required\`; overwriting a recorded measurable is a human judgment. \`signal.confirm_reading\` is \`none\`, so a seat can confirm its own readings directly. An agent records readings with evidence; a human corrects when a value is wrong.
43175
+ \`signal.correct_reading\` is \`human_required\`; overwriting a recorded measurable is a human judgment. \`signal.confirm_reading\` is \`none\`, so a seat can confirm its own readings directly. \`measurable.create\` is \`none\` \u2014 defining a measurable is not gated. An agent records readings with evidence; a human corrects when a value is wrong.
43099
43176
 
43100
43177
  ## Agent guidance
43101
43178
 
@@ -43176,7 +43253,7 @@ Resolving Friction should produce one of four outcomes: a decision, a task, a Ch
43176
43253
  order: 70,
43177
43254
  title: "Steward queue guide",
43178
43255
  summary: "How Stewards review escalations, approve agent boundaries, and keep agents accountable.",
43179
- version: "2026-06-18.1",
43256
+ version: "2026-06-18.2",
43180
43257
  public: true,
43181
43258
  audiences: ["human", "cli", "mcp", "in_app_agent"],
43182
43259
  stages: ["staffing", "operating_rhythm"],
@@ -43211,6 +43288,8 @@ A Steward is the human accountable for an agent seat. The Steward queue is where
43211
43288
 
43212
43289
  Read the seat, Charter, evidence, and recommended action. Decide the narrow question first. If the same escalation repeats, revise the Charter rather than answering the same question forever.
43213
43290
 
43291
+ 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.
43292
+
43214
43293
  ## Work the queue from CLI or MCP
43215
43294
 
43216
43295
  The Steward reads the queue from any surface but decides as a human.
@@ -43287,7 +43366,7 @@ Stop before: approving a Charter, signing a manifest, connecting a tool or crede
43287
43366
  order: 72,
43288
43367
  title: "Settings guide",
43289
43368
  summary: "How to use Settings as the control plane for company access, channels, providers, tokens, and operating defaults.",
43290
- version: "2026-06-16.1",
43369
+ version: "2026-06-18.1",
43291
43370
  public: true,
43292
43371
  audiences: ["human", "cli", "mcp", "in_app_agent"],
43293
43372
  stages: ["company_setup", "staffing"],
@@ -43323,6 +43402,14 @@ Start with members and invites, then provider and channel connections, then MCP
43323
43402
 
43324
43403
  The weekly Sync Brief compiles either company-wide or per cluster. Company-wide is one brief covering the whole company and is the default for a new company. Per cluster compiles one brief per cluster, scoped to each cluster's seats; pick it when clusters run their own weekly sync. Per cluster falls back to a single company-wide brief when the company has no clusters, so the rhythm never produces zero briefs. The owner sets this at onboarding and can change it later in Settings.
43325
43404
 
43405
+ ## Inference budget
43406
+
43407
+ Agents that run on {{brand}}-managed inference draw against a tenant inference budget with a hard cap. A new company starts with a hard cap of $0, so a managed-inference run is blocked until the cap is raised. When a run hits the cap it stops with a typed budget error that names the fix; raise the cap before agents can run again.
43408
+
43409
+ - Set the hard cap with \`settings.update\` (CLI: \`{{cli}} settings update --hard-cap-usd <amount>\`). The optional soft cap warns before the hard cap and must be less than or equal to it.
43410
+ - The sandbox dry run is free and is never blocked by the cap, so a fresh company can charter, dry-run, and take an agent live before setting a budget. The cap applies only to real managed-inference runs.
43411
+ - A company that brings its own provider key (BYOK) is metered on that key and is not subject to the {{brand}}-managed hard cap.
43412
+
43326
43413
  ## Agent guidance
43327
43414
 
43328
43415
  Agents may explain which setting is needed and why. They should not ask users to paste secrets into chat or tool arguments. When credentials are required, route the user to the vault-backed setup flow.`
@@ -43400,7 +43487,7 @@ Every notification should include the seat, cause, evidence, and requested decis
43400
43487
  order: 75,
43401
43488
  title: "Local runner guide",
43402
43489
  summary: "How local agent sessions and runner surfaces should operate through {{brand}} without bypassing Charters or audit.",
43403
- version: "2026-06-18.1",
43490
+ version: "2026-06-19.2",
43404
43491
  public: true,
43405
43492
  audiences: ["human", "cli", "mcp", "in_app_agent"],
43406
43493
  stages: ["staffing", "operating_rhythm"],
@@ -43430,12 +43517,22 @@ The local runner is for human-controlled local agent work. It should retrieve {{
43430
43517
 
43431
43518
  - Pair a new runner: \`runner.pairing.start\` / \`rost_start_runner_pairing\` with \`name\` and \`platform\` returns a human pairing code.
43432
43519
  - Inspect: \`{{cli}} runner list --json\` / \`runner.list\` / \`rost_list_runners\` shows online/offline/revoked state; \`{{cli}} runner status\` / \`runner.status\` / \`rost_runner_status\` reads one runner.
43433
- - Work orders: \`{{cli}} runner work-orders\` / \`work_order.list\` / \`rost_list_work_orders\`; queue with \`work_order.enqueue\` / \`rost_enqueue_work_order\` for a live scheduled agent; cancel with \`work_order.cancel\` / \`rost_cancel_work_order\`.
43520
+ - Work orders: \`{{cli}} runner work-orders\` / \`work_order.list\` / \`rost_list_work_orders\`; queue with \`work_order.enqueue\` / \`rost_enqueue_work_order\` for a live scheduled agent, or use \`agent.run_now\` / \`rost_run_agent_now\` when an operator wants the product to queue and dispatch an immediate live run from a seat id; cancel with \`work_order.cancel\` / \`rost_cancel_work_order\`.
43434
43521
  - Revoke: \`{{cli}} runner revoke\` / \`runner.revoke\` / \`rost_revoke_runner\` so a runner can no longer authenticate.
43435
43522
 
43523
+ ## Owner-initiated headless pairing
43524
+
43525
+ Use this flow when a headless or desktop runner cannot use the interactive web confirmation flow.
43526
+
43527
+ 1. The owner runs \`runner.pairing.start\` or \`rost_start_runner_pairing\` with the runner \`name\` and \`platform\`.
43528
+ 2. The owner gives the returned \`user_code\` to the runner through a trusted out-of-band channel.
43529
+ 3. The runner calls \`POST /api/runner/pairing/claim\` with \`{"user_code":"ABCD-2345"}\`.
43530
+ 4. The response returns \`runner_id\`, \`runner_secret\`, \`name\`, and \`platform\`. Store the runner secret only on the runner machine.
43531
+ 5. The runner sends heartbeats with \`Authorization: Bearer <runner_secret>\` and then claims work orders.
43532
+
43436
43533
  ## When to stop for confirmation
43437
43534
 
43438
- \`runner.revoke\` and \`work_order.cancel\` are \`human_required\`; \`runner.pairing.start\` and \`work_order.enqueue\` are \`none\`, so an operator can pair a runner and queue work directly. List and status reads are not gated. Revoking a runner or cancelling work is the human-approved act. An agent inspects runner state and proposes the action.
43535
+ \`runner.revoke\` and \`work_order.cancel\` are \`human_required\`; \`runner.pairing.start\`, \`work_order.enqueue\`, and \`agent.run_now\` are \`none\`, so an operator can pair a runner and queue work directly. List and status reads are not gated. Revoking a runner or cancelling work is the human-approved act. An agent inspects runner state and proposes the action.
43439
43536
 
43440
43537
  ## Guardrails
43441
43538
 
@@ -45705,6 +45802,16 @@ ${field(record2, "summary")}`;
45705
45802
  return `agent seat ${field(record2, "seat_id")} status=${field(record2, "status")} live=${field(record2, "live")} lane=${field(record2, "lane")}`;
45706
45803
  });
45707
45804
  },
45805
+ "run-now": (ctx, rest) => {
45806
+ const parsed = parseFlags(rest);
45807
+ const body = withOptional({ seat_id: requireValue2(parsed, "seat-id") }, {
45808
+ task_id: optionalValue(parsed, "task-id")
45809
+ });
45810
+ return execute(ctx, parsed, "agent.run_now", body, (output) => {
45811
+ const workOrder = asRecord(asRecord(output).work_order);
45812
+ return `queued ${field(workOrder, "lane")} work order ${field(workOrder, "id")} for agent ${field(workOrder, "agent_id")} (${field(workOrder, "status")})`;
45813
+ });
45814
+ },
45708
45815
  // DER-787 (H8): markdown readout for a seat's agent setup. `--markdown` (or
45709
45816
  // default) prints the composed card; `--json` returns the { markdown } object.
45710
45817
  show: (ctx, rest) => {
@@ -45731,7 +45838,7 @@ function agentConfigureTools(ctx, rest, decision) {
45731
45838
  });
45732
45839
  }
45733
45840
  function agentUsage(bin) {
45734
- return `Usage: ${bin} agent templates|create|setup|tools|dry-run|go-live|status|show [--json]
45841
+ return `Usage: ${bin} agent templates|create|setup|tools|dry-run|go-live|status|run-now|show [--json]
45735
45842
  ${bin} agent templates
45736
45843
  ${bin} agent create --seat-id <id> --template <slug> [--expected-version <v>]
45737
45844
  ${bin} agent create --seat-id <id> --custom [--steward-seat-id <id>] [--lane cloud|mcp_session|runner] [--model triage|balanced|complex|hardest|<id>] [--effort low|medium|high|xhigh|max] [--owns <text>] [--success <text>] [--never-alone <text>]
@@ -45741,6 +45848,7 @@ function agentUsage(bin) {
45741
45848
  ${bin} agent dry-run --seat-id <id> --charter-version-id <id>
45742
45849
  ${bin} agent go-live --seat-id <id> --charter-version-id <id>
45743
45850
  ${bin} agent status --seat-id <id>
45851
+ ${bin} agent run-now --seat-id <id> [--task-id <id>]
45744
45852
  ${bin} agent show --seat-id <id> [--markdown]`;
45745
45853
  }
45746
45854
  function agentSetupUsage(bin) {
@@ -45882,7 +45990,7 @@ function operationUsageLines(bin) {
45882
45990
  `${bin} notification settings|test`,
45883
45991
  `${bin} settings get|update`,
45884
45992
  `${bin} member invite|update|remove`,
45885
- `${bin} agent templates|create|setup|tools|dry-run|go-live|status|show`,
45993
+ `${bin} agent templates|create|setup|tools|dry-run|go-live|status|run-now|show`,
45886
45994
  `${bin} tools list`,
45887
45995
  `${bin} compass show`,
45888
45996
  `${bin} charter show`