@rosthq/cli 0.7.85 → 0.7.86

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":"groups.d.ts","sourceRoot":"","sources":["../../src/generator/groups.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAM1D,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKhF,CAAC;AAgsCF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAmPjD,CAAC"}
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/generator/groups.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAM1D,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKhF,CAAC;AAosCF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAmPjD,CAAC"}
package/dist/index.js CHANGED
@@ -43827,6 +43827,17 @@ var runnerPostureSchema = external_exports.object({
43827
43827
  network: external_exports.enum(["allow", "deny", "unknown"]),
43828
43828
  capability_set: external_exports.array(external_exports.string())
43829
43829
  }).strict();
43830
+ var runnerCapacityStateSchema = external_exports.enum(["available", "near_cap", "exhausted", "unknown"]);
43831
+ var runnerCapacitySchema = external_exports.object({
43832
+ account_alias: external_exports.string().nullable(),
43833
+ state: runnerCapacityStateSchema,
43834
+ raw_state: external_exports.string().nullable(),
43835
+ // Null until the harness gains rate-limit error classification (out of scope for DER-1588);
43836
+ // surfaced now so a fleet reader picks it up automatically once it starts being set.
43837
+ rate_limited_until: isoDateTime6.nullable(),
43838
+ has_observation: external_exports.boolean(),
43839
+ freshness: external_exports.enum(["fresh", "stale"])
43840
+ }).strict();
43830
43841
  var runnerSummarySchema = external_exports.object({
43831
43842
  id: uuid8,
43832
43843
  name: external_exports.string(),
@@ -43836,6 +43847,7 @@ var runnerSummarySchema = external_exports.object({
43836
43847
  cli_version: external_exports.string().nullable(),
43837
43848
  posture: runnerPostureSchema,
43838
43849
  execution: runnerExecutionReadinessSchema,
43850
+ capacity: runnerCapacitySchema,
43839
43851
  paired_at: isoDateTime6.nullable(),
43840
43852
  last_heartbeat_at: isoDateTime6.nullable(),
43841
43853
  revoked_at: isoDateTime6.nullable(),
@@ -44219,6 +44231,8 @@ var systemHealthConnectivitySectionSchema = external_exports.object({
44219
44231
  runner_count: external_exports.number().int().nonnegative(),
44220
44232
  offline_runner_count: external_exports.number().int().nonnegative(),
44221
44233
  not_execute_ready_runner_count: external_exports.number().int().nonnegative(),
44234
+ // DER-1588: fleet-wide near-cap/at-limit warning, driven off the runner capacity badge.
44235
+ near_cap_or_exhausted_runner_count: external_exports.number().int().nonnegative(),
44222
44236
  integration_count: external_exports.number().int().nonnegative(),
44223
44237
  disconnected_integration_count: external_exports.number().int().nonnegative(),
44224
44238
  failed_notification_count: external_exports.number().int().nonnegative()
@@ -46412,6 +46426,8 @@ var WORK_VERBS = [
46412
46426
  var workVerbSchema = external_exports.enum(WORK_VERBS);
46413
46427
  var WORK_OUTCOMES = ["success", "warning", "error", "held"];
46414
46428
  var workOutcomeSchema = external_exports.enum(WORK_OUTCOMES);
46429
+ var RESOLUTION_ATTRIBUTIONS = ["agent_self", "escalated_human"];
46430
+ var resolutionAttributionSchema = external_exports.enum(RESOLUTION_ATTRIBUTIONS);
46415
46431
  var objectKindSchema = external_exports.string().trim().min(1).max(128);
46416
46432
  var externalIdSchema = external_exports.string().trim().min(1).max(512);
46417
46433
  var labelSchema = external_exports.string().trim().min(1).max(200);
@@ -46547,6 +46563,12 @@ var workDetailsSchemas = {
46547
46563
  currency: external_exports.string().length(3).optional(),
46548
46564
  unit: external_exports.string().max(64).optional(),
46549
46565
  lead_time_days: external_exports.number().int().nonnegative().optional()
46566
+ }).strict(),
46567
+ // DER-1574: the resolution-attribution marker for a record that closes out an
46568
+ // `escalated`/`held` item — see RESOLUTION_ATTRIBUTIONS above.
46569
+ escalation_resolution: external_exports.object({
46570
+ resolved_by: resolutionAttributionSchema,
46571
+ resolution_note: external_exports.string().trim().min(1).max(2e3).optional()
46550
46572
  }).strict()
46551
46573
  };
46552
46574
 
@@ -49998,7 +50020,7 @@ Every notification should include the seat, cause, evidence, and requested decis
49998
50020
  order: 75,
49999
50021
  title: "Local runner guide",
50000
50022
  summary: "How local agent sessions and runner surfaces should operate through {{brand}} without bypassing Charters or audit.",
50001
- version: "2026-07-10.1",
50023
+ version: "2026-07-16.1",
50002
50024
  public: true,
50003
50025
  audiences: ["human", "cli", "mcp", "in_app_agent"],
50004
50026
  stages: ["staffing", "operating_rhythm"],
@@ -50075,7 +50097,7 @@ A Forge turn should load its context in one order: build context first, then Ski
50075
50097
  ## Inspect and control runners from CLI or MCP
50076
50098
 
50077
50099
  - 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.
50078
- - Inspect: \`{{cli}} runner list --json\` / \`runner.list\` / \`rost_list_runners\` shows heartbeat state plus execution readiness. A runner is execute-ready only when it has a live heartbeat, a detected local Claude or Codex runtime, and recent claim/result evidence or active queue processing. Settings and runner status/list surfaces also project the runner CLI version, sandbox posture, network posture, and reported capability set from heartbeat so operators can see whether the machine is current and still running with the expected guardrails. \`{{cli}} runner status\` / \`runner.status\` / \`rost_runner_status\` reads one runner with the same execution detail, due queue count, claimed/running counts, and recent result timestamps.
50100
+ - Inspect: \`{{cli}} runner list --json\` / \`runner.list\` / \`rost_list_runners\` shows heartbeat state plus execution readiness. A runner is execute-ready only when it has a live heartbeat, a detected local Claude or Codex runtime, and recent claim/result evidence or active queue processing. Settings and runner status/list surfaces also project the runner CLI version, sandbox posture, network posture, and reported capability set from heartbeat so operators can see whether the machine is current and still running with the expected guardrails. \`{{cli}} runner status\` / \`runner.status\` / \`rost_runner_status\` reads one runner with the same execution detail, due queue count, claimed/running counts, and recent result timestamps. Both surfaces also project a \`capacity\` view: the runner's active model-account alias, a badge state (\`available\`, \`near_cap\`, \`exhausted\`, or \`unknown\`), a rate-limited-until timestamp when the harness has classified one, and a fresh/stale refreshability flag mirroring heartbeat recency. The badge reads \`unknown\` \u2014 never a fabricated \`available\` \u2014 whenever no capacity observation has been recorded yet or the runner reported a state {{brand}} does not recognize; real 5-hour/weekly usage percentages and reset timestamps are not collected yet, so this view never claims a percentage it does not have. Settings > Connected machines and the Health dashboard's Connectivity tile (a fleet-wide near-cap/at-limit count) surface the same signal.
50079
50101
  - 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.
50080
50102
  - 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).
50081
50103
  - 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\`. The operator Settings page mirrors queued, claimed, running, and recent completed runner evidence so online does not imply can execute.
@@ -52990,17 +53012,20 @@ function renderRunnerList(output) {
52990
53012
  return runners.map((runner) => {
52991
53013
  const record2 = asRecord(runner);
52992
53014
  const posture = asRecord(record2.posture);
53015
+ const capacity = asRecord(record2.capacity);
52993
53016
  const capabilitySet = asArray(posture.capability_set).map((value) => String(value)).join(", ");
52994
- return `${field(record2, "id")} ${field(record2, "health")} ${field(record2, "name")} (${field(record2, "platform")}) cli=${field(record2, "cli_version")} sandbox=${field(posture, "sandbox")} network=${field(posture, "network")}${capabilitySet.length > 0 ? ` capabilities=${capabilitySet}` : ""}`;
53017
+ return `${field(record2, "id")} ${field(record2, "health")} ${field(record2, "name")} (${field(record2, "platform")}) cli=${field(record2, "cli_version")} sandbox=${field(posture, "sandbox")} network=${field(posture, "network")}${capabilitySet.length > 0 ? ` capabilities=${capabilitySet}` : ""} capacity=${field(capacity, "state")} account=${field(capacity, "account_alias")} freshness=${field(capacity, "freshness")}`;
52995
53018
  }).join("\n");
52996
53019
  }
52997
53020
  function renderRunnerStatus(output) {
52998
53021
  const record2 = asRecord(output);
52999
53022
  const posture = asRecord(record2.posture);
53023
+ const capacity = asRecord(record2.capacity);
53000
53024
  const capabilitySet = asArray(posture.capability_set).map((value) => String(value)).join(", ");
53001
53025
  const lines = [
53002
53026
  `${field(record2, "id")} ${field(record2, "health")} ${field(record2, "name")} (last heartbeat ${field(record2, "last_heartbeat_at")}).`,
53003
- `cli_version: ${field(record2, "cli_version")} sandbox: ${field(posture, "sandbox")} network: ${field(posture, "network")}`
53027
+ `cli_version: ${field(record2, "cli_version")} sandbox: ${field(posture, "sandbox")} network: ${field(posture, "network")}`,
53028
+ `capacity: ${field(capacity, "state")} account: ${field(capacity, "account_alias")} freshness: ${field(capacity, "freshness")} rate_limited_until: ${field(capacity, "rate_limited_until")}`
53004
53029
  ];
53005
53030
  if (capabilitySet.length > 0) {
53006
53031
  lines.push(`capabilities: ${capabilitySet}`);