@rosthq/cli 0.7.64 → 0.7.65

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
@@ -38250,6 +38250,22 @@ var CATALOG_ENTRIES = [
38250
38250
  credential_required: false,
38251
38251
  default_access_policy: "always_allow"
38252
38252
  },
38253
+ {
38254
+ id: "script.run",
38255
+ title: "Run a script (sandbox)",
38256
+ provider: "rost",
38257
+ description: "Call this to run a short program (shell/node/python) in an isolated, network-disabled microVM for pure computation \u2014 parsing, transforming, calculating, or validating data the agent already holds. The sandbox has NO credentials and NO network access; it cannot read files, call APIs, or reach the internet. Use it for compute, never to fetch or send data. Every run is metered and audited; availability is a per-account entitlement and each call is confirmed by default (arbitrary code execution).",
38258
+ // Compute-only: the microVM produces a structured, size-capped result and has
38259
+ // no durable or external effect, so the narrowest useful tier is `read`.
38260
+ default_scope_tier: "read",
38261
+ scope_tiers: ["read"],
38262
+ // v1 injects ZERO credentials (secret grants are DER-1585) — never a vault ref.
38263
+ credential_required: false,
38264
+ // Conservative by default (invariant #10): arbitrary code execution routes to the
38265
+ // human on every call until a tenant deliberately loosens it. The separate
38266
+ // `agent.script_run` account entitlement gates availability on top of this.
38267
+ default_access_policy: "always_ask"
38268
+ },
38253
38269
  {
38254
38270
  id: "ap.invoices.read",
38255
38271
  title: "Read AP invoices",
@@ -39480,6 +39496,22 @@ var storedModelGatewayPolicySchema = external_exports.object({
39480
39496
  allow_non_zdr_models: external_exports.boolean()
39481
39497
  }).strict();
39482
39498
 
39499
+ // ../../packages/protocol/src/cloud-brain-options.ts
39500
+ var cloudBrainOptionSchema = external_exports.object({
39501
+ // Null is reserved for the synthetic Anthropic "Automatic" default (today's
39502
+ // unchanged tiering behavior — no behavior change). A real option's slug is
39503
+ // the registry's dotted `provider:model` slug (e.g. "openai:gpt-5.6").
39504
+ slug: external_exports.string().nullable(),
39505
+ provider: external_exports.string(),
39506
+ label: external_exports.string().min(1),
39507
+ managed: external_exports.boolean(),
39508
+ zdr_available: external_exports.boolean(),
39509
+ selectable: external_exports.boolean(),
39510
+ disabled_reason: external_exports.string().min(1).nullable(),
39511
+ retention_disclosure: external_exports.string().min(1).nullable(),
39512
+ live_note: external_exports.string().min(1).nullable()
39513
+ }).strict();
39514
+
39483
39515
  // ../../packages/protocol/src/aicos.ts
39484
39516
  var uuidSchema5 = external_exports.string().uuid();
39485
39517
  var jsonObjectSchema = external_exports.record(external_exports.string(), external_exports.unknown());
@@ -39697,7 +39729,18 @@ var aicosBrainSettingsSchema = external_exports.object({
39697
39729
  cloud_brain: aicosCloudBrainPreferenceSchema,
39698
39730
  runner_brain: aicosRunnerBrainPreferenceSchema,
39699
39731
  effective_brain: aicosAnswerBrainSchema,
39700
- label: external_exports.string().min(1).max(80)
39732
+ label: external_exports.string().min(1).max(80),
39733
+ // DER-1591 (ADR-0019 W2.3b): the persisted managed-model slug for cloud
39734
+ // AICOS (null = the Anthropic "Automatic" default — today's unchanged
39735
+ // behavior), the full picker option list (ZDR-gated availability +
39736
+ // disclosure + the permanent non-Anthropic honesty note baked into each
39737
+ // option by `buildCloudBrainOptions`), and whether this tenant has unlocked
39738
+ // non-ZDR managed models. This settings/persistence layer does not yet
39739
+ // change which model actually serves a cloud turn (DER-1582, next in the
39740
+ // serial lane, wires it live).
39741
+ cloud_model_slug: external_exports.string().nullable(),
39742
+ cloud_options: external_exports.array(cloudBrainOptionSchema),
39743
+ non_zdr_unlocked: external_exports.boolean()
39701
39744
  }).strict();
39702
39745
  var aicosBrainSettingsGetInputSchema = external_exports.object({}).strict();
39703
39746
  var aicosBrainSettingsGetOutputSchema = external_exports.object({
@@ -39706,9 +39749,10 @@ var aicosBrainSettingsGetOutputSchema = external_exports.object({
39706
39749
  var aicosBrainSettingsUpdateInputSchema = external_exports.object({
39707
39750
  lane: aicosLaneSchema.optional(),
39708
39751
  cloud_brain: aicosCloudBrainPreferenceSchema.optional(),
39709
- runner_brain: aicosRunnerBrainPreferenceSchema.optional()
39752
+ runner_brain: aicosRunnerBrainPreferenceSchema.optional(),
39753
+ cloud_model_slug: external_exports.string().nullable().optional()
39710
39754
  }).strict().refine(
39711
- (value) => value.lane !== void 0 || value.cloud_brain !== void 0 || value.runner_brain !== void 0,
39755
+ (value) => value.lane !== void 0 || value.cloud_brain !== void 0 || value.runner_brain !== void 0 || value.cloud_model_slug !== void 0,
39712
39756
  "At least one AICOS lane or brain setting must be provided."
39713
39757
  );
39714
39758
  var aicosSessionSchema = external_exports.object({
@@ -45165,7 +45209,7 @@ The Compass is drafted, then activated by a human through supersession.
45165
45209
  order: 15,
45166
45210
  title: "AICOS chat guide",
45167
45211
  summary: "How the AI Chief of Staff chat works in the authenticated app shell and what it can safely do today.",
45168
- version: "2026-07-10.2",
45212
+ version: "2026-07-11.1",
45169
45213
  public: true,
45170
45214
  audiences: ["human", "in_app_agent"],
45171
45215
  stages: ["company_setup", "operating_rhythm"],
@@ -45178,6 +45222,7 @@ The Compass is drafted, then activated by a human through supersession.
45178
45222
  "runner.list",
45179
45223
  "aicos.brain_settings.get",
45180
45224
  "aicos.brain_settings.update",
45225
+ "tenant.model_gateway_policy.update",
45181
45226
  "agent.create_custom",
45182
45227
  "agent.configure_tools",
45183
45228
  "agent.run_dry_run",
@@ -45233,7 +45278,7 @@ Each turn carries server-normalized page context: route template, current path,
45233
45278
 
45234
45279
  The current chat harness shows the effective lane and model. Cloud is the default and remains the enforced lane during onboarding, even if a post-onboarding lane has been selected. After onboarding, an owner or admin can select cloud, runner, or MCP only when the server says that lane is ready. Lane changes update the governed AICOS agent seat and write an append-only audit event; the browser never decides tenant authority or runner/MCP readiness.
45235
45280
 
45236
- AICOS also has an explicit brain selection. Cloud can use the included managed allowance or a tenant Anthropic key (BYOK). Runner brain preference still records Claude or Codex, but interactive AICOS runner turns are currently gated to Claude while the Codex path remains unverified. MCP is labeled as the MCP client. Read this selection with \`aicos.brain_settings.get\`; owners can update it with \`aicos.brain_settings.update\` (CLI flags: \`--lane\`, \`--cloud-brain managed|byok\`, \`--runner-brain claude-cli|codex-cli\`). BYOK requires an active tenant Anthropic key. Choosing \`codex-cli\` for AICOS runner mode is currently rejected with a precondition error until the governed interactive runner path is verified. Runner and MCP answers are labeled in the transcript and do not consume the managed cloud allowance. If the selected runner reports that its active local model account has exhausted its allowance, Settings surfaces **Allowance exhausted** before the user sends another AICOS turn so they can switch lanes, switch runner accounts, or keep working manually instead of waiting on a doomed runner round-trip.
45281
+ AICOS also has an explicit brain selection. Cloud can use the included managed allowance or a tenant Anthropic key (BYOK). When cloud is on the managed allowance, an owner can also pick a specific managed model from the AI Gateway's priced, ZDR-rated catalog (today: Anthropic's own "Automatic" default, plus managed OpenAI and xAI entries) instead of leaving the choice on Anthropic's default routing. A managed model without a zero-data-retention tier shows as locked with the reason until a tenant owner explicitly unlocks non-ZDR managed models (\`tenant.model_gateway_policy.update\`, owner-only and dangerous-gated); once unlocked, its per-model data-retention disclosure is shown before it becomes selectable. Selecting one of these managed models updates AICOS settings immediately, but it does not yet change which model actually answers a cloud AICOS turn \u2014 every non-Anthropic option says so plainly, and cloud turns keep running on the existing Anthropic routing until a later runtime cutover wires the persisted selection through. Runner brain preference still records Claude or Codex, but interactive AICOS runner turns are currently gated to Claude while the Codex path remains unverified. MCP is labeled as the MCP client. Read this selection with \`aicos.brain_settings.get\`; owners can update it with \`aicos.brain_settings.update\` (CLI flags: \`--lane\`, \`--cloud-brain managed|byok\`, \`--runner-brain claude-cli|codex-cli\`). BYOK requires an active tenant Anthropic key and does not support a specific managed-model selection. Choosing \`codex-cli\` for AICOS runner mode is currently rejected with a precondition error until the governed interactive runner path is verified. Runner and MCP answers are labeled in the transcript and do not consume the managed cloud allowance. If the selected runner reports that its active local model account has exhausted its allowance, Settings surfaces **Allowance exhausted** before the user sends another AICOS turn so they can switch lanes, switch runner accounts, or keep working manually instead of waiting on a doomed runner round-trip.
45237
45282
 
45238
45283
  Runner mode uses the same AICOS sessions and transcript. Interactive chat turns are tracked separately from scheduled work orders: each user message has one user-owned turn execution with a short deadline, so two users' chat messages cannot collapse into the same scheduled-work slot. Scheduled and Forge runner work still use work orders. Runner claim packets carry ids and execution metadata, not the user's free-text request. After claim, the local runner calls the governed AICOS context-load tool, which re-checks seat scope and returns the bounded transcript, session summary, route context, tenant clock, grounding text, and source counts authorized for that turn. For execute-ready runners, the claim also carries a server-built Seat work contract that names the governed runtime profile, the AICOS context-loader tool, and the Seat's permission manifest; action attempts still route through command guards, tool-call audit, and pending confirmations. The runner treats loaded tenant clock, context, and contract as authoritative instead of substituting its own runtime clock, local files, or self-invented authority. A runner must be paired, execute-ready, and backed by the live AICOS agent before it can be selected.
45239
45284
 
@@ -50002,7 +50047,7 @@ var COMMAND_MANIFEST = [
50002
50047
  { "id": "agent.status", "namespace": "agent", "action": "status", "title": "Get agent status", "description": "Return the agent occupancy, lane, schedule, live/offline state, steward chain, dry-run result, and Runner availability for a seat.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Check an agent's lane, live state, steward chain, dry-run result, and Runner availability before relying on it." },
50003
50048
  { "id": "agent.update_schedule", "namespace": "agent", "action": "update_schedule", "title": "Update agent schedule", "description": "Set or clear the scheduled execution cron for a draft or live agent on a seat.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "schedule_cron", "flag": "schedule-cron", "type": "string", "required": true }], "hasComplexInput": false, "help": "Set or clear an agent's scheduled execution; a live scheduled agent must keep a steward chain resolving to a human." },
50004
50049
  { "id": "aicos.brain_settings.get", "namespace": "aicos", "action": "brain_settings.get", "title": "Get AICOS brain settings", "description": "Read the AICOS run lane and brain selection. Returns labels and enum settings only; no secrets or vault refs.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Read the AICOS lane and brain selection labels without returning provider keys, vault refs, or runner secrets." },
50005
- { "id": "aicos.brain_settings.update", "namespace": "aicos", "action": "brain_settings.update", "title": "Update AICOS brain settings", "description": "Update the AICOS lane and cloud/runner brain preferences. Owner-only and audited.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "lane", "flag": "lane", "type": "enum", "required": false, "enumValues": ["cloud", "runner", "mcp"] }, { "name": "cloud_brain", "flag": "cloud-brain", "type": "enum", "required": false, "enumValues": ["managed", "byok"] }, { "name": "runner_brain", "flag": "runner-brain", "type": "enum", "required": false, "enumValues": ["claude-cli", "codex-cli"] }], "hasComplexInput": false, "help": "Owner-only update for AICOS cloud managed/BYOK and runner Claude/Codex preferences; BYOK requires an active tenant Anthropic key." },
50050
+ { "id": "aicos.brain_settings.update", "namespace": "aicos", "action": "brain_settings.update", "title": "Update AICOS brain settings", "description": "Update the AICOS lane and cloud/runner brain preferences. Owner-only and audited.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "lane", "flag": "lane", "type": "enum", "required": false, "enumValues": ["cloud", "runner", "mcp"] }, { "name": "cloud_brain", "flag": "cloud-brain", "type": "enum", "required": false, "enumValues": ["managed", "byok"] }, { "name": "runner_brain", "flag": "runner-brain", "type": "enum", "required": false, "enumValues": ["claude-cli", "codex-cli"] }, { "name": "cloud_model_slug", "flag": "cloud-model-slug", "type": "string", "required": false }], "hasComplexInput": false, "help": "Owner-only update for AICOS cloud managed/BYOK and runner Claude/Codex preferences; BYOK requires an active tenant Anthropic key." },
50006
50051
  { "id": "cascade.import", "namespace": "cascade", "action": "import", "title": "Import Rocks from a ninety Rocks export", "description": "Bulk-import a ninety Rocks export into the Cascade as cycle goals under a company objective in the active cycle. Owners are seat names resolved to seats. Requires an active cycle and a target company objective (auto-selected when exactly one exists, else pass parent_objective_id). Idempotent \u2014 re-importing the same export is a no-op, and an existing cycle goal with the same objective + seat + title is skipped.", "requiredScope": "tenant_admin", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "dry_run", "flag": "dry-run", "type": "boolean", "required": false }, { "name": "parent_objective_id", "flag": "parent-objective-id", "type": "string", "required": false }], "hasComplexInput": true, "help": "Import a ninety Rocks export into the Cascade as cycle goals under a company objective in the active cycle; owners resolve to seats." },
50007
50052
  { "id": "charter.apply_seat_type_recommendation", "namespace": "charter", "action": "apply_seat_type_recommendation", "title": "Apply Charter seat-type recommendation", "description": "Apply the seat-type recommendation from a draft Charter.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "charter_version_id", "flag": "charter-version-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Apply seat-type recommendations only after the Charter clarifies work shape, risk, and Steward accountability." },
50008
50053
  { "id": "charter.approve", "namespace": "charter", "action": "approve", "title": "Approve charter", "description": "Approve a draft Charter as a human owner.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": false }, { "name": "charter_version_id", "flag": "charter-version-id", "type": "string", "required": false }, { "name": "apply_seat_type", "flag": "apply-seat-type", "type": "boolean", "required": false }], "hasComplexInput": true, "help": "Charter approval is a human decision that activates the seat's operating contract." },