@rosthq/cli 0.5.22 → 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.12",
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"],
@@ -42444,7 +42444,11 @@ External connectors are being rolled out provider by provider, conservatively (r
42444
42444
  "integration.readiness",
42445
42445
  "integration.status",
42446
42446
  "integration.test",
42447
- "tenant.rename"
42447
+ "tenant.rename",
42448
+ "deliverable.list",
42449
+ "deliverable.get",
42450
+ "deliverable.create",
42451
+ "deliverable.attach"
42448
42452
  ],
42449
42453
  legal: {
42450
42454
  publicRisk: "low",
@@ -42831,6 +42835,7 @@ The signed-in app exposes the same Skill command surface under **Skills** in the
42831
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\` |
42832
42836
  | \`{{cli}} compass show\` | \`compass.show_markdown\` | Render the current Compass as a clean markdown card for review. | Tenant | \`{{cli}} compass show --markdown\` |
42833
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\` |
42834
42839
 
42835
42840
  Skills wrapper help:
42836
42841
 
@@ -42950,6 +42955,10 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
42950
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. |
42951
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>"}\`. |
42952
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. |
42953
42962
  | \`rost_list_agent_templates\` | \`agent_template.list\` | List stock agent templates and metadata. | Tenant | Call with \`{}\`. |
42954
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. |
42955
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. |
@@ -47131,6 +47140,87 @@ function charterUsage(bin) {
47131
47140
  return `Usage: ${bin} charter show --seat-id <id> [--markdown] [--json]
47132
47141
  ${bin} charter show --seat-id <id> --markdown \u2014 render a seat's active or latest Charter as a markdown card.`;
47133
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
+ }
47134
47224
  var OPERATION_GROUPS = [
47135
47225
  "task",
47136
47226
  "status",
@@ -47149,7 +47239,8 @@ var OPERATION_GROUPS = [
47149
47239
  "skills",
47150
47240
  "model",
47151
47241
  "compass",
47152
- "charter"
47242
+ "charter",
47243
+ "deliverable"
47153
47244
  ];
47154
47245
  var wrappers = {
47155
47246
  task: taskWrapper,
@@ -47169,7 +47260,8 @@ var wrappers = {
47169
47260
  skills: skillsWrapper,
47170
47261
  model: modelWrapper,
47171
47262
  compass: compassWrapper,
47172
- charter: charterWrapper
47263
+ charter: charterWrapper,
47264
+ deliverable: deliverableWrapper
47173
47265
  };
47174
47266
  function isOperationGroup(value) {
47175
47267
  return value !== void 0 && OPERATION_GROUPS.includes(value);
@@ -47192,7 +47284,8 @@ var groupUsageBuilders = {
47192
47284
  skills: skillsUsage,
47193
47285
  model: modelUsage,
47194
47286
  compass: compassUsage,
47195
- charter: charterUsage
47287
+ charter: charterUsage,
47288
+ deliverable: deliverableUsage
47196
47289
  };
47197
47290
  function operationGroupUsage(group, bin) {
47198
47291
  return usageWithSchemaFooter(groupUsageBuilders[group](bin), bin);
@@ -47223,7 +47316,8 @@ function operationUsageLines(bin) {
47223
47316
  `${bin} skills list|get|file|assigned|check-dependencies`,
47224
47317
  `${bin} model list`,
47225
47318
  `${bin} compass show`,
47226
- `${bin} charter show`
47319
+ `${bin} charter show`,
47320
+ `${bin} deliverable list|get|create|attach`
47227
47321
  ];
47228
47322
  }
47229
47323