@mutagent/cli 0.1.275 → 0.1.277

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.
@@ -33,12 +33,12 @@
33
33
  "import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { existsSync, mkdirSync, writeFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { execSync } from 'child_process';\nimport { OutputFormatter, getJsonFlag } from '../lib/output.js';\nimport { SKILL_CONTENT, SKILL_FILES } from '../generated/skill-content.js';\n\n// Re-export so tests and external callers can still import SKILL_CONTENT\n// from this module (backward compat with pre-R4 imports).\nexport { SKILL_CONTENT };\n\n/**\n * Find the git repository root directory.\n * Falls back to process.cwd() if not inside a git repo.\n */\nexport function findRepoRoot(): string {\n try {\n return execSync('git rev-parse --show-toplevel', {\n encoding: 'utf-8',\n stdio: ['pipe', 'pipe', 'pipe'],\n }).trim();\n } catch {\n return process.cwd();\n }\n}\n\n// =============================================================================\n// Skill Content\n// =============================================================================\n//\n// The canonical source of truth for the skill content is a real markdown\n// file living in the CLI package's own Claude Code workspace:\n//\n// mutagent-cli/.claude/skills/mutagent-cli/SKILL.md\n//\n// A prebuild/pretest/prelint/pretype-check hook (`scripts/sync-skill.ts`)\n// reads that file and regenerates `src/generated/skill-content.ts`,\n// exporting the raw markdown as `SKILL_CONTENT`. Keeping the source as\n// a real .md file (not a hardcoded TypeScript string) makes it\n// maintainable; the generated TS module is a build implementation detail.\n//\n// TWO `.claude/` dirs, at TWO different levels:\n// - SOURCE: `mutagent-cli/.claude/skills/mutagent-cli/SKILL.md`\n// (this package's own Claude Code workspace — package-local)\n// - DESTINATION: `<user-cwd>/.claude/skills/mutagent-cli/SKILL.md`\n// (the end user's top-level project .claude/, where `skills install`\n// WRITES on the user's machine — SKILL_DIR below)\n// Same relative path, different levels, never collide.\n//\n// If `SKILL_CONTENT` is missing or empty at runtime, the command throws\n// LOUDLY — there is no fallback, by design. The skill dump pipeline\n// either ships the real content or fails the build.\n\nexport const SKILL_DIR = '.claude/skills/mutagent-cli';\nconst SKILL_ENTRY_FILE = 'SKILL.md';\n\nfunction assertSkillFilesValid(): void {\n if (Object.keys(SKILL_FILES).length === 0) {\n throw new Error(\n 'SKILL_FILES is missing or empty. This indicates a broken build: ' +\n 'scripts/sync-skill.ts must regenerate src/generated/skill-content.ts ' +\n 'from .claude/skills/mutagent-cli/ before build/test. ' +\n 'Run `bun run sync-skill` to debug.',\n );\n }\n const entry = SKILL_FILES[SKILL_ENTRY_FILE];\n if (typeof entry !== 'string' || entry.trim().length === 0) {\n throw new Error(\n `SKILL_FILES[\"${SKILL_ENTRY_FILE}\"] is missing or empty. ` +\n 'Check .claude/skills/mutagent-cli/SKILL.md and run `bun run sync-skill`.',\n );\n }\n if (!entry.startsWith('---')) {\n throw new Error(\n `SKILL_FILES[\"${SKILL_ENTRY_FILE}\"] is malformed: expected YAML frontmatter (\"---\") at start.`,\n );\n }\n}\n\n/**\n * Returns the canonical skill entry content (SKILL.md). Exported for tests\n * and back-compat with pre-R4 callers. New code should use\n * `getSkillFiles()` to walk the full tree including workflows/ and concepts/.\n */\nexport function getSkillContent(): string {\n assertSkillFilesValid();\n return SKILL_FILES[SKILL_ENTRY_FILE] ?? '';\n}\n\n/**\n * Returns the full skill file tree as a map keyed by path relative to the\n * skill root (e.g. `SKILL.md`, `workflows/setup.md`,\n * `workflows/install.md`). Exported for tests so the pipeline can be\n * asserted from outside the command action.\n */\nexport function getSkillFiles(): Record<string, string> {\n assertSkillFilesValid();\n return SKILL_FILES;\n}\n\n// =============================================================================\n// Skill Install Writer (shared by `skills install` and `init`)\n// =============================================================================\n\nexport interface InstalledSkillFile {\n /** Path relative to the skill root, e.g. `SKILL.md`, `workflows/setup.md`. */\n relPath: string;\n /** Absolute destination path that was written. */\n destPath: string;\n bytes: number;\n}\n\nexport interface SkillInstallResult {\n skillDir: string;\n files: InstalledSkillFile[];\n totalBytes: number;\n}\n\n/**\n * Write the full skill tree (source of truth: package-local\n * `.claude/skills/mutagent-cli/**`, synced into src/generated/skill-content.ts\n * at build time) into `<targetRoot>/.claude/skills/mutagent-cli/`.\n *\n * THE single writer — `mutagent skills install` targets the repo root,\n * `mutagent init` targets the cwd. Never duplicate this loop.\n */\nexport function installCliSkill(targetRoot: string): SkillInstallResult {\n const files = getSkillFiles();\n const skillDir = join(targetRoot, SKILL_DIR);\n const writtenFiles: InstalledSkillFile[] = [];\n let totalBytes = 0;\n\n // Stable sorted traversal — entry file first for tree rendering.\n const sortedKeys = Object.keys(files).sort((a, b) => {\n if (a === SKILL_ENTRY_FILE) return -1;\n if (b === SKILL_ENTRY_FILE) return 1;\n return a.localeCompare(b);\n });\n\n for (const relPath of sortedKeys) {\n const destPath = join(skillDir, relPath);\n const parentDir = dirname(destPath);\n if (!existsSync(parentDir)) {\n mkdirSync(parentDir, { recursive: true });\n }\n const raw = files[relPath] ?? '';\n const finalContent = raw.endsWith('\\n') ? raw : `${raw}\\n`;\n writeFileSync(destPath, finalContent, 'utf-8');\n writtenFiles.push({ relPath, destPath, bytes: finalContent.length });\n totalBytes += finalContent.length;\n }\n\n return { skillDir, files: writtenFiles, totalBytes };\n}\n\n// =============================================================================\n// Skills Command\n// =============================================================================\n\nexport function createSkillsCommand(): Command {\n const skills = new Command('skills').description(\n 'Manage Mutagent CLI skills for coding agents',\n );\n\n skills\n .command('install')\n .description('Install Mutagent CLI skill for Claude Code')\n .addHelpText(\n 'after',\n `\nExamples:\n ${chalk.dim('$')} mutagent skills install\n\nThis creates a Claude Code skill at .claude/skills/mutagent-cli/SKILL.md\nthat teaches coding agents how to use the Mutagent CLI effectively.\n `,\n )\n .action((_options: Record<string, unknown>, cmd: Command) => {\n const parentCmd = cmd.parent?.parent;\n const isJson = parentCmd ? getJsonFlag(parentCmd) : false;\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n const repoRoot = findRepoRoot();\n const result = installCliSkill(repoRoot);\n\n if (isJson) {\n output.output({\n installed: true,\n name: 'mutagent-cli',\n skillDir: result.skillDir,\n files: result.files.map(f => ({ path: f.destPath, bytes: f.bytes })),\n totalBytes: result.totalBytes,\n });\n } else {\n output.success(`Installed Mutagent CLI skill`);\n console.log(` ${chalk.dim('Dir:')} ${result.skillDir}`);\n console.log('');\n // Render a simple tree of written files\n for (let i = 0; i < result.files.length; i++) {\n const entry = result.files[i];\n if (!entry) continue;\n const isLast = i === result.files.length - 1;\n const prefix = isLast ? '└─' : '├─';\n console.log(\n ` ${chalk.dim(prefix)} ${entry.relPath} ${chalk.dim(`(${String(entry.bytes)} bytes)`)}`,\n );\n }\n console.log('');\n console.log(\n ` ${chalk.dim(`${String(result.files.length)} file(s), ${String(result.totalBytes)} bytes total.`)}`,\n );\n console.log(\n ` ${chalk.dim('This skill teaches coding agents how to use the Mutagent CLI.')}`,\n );\n console.log(\n ` ${chalk.dim('It will be automatically loaded by Claude Code when relevant triggers match.')}`,\n );\n }\n });\n\n return skills;\n}\n",
34
34
  "/**\n * AUTO-GENERATED — DO NOT EDIT BY HAND\n *\n * Regenerate via: bun run sync-skill\n * Source of truth: mutagent-cli/.claude/skills/mutagent-cli/**\\/*.md\n *\n * This file is gitignored. Every lint/type-check/build/test run\n * regenerates it from the canonical skill tree so the two cannot drift.\n */\n\nexport const SKILL_FILES: Record<string, string> = {\n \"SKILL.md\": \"---\\nname: mutagent-cli\\ndescription: |\\n Mutagent CLI - the command-line client for the Mutagent platform.\\n Guides coding agents through setup (login, init, providers, workspaces),\\n installing Mutagent packages (helix), and sending\\n product feedback.\\n Triggers: \\\"mutagent\\\", \\\"mutagent cli\\\", \\\"mutagent login\\\", \\\"set up mutagent\\\",\\n \\\"install diagnostics\\\", \\\"install evaluator\\\", \\\"install helix\\\", \\\"mutagent install\\\",\\n \\\"send feedback\\\", \\\"mutagent feedback\\\", \\\"report a bug\\\", \\\"usage\\\", \\\"quota\\\",\\n \\\"install skill\\\", \\\"install hooks\\\".\\nlicense: MIT\\nmetadata:\\n skill_version: \\\"1.2.0\\\"\\n skill_min_cli_version: \\\"0.1.163\\\"\\n---\\n\\n# Mutagent CLI Skill\\n\\n> **Canonical source**: `mutagent-cli/.claude/skills/mutagent-cli/SKILL.md`\\n> Packed into the CLI binary via `scripts/sync-skill.ts`. Installed to end-user\\n> dev environments via `mutagent skills install`. Edit this file, not the installed copy.\\n\\n---\\n\\n## CLI Prerequisite Check (RUN FIRST)\\n\\nBefore executing ANY workflow step, verify the CLI is installed and version-compatible:\\n\\n**Step 1 -- Check CLI presence:**\\n```bash\\nmutagent --version --json\\n```\\n\\n**Step 2 -- If command not found (error / not on PATH):**\\n\\nThis is the **Path 2 onboarding case**: the Skill was installed first (e.g. from a skill registry, manually, or bundled in someone else's CLAUDE.md), but the CLI itself isn't installed yet. Do NOT just dump install instructions and stop -- proactively **offer to install it**.\\n\\n**2a. Detect the user's package manager** (best-effort — check in this order):\\n```bash\\n# In the user's project root (cwd):\\ntest -f bun.lockb && echo \\\"bun\\\"\\ntest -f pnpm-lock.yaml && echo \\\"pnpm\\\"\\ntest -f yarn.lock && echo \\\"yarn\\\"\\ntest -f package-lock.json && echo \\\"npm\\\"\\n# Fallback: which bun || which pnpm || which yarn || which npm\\n```\\nIf multiple lockfiles exist, prefer in order: `bun > pnpm > yarn > npm`.\\nIf no lockfile and the user is in a non-JS project (e.g. Python, Go), ask which they prefer.\\n\\n**2b. Ask the user via AskUserQuestion** (do NOT auto-install without consent):\\n\\n> \\\"The Mutagent CLI is not installed yet. I can install it globally via `<detected-pm>`. Proceed?\\\"\\n\\nOptions to present:\\n1. **Yes, install globally with `<detected-pm>`** (Recommended) -- runs `<pm> add -g @mutagent/cli` (or `npm install -g @mutagent/cli` for npm)\\n2. **Yes, but use a different package manager** -- prompt for choice (npm / bun / pnpm / yarn)\\n3. **No, I'll install it myself** -- show the four install commands as a verbatim block; STOP and wait for the user to install\\n4. **Skip — I have it installed via a different path** -- ask the user to add it to PATH and re-invoke\\n\\n**2c. On user approval (option 1 or 2)**, run the install command in a Bash tool call:\\n```bash\\n# bun\\nbun add -g @mutagent/cli\\n# npm\\nnpm install -g @mutagent/cli\\n# pnpm\\npnpm add -g @mutagent/cli\\n# yarn\\nyarn global add @mutagent/cli\\n```\\nShow the install output to the user verbatim. After it completes, **re-run Step 1** (`mutagent --version --json`) to confirm the CLI is now on PATH. If the post-install version check still fails (e.g. global bin not on PATH), tell the user:\\n> \\\"Install succeeded but `mutagent` isn't on PATH yet. Common fixes:\\n> - bun: `export PATH=\\\\\\\"$HOME/.bun/bin:$PATH\\\\\\\"`\\n> - npm: check `npm config get prefix` and add `<prefix>/bin` to PATH\\n> - pnpm: `pnpm setup` then restart your shell\\n> - yarn: `yarn global bin` and add that path to PATH\\\"\\n> Then ask the user to restart their shell or source the relevant rc file, and re-invoke me.\\n\\n**2d. On rejection (option 3 or 4)**, output the four install commands as a verbatim block and STOP. Do NOT proceed with any workflow until the user confirms the CLI is installed and re-invokes the skill.\\n\\n```bash\\n# Pick one (Recommended in order: bun > pnpm > yarn > npm)\\nbun add -g @mutagent/cli\\npnpm add -g @mutagent/cli\\nyarn global add @mutagent/cli\\nnpm install -g @mutagent/cli\\n```\\n\\n**Why proactive install (not just \\\"stop and tell\\\")**: a user invoking this Skill has already shown intent to use Mutagent. Forcing them to context-switch to a separate terminal, copy-paste an install command, and re-invoke the agent is friction that often loses the user. Asking once + installing on consent is the smoother path. The opt-out (option 3/4) preserves user control.\\n\\n**Step 3 -- Version compatibility check:**\\nParse `_compat.cliVersion` from the `--version --json` output and compare against\\n`metadata.skill_min_cli_version` (above in this file's frontmatter, currently `0.1.163`).\\n\\n- If `cliVersion >= metadata.skill_min_cli_version`: all good, proceed normally.\\n- If `cliVersion < metadata.skill_min_cli_version`: emit a **PROMINENT PERSISTENT WARN** to the user:\\n\\n > Warning: **CLI version mismatch**: Your `mutagent` CLI is `{cliVersion}` but this Skill\\n > requires `>= 0.1.163`. Some features may not work correctly.\\n > Upgrade: `npm install -g @mutagent/cli@latest`\\n\\n **DO NOT BLOCK** -- proceed with the requested workflow after showing the warn.\\n Re-emit this warn at the start of every subsequent Skill invocation until the user upgrades.\\n\\n**Per decision D4 (locked 2026-05-03)**: version mismatch is warn-only, never a hard block.\\n\\n---\\n\\n## Login (RUN SECOND — most commands are login-gated)\\n\\nInstall, feedback, usage, workspaces, and providers commands all require\\nan authenticated session. Establish it early:\\n\\n- **CI / automated**: `export MUTAGENT_API_KEY=mt_... && mutagent login --json` -- no browser, no prompts.\\n- **Onboarding a user**: `mutagent login --browser --json` -- CLI prints auth URL to stdout, polls 5 min. **Surface the URL verbatim to the user.** `--non-interactive` is NOT needed when `--browser` is set.\\n\\n`mutagent login` is canonical. `mutagent auth login` is a back-compat alias. Both delegate to a single shared implementation; they are thin wrappers and stay that way by design.\\n\\nCheck current state anytime with `mutagent auth status --json`.\\n\\n---\\n\\n## Command Surface (active commands)\\n\\nRun `mutagent <command> --help` for the authoritative, current flag list — this\\nskill never inlines flags. The active surface:\\n\\n| Command | Purpose | Workflow |\\n|---|---|---|\\n| `login` / `auth` | Authenticate; check/clear session | [workflows/setup.md](./workflows/setup.md) |\\n| `init` | Interactive project setup wizard | [workflows/setup.md](./workflows/setup.md) |\\n| `config` | View/set local CLI config | [workflows/setup.md](./workflows/setup.md) |\\n| `workspaces` | List/select active workspace | [workflows/setup.md](./workflows/setup.md) |\\n| `providers` | List providers + model catalog | [workflows/setup.md](./workflows/setup.md) |\\n| `usage` | Show usage + quota | [workflows/setup.md](./workflows/setup.md) |\\n| `skills install` | Install this skill into a project | [workflows/setup.md](./workflows/setup.md) |\\n| `hooks install` | Install Claude Code telemetry hooks | [workflows/setup.md](./workflows/setup.md) |\\n| `install <pkg>` | Install helix (diagnostics / evaluator are retired) | [workflows/install.md](./workflows/install.md) |\\n| `feedback send` | Send product feedback | [workflows/feedback.md](./workflows/feedback.md) |\\n\\n---\\n\\n## Core Rules -- NON-NEGOTIABLE\\n\\n1. **`--json` on EVERY command.** No exceptions. Agents use JSON mode exclusively.\\n2. **`<command> --help` BEFORE first use of any command.** The CLI is the source of truth for flags -- this skill never inlines them.\\n3. **Login before login-gated commands.** install, feedback, usage, workspaces, and providers require an authenticated session. Run `mutagent login` (or set `MUTAGENT_API_KEY`) first.\\n4. **Show command output to the user.** Command output appears in bash blocks the user may not see -- always present the key results in your chat reply.\\n5. **Confirm before writing to the user's machine or spending.** `install`, `skills install`, and `hooks install` write files or install packages -- state what will happen and get confirmation first.\\n\\n---\\n\\n## Task Router -- route by user intent\\n\\nMatch the user's first request. Load ONLY the matching subfile per the table. Do NOT preload the whole set.\\n\\n| User said / signal detected | Load subfile | Why |\\n|---|---|---|\\n| \\\"log in\\\", \\\"authenticate\\\", \\\"set up mutagent\\\", \\\"init\\\", \\\"which workspace\\\", \\\"what models\\\", \\\"usage\\\", \\\"quota\\\", \\\"install the skill\\\", \\\"install hooks\\\" | [workflows/setup.md](./workflows/setup.md) | Auth + project setup + discovery commands |\\n| \\\"install helix\\\", \\\"install diagnostics\\\", \\\"install evaluator\\\", \\\"add mutagent package\\\" | [workflows/install.md](./workflows/install.md) | Login-gated meta-installer (diagnostics/evaluator are retired → helix) |\\n| \\\"send feedback\\\", \\\"report a bug\\\", \\\"file feedback\\\", \\\"the CLI crashed\\\" | [workflows/feedback.md](./workflows/feedback.md) | Product feedback (+ optional transcript) |\\n| Unclear / first time | run `mutagent --help --json` then reroute | Discover the surface before acting |\\n\\n---\\n\\n## Subfile Map\\n\\n| File | WHEN to load | WHY |\\n|---|---|---|\\n| [workflows/setup.md](./workflows/setup.md) | User is onboarding: login, init, config, workspaces, providers, usage, skill/hooks install | Auth + configuration + discovery |\\n| [workflows/install.md](./workflows/install.md) | User wants to install a Mutagent package | `install helix` meta-command |\\n| [workflows/feedback.md](./workflows/feedback.md) | User wants to send feedback or report a bug | `feedback send` + `--attach-transcript` |\\n\\n---\\n\\n## MANDATORY: Verbatim Card Display Protocol\\n\\nIf a mutagent CLI response contains `_directive.renderedCard`, your FIRST action\\nMUST be to copy that text byte-for-byte into your chat reply BEFORE running any\\nfurther command, asking any question, or doing any other work.\\n\\nThe card also appears on stderr (auto-echoed by the CLI via `echoDirectiveToStderr`)\\nbut you MUST STILL render it in chat -- bash/stderr blocks may be collapsed in the\\nuser's UI and they cannot read them.\\n\\n- Do NOT summarize, paraphrase, or truncate any line of the card.\\n- Do NOT skip the card to \\\"save tokens.\\\"\\n- Do NOT delay rendering until \\\"after the next step.\\\"\\n- This applies whether `_directive.display` is `'status_card'` or absent -- the\\n trigger is the presence of `renderedCard`, not the display tag.\\n- Failure to display the card verbatim = protocol violation.\\n\\n---\\n\\n## Anti-patterns -- NEVER do these\\n\\n- Run any command without `--json`\\n- Inline CLI flags from memory -- always read `--help` first\\n- Skip showing command output results to the user\\n- Run a login-gated command before establishing a session\\n- Install a package or write skill/hooks files without user confirmation\\n\\n---\\n\\n## Error Recovery -- Agent-Aware Bug Reporting\\n\\nWhen ANY mutagent CLI command returns a non-zero exit code or an error response:\\n\\n1. **Show the error to the user** (always) -- reproduce the exact command and output.\\n2. **ASK the user** if they want to file a bug report.\\n3. **On user approval**, send the feedback — **without a transcript**:\\n ```bash\\n mutagent feedback send \\\"<one-line summary of the failure>\\\" \\\\\\n --category cli --json\\n ```\\n - Use `--category stage:<spec|build|evaluate|diagnose|optimize>` when the failure is about a specific lifecycle stage rather than the CLI itself.\\n\\n**Do NOT pass `--attach-transcript` unless the user explicitly asks for it.** It uploads\\nthe coding-agent session JSONL — source code, absolute paths (including their username),\\nbranch and repository names, internal hostnames, and the business context of their prompts.\\nCredentials are scanned for and redacted, but detection is **best-effort**.\\n\\nApproval to \\\"file a bug report\\\" is **NOT** approval to upload a session. They are separate\\nquestions and must be asked separately. If you believe the transcript would genuinely help,\\nsay exactly what it contains and ask a second time.\\n\\nSee [workflows/feedback.md](./workflows/feedback.md) for the full feedback surface.\\n\\n### If `mutagent feedback send` itself fails\\n\\nIf the feedback command returns a non-zero exit code, DO NOT retry silently. Show the user:\\n\\n1. The output of `mutagent auth status` (confirms login state).\\n2. The fallback: open https://app.mutagent.io and use the in-app feedback form.\\n\\n---\\n\\n## Extensibility\\n\\nAdd `workflows/custom-<name>.md` with a markdown heading (or frontmatter\\n`triggers: [\\\"phrase\\\"]`) -- auto-discovered by the sync pipeline. No rebuild of the\\nCLI source needed; just re-run `bun run sync-skill`.\\n\",\n \"workflows/feedback.md\": \"---\\nname: mutagent-cli-workflows-feedback\\ndescription: |\\n Product feedback workflow. Sends feedback about the CLI, Helix, or a lifecycle\\n stage via `mutagent feedback send`. Optionally attaches the coding-agent\\n session transcript as a separate context artifact. Login-gated.\\ntriggers:\\n - \\\"send feedback\\\"\\n - \\\"mutagent feedback\\\"\\n - \\\"report a bug\\\"\\n - \\\"file feedback\\\"\\n - \\\"the cli crashed\\\"\\n - \\\"feedback about\\\"\\n---\\n\\n# Workflow — Feedback\\n\\n> **Scope**: sends a feedback message (and optionally your session transcript)\\n> to the Mutagent platform. Login-gated.\\n\\nRead the **Core Rules** in [SKILL.md](../SKILL.md) first. Key reminders:\\n- `--json` on every command\\n- `<command> --help` before first use\\n- **Login-gated** — run `mutagent login` first\\n\\n---\\n\\n## Surface\\n\\n```bash\\nmutagent feedback send --help # authoritative flags — read before first use\\n\\nmutagent feedback send \\\"<feedback body>\\\" \\\\\\n [--title \\\"<5-8 word summary>\\\"] \\\\\\n [--category <cli|helix|stage:<spec|build|evaluate|diagnose|optimize>>] \\\\\\n [--session <id>] \\\\\\n [--attach-transcript [path]] \\\\\\n [--json]\\n```\\n\\n- **Positional `<feedback body>`** — the feedback text (required, max 10000 chars).\\n- **`--title`** — optional short (5–8 word) summary of the session timeline.\\n- **`--category`** — one of:\\n - `cli` (default) — feedback about the CLI itself\\n - `helix` — feedback about Helix\\n - `stage:<x>` — feedback about a lifecycle stage/skill, where `<x>` ∈ `spec | build | evaluate | diagnose | optimize`\\n- **`--session <id>`** — link this feedback to a specific session id, so the team can correlate it with that run. Optional.\\n- **`--attach-transcript [path]`** — upload the coding-agent session JSONL as context. This is a **SEPARATE artifact** from the feedback text. Bare flag auto-detects the newest session (across claude-code, codex, omp) and tail-caps it; or pass an explicit path.\\n- **`--json`** — structured output (Rule 1: always use).\\n\\nAuto-captured context (harness, CLI version, platform, OS, node version) is\\nattached automatically — you never set it manually.\\n\\n---\\n\\n## Steps\\n\\n```\\n1. mutagent auth status --json\\n → feedback is login-gated; confirm session or run login first\\n\\n2. mutagent feedback send --help\\n → read the current flags (Rule 2)\\n\\n3. Compose the feedback body from the user's own words\\n → pick --category (default cli; use stage:<x> for a lifecycle stage)\\n → do NOT offer --attach-transcript unless the user explicitly asks for it (see Transcript safety below)\\n\\n4. mutagent feedback send \\\"<body>\\\" --category <c> --json\\n → show the returned id + category + transcriptAttached to the user\\n```\\n\\n---\\n\\n## Examples\\n\\n```bash\\nmutagent feedback send \\\"Optimizer results were great\\\" --json\\nmutagent feedback send \\\"Eval gate was confusing\\\" --category stage:evaluate --json\\nmutagent feedback send \\\"CLI crashed on login\\\" --category cli \\\\\\n --title \\\"login crash on first run\\\" --json\\nmutagent feedback send \\\"Diagnose loop stalled\\\" --category stage:diagnose \\\\\\n --session run_abc123 --json\\n\\n# ONLY when the operator explicitly asked to attach their session — see Transcript safety:\\nmutagent feedback send \\\"CLI crashed on login\\\" --category cli --attach-transcript --json\\n```\\n\\n---\\n\\n## Bug reporting (agent-aware)\\n\\nWhen a mutagent command fails, this is the canonical bug-report path:\\n\\n1. Show the user the failed command + error.\\n2. ASK if they want to file a report.\\n3. On approval, send the feedback — WITHOUT a transcript:\\n ```bash\\n mutagent feedback send \\\"<one-line failure summary>\\\" --category cli --json\\n ```\\n Approval to \\\"file a report\\\" is NOT approval to upload a session. See Transcript safety.\\n\\n---\\n\\n## Output handling\\n\\n- On success (`{ success: true, id, category, transcriptAttached }`): confirm the feedback id and whether a transcript was attached.\\n- If `--attach-transcript` (bare) finds no session: the CLI warns and continues without a transcript — tell the user the text was sent but no transcript was found, and offer to pass an explicit path.\\n- On an auth error: route to login, then retry.\\n\\n---\\n\\n## Common pitfalls\\n\\n- Passing an invalid `--category` (only `cli`, `helix`, `stage:<x>` are valid).\\n- Confusing the feedback body with the transcript — the body is your message; the transcript is a separate uploaded artifact.\\n- Sending before login (feedback is login-gated).\\n\\n---\\n\\n## Cross-references\\n\\n- [SKILL.md](../SKILL.md) → Core Rules + Error Recovery\\n- [workflows/setup.md](./setup.md) → login (prerequisite for feedback)\\n\\n\\n## Transcript safety (`--attach-transcript`)\\n\\n**Never pass this flag on your own initiative.** Only when the operator explicitly asks to\\nattach their session.\\n\\nA session JSONL contains **source code, absolute paths including their username, branch and\\nrepository names, internal hostnames, and the business context of every prompt**. It is a\\nseparate artifact from the feedback text and is uploaded whole (last-200KB tail).\\n\\nCredentials are scanned for and redacted before upload, and the byte size + source path are\\nprinted before the network call — but **detection is best-effort**. If the session handled\\nsecrets, do not attach it.\\n\\n\\\"Yes, file a bug report\\\" is **not** consent to upload a session. Ask separately, state what\\nthe file contains, and accept no as the default.\\n\\n**Response fields** when a transcript IS attached: `transcriptAttached`, `transcriptBytes`,\\n`transcriptSource`, and `redactions`. **Always surface `redactions` to the operator** — it is\\nhow they learn something sensitive was in the file at all.\\n\",\n \"workflows/install.md\": \"---\\nname: mutagent-cli-workflows-install\\ndescription: |\\n Meta-installer workflow. Installs helix into the user's environment via\\n `mutagent install helix`. Login-gated. helix is fetched from a private\\n registry via a login-brokered signed URL (no static secret ships in the CLI).\\n `diagnostics` and `evaluator` are RETIRED as install targets — both skills\\n now ship inside helix.\\ntriggers:\\n - \\\"install helix\\\"\\n - \\\"mutagent install\\\"\\n - \\\"add mutagent package\\\"\\n - \\\"install diagnostics\\\"\\n - \\\"install evaluator\\\"\\n - \\\"set up diagnostics\\\"\\n - \\\"set up evaluator\\\"\\n---\\n\\n# Workflow — Install (Meta-Installer)\\n\\n> **`helix` is the only install target.** It installs into the CURRENT project\\n> directory (`scope: \\\"project\\\"`).\\n>\\n> `diagnostics` and `evaluator` are **retired** — their npm packages are no\\n> longer published. Both skills ship *inside* the helix payload, so a user\\n> asking for either one needs `mutagent install helix`. The CLI says so itself:\\n> `mutagent install diagnostics` fails with `INVALID_ARGUMENTS` and names helix\\n> as the route. Do not work around that error — follow it.\\n>\\n> This WRITES to the user's machine — confirm before running (Core Rule 5).\\n\\nRead the **Core Rules** in [SKILL.md](../SKILL.md) first. Key reminders:\\n- `--json` on every command\\n- `<command> --help` before first use\\n- **Login-gated** — run `mutagent login` first\\n- Confirm before installing (writes to the user's machine)\\n\\n---\\n\\n## Surface\\n\\n```bash\\nmutagent install --help # authoritative flags — read before first use\\n\\nmutagent install helix [--harness <claude-code|codex|omp>] \\\\\\n [--version <v>] [--json]\\n```\\n\\nWhere `<package>` is:\\n\\n| Package | Source | Notes |\\n|---|---|---|\\n| `helix` | private registry via login-brokered signed URL | Ready to install — login-gated download, sha256-verified, then initialized into your project. Carries the diagnostics + evaluator skills and the `mutagent-cli` binary. |\\n\\nRetired — these are rejected by name, they do not fall through to a generic error:\\n\\n| Retired target | Was | Use instead |\\n|---|---|---|\\n| `diagnostics` | public npm `@mutagent/diagnostics` | `mutagent install helix` |\\n| `evaluator` | public npm `@mutagent/evaluator` | `mutagent install helix` |\\n\\n**Flags** (verify against `--help`):\\n- `--harness <claude-code|codex|omp>` -- target coding-agent harness (default `claude-code`). helix installs every harness itself, so this does not change what lands.\\n- `--version <v>` -- pin a specific version (default: latest).\\n- `--json` -- structured output (Rule 1).\\n- Install scope is NOT selectable: helix installs into the current directory. `--global` is retired — passing it fails and explains what happens instead.\\n\\n---\\n\\n## Steps\\n\\n```\\n1. mutagent auth status --json\\n → confirm the user is logged in (install is login-gated)\\n → if not authenticated, run the login workflow first\\n\\n2. mutagent install --help\\n → read the current packages + flags (Rule 2)\\n\\n3. Confirm with the user WHAT will be installed and WHERE\\n → \\\"I'll install helix into <current directory>. Proceed?\\\"\\n\\n4. mutagent install helix [--harness <h>] [--version <v>] --json\\n → run the install\\n → show the output: package, version, harness, scope, and projectPath\\n\\n5. CHECK `skillInstalled` in the JSON response — do NOT stop at `success: true`\\n → skillInstalled === true → done; the skill is installed and usable\\n → skillInstalled === false → NOT done. Say so plainly and surface `nextStep`\\n as the command to run next. Confirm before running it — it writes to\\n their project (Core Rule 5).\\n```\\n\\n---\\n\\n## Examples\\n\\n```bash\\nmutagent install helix --json\\nmutagent install helix --harness codex --json\\nmutagent install helix --version 1.2.3 --json\\n```\\n\\n---\\n\\n## Output handling\\n\\nSuccess shape:\\n\\n```json\\n{\\n \\\"success\\\": true,\\n \\\"package\\\": \\\"helix\\\",\\n \\\"version\\\": \\\"0.1.0-alpha.25\\\",\\n \\\"harness\\\": \\\"claude-code\\\",\\n \\\"scope\\\": \\\"project\\\",\\n \\\"projectPath\\\": \\\"/path/to/the/users/project\\\",\\n \\\"skillInstalled\\\": true,\\n \\\"_links\\\": { \\\"install\\\": \\\"...\\\", \\\"login\\\": \\\"...\\\" }\\n}\\n```\\n\\n- **`skillInstalled` is the field to branch on — NOT `success`.** `success: true`\\n reports that the install step did its job, not that the user is ready.\\n `nextStep` is present only when work remains; on a completed helix install it\\n is absent.\\n- `skillInstalled: true`: the CLI resolved a signed download URL from the login\\n broker, downloaded + sha256-verified the plugin, and ran its init into the\\n project. Nothing further is needed. An `INTEGRITY_ERROR` means the download\\n failed checksum verification — retry.\\n- **`scope` tells you WHERE it went. Read it; do not assume.** It is `\\\"project\\\"`,\\n and `projectPath` is the directory. Surface it so the user can confirm the\\n location.\\n- On an auth error (including a broker `AUTH_REQUIRED`): route to the login\\n workflow, then retry.\\n- On `INVALID_ARGUMENTS` naming a retired target (`diagnostics`, `evaluator`):\\n the package is gone from npm and the skill ships inside helix. Tell the user\\n that, then offer `mutagent install helix`. Do NOT suggest `npm install\\n @mutagent/diagnostics` as a fallback — it will 404.\\n- On `INVALID_ARGUMENTS` naming `--global`: the flag is retired. Re-run without\\n it, or `cd` to the intended project first — the error names the path that\\n would have been used.\\n\\n---\\n\\n## Common pitfalls\\n\\n- **Telling the user to `npm install @mutagent/diagnostics` or\\n `@mutagent/evaluator`.** Both are unpublished; the install 404s. The skills\\n are inside helix.\\n- **Treating a retired-target error as a typo.** `mutagent install diagnostics`\\n is a command that used to work. The user is not confused about spelling —\\n they want diagnostics. Route them to helix, which has it.\\n- **Treating `success: true` as \\\"the user is ready\\\".** Check `skillInstalled`.\\n- Running before login → auth error (install is login-gated).\\n- Assuming `helix` installs from public npm — it is fetched from a private registry via a login-brokered signed URL (the CLI holds no static secret).\\n- Installing without confirming with the user first (Core Rule 5).\\n- Passing `--global` — retired; scope is not selectable.\\n\\n---\\n\\n## Cross-references\\n\\n- [SKILL.md](../SKILL.md) → Core Rules + Task Router\\n- [workflows/setup.md](./setup.md) → login (prerequisite for install)\\n\",\n \"workflows/setup.md\": \"---\\nname: mutagent-cli-workflows-setup\\ndescription: |\\n Onboarding + configuration workflow. Covers login/auth, the init wizard,\\n config, workspaces, providers (incl. model catalog), usage/quota, and\\n installing this skill + Claude Code telemetry hooks.\\ntriggers:\\n - \\\"log in\\\"\\n - \\\"authenticate\\\"\\n - \\\"set up mutagent\\\"\\n - \\\"mutagent init\\\"\\n - \\\"which workspace\\\"\\n - \\\"what models\\\"\\n - \\\"check usage\\\"\\n - \\\"install the skill\\\"\\n - \\\"install hooks\\\"\\n---\\n\\n# Workflow — Setup (Auth, Config, Discovery)\\n\\n> **Scope**: authentication, local configuration, discovery, and installing the\\n> skill/hooks. `skills install` and `hooks install` write files into the user's\\n> project — confirm first (Core Rule 5).\\n\\nRead the **Core Rules** in [SKILL.md](../SKILL.md) first. Key reminders:\\n- `--json` on every command\\n- `<command> --help` before first use\\n- Login before login-gated commands\\n\\n---\\n\\n## 1. Login / auth\\n\\n`mutagent login` is canonical; `mutagent auth login` is a back-compat alias (both\\ndelegate to one shared implementation).\\n\\n```bash\\n# CI / automated (no browser)\\nexport MUTAGENT_API_KEY=mt_...\\nmutagent login --json\\n\\n# Onboarding a real user (browser)\\nmutagent login --browser --json # prints an auth URL to stdout, polls 5 min\\n # → surface the URL to the user VERBATIM\\n\\nmutagent auth status --json # check session state\\nmutagent auth logout --json # clear stored credentials\\n```\\n\\n---\\n\\n## 2. init (config + skill install)\\n\\n```bash\\nmutagent init --help\\nmutagent init --json # writes .mutagentrc.json + installs this skill\\n```\\n\\n`init` writes `.mutagentrc.json` (endpoint / workspace / org — skipped if\\npresent) and installs the Mutagent CLI skill into `.claude/skills/mutagent-cli/`.\\nIt never prompts. If the user is not logged in, it prints login guidance and\\nexits — run `mutagent login` first, then re-run `mutagent init`.\\n\\n---\\n\\n## 3. config\\n\\n```bash\\nmutagent config list --json # show all config\\nmutagent config get <key> --json # keys: apiKey, endpoint, format, timeout,\\n # defaultWorkspace, defaultOrganization\\nmutagent config set workspace <id> --json # set default workspace\\nmutagent config set org <id> --json # set default organization\\n```\\n\\n---\\n\\n## 4. workspaces (read-only)\\n\\n```bash\\nmutagent workspaces list --json # list workspaces\\nmutagent workspaces get <id> --json # workspace details\\n```\\n\\nTo make a workspace the default, use `mutagent config set workspace <id>`.\\n\\n---\\n\\n## 5. providers (BYOK + model catalog)\\n\\n```bash\\nmutagent providers list --json # configured providers\\nmutagent providers list --models --json # available models per provider (/providers/catalog)\\nmutagent providers get <id> --json # provider details\\nmutagent providers test <id> --json # test connectivity\\n```\\n\\nUse `providers list --models` to discover which models are available before\\nselecting one for any downstream tool.\\n\\n---\\n\\n## 6. usage / quota\\n\\n```bash\\nmutagent usage --json # resource counts + quota\\n```\\n\\nShow the usage output to the user so spend/quota is transparent.\\n\\n---\\n\\n## 7. Install the skill + hooks\\n\\n```bash\\n# Install THIS skill into the current project's .claude/skills/\\nmutagent skills install --json\\n\\n# Install Claude Code telemetry hooks (safe merge into .claude/settings.local.json —\\n# never overwrites existing hooks). These emit session telemetry to the platform.\\nmutagent hooks install --json\\n```\\n\\nBoth commands write into the user's project — state what will be written and\\nconfirm before running (Core Rule 5).\\n\\n---\\n\\n## Common pitfalls\\n\\n- Running login-gated commands (providers, usage, workspaces) before `mutagent login`.\\n- Forgetting `--json` (Rule 1).\\n- Running `hooks install` / `skills install` without telling the user what files change.\\n\\n---\\n\\n## Cross-references\\n\\n- [SKILL.md](../SKILL.md) → Core Rules + Task Router\\n- [workflows/install.md](./install.md) → install helix / diagnostics / evaluator packages\\n\",\n};\n\n/**\n * Backward-compat alias for callers that still import `SKILL_CONTENT`.\n * Points at the entry file (SKILL.md). New code should prefer\n * `SKILL_FILES` to access the full tree including workflows/ and concepts/.\n */\nexport const SKILL_CONTENT: string = SKILL_FILES[\"SKILL.md\"] ?? '';\n",
35
35
  "import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { getApiKey } from '../lib/config.js';\nimport { OutputFormatter, getJsonFlag, createSpinner } from '../lib/output.js';\nimport { handleError, AuthenticationError } from '../lib/errors.js';\nimport { getSDKClient } from '../lib/sdk-client.js';\n\nconst PROVIDERS_URL = 'https://app.mutagent.io/settings/providers';\n\nexport function createUsageCommand(): Command {\n const usage = new Command('usage')\n .description('Show account resource counts (providers, workspaces) and provider status')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent usage\n ${chalk.dim('$')} mutagent usage --json\n `);\n\n usage.action(async () => {\n const isJson = getJsonFlag(usage);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const apiKey = getApiKey();\n if (!apiKey) {\n throw new AuthenticationError();\n }\n\n const spinner = await createSpinner('Fetching usage data...', isJson).start();\n\n const client = await getSDKClient();\n\n // Fetch provider and workspace counts in parallel\n const [providers, workspaces] = await Promise.all([\n client.listProviders().catch(() => ({ data: [] as unknown[], total: 0 })),\n client.listWorkspaces().catch(() => ({ data: [] as unknown[], total: 0 })),\n ]);\n const providerCount = providers.total || providers.data.length;\n const workspaceCount = workspaces.total || workspaces.data.length;\n\n if (spinner && typeof (spinner as { stop?: () => void }).stop === 'function') {\n (spinner as { stop: () => void }).stop();\n }\n\n if (isJson) {\n output.output({\n resources: {\n providers: providerCount,\n workspaces: workspaceCount,\n },\n _links: {\n providers: PROVIDERS_URL,\n dashboard: 'https://app.mutagent.io',\n },\n });\n } else {\n console.log('');\n console.log(chalk.bold('📊 Mutagent Usage'));\n console.log(chalk.dim('─'.repeat(45)));\n console.log('');\n console.log(chalk.bold('Resources:'));\n console.log(` Providers: ${chalk.cyan(String(providerCount))}`);\n console.log(` Workspaces: ${chalk.cyan(String(workspaceCount))}`);\n console.log('');\n console.log(` Manage providers: ${chalk.underline(PROVIDERS_URL)}`);\n console.log('');\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n return usage;\n}\n",
36
- "/**\n * Hooks Command — Claude Code Session Telemetry\n *\n * Hook handlers invoked by AI coding assistants (Claude Code) to send\n * lightweight session telemetry to the MutagenT API using the traces/spans model.\n *\n * All handlers are non-blocking: failures print a warning to stderr and exit 0.\n *\n * Usage (configured in .claude/settings.local.json):\n * mutagent hooks claude-code session-start # stdin: { session_id }\n * mutagent hooks claude-code session-end # stdin: { session_id }\n * mutagent hooks claude-code pre-tool-use # stdin: { session_id, tool_name, tool_input }\n * mutagent hooks claude-code post-tool-use # stdin: { session_id, tool_name, tool_result }\n * mutagent hooks claude-code post-tool-use-failure # stdin: { session_id, tool_name, error }\n * mutagent hooks claude-code user-prompt-submit # stdin: { session_id, prompt }\n * mutagent hooks claude-code subagent-start # stdin: { session_id, agent_type, agent_id }\n * mutagent hooks claude-code subagent-stop # stdin: { session_id }\n * mutagent hooks claude-code pre-compact # stdin: { session_id }\n * mutagent hooks claude-code post-compact # stdin: { session_id, summary }\n */\n\nimport { readFileSync } from 'node:fs';\nimport { basename } from 'node:path';\nimport { Command } from 'commander';\nimport { convertTranscript, parseTranscript } from './import-transcript.js';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { sendBatchTrace } from './api.js';\nimport {\n safeExecute,\n handleSessionStart,\n handleSessionEnd,\n handlePreToolUse,\n handlePostToolUse,\n} from './handlers-core.js';\nimport {\n handlePostToolUseFailure,\n handleUserPromptSubmit,\n handleStop,\n handleSubagentStart,\n handleSubagentStop,\n handlePreCompact,\n handlePostCompact,\n} from './handlers-v2.js';\nimport { installHooks, SettingsParseError } from './install.js';\n\nexport { installHooks, mergeHooksIntoSettings, hasCommand, migrateV1Hooks, SettingsParseError } from './install.js';\nexport type { ClaudeHookEntry, ClaudeHookMatcher, ClaudeSettingsHooks, ClaudeSettings } from './install.js';\n\n// Re-export internals for testing\nexport {\n readStdin as _readStdin,\n safeExecute as _safeExecute,\n getString as _getString,\n serializePayload as _serializePayload,\n handleSessionStart as _handleSessionStart,\n handleSessionEnd as _handleSessionEnd,\n handlePreToolUse as _handlePreToolUse,\n handlePostToolUse as _handlePostToolUse,\n} from './handlers-core.js';\n\nexport {\n handlePostToolUseFailure as _handlePostToolUseFailure,\n handleUserPromptSubmit as _handleUserPromptSubmit,\n handleStop as _handleStop,\n handleSubagentStart as _handleSubagentStart,\n handleSubagentStop as _handleSubagentStop,\n handlePreCompact as _handlePreCompact,\n handlePostCompact as _handlePostCompact,\n} from './handlers-v2.js';\n\nexport {\n readState as _readState,\n writeState as _writeState,\n deleteState as _deleteState,\n stateFilePath as _stateFilePath,\n pushParent as _pushParent,\n popParent as _popParent,\n peekParent as _peekParent,\n peekParentKind as _peekParentKind,\n} from './state.js';\n\nexport { sendBatchTrace as _sendBatchTrace } from './api.js';\n\nexport {\n installHooks as _installHooks,\n mergeHooksIntoSettings as _mergeHooksIntoSettings,\n migrateV1Hooks as _migrateV1Hooks,\n} from './install.js';\n\nexport type { HookState, TracePayload, SpanPayload, OpenSpan } from './state.js';\n\n// ============================================================================\n// Command definition\n// ============================================================================\n\nexport function createHooksCommand(): Command {\n const hooks = new Command('hooks')\n .description('Hook handlers for AI coding assistants')\n .addHelpText('after', `\nClaude Code Session Telemetry:\n Sends lightweight session activity to the Mutagent traces API for observability.\n\n Install by adding to .claude/settings.local.json:\n\n {\n \"hooks\": {\n \"SessionStart\": [{\"matcher\": \"startup\", \"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code session-start\"}]}],\n \"Stop\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code session-end\"}]}],\n \"PreToolUse\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code pre-tool-use\"}]}],\n \"PostToolUse\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code post-tool-use\"}]}],\n \"UserPromptSubmit\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code user-prompt-submit\"}]}],\n \"SubagentStart\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code subagent-start\"}]}],\n \"SubagentStop\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code subagent-stop\"}]}],\n \"PreCompact\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code pre-compact\"}]}],\n \"PostCompact\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code post-compact\"}]}],\n \"PostToolUseFailure\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code post-tool-use-failure\"}]}]\n }\n }\n\n Or run: mutagent hooks install\n `);\n\n // Import subcommand — after-the-fact sourcing, as opposed to live capture.\n hooks\n .command('import')\n .argument('<files...>', 'Session transcript files (.jsonl)')\n .description('Import harness session transcripts as traces')\n .option('--max-spans <n>', 'Cap spans per session', '200')\n .option('--dry-run', 'Convert and report, but do not send')\n .addHelpText('after', `\nSources traces from transcripts already on disk, rather than capturing them\nlive. mutagent-pi discovers these same files for its own /trace viewer; this\nships them to the backend instead.\n\nWhere they live:\n ~/.mutagent/sessions* Helix\n ~/Library/Caches/mutagent/helix Helix (cache)\n\nExamples:\n mutagent hooks import ~/.mutagent/sessions-rc/*.jsonl\n mutagent hooks import session.jsonl --dry-run\n\nAI Agent Directive: use --dry-run first; it reports span counts and any\nunparseable lines without sending anything.\n `)\n .action(async (files: string[], opts: { maxSpans?: string; dryRun?: boolean }) => {\n // HR-3: every command returns a parseable JSON object under --json. The\n // per-file progress lines below are for a human reading a terminal; in\n // JSON mode they are replaced by one object carrying the same facts, so a\n // caller never has to scrape stderr to learn what was imported.\n const isJson = getJsonFlag(hooks);\n const report: {\n file: string;\n traceId?: string;\n sessionId?: string;\n spans?: number;\n unparseableLines?: number;\n recordsIgnored?: number;\n skipped?: string;\n }[] = [];\n const say = (msg: string): void => {\n if (!isJson) process.stderr.write(msg);\n };\n const maxSpans = Number.parseInt(opts.maxSpans ?? '200', 10);\n if (!Number.isFinite(maxSpans) || maxSpans < 1) {\n if (isJson) {\n new OutputFormatter('json').output({\n error: 'InvalidOption',\n message: '--max-spans must be a positive integer',\n });\n } else {\n process.stderr.write('[mutagent hooks] --max-spans must be a positive integer\\n');\n }\n process.exitCode = 2;\n return;\n }\n const batch = [];\n for (const file of files) {\n let raw: string;\n try {\n raw = readFileSync(file, 'utf8');\n } catch (err) {\n // One unreadable file must not abandon the rest of the import.\n const why = err instanceof Error ? err.message : String(err);\n report.push({ file: basename(file), skipped: why });\n say(`[mutagent hooks] skipped ${file}: ${why}\\n`);\n continue;\n }\n const { records, skipped } = parseTranscript(raw);\n const { trace, ignored } = convertTranscript(records, {\n fileName: basename(file),\n maxSpans,\n skipped,\n });\n if (trace === null) {\n report.push({ file: basename(file), skipped: 'no session record' });\n say(`[mutagent hooks] ${basename(file)}: no session record, skipped\\n`);\n continue;\n }\n report.push({\n file: basename(file),\n traceId: trace.traceId,\n ...(trace.sessionId !== undefined ? { sessionId: trace.sessionId } : {}),\n spans: trace.spans.length,\n unparseableLines: skipped,\n recordsIgnored: ignored,\n });\n say(\n `[mutagent hooks] ${basename(file)}: ${String(trace.spans.length)} spans` +\n (skipped > 0 ? `, ${String(skipped)} unparseable lines` : '') +\n (ignored > 0 ? `, ${String(ignored)} records ignored` : '') + '\\n'\n );\n batch.push(trace);\n }\n const emit = (imported: number, dryRun: boolean): void => {\n if (!isJson) return;\n new OutputFormatter('json').output({\n imported,\n dryRun,\n sessions: report,\n count: report.length,\n });\n };\n\n if (batch.length === 0) {\n say('[mutagent hooks] nothing to import\\n');\n emit(0, opts.dryRun === true);\n process.exitCode = 1;\n return;\n }\n if (opts.dryRun === true) {\n say(`[mutagent hooks] --dry-run: ${String(batch.length)} trace(s) not sent\\n`);\n emit(0, true);\n return;\n }\n await sendBatchTrace(batch);\n say(`[mutagent hooks] imported ${String(batch.length)} session(s)\\n`);\n emit(batch.length, false);\n });\n\n // Install subcommand\n hooks\n .command('install')\n .description('Install Mutagent hooks into .claude/settings.local.json (safe merge — never overwrites existing hooks)')\n .option('--cwd <dir>', 'Target directory (defaults to cwd)', process.cwd())\n .addHelpText('after', `\nReads existing .claude/settings.local.json (if present) and deep-merges\nMutagent telemetry hooks into each event array (all 10 events). Skips any\nhook already present (checked by command string) so running this multiple\ntimes is safe.\n `)\n .action((opts: { cwd?: string; json?: boolean }) => {\n const targetDir = opts.cwd ?? process.cwd();\n const isJson = Boolean(opts.json);\n\n let result: ReturnType<typeof installHooks>;\n try {\n result = installHooks(targetDir);\n } catch (err) {\n if (err instanceof SettingsParseError) {\n if (isJson) {\n process.stdout.write(JSON.stringify({\n success: false,\n error: err.message,\n backupPath: err.backupPath,\n settingsPath: err.settingsPath,\n }) + '\\n');\n } else {\n process.stderr.write(`[mutagent hooks install] ERROR: ${err.message}\\n`);\n }\n process.exit(1);\n }\n throw err;\n }\n\n for (const { event, command } of result.migrated) {\n process.stderr.write(\n `[mutagent hooks install] ⚠️ Migrated v1 hook: removed '${event} → ${command}' (v2 wires this as 'SessionEnd')\\n`\n );\n }\n\n if (result.added.length === 0 && result.alreadyPresent.length === 0) {\n process.stdout.write(JSON.stringify({\n success: true,\n settingsPath: result.settingsPath,\n added: [],\n alreadyPresent: [],\n message: 'No hooks to install.',\n }) + '\\n');\n return;\n }\n\n // Surface user warning when hooks were actually added\n if (result.userWarning) {\n if (isJson) {\n // In --json mode, the warning appears in the response body as warnings[]\n // (surfaced below in the JSON output)\n } else {\n process.stderr.write(`⚠ ${result.userWarning}\\n`);\n }\n }\n\n const jsonResponse: Record<string, unknown> = {\n success: true,\n settingsPath: result.settingsPath,\n existed: result.existed,\n added: result.added,\n alreadyPresent: result.alreadyPresent,\n message: result.added.length > 0\n ? `Installed ${String(result.added.length)} hook(s). ${String(result.alreadyPresent.length)} already present.`\n : `All hooks already present (${String(result.alreadyPresent.length)}).`,\n };\n\n if (result.userWarning && isJson) {\n jsonResponse.warnings = [result.userWarning];\n }\n\n process.stdout.write(JSON.stringify(jsonResponse) + '\\n');\n });\n\n const claudeCode = hooks\n .command('claude-code')\n .description('Claude Code session telemetry');\n\n // Original 4 hooks\n claudeCode\n .command('session-start')\n .description('Handle session start event')\n .action(async () => { await safeExecute(handleSessionStart); });\n\n claudeCode\n .command('session-end')\n .description('Handle session end event')\n .action(async () => { await safeExecute(handleSessionEnd); });\n\n claudeCode\n .command('pre-tool-use')\n .description('Handle pre-tool-use event')\n .action(async () => { await safeExecute(handlePreToolUse); });\n\n claudeCode\n .command('post-tool-use')\n .description('Handle post-tool-use event')\n .action(async () => { await safeExecute(handlePostToolUse); });\n\n // New 6 hooks (v2)\n claudeCode\n .command('user-prompt-submit')\n .description('Handle user prompt submit event (creates turn span)')\n .action(async () => { await safeExecute(handleUserPromptSubmit); });\n\n claudeCode\n .command('stop')\n .description('Handle stop event (closes current turn span)')\n .action(async () => { await safeExecute(handleStop); });\n\n claudeCode\n .command('subagent-start')\n .description('Handle subagent start event (creates nested agent span)')\n .action(async () => { await safeExecute(handleSubagentStart); });\n\n claudeCode\n .command('subagent-stop')\n .description('Handle subagent stop event (closes subagent span)')\n .action(async () => { await safeExecute(handleSubagentStop); });\n\n claudeCode\n .command('pre-compact')\n .description('Handle pre-compact event (opens compaction span)')\n .action(async () => { await safeExecute(handlePreCompact); });\n\n claudeCode\n .command('post-compact')\n .description('Handle post-compact event (closes compaction span with summary)')\n .action(async () => { await safeExecute(handlePostCompact); });\n\n claudeCode\n .command('post-tool-use-failure')\n .description('Handle post-tool-use-failure event (closes failed span with error status)')\n .action(async () => { await safeExecute(handlePostToolUseFailure); });\n\n return hooks;\n}\n",
36
+ "/**\n * Hooks Command — Claude Code Session Telemetry\n *\n * Hook handlers invoked by AI coding assistants (Claude Code) to send\n * lightweight session telemetry to the MutagenT API using the traces/spans model.\n *\n * All handlers are non-blocking: failures print a warning to stderr and exit 0.\n *\n * Usage (configured in .claude/settings.local.json):\n * mutagent hooks claude-code session-start # stdin: { session_id }\n * mutagent hooks claude-code session-end # stdin: { session_id }\n * mutagent hooks claude-code pre-tool-use # stdin: { session_id, tool_name, tool_input }\n * mutagent hooks claude-code post-tool-use # stdin: { session_id, tool_name, tool_result }\n * mutagent hooks claude-code post-tool-use-failure # stdin: { session_id, tool_name, error }\n * mutagent hooks claude-code user-prompt-submit # stdin: { session_id, prompt }\n * mutagent hooks claude-code subagent-start # stdin: { session_id, agent_type, agent_id }\n * mutagent hooks claude-code subagent-stop # stdin: { session_id }\n * mutagent hooks claude-code pre-compact # stdin: { session_id }\n * mutagent hooks claude-code post-compact # stdin: { session_id, summary }\n */\n\nimport { readFileSync } from 'node:fs';\nimport { basename } from 'node:path';\nimport { Command } from 'commander';\nimport { convertTranscript, parseTranscript } from './import-transcript.js';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { sendBatchTrace } from './api.js';\nimport {\n safeExecute,\n handleSessionStart,\n handleSessionEnd,\n handlePreToolUse,\n handlePostToolUse,\n} from './handlers-core.js';\nimport {\n handlePostToolUseFailure,\n handleUserPromptSubmit,\n handleStop,\n handleSubagentStart,\n handleSubagentStop,\n handlePreCompact,\n handlePostCompact,\n} from './handlers-v2.js';\nimport { installHooks, SettingsParseError } from './install.js';\n\nexport { installHooks, mergeHooksIntoSettings, hasCommand, migrateV1Hooks, SettingsParseError } from './install.js';\nexport type { ClaudeHookEntry, ClaudeHookMatcher, ClaudeSettingsHooks, ClaudeSettings } from './install.js';\n\n// Re-export internals for testing\nexport {\n readStdin as _readStdin,\n safeExecute as _safeExecute,\n getString as _getString,\n serializePayload as _serializePayload,\n handleSessionStart as _handleSessionStart,\n handleSessionEnd as _handleSessionEnd,\n handlePreToolUse as _handlePreToolUse,\n handlePostToolUse as _handlePostToolUse,\n} from './handlers-core.js';\n\nexport {\n handlePostToolUseFailure as _handlePostToolUseFailure,\n handleUserPromptSubmit as _handleUserPromptSubmit,\n handleStop as _handleStop,\n handleSubagentStart as _handleSubagentStart,\n handleSubagentStop as _handleSubagentStop,\n handlePreCompact as _handlePreCompact,\n handlePostCompact as _handlePostCompact,\n resolveStopReason as _resolveStopReason,\n resolveToolFailureReason as _resolveToolFailureReason,\n} from './handlers-v2.js';\n\nexport {\n readState as _readState,\n writeState as _writeState,\n deleteState as _deleteState,\n stateFilePath as _stateFilePath,\n pushParent as _pushParent,\n popParent as _popParent,\n peekParent as _peekParent,\n peekParentKind as _peekParentKind,\n} from './state.js';\n\nexport { sendBatchTrace as _sendBatchTrace } from './api.js';\n\nexport {\n installHooks as _installHooks,\n mergeHooksIntoSettings as _mergeHooksIntoSettings,\n migrateV1Hooks as _migrateV1Hooks,\n} from './install.js';\n\nexport type { HookState, TracePayload, SpanPayload, OpenSpan } from './state.js';\n\n// ============================================================================\n// Command definition\n// ============================================================================\n\nexport function createHooksCommand(): Command {\n const hooks = new Command('hooks')\n .description('Hook handlers for AI coding assistants')\n .addHelpText('after', `\nClaude Code Session Telemetry:\n Sends lightweight session activity to the Mutagent traces API for observability.\n\n Install by adding to .claude/settings.local.json:\n\n {\n \"hooks\": {\n \"SessionStart\": [{\"matcher\": \"startup\", \"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code session-start\"}]}],\n \"Stop\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code session-end\"}]}],\n \"PreToolUse\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code pre-tool-use\"}]}],\n \"PostToolUse\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code post-tool-use\"}]}],\n \"UserPromptSubmit\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code user-prompt-submit\"}]}],\n \"SubagentStart\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code subagent-start\"}]}],\n \"SubagentStop\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code subagent-stop\"}]}],\n \"PreCompact\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code pre-compact\"}]}],\n \"PostCompact\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code post-compact\"}]}],\n \"PostToolUseFailure\": [{\"hooks\": [{\"type\": \"command\", \"command\": \"mutagent hooks claude-code post-tool-use-failure\"}]}]\n }\n }\n\n Or run: mutagent hooks install\n `);\n\n // Import subcommand — after-the-fact sourcing, as opposed to live capture.\n hooks\n .command('import')\n .argument('<files...>', 'Session transcript files (.jsonl)')\n .description('Import harness session transcripts as traces')\n .option('--max-spans <n>', 'Cap spans per session', '200')\n .option('--dry-run', 'Convert and report, but do not send')\n .addHelpText('after', `\nSources traces from transcripts already on disk, rather than capturing them\nlive. mutagent-pi discovers these same files for its own /trace viewer; this\nships them to the backend instead.\n\nWhere they live:\n ~/.mutagent/sessions* Helix\n ~/Library/Caches/mutagent/helix Helix (cache)\n\nExamples:\n mutagent hooks import ~/.mutagent/sessions-rc/*.jsonl\n mutagent hooks import session.jsonl --dry-run\n\nAI Agent Directive: use --dry-run first; it reports span counts and any\nunparseable lines without sending anything.\n `)\n .action(async (files: string[], opts: { maxSpans?: string; dryRun?: boolean }) => {\n // HR-3: every command returns a parseable JSON object under --json. The\n // per-file progress lines below are for a human reading a terminal; in\n // JSON mode they are replaced by one object carrying the same facts, so a\n // caller never has to scrape stderr to learn what was imported.\n const isJson = getJsonFlag(hooks);\n const report: {\n file: string;\n traceId?: string;\n sessionId?: string;\n spans?: number;\n unparseableLines?: number;\n recordsIgnored?: number;\n skipped?: string;\n }[] = [];\n const say = (msg: string): void => {\n if (!isJson) process.stderr.write(msg);\n };\n const maxSpans = Number.parseInt(opts.maxSpans ?? '200', 10);\n if (!Number.isFinite(maxSpans) || maxSpans < 1) {\n if (isJson) {\n new OutputFormatter('json').output({\n error: 'InvalidOption',\n message: '--max-spans must be a positive integer',\n });\n } else {\n process.stderr.write('[mutagent hooks] --max-spans must be a positive integer\\n');\n }\n process.exitCode = 2;\n return;\n }\n const batch = [];\n for (const file of files) {\n let raw: string;\n try {\n raw = readFileSync(file, 'utf8');\n } catch (err) {\n // One unreadable file must not abandon the rest of the import.\n const why = err instanceof Error ? err.message : String(err);\n report.push({ file: basename(file), skipped: why });\n say(`[mutagent hooks] skipped ${file}: ${why}\\n`);\n continue;\n }\n const { records, skipped } = parseTranscript(raw);\n const { trace, ignored } = convertTranscript(records, {\n fileName: basename(file),\n maxSpans,\n skipped,\n });\n if (trace === null) {\n report.push({ file: basename(file), skipped: 'no session record' });\n say(`[mutagent hooks] ${basename(file)}: no session record, skipped\\n`);\n continue;\n }\n report.push({\n file: basename(file),\n traceId: trace.traceId,\n ...(trace.sessionId !== undefined ? { sessionId: trace.sessionId } : {}),\n spans: trace.spans.length,\n unparseableLines: skipped,\n recordsIgnored: ignored,\n });\n say(\n `[mutagent hooks] ${basename(file)}: ${String(trace.spans.length)} spans` +\n (skipped > 0 ? `, ${String(skipped)} unparseable lines` : '') +\n (ignored > 0 ? `, ${String(ignored)} records ignored` : '') + '\\n'\n );\n batch.push(trace);\n }\n const emit = (imported: number, dryRun: boolean): void => {\n if (!isJson) return;\n new OutputFormatter('json').output({\n imported,\n dryRun,\n sessions: report,\n count: report.length,\n });\n };\n\n if (batch.length === 0) {\n say('[mutagent hooks] nothing to import\\n');\n emit(0, opts.dryRun === true);\n process.exitCode = 1;\n return;\n }\n if (opts.dryRun === true) {\n say(`[mutagent hooks] --dry-run: ${String(batch.length)} trace(s) not sent\\n`);\n emit(0, true);\n return;\n }\n await sendBatchTrace(batch);\n say(`[mutagent hooks] imported ${String(batch.length)} session(s)\\n`);\n emit(batch.length, false);\n });\n\n // Install subcommand\n hooks\n .command('install')\n .description('Install Mutagent hooks into .claude/settings.local.json (safe merge — never overwrites existing hooks)')\n .option('--cwd <dir>', 'Target directory (defaults to cwd)', process.cwd())\n .addHelpText('after', `\nReads existing .claude/settings.local.json (if present) and deep-merges\nMutagent telemetry hooks into each event array (all 10 events). Skips any\nhook already present (checked by command string) so running this multiple\ntimes is safe.\n `)\n .action((opts: { cwd?: string; json?: boolean }) => {\n const targetDir = opts.cwd ?? process.cwd();\n const isJson = Boolean(opts.json);\n\n let result: ReturnType<typeof installHooks>;\n try {\n result = installHooks(targetDir);\n } catch (err) {\n if (err instanceof SettingsParseError) {\n if (isJson) {\n process.stdout.write(JSON.stringify({\n success: false,\n error: err.message,\n backupPath: err.backupPath,\n settingsPath: err.settingsPath,\n }) + '\\n');\n } else {\n process.stderr.write(`[mutagent hooks install] ERROR: ${err.message}\\n`);\n }\n process.exit(1);\n }\n throw err;\n }\n\n for (const { event, command } of result.migrated) {\n process.stderr.write(\n `[mutagent hooks install] ⚠️ Migrated v1 hook: removed '${event} → ${command}' (v2 wires this as 'SessionEnd')\\n`\n );\n }\n\n if (result.added.length === 0 && result.alreadyPresent.length === 0) {\n process.stdout.write(JSON.stringify({\n success: true,\n settingsPath: result.settingsPath,\n added: [],\n alreadyPresent: [],\n message: 'No hooks to install.',\n }) + '\\n');\n return;\n }\n\n // Surface user warning when hooks were actually added\n if (result.userWarning) {\n if (isJson) {\n // In --json mode, the warning appears in the response body as warnings[]\n // (surfaced below in the JSON output)\n } else {\n process.stderr.write(`⚠ ${result.userWarning}\\n`);\n }\n }\n\n const jsonResponse: Record<string, unknown> = {\n success: true,\n settingsPath: result.settingsPath,\n existed: result.existed,\n added: result.added,\n alreadyPresent: result.alreadyPresent,\n message: result.added.length > 0\n ? `Installed ${String(result.added.length)} hook(s). ${String(result.alreadyPresent.length)} already present.`\n : `All hooks already present (${String(result.alreadyPresent.length)}).`,\n };\n\n if (result.userWarning && isJson) {\n jsonResponse.warnings = [result.userWarning];\n }\n\n process.stdout.write(JSON.stringify(jsonResponse) + '\\n');\n });\n\n const claudeCode = hooks\n .command('claude-code')\n .description('Claude Code session telemetry');\n\n // Original 4 hooks\n claudeCode\n .command('session-start')\n .description('Handle session start event')\n .action(async () => { await safeExecute(handleSessionStart); });\n\n claudeCode\n .command('session-end')\n .description('Handle session end event')\n .action(async () => { await safeExecute(handleSessionEnd); });\n\n claudeCode\n .command('pre-tool-use')\n .description('Handle pre-tool-use event')\n .action(async () => { await safeExecute(handlePreToolUse); });\n\n claudeCode\n .command('post-tool-use')\n .description('Handle post-tool-use event')\n .action(async () => { await safeExecute(handlePostToolUse); });\n\n // New 6 hooks (v2)\n claudeCode\n .command('user-prompt-submit')\n .description('Handle user prompt submit event (creates turn span)')\n .action(async () => { await safeExecute(handleUserPromptSubmit); });\n\n claudeCode\n .command('stop')\n .description('Handle stop event (closes current turn span)')\n .action(async () => { await safeExecute(handleStop); });\n\n claudeCode\n .command('subagent-start')\n .description('Handle subagent start event (creates nested agent span)')\n .action(async () => { await safeExecute(handleSubagentStart); });\n\n claudeCode\n .command('subagent-stop')\n .description('Handle subagent stop event (closes subagent span)')\n .action(async () => { await safeExecute(handleSubagentStop); });\n\n claudeCode\n .command('pre-compact')\n .description('Handle pre-compact event (opens compaction span)')\n .action(async () => { await safeExecute(handlePreCompact); });\n\n claudeCode\n .command('post-compact')\n .description('Handle post-compact event (closes compaction span with summary)')\n .action(async () => { await safeExecute(handlePostCompact); });\n\n claudeCode\n .command('post-tool-use-failure')\n .description('Handle post-tool-use-failure event (closes failed span with error status)')\n .action(async () => { await safeExecute(handlePostToolUseFailure); });\n\n return hooks;\n}\n",
37
37
  "/**\n * Turn a harness session transcript on disk into a trace batch.\n *\n * WHY THIS EXISTS. `mutagent-pi` already SOURCES traces — `extensions/tracer/\n * core/sources.ts` discovers session transcripts for `pi | omp | claude | helix`\n * and renders them in its own `/trace` viewer. It just never ships them\n * anywhere. Meanwhile the backend ingests traces at `/api/traces/batch`. The\n * only missing piece was the conversion between the two, and it belongs here\n * rather than in pi: reading a file needs no change to the harness that wrote\n * it.\n *\n * Proven against a real 504-message Helix session before this module existed:\n * 40 spans posted, 40 read back with content intact.\n *\n * The parsing is deliberately TOLERANT. A transcript is an append-only log\n * written by a live agent; it can be truncated mid-line by a crash, and its\n * record shapes differ across harnesses and versions. A converter that throws on\n * the first surprise imports nothing from the sessions most worth importing.\n * Unparseable lines are counted and skipped, never fatal.\n */\nimport type { SpanPayload, TracePayload } from './state.js';\n\n/** A transcript record, as loosely as we are willing to assume. */\nexport interface TranscriptRecord {\n type?: string;\n id?: string;\n uuid?: string;\n timestamp?: string;\n cwd?: string;\n version?: string;\n role?: string;\n message?: { role?: string; content?: unknown };\n}\n\nexport interface ConvertResult {\n trace: TracePayload | null;\n /** Lines that did not parse as JSON. Reported, never thrown. */\n skipped: number;\n /** Records seen that produced no span (session header, model_change, …). */\n ignored: number;\n}\n\nconst MAX_SPAN_TEXT = 4000;\n\n/** Flatten a message's `content` to text without assuming its shape. */\nexport function contentToText(content: unknown): string {\n if (typeof content === 'string') return content.slice(0, MAX_SPAN_TEXT);\n if (Array.isArray(content)) {\n return content\n .map((part) =>\n part !== null && typeof part === 'object' && 'text' in part\n ? String((part as { text: unknown }).text)\n : ''\n )\n .filter(Boolean)\n .join(' ')\n .slice(0, MAX_SPAN_TEXT);\n }\n return '';\n}\n\n/**\n * Convert transcript records into one trace.\n *\n * `maxSpans` bounds the batch: a long session is tens of thousands of messages\n * and the server caps a request. Truncation is reported by the caller rather\n * than hidden — an import that silently dropped 90% of a session would look\n * identical to one that worked.\n */\nexport function convertTranscript(\n records: readonly TranscriptRecord[],\n opts: { fileName: string; maxSpans?: number; skipped?: number }\n): ConvertResult {\n const maxSpans = opts.maxSpans ?? 200;\n const session = records.find((r) => r.type === 'session');\n if (session === undefined || typeof session.id !== 'string' || session.id === '') {\n return { trace: null, skipped: opts.skipped ?? 0, ignored: records.length };\n }\n\n const spans: SpanPayload[] = [];\n let ignored = 0;\n let lastTs = session.timestamp ?? new Date().toISOString();\n\n for (const r of records) {\n if (r.type !== 'message' && r.type !== 'custom_message') {\n ignored += 1;\n continue;\n }\n if (spans.length >= maxSpans) {\n ignored += 1;\n continue;\n }\n const role = r.message?.role ?? r.role ?? r.type;\n const startTime = r.timestamp ?? lastTs;\n lastTs = startTime;\n const text = contentToText(r.message?.content);\n const span: SpanPayload = {\n spanId: (r.id ?? r.uuid ?? `span-${String(spans.length)}`).slice(0, 128),\n name: `helix.${role}`,\n kind: role === 'assistant' ? 'llm' : 'message',\n startTime,\n status: 'ok',\n };\n if (text !== '') span.output = text;\n spans.push(span);\n }\n\n return {\n trace: {\n traceId: `helix-${session.id}`.slice(0, 128),\n sessionId: session.id.slice(0, 256),\n name: 'helix.session',\n source: 'helix',\n startTime: session.timestamp ?? lastTs,\n endTime: lastTs,\n status: 'ok',\n spans,\n metadata: {\n harness: 'helix',\n transcript: opts.fileName,\n ...(session.cwd !== undefined ? { cwd: session.cwd } : {}),\n ...(session.version !== undefined ? { version: session.version } : {}),\n },\n },\n skipped: opts.skipped ?? 0,\n ignored,\n };\n}\n\n/** Parse JSONL tolerantly: bad lines are counted, not thrown. */\nexport function parseTranscript(raw: string): { records: TranscriptRecord[]; skipped: number } {\n const records: TranscriptRecord[] = [];\n let skipped = 0;\n for (const line of raw.split('\\n')) {\n const t = line.trim();\n if (t === '') continue;\n try {\n records.push(JSON.parse(t) as TranscriptRecord);\n } catch {\n skipped += 1;\n }\n }\n return { records, skipped };\n}\n",
38
38
  "/**\n * Hook API — Fire-and-forget trace submission\n */\n\nimport { getApiKey, loadConfig } from '../../lib/config.js';\nimport type { TracePayload } from './state.js';\n\nconst API_TIMEOUT_MS = 5000;\n\n/**\n * Decide the tenancy headers for a trace batch, or refuse to send one.\n *\n * The server needs BOTH `x-workspace-id` and `x-organization-id` or it refuses\n * the batch — \"x-organization-id header is required when x-workspace-id is\n * provided\". These were attached by INDEPENDENT guards, so a developer with a\n * default workspace and no default organization had every batch rejected, and\n * the hook path never surfaced it.\n *\n * Sending neither is NOT a fallback: the endpoint then answers \"Workspace\n * context required — Provide x-workspace-id header\". Both combinations were\n * measured against a live server, so no header set works without an\n * organization. The only honest move is to say so once and not post.\n *\n * Extracted as a pure function so it can be tested without mocking the config\n * module — a `mock.module` on that path is process-wide in Bun and broke 44\n * unrelated tests when this was asserted that way.\n */\nexport function resolveTenancyHeaders(config: {\n defaultWorkspace?: string;\n defaultOrganization?: string;\n}): { ok: true; headers: Record<string, string> } | { ok: false; warning: string } {\n if (config.defaultWorkspace && !config.defaultOrganization) {\n return {\n ok: false,\n warning:\n '[mutagent hooks] Warning: a default workspace is set but no default organization, ' +\n 'so the server will reject every trace batch. ' +\n 'Fix with: mutagent config set organization <org-id>\\n',\n };\n }\n const headers: Record<string, string> = {};\n if (config.defaultWorkspace) headers['x-workspace-id'] = config.defaultWorkspace;\n if (config.defaultOrganization) headers['x-organization-id'] = config.defaultOrganization;\n return { ok: true, headers };\n}\n\nexport async function sendBatchTrace(traces: TracePayload[]): Promise<void> {\n const apiKey = getApiKey();\n if (!apiKey) {\n process.stderr.write(\n '[mutagent hooks] Warning: Not authenticated. Run: mutagent auth login\\n'\n );\n return;\n }\n\n const config = loadConfig();\n const endpoint = config.endpoint ?? 'http://localhost:3003';\n\n const headers: Record<string, string> = {\n 'x-api-key': apiKey,\n 'Content-Type': 'application/json',\n };\n const tenancy = resolveTenancyHeaders(config);\n if (!tenancy.ok) {\n process.stderr.write(tenancy.warning);\n return;\n }\n Object.assign(headers, tenancy.headers);\n\n const controller = new AbortController();\n const timeout = setTimeout(() => { controller.abort(); }, API_TIMEOUT_MS);\n\n try {\n const response = await fetch(`${endpoint}/api/traces/batch`, {\n method: 'POST',\n headers,\n body: JSON.stringify({ traces }),\n signal: controller.signal,\n });\n\n if (!response.ok) {\n const body = await response.text().catch(() => '');\n process.stderr.write(\n `[mutagent hooks] Warning: API returned ${String(response.status)}: ${body.slice(0, 200)}\\n`\n );\n }\n } finally {\n clearTimeout(timeout);\n }\n}\n",
39
39
  "/**\n * Core Hook Handlers — Session Start/End + Tool Use\n *\n * Handles the original 4 Claude Code events:\n * SessionStart → emit root agent span (kind: agent); push onto parentStack\n * SessionEnd → close ALL orphan container spans then root; delete state\n * PreToolUse → emit tool span with current parent from stack\n * PostToolUse → close matching open tool span with status: completed\n */\n\nimport { randomUUID } from 'crypto';\nimport {\n readState,\n writeState,\n deleteState,\n pushParent,\n peekParent,\n type HookState,\n type SpanPayload,\n} from './state.js';\nimport { sendBatchTrace } from './api.js';\n\n// ============================================================================\n// Stdin parsing\n// ============================================================================\n\nexport async function readStdin(): Promise<Record<string, unknown>> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk as string));\n }\n return JSON.parse(Buffer.concat(chunks).toString('utf-8')) as Record<string, unknown>;\n}\n\n// ============================================================================\n// Non-blocking wrapper\n// ============================================================================\n\nexport async function safeExecute(fn: () => Promise<void>): Promise<void> {\n try {\n await fn();\n } catch (err) {\n process.stderr.write(\n `[mutagent hooks] Warning: ${err instanceof Error ? err.message : String(err)}\\n`\n );\n }\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nexport function getString(input: Record<string, unknown>, ...keys: string[]): string {\n for (const key of keys) {\n const val = input[key];\n if (typeof val === 'string' && val.length > 0) return val;\n }\n return '';\n}\n\nexport function serializePayload(value: unknown): string | undefined {\n if (value === undefined || value === null) return undefined;\n return typeof value === 'string' ? value : JSON.stringify(value);\n}\n\n// ============================================================================\n// SessionStart — emit root agent span; push onto parentStack\n// ============================================================================\n\nexport async function handleSessionStart(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const traceId = `cc-${sessionId}`;\n const rootSpanId = randomUUID();\n\n const state: HookState = {\n traceId,\n sessionId,\n startTime: now,\n openSpans: {},\n parentStack: [],\n parentStackKinds: [],\n };\n pushParent(state, rootSpanId, 'agent');\n writeState(sessionId, state);\n\n await sendBatchTrace([\n {\n traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: now,\n status: 'running',\n spans: [\n {\n spanId: rootSpanId,\n name: 'Claude Code Session',\n kind: 'agent',\n startTime: now,\n status: 'running',\n parentSpanId: null,\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// SessionEnd — close root trace; clean up state\n// ============================================================================\n\nexport async function handleSessionEnd(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n const traceId = state?.traceId ?? `cc-${sessionId}`;\n const startTime = state?.startTime ?? now;\n\n const spansToClose: SpanPayload[] = [];\n\n if (state && state.parentStack.length > 0) {\n // Close orphan container spans (depth > 0 = not yet popped by their Stop/SubagentStop)\n // Walk from top down; spans at depth > 0 are orphans (subagent crash, missing stop, etc.)\n // The root span (index 0) is closed last with status=completed; orphans get status=error.\n const stackCopy = [...state.parentStack];\n const kindsCopy = [...state.parentStackKinds];\n\n // Pop orphans (index > 0) with status=error\n for (let i = stackCopy.length - 1; i > 0; i--) {\n const orphanId = stackCopy[i];\n const orphanKind = kindsCopy[i] ?? 'agent';\n if (orphanId) {\n spansToClose.push({\n spanId: orphanId,\n name: 'orphaned span',\n kind: orphanKind,\n startTime: now,\n endTime: now,\n status: 'error',\n output: 'orphaned at session end',\n parentSpanId: stackCopy[i - 1] ?? null,\n });\n }\n }\n\n // Close root (index 0) with status=completed\n const rootSpanId = stackCopy[0];\n if (rootSpanId) {\n spansToClose.push({\n spanId: rootSpanId,\n name: 'Claude Code Session',\n kind: 'agent',\n startTime: state.startTime,\n endTime: now,\n status: 'completed',\n parentSpanId: null,\n });\n }\n }\n\n await sendBatchTrace([\n {\n traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime,\n endTime: now,\n status: 'completed',\n spans: spansToClose,\n },\n ]);\n\n deleteState(sessionId);\n}\n\n// ============================================================================\n// PreToolUse — emit tool span with current parent\n// ============================================================================\n\nexport async function handlePreToolUse(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n const toolName = getString(input, 'tool_name', 'toolName') || 'unknown';\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId) ?? {\n traceId: `cc-${sessionId}`,\n sessionId,\n startTime: now,\n openSpans: {} as Record<string, { spanId: string; startTime: string; toolName: string }>,\n parentStack: [] as string[],\n parentStackKinds: [] as string[],\n };\n\n const parentSpanId = peekParent(state);\n const spanId = randomUUID();\n\n state.openSpans[spanId] = {\n spanId,\n startTime: now,\n toolName,\n };\n writeState(sessionId, state);\n\n const toolInput = serializePayload(input.tool_input ?? input.toolInput);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId,\n name: toolName,\n kind: 'tool',\n startTime: now,\n status: 'running',\n ...(toolInput !== undefined ? { input: toolInput } : {}),\n ...(parentSpanId !== null ? { parentSpanId } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// PostToolUse — close matching tool span with status: completed\n// ============================================================================\n\nexport async function handlePostToolUse(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n const toolName = getString(input, 'tool_name', 'toolName') || 'unknown';\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n const traceId = state?.traceId ?? `cc-${sessionId}`;\n const startTime = state?.startTime ?? now;\n\n // Find matching open span by toolName (LIFO — most recent match)\n let matchedSpanId: string | null = null;\n let matchedSpanStart: string = now;\n let matchedKey: string | null = null;\n\n if (state?.openSpans) {\n const entries = Object.entries(state.openSpans);\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (entry && entry[1].toolName === toolName) {\n matchedSpanId = entry[1].spanId;\n matchedSpanStart = entry[1].startTime;\n matchedKey = entry[0];\n break;\n }\n }\n }\n\n const spanId = matchedSpanId ?? randomUUID();\n const spanStartTime = matchedSpanStart;\n\n if (state && matchedKey) {\n state.openSpans = Object.fromEntries(\n Object.entries(state.openSpans).filter(([k]) => k !== matchedKey)\n );\n writeState(sessionId, state);\n }\n\n const rawOutput =\n input.tool_response ?? // Claude Code actual key — must be first\n input.toolResponse ??\n input.tool_output ?? input.toolOutput ??\n input.tool_result ?? input.toolResult ??\n input.output ?? input.result;\n const toolOutput = serializePayload(rawOutput);\n\n await sendBatchTrace([\n {\n traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime,\n status: 'running',\n spans: [\n {\n spanId,\n name: toolName,\n kind: 'tool',\n startTime: spanStartTime,\n endTime: now,\n status: 'completed',\n ...(toolOutput !== undefined ? { output: toolOutput } : {}),\n },\n ],\n },\n ]);\n}\n",
40
40
  "/**\n * Hook State — Type definitions and state file helpers\n *\n * State file lives at /tmp/mutagent-hook-<sessionId>.json and tracks:\n * - traceId / sessionId / startTime\n * - openSpans: map of spanId → OpenSpan (tool spans currently in-flight)\n * - parentStack: LIFO stack of open container span IDs\n * Push on: SessionStart, UserPromptSubmit, SubagentStart, PreCompact\n * Pop on: Stop (chain only), SubagentStop, PostCompact, SessionEnd (full cleanup)\n * - parentStackKinds: parallel array of span kind for each entry in parentStack\n * Allows Stop/SubagentStop to validate the kind at stack top before popping\n */\n\nimport { readFileSync, writeFileSync, renameSync, unlinkSync, existsSync } from 'fs';\nimport { join } from 'path';\nimport { tmpdir } from 'os';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface OpenSpan {\n spanId: string;\n startTime: string;\n toolName: string;\n}\n\nexport interface HookState {\n traceId: string;\n sessionId: string;\n startTime: string;\n openSpans: Record<string, OpenSpan>;\n /** LIFO stack of open container span IDs. Top = parentStack[parentStack.length - 1]. */\n parentStack: string[];\n /**\n * Parallel array to parentStack — stores the SpanKind for each entry.\n * Always the same length as parentStack. Allows Stop/SubagentStop to\n * validate the kind at the top of the stack before popping.\n */\n parentStackKinds: string[];\n}\n\nexport interface TracePayload {\n traceId: string;\n sessionId?: string;\n name?: string;\n source: string;\n startTime: string;\n endTime?: string;\n status?: string;\n spans: SpanPayload[];\n metadata?: Record<string, unknown>;\n}\n\nexport interface SpanPayload {\n spanId: string;\n name: string;\n kind: string;\n startTime: string;\n endTime?: string;\n status?: string;\n input?: string;\n output?: string;\n parentSpanId?: string | null;\n metadata?: Record<string, unknown>;\n}\n\n// ============================================================================\n// State file helpers\n// ============================================================================\n\nexport function stateFilePath(sessionId: string): string {\n return join(tmpdir(), `mutagent-hook-${sessionId}.json`);\n}\n\nexport function readState(sessionId: string): HookState | null {\n const path = stateFilePath(sessionId);\n if (!existsSync(path)) return null;\n try {\n const raw = JSON.parse(readFileSync(path, 'utf-8')) as HookState;\n // Backfill parentStack for states written before v2\n if (!Array.isArray(raw.parentStack)) {\n raw.parentStack = [];\n }\n // Backfill parentStackKinds — keep same length as parentStack\n if (!Array.isArray(raw.parentStackKinds)) {\n raw.parentStackKinds = raw.parentStack.map(() => 'agent');\n }\n return raw;\n } catch {\n return null;\n }\n}\n\n/**\n * Atomically write state to disk using a temp file + rename.\n * rename(2) is atomic on POSIX so readers never see a partial write.\n */\nexport function writeState(sessionId: string, state: HookState): void {\n const path = stateFilePath(sessionId);\n const tmpPath = `${path}.${process.pid.toString()}.tmp`;\n writeFileSync(tmpPath, JSON.stringify(state), 'utf-8');\n renameSync(tmpPath, path);\n}\n\nexport function deleteState(sessionId: string): void {\n const path = stateFilePath(sessionId);\n if (existsSync(path)) {\n try {\n unlinkSync(path);\n } catch {\n // Ignore cleanup errors\n }\n }\n}\n\n// ============================================================================\n// Parent stack helpers\n// ============================================================================\n\n/**\n * Push a span ID + its kind onto the parent stack.\n * The new span becomes the active parent for subsequent child spans.\n */\nexport function pushParent(state: HookState, spanId: string, kind = 'agent'): HookState {\n state.parentStack.push(spanId);\n state.parentStackKinds.push(kind);\n return state;\n}\n\n/**\n * Pop the top span ID from the parent stack, returning [spanId, kind] or null.\n * Mutates state in place. Keeps parentStack and parentStackKinds in sync.\n */\nexport function popParent(state: HookState): string | null {\n if (state.parentStack.length === 0) return null;\n state.parentStackKinds.pop();\n return state.parentStack.pop() ?? null;\n}\n\n/**\n * Peek at the top of the parent stack without removing it.\n * Returns null if the stack is empty.\n */\nexport function peekParent(state: HookState): string | null {\n if (state.parentStack.length === 0) return null;\n return state.parentStack[state.parentStack.length - 1] ?? null;\n}\n\n/**\n * Peek at the kind of the top span on the stack without removing it.\n * Returns null if the stack is empty.\n */\nexport function peekParentKind(state: HookState): string | null {\n if (state.parentStackKinds.length === 0) return null;\n return state.parentStackKinds[state.parentStackKinds.length - 1] ?? null;\n}\n",
41
- "/**\n * v2 Hook Handlers — Turn Boundaries, Sub-agents, Compaction, Tool Failures\n *\n * Handles the 7 new Claude Code events (taxonomy v2):\n * UserPromptSubmit → emit turn span (kind: chain); push onto parentStack\n * Stop → pop chain span (NOT root); validates kind before pop\n * SubagentStart → emit agent span (kind: agent); push onto parentStack\n * SubagentStop → pop agent span; validates kind before pop\n * PreCompact → open custom span (kind: custom); push onto parentStack\n * PostCompact → pop + close the custom compaction span with summary in output\n * PostToolUseFailure → close matching open tool span with status: error\n *\n * Kind mapping to BE SpanKindSchema (strict 15-value enum):\n * turn spans → 'chain' (orchestration container)\n * compaction → 'custom' (non-standard observability event)\n * session root → 'agent'\n * subagents → 'agent'\n * tool calls → 'tool'\n */\n\nimport { randomUUID } from 'crypto';\nimport {\n readState,\n writeState,\n pushParent,\n popParent,\n peekParent,\n peekParentKind,\n} from './state.js';\nimport { sendBatchTrace } from './api.js';\nimport { readStdin, getString, serializePayload } from './handlers-core.js';\n\n// ============================================================================\n// UserPromptSubmit — emit turn span; push onto parentStack\n// ============================================================================\n\nexport async function handleUserPromptSubmit(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId) ?? {\n traceId: `cc-${sessionId}`,\n sessionId,\n startTime: now,\n openSpans: {},\n parentStack: [],\n parentStackKinds: [],\n };\n\n const parentSpanId = peekParent(state);\n const turnSpanId = randomUUID();\n\n const prompt = input.prompt ?? input.message ?? input.text;\n const inputPayload = serializePayload(prompt ? { prompt } : undefined);\n\n pushParent(state, turnSpanId, 'chain');\n writeState(sessionId, state);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: turnSpanId,\n name: 'User turn',\n kind: 'chain',\n startTime: now,\n status: 'running',\n ...(inputPayload !== undefined ? { input: inputPayload } : {}),\n ...(parentSpanId !== null ? { parentSpanId } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// Stop — pop + close turn span (NOT root)\n// ============================================================================\n\nexport async function handleStop(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n if (!state) return;\n\n // Don't pop the root span (depth <= 1).\n if (state.parentStack.length <= 1) return;\n\n // Safety: only pop if the top is a chain (turn) span.\n // If top is 'agent' (subagent that didn't close), log a warning and skip.\n const topKind = peekParentKind(state);\n if (topKind !== 'chain') {\n process.stderr.write(\n `[mutagent hooks] Warning: Stop fired but stack top is kind=\"${topKind ?? 'unknown'}\" (expected \"chain\"). Skipping pop.\\n`\n );\n return;\n }\n\n const turnSpanId = popParent(state);\n writeState(sessionId, state);\n\n if (!turnSpanId) return;\n\n // Attach whatever the Stop payload can tell us: stop_reason, assistant response text.\n // `serializePayload`, not `String()`: `stop_reason` is `unknown` off the\n // hook payload, and `String()` on a structured value records the literal\n // text \"[object Object]\" as the reason.\n const stopReason =\n getString(input, 'stop_reason', 'stopReason') || serializePayload(input.stop_reason);\n const assistantText =\n input.message ?? input.assistant_message ?? input.response ?? input.text;\n const outputValue = assistantText ?? (stopReason ? { stop_reason: stopReason } : undefined);\n const turnOutput = serializePayload(outputValue);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: turnSpanId,\n name: 'User turn',\n kind: 'chain',\n startTime: now,\n endTime: now,\n status: 'completed',\n parentSpanId: peekParent(state), // parent (root or outer agent) now at top\n ...(turnOutput !== undefined ? { output: turnOutput } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// SubagentStart — emit agent span; push onto parentStack\n// ============================================================================\n\nexport async function handleSubagentStart(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId) ?? {\n traceId: `cc-${sessionId}`,\n sessionId,\n startTime: now,\n openSpans: {},\n parentStack: [],\n parentStackKinds: [],\n };\n\n const parentSpanId = peekParent(state);\n const agentSpanId = randomUUID();\n\n const agentType = getString(input, 'agent_type', 'agentType') || 'subagent';\n const agentId = getString(input, 'agent_id', 'agentId');\n const agentName = agentId ? `${agentType}:${agentId}` : agentType;\n\n // Attach the subagent's initial prompt/task as span input when available.\n const promptValue =\n input.prompt ??\n input.message ??\n input.system_prompt ??\n input.task ??\n input.tool_response ??\n input.toolResponse;\n const agentInput = serializePayload(promptValue);\n\n pushParent(state, agentSpanId, 'agent');\n writeState(sessionId, state);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: agentSpanId,\n name: agentName,\n kind: 'agent',\n startTime: now,\n status: 'running',\n ...(parentSpanId !== null ? { parentSpanId } : {}),\n ...(agentInput !== undefined ? { input: agentInput } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// SubagentStop — pop + close subagent span\n// ============================================================================\n\nexport async function handleSubagentStop(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n if (!state) {\n process.stderr.write(\n `[mutagent hooks] Warning: SubagentStop received but no state found for session ${sessionId}\\n`\n );\n return;\n }\n\n if (state.parentStack.length <= 1) {\n process.stderr.write(\n `[mutagent hooks] Warning: SubagentStop with no matching SubagentStart in session ${sessionId}\\n`\n );\n return;\n }\n\n // Safety: only pop if the top is an agent span.\n const topKind = peekParentKind(state);\n if (topKind !== 'agent') {\n process.stderr.write(\n `[mutagent hooks] Warning: SubagentStop but stack top is kind=\"${topKind ?? 'unknown'}\" (expected \"agent\"). Skipping pop.\\n`\n );\n return;\n }\n\n const agentSpanId = popParent(state);\n const newParent = peekParent(state);\n writeState(sessionId, state);\n\n if (!agentSpanId) return;\n\n // Attach the subagent's final message/summary as span output when available.\n // Use the same tool_response / stop_reason field-sniff pattern as handleStop.\n const finalMessage =\n input.message ??\n input.assistant_message ??\n input.response ??\n input.tool_response ??\n input.toolResponse;\n const stopReason = getString(input, 'stop_reason', 'stopReason');\n const outputValue = finalMessage ?? (stopReason ? { stop_reason: stopReason } : undefined);\n const agentOutput = serializePayload(outputValue);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: agentSpanId,\n name: 'subagent',\n kind: 'agent',\n startTime: now,\n endTime: now,\n status: 'completed',\n ...(newParent !== null ? { parentSpanId: newParent } : {}),\n ...(agentOutput !== undefined ? { output: agentOutput } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// PreCompact — open compaction span (kind: custom); push onto parentStack\n// ============================================================================\n\nexport async function handlePreCompact(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId) ?? {\n traceId: `cc-${sessionId}`,\n sessionId,\n startTime: now,\n openSpans: {},\n parentStack: [],\n parentStackKinds: [],\n };\n\n const parentSpanId = peekParent(state);\n const compactSpanId = randomUUID();\n\n pushParent(state, compactSpanId, 'custom');\n writeState(sessionId, state);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: compactSpanId,\n name: 'Compaction',\n kind: 'custom',\n startTime: now,\n status: 'running',\n ...(parentSpanId !== null ? { parentSpanId } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// PostCompact — pop + close compaction span (kind: custom) with summary in output\n// ============================================================================\n\nexport async function handlePostCompact(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n if (!state) {\n process.stderr.write(\n `[mutagent hooks] Warning: PostCompact received but no state found for session ${sessionId}\\n`\n );\n return;\n }\n\n if (state.parentStack.length <= 1) {\n process.stderr.write(\n `[mutagent hooks] Warning: PostCompact with no matching PreCompact in session ${sessionId}\\n`\n );\n return;\n }\n\n const compactSpanId = popParent(state);\n const newParent = peekParent(state);\n writeState(sessionId, state);\n\n if (!compactSpanId) return;\n\n const summary = input.summary ?? input.compaction_summary ?? input.compactionSummary;\n const outputPayload = serializePayload(summary ?? 'Context compacted');\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: compactSpanId,\n name: 'Compaction',\n kind: 'custom',\n startTime: now,\n endTime: now,\n status: 'completed',\n ...(outputPayload !== undefined ? { output: outputPayload } : {}),\n ...(newParent !== null ? { parentSpanId: newParent } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// PostToolUseFailure — close matching open tool span with status: error\n// ============================================================================\n\nexport async function handlePostToolUseFailure(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n const toolName = getString(input, 'tool_name', 'toolName') || 'unknown';\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n if (!state) {\n process.stderr.write(\n `[mutagent hooks] Warning: PostToolUseFailure received but no state found for session ${sessionId}\\n`\n );\n return;\n }\n\n const traceId = state.traceId;\n const startTime = state.startTime;\n\n // Find matching open span by toolName (LIFO)\n let matchedSpanId: string | null = null;\n let matchedSpanStart: string = now;\n let matchedKey: string | null = null;\n\n const entries = Object.entries(state.openSpans);\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (entry && entry[1].toolName === toolName) {\n matchedSpanId = entry[1].spanId;\n matchedSpanStart = entry[1].startTime;\n matchedKey = entry[0];\n break;\n }\n }\n\n if (!matchedSpanId) {\n process.stderr.write(\n `[mutagent hooks] Warning: PostToolUseFailure — no matching open span for tool \"${toolName}\"\\n`\n );\n return;\n }\n\n state.openSpans = Object.fromEntries(\n Object.entries(state.openSpans).filter(([k]) => k !== matchedKey)\n );\n writeState(sessionId, state);\n\n // Claude Code nests failure details inside tool_response (same envelope as PostToolUse).\n // Extract the most descriptive error text we can find.\n const toolResponse = input.tool_response ?? input.toolResponse;\n let reason = 'Tool use failed';\n if (typeof toolResponse === 'object' && toolResponse !== null) {\n // Claude Code sends `error` as either a string or a structured object.\n // `String()` on the object form recorded \"[object Object]\" as the failure\n // reason in telemetry, discarding the actual error; `serializePayload`\n // passes strings through and JSON-encodes everything else.\n const nested = serializePayload(\n (toolResponse as Record<string, unknown>).error ?? (toolResponse as Record<string, unknown>).stderr,\n );\n if (nested !== undefined && nested.length > 0) {\n reason = nested;\n }\n } else {\n const fallback = getString(input, 'error', 'reason', 'message');\n if (fallback.length > 0) reason = fallback;\n }\n const errorPayload = serializePayload(reason);\n\n await sendBatchTrace([\n {\n traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime,\n status: 'running',\n spans: [\n {\n spanId: matchedSpanId,\n name: toolName,\n kind: 'tool',\n startTime: matchedSpanStart,\n endTime: now,\n status: 'error',\n ...(errorPayload !== undefined ? { output: errorPayload } : {}),\n },\n ],\n },\n ]);\n}\n",
41
+ "/**\n * v2 Hook Handlers — Turn Boundaries, Sub-agents, Compaction, Tool Failures\n *\n * Handles the 7 new Claude Code events (taxonomy v2):\n * UserPromptSubmit → emit turn span (kind: chain); push onto parentStack\n * Stop → pop chain span (NOT root); validates kind before pop\n * SubagentStart → emit agent span (kind: agent); push onto parentStack\n * SubagentStop → pop agent span; validates kind before pop\n * PreCompact → open custom span (kind: custom); push onto parentStack\n * PostCompact → pop + close the custom compaction span with summary in output\n * PostToolUseFailure → close matching open tool span with status: error\n *\n * Kind mapping to BE SpanKindSchema (strict 15-value enum):\n * turn spans → 'chain' (orchestration container)\n * compaction → 'custom' (non-standard observability event)\n * session root → 'agent'\n * subagents → 'agent'\n * tool calls → 'tool'\n */\n\nimport { randomUUID } from 'crypto';\nimport {\n readState,\n writeState,\n pushParent,\n popParent,\n peekParent,\n peekParentKind,\n} from './state.js';\nimport { sendBatchTrace } from './api.js';\nimport { readStdin, getString, serializePayload } from './handlers-core.js';\n\n// ============================================================================\n// Reason resolvers — pure, so the payload they build can be asserted\n// ============================================================================\n\n/**\n * The `stop_reason` a Stop payload carries, as text.\n *\n * Extracted as a pure function so it can be tested WITHOUT mocking the config\n * module or the network — `sendBatchTrace` reads credentials and a default\n * workspace/organization off the machine, so a test driving the whole handler\n * would pass or skip depending on whose laptop it ran on. `api.ts` extracted\n * `resolveTenancyHeaders` for the same reason.\n *\n * `serializePayload`, never `String()`: `stop_reason` is `unknown` off the hook\n * payload, and `String()` on a structured value yields the literal text\n * \"[object Object]\" — telemetry that looks like a reason and carries none.\n */\nexport function resolveStopReason(input: Record<string, unknown>): string | undefined {\n return getString(input, 'stop_reason', 'stopReason') || serializePayload(input.stop_reason);\n}\n\n/**\n * The failure reason a PostToolUseFailure payload carries, as text.\n *\n * Claude Code nests failure details inside `tool_response` and sends `error` as\n * EITHER a string or a structured object. The object form used to go through\n * `String()`, which recorded \"[object Object]\" as the reason and discarded the\n * actual error — a write path into telemetry emitting confident garbage.\n *\n * Falls back to top-level `error`/`reason`/`message` when `tool_response` is\n * absent or not an object, and to a fixed string when nothing is present.\n */\nexport function resolveToolFailureReason(input: Record<string, unknown>): string {\n const toolResponse = input.tool_response ?? input.toolResponse;\n if (typeof toolResponse === 'object' && toolResponse !== null) {\n const nested = serializePayload(\n (toolResponse as Record<string, unknown>).error ?? (toolResponse as Record<string, unknown>).stderr,\n );\n if (nested !== undefined && nested.length > 0) return nested;\n return 'Tool use failed';\n }\n const fallback = getString(input, 'error', 'reason', 'message');\n return fallback.length > 0 ? fallback : 'Tool use failed';\n}\n\n// ============================================================================\n// UserPromptSubmit — emit turn span; push onto parentStack\n// ============================================================================\n\nexport async function handleUserPromptSubmit(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId) ?? {\n traceId: `cc-${sessionId}`,\n sessionId,\n startTime: now,\n openSpans: {},\n parentStack: [],\n parentStackKinds: [],\n };\n\n const parentSpanId = peekParent(state);\n const turnSpanId = randomUUID();\n\n const prompt = input.prompt ?? input.message ?? input.text;\n const inputPayload = serializePayload(prompt ? { prompt } : undefined);\n\n pushParent(state, turnSpanId, 'chain');\n writeState(sessionId, state);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: turnSpanId,\n name: 'User turn',\n kind: 'chain',\n startTime: now,\n status: 'running',\n ...(inputPayload !== undefined ? { input: inputPayload } : {}),\n ...(parentSpanId !== null ? { parentSpanId } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// Stop — pop + close turn span (NOT root)\n// ============================================================================\n\nexport async function handleStop(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n if (!state) return;\n\n // Don't pop the root span (depth <= 1).\n if (state.parentStack.length <= 1) return;\n\n // Safety: only pop if the top is a chain (turn) span.\n // If top is 'agent' (subagent that didn't close), log a warning and skip.\n const topKind = peekParentKind(state);\n if (topKind !== 'chain') {\n process.stderr.write(\n `[mutagent hooks] Warning: Stop fired but stack top is kind=\"${topKind ?? 'unknown'}\" (expected \"chain\"). Skipping pop.\\n`\n );\n return;\n }\n\n const turnSpanId = popParent(state);\n writeState(sessionId, state);\n\n if (!turnSpanId) return;\n\n // Attach whatever the Stop payload can tell us: stop_reason, assistant response text.\n const stopReason = resolveStopReason(input);\n const assistantText =\n input.message ?? input.assistant_message ?? input.response ?? input.text;\n const outputValue = assistantText ?? (stopReason ? { stop_reason: stopReason } : undefined);\n const turnOutput = serializePayload(outputValue);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: turnSpanId,\n name: 'User turn',\n kind: 'chain',\n startTime: now,\n endTime: now,\n status: 'completed',\n parentSpanId: peekParent(state), // parent (root or outer agent) now at top\n ...(turnOutput !== undefined ? { output: turnOutput } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// SubagentStart — emit agent span; push onto parentStack\n// ============================================================================\n\nexport async function handleSubagentStart(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId) ?? {\n traceId: `cc-${sessionId}`,\n sessionId,\n startTime: now,\n openSpans: {},\n parentStack: [],\n parentStackKinds: [],\n };\n\n const parentSpanId = peekParent(state);\n const agentSpanId = randomUUID();\n\n const agentType = getString(input, 'agent_type', 'agentType') || 'subagent';\n const agentId = getString(input, 'agent_id', 'agentId');\n const agentName = agentId ? `${agentType}:${agentId}` : agentType;\n\n // Attach the subagent's initial prompt/task as span input when available.\n const promptValue =\n input.prompt ??\n input.message ??\n input.system_prompt ??\n input.task ??\n input.tool_response ??\n input.toolResponse;\n const agentInput = serializePayload(promptValue);\n\n pushParent(state, agentSpanId, 'agent');\n writeState(sessionId, state);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: agentSpanId,\n name: agentName,\n kind: 'agent',\n startTime: now,\n status: 'running',\n ...(parentSpanId !== null ? { parentSpanId } : {}),\n ...(agentInput !== undefined ? { input: agentInput } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// SubagentStop — pop + close subagent span\n// ============================================================================\n\nexport async function handleSubagentStop(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n if (!state) {\n process.stderr.write(\n `[mutagent hooks] Warning: SubagentStop received but no state found for session ${sessionId}\\n`\n );\n return;\n }\n\n if (state.parentStack.length <= 1) {\n process.stderr.write(\n `[mutagent hooks] Warning: SubagentStop with no matching SubagentStart in session ${sessionId}\\n`\n );\n return;\n }\n\n // Safety: only pop if the top is an agent span.\n const topKind = peekParentKind(state);\n if (topKind !== 'agent') {\n process.stderr.write(\n `[mutagent hooks] Warning: SubagentStop but stack top is kind=\"${topKind ?? 'unknown'}\" (expected \"agent\"). Skipping pop.\\n`\n );\n return;\n }\n\n const agentSpanId = popParent(state);\n const newParent = peekParent(state);\n writeState(sessionId, state);\n\n if (!agentSpanId) return;\n\n // Attach the subagent's final message/summary as span output when available.\n // Use the same tool_response / stop_reason field-sniff pattern as handleStop.\n const finalMessage =\n input.message ??\n input.assistant_message ??\n input.response ??\n input.tool_response ??\n input.toolResponse;\n const stopReason = getString(input, 'stop_reason', 'stopReason');\n const outputValue = finalMessage ?? (stopReason ? { stop_reason: stopReason } : undefined);\n const agentOutput = serializePayload(outputValue);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: agentSpanId,\n name: 'subagent',\n kind: 'agent',\n startTime: now,\n endTime: now,\n status: 'completed',\n ...(newParent !== null ? { parentSpanId: newParent } : {}),\n ...(agentOutput !== undefined ? { output: agentOutput } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// PreCompact — open compaction span (kind: custom); push onto parentStack\n// ============================================================================\n\nexport async function handlePreCompact(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId) ?? {\n traceId: `cc-${sessionId}`,\n sessionId,\n startTime: now,\n openSpans: {},\n parentStack: [],\n parentStackKinds: [],\n };\n\n const parentSpanId = peekParent(state);\n const compactSpanId = randomUUID();\n\n pushParent(state, compactSpanId, 'custom');\n writeState(sessionId, state);\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: compactSpanId,\n name: 'Compaction',\n kind: 'custom',\n startTime: now,\n status: 'running',\n ...(parentSpanId !== null ? { parentSpanId } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// PostCompact — pop + close compaction span (kind: custom) with summary in output\n// ============================================================================\n\nexport async function handlePostCompact(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n if (!state) {\n process.stderr.write(\n `[mutagent hooks] Warning: PostCompact received but no state found for session ${sessionId}\\n`\n );\n return;\n }\n\n if (state.parentStack.length <= 1) {\n process.stderr.write(\n `[mutagent hooks] Warning: PostCompact with no matching PreCompact in session ${sessionId}\\n`\n );\n return;\n }\n\n const compactSpanId = popParent(state);\n const newParent = peekParent(state);\n writeState(sessionId, state);\n\n if (!compactSpanId) return;\n\n const summary = input.summary ?? input.compaction_summary ?? input.compactionSummary;\n const outputPayload = serializePayload(summary ?? 'Context compacted');\n\n await sendBatchTrace([\n {\n traceId: state.traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime: state.startTime,\n status: 'running',\n spans: [\n {\n spanId: compactSpanId,\n name: 'Compaction',\n kind: 'custom',\n startTime: now,\n endTime: now,\n status: 'completed',\n ...(outputPayload !== undefined ? { output: outputPayload } : {}),\n ...(newParent !== null ? { parentSpanId: newParent } : {}),\n },\n ],\n },\n ]);\n}\n\n// ============================================================================\n// PostToolUseFailure — close matching open tool span with status: error\n// ============================================================================\n\nexport async function handlePostToolUseFailure(): Promise<void> {\n const input = await readStdin();\n const sessionId = getString(input, 'session_id', 'sessionId');\n const toolName = getString(input, 'tool_name', 'toolName') || 'unknown';\n if (!sessionId) throw new Error('Missing session_id in stdin');\n\n const now = new Date().toISOString();\n const state = readState(sessionId);\n if (!state) {\n process.stderr.write(\n `[mutagent hooks] Warning: PostToolUseFailure received but no state found for session ${sessionId}\\n`\n );\n return;\n }\n\n const traceId = state.traceId;\n const startTime = state.startTime;\n\n // Find matching open span by toolName (LIFO)\n let matchedSpanId: string | null = null;\n let matchedSpanStart: string = now;\n let matchedKey: string | null = null;\n\n const entries = Object.entries(state.openSpans);\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (entry && entry[1].toolName === toolName) {\n matchedSpanId = entry[1].spanId;\n matchedSpanStart = entry[1].startTime;\n matchedKey = entry[0];\n break;\n }\n }\n\n if (!matchedSpanId) {\n process.stderr.write(\n `[mutagent hooks] Warning: PostToolUseFailure — no matching open span for tool \"${toolName}\"\\n`\n );\n return;\n }\n\n state.openSpans = Object.fromEntries(\n Object.entries(state.openSpans).filter(([k]) => k !== matchedKey)\n );\n writeState(sessionId, state);\n\n const reason = resolveToolFailureReason(input);\n const errorPayload = serializePayload(reason);\n\n await sendBatchTrace([\n {\n traceId,\n sessionId,\n name: 'Claude Code Session',\n source: 'sdk',\n startTime,\n status: 'running',\n spans: [\n {\n spanId: matchedSpanId,\n name: toolName,\n kind: 'tool',\n startTime: matchedSpanStart,\n endTime: now,\n status: 'error',\n ...(errorPayload !== undefined ? { output: errorPayload } : {}),\n },\n ],\n },\n ]);\n}\n",
42
42
  "/**\n * Hooks Install — Manage Claude Code settings.local.json hook entries\n *\n * Manages 10 MutagenT hooks (v2):\n * SessionStart, Stop, PreToolUse, PostToolUse,\n * UserPromptSubmit, SubagentStart, SubagentStop,\n * PreCompact, PostCompact, PostToolUseFailure\n */\n\nimport { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';\nimport { join } from 'path';\n\n// ============================================================================\n// ParseError — thrown when settings.local.json contains invalid JSON\n// ============================================================================\n\nexport class SettingsParseError extends Error {\n constructor(\n public readonly settingsPath: string,\n public readonly backupPath: string,\n cause?: unknown,\n ) {\n super(\n `settings.local.json contains unparseable JSON.\\n` +\n ` Original file backed up to: ${backupPath}\\n` +\n ` To recover: restore from backup, fix JSON syntax, then re-run ` +\n `\\`mutagent hooks install\\``,\n );\n this.name = 'SettingsParseError';\n if (cause instanceof Error) this.cause = cause;\n }\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Shape of a single hook entry in .claude/settings.local.json */\nexport interface ClaudeHookEntry {\n type: string;\n command: string;\n}\n\nexport interface ClaudeHookMatcher {\n matcher?: string;\n hooks: ClaudeHookEntry[];\n}\n\nexport interface ClaudeSettingsHooks {\n SessionStart?: ClaudeHookMatcher[];\n Stop?: ClaudeHookMatcher[];\n SessionEnd?: ClaudeHookMatcher[];\n PreToolUse?: ClaudeHookMatcher[];\n PostToolUse?: ClaudeHookMatcher[];\n UserPromptSubmit?: ClaudeHookMatcher[];\n SubagentStart?: ClaudeHookMatcher[];\n SubagentStop?: ClaudeHookMatcher[];\n PreCompact?: ClaudeHookMatcher[];\n PostCompact?: ClaudeHookMatcher[];\n PostToolUseFailure?: ClaudeHookMatcher[];\n [key: string]: ClaudeHookMatcher[] | undefined;\n}\n\nexport interface ClaudeSettings {\n hooks?: ClaudeSettingsHooks;\n [key: string]: unknown;\n}\n\n// ============================================================================\n// v1 → v2 migration table\n// ============================================================================\n\n/**\n * Known v1 hook mappings that are WRONG in v2 and must be removed on install.\n * Key = Claude Code event name. Value = commands to remove from that event's matchers.\n *\n * v1 put session-end under Stop (which closes the turn in Claude Code's semantics).\n * v2 moves session-end to its own SessionEnd event (correct trace-closer).\n */\nconst V1_MIGRATIONS: Record<string, string[]> = {\n Stop: ['mutagent hooks claude-code session-end'],\n};\n\n// ============================================================================\n// Hook definitions (all 10 MutagenT hooks)\n// ============================================================================\n\n/** All 11 MutagenT hook entries we manage (v2).\n *\n * IMPORTANT — Stop vs SessionEnd:\n * Claude Code fires `Stop` when Claude finishes responding to a user turn.\n * This MUST close the turn span only, NOT the trace.\n * `SessionEnd` is a separate Claude Code event that fires when the session\n * actually terminates — that's what closes the trace.\n */\nconst MUTAGENT_HOOKS: ClaudeSettingsHooks = {\n // Original hooks\n SessionStart: [{ matcher: 'startup', hooks: [{ type: 'command', command: 'mutagent hooks claude-code session-start' }] }],\n PreToolUse: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code pre-tool-use' }] }],\n PostToolUse: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code post-tool-use' }] }],\n // Stop closes the TURN span (per-message), not the trace\n Stop: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code stop' }] }],\n // SessionEnd closes the entire trace (session terminates)\n SessionEnd: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code session-end' }] }],\n // v2 hooks\n UserPromptSubmit: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code user-prompt-submit' }] }],\n SubagentStart: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code subagent-start' }] }],\n SubagentStop: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code subagent-stop' }] }],\n PreCompact: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code pre-compact' }] }],\n PostCompact: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code post-compact' }] }],\n PostToolUseFailure: [{ hooks: [{ type: 'command', command: 'mutagent hooks claude-code post-tool-use-failure' }] }],\n};\n\n// ============================================================================\n// Install helpers\n// ============================================================================\n\n/**\n * Check whether a MutagenT command is already present in a matchers array.\n * Deduplication is done by command string.\n */\nexport function hasCommand(matchers: ClaudeHookMatcher[], command: string): boolean {\n return matchers.some(m => m.hooks.some(h => h.command === command));\n}\n\n/**\n * Deep-merge MutagenT hooks into an existing settings object.\n * Adds only entries not already present (checked by command string).\n * Mutates and returns the settings object.\n */\nexport function mergeHooksIntoSettings(settings: ClaudeSettings): ClaudeSettings {\n settings.hooks ??= {};\n\n for (const [event, newMatchers] of Object.entries(MUTAGENT_HOOKS)) {\n if (!newMatchers) continue;\n\n settings.hooks[event] ??= [];\n const existing = settings.hooks[event];\n\n for (const matcher of newMatchers) {\n for (const hook of matcher.hooks) {\n if (!hasCommand(existing, hook.command)) {\n const newMatcher: ClaudeHookMatcher = {\n ...(matcher.matcher !== undefined ? { matcher: matcher.matcher } : {}),\n hooks: [hook],\n };\n existing.push(newMatcher);\n }\n }\n }\n }\n\n return settings;\n}\n\n/**\n * Remove known-wrong v1 hook mappings from a settings object.\n * Scans V1_MIGRATIONS and strips matching commands from their event matchers.\n * Preserves all other hooks in the same event (including custom user hooks).\n * Returns a list of what was removed so callers can warn the user.\n */\nexport function migrateV1Hooks(settings: ClaudeSettings): {event: string; command: string}[] {\n const migrated: {event: string; command: string}[] = [];\n if (!settings.hooks) return migrated;\n\n for (const [event, commandsToRemove] of Object.entries(V1_MIGRATIONS)) {\n const matchers = settings.hooks[event];\n if (!matchers) continue;\n\n const filtered = matchers\n .map((matcher) => {\n const keptHooks = matcher.hooks.filter((h) => {\n if (commandsToRemove.includes(h.command)) {\n migrated.push({ event, command: h.command });\n return false;\n }\n return true;\n });\n return keptHooks.length > 0 ? { ...matcher, hooks: keptHooks } : null;\n })\n .filter(Boolean) as ClaudeHookMatcher[];\n\n if (filtered.length === 0) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete settings.hooks[event];\n } else {\n settings.hooks[event] = filtered;\n }\n }\n return migrated;\n}\n\n/**\n * Install MutagenT hooks into .claude/settings.local.json (cwd-relative).\n * Returns a summary of what happened.\n *\n * Throws `SettingsParseError` if the existing settings file contains invalid\n * JSON. In that case the original file is backed up to\n * `<settingsPath>.bak.<ISO-timestamp>` BEFORE any write, so the operator can\n * recover. The error message names the backup path and suggests a fix.\n *\n * When the installer actually modifies the file (adds hooks), a `userWarning`\n * string is returned. Callers should surface this to the user:\n * - human mode: write to stderr\n * - --json mode: include as `warnings: [string]` in the response\n */\nexport function installHooks(cwd: string): {\n settingsPath: string;\n existed: boolean;\n added: string[];\n alreadyPresent: string[];\n migrated: {event: string; command: string}[];\n userWarning?: string;\n} {\n const claudeDir = join(cwd, '.claude');\n const settingsPath = join(claudeDir, 'settings.local.json');\n const existed = existsSync(settingsPath);\n\n let settings: ClaudeSettings = {};\n if (existed) {\n const raw = readFileSync(settingsPath, 'utf-8');\n try {\n settings = JSON.parse(raw) as ClaudeSettings;\n } catch (err) {\n // Back up the unparseable file before aborting\n const backupPath = `${settingsPath}.bak.${new Date().toISOString().replace(/:/g, '-')}`;\n writeFileSync(backupPath, raw, 'utf-8');\n throw new SettingsParseError(settingsPath, backupPath, err);\n }\n }\n\n const added: string[] = [];\n const alreadyPresent: string[] = [];\n\n // Migrate v1 hooks before merging v2\n const migrated = migrateV1Hooks(settings);\n\n for (const [event, newMatchers] of Object.entries(MUTAGENT_HOOKS)) {\n if (!newMatchers) continue;\n settings.hooks ??= {};\n settings.hooks[event] ??= [];\n const existing = settings.hooks[event];\n\n for (const matcher of newMatchers) {\n for (const hook of matcher.hooks) {\n if (hasCommand(existing, hook.command)) {\n alreadyPresent.push(hook.command);\n } else {\n const newMatcher: ClaudeHookMatcher = {\n ...(matcher.matcher !== undefined ? { matcher: matcher.matcher } : {}),\n hooks: [hook],\n };\n existing.push(newMatcher);\n added.push(hook.command);\n }\n }\n }\n }\n\n let userWarning: string | undefined;\n\n if (added.length > 0 || migrated.length > 0) {\n if (!existsSync(claudeDir)) {\n mkdirSync(claudeDir, { recursive: true });\n }\n writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\\n', 'utf-8');\n }\n\n // Surface a user-visible warning when the file was actually modified (not a no-op run)\n if (added.length > 0) {\n const addedList = added.map(cmd => {\n // Extract the subcommand suffix (e.g. 'session-start') for a shorter display\n const parts = cmd.split(' ');\n return parts[parts.length - 1] ?? cmd;\n }).join(', ');\n userWarning =\n `Mutagent hooks installed into .claude/settings.local.json\\n` +\n ` Added: ${addedList}\\n` +\n ` This file was modified. Review with: git diff .claude/settings.local.json\\n` +\n ` (To remove hooks, edit .claude/settings.local.json and delete the mutagent entries)`;\n }\n\n return { settingsPath, existed, added, alreadyPresent, migrated, userWarning };\n}\n",
43
43
  "import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { type as osType, release as osRelease } from 'os';\nimport { readFileSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\nimport { OutputFormatter, getJsonFlag } from '../lib/output.js';\nimport { MutagentError, handleError } from '../lib/errors.js';\nimport { getApiKey, loadConfig } from '../lib/config.js';\nimport { resolveTranscript, TAIL_BYTES, type TranscriptResult } from '../lib/transcript.js';\nimport {\n sanitizeTranscript,\n buildPreview,\n buildTranscriptWarning,\n buildRedactionReport,\n buildByDesignNotice,\n findByDesignMatches,\n} from '../lib/feedback-safety.js';\n\n/** Maximum feedback body length (server validates message 1..10000). */\nconst MAX_FEEDBACK_LENGTH = 10000;\n\n/** Valid lifecycle stages for the `stage:<x>` category form. */\nconst VALID_STAGES = ['spec', 'build', 'evaluate', 'diagnose', 'optimize'] as const;\n\n/**\n * Auto-collected environment metadata attached to every feedback payload.\n * NOT typed by the user — the CLI derives every field.\n */\ninterface AutoContext {\n harness: string;\n cliVersion: string;\n platform: string;\n os: string;\n nodeVersion: string;\n}\n\n/** The `feedbackV2` block carried inside the server-side `context` passthrough. */\ninterface FeedbackV2 {\n title?: string;\n category: string;\n feedback: string;\n context: AutoContext;\n transcript?: TranscriptResult;\n}\n\n/**\n * The POST body sent to `${endpoint}/api/feedback`.\n *\n * CRITICAL: there is intentionally NO top-level `category`. The server's\n * `category` field is enum-restricted to bug|feature|improvement|praise, which\n * cannot represent the new cli/helix/stage:* taxonomy. Since the server field is\n * optional, we OMIT it entirely and carry the new category inside\n * `context.feedbackV2.category` (context is `additionalProperties: true`).\n *\n * `sessionId` DOES map to the server's top-level optional `sessionId` column\n * (`CreateFeedbackSchema.sessionId`) — it is session linkage, NOT part of the\n * feedbackV2 envelope. Omitted entirely when `--session` is not passed.\n */\ninterface FeedbackPayload {\n message: string;\n sessionId?: string;\n context: { feedbackV2: FeedbackV2 };\n}\n\n/** Raw option shape parsed by Commander for `feedback send`. */\ninterface SendOptions {\n title?: string;\n category: string;\n session?: string;\n attachTranscript?: string | boolean;\n}\n\n/**\n * Read the CLI version from package.json. Falls back to env var or a default.\n */\nfunction getCliVersion(): string {\n if (process.env.CLI_VERSION) return process.env.CLI_VERSION;\n try {\n const __dirname = dirname(fileURLToPath(import.meta.url));\n const pkgPath = join(__dirname, '..', '..', 'package.json');\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8')) as { version?: string };\n return pkg.version ?? '0.1.1';\n } catch {\n return '0.1.1';\n }\n}\n\n/**\n * Validate and normalise the `--category` value.\n *\n * Accepts exactly `cli`, exactly `helix`, or `stage:<x>` where `<x>` is one of\n * the five lifecycle stages. Any other value throws INVALID_ARGUMENTS.\n *\n * Exported as a pure function for unit testing.\n */\nexport function parseCategory(input: string): { category: string } {\n if (input === 'cli' || input === 'helix') return { category: input };\n\n if (input.startsWith('stage:')) {\n const stage = input.slice('stage:'.length);\n if ((VALID_STAGES as readonly string[]).includes(stage)) {\n return { category: input };\n }\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `Invalid stage: \"${stage}\". Must be one of: ${VALID_STAGES.join(', ')}.`,\n `Use --category stage:<${VALID_STAGES.join('|')}> (e.g. --category stage:evaluate).`,\n );\n }\n\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `Invalid category: \"${input}\". Must be 'cli', 'helix', or 'stage:<${VALID_STAGES.join('|')}>'.`,\n 'Run: mutagent feedback send --help',\n );\n}\n\n/**\n * Build the auto-collected environment context. `harness` mirrors the detected\n * transcript's harness, or 'unknown' when no transcript was attached.\n */\nfunction buildAutoContext(harness: string): AutoContext {\n return {\n harness,\n cliVersion: getCliVersion(),\n platform: process.platform,\n os: `${osType()} ${osRelease()}`,\n nodeVersion: process.version,\n };\n}\n\n/**\n * POST feedback to the server. Returns the server response or throws on failure.\n */\nasync function postToServer(\n payload: FeedbackPayload,\n endpoint: string,\n apiKey: string,\n workspaceId?: string,\n organizationId?: string,\n): Promise<{ id: string; status: string }> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n };\n if (workspaceId) headers['x-workspace-id'] = workspaceId;\n if (organizationId) headers['x-organization-id'] = organizationId;\n\n let response: Response;\n try {\n response = await fetch(`${endpoint}/api/feedback`, {\n method: 'POST',\n headers,\n body: JSON.stringify(payload),\n });\n } catch {\n throw new MutagentError(\n 'SERVER_UNAVAILABLE',\n 'Server unavailable. Try again later.',\n 'Check your network connection or verify the server endpoint with: mutagent config show',\n );\n }\n\n if (response.ok) {\n return (await response.json()) as { id: string; status: string };\n }\n\n let errorMessage = `Server returned ${String(response.status)}`;\n try {\n const body = (await response.json()) as { message?: string; error?: string };\n errorMessage = body.message ?? body.error ?? errorMessage;\n } catch {\n // Could not parse JSON error body\n }\n\n if (response.status === 401) {\n throw new MutagentError(\n 'AUTH_REQUIRED',\n errorMessage,\n 'Authenticate first: mutagent auth login',\n );\n }\n\n throw new MutagentError(\n 'API_ERROR',\n errorMessage,\n `Server responded with status ${String(response.status)}. Check your configuration with: mutagent config show`,\n );\n}\n\n/**\n * Assemble the POST body. Pure/synchronous so it can be reasoned about in isolation.\n * Omits `title` when absent and `transcript` when null; NEVER sets a top-level category.\n */\nfunction buildPayload(\n feedback: string,\n category: string,\n title: string | undefined,\n session: string | undefined,\n transcript: TranscriptResult | null,\n): FeedbackPayload {\n const feedbackV2: FeedbackV2 = {\n category,\n feedback,\n context: buildAutoContext(transcript?.harness ?? 'unknown'),\n };\n if (title) feedbackV2.title = title;\n if (transcript) feedbackV2.transcript = transcript;\n\n const payload: FeedbackPayload = { message: feedback, context: { feedbackV2 } };\n if (session) payload.sessionId = session;\n return payload;\n}\n\n/**\n * Create the top-level `feedback` command.\n *\n * Commands:\n * mutagent feedback send <feedback> [--title <s>]\n * [--category cli|helix|stage:<spec|build|evaluate|diagnose|optimize>]\n * [--attach-transcript [path]] [--json]\n */\nexport function createFeedbackCommand(): Command {\n const feedback = new Command('feedback')\n .description('Send product feedback to Mutagent')\n .addHelpText('after', `\n${chalk.bold('Examples:')}\n ${chalk.cyan('mutagent feedback send \"Optimizer results were great\"')}\n ${chalk.cyan('mutagent feedback send \"Eval gate was confusing\" --category stage:evaluate')}\n ${chalk.cyan('mutagent feedback send \"CLI crashed on export\" --category cli --json')}\n\n${chalk.yellow('AI Agent (MANDATORY):')}\n ALWAYS use --json: mutagent feedback send \"...\" --category cli --json\n ${chalk.yellow('Do NOT attach a transcript by default.')} --attach-transcript uploads the\n coding-agent SESSION JSONL — source code, absolute paths, branch and repository\n names, internal hostnames, and the business context of the operator's prompts.\n Use it only when the operator explicitly asks for it. See:\n ${chalk.dim('mutagent feedback send --help')}\n `)\n .action(() => {\n feedback.help();\n });\n\n registerFeedbackSend(feedback);\n\n return feedback;\n}\n\nfunction registerFeedbackSend(feedback: Command): void {\n feedback\n .command('send')\n .description('Send product feedback about the Mutagent platform or CLI')\n .argument('<feedback>', 'The feedback body (content), max 10000 characters')\n .option('--title <string>', 'Optional 5–8 word summary of the session timeline')\n .option(\n '--category <value>',\n `Feedback category: 'cli', 'helix', or 'stage:<${VALID_STAGES.join('|')}>'`,\n 'cli',\n )\n .option('--session <id>', 'Link this feedback to a session id (maps to server sessionId)')\n .option(\n '--attach-transcript [path]',\n 'Attach the coding-agent session JSONL. Bare = auto-detect newest; or pass an explicit path.',\n )\n .addHelpText('after', `\n${chalk.bold('Arguments & flags:')}\n ${chalk.bold('<feedback>')} Feedback body / content (required, ≤10000 chars)\n ${chalk.bold('--title <string>')} Optional 5–8 word summary of the session timeline\n ${chalk.bold('--category <value>')} ${chalk.bold('cli')} (default) | ${chalk.bold('helix')} | ${chalk.bold('stage:<')}${VALID_STAGES.join('|')}${chalk.bold('>')}\n ${chalk.dim('stage = the lifecycle skill (evaluator/diagnostics live under stage:*)')}\n ${chalk.bold('--session <id>')} Link feedback to a session id (server sessionId)\n ${chalk.bold('--attach-transcript')} ${chalk.dim('[path]')} Attach the coding-agent session JSONL (bare = auto-detect newest)\n ${chalk.bold('--json')} Structured output (MANDATORY for AI agents)\n\n${chalk.bold('Examples:')}\n ${chalk.dim('$')} mutagent feedback send \"The setup flow could show progress better\"\n ${chalk.dim('$')} mutagent feedback send \"Eval gate was confusing\" --category stage:evaluate --title \"eval gate unclear\"\n ${chalk.dim('$')} mutagent feedback send \"Diagnose loop stalled\" --category stage:diagnose --session sess_abc123 --json\n ${chalk.dim('$')} mutagent feedback send \"CLI crashed mid-run\" --category cli --attach-transcript --json\n ${chalk.dim('$')} mutagent feedback send \"Repro attached\" --category cli --attach-transcript /tmp/session.jsonl\n\n${chalk.bold('Category:')}\n ${chalk.bold('cli')} Feedback about the CLI itself (default)\n ${chalk.bold('helix')} Feedback about Helix\n ${chalk.bold('stage:<x>')} Feedback about a lifecycle stage: ${VALID_STAGES.join(', ')}\n\n${chalk.bold('Transcript (--attach-transcript):')}\n Uploads your coding-agent SESSION JSONL as context (raw last-200KB tail) — a\n SEPARATE artifact from the feedback body. Bare flag auto-detects the newest\n session across claude-code, codex, and omp; explicit path overrides.\n\n ${chalk.yellow('A session transcript contains source code, absolute paths (including your')}\n ${chalk.yellow('username), branch and repository names, internal hostnames, and the business')}\n ${chalk.yellow('context of your prompts.')} Credentials are scanned for and redacted before\n upload, and the exact size + source path are printed before the network call.\n Detection is best-effort — omit the flag if the session handled secrets.\n\n${chalk.yellow('AI Agent (MANDATORY):')}\n ALWAYS use --json: mutagent feedback send \"...\" --json\n Auto-captured context (harness, CLI version, platform, OS, node version) is included automatically.\n `)\n .action(async (feedbackBody: string, options: SendOptions) => {\n const isJson = getJsonFlag(feedback);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // Validate feedback length (server enforces 1..10000).\n if (feedbackBody.length > MAX_FEEDBACK_LENGTH) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `Feedback exceeds ${String(MAX_FEEDBACK_LENGTH)} characters (${String(feedbackBody.length)}).`,\n 'Shorten the message.',\n );\n }\n\n // Validate + normalise category (throws INVALID_ARGUMENTS on bad input).\n const { category } = parseCategory(options.category);\n\n // Require authentication.\n const apiKey = getApiKey();\n if (!apiKey) {\n throw new MutagentError(\n 'AUTH_REQUIRED',\n 'Authentication required to send feedback.',\n 'Authenticate first: mutagent auth login\\nOr set an API key: mutagent config set apiKey <key>',\n );\n }\n\n // Known-intentional behaviour matching this draft. Surfaced, never\n // enforced — the send proceeds either way (see lib/by-design.ts).\n const byDesign = findByDesignMatches(feedbackBody);\n if (byDesign.length > 0 && !isJson) {\n console.log(buildByDesignNotice(byDesign));\n }\n\n // Resolve the transcript artifact (null when --attach-transcript not passed;\n // warns-and-continues when a bare flag finds nothing).\n const rawTranscript = resolveTranscript(options.attachTranscript);\n\n // Content inspection before ANY network call. lib/transcript.ts caps the\n // byte count; it performs no inspection, so this is where credentials\n // are caught and the user is told what a session actually contains.\n let transcript: TranscriptResult | null = null;\n let redactions: ReturnType<typeof sanitizeTranscript>['redactions'] = [];\n if (rawTranscript) {\n const safe = sanitizeTranscript(rawTranscript);\n transcript = safe.transcript;\n redactions = safe.redactions;\n\n const preview = buildPreview(transcript);\n if (!isJson) {\n console.log(buildTranscriptWarning(preview));\n const report = buildRedactionReport(redactions);\n if (report) console.log(report);\n console.log('');\n }\n }\n\n const payload = buildPayload(feedbackBody, category, options.title, options.session, transcript);\n\n const config = loadConfig();\n const endpoint = config.endpoint ?? 'https://api.mutagent.io';\n const result = await postToServer(\n payload,\n endpoint,\n apiKey,\n config.defaultWorkspace,\n config.defaultOrganization,\n );\n\n if (isJson) {\n output.output({\n success: true,\n id: result.id,\n category,\n title: options.title,\n sessionId: options.session,\n transcriptAttached: transcript !== null,\n // Agents need the same disclosure a human gets on stdout.\n ...(transcript\n ? {\n transcriptBytes: Buffer.byteLength(transcript.content, 'utf-8'),\n transcriptSource: transcript.sourcePath,\n redactions: redactions.map((r) => ({ kind: r.kind, line: r.line })),\n }\n : {}),\n ...(byDesign.length > 0\n ? {\n // Informational only — the feedback above was submitted.\n byDesignMatches: byDesign.map((e) => ({\n id: e.id,\n title: e.title,\n reality: e.reality,\n })),\n }\n : {}),\n _links: {\n send: 'mutagent feedback send <feedback> [--title <s>] [--category cli|helix|stage:<x>] [--session <id>] [--attach-transcript [path]]',\n },\n });\n } else {\n // Report the bytes ACTUALLY sent, not TAIL_BYTES — that constant is the\n // cap, so a 0.3 KB transcript used to be announced as \"200000B tail\",\n // contradicting the \"1 file, 0.3 KB\" disclosure printed two lines above.\n // Of the two numbers, the wrong one was the one a user would quote back.\n const suffix = transcript\n ? ` + transcript (${String(Buffer.byteLength(transcript.content, 'utf-8'))}B${transcript.truncated ? ` tail, truncated at ${String(TAIL_BYTES)}B cap` : ''})`\n : '';\n output.success(`Feedback sent! (${category})${suffix}`);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n",
44
44
  "/**\n * Coding-agent transcript resolution for `mutagent feedback send --attach-transcript`.\n *\n * The transcript is the coding-agent SESSION JSONL — a SEPARATE artifact from the\n * feedback body. It is uploaded raw (last-N-bytes tail only, NO client-side\n * summarization) so the product team can reconstruct the session that produced\n * the feedback.\n *\n * Resolution modes (driven by the Commander optional-value option `--attach-transcript [path]`):\n * undefined / false → flag NOT passed → returns null (no transcript, no warning)\n * string (a path) → explicit path → tail that file (throws if missing)\n * true (bare flag) → auto-detect newest-by-mtime *.jsonl across the known harness globs\n *\n * All external effects (fs, os, glob, stderr) are injectable via `deps` so the\n * resolver is unit-testable without touching the real filesystem or network.\n */\n\nimport { homedir as osHomedir } from 'os';\nimport { join } from 'path';\nimport {\n existsSync as fsExistsSync,\n statSync as fsStatSync,\n readFileSync,\n readdirSync,\n openSync,\n readSync,\n closeSync,\n type Dirent,\n} from 'fs';\nimport chalk from 'chalk';\nimport { MutagentError } from './errors.js';\n\n/** Fixed tail size: only the last 200 000 bytes of a transcript are uploaded. */\nexport const TAIL_BYTES = 200000;\n\n/**\n * A resolved transcript artifact, ready to embed under context.feedbackV2.transcript.\n * `content` is the raw utf-8 tail (byte-length ≤ TAIL_BYTES). `truncated` is true\n * when the source file was larger than TAIL_BYTES (i.e. content is a tail, not the whole file).\n */\nexport interface TranscriptResult {\n harness: string;\n sourcePath: string;\n tailBytes: number;\n truncated: boolean;\n content: string;\n}\n\n/** A harness source: a directory root to scan recursively for *.jsonl. */\ninterface TranscriptSource {\n harness: string;\n dir: string;\n}\n\n/**\n * Injectable dependencies. All default to real implementations; tests override\n * the pieces they need (typically `env` + `homedir`, or `scan`/`readTail` for\n * pure unit tests).\n */\nexport interface TranscriptDeps {\n env?: Record<string, string | undefined>;\n homedir?: () => string;\n existsSync?: (p: string) => boolean;\n statSync?: (p: string) => { mtimeMs: number; size: number };\n scan?: (dir: string) => string[];\n readTail?: (p: string, tailBytes: number) => { content: string; truncated: boolean };\n warn?: (message: string) => void;\n}\n\n/**\n * Read only the LAST `tailBytes` bytes of a file (utf-8). Reads the whole file\n * when it is already within the cap; otherwise seeks to the tail so we never\n * pull a multi-megabyte session into memory.\n */\nfunction defaultReadTail(path: string, tailBytes: number): { content: string; truncated: boolean } {\n const { size } = fsStatSync(path);\n if (size <= tailBytes) {\n return { content: readFileSync(path, 'utf-8'), truncated: false };\n }\n const fd = openSync(path, 'r');\n try {\n const buf = Buffer.alloc(tailBytes);\n readSync(fd, buf, 0, tailBytes, size - tailBytes);\n return { content: buf.toString('utf-8'), truncated: true };\n } finally {\n closeSync(fd);\n }\n}\n\n/**\n * Default scan: recursively collect every `*.jsonl` under `dir`, returning\n * absolute paths. Missing/unreadable directory → empty list (not an error).\n */\nfunction defaultScan(dir: string): string[] {\n if (!fsExistsSync(dir)) return [];\n const out: string[] = [];\n const walk = (current: string): void => {\n let entries: Dirent[];\n try {\n entries = readdirSync(current, { withFileTypes: true });\n } catch {\n return; // unreadable dir — skip\n }\n for (const entry of entries) {\n const full = join(current, entry.name);\n if (entry.isDirectory()) walk(full);\n else if (entry.isFile() && entry.name.endsWith('.jsonl')) out.push(full);\n }\n };\n walk(dir);\n return out;\n}\n\n/**\n * Build the ordered list of auto-detect sources. The omp base honours\n * `PI_CODING_AGENT_DIR` (falling back to `~/.omp/agent`), matching the OMP\n * harness convention.\n */\nfunction buildSources(env: Record<string, string | undefined>, home: string): TranscriptSource[] {\n const ompBase = env.PI_CODING_AGENT_DIR ?? join(home, '.omp', 'agent');\n return [\n { harness: 'claude-code', dir: join(home, '.claude', 'projects') },\n { harness: 'codex', dir: join(home, '.codex', 'sessions') },\n { harness: 'omp', dir: join(ompBase, 'sessions') },\n ];\n}\n\n/**\n * Resolve the `--attach-transcript` value to a transcript artifact (or null).\n *\n * @param attach The Commander option value: `undefined`/`false` (not passed),\n * a non-empty `string` (explicit path), or `true` (bare flag → auto-detect).\n * @param deps Injectable effects for testing.\n * @returns The resolved transcript, or `null` when there is nothing to attach.\n * @throws MutagentError('INVALID_ARGUMENTS') when an explicit path does not exist.\n */\nexport function resolveTranscript(\n attach: string | boolean | undefined,\n deps: TranscriptDeps = {},\n): TranscriptResult | null {\n const env = deps.env ?? process.env;\n const home = (deps.homedir ?? osHomedir)();\n const existsSync = deps.existsSync ?? fsExistsSync;\n const statSync = deps.statSync ?? fsStatSync;\n const scan = deps.scan ?? defaultScan;\n const readTail = deps.readTail ?? defaultReadTail;\n const warn = deps.warn ?? ((message: string): void => { console.error(message); });\n\n // Flag not passed → nothing to do, no warning.\n if (attach === undefined || attach === false) return null;\n\n // Explicit path → tail that specific file.\n if (typeof attach === 'string' && attach.length > 0) {\n if (!existsSync(attach)) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `Transcript file not found: ${attach}`,\n `Verify the path exists: ls -la \"${attach}\"\\nOr omit the path to auto-detect the newest coding-agent session.`,\n );\n }\n const { content, truncated } = readTail(attach, TAIL_BYTES);\n return { harness: 'unknown', sourcePath: attach, tailBytes: TAIL_BYTES, truncated, content };\n }\n\n // Bare flag → auto-detect the newest-by-mtime *.jsonl across the harness globs.\n let newest: { harness: string; path: string; mtimeMs: number } | null = null;\n for (const src of buildSources(env, home)) {\n for (const file of scan(src.dir)) {\n const { mtimeMs } = statSync(file);\n if (!newest || mtimeMs > newest.mtimeMs) {\n newest = { harness: src.harness, path: file, mtimeMs };\n }\n }\n }\n\n if (!newest) {\n warn(chalk.yellow('⚠ No coding-agent transcript found; sending feedback without one.'));\n return null;\n }\n\n const { content, truncated } = readTail(newest.path, TAIL_BYTES);\n return {\n harness: newest.harness,\n sourcePath: newest.path,\n tailBytes: TAIL_BYTES,\n truncated,\n content,\n };\n}\n",
@@ -57,11 +57,11 @@
57
57
  "/**\n * The attach loop: consume a sandbox event stream and render it as if the\n * process were running locally.\n *\n * Three things here are not incidental:\n *\n * 1. **stdout goes to stdout, stderr goes to stderr.** Anything the CLI itself\n * says — \"attached\", \"reconnecting\", \"detached\" — goes to stderr, so\n * `mutagent helix attach <id> > out.txt` captures the session's output and\n * nothing else. A status line mixed into stdout silently corrupts every\n * downstream pipe.\n *\n * 2. **A dropped connection is resumed, not restarted.** Reconnect carries\n * `?since=<last seq seen>`, because a reconnect without it replays from the\n * beginning and the user reads the same output twice with no way to tell.\n *\n * 3. **A gap is announced.** `seq` is monotonic from 1, so a resumed stream\n * whose first event skips ahead proves output was lost. Printing the\n * remainder as though it were continuous would be a quiet lie about what\n * the agent did — worse than the gap itself.\n *\n * The transport is injected (`open`) rather than imported, so the reconnect,\n * backoff and gap paths are testable without a network and without mocking a\n * module registry — which in this package leaks across files (HR-12).\n */\n\nimport { readSseEvents } from './sse.js';\nimport {\n parseErrorPayload,\n parseOutputPayload,\n parseSandboxResultPayload,\n parseSandboxRunPayload,\n parseStatusPayload,\n type SandboxResultPayload,\n type SandboxRunPayload,\n} from './sandbox-api.js';\nimport { MutagentError } from './errors.js';\n\n/** Where rendered output goes. Implemented by the command layer. */\nexport interface StreamSink {\n /** Sandbox stdout — verbatim, no added newlines. */\n stdout: (text: string, seq: number) => void;\n /** Sandbox stderr — verbatim. */\n stderr: (text: string, seq: number) => void;\n /** The CLI's own commentary. Always a side channel, never stdout. */\n notice: (line: string) => void;\n}\n\n/** Opens one stream connection. Called again per reconnect. */\nexport type StreamOpener = (options: {\n since?: number;\n signal: AbortSignal;\n}) => Promise<ReadableStream<Uint8Array>>;\n\nexport interface RetryPolicy {\n /** Reconnect attempts before giving up. */\n attempts: number;\n /** First backoff step; doubles per attempt. */\n baseDelayMs: number;\n}\n\nexport const DEFAULT_RETRY: RetryPolicy = { attempts: 3, baseDelayMs: 500 };\n\n/** How the session ended. */\nexport type SessionEnd = 'exited' | 'detached';\n\n/**\n * What happens to the sandbox when THIS connection goes away.\n *\n * 'survives' — `attach` and `exec --sandbox`: the box outlives the terminal, so\n * Ctrl-C is a detach and `--since` picks the session back up. This is the\n * default because it is what every caller before the one-shot stream did.\n * 'released' — the one-shot streaming run: the server owns the box's whole life\n * and releases it the moment this connection drops. Telling the user it is\n * \"still running\" would be false, and offering a `--since` re-attach would\n * point at a sandbox that no longer exists.\n */\nexport type DisconnectBehaviour = 'survives' | 'released';\n\nexport interface SessionResult {\n end: SessionEnd;\n /** Highest sequence number seen — the resume point for a re-attach. */\n lastSeq: number;\n /** Process exit code, when the server reported one. */\n exitCode: number | null;\n reconnects: number;\n /** Discontinuities detected. Non-zero means output was lost. */\n gaps: number;\n /** One-shot streams only: which box this run created, from the opening frame. */\n sandbox?: SandboxRunPayload;\n /** One-shot streams only: the terminal report, including whether the box is gone. */\n result?: SandboxResultPayload;\n}\n\nexport interface RunSessionOptions {\n open: StreamOpener;\n sink: StreamSink;\n /** Resume point supplied by the caller (`--since`). */\n since?: number;\n /** Aborted on Ctrl-C. Abort means detach, never destroy. */\n signal: AbortSignal;\n retry?: RetryPolicy;\n /**\n * What a lost connection means for the sandbox. Default `'survives'`.\n *\n * It changes only the ADVICE given when reconnection is exhausted, and that\n * advice is the whole point: \"the sandbox is still running, resume with\n * --since\" is actively wrong for a one-shot, whose box the server has already\n * released. Wrong recovery advice is worse than none.\n */\n onDisconnect?: DisconnectBehaviour;\n /**\n * Called the moment the stream names its sandbox.\n *\n * A callback AS WELL AS `SessionResult.sandbox`, because the id is most needed\n * exactly when there is no `SessionResult` to read it from — a run that throws\n * still created a box, and the caller needs to be able to say which one.\n */\n onSandbox?: (sandbox: SandboxRunPayload) => void;\n /** Injected for tests; production uses a real timer. */\n sleep?: (ms: number, signal: AbortSignal) => Promise<void>;\n}\n\n/**\n * Consume the stream until the sandbox process exits, the caller detaches, or\n * reconnection is exhausted (which throws).\n */\nexport async function runStreamSession(options: RunSessionOptions): Promise<SessionResult> {\n const retry = options.retry ?? DEFAULT_RETRY;\n const sleep = options.sleep ?? delay;\n const { sink, signal } = options;\n\n const onDisconnect = options.onDisconnect ?? 'survives';\n\n let lastSeq = options.since ?? 0;\n let exitCode: number | null = null;\n let reconnects = 0;\n let gaps = 0;\n let attempt = 0;\n let sandbox: SandboxRunPayload | undefined;\n let result: SandboxResultPayload | undefined;\n\n const outcome = (end: SessionEnd): SessionResult => ({\n end,\n lastSeq,\n exitCode,\n reconnects,\n gaps,\n ...(sandbox === undefined ? {} : { sandbox }),\n ...(result === undefined ? {} : { result }),\n });\n const detached = (): SessionResult => outcome('detached');\n // Read through a call, not the property. `signal.aborted` is checked at the\n // top of the loop and again after every await; flow analysis narrows the\n // property to `false` for the rest of the block and flags each later check as\n // dead — but the value changes DURING those awaits, which is the entire point.\n const isAborted = (): boolean => signal.aborted;\n\n for (;;) {\n if (isAborted()) return detached();\n\n let stream: ReadableStream<Uint8Array>;\n try {\n stream = await options.open({ since: lastSeq > 0 ? lastSeq : undefined, signal });\n } catch (error) {\n if (isAborted()) return detached();\n // A failure to CONNECT on the very first attempt is not a dropped\n // connection — it is \"this sandbox stream is not available\", and\n // retrying it three times only delays a message the user needs now.\n if (reconnects === 0 && attempt === 0) throw error;\n attempt += 1;\n if (attempt > retry.attempts) throw exhausted(lastSeq, error, onDisconnect);\n reconnects += 1;\n sink.notice(reconnectNotice(attempt, retry.attempts, lastSeq));\n await sleep(backoffMs(retry.baseDelayMs, attempt), signal);\n continue;\n }\n\n let exited = false;\n try {\n for await (const event of readSseEvents(stream)) {\n // Any event proves the connection is alive; a later drop gets a full\n // retry budget rather than inheriting a spent one.\n attempt = 0;\n\n if (event.event === 'stdout' || event.event === 'stderr') {\n const payload = parseOutputPayload(event.data);\n if (!payload) continue;\n if (payload.seq > lastSeq + 1 && lastSeq > 0) {\n gaps += 1;\n sink.notice(gapNotice(lastSeq, payload.seq));\n }\n lastSeq = Math.max(lastSeq, payload.seq);\n if (event.event === 'stdout') sink.stdout(payload.text, payload.seq);\n else sink.stderr(payload.text, payload.seq);\n continue;\n }\n\n // One-shot streams only. Recorded BEFORE `status: exited` can break the\n // loop, which is why the server frames `result` ahead of it — anything\n // after the terminal status is written to a socket nobody reads again.\n if (event.event === 'sandbox') {\n const payload = parseSandboxRunPayload(event.data);\n if (payload) {\n sandbox = payload;\n options.onSandbox?.(payload);\n }\n continue;\n }\n\n if (event.event === 'result') {\n const payload = parseSandboxResultPayload(event.data);\n if (payload) result = payload;\n continue;\n }\n\n if (event.event === 'status') {\n const payload = parseStatusPayload(event.data);\n if (payload?.state === 'exited') {\n exitCode = payload.exitCode;\n exited = true;\n break;\n }\n continue;\n }\n\n if (event.event === 'error') {\n const { message } = parseErrorPayload(event.data);\n if (mentionsLostBuffer(message)) {\n gaps += 1;\n sink.notice(\n `Output before this point is unavailable: ${message}. ` +\n 'What follows is not continuous with what came before.',\n );\n } else {\n sink.notice(`Stream error: ${message}`);\n }\n continue;\n }\n\n // `ping` and anything else the server adds later: ignored on purpose.\n // An unknown event name is not an error the user can act on.\n }\n } catch (error) {\n if (isAborted()) return detached();\n attempt += 1;\n if (attempt > retry.attempts) throw exhausted(lastSeq, error, onDisconnect);\n reconnects += 1;\n sink.notice(reconnectNotice(attempt, retry.attempts, lastSeq));\n await sleep(backoffMs(retry.baseDelayMs, attempt), signal);\n continue;\n }\n\n if (exited) return outcome('exited');\n if (isAborted()) return detached();\n\n // The body ended without an `exited` status: the connection dropped\n // cleanly. Resume from where we are.\n attempt += 1;\n if (attempt > retry.attempts) throw exhausted(lastSeq, null, onDisconnect);\n reconnects += 1;\n sink.notice(reconnectNotice(attempt, retry.attempts, lastSeq));\n await sleep(backoffMs(retry.baseDelayMs, attempt), signal);\n }\n}\n\n// ---------------------------------------------------------------------------\n// Messages\n// ---------------------------------------------------------------------------\n\nfunction backoffMs(base: number, attempt: number): number {\n return base * 2 ** (attempt - 1);\n}\n\nfunction reconnectNotice(attempt: number, max: number, lastSeq: number): string {\n return `Connection lost. Reconnecting (${String(attempt)}/${String(max)}) from seq ${String(lastSeq)}...`;\n}\n\nfunction gapNotice(lastSeq: number, nextSeq: number): string {\n const missing = nextSeq - lastSeq - 1;\n return (\n `Output gap: ${String(missing)} event(s) between seq ${String(lastSeq)} and ` +\n `${String(nextSeq)} are unavailable — the server buffer rolled past the resume point. ` +\n 'What follows is not continuous with what came before.'\n );\n}\n\nfunction exhausted(\n lastSeq: number,\n cause: unknown,\n onDisconnect: DisconnectBehaviour,\n): MutagentError {\n const detail = cause instanceof Error ? ` (${cause.message})` : '';\n // The two branches are not two phrasings of one fact — they are opposite\n // facts. Offering the `--since` re-attach to a one-shot caller sends them\n // after a sandbox the server has already released.\n const guidance =\n onDisconnect === 'released'\n ? 'This was a one-shot run: the server releases the sandbox as soon as the connection drops, so nothing is left running and there is nothing to re-attach to. Run the turn again, or use --no-stream to wait for the whole result in one reply.'\n : `The sandbox is still running — nothing was destroyed. Resume with: mutagent helix attach <id> --since ${String(lastSeq)}`;\n return new MutagentError(\n 'STREAM_DISCONNECTED',\n `Lost the sandbox stream and could not reconnect${detail}.`,\n guidance,\n 5,\n );\n}\n\n/** Does the server's error say output was dropped rather than merely failed? */\nfunction mentionsLostBuffer(message: string): boolean {\n return /buffer|rolled|expired|evicted|no longer available|too old/i.test(message);\n}\n\n/** Abortable sleep — Ctrl-C during backoff must detach immediately. */\nexport function delay(ms: number, signal: AbortSignal): Promise<void> {\n return new Promise<void>((resolve) => {\n if (signal.aborted) {\n resolve();\n return;\n }\n const timer = setTimeout(() => {\n signal.removeEventListener('abort', onAbort);\n resolve();\n }, ms);\n function onAbort(): void {\n clearTimeout(timer);\n resolve();\n }\n signal.addEventListener('abort', onAbort, { once: true });\n });\n}\n",
58
58
  "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",
59
59
  "/**\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",
60
- "/**\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. They are unused on purpose, and\n // this package's config exempts no `_` prefix.\n // Single line so the directive below covers every binding it\n // needs to: `eslint-disable-next-line` spans exactly one line.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- omit-by-rest; see above\n const { workspaceId: _workspaceId, sandboxId: _sandboxId, receivedAt: _receivedAt, ...rest } = span as Record<string, unknown>;\n return rest;\n })\n );\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n",
60
+ "/**\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",
61
61
  "/**\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",
62
62
  "/**\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"
63
63
  ],
64
- "mappings": "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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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",
65
- "debugId": "CF4805C211690B5864756E2164756E21",
64
+ "mappings": "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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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",
65
+ "debugId": "0D5785F3AE94E3BA64756E2164756E21",
66
66
  "names": []
67
67
  }