@rosthq/cli 0.5.20 → 0.5.22
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 +64 -12
- package/dist/index.js.map +2 -2
- package/dist/operations.d.ts.map +1 -1
- package/package.json +1 -1
- package/prompts/how-tos/human-confirmations.md +3 -1
package/dist/index.js
CHANGED
|
@@ -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.
|
|
42387
|
+
version: "2026-06-21.12",
|
|
42388
42388
|
public: true,
|
|
42389
42389
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
42390
42390
|
stages: ["company_setup", "staffing"],
|
|
@@ -42443,7 +42443,8 @@ 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"
|
|
42447
42448
|
],
|
|
42448
42449
|
legal: {
|
|
42449
42450
|
publicRisk: "low",
|
|
@@ -42820,7 +42821,7 @@ The signed-in app exposes the same Skill command surface under **Skills** in the
|
|
|
42820
42821
|
| \`{{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
42822
|
| \`{{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
42823
|
| \`{{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\` | \`settings.get\`, \`settings.update\` | Read tenant settings
|
|
42824
|
+
| \`{{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
42825
|
| \`{{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
42826
|
| \`{{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
42827
|
| \`{{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\` |
|
|
@@ -42982,8 +42983,11 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
42982
42983
|
| \`rost_remove_member\` | \`member.remove\` | Remove a tenant member. | Tenant | Call with \`member_id\`; blocked if it would orphan an agent steward chain. |
|
|
42983
42984
|
| \`rost_get_tenant_settings\` | \`settings.get\` | Read tenant operating settings and integration status. | Tenant | Call with \`{}\`; metadata only. |
|
|
42984
42985
|
| \`rost_update_tenant_settings\` | \`settings.update\` | Update tenant AI budget caps. | Tenant | Call with \`soft_cap_usd\` or \`hard_cap_usd\`; expect human confirmation. |
|
|
42986
|
+
| \`rost_rename_company\` | \`tenant.rename\` | Rename the current company. | Tenant-admin | Call with \`company_name\`; expect human confirmation. |
|
|
42985
42987
|
| \`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
42988
|
| \`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"}\`. |
|
|
42989
|
+
| \`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. |
|
|
42990
|
+
| \`rost_update_product_learning_policy\` | \`settings.product_learning.update\` | Set product-learning mode. | Tenant-admin | Human-gated; call with \`{"mode":"enabled"}\`, \`{"mode":"disabled"}\`, or \`{"mode":"enterprise_contract"}\`. |
|
|
42987
42991
|
| \`rost_list_signals\` | \`signal.list\` | List measurables with their latest reading and on/off-track state. | Seat or tenant-admin | Call with \`{}\` to find measurable ids. |
|
|
42988
42992
|
| \`rost_get_signal\` | \`signal.get\` | Read a measurable with its full reading history. | Seat or tenant-admin | Call with \`{"measurable_id":"<id>"}\`. |
|
|
42989
42993
|
| \`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>"}\`. |
|
|
@@ -43774,7 +43778,7 @@ Keep agent scope tight at first. Approve more autonomy only after evidence. Use
|
|
|
43774
43778
|
order: 71,
|
|
43775
43779
|
title: "Confirmations and human gates guide",
|
|
43776
43780
|
summary: "How {{brand}} routes authority-changing work through human confirmation, and why agents never approve their own requests.",
|
|
43777
|
-
version: "2026-06-20.
|
|
43781
|
+
version: "2026-06-20.2",
|
|
43778
43782
|
public: true,
|
|
43779
43783
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
43780
43784
|
stages: ["graph_design", "charter_design", "staffing", "operating_rhythm"],
|
|
@@ -43799,7 +43803,7 @@ Keep agent scope tight at first. Approve more autonomy only after evidence. Use
|
|
|
43799
43803
|
## Confirmation levels
|
|
43800
43804
|
|
|
43801
43805
|
- \`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".
|
|
43802
|
-
- \`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\`).
|
|
43806
|
+
- \`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\`).
|
|
43803
43807
|
- \`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).
|
|
43804
43808
|
- \`dangerous\`: the highest-risk human gate. Only two commands carry it \u2014 \`settings.update\` and \`agent.decommission\`.
|
|
43805
43809
|
|
|
@@ -43829,11 +43833,11 @@ Stop before: approving a Charter, signing a manifest, connecting a tool or crede
|
|
|
43829
43833
|
order: 72,
|
|
43830
43834
|
title: "Settings guide",
|
|
43831
43835
|
summary: "How to use Settings as the control plane for company access, channels, providers, tokens, and operating defaults.",
|
|
43832
|
-
version: "2026-06-21.
|
|
43836
|
+
version: "2026-06-21.4",
|
|
43833
43837
|
public: true,
|
|
43834
43838
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
43835
43839
|
stages: ["company_setup", "staffing"],
|
|
43836
|
-
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"],
|
|
43840
|
+
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"],
|
|
43837
43841
|
legal: { publicRisk: "low", notes: ["{{brand}}-native settings guidance."] },
|
|
43838
43842
|
sources: [
|
|
43839
43843
|
{
|
|
@@ -43852,7 +43856,7 @@ Start with members and invites, then provider and channel connections, then MCP
|
|
|
43852
43856
|
|
|
43853
43857
|
## What belongs in Settings
|
|
43854
43858
|
|
|
43855
|
-
- Company profile and workspace defaults.
|
|
43859
|
+
- 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.
|
|
43856
43860
|
- Members, invites, and tenant roles.
|
|
43857
43861
|
- Agent access tokens for local agents.
|
|
43858
43862
|
- Provider and integration configuration.
|
|
@@ -43860,6 +43864,7 @@ Start with members and invites, then provider and channel connections, then MCP
|
|
|
43860
43864
|
- Connected machines (the paired Runners that run scheduled local work orders).
|
|
43861
43865
|
- Stored credentials (vault references only) and tool access approvals.
|
|
43862
43866
|
- Operating defaults, including Sync Brief scope.
|
|
43867
|
+
- Product-learning participation for bounded product analytics.
|
|
43863
43868
|
|
|
43864
43869
|
Settings lifecycle timestamps are display metadata for tokens, connected machines, integrations, and stored credentials. They may be emitted by the database as either timestamp values or strings, but Settings renders them as safe labels rather than treating timestamp formatting failures as page-level failures.
|
|
43865
43870
|
|
|
@@ -43875,6 +43880,18 @@ Reconnects keep historical rows for audit, but provider status in Settings, CLI,
|
|
|
43875
43880
|
|
|
43876
43881
|
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.
|
|
43877
43882
|
|
|
43883
|
+
## Product learning
|
|
43884
|
+
|
|
43885
|
+
Product-learning participation controls whether {{brand}} may record product/page/recommendation analytics for this tenant. It does not disable security logs, audit logs, error logs, events, tool-call guard records, or other operational records required to run and secure the service.
|
|
43886
|
+
|
|
43887
|
+
- \`enabled\` allows bounded product analytics for feature quality, defaults, templates, recommendations, safety checks, and reliability.
|
|
43888
|
+
- \`disabled\` blocks generic product/page/recommendation analytics for the tenant.
|
|
43889
|
+
- \`enterprise_contract\` blocks generic product-learning writes until contract-specific handling exists.
|
|
43890
|
+
|
|
43891
|
+
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.
|
|
43892
|
+
|
|
43893
|
+
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.
|
|
43894
|
+
|
|
43878
43895
|
## Inference budget
|
|
43879
43896
|
|
|
43880
43897
|
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.
|
|
@@ -46488,12 +46505,33 @@ function integrationUsage(bin) {
|
|
|
46488
46505
|
${bin} integration test --provider <name>`;
|
|
46489
46506
|
}
|
|
46490
46507
|
var settingsWrapper = (context, args) => dispatch(context, "settings", args, {
|
|
46508
|
+
"product-learning": (ctx, rest) => dispatch(ctx, "settings product-learning", rest, {
|
|
46509
|
+
get: (innerCtx, innerRest) => {
|
|
46510
|
+
const parsed = parseFlags(innerRest);
|
|
46511
|
+
return execute(innerCtx, parsed, "settings.product_learning.get", {}, (output) => {
|
|
46512
|
+
const policy = asRecord(asRecord(output).product_learning);
|
|
46513
|
+
return `product_learning ${field(policy, "mode")} product_analytics_enabled=${field(policy, "product_analytics_enabled")} security_audit_logs_enabled=${field(policy, "security_audit_logs_enabled")}`;
|
|
46514
|
+
});
|
|
46515
|
+
},
|
|
46516
|
+
update: (innerCtx, innerRest) => {
|
|
46517
|
+
const parsed = parseFlags(innerRest);
|
|
46518
|
+
const mode = optionalValue(parsed, "mode");
|
|
46519
|
+
if (mode !== "enabled" && mode !== "disabled" && mode !== "enterprise_contract") {
|
|
46520
|
+
throw new UsageError("Provide --mode enabled|disabled|enterprise_contract.");
|
|
46521
|
+
}
|
|
46522
|
+
return execute(innerCtx, parsed, "settings.product_learning.update", { mode }, (output) => {
|
|
46523
|
+
const policy = asRecord(asRecord(output).product_learning);
|
|
46524
|
+
return `Updated product-learning policy to ${field(policy, "mode")} (product_analytics_enabled=${field(policy, "product_analytics_enabled")}).`;
|
|
46525
|
+
});
|
|
46526
|
+
}
|
|
46527
|
+
}, settingsUsage(ctx.binName)),
|
|
46491
46528
|
get: (ctx, rest) => {
|
|
46492
46529
|
const parsed = parseFlags(rest);
|
|
46493
46530
|
return execute(ctx, parsed, "settings.get", {}, (output) => {
|
|
46494
46531
|
const record2 = asRecord(output);
|
|
46495
46532
|
const spend = asRecord(record2.spend);
|
|
46496
|
-
|
|
46533
|
+
const policy = asRecord(record2.product_learning);
|
|
46534
|
+
return `tenant ${field(record2, "tenant_id")} plan=${field(record2, "plan")} status=${field(record2, "status")} spend=$${field(spend, "spend_usd")} has_anthropic_key=${field(record2, "has_anthropic_key")} product_learning=${field(policy, "mode")}`;
|
|
46497
46535
|
});
|
|
46498
46536
|
},
|
|
46499
46537
|
update: (ctx, rest) => {
|
|
@@ -46509,12 +46547,26 @@ var settingsWrapper = (context, args) => dispatch(context, "settings", args, {
|
|
|
46509
46547
|
const spend = asRecord(asRecord(output).spend);
|
|
46510
46548
|
return `Updated budget caps (soft=$${field(spend, "soft_cap_usd")}, hard=$${field(spend, "hard_cap_usd")}).`;
|
|
46511
46549
|
});
|
|
46550
|
+
},
|
|
46551
|
+
rename: (ctx, rest) => {
|
|
46552
|
+
const parsed = parseFlags(rest);
|
|
46553
|
+
const companyName = optionalValue(parsed, "company");
|
|
46554
|
+
if (!companyName) {
|
|
46555
|
+
throw new UsageError("Provide --company <name>.");
|
|
46556
|
+
}
|
|
46557
|
+
return execute(ctx, parsed, "tenant.rename", { company_name: companyName }, (output) => {
|
|
46558
|
+
const record2 = asRecord(output);
|
|
46559
|
+
return `Renamed company from ${field(record2, "previous_name")} to ${field(record2, "name")}.`;
|
|
46560
|
+
});
|
|
46512
46561
|
}
|
|
46513
46562
|
}, settingsUsage(context.binName));
|
|
46514
46563
|
function settingsUsage(bin) {
|
|
46515
|
-
return `Usage: ${bin} settings get|update [--json]
|
|
46564
|
+
return `Usage: ${bin} settings get|update|product-learning|rename [--json]
|
|
46516
46565
|
${bin} settings get
|
|
46517
|
-
${bin} settings update [--soft-cap-usd <n>] [--hard-cap-usd <n>]
|
|
46566
|
+
${bin} settings update [--soft-cap-usd <n>] [--hard-cap-usd <n>]
|
|
46567
|
+
${bin} settings product-learning get
|
|
46568
|
+
${bin} settings product-learning update --mode enabled|disabled|enterprise_contract
|
|
46569
|
+
${bin} settings rename --company <name>`;
|
|
46518
46570
|
}
|
|
46519
46571
|
var memberWrapper = (context, args) => dispatch(context, "member", args, {
|
|
46520
46572
|
invite: (ctx, rest) => {
|
|
@@ -47164,7 +47216,7 @@ function operationUsageLines(bin) {
|
|
|
47164
47216
|
`${bin} sync brief|compile|complete`,
|
|
47165
47217
|
`${bin} runner list|status|work-orders|revoke`,
|
|
47166
47218
|
`${bin} notification settings|test|errors`,
|
|
47167
|
-
`${bin} settings get|update`,
|
|
47219
|
+
`${bin} settings get|update|product-learning|rename`,
|
|
47168
47220
|
`${bin} member invite|update|remove`,
|
|
47169
47221
|
`${bin} agent templates|create|setup|tools|dry-run|go-live|status|run-now|fleet-digest|get-run|show`,
|
|
47170
47222
|
`${bin} tools list`,
|