@rosthq/cli 0.6.5 → 0.6.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"command-manifest.d.ts","sourceRoot":"","sources":["../../src/generated/command-manifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,EAAE,SAAS,oBAAoB,EA0L3D,CAAC"}
1
+ {"version":3,"file":"command-manifest.d.ts","sourceRoot":"","sources":["../../src/generated/command-manifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,EAAE,SAAS,oBAAoB,EA2L3D,CAAC"}
package/dist/index.js CHANGED
@@ -37433,6 +37433,13 @@ var AGENT_HOW_TO_PROMPT_CONTRACTS = {
37433
37433
  name: "human-confirmations",
37434
37434
  version: "1.0.0",
37435
37435
  filename: "how-tos/human-confirmations.md"
37436
+ },
37437
+ // DER-1045: how an occupant agent collects its seat's agent-sourced measurables
37438
+ // as draft readings via signal.report (a human confirms via signal.confirm_reading).
37439
+ collectSeatSignals: {
37440
+ name: "collect-seat-signals",
37441
+ version: "1.0.0",
37442
+ filename: "how-tos/collect-seat-signals.md"
37436
37443
  }
37437
37444
  };
37438
37445
  function loadAgentHowToPrompt(contract) {
@@ -42403,7 +42410,7 @@ External connectors are being rolled out provider by provider, conservatively (r
42403
42410
  order: 48,
42404
42411
  title: "CLI and MCP installation guide",
42405
42412
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
42406
- version: "2026-07-01.4",
42413
+ version: "2026-07-01.5",
42407
42414
  public: true,
42408
42415
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42409
42416
  stages: ["company_setup", "staffing"],
@@ -43054,6 +43061,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
43054
43061
  | \`rost_get_signal\` | \`signal.get\` | Read a measurable with its full reading history. | Seat or tenant-admin | Call with \`{"measurable_id":"<id>"}\`. |
43055
43062
  | \`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>"}\`. |
43056
43063
  | \`rost_correct_signal_reading\` | \`signal.correct_reading\` | Overwrite a reading with a human-confirmed value. | Seat or tenant-admin | Manual correction; expect confirmation. |
43064
+ | \`rost_report_a_signal_reading\` | \`signal.report\` | A per-seat Signal agent proposes one draft reading for its own seat's agent-sourced measurable (a judgment/transform pull). The reading lands unconfirmed; a human confirms it with signal.confirm_reading. Refuses non-agent-sourced or other-seat measurables and cannot overwrite a human-confirmed reading. | Seat | Call with \`{"measurable_id":"<id>","value":42,"note":"read off the source","confidence":"high"}\`. |
43057
43065
  | \`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"}\`. |
43058
43066
  | \`rost_import_signals_from_csv\` | \`signal.import\` | Bulk-import measurable definitions + trailing historical readings from a parsed scorecard export (e.g. a ninety CSV). Owners resolve to seats; readings are human-confirmed; re-import upserts by (measurable, period, cadence); a cross-cadence row is reported and skipped, not overwritten. | Tenant | Call with the parsed \`measurables\` array. |
43059
43067
  | \`rost_list_measurable_templates\` | \`measurable_template.list\` | List the measurable template catalog (Sales/Finance/Ops/Marketing/HR) with unit, direction, cadence, and a suggested target. | Seat or tenant-admin | Call with \`{}\` or \`{"function":"sales"}\`. |
@@ -43687,7 +43695,7 @@ Agents can suggest commitments and report progress. They should not create a new
43687
43695
  order: 61,
43688
43696
  title: "Signal guide",
43689
43697
  summary: "How to define and read measurables so the company runs on evidence instead of status theater.",
43690
- version: "2026-07-01.2",
43698
+ version: "2026-07-01.3",
43691
43699
  public: true,
43692
43700
  audiences: ["human", "cli", "mcp", "in_app_agent"],
43693
43701
  stages: ["operating_rhythm"],
@@ -43699,6 +43707,7 @@ Agents can suggest commitments and report progress. They should not create a new
43699
43707
  "signal.get",
43700
43708
  "signal.confirm_reading",
43701
43709
  "signal.correct_reading",
43710
+ "signal.report",
43702
43711
  "measurable.create",
43703
43712
  "signal.import",
43704
43713
  "measurable_template.list",
@@ -43772,6 +43781,10 @@ Once a measurable's number lives in a connected system, you can teach {{brand}}
43772
43781
 
43773
43782
  Recipes are validated data, never code: a read-only GET, a closed set of non-secret headers, and a restricted scalar path to the value. Every fetch passes one SSRF guard (HTTPS only, a steward-confirmed host allowlist set at bind, and a runtime check that the host does not resolve to a private address). Deterministic pulls write \`integration\`-sourced readings on the measurable's cadence.
43774
43783
 
43784
+ ## Collect a Signal by judgment (the Signal agent)
43785
+
43786
+ Some measurables cannot be a deterministic pull \u2014 the number lives in a PDF, in messy records that need reconciling, or is a judgment estimate of progress. For those, mark the measurable \`agent\`-sourced and let a per-seat Signal agent read it. The agent proposes each reading with \`signal.report\` (scope: seat): one draft reading for one of its OWN seat's agent-sourced measurables, with a \`value\` and a short \`note\` citing the source. The reading lands unconfirmed, exactly like a deterministic draft \u2014 a human clears it with \`signal.confirm_reading\`. \`signal.report\` refuses any measurable not owned by the acting seat and any measurable whose source is not \`agent\`, and it never confirms its own reading. Deliver it as the \`stock/signal-collector\` template (a read-only agent whose only durable grant is \`signal.report\`) or run the \`collect-seat-signals\` how-to from an occupant agent. When the agent cannot read a number confidently \u2014 ambiguous or conflicting sources \u2014 it escalates instead of guessing.
43787
+
43775
43788
  ## When to stop for confirmation
43776
43789
 
43777
43790
  \`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.
@@ -44221,7 +44234,7 @@ The runner should not store raw credentials in local notes, prompts, or logs. It
44221
44234
  order: 76,
44222
44235
  title: "Stock agents guide",
44223
44236
  summary: "How to use stock agent templates as starting points while preserving seat-specific Charters and human approval.",
44224
- version: "2026-06-15.1",
44237
+ version: "2026-07-01.1",
44225
44238
  public: true,
44226
44239
  audiences: ["human", "cli", "mcp", "in_app_agent"],
44227
44240
  stages: ["staffing"],
@@ -44248,7 +44261,7 @@ Before dry run, review the template's responsibilities, tool assumptions, escala
44248
44261
 
44249
44262
  ## Template catalog
44250
44263
 
44251
- Seven stock templates ship today. Every one is draft-first, escalates the actions in its safety boundaries, and keeps spend, external sends, and credential scope human-owned until a Steward sets a threshold. Read the live list with \`agent_template.list\` / \`rost_list_agent_templates\` or the \`rost://agents/templates\` resource.
44264
+ Eight stock templates ship today. Every one is draft-first, escalates the actions in its safety boundaries, and keeps spend, external sends, and credential scope human-owned until a Steward sets a threshold. Read the live list with \`agent_template.list\` / \`rost_list_agent_templates\` or the \`rost://agents/templates\` resource.
44252
44265
 
44253
44266
  ### AP Clerk \u2014 \`stock/ap-clerk\`
44254
44267
 
@@ -44299,6 +44312,13 @@ Seven stock templates ship today. Every one is draft-first, escalates the action
44299
44312
  - Default tools: Release artifacts read; Issue tracker draft.
44300
44313
  - Safety boundary: release approval, production changes, customer-impacting risk, security/privacy, and conflicting evidence escalate.
44301
44314
 
44315
+ ### Signal collector \u2014 \`stock/signal-collector\`
44316
+
44317
+ - Function: Ops/Finance. Tier: \`2 \xB7 Fast-follow\`.
44318
+ - Responsibilities: Read this seat's agent-sourced measurables; Propose draft readings with cited sources; Escalate any number it cannot read confidently.
44319
+ - Default tools: Signal draft readings.
44320
+ - Safety boundary: reads only this seat's agent-sourced measurables and proposes each as a draft a human confirms; ambiguous or conflicting numbers escalate rather than guess, and it never confirms its own readings.
44321
+
44302
44322
  ## Create from a template (CLI or MCP)
44303
44323
 
44304
44324
  1. List templates: \`agent_template.list\` / \`rost_list_agent_templates\` with \`{}\` (scope: tenant).
@@ -44404,7 +44424,7 @@ Name the failing surface, collect evidence, recommend the smallest correction, a
44404
44424
  order: 78,
44405
44425
  title: "AI model data handling guide",
44406
44426
  summary: "How {{brand}} cloud agents, local MCP sessions, runners, BYOK, and connected tools handle model-bound data.",
44407
- version: "2026-07-01.1",
44427
+ version: "2026-07-01.2",
44408
44428
  public: true,
44409
44429
  audiences: ["human", "cli", "mcp", "in_app_agent"],
44410
44430
  stages: ["company_setup", "staffing", "operating_rhythm"],
@@ -44491,7 +44511,7 @@ Cloud prompts should not include raw credentials, long exports, unrelated custom
44491
44511
 
44492
44512
  ## BYOK Anthropic
44493
44513
 
44494
- Tenant BYOK changes which provider account is used for eligible \`cloud\` model calls. It does not loosen tool permissions, human gates, tenant isolation, or audit requirements.
44514
+ Tenant BYOK changes which provider account is used for eligible \`cloud\` model calls. It does not loosen tool permissions, human gates, tenant isolation, or audit requirements. The same tenant-key resolution also covers the read-only advisory analyzers (friction assist, compass-alignment drift, and the coach draft-guide): when a tenant has saved its own Anthropic key those advisory calls use it and are metered on that key, otherwise they fall back to the platform key, and when neither is available they degrade to their deterministic summary rather than failing.
44495
44515
 
44496
44516
  {{brand}} also includes a capped, app-provided Claude allowance for agent-assisted setup so a new company can complete onboarding before saving its own key. That allowance is shown in the onboarding provider card and in Settings as an approximate number of included setup tokens \u2014 never a dollar amount \u2014 and is enforced server-side on every platform-key call: an agent turn or an org-intake step reserves the allowance before the provider request and settles actual usage after. When the included tokens are used, agent-assisted steps stop before calling the provider and prompt you to add your own Anthropic API key, while non-AI setup steps stay available. Saving a tenant Anthropic key (BYOK) switches those calls to your provider account and does not draw down the included allowance.
44497
44517
 
@@ -46079,6 +46099,7 @@ var COMMAND_MANIFEST = [
46079
46099
  { "id": "signal.import", "namespace": "signal", "action": "import", "title": "Import Signals from CSV", "description": "Bulk-import measurable definitions and their historical readings from a parsed scorecard export (e.g. a ninety CSV). Owners are seat names resolved to seats; readings are human-confirmed. Idempotent \u2014 re-import upserts by (measurable, period, cadence). Re-importing a measurable at a different cadence is rejected, not overwritten.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "dry_run", "flag": "dry-run", "type": "boolean", "required": false }], "hasComplexInput": true, "help": "Bulk-import measurables + historical readings from a parsed scorecard export (owners resolve to seats); idempotent, human-confirmed, re-import upserts by period." },
46080
46100
  { "id": "signal.list", "namespace": "signal", "action": "list", "title": "List Signals", "description": "List measurable definitions with their latest reading and on/off-track state. Seat-scoped callers see only their own seat.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": false }], "hasComplexInput": false, "help": "List Signals to find measurable ids and current on/off-track state before recording or correcting readings." },
46081
46101
  { "id": "signal.preview", "namespace": "signal", "action": "preview", "title": "Preview a signal source", "description": "Execute a candidate rest-for-signals recipe LIVE and read-only against an allowlisted HTTPS source, returning the extracted scalar and a short-lived preview_token required by signal.bind. Guarded (SSRF + restricted JSONPath); writes a signal_pull_log row. Never mutates.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "measurable_id", "flag": "measurable-id", "type": "string", "required": true }, { "name": "integration_id", "flag": "integration-id", "type": "string", "required": true }, { "name": "cadence", "flag": "cadence", "type": "enum", "required": true, "enumValues": ["daily", "weekly", "monthly", "quarterly", "annual"] }, { "name": "host_allowlist", "flag": "host-allowlist", "type": "array", "required": true, "itemType": "string" }], "hasComplexInput": true, "help": "Run a candidate recipe live but read-only against an allowlisted HTTPS source; returns the extracted value + a short-lived preview_token. Never mutates; the credential is resolved from the connection at execution." },
46102
+ { "id": "signal.report", "namespace": "signal", "action": "report", "title": "Report a Signal reading", "description": "A per-seat Signal agent proposes one draft reading for one of its OWN seat's agent-sourced measurables (a judgment/transform pull \u2014 reading a number off a document, reconciling messy data, estimating progress). The reading lands unconfirmed; a human confirms it with signal.confirm_reading. Refuses any measurable not owned by the acting seat or whose source is not 'agent'.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "measurable_id", "flag": "measurable-id", "type": "string", "required": true }, { "name": "value", "flag": "value", "type": "number", "required": true }, { "name": "period_start", "flag": "period-start", "type": "string", "required": false }, { "name": "note", "flag": "note", "type": "string", "required": false }, { "name": "confidence", "flag": "confidence", "type": "enum", "required": false, "enumValues": ["low", "medium", "high"] }], "hasComplexInput": false, "help": "A per-seat Signal agent proposes one draft reading for its own seat's agent-sourced measurable (a judgment/transform pull). The reading lands unconfirmed; a human confirms it with signal.confirm_reading. Refuses non-agent-sourced or other-seat measurables.", "example": { "measurable_id": "01900001-0001-7001-8001-000000000001", "value": 42, "note": "Read off the Q3 close PDF, page 2 \u2014 42 reconciled invoices this week.", "confidence": "high" } },
46082
46103
  { "id": "signup.provision_tenant", "namespace": "signup", "action": "provision_tenant", "title": "Create company", "description": "Provision a new company (tenant) for the authenticated CLI user with no web step.", "requiredScope": "user", "confirmation": "none", "exposeOverMcp": false, "fields": [{ "name": "company_name", "flag": "company-name", "type": "string", "required": true }], "hasComplexInput": false, "help": "Create the company headlessly when the CLI session has no tenant yet; it becomes the user's active tenant so the rest of setup runs with no web step." },
46083
46104
  { "id": "skill.assign_to_seat", "namespace": "skill", "action": "assign_to_seat", "title": "Assign skill to seat", "description": "Propose or human-approve a published immutable skill version for a Seat after checking required and optional tool dependencies.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "slug", "flag": "slug", "type": "string", "required": false }, { "name": "skill_version_id", "flag": "skill-version-id", "type": "string", "required": false }, { "name": "status", "flag": "status", "type": "enum", "required": false, "enumValues": ["proposed", "approved"] }, { "name": "rationale", "flag": "rationale", "type": "string", "required": true }, { "name": "allow_blocked_proposal", "flag": "allow-blocked-proposal", "type": "boolean", "required": false }], "hasComplexInput": false, "help": "Propose or human-approve a published Skill for a Seat after dependency checks. Missing required tools block approval; optional tools are warnings only." },
46084
46105
  { "id": "skill.assigned.list", "namespace": "skill", "action": "assigned.list", "title": "List assigned skills", "description": "List approved skill assignments for a Seat, including immutable version, dependency status, rationale, and approval time. Seat-scoped callers can only read their own assignments.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": false }], "hasComplexInput": false, "help": "List approved Skills assigned to a Seat before loading instructions into a run. A seat-scoped token can only read its own assigned Skills." },