@mutagent/cli 0.1.282 → 0.1.284

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,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/lib/secure-file.ts", "../src/lib/config.ts", "../src/lib/errors.ts", "../src/lib/provider-request.ts", "../src/lib/sdk-mappers.ts", "../src/lib/sdk-client.ts", "../src/bin/cli.ts", "../src/commands/auth.ts", "../src/lib/output.ts", "../src/commands/onboarding.ts", "../src/lib/rc-config.ts", "../src/lib/framework-detection.ts", "../src/lib/installer.ts", "../src/lib/installer-helix.ts", "../src/lib/install-telemetry.ts", "../src/lib/auth-flow.ts", "../src/lib/browser-auth.ts", "../src/commands/login.ts", "../src/commands/config.ts", "../src/commands/workspaces.ts", "../src/lib/ui-links.ts", "../src/commands/providers/index.ts", "../src/commands/providers/add.ts", "../src/lib/api-format.ts", "../../mutagent/src/modules/tenancy/providers/catalog.ts", "../src/commands/providers/update.ts", "../src/commands/providers/delete.ts", "../src/commands/init.ts", "../src/commands/skills.ts", "../src/generated/skill-content.ts", "../src/commands/usage.ts", "../src/commands/hooks/index.ts", "../src/commands/hooks/import-transcript.ts", "../src/commands/hooks/api.ts", "../src/commands/hooks/handlers-core.ts", "../src/commands/hooks/state.ts", "../src/commands/hooks/handlers-v2.ts", "../src/commands/hooks/install.ts", "../src/commands/feedback.ts", "../src/lib/transcript.ts", "../src/lib/feedback-safety.ts", "../src/lib/secret-scan.ts", "../src/lib/by-design.ts", "../src/commands/install/index.ts", "../src/commands/trace.ts", "../src/commands/helix/index.ts", "../src/commands/helix/spawn.ts", "../src/lib/sandbox-api.ts", "../src/lib/sandbox-token.ts", "../src/lib/tty.ts", "../src/commands/helix/session.ts", "../src/lib/sse.ts", "../src/lib/sandbox-stream.ts", "../src/commands/helix/frames.ts", "../src/commands/helix/attach.ts", "../src/commands/helix/send.ts", "../src/commands/helix/session-start.ts", "../src/commands/helix/run.ts", "../src/commands/helix/inventory.ts", "../src/lib/brand.ts", "../src/lib/global-version-flag.ts"],
3
+ "sources": ["../src/lib/secure-file.ts", "../src/lib/config.ts", "../src/lib/errors.ts", "../src/lib/provider-request.ts", "../src/lib/sdk-mappers.ts", "../src/lib/sdk-client.ts", "../src/bin/cli.ts", "../src/commands/auth.ts", "../src/lib/output.ts", "../src/commands/onboarding.ts", "../src/lib/rc-config.ts", "../src/lib/framework-detection.ts", "../src/lib/installer.ts", "../src/lib/installer-helix.ts", "../src/lib/install-telemetry.ts", "../src/lib/auth-flow.ts", "../src/lib/browser-auth.ts", "../src/commands/login.ts", "../src/commands/config.ts", "../src/commands/workspaces.ts", "../src/lib/ui-links.ts", "../src/commands/providers/index.ts", "../src/commands/providers/add.ts", "../src/lib/api-format.ts", "../../mutagent/src/modules/tenancy/providers/catalog.ts", "../src/commands/providers/update.ts", "../src/commands/providers/delete.ts", "../src/commands/init.ts", "../src/commands/skills.ts", "../src/generated/skill-content.ts", "../src/commands/usage.ts", "../src/commands/hooks/index.ts", "../src/commands/hooks/import-transcript.ts", "../src/commands/hooks/api.ts", "../src/commands/hooks/handlers-core.ts", "../src/commands/hooks/state.ts", "../src/commands/hooks/handlers-v2.ts", "../src/commands/hooks/install.ts", "../src/commands/feedback.ts", "../src/lib/transcript.ts", "../src/lib/feedback-safety.ts", "../src/lib/secret-scan.ts", "../src/lib/by-design.ts", "../src/commands/install/index.ts", "../src/commands/trace.ts", "../src/commands/helix/index.ts", "../src/commands/helix/spawn.ts", "../src/lib/sandbox-api.ts", "../src/lib/sandbox-token.ts", "../src/lib/tty.ts", "../src/commands/helix/session.ts", "../src/lib/sse.ts", "../src/lib/sandbox-stream.ts", "../src/commands/helix/frames.ts", "../src/commands/helix/attach.ts", "../src/commands/helix/send.ts", "../src/commands/helix/signal.ts", "../src/commands/helix/session-start.ts", "../src/commands/helix/run.ts", "../src/commands/helix/inventory.ts", "../src/lib/brand.ts", "../src/lib/global-version-flag.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * Owner-only file writes for credential material (issue #1558, D13).\n *\n * Every `writeFileSync(CREDENTIALS_FILE, …)` in `lib/config.ts` was called with\n * no `mode`, so the credentials file was created 0644 — world-readable. The API\n * key it holds was therefore readable by every other account on a shared or\n * multi-user machine.\n *\n * WHY A CHMOD IS REQUIRED AND `{ mode: 0o600 }` ALONE IS NOT:\n *\n * `writeFileSync`'s `mode` option is applied by `open(2)` at CREATION time and\n * is ignored outright when the file already exists. Passing the mode fixes\n * only brand-new installs; every user who already has a 0644 credentials file\n * would keep it at 0644 forever, through every subsequent login. The explicit\n * `chmodSync` is what repairs the existing population.\n *\n * Both are kept: the mode closes the window between create and chmod (the file\n * is never briefly world-readable with a key already in it), and the chmod\n * repairs anything written before this change.\n */\n\nimport { writeFileSync, chmodSync } from 'fs';\n\n/** Owner read/write only. No group, no other. */\nexport const SECURE_FILE_MODE = 0o600;\n\n/**\n * Write `contents` to `path` such that the file ends up owner-readable only.\n *\n * Creation uses mode 0600 so the bytes are never world-readable even briefly;\n * the follow-up chmod repairs a pre-existing file whose mode `writeFileSync`\n * would otherwise leave untouched.\n *\n * The chmod is best-effort: on filesystems that do not implement POSIX\n * permissions (a Windows volume, some network mounts) `chmodSync` throws, and\n * failing the whole login over an unsupported permission model would be worse\n * than the weaker mode. The write itself is never swallowed.\n */\nexport function writeSecureFile(path: string, contents: string): void {\n writeFileSync(path, contents, { mode: SECURE_FILE_MODE });\n try {\n chmodSync(path, SECURE_FILE_MODE);\n } catch {\n // Filesystem does not support POSIX modes — the write above still stands.\n }\n}\n",
6
6
  "import { cosmiconfigSync } from 'cosmiconfig';\nimport { z } from 'zod';\nimport { homedir } from 'os';\nimport { join } from 'path';\nimport { existsSync, readFileSync, mkdirSync } from 'fs';\nimport type { Config } from '../types/index.js';\nimport { writeSecureFile } from './secure-file.js';\n\nconst configSchema = z.object({\n apiKey: z.string().optional(),\n endpoint: z.string().default('https://api.mutagent.io'),\n format: z.enum(['table', 'json']).default('table'),\n timeout: z.number().default(30000),\n defaultWorkspace: z.string().optional(),\n defaultWorkspaceSource: z.enum(['user', 'login-inferred']).optional(),\n defaultOrganization: z.string().optional(),\n});\n\n/**\n * Where `defaultWorkspace` came from.\n *\n * `user` — an explicit `mutagent config set workspace <id>`\n * `login-inferred` — chosen FOR the user at login, when the account had several\n * workspaces and none was marked default\n *\n * The distinction exists because a provider write must not land in a workspace\n * nobody chose (FR-CLI-002). Without it the two are indistinguishable in config,\n * so a login-time guess reads as a deliberate choice and the ambiguity gate can\n * never fire — the guess is simply laundered one layer upstream.\n */\nexport type WorkspaceSource = 'user' | 'login-inferred';\n\nconst credentialsSchema = z.object({\n apiKey: z.string().optional(),\n endpoint: z.string().optional(),\n defaultWorkspace: z.string().optional(),\n defaultWorkspaceSource: z.enum(['user', 'login-inferred']).optional(),\n defaultOrganization: z.string().optional(),\n expiresAt: z.string().optional(),\n}).loose();\n\nexport interface FullCredentials {\n apiKey: string;\n endpoint?: string;\n workspaceId?: string;\n organizationId?: string;\n expiresAt?: string;\n}\n\nconst CREDENTIALS_DIR = join(homedir(), '.config', 'mutagent');\nconst CREDENTIALS_FILE = join(CREDENTIALS_DIR, 'credentials.json');\n\nfunction parseJsonSafe<T>(content: string, schema: z.ZodType<T>): T | null {\n try {\n const parsed: unknown = JSON.parse(content);\n return schema.parse(parsed);\n } catch {\n return null;\n }\n}\n\nexport function loadConfig(): Config {\n // Load from cosmiconfig (rc files)\n const explorer = cosmiconfigSync('mutagent');\n const result = explorer.search();\n\n // Safely extract config from cosmiconfig result\n const rcConfig = result?.config as Record<string, unknown> | undefined;\n\n // Load from credentials file\n let credentials: z.infer<typeof credentialsSchema> | null = null;\n if (existsSync(CREDENTIALS_FILE)) {\n credentials = parseJsonSafe(readFileSync(CREDENTIALS_FILE, 'utf-8'), credentialsSchema);\n }\n\n // Merge configs: ENV > credentials > rc files > defaults\n const merged = {\n providers: {},\n environment: 'production',\n ...rcConfig,\n ...credentials,\n apiKey: process.env.MUTAGENT_API_KEY ?? credentials?.apiKey ?? (rcConfig?.apiKey as string | undefined),\n endpoint: process.env.MUTAGENT_ENDPOINT ?? credentials?.endpoint ?? (rcConfig?.endpoint as string | undefined),\n // ENV first, like apiKey and endpoint above. Without this the documented\n // precedence (\"1. Environment\") had no environment entry for a key the\n // config schema supports, so a fully non-interactive run could supply a key\n // and an endpoint but had no way to name a workspace short of writing a\n // credentials file. `mutagent helix` needs one — sandbox access is minted\n // per workspace — which is what surfaced the gap.\n defaultWorkspace:\n process.env.MUTAGENT_WORKSPACE_ID ??\n credentials?.defaultWorkspace ??\n (rcConfig?.defaultWorkspace as string | undefined),\n // Provenance defaults to 'login-inferred' for anything without an explicit\n // stamp — including rc-file values. An rc file LOOKS like an act of\n // configuration, but `mutagent init` scaffolds it from the same login guess,\n // so trusting it would let logging out and re-initialising UPGRADE a guess\n // into a choice. Only `config set workspace` earns 'user'; everything else\n // is re-verified against the account's real workspaces, which costs a lookup\n // and never costs a credential written somewhere nobody picked.\n //\n // MUTAGENT_WORKSPACE_ID earns 'user' because exporting it IS the deliberate\n // act the gate is looking for — nothing infers it on the operator's behalf,\n // which is exactly what separates it from a scaffolded rc value.\n defaultWorkspaceSource: process.env.MUTAGENT_WORKSPACE_ID\n ? 'user'\n : credentials?.defaultWorkspace\n ? (credentials.defaultWorkspaceSource ?? 'login-inferred')\n : (rcConfig?.defaultWorkspace ? 'login-inferred' : undefined),\n defaultOrganization: credentials?.defaultOrganization ?? (rcConfig?.defaultOrganization as string | undefined),\n };\n\n return configSchema.parse(merged) as Config;\n}\n\nexport function saveCredentials(apiKey: string, endpoint?: string): void {\n if (!existsSync(CREDENTIALS_DIR)) {\n mkdirSync(CREDENTIALS_DIR, { recursive: true });\n }\n\n const config = loadConfig();\n const credentials = {\n apiKey,\n endpoint: endpoint ?? config.endpoint,\n };\n\n writeSecureFile(CREDENTIALS_FILE, JSON.stringify(credentials, null, 2));\n}\n\n/**\n * Save full credentials including workspace and organization info\n * Used by browser auth flow which returns complete credential set\n */\nexport function saveFullCredentials(creds: FullCredentials): void {\n if (!existsSync(CREDENTIALS_DIR)) {\n mkdirSync(CREDENTIALS_DIR, { recursive: true });\n }\n\n // Load existing credentials to preserve any custom settings\n let existingCredentials: Record<string, unknown> = {};\n if (existsSync(CREDENTIALS_FILE)) {\n try {\n existingCredentials = JSON.parse(readFileSync(CREDENTIALS_FILE, 'utf-8')) as Record<string, unknown>;\n } catch {\n // Ignore parse errors, start fresh\n }\n }\n\n // A workspace id arriving through the LOGIN flow was picked for the user, not\n // by them — auth-flow takes `workspaces.find(isDefault) ?? workspaces[0]`.\n // Record that provenance so a provider write can refuse to land in a guessed\n // workspace (FR-CLI-002). An explicit `config set workspace` overwrites\n // this with 'user'. A pre-existing 'user' choice is never downgraded.\n const existingSource = existingCredentials.defaultWorkspaceSource as WorkspaceSource | undefined;\n const workspaceChanged = creds.workspaceId !== undefined\n && creds.workspaceId !== existingCredentials.defaultWorkspace;\n const source: WorkspaceSource | undefined = creds.workspaceId === undefined\n ? existingSource\n : workspaceChanged\n ? 'login-inferred'\n : (existingSource ?? 'login-inferred');\n\n const credentials = {\n ...existingCredentials,\n apiKey: creds.apiKey,\n endpoint: creds.endpoint ?? existingCredentials.endpoint ?? 'https://api.mutagent.io',\n defaultWorkspace: creds.workspaceId ?? existingCredentials.defaultWorkspace,\n defaultWorkspaceSource: source,\n defaultOrganization: creds.organizationId ?? existingCredentials.defaultOrganization,\n expiresAt: creds.expiresAt,\n };\n\n writeSecureFile(CREDENTIALS_FILE, JSON.stringify(credentials, null, 2));\n}\n\nexport function clearCredentials(): void {\n if (existsSync(CREDENTIALS_FILE)) {\n writeSecureFile(CREDENTIALS_FILE, JSON.stringify({}));\n }\n}\n\nexport function hasCredentials(): boolean {\n if (process.env.MUTAGENT_API_KEY) return true;\n if (!existsSync(CREDENTIALS_FILE)) return false;\n\n const credentials = parseJsonSafe(readFileSync(CREDENTIALS_FILE, 'utf-8'), credentialsSchema);\n return credentials?.apiKey !== undefined && credentials.apiKey !== '';\n}\n\nexport function getApiKey(): string | undefined {\n return process.env.MUTAGENT_API_KEY ?? loadConfig().apiKey;\n}\n\nexport function setDefaultWorkspace(\n workspaceId: string,\n source: WorkspaceSource = 'user'\n): void {\n if (!existsSync(CREDENTIALS_DIR)) {\n mkdirSync(CREDENTIALS_DIR, { recursive: true });\n }\n\n let existingCredentials: Record<string, unknown> = {};\n if (existsSync(CREDENTIALS_FILE)) {\n try {\n existingCredentials = JSON.parse(readFileSync(CREDENTIALS_FILE, 'utf-8')) as Record<string, unknown>;\n } catch {\n // Ignore parse errors, start fresh\n }\n }\n\n const updated = {\n ...existingCredentials,\n defaultWorkspace: workspaceId,\n // Provenance is the CALLER's to state, and defaults to 'user' because the\n // only user-facing caller is `mutagent config set workspace`. Machine\n // callers that pick a workspace FOR the user — `init`'s auto-correction to\n // workspaces[0], for instance — must pass 'login-inferred', or the gate\n // that exists to refuse a guessed workspace is handed a laundered guess.\n defaultWorkspaceSource: source,\n };\n\n writeSecureFile(CREDENTIALS_FILE, JSON.stringify(updated, null, 2));\n}\n\nexport function setDefaultOrganization(organizationId: string): void {\n if (!existsSync(CREDENTIALS_DIR)) {\n mkdirSync(CREDENTIALS_DIR, { recursive: true });\n }\n\n let existingCredentials: Record<string, unknown> = {};\n if (existsSync(CREDENTIALS_FILE)) {\n try {\n existingCredentials = JSON.parse(readFileSync(CREDENTIALS_FILE, 'utf-8')) as Record<string, unknown>;\n } catch {\n // Ignore parse errors, start fresh\n }\n }\n\n const updated = {\n ...existingCredentials,\n defaultOrganization: organizationId,\n };\n\n writeSecureFile(CREDENTIALS_FILE, JSON.stringify(updated, null, 2));\n}\n",
@@ -47,9 +47,9 @@
47
47
  "/**\n * Registry of intentional behaviour that is commonly mistaken for a defect\n * (issue #1558, D18).\n *\n * WHY THIS EXISTS\n *\n * Four of fifteen claims in the originating report were not defects. They were\n * deliberate design decisions that, from outside the project, are\n * indistinguishable from breakage: a package that 404s on npm looks unpublished\n * whether it was withheld on purpose or dropped by accident. One reporter\n * hand-wrote a replacement CLI rather than ask, because nothing in the product\n * told him the thing he needed already shipped under another name.\n *\n * That is a documentation failure surfacing as a bug report, and the cheapest\n * place to answer it is the moment someone is typing the report.\n *\n * PROMPT, NEVER A BLOCK\n *\n * A match SURFACES context and submits anyway. It has no veto, and this is not\n * a detail to soften later: these four areas are precisely where a real\n * regression would be easiest to dismiss. If helix genuinely stopped\n * downloading, the draft would read exactly like the known-by-design entry. A\n * registry that could suppress that report would blind the product to its own\n * worst failures while feeling helpful. So the matcher returns entries and\n * nothing else — there is no refusal signal in this module's contract, and the\n * test suite pins that.\n *\n * CONTENT RULE\n *\n * Every string here reaches a user's terminal. No internal code names, no\n * private repository references, no internal organisation names. A user-facing\n * explanation that leaks internal vocabulary explains nothing and discloses\n * something.\n */\n\n/** One known-intentional behaviour, with the signals that suggest it. */\nexport interface ByDesignEntry {\n /** Stable identifier, used in tests and in `--json` output. */\n id: string;\n /** Short headline shown above the explanation. */\n title: string;\n /**\n * Draft-text signals. ANY match selects the entry. Each expression pairs the\n * subject with a symptom so that merely naming a package does not fire it —\n * a user writing \"helix installed fine\" should never be lectured about npm.\n */\n looksLike: RegExp[];\n /** The explanation shown to the user. Plain, specific, and actionable. */\n reality: string;\n}\n\n/** Symptom vocabulary shared by the \"package is not on npm\" entries. */\nconst NOT_FOUND = String.raw`404|not\\s+found|missing|unavailable|unpublished|doesn'?t\\s+exist|does\\s+not\\s+exist|no\\s+such\\s+package|cannot\\s+install|can'?t\\s+install|fails?\\s+to\\s+install`;\n\n/** Symptom vocabulary for \"this command does not exist\". */\nconst NOT_A_COMMAND = String.raw`not\\s+a\\s+command|unknown\\s+command|unrecognized|unrecognised|doesn'?t\\s+exist|does\\s+not\\s+exist|not\\s+found|missing|no\\s+such\\s+command|invalid\\s+command`;\n\n/**\n * Build the two orderings of a subject/symptom pair. Reports are written both\n * ways round (\"tools 404s\" and \"404 on tools\"), and a matcher that only handles\n * one of them fires on a coin flip.\n */\nfunction pairPatterns(subject: string, symptoms: string): RegExp[] {\n return [\n new RegExp(`${subject}[^\\\\n]{0,60}?(?:${symptoms})`, 'i'),\n new RegExp(`(?:${symptoms})[^\\\\n]{0,60}?${subject}`, 'i'),\n ];\n}\n\nconst TOOLS_PKG = String.raw`@mutagent\\/tools`;\nconst HELIX_PKG = String.raw`@mutagent\\/helix`;\n\n/**\n * The four seeded entries. Each was verified against the originating report.\n * Add an entry when a by-design behaviour draws a second mistaken report.\n */\nexport const BY_DESIGN_ENTRIES: ByDesignEntry[] = [\n {\n id: 'mutagent-tools-not-on-npm',\n title: '@mutagent/tools is not published to npm — on purpose',\n looksLike: pairPatterns(TOOLS_PKG, NOT_FOUND),\n reality:\n '@mutagent/tools is intentionally not published to the public npm registry, so a 404 there is the expected result rather than a broken release. Its functionality is compiled into the mutagent-cli binary that ships inside helix — installing helix already gives you the tooling, and there is nothing separate to install. Install it with: mutagent install helix',\n },\n {\n id: 'mutagent-helix-not-on-npm',\n title: '@mutagent/helix is not published to npm — on purpose',\n looksLike: pairPatterns(HELIX_PKG, NOT_FOUND),\n reality:\n 'Helix is not distributed through the public npm registry, so a 404 there is expected. It is delivered by the Mutagent CLI itself, which authenticates you, fetches a signed download from private storage, verifies its checksum, and initializes it into your project. Install it with: mutagent install helix',\n },\n {\n id: 'trace-lives-in-a-different-binary',\n title: 'trace is a mutagent-cli command, not a mutagent command',\n looksLike: [\n ...pairPatterns(String.raw`mutagent\\s+trace`, NOT_A_COMMAND),\n /\\btrace\\b[^\\n]{0,40}?(?:not\\s+a\\s+(?:valid\\s+)?(?:sub)?command|unknown\\s+command)/i,\n ],\n reality:\n 'trace is not a subcommand of mutagent. It lives in mutagent-cli — a different binary — which ships inside helix. Install it with: mutagent install helix, then run: mutagent-cli trace <args>',\n },\n {\n id: 'two-separate-binaries',\n title: 'mutagent and mutagent-cli are two different binaries',\n looksLike: [\n /(?:no|not|missing|can'?t\\s+find|cannot\\s+find|couldn'?t\\s+find|where\\s+is)[^\\n]{0,40}?mutagent-cli\\s+(?:binary|executable|command)/i,\n /mutagent-cli\\s+(?:binary|executable|command)[^\\n]{0,60}?(?:missing|not\\s+found|doesn'?t\\s+exist|does\\s+not\\s+exist|not\\s+installed)/i,\n new RegExp(String.raw`no\\s+mutagent-cli[^\\n]{0,40}?in\\s+@mutagent\\/cli`, 'i'),\n ],\n reality:\n 'mutagent and mutagent-cli are separate binaries that come from separate packages. @mutagent/cli provides the mutagent binary only — account, configuration, and installation commands. The mutagent-cli binary ships inside helix and carries the trace tooling. Having both installed is normal and expected.',\n },\n];\n\n/**\n * Return every registry entry whose signals appear in `draft`, in registry\n * order. An empty array means nothing matched, which is the common case and\n * carries no meaning beyond \"we have no context to add\".\n *\n * This function informs. It does not gate: callers must surface the result and\n * submit the feedback regardless.\n */\nexport function matchByDesign(draft: string): ByDesignEntry[] {\n if (!draft) return [];\n return BY_DESIGN_ENTRIES.filter((entry) =>\n entry.looksLike.some((pattern) => pattern.test(draft)),\n );\n}\n",
48
48
  "import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { handleError } from '../../lib/errors.js';\nimport {\n installPackage,\n VALID_PACKAGES,\n VALID_HARNESSES,\n type InstallDeps,\n} from '../../lib/installer.js';\n\ninterface InstallActionOptions {\n harness: string;\n global?: boolean;\n version?: string;\n}\n\n/**\n * Create the `mutagent install <package>` meta-command.\n *\n * Surface:\n * mutagent install <package> [--harness <claude-code|codex|omp>]\n * [--version <v>] [--json]\n * where <package> ∈ { helix }.\n *\n * `diagnostics` and `evaluator` were removed as install targets when early\n * access ended and their npm packages were unpublished: an install path that\n * resolves to a package no longer on the registry can only ever 404. They are\n * not merely dropped from the list — `installer.ts` rejects them BY NAME with\n * the route that still works, because helix carries both skills (its payload\n * ships `mutagent-diagnostics/` and `mutagent-evaluator/`) along with the\n * `mutagent-cli` binary.\n *\n * Install scope is fixed, not per-invocation: helix installs into the current\n * project. `--global` is retired (issue #1558, D8) but stays REGISTERED so\n * passing it explains what actually happens, rather than Commander's bare\n * \"error: unknown option '--global'\" — which tells a user what they cannot do\n * and nothing about what happens instead.\n *\n * `deps` is injectable so tests can drive the full parse→action→exit path\n * through CommandTester with a deterministic auth gate / command runner\n * (config credential resolution is frozen at module load, so env overrides\n * alone cannot force the unauthenticated state in a test).\n */\nexport function createInstallCommand(deps?: InstallDeps): Command {\n const install = new Command('install')\n .description('Install a Mutagent package (helix)')\n .argument('<package>', `Package to install: ${VALID_PACKAGES.join(', ')}`)\n .option(\n '--harness <harness>',\n `Target harness: ${VALID_HARNESSES.join(', ')}`,\n 'claude-code',\n )\n .option('--global', '(retired) Install scope is fixed per package')\n .option('--version <version>', 'Package version to install (default: latest)')\n .addHelpText('after', `\n${chalk.bold('Arguments & flags:')}\n ${chalk.bold('<package>')} ${VALID_PACKAGES.join(' | ')}\n ${chalk.bold('--harness <h>')} ${VALID_HARNESSES.join(' | ')} ${chalk.dim('(default: claude-code)')}\n ${chalk.bold('--version <v>')} Pin a package version ${chalk.dim('(default: latest)')}\n ${chalk.bold('--json')} Structured output\n\n${chalk.bold('Install scope')} ${chalk.dim('(fixed per package — not selectable)')}:\n ${chalk.bold('helix')} → installed into the current directory\n ${chalk.dim('--global')} is retired: scope is no longer a choice.\n\n${chalk.bold('Examples:')}\n ${chalk.dim('$')} mutagent install helix\n ${chalk.dim('$')} mutagent install helix --harness codex\n ${chalk.dim('$')} mutagent install helix --version 1.2.3\n ${chalk.dim('$')} mutagent install helix --json\n\n${chalk.bold('Packages:')}\n ${chalk.bold('helix')} ${chalk.green('(available)')} — the ADLC (Agent Development Life Cycle Orchestrator). Downloaded from a private\n registry via a login-brokered signed URL, sha256-verified, then\n initialized into your project. No static secret ships in the CLI.\n ${chalk.dim('Installs every harness itself (Claude + Codex) — --harness does not apply.')}\n ${chalk.dim('Carries the diagnostics and evaluator skills, plus the mutagent-cli binary.')}\n\n${chalk.yellow('Note:')} install is login-gated. Run ${chalk.cyan('mutagent login')} first (else exits with a login directive).\n `)\n .action(async (pkg: string, options: InstallActionOptions) => {\n const isJson = getJsonFlag(install);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const result = await installPackage(\n pkg,\n { harness: options.harness, global: options.global, version: options.version },\n deps,\n );\n\n if (isJson) {\n output.output({\n success: true,\n package: result.package,\n version: result.version,\n harness: result.harness,\n scope: result.scope,\n // `projectPath` appears ONLY when the install really targeted a\n // project (helix). The global npm path reports no path at all rather\n // than inventing one.\n ...(result.projectPath ? { projectPath: result.projectPath } : {}),\n // Stated explicitly so an agent can branch on it. `success: true`\n // means \"the install step did what it does\", NOT \"you are ready\".\n skillInstalled: result.skillInstalled,\n ...(result.nextStep ? { nextStep: result.nextStep } : {}),\n _links: {\n install: 'mutagent install <package> [--harness <h>] [--version <v>]',\n login: 'mutagent login',\n },\n });\n } else if (result.skillInstalled) {\n output.success(\n `Installed ${result.package}@${result.version} for ${result.harness} in ${result.projectPath ?? 'this project'}`,\n );\n } else {\n // Not reachable today — helix runs its own init and throws unless it\n // exits 0, so a returned result always has skillInstalled:true. Kept\n // because the alternative to an honest incomplete-install message is\n // printing NOTHING for that state, which is the D7 defect returning\n // by omission. The npm-specific wording it used to carry (\"installed\n // globally\", the raw npm argv) went with the npm path.\n output.success(\n `Installed ${result.package}@${result.version}, but the skill is not in place yet`,\n );\n console.log(\n `${chalk.yellow('⚠')} No skill was installed yet — a setup step still has to run.`,\n );\n if (result.nextStep) {\n console.log(`${chalk.blue('→')} Run next: ${chalk.cyan(result.nextStep)}`);\n }\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n return install;\n}\n",
49
49
  "/**\n * `mutagent trace` — a signpost, not an implementation (issue #1558, D11).\n *\n * `trace` deliberately does NOT live in this binary. It ships in `mutagent-cli`,\n * a different binary from a different package. Users reasonably assume one\n * `mutagent*` binary does everything, so `mutagent trace …` used to fail with\n * Commander's bare \"unknown command\", which reads as \"this feature does not\n * exist\" rather than \"you have the wrong binary\".\n *\n * One reporter concluded the feature was missing and hand-wrote a replacement.\n * That is the cost of an accurate-but-uninformative error.\n *\n * Registering the name lets us answer the question the user actually asked —\n * where is trace — while still exiting non-zero, because in THIS binary the\n * command genuinely did not run. It is a redirect, not a shim: no tracing work\n * happens here and none should ever be added.\n */\n\nimport { Command } from 'commander';\nimport { getJsonFlag } from '../lib/output.js';\nimport { MutagentError, handleError } from '../lib/errors.js';\n\n/**\n * The one-line explanation, shared by the command and the by-design registry so\n * the two can never drift into telling users different stories.\n */\nexport const TRACE_RELOCATION_HINT =\n 'trace lives in the `mutagent-cli` binary, which ships inside helix (install it with: mutagent install helix)';\n\nexport function createTraceCommand(): Command {\n const trace = new Command('trace')\n .description('Not in this binary — trace lives in mutagent-cli')\n // Swallow whatever flags/args the user typed for the real command; we are\n // only here to redirect, and rejecting their argv first would bury the hint\n // under a parse error about a flag that is valid in the other binary.\n .allowUnknownOption(true)\n .allowExcessArguments(true)\n .argument('[args...]', 'Arguments intended for `mutagent-cli trace`')\n .addHelpText(\n 'after',\n `\nThis binary (mutagent) does not provide trace.\n\n ${TRACE_RELOCATION_HINT}\n\nInstall one of those, then run:\n\n mutagent-cli trace <args>\n`,\n )\n .action((args: string[]) => {\n const isJson = getJsonFlag(trace);\n const forwarded = args.length > 0 ? ` ${args.join(' ')}` : ' <args>';\n handleError(\n new MutagentError(\n 'INVALID_ARGUMENTS',\n `\\`mutagent trace\\` is not a command — ${TRACE_RELOCATION_HINT}.`,\n `Run it with the other binary instead: mutagent-cli trace${forwarded}\\nIf mutagent-cli is not installed: mutagent install helix`,\n ),\n isJson,\n );\n });\n\n return trace;\n}\n",
50
- "/**\n * `mutagent helix` — spawn and drive a Helix session running in a cloud\n * sandbox, from the terminal it would run in locally.\n *\n * The whole surface is built around one asymmetry: the sandbox outlives the\n * terminal. So detaching is cheap and reversible (Ctrl-C, a dropped connection,\n * a closed laptop) while destroying takes an explicit `rm`. Everything else —\n * resume-by-sequence-number, gap reporting, stdout/stderr separation — exists to\n * make the reversible case actually reversible.\n *\n * TWO WAYS IN, AND THEY ARE NOT INTERCHANGEABLE\n *\n * `spawn` takes a DEFINITION (`--image`, `--arch`) and gives you a persistent\n * box to attach and exec against. `run` and `exec` without `--sandbox` are\n * ONE-SHOT: they start from a named PRESET, do one thing, and tear the box\n * down. The preset path exists so a caller never has to learn an image\n * reference, a registry or a region — see `helix presets`.\n *\n * NOTE: `mutagent install helix` installs the Helix TOOL locally. This group\n * runs a session REMOTELY. They are different operations on the same noun; the\n * help text below says so, because the collision is not obvious from the names.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { registerSpawnCommand } from './spawn.js';\nimport { registerAttachCommand } from './attach.js';\nimport { registerSendCommand } from './send.js';\nimport { registerSessionCommand } from './session-start.js';\nimport { registerRunCommand, registerExecCommand } from './run.js';\nimport {\n registerLsCommand,\n registerPresetsCommand,\n registerRmCommand,\n registerTracesCommand,\n} from './inventory.js';\n\nexport function createHelixCommand(): Command {\n const helix = new Command('helix')\n .description('Run Helix sessions in a cloud sandbox')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix run \"fix the failing test\" --prompt \"$(cat agent.md)\"\n ${chalk.dim('$')} mutagent helix exec -- uname -m ${chalk.dim('One command, fresh box')}\n ${chalk.dim('$')} mutagent helix presets ${chalk.dim('What a one-shot can run on')}\n ${chalk.dim('$')} mutagent helix spawn --image alpine:3.20 ${chalk.dim('Persistent box, then attach')}\n ${chalk.dim('$')} mutagent helix session start sbx_1 --rpc ${chalk.dim('Start an agent inside that box')}\n ${chalk.dim('$')} mutagent helix ls ${chalk.dim('What is running')}\n ${chalk.dim('$')} mutagent helix exec --sandbox sbx_1 -- bun test ${chalk.dim('Command in that box')}\n ${chalk.dim('$')} mutagent helix attach sbx_1 --since 412 ${chalk.dim('Resume after a sequence number')}\n ${chalk.dim('$')} mutagent helix send sbx_1 --session s1 \"and now\" ${chalk.dim('Talk to a running session')}\n ${chalk.dim('$')} mutagent helix traces sbx_1 --json ${chalk.dim('What the session actually did')}\n ${chalk.dim('$')} mutagent helix rm sbx_1 --force ${chalk.dim('Destroy it')}\n\nSubcommands:\n run, exec, spawn, session, ls, presets, attach, send, traces, rm\n\nOne-shot vs persistent:\n ${chalk.bold('run')} and ${chalk.bold('exec')} (without --sandbox) start from a named PRESET, do one\n thing and tear the sandbox down. Nothing to clean up, no image to know.\n ${chalk.bold('spawn')} takes an explicit --image and leaves a box running for you to\n ${chalk.bold('attach')} and ${chalk.bold('exec --sandbox')} against until you ${chalk.bold('rm')} it.\n\nBoxes vs sessions vs watching vs steering:\n ${chalk.bold('spawn')} gives you a BOX. ${chalk.bold('session start')} gives you an AGENT inside that box.\n ${chalk.bold('attach')} WATCHES that agent; it does not type into one. ${chalk.bold('send')} TYPES INTO it,\n from any terminal holding the id — so a session can be redirected without the\n terminal that started it. A box with no session is normal: that is what\n ${chalk.bold('exec')} runs against.\n\nLifecycle:\n A spawned sandbox outlives your terminal. Ctrl-C, a dropped connection and a\n closed terminal all DETACH — the session keeps running and can be re-attached.\n Only 'mutagent helix rm <id>' destroys a sandbox, so remember to run it when\n you are finished.\n\nAccess:\n Sandbox access is minted per WORKSPACE, so a workspace must be configured:\n ${chalk.dim('$')} mutagent config set workspace <workspace-id>\n\nOutput:\n Sandbox stdout goes to stdout, sandbox stderr goes to stderr, and anything\n this CLI says about the session goes to stderr. Redirects and pipes therefore\n behave as they would for a locally running process. Spinners and colour are\n suppressed when the output is not a terminal or NO_COLOR is set.\n\nNot to be confused with:\n 'mutagent install helix' — that installs the Helix tool on THIS machine.\n This group runs a session on a REMOTE sandbox.\n\nAI Agent Directive:\n Run 'mutagent helix ls --json' before attach, exec --sandbox, or rm.\n ONLY the streaming paths ('attach', 'spawn' without --detach, 'exec --sandbox'\n without --no-stream) emit NDJSON in --json mode — one object per line, with a\n complete summary object as the final line — because a live stream is not a\n single JSON document until it ends. Everything else returns one JSON object.\n 'run' is always blocking: it takes TWO strings, --prompt (WHO the agent is)\n and the task (WHAT to do). Never fold one into the other.\n Spawning consumes resources until removed — confirm with the user before\n 'spawn' and before 'rm'.\n `,\n );\n\n registerRunCommand(helix);\n registerExecCommand(helix);\n registerSpawnCommand(helix);\n registerLsCommand(helix);\n registerPresetsCommand(helix);\n registerAttachCommand(helix);\n registerSendCommand(helix);\n registerSessionCommand(helix);\n registerTracesCommand(helix);\n registerRmCommand(helix);\n\n return helix;\n}\n",
50
+ "/**\n * `mutagent helix` — spawn and drive a Helix session running in a cloud\n * sandbox, from the terminal it would run in locally.\n *\n * The whole surface is built around one asymmetry: the sandbox outlives the\n * terminal. So detaching is cheap and reversible (Ctrl-C, a dropped connection,\n * a closed laptop) while destroying takes an explicit `rm`. Everything else —\n * resume-by-sequence-number, gap reporting, stdout/stderr separation — exists to\n * make the reversible case actually reversible.\n *\n * TWO WAYS IN, AND THEY ARE NOT INTERCHANGEABLE\n *\n * `spawn` takes a DEFINITION (`--image`, `--arch`) and gives you a persistent\n * box to attach and exec against. `run` and `exec` without `--sandbox` are\n * ONE-SHOT: they start from a named PRESET, do one thing, and tear the box\n * down. The preset path exists so a caller never has to learn an image\n * reference, a registry or a region — see `helix presets`.\n *\n * NOTE: `mutagent install helix` installs the Helix TOOL locally. This group\n * runs a session REMOTELY. They are different operations on the same noun; the\n * help text below says so, because the collision is not obvious from the names.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { registerSpawnCommand } from './spawn.js';\nimport { registerAttachCommand } from './attach.js';\nimport { registerSendCommand } from './send.js';\nimport { registerSignalCommand } from './signal.js';\nimport { registerSessionCommand } from './session-start.js';\nimport { registerRunCommand, registerExecCommand } from './run.js';\nimport {\n registerLsCommand,\n registerPresetsCommand,\n registerRmCommand,\n registerTracesCommand,\n} from './inventory.js';\n\nexport function createHelixCommand(): Command {\n const helix = new Command('helix')\n .description('Run Helix sessions in a cloud sandbox')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix run \"fix the failing test\" --prompt \"$(cat agent.md)\"\n ${chalk.dim('$')} mutagent helix exec -- uname -m ${chalk.dim('One command, fresh box')}\n ${chalk.dim('$')} mutagent helix presets ${chalk.dim('What a one-shot can run on')}\n ${chalk.dim('$')} mutagent helix spawn --image alpine:3.20 ${chalk.dim('Persistent box, then attach')}\n ${chalk.dim('$')} mutagent helix session start sbx_1 --rpc ${chalk.dim('Start an agent inside that box')}\n ${chalk.dim('$')} mutagent helix ls ${chalk.dim('What is running')}\n ${chalk.dim('$')} mutagent helix exec --sandbox sbx_1 -- bun test ${chalk.dim('Command in that box')}\n ${chalk.dim('$')} mutagent helix attach sbx_1 --since 412 ${chalk.dim('Resume after a sequence number')}\n ${chalk.dim('$')} mutagent helix send sbx_1 --session s1 \"and now\" ${chalk.dim('Talk to a running session')}\n ${chalk.dim('$')} mutagent helix signal sbx_1 --session s1 ${chalk.dim('Stop the agent, keep the box')}\n ${chalk.dim('$')} mutagent helix traces sbx_1 --json ${chalk.dim('What the session actually did')}\n ${chalk.dim('$')} mutagent helix rm sbx_1 --force ${chalk.dim('Destroy it')}\n\nSubcommands:\n run (alias: agent), exec, spawn, session, ls, presets, attach, send, signal,\n traces, rm\n\nOne-shot vs persistent:\n ${chalk.bold('run')} and ${chalk.bold('exec')} (without --sandbox) start from a named PRESET, do one\n thing and tear the sandbox down. Nothing to clean up, no image to know.\n ${chalk.bold('spawn')} takes an explicit --image and leaves a box running for you to\n ${chalk.bold('attach')} and ${chalk.bold('exec --sandbox')} against until you ${chalk.bold('rm')} it.\n\nBoxes vs sessions vs watching vs steering:\n ${chalk.bold('spawn')} gives you a BOX. ${chalk.bold('session start')} gives you an AGENT inside that box.\n ${chalk.bold('attach')} WATCHES that agent; it does not type into one. ${chalk.bold('send')} TYPES INTO it,\n from any terminal holding the id — so a session can be redirected without the\n terminal that started it. A box with no session is normal: that is what\n ${chalk.bold('exec')} runs against.\n ${chalk.bold('signal')} STOPS that agent and leaves the box standing — the remote Ctrl-C.\n Only ${chalk.bold('rm')} destroys a sandbox.\n\nLifecycle:\n A spawned sandbox outlives your terminal. Ctrl-C, a dropped connection and a\n closed terminal all DETACH — the session keeps running and can be re-attached.\n Stopping the AGENT is a different thing from destroying the BOX: 'signal' does\n the first, 'rm' does the second.\n Only 'mutagent helix rm <id>' destroys a sandbox, so remember to run it when\n you are finished.\n\nAccess:\n Sandbox access is minted per WORKSPACE, so a workspace must be configured:\n ${chalk.dim('$')} mutagent config set workspace <workspace-id>\n\nOutput:\n Sandbox stdout goes to stdout, sandbox stderr goes to stderr, and anything\n this CLI says about the session goes to stderr. Redirects and pipes therefore\n behave as they would for a locally running process. Spinners and colour are\n suppressed when the output is not a terminal or NO_COLOR is set.\n\nNot to be confused with:\n 'mutagent install helix' — that installs the Helix tool on THIS machine.\n This group runs a session on a REMOTE sandbox.\n\nAI Agent Directive:\n Run 'mutagent helix ls --json' before attach, exec --sandbox, or rm.\n ONLY the streaming paths ('attach', 'spawn' without --detach, 'exec --sandbox'\n without --no-stream) emit NDJSON in --json mode — one object per line, with a\n complete summary object as the final line — because a live stream is not a\n single JSON document until it ends. Everything else returns one JSON object.\n 'run' is always blocking: it takes TWO strings, --prompt (WHO the agent is)\n and the task (WHAT to do). Never fold one into the other.\n 'run' and 'agent' are the same command; 'run' is the canonical name.\n To stop a running agent, prefer 'send --type abort' (asks it to stop), then\n 'signal' (does not ask). Neither destroys the sandbox — only 'rm' does.\n Spawning consumes resources until removed — confirm with the user before\n 'spawn' and before 'rm'.\n `,\n );\n\n registerRunCommand(helix);\n registerExecCommand(helix);\n registerSpawnCommand(helix);\n registerLsCommand(helix);\n registerPresetsCommand(helix);\n registerAttachCommand(helix);\n registerSendCommand(helix);\n registerSignalCommand(helix);\n registerSessionCommand(helix);\n registerTracesCommand(helix);\n registerRmCommand(helix);\n\n return helix;\n}\n",
51
51
  "import type { Command } from 'commander';\nimport chalk from 'chalk';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, handleError } from '../../lib/errors.js';\nimport {\n hostArch,\n openAttachStream,\n sandboxLinks,\n spawnSandbox,\n type EgressPolicy,\n type EgressRule,\n type SandboxArch,\n type SandboxDefinition,\n type SandboxNetwork,\n type SandboxRecord,\n} from '../../lib/sandbox-api.js';\nimport { canAnimate } from '../../lib/tty.js';\nimport { attachToSandbox, reattachHint } from './session.js';\n\ninterface SpawnOptions {\n image?: string;\n arch?: string;\n name?: string;\n provider?: string;\n env?: string;\n egress?: string;\n egressAllow?: string[];\n detach?: boolean;\n}\n\nconst ARCHES: SandboxArch[] = ['x86_64', 'arm64'];\nconst EGRESS_POLICIES: EgressPolicy[] = ['deny', 'allowlist', 'allow'];\nconst EGRESS_KINDS: EgressRule['kind'][] = ['port', 'cidr', 'domain'];\n\nexport function registerSpawnCommand(parent: Command): void {\n parent\n .command('spawn')\n .description('Spawn a Helix session in a cloud sandbox and attach to it')\n .requiredOption('--image <ref>', 'Image reference (repository:tag or @digest)')\n .option('--arch <arch>', `Image architecture: ${ARCHES.join(' | ')} (default: this host's)`)\n .option('--name <name>', 'Definition name (default: derived from the image reference)')\n .option('--provider <name>', 'Provider registry key (default: the backend default)')\n .option('--env <name>', 'Environment (secrets + variables) to load at spawn')\n .option(\n '--egress <policy>',\n `Outbound network policy: ${EGRESS_POLICIES.join(' | ')} (default: deny)`,\n )\n .option(\n '--egress-allow <rule>',\n 'Allowance for --egress allowlist, as kind:value (repeatable)',\n collectRule,\n [],\n )\n .option('--detach', 'Spawn without attaching — print the ID and return')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix spawn --image alpine:3.20\n ${chalk.dim('$')} mutagent helix spawn --image ghcr.io/example/helix:latest --arch x86_64\n ${chalk.dim('$')} mutagent helix spawn --image alpine:3.20 --detach --json\n ${chalk.dim('$')} mutagent helix spawn --image alpine:3.20 --provider docker --env staging\n ${chalk.dim('$')} mutagent helix spawn --image <helix-image> --egress allow ${chalk.dim('Required for a Helix session')}\n ${chalk.dim('$')} mutagent helix spawn --image <ref> --egress allowlist --egress-allow domain:api.anthropic.com\n\n--image is required. A sandbox is spawned from a DEFINITION, and the definition\nnames its own image — there is no default the CLI could invent for you. To run\nsomething without knowing an image reference, use 'mutagent helix run' or\n'mutagent helix exec', which spawn from a named preset instead.\n\n--arch defaults to this host's architecture, on the assumption that you are\nrunning an image you just built. A definition whose arch does not match its\nimage is rejected at preflight rather than emulated, so set it explicitly when\nthe image was built elsewhere.\n\n--env names an Environment (a stored bundle of secrets and variables). It is a\nDIFFERENT axis from --provider, which selects the backend. Secrets never travel\non the command line.\n\nNETWORK EGRESS IS DENIED BY DEFAULT, AND THAT BREAKS HELIX SESSIONS:\n A sandbox runs code we did not write, so the safe default is the default:\n nothing reaches out. That is right for a plain 'exec' box, which needs no\n network at all.\n\n It is WRONG for a Helix session, for two independent reasons — either alone\n is enough to sink it:\n 1. Under deny the container runs with --network none. Docker accepts -P and\n publishes nothing, so the in-box server on :8080 is unreachable and\n 'mutagent helix session start' fails with \"Helix is not reachable\".\n 2. An agent turn has to reach a model provider regardless.\n\n So: ${chalk.bold('--egress allow')} before 'helix session start'. Without it the failure\n presents as an unreachable box, which reads like a broken image rather than a\n policy you chose.\n\n ${chalk.bold('--egress allowlist')} narrows that to named allowances, each given explicitly\n as kind:value — 'domain:api.anthropic.com', 'port:443', 'cidr:10.0.0.0/8'. The\n kind is never inferred from the value. An allowlist with no rules denies\n everything, so it is refused rather than silently walling the box off; it also\n needs a provider with egress control, which not every backend has.\n\nWithout --detach this spawns and immediately attaches, so the common path is a\nsingle command. Ctrl-C then DETACHES — the sandbox keeps running and the\nre-attach command is printed. Use 'mutagent helix rm <id> --force' to destroy it.\n\nAI Agent Directive:\n Pass --egress allow whenever the box is for a Helix session — 'mutagent helix\n session start' CANNOT reach the in-box server under the default deny policy,\n and the error it raises names the box, not the policy. A box you only 'exec'\n in needs no egress.\n Prefer --detach --json for automation: it returns one JSON object with the\n sandbox id, so you can decide what to run before committing to a live stream.\n Without --detach, --json output is NDJSON and the final line is the summary.\n A spawned sandbox costs resources until 'mutagent helix rm <id>' — confirm\n with the user before spawning, and tell them the ID afterwards.\n `,\n )\n .action(async (options: SpawnOptions) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // VALIDATE before any API call (§4.5 / HR-6). Every field below is\n // rejected by the server's schema too, but a 422 carrying an inlined\n // TypeBox schema is not an error message a person can act on.\n const definition = buildDefinition(options);\n\n const sandbox = await createSandbox(definition, isJson);\n const id = requireId(sandbox);\n\n if (options.detach) {\n reportDetached(sandbox, id, output, isJson);\n return;\n }\n\n if (isJson) {\n process.stdout.write(`${JSON.stringify({ type: 'spawned', sandbox })}\\n`);\n }\n\n const result = await attachToSandbox({\n id,\n isJson,\n announce: `Spawned sandbox ${id}. Ctrl-C detaches without destroying it.`,\n open: ({ since, signal }) => openAttachStream(id, { since, signal }),\n });\n\n if (isJson) {\n console.log(\n JSON.stringify({\n success: true,\n sandbox,\n end: result.end,\n exitCode: result.exitCode,\n lastSeq: result.lastSeq,\n reconnects: result.reconnects,\n gaps: result.gaps,\n _links: sandboxLinks(id),\n }),\n );\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\nexport function buildDefinition(options: SpawnOptions): SandboxDefinition {\n const image = options.image?.trim() ?? '';\n if (image === '') {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n '--image is required and cannot be empty.',\n 'Example: mutagent helix spawn --image alpine:3.20',\n );\n }\n\n const arch = resolveArch(options.arch);\n\n const definition: SandboxDefinition = {\n // `||` is deliberate and `??` would be a defect here: a whitespace-only\n // `--name` trims to '', which must fall back to the derived name. `??`\n // only catches null/undefined, so it would spawn a sandbox named ''.\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty string must fall back; see above\n name: options.name?.trim() || deriveName(image),\n image,\n arch,\n };\n if (options.provider) definition.provider = options.provider;\n if (options.env) definition.environment = options.env;\n\n const network = resolveNetwork(options.egress, options.egressAllow ?? []);\n if (network) definition.network = network;\n\n return definition;\n}\n\n/**\n * Turn --egress / --egress-allow into the definition's network policy.\n *\n * Validated here, before the request, because every wrong shape below fails the\n * same way at runtime: the box comes up with no network, and the next command\n * reports \"Helix is not reachable\". That message names the box, so a typo in a\n * policy name presents as a broken image and sends the reader to the wrong\n * problem entirely.\n */\nexport function resolveNetwork(\n requested: string | undefined,\n rules: string[],\n): SandboxNetwork | undefined {\n if (requested === undefined) {\n if (rules.length > 0) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n '--egress-allow only means something with --egress allowlist.',\n 'Add --egress allowlist, or drop the allowances and use --egress allow.',\n );\n }\n // No flag: say nothing and let the server's default (deny) stand, rather\n // than sending a policy the caller never chose.\n return undefined;\n }\n\n const policy = requested.trim();\n if (!EGRESS_POLICIES.includes(policy as EgressPolicy)) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `--egress must be one of ${EGRESS_POLICIES.join(', ')}, got \"${requested}\".`,\n \"Use --egress allow to drive a Helix session; the default, deny, leaves the box with no network at all.\",\n );\n }\n\n if (policy !== 'allowlist') {\n if (rules.length > 0) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `--egress-allow is only read under \"allowlist\", so under \"${policy}\" the allowances would be silently discarded.`,\n `Use --egress allowlist to apply them, or drop them to keep --egress ${policy}.`,\n );\n }\n return { egress: policy as EgressPolicy };\n }\n\n if (rules.length === 0) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n 'An allowlist with no allowances denies everything — the same wall as --egress deny, under a name that says otherwise.',\n 'Name what may be reached: --egress-allow domain:api.anthropic.com\\nOr open it fully: --egress allow',\n );\n }\n\n return { egress: 'allowlist', allow: rules.map(parseRule) };\n}\n\n/** Commander accumulator for a repeatable option. */\nfunction collectRule(value: string, previous: string[]): string[] {\n return [...previous, value];\n}\n\n/**\n * `kind:value` — never inferred.\n *\n * \"443\" could be a port and \"10.0.0.0/8\" could be a cidr, and guessing right\n * most of the time produces a rule that is silently wrong the rest of the time.\n * A wrong allowance fails closed, so the box is unreachable and the reason is\n * invisible.\n */\nfunction parseRule(raw: string): EgressRule {\n const separator = raw.indexOf(':');\n const kind = separator === -1 ? '' : raw.slice(0, separator).trim();\n const value = separator === -1 ? '' : raw.slice(separator + 1).trim();\n\n if (!EGRESS_KINDS.includes(kind as EgressRule['kind']) || value === '') {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `--egress-allow must be <kind>:<value>, got \"${raw}\".`,\n `kind is one of ${EGRESS_KINDS.join(', ')}. Examples:\\n --egress-allow domain:api.anthropic.com\\n --egress-allow port:443\\n --egress-allow cidr:10.0.0.0/8`,\n );\n }\n\n return { kind: kind as EgressRule['kind'], value };\n}\n\nfunction resolveArch(requested: string | undefined): SandboxArch {\n if (requested !== undefined) {\n const value = requested.trim();\n if (!ARCHES.includes(value as SandboxArch)) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `--arch must be one of ${ARCHES.join(', ')}, got \"${requested}\".`,\n 'Use --arch arm64 for Apple Silicon images, --arch x86_64 for Intel/AMD.',\n );\n }\n return value as SandboxArch;\n }\n\n const detected = hostArch();\n if (detected === null) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n `This host reports architecture \"${process.arch}\", which has no sandbox equivalent.`,\n `Name it explicitly: --arch ${ARCHES.join(' | --arch ')}`,\n );\n }\n return detected;\n}\n\n/**\n * A readable definition name from the image reference.\n *\n * The name is what shows in `helix ls`, so deriving it from the image is what\n * makes a list of sandboxes readable without a lookup. Sanitised because the\n * schema caps it at 128 characters and a digest reference is longer than that.\n */\nexport function deriveName(image: string): string {\n const slug = image\n .replace(/^.*\\//, '')\n .replace(/[^A-Za-z0-9._-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .slice(0, 120);\n return slug === '' ? 'mutagent-cli' : slug;\n}\n\nasync function createSandbox(\n definition: SandboxDefinition,\n isJson: boolean,\n): Promise<SandboxRecord> {\n if (!canAnimate(isJson)) return spawnSandbox(definition);\n\n const { default: ora } = await import('ora');\n const spinner = ora(`Spawning ${definition.image} (${definition.arch})...`).start();\n try {\n const sandbox = await spawnSandbox(definition);\n spinner.succeed(chalk.green(`Sandbox ${sandbox.id} spawned`));\n return sandbox;\n } catch (error) {\n spinner.fail(chalk.red('Spawn failed'));\n throw error;\n }\n}\n\n/**\n * A sandbox we cannot name is a sandbox we cannot attach to, re-attach to, or\n * destroy — so a missing `id` is a hard failure with the leak called out,\n * not an `undefined` threaded into three later URLs.\n */\nfunction requireId(sandbox: SandboxRecord): string {\n if (typeof sandbox.id === 'string' && sandbox.id !== '') return sandbox.id;\n throw new MutagentError(\n 'INVALID_RESPONSE',\n 'The server created a sandbox but did not return an id.',\n 'The sandbox may still be running — check with: mutagent helix ls',\n );\n}\n\nfunction reportDetached(\n sandbox: SandboxRecord,\n id: string,\n output: OutputFormatter,\n isJson: boolean,\n): void {\n if (isJson) {\n output.output({\n success: true,\n sandbox,\n _links: sandboxLinks(id),\n _directive: {\n instruction:\n 'The sandbox is running and detached. Attach to stream its output, or destroy it when finished — a detached sandbox consumes resources until removed.',\n next: [`mutagent helix attach ${id} --json`, `mutagent helix rm ${id} --json`],\n },\n });\n return;\n }\n\n output.output({\n id,\n status: sandbox.status ?? 'unknown',\n provider: sandbox.provider ?? 'unknown',\n arch: sandbox.arch ?? 'unknown',\n definition: sandbox.definitionName ?? 'unknown',\n });\n console.log('');\n console.log(` Attach: ${reattachHint(id, 0)}`);\n console.log(` Destroy: mutagent helix rm ${id} --force`);\n}\n",
52
- "/**\n * HTTP client for the sandbox API that backs `mutagent helix`.\n *\n * WHY THIS IS NOT THE SDK CLIENT (A-4 exception, disclosed)\n *\n * `.memory/design-principles.md` A-4 says the SDK is the only API client. The\n * sandbox routes are not in `@mutagent/sdk`, and two of them are\n * `text/event-stream` — a generated JSON client has nowhere to put a stream\n * you must consume incrementally. `sdk-client.ts` already carries a private\n * `request()` helper for \"endpoints not yet in SDK\"; this is the same escape\n * hatch, made public and stream-aware. When the routes land in the SDK, the\n * non-streaming calls here should move.\n *\n * AUTH IS A TWO-STEP EXCHANGE, NOT A BEARER PASSTHROUGH (#1517, G-C9)\n *\n * The sandbox routes want `Authorization: Bearer <token>` where the token is\n * an HMAC token the SERVER minted — not a platform API key. This module used\n * to send `Bearer <platform key>`: the right header SHAPE carrying the wrong\n * CLASS of credential, which verified as garbage and made every `helix`\n * command 401. That distinction is the whole trap — the header looked correct\n * in every log and every test that only checked its shape.\n *\n * The platform key now buys a short-lived, workspace-scoped operator token via\n * `POST /api/sandbox/token` (see `sandbox-token.ts`), and THAT is what rides\n * the Bearer header. The platform key itself travels as `x-api-key` on the\n * exchange route only — the way every other MutagenT route in this CLI\n * authenticates — and never becomes a sandbox credential.\n *\n * WHY THE SERVER INSISTS. Sandbox tokens come in three classes (operator ·\n * session · task) so that code running INSIDE a box cannot mint more boxes.\n * A CLI that forwarded the platform key would hand control-plane authority to\n * the first hop and erase that boundary before it could do any work.\n *\n * `x-api-key` is deliberately NOT sent alongside the Bearer token on sandbox\n * routes: sending both would let a contract mismatch pass silently. Tenancy\n * headers are sent because sandbox resources are workspace-scoped like\n * everything else on this server.\n */\n\n/// <reference lib=\"dom\" />\n\nimport { getApiKey, loadConfig } from './config.js';\nimport {\n ApiError,\n AuthenticationError,\n MutagentError,\n NotFoundError,\n WorkspaceContextError,\n} from './errors.js';\nimport { clearCachedToken, getOperatorToken, type ExchangeDeps } from './sandbox-token.js';\n\n// ---------------------------------------------------------------------------\n// Wire shapes — mirrored from mutagent/src/modules/sandbox/model.ts\n// ---------------------------------------------------------------------------\n\n/** CPU architecture a definition targets. Required — the schema has no default. */\nexport type SandboxArch = 'x86_64' | 'arm64';\n\n/** The configuration artifact. `name`, `image` and `arch` are required. */\n/** Outbound policy. `deny` is the server's default — opening egress is explicit. */\nexport type EgressPolicy = 'deny' | 'allowlist' | 'allow';\n\n/** One allowance under `allowlist`. The kind is explicit; nothing is inferred. */\nexport interface EgressRule {\n kind: 'port' | 'cidr' | 'domain';\n value: string;\n}\n\nexport interface SandboxNetwork {\n egress?: EgressPolicy;\n /** Allowances, when egress is `allowlist`. Needs provider egressControl support. */\n allow?: EgressRule[];\n}\n\nexport interface SandboxDefinition {\n name: string;\n image: string;\n arch: SandboxArch;\n environment?: string;\n provider?: string;\n workdir?: string;\n timeoutMs?: number;\n network?: SandboxNetwork;\n}\n\n/**\n * A sandbox as the server records it.\n *\n * The status field is `status`, NOT `state`. The stream events use `state`;\n * the record uses `status`. Rendering one with the other's name yields a table\n * of \"unknown\" that looks like a server problem.\n */\nexport interface SandboxRecord {\n id: string;\n generation?: number;\n provider?: string;\n arch?: string;\n status?: string;\n definitionName?: string;\n environmentName?: string;\n createdAt?: string;\n [key: string]: unknown;\n}\n\n/** Result of an exec or a one-shot run. */\nexport interface ExecResult {\n exitCode: number;\n stdout: string;\n stderr: string;\n timedOut: boolean;\n /** One-shot only — the box the run happened in. */\n sandboxId?: string;\n preset?: string;\n tornDown?: boolean;\n}\n\nexport interface Preset {\n name: string;\n description?: string;\n arch?: string;\n provider?: string;\n environment?: string;\n}\n\nexport interface PresetList {\n presets: Preset[];\n default: string | null;\n}\n\n/** `event: stdout` / `event: stderr` payload. */\nexport interface SandboxOutputPayload {\n seq: number;\n ts: string;\n text: string;\n}\n\n/** `event: status` payload. Uses `state`, unlike the record's `status`. */\nexport interface SandboxStatusPayload {\n state: string;\n exitCode: number | null;\n}\n\nexport interface SandboxErrorPayload {\n message: string;\n}\n\n/**\n * `event: sandbox` payload — the first frame of a one-shot stream.\n *\n * It arrives before any output precisely so a run that is interrupted still\n * leaves the user with the id of the box it created.\n */\nexport interface SandboxRunPayload {\n sandboxId: string;\n preset: string;\n}\n\n/**\n * `event: result` payload — the last frame before the terminal `status` of a\n * one-shot stream.\n *\n * `exitCode` is nullable because the server refuses to synthesise one: a turn\n * whose invocation failed outright never produced an exit code, and a `0` there\n * would read as success.\n */\nexport interface SandboxResultPayload {\n sandboxId: string;\n preset: string;\n exitCode: number | null;\n timedOut: boolean;\n /** Whether the server CONFIRMED teardown. False means the box may still exist. */\n tornDown: boolean;\n /** Present only when the turn failed rather than exited. */\n error?: string;\n}\n\nexport interface ExecRequest {\n command: string[];\n cwd?: string;\n timeoutMs?: number;\n}\n\n/**\n * `POST /api/sandbox/:id/input` body — one NDJSON command line for a session's\n * stdin. `line` is a string, not an object, because what the harness reads is a\n * byte-exact line; re-serialising a parsed object here would let this CLI\n * silently reorder or drop fields the harness was sent.\n */\nexport interface InputRequest {\n sessionId: string;\n line: string;\n}\n\n/**\n * The reply says only that the line was WRITTEN. The harness's answer to it\n * comes back on the event stream, correlated by the `id` inside `line`.\n */\nexport interface InputResult {\n accepted: boolean;\n}\n\n/**\n * `POST /api/sandbox/:id/session` body — start a Helix session inside a box\n * that already exists.\n *\n * `args` and `env` are on the wire but no flag sets them yet: `--env` already\n * means a stored Environment on `helix spawn`, and giving the same word a\n * second meaning inside one command group is how a flag becomes a trap. They\n * are declared here so the contract is visible at the boundary, not so the\n * command layer can quietly start using them.\n */\nexport interface StartSessionRequest {\n mode?: 'oneshot' | 'rpc';\n args?: string[];\n env?: Record<string, string>;\n}\n\n/** The session's id — the handle every later `attach`/`send` needs. */\nexport interface StartSessionResult {\n sessionId: string;\n status: string;\n}\n\n/** Fields every one-shot request shares. No image — presets exist so a caller never learns one. */\nexport interface OneShotCommon {\n preset?: string;\n timeoutMs?: number;\n keep?: boolean;\n}\n\nexport interface AgentRunRequest extends OneShotCommon {\n /** WHO the agent is — the agent definition. */\n prompt: string;\n /** WHAT to do this turn. A different prompt from `prompt`; never concatenated. */\n task: string;\n}\n\nexport interface OneShotRunRequest extends OneShotCommon {\n command: string[];\n cwd?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Connection\n// ---------------------------------------------------------------------------\n\nexport interface SandboxConnection {\n endpoint: string;\n apiKey: string;\n workspaceId: string;\n headers: Record<string, string>;\n}\n\n/**\n * Resolve endpoint + credential + workspace the same way every other command\n * does — env, then credentials file, then rc file — so `helix` cannot drift into\n * its own notion of who you are logged in as or which workspace you are in.\n *\n * `defaultWorkspace` is the same field `sdk-client.ts` and `install-telemetry.ts`\n * read; there is deliberately no new workspace mechanism here. It is REQUIRED\n * rather than optional because the exchange mints per-workspace — without one\n * there is nothing to scope a token to, and failing here with the standard\n * remediation beats a 422 from the server.\n */\nexport function resolveConnection(): SandboxConnection {\n const apiKey = getApiKey();\n if (!apiKey) throw new AuthenticationError();\n\n const config = loadConfig();\n const configured = config.endpoint?.trim();\n const endpoint = (configured === undefined || configured === ''\n ? 'https://api.mutagent.io'\n : configured\n ).replace(/\\/+$/, '');\n\n const workspaceId = requireWorkspace(config.defaultWorkspace);\n\n const headers: Record<string, string> = { 'x-workspace-id': workspaceId };\n if (config.defaultOrganization) headers['x-organization-id'] = config.defaultOrganization;\n\n return { endpoint, apiKey, workspaceId, headers };\n}\n\n/**\n * The workspace the token exchange will be scoped to.\n *\n * Split out and exported so the rule is reachable without `loadConfig()`, which\n * reads the developer's real credentials file and therefore cannot be made to\n * report \"no workspace\" inside a test. A guard that no test can trip is a guard\n * nobody knows is broken.\n *\n * Whitespace counts as absent: `MUTAGENT_WORKSPACE_ID=\" \"` is a mistake, and\n * sending it would trade a clear local error for a confusing remote one.\n */\nexport function requireWorkspace(workspaceId: string | undefined): string {\n if (workspaceId === undefined || workspaceId.trim() === '') {\n throw new WorkspaceContextError(\n 'A workspace is required: sandbox access is minted per workspace, not per account.',\n );\n }\n return workspaceId.trim();\n}\n\n// ---------------------------------------------------------------------------\n// Authenticated transport\n// ---------------------------------------------------------------------------\n\n/** Everything `fetchWithTokenRetry` needs, injected so it can be tested. */\nexport interface RetryTransport {\n /** Perform the HTTP call. */\n doFetch: typeof fetch;\n /** Produce an `Authorization` value, minting fresh when `forceRefresh`. */\n authorization: (forceRefresh: boolean) => Promise<string>;\n /** Called once when the server refuses the token we sent. */\n onTokenRejected: () => void;\n}\n\n/**\n * Fetch a sandbox route with a valid operator token, refreshing once on a 401.\n *\n * The retry decision is made on the raw STATUS, before `toCliError` runs. Doing\n * it after would mean re-deriving \"was this a 401\" from an error class, and 401\n * maps to `AuthenticationError` — the same type `exchangeToken` throws for a bad\n * platform key, so the two would be indistinguishable and a genuinely dead key\n * would drive a retry loop.\n *\n * WHY EXACTLY ONCE. A cached token can pass the local expiry check and still be\n * refused: the server's signing secret rotated, the key was revoked, a clock\n * drifted past the skew. One refresh covers all of those. A SECOND 401 means the\n * freshly minted token was itself refused — a real failure that retrying cannot\n * fix, and looping would turn a bad credential into a request storm.\n *\n * Every dependency is injected so this can be tested without a network, a config\n * file, or the module registry (HR-12). `sandboxFetch` below is the thin\n * production wiring; this is the behaviour worth pinning.\n */\nexport async function fetchWithTokenRetry(\n url: string,\n init: RequestInit,\n baseHeaders: Record<string, string>,\n transport: RetryTransport,\n): Promise<Response> {\n const attempt = async (forceRefresh: boolean): Promise<Response> =>\n transport.doFetch(url, {\n ...init,\n headers: { ...baseHeaders, Authorization: await transport.authorization(forceRefresh) },\n });\n\n const first = await attempt(false);\n if (first.status !== 401) return first;\n\n // The token we sent is provably rejected — drop it so the next process this\n // hour does not start from the same refused credential, then mint once more.\n transport.onTokenRejected();\n\n // Whatever this returns is final. A second 401 is returned to the caller as a\n // 401, NOT retried: the token was freshly minted, so the server is refusing\n // something no further exchange will fix.\n return attempt(true);\n}\n\nasync function sandboxFetch(\n path: string,\n init: RequestInit,\n deps: ExchangeDeps = {},\n): Promise<{ response: Response; endpoint: string }> {\n const connection = resolveConnection();\n const { endpoint } = connection;\n\n try {\n const response = await fetchWithTokenRetry(\n `${endpoint}${path}`,\n init,\n { ...connection.headers, ...toHeaderRecord(init.headers) },\n {\n doFetch: fetch,\n authorization: async (forceRefresh) =>\n `Bearer ${await getOperatorToken(\n { endpoint, apiKey: connection.apiKey, workspaceId: connection.workspaceId },\n { forceRefresh },\n deps,\n )}`,\n onTokenRejected: () => {\n clearCachedToken(deps);\n },\n },\n );\n return { response, endpoint };\n } catch (error) {\n // A MutagenError is already this CLI's vocabulary — an exchange failure\n // (bad key, no workspace access) must reach the user as itself, not be\n // relabelled \"could not reach the API\".\n if (error instanceof MutagentError) throw error;\n throw toNetworkError(error, endpoint);\n }\n}\n\n// ---------------------------------------------------------------------------\n// Error mapping\n// ---------------------------------------------------------------------------\n\nasync function toCliError(response: Response, sandboxId?: string): Promise<MutagentError> {\n const body = await response.text().catch(() => '');\n const message = extractMessage(body) || response.statusText || 'Request failed';\n\n if (response.status === 401) return new AuthenticationError();\n if (response.status === 404 && sandboxId) return new NotFoundError('Sandbox', sandboxId);\n return new ApiError(response.status, message);\n}\n\n/**\n * Pull the one actionable line out of a sandbox error body.\n *\n * The envelope is `{ error, message }` where `error` is the CODE\n * (\"Validation Error\") and `message` is the detail — so reading `error` first\n * prints a category and throws away the cause. That is exactly what happened:\n * a malformed spawn surfaced as the bare string `Error: Validation Error`.\n *\n * But `message` is not simply prose. For a schema rejection it is an ~8KB JSON\n * document with the entire TypeBox schema inlined, so printing it verbatim is\n * worse than printing the code. That document carries a one-line `summary`\n * (\"Property 'definition' is missing\") which is the sentence a user can act on,\n * so it is preferred over both.\n */\nexport function extractMessage(body: string): string {\n const outer = parseRecord(body);\n if (!outer) return body.slice(0, 300);\n\n const code = typeof outer.error === 'string' ? outer.error : '';\n const detail = typeof outer.message === 'string' ? outer.message : '';\n\n const nested = parseRecord(detail);\n const summary = nested && typeof nested.summary === 'string' ? nested.summary : '';\n if (summary !== '') {\n const property = nested && typeof nested.property === 'string' ? nested.property : '';\n const where = property === '' ? '' : ` (at ${property})`;\n return code === '' ? `${summary}${where}` : `${code}: ${summary}${where}`;\n }\n\n // Prose detail, but only when it is prose. An unparsed blob this long is a\n // dump, not a message, and the code alone is more useful than 8KB of schema.\n if (detail !== '' && detail.length <= 400) return detail;\n if (code !== '') return code;\n return body.slice(0, 300);\n}\n\n/**\n * Flatten `HeadersInit` to a plain record so it can be merged with the auth\n * headers. Spreading it directly is wrong for the array form — that spreads\n * indices, not header names — and silently drops every header it touches.\n */\nfunction toHeaderRecord(init: RequestInit['headers']): Record<string, string> {\n if (!init) return {};\n if (init instanceof Headers) {\n const record: Record<string, string> = {};\n init.forEach((value, key) => {\n record[key] = value;\n });\n return record;\n }\n if (Array.isArray(init)) return Object.fromEntries(init);\n return init;\n}\n\n/** A transport failure (DNS, refused, TLS) — never a server-sent status. */\nexport function toNetworkError(error: unknown, endpoint: string): MutagentError {\n const detail = error instanceof Error ? error.message : String(error);\n return new MutagentError(\n 'SANDBOX_UNREACHABLE',\n `Could not reach the MutagenT API at ${endpoint}: ${detail}`,\n 'Check your connection, then verify the endpoint with: mutagent config list',\n 5,\n );\n}\n\n// ---------------------------------------------------------------------------\n// JSON requests\n// ---------------------------------------------------------------------------\n\nasync function requestJson<T>(\n path: string,\n init: RequestInit & { sandboxId?: string } = {},\n): Promise<T> {\n const { sandboxId, ...requestInit } = init;\n\n const { response } = await sandboxFetch(path, {\n ...requestInit,\n headers: { 'Content-Type': 'application/json', ...toHeaderRecord(requestInit.headers) },\n });\n\n if (!response.ok) throw await toCliError(response, sandboxId);\n\n const text = await response.text();\n if (text.trim() === '') return {} as T;\n try {\n return JSON.parse(text) as T;\n } catch {\n throw new MutagentError(\n 'INVALID_RESPONSE',\n `The server returned a non-JSON response for ${path}.`,\n 'Retry, and if it persists report it with: mutagent feedback send \"<what happened>\" --category cli',\n );\n }\n}\n\n/** `POST /api/sandbox` — body is `{ definition }`, and the reply is 201. */\nexport async function spawnSandbox(definition: SandboxDefinition): Promise<SandboxRecord> {\n return requestJson<SandboxRecord>('/api/sandbox', {\n method: 'POST',\n body: JSON.stringify({ definition }),\n });\n}\n\n/** `GET /api/sandbox` — a bare array of records. */\nexport async function listSandboxes(): Promise<SandboxRecord[]> {\n const body = await requestJson<unknown>('/api/sandbox');\n return unwrapList(body) as SandboxRecord[];\n}\n\n/**\n * Accept a bare array or the common single-key envelopes around one.\n *\n * `spans` is in this list because `GET /:id/traces` returns `{ spans: [...] }`\n * — the server's word for them, not `traces`. Omitting it made every sandbox\n * report \"no traces recorded\", which is indistinguishable from a quiet box.\n */\nexport function unwrapList(body: unknown): unknown[] {\n if (Array.isArray(body)) return body;\n if (body && typeof body === 'object') {\n for (const key of ['sandboxes', 'spans', 'traces', 'presets', 'data', 'items'] as const) {\n const value = (body as Record<string, unknown>)[key];\n if (Array.isArray(value)) return value;\n }\n }\n return [];\n}\n\n/** `GET /api/sandbox/:id` — returns `{ status }`, not a full record. */\nexport async function inspectSandbox(id: string): Promise<{ status?: string }> {\n return requestJson<{ status?: string }>(`/api/sandbox/${encodeURIComponent(id)}`, {\n sandboxId: id,\n });\n}\n\nexport async function destroySandbox(id: string): Promise<void> {\n const { response } = await sandboxFetch(`/api/sandbox/${encodeURIComponent(id)}`, {\n method: 'DELETE',\n });\n // Deleting something already gone is a success, not an error (Rule 1.5 /\n // HR-9 idempotence) — a retried teardown must not fail the second time.\n if (response.status === 404) return;\n if (!response.ok) throw await toCliError(response, id);\n}\n\n/** `POST /api/sandbox/:id/exec` — argv, not a shell string. */\nexport async function execSandbox(id: string, body: ExecRequest): Promise<ExecResult> {\n return requestJson<ExecResult>(`/api/sandbox/${encodeURIComponent(id)}/exec`, {\n method: 'POST',\n body: JSON.stringify(body),\n sandboxId: id,\n });\n}\n\n/**\n * `POST /api/sandbox/:id/input` — write one line to a live session's stdin.\n *\n * Fire-and-forget by design: 200 means the line reached the process, and\n * nothing more. Whether the agent accepted it is a `response` frame on the\n * stream, so a caller that needs the answer has to be attached.\n */\nexport async function postInput(id: string, body: InputRequest): Promise<InputResult> {\n return requestJson<InputResult>(`/api/sandbox/${encodeURIComponent(id)}/input`, {\n method: 'POST',\n body: JSON.stringify(body),\n sandboxId: id,\n });\n}\n\n/**\n * `POST /api/sandbox/:id/session` — start a Helix session in an existing box.\n *\n * Separate from spawning because a box and an agent are separate things: one\n * sandbox can host several sessions, and a box with no session in it is a\n * perfectly normal state to be in (that is what `exec` runs against).\n */\nexport async function startSession(\n id: string,\n body: StartSessionRequest,\n): Promise<StartSessionResult> {\n return requestJson<StartSessionResult>(`/api/sandbox/${encodeURIComponent(id)}/session`, {\n method: 'POST',\n body: JSON.stringify(body),\n sandboxId: id,\n });\n}\n\n/** `POST /api/sandbox/run` — one command in a fresh box, torn down after. */\nexport async function oneShotRun(body: OneShotRunRequest): Promise<ExecResult> {\n return requestJson<ExecResult>('/api/sandbox/run', {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\n/**\n * `POST /api/sandbox/agent/run` — one agent turn in a fresh box.\n *\n * Blocking: the server runs the whole turn and answers once. `openAgentRunStream`\n * is the same call watched live; this is what `--no-stream` uses.\n */\nexport async function agentRun(body: AgentRunRequest): Promise<ExecResult> {\n return requestJson<ExecResult>('/api/sandbox/agent/run', {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function listPresets(): Promise<PresetList> {\n return requestJson<PresetList>('/api/sandbox/presets');\n}\n\n/** `GET /api/sandbox/:id/traces` — returns `{ spans: [...] }`. */\nexport async function fetchSandboxTraces(id: string): Promise<unknown> {\n return requestJson<unknown>(`/api/sandbox/${encodeURIComponent(id)}/traces`, { sandboxId: id });\n}\n\n// ---------------------------------------------------------------------------\n// Stream requests\n// ---------------------------------------------------------------------------\n\nexport interface StreamRequestOptions {\n /** Resume after this sequence number. Omitted on a first connect. */\n since?: number;\n signal?: AbortSignal;\n}\n\n/** Open `GET /api/sandbox/:id/stream` (attach). */\nexport async function openAttachStream(\n id: string,\n options: StreamRequestOptions = {},\n): Promise<ReadableStream<Uint8Array>> {\n const query = options.since === undefined ? '' : `?since=${String(options.since)}`;\n return openStream(\n `/api/sandbox/${encodeURIComponent(id)}/stream${query}`,\n { id, retryHint: `Retry with: mutagent helix attach ${id}` },\n options,\n );\n}\n\n/** Open `POST /api/sandbox/:id/exec?stream=1` — scoped to this one invocation. */\nexport async function openExecStream(\n id: string,\n body: ExecRequest,\n options: StreamRequestOptions = {},\n): Promise<ReadableStream<Uint8Array>> {\n return openStream(\n `/api/sandbox/${encodeURIComponent(id)}/exec?stream=1`,\n { id, retryHint: `Retry with: mutagent helix attach ${id}` },\n options,\n {\n method: 'POST',\n body: JSON.stringify(body),\n headers: { 'Content-Type': 'application/json' },\n },\n );\n}\n\n/**\n * Open `POST /api/sandbox/agent/run?stream=1` — one agent turn, watched live.\n *\n * NO SANDBOX ID, and that is not an omission. The box does not exist until this\n * request creates it; its id arrives on the stream as the first `sandbox` event.\n * So the retry hint cannot name one either — and must not invent one, because\n * `mutagent helix attach <something>` for a box that was never created is worse\n * advice than none.\n *\n * ⚠ CALLING THIS TWICE RUNS THE TURN TWICE. There is no resume: the server\n * releases the sandbox the moment this connection drops, so a reconnect would\n * not be picking anything back up — it would be a second spawn, a second agent\n * turn and a second bill. `run.ts` therefore opens it exactly once and does not\n * retry, unlike `helix exec`, which can fall back to the read-only attach\n * endpoint precisely because its box outlives the connection.\n */\nexport async function openAgentRunStream(\n body: AgentRunRequest,\n options: StreamRequestOptions = {},\n): Promise<ReadableStream<Uint8Array>> {\n return openStream(\n '/api/sandbox/agent/run?stream=1',\n { retryHint: 'Retry the turn, or run it blocking with: mutagent helix run ... --no-stream' },\n options,\n {\n method: 'POST',\n body: JSON.stringify(body),\n headers: { 'Content-Type': 'application/json' },\n },\n );\n}\n\nasync function openStream(\n path: string,\n sandbox: { id?: string; retryHint: string },\n options: StreamRequestOptions,\n init: RequestInit = {},\n): Promise<ReadableStream<Uint8Array>> {\n const { response } = await sandboxFetch(path, {\n ...init,\n headers: { Accept: 'text/event-stream', ...toHeaderRecord(init.headers) },\n signal: options.signal,\n });\n\n if (!response.ok) throw await toCliError(response, sandbox.id);\n if (!response.body) {\n throw new MutagentError(\n 'EMPTY_STREAM',\n 'The server accepted the stream request but sent no body.',\n sandbox.retryHint,\n );\n }\n\n return response.body;\n}\n\n// ---------------------------------------------------------------------------\n// Links\n// ---------------------------------------------------------------------------\n\n/**\n * `_links` for a sandbox (HR-7 — mutations must carry them).\n *\n * API paths only. There is no dashboard route for a sandbox yet, and inventing\n * a plausible-looking one would hand the user a 404 dressed as a destination.\n * Add the `dashboard` key when the route actually exists.\n */\nexport function sandboxLinks(id: string): Record<string, string> {\n const base = `/api/sandbox/${encodeURIComponent(id)}`;\n return { api: base, stream: `${base}/stream`, traces: `${base}/traces` };\n}\n\n// ---------------------------------------------------------------------------\n// Payload guards\n//\n// Hand-written rather than schema-validated: these run once per output chunk on\n// a hot path, and a stream whose text field is missing should degrade to \"no\n// text\" rather than abort a live session.\n// ---------------------------------------------------------------------------\n\nexport function parseOutputPayload(data: string): SandboxOutputPayload | null {\n const record = parseRecord(data);\n if (!record) return null;\n const { seq, ts, text } = record;\n if (typeof seq !== 'number' || typeof text !== 'string') return null;\n return { seq, ts: typeof ts === 'string' ? ts : '', text };\n}\n\nexport function parseStatusPayload(data: string): SandboxStatusPayload | null {\n const record = parseRecord(data);\n if (!record) return null;\n if (typeof record.state !== 'string') return null;\n return {\n state: record.state,\n exitCode: typeof record.exitCode === 'number' ? record.exitCode : null,\n };\n}\n\nexport function parseSandboxRunPayload(data: string): SandboxRunPayload | null {\n const record = parseRecord(data);\n if (!record) return null;\n const { sandboxId, preset } = record;\n if (typeof sandboxId !== 'string' || sandboxId === '') return null;\n return { sandboxId, preset: typeof preset === 'string' ? preset : '' };\n}\n\n/**\n * `exitCode` is read as `number | null` with NO fallback to 0.\n *\n * The sibling `parseStatusPayload` coerces a missing exit code to `null` for the\n * same reason, and it matters more here: this payload is what the caller reports\n * as the turn's outcome, and defaulting a missing field to zero would turn \"the\n * server told us nothing\" into \"it succeeded\".\n */\nexport function parseSandboxResultPayload(data: string): SandboxResultPayload | null {\n const record = parseRecord(data);\n if (!record) return null;\n const { sandboxId, preset, exitCode, timedOut, tornDown, error } = record;\n if (typeof sandboxId !== 'string' || sandboxId === '') return null;\n return {\n sandboxId,\n preset: typeof preset === 'string' ? preset : '',\n exitCode: typeof exitCode === 'number' ? exitCode : null,\n timedOut: timedOut === true,\n tornDown: tornDown === true,\n ...(typeof error === 'string' ? { error } : {}),\n };\n}\n\nexport function parseErrorPayload(data: string): SandboxErrorPayload {\n const record = parseRecord(data);\n const message = record && typeof record.message === 'string' ? record.message : data.trim();\n return { message: message === '' ? 'The server reported an unspecified stream error.' : message };\n}\n\nfunction parseRecord(data: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(data);\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, unknown>;\n }\n } catch {\n // Not JSON — the caller decides whether to skip or report.\n }\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// Arch\n// ---------------------------------------------------------------------------\n\n/**\n * The architecture to spawn for when `--arch` is not given.\n *\n * The host's, because the overwhelmingly common case is running an image you\n * just built locally, and a definition whose arch does not match its image is\n * rejected at preflight rather than silently emulated. Node reports `arm64` and\n * `x64`; anything else has no honest mapping, so `--arch` becomes required\n * instead of guessing on the user's behalf.\n */\nexport function hostArch(): SandboxArch | null {\n if (process.arch === 'arm64') return 'arm64';\n if (process.arch === 'x64') return 'x86_64';\n return null;\n}\n",
52
+ "/**\n * HTTP client for the sandbox API that backs `mutagent helix`.\n *\n * WHY THIS IS NOT THE SDK CLIENT (A-4 exception, disclosed)\n *\n * `.memory/design-principles.md` A-4 says the SDK is the only API client. The\n * sandbox routes are not in `@mutagent/sdk`, and two of them are\n * `text/event-stream` — a generated JSON client has nowhere to put a stream\n * you must consume incrementally. `sdk-client.ts` already carries a private\n * `request()` helper for \"endpoints not yet in SDK\"; this is the same escape\n * hatch, made public and stream-aware. When the routes land in the SDK, the\n * non-streaming calls here should move.\n *\n * AUTH IS A TWO-STEP EXCHANGE, NOT A BEARER PASSTHROUGH (#1517, G-C9)\n *\n * The sandbox routes want `Authorization: Bearer <token>` where the token is\n * an HMAC token the SERVER minted — not a platform API key. This module used\n * to send `Bearer <platform key>`: the right header SHAPE carrying the wrong\n * CLASS of credential, which verified as garbage and made every `helix`\n * command 401. That distinction is the whole trap — the header looked correct\n * in every log and every test that only checked its shape.\n *\n * The platform key now buys a short-lived, workspace-scoped operator token via\n * `POST /api/sandbox/token` (see `sandbox-token.ts`), and THAT is what rides\n * the Bearer header. The platform key itself travels as `x-api-key` on the\n * exchange route only — the way every other MutagenT route in this CLI\n * authenticates — and never becomes a sandbox credential.\n *\n * WHY THE SERVER INSISTS. Sandbox tokens come in three classes (operator ·\n * session · task) so that code running INSIDE a box cannot mint more boxes.\n * A CLI that forwarded the platform key would hand control-plane authority to\n * the first hop and erase that boundary before it could do any work.\n *\n * `x-api-key` is deliberately NOT sent alongside the Bearer token on sandbox\n * routes: sending both would let a contract mismatch pass silently. Tenancy\n * headers are sent because sandbox resources are workspace-scoped like\n * everything else on this server.\n */\n\n/// <reference lib=\"dom\" />\n\nimport { getApiKey, loadConfig } from './config.js';\nimport {\n ApiError,\n AuthenticationError,\n MutagentError,\n NotFoundError,\n WorkspaceContextError,\n} from './errors.js';\nimport { clearCachedToken, getOperatorToken, type ExchangeDeps } from './sandbox-token.js';\n\n// ---------------------------------------------------------------------------\n// Wire shapes — mirrored from mutagent/src/modules/sandbox/model.ts\n// ---------------------------------------------------------------------------\n\n/** CPU architecture a definition targets. Required — the schema has no default. */\nexport type SandboxArch = 'x86_64' | 'arm64';\n\n/** The configuration artifact. `name`, `image` and `arch` are required. */\n/** Outbound policy. `deny` is the server's default — opening egress is explicit. */\nexport type EgressPolicy = 'deny' | 'allowlist' | 'allow';\n\n/** One allowance under `allowlist`. The kind is explicit; nothing is inferred. */\nexport interface EgressRule {\n kind: 'port' | 'cidr' | 'domain';\n value: string;\n}\n\nexport interface SandboxNetwork {\n egress?: EgressPolicy;\n /** Allowances, when egress is `allowlist`. Needs provider egressControl support. */\n allow?: EgressRule[];\n}\n\nexport interface SandboxDefinition {\n name: string;\n image: string;\n arch: SandboxArch;\n environment?: string;\n provider?: string;\n workdir?: string;\n timeoutMs?: number;\n network?: SandboxNetwork;\n}\n\n/**\n * A sandbox as the server records it.\n *\n * The status field is `status`, NOT `state`. The stream events use `state`;\n * the record uses `status`. Rendering one with the other's name yields a table\n * of \"unknown\" that looks like a server problem.\n */\nexport interface SandboxRecord {\n id: string;\n generation?: number;\n provider?: string;\n arch?: string;\n status?: string;\n definitionName?: string;\n environmentName?: string;\n createdAt?: string;\n [key: string]: unknown;\n}\n\n/** Result of an exec or a one-shot run. */\nexport interface ExecResult {\n exitCode: number;\n stdout: string;\n stderr: string;\n timedOut: boolean;\n /** One-shot only — the box the run happened in. */\n sandboxId?: string;\n preset?: string;\n tornDown?: boolean;\n}\n\nexport interface Preset {\n name: string;\n description?: string;\n arch?: string;\n provider?: string;\n environment?: string;\n}\n\nexport interface PresetList {\n presets: Preset[];\n default: string | null;\n}\n\n/** `event: stdout` / `event: stderr` payload. */\nexport interface SandboxOutputPayload {\n seq: number;\n ts: string;\n text: string;\n}\n\n/** `event: status` payload. Uses `state`, unlike the record's `status`. */\nexport interface SandboxStatusPayload {\n state: string;\n exitCode: number | null;\n}\n\nexport interface SandboxErrorPayload {\n message: string;\n}\n\n/**\n * `event: sandbox` payload — the first frame of a one-shot stream.\n *\n * It arrives before any output precisely so a run that is interrupted still\n * leaves the user with the id of the box it created.\n */\nexport interface SandboxRunPayload {\n sandboxId: string;\n preset: string;\n}\n\n/**\n * `event: result` payload — the last frame before the terminal `status` of a\n * one-shot stream.\n *\n * `exitCode` is nullable because the server refuses to synthesise one: a turn\n * whose invocation failed outright never produced an exit code, and a `0` there\n * would read as success.\n */\nexport interface SandboxResultPayload {\n sandboxId: string;\n preset: string;\n exitCode: number | null;\n timedOut: boolean;\n /** Whether the server CONFIRMED teardown. False means the box may still exist. */\n tornDown: boolean;\n /** Present only when the turn failed rather than exited. */\n error?: string;\n}\n\nexport interface ExecRequest {\n command: string[];\n cwd?: string;\n timeoutMs?: number;\n}\n\n/**\n * `POST /api/sandbox/:id/input` body — one NDJSON command line for a session's\n * stdin. `line` is a string, not an object, because what the harness reads is a\n * byte-exact line; re-serialising a parsed object here would let this CLI\n * silently reorder or drop fields the harness was sent.\n */\nexport interface InputRequest {\n sessionId: string;\n line: string;\n}\n\n/**\n * The reply says only that the line was WRITTEN. The harness's answer to it\n * comes back on the event stream, correlated by the `id` inside `line`.\n */\nexport interface InputResult {\n accepted: boolean;\n}\n\n/**\n * `POST /api/sandbox/:id/signal` body — stop a running session, keep its box.\n *\n * `signal` is REQUIRED here, mirroring the wire contract. The server does not\n * default it, deliberately: the in-box bridge would default an absent signal to\n * SIGTERM, and a second default on the server would be two of them for one field\n * in two separately-versioned artifacts. The default therefore lives in exactly\n * one place a user can see it — `mutagent helix signal --type`.\n */\nexport interface SignalRequest {\n sessionId: string;\n signal: 'SIGINT' | 'SIGTERM';\n}\n\n/**\n * `{ signalled: true }` means a LIVE process was killed — not merely that the\n * request was well-formed. A session that had already ended comes back as a 409,\n * so this flag is never a consolation prize.\n */\nexport interface SignalResult {\n signalled: boolean;\n}\n\n/**\n * `POST /api/sandbox/:id/session` body — start a Helix session inside a box\n * that already exists.\n *\n * `args` and `env` are on the wire but no flag sets them yet: `--env` already\n * means a stored Environment on `helix spawn`, and giving the same word a\n * second meaning inside one command group is how a flag becomes a trap. They\n * are declared here so the contract is visible at the boundary, not so the\n * command layer can quietly start using them.\n */\nexport interface StartSessionRequest {\n mode?: 'oneshot' | 'rpc';\n args?: string[];\n env?: Record<string, string>;\n}\n\n/** The session's id — the handle every later `attach`/`send` needs. */\nexport interface StartSessionResult {\n sessionId: string;\n status: string;\n}\n\n/** Fields every one-shot request shares. No image — presets exist so a caller never learns one. */\nexport interface OneShotCommon {\n preset?: string;\n timeoutMs?: number;\n keep?: boolean;\n}\n\nexport interface AgentRunRequest extends OneShotCommon {\n /** WHO the agent is — the agent definition. */\n prompt: string;\n /** WHAT to do this turn. A different prompt from `prompt`; never concatenated. */\n task: string;\n /**\n * Run on the ASPS-Prime scaffold — the binary's `--prime`.\n *\n * Omitted rather than sent as `false` when off, so a request from this CLI is\n * byte-identical to what it sent before the flag existed.\n */\n prime?: boolean;\n}\n\nexport interface OneShotRunRequest extends OneShotCommon {\n command: string[];\n cwd?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Connection\n// ---------------------------------------------------------------------------\n\nexport interface SandboxConnection {\n endpoint: string;\n apiKey: string;\n workspaceId: string;\n headers: Record<string, string>;\n}\n\n/**\n * Resolve endpoint + credential + workspace the same way every other command\n * does — env, then credentials file, then rc file — so `helix` cannot drift into\n * its own notion of who you are logged in as or which workspace you are in.\n *\n * `defaultWorkspace` is the same field `sdk-client.ts` and `install-telemetry.ts`\n * read; there is deliberately no new workspace mechanism here. It is REQUIRED\n * rather than optional because the exchange mints per-workspace — without one\n * there is nothing to scope a token to, and failing here with the standard\n * remediation beats a 422 from the server.\n */\nexport function resolveConnection(): SandboxConnection {\n const apiKey = getApiKey();\n if (!apiKey) throw new AuthenticationError();\n\n const config = loadConfig();\n const configured = config.endpoint?.trim();\n const endpoint = (configured === undefined || configured === ''\n ? 'https://api.mutagent.io'\n : configured\n ).replace(/\\/+$/, '');\n\n const workspaceId = requireWorkspace(config.defaultWorkspace);\n\n const headers: Record<string, string> = { 'x-workspace-id': workspaceId };\n if (config.defaultOrganization) headers['x-organization-id'] = config.defaultOrganization;\n\n return { endpoint, apiKey, workspaceId, headers };\n}\n\n/**\n * The workspace the token exchange will be scoped to.\n *\n * Split out and exported so the rule is reachable without `loadConfig()`, which\n * reads the developer's real credentials file and therefore cannot be made to\n * report \"no workspace\" inside a test. A guard that no test can trip is a guard\n * nobody knows is broken.\n *\n * Whitespace counts as absent: `MUTAGENT_WORKSPACE_ID=\" \"` is a mistake, and\n * sending it would trade a clear local error for a confusing remote one.\n */\nexport function requireWorkspace(workspaceId: string | undefined): string {\n if (workspaceId === undefined || workspaceId.trim() === '') {\n throw new WorkspaceContextError(\n 'A workspace is required: sandbox access is minted per workspace, not per account.',\n );\n }\n return workspaceId.trim();\n}\n\n// ---------------------------------------------------------------------------\n// Authenticated transport\n// ---------------------------------------------------------------------------\n\n/** Everything `fetchWithTokenRetry` needs, injected so it can be tested. */\nexport interface RetryTransport {\n /** Perform the HTTP call. */\n doFetch: typeof fetch;\n /** Produce an `Authorization` value, minting fresh when `forceRefresh`. */\n authorization: (forceRefresh: boolean) => Promise<string>;\n /** Called once when the server refuses the token we sent. */\n onTokenRejected: () => void;\n}\n\n/**\n * Fetch a sandbox route with a valid operator token, refreshing once on a 401.\n *\n * The retry decision is made on the raw STATUS, before `toCliError` runs. Doing\n * it after would mean re-deriving \"was this a 401\" from an error class, and 401\n * maps to `AuthenticationError` — the same type `exchangeToken` throws for a bad\n * platform key, so the two would be indistinguishable and a genuinely dead key\n * would drive a retry loop.\n *\n * WHY EXACTLY ONCE. A cached token can pass the local expiry check and still be\n * refused: the server's signing secret rotated, the key was revoked, a clock\n * drifted past the skew. One refresh covers all of those. A SECOND 401 means the\n * freshly minted token was itself refused — a real failure that retrying cannot\n * fix, and looping would turn a bad credential into a request storm.\n *\n * Every dependency is injected so this can be tested without a network, a config\n * file, or the module registry (HR-12). `sandboxFetch` below is the thin\n * production wiring; this is the behaviour worth pinning.\n */\nexport async function fetchWithTokenRetry(\n url: string,\n init: RequestInit,\n baseHeaders: Record<string, string>,\n transport: RetryTransport,\n): Promise<Response> {\n const attempt = async (forceRefresh: boolean): Promise<Response> =>\n transport.doFetch(url, {\n ...init,\n headers: { ...baseHeaders, Authorization: await transport.authorization(forceRefresh) },\n });\n\n const first = await attempt(false);\n if (first.status !== 401) return first;\n\n // The token we sent is provably rejected — drop it so the next process this\n // hour does not start from the same refused credential, then mint once more.\n transport.onTokenRejected();\n\n // Whatever this returns is final. A second 401 is returned to the caller as a\n // 401, NOT retried: the token was freshly minted, so the server is refusing\n // something no further exchange will fix.\n return attempt(true);\n}\n\nasync function sandboxFetch(\n path: string,\n init: RequestInit,\n deps: ExchangeDeps = {},\n): Promise<{ response: Response; endpoint: string }> {\n const connection = resolveConnection();\n const { endpoint } = connection;\n\n try {\n const response = await fetchWithTokenRetry(\n `${endpoint}${path}`,\n init,\n { ...connection.headers, ...toHeaderRecord(init.headers) },\n {\n doFetch: fetch,\n authorization: async (forceRefresh) =>\n `Bearer ${await getOperatorToken(\n { endpoint, apiKey: connection.apiKey, workspaceId: connection.workspaceId },\n { forceRefresh },\n deps,\n )}`,\n onTokenRejected: () => {\n clearCachedToken(deps);\n },\n },\n );\n return { response, endpoint };\n } catch (error) {\n // A MutagenError is already this CLI's vocabulary — an exchange failure\n // (bad key, no workspace access) must reach the user as itself, not be\n // relabelled \"could not reach the API\".\n if (error instanceof MutagentError) throw error;\n throw toNetworkError(error, endpoint);\n }\n}\n\n// ---------------------------------------------------------------------------\n// Error mapping\n// ---------------------------------------------------------------------------\n\nasync function toCliError(response: Response, sandboxId?: string): Promise<MutagentError> {\n const body = await response.text().catch(() => '');\n const message = extractMessage(body) || response.statusText || 'Request failed';\n\n if (response.status === 401) return new AuthenticationError();\n if (response.status === 404 && sandboxId) return new NotFoundError('Sandbox', sandboxId);\n return new ApiError(response.status, message);\n}\n\n/**\n * Pull the one actionable line out of a sandbox error body.\n *\n * The envelope is `{ error, message }` where `error` is the CODE\n * (\"Validation Error\") and `message` is the detail — so reading `error` first\n * prints a category and throws away the cause. That is exactly what happened:\n * a malformed spawn surfaced as the bare string `Error: Validation Error`.\n *\n * But `message` is not simply prose. For a schema rejection it is an ~8KB JSON\n * document with the entire TypeBox schema inlined, so printing it verbatim is\n * worse than printing the code. That document carries a one-line `summary`\n * (\"Property 'definition' is missing\") which is the sentence a user can act on,\n * so it is preferred over both.\n */\nexport function extractMessage(body: string): string {\n const outer = parseRecord(body);\n if (!outer) return body.slice(0, 300);\n\n const code = typeof outer.error === 'string' ? outer.error : '';\n const detail = typeof outer.message === 'string' ? outer.message : '';\n\n const nested = parseRecord(detail);\n const summary = nested && typeof nested.summary === 'string' ? nested.summary : '';\n if (summary !== '') {\n const property = nested && typeof nested.property === 'string' ? nested.property : '';\n const where = property === '' ? '' : ` (at ${property})`;\n return code === '' ? `${summary}${where}` : `${code}: ${summary}${where}`;\n }\n\n // Prose detail, but only when it is prose. An unparsed blob this long is a\n // dump, not a message, and the code alone is more useful than 8KB of schema.\n if (detail !== '' && detail.length <= 400) return detail;\n if (code !== '') return code;\n return body.slice(0, 300);\n}\n\n/**\n * Flatten `HeadersInit` to a plain record so it can be merged with the auth\n * headers. Spreading it directly is wrong for the array form — that spreads\n * indices, not header names — and silently drops every header it touches.\n */\nfunction toHeaderRecord(init: RequestInit['headers']): Record<string, string> {\n if (!init) return {};\n if (init instanceof Headers) {\n const record: Record<string, string> = {};\n init.forEach((value, key) => {\n record[key] = value;\n });\n return record;\n }\n if (Array.isArray(init)) return Object.fromEntries(init);\n return init;\n}\n\n/** A transport failure (DNS, refused, TLS) — never a server-sent status. */\nexport function toNetworkError(error: unknown, endpoint: string): MutagentError {\n const detail = error instanceof Error ? error.message : String(error);\n return new MutagentError(\n 'SANDBOX_UNREACHABLE',\n `Could not reach the MutagenT API at ${endpoint}: ${detail}`,\n 'Check your connection, then verify the endpoint with: mutagent config list',\n 5,\n );\n}\n\n// ---------------------------------------------------------------------------\n// JSON requests\n// ---------------------------------------------------------------------------\n\nasync function requestJson<T>(\n path: string,\n init: RequestInit & { sandboxId?: string } = {},\n): Promise<T> {\n const { sandboxId, ...requestInit } = init;\n\n const { response } = await sandboxFetch(path, {\n ...requestInit,\n headers: { 'Content-Type': 'application/json', ...toHeaderRecord(requestInit.headers) },\n });\n\n if (!response.ok) throw await toCliError(response, sandboxId);\n\n const text = await response.text();\n if (text.trim() === '') return {} as T;\n try {\n return JSON.parse(text) as T;\n } catch {\n throw new MutagentError(\n 'INVALID_RESPONSE',\n `The server returned a non-JSON response for ${path}.`,\n 'Retry, and if it persists report it with: mutagent feedback send \"<what happened>\" --category cli',\n );\n }\n}\n\n/** `POST /api/sandbox` — body is `{ definition }`, and the reply is 201. */\nexport async function spawnSandbox(definition: SandboxDefinition): Promise<SandboxRecord> {\n return requestJson<SandboxRecord>('/api/sandbox', {\n method: 'POST',\n body: JSON.stringify({ definition }),\n });\n}\n\n/** `GET /api/sandbox` — a bare array of records. */\nexport async function listSandboxes(): Promise<SandboxRecord[]> {\n const body = await requestJson<unknown>('/api/sandbox');\n return unwrapList(body) as SandboxRecord[];\n}\n\n/**\n * Accept a bare array or the common single-key envelopes around one.\n *\n * `spans` is in this list because `GET /:id/traces` returns `{ spans: [...] }`\n * — the server's word for them, not `traces`. Omitting it made every sandbox\n * report \"no traces recorded\", which is indistinguishable from a quiet box.\n */\nexport function unwrapList(body: unknown): unknown[] {\n if (Array.isArray(body)) return body;\n if (body && typeof body === 'object') {\n for (const key of ['sandboxes', 'spans', 'traces', 'presets', 'data', 'items'] as const) {\n const value = (body as Record<string, unknown>)[key];\n if (Array.isArray(value)) return value;\n }\n }\n return [];\n}\n\n/** `GET /api/sandbox/:id` — returns `{ status }`, not a full record. */\nexport async function inspectSandbox(id: string): Promise<{ status?: string }> {\n return requestJson<{ status?: string }>(`/api/sandbox/${encodeURIComponent(id)}`, {\n sandboxId: id,\n });\n}\n\nexport async function destroySandbox(id: string): Promise<void> {\n const { response } = await sandboxFetch(`/api/sandbox/${encodeURIComponent(id)}`, {\n method: 'DELETE',\n });\n // Deleting something already gone is a success, not an error (Rule 1.5 /\n // HR-9 idempotence) — a retried teardown must not fail the second time.\n if (response.status === 404) return;\n if (!response.ok) throw await toCliError(response, id);\n}\n\n/** `POST /api/sandbox/:id/exec` — argv, not a shell string. */\nexport async function execSandbox(id: string, body: ExecRequest): Promise<ExecResult> {\n return requestJson<ExecResult>(`/api/sandbox/${encodeURIComponent(id)}/exec`, {\n method: 'POST',\n body: JSON.stringify(body),\n sandboxId: id,\n });\n}\n\n/**\n * `POST /api/sandbox/:id/input` — write one line to a live session's stdin.\n *\n * Fire-and-forget by design: 200 means the line reached the process, and\n * nothing more. Whether the agent accepted it is a `response` frame on the\n * stream, so a caller that needs the answer has to be attached.\n */\nexport async function postInput(id: string, body: InputRequest): Promise<InputResult> {\n return requestJson<InputResult>(`/api/sandbox/${encodeURIComponent(id)}/input`, {\n method: 'POST',\n body: JSON.stringify(body),\n sandboxId: id,\n });\n}\n\n/**\n * `POST /api/sandbox/:id/signal` — stop a running Helix session.\n *\n * The remote counterpart to Ctrl-C on a local agent. Distinct from\n * `destroySandbox`, which demolishes the box and everything in it, and from\n * `postInput` with an `abort` line, which asks a cooperating agent to end its\n * turn and only lands while the agent is still reading its stdin.\n */\nexport async function postSignal(id: string, body: SignalRequest): Promise<SignalResult> {\n return requestJson<SignalResult>(`/api/sandbox/${encodeURIComponent(id)}/signal`, {\n method: 'POST',\n body: JSON.stringify(body),\n sandboxId: id,\n });\n}\n\n/**\n * `POST /api/sandbox/:id/session` — start a Helix session in an existing box.\n *\n * Separate from spawning because a box and an agent are separate things: one\n * sandbox can host several sessions, and a box with no session in it is a\n * perfectly normal state to be in (that is what `exec` runs against).\n */\nexport async function startSession(\n id: string,\n body: StartSessionRequest,\n): Promise<StartSessionResult> {\n return requestJson<StartSessionResult>(`/api/sandbox/${encodeURIComponent(id)}/session`, {\n method: 'POST',\n body: JSON.stringify(body),\n sandboxId: id,\n });\n}\n\n/** `POST /api/sandbox/run` — one command in a fresh box, torn down after. */\nexport async function oneShotRun(body: OneShotRunRequest): Promise<ExecResult> {\n return requestJson<ExecResult>('/api/sandbox/run', {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\n/**\n * `POST /api/sandbox/agent/run` — one agent turn in a fresh box.\n *\n * Blocking: the server runs the whole turn and answers once. `openAgentRunStream`\n * is the same call watched live; this is what `--no-stream` uses.\n */\nexport async function agentRun(body: AgentRunRequest): Promise<ExecResult> {\n return requestJson<ExecResult>('/api/sandbox/agent/run', {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function listPresets(): Promise<PresetList> {\n return requestJson<PresetList>('/api/sandbox/presets');\n}\n\n/** `GET /api/sandbox/:id/traces` — returns `{ spans: [...] }`. */\nexport async function fetchSandboxTraces(id: string): Promise<unknown> {\n return requestJson<unknown>(`/api/sandbox/${encodeURIComponent(id)}/traces`, { sandboxId: id });\n}\n\n// ---------------------------------------------------------------------------\n// Stream requests\n// ---------------------------------------------------------------------------\n\nexport interface StreamRequestOptions {\n /** Resume after this sequence number. Omitted on a first connect. */\n since?: number;\n signal?: AbortSignal;\n}\n\n/** Open `GET /api/sandbox/:id/stream` (attach). */\nexport async function openAttachStream(\n id: string,\n options: StreamRequestOptions = {},\n): Promise<ReadableStream<Uint8Array>> {\n const query = options.since === undefined ? '' : `?since=${String(options.since)}`;\n return openStream(\n `/api/sandbox/${encodeURIComponent(id)}/stream${query}`,\n { id, retryHint: `Retry with: mutagent helix attach ${id}` },\n options,\n );\n}\n\n/** Open `POST /api/sandbox/:id/exec?stream=1` — scoped to this one invocation. */\nexport async function openExecStream(\n id: string,\n body: ExecRequest,\n options: StreamRequestOptions = {},\n): Promise<ReadableStream<Uint8Array>> {\n return openStream(\n `/api/sandbox/${encodeURIComponent(id)}/exec?stream=1`,\n { id, retryHint: `Retry with: mutagent helix attach ${id}` },\n options,\n {\n method: 'POST',\n body: JSON.stringify(body),\n headers: { 'Content-Type': 'application/json' },\n },\n );\n}\n\n/**\n * Open `POST /api/sandbox/agent/run?stream=1` — one agent turn, watched live.\n *\n * NO SANDBOX ID, and that is not an omission. The box does not exist until this\n * request creates it; its id arrives on the stream as the first `sandbox` event.\n * So the retry hint cannot name one either — and must not invent one, because\n * `mutagent helix attach <something>` for a box that was never created is worse\n * advice than none.\n *\n * ⚠ CALLING THIS TWICE RUNS THE TURN TWICE. There is no resume: the server\n * releases the sandbox the moment this connection drops, so a reconnect would\n * not be picking anything back up — it would be a second spawn, a second agent\n * turn and a second bill. `run.ts` therefore opens it exactly once and does not\n * retry, unlike `helix exec`, which can fall back to the read-only attach\n * endpoint precisely because its box outlives the connection.\n */\nexport async function openAgentRunStream(\n body: AgentRunRequest,\n options: StreamRequestOptions = {},\n): Promise<ReadableStream<Uint8Array>> {\n return openStream(\n '/api/sandbox/agent/run?stream=1',\n { retryHint: 'Retry the turn, or run it blocking with: mutagent helix run ... --no-stream' },\n options,\n {\n method: 'POST',\n body: JSON.stringify(body),\n headers: { 'Content-Type': 'application/json' },\n },\n );\n}\n\nasync function openStream(\n path: string,\n sandbox: { id?: string; retryHint: string },\n options: StreamRequestOptions,\n init: RequestInit = {},\n): Promise<ReadableStream<Uint8Array>> {\n const { response } = await sandboxFetch(path, {\n ...init,\n headers: { Accept: 'text/event-stream', ...toHeaderRecord(init.headers) },\n signal: options.signal,\n });\n\n if (!response.ok) throw await toCliError(response, sandbox.id);\n if (!response.body) {\n throw new MutagentError(\n 'EMPTY_STREAM',\n 'The server accepted the stream request but sent no body.',\n sandbox.retryHint,\n );\n }\n\n return response.body;\n}\n\n// ---------------------------------------------------------------------------\n// Links\n// ---------------------------------------------------------------------------\n\n/**\n * `_links` for a sandbox (HR-7 — mutations must carry them).\n *\n * API paths only. There is no dashboard route for a sandbox yet, and inventing\n * a plausible-looking one would hand the user a 404 dressed as a destination.\n * Add the `dashboard` key when the route actually exists.\n */\nexport function sandboxLinks(id: string): Record<string, string> {\n const base = `/api/sandbox/${encodeURIComponent(id)}`;\n return { api: base, stream: `${base}/stream`, traces: `${base}/traces` };\n}\n\n// ---------------------------------------------------------------------------\n// Payload guards\n//\n// Hand-written rather than schema-validated: these run once per output chunk on\n// a hot path, and a stream whose text field is missing should degrade to \"no\n// text\" rather than abort a live session.\n// ---------------------------------------------------------------------------\n\nexport function parseOutputPayload(data: string): SandboxOutputPayload | null {\n const record = parseRecord(data);\n if (!record) return null;\n const { seq, ts, text } = record;\n if (typeof seq !== 'number' || typeof text !== 'string') return null;\n return { seq, ts: typeof ts === 'string' ? ts : '', text };\n}\n\nexport function parseStatusPayload(data: string): SandboxStatusPayload | null {\n const record = parseRecord(data);\n if (!record) return null;\n if (typeof record.state !== 'string') return null;\n return {\n state: record.state,\n exitCode: typeof record.exitCode === 'number' ? record.exitCode : null,\n };\n}\n\nexport function parseSandboxRunPayload(data: string): SandboxRunPayload | null {\n const record = parseRecord(data);\n if (!record) return null;\n const { sandboxId, preset } = record;\n if (typeof sandboxId !== 'string' || sandboxId === '') return null;\n return { sandboxId, preset: typeof preset === 'string' ? preset : '' };\n}\n\n/**\n * `exitCode` is read as `number | null` with NO fallback to 0.\n *\n * The sibling `parseStatusPayload` coerces a missing exit code to `null` for the\n * same reason, and it matters more here: this payload is what the caller reports\n * as the turn's outcome, and defaulting a missing field to zero would turn \"the\n * server told us nothing\" into \"it succeeded\".\n */\nexport function parseSandboxResultPayload(data: string): SandboxResultPayload | null {\n const record = parseRecord(data);\n if (!record) return null;\n const { sandboxId, preset, exitCode, timedOut, tornDown, error } = record;\n if (typeof sandboxId !== 'string' || sandboxId === '') return null;\n return {\n sandboxId,\n preset: typeof preset === 'string' ? preset : '',\n exitCode: typeof exitCode === 'number' ? exitCode : null,\n timedOut: timedOut === true,\n tornDown: tornDown === true,\n ...(typeof error === 'string' ? { error } : {}),\n };\n}\n\nexport function parseErrorPayload(data: string): SandboxErrorPayload {\n const record = parseRecord(data);\n const message = record && typeof record.message === 'string' ? record.message : data.trim();\n return { message: message === '' ? 'The server reported an unspecified stream error.' : message };\n}\n\nfunction parseRecord(data: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(data);\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, unknown>;\n }\n } catch {\n // Not JSON — the caller decides whether to skip or report.\n }\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// Arch\n// ---------------------------------------------------------------------------\n\n/**\n * The architecture to spawn for when `--arch` is not given.\n *\n * The host's, because the overwhelmingly common case is running an image you\n * just built locally, and a definition whose arch does not match its image is\n * rejected at preflight rather than silently emulated. Node reports `arm64` and\n * `x64`; anything else has no honest mapping, so `--arch` becomes required\n * instead of guessing on the user's behalf.\n */\nexport function hostArch(): SandboxArch | null {\n if (process.arch === 'arm64') return 'arm64';\n if (process.arch === 'x64') return 'x86_64';\n return null;\n}\n",
53
53
  "/**\n * The platform key → sandbox operator token exchange, client side (#1517, G-C9).\n *\n * WHY THIS EXISTS\n *\n * The sandbox routes do not accept a platform API key. They verify an HMAC\n * token minted by the server, and `mg_live_…` is not one — so sending it as\n * `Authorization: Bearer` produced a correctly-shaped header carrying the\n * wrong class of credential, and every `mutagent helix` command answered 401.\n *\n * `POST /api/sandbox/token` trades the platform key for a short-lived\n * operator token scoped to one workspace. The platform key stays a platform\n * key; only the minted token ever reaches a sandbox route.\n *\n * WHY IT IS CACHED ON DISK, NOT JUST IN MEMORY\n *\n * Every `mutagent helix …` invocation is a fresh process. An in-memory cache\n * would exchange once per COMMAND, turning a token with an hour of life into\n * one round trip per command — which is what the TTL exists to avoid. The\n * cache is keyed by (endpoint, workspaceId) so pointing at a different\n * backend, or switching workspace, can never reuse a token minted for the\n * other one.\n *\n * HOW IT IS STORED\n *\n * Through `writeSecureFile`, the same 0600 path `lib/config.ts` uses for the\n * API key — a bearer token good for an hour of control-plane authority is\n * credential material and gets credential handling. It is never passed as a\n * command-line argument and never logged, so it cannot land in shell history\n * or a process listing.\n *\n * TESTABILITY\n *\n * Transport, clock, and store are injected (HR-12: this package avoids\n * `mock.module`, whose registry-level replacement leaks across files). Tests\n * drive a fake fetch and an in-memory store; nothing touches `~/.config`.\n */\n\n/// <reference lib=\"dom\" />\n\nimport { existsSync, readFileSync, mkdirSync, rmSync } from 'fs';\nimport { homedir } from 'os';\nimport { join, dirname } from 'path';\nimport { writeSecureFile } from './secure-file.js';\nimport { AuthenticationError, MutagentError } from './errors.js';\n\n// ---------------------------------------------------------------------------\n// Cache\n// ---------------------------------------------------------------------------\n\nexport interface CachedToken {\n token: string;\n /** Epoch ms. */\n expiresAt: number;\n /** The backend this token was minted by — a token is not portable across them. */\n endpoint: string;\n /** The workspace this token authorises. */\n workspaceId: string;\n}\n\nexport interface TokenStore {\n read(): CachedToken | null;\n write(entry: CachedToken): void;\n clear(): void;\n}\n\n/**\n * Where the cached token lives.\n *\n * Resolved per call rather than frozen at import, and overridable with\n * `MUTAGENT_SANDBOX_TOKEN_FILE`. This is a CACHE LOCATION, not a second way to\n * configure credentials — the key and workspace still come only from\n * `lib/config.ts`. The override exists so a test suite (and CI) can exercise the\n * real store without writing a live bearer token into the developer's home\n * directory, which a module-level constant would force.\n */\nexport function sandboxTokenFile(): string {\n const override = process.env.MUTAGENT_SANDBOX_TOKEN_FILE;\n return override !== undefined && override !== ''\n ? override\n : join(homedir(), '.config', 'mutagent', 'sandbox-token.json');\n}\n\n/**\n * Treat a token as expired this many ms early.\n *\n * A token that passes the check and then expires in flight produces exactly the\n * 401 this module exists to prevent. Sixty seconds comfortably covers clock\n * skew between the CLI's machine and the server plus a slow request.\n */\nexport const EXPIRY_SKEW_MS = 60_000;\n\nfunction isCacheShape(value: unknown): value is CachedToken {\n if (typeof value !== 'object' || value === null) return false;\n const r = value as Record<string, unknown>;\n return (\n typeof r.token === 'string' &&\n typeof r.expiresAt === 'number' &&\n Number.isFinite(r.expiresAt) &&\n typeof r.endpoint === 'string' &&\n typeof r.workspaceId === 'string'\n );\n}\n\n/**\n * A store backed by one 0600 JSON file at `path`.\n *\n * Parameterised by path rather than closing over `SANDBOX_TOKEN_FILE` so the\n * write path — including the owner-only mode, which is the part with security\n * consequences — can be exercised against a temp file. A store whose only\n * instance points at the developer's real `~/.config` is a store whose\n * permission behaviour can only be verified by reading the source.\n */\nexport function createFileTokenStore(path: string): TokenStore {\n return {\n read(): CachedToken | null {\n if (!existsSync(path)) return null;\n try {\n const parsed: unknown = JSON.parse(readFileSync(path, 'utf-8'));\n // A cache file we cannot read is a cache MISS, never a failure — the\n // caller re-exchanges. Throwing here would let a corrupt cache brick\n // every helix command with no way out but manual file surgery.\n return isCacheShape(parsed) ? parsed : null;\n } catch {\n return null;\n }\n },\n\n write(entry: CachedToken): void {\n const dir = dirname(path);\n if (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n writeSecureFile(path, JSON.stringify(entry, null, 2));\n },\n\n clear(): void {\n try {\n rmSync(path, { force: true });\n } catch {\n // Best effort — a cache we cannot delete is still one we will not USE,\n // because every read is re-validated against endpoint, workspace and\n // expiry before the token is trusted.\n }\n },\n };\n}\n\n/**\n * The real store: one 0600 JSON file beside the credentials.\n *\n * Resolves its path on every call, so an override set after this module was\n * imported still takes effect — a store that captured the path at import time\n * would silently keep writing to the old location.\n */\nexport const fileTokenStore: TokenStore = {\n read: () => createFileTokenStore(sandboxTokenFile()).read(),\n write: (entry) => {\n createFileTokenStore(sandboxTokenFile()).write(entry);\n },\n clear: () => {\n createFileTokenStore(sandboxTokenFile()).clear();\n },\n};\n\n/** An in-memory store, for tests and for callers that must not touch disk. */\nexport function memoryTokenStore(initial: CachedToken | null = null): TokenStore {\n let entry = initial;\n return {\n read: () => entry,\n write: (e): void => {\n entry = e;\n },\n clear: (): void => {\n entry = null;\n },\n };\n}\n\n/**\n * True when `entry` can still be used for this exact (endpoint, workspace).\n *\n * All three legs are checked, not just expiry: a token minted for another\n * workspace is not merely useless, it is the specific confusion the server-side\n * membership gate exists to prevent, and sending it would produce a baffling\n * 403 instead of a clean re-exchange.\n */\nexport function isUsable(\n entry: CachedToken | null,\n endpoint: string,\n workspaceId: string,\n now: number\n): entry is CachedToken {\n return (\n entry !== null &&\n entry.endpoint === endpoint &&\n entry.workspaceId === workspaceId &&\n entry.expiresAt - EXPIRY_SKEW_MS > now\n );\n}\n\n// ---------------------------------------------------------------------------\n// Exchange\n// ---------------------------------------------------------------------------\n\nexport interface ExchangeDeps {\n fetchImpl?: typeof fetch;\n store?: TokenStore;\n now?: () => number;\n}\n\nexport interface ExchangeInput {\n endpoint: string;\n apiKey: string;\n workspaceId: string;\n}\n\n/** Shape of a successful `POST /api/sandbox/token`. */\ninterface TokenResponse {\n token: string;\n expiresIn: number;\n}\n\nfunction messageFrom(body: string): string {\n try {\n const parsed: unknown = JSON.parse(body);\n if (parsed && typeof parsed === 'object') {\n const { message: value } = parsed as Record<string, unknown>;\n if (typeof value === 'string' && value !== '') return value;\n }\n } catch {\n // Not JSON — fall through to the generic wording.\n }\n return '';\n}\n\n/**\n * Trade the platform key for an operator token. Always hits the network.\n *\n * The two failure statuses carry genuinely different remedies, so they are\n * reported as different errors rather than one \"auth failed\":\n *\n * 401 — the platform key itself is bad or expired. Log in again.\n * 403 — the key is FINE; this account cannot act in that workspace. Logging\n * in again will not help, and saying \"authentication failed\" here sends\n * the user down exactly the wrong path.\n */\nexport async function exchangeToken(\n input: ExchangeInput,\n deps: ExchangeDeps = {}\n): Promise<CachedToken> {\n const doFetch = deps.fetchImpl ?? fetch;\n const now = (deps.now ?? Date.now)();\n\n let response: Response;\n try {\n response = await doFetch(`${input.endpoint}/api/sandbox/token`, {\n method: 'POST',\n headers: {\n // The platform key travels as `x-api-key`, the way every other MutagenT\n // route in this CLI authenticates — this route is resolved by the same\n // global platform-key resolver, not by the sandbox Bearer verifier.\n 'x-api-key': input.apiKey,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ workspaceId: input.workspaceId }),\n });\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error);\n throw new MutagentError(\n 'SANDBOX_UNREACHABLE',\n `Could not reach the MutagenT API at ${input.endpoint}: ${detail}`,\n 'Check your connection, then verify the endpoint with: mutagent config list',\n 5\n );\n }\n\n if (response.status === 401) {\n throw new AuthenticationError(\n 'Your MutagenT API key was rejected. It may have been revoked or expired.',\n { suggestions: ['mutagent auth login --browser', 'mutagent auth status'] }\n );\n }\n\n if (response.status === 403) {\n const detail = messageFrom(await response.text().catch(() => ''));\n throw new MutagentError(\n 'SANDBOX_WORKSPACE_FORBIDDEN',\n detail !== ''\n ? detail\n : `Your API key is valid, but this account cannot use workspace \"${input.workspaceId}\".`,\n `Pick a workspace you belong to: mutagent workspaces list, then mutagent config set workspace <id>`,\n 3\n );\n }\n\n if (!response.ok) {\n const detail = messageFrom(await response.text().catch(() => ''));\n throw new MutagentError(\n 'SANDBOX_TOKEN_EXCHANGE_FAILED',\n detail !== ''\n ? detail\n : `The MutagenT API returned ${String(response.status)} when issuing a sandbox token.`,\n 'Retry, and if it persists report it with: mutagent feedback send \"<what happened>\" --category cli'\n );\n }\n\n let payload: TokenResponse;\n try {\n payload = (await response.json()) as TokenResponse;\n } catch {\n throw new MutagentError(\n 'INVALID_RESPONSE',\n 'The server returned a non-JSON response when issuing a sandbox token.',\n 'Retry, and if it persists report it with: mutagent feedback send \"<what happened>\" --category cli'\n );\n }\n\n if (typeof payload.token !== 'string' || payload.token === '') {\n throw new MutagentError(\n 'INVALID_RESPONSE',\n 'The server issued a sandbox token response with no token in it.',\n 'Retry, and if it persists report it with: mutagent feedback send \"<what happened>\" --category cli'\n );\n }\n\n // A missing or nonsensical `expiresIn` must not become an immortal cache\n // entry. Treating it as already-expired costs one extra exchange per command\n // and is self-correcting; trusting it would pin a stale token forever.\n const lifetimeMs =\n typeof payload.expiresIn === 'number' && Number.isFinite(payload.expiresIn) && payload.expiresIn > 0\n ? payload.expiresIn * 1000\n : 0;\n\n return {\n token: payload.token,\n expiresAt: now + lifetimeMs,\n endpoint: input.endpoint,\n workspaceId: input.workspaceId,\n };\n}\n\n/**\n * The cached operator token for this (endpoint, workspace), exchanging only when\n * there isn't a usable one.\n *\n * `forceRefresh` is how a 401 mid-session recovers: the cached token was\n * accepted by `isUsable` but the server disagreed (revoked key, rotated server\n * secret, a clock further out than the skew), so the caller discards it and\n * asks again exactly once.\n */\nexport async function getOperatorToken(\n input: ExchangeInput,\n options: { forceRefresh?: boolean } = {},\n deps: ExchangeDeps = {}\n): Promise<string> {\n const store = deps.store ?? fileTokenStore;\n const now = (deps.now ?? Date.now)();\n\n if (options.forceRefresh !== true) {\n const cached = store.read();\n if (isUsable(cached, input.endpoint, input.workspaceId, now)) return cached.token;\n }\n\n const fresh = await exchangeToken(input, deps);\n store.write(fresh);\n return fresh.token;\n}\n\n/** Drop the cached token — used when the server rejects it. */\nexport function clearCachedToken(deps: ExchangeDeps = {}): void {\n (deps.store ?? fileTokenStore).clear();\n}\n",
54
54
  "/**\n * Terminal-capability checks for output that streams.\n *\n * `NO_COLOR` and TTY detection are answered here rather than at each call site\n * because the streaming commands have to make the decision repeatedly, and a\n * single spinner or stray escape sequence written into a pipe corrupts the\n * captured output (Rule 1.2 / HR-8).\n */\n\n/**\n * True when output must be plain: no spinners, no ANSI, no cursor tricks.\n *\n * Any one of these is sufficient — `NO_COLOR` is a user instruction, a\n * non-TTY stdout means something is capturing the bytes, and\n * `MUTAGENT_NON_INTERACTIVE` is the flag/CI signal the root program already\n * sets in its `preAction` hook.\n */\nexport function isPlainOutput(): boolean {\n if (process.env.NO_COLOR !== undefined && process.env.NO_COLOR !== '') return true;\n if (process.env.MUTAGENT_NON_INTERACTIVE === 'true') return true;\n if (process.env.CI === 'true') return true;\n return !process.stdout.isTTY;\n}\n\n/** True when a spinner would be appropriate: interactive, styled, not JSON. */\nexport function canAnimate(isJson: boolean): boolean {\n return !isJson && !isPlainOutput();\n}\n",
55
55
  "/**\n * The interactive half of `mutagent helix` — what an attached session looks and\n * feels like from a terminal.\n *\n * CTRL-C DETACHES. IT DOES NOT DESTROY.\n *\n * A sandbox outlives the terminal that started it. Killing the process the\n * user can see must not kill the session they cannot — losing an agent run to\n * a closed laptop lid is not a recoverable mistake, and `rm` is the only verb\n * that destroys. So SIGINT aborts the stream, prints the exact re-attach line\n * (with the resume point already filled in), and exits 0.\n */\n\nimport chalk from 'chalk';\nimport {\n runStreamSession,\n type DisconnectBehaviour,\n type RetryPolicy,\n type SessionResult,\n type StreamOpener,\n type StreamSink,\n} from '../../lib/sandbox-stream.js';\nimport type { SandboxRunPayload } from '../../lib/sandbox-api.js';\nimport { isPlainOutput } from '../../lib/tty.js';\nimport { MutagentError } from '../../lib/errors.js';\nimport { FrameFeed } from './frames.js';\n\n/** Style a string, unless the terminal or the user asked us not to. */\nfunction dim(text: string): string {\n return isPlainOutput() ? text : chalk.dim(text);\n}\n\n/** The re-runnable command that picks the session back up where it stopped. */\nexport function reattachHint(id: string, lastSeq: number): string {\n const since = lastSeq > 0 ? ` --since ${String(lastSeq)}` : '';\n return `mutagent helix attach ${id}${since}`;\n}\n\n/**\n * Build the output sink.\n *\n * Human mode writes the sandbox's bytes through untouched so a piped run is\n * byte-identical to a local one. JSON mode emits NDJSON — one object per event\n * — because a live stream cannot be a single JSON document until it is over.\n * The final line is always a complete summary object, so `| tail -1` still\n * yields the one-object answer the JSON contract implies.\n *\n * WHY THE RENDERED FEED GOES TO STDERR\n *\n * An `rpc` frame is not the sandbox's stdout — it is the harness narrating\n * itself, and the CLI choosing how to say it. Everything in that category\n * already goes to stderr here, so `helix attach <id> > out.txt` still\n * captures the session's output and only that. Putting a rendered tool feed\n * on stdout would corrupt every pipe downstream of it.\n */\nexport function createSessionSink(isJson: boolean): StreamSink {\n if (isJson) {\n return {\n stdout: (text, seq): void => {\n writeEvent('stdout', { seq, text });\n },\n stderr: (text, seq): void => {\n writeEvent('stderr', { seq, text });\n },\n // The frame is re-emitted as an object, not a string, so a consumer can\n // read `.frame.type` without a second JSON.parse. Parsed, never\n // reshaped: an unreadable frame degrades to `unrecognised` rather than\n // being dropped or half-invented.\n rpc: (frame, seq): void => {\n const parsed = parseFrame(frame);\n if (parsed === null) writeEvent('unrecognised', { seq, raw: frame });\n else writeEvent('rpc', { seq, frame: parsed });\n },\n unrecognised: (raw, seq): void => {\n writeEvent('unrecognised', { seq, raw });\n },\n notice: (message): void => {\n process.stderr.write(`${JSON.stringify({ type: 'notice', message })}\\n`);\n },\n };\n }\n\n const feed = new FrameFeed();\n\n return {\n stdout: (text): void => {\n process.stdout.write(text);\n },\n stderr: (text): void => {\n process.stderr.write(text);\n },\n rpc: (frame, seq): void => {\n const line = feed.render(frame, seq);\n if (line !== null) process.stderr.write(`${line}\\n`);\n },\n unrecognised: (raw, seq): void => {\n const line = feed.renderUnrecognised(raw, seq);\n if (line !== null) process.stderr.write(`${line}\\n`);\n },\n notice: (message): void => {\n process.stderr.write(`${dim(`[mutagent] ${message}`)}\\n`);\n },\n };\n}\n\n/** One frame as an object, or null when it is not one JSON object. */\nfunction parseFrame(text: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(text);\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, unknown>;\n }\n } catch {\n // Not JSON — reported as unrecognised by the caller.\n }\n return null;\n}\n\nfunction writeEvent(type: string, fields: Record<string, unknown>): void {\n process.stdout.write(`${JSON.stringify({ type, ...fields })}\\n`);\n}\n\nexport interface AttachOptions {\n /**\n * The sandbox being watched, when it is known up front.\n *\n * EMPTY for a one-shot streaming run: the box does not exist until the request\n * creates it, and its id arrives on the stream. `reportOutcome` prefers the id\n * the stream reported for exactly that reason.\n */\n id: string;\n open: StreamOpener;\n since?: number;\n isJson: boolean;\n /** One line printed before the first byte of output, e.g. what we attached to. */\n announce?: string;\n /**\n * What happens to the sandbox when this client goes away. Default `'survives'`.\n *\n * It is not cosmetic. Every outcome line below either offers a re-attach or\n * says the box is gone, and getting that backwards sends the user after a\n * sandbox that does not exist — or leaves them believing a billable one was\n * cleaned up when it was not.\n */\n onDisconnect?: DisconnectBehaviour;\n /** Overridden by callers that must not reconnect. See `run.ts`. */\n retry?: RetryPolicy;\n /** Fires when the stream names its sandbox — before any output. */\n onSandbox?: (sandbox: SandboxRunPayload) => void;\n}\n\n/**\n * Run an attached session to completion: stream, handle Ctrl-C, then report how\n * it ended and set the process exit code to match the sandbox's.\n */\nexport async function attachToSandbox(options: AttachOptions): Promise<SessionResult> {\n const sink = createSessionSink(options.isJson);\n const controller = new AbortController();\n\n const onSigint = (): void => {\n controller.abort();\n };\n process.on('SIGINT', onSigint);\n\n try {\n if (options.announce) sink.notice(options.announce);\n\n const result = await runStreamSession({\n open: options.open,\n sink,\n since: options.since,\n signal: controller.signal,\n ...(options.retry === undefined ? {} : { retry: options.retry }),\n ...(options.onDisconnect === undefined ? {} : { onDisconnect: options.onDisconnect }),\n ...(options.onSandbox === undefined ? {} : { onSandbox: options.onSandbox }),\n });\n\n reportOutcome(options.id, result, sink, options.onDisconnect ?? 'survives');\n return result;\n } finally {\n process.removeListener('SIGINT', onSigint);\n }\n}\n\n/**\n * Say how the session ended, and propagate the sandbox's exit code.\n *\n * `process.exitCode` rather than `process.exit()`: the stream just wrote to\n * stdout, and exiting outright can truncate that write. Setting the code lets\n * Node flush and then exit with it — which is what makes `mutagent helix run\n * <id> \"...\" && next-thing` behave the way a local command would.\n */\nfunction reportOutcome(\n id: string,\n result: SessionResult,\n sink: StreamSink,\n onDisconnect: DisconnectBehaviour,\n): void {\n // The stream's own answer wins over the caller's: a one-shot run passes no id\n // because it does not have one until the server sends it.\n const box = result.sandbox?.sandboxId ?? id;\n\n if (result.end === 'detached') {\n if (onDisconnect === 'released') {\n // The turn is over and the box is gone — the server released it the moment\n // we stopped reading. Saying \"still running\" here, or offering a\n // `--since` re-attach, would be a straightforward lie.\n sink.notice(\n box === ''\n ? 'Stopped. The turn was cancelled and the sandbox released — nothing is left running.'\n : `Stopped. The turn was cancelled and sandbox ${box} released — nothing is left running.`,\n );\n sink.notice('Run the turn again to retry, or add --keep next time to hold the sandbox open.');\n return;\n }\n sink.notice(`Detached. Sandbox ${box} is still running — nothing was destroyed.`);\n sink.notice(`Re-attach with: ${reattachHint(box, result.lastSeq)}`);\n sink.notice(`Destroy it with: mutagent helix rm ${box} --force`);\n return;\n }\n\n if (result.gaps > 0) {\n sink.notice(\n `Session ended, but ${String(result.gaps)} gap(s) occurred — the output above is not complete.`,\n );\n }\n\n // A one-shot reports what became of its box, in both directions. The `false`\n // case is the one worth printing: it means a machine may still be billing.\n if (result.result !== undefined && !result.result.tornDown) {\n sink.notice(\n `Sandbox ${result.result.sandboxId} was NOT torn down. Destroy it with: mutagent helix rm ${result.result.sandboxId} --force`,\n );\n }\n\n if (result.result?.timedOut === true) {\n sink.notice('The turn timed out.');\n }\n\n if (result.exitCode === null) {\n // No exit code is not a success. `helix run` turns this into a non-zero\n // process exit itself; here we only say what happened.\n const why = result.result?.error;\n sink.notice(\n why === undefined\n ? `Sandbox ${box} exited (no exit code reported).`\n : `The turn did not complete: ${why}`,\n );\n return;\n }\n\n sink.notice(`Sandbox ${box} exited with code ${String(result.exitCode)}.`);\n if (result.exitCode !== 0) {\n process.exitCode = result.exitCode;\n }\n}\n\n/**\n * Parse `--since`, before any socket is opened (§4.5 validate-before-action).\n *\n * A resume point is a sequence number and `seq` is monotonic from 1, so\n * anything else is a typo. Rejecting it here matters more than it looks:\n * `--since abc` coerced to `NaN` would drop the resume entirely and replay the\n * whole session, which reads as duplicated output rather than as an error.\n */\nexport function parseSince(raw: string | undefined): number | undefined {\n if (raw === undefined) return undefined;\n const value = Number(raw);\n if (!Number.isInteger(value) || value < 0) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `--since must be a non-negative sequence number, got \"${raw}\".`,\n 'Sequence numbers start at 1 and are printed when a session detaches.',\n );\n }\n return value;\n}\n",
@@ -58,13 +58,14 @@
58
58
  "/**\n * Turning the harness's JSON frames into a live tool-call feed.\n *\n * A cloud session emits a structured frame for everything it does. Most of them\n * are not worth a line:\n *\n * `message_update` arrives roughly FIFTY times per turn, each one carrying a\n * slightly longer partial of the same assistant message. Rendering them\n * prints the same sentence fifty times and buries the tool calls — which are\n * the part you cannot reconstruct afterwards from the final answer. So the\n * partials are dropped and the assistant's text is rendered ONCE, complete,\n * when `message_end` closes it.\n *\n * A tool call is rendered when it FINISHES, not when it starts. That is what\n * makes one call one line with a real duration on it; a start line amended\n * later is not something a terminal can do, and two lines per call doubles the\n * feed. The cost is that a long `bash` shows nothing while it runs — the turn\n * header above it is what says the session is alive.\n *\n * Nothing here writes: every method returns the line (or null for \"render\n * nothing\") so the decisions are testable without capturing a stream.\n */\n\nimport chalk from 'chalk';\nimport { isPlainOutput } from '../../lib/tty.js';\n\n/** Frame types deliberately rendered as nothing. See the header. */\nconst SILENT = new Set([\n 'message_start',\n 'message_update',\n 'message_delta',\n 'turn_end',\n 'agent_start',\n 'agent_end',\n]);\n\n/**\n * The argument worth showing, per tool, most identifying first.\n *\n * A tool call's `args` object is frequently large (a whole file body for a\n * write, a full schema for a task) and dumping it turns a one-line feed into a\n * screenful. One field answers \"what did it do this to?\", which is the question\n * a feed is for.\n */\nconst IDENTIFYING_ARG: Record<string, string[]> = {\n read: ['path', 'file_path', 'filePath'],\n write: ['path', 'file_path', 'filePath'],\n edit: ['path', 'file_path', 'filePath'],\n ls: ['path', 'dir'],\n glob: ['pattern', 'path'],\n grep: ['pattern', 'query'],\n search: ['pattern', 'query'],\n bash: ['command', 'cmd', 'script'],\n shell: ['command', 'cmd'],\n exec: ['command', 'cmd'],\n fetch: ['url'],\n webfetch: ['url'],\n task: ['description', 'prompt'],\n agent: ['description', 'prompt'],\n};\n\n/** Fallback order when the tool is not one we know by name. */\nconst GENERIC_ARG = ['path', 'file_path', 'command', 'pattern', 'url', 'query', 'name', 'id'];\n\n/** Tool-name column. Wide enough for the common ones without a ragged left edge. */\nconst TOOL_COL = 9;\n/** Where the duration starts, so a run of calls reads as a column not a stagger. */\nconst DURATION_COL = 44;\n\nconst MAX_ARG = 56;\nconst MAX_TEXT = 400;\n\ninterface PendingCall {\n toolName: string;\n arg: string;\n startedAt: number;\n}\n\n/**\n * One attached session's worth of frame state.\n *\n * Stateful because duration is the difference between two frames and the turn\n * number is not on the wire — both have to be remembered between calls.\n */\nexport class FrameFeed {\n readonly #plain: boolean;\n readonly #pending = new Map<string, PendingCall>();\n #turn = 0;\n /** Injected in tests; production reads the clock. */\n readonly #now: () => number;\n\n constructor(options: { plain?: boolean; now?: () => number } = {}) {\n this.#plain = options.plain ?? isPlainOutput();\n this.#now = options.now ?? ((): number => Date.now());\n }\n\n /**\n * Render one frame, or null when it deliberately produces no output.\n *\n * An unparseable frame is not silently swallowed — it comes back as the\n * unrecognised rendering, because \"the harness sent something this CLI cannot\n * read\" is a fact the user needs and a dropped line hides.\n */\n render(frameText: string, seq: number): string | null {\n const frame = asRecord(frameText);\n if (!frame) return this.renderUnrecognised(frameText, seq);\n\n const type = typeof frame.type === 'string' ? frame.type : '';\n\n switch (type) {\n case 'tool_execution_start':\n this.#startCall(frame);\n return null;\n case 'tool_execution_end':\n return this.#endCall(frame);\n case 'turn_start':\n this.#turn += 1;\n return this.#rule(`turn ${String(this.#turn)}`);\n case 'message_end':\n return this.#assistantText(frame);\n case 'agent_settled':\n return this.#line(this.#sym('●', '*'), this.#dim('agent settled — waiting for input'));\n case 'extension_ui_request':\n return this.#hitl(frame);\n case 'response':\n return this.#response(frame);\n default:\n if (type === '' || SILENT.has(type)) return null;\n // A frame type added after this CLI was built. One dim token, so an\n // outdated client is visible without a new frame type flooding a feed.\n return this.#line(this.#sym('·', '.'), this.#dim(type));\n }\n }\n\n /** Something off the `unrecognised` channel, or a frame that would not parse. */\n renderUnrecognised(raw: string, seq: number): string | null {\n const where = seq > 0 ? ` (seq ${String(seq)})` : '';\n const body = `unrecognised${where}: ${oneLine(raw, MAX_ARG * 2)}`;\n return this.#line(this.#sym('·', '.'), this.#dim(body));\n }\n\n // -------------------------------------------------------------------------\n // Frame handlers\n // -------------------------------------------------------------------------\n\n #startCall(frame: Record<string, unknown>): void {\n const id = typeof frame.toolCallId === 'string' ? frame.toolCallId : '';\n if (id === '') return;\n this.#pending.set(id, {\n toolName: typeof frame.toolName === 'string' ? frame.toolName : 'tool',\n arg: identifyingArg(frame.toolName, frame.args),\n startedAt: this.#now(),\n });\n }\n\n /**\n * Close a tool call and render its one line.\n *\n * An END with no matching START is rendered too, without a duration: it means\n * the attach began mid-turn, and hiding the call would misreport the session\n * as having done less than it did.\n */\n #endCall(frame: Record<string, unknown>): string {\n const id = typeof frame.toolCallId === 'string' ? frame.toolCallId : '';\n const started = id === '' ? undefined : this.#pending.get(id);\n if (id !== '') this.#pending.delete(id);\n\n const toolName =\n started?.toolName ?? (typeof frame.toolName === 'string' ? frame.toolName : 'tool');\n const arg = started?.arg ?? identifyingArg(frame.toolName, frame.args);\n const failed = isFailure(frame.result);\n const elapsed = started === undefined ? '' : formatDuration(this.#now() - started.startedAt);\n\n const name = this.#plain ? toolName : failed ? chalk.red(toolName) : chalk.cyan(toolName);\n // Two widths for the same text: one styled (what is printed) and one bare\n // (what is measured). Padding by the styled length counts ANSI bytes as\n // columns and the durations drift out of line by however much colour costs.\n const visible = arg === '' ? toolName.padEnd(TOOL_COL) : `${toolName.padEnd(TOOL_COL)} ${arg}`;\n const head = arg === '' ? pad(name, toolName, TOOL_COL) : `${pad(name, toolName, TOOL_COL)} ${arg}`;\n\n const gap = ' '.repeat(Math.max(2, DURATION_COL - visible.length));\n const tail = elapsed === '' ? '' : gap + this.#dim(elapsed);\n\n return this.#line(failed ? this.#sym('✗', 'x') : this.#sym('▸', '>'), head + tail);\n }\n\n /** The assistant's completed text for one message — the only text we print. */\n #assistantText(frame: Record<string, unknown>): string | null {\n const text = extractText(frame);\n if (text === '') return null;\n return this.#line(this.#sym('❯', '|'), oneLine(text, MAX_TEXT));\n }\n\n /**\n * A HITL request. Rendered prominently on purpose: it is the session asking\n * the operator for something, and a missed one stalls the run.\n */\n #hitl(frame: Record<string, unknown>): string {\n const method = typeof frame.method === 'string' ? frame.method : 'request';\n const key = typeof frame.statusKey === 'string' ? ` ${frame.statusKey}` : '';\n const body = `hitl ${method}${key}`;\n return this.#line(this.#sym('◆', '?'), this.#plain ? body : chalk.yellow(body));\n }\n\n /** The harness's reply to a line we sent — what `helix send` gets back. */\n #response(frame: Record<string, unknown>): string {\n const command = typeof frame.command === 'string' ? frame.command : 'command';\n const id = typeof frame.id === 'string' ? ` ${frame.id}` : '';\n const ok = frame.success !== false;\n const body = `${command}${id} ${ok ? 'accepted' : 'rejected'}`;\n if (this.#plain) return this.#line(ok ? '+' : 'x', body);\n return this.#line(ok ? '✓' : '✗', ok ? chalk.green(body) : chalk.red(body));\n }\n\n // -------------------------------------------------------------------------\n // Styling — one mechanism, the package's existing one (isPlainOutput).\n // -------------------------------------------------------------------------\n\n #line(symbol: string, body: string): string {\n return ` ${symbol} ${body}`;\n }\n\n #sym(styled: string, plain: string): string {\n return this.#plain ? plain : styled;\n }\n\n #dim(text: string): string {\n return this.#plain ? text : chalk.dim(text);\n }\n\n #rule(label: string): string {\n const dash = this.#plain ? '-' : '─';\n const body = `${dash.repeat(2)} ${label} ${dash.repeat(Math.max(2, 40 - label.length))}`;\n return ` ${this.#dim(body)}`;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Pure helpers\n// ---------------------------------------------------------------------------\n\nfunction asRecord(text: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(text);\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, unknown>;\n }\n } catch {\n // Not JSON. The caller renders it as unrecognised rather than dropping it.\n }\n return null;\n}\n\n/** Pad by the PRINTABLE width — `visible` is the same string without styling. */\nfunction pad(styled: string, visible: string, width: number): string {\n const missing = Math.max(0, width - visible.length);\n return styled + ' '.repeat(missing);\n}\n\nexport function identifyingArg(toolName: unknown, args: unknown): string {\n if (!args || typeof args !== 'object' || Array.isArray(args)) return '';\n const record = args as Record<string, unknown>;\n const name = typeof toolName === 'string' ? toolName.toLowerCase() : '';\n\n for (const key of IDENTIFYING_ARG[name] ?? GENERIC_ARG) {\n const value = record[key];\n if (typeof value === 'string' && value.trim() !== '') return oneLine(value, MAX_ARG);\n if (typeof value === 'number') return String(value);\n }\n\n // Nothing named: the first short string beats printing the whole object.\n for (const value of Object.values(record)) {\n if (typeof value === 'string' && value.trim() !== '') return oneLine(value, MAX_ARG);\n }\n return '';\n}\n\n/** Did the tool fail? Harnesses disagree on the field, so check the known ones. */\nfunction isFailure(result: unknown): boolean {\n if (!result || typeof result !== 'object' || Array.isArray(result)) return false;\n const record = result as Record<string, unknown>;\n if (record.isError === true || record.error != null) return true;\n return record.success === false;\n}\n\n/**\n * Pull the assistant's words out of a `message_end`.\n *\n * Several shapes are accepted because the frame's inner layout is the harness's\n * to change and a rendering that silently prints nothing when it does would\n * look identical to an agent that said nothing.\n */\nexport function extractText(frame: Record<string, unknown>): string {\n const candidates: unknown[] = [\n frame.text,\n frame.content,\n (frame.message as Record<string, unknown> | undefined)?.content,\n (frame.message as Record<string, unknown> | undefined)?.text,\n frame.message,\n ];\n\n for (const candidate of candidates) {\n if (typeof candidate === 'string' && candidate.trim() !== '') return candidate.trim();\n if (Array.isArray(candidate)) {\n const joined = candidate\n .map((part) => {\n if (typeof part === 'string') return part;\n if (part && typeof part === 'object' && typeof (part as { text?: unknown }).text === 'string') {\n return (part as { text: string }).text;\n }\n return '';\n })\n .join('')\n .trim();\n if (joined !== '') return joined;\n }\n }\n return '';\n}\n\n/** Collapse to one line and cap it — a feed line must stay a line. */\nexport function oneLine(text: string, max: number): string {\n const flat = text.replace(/\\s+/g, ' ').trim();\n return flat.length <= max ? flat : `${flat.slice(0, max - 1)}…`;\n}\n\n/** Human duration: milliseconds while they read as milliseconds, then seconds. */\nexport function formatDuration(ms: number): string {\n const safe = Math.max(0, Math.round(ms));\n if (safe < 1000) return `${String(safe)}ms`;\n if (safe < 60_000) return `${(safe / 1000).toFixed(1)}s`;\n const minutes = Math.floor(safe / 60_000);\n const seconds = Math.round((safe % 60_000) / 1000);\n return `${String(minutes)}m ${String(seconds).padStart(2, '0')}s`;\n}\n",
59
59
  "import type { Command } from 'commander';\nimport chalk from 'chalk';\nimport { getJsonFlag } from '../../lib/output.js';\nimport { handleError } from '../../lib/errors.js';\nimport { openAttachStream, sandboxLinks } from '../../lib/sandbox-api.js';\nimport { attachToSandbox, parseSince } from './session.js';\n\ninterface AttachOptions {\n since?: string;\n}\n\nexport function registerAttachCommand(parent: Command): void {\n parent\n .command('attach')\n .description('Attach to a running sandbox and stream its output')\n .argument('<id>', 'Sandbox ID')\n .option('--since <seq>', 'Resume after this sequence number instead of from the start')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix attach sbx_123\n ${chalk.dim('$')} mutagent helix attach sbx_123 --since 412\n ${chalk.dim('$')} mutagent helix attach sbx_123 --json | tail -1\n ${chalk.dim('$')} mutagent helix attach sbx_123 > session.log\n\nCtrl-C detaches. The sandbox keeps running and the exact re-attach command,\nwith the resume point filled in, is printed to stderr. Only 'mutagent helix rm <id> --force'\ndestroys a sandbox.\n\nSandbox stdout goes to stdout and sandbox stderr goes to stderr, so redirects\nand pipes behave as they would for a local process. Everything this CLI says\nabout the session goes to stderr.\n\nIf the connection drops, attach reconnects from the last sequence number seen.\nIf the server's buffer has rolled past that point, the missing range is stated\nplainly rather than being papered over.\n\nAI Agent Directive:\n Use --json. Output is NDJSON — one object per line, {\"type\":\"stdout\"|\"stderr\"|\n \"notice\", ...} — because a live stream cannot be one JSON document until it is\n over. The final line is a complete summary object; read it with 'tail -1' if\n you only need the result.\n Run 'mutagent helix ls --json' first to confirm the sandbox is running.\n `,\n )\n .action(async (id: string, options: AttachOptions) => {\n const isJson = getJsonFlag(parent);\n\n try {\n const since = parseSince(options.since);\n\n const result = await attachToSandbox({\n id,\n isJson,\n since,\n announce: `Attaching to sandbox ${id}. Ctrl-C detaches without destroying it.`,\n open: ({ since: resumeFrom, signal }) => openAttachStream(id, { since: resumeFrom, signal }),\n });\n\n if (isJson) {\n // Terminal summary line (see the NDJSON note above).\n console.log(\n JSON.stringify({\n success: true,\n sandboxId: id,\n end: result.end,\n exitCode: result.exitCode,\n lastSeq: result.lastSeq,\n reconnects: result.reconnects,\n gaps: result.gaps,\n _links: sandboxLinks(id),\n }),\n );\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n",
60
60
  "/**\n * `helix send` — put a line into a running session's stdin.\n *\n * WHY A COMMAND AND NOT A KEYSTROKE\n *\n * `attach` streams; it does not type. The sandbox outlives the terminal, so\n * the thing that steers a session cannot be a keypress in one particular\n * terminal — it has to be a request anyone holding the id can make, from a\n * script, a second window, or an agent's subprocess. Sending and watching are\n * therefore two commands, and either can run without the other.\n *\n * TWO FORMS, AND THE FRIENDLY ONE IS THE DEFAULT\n *\n * The harness reads NDJSON commands. `--line` passes one straight through,\n * byte for byte, for a command shape this CLI has never heard of. Everything\n * else — the common case — is built here from `--type` and the message, so a\n * caller does not have to hand-write JSON to say a sentence to an agent.\n *\n * WHAT COMES BACK\n *\n * A 200 means the line was WRITTEN, and nothing more. The agent's answer is a\n * `response` frame on the event stream, correlated by the id this command\n * generates and prints. Reporting \"sent\" as \"done\" would be the lie; the help\n * text and the JSON directive both say where the answer actually appears.\n */\n\nimport type { Command } from 'commander';\nimport chalk from 'chalk';\nimport { randomUUID } from 'crypto';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, handleError } from '../../lib/errors.js';\nimport { postInput, sandboxLinks } from '../../lib/sandbox-api.js';\n\n/** The command verbs the harness actually reads. Not an open set. */\nconst COMMAND_TYPES = ['prompt', 'steer', 'follow_up', 'abort'] as const;\ntype CommandType = (typeof COMMAND_TYPES)[number];\n\n/** `abort` is a verb, not a sentence — it is the one type with nothing to say. */\nconst NEEDS_MESSAGE = new Set<CommandType>(['prompt', 'steer', 'follow_up']);\n\ninterface SendOptions {\n session?: string;\n type?: string;\n line?: string;\n messageId?: string;\n}\n\nexport function registerSendCommand(parent: Command): void {\n parent\n .command('send')\n .description('Send a command line into a running session')\n .argument('<id>', 'Sandbox ID')\n .argument('[message...]', 'What to say to the agent')\n .requiredOption('--session <id>', 'Session ID inside the sandbox')\n .option(\n '--type <type>',\n `Command verb: ${COMMAND_TYPES.join(' | ')} (default: prompt)`,\n )\n .option('--line <json>', 'Send this exact JSON line instead of building one')\n .option('--message-id <id>', 'Correlation id to use instead of a generated one')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix send sbx_123 --session s1 \"also check the refresh path\"\n ${chalk.dim('$')} mutagent helix send sbx_123 --session s1 --type steer \"stop and re-read the spec\"\n ${chalk.dim('$')} mutagent helix send sbx_123 --session s1 --type abort\n ${chalk.dim('$')} mutagent helix send sbx_123 --session s1 --line '{\"type\":\"prompt\",\"id\":\"p7\",\"message\":\"go\"}'\n ${chalk.dim('$')} mutagent helix send sbx_123 --session s1 \"run the tests\" --json\n\nTWO FORMS:\n ${chalk.bold('The friendly form')} — a --type and a message. This command builds the JSON:\n {\"type\":\"prompt\",\"id\":\"<generated>\",\"message\":\"<your message>\"}. Use it for\n everything the four verbs cover.\n ${chalk.bold('--line')} — one raw JSON object, passed through byte for byte. It exists for\n a command shape this CLI does not know about yet. It is validated as a single\n JSON object before anything is sent, but its CONTENTS are the harness's\n business, not this CLI's. Do not combine it with --type or a message.\n\nTHE VERBS:\n prompt A new instruction to a settled agent.\n steer Redirect the turn already running.\n follow_up Continue from what the agent just said.\n abort Stop the current turn. Takes no message.\n\nSending is not watching. A 200 means the line was written to the session; the\nagent's reply arrives on the event stream as a 'response' frame carrying the id\nprinted here. Attach in another terminal to see it:\n ${chalk.dim('$')} mutagent helix attach sbx_123\n\nA session that is no longer running is refused rather than silently accepted —\n'mutagent helix ls' shows what is still up.\n\nAI Agent Directive:\n --json returns ONE object: { success, sandboxId, sessionId, type, id, line,\n accepted, _links }. 'accepted' means DELIVERED, not answered — the answer is a\n 'response' frame with the same id on 'mutagent helix attach <id> --json'.\n Attach BEFORE sending if you need the reply; this call does not wait for one.\n Use the friendly form (--type + message). Reserve --line for a command shape\n the four verbs cannot express.\n `,\n )\n .action(async (id: string, messageParts: string[], options: SendOptions) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const sessionId = options.session?.trim() ?? '';\n if (sessionId === '') {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n '--session is required — a sandbox can hold more than one session.',\n `Run: mutagent helix send ${id} --session <session-id> \"<message>\"`,\n );\n }\n\n const built = buildLine(messageParts.join(' ').trim(), options);\n const result = await postInput(id, { sessionId, line: built.line });\n\n if (isJson) {\n output.output({\n success: true,\n sandboxId: id,\n sessionId,\n type: built.type,\n id: built.id,\n line: built.line,\n accepted: result.accepted,\n _links: sandboxLinks(id),\n _directive: {\n instruction:\n 'The line was delivered, not answered. The reply is a `response` frame with this id on the event stream.',\n next: [`mutagent helix attach ${id} --json`],\n },\n });\n return;\n }\n\n output.success(`Sent ${built.type} to session ${sessionId}`);\n console.error(chalk.dim(` ${built.line}`));\n console.error(\n chalk.dim(\n ` The reply arrives on the stream, not here: mutagent helix attach ${id}`,\n ),\n );\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\ninterface BuiltLine {\n line: string;\n type: string;\n /** The correlation id, when this command generated the line. */\n id: string | null;\n}\n\n/**\n * Turn the flags into exactly one NDJSON line — or refuse, before any request.\n *\n * Validated here rather than at the server (§4.5 validate-before-action)\n * because the failure modes are silent ones: a `--line` that is two objects\n * gets half-written into a live session's stdin, and a `--type` this CLI made\n * up is accepted by the transport and ignored by the agent, which reads as the\n * agent having disregarded the user.\n */\nexport function buildLine(message: string, options: SendOptions): BuiltLine {\n const raw = options.line;\n\n if (raw !== undefined) {\n if (message !== '' || options.type !== undefined) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n '--line is the whole command already — it cannot be combined with --type or a message.',\n 'Send the raw line on its own, or drop --line and use the friendly form:\\n --type prompt \"<message>\"',\n );\n }\n return { line: requireOneJsonObject(raw), type: readType(raw), id: null };\n }\n\n const type = (options.type ?? 'prompt') as CommandType;\n if (!COMMAND_TYPES.includes(type)) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `Unknown command type \"${options.type ?? ''}\".`,\n `Use one of: ${COMMAND_TYPES.join(', ')}. For anything else, pass the raw JSON with --line.`,\n );\n }\n\n if (message === '' && NEEDS_MESSAGE.has(type)) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n `A \"${type}\" carries a message — there is nothing to send without one.`,\n `Run: mutagent helix send <id> --session <session-id> --type ${type} \"<message>\"`,\n );\n }\n if (message !== '' && !NEEDS_MESSAGE.has(type)) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `A \"${type}\" takes no message, so the text would be silently discarded.`,\n `Drop the message, or send it separately as a prompt.`,\n );\n }\n\n const id = options.messageId?.trim() ?? '';\n const correlationId = id === '' ? `cli_${randomUUID().slice(0, 8)}` : id;\n\n const body: Record<string, string> = { type, id: correlationId };\n if (message !== '') body.message = message;\n\n return { line: JSON.stringify(body), type, id: correlationId };\n}\n\n/**\n * Accept exactly one JSON object, and return it as the caller wrote it.\n *\n * Re-serialising would be the easy way to normalise, and it is the wrong one:\n * the harness reads fields this CLI does not model, and a round-trip through a\n * type this CLI defines is how those fields go missing. Only the outer newline\n * is this command's to add, and the transport does that.\n */\nfunction requireOneJsonObject(raw: string): string {\n const trimmed = raw.trim();\n if (trimmed.includes('\\n')) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n '--line must be ONE line — a newline inside it would be read as two commands.',\n 'Send one command per call.',\n );\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(trimmed);\n } catch {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n '--line is not valid JSON.',\n `The harness reads one JSON object per line. Example:\\n --line '{\"type\":\"prompt\",\"id\":\"p1\",\"message\":\"go\"}'`,\n );\n }\n\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n '--line must be a JSON object, not an array or a bare value.',\n `Example:\\n --line '{\"type\":\"prompt\",\"id\":\"p1\",\"message\":\"go\"}'`,\n );\n }\n\n return trimmed;\n}\n\n/** The `type` a raw line declares, for reporting only. */\nfunction readType(raw: string): string {\n try {\n const parsed: unknown = JSON.parse(raw);\n if (parsed && typeof parsed === 'object' && typeof (parsed as { type?: unknown }).type === 'string') {\n return (parsed as { type: string }).type;\n }\n } catch {\n // requireOneJsonObject already rejected this path; nothing to report.\n }\n return 'raw';\n}\n",
61
+ "/**\n * `helix signal` — stop a running session without destroying the box it runs in.\n *\n * WHY THIS IS NOT `helix rm`\n *\n * `rm` destroys the SANDBOX: the filesystem the agent has been editing, its\n * sibling sessions, and the event log you would want to read precisely BECAUSE\n * the run went wrong. Before this command existed, `rm` was the only way to\n * stop a runaway agent from outside — a caller who wanted to interrupt a turn\n * had to demolish the machine holding its work. Locally the same two gestures\n * are Ctrl-C and `rm -rf`, and nobody confuses those.\n *\n * WHY THIS IS NOT `helix send --type abort`\n *\n * `abort` is a COMMAND, written into the agent's stdin, and it works only\n * while the agent is still reading stdin and chooses to honour it. That is the\n * polite path and it is the right first try. A signal does not ask: it reaches\n * a process that is wedged, looping, or has stopped listening — exactly the\n * cases where the polite path has already failed. Both exist because \"stop,\n * please\" and \"stop\" have different failure modes.\n *\n * WHAT A 200 MEANS HERE, AND WHY IT IS STRONGER THAN `send`'s\n *\n * `send` reports DELIVERY — the agent's answer arrives later on the stream.\n * This reports EFFECT: the server only answers 200 when the box confirms a\n * live process was signalled. A session that had already ended is a 409 rather\n * than a cheerful success, so \"signalled\" here never means \"your request\n * parsed\".\n */\n\nimport type { Command } from 'commander';\nimport chalk from 'chalk';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, handleError } from '../../lib/errors.js';\nimport { postSignal, sandboxLinks } from '../../lib/sandbox-api.js';\n\n/** The only two the API accepts. SIGKILL is deliberately not among them. */\nconst SIGNAL_TYPES = ['SIGINT', 'SIGTERM'] as const;\ntype SignalType = (typeof SIGNAL_TYPES)[number];\n\n/**\n * SIGINT, because this command's job is INTERRUPTING a turn and SIGINT is the\n * signal a terminal sends on Ctrl-C — the gesture this is the remote equivalent\n * of. SIGTERM asks a process to shut down, which is a different intent and stays\n * one keystroke away.\n *\n * The default lives HERE and nowhere else. The server requires the field and the\n * box would default it to SIGTERM if asked; putting the default in the CLI means\n * there is exactly one of them, and `--help` prints it.\n */\nconst DEFAULT_SIGNAL: SignalType = 'SIGINT';\n\ninterface SignalOptions {\n session?: string;\n type?: string;\n}\n\nexport function registerSignalCommand(parent: Command): void {\n parent\n .command('signal')\n .description('Stop a running session, leaving its sandbox up')\n .argument('<id>', 'Sandbox ID')\n .requiredOption('--session <id>', 'Session ID inside the sandbox')\n .option('--type <signal>', `${SIGNAL_TYPES.join(' | ')} (default: ${DEFAULT_SIGNAL})`)\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix signal sbx_123 --session s1 ${chalk.dim('SIGINT — like Ctrl-C')}\n ${chalk.dim('$')} mutagent helix signal sbx_123 --session s1 --type SIGTERM ${chalk.dim('Ask it to shut down')}\n ${chalk.dim('$')} mutagent helix signal sbx_123 --session s1 --json\n\nTHE SANDBOX SURVIVES. This stops the SESSION — the agent process — and leaves\nthe box, its filesystem and its event log exactly where they are, so you can\nattach, exec against it, or read what the agent did before you stopped it.\n'mutagent helix rm <id>' is still the only thing that destroys a sandbox.\n\nTHREE WAYS TO STOP AN AGENT, WEAKEST FIRST:\n ${chalk.bold('send --type abort')} Asks the agent to end the turn. Needs a cooperating agent\n that is still reading its stdin. Try this first.\n ${chalk.bold('signal')} Does not ask. Reaches a wedged or looping process.\n The session ends; the box stays.\n ${chalk.bold('rm')} Destroys the sandbox and everything in it.\n\nTHE SIGNALS:\n SIGINT Interrupts the current turn, the way Ctrl-C does in a local terminal.\n SIGTERM Asks the process to shut down.\nSIGKILL is not accepted: it would end the session before it could flush the\noutput you came back to read.\n\nA 200 here means a LIVE process was signalled — not just that the request was\nunderstood. A session that had already finished is reported as such rather than\nbeing counted as a success, so this never tells you that you stopped an agent\nthat had in fact been done for a while.\n\n'mutagent helix ls' shows which sandboxes are up; 'mutagent helix attach <id>'\nshows what the session was doing.\n\nAI Agent Directive:\n --json returns ONE object: { success, sandboxId, sessionId, signal, signalled,\n _links }. 'signalled' is an EFFECT, not an acknowledgement — it is true only\n when a running process was actually stopped.\n A session that has already ended exits non-zero rather than reporting success.\n Treat that as information, not as a failure to retry: the agent is already\n stopped, which is what you wanted.\n This does NOT destroy the sandbox. It stays billable until 'mutagent helix rm\n <id>'. Confirm with the user before that.\n `,\n )\n .action(async (id: string, options: SignalOptions) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const sessionId = options.session?.trim() ?? '';\n if (sessionId === '') {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n '--session is required — a sandbox can hold more than one session.',\n `Run: mutagent helix signal ${id} --session <session-id>`,\n );\n }\n\n const signal = resolveSignal(options.type);\n const result = await postSignal(id, { sessionId, signal });\n\n if (isJson) {\n output.output({\n success: true,\n sandboxId: id,\n sessionId,\n signal,\n signalled: result.signalled,\n _links: sandboxLinks(id),\n _directive: {\n instruction:\n 'The session was stopped. The SANDBOX is still running and still billable — remove it explicitly when you are done with it.',\n next: [`mutagent helix attach ${id} --json`, `mutagent helix rm ${id}`],\n },\n });\n return;\n }\n\n output.success(`Sent ${signal} to session ${sessionId}`);\n console.error(\n chalk.dim(` The sandbox is still up: mutagent helix attach ${id}`),\n );\n console.error(chalk.dim(` Destroy it with: mutagent helix rm ${id}`));\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\n/**\n * Validated here rather than at the server, per §4.5 validate-before-action.\n *\n * The server would refuse an unknown signal with a 422, which is correct and\n * arrives after a round trip carrying a schema error rather than an answer. The\n * mistake this actually catches is a lowercase `sigint` or a bare `INT`, which\n * are what a person types, and the message names the two that work instead of\n * echoing a validation failure.\n */\nexport function resolveSignal(raw: string | undefined): SignalType {\n if (raw === undefined) return DEFAULT_SIGNAL;\n\n const normalised = raw.trim().toUpperCase();\n if (!(SIGNAL_TYPES as readonly string[]).includes(normalised)) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `Unknown signal \"${raw}\".`,\n `Use one of: ${SIGNAL_TYPES.join(', ')}. SIGKILL is not accepted — it would end the session before it could flush its output.`,\n );\n }\n return normalised as SignalType;\n}\n",
61
62
  "/**\n * `helix session start` — put an AGENT inside a box that already exists.\n *\n * THE DISTINCTION THIS COMMAND EXISTS TO MAKE\n *\n * `spawn` gives you a BOX. It is a machine with nothing running in it, and\n * that is a normal state — `exec` runs commands against exactly that. A Helix\n * SESSION is a separate thing that lives inside the box, and it has to be\n * started explicitly. Folding the two together would mean every box paid for\n * an agent it might not want, and there would be no way to run a second\n * session in a box that already has one.\n *\n * So: `spawn` creates the box, `session start` creates the agent, `attach`\n * WATCHES it, and `send` TYPES INTO it. Four verbs because they are four\n * things — the help text says so, because the names alone do not.\n *\n * WHY THIS FILE HOLDS THE GROUP\n *\n * `start` is the group's only verb today. A `session ls` needs a server route\n * that does not exist yet, and shipping a verb that 404s teaches a caller the\n * surface is broken rather than that the feature is pending. When that route\n * lands, `ls` joins the group registered here.\n *\n * NOT to be confused with `session.ts`, which is the attached session's\n * RENDERING (the sink and the Ctrl-C loop). This file is the control verb.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, handleError } from '../../lib/errors.js';\nimport { startSession, sandboxLinks, type StartSessionResult } from '../../lib/sandbox-api.js';\n\ninterface StartOptions {\n rpc?: boolean;\n}\n\nexport function registerSessionCommand(parent: Command): void {\n const session = new Command('session')\n .description('Start and inspect Helix sessions inside a sandbox')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix session start sbx_123 --rpc\n ${chalk.dim('$')} mutagent helix session start sbx_123\n ${chalk.dim('$')} mutagent helix session start sbx_123 --rpc --json\n\nA sandbox and a session are not the same thing:\n ${chalk.bold('spawn')} gives you a BOX — a machine with nothing running in it.\n ${chalk.bold('session start')} gives you an AGENT inside that box.\n ${chalk.bold('attach')} WATCHES that agent.\n ${chalk.bold('send')} TYPES INTO it.\nA box with no session is a normal state — that is what 'exec' runs against.\n\nAI Agent Directive:\n Run 'mutagent helix session start <sandbox-id> --rpc --json' before 'send':\n a session id is required and there is no default one to guess.\n `,\n );\n\n registerStart(session, parent);\n parent.addCommand(session);\n}\n\nfunction registerStart(session: Command, root: Command): void {\n session\n .command('start')\n .description('Start a Helix session inside an existing sandbox')\n .argument('<id>', 'Sandbox ID')\n .option('--rpc', 'Long-lived session you can send into (default: one-shot)')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix session start sbx_123 --rpc\n ${chalk.dim('$')} mutagent helix session start sbx_123\n ${chalk.dim('$')} mutagent helix session start sbx_123 --rpc --json\n\nTWO MODES, AND ONLY ONE OF THEM LISTENS:\n ${chalk.bold('--rpc')} A long-lived agent reading commands on its stdin. This is\n the mode 'mutagent helix send' writes into; without it there\n is nothing to write to and every send is refused.\n ${chalk.dim('(default)')} One-shot. The session takes its turn and ends. Watchable\n with 'attach', not steerable.\n\nThe box must already exist — 'mutagent helix spawn --image <ref>' makes one, and\n'mutagent helix ls' shows which are running. One sandbox can host several\nsessions, so starting one never replaces another.\n\nThe session id printed here is the handle for everything after it. Nothing else\ncan produce it, so a session started and then forgotten can only be found again\nby attaching to the box and reading the stream.\n\nAI Agent Directive:\n --json returns ONE object: { success, sandboxId, sessionId, status, mode,\n _links }. Capture 'sessionId' — 'mutagent helix send' requires it and there is\n no default. Use --rpc whenever you intend to send into the session; a one-shot\n session refuses input with a 409.\n `,\n )\n .action(async (id: string, options: StartOptions) => {\n const isJson = getJsonFlag(root);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const mode = options.rpc === true ? 'rpc' : 'oneshot';\n const result = await startSession(id, { mode });\n const sessionId = requireSessionId(result, id);\n\n if (isJson) {\n output.output({\n success: true,\n sandboxId: id,\n sessionId,\n status: result.status,\n mode,\n _links: sandboxLinks(id),\n _directive: {\n instruction:\n mode === 'rpc'\n ? 'The session is live and reading its stdin. Attach to watch it; send to steer it.'\n : 'The session takes one turn and ends. Attach to watch it; it does not accept input.',\n next:\n mode === 'rpc'\n ? [\n `mutagent helix attach ${id} --json`,\n `mutagent helix send ${id} --session ${sessionId} \"<message>\" --json`,\n ]\n : [`mutagent helix attach ${id} --json`],\n },\n });\n return;\n }\n\n output.success(`Session ${sessionId} started in ${id} (${mode})`);\n console.error(chalk.dim(` Watch it: mutagent helix attach ${id}`));\n // A one-shot session has no stdin to write to, so pointing at `send`\n // here would be pointing at a guaranteed 409.\n if (mode === 'rpc') {\n console.error(\n chalk.dim(` Talk to it: mutagent helix send ${id} --session ${sessionId} \"<message>\"`),\n );\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\n/**\n * A session with no id is a dead end, not a success.\n *\n * Every verb after this one needs the id and nothing else can produce it, so\n * reporting \"started\" without one hands the caller a session they can never\n * address again — worse than the error, because it looks like it worked.\n */\nfunction requireSessionId(result: StartSessionResult, sandboxId: string): string {\n if (typeof result.sessionId === 'string' && result.sessionId !== '') return result.sessionId;\n throw new MutagentError(\n 'INVALID_RESPONSE',\n 'The server started a session but did not return a session id.',\n `The session may be running — watch it with: mutagent helix attach ${sandboxId}`,\n );\n}\n",
62
- "/**\n * `helix run` — one agent turn, and `helix exec` — one command.\n *\n * WHY `run` LOST ITS SANDBOX ID\n *\n * The pinned spec was `helix run <id> <prompt...>`, which mapped onto nothing:\n * there is no endpoint that runs an agent turn inside an existing sandbox.\n * `POST /api/sandbox/agent/run` is one-shot — it spawns from a preset, takes\n * the turn, and tears the box down. So `run` keeps the name and the intent\n * (drive Helix with a prompt) and drops the argument the API cannot honour.\n *\n * WHY THERE ARE TWO PROMPTS\n *\n * `--prompt` is WHO the agent is (its definition) and the task is WHAT to do\n * this turn. The server passes them to `helix agent --prompt <who> -p <what>`\n * and never concatenates them; flattening produces a run that starts, looks\n * plausible, and answers the wrong question. Neither can be defaulted, so\n * both are required and the error says which is which.\n *\n * WHY `run` STREAMS, AND WHAT THAT COSTS\n *\n * This header used to say \"the turn is blocking and does not stream — the\n * server returns the whole result\", and that was true and is now false:\n * `POST /api/sandbox/agent/run?stream=1` delivers the turn as it happens. The\n * old sentence is kept here because it is the whole reason the flag exists —\n * an agent turn can run for minutes, and a command that shows nothing until it\n * finishes leaves a developer unable to tell work from a hang. `--no-stream`\n * is the old behaviour, unchanged.\n *\n * ONE THING IS GENUINELY WORSE WHEN STREAMING, and it is not hidden: there is\n * no reconnect. `helix exec --sandbox` can resume a dropped stream through the\n * read-only attach endpoint, because its box outlives the connection. A\n * one-shot's box does not — the server releases it the moment this connection\n * drops — so there is nothing to resume, and re-POSTing would run the turn a\n * SECOND time against a SECOND sandbox. So this opens the stream exactly once\n * and, on a drop, says plainly that the turn was lost rather than quietly\n * running it again.\n */\n\nimport type { Command } from 'commander';\nimport chalk from 'chalk';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, handleError } from '../../lib/errors.js';\nimport {\n agentRun,\n execSandbox,\n oneShotRun,\n openAgentRunStream,\n openAttachStream,\n openExecStream,\n sandboxLinks,\n type AgentRunRequest,\n type ExecResult,\n} from '../../lib/sandbox-api.js';\nimport type { StreamOpener } from '../../lib/sandbox-stream.js';\nimport { attachToSandbox } from './session.js';\n\ninterface RunOptions {\n prompt?: string;\n preset?: string;\n keep?: boolean;\n timeoutMs?: string;\n /** Commander's `--no-stream` sets this to false; default is true. */\n stream?: boolean;\n}\n\ninterface ExecOptions {\n sandbox?: string;\n preset?: string;\n keep?: boolean;\n cwd?: string;\n timeoutMs?: string;\n /** Commander's `--no-stream` sets this to false; default is true. */\n stream?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// run — one agent turn\n// ---------------------------------------------------------------------------\n\nexport function registerRunCommand(parent: Command): void {\n parent\n .command('run')\n .description('Run one Helix agent turn in a fresh sandbox')\n .argument('<task...>', 'WHAT to do this turn')\n .requiredOption('--prompt <definition>', 'WHO the agent is — the agent definition')\n .option('--preset <name>', 'Preset to run on (default: the backend default)')\n .option('--keep', 'Keep the sandbox afterwards instead of tearing it down')\n .option('--timeout-ms <n>', 'Per-command timeout in milliseconds')\n .option('--no-stream', 'Wait for the whole turn instead of watching it happen')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix run \"summarise the failing tests\" --prompt \"You are a test triage agent.\"\n ${chalk.dim('$')} mutagent helix run fix the flaky login spec --prompt \"$(cat agent.md)\"\n ${chalk.dim('$')} mutagent helix run \"list open PRs\" --prompt \"You are a release assistant.\" --json\n ${chalk.dim('$')} mutagent helix run \"explore the repo\" --prompt \"$(cat agent.md)\" --keep\n\nTWO PROMPTS, AND THEY ARE NOT THE SAME THING:\n --prompt WHO the agent is — its definition, its standing instructions.\n <task...> WHAT to do this turn.\nThey are never concatenated. Passing the task as --prompt produces a run that\nstarts, looks plausible, and answers a different question.\n\nThis is a ONE-SHOT call: it spawns a fresh sandbox from a preset, takes the turn\nand tears the sandbox down. There is no sandbox id argument because there is no\nendpoint that runs an agent turn inside an existing box. Pass --keep to hold the\nsandbox open; the id is reported so you can attach or exec against it.\n\nThe turn STREAMS by default — output appears as the agent produces it, and the\nsandbox id is printed before the first line so you always know what is running.\nIts exit code becomes this command's exit code.\n\nCtrl-C CANCELS THE TURN. This is the one place in 'mutagent helix' where it does:\na one-shot sandbox belongs to this connection, so leaving releases it. Elsewhere\nCtrl-C detaches and the box keeps running. Use --keep if you want it to survive.\n\nThere is no reconnect on a streamed run. If the connection drops the turn is\nlost, and you are told so — retrying would spawn a second sandbox and run the\nturn again. Use --no-stream over a flaky link.\n\nSee 'mutagent helix presets' for what --preset accepts.\n\nAI Agent Directive:\n --no-stream --json returns ONE object: { success, result: { sandboxId,\n exitCode, stdout, stderr, timedOut, tornDown }, _links }. Prefer it for a\n result you intend to parse.\n --json while streaming emits NDJSON — one object per line — and the LAST line\n is a complete summary object, so '| tail -1' still yields one object. Same\n convention as 'mutagent helix exec'.\n Both --prompt and the task are required; do not fold one into the other.\n `,\n )\n .action(async (taskParts: string[], options: RunOptions) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const task = taskParts.join(' ').trim();\n if (task === '') {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'The task is required — it is WHAT the agent should do this turn.',\n 'Run: mutagent helix run \"<what to do>\" --prompt \"<who the agent is>\"',\n );\n }\n\n const prompt = options.prompt?.trim() ?? '';\n if (prompt === '') {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n '--prompt is required — it is WHO the agent is, not what it should do.',\n 'The task you already passed is the WHAT. Add the agent definition:\\n --prompt \"You are a ...\" (or --prompt \"$(cat agent.md)\")',\n );\n }\n\n const body = {\n prompt,\n task,\n ...oneShotFields(options.preset, options.keep, options.timeoutMs),\n };\n\n if (options.stream === false) {\n const result = await agentRun(body);\n reportResult(result, output, isJson, { prompt, task });\n return;\n }\n\n await streamAgentTurn(body, isJson, options.keep === true);\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\n/**\n * Watch one agent turn.\n *\n * ── WHY IT REUSES `attachToSandbox` ─────────────────────────────────────────\n * The reconnect, the gap accounting, the SIGINT handling, the stdout/stderr\n * split and the NDJSON sink are all already correct in `sandbox-stream.ts` and\n * `session.ts`. A second consumer would be a second place for \"which stream does\n * a byte belong on\" to drift, and that answer is what makes a piped run\n * byte-identical to a local one.\n *\n * ── WHY IT TURNS THE RECONNECT OFF ──────────────────────────────────────────\n * `retry: { attempts: 0 }` is the one behaviour this composition must NOT\n * inherit. Reconnecting here means re-POSTing `/agent/run`, which spawns a\n * SECOND sandbox and runs the turn a SECOND time — and the user would read the\n * replacement run's output as a continuation of the first. `helix exec` can\n * reconnect because it falls back to the read-only attach endpoint; a one-shot\n * has no such endpoint to fall back to, because by then its box is gone.\n */\nasync function streamAgentTurn(\n body: AgentRunRequest,\n isJson: boolean,\n keep: boolean,\n): Promise<void> {\n let sandboxId: string | undefined;\n let opened = false;\n\n const session = await attachToSandbox({\n // Not known yet — the server names the box on the stream's first frame.\n id: '',\n isJson,\n // With `--keep` the box survives us, so the outcome lines may honestly offer\n // a re-attach. Without it, leaving releases the box and they must not.\n onDisconnect: keep ? 'survives' : 'released',\n retry: { attempts: 0, baseDelayMs: 0 },\n onSandbox: (sandbox) => {\n sandboxId = sandbox.sandboxId;\n },\n open: ({ signal }) => {\n // Belt and braces around the `attempts: 0` above. If any future change to\n // the retry policy reopens this, it must fail loudly rather than silently\n // billing a second agent turn.\n if (opened) {\n throw new MutagentError(\n 'STREAM_DISCONNECTED',\n 'The turn’s stream dropped and cannot be resumed.',\n 'A one-shot run cannot be reconnected — the server released the sandbox when the connection dropped, and re-opening would run the whole turn again in a new box. Run it again, or use --no-stream.',\n 5,\n );\n }\n opened = true;\n return openAgentRunStream(body, { signal });\n },\n });\n\n if (isJson) {\n console.log(\n JSON.stringify({\n success: true,\n prompt: body.prompt,\n task: body.task,\n sandboxId: session.result?.sandboxId ?? sandboxId ?? null,\n preset: session.result?.preset ?? session.sandbox?.preset ?? null,\n end: session.end,\n exitCode: session.exitCode,\n timedOut: session.result?.timedOut ?? false,\n tornDown: session.result?.tornDown ?? null,\n ...(session.result?.error === undefined ? {} : { error: session.result.error }),\n lastSeq: session.lastSeq,\n gaps: session.gaps,\n ...(sandboxId === undefined ? {} : { _links: sandboxLinks(sandboxId) }),\n }),\n );\n }\n\n // A turn that produced NO exit code did not succeed, and exiting 0 would say it\n // did — the same fabricated-zero mistake the server refuses to make. `session.ts`\n // already propagates a real non-zero code; this covers only the null case.\n if (session.end === 'exited' && session.exitCode === null) {\n process.exitCode = 1;\n }\n}\n\n// ---------------------------------------------------------------------------\n// exec — one command\n// ---------------------------------------------------------------------------\n\nexport function registerExecCommand(parent: Command): void {\n parent\n .command('exec')\n .description('Run a command in a sandbox — an existing one, or a fresh one')\n .argument('<argv...>', 'Command and arguments (argv, not a shell string)')\n .option('--sandbox <id>', 'Run in this existing sandbox instead of a fresh one')\n .option('--preset <name>', 'Preset for the fresh sandbox (ignored with --sandbox)')\n .option('--keep', 'Keep the fresh sandbox afterwards (ignored with --sandbox)')\n .option('--cwd <dir>', 'Working directory inside the sandbox')\n .option('--timeout-ms <n>', 'Command timeout in milliseconds')\n .option('--no-stream', 'Wait for the full result instead of streaming it')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix exec -- ls -la /workspace\n ${chalk.dim('$')} mutagent helix exec --sandbox sbx_123 -- bun test\n ${chalk.dim('$')} mutagent helix exec --sandbox sbx_123 --cwd /src -- git status\n ${chalk.dim('$')} mutagent helix exec --preset default -- uname -m --json\n\nPut ${chalk.bold('--')} before the command. Everything after it is argv and is passed through\nuntouched, so flags meant for your command are not read as flags for this one.\n\nARGV, NOT A SHELL STRING. There is no shell in the sandbox unless you name one:\n ${chalk.dim('$')} mutagent helix exec -- sh -c 'ls | wc -l' ${chalk.dim('a shell, explicitly')}\n ${chalk.dim('$')} mutagent helix exec -- 'ls | wc -l' ${chalk.dim(\"looks for a file called 'ls | wc -l'\")}\n\nWITH --sandbox runs in that box and streams as output is produced.\nWITHOUT --sandbox spawns a fresh box from a preset, runs, tears it down. That\n path is blocking, so --no-stream is redundant there and\n --preset / --keep apply only there.\n\nThe command's exit code becomes this command's exit code.\n\nAI Agent Directive:\n Use --no-stream --json (or the one-shot form, which is always blocking) for a\n result you intend to parse: one object, no NDJSON to reassemble.\n Run 'mutagent helix ls --json' first to confirm a --sandbox id is running.\n `,\n )\n .action(async (argv: string[], options: ExecOptions) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const command = argv.filter((part) => part !== '');\n if (command.length === 0) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'A command is required.',\n 'Run: mutagent helix exec -- <command> [args...]',\n );\n }\n\n const timeoutMs = parseTimeout(options.timeoutMs);\n const id = options.sandbox?.trim();\n\n // ── One-shot: fresh box, blocking ───────────────────────────────────\n if (id === undefined || id === '') {\n const result = await oneShotRun({\n command,\n ...(options.cwd === undefined ? {} : { cwd: options.cwd }),\n ...oneShotFields(options.preset, options.keep, options.timeoutMs),\n });\n reportResult(result, output, isJson, { command });\n return;\n }\n\n // Refuse rather than ignore. A `--keep` that silently does nothing\n // teaches the wrong model of what the command did.\n rejectOneShotOnlyFlags(options);\n\n const body = {\n command,\n ...(options.cwd === undefined ? {} : { cwd: options.cwd }),\n ...(timeoutMs === undefined ? {} : { timeoutMs }),\n };\n\n if (options.stream === false) {\n const result = await execSandbox(id, body);\n reportResult(result, output, isJson, { command, sandboxId: id });\n return;\n }\n\n const session = await attachToSandbox({\n id,\n isJson,\n announce: `Running in sandbox ${id}. Ctrl-C detaches without stopping it.`,\n open: createExecOpener(id, body),\n });\n\n if (isJson) {\n console.log(\n JSON.stringify({\n success: true,\n sandboxId: id,\n command,\n end: session.end,\n exitCode: session.exitCode,\n lastSeq: session.lastSeq,\n reconnects: session.reconnects,\n gaps: session.gaps,\n _links: sandboxLinks(id),\n }),\n );\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\nfunction rejectOneShotOnlyFlags(options: ExecOptions): void {\n const offenders: string[] = [];\n if (options.preset !== undefined) offenders.push('--preset');\n if (options.keep === true) offenders.push('--keep');\n if (offenders.length === 0) return;\n\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `${offenders.join(' and ')} ${offenders.length === 1 ? 'applies' : 'apply'} only to a fresh sandbox, but --sandbox names an existing one.`,\n 'Drop --sandbox to run one-shot in a fresh box, or drop these flags to run in the existing one.',\n );\n}\n\n/**\n * Open the exec stream once, then resume through the ATTACH endpoint.\n *\n * This asymmetry is the whole point. Reconnecting by re-POSTing `/exec` would\n * submit the command a SECOND time — it would run twice, and the user would see\n * a plausible-looking continuation of output that is in fact a different run.\n * The attach endpoint is the read-only view of the same session, so resuming\n * through it with `?since=` is the only safe way back in.\n */\nexport function createExecOpener(\n id: string,\n body: { command: string[]; cwd?: string; timeoutMs?: number },\n): StreamOpener {\n let submitted = false;\n return ({ since, signal }) => {\n if (!submitted) {\n submitted = true;\n return openExecStream(id, body, { signal });\n }\n return openAttachStream(id, { since, signal });\n };\n}\n\n// ---------------------------------------------------------------------------\n// Shared\n// ---------------------------------------------------------------------------\n\nfunction oneShotFields(\n preset: string | undefined,\n keep: boolean | undefined,\n timeoutMs: string | undefined,\n): { preset?: string; keep?: boolean; timeoutMs?: number } {\n const parsed = parseTimeout(timeoutMs);\n return {\n ...(preset === undefined ? {} : { preset }),\n ...(keep === true ? { keep: true } : {}),\n ...(parsed === undefined ? {} : { timeoutMs: parsed }),\n };\n}\n\nexport function parseTimeout(raw: string | undefined): number | undefined {\n if (raw === undefined) return undefined;\n const value = Number(raw);\n if (!Number.isInteger(value) || value <= 0) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `--timeout-ms must be a positive whole number of milliseconds, got \"${raw}\".`,\n 'Example: --timeout-ms 30000 for thirty seconds.',\n );\n }\n return value;\n}\n\n/**\n * Render a blocking result so it reads like a local command: the sandbox's\n * stdout on stdout, its stderr on stderr, and its exit code as ours.\n */\nfunction reportResult(\n result: ExecResult,\n output: OutputFormatter,\n isJson: boolean,\n context: Record<string, unknown>,\n): void {\n if (isJson) {\n const links = typeof result.sandboxId === 'string' ? sandboxLinks(result.sandboxId) : undefined;\n output.output({\n success: true,\n ...context,\n result,\n ...(links === undefined ? {} : { _links: links }),\n });\n } else {\n if (result.stdout) process.stdout.write(result.stdout);\n if (result.stderr) process.stderr.write(result.stderr);\n if (result.timedOut) process.stderr.write('[mutagent] The command timed out.\\n');\n if (typeof result.sandboxId === 'string' && result.tornDown === false) {\n process.stderr.write(\n `[mutagent] Sandbox ${result.sandboxId} is still running. Destroy it with: mutagent helix rm ${result.sandboxId} --force\\n`,\n );\n }\n }\n\n // Set, never exit(): the writes above still have to flush.\n if (typeof result.exitCode === 'number' && result.exitCode !== 0) {\n process.exitCode = result.exitCode;\n }\n}\n",
63
+ "/**\n * `helix run` — one agent turn, and `helix exec` — one command.\n *\n * WHY `run` LOST ITS SANDBOX ID\n *\n * The pinned spec was `helix run <id> <prompt...>`, which mapped onto nothing:\n * there is no endpoint that runs an agent turn inside an existing sandbox.\n * `POST /api/sandbox/agent/run` is one-shot — it spawns from a preset, takes\n * the turn, and tears the box down. So `run` keeps the name and the intent\n * (drive Helix with a prompt) and drops the argument the API cannot honour.\n *\n * WHY THERE ARE TWO PROMPTS\n *\n * `--prompt` is WHO the agent is (its definition) and the task is WHAT to do\n * this turn. The server passes them to `helix agent --prompt <who> -p <what>`\n * and never concatenates them; flattening produces a run that starts, looks\n * plausible, and answers the wrong question. Neither can be defaulted, so\n * both are required and the error says which is which.\n *\n * WHY `run` STREAMS, AND WHAT THAT COSTS\n *\n * This header used to say \"the turn is blocking and does not stream — the\n * server returns the whole result\", and that was true and is now false:\n * `POST /api/sandbox/agent/run?stream=1` delivers the turn as it happens. The\n * old sentence is kept here because it is the whole reason the flag exists —\n * an agent turn can run for minutes, and a command that shows nothing until it\n * finishes leaves a developer unable to tell work from a hang. `--no-stream`\n * is the old behaviour, unchanged.\n *\n * ONE THING IS GENUINELY WORSE WHEN STREAMING, and it is not hidden: there is\n * no reconnect. `helix exec --sandbox` can resume a dropped stream through the\n * read-only attach endpoint, because its box outlives the connection. A\n * one-shot's box does not — the server releases it the moment this connection\n * drops — so there is nothing to resume, and re-POSTing would run the turn a\n * SECOND time against a SECOND sandbox. So this opens the stream exactly once\n * and, on a drop, says plainly that the turn was lost rather than quietly\n * running it again.\n */\n\nimport type { Command } from 'commander';\nimport chalk from 'chalk';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, handleError } from '../../lib/errors.js';\nimport {\n agentRun,\n execSandbox,\n oneShotRun,\n openAgentRunStream,\n openAttachStream,\n openExecStream,\n sandboxLinks,\n type AgentRunRequest,\n type ExecResult,\n} from '../../lib/sandbox-api.js';\nimport type { StreamOpener } from '../../lib/sandbox-stream.js';\nimport { attachToSandbox } from './session.js';\n\ninterface RunOptions {\n prompt?: string;\n prime?: boolean;\n preset?: string;\n keep?: boolean;\n timeoutMs?: string;\n /** Commander's `--no-stream` sets this to false; default is true. */\n stream?: boolean;\n}\n\ninterface ExecOptions {\n sandbox?: string;\n preset?: string;\n keep?: boolean;\n cwd?: string;\n timeoutMs?: string;\n /** Commander's `--no-stream` sets this to false; default is true. */\n stream?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// run — one agent turn\n// ---------------------------------------------------------------------------\n\nexport function registerRunCommand(parent: Command): void {\n parent\n .command('run')\n // An ALIAS, not a second command. Commander routes both names to this one\n // action, so the two can never drift in flags, defaults or behaviour — which\n // a copy registered under the other name would do the first time either was\n // edited. `helix agent --prompt \"...\" \"<task>\"` is the local binary's verb;\n // this makes the same verb work against the cloud without teaching a caller\n // a second word for one operation. `run` stays canonical: it is what the\n // help, the JSON and the error messages name.\n .alias('agent')\n .description('Run one Helix agent turn in a fresh sandbox (alias: agent)')\n .argument('<task...>', 'WHAT to do this turn')\n .requiredOption('--prompt <definition>', 'WHO the agent is — the agent definition')\n .option('--preset <name>', 'Preset to run on (default: the backend default)')\n .option('--keep', 'Keep the sandbox afterwards instead of tearing it down')\n .option('--timeout-ms <n>', 'Per-command timeout in milliseconds')\n .option('--no-stream', 'Wait for the whole turn instead of watching it happen')\n .option('--prime', 'Run on the leaner ASPS-Prime scaffold (the binary\\'s --prime)')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix run \"summarise the failing tests\" --prompt \"You are a test triage agent.\"\n ${chalk.dim('$')} mutagent helix run fix the flaky login spec --prompt \"$(cat agent.md)\"\n ${chalk.dim('$')} mutagent helix run \"list open PRs\" --prompt \"You are a release assistant.\" --json\n ${chalk.dim('$')} mutagent helix run \"explore the repo\" --prompt \"$(cat agent.md)\" --keep\n\n--prime — THE SAME FLAG THE LOCAL BINARY TAKES:\n 'helix agent --prime' locally and 'mutagent helix run --prime' in the cloud\n select the same thing: the ASPS-Prime scaffold, a leaner code-first arm with\n no orchestrator persona, no skills and no sub-agent crew. It is forwarded to\n the binary as argv rather than interpreted by the server, so it means exactly\n what the binary's own --help says it means. This is NOT a speed setting — it\n changes which agent takes the turn.\n\nSAME COMMAND, TWO NAMES:\n 'mutagent helix agent' is an ALIAS of 'mutagent helix run'. Not a variant, not\n a shorthand with different defaults — the same command, the same flags, the\n same behaviour. It exists so the verb that works against the local binary\n ('helix agent --prompt \"...\" \"task\"') also works against the cloud.\n RUN is the canonical name: it is what the docs, the JSON output and the error\n messages use. 'agent' is there so a caller who learned the local CLI does not\n have to learn a second word for the same operation.\n\nTWO PROMPTS, AND THEY ARE NOT THE SAME THING:\n --prompt WHO the agent is — its definition, its standing instructions.\n <task...> WHAT to do this turn.\nThey are never concatenated. Passing the task as --prompt produces a run that\nstarts, looks plausible, and answers a different question.\n\nThis is a ONE-SHOT call: it spawns a fresh sandbox from a preset, takes the turn\nand tears the sandbox down. There is no sandbox id argument because there is no\nendpoint that runs an agent turn inside an existing box. Pass --keep to hold the\nsandbox open; the id is reported so you can attach or exec against it.\n\nThe turn STREAMS by default — output appears as the agent produces it, and the\nsandbox id is printed before the first line so you always know what is running.\nIts exit code becomes this command's exit code.\n\nCtrl-C CANCELS THE TURN. This is the one place in 'mutagent helix' where it does:\na one-shot sandbox belongs to this connection, so leaving releases it. Elsewhere\nCtrl-C detaches and the box keeps running. Use --keep if you want it to survive.\n\nThere is no reconnect on a streamed run. If the connection drops the turn is\nlost, and you are told so — retrying would spawn a second sandbox and run the\nturn again. Use --no-stream over a flaky link.\n\nSee 'mutagent helix presets' for what --preset accepts.\n\nAI Agent Directive:\n --no-stream --json returns ONE object: { success, result: { sandboxId,\n exitCode, stdout, stderr, timedOut, tornDown }, _links }. Prefer it for a\n result you intend to parse.\n --json while streaming emits NDJSON — one object per line — and the LAST line\n is a complete summary object, so '| tail -1' still yields one object. Same\n convention as 'mutagent helix exec'.\n Both --prompt and the task are required; do not fold one into the other.\n 'mutagent helix agent' and 'mutagent helix run' are THE SAME COMMAND. Prefer\n 'run' in anything you write down; 'agent' exists for parity with the local\n 'helix agent' verb.\n --prime selects the binary's leaner scaffold. Omit it unless the user asked\n for it; it is not a performance flag, it changes which agent runs.\n `,\n )\n .action(async (taskParts: string[], options: RunOptions) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const task = taskParts.join(' ').trim();\n if (task === '') {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'The task is required — it is WHAT the agent should do this turn.',\n 'Run: mutagent helix run \"<what to do>\" --prompt \"<who the agent is>\"',\n );\n }\n\n const prompt = options.prompt?.trim() ?? '';\n if (prompt === '') {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n '--prompt is required — it is WHO the agent is, not what it should do.',\n 'The task you already passed is the WHAT. Add the agent definition:\\n --prompt \"You are a ...\" (or --prompt \"$(cat agent.md)\")',\n );\n }\n\n const body = {\n prompt,\n task,\n // Spread-when-true rather than `prime: options.prime`: Commander\n // leaves the flag `undefined` when unset, and sending `prime: false`\n // would change the request every existing caller makes to say\n // something it never said before.\n ...(options.prime === true ? { prime: true } : {}),\n ...oneShotFields(options.preset, options.keep, options.timeoutMs),\n };\n\n if (options.stream === false) {\n const result = await agentRun(body);\n reportResult(result, output, isJson, { prompt, task });\n return;\n }\n\n await streamAgentTurn(body, isJson, options.keep === true);\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\n/**\n * Watch one agent turn.\n *\n * ── WHY IT REUSES `attachToSandbox` ─────────────────────────────────────────\n * The reconnect, the gap accounting, the SIGINT handling, the stdout/stderr\n * split and the NDJSON sink are all already correct in `sandbox-stream.ts` and\n * `session.ts`. A second consumer would be a second place for \"which stream does\n * a byte belong on\" to drift, and that answer is what makes a piped run\n * byte-identical to a local one.\n *\n * ── WHY IT TURNS THE RECONNECT OFF ──────────────────────────────────────────\n * `retry: { attempts: 0 }` is the one behaviour this composition must NOT\n * inherit. Reconnecting here means re-POSTing `/agent/run`, which spawns a\n * SECOND sandbox and runs the turn a SECOND time — and the user would read the\n * replacement run's output as a continuation of the first. `helix exec` can\n * reconnect because it falls back to the read-only attach endpoint; a one-shot\n * has no such endpoint to fall back to, because by then its box is gone.\n */\nasync function streamAgentTurn(\n body: AgentRunRequest,\n isJson: boolean,\n keep: boolean,\n): Promise<void> {\n let sandboxId: string | undefined;\n let opened = false;\n\n const session = await attachToSandbox({\n // Not known yet — the server names the box on the stream's first frame.\n id: '',\n isJson,\n // With `--keep` the box survives us, so the outcome lines may honestly offer\n // a re-attach. Without it, leaving releases the box and they must not.\n onDisconnect: keep ? 'survives' : 'released',\n retry: { attempts: 0, baseDelayMs: 0 },\n onSandbox: (sandbox) => {\n sandboxId = sandbox.sandboxId;\n },\n open: ({ signal }) => {\n // Belt and braces around the `attempts: 0` above. If any future change to\n // the retry policy reopens this, it must fail loudly rather than silently\n // billing a second agent turn.\n if (opened) {\n throw new MutagentError(\n 'STREAM_DISCONNECTED',\n 'The turn’s stream dropped and cannot be resumed.',\n 'A one-shot run cannot be reconnected — the server released the sandbox when the connection dropped, and re-opening would run the whole turn again in a new box. Run it again, or use --no-stream.',\n 5,\n );\n }\n opened = true;\n return openAgentRunStream(body, { signal });\n },\n });\n\n if (isJson) {\n console.log(\n JSON.stringify({\n success: true,\n prompt: body.prompt,\n task: body.task,\n sandboxId: session.result?.sandboxId ?? sandboxId ?? null,\n preset: session.result?.preset ?? session.sandbox?.preset ?? null,\n end: session.end,\n exitCode: session.exitCode,\n timedOut: session.result?.timedOut ?? false,\n tornDown: session.result?.tornDown ?? null,\n ...(session.result?.error === undefined ? {} : { error: session.result.error }),\n lastSeq: session.lastSeq,\n gaps: session.gaps,\n ...(sandboxId === undefined ? {} : { _links: sandboxLinks(sandboxId) }),\n }),\n );\n }\n\n // A turn that produced NO exit code did not succeed, and exiting 0 would say it\n // did — the same fabricated-zero mistake the server refuses to make. `session.ts`\n // already propagates a real non-zero code; this covers only the null case.\n if (session.end === 'exited' && session.exitCode === null) {\n process.exitCode = 1;\n }\n}\n\n// ---------------------------------------------------------------------------\n// exec — one command\n// ---------------------------------------------------------------------------\n\nexport function registerExecCommand(parent: Command): void {\n parent\n .command('exec')\n .description('Run a command in a sandbox — an existing one, or a fresh one')\n .argument('<argv...>', 'Command and arguments (argv, not a shell string)')\n .option('--sandbox <id>', 'Run in this existing sandbox instead of a fresh one')\n .option('--preset <name>', 'Preset for the fresh sandbox (ignored with --sandbox)')\n .option('--keep', 'Keep the fresh sandbox afterwards (ignored with --sandbox)')\n .option('--cwd <dir>', 'Working directory inside the sandbox')\n .option('--timeout-ms <n>', 'Command timeout in milliseconds')\n .option('--no-stream', 'Wait for the full result instead of streaming it')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix exec -- ls -la /workspace\n ${chalk.dim('$')} mutagent helix exec --sandbox sbx_123 -- bun test\n ${chalk.dim('$')} mutagent helix exec --sandbox sbx_123 --cwd /src -- git status\n ${chalk.dim('$')} mutagent helix exec --preset default -- uname -m --json\n\nPut ${chalk.bold('--')} before the command. Everything after it is argv and is passed through\nuntouched, so flags meant for your command are not read as flags for this one.\n\nARGV, NOT A SHELL STRING. There is no shell in the sandbox unless you name one:\n ${chalk.dim('$')} mutagent helix exec -- sh -c 'ls | wc -l' ${chalk.dim('a shell, explicitly')}\n ${chalk.dim('$')} mutagent helix exec -- 'ls | wc -l' ${chalk.dim(\"looks for a file called 'ls | wc -l'\")}\n\nWITH --sandbox runs in that box and streams as output is produced.\nWITHOUT --sandbox spawns a fresh box from a preset, runs, tears it down. That\n path is blocking, so --no-stream is redundant there and\n --preset / --keep apply only there.\n\nThe command's exit code becomes this command's exit code.\n\nAI Agent Directive:\n Use --no-stream --json (or the one-shot form, which is always blocking) for a\n result you intend to parse: one object, no NDJSON to reassemble.\n Run 'mutagent helix ls --json' first to confirm a --sandbox id is running.\n `,\n )\n .action(async (argv: string[], options: ExecOptions) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const command = argv.filter((part) => part !== '');\n if (command.length === 0) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'A command is required.',\n 'Run: mutagent helix exec -- <command> [args...]',\n );\n }\n\n const timeoutMs = parseTimeout(options.timeoutMs);\n const id = options.sandbox?.trim();\n\n // ── One-shot: fresh box, blocking ───────────────────────────────────\n if (id === undefined || id === '') {\n const result = await oneShotRun({\n command,\n ...(options.cwd === undefined ? {} : { cwd: options.cwd }),\n ...oneShotFields(options.preset, options.keep, options.timeoutMs),\n });\n reportResult(result, output, isJson, { command });\n return;\n }\n\n // Refuse rather than ignore. A `--keep` that silently does nothing\n // teaches the wrong model of what the command did.\n rejectOneShotOnlyFlags(options);\n\n const body = {\n command,\n ...(options.cwd === undefined ? {} : { cwd: options.cwd }),\n ...(timeoutMs === undefined ? {} : { timeoutMs }),\n };\n\n if (options.stream === false) {\n const result = await execSandbox(id, body);\n reportResult(result, output, isJson, { command, sandboxId: id });\n return;\n }\n\n const session = await attachToSandbox({\n id,\n isJson,\n announce: `Running in sandbox ${id}. Ctrl-C detaches without stopping it.`,\n open: createExecOpener(id, body),\n });\n\n if (isJson) {\n console.log(\n JSON.stringify({\n success: true,\n sandboxId: id,\n command,\n end: session.end,\n exitCode: session.exitCode,\n lastSeq: session.lastSeq,\n reconnects: session.reconnects,\n gaps: session.gaps,\n _links: sandboxLinks(id),\n }),\n );\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\nfunction rejectOneShotOnlyFlags(options: ExecOptions): void {\n const offenders: string[] = [];\n if (options.preset !== undefined) offenders.push('--preset');\n if (options.keep === true) offenders.push('--keep');\n if (offenders.length === 0) return;\n\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `${offenders.join(' and ')} ${offenders.length === 1 ? 'applies' : 'apply'} only to a fresh sandbox, but --sandbox names an existing one.`,\n 'Drop --sandbox to run one-shot in a fresh box, or drop these flags to run in the existing one.',\n );\n}\n\n/**\n * Open the exec stream once, then resume through the ATTACH endpoint.\n *\n * This asymmetry is the whole point. Reconnecting by re-POSTing `/exec` would\n * submit the command a SECOND time — it would run twice, and the user would see\n * a plausible-looking continuation of output that is in fact a different run.\n * The attach endpoint is the read-only view of the same session, so resuming\n * through it with `?since=` is the only safe way back in.\n */\nexport function createExecOpener(\n id: string,\n body: { command: string[]; cwd?: string; timeoutMs?: number },\n): StreamOpener {\n let submitted = false;\n return ({ since, signal }) => {\n if (!submitted) {\n submitted = true;\n return openExecStream(id, body, { signal });\n }\n return openAttachStream(id, { since, signal });\n };\n}\n\n// ---------------------------------------------------------------------------\n// Shared\n// ---------------------------------------------------------------------------\n\nfunction oneShotFields(\n preset: string | undefined,\n keep: boolean | undefined,\n timeoutMs: string | undefined,\n): { preset?: string; keep?: boolean; timeoutMs?: number } {\n const parsed = parseTimeout(timeoutMs);\n return {\n ...(preset === undefined ? {} : { preset }),\n ...(keep === true ? { keep: true } : {}),\n ...(parsed === undefined ? {} : { timeoutMs: parsed }),\n };\n}\n\nexport function parseTimeout(raw: string | undefined): number | undefined {\n if (raw === undefined) return undefined;\n const value = Number(raw);\n if (!Number.isInteger(value) || value <= 0) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `--timeout-ms must be a positive whole number of milliseconds, got \"${raw}\".`,\n 'Example: --timeout-ms 30000 for thirty seconds.',\n );\n }\n return value;\n}\n\n/**\n * Render a blocking result so it reads like a local command: the sandbox's\n * stdout on stdout, its stderr on stderr, and its exit code as ours.\n */\nfunction reportResult(\n result: ExecResult,\n output: OutputFormatter,\n isJson: boolean,\n context: Record<string, unknown>,\n): void {\n if (isJson) {\n const links = typeof result.sandboxId === 'string' ? sandboxLinks(result.sandboxId) : undefined;\n output.output({\n success: true,\n ...context,\n result,\n ...(links === undefined ? {} : { _links: links }),\n });\n } else {\n if (result.stdout) process.stdout.write(result.stdout);\n if (result.stderr) process.stderr.write(result.stderr);\n if (result.timedOut) process.stderr.write('[mutagent] The command timed out.\\n');\n if (typeof result.sandboxId === 'string' && result.tornDown === false) {\n process.stderr.write(\n `[mutagent] Sandbox ${result.sandboxId} is still running. Destroy it with: mutagent helix rm ${result.sandboxId} --force\\n`,\n );\n }\n }\n\n // Set, never exit(): the writes above still have to flush.\n if (typeof result.exitCode === 'number' && result.exitCode !== 0) {\n process.exitCode = result.exitCode;\n }\n}\n",
63
64
  "/**\n * The non-streaming verbs: `ls`, `presets`, `rm`, `traces`.\n *\n * Grouped because they share one shape — one request, one rendering, no stream\n * to manage — and separating them from the attach machinery keeps both halves\n * readable.\n */\n\nimport type { Command } from 'commander';\nimport chalk from 'chalk';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, handleError } from '../../lib/errors.js';\nimport {\n destroySandbox,\n fetchSandboxTraces,\n listPresets,\n listSandboxes,\n sandboxLinks,\n unwrapList,\n type SandboxRecord,\n} from '../../lib/sandbox-api.js';\n\n// ---------------------------------------------------------------------------\n// ls\n// ---------------------------------------------------------------------------\n\nexport function registerLsCommand(parent: Command): void {\n parent\n .command('ls')\n .description('List your sandboxes')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix ls\n ${chalk.dim('$')} mutagent helix ls --json\n\nListing is always workspace-scoped — these are the sandboxes in the workspace\nyou are configured for, not every sandbox on the account. Change it with:\n ${chalk.dim('$')} mutagent config set workspace <workspace-id>\n\nAn empty list is a normal result, not an error: it means no sandbox is running.\n\nAI Agent Directive:\n Run this before attach, exec or rm to confirm the sandbox exists and is\n running. --json returns { sandboxes: [...], count: N }.\n `,\n )\n .action(async () => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const sandboxes = await listSandboxes();\n\n if (isJson) {\n output.output({\n sandboxes: sandboxes.map((s) => ({ ...s, _links: sandboxLinks(s.id) })),\n count: sandboxes.length,\n });\n return;\n }\n\n if (sandboxes.length === 0) {\n console.log(chalk.gray('No sandboxes running.'));\n console.log('');\n console.log(' Start one: mutagent helix spawn --image <ref>');\n return;\n }\n\n output.output(sandboxes.map(toRow));\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\n/**\n * Table columns, chosen so the row stays readable on a narrow terminal.\n *\n * The field is `status`, NOT `state` — that is the record's spelling, and the\n * stream's `state` is a different field on a different shape. Reading the wrong\n * one renders a column of \"unknown\" that looks like a server fault, and an\n * empty-list test cannot catch it because there is no row to be wrong.\n * There is no `image` on the record either: the definition holds the image, and\n * the record names the definition.\n */\nfunction toRow(sandbox: SandboxRecord): Record<string, unknown> {\n return {\n id: sandbox.id,\n status: sandbox.status ?? 'unknown',\n provider: sandbox.provider ?? '',\n arch: sandbox.arch ?? '',\n definition: sandbox.definitionName ?? '',\n created: typeof sandbox.createdAt === 'string'\n ? new Date(sandbox.createdAt).toLocaleString()\n : '',\n };\n}\n\n// ---------------------------------------------------------------------------\n// presets\n// ---------------------------------------------------------------------------\n\nexport function registerPresetsCommand(parent: Command): void {\n parent\n .command('presets')\n .description('List the presets a one-shot run can name')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix presets\n ${chalk.dim('$')} mutagent helix presets --json\n\nA preset is a named definition on the backend. It is what lets 'helix run' and\n'helix exec' start something without you knowing an image reference, a registry\nor a region. Image references are deliberately not returned — if you need\nimage-level detail you are looking for 'helix spawn --image'.\n\nAI Agent Directive:\n --json returns { presets: [...], default: <name|null>, count: N }. Read this\n before passing --preset; an unknown preset is rejected by the server.\n `,\n )\n .action(async () => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const list = await listPresets();\n const presets = list.presets;\n\n if (isJson) {\n output.output({ presets, default: list.default, count: presets.length });\n return;\n }\n\n if (presets.length === 0) {\n console.log(chalk.gray('No presets configured on this backend.'));\n console.log('');\n console.log(' Spawn with an explicit image: mutagent helix spawn --image <ref>');\n return;\n }\n\n output.output(\n presets.map((p) => ({\n name: p.name,\n default: p.name === list.default ? 'yes' : '',\n arch: p.arch ?? '',\n provider: p.provider ?? '',\n description: p.description ?? '',\n })),\n );\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\n// ---------------------------------------------------------------------------\n// rm\n// ---------------------------------------------------------------------------\n\ninterface RmOptions {\n force?: boolean;\n}\n\nexport function registerRmCommand(parent: Command): void {\n parent\n .command('rm')\n .description('Destroy a sandbox')\n .argument('<id>', 'Sandbox ID')\n .option('-f, --force', 'Skip confirmation')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix rm sbx_123 --force\n ${chalk.dim('$')} mutagent helix rm sbx_123 --json\n\nThis is the ONLY command that destroys a sandbox — detaching, Ctrl-C and a\nclosed terminal all leave it running. Removing a sandbox that is already gone\nsucceeds, so a retried teardown is safe.\n\n${chalk.dim('Note: --force is required. The CLI is non-interactive — confirm with the user via your native flow, then pass --force. --json auto-confirms.')}\n${chalk.dim('Warning: any session running in the sandbox ends immediately and cannot be recovered.')}\n\nAI Agent Directive:\n Destroying a sandbox ends any session running in it and cannot be undone.\n Confirm with the user before running it, then pass --force (or --json).\n `,\n )\n .action(async (id: string, options: RmOptions) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // Same gate as `providers delete`: refuse rather than prompt. This CLI\n // has to work identically in a terminal and in an agent's subprocess,\n // and a blocking prompt is the one thing that cannot (Rule 1.2).\n if (!options.force && !isJson) {\n throw new MutagentError(\n 'CONFIRMATION_REQUIRED',\n `Destroying sandbox ${id} requires confirmation. Any session running in it ends immediately.`,\n `[Agent: confirm with the user first]\\nUse --force to confirm: mutagent helix rm ${id} --force`,\n );\n }\n\n await destroySandbox(id);\n\n if (isJson) {\n output.output({\n success: true,\n deletedId: id,\n _links: sandboxLinks(id),\n _directive: {\n instruction:\n 'The sandbox is destroyed. Any session it was running has ended. Spawn a new one to continue.',\n next: ['mutagent helix ls --json', 'mutagent helix spawn --image <ref> --detach --json'],\n },\n });\n return;\n }\n\n output.success(`Sandbox ${id} destroyed`);\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n\n// ---------------------------------------------------------------------------\n// traces\n// ---------------------------------------------------------------------------\n\nexport function registerTracesCommand(parent: Command): void {\n parent\n .command('traces')\n .description('Show the spans captured for a sandbox')\n .argument('<id>', 'Sandbox ID')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent helix traces sbx_123\n ${chalk.dim('$')} mutagent helix traces sbx_123 --json\n\nSpans are what the session actually did — the record to read when the output\nalone does not explain the result. They are called spans, not traces, because\nthat is what the server returns; the command keeps the familiar name.\n\nAn empty result means no spans were captured. That is not the same as the box\nhaving done nothing: telemetry ingest has to be configured for spans to exist.\n\nAI Agent Directive:\n --json returns { spans: [...], count: N, sandboxId }. Read spans before\n concluding why a session behaved the way it did; the streamed output is only\n what was printed, not what was attempted.\n `,\n )\n .action(async (id: string) => {\n const isJson = getJsonFlag(parent);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const body = await fetchSandboxTraces(id);\n // The server's envelope is `{ spans: [...] }`. `unwrapList` knows that\n // key; looking only for `traces` reported every sandbox as empty.\n const spans = unwrapList(body);\n\n if (isJson) {\n output.output({ spans, count: spans.length, sandboxId: id, _links: sandboxLinks(id) });\n return;\n }\n\n if (spans.length === 0) {\n console.log(chalk.gray(`No spans captured for sandbox ${id}.`));\n return;\n }\n\n // The table drops `workspaceId` and `sandboxId`: the caller just typed\n // the sandbox id, and every row carries the same workspace. Rendering\n // both pushed `name` and `attributes` — the only columns that say what\n // happened — past the width of an 80-column terminal. `--json` above\n // returns the server's rows untouched, so nothing is lost, only\n // unshown.\n output.output(\n spans.map((span) => {\n // Omit-by-rest: naming these three IS the mechanism that drops\n // them from the narrow table view. `ignoreRestSiblings` covers\n // this shape, so no suppression is needed.\n const {\n workspaceId: _workspaceId,\n sandboxId: _sandboxId,\n receivedAt: _receivedAt,\n ...rest\n } = span as Record<string, unknown>;\n return rest;\n })\n );\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n",
64
65
  "/**\n * brand.ts — the MUTAGENT wordmark banner for the CLI header.\n *\n * Ported from `mutagent-pi/lib/brand.ts` so the CLI, the Pi launcher and the\n * Helix installer all render the SAME identity. Tokens mirror the mutagent-ui\n * design system (app.css):\n * --primary #7E47D7 (violet) --accent #45b8cc (cyan) --background #0C0A10\n *\n * Rendering is defensive by design — the banner must NEVER corrupt machine\n * output. It is suppressed unless stdout is an interactive TTY (so `--json`,\n * pipes and CI stay byte-clean), and degrades: truecolor gradient → flat cyan →\n * plain text → nothing.\n */\n\n/** Brand tokens — swap here to re-skin every surface. */\nexport const BRAND = {\n name: 'MUTAGENT',\n /** violet primary — app.css --primary */\n primary: '#7E47D7',\n /** cyan accent */\n accent: '#45b8cc',\n /** wordmark gradient endpoints — cyan → violet. NO pink/magenta. */\n gradientFrom: '#45b8cc',\n gradientTo: '#7E47D7',\n} as const;\n\n/**\n * MUTAGENT block wordmark (~82 cols). Identical art to the Pi launcher and the\n * orchestrator help-display, so the brand reads the same everywhere.\n */\nexport const WORDMARK: string[] = [\n ' ███╗ ███╗ ██╗ ██╗ ████████╗ █████╗ ██████╗ ███████╗ ███╗ ██╗ ████████╗ ',\n ' ████╗ ████║ ██║ ██║ ╚══██╔══╝ ██╔══██╗ ██╔════╝ ██╔════╝ ████╗ ██║ ╚══██╔══╝ ',\n ' ██╔████╔██║ ██║ ██║ ██║ ███████║ ██║ ███╗ █████╗ ██╔██╗ ██║ ██║ ',\n ' ██║╚██╔╝██║ ██║ ██║ ██║ ██╔══██║ ██║ ██║ ██╔══╝ ██║╚██╗██║ ██║ ',\n ' ██║ ╚═╝ ██║ ╚██████╔╝ ██║ ██║ ██║ ╚██████╔╝ ███████╗ ██║ ╚████║ ██║ ',\n ' ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═══╝ ╚═╝ ',\n];\n\n/** Minimum terminal width the block wordmark needs before we fall back. */\nexport const WORDMARK_MIN_COLUMNS = 84;\n\n// ── color helpers (truecolor ANSI) ───────────────────────────────────────────\nexport type RGB = [number, number, number];\n\nexport function hexToRgb(hex: string): RGB {\n const n = parseInt(hex.slice(1), 16);\n return [(n >> 16) & 255, (n >> 8) & 255, n & 255];\n}\n\nconst lerp = (a: number, b: number, t: number): number => Math.round(a + (b - a) * t);\n\nexport function mix(from: RGB, to: RGB, t: number): RGB {\n return [lerp(from[0], to[0], t), lerp(from[1], to[1], t), lerp(from[2], to[2], t)];\n}\n\nexport const ansi = (r: number, g: number, b: number): string =>\n `\\x1b[38;2;${String(r)};${String(g)};${String(b)}m`;\nexport const RESET = '\\x1b[0m';\n\n/** Apply a per-column gradient across a line's non-space glyphs. */\nexport function gradientLine(line: string, from: RGB, to: RGB): string {\n const chars = Array.from(line);\n const n = chars.length;\n let out = '';\n chars.forEach((ch, i) => {\n if (ch === ' ') {\n out += ch;\n return;\n }\n const [r, g, b] = mix(from, to, n > 1 ? i / (n - 1) : 0);\n out += ansi(r, g, b) + ch;\n });\n return out + RESET;\n}\n\n/** Minimal env shape we read — avoids the NodeJS global namespace. */\nexport type EnvLike = Record<string, string | undefined>;\n\n/** True only on a 24-bit-capable terminal. */\nexport function hasTruecolor(env: EnvLike = process.env): boolean {\n return /truecolor|24bit/i.test(env.COLORTERM ?? '');\n}\n\n// ── banner ───────────────────────────────────────────────────────────────────\n\n/** Injectable environment so the banner is unit-testable without a real TTY. */\nexport interface BannerEnv {\n isTTY: boolean;\n columns: number;\n truecolor: boolean;\n /** MUTAGENT_NO_BANNER=1 opts out entirely. */\n disabled: boolean;\n}\n\n/** Read the render environment from the live process (stdout). */\nexport function detectBannerEnv(\n stream: { isTTY?: boolean; columns?: number } = process.stdout,\n env: EnvLike = process.env,\n): BannerEnv {\n return {\n isTTY: stream.isTTY === true,\n columns: stream.columns ?? 80,\n truecolor: hasTruecolor(env),\n disabled: env.MUTAGENT_NO_BANNER === '1',\n };\n}\n\n/**\n * Render the header banner. Returns '' when it must not print — not a TTY\n * (piped / `--json` / CI), or explicitly disabled. Never throws.\n */\nexport function renderBanner(env: BannerEnv = detectBannerEnv()): string {\n if (env.disabled || !env.isTTY) return '';\n\n const from = hexToRgb(BRAND.gradientFrom);\n const to = hexToRgb(BRAND.gradientTo);\n const wide = env.columns >= WORDMARK_MIN_COLUMNS;\n\n const art = wide ? WORDMARK : [` ${BRAND.name}`];\n const lines = env.truecolor\n ? art.map((l) => gradientLine(l, from, to))\n : art.map((l) => `${ansi(...from)}${l}${RESET}`);\n\n return `\\n${lines.join('\\n')}\\n`;\n}\n",
65
66
  "/**\n * Whether `-v` / `--version` in raw argv means \"print the CLI's own version\".\n *\n * ## The defect this exists to fix\n *\n * `mutagent install helix --version 0.1.0-alpha.20` printed `0.1.208` — the CLI's\n * own version — exited 0, and installed nothing. The entry point matched the flag\n * with `rawArgs.includes('--version')`, which is position-blind, so it swallowed\n * the flag before Commander ever saw the subcommand that owns it. A package\n * version could not be pinned, and there was therefore no way to roll an install\n * back to a known-good release — which is exactly the lever you want on hand when\n * a fresh release misbehaves.\n *\n * ## The rule\n *\n * The global flag wins only while argv is still options. The first non-option\n * token is the SUBCOMMAND name; from that point on, `--version` belongs to the\n * subcommand and must reach Commander untouched.\n *\n * mutagent --version → global (print CLI version)\n * mutagent -v → global\n * mutagent --json --version → global\n * mutagent --api-key K --version → global (K is a VALUE, not a subcommand)\n * mutagent install helix --version 1.2.3 → NOT global — install pins the package\n * mutagent install --version 1.2.3 helix → NOT global — same, order-independent\n *\n * Option VALUES are skipped deliberately: without that, `--api-key K --version`\n * would treat `K` as the subcommand and stop printing the CLI version — trading\n * one position bug for another.\n *\n * Kept as a pure function, separate from `bin/cli.ts`, because the entry point\n * runs its argv handling at module load and cannot be exercised by the command\n * tester. The rule is small; being able to test every case of it is not.\n */\n\n/**\n * Global options that consume the NEXT argv token as their value. `--opt=value`\n * needs no entry here — it is a single token and is already seen as an option.\n *\n * Only PROGRAM-level value options belong in this list. A subcommand's options\n * are irrelevant: once a subcommand has been named the answer is already \"not\n * global\", so nothing after it is ever inspected.\n */\nconst GLOBAL_VALUE_OPTIONS: ReadonlySet<string> = new Set(['--api-key', '--endpoint']);\n\n/** The index of the subcommand name in `rawArgs`, or -1 if argv names none. */\nexport function findSubcommandIndex(rawArgs: readonly string[]): number {\n for (let i = 0; i < rawArgs.length; i++) {\n const arg = rawArgs[i];\n if (arg === undefined) continue;\n // Everything after `--` is a positional by definition.\n if (arg === '--') return i + 1 < rawArgs.length ? i + 1 : -1;\n if (arg.startsWith('-')) {\n if (GLOBAL_VALUE_OPTIONS.has(arg)) i++; // skip the option's value\n continue;\n }\n return i;\n }\n return -1;\n}\n\n/**\n * True when `-v`/`--version` should print the CLI version and exit — i.e. it\n * appears before any subcommand. False when it belongs to a subcommand (or is\n * absent), in which case the entry point must fall through to `program.parse()`.\n */\nexport function isGlobalVersionFlag(rawArgs: readonly string[]): boolean {\n const versionAt = rawArgs.findIndex((a) => a === '-v' || a === '--version');\n if (versionAt === -1) return false;\n const subcommandAt = findSubcommandIndex(rawArgs);\n return subcommandAt === -1 || versionAt < subcommandAt;\n}\n"
66
67
  ],
67
- "mappings": "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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACZ,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACzB,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACxB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
68
- "debugId": "9CA63CD3787CB08B64756E2164756E21",
68
+ "mappings": "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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACZ,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACzB,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACxB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
69
+ "debugId": "B28A5231DE264E0C64756E2164756E21",
69
70
  "names": []
70
71
  }