@rosthq/cli 0.5.23 → 0.5.25
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 +194 -10
- package/dist/index.js.map +2 -2
- package/dist/operations.d.ts +1 -1
- package/dist/operations.d.ts.map +1 -1
- package/package.json +1 -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.15",
|
|
42388
42388
|
public: true,
|
|
42389
42389
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
42390
42390
|
stages: ["company_setup", "staffing"],
|
|
@@ -42421,6 +42421,7 @@ External connectors are being rolled out provider by provider, conservatively (r
|
|
|
42421
42421
|
"agent.status",
|
|
42422
42422
|
"agent.list_fleet",
|
|
42423
42423
|
"agent.fleet_digest",
|
|
42424
|
+
"system.health",
|
|
42424
42425
|
"agent.get_run",
|
|
42425
42426
|
"agent.list_runs",
|
|
42426
42427
|
"agent.list_tool_calls",
|
|
@@ -42448,7 +42449,12 @@ External connectors are being rolled out provider by provider, conservatively (r
|
|
|
42448
42449
|
"deliverable.list",
|
|
42449
42450
|
"deliverable.get",
|
|
42450
42451
|
"deliverable.create",
|
|
42451
|
-
"deliverable.attach"
|
|
42452
|
+
"deliverable.attach",
|
|
42453
|
+
"error_log.list",
|
|
42454
|
+
"error_log.resolve",
|
|
42455
|
+
"error_log.supersede",
|
|
42456
|
+
"runner.diagnose",
|
|
42457
|
+
"runner.repair"
|
|
42452
42458
|
],
|
|
42453
42459
|
legal: {
|
|
42454
42460
|
publicRisk: "low",
|
|
@@ -42821,10 +42827,12 @@ The signed-in app exposes the same Skill command surface under **Skills** in the
|
|
|
42821
42827
|
| \`{{cli}} goal list|create|update|status|reparent|drop\` | \`goal.list\`, \`goal.create\`, \`goal.update\`, \`goal.set_status\`, \`goal.reparent\`, \`goal.drop\` | Manage Cascade goals. Scope varies by verb: \`status\` is seat-scoped, \`list\`/\`create\` need a tenant token, and \`update\`/\`reparent\`/\`drop\` require tenant-admin. | Seat to tenant-admin | \`{{cli}} goal list --json\` |
|
|
42822
42828
|
| \`{{cli}} friction list|file|resolve|link\` | \`friction.list\`, \`friction.file_issue\`, \`friction.resolve\`, \`friction.link_task\` | File and resolve Friction issues. | Seat | \`{{cli}} friction list --status open --json\` |
|
|
42823
42829
|
| \`{{cli}} escalation list|get|resolve|reject\` | \`escalation.list\`, \`escalation.get\`, \`escalation.resolve\`, \`escalation.reject\` | Work the steward escalation queue. | Steward | \`{{cli}} escalation list --json\` |
|
|
42830
|
+
| \`{{cli}} error list|resolve|supersede\` | \`error_log.list\`, \`error_log.resolve\`, \`error_log.supersede\` | List active, acknowledged, resolved, or superseded product error logs and let a human acknowledge, resolve, or supersede stale errors with evidence links. | Tenant | \`{{cli}} error list --resolved active --json\`; \`{{cli}} error resolve --error-log-id <id> --reason "Fixed in PR #123"\` |
|
|
42824
42831
|
| \`{{cli}} sync brief|compile|complete\` | \`sync.brief.get\`, \`sync.brief.compile\`, \`sync.run.complete\` | Compile, read, and complete a weekly Sync. | Tenant | \`{{cli}} sync brief --json\` |
|
|
42825
|
-
| \`{{cli}} runner list|status|work-orders|revoke\` | \`runner.list\`, \`runner.status\`, \`work_order.list\`, \`runner.revoke\` | Inspect runners and work orders
|
|
42832
|
+
| \`{{cli}} runner list|status|diagnose|repair|work-orders|revoke\` | \`runner.list\`, \`runner.status\`, \`runner.diagnose\`, \`runner.repair\`, \`work_order.list\`, \`runner.revoke\` | Inspect runners and work orders, diagnose offline runners, get repair guidance, and revoke a runner. | Tenant | \`{{cli}} runner diagnose --runner-id <id> --json\` |
|
|
42826
42833
|
| \`{{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\` |
|
|
42827
42834
|
| \`{{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\` |
|
|
42835
|
+
| \`{{cli}} system health\` | \`system.health\` | Read the scoped system-health snapshot across agent runs, unresolved errors, Signals, Cascade setup, work loop, integrations, runners, notifications, and Sync Brief readiness. | Tenant, member, or seat token | \`{{cli}} system health --json\`; \`{{cli}} system health --seat <id> --json\` |
|
|
42828
42836
|
| \`{{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"\` |
|
|
42829
42837
|
| \`{{cli}} member invite|update|remove\` | \`member.invite\`, \`member.update\`, \`member.remove\` | Manage tenant members. | Tenant | \`{{cli}} member invite --email ops@example.com --role member\` |
|
|
42830
42838
|
| \`{{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\` |
|
|
@@ -42951,6 +42959,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
42951
42959
|
| \`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>"}\`. |
|
|
42952
42960
|
| \`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 \`{}\`; counts use the same seat-run association as \`agent.list_runs\`, with sandbox dry runs excluded from real turns. |
|
|
42953
42961
|
| \`rost_get_dogfood_fleet_health_digest\` | \`agent.fleet_digest\` | Capture the daily dogfood fleet-health digest: live/idle state, 24h/7d turns, spend, recent failed runs, unresolved errors, failed notifications, and next actions. | Tenant | Call with \`{}\`; optional \`window_hours\` bounds recent failed-run evidence, while \`error_limit\` caps linked evidence per seat. |
|
|
42962
|
+
| \`rost_system_health\` | \`system.health\` | Read the scoped system-health snapshot across agent runs, unresolved errors, Signals, Cascade setup, work loop, integrations, runners, notifications, and Sync Brief readiness. | Tenant, member, or seat token | Call with \`{}\`; optional \`seat_id\` narrows inside the caller's server-derived scope. |
|
|
42954
42963
|
| \`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>"}\`. |
|
|
42955
42964
|
| \`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. |
|
|
42956
42965
|
| \`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>"}\`. |
|
|
@@ -42974,6 +42983,8 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
42974
42983
|
| \`rost_list_mcp_tokens\` | \`mcp_token.list\` | List MCP token metadata (never token material). | Tenant | Call with \`{}\` or \`{"include_revoked":true}\`. |
|
|
42975
42984
|
| \`rost_list_runners\` | \`runner.list\` | List local runners and their online/offline/revoked state. | Tenant | Call with \`{}\`. |
|
|
42976
42985
|
| \`rost_runner_status\` | \`runner.status\` | Read a single runner's capability and state. | Tenant | Call with \`runner_id\`. |
|
|
42986
|
+
| \`rost_diagnose_runner\` | \`runner.diagnose\` | Return runner health, capabilities, and repair guidance without secrets. | Tenant | Call with \`runner_id\`; actionable repair guidance exposes restart, re-pair, or missing CLI steps. |
|
|
42987
|
+
| \`rost_runner_repair_guidance\` | \`runner.repair\` | Return focused repair steps for a runner: restart, re-pair, revoke stale, or install missing CLI runtime. | Tenant | Call with \`runner_id\` and optional \`issue\` (restart, re_pair, revoke_stale, missing_cli_runtime). |
|
|
42977
42988
|
| \`rost_start_runner_pairing\` | \`runner.pairing.start\` | Open a runner pairing session and return the human pairing code. | Tenant-admin | Call with \`name\` and \`platform\`; owner/admin only. |
|
|
42978
42989
|
| \`rost_revoke_runner\` | \`runner.revoke\` | Revoke a runner so it can no longer authenticate. | Tenant | Call with \`runner_id\`; expect human confirmation. |
|
|
42979
42990
|
| \`rost_list_work_orders\` | \`work_order.list\` | List runner/cloud work orders for the tenant. | Tenant | Call with optional \`status\`, \`agent_id\`, or \`runner_id\`. |
|
|
@@ -42983,6 +42994,9 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
42983
42994
|
| \`rost_update_notification_settings\` | \`notification.settings.update\` | Update tenant notification preferences. | Tenant | Call with the fields to change. |
|
|
42984
42995
|
| \`rost_send_test_notification\` | \`notification.test\` | Emit an in-app test notification to the acting human. | Tenant | Call with \`{}\`. |
|
|
42985
42996
|
| \`rost_list_notification_errors\` | \`notification.list_errors\` | List recent failed notification deliveries with linked \`error_log_id\`, source, seat id, and run id when available. | Tenant | Call with optional \`limit\`; \`source=run\` rows can be followed with \`agent.get_run\`. |
|
|
42997
|
+
| \`rost_list_error_logs\` | \`error_log.list\` | List product error logs by seat, source, severity, and active/resolved state. | Tenant | Call with \`{"resolved":"active"}\` before acknowledging stale failures. |
|
|
42998
|
+
| \`rost_resolve_error_log\` | \`error_log.resolve\` | Acknowledge or resolve an error log with a required human reason and optional task, issue, or PR link. | Tenant | Call with \`error_log_id\`, \`reason\`, and \`disposition\` \`acknowledged\` or \`resolved\`. |
|
|
42999
|
+
| \`rost_supersede_error_log\` | \`error_log.supersede\` | Mark an older error log as superseded by a newer in-tenant error log. | Tenant | Call with \`error_log_id\`, \`new_error_log_id\`, and \`reason\`. |
|
|
42986
43000
|
| \`rost_list_integrations\` | \`integration.list\` | List connected integration metadata and latest health state. | Tenant | Call with \`{}\` or \`{"provider":"google"}\`; no secrets or vault refs are returned. |
|
|
42987
43001
|
| \`rost_check_integration_readiness\` | \`integration.readiness\` | Return the connector setup checklist: OAuth env/callback, tenant connection, scopes, latest test state, external verification/CASA, handler availability, and DER-coded next actions. | Tenant | Call with \`{"provider":"google"}\`; metadata only, no secrets or vault refs. |
|
|
42988
43002
|
| \`rost_get_integration_status\` | \`integration.status\` | Read one integration's metadata by provider or integration id. | Tenant | Call with \`{"provider":"google"}\` or \`{"integration_id":"<id>"}\`. |
|
|
@@ -43990,11 +44004,11 @@ Every notification should include the seat, cause, evidence, and requested decis
|
|
|
43990
44004
|
order: 75,
|
|
43991
44005
|
title: "Local runner guide",
|
|
43992
44006
|
summary: "How local agent sessions and runner surfaces should operate through {{brand}} without bypassing Charters or audit.",
|
|
43993
|
-
version: "2026-06-
|
|
44007
|
+
version: "2026-06-21.1",
|
|
43994
44008
|
public: true,
|
|
43995
44009
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
43996
44010
|
stages: ["staffing", "operating_rhythm"],
|
|
43997
|
-
relatedCommandIds: ["mcp_token.create", "mcp_token.revoke", "runner.list", "runner.status", "runner.pairing.start", "runner.revoke", "work_order.list", "work_order.enqueue", "work_order.cancel", "confirmation.approve"],
|
|
44011
|
+
relatedCommandIds: ["mcp_token.create", "mcp_token.revoke", "runner.list", "runner.status", "runner.diagnose", "runner.repair", "runner.pairing.start", "runner.revoke", "work_order.list", "work_order.enqueue", "work_order.cancel", "confirmation.approve"],
|
|
43998
44012
|
legal: { publicRisk: "low", notes: ["{{brand}}-native local-runner guidance."] },
|
|
43999
44013
|
sources: [
|
|
44000
44014
|
{
|
|
@@ -44020,6 +44034,8 @@ The local runner is for human-controlled local agent work. It should retrieve {{
|
|
|
44020
44034
|
|
|
44021
44035
|
- Pair a new runner: \`runner.pairing.start\` / \`rost_start_runner_pairing\` with \`name\` and \`platform\` returns a human pairing code. This is owner/admin-only because it mints a short-lived runner pairing session that leads to machine credentials.
|
|
44022
44036
|
- 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.
|
|
44037
|
+
- Diagnose (DER-949): \`{{cli}} runner diagnose --runner-id <id>\` / \`runner.diagnose\` / \`rost_diagnose_runner\` returns health, capabilities, and repair guidance without exposing secrets. Use when a runner is offline or stale to get actionable next steps.
|
|
44038
|
+
- Repair steps (DER-949): \`{{cli}} runner repair --runner-id <id> [--issue restart|re_pair|revoke_stale|missing_cli_runtime]\` / \`runner.repair\` / \`rost_repair_runner\` returns focused repair instructions. The optional \`issue\` flag narrows to a specific kind of repair (restart the app, re-pair, revoke a stale runner, or install a missing CLI runtime).
|
|
44023
44039
|
- 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\`.
|
|
44024
44040
|
- Revoke: \`{{cli}} runner revoke\` / \`runner.revoke\` / \`rost_revoke_runner\` so a runner can no longer authenticate.
|
|
44025
44041
|
|
|
@@ -46365,6 +46381,53 @@ var runnerWrapper = (context, args) => dispatch(context, "runner", args, {
|
|
|
46365
46381
|
return `${field(record2, "id")} ${field(record2, "health")} ${field(record2, "name")} (last heartbeat ${field(record2, "last_heartbeat_at")}).`;
|
|
46366
46382
|
});
|
|
46367
46383
|
},
|
|
46384
|
+
diagnose: (ctx, rest) => {
|
|
46385
|
+
const parsed = parseFlags(rest);
|
|
46386
|
+
const runnerId = requireValue2(parsed, "runner-id");
|
|
46387
|
+
return execute(ctx, parsed, "runner.diagnose", { runner_id: runnerId }, (output) => {
|
|
46388
|
+
const record2 = asRecord(output);
|
|
46389
|
+
const guidance = asArray(record2.repair_guidance);
|
|
46390
|
+
const lines = [
|
|
46391
|
+
`Runner ${field(record2, "name")} (${field(record2, "id")})`,
|
|
46392
|
+
`health: ${field(record2, "health")} platform: ${field(record2, "platform")}`,
|
|
46393
|
+
`paired_at: ${field(record2, "paired_at")} last_heartbeat: ${field(record2, "last_heartbeat_at")}`,
|
|
46394
|
+
`capabilities: claude=${String(asRecord(record2.capabilities).claude)} codex=${String(asRecord(record2.capabilities).codex)}`,
|
|
46395
|
+
`revocation_state: ${field(record2, "revocation_state")}`
|
|
46396
|
+
];
|
|
46397
|
+
if (guidance.length > 0) {
|
|
46398
|
+
lines.push("repair_guidance:");
|
|
46399
|
+
guidance.forEach((step) => {
|
|
46400
|
+
const s = asRecord(step);
|
|
46401
|
+
lines.push(` ${field(s, "action")}: ${field(s, "detail")}`);
|
|
46402
|
+
});
|
|
46403
|
+
}
|
|
46404
|
+
return lines.join("\n");
|
|
46405
|
+
});
|
|
46406
|
+
},
|
|
46407
|
+
repair: (ctx, rest) => {
|
|
46408
|
+
const parsed = parseFlags(rest);
|
|
46409
|
+
const runnerId = requireValue2(parsed, "runner-id");
|
|
46410
|
+
const issue2 = optionalValue(parsed, "issue");
|
|
46411
|
+
const body = issue2 ? { runner_id: runnerId, issue: issue2 } : { runner_id: runnerId };
|
|
46412
|
+
return execute(ctx, parsed, "runner.repair", body, (output) => {
|
|
46413
|
+
const record2 = asRecord(output);
|
|
46414
|
+
const steps = asArray(record2.repair_steps);
|
|
46415
|
+
const lines = [
|
|
46416
|
+
`Runner ${field(record2, "runner_name")} (${field(record2, "runner_id")}) health: ${field(record2, "runner_health")}`,
|
|
46417
|
+
`requires_human: ${field(record2, "requires_human")}`
|
|
46418
|
+
];
|
|
46419
|
+
if (steps.length > 0) {
|
|
46420
|
+
lines.push("repair_steps:");
|
|
46421
|
+
steps.forEach((step) => {
|
|
46422
|
+
const s = asRecord(step);
|
|
46423
|
+
lines.push(` ${field(s, "action")}`);
|
|
46424
|
+
lines.push(` command: ${field(s, "command")}`);
|
|
46425
|
+
lines.push(` detail: ${field(s, "detail")}`);
|
|
46426
|
+
});
|
|
46427
|
+
}
|
|
46428
|
+
return lines.join("\n");
|
|
46429
|
+
});
|
|
46430
|
+
},
|
|
46368
46431
|
"work-orders": (ctx, rest) => {
|
|
46369
46432
|
const parsed = parseFlags(rest);
|
|
46370
46433
|
const body = withOptional({}, {
|
|
@@ -46394,9 +46457,11 @@ var runnerWrapper = (context, args) => dispatch(context, "runner", args, {
|
|
|
46394
46457
|
}
|
|
46395
46458
|
}, runnerUsage(context.binName));
|
|
46396
46459
|
function runnerUsage(bin) {
|
|
46397
|
-
return `Usage: ${bin} runner list|status|work-orders|revoke [--json]
|
|
46460
|
+
return `Usage: ${bin} runner list|status|diagnose|repair|work-orders|revoke [--json]
|
|
46398
46461
|
${bin} runner list [--include-revoked]
|
|
46399
46462
|
${bin} runner status --runner-id <id>
|
|
46463
|
+
${bin} runner diagnose --runner-id <id>
|
|
46464
|
+
${bin} runner repair --runner-id <id> [--issue restart|re_pair|revoke_stale|missing_cli_runtime]
|
|
46400
46465
|
${bin} runner work-orders [--status <s>] [--agent-id <id>] [--runner-id <id>] [--limit <n>]
|
|
46401
46466
|
${bin} runner revoke --runner-id <id>`;
|
|
46402
46467
|
}
|
|
@@ -47119,6 +47184,73 @@ function modelUsage(bin) {
|
|
|
47119
47184
|
return `Usage: ${bin} model list [--json]
|
|
47120
47185
|
${bin} model list \u2014 guided model tiers with recommendations, token prices, cost bands, and model ids for --model.`;
|
|
47121
47186
|
}
|
|
47187
|
+
var errorWrapper = (context, args) => dispatch(context, "error", args, {
|
|
47188
|
+
list: (ctx, rest) => {
|
|
47189
|
+
const parsed = parseFlags(rest);
|
|
47190
|
+
const body = withOptional({}, {
|
|
47191
|
+
seat_id: optionalValue(parsed, "seat-id"),
|
|
47192
|
+
source: optionalValue(parsed, "source"),
|
|
47193
|
+
severity: optionalValue(parsed, "severity"),
|
|
47194
|
+
resolved: optionalValue(parsed, "resolved"),
|
|
47195
|
+
limit: optionalNumber(parsed, "limit")
|
|
47196
|
+
});
|
|
47197
|
+
return execute(ctx, parsed, "error_log.list", body, (output) => {
|
|
47198
|
+
const record2 = asRecord(output);
|
|
47199
|
+
const errors = asArray(record2.errors);
|
|
47200
|
+
if (errors.length === 0) {
|
|
47201
|
+
return "No error logs matching the filter.";
|
|
47202
|
+
}
|
|
47203
|
+
return errors.map((entry) => {
|
|
47204
|
+
const r = asRecord(entry);
|
|
47205
|
+
const disposition = field(r, "disposition");
|
|
47206
|
+
const marker = disposition === "active" ? "*" : " ";
|
|
47207
|
+
const severityLabel = field(r, "severity").charAt(0).toUpperCase();
|
|
47208
|
+
return `${marker} ${field(r, "error_log_id")} [${severityLabel}] ${field(r, "source")} ${disposition} ${field(r, "code")} ${field(r, "message")} ${field(r, "created_at")}`;
|
|
47209
|
+
}).join("\n") + (field(record2, "total") !== "" ? `
|
|
47210
|
+
Total: ${field(record2, "total")}` : "");
|
|
47211
|
+
});
|
|
47212
|
+
},
|
|
47213
|
+
resolve: (ctx, rest) => {
|
|
47214
|
+
const parsed = parseFlags(rest);
|
|
47215
|
+
const errorLogId = requireValue2(parsed, "error-log-id");
|
|
47216
|
+
const reason = requireValue2(parsed, "reason");
|
|
47217
|
+
const body = withOptional({
|
|
47218
|
+
error_log_id: errorLogId,
|
|
47219
|
+
reason
|
|
47220
|
+
}, {
|
|
47221
|
+
disposition: optionalValue(parsed, "disposition"),
|
|
47222
|
+
linked_task_id: optionalValue(parsed, "linked-task-id"),
|
|
47223
|
+
linked_issue_id: optionalValue(parsed, "linked-issue-id"),
|
|
47224
|
+
linked_pr_ref: optionalValue(parsed, "linked-pr-ref")
|
|
47225
|
+
});
|
|
47226
|
+
return execute(ctx, parsed, "error_log.resolve", body, (output) => {
|
|
47227
|
+
const record2 = asRecord(output);
|
|
47228
|
+
return `Resolved error ${field(record2, "error_log_id")} as ${field(record2, "disposition")} at ${field(record2, "resolved_at")}.`;
|
|
47229
|
+
});
|
|
47230
|
+
},
|
|
47231
|
+
supersede: (ctx, rest) => {
|
|
47232
|
+
const parsed = parseFlags(rest);
|
|
47233
|
+
const body = withOptional({
|
|
47234
|
+
error_log_id: requireValue2(parsed, "error-log-id"),
|
|
47235
|
+
new_error_log_id: requireValue2(parsed, "new-error-log-id"),
|
|
47236
|
+
reason: requireValue2(parsed, "reason")
|
|
47237
|
+
}, {
|
|
47238
|
+
linked_task_id: optionalValue(parsed, "linked-task-id"),
|
|
47239
|
+
linked_issue_id: optionalValue(parsed, "linked-issue-id"),
|
|
47240
|
+
linked_pr_ref: optionalValue(parsed, "linked-pr-ref")
|
|
47241
|
+
});
|
|
47242
|
+
return execute(ctx, parsed, "error_log.supersede", body, (output) => {
|
|
47243
|
+
const record2 = asRecord(output);
|
|
47244
|
+
return `Superseded error ${field(record2, "error_log_id")} \u2192 ${field(record2, "superseded_by_id")} at ${field(record2, "resolved_at")}.`;
|
|
47245
|
+
});
|
|
47246
|
+
}
|
|
47247
|
+
}, errorUsage(context.binName));
|
|
47248
|
+
function errorUsage(bin) {
|
|
47249
|
+
return `Usage: ${bin} error list|resolve|supersede [--json]
|
|
47250
|
+
${bin} error list [--seat-id <id>] [--source run|llm|tool|mcp|runner|integration|job|web] [--severity warning|error|critical] [--resolved active|acknowledged|resolved|all] [--limit <n>]
|
|
47251
|
+
${bin} error resolve --error-log-id <id> --reason <text> [--disposition acknowledged|resolved] [--linked-task-id <id>] [--linked-issue-id <id>] [--linked-pr-ref <url>]
|
|
47252
|
+
${bin} error supersede --error-log-id <id> --new-error-log-id <id> --reason <text> [--linked-task-id <id>] [--linked-issue-id <id>] [--linked-pr-ref <url>]`;
|
|
47253
|
+
}
|
|
47122
47254
|
var compassWrapper = (context, args) => dispatch(context, "compass", args, {
|
|
47123
47255
|
show: (ctx, rest) => {
|
|
47124
47256
|
const parsed = parseFlags(rest, /* @__PURE__ */ new Set(["markdown"]));
|
|
@@ -47221,6 +47353,51 @@ function deliverableUsage(bin) {
|
|
|
47221
47353
|
${bin} deliverable create --title <text> [--kind brief|work_evidence|artifact|report|other] [--summary <text>] [--content <text>]
|
|
47222
47354
|
${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
47355
|
}
|
|
47356
|
+
function formatSystemHealth(output) {
|
|
47357
|
+
const record2 = asRecord(output);
|
|
47358
|
+
const scope = asRecord(record2.scope);
|
|
47359
|
+
const sections = asRecord(record2.sections);
|
|
47360
|
+
const actions = asArray(record2.top_actions);
|
|
47361
|
+
const findings = asArray(record2.findings);
|
|
47362
|
+
const lines = [
|
|
47363
|
+
`verdict: ${field(record2, "verdict")} scope: ${field(scope, "mode")} seats: ${field(scope, "total_seat_count")} findings: ${findings.length}`
|
|
47364
|
+
];
|
|
47365
|
+
if (actions.length > 0) {
|
|
47366
|
+
lines.push("top_actions:");
|
|
47367
|
+
for (const action of actions) {
|
|
47368
|
+
const item = asRecord(action);
|
|
47369
|
+
lines.push(` ${field(item, "label")} command=${field(item, "command_id")} cli=${field(item, "cli")}`);
|
|
47370
|
+
}
|
|
47371
|
+
}
|
|
47372
|
+
const fleet = asRecord(sections.fleet);
|
|
47373
|
+
const runs = asRecord(sections.runs);
|
|
47374
|
+
const signals = asRecord(sections.signals);
|
|
47375
|
+
const cascade = asRecord(sections.cascade_setup);
|
|
47376
|
+
const workLoop = asRecord(sections.work_loop);
|
|
47377
|
+
const connectivity = asRecord(sections.connectivity);
|
|
47378
|
+
const sync = asRecord(sections.sync);
|
|
47379
|
+
lines.push(
|
|
47380
|
+
`fleet: agents=${field(fleet, "agent_count")} live=${field(fleet, "live_count")} stale=${field(fleet, "stale_count")} setup_gaps=${field(fleet, "setup_gap_count")}`,
|
|
47381
|
+
`runs: failed_24h=${field(runs, "failed_24h")} failed_7d=${field(runs, "failed_7d")} unresolved_errors=${field(runs, "unresolved_error_count")}`,
|
|
47382
|
+
`signals: off_track=${field(signals, "off_track_count")} pending=${field(signals, "pending_count")}`,
|
|
47383
|
+
`cascade: recommendations=${field(cascade, "recommendation_count")} warnings=${field(cascade, "warning_count")}`,
|
|
47384
|
+
`work_loop: open_issues=${field(workLoop, "open_issue_count")} friction_without_task=${field(workLoop, "friction_without_task_count")} open_or_stalled_tasks=${field(workLoop, "open_or_stalled_task_count")}`,
|
|
47385
|
+
`connectivity: runners=${field(connectivity, "runner_count")} offline_runners=${field(connectivity, "offline_runner_count")} integrations=${field(connectivity, "integration_count")} disconnected_integrations=${field(connectivity, "disconnected_integration_count")} failed_notifications=${field(connectivity, "failed_notification_count")}`,
|
|
47386
|
+
`sync: latest_brief=${field(sync, "latest_brief_at")} missing_latest_brief=${field(sync, "missing_latest_brief")} flagged_gaps=${field(sync, "flagged_gap_count")}`
|
|
47387
|
+
);
|
|
47388
|
+
return lines.join("\n");
|
|
47389
|
+
}
|
|
47390
|
+
var systemWrapper = (context, args) => dispatch(context, "system", args, {
|
|
47391
|
+
health: (ctx, rest) => {
|
|
47392
|
+
const parsed = parseFlags(rest);
|
|
47393
|
+
const body = withOptional({}, { seat_id: parsed.seat });
|
|
47394
|
+
return execute(ctx, parsed, "system.health", body, formatSystemHealth);
|
|
47395
|
+
}
|
|
47396
|
+
}, systemUsage(context.binName));
|
|
47397
|
+
function systemUsage(bin) {
|
|
47398
|
+
return `Usage: ${bin} system health [--seat <id>] [--json]
|
|
47399
|
+
${bin} system health [--seat <id>]`;
|
|
47400
|
+
}
|
|
47224
47401
|
var OPERATION_GROUPS = [
|
|
47225
47402
|
"task",
|
|
47226
47403
|
"status",
|
|
@@ -47228,6 +47405,7 @@ var OPERATION_GROUPS = [
|
|
|
47228
47405
|
"goal",
|
|
47229
47406
|
"friction",
|
|
47230
47407
|
"escalation",
|
|
47408
|
+
"error",
|
|
47231
47409
|
"sync",
|
|
47232
47410
|
"runner",
|
|
47233
47411
|
"notification",
|
|
@@ -47240,7 +47418,8 @@ var OPERATION_GROUPS = [
|
|
|
47240
47418
|
"model",
|
|
47241
47419
|
"compass",
|
|
47242
47420
|
"charter",
|
|
47243
|
-
"deliverable"
|
|
47421
|
+
"deliverable",
|
|
47422
|
+
"system"
|
|
47244
47423
|
];
|
|
47245
47424
|
var wrappers = {
|
|
47246
47425
|
task: taskWrapper,
|
|
@@ -47249,6 +47428,7 @@ var wrappers = {
|
|
|
47249
47428
|
goal: goalWrapper,
|
|
47250
47429
|
friction: frictionWrapper,
|
|
47251
47430
|
escalation: escalationWrapper,
|
|
47431
|
+
error: errorWrapper,
|
|
47252
47432
|
sync: syncWrapper,
|
|
47253
47433
|
runner: runnerWrapper,
|
|
47254
47434
|
notification: notificationWrapper,
|
|
@@ -47261,7 +47441,8 @@ var wrappers = {
|
|
|
47261
47441
|
model: modelWrapper,
|
|
47262
47442
|
compass: compassWrapper,
|
|
47263
47443
|
charter: charterWrapper,
|
|
47264
|
-
deliverable: deliverableWrapper
|
|
47444
|
+
deliverable: deliverableWrapper,
|
|
47445
|
+
system: systemWrapper
|
|
47265
47446
|
};
|
|
47266
47447
|
function isOperationGroup(value) {
|
|
47267
47448
|
return value !== void 0 && OPERATION_GROUPS.includes(value);
|
|
@@ -47273,6 +47454,7 @@ var groupUsageBuilders = {
|
|
|
47273
47454
|
goal: goalUsage,
|
|
47274
47455
|
friction: frictionUsage,
|
|
47275
47456
|
escalation: escalationUsage,
|
|
47457
|
+
error: errorUsage,
|
|
47276
47458
|
sync: syncUsage,
|
|
47277
47459
|
runner: runnerUsage,
|
|
47278
47460
|
notification: notificationUsage,
|
|
@@ -47285,7 +47467,8 @@ var groupUsageBuilders = {
|
|
|
47285
47467
|
model: modelUsage,
|
|
47286
47468
|
compass: compassUsage,
|
|
47287
47469
|
charter: charterUsage,
|
|
47288
|
-
deliverable: deliverableUsage
|
|
47470
|
+
deliverable: deliverableUsage,
|
|
47471
|
+
system: systemUsage
|
|
47289
47472
|
};
|
|
47290
47473
|
function operationGroupUsage(group, bin) {
|
|
47291
47474
|
return usageWithSchemaFooter(groupUsageBuilders[group](bin), bin);
|
|
@@ -47306,8 +47489,9 @@ function operationUsageLines(bin) {
|
|
|
47306
47489
|
`${bin} goal list|create|update|status|reparent|drop`,
|
|
47307
47490
|
`${bin} friction list|file|resolve|link`,
|
|
47308
47491
|
`${bin} escalation list|get|resolve|reject`,
|
|
47492
|
+
`${bin} error list|resolve|supersede`,
|
|
47309
47493
|
`${bin} sync brief|compile|complete`,
|
|
47310
|
-
`${bin} runner list|status|work-orders|revoke`,
|
|
47494
|
+
`${bin} runner list|status|diagnose|repair|work-orders|revoke`,
|
|
47311
47495
|
`${bin} notification settings|test|errors`,
|
|
47312
47496
|
`${bin} settings get|update|product-learning|rename`,
|
|
47313
47497
|
`${bin} member invite|update|remove`,
|