@rosthq/cli 0.5.21 → 0.5.23

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
@@ -42145,7 +42145,7 @@ Decisions should be recorded as human decisions. Handoffs should attach to seats
42145
42145
  order: 45,
42146
42146
  title: "How agents work",
42147
42147
  summary: "How {{brand}} agents operate inside seats, use Charters, report work, and escalate beyond authority.",
42148
- version: "2026-06-21.3",
42148
+ version: "2026-06-21.4",
42149
42149
  public: true,
42150
42150
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42151
42151
  stages: ["staffing", "operating_rhythm"],
@@ -42239,7 +42239,7 @@ Before an agent goes live, the sandbox dry run rehearses this against fake data
42239
42239
 
42240
42240
  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, loaded Skill versions, 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.
42241
42241
 
42242
- 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.`
42242
+ 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. Shared system-health summaries use the same server-derived tenant, member, or seat-token scope so UI, CLI, and MCP operators see consistent stalled-work, unresolved-error, runner, and notification counts without client-supplied tenant boundaries. 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.`
42243
42243
  },
42244
42244
  {
42245
42245
  slug: "tool-access-and-vault",
@@ -42384,7 +42384,7 @@ External connectors are being rolled out provider by provider, conservatively (r
42384
42384
  order: 48,
42385
42385
  title: "CLI and MCP installation guide",
42386
42386
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
42387
- version: "2026-06-21.11",
42387
+ version: "2026-06-21.13",
42388
42388
  public: true,
42389
42389
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42390
42390
  stages: ["company_setup", "staffing"],
@@ -42443,7 +42443,12 @@ External connectors are being rolled out provider by provider, conservatively (r
42443
42443
  "integration.list",
42444
42444
  "integration.readiness",
42445
42445
  "integration.status",
42446
- "integration.test"
42446
+ "integration.test",
42447
+ "tenant.rename",
42448
+ "deliverable.list",
42449
+ "deliverable.get",
42450
+ "deliverable.create",
42451
+ "deliverable.attach"
42447
42452
  ],
42448
42453
  legal: {
42449
42454
  publicRisk: "low",
@@ -42820,7 +42825,7 @@ The signed-in app exposes the same Skill command surface under **Skills** in the
42820
42825
  | \`{{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\` |
42821
42826
  | \`{{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\` |
42822
42827
  | \`{{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\` |
42823
- | \`{{cli}} settings get|update|product-learning\` | \`settings.get\`, \`settings.update\`, \`settings.product_learning.get\`, \`settings.product_learning.update\` | Read tenant settings, update budget caps, and read or update product-learning participation. Product-learning updates stop at human confirmation in non-interactive CLI/MCP sessions. | Tenant / Tenant-admin for updates | \`{{cli}} settings product-learning get --json\`; \`{{cli}} settings product-learning update --mode disabled --json\` |
42828
+ | \`{{cli}} settings get|update|product-learning|rename\` | \`settings.get\`, \`settings.update\`, \`settings.product_learning.get\`, \`settings.product_learning.update\`, \`tenant.rename\` | Read tenant settings, update budget caps, read or update product-learning participation, and rename the company. Budget and product-learning updates stop at human confirmation in non-interactive CLI/MCP sessions; company rename is owner-only and human-gated. | Tenant / Tenant-admin for updates | \`{{cli}} settings product-learning get --json\`; \`{{cli}} settings product-learning update --mode disabled --json\`; \`{{cli}} settings rename --company "Acme Operations"\` |
42824
42829
  | \`{{cli}} member invite|update|remove\` | \`member.invite\`, \`member.update\`, \`member.remove\` | Manage tenant members. | Tenant | \`{{cli}} member invite --email ops@example.com --role member\` |
42825
42830
  | \`{{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. Human CLI dry-runs print the rehearsal transcript and, when present, the per-tool preview labels (\`Would run\`, \`Blocked\`, \`Escalated\`) before go-live. 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\` |
42826
42831
  | \`{{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\` |
@@ -42830,6 +42835,7 @@ The signed-in app exposes the same Skill command surface under **Skills** in the
42830
42835
  | \`{{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\` |
42831
42836
  | \`{{cli}} compass show\` | \`compass.show_markdown\` | Render the current Compass as a clean markdown card for review. | Tenant | \`{{cli}} compass show --markdown\` |
42832
42837
  | \`{{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\` |
42838
+ | \`{{cli}} deliverable list|get|create|attach\` | \`deliverable.list\`, \`deliverable.get\`, \`deliverable.create\`, \`deliverable.attach\` | List, get, create, or attach agent deliverables for a seat. Deliverables are durable work outputs visible across UI, CLI, and MCP. | Tenant (list/get), Seat (create/attach) | \`{{cli}} deliverable list --seat-id <id> --json\`; \`{{cli}} deliverable create --title "Brief" --kind brief\` |
42833
42839
 
42834
42840
  Skills wrapper help:
42835
42841
 
@@ -42949,6 +42955,10 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
42949
42955
  | \`rost_list_agent_runs\` | \`agent.list_runs\` | Read a seat's agent run history (status, lane, model, cost, per-run Skill activation, 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. |
42950
42956
  | \`rost_get_agent_run_diagnostics\` | \`agent.get_run\` | Read one run's diagnostic record: transcript reference, token/cost usage, outcome, linked product-visible run errors, and loaded Skill activation file metadata. File hashes/sizes identify the immutable source package, while model prompt text may be bounded or truncated. | Seat or tenant-admin | Call with \`{"seat_id":"<seat-id>","run_id":"<run-id>"}\`. |
42951
42957
  | \`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. |
42958
+ | \`rost_list_agent_deliverables\` | \`deliverable.list\` | List durable agent deliverables for a seat, including explicit outputs and successful-run summaries. | Seat or tenant-admin | Call with \`{"seat_id":"<seat-id>"}\`. |
42959
+ | \`rost_get_agent_deliverable\` | \`deliverable.get\` | Read one durable agent deliverable by id for a seat. | Seat or tenant-admin | Call with \`{"seat_id":"<seat-id>","deliverable_id":"<id>"}\`. |
42960
+ | \`rost_create_agent_deliverable\` | \`deliverable.create\` | Create a scrubbed durable work output for the acting seat. | Seat | Call with title, kind, summary/content, and optional safe links. |
42961
+ | \`rost_attach_agent_deliverable\` | \`deliverable.attach\` | Attach a scrubbed deliverable to a source run, task, or work order after server-side seat validation. | Seat | Call with title, kind, and the source ids that belong to the acting seat. |
42952
42962
  | \`rost_list_agent_templates\` | \`agent_template.list\` | List stock agent templates and metadata. | Tenant | Call with \`{}\`. |
42953
42963
  | \`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. |
42954
42964
  | \`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. |
@@ -42982,6 +42992,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
42982
42992
  | \`rost_remove_member\` | \`member.remove\` | Remove a tenant member. | Tenant | Call with \`member_id\`; blocked if it would orphan an agent steward chain. |
42983
42993
  | \`rost_get_tenant_settings\` | \`settings.get\` | Read tenant operating settings and integration status. | Tenant | Call with \`{}\`; metadata only. |
42984
42994
  | \`rost_update_tenant_settings\` | \`settings.update\` | Update tenant AI budget caps. | Tenant | Call with \`soft_cap_usd\` or \`hard_cap_usd\`; expect human confirmation. |
42995
+ | \`rost_rename_company\` | \`tenant.rename\` | Rename the current company. | Tenant-admin | Call with \`company_name\`; expect human confirmation. |
42985
42996
  | \`rost_get_sync_brief_scope\` | \`settings.sync_brief_scope.get\` | Read the tenant's Sync Brief scope (company_wide or per_cluster). | Tenant | Call with \`{}\`. |
42986
42997
  | \`rost_update_sync_brief_scope\` | \`settings.sync_brief_scope.update\` | Set the tenant's Sync Brief scope (company_wide or per_cluster). | Tenant-admin | Owner-only; call with \`{"sync_brief_scope":"company_wide"}\` or \`{"sync_brief_scope":"per_cluster"}\`. |
42987
42998
  | \`rost_get_product_learning_policy\` | \`settings.product_learning.get\` | Read whether product/page/recommendation analytics are allowed. | Tenant | Call with \`{}\`; audit/security logs are always enabled. |
@@ -43776,7 +43787,7 @@ Keep agent scope tight at first. Approve more autonomy only after evidence. Use
43776
43787
  order: 71,
43777
43788
  title: "Confirmations and human gates guide",
43778
43789
  summary: "How {{brand}} routes authority-changing work through human confirmation, and why agents never approve their own requests.",
43779
- version: "2026-06-20.1",
43790
+ version: "2026-06-20.2",
43780
43791
  public: true,
43781
43792
  audiences: ["human", "cli", "mcp", "in_app_agent"],
43782
43793
  stages: ["graph_design", "charter_design", "staffing", "operating_rhythm"],
@@ -43801,7 +43812,7 @@ Keep agent scope tight at first. Approve more autonomy only after evidence. Use
43801
43812
  ## Confirmation levels
43802
43813
 
43803
43814
  - \`none\`: no confirmation gate \u2014 the command never returns a pending confirmation. Most are reads or reversible drafts an agent can run directly, including over MCP (graph reads, \`charter.draft\`, \`status.record\`, \`sync.brief.compile\`, \`sync.run.start\`, \`task.complete\`). A few \`none\` commands still require a human actor or an interactive channel \u2014 \`confirmation.approve\` is \`none\` (approving a gate cannot itself be gated) yet runs only as a human in the UI or CLI \u2014 so \`none\` means "no confirmation gate", not always "agent-callable".
43804
- - \`human_required\`: a human must approve. Structural, staffing, resolution, and go-live commands (\`seat.reparent\`, \`charter.approve\`, \`goal.reparent\`, \`friction.resolve\`, \`agent.go_live\`, \`mcp_token.create\`).
43815
+ - \`human_required\`: a human must approve. Structural, staffing, resolution, tenant profile, and go-live commands (\`seat.reparent\`, \`charter.approve\`, \`goal.reparent\`, \`friction.resolve\`, \`agent.go_live\`, \`mcp_token.create\`, \`tenant.rename\`).
43805
43816
  - \`credential_flow\`: routes through the vault-backed credential path so a secret is captured as a vault reference, never stored or logged in the clear (\`credential.ingress\`, \`tenant.anthropic_key.save\`; \`agent.configure_tools\` is \`credential_flow\` too \u2014 it stages credential-ingress requests through the same path without ever taking raw secret material).
43806
43817
  - \`dangerous\`: the highest-risk human gate. Only two commands carry it \u2014 \`settings.update\` and \`agent.decommission\`.
43807
43818
 
@@ -43831,11 +43842,11 @@ Stop before: approving a Charter, signing a manifest, connecting a tool or crede
43831
43842
  order: 72,
43832
43843
  title: "Settings guide",
43833
43844
  summary: "How to use Settings as the control plane for company access, channels, providers, tokens, and operating defaults.",
43834
- version: "2026-06-21.2",
43845
+ version: "2026-06-21.4",
43835
43846
  public: true,
43836
43847
  audiences: ["human", "cli", "mcp", "in_app_agent"],
43837
43848
  stages: ["company_setup", "staffing"],
43838
- 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", "settings.product_learning.get", "settings.product_learning.update"],
43849
+ 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", "tenant.rename", "settings.sync_brief_scope.get", "settings.sync_brief_scope.update", "settings.product_learning.get", "settings.product_learning.update"],
43839
43850
  legal: { publicRisk: "low", notes: ["{{brand}}-native settings guidance."] },
43840
43851
  sources: [
43841
43852
  {
@@ -43854,7 +43865,7 @@ Start with members and invites, then provider and channel connections, then MCP
43854
43865
 
43855
43866
  ## What belongs in Settings
43856
43867
 
43857
- - Company profile and workspace defaults.
43868
+ - Company profile and workspace defaults. Rename the company from Settings or with \`tenant.rename\` (CLI: \`{{cli}} settings rename --company "<name>"\`); the command is owner-only, human-gated, and records a rename event with old and new names.
43858
43869
  - Members, invites, and tenant roles.
43859
43870
  - Agent access tokens for local agents.
43860
43871
  - Provider and integration configuration.
@@ -43888,6 +43899,8 @@ Product-learning participation controls whether {{brand}} may record product/pag
43888
43899
 
43889
43900
  Read the policy with \`settings.product_learning.get\` (CLI: \`{{cli}} settings product-learning get\`). Change it with \`settings.product_learning.update\` (CLI: \`{{cli}} settings product-learning update --mode disabled\`). Analytics ingestion code should call the shared product-learning policy helper instead of reading \`tenants.settings\` directly.
43890
43901
 
43902
+ The product analytics foundation stores only bounded product telemetry: product events, page views by route template, command invocation metadata, onboarding milestones, and recommendation outcomes. Authenticated users can read analytics rows for their tenant, but writes are server-owned through the trusted DB helpers. The helpers and database constraints reject or redact obvious raw URLs, filesystem paths, secrets, prompt/content fields, command argument/output fields, direct contact/payment identifiers, and long prose-shaped values. These analytics rows are not audit records; operational logs and security evidence stay in their dedicated append-only or product-visible tables.
43903
+
43891
43904
  ## Inference budget
43892
43905
 
43893
43906
  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.
@@ -46543,14 +46556,26 @@ var settingsWrapper = (context, args) => dispatch(context, "settings", args, {
46543
46556
  const spend = asRecord(asRecord(output).spend);
46544
46557
  return `Updated budget caps (soft=$${field(spend, "soft_cap_usd")}, hard=$${field(spend, "hard_cap_usd")}).`;
46545
46558
  });
46559
+ },
46560
+ rename: (ctx, rest) => {
46561
+ const parsed = parseFlags(rest);
46562
+ const companyName = optionalValue(parsed, "company");
46563
+ if (!companyName) {
46564
+ throw new UsageError("Provide --company <name>.");
46565
+ }
46566
+ return execute(ctx, parsed, "tenant.rename", { company_name: companyName }, (output) => {
46567
+ const record2 = asRecord(output);
46568
+ return `Renamed company from ${field(record2, "previous_name")} to ${field(record2, "name")}.`;
46569
+ });
46546
46570
  }
46547
46571
  }, settingsUsage(context.binName));
46548
46572
  function settingsUsage(bin) {
46549
- return `Usage: ${bin} settings get|update|product-learning [--json]
46573
+ return `Usage: ${bin} settings get|update|product-learning|rename [--json]
46550
46574
  ${bin} settings get
46551
46575
  ${bin} settings update [--soft-cap-usd <n>] [--hard-cap-usd <n>]
46552
46576
  ${bin} settings product-learning get
46553
- ${bin} settings product-learning update --mode enabled|disabled|enterprise_contract`;
46577
+ ${bin} settings product-learning update --mode enabled|disabled|enterprise_contract
46578
+ ${bin} settings rename --company <name>`;
46554
46579
  }
46555
46580
  var memberWrapper = (context, args) => dispatch(context, "member", args, {
46556
46581
  invite: (ctx, rest) => {
@@ -47115,6 +47140,87 @@ function charterUsage(bin) {
47115
47140
  return `Usage: ${bin} charter show --seat-id <id> [--markdown] [--json]
47116
47141
  ${bin} charter show --seat-id <id> --markdown \u2014 render a seat's active or latest Charter as a markdown card.`;
47117
47142
  }
47143
+ function formatDeliverableList(output) {
47144
+ const deliverables = asArray(asRecord(output).deliverables);
47145
+ if (deliverables.length === 0) {
47146
+ return "No deliverables for this seat.";
47147
+ }
47148
+ return deliverables.map((entry) => {
47149
+ const r = asRecord(entry);
47150
+ const summary = field(r, "summary") === "\u2014" ? "" : ` \u2014 ${field(r, "summary")}`;
47151
+ return `${field(r, "id")} [${field(r, "kind")}] ${field(r, "title")}${summary}`;
47152
+ }).join("\n");
47153
+ }
47154
+ function formatDeliverableDetail(output) {
47155
+ const d = asRecord(asRecord(output).deliverable);
47156
+ const links = asArray(d.links).map((entry) => {
47157
+ const l = asRecord(entry);
47158
+ return ` ${field(l, "kind")}: ${field(l, "label")} <${field(l, "url")}>`;
47159
+ }).join("\n");
47160
+ return [
47161
+ `# ${field(d, "title")} [${field(d, "kind")}]`,
47162
+ field(d, "id"),
47163
+ field(d, "summary") === "\u2014" ? "" : field(d, "summary"),
47164
+ field(d, "content") === "\u2014" ? "" : `content:
47165
+ ${field(d, "content")}`,
47166
+ `delivered: ${field(d, "delivered_at")}`,
47167
+ `run: ${field(d, "source_run_status")} ${field(d, "source_run_model")}`,
47168
+ `task: ${field(d, "source_task_title")}`,
47169
+ links.length > 0 ? `links:
47170
+ ${links}` : ""
47171
+ ].filter((line) => line.length > 0).join("\n");
47172
+ }
47173
+ function formatDeliverableWrite(output) {
47174
+ const record2 = asRecord(output);
47175
+ return `deliverable ${field(record2, "deliverable_id")} recorded.`;
47176
+ }
47177
+ var deliverableWrapper = (context, args) => dispatch(context, "deliverable", args, {
47178
+ list: (ctx, rest) => {
47179
+ const parsed = parseFlags(rest);
47180
+ const seatId = requireValue2(parsed, "seat-id");
47181
+ return execute(ctx, parsed, "deliverable.list", { seat_id: seatId }, formatDeliverableList);
47182
+ },
47183
+ get: (ctx, rest) => {
47184
+ const parsed = parseFlags(rest);
47185
+ const body = {
47186
+ seat_id: requireValue2(parsed, "seat-id"),
47187
+ deliverable_id: requireValue2(parsed, "deliverable-id")
47188
+ };
47189
+ return execute(ctx, parsed, "deliverable.get", body, formatDeliverableDetail);
47190
+ },
47191
+ create: (ctx, rest) => {
47192
+ const parsed = parseFlags(rest, /* @__PURE__ */ new Set(["json"]));
47193
+ const body = withOptional({
47194
+ kind: optionalValue(parsed, "kind") ?? "other",
47195
+ title: requireValue2(parsed, "title")
47196
+ }, {
47197
+ summary: optionalValue(parsed, "summary"),
47198
+ content: optionalValue(parsed, "content")
47199
+ });
47200
+ return execute(ctx, parsed, "deliverable.create", body, formatDeliverableWrite);
47201
+ },
47202
+ attach: (ctx, rest) => {
47203
+ const parsed = parseFlags(rest);
47204
+ const body = withOptional({
47205
+ kind: optionalValue(parsed, "kind") ?? "other",
47206
+ title: requireValue2(parsed, "title")
47207
+ }, {
47208
+ run_id: optionalValue(parsed, "run-id"),
47209
+ task_id: optionalValue(parsed, "task-id"),
47210
+ work_order_id: optionalValue(parsed, "work-order-id"),
47211
+ summary: optionalValue(parsed, "summary"),
47212
+ content: optionalValue(parsed, "content")
47213
+ });
47214
+ return execute(ctx, parsed, "deliverable.attach", body, formatDeliverableWrite);
47215
+ }
47216
+ }, deliverableUsage(context.binName));
47217
+ function deliverableUsage(bin) {
47218
+ return `Usage: ${bin} deliverable list|get|create|attach [--json]
47219
+ ${bin} deliverable list --seat-id <id>
47220
+ ${bin} deliverable get --seat-id <id> --deliverable-id <id>
47221
+ ${bin} deliverable create --title <text> [--kind brief|work_evidence|artifact|report|other] [--summary <text>] [--content <text>]
47222
+ ${bin} deliverable attach --title <text> [--run-id <id>] [--task-id <id>] [--work-order-id <id>] [--kind brief|work_evidence|artifact|report|other] [--summary <text>] [--content <text>]`;
47223
+ }
47118
47224
  var OPERATION_GROUPS = [
47119
47225
  "task",
47120
47226
  "status",
@@ -47133,7 +47239,8 @@ var OPERATION_GROUPS = [
47133
47239
  "skills",
47134
47240
  "model",
47135
47241
  "compass",
47136
- "charter"
47242
+ "charter",
47243
+ "deliverable"
47137
47244
  ];
47138
47245
  var wrappers = {
47139
47246
  task: taskWrapper,
@@ -47153,7 +47260,8 @@ var wrappers = {
47153
47260
  skills: skillsWrapper,
47154
47261
  model: modelWrapper,
47155
47262
  compass: compassWrapper,
47156
- charter: charterWrapper
47263
+ charter: charterWrapper,
47264
+ deliverable: deliverableWrapper
47157
47265
  };
47158
47266
  function isOperationGroup(value) {
47159
47267
  return value !== void 0 && OPERATION_GROUPS.includes(value);
@@ -47176,7 +47284,8 @@ var groupUsageBuilders = {
47176
47284
  skills: skillsUsage,
47177
47285
  model: modelUsage,
47178
47286
  compass: compassUsage,
47179
- charter: charterUsage
47287
+ charter: charterUsage,
47288
+ deliverable: deliverableUsage
47180
47289
  };
47181
47290
  function operationGroupUsage(group, bin) {
47182
47291
  return usageWithSchemaFooter(groupUsageBuilders[group](bin), bin);
@@ -47200,14 +47309,15 @@ function operationUsageLines(bin) {
47200
47309
  `${bin} sync brief|compile|complete`,
47201
47310
  `${bin} runner list|status|work-orders|revoke`,
47202
47311
  `${bin} notification settings|test|errors`,
47203
- `${bin} settings get|update|product-learning`,
47312
+ `${bin} settings get|update|product-learning|rename`,
47204
47313
  `${bin} member invite|update|remove`,
47205
47314
  `${bin} agent templates|create|setup|tools|dry-run|go-live|status|run-now|fleet-digest|get-run|show`,
47206
47315
  `${bin} tools list`,
47207
47316
  `${bin} skills list|get|file|assigned|check-dependencies`,
47208
47317
  `${bin} model list`,
47209
47318
  `${bin} compass show`,
47210
- `${bin} charter show`
47319
+ `${bin} charter show`,
47320
+ `${bin} deliverable list|get|create|attach`
47211
47321
  ];
47212
47322
  }
47213
47323