@hua-labs/tap 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AI_GUIDE.md +165 -0
- package/CHANGELOG.md +67 -0
- package/README.md +201 -12
- package/dist/bridges/codex-app-server-auth-gateway.mjs +16 -1
- package/dist/bridges/codex-app-server-auth-gateway.mjs.map +1 -1
- package/dist/bridges/codex-app-server-bridge.d.mts +105 -12
- package/dist/bridges/codex-app-server-bridge.mjs +3149 -251
- package/dist/bridges/codex-app-server-bridge.mjs.map +1 -1
- package/dist/bridges/codex-bridge-runner.d.mts +4 -1
- package/dist/bridges/codex-bridge-runner.mjs +512 -58
- package/dist/bridges/codex-bridge-runner.mjs.map +1 -1
- package/dist/bridges/codex-remote-ipc-relay.d.mts +1 -0
- package/dist/bridges/codex-remote-ipc-relay.mjs +1912 -0
- package/dist/bridges/codex-remote-ipc-relay.mjs.map +1 -0
- package/dist/bridges/gemini-ide-companion-runner.mjs.map +1 -1
- package/dist/cli.mjs +30944 -8415
- package/dist/cli.mjs.map +1 -1
- package/dist/codex-a2a/index.d.mts +2 -0
- package/dist/codex-a2a/index.mjs +416 -0
- package/dist/codex-a2a/index.mjs.map +1 -0
- package/dist/codex-health/index.d.mts +76 -0
- package/dist/codex-health/index.mjs +153 -0
- package/dist/codex-health/index.mjs.map +1 -0
- package/dist/codex-ipc/index.d.mts +2 -0
- package/dist/codex-ipc/index.mjs +1834 -0
- package/dist/codex-ipc/index.mjs.map +1 -0
- package/dist/index-D4Khz2Mh.d.mts +206 -0
- package/dist/index-DMToLyGd.d.mts +256 -0
- package/dist/index.d.mts +763 -8
- package/dist/index.mjs +11600 -3449
- package/dist/index.mjs.map +1 -1
- package/dist/mcp-server.mjs +8838 -811
- package/dist/mcp-server.mjs.map +1 -1
- package/dist/types-FWvKrFUt.d.mts +43 -0
- package/examples/01-logic-battle-known-broken.md +46 -0
- package/examples/02-cross-model-review-root-cause.md +37 -0
- package/examples/03-convergence-pattern.md +42 -0
- package/examples/04-tower-broadcast.md +41 -0
- package/examples/05-self-awareness-paradox.md +49 -0
- package/examples/06-session-resurrection.md +37 -0
- package/examples/07-ghost-agent.md +31 -0
- package/examples/08-naming-creates-identity.md +36 -0
- package/examples/09-ceo-as-middleware.md +52 -0
- package/examples/10-files-as-interface.md +67 -0
- package/examples/README.md +34 -0
- package/examples/tap-profile-pack.example.json +71 -0
- package/package.json +21 -3
package/dist/cli.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.ts","../src/config/resolve.ts","../src/permissions/presets.ts","../src/config/instance-config.ts","../src/config/drift-detector.ts","../src/config/index.ts","../src/commands/init.ts","../src/state.ts","../src/version.ts","../src/permissions.ts","../src/toml.ts","../src/commands/add.ts","../src/adapters/claude.ts","../src/adapters/common.ts","../src/adapters/codex.ts","../src/artifact-backups.ts","../src/adapters/gemini.ts","../src/adapters/index.ts","../src/engine/bridge-paths.ts","../src/engine/bridge-file-io.ts","../src/engine/bridge-port-network.ts","../src/engine/bridge-codex-command.ts","../src/engine/bridge-windows-spawn.ts","../src/engine/bridge-unix-spawn.ts","../src/engine/bridge-process-control.ts","../src/engine/bridge-config.ts","../src/engine/bridge-state.ts","../src/engine/bridge-observability.ts","../src/engine/server-lifecycle.ts","../src/engine/codex-session-state.ts","../src/engine/bridge-app-server-health.ts","../src/engine/bridge-app-server-auth.ts","../src/runtime/resolve-node.ts","../src/engine/bridge-app-server-lifecycle.ts","../src/engine/bridge-startup.ts","../src/engine/bridge-orchestrator.ts","../src/engine/health-monitor.ts","../src/commands/status.ts","../src/commands/remove.ts","../src/engine/rollback.ts","../src/commands/bridge.ts","../src/commands/bridge-start.ts","../src/commands/bridge-helpers.ts","../src/commands/bridge-heartbeat.ts","../src/commands/bridge-stop.ts","../src/commands/bridge-watch.ts","../src/commands/bridge-status.ts","../src/commands/bridge-tui.ts","../src/commands/bridge-restart.ts","../src/engine/dashboard.ts","../src/commands/up.ts","../src/commands/down.ts","../src/commands/serve.ts","../src/commands/init-worktree.ts","../src/commands/dashboard.ts","../src/commands/doctor.ts","../src/commands/comms.ts","../src/commands/watch.ts","../src/commands/gui.ts","../src/engine/missions.ts","../src/engine/pull-requests.ts","../src/output.ts","../src/cli.ts","../src/cli-suggest.ts"],"sourcesContent":["import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type {\n AdapterContext,\n CommandCode,\n InstanceId,\n Platform,\n RuntimeName,\n TapState,\n} from \"./types.js\";\nimport { resolveConfig, normalizeTapPath } from \"./config/index.js\";\n\nconst VALID_RUNTIMES: RuntimeName[] = [\"claude\", \"codex\", \"gemini\"];\n\nexport function isValidRuntime(name: string): name is RuntimeName {\n return VALID_RUNTIMES.includes(name as RuntimeName);\n}\n\nexport function detectPlatform(): Platform {\n return process.platform as Platform;\n}\n\n/** Shared flag: suppress duplicate no-git warnings across modules. */\nexport let _noGitWarned = false;\nconst _loggedWarnings = new Set<string>();\n\nexport function _setNoGitWarned() {\n _noGitWarned = true;\n}\n\nexport function resetLoggedWarnings() {\n _loggedWarnings.clear();\n}\n\nexport function wasWarningLogged(message: string): boolean {\n return _loggedWarnings.has(message);\n}\n\nexport function findRepoRoot(startDir: string = process.cwd()): string {\n let dir = path.resolve(startDir);\n while (true) {\n if (fs.existsSync(path.join(dir, \".git\"))) return dir;\n if (fs.existsSync(path.join(dir, \"package.json\"))) {\n if (!_noGitWarned) {\n _setNoGitWarned();\n log(\n \"No .git directory found. Resolved tap root via package.json. \" +\n \"That's fine outside git; use --comms-dir to choose a different comms location.\",\n );\n }\n return dir;\n }\n const parent = path.dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n if (!_noGitWarned) {\n _setNoGitWarned();\n log(\n \"No git repository or package.json found. Using the current directory as tap root. \" +\n \"That's fine outside git; use --comms-dir to choose a different comms location.\",\n );\n }\n return process.cwd();\n}\n\nexport function resolveCommsDir(args: string[], repoRoot: string): string {\n // Check --comms-dir flag\n const idx = args.indexOf(\"--comms-dir\");\n if (idx !== -1 && args[idx + 1]) {\n return path.resolve(normalizeTapPath(args[idx + 1]));\n }\n\n // Delegate to config resolution (env > local > shared > auto)\n const { config } = resolveConfig({}, repoRoot);\n return config.commsDir;\n}\n\nexport function createAdapterContext(\n commsDir: string,\n repoRoot: string,\n): AdapterContext {\n // Use config-resolved stateDir if available\n const { config } = resolveConfig({}, repoRoot);\n return {\n commsDir: path.resolve(normalizeTapPath(commsDir)),\n repoRoot: path.resolve(normalizeTapPath(repoRoot)),\n stateDir: config.stateDir,\n platform: detectPlatform(),\n };\n}\n\nexport function parseArgs(args: string[]): {\n positional: string[];\n flags: Record<string, string | boolean>;\n} {\n const positional: string[] = [];\n const flags: Record<string, string | boolean> = {};\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg.startsWith(\"--\")) {\n const key = arg.slice(2);\n const next = args[i + 1];\n if (next && !next.startsWith(\"--\")) {\n flags[key] = next;\n i++;\n } else {\n flags[key] = true;\n }\n } else if (arg.startsWith(\"-\")) {\n flags[arg.slice(1)] = true;\n } else {\n positional.push(arg);\n }\n }\n\n return { positional, flags };\n}\n\n// ─── JSON mode suppression ──────────────────────────────────────\n\nlet _jsonMode = false;\n\nexport function setJsonMode(enabled: boolean): void {\n _jsonMode = enabled;\n}\n\nexport function log(message: string): void {\n if (!_jsonMode) console.log(` ${message}`);\n}\n\nexport function logSuccess(message: string): void {\n if (!_jsonMode) console.log(` + ${message}`);\n}\n\nexport function logWarn(message: string): void {\n if (_jsonMode) return;\n _loggedWarnings.add(message);\n console.log(` ! ${message}`);\n}\n\nexport function logError(message: string): void {\n if (!_jsonMode) console.error(` x ${message}`);\n}\n\nexport function logHeader(message: string): void {\n if (!_jsonMode) console.log(`\\n ${message}\\n`);\n}\n\n// ─── CLI argument validation ──────────────────────────────────\n\n/**\n * Parse and validate an integer CLI flag within a range.\n * Returns undefined if the flag is not provided, or the validated number.\n * Throws a descriptive error if invalid.\n */\nexport function parseIntFlag(\n value: string | undefined,\n name: string,\n min: number,\n max: number,\n): number | undefined {\n if (value === undefined) return undefined;\n const parsed = Number(value);\n if (!Number.isInteger(parsed) || parsed < min || parsed > max) {\n throw new RangeError(\n `Invalid ${name}: ${value}. Must be an integer between ${min} and ${max}.`,\n );\n }\n return parsed;\n}\n\n/**\n * Parse and validate a port number (1-65535).\n */\nexport function parsePortFlag(value: string | undefined): number | null {\n if (value === undefined) return null;\n const parsed = Number(value);\n if (!Number.isInteger(parsed) || parsed < 1 || parsed > 65535) {\n throw new RangeError(\n `Invalid port: ${value}. Must be between 1 and 65535.`,\n );\n }\n return parsed;\n}\n\n// ─── Instance ID utilities ─────────────────────────────────────\n\nexport type ResolveResult =\n | { ok: true; instanceId: InstanceId }\n | { ok: false; code: CommandCode; message: string };\n\n/**\n * Resolve a user-provided identifier to an instance ID.\n * Accepts either an exact instance ID or a runtime name (if unambiguous).\n */\nexport function resolveInstanceId(\n identifier: string,\n state: TapState,\n): ResolveResult {\n // Exact match\n if (state.instances[identifier]) {\n return { ok: true, instanceId: identifier };\n }\n\n // Runtime name → find matching instances\n if (isValidRuntime(identifier)) {\n const matches = Object.values(state.instances).filter(\n (inst) => inst.runtime === identifier,\n );\n\n if (matches.length === 1) {\n return { ok: true, instanceId: matches[0].instanceId };\n }\n\n if (matches.length > 1) {\n const ids = matches.map((m) => m.instanceId).join(\", \");\n return {\n ok: false,\n code: \"TAP_INSTANCE_AMBIGUOUS\",\n message: `Multiple ${identifier} instances found: ${ids}. Specify one explicitly.`,\n };\n }\n }\n\n return {\n ok: false,\n code: \"TAP_INSTANCE_NOT_FOUND\",\n message: `Instance not found: ${identifier}`,\n };\n}\n\n/**\n * Reject instance names containing path-traversal sequences or separators.\n * Prevents directory escape when the ID is interpolated into file paths.\n */\nexport function validateInstanceName(name: string): void {\n if (/[/\\\\]/.test(name) || name.includes(\"..\")) {\n throw new Error(\n `Invalid instance name \"${name}\": must not contain path separators or \"..\" sequences`,\n );\n }\n}\n\n/** Build an instance ID from runtime + optional name. */\nexport function buildInstanceId(\n runtime: RuntimeName,\n name?: string,\n): InstanceId {\n if (name) {\n validateInstanceName(name);\n }\n return name ? `${runtime}-${name}` : runtime;\n}\n\n/** Extract the runtime name from an instance ID. */\nexport function extractRuntimeFromInstanceId(id: InstanceId): RuntimeName {\n for (const r of VALID_RUNTIMES) {\n if (id === r || id.startsWith(`${r}-`)) return r;\n }\n throw new Error(`Cannot extract runtime from instance ID: ${id}`);\n}\n\n/** Check if a port is already claimed by another instance. */\nexport function findPortConflict(\n state: TapState,\n port: number,\n excludeInstanceId?: InstanceId,\n): InstanceId | null {\n for (const [id, inst] of Object.entries(state.instances)) {\n if (id !== excludeInstanceId && inst.port === port) return id;\n }\n return null;\n}\n\n/** Find the next available port starting from basePort (default 4501). */\nexport function findNextAvailablePort(\n state: TapState,\n basePort: number = 4501,\n excludeInstanceId?: InstanceId,\n): number {\n let port = basePort;\n while (findPortConflict(state, port, excludeInstanceId) !== null) {\n port++;\n }\n return port;\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type {\n TapSharedConfig,\n TapLocalConfig,\n TapResolvedConfig,\n ConfigSource,\n ConfigResolution,\n TrackedConfigSource,\n TrackedValue,\n TapTrackedConfig,\n} from \"./types.js\";\nimport { computeConfigHash } from \"./config-hash.js\";\n\n// ─── File names ────────────────────────────────────────────────\n\nexport const SHARED_CONFIG_FILE = \"tap-config.json\";\nexport const LOCAL_CONFIG_FILE = \"tap-config.local.json\";\nexport const LEGACY_CONFIG_FILE = \".tap-config\";\n\n// ─── Defaults ──────────────────────────────────────────────────\n\nconst DEFAULT_RUNTIME_COMMAND = \"node\";\nconst DEFAULT_APP_SERVER_URL = \"ws://127.0.0.1:4501\";\n\n// ─── Repo root discovery ───────────────────────────────────────\n\nimport { _noGitWarned, _setNoGitWarned, log } from \"../utils.js\";\n\nexport function findRepoRoot(startDir: string = process.cwd()): string {\n let dir = path.resolve(startDir);\n while (true) {\n if (fs.existsSync(path.join(dir, \".git\"))) return dir;\n if (fs.existsSync(path.join(dir, \"package.json\"))) {\n if (!_noGitWarned) {\n _setNoGitWarned();\n log(\n \"No .git directory found. Resolved tap root via package.json. \" +\n \"That's fine outside git; use --comms-dir to choose a different comms location.\",\n );\n }\n return dir;\n }\n const parent = path.dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n if (!_noGitWarned) {\n _setNoGitWarned();\n log(\n \"No git repository or package.json found. Using the current directory as tap root. \" +\n \"That's fine outside git; use --comms-dir to choose a different comms location.\",\n );\n }\n return process.cwd();\n}\n\n// ─── JSON file loading ─────────────────────────────────────────\n\nfunction loadJsonFile<T>(filePath: string): T | null {\n if (!fs.existsSync(filePath)) return null;\n try {\n const raw = fs.readFileSync(filePath, \"utf-8\");\n return JSON.parse(raw) as T;\n } catch {\n return null;\n }\n}\n\nexport function loadSharedConfig(repoRoot: string): TapSharedConfig | null {\n return loadJsonFile<TapSharedConfig>(path.join(repoRoot, SHARED_CONFIG_FILE));\n}\n\nexport function loadLocalConfig(repoRoot: string): TapLocalConfig | null {\n return loadJsonFile<TapLocalConfig>(path.join(repoRoot, LOCAL_CONFIG_FILE));\n}\n\nfunction readLegacyShellValue(configText: string, key: string): string | null {\n const match = configText.match(new RegExp(`^${key}=\"?(.+?)\"?$`, \"m\"));\n return match?.[1]?.trim() || null;\n}\n\nfunction loadLegacyShellConfig(repoRoot: string): TapSharedConfig | null {\n const filePath = path.join(repoRoot, LEGACY_CONFIG_FILE);\n if (!fs.existsSync(filePath)) return null;\n\n try {\n const raw = fs.readFileSync(filePath, \"utf-8\");\n const commsDir = readLegacyShellValue(raw, \"TAP_COMMS_DIR\");\n if (!commsDir) return null;\n return { commsDir };\n } catch {\n return null;\n }\n}\n\n// ─── CLI overrides ─────────────────────────────────────────────\n\nexport interface ConfigOverrides {\n commsDir?: string;\n stateDir?: string;\n runtimeCommand?: string;\n appServerUrl?: string;\n}\n\n// ─── Resolution ────────────────────────────────────────────────\n\n/**\n * Resolve config with priority: CLI flag > env > local config > shared config > auto.\n */\nexport function resolveConfig(\n overrides: ConfigOverrides = {},\n startDir?: string,\n): ConfigResolution {\n const repoRoot = findRepoRoot(startDir);\n const shared = loadSharedConfig(repoRoot) ?? {};\n const local = loadLocalConfig(repoRoot) ?? {};\n const legacy = loadLegacyShellConfig(repoRoot) ?? {};\n\n const sources: Record<keyof TapResolvedConfig, ConfigSource> = {\n repoRoot: \"auto\",\n commsDir: \"auto\",\n stateDir: \"auto\",\n runtimeCommand: \"auto\",\n appServerUrl: \"auto\",\n towerName: \"auto\",\n };\n\n // ─── commsDir ──────────────────────────────────────────────\n let commsDir: string;\n if (overrides.commsDir) {\n commsDir = resolvePath(repoRoot, overrides.commsDir);\n sources.commsDir = \"cli-flag\";\n } else if (process.env.TAP_COMMS_DIR) {\n commsDir = resolvePath(repoRoot, process.env.TAP_COMMS_DIR);\n sources.commsDir = \"env\";\n } else if (local.commsDir) {\n commsDir = resolvePath(repoRoot, local.commsDir);\n sources.commsDir = \"local-config\";\n } else if (shared.commsDir) {\n commsDir = resolvePath(repoRoot, shared.commsDir);\n sources.commsDir = \"shared-config\";\n } else if (legacy.commsDir) {\n commsDir = resolvePath(repoRoot, legacy.commsDir);\n sources.commsDir = \"legacy-shell-config\";\n } else {\n commsDir = path.join(repoRoot, \"tap-comms\");\n }\n\n // ─── stateDir ──────────────────────────────────────────────\n let stateDir: string;\n if (overrides.stateDir) {\n stateDir = resolvePath(repoRoot, overrides.stateDir);\n sources.stateDir = \"cli-flag\";\n } else if (process.env.TAP_STATE_DIR) {\n stateDir = resolvePath(repoRoot, process.env.TAP_STATE_DIR);\n sources.stateDir = \"env\";\n } else if (local.stateDir) {\n stateDir = resolvePath(repoRoot, local.stateDir);\n sources.stateDir = \"local-config\";\n } else if (shared.stateDir) {\n stateDir = resolvePath(repoRoot, shared.stateDir);\n sources.stateDir = \"shared-config\";\n } else {\n stateDir = path.join(repoRoot, \".tap-comms\");\n }\n\n // ─── runtimeCommand ────────────────────────────────────────\n let runtimeCommand: string;\n if (overrides.runtimeCommand) {\n runtimeCommand = overrides.runtimeCommand;\n sources.runtimeCommand = \"cli-flag\";\n } else if (process.env.TAP_RUNTIME_COMMAND) {\n runtimeCommand = process.env.TAP_RUNTIME_COMMAND;\n sources.runtimeCommand = \"env\";\n } else if (local.runtimeCommand) {\n runtimeCommand = local.runtimeCommand;\n sources.runtimeCommand = \"local-config\";\n } else if (shared.runtimeCommand) {\n runtimeCommand = shared.runtimeCommand;\n sources.runtimeCommand = \"shared-config\";\n } else {\n runtimeCommand = DEFAULT_RUNTIME_COMMAND;\n }\n\n // ─── appServerUrl ──────────────────────────────────────────\n let appServerUrl: string;\n if (overrides.appServerUrl) {\n appServerUrl = overrides.appServerUrl;\n sources.appServerUrl = \"cli-flag\";\n } else if (process.env.TAP_APP_SERVER_URL) {\n appServerUrl = process.env.TAP_APP_SERVER_URL;\n sources.appServerUrl = \"env\";\n } else if (local.appServerUrl) {\n appServerUrl = local.appServerUrl;\n sources.appServerUrl = \"local-config\";\n } else if (shared.appServerUrl) {\n appServerUrl = shared.appServerUrl;\n sources.appServerUrl = \"shared-config\";\n } else {\n appServerUrl = DEFAULT_APP_SERVER_URL;\n }\n\n // ─── towerName ──────────────────────────────────────────────\n const towerName = local.towerName ?? shared.towerName ?? null;\n\n return {\n config: {\n repoRoot,\n commsDir,\n stateDir,\n runtimeCommand,\n appServerUrl,\n towerName,\n },\n sources,\n };\n}\n\n// ─── Save helpers ──────────────────────────────────────────────\n\nexport function saveSharedConfig(\n repoRoot: string,\n config: TapSharedConfig,\n): void {\n const filePath = path.join(repoRoot, SHARED_CONFIG_FILE);\n const tmp = `${filePath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(config, null, 2) + \"\\n\", \"utf-8\");\n fs.renameSync(tmp, filePath);\n}\n\nexport function saveLocalConfig(\n repoRoot: string,\n config: TapLocalConfig,\n): void {\n const filePath = path.join(repoRoot, LOCAL_CONFIG_FILE);\n const tmp = `${filePath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(config, null, 2) + \"\\n\", \"utf-8\");\n fs.renameSync(tmp, filePath);\n}\n\n// ─── Helpers ───────────────────────────────────────────────────\n\n/** Resolve a path relative to repoRoot, or keep absolute as-is. */\nfunction resolvePath(repoRoot: string, p: string): string {\n const normalized = normalizeTapPath(p);\n return path.isAbsolute(normalized)\n ? normalized\n : path.resolve(repoRoot, normalized);\n}\n\n// ─── Instance / Session Config Loading ────────────────────────\n\n/** Subset of config fields that can be overridden per-instance or per-session. */\ninterface ResolveOverrides {\n agentName?: string | null;\n port?: number | null;\n bridgeMode?: string | null;\n commsDir?: string;\n stateDir?: string;\n runtimeCommand?: string;\n appServerUrl?: string;\n towerName?: string;\n}\n\ntype SessionOverrides = ResolveOverrides;\n\n/**\n * Verify that a resolved path stays within the expected subdirectory.\n * Prevents crafted IDs from crossing source boundaries\n * (e.g., instanceId=\"../sessions/gen22\" reading a session file as instance).\n */\nfunction assertConfigPathContained(\n resolved: string,\n baseDir: string,\n subDir: string,\n): string {\n const expectedDir = path.resolve(baseDir, subDir) + path.sep;\n const normalizedResolved = path.resolve(resolved);\n if (!normalizedResolved.startsWith(expectedDir)) {\n throw new Error(\n `Config path traversal blocked: resolved path escapes \"${subDir}/\" directory`,\n );\n }\n return normalizedResolved;\n}\n\nexport function loadInstanceConfig(\n stateDir: string,\n instanceId: string,\n): ResolveOverrides | null {\n const filePath = path.join(stateDir, \"instances\", `${instanceId}.json`);\n assertConfigPathContained(filePath, stateDir, \"instances\");\n return loadJsonFile<ResolveOverrides>(filePath);\n}\n\nexport function loadSessionConfig(\n stateDir: string,\n sessionId: string,\n): SessionOverrides | null {\n const filePath = path.join(stateDir, \"sessions\", `${sessionId}.json`);\n assertConfigPathContained(filePath, stateDir, \"sessions\");\n return loadJsonFile<SessionOverrides>(filePath);\n}\n\n// ─── Tracked Config Resolution ────────────────────────────────\n\nfunction tracked<T>(\n value: T,\n source: TrackedConfigSource,\n sourceFile: string | null = null,\n): TrackedValue<T> {\n return { value, source, sourceFile };\n}\n\nexport interface TrackedResolveOpts extends ConfigOverrides {\n instanceId?: string;\n sessionId?: string;\n}\n\n/**\n * Resolve config with full source tracking.\n * 7-level priority: cli > env > instance > session > local > project > default\n */\nexport function resolveTrackedConfig(\n opts: TrackedResolveOpts = {},\n startDir?: string,\n): { tracked: TapTrackedConfig; hash: string } {\n const repoRoot = findRepoRoot(startDir);\n const shared = loadSharedConfig(repoRoot) ?? {};\n const local = loadLocalConfig(repoRoot) ?? {};\n const legacy = loadLegacyShellConfig(repoRoot) ?? {};\n\n // Resolve stateDir first (needed for instance/session paths)\n const rawStateDir =\n opts.stateDir ??\n process.env.TAP_STATE_DIR ??\n local.stateDir ??\n shared.stateDir ??\n null;\n const stateDir = rawStateDir\n ? resolvePath(repoRoot, rawStateDir)\n : path.join(repoRoot, \".tap-comms\");\n\n // Load instance/session configs (graceful fallback)\n const inst = opts.instanceId\n ? loadInstanceConfig(stateDir, opts.instanceId)\n : null;\n const instFile = opts.instanceId\n ? path.join(stateDir, \"instances\", `${opts.instanceId}.json`)\n : null;\n const sess = opts.sessionId\n ? loadSessionConfig(stateDir, opts.sessionId)\n : null;\n const sessFile = opts.sessionId\n ? path.join(stateDir, \"sessions\", `${opts.sessionId}.json`)\n : null;\n\n // Chain resolution helper — finds first defined value from highest priority\n function resolveField<T>(\n cliVal: T | undefined,\n envVal: T | undefined,\n instVal: T | undefined,\n sessVal: T | undefined,\n localVal: T | undefined,\n projectVal: T | undefined,\n defaultVal: T,\n ): TrackedValue<T> {\n if (cliVal !== undefined) return tracked(cliVal, \"cli\");\n if (envVal !== undefined) return tracked(envVal, \"env\");\n if (instVal !== undefined) return tracked(instVal, \"instance\", instFile);\n if (sessVal !== undefined) return tracked(sessVal, \"session\", sessFile);\n if (localVal !== undefined)\n return tracked(localVal, \"local\", path.join(repoRoot, LOCAL_CONFIG_FILE));\n if (projectVal !== undefined)\n return tracked(\n projectVal,\n \"project\",\n path.join(repoRoot, SHARED_CONFIG_FILE),\n );\n return tracked(defaultVal, \"default\");\n }\n\n const commsDirTracked = resolveField(\n opts.commsDir ? resolvePath(repoRoot, opts.commsDir) : undefined,\n process.env.TAP_COMMS_DIR\n ? resolvePath(repoRoot, process.env.TAP_COMMS_DIR)\n : undefined,\n inst?.commsDir ? resolvePath(repoRoot, inst.commsDir) : undefined,\n sess?.commsDir ? resolvePath(repoRoot, sess.commsDir) : undefined,\n local.commsDir ? resolvePath(repoRoot, local.commsDir) : undefined,\n (shared.commsDir ?? legacy.commsDir)\n ? resolvePath(repoRoot, (shared.commsDir ?? legacy.commsDir)!)\n : undefined,\n path.join(repoRoot, \"tap-comms\"),\n );\n\n const stateDirTracked = resolveField(\n opts.stateDir ? resolvePath(repoRoot, opts.stateDir) : undefined,\n process.env.TAP_STATE_DIR\n ? resolvePath(repoRoot, process.env.TAP_STATE_DIR)\n : undefined,\n inst?.stateDir ? resolvePath(repoRoot, inst.stateDir) : undefined,\n sess?.stateDir ? resolvePath(repoRoot, sess.stateDir) : undefined,\n local.stateDir ? resolvePath(repoRoot, local.stateDir) : undefined,\n shared.stateDir ? resolvePath(repoRoot, shared.stateDir) : undefined,\n stateDir,\n );\n\n const runtimeCommandTracked = resolveField(\n opts.runtimeCommand,\n process.env.TAP_RUNTIME_COMMAND,\n inst?.runtimeCommand,\n sess?.runtimeCommand,\n local.runtimeCommand,\n shared.runtimeCommand,\n DEFAULT_RUNTIME_COMMAND,\n );\n\n const appServerUrlTracked = resolveField(\n opts.appServerUrl,\n process.env.TAP_APP_SERVER_URL,\n inst?.appServerUrl,\n sess?.appServerUrl,\n local.appServerUrl,\n shared.appServerUrl,\n DEFAULT_APP_SERVER_URL,\n );\n\n const towerNameTracked = resolveField<string | null>(\n undefined, // no CLI flag for towerName\n undefined, // no env for towerName\n inst?.towerName ?? undefined,\n sess?.towerName ?? undefined,\n local.towerName ?? undefined,\n shared.towerName ?? undefined,\n null,\n );\n\n const agentNameTracked = resolveField<string | null>(\n undefined,\n undefined,\n inst?.agentName ?? undefined,\n sess?.agentName ?? undefined,\n undefined,\n undefined,\n null,\n );\n\n const portTracked = resolveField<number | null>(\n undefined,\n undefined,\n inst?.port ?? undefined,\n sess?.port ?? undefined,\n undefined,\n undefined,\n null,\n );\n\n const bridgeModeTracked = resolveField<string | null>(\n undefined,\n undefined,\n inst?.bridgeMode ?? undefined,\n sess?.bridgeMode ?? undefined,\n undefined,\n undefined,\n null,\n );\n\n const trackedConfig: TapTrackedConfig = {\n repoRoot: tracked(repoRoot, \"default\"),\n commsDir: commsDirTracked,\n stateDir: stateDirTracked,\n runtimeCommand: runtimeCommandTracked,\n appServerUrl: appServerUrlTracked,\n towerName: towerNameTracked,\n agentName: agentNameTracked,\n port: portTracked,\n bridgeMode: bridgeModeTracked,\n };\n\n return { tracked: trackedConfig, hash: computeConfigHash(trackedConfig) };\n}\n\nexport function normalizeTapPath(input: string): string {\n const trimmed = input.trim().replace(/^[\"'`]+|[\"'`]+$/g, \"\");\n if (/^[A-Za-z]:[\\\\/]/.test(trimmed)) {\n return trimmed;\n }\n\n // MSYS/Git Bash `/c/...` → `C:\\...` conversion — Windows only.\n // On POSIX, `/d/...` is a legitimate absolute path and must not be rewritten.\n if (process.platform === \"win32\") {\n const match = trimmed.match(/^\\/([A-Za-z])\\/(.*)$/);\n if (match) {\n return `${match[1].toUpperCase()}:\\\\${match[2].replace(/\\//g, \"\\\\\")}`;\n }\n }\n\n return trimmed;\n}\n","import type { AgentRole, AgentPermission } from \"./types.js\";\n\n/**\n * Default permission presets per role.\n * These define the starting point — can be customized per instance.\n */\nexport const ROLE_PRESETS: Record<\n AgentRole,\n Omit<AgentPermission, \"agentId\">\n> = {\n tower: {\n role: \"tower\",\n mode: \"full-access\",\n allowedTools: [\"*\"],\n deniedTools: [],\n allowedPaths: [\"**\"],\n escalateTo: null,\n },\n implementer: {\n role: \"implementer\",\n mode: \"workspace-write\",\n allowedTools: [\n \"Read\",\n \"Edit\",\n \"Write\",\n \"Bash\",\n \"Grep\",\n \"Glob\",\n \"mcp__tap__*\",\n ],\n deniedTools: [\"Bash(git push --force:*)\", \"Bash(git reset --hard:*)\"],\n allowedPaths: [\"packages/**\", \"apps/**\", \"docs/**\"],\n escalateTo: \"tower\",\n },\n reviewer: {\n role: \"reviewer\",\n mode: \"readonly\",\n allowedTools: [\n \"Read\",\n \"Grep\",\n \"Glob\",\n \"Bash(grep:*)\",\n \"Bash(git diff:*)\",\n \"mcp__tap__*\",\n ],\n deniedTools: [\"Edit\", \"Write\", \"Bash(rm:*)\"],\n allowedPaths: [\"hua-comms/reviews/**\"],\n escalateTo: \"tower\",\n },\n custom: {\n role: \"custom\",\n mode: \"prompt\",\n allowedTools: [],\n deniedTools: [],\n allowedPaths: [],\n escalateTo: \"tower\",\n },\n};\n\n/**\n * Create an AgentPermission from a role preset.\n */\nexport function createPermissionFromRole(role: AgentRole): AgentPermission {\n const preset = ROLE_PRESETS[role];\n return {\n ...preset,\n allowedTools: [...preset.allowedTools],\n deniedTools: [...preset.deniedTools],\n allowedPaths: [...preset.allowedPaths],\n };\n}\n\n/**\n * Valid role names for CLI validation.\n */\nexport const VALID_ROLES: AgentRole[] = [\n \"tower\",\n \"implementer\",\n \"reviewer\",\n \"custom\",\n];\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { InstanceId } from \"../types.js\";\nimport { validateInstanceName } from \"../utils.js\";\nimport type { AgentPermission, AgentRole } from \"../permissions/types.js\";\nimport { createPermissionFromRole } from \"../permissions/presets.js\";\n\n// ─── Instance Config Schema ────────────────────────────────────\n\nconst INSTANCE_CONFIG_SCHEMA_VERSION = 1;\n\nexport interface InstanceConfig {\n schemaVersion: number;\n instanceId: string;\n runtime: \"codex\" | \"claude\" | \"gemini\";\n\n // identity\n agentName: string | null;\n agentId: string | null;\n\n // network\n port: number | null;\n appServerUrl: string;\n\n // config override fields (consumed by resolveTrackedConfig)\n commsDir?: string;\n stateDir?: string;\n runtimeCommand?: string;\n bridgeMode?: string | null;\n towerName?: string;\n\n // permissions (Phase 3-1)\n permission: AgentPermission;\n\n // Codex MCP tool approval mode (M224)\n approvalMode?: \"auto\" | \"approve\";\n\n // MCP env (tap source-of-truth for runtime injection)\n mcpEnv: Record<string, string>;\n\n // meta\n configHash: string;\n lastSyncedToRuntime: string | null;\n runtimeConfigHash: string;\n createdAt: string;\n updatedAt: string;\n}\n\n// ─── Path helpers ──────────────────────────────────────────────\n\nfunction instancesDir(stateDir: string): string {\n return path.join(stateDir, \"instances\");\n}\n\nfunction instanceConfigPath(stateDir: string, instanceId: InstanceId): string {\n // Validate to prevent path traversal (M190)\n if (\n instanceId.includes(\"/\") ||\n instanceId.includes(\"\\\\\") ||\n instanceId.includes(\"..\")\n ) {\n throw new Error(\n `Invalid instanceId \"${instanceId}\": must not contain path separators or \"..\" sequences`,\n );\n }\n return path.join(instancesDir(stateDir), `${instanceId}.json`);\n}\n\n// ─── CRUD ──────────────────────────────────────────────────────\n\nexport function loadInstanceConfig(\n stateDir: string,\n instanceId: InstanceId,\n): InstanceConfig | null {\n const filePath = instanceConfigPath(stateDir, instanceId);\n if (!fs.existsSync(filePath)) return null;\n try {\n const raw = fs.readFileSync(filePath, \"utf-8\");\n const parsed = JSON.parse(raw) as InstanceConfig;\n // Backfill permission for pre-M219 instance configs\n if (!parsed.permission) {\n parsed.permission = createPermissionFromRole(\"custom\");\n }\n return parsed;\n } catch {\n return null;\n }\n}\n\nexport function saveInstanceConfig(\n stateDir: string,\n config: InstanceConfig,\n): string {\n const dir = instancesDir(stateDir);\n fs.mkdirSync(dir, { recursive: true });\n const filePath = instanceConfigPath(stateDir, config.instanceId);\n const tmp = `${filePath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(config, null, 2) + \"\\n\", \"utf-8\");\n fs.renameSync(tmp, filePath);\n return filePath;\n}\n\nexport function listInstanceConfigs(stateDir: string): InstanceConfig[] {\n const dir = instancesDir(stateDir);\n if (!fs.existsSync(dir)) return [];\n\n const files = fs.readdirSync(dir).filter((f) => f.endsWith(\".json\"));\n const configs: InstanceConfig[] = [];\n for (const file of files) {\n try {\n const raw = fs.readFileSync(path.join(dir, file), \"utf-8\");\n configs.push(JSON.parse(raw) as InstanceConfig);\n } catch {\n // Skip corrupted files\n }\n }\n return configs;\n}\n\nexport function deleteInstanceConfig(\n stateDir: string,\n instanceId: InstanceId,\n): boolean {\n const filePath = instanceConfigPath(stateDir, instanceId);\n if (!fs.existsSync(filePath)) return false;\n fs.unlinkSync(filePath);\n return true;\n}\n\n// ─── Factory ───────────────────────────────────────────────────\n\nexport interface CreateInstanceConfigOpts {\n instanceId: InstanceId;\n runtime: \"codex\" | \"claude\" | \"gemini\";\n agentName: string | null;\n agentId: string | null;\n port: number | null;\n appServerUrl: string;\n commsDir: string;\n stateDir: string;\n repoRoot: string;\n role?: AgentRole;\n}\n\nexport function createInstanceConfig(\n opts: CreateInstanceConfigOpts,\n): InstanceConfig {\n // Validate instanceId for path safety\n const parts = opts.instanceId.split(\"-\");\n if (parts.length > 1) {\n validateInstanceName(parts.slice(1).join(\"-\"));\n }\n\n const now = new Date().toISOString();\n const config: InstanceConfig = {\n schemaVersion: INSTANCE_CONFIG_SCHEMA_VERSION,\n instanceId: opts.instanceId,\n runtime: opts.runtime,\n agentName: opts.agentName,\n agentId: opts.agentId,\n port: opts.port,\n appServerUrl: opts.appServerUrl,\n permission: createPermissionFromRole(opts.role ?? \"custom\"),\n // Top-level overrides consumed by resolveTrackedConfig\n commsDir: opts.commsDir,\n stateDir: opts.stateDir,\n mcpEnv: {\n TAP_COMMS_DIR: opts.commsDir,\n TAP_STATE_DIR: opts.stateDir,\n TAP_REPO_ROOT: opts.repoRoot,\n TAP_AGENT_NAME: opts.agentName ?? \"<set-per-session>\",\n },\n configHash: \"\",\n lastSyncedToRuntime: null,\n runtimeConfigHash: \"\",\n createdAt: now,\n updatedAt: now,\n };\n\n // Compute hash after creation\n config.configHash = computeInstanceConfigHash(config);\n return config;\n}\n\nexport function updateInstanceConfig(\n existing: InstanceConfig,\n updates: Partial<\n Pick<InstanceConfig, \"agentName\" | \"agentId\" | \"port\" | \"appServerUrl\">\n >,\n): InstanceConfig {\n const updated: InstanceConfig = {\n ...existing,\n ...updates,\n updatedAt: new Date().toISOString(),\n };\n\n // Sync mcpEnv if agentName changed\n if (updates.agentName !== undefined) {\n updated.mcpEnv = {\n ...updated.mcpEnv,\n TAP_AGENT_NAME: updates.agentName ?? \"<set-per-session>\",\n };\n }\n\n updated.configHash = computeInstanceConfigHash(updated);\n return updated;\n}\n\n// ─── Hash ──────────────────────────────────────────────────────\n\nfunction computeInstanceConfigHash(config: InstanceConfig): string {\n // Hash the mutable fields that affect runtime behavior\n const hashInput: Record<string, unknown> = {\n instanceId: config.instanceId,\n runtime: config.runtime,\n agentName: config.agentName,\n agentId: config.agentId,\n port: config.port,\n appServerUrl: config.appServerUrl,\n mcpEnv: config.mcpEnv,\n permission: config.permission,\n };\n const serialized = JSON.stringify(hashInput, Object.keys(hashInput).sort());\n\n // FNV-1a 32-bit (same algorithm as config-hash.ts)\n let hash = 0x811c9dc5;\n for (let i = 0; i < serialized.length; i++) {\n hash ^= serialized.charCodeAt(i);\n hash = Math.imul(hash, 0x01000193);\n }\n return (hash >>> 0).toString(16).padStart(8, \"0\");\n}\n","import * as fs from \"node:fs\";\nimport * as crypto from \"node:crypto\";\nimport type { InstanceId, TapState } from \"../types.js\";\nimport { loadInstanceConfig } from \"./instance-config.js\";\n\n// ─── Types ─────────────────────────────────────────────────────\n\nexport type DriftSource = \"instance-config\" | \"runtime-config\" | \"state-json\";\n\nexport interface DriftCheck {\n name: string;\n source: DriftSource;\n target: DriftSource;\n status: \"ok\" | \"drifted\" | \"missing\";\n details: string | null;\n autoFixable: boolean;\n}\n\nexport interface DriftCheckResult {\n instanceId: string;\n status: \"ok\" | \"drifted\" | \"missing\" | \"orphaned\";\n checks: DriftCheck[];\n}\n\n// ─── Hash helpers ──────────────────────────────────────────────\n\n/**\n * Compute a stable hash of a file's contents for drift comparison.\n * Returns empty string if file doesn't exist.\n */\nexport function computeFileHash(filePath: string): string {\n if (!fs.existsSync(filePath)) return \"\";\n const content = fs.readFileSync(filePath, \"utf-8\");\n return crypto.createHash(\"sha256\").update(content).digest(\"hex\").slice(0, 16);\n}\n\n// ─── Instance Drift Check ──────────────────────────────────────\n\n/**\n * Check drift for a single instance across 3 sources:\n * 1. instance config existence + state.json consistency\n * 2. instance config ↔ runtime config (config.toml) via hash\n * 3. config hash baseline (empty = not yet baselined)\n */\nexport function checkInstanceDrift(\n stateDir: string,\n instanceId: InstanceId,\n state: TapState | null,\n): DriftCheckResult {\n const checks: DriftCheck[] = [];\n const instConfig = loadInstanceConfig(stateDir, instanceId);\n const stateInstance = state?.instances[instanceId] ?? null;\n\n // 1. Instance config existence\n if (!instConfig) {\n if (stateInstance?.installed) {\n // Pre-M214 instances have no configSourceFile — instance config absence is expected\n if (!stateInstance.configSourceFile) {\n return { instanceId, status: \"ok\", checks };\n }\n checks.push({\n name: \"instance config exists\",\n source: \"instance-config\",\n target: \"state-json\",\n status: \"missing\",\n details: `Instance \"${instanceId}\" is in state.json but has no instance config file. Run \"tap add ${instanceId} --force\" to recreate.`,\n autoFixable: false, // Cannot generate config from state alone\n });\n return { instanceId, status: \"missing\", checks };\n }\n return { instanceId, status: \"ok\", checks };\n }\n\n // Orphan check: instance config exists but not in state.json\n if (!stateInstance) {\n checks.push({\n name: \"instance registered\",\n source: \"instance-config\",\n target: \"state-json\",\n status: \"missing\",\n details: `Instance config exists for \"${instanceId}\" but not registered in state.json`,\n autoFixable: false,\n });\n return { instanceId, status: \"orphaned\", checks };\n }\n\n // 2. Instance config ↔ state.json field comparison\n const fieldMismatches: string[] = [];\n\n if (instConfig.agentName !== stateInstance.agentName) {\n fieldMismatches.push(\n `agentName: instance=\"${instConfig.agentName}\" vs state=\"${stateInstance.agentName}\"`,\n );\n }\n if (instConfig.port !== stateInstance.port) {\n fieldMismatches.push(\n `port: instance=${instConfig.port} vs state=${stateInstance.port}`,\n );\n }\n\n if (fieldMismatches.length > 0) {\n checks.push({\n name: \"state consistency\",\n source: \"instance-config\",\n target: \"state-json\",\n status: \"drifted\",\n details: fieldMismatches.join(\"; \"),\n autoFixable: true,\n });\n } else {\n checks.push({\n name: \"state consistency\",\n source: \"instance-config\",\n target: \"state-json\",\n status: \"ok\",\n details: null,\n autoFixable: false,\n });\n }\n\n // 3. Config hash — detect changes since last sync\n const stateHash = stateInstance.configHash ?? \"\";\n if (!stateHash) {\n // Empty hash = never baselined (e.g., v2→v3 migration).\n // Report as drifted so doctor --fix can backfill.\n checks.push({\n name: \"config hash baseline\",\n source: \"instance-config\",\n target: \"state-json\",\n status: \"drifted\",\n details: `configHash not baselined for \"${instanceId}\" — needs backfill`,\n autoFixable: true,\n });\n } else if (instConfig.configHash !== stateHash) {\n checks.push({\n name: \"config hash\",\n source: \"instance-config\",\n target: \"state-json\",\n status: \"drifted\",\n details: `instance hash=\"${instConfig.configHash}\" vs state hash=\"${stateHash}\"`,\n autoFixable: true,\n });\n } else {\n checks.push({\n name: \"config hash\",\n source: \"instance-config\",\n target: \"state-json\",\n status: \"ok\",\n details: null,\n autoFixable: false,\n });\n }\n\n // 4. Runtime config drift (config.toml)\n // Compare instance config's runtimeConfigHash against actual file\n if (stateInstance.configPath && fs.existsSync(stateInstance.configPath)) {\n const currentRuntimeHash = computeFileHash(stateInstance.configPath);\n const lastSyncedHash = instConfig.runtimeConfigHash || \"\";\n if (!lastSyncedHash) {\n // Never baselined — report so doctor --fix can backfill\n checks.push({\n name: \"runtime config baseline\",\n source: \"instance-config\",\n target: \"runtime-config\",\n status: \"drifted\",\n details: `runtimeConfigHash not baselined for \"${instanceId}\" — needs backfill`,\n autoFixable: true,\n });\n } else if (currentRuntimeHash !== lastSyncedHash) {\n checks.push({\n name: \"runtime config\",\n source: \"instance-config\",\n target: \"runtime-config\",\n status: \"drifted\",\n details: `${stateInstance.configPath} has changed since last sync (hash: ${currentRuntimeHash.slice(0, 8)} vs synced: ${lastSyncedHash.slice(0, 8)})`,\n autoFixable: true,\n });\n } else {\n checks.push({\n name: \"runtime config\",\n source: \"instance-config\",\n target: \"runtime-config\",\n status: \"ok\",\n details: null,\n autoFixable: false,\n });\n }\n }\n\n const hasDrift = checks.some((c) => c.status !== \"ok\");\n return {\n instanceId,\n status: hasDrift ? \"drifted\" : \"ok\",\n checks,\n };\n}\n\n/**\n * Check drift for all instances in state.json + any orphaned instance configs.\n */\nexport function checkAllDrift(\n stateDir: string,\n state: TapState | null,\n): DriftCheckResult[] {\n const results: DriftCheckResult[] = [];\n const checkedIds = new Set<string>();\n\n // Check all instances in state.json\n if (state) {\n for (const instanceId of Object.keys(state.instances)) {\n checkedIds.add(instanceId);\n results.push(checkInstanceDrift(stateDir, instanceId, state));\n }\n }\n\n // Check for orphaned instance configs\n const instancesDir = `${stateDir}/instances`;\n if (fs.existsSync(instancesDir)) {\n for (const file of fs.readdirSync(instancesDir)) {\n if (!file.endsWith(\".json\")) continue;\n const id = file.replace(/\\.json$/, \"\");\n if (!checkedIds.has(id)) {\n results.push(checkInstanceDrift(stateDir, id, state));\n }\n }\n }\n\n return results;\n}\n","export type {\n TapSharedConfig,\n TapLocalConfig,\n TapResolvedConfig,\n ConfigSource,\n ConfigResolution,\n TrackedConfigSource,\n TrackedValue,\n TapTrackedConfig,\n} from \"./types.js\";\n\nexport {\n LEGACY_CONFIG_FILE,\n SHARED_CONFIG_FILE,\n LOCAL_CONFIG_FILE,\n findRepoRoot,\n loadSharedConfig,\n loadLocalConfig,\n resolveConfig,\n resolveTrackedConfig,\n loadInstanceConfig,\n loadSessionConfig,\n saveSharedConfig,\n saveLocalConfig,\n normalizeTapPath,\n} from \"./resolve.js\";\n\nexport type { ConfigOverrides, TrackedResolveOpts } from \"./resolve.js\";\n\nexport { computeConfigHash } from \"./config-hash.js\";\n\nexport type {\n DriftCheckResult,\n DriftCheck,\n DriftSource,\n} from \"./drift-detector.js\";\nexport {\n checkInstanceDrift,\n checkAllDrift,\n computeFileHash,\n} from \"./drift-detector.js\";\n\nexport type {\n InstanceConfig,\n CreateInstanceConfigOpts,\n} from \"./instance-config.js\";\nexport {\n loadInstanceConfig as loadFullInstanceConfig,\n saveInstanceConfig,\n listInstanceConfigs,\n deleteInstanceConfig,\n createInstanceConfig,\n updateInstanceConfig,\n} from \"./instance-config.js\";\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { spawnSync } from \"node:child_process\";\nimport { createInitialState, saveState, stateExists } from \"../state.js\";\nimport {\n findRepoRoot,\n resolveCommsDir,\n log,\n logSuccess,\n logWarn,\n logError,\n logHeader,\n} from \"../utils.js\";\nimport { version } from \"../version.js\";\nimport {\n applyClaudePermissions,\n applyCodexPermissions,\n buildPermissionSummary,\n} from \"../permissions.js\";\nimport type { CommandResult } from \"../types.js\";\nimport type { PermissionMode } from \"../permissions.js\";\nimport {\n resolveConfig,\n saveSharedConfig,\n loadSharedConfig,\n} from \"../config/index.js\";\n\nconst COMMS_DIRS = [\n \"inbox\",\n \"reviews\",\n \"findings\",\n \"handoff\",\n \"retros\",\n \"archive\",\n];\n\nfunction parsePermissionMode(args: string[]): PermissionMode {\n const idx = args.indexOf(\"--permissions\");\n if (idx !== -1 && args[idx + 1]) {\n const value = args[idx + 1];\n if (value === \"full\" || value === \"safe\") return value;\n logWarn(`Unknown permission mode: ${value}. Using \"safe\".`);\n }\n return \"safe\";\n}\n\nconst INIT_HELP = `\nUsage:\n tap init [options]\n\nDescription:\n Initialize the tap directory structure, state file, and permissions.\n Optionally clone a shared comms repository.\n\nOptions:\n --comms-dir <path> Override comms directory (default: tap-comms/)\n --comms-repo <url> Clone a shared comms git repo into comms directory\n --permissions <mode> Permission mode: safe (default) or full\n --force Re-initialize even if already set up\n --help, -h Show help\n\nExamples:\n npx @hua-labs/tap init\n npx @hua-labs/tap init --permissions full\n npx @hua-labs/tap init --comms-repo https://github.com/org/comms.git\n npx @hua-labs/tap init --comms-dir /shared/comms --force\n`.trim();\n\nexport async function initCommand(args: string[]): Promise<CommandResult> {\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n log(INIT_HELP);\n return {\n ok: true,\n command: \"init\",\n code: \"TAP_NO_OP\",\n message: INIT_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n const commsDir = resolveCommsDir(args, repoRoot);\n const permMode = parsePermissionMode(args);\n\n // Check if already initialized\n if (stateExists(repoRoot) && !args.includes(\"--force\")) {\n return {\n ok: true,\n command: \"init\",\n code: \"TAP_ALREADY_INITIALIZED\",\n message: \"Already initialized. Use --force to re-initialize.\",\n warnings: [],\n data: { commsDir, repoRoot },\n };\n }\n\n logHeader(\"@hua-labs/tap init\");\n\n // Clone comms repo if --comms-repo provided\n const commsRepoIdx = args.indexOf(\"--comms-repo\");\n const commsRepoUrl =\n commsRepoIdx !== -1 && args[commsRepoIdx + 1]\n ? args[commsRepoIdx + 1]\n : undefined;\n\n if (commsRepoUrl) {\n if (fs.existsSync(commsDir) && fs.readdirSync(commsDir).length > 0) {\n const gitDir = path.join(commsDir, \".git\");\n if (fs.existsSync(gitDir)) {\n log(`Comms directory exists: ${commsDir}`);\n logSuccess(\"Comms directory is already a git repo — linking only\");\n } else {\n logError(`Comms directory exists but is not a git repo: ${commsDir}`);\n return {\n ok: false,\n command: \"init\",\n code: \"TAP_INIT_CLONE_FAILED\",\n message: `Comms directory \"${commsDir}\" exists but is not a git repo. Remove it or use --force to reinitialize.`,\n warnings: [],\n data: { commsDir, commsRepoUrl },\n };\n }\n } else {\n log(`Cloning comms repo: ${commsRepoUrl}`);\n try {\n const cloneResult = spawnSync(\n \"git\",\n [\"clone\", commsRepoUrl, commsDir],\n {\n stdio: \"pipe\",\n encoding: \"utf-8\",\n },\n );\n if (cloneResult.status !== 0) {\n throw new Error(\n cloneResult.stderr ||\n `git clone exited with code ${cloneResult.status}`,\n );\n }\n logSuccess(`Cloned comms repo to ${commsDir}`);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n logError(`Failed to clone comms repo: ${msg}`);\n return {\n ok: false,\n command: \"init\",\n code: \"TAP_INIT_CLONE_FAILED\",\n message: `Failed to clone comms repo: ${msg}`,\n warnings: [],\n data: { commsRepoUrl },\n };\n }\n }\n }\n\n // Persist comms config (commsDir + optional repoUrl) for tap comms pull/push\n {\n const sharedConfig = loadSharedConfig(repoRoot) ?? {};\n let configChanged = false;\n if (commsRepoUrl) {\n sharedConfig.commsRepoUrl = commsRepoUrl;\n configChanged = true;\n }\n const commsDirRelative = path.relative(repoRoot, commsDir);\n if (commsDirRelative && commsDirRelative !== \"tap-comms\") {\n sharedConfig.commsDir = commsDirRelative;\n configChanged = true;\n }\n if (configChanged) {\n saveSharedConfig(repoRoot, sharedConfig);\n logSuccess(\"Saved comms config to tap-config.json\");\n }\n }\n\n // Create comms directory structure\n log(`Comms directory: ${commsDir}`);\n for (const dir of COMMS_DIRS) {\n const dirPath = path.join(commsDir, dir);\n fs.mkdirSync(dirPath, { recursive: true });\n logSuccess(`Created ${dir}/`);\n }\n\n // Create .gitignore in comms dir\n const gitignorePath = path.join(commsDir, \".gitignore\");\n if (!fs.existsSync(gitignorePath)) {\n fs.writeFileSync(\n gitignorePath,\n [\"tap.db\", \".lock\", \"*.tmp.*\", \".DS_Store\"].join(\"\\n\") + \"\\n\",\n \"utf-8\",\n );\n logSuccess(\"Created .gitignore\");\n }\n\n // Create state directory (config-resolved — may differ from default .tap-comms/)\n const { config } = resolveConfig({}, repoRoot);\n const stateDir = config.stateDir;\n fs.mkdirSync(path.join(stateDir, \"pids\"), { recursive: true });\n fs.mkdirSync(path.join(stateDir, \"logs\"), { recursive: true });\n fs.mkdirSync(path.join(stateDir, \"backups\"), { recursive: true });\n const stateDirRel = path.relative(repoRoot, stateDir);\n logSuccess(`Created ${stateDirRel}/ state directory`);\n\n // Add state dir + local config to repo .gitignore if not present\n const repoGitignore = path.join(repoRoot, \".gitignore\");\n const gitignoreEntries = [\n { entry: stateDirRel.replace(/\\\\/g, \"/\") + \"/\", label: \"tap-comms state\" },\n {\n entry: \"tap-config.local.json\",\n label: \"tap-comms local config (machine-specific)\",\n },\n ];\n if (fs.existsSync(repoGitignore)) {\n const content = fs.readFileSync(repoGitignore, \"utf-8\");\n for (const { entry, label } of gitignoreEntries) {\n if (!content.includes(entry)) {\n fs.appendFileSync(repoGitignore, `\\n# ${label}\\n${entry}\\n`);\n logSuccess(`Added ${entry} to .gitignore`);\n }\n }\n }\n\n // Create initial state\n const state = createInitialState(commsDir, repoRoot, version);\n saveState(repoRoot, state);\n logSuccess(\"Created state.json\");\n\n // Apply permissions\n const warnings: string[] = [];\n logHeader(`Permissions: ${permMode} mode`);\n\n const claudeResult = applyClaudePermissions(repoRoot, permMode);\n warnings.push(...claudeResult.warnings);\n\n const codexResult = applyCodexPermissions(repoRoot, commsDir, permMode);\n warnings.push(...codexResult.warnings);\n\n const permSummary = buildPermissionSummary(permMode, repoRoot, commsDir);\n\n if (permMode === \"full\") {\n logWarn(\"Full mode: no destructive operation guards. Use with caution.\");\n }\n\n logHeader(\"Done! Next steps:\");\n log(\"npx @hua-labs/tap add claude # Add Claude runtime\");\n log(\"npx @hua-labs/tap add codex # Add Codex runtime\");\n log(\"npx @hua-labs/tap status # Check status\");\n\n return {\n ok: true,\n command: \"init\",\n code: \"TAP_INIT_OK\",\n message: \"Initialized successfully\",\n warnings,\n data: {\n commsDir,\n repoRoot,\n permissions: permSummary,\n },\n };\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport * as crypto from \"node:crypto\";\nimport type {\n TapState,\n TapStateV1,\n InstanceState,\n InstanceId,\n RuntimeName,\n OwnedArtifact,\n} from \"./types.js\";\nimport { resolveConfig } from \"./config/index.js\";\n\nconst STATE_FILE = \"state.json\";\nconst SCHEMA_VERSION = 3;\n\nexport function getStateDir(repoRoot: string): string {\n const { config } = resolveConfig({}, repoRoot);\n return config.stateDir;\n}\n\nexport function getStatePath(repoRoot: string): string {\n return path.join(getStateDir(repoRoot), STATE_FILE);\n}\n\nexport function stateExists(repoRoot: string): boolean {\n return fs.existsSync(getStatePath(repoRoot));\n}\n\n// ─── v1 → v2 Migration ────────────────────────────────────────\n\nexport function migrateStateV1toV2(v1: TapStateV1): TapState {\n const instances: Record<InstanceId, InstanceState> = {};\n\n for (const [runtime, rs] of Object.entries(v1.runtimes)) {\n if (!rs) continue;\n const instanceId = runtime as InstanceId; // default instance = runtime name\n instances[instanceId] = {\n instanceId,\n runtime: runtime as RuntimeName,\n agentName: null,\n port: null,\n headless: null,\n ...rs,\n };\n }\n\n return {\n schemaVersion: SCHEMA_VERSION,\n createdAt: v1.createdAt,\n updatedAt: v1.updatedAt,\n commsDir: v1.commsDir,\n repoRoot: v1.repoRoot,\n packageVersion: v1.packageVersion,\n instances,\n };\n}\n\n// ─── v2 → v3 Migration ────────────────────────────────────────\n\nexport function migrateStateV2toV3(v2: TapState): TapState {\n const instances: Record<InstanceId, InstanceState> = {};\n\n for (const [id, inst] of Object.entries(v2.instances)) {\n instances[id] = {\n ...inst,\n configHash: inst.configHash ?? \"\",\n configSourceFile: inst.configSourceFile ?? \"\",\n };\n }\n\n return {\n ...v2,\n schemaVersion: SCHEMA_VERSION,\n instances,\n };\n}\n\n// ─── Load / Save ───────────────────────────────────────────────\n\nexport function loadState(repoRoot: string): TapState | null {\n const statePath = getStatePath(repoRoot);\n if (!fs.existsSync(statePath)) return null;\n\n const raw = fs.readFileSync(statePath, \"utf-8\");\n const parsed = JSON.parse(raw);\n\n // Auto-migrate v1 → v2\n if (parsed.schemaVersion === 1 || parsed.runtimes) {\n const v2 = migrateStateV1toV2(parsed as TapStateV1);\n const v3 = migrateStateV2toV3(v2);\n saveState(repoRoot, v3);\n return v3;\n }\n\n // Auto-migrate v2 → v3\n if (parsed.schemaVersion === 2) {\n const v3 = migrateStateV2toV3(parsed as TapState);\n saveState(repoRoot, v3);\n return v3;\n }\n\n return parsed as TapState;\n}\n\nexport function saveState(repoRoot: string, state: TapState): void {\n const stateDir = getStateDir(repoRoot);\n fs.mkdirSync(stateDir, { recursive: true });\n const statePath = getStatePath(repoRoot);\n const tmp = `${statePath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(state, null, 2), \"utf-8\");\n fs.renameSync(tmp, statePath);\n}\n\nexport function createInitialState(\n commsDir: string,\n repoRoot: string,\n packageVersion: string,\n): TapState {\n const now = new Date().toISOString();\n return {\n schemaVersion: SCHEMA_VERSION,\n createdAt: now,\n updatedAt: now,\n commsDir: path.resolve(commsDir),\n repoRoot: path.resolve(repoRoot),\n packageVersion,\n instances: {},\n };\n}\n\n// ─── Instance CRUD ─────────────────────────────────────────────\n\nexport function updateInstanceState(\n state: TapState,\n instanceId: InstanceId,\n instanceState: InstanceState,\n): TapState {\n return {\n ...state,\n updatedAt: new Date().toISOString(),\n instances: {\n ...state.instances,\n [instanceId]: instanceState,\n },\n };\n}\n\nexport function removeInstanceState(\n state: TapState,\n instanceId: InstanceId,\n): TapState {\n const { [instanceId]: _removed, ...remaining } = state.instances;\n return {\n ...state,\n updatedAt: new Date().toISOString(),\n instances: remaining,\n };\n}\n\nexport function getInstalledInstances(state: TapState): InstanceId[] {\n return (Object.keys(state.instances) as InstanceId[]).filter(\n (id) => state.instances[id]?.installed,\n );\n}\n\nexport function getInstanceArtifacts(\n state: TapState,\n instanceId: InstanceId,\n): OwnedArtifact[] {\n return state.instances[instanceId]?.ownedArtifacts ?? [];\n}\n\n// ─── Backup ────────────────────────────────────────────────────\n\nexport function ensureBackupDir(\n stateDir: string,\n instanceId: InstanceId,\n): string {\n const backupDir = path.join(stateDir, \"backups\", instanceId);\n fs.mkdirSync(backupDir, { recursive: true });\n return backupDir;\n}\n\nexport function backupFile(filePath: string, backupDir: string): string {\n const basename = path.basename(filePath);\n const hash = fileHash(filePath);\n const backupPath = path.join(backupDir, `${basename}.${hash}.bak`);\n fs.copyFileSync(filePath, backupPath);\n return backupPath;\n}\n\nexport function fileHash(filePath: string): string {\n if (!fs.existsSync(filePath)) return \"\";\n const content = fs.readFileSync(filePath);\n return crypto.createHash(\"sha256\").update(content).digest(\"hex\").slice(0, 16);\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst FALLBACK_VERSION = \"0.0.0\";\n\nexport function resolvePackageVersion(\n metaUrl: string = import.meta.url,\n): string {\n const moduleDir = path.dirname(fileURLToPath(metaUrl));\n const packageJsonPath = path.join(moduleDir, \"..\", \"package.json\");\n\n try {\n const parsed = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\")) as {\n version?: unknown;\n };\n if (typeof parsed.version === \"string\" && parsed.version.trim()) {\n return parsed.version;\n }\n } catch {\n // Fall through to the fixed fallback below.\n }\n\n return FALLBACK_VERSION;\n}\n\nexport const version = resolvePackageVersion();\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport * as os from \"node:os\";\nimport { logSuccess, logWarn } from \"./utils.js\";\nimport { replaceTomlTable, renderTomlTable, extractTomlTable } from \"./toml.js\";\n\nexport type PermissionMode = \"safe\" | \"full\";\n\n// ─── Claude Deny List ───────────────────────────────────────────\n\nconst CLAUDE_DENY_RULES = [\n \"Bash(git push --force:*)\",\n \"Bash(git push -f:*)\",\n \"Bash(git push --force-with-lease:*)\",\n \"Bash(git reset --hard:*)\",\n \"Bash(git checkout -- .:*)\",\n \"Bash(git clean -f:*)\",\n \"Bash(git clean -fd:*)\",\n \"Bash(git clean -fdx:*)\",\n \"Bash(git restore --source=:*)\",\n \"Bash(git branch -D:*)\",\n \"Bash(git stash drop:*)\",\n \"Bash(rm -rf:*)\",\n];\n\n/**\n * Apply Claude permission settings to .claude/settings.local.json.\n * Safe mode: adds deny list for destructive operations.\n * Full mode: removes tap-managed deny rules (restores full access).\n */\nexport function applyClaudePermissions(\n repoRoot: string,\n mode: PermissionMode,\n): { applied: boolean; warnings: string[] } {\n const warnings: string[] = [];\n const claudeDir = path.join(repoRoot, \".claude\");\n const settingsPath = path.join(claudeDir, \"settings.local.json\");\n\n fs.mkdirSync(claudeDir, { recursive: true });\n\n let settings: Record<string, unknown> = {};\n if (fs.existsSync(settingsPath)) {\n try {\n settings = JSON.parse(fs.readFileSync(settingsPath, \"utf-8\"));\n } catch {\n warnings.push(\n \".claude/settings.local.json was invalid JSON. Starting fresh.\",\n );\n settings = {};\n }\n }\n\n const existingDeny = Array.isArray(settings.deny)\n ? (settings.deny as string[])\n : [];\n\n if (mode === \"full\") {\n // Remove tap-managed deny rules, keep user-added ones\n const tapRuleSet = new Set(CLAUDE_DENY_RULES);\n const cleaned = existingDeny.filter((r) => !tapRuleSet.has(r));\n settings.deny = cleaned;\n\n const tmp = `${settingsPath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(settings, null, 2) + \"\\n\", \"utf-8\");\n fs.renameSync(tmp, settingsPath);\n\n logWarn(\"Claude: full mode — tap deny rules removed. Use with caution.\");\n warnings.push(\"Full permission mode: tap deny rules removed.\");\n return { applied: true, warnings };\n }\n\n // Safe mode: merge deny rules without duplicating\n const newDeny = [...new Set([...existingDeny, ...CLAUDE_DENY_RULES])];\n settings.deny = newDeny;\n\n const tmp = `${settingsPath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(settings, null, 2) + \"\\n\", \"utf-8\");\n fs.renameSync(tmp, settingsPath);\n\n logSuccess(\n `Claude: ${CLAUDE_DENY_RULES.length} deny rules applied to .claude/settings.local.json`,\n );\n\n return { applied: true, warnings };\n}\n\n// ─── Codex Config Patching ──────────────────────────────────────\n\nfunction findCodexConfigPath(): string {\n return path.join(os.homedir(), \".codex\", \"config.toml\");\n}\n\nfunction canonicalizeTrustPath(targetPath: string): string {\n let resolved = path.resolve(targetPath).replace(/\\//g, \"\\\\\");\n const driveRoot = /^[A-Za-z]:\\\\$/;\n if (!driveRoot.test(resolved)) {\n resolved = resolved.replace(/\\\\+$/g, \"\");\n }\n return resolved.startsWith(\"\\\\\\\\?\\\\\") ? resolved : `\\\\\\\\?\\\\${resolved}`;\n}\n\n/**\n * Apply Codex permission settings to ~/.codex/config.toml.\n * Safe mode: network full + trust project paths.\n * Full mode: danger-full-access warning (manual step).\n */\nexport function applyCodexPermissions(\n repoRoot: string,\n commsDir: string,\n mode: PermissionMode,\n): { applied: boolean; warnings: string[] } {\n const warnings: string[] = [];\n const configPath = findCodexConfigPath();\n\n // Read existing config\n fs.mkdirSync(path.dirname(configPath), { recursive: true });\n let content = \"\";\n if (fs.existsSync(configPath)) {\n content = fs.readFileSync(configPath, \"utf-8\");\n }\n\n // Both modes need trust paths\n const trustTargets = getCodexWritableRoots(repoRoot, commsDir);\n\n if (mode === \"full\") {\n // Full mode: danger-full-access + trust\n logWarn(\"Codex: full mode — setting sandbox to danger-full-access.\");\n warnings.push(\n \"Full mode: sandbox set to danger-full-access. Use with caution.\",\n );\n\n content = replaceTomlTable(\n content,\n \"sandbox\",\n renderTomlTable(\n \"sandbox\",\n { mode: \"danger-full-access\" },\n extractTomlTable(content, \"sandbox\"),\n ),\n );\n } else {\n // Safe mode: workspace-write + network full + writable_roots\n content = replaceTomlTable(\n content,\n \"sandbox\",\n renderTomlTable(\n \"sandbox\",\n { mode: \"workspace-write\", network_access: \"full\" },\n extractTomlTable(content, \"sandbox\"),\n ),\n );\n\n // Writable roots for workspace-write mode\n const forwardSlashRoots = trustTargets.map((r) => r.replace(/\\\\/g, \"/\"));\n content = replaceTomlTable(\n content,\n \"sandbox_workspace_write\",\n renderTomlTable(\n \"sandbox_workspace_write\",\n { writable_roots: forwardSlashRoots },\n extractTomlTable(content, \"sandbox_workspace_write\"),\n ),\n );\n\n // Windows elevated sandbox\n if (process.platform === \"win32\") {\n content = replaceTomlTable(\n content,\n \"windows\",\n renderTomlTable(\n \"windows\",\n { sandbox: \"elevated\" },\n extractTomlTable(content, \"windows\"),\n ),\n );\n }\n }\n\n // Trust project paths (both modes)\n for (const target of trustTargets) {\n const selector = `projects.'${canonicalizeTrustPath(target)}'`;\n content = replaceTomlTable(\n content,\n selector,\n renderTomlTable(\n selector,\n { trust_level: \"trusted\" },\n extractTomlTable(content, selector),\n ),\n );\n }\n\n // Write back\n const tmp = `${configPath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, content, \"utf-8\");\n fs.renameSync(tmp, configPath);\n\n const modeLabel =\n mode === \"full\" ? \"danger-full-access\" : \"workspace-write, network=full\";\n logSuccess(\n `Codex: sandbox=${modeLabel}, ${trustTargets.length} path(s) trusted`,\n );\n\n return { applied: true, warnings };\n}\n\n// ─── Codex Writable Roots ───────────────────────────────────────\n\nexport function getCodexWritableRoots(\n repoRoot: string,\n commsDir: string,\n): string[] {\n const roots = [repoRoot, commsDir];\n\n // Add worktree siblings\n const parent = path.dirname(repoRoot);\n for (let i = 1; i <= 4; i++) {\n const wtPath = path.join(parent, `hua-wt-${i}`);\n if (fs.existsSync(wtPath)) roots.push(wtPath);\n }\n\n return [...new Set(roots.map((r) => path.resolve(r)))];\n}\n\n// ─── Permission Summary ────────────────────────────────────────\n\nexport interface PermissionSummary {\n mode: PermissionMode;\n claude: { applied: boolean; denyCount: number; warnings: string[] };\n codex: { applied: boolean; trustedPaths: string[]; warnings: string[] };\n}\n\nexport function buildPermissionSummary(\n mode: PermissionMode,\n repoRoot: string,\n commsDir: string,\n): PermissionSummary {\n const trustedPaths = getCodexWritableRoots(repoRoot, commsDir);\n\n return {\n mode,\n claude: {\n applied: true,\n denyCount: mode === \"safe\" ? CLAUDE_DENY_RULES.length : 0,\n warnings: mode === \"full\" ? [\"Full mode: tap deny rules removed.\"] : [],\n },\n codex: {\n applied: true,\n trustedPaths,\n warnings:\n mode === \"full\"\n ? [\"Full mode: sandbox set to danger-full-access.\"]\n : [],\n },\n };\n}\n","function splitLines(content: string): string[] {\n return content.replace(/\\r\\n/g, \"\\n\").split(\"\\n\");\n}\n\nfunction tableHeader(selector: string): string {\n return `[${selector}]`;\n}\n\nfunction findTableRange(\n lines: string[],\n selector: string,\n): { start: number; end: number } | null {\n const header = tableHeader(selector);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].trim() !== header) continue;\n\n let end = lines.length;\n for (let j = i + 1; j < lines.length; j++) {\n const trimmed = lines[j].trim();\n if (trimmed.startsWith(\"[\") && trimmed.endsWith(\"]\")) {\n end = j;\n break;\n }\n }\n return { start: i, end };\n }\n return null;\n}\n\nfunction escapeBasicString(value: string): string {\n return value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n}\n\nfunction renderValue(value: string | string[]): string {\n if (Array.isArray(value)) {\n return `[${value.map((item) => `\"${escapeBasicString(item)}\"`).join(\", \")}]`;\n }\n return `\"${escapeBasicString(value)}\"`;\n}\n\nexport function extractTomlTable(\n content: string,\n selector: string,\n): string | null {\n const lines = splitLines(content);\n const range = findTableRange(lines, selector);\n if (!range) return null;\n return `${lines.slice(range.start, range.end).join(\"\\n\")}\\n`;\n}\n\nexport function removeTomlTable(content: string, selector: string): string {\n const lines = splitLines(content);\n const range = findTableRange(lines, selector);\n if (!range) return content;\n\n const next = [...lines.slice(0, range.start), ...lines.slice(range.end)];\n return `${trimTomlDocument(next.join(\"\\n\"))}\\n`;\n}\n\nexport function replaceTomlTable(\n content: string,\n selector: string,\n replacement: string,\n): string {\n const lines = splitLines(content);\n const range = findTableRange(lines, selector);\n const replacementLines = replacement.replace(/\\r\\n/g, \"\\n\").trimEnd().split(\"\\n\");\n\n if (!range) {\n const doc = trimTomlDocument(content);\n if (!doc) return `${replacement.trimEnd()}\\n`;\n return `${doc}\\n\\n${replacement.trimEnd()}\\n`;\n }\n\n const next = [\n ...lines.slice(0, range.start),\n ...replacementLines,\n ...lines.slice(range.end),\n ];\n return `${trimTomlDocument(next.join(\"\\n\"))}\\n`;\n}\n\nexport function renderTomlTable(\n selector: string,\n entries: Record<string, string | string[]>,\n existingContent?: string | null,\n): string {\n const preserved = parseTomlAssignments(existingContent ?? \"\");\n const merged: Record<string, string | string[]> = { ...preserved, ...entries };\n\n const lines = [tableHeader(selector)];\n for (const [key, value] of Object.entries(merged)) {\n lines.push(`${key} = ${renderValue(value)}`);\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nexport function parseTomlAssignments(\n tableContent: string,\n): Record<string, string | string[]> {\n const lines = splitLines(tableContent);\n const values: Record<string, string | string[]> = {};\n\n for (const rawLine of lines) {\n const line = rawLine.trim();\n if (!line || line.startsWith(\"#\") || (line.startsWith(\"[\") && line.endsWith(\"]\"))) {\n continue;\n }\n\n const match = line.match(/^([A-Za-z0-9_.-]+)\\s*=\\s*(.+)$/);\n if (!match) continue;\n\n const [, key, rawValue] = match;\n const value = rawValue.trim();\n\n if (value.startsWith(\"[\") && value.endsWith(\"]\")) {\n const items = value\n .slice(1, -1)\n .split(\",\")\n .map((item) => item.trim())\n .filter(Boolean)\n .map(unquoteTomlString);\n values[key] = items;\n continue;\n }\n\n values[key] = unquoteTomlString(value);\n }\n\n return values;\n}\n\nexport function trimTomlDocument(content: string): string {\n return content.replace(/\\s+$/g, \"\").replace(/\\n{3,}/g, \"\\n\\n\");\n}\n\nfunction unquoteTomlString(value: string): string {\n if (\n (value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\n ) {\n const inner = value.slice(1, -1);\n return value.startsWith('\"')\n ? inner.replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, \"\\\\\")\n : inner;\n }\n return value;\n}\n","import {\n loadState,\n saveState,\n updateInstanceState,\n ensureBackupDir,\n} from \"../state.js\";\nimport {\n findRepoRoot,\n isValidRuntime,\n createAdapterContext,\n parseArgs,\n buildInstanceId,\n findPortConflict,\n log,\n logSuccess,\n logWarn,\n logError,\n logHeader,\n} from \"../utils.js\";\nimport { getAdapter } from \"../adapters/index.js\";\nimport {\n startBridge,\n findNextAvailableAppServerPort,\n} from \"../engine/bridge.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport {\n createInstanceConfig,\n saveInstanceConfig,\n} from \"../config/instance-config.js\";\nimport type {\n RuntimeName,\n BridgeState,\n HeadlessConfig,\n AgentRole,\n CommandResult,\n} from \"../types.js\";\n\nconst ADD_HELP = `\nUsage:\n tap add <claude|codex|gemini> [options]\n\nDescription:\n Install a runtime instance and configure it to use tap.\n\nOptions:\n --name <name> Instance name (default: runtime name)\n --port <port> Port for app-server bridge\n --agent-name <name> Agent display name for bridge identification\n --force Re-install even if already configured\n --headless Enable headless reviewer mode (requires --name)\n --role <role> Headless role: reviewer, validator, long-running\n --help, -h Show help\n\nExamples:\n npx @hua-labs/tap add claude\n npx @hua-labs/tap add codex --name reviewer --port 4501 --headless --role reviewer\n`.trim();\n\nfunction normalizeAgentName(value: string | null | undefined): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n\n const trimmed = value.trim();\n return trimmed ? trimmed : null;\n}\n\nfunction resolveAgentName(options: {\n explicit?: string | null;\n env?: string | null;\n stored?: string | null;\n fallback?: string | null;\n}): string | null {\n return (\n normalizeAgentName(options.explicit) ??\n normalizeAgentName(options.stored) ??\n normalizeAgentName(options.env) ??\n normalizeAgentName(options.fallback) ??\n null\n );\n}\n\nexport async function addCommand(args: string[]): Promise<CommandResult> {\n const { positional, flags } = parseArgs(args);\n\n if (flags[\"help\"] === true || flags[\"h\"] === true) {\n log(ADD_HELP);\n return {\n ok: true,\n command: \"add\",\n code: \"TAP_NO_OP\",\n message: ADD_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const runtimeArg = positional[0];\n\n if (!runtimeArg) {\n return {\n ok: false,\n command: \"add\",\n code: \"TAP_INVALID_ARGUMENT\",\n message:\n \"Missing runtime argument. Usage: npx @hua-labs/tap add <claude|codex|gemini> [--name <name>] [--port <port>] [--agent-name <name>] [--headless] [--role <role>]\",\n warnings: [],\n data: {},\n };\n }\n\n if (!isValidRuntime(runtimeArg)) {\n return {\n ok: false,\n command: \"add\",\n code: \"TAP_RUNTIME_UNKNOWN\",\n message: `Unknown runtime: ${runtimeArg}. Available: claude, codex, gemini`,\n warnings: [],\n data: {},\n };\n }\n\n const runtime: RuntimeName = runtimeArg;\n const instanceName =\n typeof flags[\"name\"] === \"string\" ? flags[\"name\"] : undefined;\n const instanceId = buildInstanceId(runtime, instanceName);\n const portStr = typeof flags[\"port\"] === \"string\" ? flags[\"port\"] : undefined;\n const port = portStr ? Number(portStr) : null;\n const agentNameFlag = normalizeAgentName(\n typeof flags[\"agent-name\"] === \"string\" ? flags[\"agent-name\"] : null,\n );\n const force = flags[\"force\"] === true;\n const headlessFlag = flags[\"headless\"] === true;\n const roleArg = typeof flags[\"role\"] === \"string\" ? flags[\"role\"] : undefined;\n\n // Validate --role value\n const validRoles: AgentRole[] = [\"reviewer\", \"validator\", \"long-running\"];\n if (roleArg && !validRoles.includes(roleArg as AgentRole)) {\n return {\n ok: false,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_INVALID_ARGUMENT\",\n message: `Invalid role: ${roleArg}. Available: ${validRoles.join(\", \")}`,\n warnings: [],\n data: {},\n };\n }\n\n // --headless requires --name (for instance isolation)\n if (headlessFlag && !instanceName) {\n return {\n ok: false,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_INVALID_ARGUMENT\",\n message: \"--headless requires --name for instance isolation\",\n warnings: [],\n data: {},\n };\n }\n\n // Build headless config\n const headless: HeadlessConfig | null = headlessFlag\n ? {\n enabled: true,\n role: (roleArg as AgentRole) ?? \"reviewer\",\n maxRounds: 5,\n qualitySeverityFloor: \"high\",\n }\n : null;\n\n if (portStr && (port === null || isNaN(port) || port < 1 || port > 65535)) {\n return {\n ok: false,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_INVALID_ARGUMENT\",\n message: `Invalid port: ${portStr}. Must be between 1 and 65535.`,\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n const adapter = getAdapter(runtime);\n\n if (!state) {\n return {\n ok: false,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const existingInstance = state.instances[instanceId];\n const mode = adapter.bridgeMode();\n const envAgentName = normalizeAgentName(\n process.env.TAP_AGENT_NAME ?? process.env.CODEX_TAP_AGENT_NAME,\n );\n const defaultAgentName = mode === \"app-server\" ? instanceId : null;\n const resolvedAgentName = resolveAgentName({\n explicit: agentNameFlag,\n env: envAgentName,\n stored: existingInstance?.agentName ?? null,\n fallback: defaultAgentName,\n });\n\n if (existingInstance?.installed && !force) {\n if (resolvedAgentName !== existingInstance.agentName) {\n const updatedState = updateInstanceState(state, instanceId, {\n ...existingInstance,\n agentName: resolvedAgentName,\n });\n saveState(repoRoot, updatedState);\n\n // Sync instance config if it exists (Phase 1-2)\n const { config: cfg } = resolveConfig({}, repoRoot);\n try {\n const {\n loadInstanceConfig: loadInstCfg,\n updateInstanceConfig: updateInstCfg,\n saveInstanceConfig: saveInstCfg,\n } = await import(\"../config/instance-config.js\");\n const existing = loadInstCfg(cfg.stateDir, instanceId);\n if (existing) {\n const updated = updateInstCfg(existing, {\n agentName: resolvedAgentName,\n });\n saveInstCfg(cfg.stateDir, updated);\n }\n } catch {\n // instance config sync failed — non-fatal\n }\n\n return {\n ok: true,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_ADD_OK\",\n message:\n resolvedAgentName === null\n ? `${instanceId} updated`\n : `${instanceId} agent name updated to \"${resolvedAgentName}\".`,\n warnings: [],\n data: {\n updatedFields: [\"agentName\"],\n agentName: resolvedAgentName,\n },\n };\n }\n\n return {\n ok: true,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_NO_OP\",\n message: `${instanceId} is already installed. Use --force to re-install.`,\n warnings: [],\n data: {},\n };\n }\n\n // Port conflict check\n if (port !== null) {\n const conflict = findPortConflict(state, port, instanceId);\n if (conflict) {\n return {\n ok: false,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_PORT_CONFLICT\",\n message: `Port ${port} is already used by instance \"${conflict}\".`,\n warnings: [],\n data: { conflictingInstance: conflict },\n };\n }\n }\n\n logHeader(`@hua-labs/tap add ${instanceId}`);\n if (instanceName) log(`Instance name: ${instanceName}`);\n if (port !== null) log(`Port: ${port}`);\n if (resolvedAgentName) log(`Agent name: ${resolvedAgentName}`);\n const ctx = {\n ...createAdapterContext(state.commsDir, repoRoot),\n instanceId,\n agentName: resolvedAgentName ?? undefined,\n };\n const warnings: string[] = [];\n\n // 1. Probe\n log(\"Probing runtime...\");\n const probe = await adapter.probe(ctx);\n\n if (!probe.installed) {\n return {\n ok: false,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_RUNTIME_NOT_FOUND\",\n message: `${runtime} runtime not found.`,\n warnings: probe.warnings,\n data: { issues: probe.issues },\n };\n }\n\n logSuccess(`Found ${runtime} (${probe.runtimeCommand ?? \"unknown\"})`);\n if (probe.configPath) log(`Config: ${probe.configPath}`);\n warnings.push(...probe.warnings);\n for (const w of probe.warnings) logWarn(w);\n\n // 2. Plan\n log(\"Planning patches...\");\n const plan = await adapter.plan(ctx, probe);\n warnings.push(...plan.warnings);\n\n if (plan.conflicts.length > 0) {\n logWarn(\"Conflicts detected:\");\n for (const c of plan.conflicts) logWarn(` ${c}`);\n }\n\n log(`Operations: ${plan.operations.length}`);\n log(`Artifacts: ${plan.ownedArtifacts.length}`);\n for (const w of plan.warnings) logWarn(w);\n\n // 3. Check for no-op plan\n if (plan.operations.length === 0) {\n const failureMessage =\n probe.issues[0] ??\n plan.warnings[0] ??\n probe.warnings[0] ??\n \"No operations to apply. Runtime not configured.\";\n const failureCode = /MCP server/i.test(failureMessage)\n ? \"TAP_LOCAL_SERVER_MISSING\"\n : \"TAP_PATCH_FAILED\";\n\n return {\n ok: false,\n command: \"add\",\n runtime,\n instanceId,\n code: failureCode,\n message: failureMessage,\n warnings,\n data: { planOps: 0 },\n };\n }\n\n // 4. Backup\n const backupDir = ensureBackupDir(ctx.stateDir, instanceId);\n log(`Backup dir: ${backupDir}`);\n\n // 5. Apply\n log(\"Applying patches...\");\n const result = await adapter.apply(ctx, plan);\n warnings.push(...result.warnings);\n\n if (!result.success) {\n return {\n ok: false,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_PATCH_FAILED\",\n message: \"Failed to apply patches.\",\n warnings,\n data: { appliedOps: result.appliedOps },\n };\n }\n\n logSuccess(`Applied ${result.appliedOps} operation(s)`);\n for (const f of result.changedFiles) logSuccess(`Modified: ${f}`);\n for (const w of result.warnings) logWarn(w);\n\n // 6. Verify\n log(\"Verifying...\");\n const verify = await adapter.verify(ctx, plan);\n warnings.push(...verify.warnings);\n\n for (const check of verify.checks) {\n if (check.passed) {\n logSuccess(`${check.name}`);\n } else {\n logError(`${check.name}: ${check.message ?? \"failed\"}`);\n }\n }\n\n if (!verify.ok) {\n logWarn(\n \"Verification had failures. Runtime may need manual configuration.\",\n );\n }\n\n // Resolve config for bridge + instance config\n const { config: resolvedCfg } = resolveConfig({}, repoRoot);\n\n // 7. Start bridge if needed (app-server mode only)\n let bridge: BridgeState | null = null;\n let effectivePort = port;\n if (mode === \"app-server\") {\n const bridgeScript = adapter.resolveBridgeScript?.(ctx);\n if (!bridgeScript) {\n logWarn(\"Bridge script not found. Bridge not started.\");\n warnings.push(\"Bridge script not found. Run bridge manually.\");\n } else {\n // Auto-assign a free port for managed codex instances without --port\n if (effectivePort == null && runtime === \"codex\") {\n const currentState = loadState(repoRoot) ?? state;\n effectivePort = await findNextAvailableAppServerPort(\n currentState,\n resolvedCfg.appServerUrl,\n 4501,\n instanceId,\n );\n log(`Auto-assigned port ${effectivePort} for ${instanceId}`);\n }\n log(`Starting bridge: ${bridgeScript}`);\n try {\n const manageAppServer = runtime === \"codex\";\n bridge = await startBridge({\n instanceId,\n runtime,\n stateDir: ctx.stateDir,\n commsDir: ctx.commsDir,\n bridgeScript,\n platform: ctx.platform,\n agentName: resolvedAgentName ?? undefined,\n runtimeCommand: resolvedCfg.runtimeCommand,\n appServerUrl: resolvedCfg.appServerUrl,\n repoRoot,\n port: effectivePort ?? undefined,\n manageAppServer,\n headless,\n });\n logSuccess(`Bridge started (PID: ${bridge.pid})`);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n logWarn(`Bridge not started: ${msg}`);\n warnings.push(`Bridge not started: ${msg}`);\n }\n }\n }\n\n // 8. Create/update instance config (source-of-truth — Phase 1-2)\n // Build the actual appServerUrl with the effective port (may differ from default)\n let effectiveAppServerUrl = resolvedCfg.appServerUrl;\n if (effectivePort != null) {\n try {\n const parsed = new URL(resolvedCfg.appServerUrl);\n parsed.port = String(effectivePort);\n effectiveAppServerUrl = parsed.toString().replace(/\\/$/, \"\");\n } catch {\n // URL parse failed — use base URL as-is\n }\n }\n // Map headless role to permission role\n const permRole =\n roleArg === \"reviewer\"\n ? (\"reviewer\" as const)\n : headlessFlag\n ? (\"implementer\" as const) // non-reviewer headless agents get workspace-write\n : undefined;\n const instConfig = createInstanceConfig({\n instanceId,\n runtime,\n agentName: resolvedAgentName,\n agentId: null,\n port: effectivePort,\n appServerUrl: effectiveAppServerUrl,\n commsDir: ctx.commsDir,\n stateDir: ctx.stateDir,\n repoRoot,\n role: permRole,\n });\n // Baseline runtime config hash so drift detection works from the start\n if (probe.configPath) {\n try {\n const { computeFileHash } = await import(\"../config/drift-detector.js\");\n const runtimeHash = computeFileHash(probe.configPath);\n if (runtimeHash) {\n instConfig.runtimeConfigHash = runtimeHash;\n instConfig.lastSyncedToRuntime = new Date().toISOString();\n }\n } catch {\n // non-fatal — hash will be backfilled by doctor --fix\n }\n }\n const instConfigPath = saveInstanceConfig(ctx.stateDir, instConfig);\n logSuccess(`Instance config: ${instConfigPath}`);\n\n // 9. Save state\n const instanceState = {\n instanceId,\n runtime,\n agentName: resolvedAgentName,\n port: effectivePort,\n installed: true,\n configPath: probe.configPath ?? \"\",\n bridgeMode: mode,\n restartRequired: result.restartRequired,\n ownedArtifacts: result.ownedArtifacts,\n backupPath: backupDir,\n lastAppliedHash: result.lastAppliedHash,\n lastVerifiedAt: verify.ok ? new Date().toISOString() : null,\n bridge,\n manageAppServer: runtime === \"codex\",\n noAuth: false,\n headless,\n configHash: instConfig.configHash,\n configSourceFile: instConfigPath,\n warnings: Array.from(new Set([...result.warnings, ...verify.warnings])),\n };\n\n const newState = updateInstanceState(state, instanceId, instanceState);\n saveState(repoRoot, newState);\n logSuccess(\"State saved\");\n\n if (result.restartRequired) {\n logWarn(`Restart ${runtime} to pick up the new configuration.`);\n }\n\n // Claude-specific: real-time notification hint\n if (runtime === \"claude\") {\n log(\"\");\n log(\"For real-time notifications:\");\n log(\" claude --dangerously-load-development-channels server:tap-comms\");\n log(\"Or polling mode (tools still work):\");\n log(\" claude\");\n }\n\n logHeader(\"Done!\");\n\n return {\n ok: true,\n command: \"add\",\n runtime,\n instanceId,\n code: \"TAP_ADD_OK\",\n message: `${instanceId} configured`,\n warnings,\n data: {\n appliedOps: result.appliedOps,\n restartRequired: result.restartRequired,\n changedFiles: result.changedFiles,\n verified: verify.ok,\n },\n };\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { execSync } from \"node:child_process\";\nimport { fileHash, backupFile, ensureBackupDir } from \"../state.js\";\nimport { buildManagedMcpServerSpec } from \"./common.js\";\nimport type {\n RuntimeAdapter,\n AdapterContext,\n ProbeResult,\n PatchPlan,\n ApplyResult,\n VerifyResult,\n BridgeMode,\n OwnedArtifact,\n PatchOp,\n VerifyCheck,\n} from \"../types.js\";\n\nconst MCP_SERVER_KEY = \"tap\";\n\n// Legacy key name — used for auto-migration from pre-0.3 configs\nconst OLD_MCP_SERVER_KEY = \"tap-comms\";\n\nfunction findMcpJsonPath(ctx: AdapterContext): string {\n return path.join(ctx.repoRoot, \".mcp.json\");\n}\n\nfunction findClaudeCommand(): string | null {\n try {\n execSync(\"claude --version\", { stdio: \"pipe\" });\n return \"claude\";\n } catch {\n return null;\n }\n}\n\nfunction buildMcpServerEntry(\n ctx: AdapterContext,\n): Record<string, unknown> | null {\n const managed = buildManagedMcpServerSpec(ctx, ctx.instanceId);\n if (!managed.command) return null;\n\n return {\n type: \"stdio\",\n command: managed.command,\n args: managed.args,\n env: managed.env,\n };\n}\n\nexport const claudeAdapter: RuntimeAdapter = {\n runtime: \"claude\",\n\n async probe(ctx: AdapterContext): Promise<ProbeResult> {\n const warnings: string[] = [];\n const issues: string[] = [];\n\n const configPath = findMcpJsonPath(ctx);\n const configExists = fs.existsSync(configPath);\n const runtimeCommand = findClaudeCommand();\n const canWrite = configExists\n ? (() => {\n try {\n fs.accessSync(configPath, fs.constants.W_OK);\n return true;\n } catch {\n return false;\n }\n })()\n : true; // Can create new file\n\n if (!runtimeCommand) {\n warnings.push(\n \"Claude CLI not found in PATH. Config will be created but may need manual setup.\",\n );\n }\n\n const managed = buildManagedMcpServerSpec(ctx);\n warnings.push(...managed.warnings);\n issues.push(...managed.issues);\n\n // Check if comms dir exists\n if (!fs.existsSync(ctx.commsDir)) {\n issues.push(\n `Comms directory not found: ${ctx.commsDir}. Run \"init\" first.`,\n );\n }\n\n return {\n installed: true, // Claude adapter always \"installed\" — .mcp.json is per-project\n configPath,\n configExists,\n runtimeCommand,\n version: null,\n canWrite,\n warnings,\n issues,\n };\n },\n\n async plan(ctx: AdapterContext, probe: ProbeResult): Promise<PatchPlan> {\n const configPath = probe.configPath ?? findMcpJsonPath(ctx);\n const conflicts: string[] = [];\n const warnings: string[] = [];\n const operations: PatchOp[] = [];\n const ownedArtifacts: OwnedArtifact[] = [];\n\n // Check for existing tap entry\n if (probe.configExists) {\n const raw = fs.readFileSync(configPath, \"utf-8\");\n try {\n const config = JSON.parse(raw);\n if (config.mcpServers?.[MCP_SERVER_KEY]) {\n conflicts.push(\n `Existing \"${MCP_SERVER_KEY}\" entry in .mcp.json will be overwritten.`,\n );\n }\n if (config.mcpServers?.[OLD_MCP_SERVER_KEY]) {\n conflicts.push(\n `Legacy \"${OLD_MCP_SERVER_KEY}\" entry will be migrated to \"${MCP_SERVER_KEY}\".`,\n );\n }\n } catch {\n warnings.push(\n \".mcp.json exists but is not valid JSON. Will be overwritten.\",\n );\n }\n }\n\n const serverEntry = buildMcpServerEntry(ctx);\n\n if (!serverEntry) {\n warnings.push(\n \"tap MCP server entry not found. Skipping .mcp.json patch. \" +\n \"Reinstall @hua-labs/tap or run from a repo with packages/tap-plugin/channels/ available.\",\n );\n return {\n runtime: \"claude\",\n operations: [],\n ownedArtifacts: [],\n backupDir: ensureBackupDir(ctx.stateDir, \"claude\"),\n restartRequired: false,\n conflicts,\n warnings,\n };\n }\n\n operations.push({\n type: probe.configExists ? \"merge\" : \"set\",\n path: configPath,\n key: `mcpServers.${MCP_SERVER_KEY}`,\n value: serverEntry,\n });\n\n ownedArtifacts.push({\n kind: \"json-path\",\n path: configPath,\n selector: `mcpServers.${MCP_SERVER_KEY}`,\n });\n\n const backupDir = ensureBackupDir(ctx.stateDir, \"claude\");\n\n return {\n runtime: \"claude\",\n operations,\n ownedArtifacts,\n backupDir,\n restartRequired: true,\n conflicts,\n warnings,\n };\n },\n\n async apply(_ctx: AdapterContext, plan: PatchPlan): Promise<ApplyResult> {\n const changedFiles: string[] = [];\n const warnings: string[] = [];\n let appliedOps = 0;\n\n for (const op of plan.operations) {\n try {\n if (op.type === \"set\" || op.type === \"merge\") {\n // Read or create .mcp.json\n let config: Record<string, unknown> = {};\n if (fs.existsSync(op.path)) {\n // Backup first\n backupFile(op.path, plan.backupDir);\n const raw = fs.readFileSync(op.path, \"utf-8\");\n try {\n config = JSON.parse(raw);\n } catch {\n // Invalid JSON, start fresh but backup the original\n warnings.push(\n `${op.path} was invalid JSON. Created backup and starting fresh.`,\n );\n }\n }\n\n // Migrate: remove legacy \"tap-comms\" key if present\n const servers = config.mcpServers as\n | Record<string, unknown>\n | undefined;\n if (servers?.[OLD_MCP_SERVER_KEY]) {\n delete servers[OLD_MCP_SERVER_KEY];\n }\n\n // Set nested key\n if (op.key) {\n setNestedKey(config, op.key, op.value);\n }\n\n // Write atomically\n const tmp = `${op.path}.tmp.${process.pid}`;\n fs.writeFileSync(\n tmp,\n JSON.stringify(config, null, 2) + \"\\n\",\n \"utf-8\",\n );\n fs.renameSync(tmp, op.path);\n changedFiles.push(op.path);\n appliedOps++;\n }\n } catch (err) {\n warnings.push(\n `Failed to apply op on ${op.path}: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n\n const lastAppliedHash =\n changedFiles.length > 0 ? fileHash(changedFiles[0]) : \"\";\n\n return {\n success: appliedOps > 0,\n appliedOps,\n backupCreated: true,\n lastAppliedHash,\n ownedArtifacts: plan.ownedArtifacts,\n changedFiles,\n restartRequired: plan.restartRequired,\n warnings,\n };\n },\n\n async verify(ctx: AdapterContext, plan: PatchPlan): Promise<VerifyResult> {\n const checks: VerifyCheck[] = [];\n const warnings: string[] = [];\n\n // 1. Config file exists\n const configPath = plan.operations[0]?.path;\n if (configPath) {\n checks.push({\n name: \"Config file exists\",\n passed: fs.existsSync(configPath),\n message: fs.existsSync(configPath)\n ? undefined\n : `${configPath} not found`,\n });\n\n // 2. Config is valid JSON\n if (fs.existsSync(configPath)) {\n try {\n const raw = fs.readFileSync(configPath, \"utf-8\");\n const config = JSON.parse(raw);\n checks.push({ name: \"Config is valid JSON\", passed: true });\n\n // 3. Managed entry present\n const entry = config.mcpServers?.[MCP_SERVER_KEY];\n checks.push({\n name: \"tap entry present\",\n passed: !!entry,\n message: entry\n ? undefined\n : `mcpServers.${MCP_SERVER_KEY} not found`,\n });\n\n // 4. Entry has correct env\n if (entry) {\n const hasCommsDir =\n normalizeTapCommsDir(entry.env?.TAP_COMMS_DIR) ===\n normalizeTapCommsDir(ctx.commsDir);\n checks.push({\n name: \"TAP_COMMS_DIR configured\",\n passed: hasCommsDir,\n message: hasCommsDir ? undefined : `Expected ${ctx.commsDir}`,\n });\n }\n } catch {\n checks.push({\n name: \"Config is valid JSON\",\n passed: false,\n message: \"Parse error\",\n });\n }\n }\n }\n\n // 5. Comms dir exists\n checks.push({\n name: \"Comms directory exists\",\n passed: fs.existsSync(ctx.commsDir),\n message: fs.existsSync(ctx.commsDir)\n ? undefined\n : `${ctx.commsDir} not found`,\n });\n\n // 6. Runtime command found\n const cmd = findClaudeCommand();\n checks.push({\n name: \"Claude CLI found\",\n passed: !!cmd,\n message: cmd ? undefined : \"claude not in PATH (non-blocking)\",\n });\n if (!cmd) {\n warnings.push(\n \"Claude CLI not in PATH. Config is ready but cannot verify runtime reads it.\",\n );\n }\n\n const ok = checks\n .filter((c) => c.name !== \"Claude CLI found\")\n .every((c) => c.passed);\n\n return { ok, checks, restartRequired: true, warnings };\n },\n\n bridgeMode(): BridgeMode {\n return \"native-push\";\n },\n};\n\n// ─── Helpers ────────────────────────────────────────────────────\n\nfunction setNestedKey(\n obj: Record<string, unknown>,\n keyPath: string,\n value: unknown,\n): void {\n const keys = keyPath.split(\".\");\n let current = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (typeof current[key] !== \"object\" || current[key] === null) {\n current[key] = {};\n }\n current = current[key] as Record<string, unknown>;\n }\n current[keys[keys.length - 1]] = value;\n}\n\nfunction normalizeTapCommsDir(value: unknown): string {\n return typeof value === \"string\"\n ? path.resolve(value).replace(/\\\\/g, \"/\")\n : \"\";\n}\n","import * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport { spawnSync } from \"node:child_process\";\nimport { fileURLToPath } from \"node:url\";\nimport type { AdapterContext } from \"../types.js\";\n\nexport interface CommandProbe {\n command: string | null;\n version: string | null;\n}\n\nexport interface ManagedMcpServerSpec {\n command: string | null;\n args: string[];\n env: Record<string, string>;\n sourcePath: string | null;\n warnings: string[];\n issues: string[];\n}\n\nexport function probeCommand(candidates: string[]): CommandProbe {\n for (const candidate of candidates) {\n const result = spawnSync(candidate, [\"--version\"], {\n encoding: \"utf-8\",\n shell: process.platform === \"win32\",\n });\n\n if (result.status === 0) {\n const version =\n `${result.stdout ?? \"\"}${result.stderr ?? \"\"}`.trim() || null;\n const absolutePath = resolveCommandPath(candidate);\n return { command: absolutePath ?? candidate, version };\n }\n }\n\n return { command: null, version: null };\n}\n\n/**\n * Resolve a command name to its absolute filesystem path.\n * Uses `where.exe` on Windows, `which` on Unix.\n * Returns null if resolution fails (falls back to original candidate).\n */\nfunction resolveCommandPath(command: string): string | null {\n // Skip if already absolute\n if (path.isAbsolute(command)) return command;\n\n const whichCmd = process.platform === \"win32\" ? \"where.exe\" : \"which\";\n try {\n const result = spawnSync(whichCmd, [command], {\n encoding: \"utf-8\",\n windowsHide: true,\n });\n if (result.status !== 0) return null;\n const lines = result.stdout\n .trim()\n .split(/\\r?\\n/)\n .map((l) => l.trim())\n .filter(Boolean);\n\n if (lines.length === 0) return null;\n\n if (process.platform === \"win32\") {\n // On Windows, where.exe may return extensionless shims before .cmd/.exe.\n // Extensionless shims work with `shell: true` but fail with direct spawn.\n // Always prefer .cmd/.exe results that are directly executable.\n const candidateExt = path.extname(command).toLowerCase();\n\n // 1. If candidate has extension, match it exactly\n if (candidateExt) {\n const extMatch = lines.find(\n (l) =>\n path.extname(l).toLowerCase() === candidateExt && fs.existsSync(l),\n );\n if (extMatch) return extMatch;\n }\n\n // 2. For bare names (no extension), prefer .cmd or .exe over extensionless\n const executableMatch = lines.find(\n (l) => /\\.(cmd|exe|ps1)$/i.test(l) && fs.existsSync(l),\n );\n if (executableMatch) return executableMatch;\n }\n\n // Fallback: first existing result\n const firstValid = lines.find((l) => fs.existsSync(l));\n return firstValid ?? null;\n } catch {\n return null;\n }\n}\n\nexport function getHomeDir(): string {\n return os.homedir();\n}\n\nexport function toForwardSlashPath(filePath: string): string {\n return path.resolve(filePath).replace(/\\\\/g, \"/\");\n}\n\nexport function canWriteOrCreate(filePath: string): boolean {\n try {\n if (fs.existsSync(filePath)) {\n fs.accessSync(filePath, fs.constants.W_OK);\n return true;\n }\n\n const parent = path.dirname(filePath);\n fs.mkdirSync(parent, { recursive: true });\n fs.accessSync(parent, fs.constants.W_OK);\n return true;\n } catch {\n return false;\n }\n}\n\n/** Detect paths that are ephemeral (npm _npx cache, fnm multishell, temp dirs). */\nfunction isEphemeralPath(p: string): boolean {\n const normalized = p.replace(/\\\\/g, \"/\").toLowerCase();\n return (\n normalized.includes(\"/_npx/\") ||\n normalized.includes(\"\\\\_npx\\\\\") ||\n normalized.includes(\"/fnm_multishells/\") ||\n normalized.includes(\"\\\\fnm_multishells\\\\\") ||\n normalized.includes(\"/tmp/\") ||\n normalized.includes(\"\\\\temp\\\\\")\n );\n}\n\nexport function findLocalTapCommsSource(ctx: AdapterContext): string | null {\n const candidates = [\n path.join(\n ctx.repoRoot,\n \"packages\",\n \"tap-plugin\",\n \"channels\",\n \"tap-comms.ts\",\n ),\n path.join(\n ctx.repoRoot,\n \"node_modules\",\n \"@hua-labs\",\n \"tap-plugin\",\n \"channels\",\n \"tap-comms.ts\",\n ),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) return candidate;\n }\n\n return null;\n}\n\nexport function findBundledTapCommsSource(\n metaUrl: string = import.meta.url,\n): string | null {\n const moduleDir = path.dirname(fileURLToPath(metaUrl));\n const candidates = [\n path.join(moduleDir, \"mcp-server.mjs\"),\n path.join(moduleDir, \"..\", \"mcp-server.mjs\"),\n path.join(moduleDir, \"..\", \"mcp-server.ts\"),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) return candidate;\n }\n\n return null;\n}\n\nexport function findTapCommsServerEntry(\n ctx: AdapterContext,\n metaUrl: string = import.meta.url,\n): string | null {\n return findBundledTapCommsSource(metaUrl) ?? findLocalTapCommsSource(ctx);\n}\n\nexport function findPreferredBunCommand(): string | null {\n const home = getHomeDir();\n const candidates =\n process.platform === \"win32\"\n ? [path.join(home, \".bun\", \"bin\", \"bun.exe\"), \"bun\", \"bun.cmd\"]\n : [path.join(home, \".bun\", \"bin\", \"bun\"), \"bun\"];\n\n for (const candidate of candidates) {\n if (path.isAbsolute(candidate) && !fs.existsSync(candidate)) continue;\n\n const result = spawnSync(candidate, [\"--version\"], {\n encoding: \"utf-8\",\n shell: process.platform === \"win32\",\n });\n if (result.status === 0) {\n return path.isAbsolute(candidate)\n ? toForwardSlashPath(candidate)\n : candidate;\n }\n }\n\n return null;\n}\n\nexport function buildManagedMcpServerSpec(\n ctx: AdapterContext,\n instanceId?: string,\n): ManagedMcpServerSpec {\n const sourcePath = findTapCommsServerEntry(ctx);\n const bunCommand = findPreferredBunCommand();\n const warnings: string[] = [];\n const issues: string[] = [];\n\n const env: Record<string, string> = {\n TAP_AGENT_NAME: ctx.agentName ?? \"<set-per-session>\",\n TAP_COMMS_DIR: toForwardSlashPath(ctx.commsDir),\n TAP_STATE_DIR: toForwardSlashPath(ctx.stateDir),\n TAP_REPO_ROOT: toForwardSlashPath(ctx.repoRoot),\n };\n if (instanceId) {\n env.TAP_AGENT_ID = instanceId;\n }\n\n if (!sourcePath) {\n issues.push(\n \"tap MCP server entry not found. Reinstall @hua-labs/tap or run from a repo with packages/tap-plugin/channels/ available.\",\n );\n return { command: null, args: [], env, sourcePath, warnings, issues };\n }\n\n // M201: bundled .mjs uses node; .ts source requires bun\n const isBundled = sourcePath.endsWith(\".mjs\");\n const isEphemeralSource = isEphemeralPath(sourcePath);\n let command: string | null = null;\n let args: string[] = [toForwardSlashPath(sourcePath)];\n\n // Ephemeral source path (npx cache) → always use stable launcher\n // This prevents persisting _npx cache paths in .mcp.json / config.toml\n if (isEphemeralSource && isBundled) {\n command = \"npx\";\n args = [\"@hua-labs/tap\", \"serve\"];\n warnings.push(\n \"Detected npx cache path. Using `npx @hua-labs/tap serve` as stable MCP launcher.\",\n );\n } else if (isBundled) {\n // Bundled .mjs — always use node (M201: bun dependency removed)\n const nodeProbe = probeCommand(\n process.platform === \"win32\" ? [\"node\", \"node.exe\"] : [\"node\"],\n );\n command = nodeProbe.command ?? \"node\";\n } else {\n // .ts source — requires bun for direct execution\n command = bunCommand;\n }\n\n if (!command) {\n issues.push(\n isBundled\n ? \"node is required to run the compiled MCP server (.mjs). Ensure node is in PATH.\"\n : \"bun is required to run the repo-local tap MCP server (.ts source). Install bun: https://bun.sh\",\n );\n return { command: null, args: [], env, sourcePath, warnings, issues };\n }\n\n return {\n command,\n args,\n env,\n sourcePath,\n warnings,\n issues,\n };\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { backupFile, ensureBackupDir, fileHash } from \"../state.js\";\nimport {\n artifactBackupPath,\n writeArtifactBackup,\n} from \"../artifact-backups.js\";\nimport {\n extractTomlTable,\n parseTomlAssignments,\n removeTomlTable,\n renderTomlTable,\n replaceTomlTable,\n} from \"../toml.js\";\nimport type {\n AdapterContext,\n ApplyResult,\n BridgeMode,\n OwnedArtifact,\n PatchOp,\n PatchPlan,\n ProbeResult,\n RuntimeAdapter,\n VerifyCheck,\n VerifyResult,\n} from \"../types.js\";\nimport {\n buildManagedMcpServerSpec,\n canWriteOrCreate,\n getHomeDir,\n probeCommand,\n} from \"./common.js\";\nimport type { ManagedMcpServerSpec } from \"./common.js\";\n\nconst MCP_SELECTOR = \"mcp_servers.tap\";\nconst ENV_SELECTOR = \"mcp_servers.tap.env\";\nconst SESSION_NEUTRAL_AGENT_NAME = \"<set-per-session>\";\n\n// Legacy key names — used for auto-migration from pre-0.3 configs\nconst OLD_MCP_SELECTOR = \"mcp_servers.tap-comms\";\nconst OLD_ENV_SELECTOR = \"mcp_servers.tap-comms.env\";\n\nfunction findCodexConfigPath(): string {\n return path.join(getHomeDir(), \".codex\", \"config.toml\");\n}\n\nfunction canonicalizeTrustPath(targetPath: string): string {\n let resolved = path.resolve(targetPath).replace(/\\//g, \"\\\\\");\n const driveRoot = /^[A-Za-z]:\\\\$/;\n if (!driveRoot.test(resolved)) {\n resolved = resolved.replace(/\\\\+$/g, \"\");\n }\n return resolved.startsWith(\"\\\\\\\\?\\\\\") ? resolved : `\\\\\\\\?\\\\${resolved}`;\n}\n\nfunction trustSelector(targetPath: string): string {\n return `projects.'${canonicalizeTrustPath(targetPath)}'`;\n}\n\nfunction getTrustTargets(ctx: AdapterContext): string[] {\n const targets = [ctx.repoRoot, process.cwd()];\n return [...new Set(targets.map((value) => path.resolve(value)))];\n}\n\nfunction buildManagedArtifacts(\n configPath: string,\n ctx: AdapterContext,\n): OwnedArtifact[] {\n const artifacts: OwnedArtifact[] = [\n { kind: \"toml-table\", path: configPath, selector: MCP_SELECTOR },\n { kind: \"toml-table\", path: configPath, selector: ENV_SELECTOR },\n ];\n\n for (const target of getTrustTargets(ctx)) {\n artifacts.push({\n kind: \"toml-table\",\n path: configPath,\n selector: trustSelector(target),\n });\n }\n\n return artifacts;\n}\n\nfunction readConfigOrEmpty(configPath: string): string {\n if (!fs.existsSync(configPath)) return \"\";\n return fs.readFileSync(configPath, \"utf-8\");\n}\n\nfunction writeTomlFile(filePath: string, content: string): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n const tmp = `${filePath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, content, \"utf-8\");\n fs.renameSync(tmp, filePath);\n}\n\nfunction buildSessionNeutralCodexSpec(\n ctx: AdapterContext,\n): ManagedMcpServerSpec {\n const managed = buildManagedMcpServerSpec(ctx);\n const env: Record<string, string> = {\n ...managed.env,\n TAP_AGENT_NAME: SESSION_NEUTRAL_AGENT_NAME,\n };\n delete env.TAP_AGENT_ID;\n return { ...managed, env };\n}\n\nfunction buildCodexEnvEntries(\n existingTable: string | null,\n managedEnv: Record<string, string | string[]>,\n): Record<string, string | string[]> {\n const preservedEnv = parseTomlAssignments(existingTable ?? \"\");\n delete preservedEnv.TAP_AGENT_ID;\n return {\n ...preservedEnv,\n ...managedEnv,\n };\n}\n\nfunction verifyManagedToml(\n content: string,\n ctx: AdapterContext,\n configPath: string,\n): VerifyCheck[] {\n const checks: VerifyCheck[] = [];\n const managed = buildSessionNeutralCodexSpec(ctx);\n const mainTable = extractTomlTable(content, MCP_SELECTOR);\n const envTable = extractTomlTable(content, ENV_SELECTOR);\n\n checks.push({\n name: \"Codex config exists\",\n passed: fs.existsSync(configPath),\n message: fs.existsSync(configPath) ? undefined : `${configPath} not found`,\n });\n checks.push({\n name: \"tap MCP table present\",\n passed: !!mainTable,\n message: mainTable ? undefined : `${MCP_SELECTOR} not found`,\n });\n checks.push({\n name: \"tap env table present\",\n passed: !!envTable,\n message: envTable ? undefined : `${ENV_SELECTOR} not found`,\n });\n\n for (const target of getTrustTargets(ctx)) {\n const selector = trustSelector(target);\n const trustTable = extractTomlTable(content, selector);\n checks.push({\n name: `Trust table present: ${canonicalizeTrustPath(target)}`,\n passed: !!trustTable && trustTable.includes('trust_level = \"trusted\"'),\n message:\n trustTable && trustTable.includes('trust_level = \"trusted\"')\n ? undefined\n : `${selector} missing trust_level = \"trusted\"`,\n });\n }\n\n if (mainTable && managed.command) {\n const expectedArgs = managed.args\n .map((a) => `\"${a.replace(/\\\\/g, \"\\\\\\\\\")}\"`)\n .join(\", \");\n checks.push({\n name: \"Managed command configured\",\n passed:\n mainTable.includes(\n `command = \"${managed.command.replace(/\\\\/g, \"\\\\\\\\\")}\"`,\n ) && mainTable.includes(`args = [${expectedArgs}]`),\n message: \"Managed tap command/args do not match expected values\",\n });\n }\n\n if (mainTable) {\n const mainValues = parseTomlAssignments(mainTable);\n checks.push({\n name: \"approval_mode is auto\",\n passed: mainValues.approval_mode === \"auto\",\n message: mainValues.approval_mode\n ? `approval_mode is \"${mainValues.approval_mode}\", expected \"auto\"`\n : 'approval_mode missing, expected \"auto\"',\n });\n }\n\n if (envTable) {\n const envValues = parseTomlAssignments(envTable);\n checks.push({\n name: \"Managed TAP_AGENT_NAME is session-neutral\",\n passed: envValues.TAP_AGENT_NAME === managed.env.TAP_AGENT_NAME,\n message: `TAP_AGENT_NAME should be \"${SESSION_NEUTRAL_AGENT_NAME}\"`,\n });\n checks.push({\n name: \"Managed TAP_AGENT_ID is omitted\",\n passed: typeof envValues.TAP_AGENT_ID !== \"string\",\n message: \"TAP_AGENT_ID should not be persisted in Codex config\",\n });\n }\n\n return checks;\n}\n\nexport const codexAdapter: RuntimeAdapter = {\n runtime: \"codex\",\n\n async probe(ctx: AdapterContext): Promise<ProbeResult> {\n const warnings: string[] = [];\n const issues: string[] = [];\n const configPath = findCodexConfigPath();\n const configExists = fs.existsSync(configPath);\n const runtimeProbe = probeCommand(\n ctx.platform === \"win32\" ? [\"codex\", \"codex.cmd\"] : [\"codex\"],\n );\n\n if (!runtimeProbe.command) {\n warnings.push(\n \"Codex CLI not found in PATH. Config can still be written, but runtime verification will be limited.\",\n );\n }\n\n if (!fs.existsSync(ctx.commsDir)) {\n issues.push(\n `Comms directory not found: ${ctx.commsDir}. Run \"init\" first.`,\n );\n }\n\n const managed = buildManagedMcpServerSpec(ctx);\n warnings.push(...managed.warnings);\n issues.push(...managed.issues);\n\n return {\n installed: true,\n configPath,\n configExists,\n runtimeCommand: runtimeProbe.command,\n version: runtimeProbe.version,\n canWrite: canWriteOrCreate(configPath),\n warnings,\n issues,\n };\n },\n\n async plan(ctx: AdapterContext, probe: ProbeResult): Promise<PatchPlan> {\n const configPath = probe.configPath ?? findCodexConfigPath();\n const conflicts: string[] = [];\n const warnings: string[] = [];\n const operations: PatchOp[] = [];\n const ownedArtifacts = buildManagedArtifacts(configPath, ctx);\n\n if (probe.configExists) {\n const content = readConfigOrEmpty(configPath);\n if (extractTomlTable(content, MCP_SELECTOR)) {\n conflicts.push(`Existing ${MCP_SELECTOR} table will be updated.`);\n }\n if (extractTomlTable(content, OLD_MCP_SELECTOR)) {\n conflicts.push(\n `Legacy ${OLD_MCP_SELECTOR} table will be migrated to ${MCP_SELECTOR}.`,\n );\n }\n if (extractTomlTable(content, ENV_SELECTOR)) {\n conflicts.push(`Existing ${ENV_SELECTOR} table will be updated.`);\n }\n for (const target of getTrustTargets(ctx)) {\n const selector = trustSelector(target);\n if (extractTomlTable(content, selector)) {\n conflicts.push(`Existing ${selector} table will be updated.`);\n }\n }\n }\n\n for (const artifact of ownedArtifacts) {\n operations.push({\n type: probe.configExists ? \"merge\" : \"set\",\n path: configPath,\n key: artifact.selector,\n });\n }\n\n return {\n runtime: \"codex\",\n operations,\n ownedArtifacts,\n backupDir: ensureBackupDir(ctx.stateDir, \"codex\"),\n restartRequired: true,\n conflicts,\n warnings,\n };\n },\n\n async apply(ctx: AdapterContext, plan: PatchPlan): Promise<ApplyResult> {\n const configPath = plan.operations[0]?.path ?? findCodexConfigPath();\n const warnings: string[] = [];\n const changedFiles: string[] = [];\n const managed = buildSessionNeutralCodexSpec(ctx);\n\n warnings.push(...managed.warnings);\n if (managed.issues.length > 0 || !managed.command) {\n return {\n success: false,\n appliedOps: 0,\n backupCreated: false,\n lastAppliedHash: \"\",\n ownedArtifacts: [],\n changedFiles,\n restartRequired: false,\n warnings: [...managed.warnings, ...managed.issues],\n };\n }\n\n const existingContent = readConfigOrEmpty(configPath);\n if (fs.existsSync(configPath) && existingContent) {\n backupFile(configPath, plan.backupDir);\n }\n\n const artifactsWithBackups = plan.ownedArtifacts.map((artifact) => {\n const previousContent =\n artifact.kind === \"toml-table\"\n ? extractTomlTable(existingContent, artifact.selector)\n : null;\n const backupPath = artifactBackupPath(\n plan.backupDir,\n artifact.kind,\n artifact.selector,\n );\n\n writeArtifactBackup(backupPath, {\n kind: \"toml-table\",\n selector: artifact.selector,\n existed: previousContent !== null,\n content: previousContent ?? undefined,\n });\n\n return { ...artifact, backupPath };\n });\n\n let nextContent = existingContent;\n\n // Migrate: remove legacy \"tap-comms\" keys if present\n if (extractTomlTable(nextContent, OLD_ENV_SELECTOR)) {\n nextContent = removeTomlTable(nextContent, OLD_ENV_SELECTOR);\n }\n if (extractTomlTable(nextContent, OLD_MCP_SELECTOR)) {\n nextContent = removeTomlTable(nextContent, OLD_MCP_SELECTOR);\n }\n\n nextContent = replaceTomlTable(\n nextContent,\n MCP_SELECTOR,\n renderTomlTable(\n MCP_SELECTOR,\n {\n command: managed.command,\n args: managed.args,\n approval_mode: \"auto\",\n },\n extractTomlTable(existingContent, MCP_SELECTOR),\n ),\n );\n nextContent = replaceTomlTable(\n nextContent,\n ENV_SELECTOR,\n renderTomlTable(\n ENV_SELECTOR,\n buildCodexEnvEntries(\n extractTomlTable(existingContent, ENV_SELECTOR),\n managed.env,\n ),\n ),\n );\n\n for (const target of getTrustTargets(ctx)) {\n const selector = trustSelector(target);\n nextContent = replaceTomlTable(\n nextContent,\n selector,\n renderTomlTable(\n selector,\n { trust_level: \"trusted\" },\n extractTomlTable(existingContent, selector),\n ),\n );\n }\n\n writeTomlFile(configPath, nextContent);\n changedFiles.push(configPath);\n\n return {\n success: true,\n appliedOps: plan.operations.length,\n backupCreated: true,\n lastAppliedHash: fileHash(configPath),\n ownedArtifacts: artifactsWithBackups,\n changedFiles,\n restartRequired: true,\n warnings,\n };\n },\n\n async verify(ctx: AdapterContext, plan: PatchPlan): Promise<VerifyResult> {\n const warnings: string[] = [];\n const configPath = plan.operations[0]?.path ?? findCodexConfigPath();\n const content = readConfigOrEmpty(configPath);\n const runtimeProbe = probeCommand(\n ctx.platform === \"win32\" ? [\"codex\", \"codex.cmd\"] : [\"codex\"],\n );\n\n const checks = verifyManagedToml(content, ctx, configPath);\n checks.push({\n name: \"Comms directory exists\",\n passed: fs.existsSync(ctx.commsDir),\n message: fs.existsSync(ctx.commsDir)\n ? undefined\n : `${ctx.commsDir} not found`,\n });\n checks.push({\n name: \"Codex CLI found\",\n passed: !!runtimeProbe.command,\n message: runtimeProbe.command\n ? undefined\n : \"codex not in PATH (non-blocking)\",\n });\n\n if (!runtimeProbe.command) {\n warnings.push(\n \"Codex CLI not in PATH. Config is written, but runtime verification is partial.\",\n );\n }\n\n return {\n ok: checks\n .filter((check) => check.name !== \"Codex CLI found\")\n .every((check) => check.passed),\n checks,\n restartRequired: true,\n warnings,\n };\n },\n\n bridgeMode(): BridgeMode {\n return \"app-server\";\n },\n\n resolveBridgeScript(ctx: AdapterContext): string | null {\n const distDir = path.dirname(fileURLToPath(import.meta.url));\n const candidates = [\n // 1. Relative to bundled CLI (npm install / npx)\n path.join(distDir, \"bridges\", \"codex-bridge-runner.mjs\"),\n // 2. Monorepo development — dist inside repo\n path.join(\n ctx.repoRoot,\n \"packages\",\n \"tap-comms\",\n \"dist\",\n \"bridges\",\n \"codex-bridge-runner.mjs\",\n ),\n // 3. Source file — dev mode with strip-types\n path.join(\n ctx.repoRoot,\n \"packages\",\n \"tap-comms\",\n \"src\",\n \"bridges\",\n \"codex-bridge-runner.ts\",\n ),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) return candidate;\n }\n\n return null;\n },\n};\n\n// ─── Public helpers ──────────────────────────────────────────\n\n/**\n * Ensure Codex config.toml has approval_mode = \"auto\" for the tap MCP server.\n * Codex resets this to \"approve\" on session restart, so we re-patch before\n * bridge startup. Only patches when [mcp_servers.tap] already exists\n * (i.e. tap was previously added to this Codex installation).\n *\n * Returns the config path if patched, null otherwise.\n */\nexport function patchCodexApprovalMode(): string | null {\n const configPath = findCodexConfigPath();\n if (!fs.existsSync(configPath)) return null;\n\n const content = fs.readFileSync(configPath, \"utf-8\");\n const tapTable = extractTomlTable(content, MCP_SELECTOR);\n if (!tapTable) return null;\n\n const values = parseTomlAssignments(tapTable);\n if (values.approval_mode === \"auto\") return null;\n\n const patched = replaceTomlTable(\n content,\n MCP_SELECTOR,\n renderTomlTable(MCP_SELECTOR, { approval_mode: \"auto\" }, tapTable),\n );\n\n writeTomlFile(configPath, patched);\n return configPath;\n}\n","import * as crypto from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { ArtifactKind } from \"./types.js\";\n\ntype BackupPayload =\n | {\n kind: \"json-path\";\n selector: string;\n existed: boolean;\n value?: unknown;\n }\n | {\n kind: \"toml-table\";\n selector: string;\n existed: boolean;\n content?: string;\n }\n | {\n kind: \"file\";\n selector: string;\n existed: boolean;\n };\n\nfunction selectorHash(selector: string): string {\n return crypto.createHash(\"sha256\").update(selector).digest(\"hex\").slice(0, 12);\n}\n\nexport function artifactBackupPath(\n backupDir: string,\n kind: ArtifactKind,\n selector: string,\n): string {\n const safeKind = kind.replace(/[^a-z-]/gi, \"-\");\n return path.join(backupDir, `${safeKind}-${selectorHash(selector)}.json`);\n}\n\nexport function writeArtifactBackup(\n backupPath: string,\n payload: BackupPayload,\n): void {\n fs.mkdirSync(path.dirname(backupPath), { recursive: true });\n const tmp = `${backupPath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(payload, null, 2) + \"\\n\", \"utf-8\");\n fs.renameSync(tmp, backupPath);\n}\n\nexport function readArtifactBackup(backupPath: string): BackupPayload | null {\n if (!fs.existsSync(backupPath)) return null;\n\n try {\n const raw = fs.readFileSync(backupPath, \"utf-8\");\n return JSON.parse(raw) as BackupPayload;\n } catch {\n return null;\n }\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { backupFile, ensureBackupDir, fileHash } from \"../state.js\";\nimport {\n artifactBackupPath,\n writeArtifactBackup,\n} from \"../artifact-backups.js\";\nimport type {\n AdapterContext,\n ApplyResult,\n BridgeMode,\n OwnedArtifact,\n PatchOp,\n PatchPlan,\n ProbeResult,\n RuntimeAdapter,\n VerifyCheck,\n VerifyResult,\n} from \"../types.js\";\nimport {\n buildManagedMcpServerSpec,\n canWriteOrCreate,\n getHomeDir,\n probeCommand,\n} from \"./common.js\";\n\nconst GEMINI_SELECTOR = \"mcpServers.tap\";\n\n// Legacy key name — used for auto-migration from pre-0.3 configs\nconst OLD_GEMINI_SELECTOR = \"mcpServers.tap-comms\";\n\nfunction candidateConfigPaths(ctx: AdapterContext): string[] {\n const home = getHomeDir();\n return [\n path.join(ctx.repoRoot, \".gemini\", \"settings.json\"),\n path.join(home, \".gemini\", \"settings.json\"),\n path.join(home, \".gemini\", \"antigravity\", \"mcp_config.json\"),\n ];\n}\n\nfunction chooseGeminiConfigPath(ctx: AdapterContext): string {\n const [workspaceConfig, homeConfig, antigravityConfig] =\n candidateConfigPaths(ctx);\n\n if (fs.existsSync(workspaceConfig)) return workspaceConfig;\n if (fs.existsSync(homeConfig)) return homeConfig;\n\n if (fs.existsSync(antigravityConfig)) {\n const raw = fs.readFileSync(antigravityConfig, \"utf-8\").trim();\n if (raw) {\n try {\n JSON.parse(raw);\n return antigravityConfig;\n } catch {\n // Fall through to workspace-managed config.\n }\n }\n }\n\n return workspaceConfig;\n}\n\nfunction readJsonFile(filePath: string): Record<string, unknown> {\n if (!fs.existsSync(filePath)) return {};\n const raw = fs.readFileSync(filePath, \"utf-8\").trim();\n if (!raw) return {};\n return JSON.parse(raw) as Record<string, unknown>;\n}\n\nfunction setNestedKey(\n obj: Record<string, unknown>,\n keyPath: string,\n value: unknown,\n): void {\n const keys = keyPath.split(\".\");\n let current = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (typeof current[key] !== \"object\" || current[key] === null) {\n current[key] = {};\n }\n current = current[key] as Record<string, unknown>;\n }\n current[keys[keys.length - 1]] = value;\n}\n\nfunction readNestedKey(obj: Record<string, unknown>, keyPath: string): unknown {\n let current: unknown = obj;\n for (const key of keyPath.split(\".\")) {\n if (typeof current !== \"object\" || current === null || !(key in current)) {\n return undefined;\n }\n current = (current as Record<string, unknown>)[key];\n }\n return current;\n}\n\nfunction verifyGeminiConfig(\n config: Record<string, unknown>,\n configPath: string,\n ctx: AdapterContext,\n): VerifyCheck[] {\n const checks: VerifyCheck[] = [];\n const entry = readNestedKey(config, GEMINI_SELECTOR) as\n | Record<string, unknown>\n | undefined;\n\n checks.push({\n name: \"Gemini config exists\",\n passed: fs.existsSync(configPath),\n message: fs.existsSync(configPath) ? undefined : `${configPath} not found`,\n });\n checks.push({\n name: \"tap entry present\",\n passed: !!entry,\n message: entry ? undefined : `${GEMINI_SELECTOR} not found`,\n });\n checks.push({\n name: \"Comms directory exists\",\n passed: fs.existsSync(ctx.commsDir),\n message: fs.existsSync(ctx.commsDir)\n ? undefined\n : `${ctx.commsDir} not found`,\n });\n\n if (entry?.env && typeof entry.env === \"object\") {\n checks.push({\n name: \"TAP_COMMS_DIR configured\",\n passed:\n (entry.env as Record<string, unknown>).TAP_COMMS_DIR ===\n ctx.commsDir.replace(/\\\\/g, \"/\"),\n message: `Expected ${ctx.commsDir.replace(/\\\\/g, \"/\")}`,\n });\n }\n\n return checks;\n}\n\nexport const geminiAdapter: RuntimeAdapter = {\n runtime: \"gemini\",\n\n async probe(ctx: AdapterContext): Promise<ProbeResult> {\n const warnings: string[] = [];\n const issues: string[] = [];\n const configPath = chooseGeminiConfigPath(ctx);\n const configExists = fs.existsSync(configPath);\n const runtimeProbe = probeCommand(\n ctx.platform === \"win32\" ? [\"gemini\", \"gemini.cmd\"] : [\"gemini\"],\n );\n\n if (!runtimeProbe.command) {\n warnings.push(\n \"Gemini CLI not found in PATH. Config can still be written, but runtime verification will be limited.\",\n );\n }\n\n if (!fs.existsSync(ctx.commsDir)) {\n issues.push(\n `Comms directory not found: ${ctx.commsDir}. Run \"init\" first.`,\n );\n }\n\n const managed = buildManagedMcpServerSpec(ctx, ctx.instanceId);\n warnings.push(...managed.warnings);\n issues.push(...managed.issues);\n\n return {\n installed: true,\n configPath,\n configExists,\n runtimeCommand: runtimeProbe.command,\n version: runtimeProbe.version,\n canWrite: canWriteOrCreate(configPath),\n warnings,\n issues,\n };\n },\n\n async plan(ctx: AdapterContext, probe: ProbeResult): Promise<PatchPlan> {\n const configPath = probe.configPath ?? chooseGeminiConfigPath(ctx);\n const conflicts: string[] = [];\n const warnings: string[] = [];\n const operations: PatchOp[] = [];\n const ownedArtifacts: OwnedArtifact[] = [\n { kind: \"json-path\", path: configPath, selector: GEMINI_SELECTOR },\n ];\n\n if (probe.configExists) {\n try {\n const config = readJsonFile(configPath);\n if (readNestedKey(config, GEMINI_SELECTOR) !== undefined) {\n conflicts.push(`Existing ${GEMINI_SELECTOR} entry will be updated.`);\n }\n if (readNestedKey(config, OLD_GEMINI_SELECTOR) !== undefined) {\n conflicts.push(\n `Legacy ${OLD_GEMINI_SELECTOR} entry will be migrated to ${GEMINI_SELECTOR}.`,\n );\n }\n } catch {\n warnings.push(\n `${configPath} exists but is not valid JSON. It will be replaced.`,\n );\n }\n }\n\n operations.push({\n type: probe.configExists ? \"merge\" : \"set\",\n path: configPath,\n key: GEMINI_SELECTOR,\n });\n\n return {\n runtime: \"gemini\",\n operations,\n ownedArtifacts,\n backupDir: ensureBackupDir(ctx.stateDir, \"gemini\"),\n restartRequired: true,\n conflicts,\n warnings,\n };\n },\n\n async apply(ctx: AdapterContext, plan: PatchPlan): Promise<ApplyResult> {\n const configPath = plan.operations[0]?.path ?? chooseGeminiConfigPath(ctx);\n const warnings: string[] = [];\n const changedFiles: string[] = [];\n const managed = buildManagedMcpServerSpec(ctx, ctx.instanceId);\n\n warnings.push(...managed.warnings);\n if (managed.issues.length > 0 || !managed.command) {\n return {\n success: false,\n appliedOps: 0,\n backupCreated: false,\n lastAppliedHash: \"\",\n ownedArtifacts: [],\n changedFiles,\n restartRequired: false,\n warnings: [...managed.warnings, ...managed.issues],\n };\n }\n\n let config: Record<string, unknown> = {};\n let previousValue: unknown = undefined;\n\n if (fs.existsSync(configPath)) {\n if (fs.readFileSync(configPath, \"utf-8\").trim()) {\n backupFile(configPath, plan.backupDir);\n }\n try {\n config = readJsonFile(configPath);\n } catch {\n warnings.push(\n `${configPath} was invalid JSON. Created backup and starting fresh.`,\n );\n config = {};\n }\n previousValue = readNestedKey(config, GEMINI_SELECTOR);\n }\n\n const artifact = plan.ownedArtifacts[0];\n const backupPath = artifactBackupPath(\n plan.backupDir,\n artifact.kind,\n artifact.selector,\n );\n writeArtifactBackup(backupPath, {\n kind: \"json-path\",\n selector: artifact.selector,\n existed: previousValue !== undefined,\n value: previousValue,\n });\n\n // Migrate: remove legacy \"tap-comms\" key if present\n const oldValue = readNestedKey(config, OLD_GEMINI_SELECTOR);\n if (oldValue !== undefined) {\n const servers = config.mcpServers as Record<string, unknown> | undefined;\n if (servers) {\n delete servers[\"tap-comms\"];\n }\n }\n\n setNestedKey(config, GEMINI_SELECTOR, {\n command: managed.command,\n args: managed.args,\n env: managed.env,\n });\n\n fs.mkdirSync(path.dirname(configPath), { recursive: true });\n const tmp = `${configPath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(config, null, 2) + \"\\n\", \"utf-8\");\n fs.renameSync(tmp, configPath);\n changedFiles.push(configPath);\n\n return {\n success: true,\n appliedOps: plan.operations.length,\n backupCreated: true,\n lastAppliedHash: fileHash(configPath),\n ownedArtifacts: [{ ...artifact, backupPath }],\n changedFiles,\n restartRequired: true,\n warnings,\n };\n },\n\n async verify(ctx: AdapterContext, plan: PatchPlan): Promise<VerifyResult> {\n const warnings: string[] = [];\n const configPath = plan.operations[0]?.path ?? chooseGeminiConfigPath(ctx);\n const runtimeProbe = probeCommand(\n ctx.platform === \"win32\" ? [\"gemini\", \"gemini.cmd\"] : [\"gemini\"],\n );\n\n let checks: VerifyCheck[];\n try {\n const config = readJsonFile(configPath);\n checks = verifyGeminiConfig(config, configPath, ctx);\n } catch {\n checks = [\n {\n name: \"Gemini config is valid JSON\",\n passed: false,\n message: \"Parse error\",\n },\n ];\n }\n\n checks.push({\n name: \"Gemini CLI found\",\n passed: !!runtimeProbe.command,\n message: runtimeProbe.command\n ? undefined\n : \"gemini not in PATH (non-blocking)\",\n });\n\n if (!runtimeProbe.command) {\n warnings.push(\n \"Gemini CLI not in PATH. Config is written, but runtime verification is partial.\",\n );\n }\n\n return {\n ok: checks\n .filter((check) => check.name !== \"Gemini CLI found\")\n .every((check) => check.passed),\n checks,\n restartRequired: true,\n warnings,\n };\n },\n\n bridgeMode(): BridgeMode {\n return \"polling\";\n },\n};\n","import type { RuntimeAdapter, RuntimeName } from \"../types.js\";\nimport { claudeAdapter } from \"./claude.js\";\nimport { codexAdapter } from \"./codex.js\";\nimport { geminiAdapter } from \"./gemini.js\";\n\nconst adapters: Partial<Record<RuntimeName, RuntimeAdapter>> = {\n claude: claudeAdapter,\n codex: codexAdapter,\n gemini: geminiAdapter,\n};\n\nexport function getAdapter(runtime: RuntimeName): RuntimeAdapter {\n const adapter = adapters[runtime];\n if (!adapter) {\n throw new Error(\n `Adapter for \"${runtime}\" is not yet available. ` +\n `Supported: ${Object.keys(adapters).join(\", \")}`,\n );\n }\n return adapter;\n}\n\nexport function listAdapters(): RuntimeName[] {\n return Object.keys(adapters) as RuntimeName[];\n}\n","import * as path from \"node:path\";\nimport type { InstanceId } from \"../types.js\";\n\n/**\n * Verify that a resolved path stays within the expected subdirectory.\n * Prevents path traversal via crafted instanceId or other interpolated values.\n */\nfunction assertPathContained(\n resolved: string,\n stateDir: string,\n subDir: string,\n): string {\n const expectedDir = path.resolve(stateDir, subDir) + path.sep;\n const normalizedResolved = path.resolve(resolved);\n if (!normalizedResolved.startsWith(expectedDir)) {\n throw new Error(\n `Path traversal blocked: resolved path escapes \"${subDir}/\" directory`,\n );\n }\n return normalizedResolved;\n}\n\nexport function appServerLogFilePath(\n stateDir: string,\n instanceId: InstanceId,\n): string {\n return assertPathContained(\n path.join(stateDir, \"logs\", `app-server-${instanceId}.log`),\n stateDir,\n \"logs\",\n );\n}\n\nexport function appServerGatewayLogFilePath(\n stateDir: string,\n instanceId: InstanceId,\n): string {\n return assertPathContained(\n path.join(stateDir, \"logs\", `app-server-gateway-${instanceId}.log`),\n stateDir,\n \"logs\",\n );\n}\n\nexport function appServerGatewayTokenFilePath(\n stateDir: string,\n instanceId: InstanceId,\n): string {\n return assertPathContained(\n path.join(stateDir, \"secrets\", `app-server-gateway-${instanceId}.token`),\n stateDir,\n \"secrets\",\n );\n}\n\nexport function stderrLogFilePath(logPath: string): string {\n return `${logPath}.stderr`;\n}\n\nexport function pidFilePath(stateDir: string, instanceId: InstanceId): string {\n return assertPathContained(\n path.join(stateDir, \"pids\", `bridge-${instanceId}.json`),\n stateDir,\n \"pids\",\n );\n}\n\nexport function logFilePath(stateDir: string, instanceId: InstanceId): string {\n return assertPathContained(\n path.join(stateDir, \"logs\", `bridge-${instanceId}.log`),\n stateDir,\n \"logs\",\n );\n}\n\nexport function runtimeHeartbeatFilePath(runtimeStateDir: string): string {\n return path.join(runtimeStateDir, \"heartbeat.json\");\n}\n\nexport function runtimeThreadStateFilePath(runtimeStateDir: string): string {\n return path.join(runtimeStateDir, \"thread.json\");\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nconst APP_SERVER_AUTH_FILE_MODE = 0o600;\n\nexport function writeProtectedTextFile(filePath: string, content: string): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n const tmp = `${filePath}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, content, {\n encoding: \"utf-8\",\n mode: APP_SERVER_AUTH_FILE_MODE,\n });\n fs.chmodSync(tmp, APP_SERVER_AUTH_FILE_MODE);\n fs.renameSync(tmp, filePath);\n fs.chmodSync(filePath, APP_SERVER_AUTH_FILE_MODE);\n}\n\nexport function removeFileIfExists(filePath: string | null | undefined): void {\n if (!filePath || !fs.existsSync(filePath)) {\n return;\n }\n\n try {\n fs.unlinkSync(filePath);\n } catch {\n // Best-effort cleanup only.\n }\n}\n\nexport function toPowerShellSingleQuotedString(value: string): string {\n return `'${value.replace(/'/g, \"''\")}'`;\n}\n\nexport function toPowerShellStringArrayLiteral(values: string[]): string {\n return `@(${values.map(toPowerShellSingleQuotedString).join(\", \")})`;\n}\n","import * as net from \"node:net\";\nimport type { TapState, InstanceId } from \"../types.js\";\n\nconst DEFAULT_APP_SERVER_URL = \"ws://127.0.0.1:4501\";\n\ninterface WebSocketLike {\n addEventListener(\n type: \"open\" | \"error\" | \"close\",\n listener: () => void,\n options?: { once?: boolean },\n ): void;\n close(code?: number, reason?: string): void;\n}\n\nexport type WebSocketCtor = new (\n url: string,\n protocols?: string | string[],\n) => WebSocketLike;\n\nexport function getWebSocketCtor(): WebSocketCtor | null {\n const candidate = (globalThis as { WebSocket?: unknown }).WebSocket;\n return typeof candidate === \"function\" ? (candidate as WebSocketCtor) : null;\n}\n\nexport function delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function isLoopbackHost(hostname: string): boolean {\n return hostname === \"127.0.0.1\" || hostname === \"localhost\";\n}\n\nexport async function allocateLoopbackPort(hostname: string): Promise<number> {\n const bindHost = hostname === \"localhost\" ? \"127.0.0.1\" : hostname;\n return await new Promise<number>((resolve, reject) => {\n const server = net.createServer();\n server.unref();\n server.once(\"error\", reject);\n server.listen(0, bindHost, () => {\n const address = server.address();\n if (!address || typeof address === \"string\") {\n server.close(() => {\n reject(new Error(\"Failed to allocate a loopback port\"));\n });\n return;\n }\n\n const port = address.port;\n server.close((error) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(port);\n });\n });\n });\n}\n\nexport async function isTcpPortAvailable(\n hostname: string,\n port: number,\n): Promise<boolean> {\n const bindHost = hostname === \"localhost\" ? \"127.0.0.1\" : hostname;\n return await new Promise<boolean>((resolve) => {\n const server = net.createServer();\n server.unref();\n server.once(\"error\", () => resolve(false));\n server.listen(port, bindHost, () => {\n server.close((error) => resolve(!error));\n });\n });\n}\n\n/**\n * Wait for a TCP port to become available after a process is stopped.\n * Polls isTcpPortAvailable at intervals until the port is free or timeout.\n * Returns true if the port was released, false if timeout expired.\n */\nexport async function waitForPortRelease(\n url: string,\n timeoutMs: number = 10_000,\n intervalMs: number = 500,\n): Promise<boolean> {\n let hostname: string;\n let port: number;\n try {\n const parsed = new URL(url);\n hostname = parsed.hostname;\n port = parseInt(parsed.port, 10);\n } catch {\n return true; // Can't parse URL — assume port is free\n }\n\n if (!port || !Number.isFinite(port)) return true;\n\n const deadline = Date.now() + timeoutMs;\n while (Date.now() < deadline) {\n if (await isTcpPortAvailable(hostname, port)) {\n return true;\n }\n await delay(intervalMs);\n }\n return false;\n}\n\nexport async function findNextAvailableAppServerPort(\n state: TapState,\n baseUrl: string | undefined,\n basePort: number = 4501,\n excludeInstanceId?: InstanceId,\n): Promise<number> {\n let hostname = \"127.0.0.1\";\n try {\n hostname = new URL(baseUrl ?? DEFAULT_APP_SERVER_URL).hostname;\n } catch {\n // Fall back to the default loopback host.\n }\n\n const maxAttempts = 1000;\n let port = basePort;\n for (let attempt = 0; attempt < maxAttempts; attempt += 1, port += 1) {\n const claimedInState = Object.entries(state.instances).some(\n ([id, inst]) => id !== excludeInstanceId && inst.port === port,\n );\n if (claimedInState) {\n continue;\n }\n\n if (!isLoopbackHost(hostname)) {\n return port;\n }\n\n if (await isTcpPortAvailable(hostname, port)) {\n return port;\n }\n }\n\n throw new Error(\n `Failed to find a free app-server port starting at ${basePort}`,\n );\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport type { Platform } from \"../types.js\";\nimport { probeCommand } from \"../adapters/common.js\";\n\n/**\n * Resolve the codex CLI command for the given platform.\n *\n * On Windows, npm-installed `codex.cmd` wrappers launch through cmd.exe,\n * which prevents PowerShell `Start-Process -WindowStyle Hidden` from properly\n * detaching the app-server process. When a `.cmd` wrapper is found, we parse\n * it to extract the underlying `node <script>` invocation and return that\n * instead, so the caller can spawn node directly.\n */\nexport function resolveCodexCommand(platform: Platform): string | null {\n const candidates =\n platform === \"win32\"\n ? [\"codex.cmd\", \"codex.exe\", \"codex\", \"codex.ps1\"]\n : [\"codex\"];\n const resolved = probeCommand(candidates).command;\n if (!resolved) return null;\n\n // Unwrap .cmd wrappers on Windows to avoid cmd.exe intermediate shell.\n // probeCommand() now returns absolute paths, so resolved is already\n // e.g. \"C:\\Users\\...\\npm\\codex.cmd\" — no extra where.exe lookup needed.\n if (platform === \"win32\" && resolved.endsWith(\".cmd\")) {\n const unwrapped = unwrapNpmCmdShim(resolved);\n if (unwrapped) return unwrapped;\n }\n\n return resolved;\n}\n\n/**\n * Parse an npm `.cmd` shim to extract the node + script path.\n *\n * npm `.cmd` shims follow this pattern:\n * ```\n * \"%_prog%\" \"%dp0%\\node_modules\\...\\bin\\script.js\" %*\n * ```\n *\n * Returns a space-separated `\"node /abs/path/to/script.js\"` string that\n * callers can split on the first space, or null if parsing fails.\n */\nexport function unwrapNpmCmdShim(cmdPath: string): string | null {\n let content: string;\n try {\n content = fs.readFileSync(cmdPath, \"utf-8\");\n } catch {\n return null;\n }\n\n // Match the final line: \"%_prog%\" \"%dp0%\\...\\script.js\" %*\n // npm shims use %dp0% (directory of the .cmd file) as base\n const match = content.match(/\"%_prog%\"\\s+\"(%dp0%\\\\[^\"]+)\"\\s+%\\*/);\n if (!match) return null;\n\n const dp0 = path.dirname(cmdPath);\n const scriptRelative = match[1].replace(/%dp0%\\\\/g, \"\");\n const scriptPath = path.resolve(dp0, scriptRelative);\n\n if (!fs.existsSync(scriptPath)) return null;\n\n // Resolve node: prefer the local node next to the .cmd, else PATH node\n const localNode = path.join(dp0, \"node.exe\");\n const nodeCommand = fs.existsSync(localNode)\n ? localNode\n : (probeCommand([\"node.exe\", \"node\"]).command ?? \"node\");\n\n return `${nodeCommand}\\0${scriptPath}`;\n}\n\n/**\n * Split a resolved codex command into executable + prefix args.\n * If the command contains a NUL separator (from unwrapNpmCmdShim),\n * split on it. Otherwise return as-is with empty prefix args.\n */\nexport function splitResolvedCommand(resolved: string): {\n command: string;\n prefixArgs: string[];\n} {\n const parts = resolved.split(\"\\0\");\n if (parts.length === 2) {\n return { command: parts[0], prefixArgs: [parts[1]] };\n }\n return { command: resolved, prefixArgs: [] };\n}\n\nexport function resolvePowerShellCommand(): string {\n return (\n probeCommand([\"pwsh\", \"powershell\", \"powershell.exe\"]).command ??\n \"powershell\"\n );\n}\n\nexport function resolveAuthGatewayScript(repoRoot: string): string | null {\n const moduleDir = path.dirname(fileURLToPath(import.meta.url));\n const resolvedModuleDir = path.resolve(moduleDir);\n const resolvedRepoRoot = path.resolve(repoRoot);\n\n const candidates = [\n // Bundled: dist/bridges/ sibling (npm install / built package)\n path.join(moduleDir, \"bridges\", \"codex-app-server-auth-gateway.mjs\"),\n // Source: src/bridges/ sibling (monorepo dev with ts runner)\n path.join(moduleDir, \"bridges\", \"codex-app-server-auth-gateway.ts\"),\n // Monorepo dist fallback\n path.join(\n repoRoot,\n \"packages\",\n \"tap-comms\",\n \"dist\",\n \"bridges\",\n \"codex-app-server-auth-gateway.mjs\",\n ),\n path.join(\n repoRoot,\n \"packages\",\n \"tap-comms\",\n \"src\",\n \"bridges\",\n \"codex-app-server-auth-gateway.ts\",\n ),\n ];\n\n for (const candidate of candidates) {\n const resolved = path.resolve(candidate);\n // Verify the resolved path stays within moduleDir or repoRoot\n if (\n !resolved.startsWith(resolvedModuleDir + path.sep) &&\n !resolved.startsWith(resolvedRepoRoot + path.sep)\n ) {\n continue;\n }\n if (fs.existsSync(resolved)) {\n return resolved;\n }\n }\n\n return null;\n}\n","/**\n * Windows detached background spawn utilities for bridge/app-server processes.\n *\n * Extracted from engine/bridge.ts (Phase 3) to isolate wrapper generation,\n * hidden PowerShell launch, and listening PID discovery.\n *\n * @module engine/bridge-windows-spawn\n */\n\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport { randomBytes } from \"node:crypto\";\nimport { spawnSync } from \"node:child_process\";\nimport type { Platform } from \"../types.js\";\nimport { stderrLogFilePath } from \"./bridge-paths.js\";\nimport {\n toPowerShellSingleQuotedString,\n toPowerShellStringArrayLiteral,\n removeFileIfExists,\n} from \"./bridge-file-io.js\";\nimport {\n resolvePowerShellCommand,\n splitResolvedCommand,\n} from \"./bridge-codex-command.js\";\n\nconst WINDOWS_SPAWN_WRAPPER_PREFIX = \"tap-spawn-\";\nconst WINDOWS_SPAWN_WRAPPER_STALE_MS = 60 * 60 * 1000;\n\nexport function cleanupStaleWindowsSpawnWrappers(now = Date.now()): void {\n let entries: string[];\n try {\n entries = fs.readdirSync(os.tmpdir());\n } catch {\n return;\n }\n\n for (const entry of entries) {\n if (\n !entry.startsWith(WINDOWS_SPAWN_WRAPPER_PREFIX) ||\n !/\\.(cmd|ps1)$/i.test(entry)\n ) {\n continue;\n }\n\n const wrapperPath = path.join(os.tmpdir(), entry);\n\n try {\n const stats = fs.statSync(wrapperPath);\n if (now - stats.mtimeMs < WINDOWS_SPAWN_WRAPPER_STALE_MS) {\n continue;\n }\n fs.unlinkSync(wrapperPath);\n } catch {\n // Best-effort cleanup only.\n }\n }\n}\n\nexport function buildWindowsDetachedWrapperScript(\n command: string,\n args: string[],\n logPath: string,\n stderrLogPath: string,\n env: NodeJS.ProcessEnv,\n): string {\n const lines = [\"$ErrorActionPreference = 'Stop'\"];\n\n for (const [key, value] of Object.entries(env)) {\n if (value !== undefined && value !== process.env[key]) {\n lines.push(\n `[Environment]::SetEnvironmentVariable(${toPowerShellSingleQuotedString(key)}, ${toPowerShellSingleQuotedString(value)}, 'Process')`,\n );\n }\n }\n\n lines.push(\n `$logPath = ${toPowerShellSingleQuotedString(logPath)}`,\n `$stderrLogPath = ${toPowerShellSingleQuotedString(stderrLogPath)}`,\n `$commandPath = ${toPowerShellSingleQuotedString(command)}`,\n `$commandArgs = ${toPowerShellStringArrayLiteral(args)}`,\n \"$exitCode = 1\",\n \"try {\",\n \" & $commandPath @commandArgs >> $logPath 2>> $stderrLogPath\",\n \" $exitCode = if ($null -ne $LASTEXITCODE) { $LASTEXITCODE } else { 0 }\",\n \"} finally {\",\n \" Remove-Item -LiteralPath $PSCommandPath -Force -ErrorAction SilentlyContinue\",\n \"}\",\n \"exit $exitCode\",\n );\n\n return `${lines.join(\"\\r\\n\")}\\r\\n`;\n}\n\n/**\n * Start a background process on Windows without creating a visible console window.\n *\n * Node.js `spawn({ detached: true })` sets `DETACHED_PROCESS` in CreateProcess,\n * which forces Windows to allocate a new console for console apps — even with\n * `windowsHide: true` (which only sets SW_HIDE, not CREATE_NO_WINDOW).\n * These two flags are mutually exclusive in the Windows API.\n *\n * Instead, we use PowerShell `Start-Process -WindowStyle Hidden` which internally\n * sets `ProcessStartInfo.CreateNoWindow = true`, preventing console allocation\n * entirely. A temp `.ps1` wrapper handles environment variables, robust argument\n * passing, append-mode log redirection, and self-cleans on normal exit.\n *\n * The returned PID is of the hidden PowerShell wrapper process, which stays alive\n * while the child runs.\n * `taskkill /PID <pid> /F /T` kills the entire tree.\n */\nexport function startWindowsDetachedProcess(\n command: string,\n args: string[],\n repoRoot: string,\n logPath: string,\n env: NodeJS.ProcessEnv = process.env,\n): number | null {\n const stderrLogPath = stderrLogFilePath(logPath);\n const powerShellCommand = resolvePowerShellCommand();\n\n cleanupStaleWindowsSpawnWrappers();\n\n const wrapperPath = path.join(\n os.tmpdir(),\n `${WINDOWS_SPAWN_WRAPPER_PREFIX}${randomBytes(4).toString(\"hex\")}.ps1`,\n );\n fs.writeFileSync(\n wrapperPath,\n buildWindowsDetachedWrapperScript(\n command,\n args,\n logPath,\n stderrLogPath,\n env,\n ),\n );\n\n const psCommand = [\n \"$p = Start-Process\",\n `-FilePath ${toPowerShellSingleQuotedString(powerShellCommand)}`,\n `-ArgumentList ${toPowerShellStringArrayLiteral([\"-NoLogo\", \"-NoProfile\", \"-File\", wrapperPath])}`,\n `-WorkingDirectory ${toPowerShellSingleQuotedString(repoRoot)}`,\n \"-WindowStyle Hidden\",\n \"-PassThru\",\n \"; Write-Output $p.Id\",\n ].join(\" \");\n\n const result = spawnSync(\n powerShellCommand,\n [\"-NoLogo\", \"-NoProfile\", \"-Command\", psCommand],\n {\n encoding: \"utf-8\",\n windowsHide: true,\n },\n );\n\n if (result.status !== 0) {\n removeFileIfExists(wrapperPath);\n return null;\n }\n\n const pid = parseInt(result.stdout.trim(), 10);\n if (!Number.isFinite(pid)) {\n removeFileIfExists(wrapperPath);\n return null;\n }\n\n return pid;\n}\n\nexport function startWindowsCodexAppServer(\n command: string,\n url: string,\n repoRoot: string,\n logPath: string,\n env: NodeJS.ProcessEnv = process.env,\n): number | null {\n const { command: exe, prefixArgs } = splitResolvedCommand(command);\n return startWindowsDetachedProcess(\n exe,\n [...prefixArgs, \"app-server\", \"--listen\", url],\n repoRoot,\n logPath,\n env,\n );\n}\n\nexport function findListeningProcessId(\n url: string,\n platform: Platform,\n): number | null {\n if (platform !== \"win32\") {\n return null;\n }\n\n let port: number | null;\n try {\n const parsed = new URL(url);\n port = parsed.port ? Number.parseInt(parsed.port, 10) : null;\n } catch {\n return null;\n }\n\n if (port == null || !Number.isFinite(port)) {\n return null;\n }\n\n const result = spawnSync(\n resolvePowerShellCommand(),\n [\n \"-NoLogo\",\n \"-NoProfile\",\n \"-Command\",\n [\n `$port = ${port}`,\n \"$processId = Get-NetTCPConnection -LocalPort $port -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty OwningProcess\",\n \"if ($processId) { $processId }\",\n ].join(\"; \"),\n ],\n {\n encoding: \"utf-8\",\n windowsHide: true,\n },\n );\n\n if (result.status !== 0) {\n return null;\n }\n\n const parsedPid = Number.parseInt((result.stdout ?? \"\").trim(), 10);\n return Number.isFinite(parsedPid) ? parsedPid : null;\n}\n","/**\n * Unix detached background spawn utilities for bridge/app-server processes.\n *\n * Extracted from inline non-Windows spawn paths to centralize detached launch\n * and listening PID discovery for macOS/Linux.\n *\n * @module engine/bridge-unix-spawn\n */\n\nimport * as fs from \"node:fs\";\nimport { spawn, spawnSync } from \"node:child_process\";\nimport type { Platform } from \"../types.js\";\nimport { splitResolvedCommand } from \"./bridge-codex-command.js\";\nimport { stderrLogFilePath } from \"./bridge-paths.js\";\n\nconst DEFAULT_UNIX_PLATFORM: Platform =\n process.platform === \"darwin\" ? \"darwin\" : \"linux\";\n\nfunction resolveUnixSpawnCommand(\n command: string,\n args: string[],\n platform: Platform,\n): { command: string; args: string[] } {\n if (platform === \"linux\") {\n // `nohup` keeps the child immune to SIGHUP when launched from SSH/login shells.\n return {\n command: \"nohup\",\n args: [command, ...args],\n };\n }\n\n return { command, args };\n}\n\nfunction findListeningPidWithLsof(port: number): number | null {\n const result = spawnSync(\n \"lsof\",\n [\"-nP\", `-iTCP:${port}`, \"-sTCP:LISTEN\", \"-t\"],\n {\n encoding: \"utf-8\",\n windowsHide: true,\n },\n );\n\n if (!result || result.status !== 0) {\n return null;\n }\n\n const parsedPid = Number.parseInt((result.stdout ?? \"\").trim(), 10);\n return Number.isFinite(parsedPid) ? parsedPid : null;\n}\n\nfunction findListeningPidWithSs(port: number): number | null {\n const result = spawnSync(\"ss\", [\"-ltnpH\", `sport = :${port}`], {\n encoding: \"utf-8\",\n windowsHide: true,\n });\n\n if (!result || result.status !== 0) {\n return null;\n }\n\n const match = (result.stdout ?? \"\").match(/\\bpid=(\\d+)\\b/);\n if (!match) {\n return null;\n }\n\n const parsedPid = Number.parseInt(match[1], 10);\n return Number.isFinite(parsedPid) ? parsedPid : null;\n}\n\nexport function startUnixDetachedProcess(\n command: string,\n args: string[],\n repoRoot: string,\n logPath: string,\n env: NodeJS.ProcessEnv = process.env,\n platform: Platform = DEFAULT_UNIX_PLATFORM,\n): number | null {\n const stderrPath = stderrLogFilePath(logPath);\n let logFd: number | null = null;\n let stderrFd: number | null = null;\n\n try {\n logFd = fs.openSync(logPath, \"a\");\n stderrFd = fs.openSync(stderrPath, \"a\");\n const launch = resolveUnixSpawnCommand(command, args, platform);\n\n const child = spawn(launch.command, launch.args, {\n cwd: repoRoot,\n detached: true,\n stdio: [\"ignore\", logFd, stderrFd],\n env,\n windowsHide: true,\n });\n\n child.unref();\n return child.pid ?? null;\n } finally {\n if (logFd != null) {\n fs.closeSync(logFd);\n }\n if (stderrFd != null) {\n fs.closeSync(stderrFd);\n }\n }\n}\n\nexport function startUnixCodexAppServer(\n command: string,\n url: string,\n repoRoot: string,\n logPath: string,\n env: NodeJS.ProcessEnv = process.env,\n platform: Platform = DEFAULT_UNIX_PLATFORM,\n): number | null {\n const { command: exe, prefixArgs } = splitResolvedCommand(command);\n return startUnixDetachedProcess(\n exe,\n [...prefixArgs, \"app-server\", \"--listen\", url],\n repoRoot,\n logPath,\n env,\n platform,\n );\n}\n\nexport function findUnixListeningProcessId(\n url: string,\n platform: Platform,\n): number | null {\n if (platform === \"win32\") {\n return null;\n }\n\n let port: number | null;\n try {\n const parsed = new URL(url);\n port = parsed.port ? Number.parseInt(parsed.port, 10) : null;\n } catch {\n return null;\n }\n\n if (port == null || !Number.isFinite(port)) {\n return null;\n }\n\n if (platform === \"linux\") {\n const ssPid = findListeningPidWithSs(port);\n if (ssPid != null) {\n return ssPid;\n }\n }\n\n return findListeningPidWithLsof(port);\n}\n","import { execSync, spawnSync } from \"node:child_process\";\nimport type { AppServerState, Platform } from \"../types.js\";\nimport { delay } from \"./bridge-port-network.js\";\nimport { removeFileIfExists } from \"./bridge-file-io.js\";\n\nexport function isProcessAlive(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction getUnixProcessGroupId(pid: number): number | null {\n const result = spawnSync(\"ps\", [\"-o\", \"pgid=\", \"-p\", String(pid)], {\n encoding: \"utf-8\",\n windowsHide: true,\n });\n\n if (!result || result.status !== 0) {\n return null;\n }\n\n const parsed = Number.parseInt((result.stdout ?? \"\").trim(), 10);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction isUnixProcessGroupAlive(processGroupId: number): boolean {\n try {\n process.kill(-processGroupId, 0);\n return true;\n } catch {\n return false;\n }\n}\n\nexport async function terminateProcess(\n pid: number,\n platform: Platform,\n): Promise<boolean> {\n if (!isProcessAlive(pid)) {\n return false;\n }\n\n try {\n if (platform === \"win32\") {\n execSync(`taskkill /PID ${pid} /F /T`, { stdio: \"pipe\" });\n } else {\n const processGroupId = getUnixProcessGroupId(pid);\n const signalTarget = processGroupId != null ? -processGroupId : pid;\n const isTargetAlive = (): boolean =>\n processGroupId != null\n ? isUnixProcessGroupAlive(processGroupId)\n : isProcessAlive(pid);\n\n process.kill(signalTarget, \"SIGTERM\");\n await delay(2_000);\n if (isTargetAlive()) {\n process.kill(signalTarget, \"SIGKILL\");\n await delay(500);\n }\n\n return !isTargetAlive();\n }\n } catch {\n // Best effort. The caller only needs a boolean outcome.\n }\n\n return !isProcessAlive(pid);\n}\n\nexport async function stopManagedAppServer(\n appServer: AppServerState,\n platform: Platform,\n): Promise<boolean> {\n if (!appServer.managed) {\n return false;\n }\n\n let stopped = false;\n if (appServer.auth?.gatewayPid != null) {\n stopped =\n (await terminateProcess(appServer.auth.gatewayPid, platform)) || stopped;\n }\n if (appServer.pid != null) {\n stopped = (await terminateProcess(appServer.pid, platform)) || stopped;\n }\n removeFileIfExists(appServer.auth?.tokenPath);\n return stopped;\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { InstanceId, BridgeState } from \"../types.js\";\nimport { loadState } from \"../state.js\";\nimport { loadInstanceConfig } from \"../config/instance-config.js\";\n\n/**\n * Resolve agent name: explicit > instance config > state.json > env.\n * Exported for direct testing without spawning a process.\n */\nexport function resolveAgentName(\n instanceId: InstanceId,\n explicit?: string,\n context?: { repoRoot?: string; stateDir?: string },\n): string | null {\n if (explicit) return explicit;\n\n // Instance config (Phase 1-2 source-of-truth)\n if (context?.stateDir) {\n try {\n const instConfig = loadInstanceConfig(context.stateDir, instanceId);\n if (instConfig?.agentName) return instConfig.agentName;\n } catch {\n // instance config read failed — fall through\n }\n }\n\n // state.json SSOT (#784 backwrite)\n try {\n const repoRoot =\n context?.repoRoot ??\n context?.stateDir?.replace(/[\\\\/].tap-comms$/, \"\") ??\n process.cwd();\n const state = loadState(repoRoot);\n const stateAgent = state?.instances[instanceId]?.agentName;\n if (stateAgent) return stateAgent;\n } catch {\n // state read failed — fall through\n }\n\n return process.env.TAP_AGENT_NAME || process.env.CODEX_TAP_AGENT_NAME || null;\n}\n\n/**\n * Infer restart mode from current bridge/instance state.\n * Priority: explicit flags > saved instance mode > bridge state inference > defaults.\n */\nexport function inferRestartMode(\n bridgeState: BridgeState | null,\n flags?: { noServer?: boolean; noAuth?: boolean },\n savedMode?: { manageAppServer?: boolean; noAuth?: boolean },\n): { manageAppServer: boolean; noAuth: boolean } {\n const wasManaged = bridgeState?.appServer != null;\n const hadAuth = bridgeState?.appServer?.auth != null;\n\n const manageAppServer =\n flags?.noServer === true\n ? false\n : flags?.noServer === undefined\n ? (savedMode?.manageAppServer ?? wasManaged)\n : true;\n const noAuth =\n flags?.noAuth === true\n ? true\n : flags?.noAuth === undefined\n ? (savedMode?.noAuth ?? !hadAuth)\n : false;\n\n return { manageAppServer, noAuth };\n}\n\n/**\n * Clean up headless dispatch files from inbox.\n * Matches YYYYMMDD-headless-{agent}-review-PR{n}.md pattern.\n */\nexport function cleanupHeadlessDispatch(\n inboxDir: string,\n agentName: string,\n): string[] {\n const removed: string[] = [];\n if (!fs.existsSync(inboxDir)) return removed;\n\n const normalizedAgent = agentName.replace(/-/g, \"_\");\n const marker = `-headless-${normalizedAgent}-review-`;\n\n try {\n for (const file of fs.readdirSync(inboxDir)) {\n if (file.includes(marker)) {\n fs.unlinkSync(path.join(inboxDir, file));\n removed.push(file);\n }\n }\n } catch {\n // best-effort\n }\n\n return removed;\n}\n","/**\n * Bridge state management — persistence, process liveness, runtime state readers.\n *\n * Extracted from engine/bridge.ts (Phase 2) to isolate state CRUD and\n * runtime heartbeat/thread readers.\n * Observability helpers (heartbeat age, turn stuck, log rotation) live in\n * bridge-observability.ts.\n *\n * @module engine/bridge-state\n */\n\nimport * as fs from \"node:fs\";\nimport type {\n InstanceId,\n BridgeLifecycleRecord,\n BridgeState,\n PersistedBridgeLifecycleState,\n} from \"../types.js\";\nimport {\n pidFilePath,\n runtimeHeartbeatFilePath,\n runtimeThreadStateFilePath,\n} from \"./bridge-paths.js\";\nimport { writeProtectedTextFile } from \"./bridge-file-io.js\";\nimport { isProcessAlive } from \"./bridge-process-control.js\";\n\n// ─── Types ────────────────────────────────────────────────────\n\nexport interface RuntimeBridgeHeartbeat {\n updatedAt?: string;\n threadId?: string | null;\n threadCwd?: string | null;\n activeTurnId?: string | null;\n turnStartedAt?: string | null;\n lastTurnStatus?: string | null;\n lastTurnAt?: string | null;\n lastDispatchAt?: string | null;\n idleSince?: string | null;\n turnState?: \"active\" | \"idle\" | \"waiting-approval\" | \"disconnected\" | null;\n lastError?: string | null;\n connected?: boolean;\n initialized?: boolean;\n}\n\nexport interface RuntimeBridgeThreadState {\n threadId: string;\n updatedAt?: string;\n appServerUrl?: string;\n ephemeral?: boolean;\n cwd?: string | null;\n}\n\n// ─── Persisted lifecycle helpers ──────────────────────────────\n\nexport function transitionBridgeLifecycle(\n previous: BridgeLifecycleRecord | null | undefined,\n nextState: PersistedBridgeLifecycleState,\n reason: string | null,\n options?: {\n at?: string;\n incrementRestart?: boolean;\n },\n): BridgeLifecycleRecord {\n const at = options?.at ?? new Date().toISOString();\n const changed = previous?.state !== nextState;\n\n return {\n state: nextState,\n since: changed || !previous?.since ? at : previous.since,\n updatedAt: at,\n lastTransitionAt:\n changed || !previous?.lastTransitionAt ? at : previous.lastTransitionAt,\n lastTransitionReason:\n changed || previous?.lastTransitionReason == null\n ? reason\n : previous.lastTransitionReason,\n restartCount:\n (previous?.restartCount ?? 0) + (options?.incrementRestart ? 1 : 0),\n };\n}\n\n// ─── Runtime state readers ────────────────────────────────────\n\nexport function loadRuntimeBridgeHeartbeat(\n bridgeState:\n | {\n runtimeStateDir?: string | null;\n }\n | null\n | undefined,\n): RuntimeBridgeHeartbeat | null {\n const runtimeStateDir = bridgeState?.runtimeStateDir;\n if (!runtimeStateDir) {\n return null;\n }\n\n const heartbeatPath = runtimeHeartbeatFilePath(runtimeStateDir);\n if (!fs.existsSync(heartbeatPath)) {\n return null;\n }\n\n try {\n return JSON.parse(\n fs.readFileSync(heartbeatPath, \"utf-8\"),\n ) as RuntimeBridgeHeartbeat;\n } catch {\n return null;\n }\n}\n\nexport function loadRuntimeBridgeThreadState(\n bridgeState:\n | {\n runtimeStateDir?: string | null;\n }\n | null\n | undefined,\n): RuntimeBridgeThreadState | null {\n const runtimeStateDir = bridgeState?.runtimeStateDir;\n if (!runtimeStateDir) {\n return null;\n }\n\n const threadPath = runtimeThreadStateFilePath(runtimeStateDir);\n if (!fs.existsSync(threadPath)) {\n return null;\n }\n\n try {\n const parsed = JSON.parse(\n fs.readFileSync(threadPath, \"utf-8\"),\n ) as RuntimeBridgeThreadState;\n return parsed.threadId ? parsed : null;\n } catch {\n return null;\n }\n}\n\n// ─── Bridge state CRUD ────────────────────────────────────────\n\nexport function loadBridgeState(\n stateDir: string,\n instanceId: InstanceId,\n): BridgeState | null {\n const pidPath = pidFilePath(stateDir, instanceId);\n if (!fs.existsSync(pidPath)) return null;\n\n try {\n const raw = fs.readFileSync(pidPath, \"utf-8\");\n return JSON.parse(raw) as BridgeState;\n } catch {\n return null;\n }\n}\n\nexport function saveBridgeState(\n stateDir: string,\n instanceId: InstanceId,\n state: BridgeState,\n): void {\n const pidPath = pidFilePath(stateDir, instanceId);\n const serializable = JSON.parse(JSON.stringify(state)) as BridgeState & {\n appServer?: { auth?: { token?: string } | null } | null;\n };\n if (serializable.appServer?.auth) {\n delete serializable.appServer.auth.token;\n }\n writeProtectedTextFile(pidPath, JSON.stringify(serializable, null, 2));\n}\n\nexport function clearBridgeState(\n stateDir: string,\n instanceId: InstanceId,\n): void {\n const pidPath = pidFilePath(stateDir, instanceId);\n if (fs.existsSync(pidPath)) {\n fs.unlinkSync(pidPath);\n }\n}\n\n// ─── Process liveness ─────────────────────────────────────────\n\nexport function isBridgeRunning(\n stateDir: string,\n instanceId: InstanceId,\n): boolean {\n const state = loadBridgeState(stateDir, instanceId);\n if (!state) return false;\n return isProcessAlive(state.pid);\n}\n","/**\n * Bridge observability — heartbeat monitoring, turn stuck detection, log rotation.\n *\n * Consolidated from bridge-state.ts (heartbeat/turn functions) and\n * bridge-log-rotate.ts into a single observability module.\n *\n * @module engine/bridge-observability\n */\n\nimport * as fs from \"node:fs\";\nimport type { InstanceId, BridgeState } from \"../types.js\";\nimport {\n loadBridgeState,\n saveBridgeState,\n clearBridgeState,\n loadRuntimeBridgeHeartbeat,\n} from \"./bridge-state.js\";\nimport { isProcessAlive } from \"./bridge-process-control.js\";\n\n// ─── Re-export for convenience (moved from bridge-state.ts) ──\n\n// ─── Heartbeat ────────────────────────────────────────────────\n\n/**\n * Resolve the most recent heartbeat timestamp from runtime or persisted state.\n */\nfunction loadRuntimeHeartbeatTimestamp(\n runtimeStateDir: string | null | undefined,\n): string | null {\n const heartbeat = loadRuntimeBridgeHeartbeat({ runtimeStateDir });\n return typeof heartbeat?.updatedAt === \"string\" ? heartbeat.updatedAt : null;\n}\n\nfunction resolveHeartbeatTimestamp(\n state: BridgeState | null | undefined,\n): string | null {\n return (\n loadRuntimeHeartbeatTimestamp(state?.runtimeStateDir) ??\n state?.lastHeartbeat ??\n null\n );\n}\n\n/**\n * Update the heartbeat timestamp for a running bridge.\n * Only the owning process (matching PID) can update the heartbeat.\n */\nexport function updateBridgeHeartbeat(\n stateDir: string,\n instanceId: InstanceId,\n): void {\n const state = loadBridgeState(stateDir, instanceId);\n if (!state) return;\n\n if (state.pid !== process.pid) return;\n\n state.lastHeartbeat = new Date().toISOString();\n saveBridgeState(stateDir, instanceId, state);\n}\n\n/**\n * Get heartbeat age in seconds. Returns null if no state or no heartbeat.\n */\nexport function getHeartbeatAge(\n stateDir: string,\n instanceId: InstanceId,\n): number | null {\n const state = loadBridgeState(stateDir, instanceId);\n const heartbeat = resolveHeartbeatTimestamp(state);\n if (!heartbeat) return null;\n const heartbeatTime = new Date(heartbeat).getTime();\n if (isNaN(heartbeatTime)) return null;\n return Math.floor((Date.now() - heartbeatTime) / 1000);\n}\n\nexport function getBridgeHeartbeatTimestamp(\n stateDir: string,\n instanceId: InstanceId,\n): string | null {\n return resolveHeartbeatTimestamp(loadBridgeState(stateDir, instanceId));\n}\n\n// ─── Bridge status ────────────────────────────────────────────\n\nexport function getBridgeStatus(\n stateDir: string,\n instanceId: InstanceId,\n): \"running\" | \"stopped\" | \"stale\" {\n const state = loadBridgeState(stateDir, instanceId);\n if (!state) return \"stopped\";\n\n if (!isProcessAlive(state.pid)) {\n clearBridgeState(stateDir, instanceId);\n return \"stale\";\n }\n\n return \"running\";\n}\n\n// ─── Turn stuck detection ─────────────────────────────────────\n\nexport interface TurnInfo {\n activeTurnId: string | null;\n lastTurnStatus: string | null;\n updatedAt: string | null;\n ageSeconds: number | null;\n stuck: boolean;\n}\n\n/**\n * Get current turn info from runtime heartbeat.\n * A turn is considered stuck if activeTurnId is set and turnStartedAt\n * exceeds the threshold.\n */\nexport function getTurnInfo(\n stateDir: string,\n instanceId: InstanceId,\n stuckThresholdSeconds: number = 300,\n): TurnInfo | null {\n const state = loadBridgeState(stateDir, instanceId);\n if (!state) return null;\n\n const heartbeat = loadRuntimeBridgeHeartbeat(state);\n if (!heartbeat) return null;\n\n const activeTurnId = heartbeat.activeTurnId ?? null;\n const lastTurnStatus = heartbeat.lastTurnStatus ?? null;\n const turnTimestamp = heartbeat.turnStartedAt ?? null;\n const updatedAt = turnTimestamp ?? heartbeat.updatedAt ?? null;\n\n let ageSeconds: number | null = null;\n if (turnTimestamp) {\n const ts = new Date(turnTimestamp).getTime();\n if (!isNaN(ts)) {\n ageSeconds = Math.floor((Date.now() - ts) / 1000);\n }\n }\n\n const stuck =\n activeTurnId !== null &&\n ageSeconds !== null &&\n ageSeconds > stuckThresholdSeconds;\n\n return { activeTurnId, lastTurnStatus, updatedAt, ageSeconds, stuck };\n}\n\n/**\n * Check if a bridge's current turn is stuck.\n */\nexport function isTurnStuck(\n stateDir: string,\n instanceId: InstanceId,\n thresholdSeconds: number = 300,\n): boolean {\n const info = getTurnInfo(stateDir, instanceId, thresholdSeconds);\n return info?.stuck ?? false;\n}\n\n// ─── Log rotation ─────────────────────────────────────────────\n\nexport function rotateLog(logPath: string): void {\n if (!fs.existsSync(logPath)) return;\n try {\n const stats = fs.statSync(logPath);\n if (stats.size === 0) return;\n const prevPath = `${logPath}.prev`;\n fs.renameSync(logPath, prevPath);\n } catch {\n // Best-effort: don't fail bridge start if rotation fails\n }\n}\n","import type {\n BridgeLifecycleRecord,\n BridgeState,\n InstanceId,\n} from \"../types.js\";\nimport type {\n RuntimeBridgeHeartbeat,\n RuntimeBridgeThreadState,\n} from \"./bridge-state.js\";\nimport {\n loadBridgeState,\n loadRuntimeBridgeHeartbeat,\n loadRuntimeBridgeThreadState,\n} from \"./bridge-state.js\";\nimport { getBridgeStatus } from \"./bridge-observability.js\";\n\nexport type BridgePresence =\n | \"bridge-live\"\n | \"bridge-stale\"\n | \"stopped\";\n\nexport type BridgeLifecycleStatus =\n | \"ready\"\n | \"initializing\"\n | \"degraded-no-thread\"\n | \"bridge-stale\"\n | \"stopped\";\n\nexport interface BridgeLifecycleSnapshot {\n presence: BridgePresence;\n status: BridgeLifecycleStatus;\n summary: string;\n lastTransitionAt: string | null;\n lastTransitionReason: string | null;\n restartCount: number;\n threadId: string | null;\n threadCwd: string | null;\n savedThreadId: string | null;\n savedThreadCwd: string | null;\n activeTurnId: string | null;\n connected: boolean | null;\n initialized: boolean | null;\n appServerHealthy: boolean | null;\n}\n\nexport interface DeriveBridgeLifecycleOptions {\n bridgeStatus: \"running\" | \"stopped\" | \"stale\";\n bridgeState?: BridgeState | null;\n runtimeHeartbeat?: RuntimeBridgeHeartbeat | null;\n savedThread?: RuntimeBridgeThreadState | null;\n persistedLifecycle?: BridgeLifecycleRecord | null;\n}\n\nfunction lifecycleMeta(\n persistedLifecycle: BridgeLifecycleRecord | null | undefined,\n): Pick<\n BridgeLifecycleSnapshot,\n \"lastTransitionAt\" | \"lastTransitionReason\" | \"restartCount\"\n> {\n return {\n lastTransitionAt: persistedLifecycle?.lastTransitionAt ?? null,\n lastTransitionReason: persistedLifecycle?.lastTransitionReason ?? null,\n restartCount: persistedLifecycle?.restartCount ?? 0,\n };\n}\n\nexport function resolveBridgeLifecycleSnapshot(\n stateDir: string,\n instanceId: InstanceId,\n fallbackBridgeState?: BridgeState | null,\n persistedLifecycle?: BridgeLifecycleRecord | null,\n): BridgeLifecycleSnapshot {\n const persistedBridgeState =\n loadBridgeState(stateDir, instanceId) ?? fallbackBridgeState ?? null;\n const bridgeStatus = getBridgeStatus(stateDir, instanceId);\n const bridgeState =\n bridgeStatus === \"running\"\n ? loadBridgeState(stateDir, instanceId) ?? persistedBridgeState\n : persistedBridgeState;\n\n return deriveBridgeLifecycleState({\n bridgeStatus,\n bridgeState,\n runtimeHeartbeat: loadRuntimeBridgeHeartbeat(bridgeState),\n savedThread: loadRuntimeBridgeThreadState(bridgeState),\n persistedLifecycle,\n });\n}\n\nexport function deriveBridgeLifecycleState(\n options: DeriveBridgeLifecycleOptions,\n): BridgeLifecycleSnapshot {\n const runtimeHeartbeat = options.runtimeHeartbeat ?? null;\n const savedThread = options.savedThread ?? null;\n const meta = lifecycleMeta(\n options.persistedLifecycle ?? options.bridgeState?.lifecycle ?? null,\n );\n\n if (options.bridgeStatus === \"stopped\") {\n return {\n presence: \"stopped\",\n status: \"stopped\",\n summary: \"stopped\",\n ...meta,\n threadId: null,\n threadCwd: null,\n savedThreadId: savedThread?.threadId ?? null,\n savedThreadCwd: savedThread?.cwd ?? null,\n activeTurnId: null,\n connected: null,\n initialized: null,\n appServerHealthy: options.bridgeState?.appServer?.healthy ?? null,\n };\n }\n\n if (options.bridgeStatus === \"stale\") {\n return {\n presence: \"bridge-stale\",\n status: \"bridge-stale\",\n summary: \"bridge-stale\",\n ...meta,\n threadId: runtimeHeartbeat?.threadId ?? null,\n threadCwd: runtimeHeartbeat?.threadCwd ?? null,\n savedThreadId: savedThread?.threadId ?? null,\n savedThreadCwd: savedThread?.cwd ?? null,\n activeTurnId: runtimeHeartbeat?.activeTurnId ?? null,\n connected: runtimeHeartbeat?.connected ?? null,\n initialized: runtimeHeartbeat?.initialized ?? null,\n appServerHealthy: options.bridgeState?.appServer?.healthy ?? null,\n };\n }\n\n const appServerHealthy = options.bridgeState?.appServer?.healthy ?? null;\n const threadId = runtimeHeartbeat?.threadId ?? null;\n const threadCwd = runtimeHeartbeat?.threadCwd ?? null;\n const connected = runtimeHeartbeat?.connected ?? null;\n const initialized = runtimeHeartbeat?.initialized ?? null;\n\n if (!runtimeHeartbeat) {\n return {\n presence: \"bridge-live\",\n status: \"initializing\",\n summary: \"bridge-live, initializing\",\n ...meta,\n threadId: null,\n threadCwd: null,\n savedThreadId: savedThread?.threadId ?? null,\n savedThreadCwd: savedThread?.cwd ?? null,\n activeTurnId: null,\n connected: null,\n initialized: null,\n appServerHealthy,\n };\n }\n\n if (initialized === false) {\n return {\n presence: \"bridge-live\",\n status: \"initializing\",\n summary: \"bridge-live, initializing\",\n ...meta,\n threadId,\n threadCwd,\n savedThreadId: savedThread?.threadId ?? null,\n savedThreadCwd: savedThread?.cwd ?? null,\n activeTurnId: runtimeHeartbeat.activeTurnId ?? null,\n connected,\n initialized,\n appServerHealthy,\n };\n }\n\n if (threadId && connected !== false) {\n return {\n presence: \"bridge-live\",\n status: \"ready\",\n summary: \"bridge-live, ready\",\n ...meta,\n threadId,\n threadCwd,\n savedThreadId: savedThread?.threadId ?? null,\n savedThreadCwd: savedThread?.cwd ?? null,\n activeTurnId: runtimeHeartbeat.activeTurnId ?? null,\n connected,\n initialized,\n appServerHealthy,\n };\n }\n\n const degradedReason = savedThread?.threadId\n ? \"saved thread only\"\n : connected === false\n ? \"disconnected\"\n : \"no active thread\";\n\n return {\n presence: \"bridge-live\",\n status: \"degraded-no-thread\",\n summary: `bridge-live, degraded-no-thread (${degradedReason})`,\n ...meta,\n threadId,\n threadCwd,\n savedThreadId: savedThread?.threadId ?? null,\n savedThreadCwd: savedThread?.cwd ?? null,\n activeTurnId: runtimeHeartbeat.activeTurnId ?? null,\n connected,\n initialized,\n appServerHealthy,\n };\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { RuntimeBridgeHeartbeat } from \"./bridge-state.js\";\n\nexport type CodexSessionTurnState =\n | \"active\"\n | \"idle\"\n | \"waiting-approval\"\n | \"disconnected\";\n\nexport type CodexSessionStatus =\n | \"initializing\"\n | \"active\"\n | \"idle\"\n | \"waiting-approval\"\n | \"disconnected\";\n\nexport interface CodexSessionSnapshot {\n status: CodexSessionStatus;\n turnState: CodexSessionTurnState | null;\n summary: string;\n activeTurnId: string | null;\n lastTurnAt: string | null;\n lastDispatchAt: string | null;\n idleSince: string | null;\n connected: boolean | null;\n initialized: boolean | null;\n}\n\ninterface LastDispatchRecord {\n dispatchedAt?: string;\n}\n\nexport interface DeriveCodexSessionOptions {\n runtimeHeartbeat?: RuntimeBridgeHeartbeat | null;\n runtimeStateDir?: string | null;\n}\n\nfunction readLastDispatchAt(\n runtimeStateDir: string | null | undefined,\n): string | null {\n if (!runtimeStateDir) return null;\n\n const filePath = path.join(runtimeStateDir, \"last-dispatch.json\");\n if (!fs.existsSync(filePath)) return null;\n\n try {\n const parsed = JSON.parse(\n fs.readFileSync(filePath, \"utf-8\"),\n ) as LastDispatchRecord;\n return typeof parsed.dispatchedAt === \"string\" ? parsed.dispatchedAt : null;\n } catch {\n return null;\n }\n}\n\nfunction formatIdleSummary(idleSince: string | null): string {\n if (!idleSince) return \"idle\";\n return `idle since ${idleSince}`;\n}\n\nexport function deriveCodexSessionState(\n options: DeriveCodexSessionOptions,\n): CodexSessionSnapshot {\n const runtimeHeartbeat = options.runtimeHeartbeat ?? null;\n\n if (!runtimeHeartbeat) {\n return {\n status: \"initializing\",\n turnState: null,\n summary: \"initializing\",\n activeTurnId: null,\n lastTurnAt: null,\n lastDispatchAt: null,\n idleSince: null,\n connected: null,\n initialized: null,\n };\n }\n\n const turnState = runtimeHeartbeat.turnState ?? null;\n const activeTurnId = runtimeHeartbeat.activeTurnId ?? null;\n const lastTurnAt = runtimeHeartbeat.lastTurnAt ?? null;\n const lastDispatchAt =\n runtimeHeartbeat.lastDispatchAt ??\n readLastDispatchAt(options.runtimeStateDir) ??\n null;\n const idleSince = runtimeHeartbeat.idleSince ?? null;\n const connected = runtimeHeartbeat.connected ?? null;\n const initialized = runtimeHeartbeat.initialized ?? null;\n\n if (initialized === false) {\n return {\n status: \"initializing\",\n turnState,\n summary: \"initializing\",\n activeTurnId,\n lastTurnAt,\n lastDispatchAt,\n idleSince,\n connected,\n initialized,\n };\n }\n\n if (turnState === \"active\" || activeTurnId) {\n return {\n status: \"active\",\n turnState: \"active\",\n summary: activeTurnId ? `active turn ${activeTurnId}` : \"active\",\n activeTurnId,\n lastTurnAt,\n lastDispatchAt,\n idleSince: null,\n connected,\n initialized,\n };\n }\n\n if (turnState === \"waiting-approval\") {\n return {\n status: \"waiting-approval\",\n turnState,\n summary: `waiting-approval (${formatIdleSummary(idleSince)})`,\n activeTurnId,\n lastTurnAt,\n lastDispatchAt,\n idleSince,\n connected,\n initialized,\n };\n }\n\n if (turnState === \"disconnected\" || connected === false) {\n return {\n status: \"disconnected\",\n turnState: \"disconnected\",\n summary: \"disconnected\",\n activeTurnId,\n lastTurnAt,\n lastDispatchAt,\n idleSince: null,\n connected,\n initialized,\n };\n }\n\n return {\n status: \"idle\",\n turnState: turnState === \"idle\" ? turnState : \"idle\",\n summary: formatIdleSummary(idleSince),\n activeTurnId,\n lastTurnAt,\n lastDispatchAt,\n idleSince,\n connected,\n initialized,\n };\n}\n","import * as net from \"node:net\";\nimport type { AppServerState } from \"../types.js\";\nimport { getWebSocketCtor, delay } from \"./bridge-port-network.js\";\n\nexport interface WebSocketLike {\n addEventListener(\n type: \"open\" | \"error\" | \"close\",\n listener: () => void,\n options?: { once?: boolean },\n ): void;\n close(code?: number, reason?: string): void;\n}\n\nexport type WebSocketCtor = new (\n url: string,\n protocols?: string | string[],\n) => WebSocketLike;\n\nexport const APP_SERVER_HEALTH_TIMEOUT_MS = 1_500;\nexport const APP_SERVER_HEALTH_RETRY_MS = 250;\nexport const APP_SERVER_READYZ_PATH = \"/readyz\";\n\nexport const AUTH_SUBPROTOCOL_PREFIX = \"tap-auth-\";\n\nexport type AppServerReadyzStatus = \"ready\" | \"not-ready\" | \"unsupported\";\n\nexport async function checkAppServerHealth(\n url: string,\n timeoutMs: number = APP_SERVER_HEALTH_TIMEOUT_MS,\n gatewayToken?: string | null,\n): Promise<boolean> {\n const WebSocket = getWebSocketCtor();\n if (!WebSocket) {\n return false;\n }\n\n return new Promise<boolean>((resolve) => {\n let settled = false;\n let socket: WebSocketLike | null = null;\n\n const finish = (healthy: boolean) => {\n if (settled) {\n return;\n }\n settled = true;\n clearTimeout(timer);\n try {\n socket?.close();\n } catch {\n // Best-effort cleanup only.\n }\n resolve(healthy);\n };\n\n const timer = setTimeout(() => finish(false), timeoutMs);\n\n try {\n // Authenticate via WebSocket subprotocol when a gateway token is provided.\n const protocols = gatewayToken\n ? [`${AUTH_SUBPROTOCOL_PREFIX}${gatewayToken}`]\n : undefined;\n socket = new WebSocket(url, protocols);\n socket.addEventListener(\"open\", () => finish(true), { once: true });\n socket.addEventListener(\"error\", () => finish(false), { once: true });\n socket.addEventListener(\"close\", () => finish(false), { once: true });\n } catch {\n finish(false);\n }\n });\n}\n\nexport async function waitForAppServerHealth(\n url: string,\n timeoutMs: number,\n gatewayToken?: string | null,\n): Promise<boolean> {\n const deadline = Date.now() + timeoutMs;\n\n while (Date.now() < deadline) {\n if (\n await checkAppServerHealth(\n url,\n APP_SERVER_HEALTH_TIMEOUT_MS,\n gatewayToken,\n )\n ) {\n return true;\n }\n await delay(APP_SERVER_HEALTH_RETRY_MS);\n }\n\n return false;\n}\n\nexport function buildAppServerReadyzUrl(url: string): string | null {\n let parsed: URL;\n try {\n parsed = new URL(url);\n } catch {\n return null;\n }\n\n if (parsed.protocol === \"ws:\") {\n parsed.protocol = \"http:\";\n } else if (parsed.protocol === \"wss:\") {\n parsed.protocol = \"https:\";\n } else if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n return null;\n }\n\n parsed.pathname = APP_SERVER_READYZ_PATH;\n parsed.search = \"\";\n parsed.hash = \"\";\n return parsed.toString();\n}\n\nexport async function checkAppServerReadyz(\n url: string,\n timeoutMs: number = APP_SERVER_HEALTH_TIMEOUT_MS,\n): Promise<AppServerReadyzStatus> {\n const readyzUrl = buildAppServerReadyzUrl(url);\n if (!readyzUrl) {\n return \"unsupported\";\n }\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n\n try {\n const response = await fetch(readyzUrl, {\n method: \"GET\",\n signal: controller.signal,\n headers: {\n accept: \"application/json\",\n },\n });\n\n if (response.ok) {\n return \"ready\";\n }\n\n if (\n response.status === 400 ||\n response.status === 404 ||\n response.status === 405 ||\n response.status === 426 ||\n response.status === 501\n ) {\n return \"unsupported\";\n }\n\n return \"not-ready\";\n } catch {\n return \"not-ready\";\n } finally {\n clearTimeout(timer);\n }\n}\n\n/**\n * Check if a TCP port is accepting connections (without WebSocket upgrade).\n * Use this for managed startup health checks to avoid creating app-server sessions.\n */\nexport async function checkTcpPortListening(\n url: string,\n timeoutMs: number = APP_SERVER_HEALTH_TIMEOUT_MS,\n): Promise<boolean> {\n let hostname: string;\n let port: number;\n try {\n const parsed = new URL(url.replace(/^ws/, \"http\"));\n hostname = parsed.hostname;\n port = parseInt(parsed.port, 10);\n } catch {\n return false;\n }\n if (!port || !Number.isFinite(port)) return false;\n\n return new Promise<boolean>((resolve) => {\n const socket = net.createConnection({ host: hostname, port });\n const timer = setTimeout(() => {\n socket.destroy();\n resolve(false);\n }, timeoutMs);\n\n socket.once(\"connect\", () => {\n clearTimeout(timer);\n socket.destroy();\n resolve(true);\n });\n socket.once(\"error\", () => {\n clearTimeout(timer);\n socket.destroy();\n resolve(false);\n });\n });\n}\n\n/**\n * Wait for a TCP port to start accepting connections.\n * Does NOT open a WebSocket, so no app-server session is created.\n */\nexport async function waitForTcpPortListening(\n url: string,\n timeoutMs: number,\n): Promise<boolean> {\n const deadline = Date.now() + timeoutMs;\n\n while (Date.now() < deadline) {\n if (await checkTcpPortListening(url, APP_SERVER_HEALTH_TIMEOUT_MS)) {\n return true;\n }\n await delay(APP_SERVER_HEALTH_RETRY_MS);\n }\n\n return false;\n}\n\nexport async function checkManagedAppServerReady(\n url: string,\n timeoutMs: number = APP_SERVER_HEALTH_TIMEOUT_MS,\n): Promise<boolean> {\n const readyzStatus = await checkAppServerReadyz(url, timeoutMs);\n if (readyzStatus === \"ready\") {\n return true;\n }\n\n if (readyzStatus === \"unsupported\") {\n return checkTcpPortListening(url, timeoutMs);\n }\n\n return false;\n}\n\nexport async function waitForManagedAppServerReady(\n url: string,\n timeoutMs: number,\n): Promise<boolean> {\n const deadline = Date.now() + timeoutMs;\n\n while (Date.now() < deadline) {\n const remaining = Math.max(\n 1,\n Math.min(APP_SERVER_HEALTH_TIMEOUT_MS, deadline - Date.now()),\n );\n if (await checkManagedAppServerReady(url, remaining)) {\n return true;\n }\n await delay(APP_SERVER_HEALTH_RETRY_MS);\n }\n\n return false;\n}\n\nexport function markAppServerHealthy(\n appServer: AppServerState,\n): AppServerState {\n const checkedAt = new Date().toISOString();\n return {\n ...appServer,\n healthy: true,\n lastCheckedAt: checkedAt,\n lastHealthyAt: checkedAt,\n };\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { randomBytes } from \"node:crypto\";\nimport type {\n InstanceId,\n AppServerState,\n AppServerAuthState,\n Platform,\n} from \"../types.js\";\nimport { resolveNodeRuntime, buildRuntimeEnv } from \"../runtime/index.js\";\nimport {\n appServerGatewayTokenFilePath,\n appServerGatewayLogFilePath,\n} from \"./bridge-paths.js\";\nimport {\n writeProtectedTextFile,\n removeFileIfExists,\n} from \"./bridge-file-io.js\";\nimport { allocateLoopbackPort } from \"./bridge-port-network.js\";\nimport { resolveAuthGatewayScript } from \"./bridge-codex-command.js\";\nimport { isProcessAlive } from \"./bridge-process-control.js\";\nimport { startWindowsDetachedProcess } from \"./bridge-windows-spawn.js\";\nimport { startUnixDetachedProcess } from \"./bridge-unix-spawn.js\";\nimport { rotateLog } from \"./bridge-observability.js\";\nimport {\n checkAppServerHealth,\n waitForAppServerHealth,\n} from \"./bridge-app-server-health.js\";\n\nexport { AUTH_SUBPROTOCOL_PREFIX } from \"./bridge-app-server-health.js\";\n\ninterface ManagedAppServerGatewayOptions {\n instanceId: InstanceId;\n stateDir: string;\n repoRoot: string;\n platform: Platform;\n publicUrl: string;\n}\n\nexport function buildProtectedAppServerUrl(\n publicUrl: string,\n _token: string,\n): string {\n // Subprotocol auth: token is no longer embedded in the URL.\n // Kept for backward compatibility with state display — shows base URL only.\n return publicUrl;\n}\n\nexport function readGatewayTokenFromPath(tokenPath: string): string {\n return fs.readFileSync(tokenPath, \"utf8\").trim();\n}\n\nexport function readGatewayToken(\n auth: AppServerAuthState | null | undefined,\n): string | null {\n if (!auth) {\n return null;\n }\n\n const legacyToken = (auth as AppServerAuthState & { token?: string }).token;\n if (legacyToken?.trim()) {\n return legacyToken.trim();\n }\n\n if (!auth.tokenPath || !fs.existsSync(auth.tokenPath)) {\n return null;\n }\n\n const fileToken = readGatewayTokenFromPath(auth.tokenPath);\n return fileToken || null;\n}\n\nexport function materializeGatewayTokenFile(\n stateDir: string,\n instanceId: InstanceId,\n publicUrl: string,\n auth: AppServerAuthState,\n): AppServerAuthState {\n if (auth.tokenPath && fs.existsSync(auth.tokenPath)) {\n return auth;\n }\n\n const token = readGatewayToken(auth);\n if (!token) {\n throw new Error(`Missing auth gateway token for ${instanceId}`);\n }\n\n const tokenPath = appServerGatewayTokenFilePath(stateDir, instanceId);\n writeProtectedTextFile(tokenPath, `${token}\\n`);\n return {\n ...auth,\n protectedUrl: buildProtectedAppServerUrl(publicUrl, \"***\"),\n tokenPath,\n };\n}\n\nexport async function createManagedAppServerAuth(\n options: ManagedAppServerGatewayOptions,\n): Promise<AppServerAuthState> {\n const publicUrl = new URL(options.publicUrl);\n const upstreamUrl = new URL(options.publicUrl);\n upstreamUrl.port = String(await allocateLoopbackPort(publicUrl.hostname));\n upstreamUrl.search = \"\";\n upstreamUrl.hash = \"\";\n\n const gatewayScript = resolveAuthGatewayScript(options.repoRoot);\n if (!gatewayScript) {\n throw new Error(\"Auth gateway script not found\");\n }\n\n const token = randomBytes(24).toString(\"base64url\");\n const tokenPath = appServerGatewayTokenFilePath(\n options.stateDir,\n options.instanceId,\n );\n writeProtectedTextFile(tokenPath, `${token}\\n`);\n const protectedUrl = buildProtectedAppServerUrl(options.publicUrl, \"***\");\n\n const gatewayLogPath = appServerGatewayLogFilePath(\n options.stateDir,\n options.instanceId,\n );\n fs.mkdirSync(path.dirname(gatewayLogPath), { recursive: true });\n rotateLog(gatewayLogPath);\n\n const runtime = resolveNodeRuntime(process.execPath, options.repoRoot);\n const gatewayArgs: string[] = [];\n if (gatewayScript.endsWith(\".ts\")) {\n if (!runtime.supportsStripTypes) {\n throw new Error(\n \"Current Node runtime cannot start the auth gateway from TypeScript source. Rebuild @hua-labs/tap or use Node 22.6+.\",\n );\n }\n gatewayArgs.push(\"--experimental-strip-types\");\n }\n gatewayArgs.push(gatewayScript);\n\n const gatewayEnv = {\n ...buildRuntimeEnv(options.repoRoot),\n TAP_GATEWAY_LISTEN_URL: options.publicUrl,\n TAP_GATEWAY_UPSTREAM_URL: upstreamUrl.toString().replace(/\\/$/, \"\"),\n TAP_GATEWAY_TOKEN_FILE: tokenPath,\n };\n\n let gatewayPid: number | null;\n try {\n gatewayPid =\n options.platform === \"win32\"\n ? startWindowsDetachedProcess(\n runtime.command,\n gatewayArgs,\n options.repoRoot,\n gatewayLogPath,\n gatewayEnv,\n )\n : startUnixDetachedProcess(\n runtime.command,\n gatewayArgs,\n options.repoRoot,\n gatewayLogPath,\n gatewayEnv,\n options.platform,\n );\n } catch (error) {\n removeFileIfExists(tokenPath);\n throw error;\n }\n\n if (gatewayPid == null) {\n removeFileIfExists(tokenPath);\n throw new Error(\"Failed to spawn app-server auth gateway\");\n }\n\n return {\n mode: \"subprotocol\",\n protectedUrl,\n upstreamUrl: upstreamUrl.toString().replace(/\\/$/, \"\"),\n tokenPath,\n gatewayPid,\n gatewayLogPath,\n };\n}\n\nexport function canReuseManagedAppServer(\n appServer: AppServerState | null | undefined,\n): boolean {\n if (!appServer?.managed) {\n return false;\n }\n\n // App-server process must be alive\n if (appServer.pid != null && !isProcessAlive(appServer.pid)) {\n return false;\n }\n\n const auth = appServer.auth;\n if (auth) {\n // Auth mode: verify gateway token and process are intact\n if (!auth.protectedUrl) {\n return false;\n }\n if (!readGatewayToken(auth)) {\n return false;\n }\n if (auth.gatewayPid != null && !isProcessAlive(auth.gatewayPid)) {\n return false;\n }\n }\n // No-auth mode (auth is null): only the app-server process check above is needed\n\n return true;\n}\n\nexport { checkAppServerHealth, waitForAppServerHealth };\n","/**\n * Common Node.js runtime resolver for all tap-comms child processes.\n *\n * Resolution chain:\n * .node-version + fnm probe → configured command → tsx fallback\n *\n * Extracted from codex-bridge-runner.ts (M69) to share across:\n * - bridge engine spawn\n * - bridge runner spawn\n * - future CLI commands\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { execSync } from \"node:child_process\";\n\n// ─── Types ─────────────────────────────────────────────────────\n\nexport type RuntimeSource = \"fnm\" | \"config\" | \"path\" | \"tsx-fallback\" | \"bun\";\n\nexport interface ResolvedRuntime {\n /** Absolute path or command name for the resolved runtime. */\n command: string;\n /** Whether --experimental-strip-types is supported and should be used. */\n supportsStripTypes: boolean;\n /** Where the runtime was resolved from (for diagnostics). */\n source: RuntimeSource;\n /** Detected major version, if available. */\n majorVersion: number | null;\n}\n\n// ─── .node-version ─────────────────────────────────────────────\n\nexport function readNodeVersion(repoRoot: string): string | null {\n const nvFile = path.join(repoRoot, \".node-version\");\n if (!fs.existsSync(nvFile)) return null;\n try {\n const raw = fs.readFileSync(nvFile, \"utf-8\").trim();\n return raw.length > 0 ? raw.replace(/^v/, \"\") : null;\n } catch {\n return null;\n }\n}\n\n// ─── fnm probe ─────────────────────────────────────────────────\n\nfunction fnmCandidateDirs(): string[] {\n if (process.platform === \"win32\") {\n return [\n process.env.FNM_DIR,\n process.env.APPDATA ? path.join(process.env.APPDATA, \"fnm\") : null,\n process.env.LOCALAPPDATA\n ? path.join(process.env.LOCALAPPDATA, \"fnm\")\n : null,\n process.env.USERPROFILE\n ? path.join(process.env.USERPROFILE, \"scoop\", \"persist\", \"fnm\")\n : null,\n ].filter(Boolean) as string[];\n }\n // macOS / Linux\n return [\n process.env.FNM_DIR,\n process.env.HOME\n ? path.join(process.env.HOME, \".local\", \"share\", \"fnm\")\n : null,\n process.env.HOME ? path.join(process.env.HOME, \".fnm\") : null,\n process.env.XDG_DATA_HOME\n ? path.join(process.env.XDG_DATA_HOME, \"fnm\")\n : null,\n ].filter(Boolean) as string[];\n}\n\nfunction nodeExecutableName(): string {\n return process.platform === \"win32\" ? \"node.exe\" : \"node\";\n}\n\nexport function probeFnmNode(desiredVersion: string): string | null {\n const dirs = fnmCandidateDirs();\n const exe = nodeExecutableName();\n\n for (const baseDir of dirs) {\n const candidate = path.join(\n baseDir,\n \"node-versions\",\n `v${desiredVersion}`,\n \"installation\",\n exe,\n );\n if (!fs.existsSync(candidate)) continue;\n\n try {\n const v = execSync(`\"${candidate}\" --version`, {\n encoding: \"utf-8\",\n timeout: 5000,\n }).trim();\n if (v.startsWith(`v${desiredVersion.split(\".\")[0]}.`)) {\n return candidate;\n }\n } catch {\n // candidate exists but doesn't work — skip\n }\n }\n\n return null;\n}\n\n// ─── Version detection ─────────────────────────────────────────\n\nexport function detectNodeMajorVersion(command: string): number | null {\n try {\n const version = execSync(`\"${command}\" --version`, {\n encoding: \"utf-8\",\n timeout: 5000,\n }).trim();\n const match = version.match(/^v?(\\d+)\\./);\n return match ? parseInt(match[1], 10) : null;\n } catch {\n return null;\n }\n}\n\nexport function checkStripTypesSupport(command: string): boolean {\n const major = detectNodeMajorVersion(command);\n if (major !== null && major >= 22) return true;\n try {\n execSync(`\"${command}\" --experimental-strip-types -e \"\"`, {\n timeout: 5000,\n stdio: \"pipe\",\n });\n return true;\n } catch {\n return false;\n }\n}\n\n// ─── tsx fallback ──────────────────────────────────────────────\n\nexport function findTsxFallback(repoRoot: string): string | null {\n const candidates = [\n path.join(repoRoot, \"node_modules\", \".bin\", \"tsx.exe\"),\n path.join(repoRoot, \"node_modules\", \".bin\", \"tsx.CMD\"),\n path.join(repoRoot, \"node_modules\", \".bin\", \"tsx\"),\n ];\n for (const c of candidates) {\n if (fs.existsSync(c)) return c;\n }\n return null;\n}\n\n// ─── fnm bin directory (for PATH prepending) ───────────────────\n\n/**\n * Returns the directory containing the fnm-managed node binary,\n * suitable for prepending to PATH in child processes.\n */\nexport function getFnmBinDir(repoRoot: string): string | null {\n const desiredVersion = readNodeVersion(repoRoot);\n if (!desiredVersion) return null;\n\n const nodePath = probeFnmNode(desiredVersion);\n if (!nodePath) return null;\n\n return path.dirname(nodePath);\n}\n\n// ─── Main resolver ─────────────────────────────────────────────\n\n/**\n * Resolve the Node.js runtime to use for spawning child processes.\n *\n * Priority: bun passthrough → .node-version + fnm → configured command → tsx fallback\n */\nexport function resolveNodeRuntime(\n configCommand: string,\n repoRoot: string,\n): ResolvedRuntime {\n // Bun: native TS support, no strip-types needed\n if (configCommand === \"bun\" || configCommand.endsWith(\"bun.exe\")) {\n return {\n command: configCommand,\n supportsStripTypes: false,\n source: \"bun\",\n majorVersion: null,\n };\n }\n\n // .node-version + fnm discovery\n const desiredVersion = readNodeVersion(repoRoot);\n if (desiredVersion) {\n const fnmNode = probeFnmNode(desiredVersion);\n if (fnmNode) {\n const major = detectNodeMajorVersion(fnmNode);\n return {\n command: fnmNode,\n supportsStripTypes: checkStripTypesSupport(fnmNode),\n source: \"fnm\",\n majorVersion: major,\n };\n }\n }\n\n // Configured command (from config or PATH)\n const major = detectNodeMajorVersion(configCommand);\n if (major !== null) {\n return {\n command: configCommand,\n supportsStripTypes: checkStripTypesSupport(configCommand),\n source: major === detectNodeMajorVersion(\"node\") ? \"path\" : \"config\",\n majorVersion: major,\n };\n }\n\n // tsx fallback\n const tsx = findTsxFallback(repoRoot);\n if (tsx) {\n return {\n command: tsx,\n supportsStripTypes: false,\n source: \"tsx-fallback\",\n majorVersion: null,\n };\n }\n\n // Last resort\n return {\n command: configCommand,\n supportsStripTypes: false,\n source: \"path\",\n majorVersion: null,\n };\n}\n\n// ─── Env builder for child processes ───────────────────────────\n\n/**\n * Build an env object with fnm Node prepended to PATH.\n * Use this when spawning child processes that need the correct Node.\n */\nexport function buildRuntimeEnv(\n repoRoot: string,\n baseEnv: NodeJS.ProcessEnv = process.env,\n): NodeJS.ProcessEnv {\n const fnmBin = getFnmBinDir(repoRoot);\n if (!fnmBin) return { ...baseEnv };\n\n const pathKey = process.platform === \"win32\" ? \"Path\" : \"PATH\";\n const currentPath = baseEnv[pathKey] ?? baseEnv.PATH ?? \"\";\n\n return {\n ...baseEnv,\n [pathKey]: `${fnmBin}${path.delimiter}${currentPath}`,\n };\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type {\n InstanceId,\n BridgeState,\n AppServerState,\n Platform,\n} from \"../types.js\";\n\nimport { appServerLogFilePath } from \"./bridge-paths.js\";\nimport { removeFileIfExists } from \"./bridge-file-io.js\";\nimport { isLoopbackHost } from \"./bridge-port-network.js\";\nimport { resolveCodexCommand } from \"./bridge-codex-command.js\";\nimport {\n startWindowsCodexAppServer,\n findListeningProcessId,\n} from \"./bridge-windows-spawn.js\";\nimport {\n startUnixCodexAppServer,\n findUnixListeningProcessId,\n} from \"./bridge-unix-spawn.js\";\nimport { terminateProcess, isProcessAlive } from \"./bridge-process-control.js\";\nimport {\n checkAppServerHealth,\n waitForManagedAppServerReady,\n markAppServerHealthy,\n} from \"./bridge-app-server-health.js\";\nimport {\n readGatewayToken,\n createManagedAppServerAuth,\n canReuseManagedAppServer,\n} from \"./bridge-app-server-auth.js\";\nimport { rotateLog } from \"./bridge-observability.js\";\n\nexport interface EnsureCodexAppServerOptions {\n instanceId: InstanceId;\n stateDir: string;\n runtimeStateDir: string;\n commsDir: string;\n repoRoot: string;\n platform: Platform;\n appServerUrl: string;\n agentName: string;\n existingAppServer?: AppServerState | null;\n noAuth?: boolean;\n}\n\nexport const DEFAULT_APP_SERVER_URL = \"ws://127.0.0.1:4501\";\nexport const APP_SERVER_START_TIMEOUT_MS = 20_000;\nexport const APP_SERVER_GATEWAY_START_TIMEOUT_MS = 5_000;\n\nfunction buildCodexAppServerEnv(\n options: EnsureCodexAppServerOptions,\n): NodeJS.ProcessEnv {\n return {\n ...process.env,\n TAP_COMMS_DIR: options.commsDir,\n TAP_STATE_DIR: options.stateDir,\n TAP_RUNTIME_STATE_DIR: options.runtimeStateDir,\n TAP_REPO_ROOT: options.repoRoot,\n TAP_BRIDGE_INSTANCE_ID: options.instanceId,\n TAP_AGENT_ID: options.instanceId,\n TAP_AGENT_NAME: options.agentName,\n CODEX_TAP_AGENT_NAME: options.agentName,\n };\n}\n\n/**\n * Check if any OTHER running bridge is using the same managed app-server.\n * Used to prevent killing a shared app-server when one bridge fails to start.\n */\nexport function isAppServerUsedByOtherBridge(\n stateDir: string,\n excludeInstanceId: InstanceId,\n appServer: AppServerState,\n): boolean {\n const pidDir = path.join(stateDir, \"pids\");\n if (!fs.existsSync(pidDir)) return false;\n\n for (const name of fs.readdirSync(pidDir)) {\n if (!name.startsWith(\"bridge-\") || !name.endsWith(\".json\")) continue;\n const otherId = name.slice(\"bridge-\".length, -\".json\".length);\n if (otherId === excludeInstanceId) continue;\n\n try {\n const raw = fs.readFileSync(path.join(pidDir, name), \"utf-8\");\n const state = JSON.parse(raw) as BridgeState;\n if (\n state.appServer?.url === appServer.url &&\n state.appServer?.pid === appServer.pid &&\n isProcessAlive(state.pid)\n ) {\n return true;\n }\n } catch {\n continue;\n }\n }\n return false;\n}\n\nexport function findReusableManagedAppServer(\n stateDir: string,\n publicUrl: string,\n): AppServerState | null {\n const pidDir = path.join(stateDir, \"pids\");\n if (!fs.existsSync(pidDir)) {\n return null;\n }\n\n for (const name of fs.readdirSync(pidDir)) {\n if (!name.startsWith(\"bridge-\") || !name.endsWith(\".json\")) {\n continue;\n }\n\n try {\n const raw = fs.readFileSync(path.join(pidDir, name), \"utf-8\");\n const parsed = JSON.parse(raw) as BridgeState;\n if (parsed.appServer?.url !== publicUrl) {\n continue;\n }\n if (canReuseManagedAppServer(parsed.appServer)) {\n return markAppServerHealthy(parsed.appServer!);\n }\n } catch {\n // Ignore stale or corrupted bridge state.\n }\n }\n\n return null;\n}\n\nexport function resolveAppServerUrl(\n baseUrl: string | undefined,\n port?: number,\n): string {\n const resolvedBase = (baseUrl ?? DEFAULT_APP_SERVER_URL).replace(/\\/$/, \"\");\n if (port == null) {\n return resolvedBase;\n }\n\n try {\n const parsed = new URL(resolvedBase);\n parsed.port = String(port);\n return parsed.toString().replace(/\\/$/, \"\");\n } catch {\n return resolvedBase;\n }\n}\n\nexport async function ensureCodexAppServer(\n options: EnsureCodexAppServerOptions,\n): Promise<AppServerState> {\n const effectiveUrl = resolveAppServerUrl(options.appServerUrl);\n const fallbackManualCommand = formatCodexAppServerCommand(\n \"codex\",\n effectiveUrl,\n );\n if (\n options.existingAppServer?.url === effectiveUrl &&\n canReuseManagedAppServer(options.existingAppServer)\n ) {\n return markAppServerHealthy(options.existingAppServer);\n }\n\n const sharedManaged = findReusableManagedAppServer(\n options.stateDir,\n effectiveUrl,\n );\n if (sharedManaged) {\n return sharedManaged;\n }\n\n let parsedUrl: URL;\n try {\n parsedUrl = new URL(effectiveUrl);\n } catch {\n throw new Error(\n `Invalid app-server URL: ${effectiveUrl}\\nStart it manually:\\n ${fallbackManualCommand}`,\n );\n }\n\n if (!isLoopbackHost(parsedUrl.hostname)) {\n throw new Error(\n `Auto-start only supports loopback app-server URLs. Current URL: ${effectiveUrl}\\nStart it manually:\\n ${fallbackManualCommand}`,\n );\n }\n\n if (await checkAppServerHealth(effectiveUrl)) {\n const hint = options.noAuth\n ? \"Stop it first or use --no-server for an unmanaged external app-server.\"\n : \"A listener is already running, so tap cannot insert the auth gateway there.\\nStop it first or use --no-server for an unmanaged external app-server.\";\n throw new Error(`${effectiveUrl}: ${hint}`);\n }\n\n const resolvedCommand = resolveCodexCommand(options.platform);\n if (!resolvedCommand) {\n throw new Error(\n `Codex CLI not found in PATH.\\nStart the app-server manually:\\n ${fallbackManualCommand}`,\n );\n }\n\n const logPath = appServerLogFilePath(options.stateDir, options.instanceId);\n fs.mkdirSync(path.dirname(logPath), { recursive: true });\n rotateLog(logPath);\n const appServerEnv = buildCodexAppServerEnv(options);\n\n // --no-auth: start app-server directly on the public URL (no gateway).\n // TUI and bridge both connect to the same port without token auth.\n if (options.noAuth) {\n const manualCommand = formatCodexAppServerCommand(\"codex\", effectiveUrl);\n let pid: number | null;\n\n if (options.platform === \"win32\") {\n try {\n pid = startWindowsCodexAppServer(\n resolvedCommand,\n effectiveUrl,\n options.repoRoot,\n logPath,\n appServerEnv,\n );\n } catch (err) {\n throw new Error(\n `Failed to spawn Codex app-server: ${err instanceof Error ? err.message : String(err)}\\nStart it manually:\\n ${manualCommand}`,\n { cause: err },\n );\n }\n } else {\n try {\n pid = startUnixCodexAppServer(\n resolvedCommand,\n effectiveUrl,\n options.repoRoot,\n logPath,\n appServerEnv,\n options.platform,\n );\n } catch (err) {\n throw new Error(\n `Failed to spawn Codex app-server: ${err instanceof Error ? err.message : String(err)}\\nStart it manually:\\n ${manualCommand}`,\n { cause: err },\n );\n }\n }\n\n if (pid == null) {\n throw new Error(\n `Failed to spawn Codex app-server.\\nStart it manually:\\n ${manualCommand}`,\n );\n }\n\n // Managed startup uses HTTP /readyz (with TCP fallback for older servers)\n // so readiness is verified without opening an extra WebSocket session.\n const healthy = await waitForManagedAppServerReady(\n effectiveUrl,\n APP_SERVER_START_TIMEOUT_MS,\n );\n if (!healthy) {\n await terminateProcess(pid, options.platform);\n throw new Error(\n `Codex app-server did not become healthy at ${effectiveUrl}.\\nCheck ${logPath}\\nOr start it manually:\\n ${manualCommand}`,\n );\n }\n\n pid =\n (options.platform === \"win32\"\n ? findListeningProcessId(effectiveUrl, options.platform)\n : findUnixListeningProcessId(effectiveUrl, options.platform)) ?? pid;\n const healthyAt = new Date().toISOString();\n return {\n url: effectiveUrl,\n pid,\n managed: true,\n healthy: true,\n lastCheckedAt: healthyAt,\n lastHealthyAt: healthyAt,\n logPath,\n manualCommand,\n auth: null,\n };\n }\n\n // Default: auth gateway mode — gateway on publicUrl, app-server on random upstream port\n const auth = await createManagedAppServerAuth({\n instanceId: options.instanceId,\n stateDir: options.stateDir,\n repoRoot: options.repoRoot,\n platform: options.platform,\n publicUrl: effectiveUrl,\n });\n const manualCommand = formatCodexAppServerCommand(\"codex\", auth.upstreamUrl);\n\n let pid: number | null;\n\n if (options.platform === \"win32\") {\n try {\n pid = startWindowsCodexAppServer(\n resolvedCommand,\n auth.upstreamUrl,\n options.repoRoot,\n logPath,\n appServerEnv,\n );\n } catch (err) {\n if (auth.gatewayPid != null) {\n await terminateProcess(auth.gatewayPid, options.platform);\n }\n removeFileIfExists(auth.tokenPath);\n throw new Error(\n `Failed to spawn Codex app-server: ${err instanceof Error ? err.message : String(err)}\\nStart it manually:\\n ${manualCommand}`,\n { cause: err },\n );\n }\n } else {\n try {\n pid = startUnixCodexAppServer(\n resolvedCommand,\n auth.upstreamUrl,\n options.repoRoot,\n logPath,\n appServerEnv,\n options.platform,\n );\n } catch (err) {\n if (auth.gatewayPid != null) {\n await terminateProcess(auth.gatewayPid, options.platform);\n }\n removeFileIfExists(auth.tokenPath);\n throw new Error(\n `Failed to spawn Codex app-server: ${err instanceof Error ? err.message : String(err)}\\nStart it manually:\\n ${manualCommand}`,\n { cause: err },\n );\n }\n }\n\n if (pid == null) {\n if (auth.gatewayPid != null) {\n await terminateProcess(auth.gatewayPid, options.platform);\n }\n removeFileIfExists(auth.tokenPath);\n throw new Error(\n `Failed to spawn Codex app-server.\\nStart it manually:\\n ${manualCommand}`,\n );\n }\n\n // Managed startup uses HTTP /readyz (with TCP fallback for older servers)\n // so readiness is verified without opening an extra WebSocket session.\n const healthy = await waitForManagedAppServerReady(\n auth.upstreamUrl,\n APP_SERVER_START_TIMEOUT_MS,\n );\n\n if (!healthy) {\n await terminateProcess(pid, options.platform);\n if (auth.gatewayPid != null) {\n await terminateProcess(auth.gatewayPid, options.platform);\n }\n removeFileIfExists(auth.tokenPath);\n throw new Error(\n `Codex app-server did not become healthy at ${auth.upstreamUrl}.\\nCheck ${logPath}\\nOr start it manually:\\n ${manualCommand}`,\n );\n }\n\n const gatewayToken = readGatewayToken(auth);\n if (!gatewayToken) {\n await terminateProcess(pid, options.platform);\n if (auth.gatewayPid != null) {\n await terminateProcess(auth.gatewayPid, options.platform);\n }\n removeFileIfExists(auth.tokenPath);\n throw new Error(\"Tap auth gateway token is missing after startup.\");\n }\n\n // Gateway readiness hits /readyz on the public URL, which verifies the\n // gateway itself plus upstream readiness end-to-end without creating a\n // WebSocket session.\n const gatewayHealthy = await waitForManagedAppServerReady(\n effectiveUrl,\n APP_SERVER_GATEWAY_START_TIMEOUT_MS,\n );\n if (!gatewayHealthy) {\n await terminateProcess(pid, options.platform);\n if (auth.gatewayPid != null) {\n await terminateProcess(auth.gatewayPid, options.platform);\n }\n removeFileIfExists(auth.tokenPath);\n throw new Error(\n `Tap auth gateway did not become healthy at ${effectiveUrl}.\\nCheck ${auth.gatewayLogPath ?? \"the gateway log\"} and ${logPath}.`,\n );\n }\n\n const healthyAt = new Date().toISOString();\n pid =\n (options.platform === \"win32\"\n ? findListeningProcessId(auth.upstreamUrl, options.platform)\n : findUnixListeningProcessId(auth.upstreamUrl, options.platform)) ?? pid;\n return {\n url: effectiveUrl,\n pid,\n managed: true,\n healthy: true,\n lastCheckedAt: healthyAt,\n lastHealthyAt: healthyAt,\n logPath,\n manualCommand,\n auth,\n };\n}\n\nexport function formatCodexAppServerCommand(\n command: string,\n url: string,\n): string {\n return `${command} app-server --listen ${url}`;\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nimport type {\n RuntimeName,\n InstanceId,\n BridgeLifecycleRecord,\n BridgeState,\n AppServerState,\n HeadlessConfig,\n Platform,\n} from \"../types.js\";\nimport { resolveNodeRuntime, buildRuntimeEnv } from \"../runtime/index.js\";\n\nimport { pidFilePath, logFilePath } from \"./bridge-paths.js\";\nimport { startWindowsDetachedProcess } from \"./bridge-windows-spawn.js\";\nimport { startUnixDetachedProcess } from \"./bridge-unix-spawn.js\";\nimport { isProcessAlive, stopManagedAppServer } from \"./bridge-process-control.js\";\nimport { resolveAgentName } from \"./bridge-config.js\";\nimport {\n loadBridgeState,\n saveBridgeState,\n clearBridgeState,\n isBridgeRunning,\n transitionBridgeLifecycle,\n} from \"./bridge-state.js\";\nimport { materializeGatewayTokenFile } from \"./bridge-app-server-auth.js\";\nimport { rotateLog } from \"./bridge-observability.js\";\nimport {\n isAppServerUsedByOtherBridge,\n resolveAppServerUrl,\n ensureCodexAppServer,\n} from \"./bridge-app-server-lifecycle.js\";\n\nexport interface BridgeStartOptions {\n instanceId: InstanceId;\n runtime: RuntimeName;\n stateDir: string;\n commsDir: string;\n bridgeScript: string;\n platform: Platform;\n agentName?: string;\n runtimeCommand?: string;\n appServerUrl?: string;\n repoRoot?: string;\n port?: number;\n /** Headless configuration. Passed as env vars to the bridge process. */\n headless?: HeadlessConfig | null;\n /** Bridge script operational flags (forwarded to codex-app-server-bridge.ts) */\n busyMode?: \"steer\" | \"wait\";\n pollSeconds?: number;\n reconnectSeconds?: number;\n messageLookbackMinutes?: number;\n threadId?: string;\n ephemeral?: boolean;\n processExistingMessages?: boolean;\n manageAppServer?: boolean;\n /** Skip auth gateway — app-server listens directly on the public port (localhost only). */\n noAuth?: boolean;\n /** Persisted lifecycle from the previous session, used to track restarts. */\n previousLifecycle?: BridgeLifecycleRecord | null;\n}\n\nexport function getBridgeRuntimeStateDir(\n repoRoot: string,\n instanceId: InstanceId,\n): string {\n const resolved = path.resolve(\n path.join(repoRoot, \".tmp\", `codex-app-server-bridge-${instanceId}`),\n );\n const expectedBase = path.resolve(repoRoot, \".tmp\") + path.sep;\n if (!resolved.startsWith(expectedBase)) {\n throw new Error(\n `Path traversal blocked: runtime state dir escapes .tmp/ directory`,\n );\n }\n return resolved;\n}\n\ntype CommsHeartbeatRecord = {\n id?: string;\n agent?: string;\n timestamp?: string;\n lastActivity?: string;\n joinedAt?: string;\n status?: string;\n source?: \"bridge-dispatch\" | \"mcp-direct\";\n instanceId?: string | null;\n bridgePid?: number | null;\n connectHash?: string;\n};\n\nconst STALE_DIRECT_HEARTBEAT_MS = 5 * 60 * 1000;\n\nfunction warnHeartbeatCleanup(instanceId: InstanceId, message: string): void {\n console.warn(\n `[tap] heartbeat cleanup skipped for ${instanceId}: ${message}`,\n );\n}\n\nfunction getHeartbeatActivityMs(record: CommsHeartbeatRecord): number | null {\n const timestamp = new Date(record.lastActivity ?? record.timestamp ?? 0).getTime();\n return Number.isFinite(timestamp) ? timestamp : null;\n}\n\nfunction isSameInstanceHeartbeat(\n key: string,\n heartbeat: CommsHeartbeatRecord,\n instanceId: InstanceId,\n): boolean {\n if (heartbeat.instanceId === instanceId) return true;\n if (heartbeat.connectHash === `instance:${instanceId}`) return true;\n return (\n key === instanceId ||\n key.replace(/_/g, \"-\") === instanceId ||\n key.replace(/-/g, \"_\") === instanceId\n );\n}\n\nfunction cleanupStaleSameInstanceHeartbeats(\n commsDir: string,\n instanceId: InstanceId,\n): void {\n const heartbeatsPath = path.join(commsDir, \"heartbeats.json\");\n if (!fs.existsSync(heartbeatsPath)) return;\n\n const lockPath = path.join(commsDir, \".heartbeats.lock\");\n try {\n fs.writeFileSync(lockPath, String(process.pid), { flag: \"wx\" });\n } catch {\n warnHeartbeatCleanup(instanceId, \"heartbeat store busy\");\n return;\n }\n\n try {\n let store: Record<string, CommsHeartbeatRecord> = {};\n try {\n store = JSON.parse(\n fs.readFileSync(heartbeatsPath, \"utf-8\"),\n ) as Record<string, CommsHeartbeatRecord>;\n } catch {\n warnHeartbeatCleanup(instanceId, \"heartbeat store unreadable\");\n return;\n }\n\n let changed = false;\n for (const [key, heartbeat] of Object.entries(store)) {\n if (!isSameInstanceHeartbeat(key, heartbeat, instanceId)) continue;\n\n const status = heartbeat.status ?? \"active\";\n const isDeadBridge =\n heartbeat.source === \"bridge-dispatch\" &&\n heartbeat.bridgePid != null &&\n !isProcessAlive(heartbeat.bridgePid);\n const activityMs = getHeartbeatActivityMs(heartbeat);\n const isStaleDirect =\n heartbeat.source !== \"bridge-dispatch\" &&\n activityMs != null &&\n Date.now() - activityMs > STALE_DIRECT_HEARTBEAT_MS;\n\n if (status === \"signing-off\" || isDeadBridge || isStaleDirect) {\n delete store[key];\n changed = true;\n }\n }\n\n if (!changed) return;\n const tmpPath = `${heartbeatsPath}.tmp.${process.pid}`;\n fs.writeFileSync(tmpPath, JSON.stringify(store, null, 2), \"utf-8\");\n fs.renameSync(tmpPath, heartbeatsPath);\n } catch (error) {\n warnHeartbeatCleanup(\n instanceId,\n error instanceof Error ? error.message : String(error),\n );\n } finally {\n try {\n fs.unlinkSync(lockPath);\n } catch {\n // lock already removed\n }\n }\n}\n\nexport async function startBridge(\n options: BridgeStartOptions,\n): Promise<BridgeState> {\n const {\n instanceId,\n runtime,\n stateDir,\n commsDir,\n bridgeScript,\n agentName,\n port,\n } = options;\n\n const resolvedAgent = resolveAgentName(instanceId, agentName, {\n repoRoot: options.repoRoot,\n stateDir,\n });\n\n if (!resolvedAgent) {\n throw new Error(\n `No agent name for ${instanceId} bridge. ` +\n `Set TAP_AGENT_NAME env var or pass --agent-name flag.`,\n );\n }\n\n if (isBridgeRunning(stateDir, instanceId)) {\n const existing = loadBridgeState(stateDir, instanceId)!;\n throw new Error(\n `Bridge for ${instanceId} is already running (PID: ${existing.pid})`,\n );\n }\n\n const previousBridgeState = loadBridgeState(stateDir, instanceId);\n const previousLifecycle =\n options.previousLifecycle ?? previousBridgeState?.lifecycle ?? null;\n const previousAppServer = previousBridgeState?.appServer ?? null;\n\n clearBridgeState(stateDir, instanceId);\n cleanupStaleSameInstanceHeartbeats(commsDir, instanceId);\n\n const logPath = logFilePath(stateDir, instanceId);\n fs.mkdirSync(path.dirname(logPath), { recursive: true });\n rotateLog(logPath);\n\n const repoRoot = options.repoRoot ?? path.resolve(stateDir, \"..\");\n const runtimeStateDir = getBridgeRuntimeStateDir(repoRoot, instanceId);\n const resolved = resolveNodeRuntime(\n options.runtimeCommand ?? \"node\",\n repoRoot,\n );\n const command = resolved.command;\n\n const runtimeEnv = buildRuntimeEnv(repoRoot);\n const effectiveAppServerUrl = resolveAppServerUrl(options.appServerUrl, port);\n let appServer: AppServerState | null = null;\n let bridgeAppServerUrl = effectiveAppServerUrl;\n const startedAt = new Date().toISOString();\n\n if (runtime === \"codex\" && options.manageAppServer) {\n appServer = await ensureCodexAppServer({\n instanceId,\n stateDir,\n runtimeStateDir,\n commsDir,\n repoRoot,\n platform: options.platform,\n appServerUrl: effectiveAppServerUrl,\n agentName: resolvedAgent,\n existingAppServer: previousAppServer,\n noAuth: options.noAuth,\n });\n if (appServer.auth) {\n appServer = {\n ...appServer,\n auth: materializeGatewayTokenFile(\n stateDir,\n instanceId,\n effectiveAppServerUrl,\n appServer.auth,\n ),\n };\n }\n bridgeAppServerUrl = effectiveAppServerUrl;\n }\n\n try {\n const bridgeEnv = {\n ...runtimeEnv,\n TAP_COMMS_DIR: commsDir,\n TAP_STATE_DIR: stateDir,\n TAP_RUNTIME_STATE_DIR: runtimeStateDir,\n TAP_REPO_ROOT: repoRoot,\n TAP_BRIDGE_RUNTIME: runtime,\n TAP_BRIDGE_INSTANCE_ID: instanceId,\n TAP_AGENT_ID: instanceId,\n TAP_AGENT_NAME: resolvedAgent,\n CODEX_TAP_AGENT_NAME: resolvedAgent,\n TAP_RESOLVED_NODE: resolved.command,\n TAP_STRIP_TYPES: resolved.supportsStripTypes ? \"1\" : \"0\",\n ...(bridgeAppServerUrl\n ? { CODEX_APP_SERVER_URL: bridgeAppServerUrl }\n : {}),\n ...(appServer?.auth?.tokenPath\n ? { TAP_GATEWAY_TOKEN_FILE: appServer.auth.tokenPath }\n : {}),\n ...(port != null ? { TAP_BRIDGE_PORT: String(port) } : {}),\n ...(options.headless?.enabled\n ? {\n TAP_HEADLESS: \"true\",\n TAP_AGENT_ROLE: options.headless.role,\n TAP_MAX_REVIEW_ROUNDS: String(options.headless.maxRounds),\n TAP_QUALITY_FLOOR: options.headless.qualitySeverityFloor,\n }\n : {}),\n ...(options.busyMode ? { TAP_BUSY_MODE: options.busyMode } : {}),\n ...(options.pollSeconds != null\n ? { TAP_POLL_SECONDS: String(options.pollSeconds) }\n : {}),\n ...(options.reconnectSeconds != null\n ? { TAP_RECONNECT_SECONDS: String(options.reconnectSeconds) }\n : {}),\n ...(options.messageLookbackMinutes != null\n ? {\n TAP_MESSAGE_LOOKBACK_MINUTES: String(\n options.messageLookbackMinutes,\n ),\n }\n : {}),\n ...(process.env.TAP_COLD_START_WARMUP === \"true\"\n ? { TAP_COLD_START_WARMUP: \"true\" }\n : {}),\n ...(options.threadId ? { TAP_THREAD_ID: options.threadId } : {}),\n ...(options.ephemeral ? { TAP_EPHEMERAL: \"true\" } : {}),\n ...(options.processExistingMessages\n ? { TAP_PROCESS_EXISTING: \"true\" }\n : {}),\n };\n\n const bridgePid =\n options.platform === \"win32\"\n ? startWindowsDetachedProcess(\n command,\n [bridgeScript],\n repoRoot,\n logPath,\n bridgeEnv,\n )\n : startUnixDetachedProcess(\n command,\n [bridgeScript],\n repoRoot,\n logPath,\n bridgeEnv,\n options.platform,\n );\n\n if (!bridgePid) {\n throw new Error(`Failed to spawn bridge process for ${instanceId}`);\n }\n\n const state: BridgeState = {\n pid: bridgePid,\n statePath: pidFilePath(stateDir, instanceId),\n lastHeartbeat: startedAt,\n appServer,\n runtimeStateDir,\n lifecycle: transitionBridgeLifecycle(\n previousLifecycle,\n \"initializing\",\n previousLifecycle ? \"bridge restart\" : \"bridge start\",\n {\n at: startedAt,\n incrementRestart: previousLifecycle != null,\n },\n ),\n };\n\n saveBridgeState(stateDir, instanceId, state);\n\n return state;\n } catch (err) {\n if (appServer?.managed) {\n const shared = isAppServerUsedByOtherBridge(\n stateDir,\n instanceId,\n appServer,\n );\n if (!shared) {\n await stopManagedAppServer(appServer, options.platform);\n }\n }\n throw err;\n }\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nimport type {\n BridgeLifecycleRecord,\n BridgeState,\n InstanceId,\n Platform,\n} from \"../types.js\";\n\nimport { isProcessAlive, terminateProcess } from \"./bridge-process-control.js\";\nimport { cleanupHeadlessDispatch } from \"./bridge-config.js\";\nimport {\n loadBridgeState,\n saveBridgeState,\n clearBridgeState,\n transitionBridgeLifecycle,\n} from \"./bridge-state.js\";\nimport {\n getBridgeRuntimeStateDir,\n startBridge,\n type BridgeStartOptions,\n} from \"./bridge-startup.js\";\n\nexport interface BridgeStopOptions {\n instanceId: InstanceId;\n stateDir: string;\n platform: Platform;\n}\n\nexport interface BridgeStopResult {\n stopped: boolean;\n lifecycle: BridgeLifecycleRecord | null;\n}\n\nexport async function stopBridge(\n options: BridgeStopOptions,\n): Promise<BridgeStopResult> {\n const { instanceId, stateDir, platform } = options;\n const state = loadBridgeState(stateDir, instanceId);\n\n if (!state) {\n return {\n stopped: false,\n lifecycle: null,\n };\n }\n\n const currentLifecycle = state.lifecycle ?? null;\n\n if (!isProcessAlive(state.pid)) {\n clearBridgeState(stateDir, instanceId);\n return {\n stopped: false,\n lifecycle: transitionBridgeLifecycle(\n currentLifecycle,\n \"crashed\",\n \"bridge pid not alive\",\n ),\n };\n }\n\n state.lifecycle = transitionBridgeLifecycle(\n currentLifecycle,\n \"stopping\",\n \"bridge stop requested\",\n );\n saveBridgeState(stateDir, instanceId, state);\n\n try {\n await terminateProcess(state.pid, platform);\n } catch {\n // Process may have already exited.\n }\n\n clearBridgeState(stateDir, instanceId);\n return {\n stopped: true,\n lifecycle: transitionBridgeLifecycle(\n state.lifecycle ?? currentLifecycle,\n \"stopped\",\n \"bridge stopped\",\n ),\n };\n}\n\nexport interface RestartBridgeOptions extends BridgeStartOptions {\n /** Max seconds to wait for active turn to complete before killing. Default: 30 */\n drainTimeoutSeconds?: number;\n}\n\n/**\n * Graceful bridge restart: wait for active turn -> cleanup -> stop -> start.\n * Prevents message loss during restart by draining active work first\n * and replaying unprocessed messages on the new instance.\n */\nexport async function restartBridge(\n options: RestartBridgeOptions,\n): Promise<BridgeState> {\n const { instanceId, stateDir, platform } = options;\n const drainTimeout = (options.drainTimeoutSeconds ?? 30) * 1000;\n const repoRoot = options.repoRoot ?? stateDir.replace(/[\\\\/].tap-comms$/, \"\");\n\n const runtimeStateDir = getBridgeRuntimeStateDir(repoRoot, instanceId);\n const heartbeatPath = path.join(runtimeStateDir, \"heartbeat.json\");\n\n if (fs.existsSync(heartbeatPath)) {\n const startWait = Date.now();\n while (Date.now() - startWait < drainTimeout) {\n try {\n const hb = JSON.parse(fs.readFileSync(heartbeatPath, \"utf-8\"));\n if (!hb.activeTurnId) break;\n } catch {\n break;\n }\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n }\n\n if (options.headless?.enabled && options.commsDir) {\n const agentName = options.agentName ?? instanceId;\n cleanupHeadlessDispatch(path.join(options.commsDir, \"inbox\"), agentName);\n }\n\n const stopResult = await stopBridge({ instanceId, stateDir, platform });\n\n return startBridge({\n ...options,\n processExistingMessages: true,\n previousLifecycle: stopResult.lifecycle ?? options.previousLifecycle ?? null,\n });\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { InstanceId } from \"../types.js\";\nimport {\n isBridgeRunning,\n loadBridgeState,\n loadRuntimeBridgeHeartbeat,\n} from \"./bridge-state.js\";\nimport { getHeartbeatAge } from \"./bridge-observability.js\";\nimport { isProcessAlive } from \"./bridge-process-control.js\";\n\n// ─── Types ─────────────────────────────────────────────────────\n\n/**\n * Operational status — reflects what the agent can actually do right now.\n * More useful for operators than raw pass/fail.\n */\nexport type OperationalStatus =\n | \"routing-healthy\" // bridge-live + dispatch active + thread active\n | \"routing-degraded\" // bridge-live + dispatch ok + thread idle/missing\n | \"bridge-stale\" // PID alive but no recent activity\n | \"mcp-only\" // MCP direct session, no bridge\n | \"backlog-blind\" // post-startup session, missed past messages\n | \"unreachable\"; // all checks failed\n\nexport interface HealthCheckResult {\n instanceId: string;\n timestamp: string;\n operational: OperationalStatus;\n checks: {\n bridgePidAlive: boolean;\n heartbeatFresh: boolean;\n threadActive: boolean;\n };\n}\n\ntype CommsHeartbeatRecord = {\n timestamp?: string;\n lastActivity?: string;\n source?: \"bridge-dispatch\" | \"mcp-direct\";\n instanceId?: string | null;\n bridgePid?: number | null;\n connectHash?: string;\n};\n\nexport interface LiveDispatchEvidence {\n bridgePid: number;\n lastActivity: string;\n}\n\nexport interface HealthPolicy {\n checkIntervalMs: number; // default 30000\n unhealthyThreshold: number; // consecutive failures → degraded (default 3)\n deadThreshold: number; // consecutive failures → restart (default 5)\n maxRestarts: number; // auto-restart cap (default 3)\n restartBackoffMs: number; // base backoff (default 5000, exponential)\n alertOnMaxRestarts: boolean; // broadcast alert when cap exceeded\n}\n\nexport interface HealthHistory {\n instanceId: string;\n entries: HealthCheckResult[]; // ring buffer, max 100\n currentStreak: number; // positive = consecutive pass, negative = consecutive fail\n lastRestart: string | null;\n totalRestarts: number;\n}\n\n// ─── Defaults ──────────────────────────────────────────────────\n\nexport const DEFAULT_HEALTH_POLICY: HealthPolicy = {\n checkIntervalMs: 30_000,\n unhealthyThreshold: 3,\n deadThreshold: 5,\n maxRestarts: 3,\n restartBackoffMs: 5_000,\n alertOnMaxRestarts: true,\n};\n\nconst MAX_HISTORY_ENTRIES = 100;\nconst DISPATCH_EVIDENCE_FRESH_THRESHOLD_MS = 2 * 60 * 1000;\n\nfunction getHeartbeatActivityMs(record: CommsHeartbeatRecord): number | null {\n const timestamp = new Date(record.lastActivity ?? record.timestamp ?? 0).getTime();\n return Number.isFinite(timestamp) ? timestamp : null;\n}\n\nfunction isSameInstanceHeartbeat(\n key: string,\n heartbeat: CommsHeartbeatRecord,\n instanceId: InstanceId,\n): boolean {\n if (heartbeat.instanceId === instanceId) return true;\n if (heartbeat.connectHash === `instance:${instanceId}`) return true;\n return (\n key === instanceId ||\n key.replace(/_/g, \"-\") === instanceId ||\n key.replace(/-/g, \"_\") === instanceId\n );\n}\n\nexport function loadLiveDispatchEvidence(\n commsDir: string,\n instanceId: InstanceId,\n): LiveDispatchEvidence | null {\n const heartbeatsPath = path.join(commsDir, \"heartbeats.json\");\n if (!fs.existsSync(heartbeatsPath)) return null;\n\n try {\n const store = JSON.parse(\n fs.readFileSync(heartbeatsPath, \"utf-8\"),\n ) as Record<string, CommsHeartbeatRecord>;\n\n let best: LiveDispatchEvidence | null = null;\n let bestActivityMs = -1;\n\n for (const [key, heartbeat] of Object.entries(store)) {\n if (!isSameInstanceHeartbeat(key, heartbeat, instanceId)) continue;\n if (heartbeat.source !== \"bridge-dispatch\") continue;\n if (heartbeat.bridgePid == null || !isProcessAlive(heartbeat.bridgePid)) {\n continue;\n }\n\n const activityMs = getHeartbeatActivityMs(heartbeat);\n if (\n activityMs == null ||\n Date.now() - activityMs > DISPATCH_EVIDENCE_FRESH_THRESHOLD_MS\n ) {\n continue;\n }\n\n if (activityMs > bestActivityMs) {\n bestActivityMs = activityMs;\n best = {\n bridgePid: heartbeat.bridgePid,\n lastActivity:\n heartbeat.lastActivity ?? heartbeat.timestamp ?? new Date(activityMs).toISOString(),\n };\n }\n }\n\n return best;\n } catch {\n return null;\n }\n}\n\n// ─── Health History Management ─────────────────────────────────\n\nexport function createHealthHistory(instanceId: string): HealthHistory {\n return {\n instanceId,\n entries: [],\n currentStreak: 0,\n lastRestart: null,\n totalRestarts: 0,\n };\n}\n\nexport function recordHealthCheck(\n history: HealthHistory,\n result: HealthCheckResult,\n): HealthHistory {\n const entries = [...history.entries, result];\n if (entries.length > MAX_HISTORY_ENTRIES) {\n entries.shift();\n }\n\n // Only routing-healthy resets failure streak.\n // routing-degraded (thread missing) should still accumulate toward restart.\n const isHealthy = result.operational === \"routing-healthy\";\n\n const currentStreak = isHealthy\n ? history.currentStreak > 0\n ? history.currentStreak + 1\n : 1\n : history.currentStreak < 0\n ? history.currentStreak - 1\n : -1;\n\n return {\n ...history,\n entries,\n currentStreak,\n };\n}\n\nexport function recordRestart(history: HealthHistory): HealthHistory {\n return {\n ...history,\n lastRestart: new Date().toISOString(),\n totalRestarts: history.totalRestarts + 1,\n currentStreak: 0,\n };\n}\n\n// ─── Operational Status Derivation ─────────────────────────────\n\nexport function computeOperationalStatus(checks: {\n bridgePidAlive: boolean;\n heartbeatFresh: boolean;\n threadActive: boolean;\n}): OperationalStatus {\n if (!checks.bridgePidAlive) {\n if (!checks.heartbeatFresh) return \"unreachable\";\n return \"mcp-only\";\n }\n\n if (!checks.heartbeatFresh) return \"bridge-stale\";\n\n if (checks.threadActive) return \"routing-healthy\";\n return \"routing-degraded\";\n}\n\n// ─── Policy Evaluation ─────────────────────────────────────────\n\nexport type HealthAction = \"none\" | \"warn\" | \"restart\" | \"alert-max-restarts\";\n\n/**\n * Determine what action to take based on health history and policy.\n */\nexport function evaluateHealthAction(\n history: HealthHistory,\n policy: HealthPolicy,\n): HealthAction {\n // Positive streak = healthy, no action needed\n if (history.currentStreak >= 0) return \"none\";\n\n const failCount = Math.abs(history.currentStreak);\n\n // Check if we've exhausted restart budget\n if (history.totalRestarts >= policy.maxRestarts) {\n return policy.alertOnMaxRestarts ? \"alert-max-restarts\" : \"none\";\n }\n\n // Dead threshold → restart\n if (failCount >= policy.deadThreshold) return \"restart\";\n\n // Unhealthy threshold → warn\n if (failCount >= policy.unhealthyThreshold) return \"warn\";\n\n return \"none\";\n}\n\n// ─── Runtime Health Check ──────────────────────────────────────\n\nconst HEARTBEAT_FRESH_THRESHOLD_MS = 2 * 60 * 1000; // 2 minutes\n\n/**\n * Check instance health from bridge state files.\n * Returns a HealthCheckResult with operational status derived from live state.\n */\nexport function checkInstanceHealth(\n stateDir: string,\n instanceId: InstanceId,\n): HealthCheckResult {\n const bridgePidAlive = isBridgeRunning(stateDir, instanceId);\n const heartbeatAgeMs = getHeartbeatAge(stateDir, instanceId);\n const heartbeatFresh =\n heartbeatAgeMs !== null && heartbeatAgeMs < HEARTBEAT_FRESH_THRESHOLD_MS;\n const bridgeState = loadBridgeState(stateDir, instanceId);\n\n let threadActive = false;\n try {\n const runtimeHb = loadRuntimeBridgeHeartbeat(bridgeState);\n threadActive = runtimeHb?.threadId != null;\n } catch {\n // runtime heartbeat not available\n }\n\n const checks = { bridgePidAlive, heartbeatFresh, threadActive };\n return {\n instanceId,\n timestamp: new Date().toISOString(),\n operational: computeOperationalStatus(checks),\n checks,\n };\n}\n\n// ─── Backoff ───────────────────────────────────────────────────\n\n/**\n * Calculate backoff delay for restart attempt.\n * Exponential: base * 2^(restartCount - 1), capped at 5 minutes.\n */\nexport function computeBackoffMs(restartCount: number, baseMs: number): number {\n const delay = baseMs * Math.pow(2, Math.max(0, restartCount - 1));\n return Math.min(delay, 5 * 60 * 1000); // cap at 5 minutes\n}\n","import { loadState, saveState, getInstalledInstances } from \"../state.js\";\nimport {\n deriveBridgeLifecycleState,\n resolveBridgeLifecycleSnapshot,\n deriveCodexSessionState,\n loadRuntimeBridgeHeartbeat,\n} from \"../engine/bridge.js\";\nimport { loadLiveDispatchEvidence } from \"../engine/health-monitor.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { findRepoRoot, log, logHeader, logWarn } from \"../utils.js\";\nimport { version } from \"../version.js\";\nimport type { InstanceState, CommandResult } from \"../types.js\";\nimport type {\n BridgeLifecycleSnapshot,\n CodexSessionSnapshot,\n} from \"../engine/bridge.js\";\n\nconst STATUS_HELP = `\nUsage:\n tap status\n\nDescription:\n Show all installed instances, their bridge status, and configuration info.\n\nExamples:\n npx @hua-labs/tap status\n`.trim();\n\ninterface ResolvedStatus {\n status: string;\n lifecycle: BridgeLifecycleSnapshot | null;\n session: CodexSessionSnapshot | null;\n warnings: string[];\n}\n\nfunction resolveStatus(\n inst: InstanceState,\n stateDir: string,\n commsDir: string,\n): ResolvedStatus {\n if (!inst.installed) {\n return {\n status: \"not installed\",\n lifecycle: null,\n session: null,\n warnings: [],\n };\n }\n\n switch (inst.bridgeMode) {\n case \"native-push\":\n case \"polling\":\n return {\n status: inst.lastVerifiedAt ? \"active\" : \"configured\",\n lifecycle: null,\n session: null,\n warnings: [],\n };\n\n case \"app-server\": {\n let staleLifecycle: BridgeLifecycleSnapshot | null = null;\n if (inst.bridge) {\n const lifecycle = resolveBridgeLifecycleSnapshot(\n stateDir,\n inst.instanceId,\n inst.bridge,\n );\n if (lifecycle.status === \"bridge-stale\") {\n staleLifecycle = lifecycle;\n inst.bridge = null;\n } else {\n const runtimeHeartbeat = loadRuntimeBridgeHeartbeat(inst.bridge);\n return {\n status: \"active\",\n lifecycle,\n session: deriveCodexSessionState({\n runtimeHeartbeat,\n runtimeStateDir: inst.bridge.runtimeStateDir ?? null,\n }),\n warnings: [],\n };\n }\n }\n const liveDispatch = loadLiveDispatchEvidence(commsDir, inst.instanceId);\n if (liveDispatch) {\n return {\n status: \"dispatch-live\",\n lifecycle: deriveBridgeLifecycleState({\n bridgeStatus: \"stopped\",\n }),\n session: deriveCodexSessionState({ runtimeHeartbeat: null }),\n warnings: [\n `fresh bridge-dispatch heartbeat from PID ${liveDispatch.bridgePid} without bridge pid state`,\n ],\n };\n }\n if (staleLifecycle) {\n return {\n status: inst.lastVerifiedAt ? \"configured\" : \"installed\",\n lifecycle: staleLifecycle,\n session: null,\n warnings: [],\n };\n }\n return {\n status: inst.lastVerifiedAt ? \"configured\" : \"installed\",\n lifecycle: deriveBridgeLifecycleState({\n bridgeStatus: \"stopped\",\n }),\n session: deriveCodexSessionState({ runtimeHeartbeat: null }),\n warnings: [],\n };\n }\n\n default:\n return {\n status: \"installed\",\n lifecycle: null,\n session: null,\n warnings: [],\n };\n }\n}\n\nfunction instanceStatusLine(\n inst: InstanceState,\n status: string,\n lifecycle: BridgeLifecycleSnapshot | null,\n session: CodexSessionSnapshot | null,\n warnings: string[],\n): string {\n const bridgeInfo = inst.bridge ? ` (pid: ${inst.bridge.pid})` : \"\";\n const lifecycleStr = lifecycle?.status ?? \"-\";\n const sessionStr = session?.status ?? \"-\";\n const mode = inst.bridgeMode;\n const portStr = inst.port ? ` port:${inst.port}` : \"\";\n const restart = inst.restartRequired ? \" [restart required]\" : \"\";\n const warns = warnings.length > 0 ? ` [${warnings.length} warning(s)]` : \"\";\n\n return `${inst.instanceId.padEnd(20)} ${inst.runtime.padEnd(8)} ${status.padEnd(14)} ${lifecycleStr.padEnd(20)} ${sessionStr.padEnd(18)} ${mode.padEnd(14)}${bridgeInfo}${portStr}${restart}${warns}`;\n}\n\nexport async function statusCommand(args: string[]): Promise<CommandResult> {\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n log(STATUS_HELP);\n return {\n ok: true,\n command: \"status\",\n code: \"TAP_NO_OP\",\n message: STATUS_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"status\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n logHeader(\"@hua-labs/tap status\");\n\n log(`Version: ${version}`);\n log(`Comms dir: ${state.commsDir}`);\n log(`Repo root: ${state.repoRoot}`);\n log(`Schema: v${state.schemaVersion}`);\n log(`Updated: ${state.updatedAt}`);\n\n const installed = getInstalledInstances(state);\n const { config: resolvedCfg } = resolveConfig({}, repoRoot);\n const stateDir = resolvedCfg.stateDir;\n\n const instances: Record<\n string,\n {\n status: string;\n lifecycle: BridgeLifecycleSnapshot | null;\n session: CodexSessionSnapshot | null;\n runtime: string;\n bridgeMode: string;\n bridge: unknown;\n port: number | null;\n warnings: string[];\n }\n > = {};\n\n // Track if any stale bridge metadata was cleaned\n const bridgesBefore = installed.map((id) => state.instances[id]?.bridge);\n\n if (installed.length === 0) {\n log(\"\");\n log(\"No instances installed.\");\n log(\"Run: npx @hua-labs/tap add <claude|codex|gemini>\");\n } else {\n log(\"\");\n log(\n `${\"Instance\".padEnd(20)} ${\"Runtime\".padEnd(8)} ${\"Status\".padEnd(14)} ${\"Lifecycle\".padEnd(20)} ${\"Session\".padEnd(18)} ${\"Bridge Mode\".padEnd(14)} Details`,\n );\n log(\n `${\"─\".repeat(20)} ${\"─\".repeat(8)} ${\"─\".repeat(14)} ${\"─\".repeat(20)} ${\"─\".repeat(18)} ${\"─\".repeat(14)} ${\"─\".repeat(20)}`,\n );\n\n for (const id of installed) {\n const inst = state.instances[id];\n if (inst) {\n // resolveStatus may clear inst.bridge if stale\n const { status, lifecycle, session, warnings } = resolveStatus(\n inst,\n stateDir,\n state.commsDir,\n );\n const mergedWarnings = [...inst.warnings, ...warnings];\n log(instanceStatusLine(inst, status, lifecycle, session, mergedWarnings));\n if (mergedWarnings.length > 0) {\n for (const w of mergedWarnings) {\n logWarn(` ${w}`);\n }\n }\n instances[id] = {\n status,\n lifecycle,\n session,\n runtime: inst.runtime,\n bridgeMode: inst.bridgeMode,\n bridge: inst.bridge,\n port: inst.port,\n warnings: mergedWarnings,\n };\n }\n }\n }\n\n // Persist stale bridge cleanup if any were cleared\n const bridgesAfter = installed.map((id) => state.instances[id]?.bridge);\n const staleCleared = bridgesBefore.some((b, i) => b !== bridgesAfter[i]);\n if (staleCleared) {\n state.updatedAt = new Date().toISOString();\n saveState(repoRoot, state);\n }\n\n log(\"\");\n\n return {\n ok: true,\n command: \"status\",\n code: \"TAP_STATUS_OK\",\n message: `${installed.length} instance(s) installed`,\n warnings: [],\n data: {\n version,\n commsDir: state.commsDir,\n repoRoot: state.repoRoot,\n instances,\n },\n };\n}\n","import { loadState, saveState, removeInstanceState } from \"../state.js\";\nimport {\n findRepoRoot,\n createAdapterContext,\n resolveInstanceId,\n log,\n logSuccess,\n logError,\n logHeader,\n} from \"../utils.js\";\nimport { rollbackRuntime } from \"../engine/rollback.js\";\nimport { stopBridge } from \"../engine/bridge.js\";\nimport type { CommandResult } from \"../types.js\";\n\nconst REMOVE_HELP = `\nUsage:\n tap remove <instance>\n\nDescription:\n Remove a registered instance, stop its bridge, and rollback config changes.\n\nArguments:\n <instance> Instance ID or runtime name (e.g. claude, codex-reviewer)\n\nExamples:\n npx @hua-labs/tap remove claude\n npx @hua-labs/tap remove codex-reviewer\n`.trim();\n\nexport async function removeCommand(args: string[]): Promise<CommandResult> {\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n log(REMOVE_HELP);\n return {\n ok: true,\n command: \"remove\",\n code: \"TAP_NO_OP\",\n message: REMOVE_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const identifier = args.find((a) => !a.startsWith(\"-\"));\n\n if (!identifier) {\n return {\n ok: false,\n command: \"remove\",\n code: \"TAP_INVALID_ARGUMENT\",\n message:\n \"Missing instance argument. Usage: npx @hua-labs/tap remove <instance>\",\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"remove\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const resolved = resolveInstanceId(identifier, state);\n if (!resolved.ok) {\n return {\n ok: false,\n command: \"remove\",\n code: resolved.code,\n message: resolved.message,\n warnings: [],\n data: {},\n };\n }\n\n const instanceId = resolved.instanceId;\n const instance = state.instances[instanceId];\n\n if (!instance?.installed) {\n return {\n ok: true,\n command: \"remove\",\n instanceId,\n code: \"TAP_NO_OP\",\n message: `${instanceId} is not installed.`,\n warnings: [],\n data: {},\n };\n }\n\n logHeader(`@hua-labs/tap remove ${instanceId}`);\n\n // Stop bridge if running before rollback\n if (instance.bridge) {\n const ctx = createAdapterContext(state.commsDir, repoRoot);\n const stopResult = await stopBridge({\n instanceId,\n stateDir: ctx.stateDir,\n platform: ctx.platform,\n });\n if (stopResult.stopped) {\n logSuccess(`Bridge for ${instanceId} stopped`);\n } else {\n log(`No running bridge for ${instanceId}`);\n }\n }\n\n const result = await rollbackRuntime(instanceId, instance);\n\n if (result.success) {\n logSuccess(`Rolled back ${result.restoredCount} artifact(s)`);\n for (const f of result.restoredFiles) logSuccess(`Restored: ${f}`);\n\n const newState = removeInstanceState(state, instanceId);\n saveState(repoRoot, newState);\n logSuccess(\"State updated\");\n\n logHeader(\"Done!\");\n\n return {\n ok: true,\n command: \"remove\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_REMOVE_OK\",\n message: `${instanceId} removed successfully`,\n warnings: [],\n data: {\n restoredCount: result.restoredCount,\n restoredFiles: result.restoredFiles,\n },\n };\n }\n\n for (const e of result.errors) logError(e);\n\n return {\n ok: false,\n command: \"remove\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_ROLLBACK_FAILED\",\n message: \"Rollback had errors. State preserved for retry.\",\n warnings: result.errors,\n data: { restoredCount: result.restoredCount },\n };\n}\n","import * as fs from \"node:fs\";\nimport { readArtifactBackup } from \"../artifact-backups.js\";\nimport {\n extractTomlTable,\n removeTomlTable,\n replaceTomlTable,\n} from \"../toml.js\";\nimport type { InstanceId, InstanceState, OwnedArtifact } from \"../types.js\";\n\nexport interface RollbackResult {\n success: boolean;\n restoredCount: number;\n restoredFiles: string[];\n errors: string[];\n}\n\n/**\n * Roll back only the artifacts the runtime owns, restoring prior table/key\n * content when selector backups are available.\n */\nexport async function rollbackRuntime(\n _instanceId: InstanceId,\n runtimeState: InstanceState,\n): Promise<RollbackResult> {\n const errors: string[] = [];\n const restoredFiles: string[] = [];\n let restoredCount = 0;\n\n for (const artifact of runtimeState.ownedArtifacts) {\n try {\n const result = rollbackArtifact(artifact);\n if (result.restored) {\n restoredCount++;\n restoredFiles.push(artifact.path);\n }\n if (result.error) {\n errors.push(result.error);\n }\n } catch (err) {\n errors.push(\n `Failed to rollback ${artifact.path}#${artifact.selector}: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n\n return {\n success: errors.length === 0,\n restoredCount,\n restoredFiles,\n errors,\n };\n}\n\ninterface ArtifactRollbackResult {\n restored: boolean;\n error?: string;\n}\n\nfunction rollbackArtifact(artifact: OwnedArtifact): ArtifactRollbackResult {\n if (!fs.existsSync(artifact.path)) {\n return { restored: false, error: `File not found: ${artifact.path}` };\n }\n\n switch (artifact.kind) {\n case \"json-path\":\n return rollbackJsonPath(artifact);\n case \"toml-table\":\n return rollbackTomlTable(artifact);\n case \"file\":\n return rollbackFile(artifact);\n default:\n return {\n restored: false,\n error: `Unknown artifact kind: ${artifact.kind}`,\n };\n }\n}\n\nfunction rollbackJsonPath(artifact: OwnedArtifact): ArtifactRollbackResult {\n const raw = fs.readFileSync(artifact.path, \"utf-8\");\n let config: Record<string, unknown>;\n\n try {\n config = JSON.parse(raw);\n } catch {\n return { restored: false, error: `Invalid JSON: ${artifact.path}` };\n }\n\n const backup = artifact.backupPath\n ? readArtifactBackup(artifact.backupPath)\n : null;\n if (backup?.kind === \"json-path\" && backup.selector === artifact.selector) {\n if (backup.existed) {\n setNestedKey(config, artifact.selector, backup.value);\n } else {\n deleteNestedKey(config, artifact.selector);\n cleanEmptyParents(config, artifact.selector);\n }\n } else {\n const removed = deleteNestedKey(config, artifact.selector);\n if (!removed) {\n return {\n restored: false,\n error: `Key not found: ${artifact.selector} in ${artifact.path}`,\n };\n }\n cleanEmptyParents(config, artifact.selector);\n }\n\n const tmp = `${artifact.path}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, JSON.stringify(config, null, 2) + \"\\n\", \"utf-8\");\n fs.renameSync(tmp, artifact.path);\n return { restored: true };\n}\n\nfunction rollbackTomlTable(artifact: OwnedArtifact): ArtifactRollbackResult {\n const content = fs.readFileSync(artifact.path, \"utf-8\");\n const backup = artifact.backupPath\n ? readArtifactBackup(artifact.backupPath)\n : null;\n\n if (backup?.kind === \"toml-table\" && backup.selector === artifact.selector) {\n const nextContent = backup.existed\n ? replaceTomlTable(content, artifact.selector, backup.content ?? \"\")\n : removeTomlTable(content, artifact.selector);\n const tmp = `${artifact.path}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, nextContent, \"utf-8\");\n fs.renameSync(tmp, artifact.path);\n return { restored: true };\n }\n\n if (!extractTomlTable(content, artifact.selector)) {\n return {\n restored: false,\n error: `TOML table not found: ${artifact.selector}`,\n };\n }\n\n const tmp = `${artifact.path}.tmp.${process.pid}`;\n fs.writeFileSync(tmp, removeTomlTable(content, artifact.selector), \"utf-8\");\n fs.renameSync(tmp, artifact.path);\n return { restored: true };\n}\n\nfunction rollbackFile(artifact: OwnedArtifact): ArtifactRollbackResult {\n if (fs.existsSync(artifact.path)) {\n fs.unlinkSync(artifact.path);\n return { restored: true };\n }\n return { restored: false, error: `File not found: ${artifact.path}` };\n}\n\nfunction deleteNestedKey(\n obj: Record<string, unknown>,\n keyPath: string,\n): boolean {\n const keys = keyPath.split(\".\");\n let current = obj;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (typeof current[key] !== \"object\" || current[key] === null) {\n return false;\n }\n current = current[key] as Record<string, unknown>;\n }\n\n const lastKey = keys[keys.length - 1];\n if (!(lastKey in current)) return false;\n delete current[lastKey];\n return true;\n}\n\nfunction setNestedKey(\n obj: Record<string, unknown>,\n keyPath: string,\n value: unknown,\n): void {\n const keys = keyPath.split(\".\");\n let current = obj;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (typeof current[key] !== \"object\" || current[key] === null) {\n current[key] = {};\n }\n current = current[key] as Record<string, unknown>;\n }\n\n current[keys[keys.length - 1]] = value;\n}\n\nfunction cleanEmptyParents(\n obj: Record<string, unknown>,\n keyPath: string,\n): void {\n const keys = keyPath.split(\".\");\n for (let depth = keys.length - 2; depth >= 0; depth--) {\n let current = obj;\n for (let i = 0; i < depth; i++) {\n current = current[keys[i]] as Record<string, unknown>;\n if (!current) return;\n }\n\n const key = keys[depth];\n const value = current[key];\n if (\n typeof value === \"object\" &&\n value !== null &&\n Object.keys(value).length === 0\n ) {\n delete current[key];\n }\n }\n}\n","import { parseArgs, log } from \"../utils.js\";\nimport type { CommandResult } from \"../types.js\";\nimport { bridgeStart, bridgeStartAll } from \"./bridge-start.js\";\nimport { bridgeStopOne, bridgeStopAll } from \"./bridge-stop.js\";\nimport { bridgeWatch } from \"./bridge-watch.js\";\nimport { bridgeStatusAll, bridgeStatusOne } from \"./bridge-status.js\";\nimport { bridgeTuiOne } from \"./bridge-tui.js\";\nimport { bridgeRestart } from \"./bridge-restart.js\";\n\nconst BRIDGE_HELP = `\nUsage:\n tap bridge <subcommand> [instance] [options]\n\nSubcommands:\n start <instance> Start bridge for an instance (e.g. codex, codex-reviewer)\n start --all Start all registered app-server instances\n stop <instance> Stop bridge for an instance\n stop Stop all running bridges\n status Show bridge status for all instances\n status <instance> Show bridge status for a specific instance\n tui <instance> Show the safe Codex TUI attach command for a running bridge\n watch Monitor bridges and auto-restart stuck/stale ones\n\nOptions:\n --agent-name <name> Agent identity for bridge (or set TAP_AGENT_NAME env)\n Overrides the stored name from 'tap add' when needed\n --all Start all registered app-server instances\n --busy-mode <steer|wait> How to handle active turns (default: steer)\n --poll-seconds <n> Inbox poll interval (default: 5)\n --reconnect-seconds <n> Reconnect delay after disconnect (default: 5)\n --message-lookback-minutes <n> Process messages from last N minutes (default: 10)\n --thread-id <id> Resume specific thread\n --ephemeral Use ephemeral thread (no persistence)\n --process-existing-messages Process all existing inbox messages\n --no-server Skip app-server auto-start and connect only\n --no-auth Skip auth gateway (app-server listens directly, localhost only)\n\nPort Assignment:\n Ports are auto-assigned from 4501 on first bridge start if not set via --port\n during 'tap add'. Auto-assigned ports are saved to state for future starts.\n\nExamples:\n npx @hua-labs/tap bridge start codex --agent-name myAgent\n npx @hua-labs/tap bridge start --all\n npx @hua-labs/tap bridge start codex --agent-name myAgent --no-server\n npx @hua-labs/tap bridge start codex-reviewer --agent-name reviewer --busy-mode steer\n npx @hua-labs/tap bridge stop codex\n npx @hua-labs/tap bridge stop\n npx @hua-labs/tap bridge status\n npx @hua-labs/tap bridge tui codex\n`.trim();\n\nexport async function bridgeCommand(args: string[]): Promise<CommandResult> {\n const { positional, flags } = parseArgs(args);\n const subcommand = positional[0];\n const identifierArg = positional[1];\n const agentName =\n typeof flags[\"agent-name\"] === \"string\" ? flags[\"agent-name\"] : undefined;\n\n if (!subcommand || subcommand === \"--help\" || subcommand === \"-h\") {\n log(BRIDGE_HELP);\n return {\n ok: true,\n command: \"bridge\",\n code: \"TAP_NO_OP\",\n message: BRIDGE_HELP,\n warnings: [],\n data: {},\n };\n }\n\n switch (subcommand) {\n case \"start\": {\n const wantsAll = flags[\"all\"] === true || identifierArg === \"--all\";\n const hasInstance = identifierArg && identifierArg !== \"--all\";\n\n if (wantsAll && hasInstance) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_INVALID_ARGUMENT\",\n message: `Cannot combine <instance> with --all. Use either:\\n tap bridge start ${identifierArg}\\n tap bridge start --all`,\n warnings: [],\n data: {},\n };\n }\n if (wantsAll) {\n return bridgeStartAll(flags);\n }\n if (!identifierArg) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_INVALID_ARGUMENT\",\n message:\n \"Missing instance. Usage: npx @hua-labs/tap bridge start <instance> or --all\",\n warnings: [],\n data: {},\n };\n }\n return bridgeStart(identifierArg, agentName, flags);\n }\n\n case \"stop\": {\n if (!identifierArg) {\n return bridgeStopAll();\n }\n return bridgeStopOne(identifierArg);\n }\n\n case \"status\": {\n if (identifierArg) {\n return bridgeStatusOne(identifierArg);\n }\n return bridgeStatusAll();\n }\n\n case \"tui\": {\n if (!identifierArg) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_INVALID_ARGUMENT\",\n message:\n \"Missing instance. Usage: npx @hua-labs/tap bridge tui <instance>\",\n warnings: [],\n data: {},\n };\n }\n return bridgeTuiOne(identifierArg);\n }\n\n case \"watch\": {\n const intervalStr =\n typeof flags[\"interval\"] === \"string\" ? flags[\"interval\"] : undefined;\n const interval = intervalStr ? parseInt(intervalStr, 10) : 30;\n const stuckThresholdStr =\n typeof flags[\"stuck-threshold\"] === \"string\"\n ? flags[\"stuck-threshold\"]\n : undefined;\n const stuckThreshold = stuckThresholdStr\n ? parseInt(stuckThresholdStr, 10)\n : 300;\n return bridgeWatch(interval, stuckThreshold);\n }\n\n case \"restart\": {\n if (!identifierArg) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_INVALID_ARGUMENT\",\n message:\n \"Missing instance. Usage: npx @hua-labs/tap bridge restart <instance>\",\n warnings: [],\n data: {},\n };\n }\n return bridgeRestart(identifierArg, flags);\n }\n\n default:\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_INVALID_ARGUMENT\",\n message: `Unknown bridge subcommand: ${subcommand}. Use: start, stop, restart, status, tui`,\n warnings: [],\n data: {},\n };\n }\n}\n","import * as path from \"node:path\";\nimport { loadState, saveState, updateInstanceState, fileHash } from \"../state.js\";\nimport { loadInstanceConfig, saveInstanceConfig } from \"../config/instance-config.js\";\nimport {\n startBridge,\n inferRestartMode,\n loadBridgeState,\n checkAppServerHealth,\n findNextAvailableAppServerPort,\n resolveAppServerUrl,\n} from \"../engine/bridge.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { getAdapter } from \"../adapters/index.js\";\nimport {\n findRepoRoot,\n createAdapterContext,\n resolveInstanceId,\n parseIntFlag,\n log,\n logSuccess,\n logError,\n logHeader,\n} from \"../utils.js\";\nimport type {\n InstanceId,\n HeadlessConfig,\n AgentRole,\n CommandResult,\n BridgeState,\n} from \"../types.js\";\nimport {\n formatAppServerState,\n redactProtectedUrl,\n resolveRecoveredAgentName,\n} from \"./bridge-helpers.js\";\nimport { pruneStaleHeartbeatsForBridgeUp } from \"./bridge-heartbeat.js\";\nimport { patchCodexApprovalMode } from \"../adapters/codex.js\";\n\n// ─── Subcommand: start ─────────────────────────────────────────\n\nexport async function bridgeStart(\n identifier: string,\n agentName?: string,\n flags: Record<string, string | boolean | undefined> = {},\n): Promise<CommandResult> {\n const repoRoot = findRepoRoot();\n let state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const resolved = resolveInstanceId(identifier, state);\n if (!resolved.ok) {\n return {\n ok: false,\n command: \"bridge\",\n code: resolved.code,\n message: resolved.message,\n warnings: [],\n data: {},\n };\n }\n\n const instanceId = resolved.instanceId;\n let instance = state.instances[instanceId];\n\n if (!instance?.installed) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: instance?.runtime,\n code: \"TAP_INSTANCE_NOT_FOUND\",\n message: `${instanceId} is not installed. Run: npx @hua-labs/tap add ${instance?.runtime ?? identifier}`,\n warnings: [],\n data: {},\n };\n }\n\n const adapter = getAdapter(instance.runtime);\n const mode = adapter.bridgeMode();\n const ctx = createAdapterContext(state.commsDir, repoRoot);\n\n // M224: patch approval_mode before Codex bridge startup\n if (instance.runtime === \"codex\") {\n const patched = patchCodexApprovalMode();\n if (patched) {\n log(`patched approval_mode → auto in ${patched}`);\n // Resync runtimeConfigHash to prevent drift false-positive\n const instConfig = loadInstanceConfig(ctx.stateDir, instanceId);\n if (instConfig) {\n instConfig.runtimeConfigHash = fileHash(patched);\n instConfig.updatedAt = new Date().toISOString();\n saveInstanceConfig(ctx.stateDir, instConfig);\n }\n }\n }\n\n if (mode !== \"app-server\") {\n return {\n ok: true,\n command: \"bridge\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_NO_OP\",\n message: `${instanceId} uses ${mode} mode — no bridge needed.`,\n warnings: [],\n data: { bridgeMode: mode },\n };\n }\n\n const resolvedAgentName = resolveRecoveredAgentName(\n instanceId,\n agentName,\n repoRoot,\n ctx.stateDir,\n );\n\n if ((resolvedAgentName ?? null) !== instance.agentName) {\n instance = { ...instance, agentName: resolvedAgentName ?? null };\n const updatedState = updateInstanceState(state, instanceId, instance);\n saveState(repoRoot, updatedState);\n state = updatedState;\n }\n const bridgeScript = adapter.resolveBridgeScript?.(ctx);\n\n if (!bridgeScript) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_BRIDGE_SCRIPT_MISSING\",\n message: `Bridge script not found for ${instanceId}. Ensure the runtime is properly configured.`,\n warnings: [],\n data: {},\n };\n }\n\n // Resolve runtime command + appServerUrl from config\n const { config: resolvedConfig } = resolveConfig({}, repoRoot);\n const runtimeCommand = resolvedConfig.runtimeCommand;\n const manageAppServer =\n instance.runtime === \"codex\" && flags[\"no-server\"] !== true;\n\n // Auto-assign port only for managed app-server mode (local instances).\n // External servers (--no-server) keep the configured appServerUrl as-is.\n let effectivePort = instance.port;\n if (effectivePort == null && manageAppServer) {\n effectivePort = await findNextAvailableAppServerPort(\n state,\n resolvedConfig.appServerUrl,\n 4501,\n instanceId,\n );\n instance = { ...instance, port: effectivePort };\n const updatedState = updateInstanceState(state, instanceId, instance);\n saveState(repoRoot, updatedState);\n state = updatedState;\n }\n\n const appServerUrl = resolveAppServerUrl(\n resolvedConfig.appServerUrl,\n effectivePort ?? undefined,\n );\n\n logHeader(`@hua-labs/tap bridge start ${instanceId}`);\n log(`Bridge script: ${bridgeScript}`);\n log(`Bridge mode: ${mode}`);\n log(`Runtime cmd: ${runtimeCommand}`);\n log(`App server: ${appServerUrl}`);\n if (effectivePort != null) log(`Port: ${effectivePort}`);\n if (resolvedAgentName) log(`Agent name: ${resolvedAgentName}`);\n const noAuth = flags[\"no-auth\"] === true;\n if (!manageAppServer && instance.runtime === \"codex\") {\n log(\"Auto server: disabled (--no-server)\");\n }\n if (noAuth && manageAppServer) {\n log(\"Auth gateway: disabled (--no-auth)\");\n }\n // Show headless status from instance config or --headless flag (resolved below)\n const willBeHeadless =\n flags[\"headless\"] === true || instance.headless?.enabled;\n if (willBeHeadless) {\n const role =\n (typeof flags[\"role\"] === \"string\" ? flags[\"role\"] : null) ??\n instance.headless?.role ??\n \"reviewer\";\n log(`Headless: ${role}`);\n }\n\n try {\n // Startup validation: health check before bridge start\n if (!manageAppServer && instance.runtime === \"codex\") {\n log(\"Checking app-server health...\");\n const healthy = await checkAppServerHealth(appServerUrl);\n if (healthy) {\n logSuccess(\"App server reachable\");\n } else {\n logError(`App server not reachable at ${appServerUrl}`);\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_BRIDGE_START_FAILED\",\n message: `App server not reachable at ${appServerUrl}. Start it first: codex app-server --listen ${appServerUrl}`,\n warnings: [],\n data: {},\n };\n }\n }\n\n // Parse bridge operational flags from CLI\n\n // --busy-mode validation (PS1 parity: ValidateSet(\"wait\", \"steer\"))\n const busyModeRaw = flags[\"busy-mode\"];\n if (\n busyModeRaw !== undefined &&\n busyModeRaw !== \"steer\" &&\n busyModeRaw !== \"wait\"\n ) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_INVALID_ARGUMENT\",\n message: `Invalid --busy-mode: ${String(busyModeRaw)}. Must be \"steer\" or \"wait\".`,\n warnings: [],\n data: {},\n };\n }\n const busyMode = busyModeRaw as \"steer\" | \"wait\" | undefined;\n const pollSecondsRaw =\n typeof flags[\"poll-seconds\"] === \"string\"\n ? flags[\"poll-seconds\"]\n : undefined;\n const reconnectSecondsRaw =\n typeof flags[\"reconnect-seconds\"] === \"string\"\n ? flags[\"reconnect-seconds\"]\n : undefined;\n const lookbackRaw =\n typeof flags[\"message-lookback-minutes\"] === \"string\"\n ? flags[\"message-lookback-minutes\"]\n : undefined;\n\n let pollSeconds: number | undefined;\n let reconnectSeconds: number | undefined;\n let messageLookbackMinutes: number | undefined;\n try {\n pollSeconds = parseIntFlag(pollSecondsRaw, \"--poll-seconds\", 1, 3600);\n reconnectSeconds = parseIntFlag(\n reconnectSecondsRaw,\n \"--reconnect-seconds\",\n 1,\n 3600,\n );\n messageLookbackMinutes = parseIntFlag(\n lookbackRaw,\n \"--message-lookback-minutes\",\n 1,\n 10080,\n );\n } catch (err) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_INVALID_ARGUMENT\",\n message: err instanceof Error ? err.message : String(err),\n warnings: [],\n data: {},\n };\n }\n const threadId =\n typeof flags[\"thread-id\"] === \"string\" ? flags[\"thread-id\"] : undefined;\n const ephemeral = flags[\"ephemeral\"] === true;\n const processExistingMessages = flags[\"process-existing-messages\"] === true;\n\n // --headless flag on bridge start: create ad-hoc headless config\n // even if instance wasn't created with `tap add --headless`\n const headlessFlag = flags[\"headless\"] === true;\n const roleArg =\n typeof flags[\"role\"] === \"string\" ? flags[\"role\"] : undefined;\n const validRoles: AgentRole[] = [\"reviewer\", \"validator\", \"long-running\"];\n if (roleArg && !validRoles.includes(roleArg as AgentRole)) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_INVALID_ARGUMENT\",\n message: `Invalid --role: ${roleArg}. Must be: ${validRoles.join(\", \")}`,\n warnings: [],\n data: {},\n };\n }\n\n const headless: HeadlessConfig | null = headlessFlag\n ? {\n enabled: true,\n role: (roleArg as AgentRole) ?? \"reviewer\",\n maxRounds: 5,\n qualitySeverityFloor: \"high\",\n }\n : instance.headless;\n\n // Scope TAP_COLD_START_WARMUP so the bridge can bootstrap its first turn\n const previousWarmup = process.env.TAP_COLD_START_WARMUP;\n process.env.TAP_COLD_START_WARMUP = \"true\";\n let bridge: BridgeState;\n try {\n bridge = await startBridge({\n instanceId,\n runtime: instance.runtime,\n stateDir: ctx.stateDir,\n commsDir: ctx.commsDir,\n bridgeScript,\n platform: ctx.platform,\n agentName: resolvedAgentName,\n runtimeCommand,\n appServerUrl,\n repoRoot,\n port: effectivePort ?? undefined,\n manageAppServer,\n noAuth,\n headless,\n busyMode,\n pollSeconds,\n reconnectSeconds,\n messageLookbackMinutes,\n threadId,\n ephemeral,\n processExistingMessages,\n previousLifecycle:\n instance.bridgeLifecycle ?? instance.bridge?.lifecycle ?? null,\n });\n } finally {\n if (previousWarmup === undefined) {\n delete process.env.TAP_COLD_START_WARMUP;\n } else {\n process.env.TAP_COLD_START_WARMUP = previousWarmup;\n }\n }\n\n logSuccess(`Bridge started (PID: ${bridge.pid})`);\n log(`Log: ${path.join(ctx.stateDir, \"logs\", `bridge-${instanceId}.log`)}`);\n if (bridge.appServer) {\n log(`App server: ${formatAppServerState(bridge.appServer)}`);\n if (bridge.appServer.logPath) {\n log(`Server log: ${bridge.appServer.logPath}`);\n }\n if (bridge.appServer.auth) {\n log(\n `Protected: ${redactProtectedUrl(bridge.appServer.auth.protectedUrl)}`,\n );\n if (bridge.appServer.auth.gatewayLogPath) {\n log(`Gateway log: ${bridge.appServer.auth.gatewayLogPath}`);\n }\n // TUI must connect to upstream (no token needed) — gateway blocks unauthenticated clients\n log(`TUI connect: ${bridge.appServer.auth.upstreamUrl}`);\n }\n if (bridge.appServer.managed && !bridge.appServer.auth) {\n // --no-auth mode: TUI connects to the same URL as the bridge\n log(`TUI connect: ${bridge.appServer.url}`);\n }\n }\n\n // Update state with bridge info + mode for restart preservation\n const updated = {\n ...instance,\n bridge,\n bridgeLifecycle: bridge.lifecycle ?? instance.bridgeLifecycle ?? null,\n manageAppServer,\n noAuth,\n };\n const newState = updateInstanceState(state, instanceId, updated);\n saveState(repoRoot, newState);\n\n return {\n ok: true,\n command: \"bridge\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_BRIDGE_START_OK\",\n message: `Bridge for ${instanceId} started (PID: ${bridge.pid})`,\n warnings: [],\n data: { pid: bridge.pid, appServer: bridge.appServer ?? null },\n };\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n logError(msg);\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: instance.runtime,\n code: \"TAP_BRIDGE_START_FAILED\",\n message: msg,\n warnings: [],\n data: {},\n };\n }\n}\n\n// ─── Subcommand: start --all ───────────────────────────────────\n\nexport async function bridgeStartAll(\n flags: Record<string, string | boolean | undefined> = {},\n): Promise<CommandResult> {\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const ctx = createAdapterContext(state.commsDir, repoRoot);\n const warnings: string[] = [];\n let prunedHeartbeats = 0;\n if (flags[\"auto-prune-heartbeats\"] === true) {\n const cleanup = pruneStaleHeartbeatsForBridgeUp(\n state,\n ctx.stateDir,\n ctx.commsDir,\n );\n prunedHeartbeats = cleanup.removed;\n if (cleanup.warning) {\n warnings.push(cleanup.warning);\n log(cleanup.warning);\n }\n if (prunedHeartbeats > 0) {\n log(\n `Auto-clean: pruned ${prunedHeartbeats} stale heartbeat entr${prunedHeartbeats === 1 ? \"y\" : \"ies\"}`,\n );\n }\n }\n\n const instanceIds = Object.keys(state.instances) as InstanceId[];\n const appServerInstances = instanceIds.filter((id) => {\n const inst = state.instances[id];\n if (!inst?.installed) return false;\n const adapter = getAdapter(inst.runtime);\n return adapter.bridgeMode() === \"app-server\";\n });\n\n if (appServerInstances.length === 0) {\n const cleanupSuffix =\n prunedHeartbeats > 0\n ? ` Auto-clean pruned ${prunedHeartbeats} stale heartbeat entr${prunedHeartbeats === 1 ? \"y\" : \"ies\"}.`\n : \"\";\n return {\n ok: true,\n command: \"bridge\",\n code: \"TAP_NO_OP\",\n message: `No app-server instances found to start.${cleanupSuffix}`,\n warnings,\n data: { prunedHeartbeats },\n };\n }\n\n logHeader(\"@hua-labs/tap bridge start --all\");\n log(\n `Found ${appServerInstances.length} app-server instance(s): ${appServerInstances.join(\", \")}`,\n );\n log(\"\");\n\n const started: string[] = [];\n const failed: string[] = [];\n\n for (const instanceId of appServerInstances) {\n const inst = state.instances[instanceId];\n const storedName = resolveRecoveredAgentName(\n instanceId,\n inst?.agentName ?? undefined,\n repoRoot,\n ctx.stateDir,\n );\n\n if (!storedName) {\n const msg = `${instanceId}: skipped — no stored agent-name. Set it first: tap bridge start ${instanceId} --agent-name <name>`;\n log(msg);\n warnings.push(msg);\n continue;\n }\n\n // Restore saved --no-server / --no-auth mode (M197: inferRestartMode for start --all)\n const stateDir = path.join(repoRoot, \".tap-comms\");\n const currentBridgeState = loadBridgeState(stateDir, instanceId);\n const { manageAppServer, noAuth } = inferRestartMode(\n currentBridgeState,\n {\n noServer: flags[\"no-server\"] === true ? true : undefined,\n noAuth: flags[\"no-auth\"] === true ? true : undefined,\n },\n {\n manageAppServer: inst.manageAppServer,\n noAuth: inst.noAuth,\n },\n );\n const mergedFlags = {\n ...flags,\n ...(manageAppServer === false ? { \"no-server\": true } : {}),\n ...(noAuth === true ? { \"no-auth\": true } : {}),\n };\n\n log(`Starting ${instanceId} (agent: ${storedName})...`);\n const result = await bridgeStart(instanceId, storedName, mergedFlags);\n\n if (result.ok) {\n started.push(instanceId);\n logSuccess(`${instanceId} started`);\n } else {\n failed.push(instanceId);\n logError(`${instanceId}: ${result.message}`);\n }\n log(\"\");\n }\n\n const message =\n started.length > 0\n ? `Started ${started.length}/${appServerInstances.length} bridge(s): ${started.join(\", \")}` +\n (failed.length > 0 ? `. Failed: ${failed.join(\", \")}` : \"\")\n : `No bridges started. Failed: ${failed.join(\", \")}`;\n const cleanupSuffix =\n prunedHeartbeats > 0\n ? ` Auto-clean pruned ${prunedHeartbeats} stale heartbeat entr${prunedHeartbeats === 1 ? \"y\" : \"ies\"}.`\n : \"\";\n\n return {\n ok: failed.length === 0 && started.length > 0,\n command: \"bridge\",\n code:\n started.length > 0 ? \"TAP_BRIDGE_START_OK\" : \"TAP_BRIDGE_START_FAILED\",\n message: `${message}${cleanupSuffix}`,\n warnings,\n data: { started, failed, prunedHeartbeats },\n };\n}\n","import * as path from \"node:path\";\nimport {\n getBridgeStatus,\n loadBridgeState,\n resolveAgentName,\n saveBridgeState,\n} from \"../engine/bridge.js\";\nimport type {\n InstanceId,\n AppServerState,\n BridgeState,\n TapState,\n} from \"../types.js\";\nimport type { BridgeLifecycleSnapshot } from \"../engine/bridge.js\";\n\nexport function formatAge(seconds: number): string {\n if (seconds < 60) return `${seconds}s ago`;\n if (seconds < 3600) return `${Math.floor(seconds / 60)}m ago`;\n return `${Math.floor(seconds / 3600)}h ${Math.floor((seconds % 3600) / 60)}m ago`;\n}\n\nexport function formatAppServerState(appServer: AppServerState): string {\n const ownership = appServer.managed ? \"managed\" : \"external\";\n const pid = appServer.pid != null ? ` pid:${appServer.pid}` : \"\";\n const health = appServer.healthy ? \"healthy\" : \"unhealthy\";\n const auth =\n appServer.auth != null\n ? `, auth gateway:${appServer.auth.gatewayPid ?? \"-\"} -> ${appServer.auth.upstreamUrl}`\n : \"\";\n return `${health}, ${ownership}${pid}, ${appServer.url}${auth}`;\n}\n\nexport function redactProtectedUrl(url: string): string {\n // Subprotocol auth: token is no longer in the URL.\n // Keep function for backward compat with old state files that may contain query tokens.\n try {\n const parsed = new URL(url);\n if (parsed.searchParams.has(\"tap_token\")) {\n parsed.searchParams.delete(\"tap_token\");\n }\n return parsed.toString().replace(/\\/$/, \"\");\n } catch {\n return url.replace(/[?&]tap_token=[^&]+/g, \"\");\n }\n}\n\nexport function resolveTuiConnectUrl(appServer: AppServerState): string {\n return appServer.auth?.upstreamUrl ?? appServer.url;\n}\n\nexport function quoteCliArg(value: string): string {\n return `\"${value.replace(/\"/g, '\\\\\"')}\"`;\n}\n\nfunction quoteShellEnvValue(value: string): string {\n if (process.platform === \"win32\") {\n return `'${value.replace(/'/g, \"''\")}'`;\n }\n return `'${value.replace(/'/g, `'\\\\''`)}'`;\n}\n\nexport function formatCodexTuiAttachCommand(\n tuiConnectUrl: string,\n cwd: string,\n env: Record<string, string> = {},\n): string {\n const base = `codex --enable tui_app_server --remote ${quoteCliArg(tuiConnectUrl)} --cd ${quoteCliArg(cwd)}`;\n const entries = Object.entries(env).filter(([, value]) => value.length > 0);\n if (entries.length === 0) {\n return base;\n }\n\n if (process.platform === \"win32\") {\n const envPrefix = entries\n .map(([key, value]) => `$env:${key} = ${quoteShellEnvValue(value)}`)\n .join(\"; \");\n return `${envPrefix}; ${base}`;\n }\n\n const envPrefix = entries\n .map(([key, value]) => `${key}=${quoteShellEnvValue(value)}`)\n .join(\" \");\n return `${envPrefix} ${base}`;\n}\n\nexport function resolveTuiAttachCwd(\n repoRoot: string,\n stateRepoRoot: string | null | undefined,\n runtimeThreadCwd: string | null | undefined,\n savedThreadCwd: string | null | undefined,\n): string {\n return runtimeThreadCwd ?? savedThreadCwd ?? stateRepoRoot ?? repoRoot;\n}\n\nexport function loadCurrentBridgeState(\n stateDir: string,\n instanceId: InstanceId,\n fallback: BridgeState | null | undefined,\n): BridgeState | null {\n return loadBridgeState(stateDir, instanceId) ?? fallback ?? null;\n}\n\nexport function formatThreadSummary(\n threadId: string | null | undefined,\n cwd: string | null | undefined,\n): string {\n if (!threadId) {\n return \"-\";\n }\n\n return cwd ? `${threadId} (${cwd})` : threadId;\n}\n\nexport function normalizeComparablePath(value: string): string {\n return path.resolve(value).replace(/\\\\/g, \"/\").toLowerCase();\n}\n\nexport function sameOptionalPath(\n left: string | null | undefined,\n right: string | null | undefined,\n): boolean {\n if (!left || !right) {\n return left === right;\n }\n\n return normalizeComparablePath(left) === normalizeComparablePath(right);\n}\n\nexport function resolveRecoveredAgentName(\n instanceId: InstanceId,\n explicitAgentName: string | undefined,\n repoRoot: string,\n stateDir: string,\n): string | undefined {\n return (\n resolveAgentName(instanceId, explicitAgentName, { repoRoot, stateDir }) ??\n undefined\n );\n}\n\nexport function formatLifecycleTransition(\n lifecycle: Pick<\n BridgeLifecycleSnapshot,\n \"lastTransitionAt\" | \"lastTransitionReason\" | \"restartCount\"\n > | null,\n): string | null {\n if (!lifecycle?.lastTransitionAt) {\n return null;\n }\n\n const reason = lifecycle.lastTransitionReason\n ? ` (${lifecycle.lastTransitionReason})`\n : \"\";\n return `${lifecycle.lastTransitionAt}${reason}, restarts=${lifecycle.restartCount}`;\n}\n\nexport function getSharedAppServerUsers(\n state: TapState,\n stateDir: string,\n currentInstanceId: InstanceId,\n appServerUrl: string,\n): InstanceId[] {\n const shared: InstanceId[] = [];\n\n for (const [id, inst] of Object.entries(state.instances)) {\n if (id === currentInstanceId || !inst?.installed) {\n continue;\n }\n\n const instanceId = id as InstanceId;\n if (getBridgeStatus(stateDir, instanceId) !== \"running\") {\n continue;\n }\n\n const bridgeState = loadCurrentBridgeState(\n stateDir,\n instanceId,\n inst.bridge,\n );\n if (bridgeState?.appServer?.url === appServerUrl) {\n shared.push(instanceId);\n }\n }\n\n return shared;\n}\n\nexport function transferManagedAppServerOwnership(\n state: TapState,\n stateDir: string,\n recipientId: InstanceId,\n appServer: AppServerState,\n): boolean {\n const recipient = state.instances[recipientId];\n if (!recipient) {\n return false;\n }\n\n const bridgeState = loadCurrentBridgeState(\n stateDir,\n recipientId,\n recipient.bridge,\n );\n if (!bridgeState) {\n return false;\n }\n\n const transferredAppServer: AppServerState = {\n ...appServer,\n managed: true,\n healthy: true,\n lastCheckedAt: new Date().toISOString(),\n lastHealthyAt: appServer.lastHealthyAt ?? new Date().toISOString(),\n };\n\n const updatedBridge: BridgeState = {\n ...bridgeState,\n appServer: transferredAppServer,\n };\n\n saveBridgeState(stateDir, recipientId, updatedBridge);\n state.instances[recipientId] = {\n ...recipient,\n bridge: updatedBridge,\n };\n return true;\n}\n","import { existsSync, readFileSync, renameSync, writeFileSync } from \"node:fs\";\nimport * as path from \"node:path\";\nimport { getBridgeStatus } from \"../engine/bridge.js\";\nimport type { InstanceId, TapState } from \"../types.js\";\n\nexport interface BridgeHeartbeatRecord {\n agent?: string;\n timestamp?: string;\n lastActivity?: string;\n status?: \"active\" | \"idle\" | \"signing-off\" | string;\n}\n\nexport const BRIDGE_UP_ACTIVE_HEARTBEAT_WINDOW_MS = 10 * 60 * 1000;\nexport const BRIDGE_UP_ORPHAN_HEARTBEAT_WINDOW_MS = 24 * 60 * 60 * 1000;\nexport const BRIDGE_UP_SIGNING_OFF_HEARTBEAT_WINDOW_MS = 5 * 60 * 1000;\n\nexport function loadBridgeHeartbeatStore(\n commsDir: string,\n): Record<string, BridgeHeartbeatRecord> | null {\n const heartbeatsPath = path.join(commsDir, \"heartbeats.json\");\n if (!existsSync(heartbeatsPath)) return {};\n try {\n return JSON.parse(readFileSync(heartbeatsPath, \"utf-8\")) as Record<\n string,\n BridgeHeartbeatRecord\n >;\n } catch {\n return null;\n }\n}\n\nexport function saveBridgeHeartbeatStore(\n commsDir: string,\n store: Record<string, BridgeHeartbeatRecord>,\n): void {\n const heartbeatsPath = path.join(commsDir, \"heartbeats.json\");\n const tmp = `${heartbeatsPath}.tmp.${process.pid}`;\n writeFileSync(tmp, JSON.stringify(store, null, 2), \"utf-8\");\n renameSync(tmp, heartbeatsPath);\n}\n\nexport function parseBridgeHeartbeatAgeMs(\n record: BridgeHeartbeatRecord,\n now: number,\n): number {\n const raw = record.lastActivity ?? record.timestamp;\n if (!raw) return Number.POSITIVE_INFINITY;\n const parsed = new Date(raw).getTime();\n if (!Number.isFinite(parsed)) return Number.POSITIVE_INFINITY;\n return Math.max(0, now - parsed);\n}\n\nexport function resolveBridgeHeartbeatInstanceId(\n state: TapState,\n heartbeatId: string,\n): InstanceId | null {\n if (state.instances[heartbeatId]) return heartbeatId as InstanceId;\n const hyphenated = heartbeatId.replace(/_/g, \"-\");\n if (state.instances[hyphenated]) return hyphenated as InstanceId;\n const underscored = heartbeatId.replace(/-/g, \"_\");\n if (state.instances[underscored]) return underscored as InstanceId;\n return null;\n}\n\nexport function pruneStaleHeartbeatsForBridgeUp(\n state: TapState,\n stateDir: string,\n commsDir: string,\n): { removed: number; warning?: string } {\n const store = loadBridgeHeartbeatStore(commsDir);\n if (store === null) {\n return {\n removed: 0,\n warning: \"Auto-clean skipped — heartbeats.json unreadable\",\n };\n }\n\n const now = Date.now();\n let removed = 0;\n\n for (const [heartbeatId, heartbeat] of Object.entries(store)) {\n const ageMs = parseBridgeHeartbeatAgeMs(heartbeat, now);\n const instanceId = resolveBridgeHeartbeatInstanceId(state, heartbeatId);\n const instance = instanceId ? state.instances[instanceId] : null;\n const bridgeBacked = instance?.bridgeMode === \"app-server\";\n const bridgeRunning =\n bridgeBacked && instanceId\n ? getBridgeStatus(stateDir, instanceId) === \"running\"\n : false;\n const status = heartbeat.status ?? \"active\";\n\n const staleByStatus =\n status === \"signing-off\" &&\n ageMs >= BRIDGE_UP_SIGNING_OFF_HEARTBEAT_WINDOW_MS;\n const staleByDeadBridge =\n bridgeBacked &&\n !bridgeRunning &&\n ageMs >= BRIDGE_UP_ACTIVE_HEARTBEAT_WINDOW_MS;\n const staleByAge =\n !bridgeRunning && ageMs >= BRIDGE_UP_ORPHAN_HEARTBEAT_WINDOW_MS;\n\n if (staleByStatus || staleByDeadBridge || staleByAge) {\n delete store[heartbeatId];\n removed += 1;\n }\n }\n\n if (removed > 0) {\n saveBridgeHeartbeatStore(commsDir, store);\n }\n\n return { removed };\n}\n","import { loadState, saveState, updateInstanceState } from \"../state.js\";\nimport {\n stopBridge,\n stopManagedAppServer,\n waitForPortRelease,\n} from \"../engine/bridge.js\";\nimport {\n findRepoRoot,\n createAdapterContext,\n resolveInstanceId,\n log,\n logSuccess,\n logHeader,\n} from \"../utils.js\";\nimport type { InstanceId, AppServerState, CommandResult } from \"../types.js\";\nimport {\n loadCurrentBridgeState,\n getSharedAppServerUsers,\n transferManagedAppServerOwnership,\n} from \"./bridge-helpers.js\";\n\n// ─── Subcommand: stop ──────────────────────────────────────────\n\nexport async function bridgeStopOne(\n identifier: string,\n): Promise<CommandResult> {\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const resolved = resolveInstanceId(identifier, state);\n if (!resolved.ok) {\n return {\n ok: false,\n command: \"bridge\",\n code: resolved.code,\n message: resolved.message,\n warnings: [],\n data: {},\n };\n }\n\n const instanceId = resolved.instanceId;\n const ctx = createAdapterContext(state.commsDir, repoRoot);\n const instance = state.instances[instanceId];\n const bridgeState = loadCurrentBridgeState(\n ctx.stateDir,\n instanceId,\n instance?.bridge,\n );\n const appServer = bridgeState?.appServer ?? null;\n\n logHeader(`@hua-labs/tap bridge stop ${instanceId}`);\n\n const stopResult = await stopBridge({\n instanceId,\n stateDir: ctx.stateDir,\n platform: ctx.platform,\n });\n\n let appServerStopped = false;\n let appServerTransferredTo: InstanceId | null = null;\n\n if (stopResult.stopped) {\n logSuccess(`Bridge for ${instanceId} stopped`);\n } else {\n log(`No running bridge for ${instanceId}`);\n }\n\n if (appServer?.managed) {\n const sharedUsers = getSharedAppServerUsers(\n state,\n ctx.stateDir,\n instanceId,\n appServer.url,\n );\n\n if (sharedUsers.length > 0) {\n const recipient = sharedUsers[0];\n if (\n transferManagedAppServerOwnership(\n state,\n ctx.stateDir,\n recipient,\n appServer,\n )\n ) {\n appServerTransferredTo = recipient;\n log(`Managed app-server ownership moved to ${recipient}`);\n } else {\n log(\n `Managed app-server left running at ${appServer.url} because ownership transfer failed`,\n );\n }\n } else {\n appServerStopped = await stopManagedAppServer(appServer, ctx.platform);\n if (appServerStopped) {\n const gatewayNote =\n appServer.auth?.gatewayPid != null\n ? `, gateway PID: ${appServer.auth.gatewayPid}`\n : \"\";\n logSuccess(\n `Managed app-server stopped (PID: ${appServer.pid ?? \"-\"}${gatewayNote})`,\n );\n // Wait for port to be released so the next bridge start won't\n // hit TIME_WAIT conflicts (port zombie prevention)\n const released = await waitForPortRelease(appServer.url, 5_000);\n if (!released) {\n log(\n `Warning: port for ${appServer.url} still in use after stop — next start may need a different port`,\n );\n }\n }\n }\n }\n\n // Clear bridge from state\n if (instance) {\n const updated = {\n ...instance,\n bridge: null,\n bridgeLifecycle: stopResult.lifecycle ?? instance.bridgeLifecycle ?? null,\n };\n const newState = updateInstanceState(state, instanceId, updated);\n saveState(repoRoot, newState);\n }\n\n if (stopResult.stopped) {\n return {\n ok: true,\n command: \"bridge\",\n instanceId,\n code: \"TAP_BRIDGE_STOP_OK\",\n message: `Bridge for ${instanceId} stopped`,\n warnings: [],\n data: {\n appServerStopped,\n appServerTransferredTo,\n },\n };\n }\n\n return {\n ok: true,\n command: \"bridge\",\n instanceId,\n code: \"TAP_BRIDGE_NOT_RUNNING\",\n message: `No running bridge for ${instanceId}`,\n warnings: [],\n data: {\n appServerStopped,\n appServerTransferredTo,\n },\n };\n}\n\nexport async function bridgeStopAll(): Promise<CommandResult> {\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const ctx = createAdapterContext(state.commsDir, repoRoot);\n const instanceIds = Object.keys(state.instances) as InstanceId[];\n const stopped: string[] = [];\n const managedAppServers = new Map<string, AppServerState>();\n\n logHeader(\"@hua-labs/tap bridge stop (all)\");\n\n let stateChanged = false;\n\n for (const instanceId of instanceIds) {\n const bridgeState = loadCurrentBridgeState(\n ctx.stateDir,\n instanceId,\n state.instances[instanceId]?.bridge,\n );\n const appServer = bridgeState?.appServer;\n if (appServer?.managed && appServer.pid != null) {\n managedAppServers.set(\n `${appServer.url}:${appServer.pid}:${appServer.auth?.gatewayPid ?? \"-\"}`,\n appServer,\n );\n }\n\n const stopResult = await stopBridge({\n instanceId,\n stateDir: ctx.stateDir,\n platform: ctx.platform,\n });\n\n if (stopResult.stopped) {\n logSuccess(`Stopped bridge for ${instanceId}`);\n stopped.push(instanceId);\n }\n\n // Clear stale bridge metadata regardless of whether process was alive\n const instance = state.instances[instanceId];\n if (instance?.bridge || stopResult.lifecycle) {\n state.instances[instanceId] = {\n ...instance,\n bridge: null,\n bridgeLifecycle:\n stopResult.lifecycle ?? instance.bridgeLifecycle ?? null,\n };\n stateChanged = true;\n }\n }\n\n const stoppedAppServers: number[] = [];\n const releasePorts: string[] = [];\n for (const appServer of managedAppServers.values()) {\n if (await stopManagedAppServer(appServer, ctx.platform)) {\n stoppedAppServers.push(appServer.pid!);\n releasePorts.push(appServer.url);\n const gatewayNote =\n appServer.auth?.gatewayPid != null\n ? `, gateway PID ${appServer.auth.gatewayPid}`\n : \"\";\n logSuccess(\n `Stopped app-server PID ${appServer.pid} (${appServer.url}${gatewayNote})`,\n );\n }\n }\n\n // Wait for all stopped app-server ports to release (parallel)\n if (releasePorts.length > 0) {\n await Promise.all(\n releasePorts.map((url) => waitForPortRelease(url, 5_000)),\n );\n }\n\n if (stateChanged) {\n state.updatedAt = new Date().toISOString();\n saveState(repoRoot, state);\n }\n\n const message =\n stopped.length > 0\n ? `Stopped ${stopped.length} bridge(s): ${stopped.join(\", \")}`\n : \"No running bridges found\";\n\n log(message);\n\n return {\n ok: true,\n command: \"bridge\",\n code: stopped.length > 0 ? \"TAP_BRIDGE_STOP_OK\" : \"TAP_BRIDGE_NOT_RUNNING\",\n message,\n warnings: [],\n data: { stopped, stoppedAppServers },\n };\n}\n","import { loadState, saveState, updateInstanceState } from \"../state.js\";\nimport {\n restartBridge,\n inferRestartMode,\n getBridgeStatus,\n loadBridgeState,\n getTurnInfo,\n isTurnStuck,\n resolveBridgeLifecycleSnapshot,\n transitionBridgeLifecycle,\n} from \"../engine/bridge.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { getAdapter } from \"../adapters/index.js\";\nimport {\n findRepoRoot,\n createAdapterContext,\n log,\n logSuccess,\n logError,\n logHeader,\n} from \"../utils.js\";\nimport type { InstanceId, CommandResult } from \"../types.js\";\nimport { formatAge, resolveRecoveredAgentName } from \"./bridge-helpers.js\";\n\n// ─── Subcommand: watch ───────────────────────────────────────\n\n/**\n * Monitor all bridges and auto-restart stuck or stale ones.\n * Runs a single check cycle and returns results.\n * For continuous monitoring, call periodically (e.g., from a cron or loop).\n */\nexport async function bridgeWatch(\n _intervalSeconds: number,\n stuckThresholdSeconds: number,\n): Promise<CommandResult> {\n const repoRoot = findRepoRoot();\n let state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const { config: resolvedCfg } = resolveConfig({}, repoRoot);\n const stateDir = resolvedCfg.stateDir;\n const instanceIds = Object.keys(state.instances) as InstanceId[];\n\n logHeader(\"@hua-labs/tap bridge watch\");\n log(\n `Checking ${instanceIds.length} instance(s), stuck threshold: ${stuckThresholdSeconds}s`,\n );\n\n const restarted: string[] = [];\n const cleaned: string[] = [];\n const initializing: string[] = [];\n const degraded: string[] = [];\n const healthy: string[] = [];\n const warnings: string[] = [];\n let stateChanged = false;\n\n for (const instanceId of instanceIds) {\n const inst = state.instances[instanceId];\n if (!inst?.installed || inst.bridgeMode !== \"app-server\") continue;\n\n const status = getBridgeStatus(stateDir, instanceId);\n\n if (status === \"stale\") {\n log(`${instanceId}: stale (process dead) — cleaning up`);\n state.instances[instanceId] = {\n ...inst,\n bridge: null,\n bridgeLifecycle: transitionBridgeLifecycle(\n inst.bridgeLifecycle ?? inst.bridge?.lifecycle ?? null,\n \"crashed\",\n \"bridge pid not alive\",\n ),\n };\n stateChanged = true;\n cleaned.push(instanceId);\n continue;\n }\n\n if (status === \"stopped\") {\n log(`${instanceId}: stopped`);\n continue;\n }\n\n const lifecycle = resolveBridgeLifecycleSnapshot(\n stateDir,\n instanceId,\n inst.bridge,\n inst.bridgeLifecycle ?? null,\n );\n\n if (lifecycle.status === \"initializing\") {\n initializing.push(instanceId);\n log(`${instanceId}: initializing`);\n continue;\n }\n\n if (lifecycle.status === \"degraded-no-thread\") {\n degraded.push(instanceId);\n log(\n `${instanceId}: degraded-no-thread${\n lifecycle.savedThreadId\n ? ` (saved thread ${lifecycle.savedThreadId})`\n : \"\"\n }`,\n );\n continue;\n }\n\n // Running — check for stuck turns\n if (isTurnStuck(stateDir, instanceId, stuckThresholdSeconds)) {\n const turnInfo = getTurnInfo(stateDir, instanceId, stuckThresholdSeconds);\n const ageStr =\n turnInfo?.ageSeconds != null ? formatAge(turnInfo.ageSeconds) : \"?\";\n log(\n `${instanceId}: ⚠ STUCK turn ${turnInfo?.activeTurnId?.slice(0, 8)}... (${ageStr}) — restarting`,\n );\n\n const adapter = getAdapter(inst.runtime);\n const ctx = {\n ...createAdapterContext(state.commsDir, repoRoot),\n instanceId,\n };\n const bridgeScript = adapter.resolveBridgeScript?.(ctx);\n\n if (!bridgeScript) {\n warnings.push(\n `${instanceId}: cannot restart — bridge script not found`,\n );\n continue;\n }\n\n const bridgeState = loadBridgeState(stateDir, instanceId);\n const { manageAppServer, noAuth } = inferRestartMode(bridgeState, {});\n\n // Scope TAP_COLD_START_WARMUP around restart (mirrors bridgeRestart, PR #847)\n const previousWarmup = process.env.TAP_COLD_START_WARMUP;\n process.env.TAP_COLD_START_WARMUP = \"true\";\n try {\n const recoveredAgentName = resolveRecoveredAgentName(\n instanceId,\n undefined,\n repoRoot,\n ctx.stateDir,\n );\n const newBridgeState = await restartBridge({\n instanceId,\n runtime: inst.runtime,\n stateDir: ctx.stateDir,\n commsDir: ctx.commsDir,\n bridgeScript,\n platform: ctx.platform,\n agentName: recoveredAgentName,\n runtimeCommand: resolvedCfg.runtimeCommand,\n appServerUrl: resolvedCfg.appServerUrl,\n repoRoot,\n port: inst.port ?? undefined,\n headless: inst.headless,\n drainTimeoutSeconds: 30,\n manageAppServer,\n noAuth,\n previousLifecycle:\n inst.bridgeLifecycle ?? inst.bridge?.lifecycle ?? null,\n });\n // Backwrite new bridge state to state.json (mirrors bridgeRestart)\n const updatedInst = {\n ...inst,\n agentName: recoveredAgentName ?? inst.agentName ?? null,\n bridge: newBridgeState,\n bridgeLifecycle:\n newBridgeState.lifecycle ?? inst.bridgeLifecycle ?? null,\n };\n const updatedState = updateInstanceState(\n state,\n instanceId,\n updatedInst,\n );\n saveState(repoRoot, updatedState);\n state = updatedState;\n restarted.push(instanceId);\n logSuccess(`${instanceId}: restarted`);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n warnings.push(`${instanceId}: restart failed — ${msg}`);\n logError(`${instanceId}: restart failed — ${msg}`);\n } finally {\n if (previousWarmup === undefined) {\n delete process.env.TAP_COLD_START_WARMUP;\n } else {\n process.env.TAP_COLD_START_WARMUP = previousWarmup;\n }\n }\n } else {\n healthy.push(instanceId);\n log(`${instanceId}: healthy`);\n }\n }\n\n const message =\n [\n restarted.length > 0 ? `Restarted: ${restarted.join(\", \")}` : null,\n cleaned.length > 0 ? `Cleaned stale: ${cleaned.join(\", \")}` : null,\n initializing.length > 0\n ? `Initializing: ${initializing.join(\", \")}`\n : null,\n degraded.length > 0 ? `Degraded: ${degraded.join(\", \")}` : null,\n healthy.length > 0 ? `Healthy: ${healthy.join(\", \")}` : null,\n ]\n .filter(Boolean)\n .join(\". \") || \"No app-server bridges found\";\n\n log(\"\");\n log(message);\n\n if (stateChanged) {\n saveState(repoRoot, state);\n }\n\n return {\n ok: true,\n command: \"bridge\",\n code:\n restarted.length > 0\n ? \"TAP_BRIDGE_WATCH_RESTARTED\"\n : \"TAP_BRIDGE_WATCH_OK\",\n message,\n warnings,\n data: { restarted, cleaned, initializing, degraded, healthy },\n };\n}\n","import * as path from \"node:path\";\nimport { loadState, saveState } from \"../state.js\";\nimport {\n getBridgeStatus,\n loadBridgeState,\n getHeartbeatAge,\n getBridgeHeartbeatTimestamp,\n loadRuntimeBridgeHeartbeat,\n loadRuntimeBridgeThreadState,\n getTurnInfo,\n deriveBridgeLifecycleState,\n deriveCodexSessionState,\n transitionBridgeLifecycle,\n} from \"../engine/bridge.js\";\nimport { loadLiveDispatchEvidence } from \"../engine/health-monitor.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { findRepoRoot, resolveInstanceId, log, logHeader } from \"../utils.js\";\nimport type { CommandResult, AppServerState } from \"../types.js\";\nimport type {\n BridgeLifecycleSnapshot,\n CodexSessionSnapshot,\n} from \"../engine/bridge.js\";\nimport {\n formatAge,\n formatAppServerState,\n formatLifecycleTransition,\n redactProtectedUrl,\n formatThreadSummary,\n sameOptionalPath,\n} from \"./bridge-helpers.js\";\n\n// ─── Subcommand: status ────────────────────────────────────────\n\nexport function bridgeStatusAll(): CommandResult {\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const { config: resolvedCfg } = resolveConfig({}, repoRoot);\n const stateDir = resolvedCfg.stateDir;\n const instanceIds = Object.keys(state.instances) as Array<\n keyof typeof state.instances\n >;\n const bridges: Record<\n string,\n {\n status: string;\n lifecycle: BridgeLifecycleSnapshot | null;\n session: CodexSessionSnapshot | null;\n runtime: string;\n pid: number | null;\n port: number | null;\n lastHeartbeat: string | null;\n threadId: string | null;\n threadCwd: string | null;\n savedThreadId: string | null;\n savedThreadCwd: string | null;\n appServer: AppServerState | null;\n }\n > = {};\n\n logHeader(\"@hua-labs/tap bridge status\");\n log(\n `${\"Instance\".padEnd(20)} ${\"Runtime\".padEnd(8)} ${\"Status\".padEnd(10)} ${\"Lifecycle\".padEnd(20)} ${\"Session\".padEnd(18)} ${\"PID\".padEnd(8)} ${\"Port\".padEnd(6)} ${\"Last Heartbeat\"}`,\n );\n log(\n `${\"─\".repeat(20)} ${\"─\".repeat(8)} ${\"─\".repeat(10)} ${\"─\".repeat(20)} ${\"─\".repeat(18)} ${\"─\".repeat(8)} ${\"─\".repeat(6)} ${\"─\".repeat(20)}`,\n );\n\n let stateChanged = false;\n\n for (const instanceId of instanceIds) {\n const inst = state.instances[instanceId];\n if (!inst?.installed) continue;\n\n if (inst.bridgeMode !== \"app-server\") {\n log(\n `${instanceId.padEnd(20)} ${inst.runtime.padEnd(8)} ${\"n/a\".padEnd(10)} ${\"-\".padEnd(8)} ${\"-\".padEnd(6)} ${inst.bridgeMode} mode`,\n );\n bridges[instanceId] = {\n status: \"n/a\",\n lifecycle: null,\n session: null,\n runtime: inst.runtime,\n pid: null,\n port: inst.port,\n lastHeartbeat: null,\n threadId: null,\n threadCwd: null,\n savedThreadId: null,\n savedThreadCwd: null,\n appServer: null,\n };\n continue;\n }\n\n const rawStatus = getBridgeStatus(stateDir, instanceId);\n const bridgeState = loadBridgeState(stateDir, instanceId) ?? inst.bridge;\n const liveDispatch =\n rawStatus === \"running\"\n ? null\n : loadLiveDispatchEvidence(state.commsDir, instanceId);\n const surfaceBridgeState = liveDispatch ? null : bridgeState;\n const runtimeHeartbeat = loadRuntimeBridgeHeartbeat(surfaceBridgeState);\n const savedThread = loadRuntimeBridgeThreadState(surfaceBridgeState);\n const status = liveDispatch ? \"dispatch-live\" : rawStatus;\n const lifecycle = liveDispatch\n ? deriveBridgeLifecycleState({ bridgeStatus: \"stopped\" })\n : deriveBridgeLifecycleState({\n bridgeStatus: rawStatus,\n bridgeState,\n runtimeHeartbeat,\n savedThread,\n persistedLifecycle:\n inst.bridgeLifecycle ?? bridgeState?.lifecycle ?? null,\n });\n const session =\n rawStatus === \"running\" || liveDispatch\n ? deriveCodexSessionState({\n runtimeHeartbeat,\n runtimeStateDir: surfaceBridgeState?.runtimeStateDir ?? null,\n })\n : null;\n const age = liveDispatch ? null : getHeartbeatAge(stateDir, instanceId);\n\n if (rawStatus === \"stale\" && inst.bridge) {\n state.instances[instanceId] = {\n ...inst,\n bridge: null,\n bridgeLifecycle: transitionBridgeLifecycle(\n inst.bridgeLifecycle ?? inst.bridge?.lifecycle ?? null,\n \"crashed\",\n \"bridge pid not alive\",\n ),\n };\n stateChanged = true;\n }\n\n const pid = surfaceBridgeState?.pid ?? null;\n const heartbeat = liveDispatch\n ? null\n : getBridgeHeartbeatTimestamp(stateDir, instanceId);\n const pidStr = pid ? String(pid) : \"-\";\n const portStr = inst.port ? String(inst.port) : \"-\";\n const ageStr = age !== null ? formatAge(age) : \"-\";\n\n log(\n `${instanceId.padEnd(20)} ${inst.runtime.padEnd(8)} ${status.padEnd(10)} ${lifecycle.status.padEnd(20)} ${(session?.status ?? \"-\").padEnd(18)} ${pidStr.padEnd(8)} ${portStr.padEnd(6)} ${ageStr}`,\n );\n if (surfaceBridgeState?.appServer) {\n log(` App server: ${formatAppServerState(surfaceBridgeState.appServer)}`);\n if (surfaceBridgeState.appServer.logPath) {\n log(` Server log: ${surfaceBridgeState.appServer.logPath}`);\n }\n if (surfaceBridgeState.appServer.auth) {\n log(\n ` Protected: ${redactProtectedUrl(surfaceBridgeState.appServer.auth.protectedUrl)}`,\n );\n }\n }\n if (runtimeHeartbeat?.threadId) {\n log(\n ` Thread: ${formatThreadSummary(runtimeHeartbeat.threadId, runtimeHeartbeat.threadCwd)}`,\n );\n }\n if (\n savedThread?.threadId &&\n (savedThread.threadId !== runtimeHeartbeat?.threadId ||\n !sameOptionalPath(savedThread.cwd, runtimeHeartbeat?.threadCwd))\n ) {\n log(\n ` Saved: ${formatThreadSummary(savedThread.threadId, savedThread.cwd)}`,\n );\n }\n const transition = formatLifecycleTransition(lifecycle);\n if (transition) {\n log(` Transition: ${transition}`);\n }\n if (liveDispatch) {\n log(\n ` Drift: fresh bridge-dispatch heartbeat from PID ${liveDispatch.bridgePid} without bridge pid state`,\n );\n }\n\n // Turn stuck detection (M160)\n const turnInfo = getTurnInfo(stateDir, instanceId);\n if (turnInfo?.activeTurnId) {\n const ageStr2 =\n turnInfo.ageSeconds != null ? formatAge(turnInfo.ageSeconds) : \"?\";\n if (turnInfo.stuck) {\n log(\n ` ⚠ STUCK: turn ${turnInfo.activeTurnId.slice(0, 8)}... active ${ageStr2} (threshold: 5m)`,\n );\n } else {\n log(\n ` Turn: ${turnInfo.activeTurnId.slice(0, 8)}... active ${ageStr2}`,\n );\n }\n }\n\n bridges[instanceId] = {\n status,\n lifecycle,\n session,\n runtime: inst.runtime,\n pid,\n port: inst.port,\n lastHeartbeat: heartbeat,\n threadId: runtimeHeartbeat?.threadId ?? null,\n threadCwd: runtimeHeartbeat?.threadCwd ?? null,\n savedThreadId: savedThread?.threadId ?? null,\n savedThreadCwd: savedThread?.cwd ?? null,\n appServer: surfaceBridgeState?.appServer ?? null,\n };\n }\n\n if (instanceIds.length === 0) {\n log(\"No instances installed.\");\n }\n\n if (stateChanged) {\n saveState(repoRoot, state);\n }\n\n log(\"\");\n\n return {\n ok: true,\n command: \"bridge\",\n code: \"TAP_BRIDGE_STATUS_OK\",\n message: `${instanceIds.length} instance(s) checked`,\n warnings: [],\n data: { bridges },\n };\n}\n\nexport function bridgeStatusOne(identifier: string): CommandResult {\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const resolved = resolveInstanceId(identifier, state);\n if (!resolved.ok) {\n return {\n ok: false,\n command: \"bridge\",\n code: resolved.code,\n message: resolved.message,\n warnings: [],\n data: {},\n };\n }\n\n const instanceId = resolved.instanceId;\n const inst = state.instances[instanceId];\n\n if (!inst?.installed) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n code: \"TAP_INSTANCE_NOT_FOUND\",\n message: `${instanceId} is not installed.`,\n warnings: [],\n data: {},\n };\n }\n\n logHeader(`@hua-labs/tap bridge status ${instanceId}`);\n log(`Instance: ${instanceId}`);\n log(`Runtime: ${inst.runtime}`);\n log(`Bridge mode: ${inst.bridgeMode}`);\n if (inst.port) log(`Port: ${inst.port}`);\n\n // Non-app-server instances don't use bridges\n if (inst.bridgeMode !== \"app-server\") {\n log(`Status: n/a (${inst.bridgeMode} mode)`);\n log(\"\");\n\n return {\n ok: true,\n command: \"bridge\",\n instanceId,\n runtime: inst.runtime,\n code: \"TAP_BRIDGE_STATUS_OK\",\n message: `${instanceId} bridge: n/a (${inst.bridgeMode} mode)`,\n warnings: [],\n data: {\n status: \"n/a\",\n lifecycle: {\n presence: \"stopped\",\n status: \"stopped\",\n summary: \"stopped\",\n lastTransitionAt: null,\n lastTransitionReason: null,\n restartCount: 0,\n },\n session: null,\n bridgeMode: inst.bridgeMode,\n pid: null,\n port: inst.port,\n lastHeartbeat: null,\n threadId: null,\n threadCwd: null,\n savedThreadId: null,\n savedThreadCwd: null,\n appServer: null,\n },\n };\n }\n\n const { config: resolvedCfg2 } = resolveConfig({}, repoRoot);\n const stateDir = resolvedCfg2.stateDir;\n const rawStatus = getBridgeStatus(stateDir, instanceId);\n const bridgeState = loadBridgeState(stateDir, instanceId) ?? inst.bridge;\n const liveDispatch =\n rawStatus === \"running\"\n ? null\n : loadLiveDispatchEvidence(state.commsDir, instanceId);\n const surfaceBridgeState = liveDispatch ? null : bridgeState;\n const runtimeHeartbeat = loadRuntimeBridgeHeartbeat(surfaceBridgeState);\n const savedThread = loadRuntimeBridgeThreadState(surfaceBridgeState);\n const age = liveDispatch ? null : getHeartbeatAge(stateDir, instanceId);\n const heartbeat = liveDispatch\n ? null\n : getBridgeHeartbeatTimestamp(stateDir, instanceId);\n const status = liveDispatch ? \"dispatch-live\" : rawStatus;\n const lifecycle = liveDispatch\n ? deriveBridgeLifecycleState({ bridgeStatus: \"stopped\" })\n : deriveBridgeLifecycleState({\n bridgeStatus: rawStatus,\n bridgeState,\n runtimeHeartbeat,\n savedThread,\n persistedLifecycle: inst.bridgeLifecycle ?? bridgeState?.lifecycle ?? null,\n });\n const session = deriveCodexSessionState({\n runtimeHeartbeat,\n runtimeStateDir: surfaceBridgeState?.runtimeStateDir ?? null,\n });\n\n log(`Status: ${status}`);\n log(`Lifecycle: ${lifecycle.summary}`);\n log(`Session: ${session.summary}`);\n\n if (rawStatus === \"stale\" && inst.bridge) {\n state.instances[instanceId] = {\n ...inst,\n bridge: null,\n bridgeLifecycle: transitionBridgeLifecycle(\n inst.bridgeLifecycle ?? inst.bridge?.lifecycle ?? null,\n \"crashed\",\n \"bridge pid not alive\",\n ),\n };\n saveState(repoRoot, state);\n }\n\n if (surfaceBridgeState) {\n log(`PID: ${surfaceBridgeState.pid}`);\n log(\n `Heartbeat: ${heartbeat ?? \"-\"}${age !== null ? ` (${formatAge(age)})` : \"\"}`,\n );\n if (runtimeHeartbeat?.threadId) {\n log(\n `Thread: ${formatThreadSummary(runtimeHeartbeat.threadId, runtimeHeartbeat.threadCwd)}`,\n );\n }\n if (\n savedThread?.threadId &&\n (savedThread.threadId !== runtimeHeartbeat?.threadId ||\n !sameOptionalPath(savedThread.cwd, runtimeHeartbeat?.threadCwd))\n ) {\n log(\n `Saved: ${formatThreadSummary(savedThread.threadId, savedThread.cwd)}`,\n );\n }\n log(\n `Log: ${path.join(stateDir, \"logs\", `bridge-${instanceId}.log`)}`,\n );\n if (surfaceBridgeState.appServer) {\n log(`App server: ${surfaceBridgeState.appServer.url}`);\n log(`Server PID: ${surfaceBridgeState.appServer.pid ?? \"-\"}`);\n log(\n `Server mode: ${surfaceBridgeState.appServer.managed ? \"managed\" : \"external\"}`,\n );\n log(\n `Health: ${surfaceBridgeState.appServer.healthy ? \"healthy\" : \"unhealthy\"}`,\n );\n log(`Checked: ${surfaceBridgeState.appServer.lastCheckedAt}`);\n if (surfaceBridgeState.appServer.logPath) {\n log(`Server log: ${surfaceBridgeState.appServer.logPath}`);\n }\n if (surfaceBridgeState.appServer.auth) {\n log(`Auth: ${surfaceBridgeState.appServer.auth.mode}`);\n log(\n `Protected: ${redactProtectedUrl(surfaceBridgeState.appServer.auth.protectedUrl)}`,\n );\n log(`Upstream: ${surfaceBridgeState.appServer.auth.upstreamUrl}`);\n log(`TUI connect: ${surfaceBridgeState.appServer.auth.upstreamUrl}`);\n log(`Gateway PID: ${surfaceBridgeState.appServer.auth.gatewayPid ?? \"-\"}`);\n if (surfaceBridgeState.appServer.auth.gatewayLogPath) {\n log(`Gateway log: ${surfaceBridgeState.appServer.auth.gatewayLogPath}`);\n }\n } else if (surfaceBridgeState.appServer.managed) {\n log(`Auth: none (--no-auth)`);\n log(`TUI connect: ${surfaceBridgeState.appServer.url}`);\n }\n }\n }\n const transition = formatLifecycleTransition(lifecycle);\n if (transition) {\n log(`Transition: ${transition}`);\n }\n if (liveDispatch) {\n log(\n `Drift: fresh bridge-dispatch heartbeat from PID ${liveDispatch.bridgePid} without bridge pid state`,\n );\n }\n\n log(\"\");\n\n return {\n ok: true,\n command: \"bridge\",\n instanceId,\n runtime: inst.runtime,\n code: \"TAP_BRIDGE_STATUS_OK\",\n message: `${instanceId} bridge: ${status}`,\n warnings: [],\n data: {\n status,\n lifecycle: {\n presence: lifecycle.presence,\n status: lifecycle.status,\n summary: lifecycle.summary,\n lastTransitionAt: lifecycle.lastTransitionAt,\n lastTransitionReason: lifecycle.lastTransitionReason,\n restartCount: lifecycle.restartCount,\n },\n session: {\n status: session.status,\n turnState: session.turnState,\n summary: session.summary,\n activeTurnId: session.activeTurnId,\n idleSince: session.idleSince,\n lastTurnAt: session.lastTurnAt,\n lastDispatchAt: session.lastDispatchAt,\n },\n bridgeMode: inst.bridgeMode,\n pid: surfaceBridgeState?.pid ?? null,\n port: inst.port,\n lastHeartbeat: heartbeat,\n threadId: runtimeHeartbeat?.threadId ?? null,\n threadCwd: runtimeHeartbeat?.threadCwd ?? null,\n savedThreadId: savedThread?.threadId ?? null,\n savedThreadCwd: savedThread?.cwd ?? null,\n appServer: surfaceBridgeState?.appServer ?? null,\n },\n };\n}\n","import { loadState } from \"../state.js\";\nimport {\n getBridgeStatus,\n getBridgeRuntimeStateDir,\n loadBridgeState,\n loadRuntimeBridgeHeartbeat,\n loadRuntimeBridgeThreadState,\n} from \"../engine/bridge.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { findRepoRoot, resolveInstanceId, log, logHeader } from \"../utils.js\";\nimport type { CommandResult } from \"../types.js\";\nimport {\n resolveTuiConnectUrl,\n resolveTuiAttachCwd,\n formatCodexTuiAttachCommand,\n redactProtectedUrl,\n} from \"./bridge-helpers.js\";\n\nexport function bridgeTuiOne(identifier: string): CommandResult {\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const resolved = resolveInstanceId(identifier, state);\n if (!resolved.ok) {\n return {\n ok: false,\n command: \"bridge\",\n code: resolved.code,\n message: resolved.message,\n warnings: [],\n data: {},\n };\n }\n\n const instanceId = resolved.instanceId;\n const inst = state.instances[instanceId];\n\n if (!inst?.installed) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n code: \"TAP_INSTANCE_NOT_FOUND\",\n message: `${instanceId} is not installed.`,\n warnings: [],\n data: {},\n };\n }\n\n if (inst.runtime !== \"codex\" || inst.bridgeMode !== \"app-server\") {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: inst.runtime,\n code: \"TAP_INVALID_ARGUMENT\",\n message: `${instanceId} does not support Codex TUI attach. Use a Codex app-server bridge instance.`,\n warnings: [],\n data: {},\n };\n }\n\n const { config: resolvedConfig } = resolveConfig({}, repoRoot);\n const stateDir = resolvedConfig.stateDir;\n const status = getBridgeStatus(stateDir, instanceId);\n if (status !== \"running\") {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: inst.runtime,\n code: \"TAP_BRIDGE_NOT_RUNNING\",\n message: `${instanceId} bridge is ${status}. Start it first with: npx @hua-labs/tap bridge start ${instanceId}`,\n warnings: [],\n data: { status },\n };\n }\n\n const bridgeState = loadBridgeState(stateDir, instanceId);\n const appServer = bridgeState?.appServer;\n const runtimeHeartbeat = loadRuntimeBridgeHeartbeat(bridgeState);\n const savedThread = loadRuntimeBridgeThreadState(bridgeState);\n if (!appServer) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: inst.runtime,\n code: \"TAP_BRIDGE_NOT_RUNNING\",\n message: `${instanceId} app-server state is missing. Restart the bridge first.`,\n warnings: [],\n data: { status },\n };\n }\n\n const tuiConnectUrl = resolveTuiConnectUrl(appServer);\n const attachCwd = resolveTuiAttachCwd(\n repoRoot,\n state.repoRoot,\n runtimeHeartbeat?.threadCwd,\n savedThread?.cwd,\n );\n const attachEnv: Record<string, string> = {\n TAP_BRIDGE_INSTANCE_ID: instanceId,\n TAP_AGENT_ID: instanceId,\n TAP_COMMS_DIR: resolvedConfig.commsDir,\n TAP_STATE_DIR: stateDir,\n TAP_RUNTIME_STATE_DIR:\n bridgeState?.runtimeStateDir ??\n getBridgeRuntimeStateDir(repoRoot, instanceId),\n TAP_REPO_ROOT: repoRoot,\n };\n if (typeof inst.agentName === \"string\" && inst.agentName.trim()) {\n attachEnv.TAP_AGENT_NAME = inst.agentName;\n attachEnv.CODEX_TAP_AGENT_NAME = inst.agentName;\n }\n const attachCommand = formatCodexTuiAttachCommand(\n tuiConnectUrl,\n attachCwd,\n attachEnv,\n );\n const warnings =\n appServer.auth != null\n ? [\n \"Use the upstream TUI URL, not the protected gateway URL. The protected URL is bridge-only.\",\n ]\n : [];\n\n logHeader(`@hua-labs/tap bridge tui ${instanceId}`);\n if (appServer.auth) {\n log(`Protected: ${redactProtectedUrl(appServer.auth.protectedUrl)}`);\n log(`Upstream: ${appServer.auth.upstreamUrl}`);\n }\n log(`Using: ${tuiConnectUrl}`);\n log(`Attach: ${attachCommand}`);\n log(\"\");\n\n return {\n ok: true,\n command: \"bridge\",\n instanceId,\n runtime: inst.runtime,\n code: \"TAP_BRIDGE_STATUS_OK\",\n message: `${instanceId} TUI attach command ready`,\n warnings,\n data: {\n status,\n tuiConnectUrl,\n attachCwd,\n attachCommand,\n attachEnv,\n appServer,\n },\n };\n}\n","import { loadState, saveState, updateInstanceState } from \"../state.js\";\nimport {\n restartBridge,\n inferRestartMode,\n loadBridgeState,\n} from \"../engine/bridge.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { getAdapter } from \"../adapters/index.js\";\nimport {\n findRepoRoot,\n createAdapterContext,\n resolveInstanceId,\n parseIntFlag,\n log,\n logSuccess,\n logError,\n logHeader,\n} from \"../utils.js\";\nimport type { CommandResult, BridgeState } from \"../types.js\";\nimport { resolveRecoveredAgentName } from \"./bridge-helpers.js\";\n\n// ─── Subcommand: restart ───────────────────────────────────────\n\nexport async function bridgeRestart(\n identifier: string,\n flags: Record<string, string | boolean>,\n explicitAgentName?: string,\n): Promise<CommandResult> {\n const repoRoot = findRepoRoot();\n const state = loadState(repoRoot);\n if (!state) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_NOT_INITIALIZED\",\n message: \"Not initialized. Run: npx @hua-labs/tap init\",\n warnings: [],\n data: {},\n };\n }\n\n const resolved = resolveInstanceId(identifier, state);\n if (!resolved.ok) {\n return {\n ok: false,\n command: \"bridge\",\n code: resolved.code,\n message: resolved.message,\n warnings: [],\n data: {},\n };\n }\n\n const instanceId = resolved.instanceId;\n const inst = state.instances[instanceId];\n if (!inst) {\n return {\n ok: false,\n command: \"bridge\",\n code: \"TAP_INSTANCE_NOT_FOUND\",\n message: `Instance not found: ${instanceId}`,\n warnings: [],\n data: {},\n };\n }\n\n const adapter = getAdapter(inst.runtime);\n const ctx = {\n ...createAdapterContext(state.commsDir, repoRoot),\n instanceId,\n };\n const bridgeScript = adapter.resolveBridgeScript?.(ctx);\n\n if (!bridgeScript) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n code: \"TAP_BRIDGE_SCRIPT_MISSING\",\n message: `Bridge script not found for ${instanceId}`,\n warnings: [],\n data: {},\n };\n }\n\n const { config: resolvedConfig } = resolveConfig({}, repoRoot);\n const drainStr =\n typeof flags[\"drain-timeout\"] === \"string\"\n ? flags[\"drain-timeout\"]\n : undefined;\n let drainTimeout: number;\n try {\n drainTimeout = parseIntFlag(drainStr, \"--drain-timeout\", 1, 300) ?? 30;\n } catch (err) {\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n runtime: inst.runtime,\n code: \"TAP_INVALID_ARGUMENT\",\n message: err instanceof Error ? err.message : String(err),\n warnings: [],\n data: {},\n };\n }\n\n logHeader(`@hua-labs/tap bridge restart ${instanceId}`);\n log(`Drain timeout: ${drainTimeout}s`);\n\n try {\n const resolvedAgentName = resolveRecoveredAgentName(\n instanceId,\n explicitAgentName,\n repoRoot,\n ctx.stateDir,\n );\n\n // Use production helper for mode inference (tested in identity-restart.test.ts)\n // Priority: flags > saved instance mode > bridge state inference\n const currentBridgeState = loadBridgeState(ctx.stateDir, instanceId);\n const { manageAppServer, noAuth } = inferRestartMode(\n currentBridgeState,\n {\n noServer: flags[\"no-server\"] === true ? true : undefined,\n noAuth: flags[\"no-auth\"] === true ? true : undefined,\n },\n {\n manageAppServer: inst.manageAppServer,\n noAuth: inst.noAuth,\n },\n );\n\n const previousColdStartWarmup = process.env.TAP_COLD_START_WARMUP;\n process.env.TAP_COLD_START_WARMUP = \"true\";\n let bridge: BridgeState;\n try {\n bridge = await restartBridge({\n instanceId,\n runtime: inst.runtime,\n stateDir: ctx.stateDir,\n commsDir: ctx.commsDir,\n bridgeScript,\n platform: ctx.platform,\n agentName: resolvedAgentName,\n runtimeCommand: resolvedConfig.runtimeCommand,\n appServerUrl: resolvedConfig.appServerUrl,\n repoRoot,\n port: inst.port ?? undefined,\n headless: inst.headless,\n drainTimeoutSeconds: drainTimeout,\n manageAppServer,\n noAuth,\n previousLifecycle:\n inst.bridgeLifecycle ?? inst.bridge?.lifecycle ?? null,\n });\n } finally {\n if (previousColdStartWarmup === undefined) {\n delete process.env.TAP_COLD_START_WARMUP;\n } else {\n process.env.TAP_COLD_START_WARMUP = previousColdStartWarmup;\n }\n }\n\n logSuccess(`Bridge restarted (PID: ${bridge.pid})`);\n\n // Save bridge mode for next restart (#799 follow-up)\n const updated = {\n ...inst,\n agentName: resolvedAgentName ?? inst.agentName ?? null,\n bridge,\n bridgeLifecycle: bridge.lifecycle ?? inst.bridgeLifecycle ?? null,\n manageAppServer,\n noAuth,\n };\n const newState = updateInstanceState(state, instanceId, updated);\n saveState(repoRoot, newState);\n\n return {\n ok: true,\n command: \"bridge\",\n instanceId,\n code: \"TAP_BRIDGE_START_OK\",\n message: `Bridge for ${instanceId} restarted (PID: ${bridge.pid})`,\n warnings: [],\n data: { pid: bridge.pid },\n };\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n logError(msg);\n return {\n ok: false,\n command: \"bridge\",\n instanceId,\n code: \"TAP_BRIDGE_START_FAILED\",\n message: msg,\n warnings: [],\n data: {},\n };\n }\n}\n","/**\n * Dashboard data collection engine.\n * Aggregates: agents (comms presence), bridges (state + PID), PRs (gh CLI).\n *\n * Ref: tap public repo tap-ops-dashboard.ps1 (single-agent view)\n * M74 extends to control-tower view (all agents, all bridges, all PRs).\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { execSync } from \"node:child_process\";\nimport { resolveConfig } from \"../config/index.js\";\nimport {\n loadBridgeState,\n getBridgeStatus,\n getHeartbeatAge,\n isProcessAlive,\n loadRuntimeBridgeHeartbeat,\n resolveBridgeLifecycleSnapshot,\n deriveCodexSessionState,\n} from \"./bridge.js\";\nimport type { InstanceId } from \"../types.js\";\nimport { loadState } from \"../state.js\";\nimport type {\n BridgeLifecycleSnapshot,\n CodexSessionSnapshot,\n} from \"./bridge.js\";\n\n// ─── Types ─────────────────────────────────────────────────────\n\nexport interface AgentInfo {\n name: string;\n instanceId: string | null;\n presence: \"bridge-live\" | \"bridge-stale\" | \"mcp-only\";\n lifecycle: BridgeLifecycleSnapshot[\"status\"] | null;\n status: string | null;\n lastActivity: string | null;\n joinedAt: string | null;\n idleSeconds: number | null;\n}\n\nexport interface BridgeInfo {\n instanceId: string;\n runtime: string;\n status: \"running\" | \"stopped\" | \"stale\";\n lifecycle: BridgeLifecycleSnapshot | null;\n session: CodexSessionSnapshot | null;\n pid: number | null;\n port: number | null;\n heartbeatAge: number | null;\n headless: boolean;\n}\n\nexport interface PRInfo {\n number: number;\n title: string;\n author: string;\n state: string;\n url: string;\n}\n\nexport interface DashboardWarning {\n level: \"warn\" | \"error\";\n message: string;\n}\n\nexport interface DashboardSnapshot {\n generatedAt: string;\n repoRoot: string;\n commsDir: string;\n agents: AgentInfo[];\n bridges: BridgeInfo[];\n prs: PRInfo[];\n warnings: DashboardWarning[];\n}\n\n// ─── Agent collection ──────────────────────────────────────────\n\nfunction formatAgentLabel(\n agentIdOrName: string,\n displayName?: string | null,\n): string {\n const normalizedId = agentIdOrName.trim();\n const normalizedName = displayName?.trim();\n\n if (!normalizedId) {\n return normalizedName ?? agentIdOrName;\n }\n\n if (!normalizedName || normalizedName === normalizedId) {\n return normalizedId;\n }\n\n return `${normalizedName} [${normalizedId}]`;\n}\n\nfunction parseIsoAgeSeconds(value: string | null | undefined): number | null {\n if (!value) return null;\n const timestamp = new Date(value).getTime();\n if (Number.isNaN(timestamp)) return null;\n return Math.max(0, Math.floor((Date.now() - timestamp) / 1000));\n}\n\nfunction resolveHeartbeatInstanceId(\n heartbeatId: string,\n displayName: string | null,\n state: ReturnType<typeof loadState>,\n): string | null {\n if (!state) return null;\n if (state.instances[heartbeatId]?.installed) return heartbeatId;\n\n const hyphenated = heartbeatId.replace(/_/g, \"-\");\n if (state.instances[hyphenated]?.installed) return hyphenated;\n\n const underscored = heartbeatId.replace(/-/g, \"_\");\n if (state.instances[underscored]?.installed) return underscored;\n\n if (!displayName) return null;\n const matches = Object.values(state.instances).filter(\n (inst) => inst?.installed && inst.agentName === displayName,\n );\n return matches.length === 1 ? matches[0].instanceId : null;\n}\n\nfunction collectAgents(\n commsDir: string,\n state: ReturnType<typeof loadState>,\n bridges: BridgeInfo[],\n): AgentInfo[] {\n // Read heartbeats.json (written by tap-comms MCP server)\n const heartbeatsPath = path.join(commsDir, \"heartbeats.json\");\n if (!fs.existsSync(heartbeatsPath)) return [];\n\n try {\n const raw = fs.readFileSync(heartbeatsPath, \"utf-8\");\n const data = JSON.parse(raw) as Record<\n string,\n {\n agent?: string;\n timestamp?: string;\n lastActivity?: string;\n status?: string;\n joinedAt?: string;\n }\n >;\n\n return Object.entries(data).map(([agentId, info]) => {\n const instanceId = resolveHeartbeatInstanceId(\n agentId,\n info.agent ?? null,\n state,\n );\n const bridge = instanceId\n ? (bridges.find((candidate) => candidate.instanceId === instanceId) ??\n null)\n : null;\n const presence =\n bridge?.status === \"stale\" ||\n bridge?.lifecycle?.status === \"bridge-stale\"\n ? \"bridge-stale\"\n : bridge?.status === \"running\"\n ? \"bridge-live\"\n : \"mcp-only\";\n const lastActivity = info.lastActivity ?? info.timestamp ?? null;\n const idleBasis = bridge?.session?.idleSince ?? lastActivity;\n\n return {\n name: formatAgentLabel(agentId, info.agent ?? null),\n instanceId,\n presence,\n lifecycle: bridge?.lifecycle?.status ?? null,\n status: info.status ?? null,\n lastActivity,\n joinedAt: info.joinedAt ?? null,\n idleSeconds: parseIsoAgeSeconds(idleBasis),\n };\n });\n } catch {\n return [];\n }\n}\n\n// ─── Bridge collection ─────────────────────────────────────────\n\nfunction collectBridges(repoRoot: string): BridgeInfo[] {\n const state = loadState(repoRoot);\n const { config } = resolveConfig({}, repoRoot);\n const stateDir = config.stateDir;\n const bridges: BridgeInfo[] = [];\n\n // Collect from state.json instances (if initialized)\n if (state) {\n for (const [id, inst] of Object.entries(state.instances)) {\n if (!inst?.installed) continue;\n if (inst.bridgeMode !== \"app-server\") continue;\n\n const instanceId = id as InstanceId;\n const status = getBridgeStatus(stateDir, instanceId);\n const persistedBridgeState = loadBridgeState(stateDir, instanceId);\n const bridgeState = persistedBridgeState ?? inst.bridge ?? null;\n const age = getHeartbeatAge(stateDir, instanceId);\n const runtimeHeartbeat = loadRuntimeBridgeHeartbeat(bridgeState);\n const lifecycle =\n bridgeState != null\n ? resolveBridgeLifecycleSnapshot(stateDir, instanceId, bridgeState)\n : null;\n const session =\n bridgeState != null\n ? deriveCodexSessionState({\n runtimeHeartbeat,\n runtimeStateDir: bridgeState.runtimeStateDir ?? null,\n })\n : null;\n\n bridges.push({\n instanceId: id,\n runtime: inst.runtime,\n status,\n lifecycle,\n session,\n pid: bridgeState?.pid ?? null,\n port: inst.port ?? null,\n heartbeatAge: age,\n headless: inst.headless?.enabled ?? false,\n });\n }\n }\n\n // Also scan .tmp/ for daemon state dirs (catches externally-launched bridges)\n const tmpDir = path.join(repoRoot, \".tmp\");\n if (fs.existsSync(tmpDir)) {\n try {\n const dirs = fs\n .readdirSync(tmpDir)\n .filter((d) => d.startsWith(\"codex-app-server-bridge\"));\n\n for (const dir of dirs) {\n const daemonPath = path.join(tmpDir, dir, \"bridge-daemon.json\");\n if (!fs.existsSync(daemonPath)) continue;\n\n try {\n const raw = fs.readFileSync(daemonPath, \"utf-8\");\n const daemon = JSON.parse(raw) as {\n pid?: number;\n startedAt?: string;\n appServerUrl?: string;\n };\n\n // Skip if already covered by state.json instances\n const alreadyCovered = bridges.some(\n (b) => b.pid === daemon.pid && b.pid !== null,\n );\n if (alreadyCovered) continue;\n\n const agentFile = path.join(tmpDir, dir, \"agent-name.txt\");\n const agentName = fs.existsSync(agentFile)\n ? fs.readFileSync(agentFile, \"utf-8\").trim()\n : dir;\n\n const running = daemon.pid ? isProcessAlive(daemon.pid) : false;\n const portMatch = daemon.appServerUrl?.match(/:(\\d+)/);\n const port = portMatch ? parseInt(portMatch[1], 10) : null;\n\n bridges.push({\n instanceId: agentName,\n runtime: \"codex\",\n status: running ? \"running\" : \"stale\",\n lifecycle: null,\n session: null,\n pid: daemon.pid ?? null,\n port,\n heartbeatAge: null,\n headless: false,\n });\n } catch {\n // Skip corrupted daemon files\n }\n }\n } catch {\n // .tmp/ read failed\n }\n }\n\n return bridges;\n}\n\n// ─── PR collection ─────────────────────────────────────────────\n\nfunction collectPRs(): PRInfo[] {\n try {\n const output = execSync(\n \"gh pr list --state all --limit 10 --json number,title,author,state,url\",\n { encoding: \"utf-8\", timeout: 10000, stdio: [\"pipe\", \"pipe\", \"pipe\"] },\n );\n\n const prs = JSON.parse(output) as Array<{\n number: number;\n title: string;\n author: { login: string };\n state: string;\n url: string;\n }>;\n\n return prs.map((pr) => ({\n number: pr.number,\n title: pr.title,\n author: pr.author.login,\n state: pr.state,\n url: pr.url,\n }));\n } catch {\n return [];\n }\n}\n\n// ─── Warnings ──────────────────────────────────────────────────\n\nfunction collectWarnings(\n bridges: BridgeInfo[],\n agents: AgentInfo[],\n): DashboardWarning[] {\n const warnings: DashboardWarning[] = [];\n\n for (const bridge of bridges) {\n if (bridge.status === \"stale\") {\n warnings.push({\n level: \"warn\",\n message: `Bridge ${bridge.instanceId} is stale (PID ${bridge.pid} dead)`,\n });\n }\n if (\n bridge.status === \"running\" &&\n bridge.heartbeatAge !== null &&\n bridge.heartbeatAge > 60\n ) {\n warnings.push({\n level: \"warn\",\n message: `Bridge ${bridge.instanceId} heartbeat stale (${bridge.heartbeatAge}s ago)`,\n });\n }\n if (bridge.lifecycle?.status === \"degraded-no-thread\") {\n warnings.push({\n level: \"warn\",\n message: `Bridge ${bridge.instanceId} is degraded (no active thread)`,\n });\n }\n }\n\n if (bridges.length === 0) {\n warnings.push({\n level: \"warn\",\n message: \"No bridges configured\",\n });\n }\n\n if (agents.length === 0) {\n warnings.push({\n level: \"warn\",\n message: \"No agent heartbeats found\",\n });\n }\n\n return warnings;\n}\n\n// ─── Snapshot ──────────────────────────────────────────────────\n\nexport function collectDashboardSnapshot(\n repoRoot?: string,\n commsDirOverride?: string,\n): DashboardSnapshot {\n const { config } = resolveConfig(\n commsDirOverride ? { commsDir: commsDirOverride } : {},\n repoRoot,\n );\n const resolved = config;\n\n const state = loadState(resolved.repoRoot);\n const bridges = collectBridges(resolved.repoRoot);\n const agents = collectAgents(resolved.commsDir, state, bridges);\n const prs = collectPRs();\n const warnings = collectWarnings(bridges, agents);\n\n return {\n generatedAt: new Date().toISOString(),\n repoRoot: resolved.repoRoot,\n commsDir: resolved.commsDir,\n agents,\n bridges,\n prs,\n warnings,\n };\n}\n","import { bridgeCommand } from \"./bridge.js\";\nimport {\n collectDashboardSnapshot,\n type DashboardSnapshot,\n} from \"../engine/dashboard.js\";\nimport { findRepoRoot, log } from \"../utils.js\";\nimport type { CommandResult } from \"../types.js\";\n\nconst UP_HELP = `\nUsage:\n tap up [bridge-start options]\n\nDescription:\n Start all registered app-server bridge daemons with one command.\n This is the orchestration entrypoint for headless/background TAP operation.\n tap up auto-prunes stale heartbeat entries before bridge startup.\n\nExamples:\n npx @hua-labs/tap up\n npx @hua-labs/tap up --no-auth\n npx @hua-labs/tap up --busy-mode wait\n`.trim();\n\ntype UpResultData = Record<string, unknown> & {\n snapshot: DashboardSnapshot;\n};\n\nfunction summarizeLifecycle(snapshot: DashboardSnapshot): string {\n const ready = snapshot.bridges.filter(\n (bridge) => bridge.lifecycle?.status === \"ready\",\n ).length;\n const initializing = snapshot.bridges.filter(\n (bridge) => bridge.lifecycle?.status === \"initializing\",\n ).length;\n const degraded = snapshot.bridges.filter(\n (bridge) => bridge.lifecycle?.status === \"degraded-no-thread\",\n ).length;\n\n return `${ready} ready, ${initializing} initializing, ${degraded} degraded`;\n}\n\nexport async function upCommand(args: string[]): Promise<CommandResult> {\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n log(UP_HELP);\n return {\n ok: true,\n command: \"up\",\n code: \"TAP_NO_OP\",\n message: UP_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n const previousColdStartWarmup = process.env.TAP_COLD_START_WARMUP;\n process.env.TAP_COLD_START_WARMUP = \"true\";\n let result: CommandResult;\n try {\n result = await bridgeCommand([\n \"start\",\n \"--all\",\n \"--auto-prune-heartbeats\",\n ...args,\n ]);\n } finally {\n if (previousColdStartWarmup === undefined) {\n delete process.env.TAP_COLD_START_WARMUP;\n } else {\n process.env.TAP_COLD_START_WARMUP = previousColdStartWarmup;\n }\n }\n const snapshot = collectDashboardSnapshot(repoRoot);\n const activeBridges = snapshot.bridges.filter(\n (bridge) => bridge.status === \"running\",\n ).length;\n\n if (!result.ok) {\n return {\n ...result,\n command: \"up\",\n data: {\n ...(result.data as Record<string, unknown>),\n snapshot,\n } satisfies UpResultData,\n };\n }\n\n return {\n ok: true,\n command: \"up\",\n code: \"TAP_UP_OK\",\n message: `tap up: ${activeBridges} bridge(s) running (${summarizeLifecycle(snapshot)})`,\n warnings: result.warnings,\n data: {\n ...(result.data as Record<string, unknown>),\n snapshot,\n } satisfies UpResultData,\n };\n}\n","import { bridgeCommand } from \"./bridge.js\";\nimport {\n collectDashboardSnapshot,\n type DashboardSnapshot,\n} from \"../engine/dashboard.js\";\nimport { findRepoRoot, log } from \"../utils.js\";\nimport type { CommandResult } from \"../types.js\";\n\nconst DOWN_HELP = `\nUsage:\n tap down\n\nDescription:\n Stop all running bridge daemons and managed app-servers.\n\nExamples:\n npx @hua-labs/tap down\n`.trim();\n\ntype DownResultData = Record<string, unknown> & {\n snapshot: DashboardSnapshot;\n};\n\nexport async function downCommand(args: string[]): Promise<CommandResult> {\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n log(DOWN_HELP);\n return {\n ok: true,\n command: \"down\",\n code: \"TAP_NO_OP\",\n message: DOWN_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n const result = await bridgeCommand([\"stop\"]);\n const snapshot = collectDashboardSnapshot(repoRoot);\n\n if (!result.ok) {\n return {\n ...result,\n command: \"down\",\n data: {\n ...(result.data as Record<string, unknown>),\n snapshot,\n } satisfies DownResultData,\n };\n }\n\n return {\n ok: true,\n command: \"down\",\n code: \"TAP_DOWN_OK\",\n message: `tap down: ${snapshot.bridges.filter((bridge) => bridge.status === \"running\").length} bridge(s) still running`,\n warnings: result.warnings,\n data: {\n ...(result.data as Record<string, unknown>),\n snapshot,\n } satisfies DownResultData,\n };\n}\n","import * as path from \"node:path\";\nimport { spawn } from \"node:child_process\";\nimport { buildManagedMcpServerSpec } from \"../adapters/common.js\";\nimport { createAdapterContext, findRepoRoot, log } from \"../utils.js\";\nimport { normalizeTapPath } from \"../config/index.js\";\nimport { loadState } from \"../state.js\";\nimport type { CommandResult } from \"../types.js\";\n\nconst SERVE_HELP = `\nUsage:\n tap serve [options]\n\nDescription:\n Start the tap MCP server over stdio. This command takes over the\n process — it is intended to be launched by an MCP host (e.g. Claude Code).\n\nOptions:\n --comms-dir <path> Override comms directory (also reads TAP_COMMS_DIR env)\n --help, -h Show help\n\nExamples:\n npx @hua-labs/tap serve\n npx @hua-labs/tap serve --comms-dir /shared/comms\n`.trim();\n\n/**\n * serve is special: it takes over the process on success.\n * Only returns a CommandResult on error.\n */\nexport async function serveCommand(args: string[]): Promise<CommandResult> {\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n log(SERVE_HELP);\n return {\n ok: true,\n command: \"serve\",\n code: \"TAP_NO_OP\",\n message: SERVE_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n\n let commsDir: string | undefined;\n\n const commsDirIdx = args.indexOf(\"--comms-dir\");\n if (commsDirIdx !== -1 && args[commsDirIdx + 1]) {\n commsDir = path.resolve(normalizeTapPath(args[commsDirIdx + 1]));\n }\n\n if (!commsDir && process.env.TAP_COMMS_DIR) {\n commsDir = path.resolve(normalizeTapPath(process.env.TAP_COMMS_DIR));\n }\n\n if (!commsDir) {\n const state = loadState(repoRoot);\n if (state) {\n commsDir = state.commsDir;\n }\n }\n\n if (!commsDir) {\n return {\n ok: false,\n command: \"serve\",\n code: \"TAP_NOT_INITIALIZED\",\n message:\n \"Cannot determine comms directory. Set TAP_COMMS_DIR env var, use --comms-dir, or run 'init' first.\",\n warnings: [],\n data: {},\n };\n }\n\n const ctx = createAdapterContext(commsDir, repoRoot);\n const managed = buildManagedMcpServerSpec(ctx);\n if (!managed.command || !managed.sourcePath) {\n const fallbackMessage =\n managed.issues[0] ??\n \"tap-comms MCP server not found. Reinstall @hua-labs/tap or run from a repo with packages/tap-plugin/channels/.\";\n return {\n ok: false,\n command: \"serve\",\n code: managed.sourcePath\n ? \"TAP_SERVE_BUN_REQUIRED\"\n : \"TAP_SERVE_NO_SERVER\",\n message: fallbackMessage,\n warnings: [],\n data: {},\n };\n }\n\n // For serve, always use direct path (not npx launcher which would recurse)\n const serveCommand = managed.command === \"npx\" ? \"node\" : managed.command;\n const serveArgs =\n managed.command === \"npx\" && managed.sourcePath\n ? [managed.sourcePath]\n : managed.args;\n\n // Start MCP server\n const child = spawn(serveCommand, serveArgs, {\n stdio: \"inherit\",\n env: {\n ...process.env,\n TAP_COMMS_DIR: commsDir,\n },\n });\n\n return new Promise((resolve) => {\n child.on(\"error\", (err) => {\n resolve({\n ok: false,\n command: \"serve\",\n code: \"TAP_INTERNAL_ERROR\",\n message: `Failed to start MCP server: ${err.message}`,\n warnings: [],\n data: {},\n });\n });\n\n child.on(\"exit\", (code) => {\n resolve({\n ok: code === 0,\n command: \"serve\",\n code: code === 0 ? \"TAP_SERVE_OK\" : \"TAP_INTERNAL_ERROR\",\n message:\n code === 0\n ? \"MCP server stopped\"\n : `MCP server exited with code ${code}`,\n warnings: [],\n data: { exitCode: code },\n });\n });\n });\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { execSync } from \"node:child_process\";\nimport { resolveConfig } from \"../config/index.js\";\nimport {\n findRepoRoot,\n parseArgs,\n log,\n logSuccess,\n logWarn,\n logError,\n logHeader,\n} from \"../utils.js\";\nimport type { CommandResult } from \"../types.js\";\n\nconst INIT_WORKTREE_HELP = `\nUsage:\n tap init-worktree [options]\n\nOptions:\n --path <dir> Worktree directory (required, e.g. ../hua-wt-3)\n --branch <name> Branch name to create (default: derived from path)\n --base <ref> Base ref for new branch (default: origin/main)\n --mission <file> Mission file to associate (e.g. m74-feature.md)\n --comms-dir <path> Override comms directory\n --skip-install Skip pnpm install step\n --help, -h Show help\n\nExamples:\n npx @hua-labs/tap init-worktree --path ../hua-wt-3 --branch feat/my-feature\n npx @hua-labs/tap init-worktree --path ../hua-wt-4 --branch fix/bug --mission m74-fix.md\n`.trim();\n\ninterface WorktreeOptions {\n worktreePath: string;\n branch: string;\n base: string;\n mission?: string;\n commsDir: string;\n skipInstall: boolean;\n repoRoot: string;\n}\n\n// ─── Warning collector ─────────────────────────────────────────\n\nfunction warn(warnings: string[], message: string): void {\n logWarn(message);\n warnings.push(message);\n}\n\n// ─── Step helpers ──────────────────────────────────────────────\n\nfunction run(\n cmd: string,\n opts?: { cwd?: string; ignoreError?: boolean },\n): string {\n try {\n return execSync(cmd, {\n cwd: opts?.cwd,\n encoding: \"utf-8\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n timeout: 120_000,\n }).trim();\n } catch (err) {\n if (opts?.ignoreError) return \"\";\n throw err;\n }\n}\n\nfunction toAbsolute(p: string): string {\n const resolved = path.resolve(p);\n // Normalize to forward slashes for .mcp.json compatibility\n return resolved.replace(/\\\\/g, \"/\");\n}\n\nfunction probeBun(candidate: string): boolean {\n try {\n const out = execSync(`\"${candidate}\" --version`, {\n encoding: \"utf-8\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n timeout: 5000,\n }).trim();\n return /^\\d+\\.\\d+/.test(out);\n } catch {\n return false;\n }\n}\n\nfunction findBun(): string | null {\n const candidates =\n process.platform === \"win32\" ? [\"bun.exe\", \"bun\"] : [\"bun\"];\n\n for (const name of candidates) {\n try {\n const out = execSync(\n process.platform === \"win32\" ? `where ${name}` : `which ${name}`,\n { encoding: \"utf-8\", stdio: [\"pipe\", \"pipe\", \"pipe\"], timeout: 5000 },\n ).trim();\n // Validate each candidate with --version before accepting\n for (const line of out.split(/\\r?\\n/)) {\n const trimmed = line.trim();\n if (trimmed && probeBun(trimmed)) return trimmed;\n }\n } catch {\n // not found\n }\n }\n\n // Check common locations\n const home = process.env.HOME || process.env.USERPROFILE || \"\";\n const bunHome = path.join(\n home,\n \".bun\",\n \"bin\",\n process.platform === \"win32\" ? \"bun.exe\" : \"bun\",\n );\n if (fs.existsSync(bunHome) && probeBun(bunHome)) return bunHome;\n\n return null;\n}\n\n// ─── Step 1: Create worktree ───────────────────────────────────\n\nfunction step1CreateWorktree(opts: WorktreeOptions): boolean {\n log(\"Step 1/9: Creating worktree...\");\n\n if (fs.existsSync(opts.worktreePath)) {\n logWarn(`Directory already exists: ${opts.worktreePath}`);\n // Check if it's already a worktree\n try {\n run(\"git rev-parse --git-dir\", { cwd: opts.worktreePath });\n logWarn(\"Already a git worktree. Continuing...\");\n return true;\n } catch {\n logError(\"Directory exists but is not a git worktree.\");\n return false;\n }\n }\n\n try {\n // Try creating with new branch\n run(\n `git worktree add \"${opts.worktreePath}\" -b ${opts.branch} ${opts.base}`,\n { cwd: opts.repoRoot },\n );\n logSuccess(`Worktree created: ${opts.worktreePath}`);\n logSuccess(`Branch: ${opts.branch} (from ${opts.base})`);\n } catch {\n // Branch may already exist\n try {\n run(`git worktree add \"${opts.worktreePath}\" ${opts.branch}`, {\n cwd: opts.repoRoot,\n });\n logSuccess(`Worktree created with existing branch: ${opts.branch}`);\n } catch (err) {\n logError(\n `Failed to create worktree: ${err instanceof Error ? err.message : String(err)}`,\n );\n return false;\n }\n }\n return true;\n}\n\n// ─── Step 2: Merge origin/main ─────────────────────────────────\n\nfunction step2MergeMain(opts: WorktreeOptions, warnings: string[]): void {\n log(\"Step 2/9: Merging origin/main...\");\n\n try {\n run(\"git fetch origin main\", { cwd: opts.worktreePath });\n } catch {\n warn(warnings, \"Could not fetch origin/main. Skipping merge.\");\n return;\n }\n\n try {\n const behind = run(\"git rev-list --count HEAD..origin/main\", {\n cwd: opts.worktreePath,\n });\n if (behind === \"0\") {\n logSuccess(\"Already up to date with origin/main.\");\n return;\n }\n\n run(\"git merge origin/main --no-edit -X theirs\", {\n cwd: opts.worktreePath,\n });\n logSuccess(\"Merged origin/main.\");\n } catch {\n warn(\n warnings,\n \"Merge had issues. You may need to resolve conflicts manually.\",\n );\n }\n}\n\n// ─── Step 3: Copy permissions ──────────────────────────────────\n\nfunction step3CopyPermissions(opts: WorktreeOptions, warnings: string[]): void {\n log(\"Step 3/9: Copying permissions...\");\n\n const srcSettings = path.join(\n opts.repoRoot,\n \".claude\",\n \"settings.local.json\",\n );\n const destDir = path.join(opts.worktreePath, \".claude\");\n const destSettings = path.join(destDir, \"settings.local.json\");\n\n if (!fs.existsSync(srcSettings)) {\n warn(\n warnings,\n \"No .claude/settings.local.json found in main repo. Skipping.\",\n );\n return;\n }\n\n fs.mkdirSync(destDir, { recursive: true });\n fs.copyFileSync(srcSettings, destSettings);\n logSuccess(\"Copied settings.local.json\");\n\n try {\n run(\"git update-index --skip-worktree .claude/settings.local.json\", {\n cwd: opts.worktreePath,\n });\n logSuccess(\"Marked skip-worktree\");\n } catch {\n warn(warnings, \"Could not set skip-worktree. File may show as modified.\");\n }\n}\n\n// ─── Step 4: Generate .mcp.json ────────────────────────────────\n\nfunction step4GenerateMcpJson(opts: WorktreeOptions, warnings: string[]): void {\n log(\"Step 4/9: Generating .mcp.json...\");\n\n const bunPath = findBun();\n if (!bunPath) {\n warn(warnings, \"bun not found. .mcp.json not generated.\");\n warn(\n warnings,\n \"Install bun (https://bun.sh) and re-run, or create .mcp.json manually.\",\n );\n return;\n }\n\n const wtAbs = toAbsolute(opts.worktreePath);\n const bunAbs = toAbsolute(bunPath);\n const commsAbs = toAbsolute(opts.commsDir);\n\n // Find tap-comms channel entry point\n const channelEntry = path.join(\n wtAbs,\n \"packages/tap-plugin/channels/tap-comms.ts\",\n );\n\n const mcpConfig = {\n mcpServers: {\n tap: {\n command: bunAbs,\n args: [channelEntry],\n cwd: wtAbs,\n env: {\n TAP_COMMS_DIR: commsAbs,\n TAP_AGENT_NAME: \"unnamed\",\n },\n },\n },\n };\n\n const mcpPath = path.join(opts.worktreePath, \".mcp.json\");\n fs.writeFileSync(mcpPath, JSON.stringify(mcpConfig, null, 2) + \"\\n\", \"utf-8\");\n logSuccess(`.mcp.json generated (absolute paths + cwd)`);\n log(` bun: ${bunAbs}`);\n log(` comms: ${commsAbs}`);\n}\n\n// ─── Step 5: Install dependencies ──────────────────────────────\n\nfunction step5Install(opts: WorktreeOptions, warnings: string[]): void {\n if (opts.skipInstall) {\n log(\"Step 5/9: Skipping pnpm install (--skip-install).\");\n return;\n }\n\n log(\"Step 5/9: Installing dependencies...\");\n\n try {\n run(\"pnpm install --prefer-offline\", { cwd: opts.worktreePath });\n logSuccess(\"Dependencies installed.\");\n } catch {\n warn(\n warnings,\n \"pnpm install failed. Try running manually in the worktree.\",\n );\n }\n}\n\n// ─── Step 6: Build ESLint plugin ───────────────────────────────\n\nfunction step6BuildEslintPlugin(\n opts: WorktreeOptions,\n warnings: string[],\n): void {\n if (opts.skipInstall) {\n log(\"Step 6/9: Skipping eslint plugin build (--skip-install).\");\n return;\n }\n\n log(\"Step 6/9: Building eslint-plugin-i18n...\");\n\n try {\n run(\"pnpm build --filter @hua-labs/eslint-plugin-i18n\", {\n cwd: opts.worktreePath,\n });\n logSuccess(\"eslint-plugin-i18n built.\");\n } catch {\n warn(warnings, \"eslint-plugin-i18n build failed. Non-blocking.\");\n }\n}\n\n// ─── Step 7: Verify comms ──────────────────────────────────────\n\nfunction step7VerifyComms(opts: WorktreeOptions, warnings: string[]): void {\n log(\"Step 7/9: Verifying comms directory...\");\n\n if (!fs.existsSync(opts.commsDir)) {\n warn(warnings, `Comms directory not found: ${opts.commsDir}`);\n warn(warnings, \"Create it or run: npx @hua-labs/tap init\");\n return;\n }\n\n const requiredDirs = [\"inbox\", \"findings\", \"reviews\", \"letters\"];\n for (const dir of requiredDirs) {\n const dirPath = path.join(opts.commsDir, dir);\n if (!fs.existsSync(dirPath)) {\n fs.mkdirSync(dirPath, { recursive: true });\n logSuccess(`Created ${dir}/`);\n }\n }\n\n logSuccess(`Comms verified: ${opts.commsDir}`);\n}\n\n// ─── Step 8: Verify bun ────────────────────────────────────────\n\nfunction step8VerifyBun(warnings: string[]): void {\n log(\"Step 8/9: Verifying bun...\");\n\n const bunPath = findBun();\n if (!bunPath) {\n warn(warnings, \"bun not found in PATH.\");\n warn(warnings, \"Install: curl -fsSL https://bun.sh/install | bash\");\n return;\n }\n\n try {\n const version = run(`\"${bunPath}\" --version`);\n logSuccess(`bun ${version} found: ${bunPath}`);\n } catch {\n warn(warnings, \"bun found but version check failed.\");\n }\n}\n\n// ─── Step 9: Ready message ─────────────────────────────────────\n\nfunction step9Ready(opts: WorktreeOptions): void {\n logHeader(\"Ready!\");\n log(`Worktree: ${toAbsolute(opts.worktreePath)}`);\n log(`Branch: ${opts.branch}`);\n log(`Comms: ${toAbsolute(opts.commsDir)}`);\n if (opts.mission) log(`Mission: ${opts.mission}`);\n log(\"\");\n log(\"Next steps:\");\n log(` cd ${opts.worktreePath}`);\n log(\" claude # Start Claude Code session\");\n log(\"\");\n}\n\n// ─── Command entry ─────────────────────────────────────────────\n\nexport async function initWorktreeCommand(\n args: string[],\n): Promise<CommandResult> {\n const { flags } = parseArgs(args);\n\n if (flags[\"help\"] === true || flags[\"h\"] === true) {\n log(INIT_WORKTREE_HELP);\n return {\n ok: true,\n command: \"init-worktree\",\n code: \"TAP_NO_OP\",\n message: INIT_WORKTREE_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const worktreePath =\n typeof flags[\"path\"] === \"string\" ? flags[\"path\"] : undefined;\n if (!worktreePath) {\n return {\n ok: false,\n command: \"init-worktree\",\n code: \"TAP_INVALID_ARGUMENT\",\n message:\n \"Missing --path. Usage: npx @hua-labs/tap init-worktree --path ../hua-wt-3\",\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n const { config } = resolveConfig({}, repoRoot);\n\n const branch =\n typeof flags[\"branch\"] === \"string\"\n ? flags[\"branch\"]\n : path.basename(path.resolve(worktreePath));\n const base =\n typeof flags[\"base\"] === \"string\" ? flags[\"base\"] : \"origin/main\";\n const mission =\n typeof flags[\"mission\"] === \"string\" ? flags[\"mission\"] : undefined;\n const commsDir =\n typeof flags[\"comms-dir\"] === \"string\"\n ? flags[\"comms-dir\"]\n : config.commsDir;\n const skipInstall = flags[\"skip-install\"] === true;\n\n const opts: WorktreeOptions = {\n worktreePath: path.resolve(worktreePath),\n branch,\n base,\n mission,\n commsDir: path.resolve(commsDir),\n skipInstall,\n repoRoot,\n };\n\n logHeader(`@hua-labs/tap init-worktree`);\n log(`Path: ${opts.worktreePath}`);\n log(`Branch: ${opts.branch}`);\n log(`Base: ${opts.base}`);\n log(`Comms: ${opts.commsDir}`);\n if (mission) log(`Mission: ${mission}`);\n log(\"\");\n\n const warnings: string[] = [];\n\n // Execute steps\n const created = step1CreateWorktree(opts);\n if (!created) {\n return {\n ok: false,\n command: \"init-worktree\",\n code: \"TAP_PATCH_FAILED\",\n message: \"Failed to create worktree.\",\n warnings,\n data: {},\n };\n }\n\n step2MergeMain(opts, warnings);\n step3CopyPermissions(opts, warnings);\n step4GenerateMcpJson(opts, warnings);\n step5Install(opts, warnings);\n step6BuildEslintPlugin(opts, warnings);\n step7VerifyComms(opts, warnings);\n step8VerifyBun(warnings);\n step9Ready(opts);\n\n return {\n ok: true,\n command: \"init-worktree\" as never,\n code: \"TAP_INIT_OK\",\n message: `Worktree initialized: ${opts.worktreePath}`,\n warnings,\n data: {\n path: opts.worktreePath,\n branch: opts.branch,\n commsDir: opts.commsDir,\n },\n };\n}\n","import { collectDashboardSnapshot } from \"../engine/dashboard.js\";\nimport type { DashboardSnapshot } from \"../engine/dashboard.js\";\nimport { findRepoRoot, parseArgs, log, logHeader } from \"../utils.js\";\nimport type { CommandResult } from \"../types.js\";\n\n// ─── Formatting helpers ────────────────────────────────────────\n\nfunction formatAge(seconds: number | null): string {\n if (seconds === null) return \"-\";\n if (seconds < 60) return `${seconds}s ago`;\n if (seconds < 3600) return `${Math.floor(seconds / 60)}m ago`;\n return `${Math.floor(seconds / 3600)}h ${Math.floor((seconds % 3600) / 60)}m ago`;\n}\n\nfunction formatStatus(status: string): string {\n switch (status) {\n case \"running\":\n return \"running\";\n case \"stale\":\n return \"stale!\";\n case \"stopped\":\n return \"stopped\";\n case \"MERGED\":\n return \"merged\";\n case \"OPEN\":\n return \"open\";\n case \"CLOSED\":\n return \"closed\";\n default:\n return status;\n }\n}\n\nfunction truncate(str: string, len: number): string {\n return str.length > len ? str.slice(0, len - 1) + \"…\" : str;\n}\n\n// ─── Render ────────────────────────────────────────────────────\n\nfunction renderSnapshot(snapshot: DashboardSnapshot): void {\n logHeader(\"tap dashboard\");\n log(`Time: ${snapshot.generatedAt}`);\n log(`Repo: ${snapshot.repoRoot}`);\n log(`Comms: ${snapshot.commsDir}`);\n\n // ── Agents ──\n log(\"\");\n log(\"── Agents ──────────────────────────\");\n if (snapshot.agents.length === 0) {\n log(\" (no heartbeats)\");\n } else {\n log(\n ` ${\"Agent\".padEnd(18)} ${\"Presence\".padEnd(18)} ${\"Lifecycle\".padEnd(20)} ${\"Idle\"}`,\n );\n log(\n ` ${\"─\".repeat(18)} ${\"─\".repeat(18)} ${\"─\".repeat(20)} ${\"─\".repeat(12)}`,\n );\n for (const agent of snapshot.agents) {\n log(\n ` ${truncate(agent.name, 18).padEnd(18)} ${agent.presence.padEnd(18)} ${String(agent.lifecycle ?? \"-\").padEnd(20)} ${formatAge(agent.idleSeconds)}`,\n );\n }\n }\n\n // ── Bridges ──\n log(\"\");\n log(\"── Bridges ─────────────────────────\");\n if (snapshot.bridges.length === 0) {\n log(\" (none)\");\n } else {\n log(\n ` ${\"Instance\".padEnd(20)} ${\"Status\".padEnd(10)} ${\"Lifecycle\".padEnd(20)} ${\"PID\".padEnd(8)} ${\"Port\".padEnd(6)} ${\"Heartbeat\"}`,\n );\n log(\n ` ${\"─\".repeat(20)} ${\"─\".repeat(10)} ${\"─\".repeat(20)} ${\"─\".repeat(8)} ${\"─\".repeat(6)} ${\"─\".repeat(12)}`,\n );\n for (const b of snapshot.bridges) {\n const headlessTag = b.headless ? \" [H]\" : \"\";\n const lifecycle = b.lifecycle?.status ?? \"-\";\n log(\n ` ${truncate(b.instanceId + headlessTag, 20).padEnd(20)} ${formatStatus(b.status).padEnd(10)} ${truncate(lifecycle, 20).padEnd(20)} ${(b.pid ? String(b.pid) : \"-\").padEnd(8)} ${(b.port ? String(b.port) : \"-\").padEnd(6)} ${formatAge(b.heartbeatAge)}`,\n );\n }\n }\n\n // ── PRs ──\n log(\"\");\n log(\"── PRs ─────────────────────────────\");\n if (snapshot.prs.length === 0) {\n log(\" (gh CLI unavailable or no PRs)\");\n } else {\n for (const pr of snapshot.prs) {\n const icon =\n pr.state === \"MERGED\" ? \"+\" : pr.state === \"OPEN\" ? \"~\" : \"x\";\n log(\n ` ${icon} #${String(pr.number).padEnd(5)} ${formatStatus(pr.state).padEnd(8)} ${truncate(pr.title, 50)}`,\n );\n }\n }\n\n // ── Warnings ──\n log(\"\");\n log(\"── Warnings ────────────────────────\");\n if (snapshot.warnings.length === 0) {\n log(\" [OK] no warnings\");\n } else {\n for (const w of snapshot.warnings) {\n const prefix = w.level === \"error\" ? \"[ERR]\" : \"[WARN]\";\n log(` ${prefix} ${w.message}`);\n }\n }\n}\n\nconst DASHBOARD_HELP = `\nUsage:\n tap dashboard [options]\n\nDescription:\n Display a unified ops dashboard: agents, bridges, PRs, and warnings.\n\nOptions:\n --json Output snapshot as JSON\n --watch Refresh dashboard on an interval\n --interval <seconds> Refresh interval in seconds (default: 5, min: 2)\n --comms-dir <path> Override comms directory\n --help, -h Show help\n\nExamples:\n npx @hua-labs/tap dashboard\n npx @hua-labs/tap dashboard --watch --interval 10\n npx @hua-labs/tap dashboard --json\n`.trim();\n\n// ─── Command ───────────────────────────────────────────────────\n\nexport async function dashboardCommand(args: string[]): Promise<CommandResult> {\n const { flags } = parseArgs(args);\n\n if (flags[\"help\"] === true || flags[\"h\"] === true) {\n log(DASHBOARD_HELP);\n return {\n ok: true,\n command: \"dashboard\",\n code: \"TAP_NO_OP\",\n message: DASHBOARD_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const jsonMode = flags[\"json\"] === true;\n const watchMode = flags[\"watch\"] === true;\n const intervalStr =\n typeof flags[\"interval\"] === \"string\" ? flags[\"interval\"] : \"5\";\n const intervalSeconds = Math.max(2, parseInt(intervalStr, 10) || 5);\n const commsDirOverride =\n typeof flags[\"comms-dir\"] === \"string\" ? flags[\"comms-dir\"] : undefined;\n\n const repoRoot = findRepoRoot();\n\n if (watchMode) {\n // Watch loop — runs until Ctrl+C\n const run = (): void => {\n const snapshot = collectDashboardSnapshot(repoRoot, commsDirOverride);\n if (jsonMode) {\n console.log(JSON.stringify(snapshot, null, 2));\n } else {\n // Clear screen\n process.stdout.write(\"\\x1B[2J\\x1B[H\");\n renderSnapshot(snapshot);\n log(\"\");\n log(` Refreshing every ${intervalSeconds}s — Ctrl+C to exit`);\n }\n };\n\n run();\n const timer = setInterval(run, intervalSeconds * 1000);\n\n // Handle graceful shutdown\n const cleanup = (): void => {\n clearInterval(timer);\n process.exit(0);\n };\n process.on(\"SIGINT\", cleanup);\n process.on(\"SIGTERM\", cleanup);\n\n // Keep alive\n await new Promise(() => {});\n\n return {\n ok: true,\n command: \"unknown\",\n code: \"TAP_NO_OP\",\n message: \"Watch mode ended\",\n warnings: [],\n data: {},\n };\n }\n\n // Single run\n const snapshot = collectDashboardSnapshot(repoRoot, commsDirOverride);\n\n if (jsonMode) {\n console.log(JSON.stringify(snapshot, null, 2));\n } else {\n renderSnapshot(snapshot);\n }\n\n return {\n ok: true,\n command: \"dashboard\",\n code: \"TAP_STATUS_OK\",\n message: `Dashboard: ${snapshot.bridges.length} bridge(s), ${snapshot.agents.length} agent(s), ${snapshot.prs.length} PR(s)`,\n warnings: snapshot.warnings.map((w) => w.message),\n data: snapshot as unknown as Record<string, unknown>,\n };\n}\n","/**\n * `tap doctor` — Diagnose and optionally fix tap infrastructure health.\n *\n * Checks: comms directory, state file, instances, bridge health,\n * watcher readiness, MCP server, message lifecycle.\n *\n * M95: Diagnostic layer for tap.\n * M100: --fix auto-repair for common issues.\n */\nimport {\n existsSync,\n mkdirSync,\n readdirSync,\n readFileSync,\n renameSync,\n statSync,\n unlinkSync,\n writeFileSync,\n} from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { spawnSync } from \"node:child_process\";\nimport { dirname, join, resolve } from \"node:path\";\nimport {\n buildManagedMcpServerSpec,\n type ManagedMcpServerSpec,\n} from \"../adapters/common.js\";\nimport { loadState, saveState, getInstalledInstances } from \"../state.js\";\nimport {\n isBridgeRunning,\n getHeartbeatAge,\n loadBridgeState,\n loadRuntimeBridgeHeartbeat,\n loadRuntimeBridgeThreadState,\n} from \"../engine/bridge.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { checkAllDrift } from \"../config/drift-detector.js\";\nimport {\n createAdapterContext,\n findRepoRoot,\n log,\n logHeader,\n logSuccess,\n logWarn,\n} from \"../utils.js\";\nimport {\n extractTomlTable,\n parseTomlAssignments,\n removeTomlTable,\n renderTomlTable,\n replaceTomlTable,\n} from \"../toml.js\";\nimport { version } from \"../version.js\";\nimport type { CommandResult, TapState } from \"../types.js\";\n\n// ── Types ───────────────────────────────────────────────────────────────\n\ninterface Check {\n name: string;\n status: \"pass\" | \"warn\" | \"fail\" | \"skip\";\n message?: string;\n fix?: () => string; // Returns description of what was fixed\n}\n\ninterface DoctorHeartbeatRecord {\n id?: string;\n agent?: string;\n timestamp?: string;\n lastActivity?: string;\n status?: \"active\" | \"idle\" | \"signing-off\" | string;\n}\n\n// ── Helpers ─────────────────────────────────────────────────────────────\n\nconst PASS = \"pass\" as const;\nconst WARN = \"warn\" as const;\nconst FAIL = \"fail\" as const;\nconst HEARTBEAT_ACTIVE_WINDOW_MS = 10 * 60 * 1000;\nconst ORPHAN_HEARTBEAT_WINDOW_MS = 24 * 60 * 60 * 1000;\nconst SIGNING_OFF_HEARTBEAT_WINDOW_MS = 5 * 60 * 1000;\nconst CODEX_ENV_DRIFT_KEYS = [\n \"TAP_COMMS_DIR\",\n \"TAP_STATE_DIR\",\n \"TAP_REPO_ROOT\",\n] as const;\nconst CODEX_SESSION_NEUTRAL_NAME = \"<set-per-session>\";\n\nfunction normalizeComparablePath(value: string): string {\n return resolve(value).replace(/\\\\/g, \"/\").toLowerCase();\n}\n\nfunction samePath(left: string, right: string): boolean {\n return normalizeComparablePath(left) === normalizeComparablePath(right);\n}\n\nfunction looksLikePathToken(value: string): boolean {\n return (\n /^[A-Za-z]:[\\\\/]/.test(value) ||\n value.startsWith(\"/\") ||\n value.startsWith(\"\\\\\") ||\n value.startsWith(\".\") ||\n value.includes(\"/\") ||\n value.includes(\"\\\\\")\n );\n}\n\nfunction sameCommandToken(left: string, right: string): boolean {\n return looksLikePathToken(left) || looksLikePathToken(right)\n ? samePath(left, right)\n : left === right;\n}\n\nfunction sameStringArray(left: string[], right: string[]): boolean {\n return (\n left.length === right.length &&\n left.every((value, index) => sameCommandToken(value, right[index] ?? \"\"))\n );\n}\n\nfunction appendWarningMessage(message: string, extra: string): string {\n return message.includes(extra) ? message : `${message}; ${extra}`;\n}\n\nfunction findCodexConfigPath(): string {\n return join(homedir(), \".codex\", \"config.toml\");\n}\n\nfunction canonicalizeTrustPath(targetPath: string): string {\n let resolved = resolve(targetPath).replace(/\\//g, \"\\\\\");\n const driveRoot = /^[A-Za-z]:\\\\$/;\n if (!driveRoot.test(resolved)) {\n resolved = resolved.replace(/\\\\+$/g, \"\");\n }\n return resolved.startsWith(\"\\\\\\\\?\\\\\") ? resolved : `\\\\\\\\?\\\\${resolved}`;\n}\n\nfunction trustSelector(targetPath: string): string {\n return `projects.'${canonicalizeTrustPath(targetPath)}'`;\n}\n\nfunction writeTomlAtomically(filePath: string, content: string): void {\n const dir = dirname(filePath);\n mkdirSync(dir, { recursive: true });\n const tmp = `${filePath}.tmp.${process.pid}`;\n writeFileSync(tmp, content, \"utf-8\");\n renameSync(tmp, filePath);\n}\n\nfunction hasInstalledCodexInstance(state: TapState | null): boolean {\n return state\n ? Object.values(state.instances).some(\n (instance) => instance.runtime === \"codex\" && instance.installed,\n )\n : false;\n}\n\nfunction getCodexTrustTargets(repoRoot: string): string[] {\n return [...new Set([repoRoot, process.cwd()].map((value) => resolve(value)))];\n}\n\nfunction buildSessionNeutralCodexEnv(\n env: Record<string, string>,\n): Record<string, string> {\n const neutralEnv: Record<string, string> = {\n ...env,\n TAP_AGENT_NAME: CODEX_SESSION_NEUTRAL_NAME,\n };\n delete neutralEnv.TAP_AGENT_ID;\n return neutralEnv;\n}\n\nfunction buildCodexEnvEntries(\n existingTable: string | null,\n managedEnv: Record<string, string | string[]>,\n): Record<string, string | string[]> {\n const preservedEnv = parseTomlAssignments(existingTable ?? \"\");\n delete preservedEnv.TAP_AGENT_ID;\n return {\n ...preservedEnv,\n ...managedEnv,\n };\n}\n\nfunction buildCodexDoctorSpec(\n repoRoot: string,\n commsDir: string,\n): {\n configPath: string;\n trustTargets: string[];\n managed: ManagedMcpServerSpec;\n} | null {\n const state = loadState(repoRoot);\n if (!hasInstalledCodexInstance(state)) {\n return null;\n }\n\n const ctx = createAdapterContext(commsDir, repoRoot);\n const managed = buildManagedMcpServerSpec(ctx);\n\n return {\n configPath: findCodexConfigPath(),\n trustTargets: getCodexTrustTargets(repoRoot),\n managed: {\n ...managed,\n env: buildSessionNeutralCodexEnv(managed.env),\n },\n };\n}\n\nfunction repairCodexConfig(repoRoot: string, commsDir: string): string {\n const spec = buildCodexDoctorSpec(repoRoot, commsDir);\n if (!spec) {\n throw new Error(\"No installed Codex instance found in tap state.\");\n }\n if (!spec.managed.command || spec.managed.issues.length > 0) {\n throw new Error(\n spec.managed.issues[0] ??\n \"Unable to resolve the managed tap MCP server for Codex.\",\n );\n }\n\n const existingContent = existsSync(spec.configPath)\n ? readFileSync(spec.configPath, \"utf-8\")\n : \"\";\n const existingTapEnvTable = extractTomlTable(\n existingContent,\n \"mcp_servers.tap.env\",\n );\n const existingLegacyEnvTable = extractTomlTable(\n existingContent,\n \"mcp_servers.tap-comms.env\",\n );\n const preservedEnv = parseTomlAssignments(\n existingTapEnvTable ?? existingLegacyEnvTable ?? \"\",\n );\n const repairedEnv: Record<string, string | string[]> = {\n ...preservedEnv,\n ...(Object.fromEntries(\n CODEX_ENV_DRIFT_KEYS.map((key) => [key, spec.managed.env[key]]),\n ) as Record<string, string>),\n };\n repairedEnv.TAP_AGENT_NAME = spec.managed.env.TAP_AGENT_NAME;\n delete repairedEnv.TAP_AGENT_ID;\n\n let nextContent = existingContent;\n if (extractTomlTable(nextContent, \"mcp_servers.tap-comms.env\")) {\n nextContent = removeTomlTable(nextContent, \"mcp_servers.tap-comms.env\");\n }\n if (extractTomlTable(nextContent, \"mcp_servers.tap-comms\")) {\n nextContent = removeTomlTable(nextContent, \"mcp_servers.tap-comms\");\n }\n\n nextContent = replaceTomlTable(\n nextContent,\n \"mcp_servers.tap\",\n renderTomlTable(\n \"mcp_servers.tap\",\n {\n command: spec.managed.command,\n args: spec.managed.args,\n approval_mode: \"auto\",\n },\n extractTomlTable(existingContent, \"mcp_servers.tap\"),\n ),\n );\n nextContent = replaceTomlTable(\n nextContent,\n \"mcp_servers.tap.env\",\n renderTomlTable(\n \"mcp_servers.tap.env\",\n buildCodexEnvEntries(\n existingTapEnvTable ?? existingLegacyEnvTable,\n repairedEnv,\n ),\n ),\n );\n for (const trustTarget of spec.trustTargets) {\n const selector = trustSelector(trustTarget);\n nextContent = replaceTomlTable(\n nextContent,\n selector,\n renderTomlTable(\n selector,\n { trust_level: \"trusted\" },\n extractTomlTable(existingContent, selector),\n ),\n );\n }\n\n writeTomlAtomically(spec.configPath, nextContent);\n return `Repaired Codex config at ${spec.configPath}. Restart Codex to reload MCP settings.`;\n}\n\nfunction countFiles(dir: string, ext = \".md\"): number {\n if (!existsSync(dir)) return 0;\n try {\n return readdirSync(dir).filter((f) => f.endsWith(ext)).length;\n } catch {\n return 0;\n }\n}\n\nfunction recentFileCount(dir: string, withinMs: number): number {\n if (!existsSync(dir)) return 0;\n const cutoff = Date.now() - withinMs;\n let count = 0;\n try {\n for (const f of readdirSync(dir)) {\n if (!f.endsWith(\".md\")) continue;\n try {\n if (statSync(join(dir, f)).mtimeMs > cutoff) count++;\n } catch {\n // skip\n }\n }\n } catch {\n // skip\n }\n return count;\n}\n\nfunction loadDoctorHeartbeatStore(\n commsDir: string,\n): Record<string, DoctorHeartbeatRecord> | null {\n const heartbeatsPath = join(commsDir, \"heartbeats.json\");\n if (!existsSync(heartbeatsPath)) return null;\n try {\n return JSON.parse(readFileSync(heartbeatsPath, \"utf-8\")) as Record<\n string,\n DoctorHeartbeatRecord\n >;\n } catch {\n return null;\n }\n}\n\nfunction saveDoctorHeartbeatStore(\n commsDir: string,\n store: Record<string, DoctorHeartbeatRecord>,\n): void {\n const heartbeatsPath = join(commsDir, \"heartbeats.json\");\n const tmp = `${heartbeatsPath}.tmp.${process.pid}`;\n writeFileSync(tmp, JSON.stringify(store, null, 2), \"utf-8\");\n renameSync(tmp, heartbeatsPath);\n}\n\nfunction parseHeartbeatAgeMs(\n record: DoctorHeartbeatRecord,\n now: number,\n): number {\n const raw = record.lastActivity ?? record.timestamp;\n if (!raw) return Number.POSITIVE_INFINITY;\n const parsed = new Date(raw).getTime();\n if (!Number.isFinite(parsed)) return Number.POSITIVE_INFINITY;\n return Math.max(0, now - parsed);\n}\n\nfunction resolveHeartbeatInstanceId(\n state: TapState | null,\n heartbeatId: string,\n): string | null {\n if (!state) return null;\n if (state.instances[heartbeatId]) return heartbeatId;\n const hyphenated = heartbeatId.replace(/_/g, \"-\");\n if (state.instances[hyphenated]) return hyphenated;\n const underscored = heartbeatId.replace(/-/g, \"_\");\n if (state.instances[underscored]) return underscored;\n return null;\n}\n\nfunction collectStaleHeartbeatIds(\n commsDir: string,\n state: TapState | null,\n stateDir: string,\n): Array<{ id: string; label: string; ageMs: number }> {\n const store = loadDoctorHeartbeatStore(commsDir);\n if (!store) return [];\n\n const now = Date.now();\n const stale: Array<{ id: string; label: string; ageMs: number }> = [];\n\n for (const [heartbeatId, heartbeat] of Object.entries(store)) {\n const ageMs = parseHeartbeatAgeMs(heartbeat, now);\n const instanceId = resolveHeartbeatInstanceId(state, heartbeatId);\n const instance = instanceId ? state?.instances[instanceId] : null;\n const bridgeBacked = instance?.bridgeMode === \"app-server\";\n const bridgeRunning =\n bridgeBacked && instanceId\n ? isBridgeRunning(stateDir, instanceId)\n : false;\n const status = heartbeat.status ?? \"active\";\n\n const staleByStatus =\n status === \"signing-off\" && ageMs >= SIGNING_OFF_HEARTBEAT_WINDOW_MS;\n const staleByDeadBridge =\n bridgeBacked && !bridgeRunning && ageMs >= HEARTBEAT_ACTIVE_WINDOW_MS;\n const staleByAge = !bridgeRunning && ageMs >= ORPHAN_HEARTBEAT_WINDOW_MS;\n\n if (staleByStatus || staleByDeadBridge || staleByAge) {\n stale.push({\n id: heartbeatId,\n label: heartbeat.agent?.trim() || heartbeatId,\n ageMs,\n });\n }\n }\n\n return stale;\n}\n\nfunction pruneHeartbeatIds(commsDir: string, heartbeatIds: string[]): number {\n if (heartbeatIds.length === 0) return 0;\n const store = loadDoctorHeartbeatStore(commsDir);\n if (!store) return 0;\n\n let removed = 0;\n for (const heartbeatId of new Set(heartbeatIds)) {\n if (heartbeatId in store) {\n delete store[heartbeatId];\n removed += 1;\n }\n }\n\n if (removed > 0) {\n saveDoctorHeartbeatStore(commsDir, store);\n }\n\n return removed;\n}\n\n// ── Checks ──────────────────────────────────────────────────────────────\n\nfunction checkComms(commsDir: string): Check[] {\n const checks: Check[] = [];\n\n checks.push({\n name: \"comms directory\",\n status: existsSync(commsDir) ? PASS : FAIL,\n message: existsSync(commsDir) ? commsDir : `Not found: ${commsDir}`,\n fix: existsSync(commsDir)\n ? undefined\n : () => {\n mkdirSync(commsDir, { recursive: true });\n return `Created ${commsDir}`;\n },\n });\n\n for (const [subdir, required] of [\n [\"inbox\", true],\n [\"reviews\", false],\n [\"findings\", false],\n ] as const) {\n const dir = join(commsDir, subdir);\n const exists = existsSync(dir);\n checks.push({\n name: `${subdir} directory`,\n status: exists ? PASS : required ? FAIL : WARN,\n message: exists\n ? subdir === \"findings\"\n ? `${countFiles(dir)} findings`\n : subdir === \"inbox\"\n ? `${countFiles(dir)} messages`\n : \"exists\"\n : `Missing${required ? \"\" : \" (optional)\"}`,\n fix: exists\n ? undefined\n : () => {\n mkdirSync(dir, { recursive: true });\n return `Created ${dir}`;\n },\n });\n }\n\n // Heartbeats\n const heartbeats = join(commsDir, \"heartbeats.json\");\n if (existsSync(heartbeats)) {\n try {\n const store = JSON.parse(readFileSync(heartbeats, \"utf-8\"));\n const agents = Object.keys(store);\n const now = Date.now();\n const active = agents.filter((a) => {\n const ts = store[a]?.lastActivity;\n return ts && now - new Date(ts).getTime() < HEARTBEAT_ACTIVE_WINDOW_MS;\n });\n checks.push({\n name: \"heartbeats\",\n status: active.length > 0 ? PASS : WARN,\n message: `${active.length} active / ${agents.length} total`,\n });\n } catch {\n checks.push({\n name: \"heartbeats\",\n status: WARN,\n message: \"File exists but unreadable\",\n });\n }\n } else {\n checks.push({\n name: \"heartbeats\",\n status: WARN,\n message: \"No heartbeats file\",\n });\n }\n\n return checks;\n}\n\nfunction checkStaleHeartbeats(\n repoRoot: string,\n commsDir: string,\n stateDir: string,\n): Check[] {\n const state = loadState(repoRoot);\n const stale = collectStaleHeartbeatIds(commsDir, state, stateDir);\n if (stale.length === 0) {\n return [\n {\n name: \"stale heartbeats\",\n status: PASS,\n message: \"none\",\n },\n ];\n }\n\n const preview = stale\n .slice(0, 3)\n .map((entry) => `${entry.label} (${Math.round(entry.ageMs / 60000)}m)`)\n .join(\", \");\n\n return [\n {\n name: \"stale heartbeats\",\n status: WARN,\n message:\n stale.length > 3\n ? `${stale.length} stale entries: ${preview}, ...`\n : `${stale.length} stale entr${stale.length === 1 ? \"y\" : \"ies\"}: ${preview}`,\n fix: () => {\n const removed = pruneHeartbeatIds(\n commsDir,\n stale.map((entry) => entry.id),\n );\n return `Pruned ${removed} stale heartbeat entr${removed === 1 ? \"y\" : \"ies\"}`;\n },\n },\n ];\n}\n\nfunction checkInstances(\n repoRoot: string,\n stateDir: string,\n commsDir: string,\n): Check[] {\n const checks: Check[] = [];\n const state = loadState(repoRoot);\n\n if (!state) {\n checks.push({\n name: \"tap state\",\n status: FAIL,\n message: \"Not initialized. Run: tap init\",\n });\n return checks;\n }\n\n checks.push({\n name: \"tap state\",\n status: PASS,\n message: `v${state.schemaVersion}, ${getInstalledInstances(state).length} instance(s)`,\n });\n\n const installed = getInstalledInstances(state);\n for (const id of installed) {\n const inst = state.instances[id];\n if (!inst) continue;\n\n if (inst.bridgeMode === \"app-server\") {\n const running = isBridgeRunning(stateDir, id);\n const bridgeState = loadBridgeState(stateDir, id);\n const heartbeatAge = getHeartbeatAge(stateDir, id);\n const runtimeHeartbeat = loadRuntimeBridgeHeartbeat(bridgeState);\n const savedThread = loadRuntimeBridgeThreadState(bridgeState);\n\n let status: \"pass\" | \"warn\" | \"fail\";\n let message: string;\n let fix: (() => string) | undefined;\n\n if (running && bridgeState) {\n if (heartbeatAge !== null && heartbeatAge > 120) {\n status = WARN;\n message = `PID ${bridgeState.pid} alive but heartbeat stale (${Math.round(heartbeatAge)}s ago)`;\n } else {\n status = PASS;\n message = `PID ${bridgeState.pid}, port ${inst.port ?? \"auto\"}`;\n }\n } else if (bridgeState && !running) {\n status = WARN;\n message = `Stale PID ${bridgeState.pid} (process dead)`;\n fix = () => {\n // Kill managed app-server/gateway if still alive\n const appServer = bridgeState.appServer;\n if (appServer?.managed) {\n for (const pid of [appServer.auth?.gatewayPid, appServer.pid]) {\n if (pid) {\n try {\n if (process.platform === \"win32\") {\n spawnSync(\"taskkill\", [\"/PID\", String(pid), \"/F\", \"/T\"], {\n stdio: \"pipe\",\n });\n } else {\n process.kill(pid);\n }\n } catch {\n // Already dead — fine\n }\n }\n }\n }\n // Clean up stale bridge PID file\n const pidPath = join(stateDir, \"pids\", `bridge-${id}.json`);\n try {\n unlinkSync(pidPath);\n } catch {\n // ignore\n }\n // Clear bridge reference in instance state\n const currentState = loadState(repoRoot);\n if (currentState?.instances[id]) {\n currentState.instances[id].bridge = null;\n currentState.updatedAt = new Date().toISOString();\n saveState(repoRoot, currentState);\n }\n const removedHeartbeats = pruneHeartbeatIds(commsDir, [\n id,\n id.replace(/-/g, \"_\"),\n id.replace(/_/g, \"-\"),\n ]);\n const suffix =\n removedHeartbeats > 0\n ? `; pruned ${removedHeartbeats} heartbeat entr${removedHeartbeats === 1 ? \"y\" : \"ies\"}`\n : \"\";\n return `Cleaned stale bridge + managed processes for ${id}${suffix}`;\n };\n } else {\n status = WARN;\n message = \"Not running\";\n }\n\n const lastRuntimeError = runtimeHeartbeat?.lastError?.trim();\n if (lastRuntimeError) {\n status = WARN;\n message = `${message}; bridge last error: ${lastRuntimeError}`;\n }\n\n if (\n savedThread?.threadId &&\n savedThread.cwd &&\n !samePath(savedThread.cwd, repoRoot)\n ) {\n status = WARN;\n message = appendWarningMessage(\n message,\n `saved thread cwd mismatch (${savedThread.cwd})`,\n );\n }\n\n if (\n runtimeHeartbeat?.threadId &&\n savedThread?.threadId &&\n runtimeHeartbeat.threadId !== savedThread.threadId\n ) {\n status = WARN;\n message = appendWarningMessage(\n message,\n `saved thread ${savedThread.threadId} differs from active thread ${runtimeHeartbeat.threadId}`,\n );\n }\n\n if (\n runtimeHeartbeat?.threadCwd &&\n !samePath(runtimeHeartbeat.threadCwd, repoRoot)\n ) {\n status = WARN;\n message = appendWarningMessage(\n message,\n `active thread cwd mismatch (${runtimeHeartbeat.threadCwd})`,\n );\n }\n\n checks.push({ name: `bridge: ${id}`, status, message, fix });\n } else {\n checks.push({\n name: `instance: ${id}`,\n status: PASS,\n message: `${inst.runtime} (${inst.bridgeMode})`,\n });\n }\n }\n\n return checks;\n}\n\nfunction checkMessageLifecycle(commsDir: string): Check[] {\n const checks: Check[] = [];\n const inbox = join(commsDir, \"inbox\");\n\n if (!existsSync(inbox)) {\n checks.push({\n name: \"message flow\",\n status: FAIL,\n message: \"No inbox\",\n });\n return checks;\n }\n\n const total = countFiles(inbox);\n const recent1h = recentFileCount(inbox, 60 * 60 * 1000);\n const recent10m = recentFileCount(inbox, 10 * 60 * 1000);\n\n checks.push({\n name: \"message flow\",\n status: recent10m > 0 ? PASS : total > 0 ? WARN : FAIL,\n message: `${total} total, ${recent1h} in last 1h, ${recent10m} in last 10m`,\n });\n\n // Receipt coverage\n const receiptsPath = join(commsDir, \"receipts\", \"receipts.json\");\n if (existsSync(receiptsPath)) {\n try {\n const receipts = JSON.parse(readFileSync(receiptsPath, \"utf-8\"));\n const receiptCount = Object.keys(receipts).length;\n checks.push({\n name: \"read receipts\",\n status: PASS,\n message: `${receiptCount} receipts tracked`,\n });\n } catch {\n checks.push({\n name: \"read receipts\",\n status: WARN,\n message: \"File exists but unreadable\",\n });\n }\n }\n\n return checks;\n}\n\nfunction checkMcpServer(repoRoot: string): Check[] {\n const checks: Check[] = [];\n\n const mcpJson = join(repoRoot, \".mcp.json\");\n if (!existsSync(mcpJson)) {\n checks.push({\n name: \"MCP config (.mcp.json)\",\n status: WARN,\n message: \"Not found — MCP channel notifications won't work\",\n });\n return checks;\n }\n\n let config: Record<string, unknown>;\n try {\n config = JSON.parse(readFileSync(mcpJson, \"utf-8\"));\n } catch {\n checks.push({\n name: \"MCP config (.mcp.json)\",\n status: WARN,\n message: \"File exists but invalid JSON\",\n });\n return checks;\n }\n\n const mcpServers = config?.mcpServers as Record<string, unknown> | undefined;\n const hasTap = mcpServers?.[\"tap\"] as\n | {\n command?: string;\n args?: string[];\n cwd?: string;\n env?: Record<string, string>;\n }\n | undefined;\n const hasOldKey = mcpServers?.[\"tap-comms\"] as\n | Record<string, unknown>\n | undefined;\n\n if (hasOldKey) {\n checks.push({\n name: \"MCP config (.mcp.json)\",\n status: WARN,\n message:\n 'Legacy \"tap-comms\" key found. Run \"tap add claude\" to migrate to the new \"tap\" key.',\n });\n }\n\n if (!hasTap && !hasOldKey) {\n checks.push({\n name: \"MCP config (.mcp.json)\",\n status: WARN,\n message: \"tap not configured\",\n });\n return checks;\n }\n\n // Use new key if available, fall back to old key for backward compat\n const hasTapComms = (hasTap ?? hasOldKey) as\n | {\n command?: string;\n args?: string[];\n cwd?: string;\n env?: Record<string, string>;\n }\n | undefined;\n if (!hasTapComms) {\n checks.push({\n name: \"MCP config (.mcp.json)\",\n status: FAIL,\n message: \"No tap or tap-comms key found in .mcp.json\",\n });\n return checks;\n }\n\n checks.push({\n name: \"MCP config (.mcp.json)\",\n status: PASS,\n message: `command: ${hasTapComms.command}`,\n });\n\n // Check if MCP command is available (absolute path or PATH lookup)\n if (hasTapComms.command) {\n const cmd = hasTapComms.command;\n let cmdAvailable = existsSync(cmd); // Absolute path check\n if (!cmdAvailable) {\n // PATH-based command — try running with --version\n try {\n const result = spawnSync(cmd, [\"--version\"], {\n stdio: \"pipe\",\n timeout: 5000,\n shell: process.platform === \"win32\",\n });\n cmdAvailable = result.status === 0;\n } catch {\n // command not found or failed\n }\n }\n checks.push({\n name: \"MCP command binary\",\n status: cmdAvailable ? PASS : FAIL,\n message: cmdAvailable\n ? cmd\n : `Not found: ${cmd} (checked PATH and absolute)`,\n });\n }\n\n // Check if MCP server script/args exist\n if (hasTapComms.args?.[0]) {\n const mcpScript = hasTapComms.args[0];\n checks.push({\n name: \"MCP server script\",\n status: existsSync(mcpScript) ? PASS : FAIL,\n message: existsSync(mcpScript) ? mcpScript : `Not found: ${mcpScript}`,\n });\n\n // Warn if using compiled .mjs with node (bun:sqlite fallback)\n if (\n mcpScript.endsWith(\".mjs\") &&\n hasTapComms.command &&\n !hasTapComms.command.includes(\"bun\")\n ) {\n checks.push({\n name: \"MCP SQLite support\",\n status: WARN,\n message:\n \"Node + .mjs = no SQLite (bun:sqlite unavailable). Use bun or .ts source for full features.\",\n });\n }\n }\n\n // Check cwd field — missing cwd caused MCP connection failures in Gen 11\n if (!hasTapComms.cwd) {\n checks.push({\n name: \"MCP cwd field\",\n status: WARN,\n message:\n \"No cwd in .mcp.json — worktree sessions may fail to resolve MCP server dependencies\",\n });\n } else {\n checks.push({\n name: \"MCP cwd field\",\n status: PASS,\n message: hasTapComms.cwd,\n });\n }\n\n // Check TAP_COMMS_DIR in env\n const envCommsDir = hasTapComms.env?.TAP_COMMS_DIR;\n if (!envCommsDir) {\n checks.push({\n name: \"MCP TAP_COMMS_DIR\",\n status: FAIL,\n message:\n \"TAP_COMMS_DIR not set in .mcp.json env — server will fail to start\",\n });\n } else {\n checks.push({\n name: \"MCP TAP_COMMS_DIR\",\n status: existsSync(envCommsDir) ? PASS : FAIL,\n message: existsSync(envCommsDir)\n ? envCommsDir\n : `Directory not found: ${envCommsDir}`,\n });\n }\n\n // Note about --resume/--continue cache behavior\n // (Can't detect at runtime, but document in output)\n checks.push({\n name: \"MCP session cache\",\n status: PASS,\n message:\n \"If .mcp.json was changed mid-session, restart Claude (Ctrl+C → claude --resume) to reload\",\n });\n\n return checks;\n}\n\nfunction checkCodexConfig(repoRoot: string, commsDir: string): Check[] {\n const spec = buildCodexDoctorSpec(repoRoot, commsDir);\n if (!spec) {\n return [];\n }\n\n const checks: Check[] = [];\n const fixHint = 'Run \"tap doctor --fix\" or \"tap add codex --force\".';\n\n if (!existsSync(spec.configPath)) {\n checks.push({\n name: \"MCP config (~/.codex/config.toml)\",\n status: WARN,\n message: `${spec.configPath} not found. ${fixHint}`,\n fix: () => repairCodexConfig(repoRoot, commsDir),\n });\n return checks;\n }\n\n const content = readFileSync(spec.configPath, \"utf-8\");\n const tapTable = extractTomlTable(content, \"mcp_servers.tap\");\n const tapEnvTable = extractTomlTable(content, \"mcp_servers.tap.env\");\n const legacyTable = extractTomlTable(content, \"mcp_servers.tap-comms\");\n const legacyEnvTable = extractTomlTable(content, \"mcp_servers.tap-comms.env\");\n const selectedMain = parseTomlAssignments(tapTable ?? \"\");\n const selectedEnv = parseTomlAssignments(tapEnvTable ?? legacyEnvTable ?? \"\");\n const issues: string[] = [];\n\n if (legacyTable || legacyEnvTable) {\n issues.push('legacy \"tap-comms\" key present');\n }\n if (!tapTable && !legacyTable) {\n issues.push(\"tap MCP table missing\");\n }\n if (!tapEnvTable && !legacyEnvTable) {\n issues.push(\"tap MCP env table missing\");\n }\n if (tapTable && spec.managed.command) {\n const actualCommand = selectedMain.command;\n if (typeof actualCommand !== \"string\") {\n issues.push(\"tap MCP command missing\");\n } else if (!sameCommandToken(actualCommand, spec.managed.command)) {\n issues.push(`tap MCP command drift (${actualCommand})`);\n }\n\n const actualArgs = selectedMain.args;\n if (!Array.isArray(actualArgs)) {\n issues.push(\"tap MCP args missing\");\n } else if (!sameStringArray(actualArgs, spec.managed.args)) {\n issues.push(`tap MCP args drift (${JSON.stringify(actualArgs)})`);\n }\n }\n\n for (const key of CODEX_ENV_DRIFT_KEYS) {\n const expected = spec.managed.env[key];\n const actual = selectedEnv[key];\n if (typeof actual !== \"string\") {\n issues.push(`${key} missing`);\n continue;\n }\n if (!samePath(actual, expected)) {\n issues.push(`${key} drift (${actual})`);\n }\n }\n\n const actualAgentName = selectedEnv.TAP_AGENT_NAME;\n if (typeof actualAgentName !== \"string\") {\n issues.push(\"TAP_AGENT_NAME missing\");\n } else if (actualAgentName !== spec.managed.env.TAP_AGENT_NAME) {\n issues.push(`non-neutral TAP_AGENT_NAME persisted (${actualAgentName})`);\n }\n\n const actualAgentId = selectedEnv.TAP_AGENT_ID;\n if (typeof actualAgentId === \"string\" && actualAgentId.trim()) {\n issues.push(`concrete TAP_AGENT_ID persisted (${actualAgentId})`);\n }\n\n // M224: approval_mode drift check\n if (tapTable) {\n const actualApprovalMode = selectedMain.approval_mode;\n if (typeof actualApprovalMode !== \"string\") {\n issues.push(\"approval_mode missing (expected auto)\");\n } else if (actualApprovalMode !== \"auto\") {\n issues.push(`approval_mode drift (${actualApprovalMode})`);\n }\n }\n\n for (const trustTarget of spec.trustTargets) {\n const trustTable = extractTomlTable(content, trustSelector(trustTarget));\n if (!trustTable || !trustTable.includes('trust_level = \"trusted\"')) {\n issues.push(`missing trust for ${trustTarget}`);\n }\n }\n\n if (issues.length === 0) {\n checks.push({\n name: \"MCP config (~/.codex/config.toml)\",\n status: PASS,\n message: spec.configPath,\n });\n return checks;\n }\n\n checks.push({\n name: \"MCP config (~/.codex/config.toml)\",\n status: WARN,\n message: `${issues.join(\"; \")}. ${fixHint}`,\n fix: () => repairCodexConfig(repoRoot, commsDir),\n });\n\n return checks;\n}\n\n// ── Bridge Turn Health (zombie detection) ───────────────────────────\n\nfunction checkBridgeTurnHealth(repoRoot: string): Check[] {\n const checks: Check[] = [];\n const tmpDir = join(repoRoot, \".tmp\");\n if (!existsSync(tmpDir)) return checks;\n\n // Only scan dirs that belong to active instances or their agents\n const state = loadState(repoRoot);\n const activeMatchers = new Set<string>();\n if (state) {\n for (const [id, inst] of Object.entries(state.instances)) {\n if (inst?.installed && inst.bridgeMode === \"app-server\") {\n activeMatchers.add(id);\n // Also match agentName-based dirs (manual runbook pattern)\n if (inst.agentName) activeMatchers.add(inst.agentName);\n }\n }\n }\n\n let dirs: string[];\n try {\n dirs = readdirSync(tmpDir).filter((d) => {\n if (!d.startsWith(\"codex-app-server-bridge\")) return false;\n const suffix = d.replace(\"codex-app-server-bridge-\", \"\");\n if (activeMatchers.size === 0) return true; // No state → scan all\n for (const matcher of activeMatchers) {\n if (suffix === matcher || suffix.startsWith(matcher)) return true;\n }\n return false;\n });\n } catch {\n return checks;\n }\n\n for (const dir of dirs) {\n const heartbeatPath = join(tmpDir, dir, \"heartbeat.json\");\n if (!existsSync(heartbeatPath)) continue;\n\n let heartbeat: {\n updatedAt?: string;\n activeTurnId?: string | null;\n lastTurnStatus?: string;\n lastNotificationAt?: string;\n lastNotificationMethod?: string;\n connected?: boolean;\n initialized?: boolean;\n authenticated?: boolean;\n consecutiveFailureCount?: number;\n lastError?: string | null;\n };\n\n try {\n heartbeat = JSON.parse(readFileSync(heartbeatPath, \"utf-8\"));\n } catch {\n checks.push({\n name: `turn: ${dir}`,\n status: WARN,\n message: \"heartbeat.json unreadable\",\n });\n continue;\n }\n\n // Calculate heartbeat age\n const heartbeatAge = heartbeat.updatedAt\n ? Math.floor(\n (Date.now() - new Date(heartbeat.updatedAt).getTime()) / 1000,\n )\n : null;\n\n // Not connected\n if (heartbeat.connected === false || heartbeat.initialized === false) {\n checks.push({\n name: `turn: ${dir}`,\n status: FAIL,\n message: `disconnected (connected=${heartbeat.connected}, initialized=${heartbeat.initialized})${heartbeat.lastError ? ` — ${heartbeat.lastError}` : \"\"}`,\n });\n continue;\n }\n\n // Dead — no heartbeat update for 5+ minutes\n if (heartbeatAge !== null && heartbeatAge > 300) {\n checks.push({\n name: `turn: ${dir}`,\n status: FAIL,\n message: `dead — heartbeat ${Math.round(heartbeatAge)}s ago, no updates`,\n });\n continue;\n }\n\n // Zombie — active turn with no notification progress for 30+ minutes (Fix 1)\n if (heartbeat.activeTurnId) {\n const ZOMBIE_THRESHOLD = 30 * 60; // 30 minutes\n const lastNotifAge = heartbeat.lastNotificationAt\n ? Math.floor(\n (Date.now() - new Date(heartbeat.lastNotificationAt).getTime()) /\n 1000,\n )\n : null;\n\n // Primary: use lastNotificationAt to detect stuck turns\n if (lastNotifAge !== null && lastNotifAge > ZOMBIE_THRESHOLD) {\n checks.push({\n name: `turn: ${dir}`,\n status: WARN,\n message: `zombie — active turn ${heartbeat.activeTurnId}, last notification ${Math.round(lastNotifAge / 60)}m ago (${heartbeat.lastNotificationMethod ?? \"?\"}). MCP tools may not be exposed in app-server turns — try bridge restart${heartbeat.lastError ? `. Error: ${heartbeat.lastError}` : \"\"}`,\n });\n continue;\n }\n\n // Fallback: consecutive failures + active turn = zombie signal\n const failures = heartbeat.consecutiveFailureCount ?? 0;\n if (failures > 0 && heartbeatAge !== null && heartbeatAge < 60) {\n checks.push({\n name: `turn: ${dir}`,\n status: WARN,\n message: `zombie — active turn ${heartbeat.activeTurnId}, ${failures} consecutive failures. MCP tools may not be exposed in app-server turns — try bridge restart${heartbeat.lastError ? `. Error: ${heartbeat.lastError}` : \"\"}`,\n });\n continue;\n }\n }\n\n // Slow — heartbeat fresh but lots of failures\n const failures = heartbeat.consecutiveFailureCount ?? 0;\n if (failures > 5) {\n checks.push({\n name: `turn: ${dir}`,\n status: WARN,\n message: `slow — ${failures} consecutive failures, last: ${heartbeat.lastError ?? \"unknown\"}`,\n });\n continue;\n }\n\n // M175: Warn when a live bridge is running without auth\n if (heartbeat.authenticated === false) {\n checks.push({\n name: `turn: ${dir}`,\n status: WARN,\n message:\n \"bridge running without auth — app-server session is unprotected. \" +\n \"Use --gateway-token-file to enable auth.\",\n });\n }\n\n // Healthy\n const turnInfo = heartbeat.activeTurnId\n ? `active turn ${heartbeat.activeTurnId}`\n : `idle (last: ${heartbeat.lastTurnStatus ?? \"none\"})`;\n checks.push({\n name: `turn: ${dir}`,\n status: PASS,\n message: `healthy — ${turnInfo}, heartbeat ${heartbeatAge ?? \"?\"}s ago`,\n });\n }\n\n return checks;\n}\n\n// ── Render ──────────────────────────────────────────────────────────────\n\nfunction renderCheck(check: Check, fixMode: boolean): string {\n const icons: Record<string, string> = {\n pass: \"[OK]\",\n warn: \"[!!]\",\n fail: \"[XX]\",\n skip: \"[--]\",\n };\n const icon = icons[check.status] || \"[??]\";\n const fixable = fixMode && check.fix ? \" (fixable)\" : \"\";\n const msg = check.message ? ` — ${check.message}${fixable}` : \"\";\n return ` ${icon} ${check.name}${msg}`;\n}\n\nconst DOCTOR_HELP = `\nUsage:\n tap doctor [options]\n\nDescription:\n Diagnose tap infrastructure health: comms directory, instances, bridges,\n message lifecycle, and MCP server configuration.\n\nOptions:\n --fix Auto-repair detected issues where possible\n --comms-dir <path> Override comms directory\n --help, -h Show help\n\nExamples:\n npx @hua-labs/tap doctor\n npx @hua-labs/tap doctor --fix\n`.trim();\n\n// ── Command ─────────────────────────────────────────────────────────────\n\nexport async function doctorCommand(args: string[]): Promise<CommandResult> {\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n log(DOCTOR_HELP);\n return {\n ok: true,\n command: \"doctor\",\n code: \"TAP_NO_OP\",\n message: DOCTOR_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n\n // Parse flags\n const overrides: Record<string, string> = {};\n let fixMode = false;\n for (let i = 0; i < args.length; i++) {\n if (args[i] === \"--comms-dir\" && args[i + 1]) {\n overrides.commsDir = args[i + 1];\n }\n if (args[i] === \"--fix\") {\n fixMode = true;\n }\n }\n\n const { config } = resolveConfig(overrides, repoRoot);\n const state = loadState(repoRoot);\n const commsDir = overrides.commsDir\n ? config.commsDir\n : (state?.commsDir ?? config.commsDir);\n\n logHeader(`@hua-labs/tap doctor (v${version})${fixMode ? \" --fix\" : \"\"}`);\n\n function checkConfigDrift(): Check[] {\n let driftResults;\n try {\n driftResults = checkAllDrift(config.stateDir, state);\n } catch (err) {\n // Surface the error as a warn so drift check failure is visible\n return [\n {\n name: \"drift:infrastructure\",\n status: \"warn\" as const,\n message: `Config drift check failed: ${err instanceof Error ? err.message : String(err)}`,\n },\n ];\n }\n const checks: Check[] = [];\n for (const result of driftResults) {\n for (const dc of result.checks) {\n const check: Check = {\n name: `drift:${result.instanceId}:${dc.name}`,\n status:\n dc.status === \"ok\" ? \"pass\" : dc.autoFixable ? \"warn\" : \"fail\",\n message: dc.details ?? undefined,\n };\n if (dc.autoFixable && dc.status !== \"ok\") {\n check.fix = () => {\n const {\n loadInstanceConfig: loadInst,\n saveInstanceConfig: saveInst,\n } = require(\"../config/instance-config.js\");\n const {\n computeFileHash: hashFile,\n } = require(\"../config/drift-detector.js\");\n const instConfig = loadInst(config.stateDir, result.instanceId);\n if (!instConfig || !state) {\n return `Skipped: instance config not found for ${result.instanceId}`;\n }\n const inst = state.instances[result.instanceId];\n if (!inst) {\n return `Skipped: instance not in state.json for ${result.instanceId}`;\n }\n\n // Sync state.json fields from instance config\n inst.agentName = instConfig.agentName;\n inst.port = instConfig.port;\n inst.configHash = instConfig.configHash;\n inst.configSourceFile =\n inst.configSourceFile ||\n join(config.stateDir, \"instances\", `${result.instanceId}.json`);\n saveState(repoRoot, state);\n\n // Resync runtime config hash if configPath exists\n if (inst.configPath && existsSync(inst.configPath)) {\n const currentHash = hashFile(inst.configPath);\n if (instConfig.runtimeConfigHash !== currentHash) {\n instConfig.runtimeConfigHash = currentHash;\n instConfig.lastSyncedToRuntime = new Date().toISOString();\n saveInst(config.stateDir, instConfig);\n }\n }\n\n return `Synced state.json + runtime hash for ${result.instanceId}`;\n };\n }\n checks.push(check);\n }\n }\n return checks;\n }\n\n function runAllChecks(): Check[] {\n const checks: Check[] = [];\n checks.push(...checkComms(commsDir));\n checks.push(...checkStaleHeartbeats(repoRoot, commsDir, config.stateDir));\n checks.push(...checkInstances(repoRoot, config.stateDir, commsDir));\n checks.push(...checkConfigDrift());\n checks.push(...checkMessageLifecycle(commsDir));\n checks.push(...checkMcpServer(repoRoot));\n checks.push(...checkCodexConfig(repoRoot, commsDir));\n checks.push(...checkBridgeTurnHealth(repoRoot));\n return checks;\n }\n\n // Initial scan\n const initialChecks = runAllChecks();\n for (const section of [\n \"Comms\",\n \"Instances\",\n \"Config Drift\",\n \"Messages\",\n \"MCP\",\n \"Turns\",\n ] as const) {\n const sectionChecks = {\n Comms: initialChecks.filter((c) =>\n [\n \"comms directory\",\n \"inbox directory\",\n \"reviews directory\",\n \"findings directory\",\n \"heartbeats\",\n \"stale heartbeats\",\n ].includes(c.name),\n ),\n Instances: initialChecks.filter(\n (c) =>\n c.name.startsWith(\"bridge:\") ||\n c.name.startsWith(\"instance:\") ||\n c.name === \"tap state\",\n ),\n \"Config Drift\": initialChecks.filter((c) => c.name.startsWith(\"drift:\")),\n Messages: initialChecks.filter((c) =>\n [\"message flow\", \"read receipts\"].includes(c.name),\n ),\n MCP: initialChecks.filter(\n (c) => c.name.startsWith(\"MCP\") || c.name === \"MCP server script\",\n ),\n Turns: initialChecks.filter((c) => c.name.startsWith(\"turn:\")),\n }[section];\n if (sectionChecks.length > 0) {\n log(`${section}:`);\n for (const c of sectionChecks) log(renderCheck(c, fixMode));\n log(\"\");\n }\n }\n\n // Auto-fix + re-verify\n const fixed: string[] = [];\n let finalChecks = initialChecks;\n\n if (fixMode) {\n const fixable = initialChecks.filter(\n (c) => (c.status === \"warn\" || c.status === \"fail\") && c.fix,\n );\n if (fixable.length > 0) {\n log(\"Fixes:\");\n for (const c of fixable) {\n try {\n const desc = c.fix!();\n fixed.push(desc);\n logSuccess(` ${desc}`);\n } catch (err) {\n logWarn(\n ` Failed to fix ${c.name}: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n // Re-run all checks after fixes for accurate post-fix status\n log(\"\");\n log(\"Re-verifying...\");\n finalChecks = runAllChecks();\n const postFails = finalChecks.filter((c) => c.status === \"fail\").length;\n const postWarns = finalChecks.filter((c) => c.status === \"warn\").length;\n log(\n ` ${postFails === 0 ? \"All clear\" : `${postFails} remaining failures, ${postWarns} warnings`}`,\n );\n } else {\n log(\"Nothing to fix.\");\n }\n }\n\n // Summary (based on final state)\n const passes = finalChecks.filter((c) => c.status === \"pass\").length;\n const warns = finalChecks.filter((c) => c.status === \"warn\").length;\n const fails = finalChecks.filter((c) => c.status === \"fail\").length;\n\n log(\"\");\n log(\n `${finalChecks.length} checks: ${passes} passed, ${warns} warnings, ${fails} failures` +\n (fixed.length > 0 ? ` (${fixed.length} fixed)` : \"\"),\n );\n\n return {\n ok: fails === 0,\n command: \"doctor\",\n code: fails === 0 ? \"TAP_STATUS_OK\" : \"TAP_VERIFY_FAILED\",\n message: `${passes} passed, ${warns} warnings, ${fails} failures`,\n warnings: finalChecks\n .filter((c) => c.status === \"warn\")\n .map((c) => `${c.name}: ${c.message}`),\n data: {\n checks: finalChecks.map(({ fix, ...rest }) => rest),\n summary: { total: finalChecks.length, passes, warns, fails },\n fixed,\n },\n };\n}\n","/**\n * tap comms pull/push — sync comms directory with remote repo.\n * M108: GitHub/comms repo connection.\n */\n\nimport { execSync, spawnSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport {\n findRepoRoot,\n resolveCommsDir as resolveCommsDirFromArgs,\n log,\n logSuccess,\n logError,\n logHeader,\n} from \"../utils.js\";\nimport type { CommandResult } from \"../types.js\";\n\nconst COMMS_HELP = `\nUsage:\n tap comms <subcommand>\n\nSubcommands:\n pull Pull latest changes from comms remote repo\n push Commit and push comms changes to remote repo\n\nExamples:\n npx @hua-labs/tap comms pull\n npx @hua-labs/tap comms push\n`.trim();\n\nfunction isGitRepo(dir: string): boolean {\n return fs.existsSync(path.join(dir, \".git\"));\n}\n\nfunction commsPull(commsDir: string): CommandResult {\n logHeader(\"tap comms pull\");\n\n if (!isGitRepo(commsDir)) {\n logError(`${commsDir} is not a git repository`);\n return {\n ok: false,\n command: \"comms\",\n code: \"TAP_COMMS_NOT_REPO\",\n message: `Comms directory is not a git repo. Use 'tap init --comms-repo <url>' to set up.`,\n warnings: [],\n data: { commsDir },\n };\n }\n\n try {\n const output = execSync(\"git pull --rebase\", {\n cwd: commsDir,\n encoding: \"utf-8\",\n stdio: \"pipe\",\n });\n logSuccess(\"Comms pull complete\");\n if (output.trim()) log(output.trim());\n return {\n ok: true,\n command: \"comms\",\n code: \"TAP_COMMS_PULL_OK\",\n message: \"Comms pull complete\",\n warnings: [],\n data: { commsDir },\n };\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n logError(`Pull failed: ${msg}`);\n return {\n ok: false,\n command: \"comms\",\n code: \"TAP_COMMS_PULL_FAILED\",\n message: `Pull failed: ${msg}`,\n warnings: [],\n data: { commsDir },\n };\n }\n}\n\nfunction commsPush(commsDir: string): CommandResult {\n logHeader(\"tap comms push\");\n\n if (!isGitRepo(commsDir)) {\n logError(`${commsDir} is not a git repository`);\n return {\n ok: false,\n command: \"comms\",\n code: \"TAP_COMMS_NOT_REPO\",\n message: `Comms directory is not a git repo. Use 'tap init --comms-repo <url>' to set up.`,\n warnings: [],\n data: { commsDir },\n };\n }\n\n try {\n // Stage all changes\n execSync(\"git add -A\", { cwd: commsDir, stdio: \"pipe\" });\n\n // Check if there are changes to commit\n const status = execSync(\"git status --porcelain\", {\n cwd: commsDir,\n encoding: \"utf-8\",\n stdio: \"pipe\",\n }).trim();\n\n if (!status) {\n log(\"Nothing to push — comms directory is clean\");\n return {\n ok: true,\n command: \"comms\",\n code: \"TAP_COMMS_PUSH_OK\",\n message: \"Nothing to push\",\n warnings: [],\n data: { commsDir, changed: false },\n };\n }\n\n // Commit\n const timestamp = new Date().toISOString().replace(/[:.]/g, \"-\");\n const commitResult = spawnSync(\n \"git\",\n [\"commit\", \"-m\", `chore(comms): sync ${timestamp}`],\n { cwd: commsDir, stdio: \"pipe\", encoding: \"utf-8\" },\n );\n if (commitResult.status !== 0) {\n const msg =\n commitResult.stderr ||\n `git commit exited with code ${commitResult.status}`;\n return {\n ok: false,\n command: \"comms\",\n code: \"TAP_COMMS_PUSH_FAILED\",\n message: `Commit failed: ${msg}`,\n warnings: [],\n data: { commsDir },\n };\n }\n\n // Push\n execSync(\"git push\", { cwd: commsDir, stdio: \"pipe\" });\n logSuccess(\"Comms push complete\");\n\n return {\n ok: true,\n command: \"comms\",\n code: \"TAP_COMMS_PUSH_OK\",\n message: \"Comms push complete\",\n warnings: [],\n data: { commsDir, changed: true },\n };\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n logError(`Push failed: ${msg}`);\n return {\n ok: false,\n command: \"comms\",\n code: \"TAP_COMMS_PUSH_FAILED\",\n message: `Push failed: ${msg}`,\n warnings: [],\n data: { commsDir },\n };\n }\n}\n\nexport async function commsCommand(args: string[]): Promise<CommandResult> {\n const subcommand = args[0];\n\n if (!subcommand || subcommand === \"--help\" || subcommand === \"-h\") {\n log(COMMS_HELP);\n return {\n ok: true,\n command: \"comms\",\n code: \"TAP_NO_OP\",\n message: COMMS_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n // --comms-dir flag > config (shared/local/env) > auto-default\n const commsDir = resolveCommsDirFromArgs(args, repoRoot);\n\n switch (subcommand) {\n case \"pull\":\n return commsPull(commsDir);\n case \"push\":\n return commsPush(commsDir);\n default:\n return {\n ok: false,\n command: \"comms\",\n code: \"TAP_INVALID_ARGUMENT\",\n message: `Unknown comms subcommand: ${subcommand}. Use pull or push.`,\n warnings: [],\n data: {},\n };\n }\n}\n","import { bridgeCommand } from \"./bridge.js\";\nimport { log, logHeader, parseArgs, parseIntFlag } from \"../utils.js\";\nimport type { CommandResult } from \"../types.js\";\n\nconst WATCH_HELP = `\nUsage:\n tap watch [options]\n\nDescription:\n Monitor all bridges and auto-restart stuck/stale ones.\n Single-pass by default. Use --loop for continuous monitoring.\n\nOptions:\n --stuck-threshold <seconds> Turn stuck threshold (default: 300)\n --interval <seconds> Loop interval (default: 60)\n --loop Run continuously instead of single-pass\n --max-rounds <n> Max loop iterations (default: unlimited)\n\nExamples:\n npx @hua-labs/tap watch # single check\n npx @hua-labs/tap watch --loop # continuous\n npx @hua-labs/tap watch --loop --interval 30 # check every 30s\n npx @hua-labs/tap watch --stuck-threshold 120 # 2 min threshold\n`.trim();\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport async function watchCommand(args: string[]): Promise<CommandResult> {\n const { flags } = parseArgs(args);\n\n if (flags[\"help\"] === true || flags[\"h\"] === true) {\n log(WATCH_HELP);\n return {\n ok: true,\n command: \"watch\",\n code: \"TAP_NO_OP\",\n message: WATCH_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const stuckThresholdStr =\n typeof flags[\"stuck-threshold\"] === \"string\"\n ? flags[\"stuck-threshold\"]\n : undefined;\n const intervalStr =\n typeof flags[\"interval\"] === \"string\" ? flags[\"interval\"] : undefined;\n const loop = flags[\"loop\"] === true;\n const maxRoundsStr =\n typeof flags[\"max-rounds\"] === \"string\" ? flags[\"max-rounds\"] : undefined;\n\n let stuckThreshold: number;\n let interval: number;\n let maxRounds: number | null;\n try {\n stuckThreshold =\n parseIntFlag(stuckThresholdStr, \"--stuck-threshold\", 30, 3600) ?? 300;\n interval = parseIntFlag(intervalStr, \"--interval\", 5, 3600) ?? 60;\n maxRounds = parseIntFlag(maxRoundsStr, \"--max-rounds\", 1, 10000) ?? null;\n } catch (err) {\n return {\n ok: false,\n command: \"watch\",\n code: \"TAP_INVALID_ARGUMENT\",\n message: err instanceof Error ? err.message : String(err),\n warnings: [],\n data: {},\n };\n }\n\n // Build bridge watch args\n const bridgeArgs = [\"watch\", \"--stuck-threshold\", String(stuckThreshold)];\n\n if (!loop) {\n // Single-pass mode\n return bridgeCommand(bridgeArgs);\n }\n\n // Loop mode\n logHeader(\"@hua-labs/tap watch (loop mode)\");\n log(`Interval: ${interval}s, Stuck threshold: ${stuckThreshold}s`);\n if (maxRounds != null) {\n log(`Max rounds: ${maxRounds}`);\n }\n log(\"\");\n\n let round = 0;\n let failedRounds = 0;\n const allRestarted: string[] = [];\n const allWarnings: string[] = [];\n while (maxRounds == null || round < maxRounds) {\n round++;\n const timestamp = new Date().toISOString().slice(11, 19);\n log(`[${timestamp}] Round ${round}`);\n\n const result = await bridgeCommand(bridgeArgs);\n\n if (!result.ok) {\n failedRounds++;\n allWarnings.push(`Round ${round}: ${result.message}`);\n }\n\n if (result.data?.restarted) {\n const restarted = result.data.restarted as string[];\n allRestarted.push(...restarted);\n }\n if (result.warnings?.length) {\n allWarnings.push(...result.warnings);\n }\n\n if (maxRounds != null && round >= maxRounds) break;\n\n await delay(interval * 1000);\n }\n\n const allOk = failedRounds === 0;\n const message = [\n `Completed ${round} round(s)`,\n failedRounds > 0 ? `${failedRounds} failed` : null,\n allRestarted.length > 0\n ? `Total restarts: ${allRestarted.length} (${allRestarted.join(\", \")})`\n : \"No restarts needed\",\n ]\n .filter(Boolean)\n .join(\". \");\n\n return {\n ok: allOk,\n command: \"watch\",\n code: !allOk\n ? \"TAP_WATCH_FAILED\"\n : allRestarted.length > 0\n ? \"TAP_WATCH_RESTARTED\"\n : \"TAP_WATCH_OK\",\n message,\n warnings: allWarnings,\n data: { rounds: round, restarted: allRestarted },\n };\n}\n","import * as http from \"node:http\";\nimport { collectDashboardSnapshot } from \"../engine/dashboard.js\";\nimport { getTurnInfo } from \"../engine/bridge.js\";\nimport { parseMissionsFile } from \"../engine/missions.js\";\nimport { fetchPrs } from \"../engine/pull-requests.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { loadState } from \"../state.js\";\nimport {\n findRepoRoot,\n log,\n logHeader,\n logSuccess,\n parseArgs,\n parseIntFlag,\n} from \"../utils.js\";\nimport type { CommandResult, InstanceId } from \"../types.js\";\n\nconst GUI_HELP = `\nUsage:\n tap gui [options]\n\nDescription:\n Start a local web dashboard showing bridge status, agents, and turn info.\n\nOptions:\n --port <n> Dashboard port (default: 3847)\n --help, -h Show help\n\nExamples:\n npx @hua-labs/tap gui\n npx @hua-labs/tap gui --port 8080\n`.trim();\n\n/** Escape HTML special characters to prevent XSS */\nfunction esc(str: string | null | undefined): string {\n if (!str) return \"-\";\n return str\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n\nfunction buildHtml(\n snapshot: ReturnType<typeof collectDashboardSnapshot>,\n turnData: Record<string, unknown>,\n): string {\n const agentRows = snapshot.agents\n .map(\n (a) =>\n `<tr><td>${esc(a.name)}</td><td class=\"${a.presence === \"bridge-live\" ? \"ok\" : a.presence === \"bridge-stale\" ? \"warn\" : \"off\"}\">${esc(a.presence)}</td><td>${esc(a.lifecycle ?? \"-\")}</td><td>${a.lastActivity ? esc(new Date(a.lastActivity).toLocaleTimeString()) : \"-\"}</td></tr>`,\n )\n .join(\"\\n\");\n\n const bridgeRows = snapshot.bridges\n .map((b) => {\n const turn = turnData[b.instanceId] as {\n activeTurnId?: string;\n stuck?: boolean;\n ageSeconds?: number;\n } | null;\n const turnCell = turn?.activeTurnId\n ? `<span class=\"${turn.stuck ? \"stuck\" : \"ok\"}\">${esc(turn.activeTurnId.slice(0, 8))}... ${turn.stuck ? \"⚠ STUCK\" : \"\"} ${turn.ageSeconds != null ? `(${turn.ageSeconds}s)` : \"\"}</span>`\n : \"-\";\n const statusClass =\n b.status === \"running\" ? \"ok\" : b.status === \"stale\" ? \"stuck\" : \"off\";\n return `<tr><td>${esc(b.instanceId)}</td><td>${esc(b.runtime)}</td><td class=\"${statusClass}\">${esc(b.status)}</td><td>${b.pid ?? \"-\"}</td><td>${b.port ?? \"-\"}</td><td>${b.heartbeatAge != null ? `${b.heartbeatAge}s ago` : \"-\"}</td><td>${turnCell}</td></tr>`;\n })\n .join(\"\\n\");\n\n const warningRows = snapshot.warnings\n .map(\n (w) =>\n `<tr><td class=\"warn\">${esc(w.level)}</td><td>${esc(w.message)}</td></tr>`,\n )\n .join(\"\\n\");\n\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>tap dashboard</title>\n<style>\n body { font-family: system-ui, -apple-system, sans-serif; background: #0d1117; color: #c9d1d9; margin: 0; padding: 20px; }\n h1 { color: #58a6ff; font-size: 1.4em; }\n h2 { color: #8b949e; font-size: 1.1em; margin-top: 24px; }\n table { border-collapse: collapse; width: 100%; margin: 8px 0; }\n th, td { text-align: left; padding: 6px 12px; border-bottom: 1px solid #21262d; }\n th { color: #8b949e; font-size: 0.85em; text-transform: uppercase; }\n .ok { color: #3fb950; }\n .warn { color: #d29922; }\n .stuck { color: #f85149; font-weight: bold; }\n .off { color: #8b949e; }\n .meta { color: #8b949e; font-size: 0.85em; }\n .refresh { color: #8b949e; font-size: 0.8em; margin-top: 16px; }\n</style>\n</head>\n<body>\n<h1>tap dashboard</h1>\n<p class=\"meta\">${esc(snapshot.generatedAt)} · ${esc(snapshot.repoRoot)}</p>\n\n<h2>Agents</h2>\n<table>\n<tr><th>Name</th><th>Presence</th><th>Lifecycle</th><th>Last Activity</th></tr>\n${agentRows || '<tr><td colspan=\"4\" class=\"off\">No agents</td></tr>'}\n</table>\n\n<h2>Bridges</h2>\n<table>\n<tr><th>Instance</th><th>Runtime</th><th>Status</th><th>PID</th><th>Port</th><th>Heartbeat</th><th>Turn</th></tr>\n${bridgeRows || '<tr><td colspan=\"7\" class=\"off\">No bridges</td></tr>'}\n</table>\n\n${warningRows ? `<h2>Warnings</h2><table><tr><th>Level</th><th>Message</th></tr>${warningRows}</table>` : \"\"}\n\n<p class=\"refresh\" id=\"status\">Connecting to live updates...</p>\n<script>\nconst es = new EventSource('/api/events');\nconst statusEl = document.getElementById('status');\nlet lastReloadAt = Date.now();\nes.onmessage = (e) => {\n statusEl.textContent = 'Live — updated ' + new Date().toLocaleTimeString();\n statusEl.style.color = '#3fb950';\n const elapsed = Date.now() - lastReloadAt;\n if (elapsed >= 9000) { lastReloadAt = Date.now(); location.reload(); }\n};\nes.onerror = () => {\n statusEl.textContent = 'Disconnected — will retry...';\n statusEl.style.color = '#f85149';\n};\n</script>\n<p class=\"refresh\"><a href=\"/missions\" style=\"color:#58a6ff;\">Mission Kanban</a> · <a href=\"/prs\" style=\"color:#58a6ff;\">PR Board</a></p>\n</body>\n</html>`;\n}\n\nfunction buildMissionsHtml(repoRoot: string): string {\n const missions = parseMissionsFile(repoRoot);\n\n const byStatus = {\n active: missions.filter((m) => m.status === \"active\"),\n planned: missions.filter((m) => m.status === \"planned\"),\n completed: missions.filter((m) => m.status === \"completed\"),\n };\n\n function card(m: ReturnType<typeof parseMissionsFile>[number]): string {\n return `<div class=\"card\">\n <div class=\"card-id\">${esc(m.id)}</div>\n <div class=\"card-title\">${esc(m.title)}</div>\n ${m.owner ? `<div class=\"card-meta\">Owner: ${esc(m.owner)}</div>` : \"\"}\n ${m.branch ? `<div class=\"card-meta card-branch\">${esc(m.branch)}</div>` : \"\"}\n</div>`;\n }\n\n function column(\n label: string,\n headerClass: string,\n items: ReturnType<typeof parseMissionsFile>,\n ): string {\n return `<div class=\"column\">\n <div class=\"col-header ${headerClass}\">${label} <span class=\"badge\">${items.length}</span></div>\n <div class=\"col-body\">\n ${items.length ? items.map(card).join(\"\\n \") : '<div class=\"empty\">No missions</div>'}\n </div>\n</div>`;\n }\n\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>tap — mission kanban</title>\n<meta http-equiv=\"refresh\" content=\"30\">\n<style>\n body { font-family: system-ui, -apple-system, sans-serif; background: #0d1117; color: #c9d1d9; margin: 0; padding: 20px; }\n h1 { color: #58a6ff; font-size: 1.4em; }\n a { color: #58a6ff; text-decoration: none; }\n a:hover { text-decoration: underline; }\n .meta { color: #8b949e; font-size: 0.85em; }\n .refresh { color: #8b949e; font-size: 0.8em; margin-top: 16px; }\n .board { display: flex; gap: 16px; margin-top: 16px; align-items: flex-start; flex-wrap: wrap; }\n .column { flex: 1; min-width: 240px; background: #161b22; border: 1px solid #21262d; border-radius: 6px; overflow: hidden; }\n .col-header { padding: 10px 14px; font-size: 0.85em; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; display: flex; justify-content: space-between; align-items: center; }\n .col-header.active { color: #3fb950; border-bottom: 2px solid #3fb950; }\n .col-header.planned { color: #d29922; border-bottom: 2px solid #d29922; }\n .col-header.completed { color: #8b949e; border-bottom: 2px solid #8b949e; }\n .badge { background: #21262d; color: #c9d1d9; border-radius: 10px; padding: 1px 7px; font-size: 0.8em; }\n .col-body { padding: 8px; display: flex; flex-direction: column; gap: 8px; }\n .card { background: #0d1117; border: 1px solid #21262d; border-radius: 4px; padding: 10px 12px; }\n .card-id { font-size: 0.75em; color: #58a6ff; font-weight: 600; margin-bottom: 4px; }\n .card-title { font-size: 0.9em; color: #e6edf3; line-height: 1.4; }\n .card-meta { font-size: 0.75em; color: #8b949e; margin-top: 4px; }\n .card-branch { font-family: ui-monospace, monospace; color: #6e7681; }\n .empty { color: #6e7681; font-size: 0.85em; padding: 8px 4px; }\n</style>\n</head>\n<body>\n<h1>mission kanban</h1>\n<p class=\"meta\"><a href=\"/\">← Dashboard</a> · ${esc(repoRoot)}</p>\n<div class=\"board\">\n ${column(\"Active\", \"active\", byStatus.active)}\n ${column(\"Planned\", \"planned\", byStatus.planned)}\n ${column(\"Completed\", \"completed\", byStatus.completed)}\n</div>\n<p class=\"refresh\">Auto-refresh every 30s</p>\n</body>\n</html>`;\n}\n\nfunction buildPrsHtml(repoRoot: string): string {\n const { open, merged } = fetchPrs(repoRoot);\n\n function prRow(pr: ReturnType<typeof fetchPrs>[\"open\"][number]): string {\n return `<tr>\n <td><a href=\"${esc(pr.url)}\" target=\"_blank\" rel=\"noopener\" style=\"color:#58a6ff;\">#${pr.number}</a></td>\n <td>${esc(pr.title)}</td>\n <td>${esc(pr.author)}</td>\n <td class=\"branch\">${esc(pr.branch)}</td>\n</tr>`;\n }\n\n const openRows = open.map(prRow).join(\"\\n\");\n const mergedRows = merged\n .map(\n (pr) =>\n `<tr>\n <td><a href=\"${esc(pr.url)}\" target=\"_blank\" rel=\"noopener\" style=\"color:#58a6ff;\">#${pr.number}</a></td>\n <td>${esc(pr.title)}</td>\n <td>${esc(pr.author)}</td>\n</tr>`,\n )\n .join(\"\\n\");\n\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>tap — pr board</title>\n<meta http-equiv=\"refresh\" content=\"60\">\n<style>\n body { font-family: system-ui, -apple-system, sans-serif; background: #0d1117; color: #c9d1d9; margin: 0; padding: 20px; }\n h1 { color: #58a6ff; font-size: 1.4em; }\n h2 { color: #8b949e; font-size: 1.1em; margin-top: 24px; }\n a { color: #58a6ff; text-decoration: none; }\n a:hover { text-decoration: underline; }\n table { border-collapse: collapse; width: 100%; margin: 8px 0; }\n th, td { text-align: left; padding: 6px 12px; border-bottom: 1px solid #21262d; }\n th { color: #8b949e; font-size: 0.85em; text-transform: uppercase; }\n .branch { font-family: ui-monospace, monospace; font-size: 0.85em; color: #6e7681; }\n .meta { color: #8b949e; font-size: 0.85em; }\n .refresh { color: #8b949e; font-size: 0.8em; margin-top: 16px; }\n .off { color: #8b949e; }\n</style>\n</head>\n<body>\n<h1>pr board</h1>\n<p class=\"meta\"><a href=\"/\">← Dashboard</a> · ${esc(repoRoot)}</p>\n\n<h2>Open PRs <span style=\"color:#3fb950;\">(${open.length})</span></h2>\n<table>\n<tr><th>#</th><th>Title</th><th>Author</th><th>Branch</th></tr>\n${openRows || '<tr><td colspan=\"4\" class=\"off\">No open PRs</td></tr>'}\n</table>\n\n<h2>Recently Merged <span style=\"color:#8b949e;\">(${merged.length})</span></h2>\n<table>\n<tr><th>#</th><th>Title</th><th>Author</th></tr>\n${mergedRows || '<tr><td colspan=\"3\" class=\"off\">No merged PRs</td></tr>'}\n</table>\n\n<p class=\"refresh\">Auto-refresh every 60s</p>\n</body>\n</html>`;\n}\n\nexport async function guiCommand(args: string[]): Promise<CommandResult> {\n const { flags } = parseArgs(args);\n\n if (flags[\"help\"] === true || flags[\"h\"] === true) {\n log(GUI_HELP);\n return {\n ok: true,\n command: \"gui\",\n code: \"TAP_NO_OP\",\n message: GUI_HELP,\n warnings: [],\n data: {},\n };\n }\n\n const portStr = typeof flags[\"port\"] === \"string\" ? flags[\"port\"] : undefined;\n let port: number;\n try {\n port = parseIntFlag(portStr, \"--port\", 1024, 65535) ?? 3847;\n } catch (err) {\n return {\n ok: false,\n command: \"gui\",\n code: \"TAP_INVALID_ARGUMENT\",\n message: err instanceof Error ? err.message : String(err),\n warnings: [],\n data: {},\n };\n }\n\n const repoRoot = findRepoRoot();\n\n const server = http.createServer((req, res) => {\n const snapshot = collectDashboardSnapshot(repoRoot);\n\n // Collect turn info for each bridge\n const state = loadState(repoRoot);\n const { config } = resolveConfig({}, repoRoot);\n const turnData: Record<string, unknown> = {};\n if (state) {\n for (const [id, inst] of Object.entries(state.instances)) {\n if (!inst?.installed || inst.bridgeMode !== \"app-server\") continue;\n turnData[id] = getTurnInfo(config.stateDir, id as InstanceId);\n }\n }\n\n const jsonHeaders = {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n };\n\n if (req.url === \"/api/snapshot\") {\n res.writeHead(200, jsonHeaders);\n res.end(JSON.stringify({ ...snapshot, turns: turnData }, null, 2));\n return;\n }\n\n // SSE endpoint — push updates every 5 seconds\n if (req.url === \"/api/events\") {\n res.writeHead(200, {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n \"Access-Control-Allow-Origin\": \"*\",\n });\n\n const sendEvent = () => {\n const s = collectDashboardSnapshot(repoRoot);\n const st = loadState(repoRoot);\n const cfg = resolveConfig({}, repoRoot).config;\n const td: Record<string, unknown> = {};\n if (st) {\n for (const [id, inst] of Object.entries(st.instances)) {\n if (!inst?.installed || inst.bridgeMode !== \"app-server\") continue;\n td[id] = getTurnInfo(cfg.stateDir, id as InstanceId);\n }\n }\n res.write(`data: ${JSON.stringify({ ...s, turns: td })}\\n\\n`);\n };\n\n sendEvent();\n const interval = setInterval(sendEvent, 5000);\n req.on(\"close\", () => clearInterval(interval));\n return;\n }\n\n if (req.url === \"/api/missions\") {\n const missions = parseMissionsFile(repoRoot);\n res.writeHead(200, jsonHeaders);\n res.end(JSON.stringify(missions, null, 2));\n return;\n }\n\n if (req.url === \"/missions\") {\n res.writeHead(200, { \"Content-Type\": \"text/html; charset=utf-8\" });\n res.end(buildMissionsHtml(repoRoot));\n return;\n }\n\n if (req.url === \"/api/prs\") {\n const prs = fetchPrs(repoRoot);\n res.writeHead(200, jsonHeaders);\n res.end(JSON.stringify(prs, null, 2));\n return;\n }\n\n if (req.url === \"/prs\") {\n res.writeHead(200, { \"Content-Type\": \"text/html; charset=utf-8\" });\n res.end(buildPrsHtml(repoRoot));\n return;\n }\n\n res.writeHead(200, { \"Content-Type\": \"text/html; charset=utf-8\" });\n res.end(buildHtml(snapshot, turnData));\n });\n\n return new Promise<CommandResult>((resolve) => {\n server.on(\"error\", (err: NodeJS.ErrnoException) => {\n if (err.code === \"EADDRINUSE\") {\n resolve({\n ok: false,\n command: \"gui\",\n code: \"TAP_PORT_IN_USE\",\n message: `Port ${port} is already in use. Try: tap gui --port <other>`,\n warnings: [],\n data: {},\n });\n } else {\n resolve({\n ok: false,\n command: \"gui\",\n code: \"TAP_GUI_ERROR\",\n message: err.message,\n warnings: [],\n data: {},\n });\n }\n });\n\n server.listen(port, \"127.0.0.1\", () => {\n logHeader(\"tap gui dashboard\");\n logSuccess(`Dashboard: http://127.0.0.1:${port}`);\n log(`API: http://127.0.0.1:${port}/api/snapshot`);\n log(\"Press Ctrl+C to stop\");\n });\n });\n}\n","/**\n * Mission kanban engine.\n * Parses docs/missions/MISSIONS.md into structured Mission objects.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\n// ─── Types ─────────────────────────────────────────────────────\n\nexport interface Mission {\n id: string;\n title: string;\n branch: string | null;\n status: \"active\" | \"planned\" | \"completed\";\n owner: string | null;\n}\n\n// ─── Status mapping ─────────────────────────────────────────────\n\nfunction parseStatus(raw: string): Mission[\"status\"] {\n const trimmed = raw.trim();\n if (trimmed.includes(\"active\")) return \"active\";\n if (trimmed.includes(\"completed\")) return \"completed\";\n return \"planned\";\n}\n\n// ─── Row parser ─────────────────────────────────────────────────\n\n/**\n * Parse a single markdown table row into a Mission, or return null if the\n * row is not a valid mission row (header, separator, empty, etc.).\n */\nfunction parseRow(line: string): Mission | null {\n // Must start and end with a pipe\n if (!line.startsWith(\"|\") || !line.endsWith(\"|\")) return null;\n\n // Split by pipe, discard first/last empty segments\n const cells = line\n .split(\"|\")\n .slice(1, -1)\n .map((c) => c.trim());\n\n if (cells.length < 4) return null;\n\n const [idCell, missionCell, branchCell, statusCell, ownerCell] = cells;\n\n // Skip separator rows (contain only dashes/spaces)\n if (/^[-: ]+$/.test(idCell ?? \"\")) return null;\n\n // Skip rows with no real ID (e.g. \"—\" or empty)\n const id = (idCell ?? \"\").replace(/[^\\w]/g, \"\");\n if (!id || !/^M\\d+$/i.test(id)) return null;\n\n // Extract title from markdown link [Title](./file.md) or plain text\n const titleMatch = missionCell?.match(/\\[([^\\]]+)\\]/);\n const title = titleMatch ? titleMatch[1] : (missionCell ?? \"\").trim();\n if (!title) return null;\n\n // Extract branch from backtick-wrapped value or \"—\"\n const branchMatch = branchCell?.match(/`([^`]+)`/);\n const branch = branchMatch ? branchMatch[1] : null;\n\n const status = parseStatus(statusCell ?? \"\");\n\n // Owner — strip leading/trailing whitespace, treat \"—\" or \"미배정\" as null\n const rawOwner = (ownerCell ?? \"\").trim();\n const owner =\n rawOwner === \"\" || rawOwner === \"—\" || rawOwner === \"미배정\"\n ? null\n : rawOwner;\n\n return { id: id.toUpperCase(), title, branch, status, owner };\n}\n\n// ─── Public API ─────────────────────────────────────────────────\n\n/**\n * Read and parse docs/missions/MISSIONS.md from the given repo root.\n * Returns an empty array if the file does not exist.\n */\nexport function parseMissionsFile(repoRoot: string): Mission[] {\n const missionsPath = path.join(repoRoot, \"docs\", \"missions\", \"MISSIONS.md\");\n\n let content: string;\n try {\n content = fs.readFileSync(missionsPath, \"utf-8\");\n } catch {\n return [];\n }\n\n const missions: Mission[] = [];\n\n for (const line of content.split(\"\\n\")) {\n const mission = parseRow(line);\n if (!mission) continue;\n missions.push(mission);\n }\n\n return missions;\n}\n","/**\n * Pull request board engine.\n * Uses `gh pr list` to fetch open and recently merged PRs.\n */\n\nimport { spawnSync } from \"node:child_process\";\n\n// ─── Types ─────────────────────────────────────────────────────\n\nexport interface PullRequest {\n number: number;\n title: string;\n state: \"open\" | \"merged\" | \"closed\";\n author: string;\n branch: string;\n url: string;\n mergedAt: string | null;\n}\n\nexport interface PrBoard {\n open: PullRequest[];\n merged: PullRequest[];\n}\n\n// ─── gh helpers ─────────────────────────────────────────────────\n\ninterface GhPrEntry {\n number: number;\n title: string;\n state: string;\n author: { login: string };\n headRefName: string;\n url: string;\n mergedAt: string | null;\n}\n\nfunction runGhPrList(\n repoRoot: string,\n extraArgs: string[],\n): GhPrEntry[] | null {\n try {\n const result = spawnSync(\n \"gh\",\n [\n \"pr\",\n \"list\",\n \"--json\",\n \"number,title,state,author,headRefName,url,mergedAt\",\n ...extraArgs,\n ],\n { cwd: repoRoot, encoding: \"utf-8\", timeout: 10_000 },\n );\n\n if (result.error || result.status !== 0) return null;\n\n const raw = result.stdout.trim();\n if (!raw) return null;\n\n return JSON.parse(raw) as GhPrEntry[];\n } catch {\n return null;\n }\n}\n\nfunction mapEntry(entry: GhPrEntry): PullRequest {\n const state = entry.state?.toLowerCase();\n return {\n number: entry.number,\n title: entry.title ?? \"\",\n state:\n state === \"merged\" ? \"merged\" : state === \"closed\" ? \"closed\" : \"open\",\n author: entry.author?.login ?? \"\",\n branch: entry.headRefName ?? \"\",\n url: entry.url ?? \"\",\n mergedAt: entry.mergedAt ?? null,\n };\n}\n\n// ─── Public API ─────────────────────────────────────────────────\n\n/**\n * Fetch open PRs from the repository.\n * Returns an empty array if `gh` is unavailable or the command fails.\n */\nexport function fetchOpenPrs(repoRoot: string): PullRequest[] {\n const entries = runGhPrList(repoRoot, [\"--limit\", \"50\"]);\n if (!entries) return [];\n return entries.map(mapEntry);\n}\n\n/**\n * Fetch recently merged PRs from the repository.\n * Returns an empty array if `gh` is unavailable or the command fails.\n */\nexport function fetchMergedPrs(\n repoRoot: string,\n limit: number = 20,\n): PullRequest[] {\n const entries = runGhPrList(repoRoot, [\n \"--state\",\n \"merged\",\n \"--limit\",\n String(limit),\n ]);\n if (!entries) return [];\n return entries\n .map(mapEntry)\n .sort((a, b) => {\n if (!a.mergedAt || !b.mergedAt) return 0;\n return new Date(b.mergedAt).getTime() - new Date(a.mergedAt).getTime();\n });\n}\n\n/**\n * Fetch both open and recently merged PRs.\n * Returns empty arrays if `gh` is unavailable.\n */\nexport function fetchPrs(repoRoot: string): PrBoard {\n return {\n open: fetchOpenPrs(repoRoot),\n merged: fetchMergedPrs(repoRoot),\n };\n}\n","import type { CommandResult } from \"./types.js\";\nimport { logSuccess, logWarn, logError, wasWarningLogged } from \"./utils.js\";\n\n/**\n * Emit a CommandResult to stdout.\n * --json mode: single JSON object.\n * Human mode: formatted log messages.\n */\nexport function emitResult(result: CommandResult, jsonMode: boolean): void {\n if (jsonMode) {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n\n // Human mode\n if (result.ok) {\n logSuccess(result.message);\n } else {\n logError(result.message);\n }\n\n const emittedWarnings = new Set<string>();\n for (const w of result.warnings) {\n if (emittedWarnings.has(w) || wasWarningLogged(w)) {\n continue;\n }\n emittedWarnings.add(w);\n logWarn(w);\n }\n}\n\n/**\n * Determine exit code from CommandResult.\n * 0 = ok:true, 1 = ok:false\n */\nexport function exitCode(result: CommandResult): number {\n return result.ok ? 0 : 1;\n}\n\n/**\n * Check if --json flag is present in args.\n * Removes it from the array and returns the flag state.\n */\nexport function extractJsonFlag(args: string[]): {\n jsonMode: boolean;\n cleanArgs: string[];\n} {\n const jsonMode = args.includes(\"--json\");\n const cleanArgs = args.filter((a) => a !== \"--json\");\n return { jsonMode, cleanArgs };\n}\n","import { initCommand } from \"./commands/init.js\";\nimport { addCommand } from \"./commands/add.js\";\nimport { statusCommand } from \"./commands/status.js\";\nimport { removeCommand } from \"./commands/remove.js\";\nimport { bridgeCommand } from \"./commands/bridge.js\";\nimport { upCommand } from \"./commands/up.js\";\nimport { downCommand } from \"./commands/down.js\";\nimport { serveCommand } from \"./commands/serve.js\";\nimport { initWorktreeCommand } from \"./commands/init-worktree.js\";\nimport { dashboardCommand } from \"./commands/dashboard.js\";\nimport { doctorCommand } from \"./commands/doctor.js\";\nimport { commsCommand } from \"./commands/comms.js\";\nimport { watchCommand } from \"./commands/watch.js\";\nimport { guiCommand } from \"./commands/gui.js\";\nimport { version } from \"./version.js\";\nimport { extractJsonFlag, emitResult, exitCode } from \"./output.js\";\nimport { resetLoggedWarnings, setJsonMode } from \"./utils.js\";\nimport { suggestCommand } from \"./cli-suggest.js\";\nimport type { CommandName, CommandResult } from \"./types.js\";\n\nconst HELP = `\n@hua-labs/tap — Cross-model AI agent communication setup\n\nUsage:\n tap <command> [options]\n\nCommands:\n init Initialize comms directory and state\n init-worktree Set up a new git worktree with tap\n add <runtime> Add a runtime instance (claude, codex, gemini)\n remove <instance> Remove an instance and rollback config\n status Show installed instances and bridge status\n bridge <sub> [inst] Manage bridges (start, stop, status)\n up Start all registered bridge daemons\n down Stop all running bridge daemons\n comms <pull|push> Sync comms directory with remote repo\n dashboard Show unified ops dashboard\n watch Monitor bridges and auto-restart stuck ones\n gui Start local web dashboard (http)\n doctor Diagnose tap infrastructure health\n serve Start tap MCP server (stdio)\n version Show version\n\nOptions:\n --help, -h Show help\n --json Machine-readable JSON output\n --comms-dir <path> Override comms directory path\n\nExamples:\n npx @hua-labs/tap init\n npx @hua-labs/tap init-worktree --path ../hua-wt-3 --branch feat/my-feature\n npx @hua-labs/tap add claude\n npx @hua-labs/tap add codex --name reviewer --port 4501\n npx @hua-labs/tap status\n`.trim();\n\nfunction normalizeCommandName(command: string | undefined): CommandName {\n switch (command) {\n case \"init\":\n case \"init-worktree\":\n case \"add\":\n case \"remove\":\n case \"status\":\n case \"bridge\":\n case \"up\":\n case \"down\":\n case \"comms\":\n case \"dashboard\":\n case \"doctor\":\n case \"serve\":\n case \"watch\":\n case \"gui\":\n return command;\n default:\n return \"unknown\";\n }\n}\n\nasync function main(): Promise<void> {\n const rawArgs = process.argv.slice(2);\n const { jsonMode, cleanArgs } = extractJsonFlag(rawArgs);\n resetLoggedWarnings();\n setJsonMode(jsonMode);\n const command = cleanArgs[0];\n\n if (!command || command === \"--help\" || command === \"-h\") {\n if (jsonMode) {\n console.log(JSON.stringify({ help: HELP }));\n } else {\n console.log(HELP);\n }\n process.exit(0);\n }\n\n if (command === \"version\" || command === \"--version\" || command === \"-v\") {\n if (jsonMode) {\n console.log(JSON.stringify({ version }));\n } else {\n console.log(`@hua-labs/tap v${version}`);\n }\n process.exit(0);\n }\n\n const commandArgs = cleanArgs.slice(1);\n let result: CommandResult;\n\n try {\n switch (command) {\n case \"init\":\n result = await initCommand(commandArgs);\n break;\n case \"init-worktree\":\n result = await initWorktreeCommand(commandArgs);\n break;\n case \"add\":\n result = await addCommand(commandArgs);\n break;\n case \"remove\":\n result = await removeCommand(commandArgs);\n break;\n case \"status\":\n result = await statusCommand(commandArgs);\n break;\n case \"bridge\":\n result = await bridgeCommand(commandArgs);\n break;\n case \"up\":\n result = await upCommand(commandArgs);\n break;\n case \"down\":\n result = await downCommand(commandArgs);\n break;\n case \"comms\":\n result = await commsCommand(commandArgs);\n break;\n case \"dashboard\":\n result = await dashboardCommand(commandArgs);\n break;\n case \"doctor\":\n result = await doctorCommand(commandArgs);\n break;\n case \"watch\":\n result = await watchCommand(commandArgs);\n break;\n case \"gui\":\n result = await guiCommand(commandArgs);\n break;\n case \"serve\": {\n // serve takes over stdio for MCP protocol — don't emit result on stdout\n const serveResult = await serveCommand(commandArgs);\n if (!serveResult.ok || serveResult.code === \"TAP_NO_OP\") {\n // Emit on error OR help (help returns ok+TAP_NO_OP but needs output)\n emitResult(serveResult, jsonMode);\n }\n process.exit(exitCode(serveResult));\n break;\n }\n default: {\n const suggestion = suggestCommand(command);\n const hint = suggestion\n ? `\\n\\nDid you mean: tap ${suggestion}?`\n : \"\\n\\nRun tap --help for a list of commands.\";\n result = {\n ok: false,\n command: \"unknown\",\n code: \"TAP_INVALID_ARGUMENT\",\n message: `Unknown command: ${command}${hint}`,\n warnings: [],\n data: { requestedCommand: command, suggestion },\n };\n break;\n }\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n result = {\n ok: false,\n command: normalizeCommandName(command),\n code: \"TAP_INTERNAL_ERROR\",\n message,\n warnings: [],\n data: command ? { requestedCommand: command } : {},\n };\n }\n\n emitResult(result, jsonMode);\n process.exit(exitCode(result));\n}\n\nmain();\n","/**\n * Command suggestion utilities for the tap CLI.\n * Extracted for testability.\n */\n\nexport const COMMANDS = [\n \"init\",\n \"init-worktree\",\n \"add\",\n \"remove\",\n \"status\",\n \"bridge\",\n \"up\",\n \"down\",\n \"comms\",\n \"dashboard\",\n \"doctor\",\n \"serve\",\n \"version\",\n] as const;\n\nexport function suggestCommand(input: string): string | null {\n let best: string | null = null;\n let bestDist = Infinity;\n for (const cmd of COMMANDS) {\n const d = levenshtein(input.toLowerCase(), cmd);\n if (d < bestDist && d <= Math.max(2, Math.floor(cmd.length / 2))) {\n bestDist = d;\n best = cmd;\n }\n }\n return best;\n}\n\nexport function levenshtein(a: string, b: string): number {\n const m = a.length;\n const n = b.length;\n const dp: number[][] = Array.from({ length: m + 1 }, () =>\n Array.from<number>({ length: n + 1 }).fill(0),\n );\n for (let i = 0; i <= m; i++) dp[i][0] = i;\n for (let j = 0; j <= n; j++) dp[0][j] = j;\n for (let i = 1; i <= m; i++) {\n for (let j = 1; j <= n; j++) {\n dp[i][j] =\n a[i - 1] === b[j - 1]\n ? dp[i - 1][j - 1]\n : 1 + Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]);\n }\n }\n return dp[m][n];\n}\n"],"mappings":"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","names":["fs","path","findRepoRoot","fs","path","fs","instancesDir","fs","path","fs","path","crypto","basename","fs","path","fs","path","tmp","fs","path","fs","os","path","spawnSync","fileURLToPath","version","fs","path","fileURLToPath","crypto","fs","path","findCodexConfigPath","canonicalizeTrustPath","fileURLToPath","fs","path","setNestedKey","path","fs","path","DEFAULT_APP_SERVER_URL","resolve","fs","path","fileURLToPath","fileURLToPath","fs","os","path","spawnSync","spawnSync","fs","spawnSync","spawnSync","execSync","spawnSync","spawnSync","execSync","fs","path","fs","fs","fs","path","net","resolve","resolve","fs","path","randomBytes","fs","path","execSync","version","major","randomBytes","fs","path","DEFAULT_APP_SERVER_URL","manualCommand","pid","healthy","healthyAt","fs","path","fs","path","resolve","resolveAgentName","computeFileHash","fs","path","getHeartbeatActivityMs","isSameInstanceHeartbeat","fs","setNestedKey","tmp","path","path","envPrefix","existsSync","readFileSync","renameSync","writeFileSync","path","existsSync","readFileSync","writeFileSync","renameSync","cleanupSuffix","path","fs","path","execSync","execSync","path","spawn","serveCommand","spawn","resolve","fs","path","execSync","version","formatAge","run","snapshot","existsSync","mkdirSync","readdirSync","readFileSync","renameSync","statSync","unlinkSync","writeFileSync","homedir","spawnSync","dirname","join","resolve","normalizeComparablePath","resolve","findCodexConfigPath","join","homedir","canonicalizeTrustPath","trustSelector","dirname","mkdirSync","writeFileSync","renameSync","buildCodexEnvEntries","existsSync","readFileSync","readdirSync","statSync","resolveHeartbeatInstanceId","spawnSync","unlinkSync","failures","execSync","spawnSync","fs","path","delay","resolve","fs","path","spawnSync","resolve"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts","../src/config/resolve.ts","../src/permissions/presets.ts","../src/config/instance-config.ts","../src/config/drift-detector.ts","../src/engine/termination.ts","../src/engine/review.ts","../src/engine/headless-loop.ts","../src/commands/init.ts","../src/state.ts","../src/config/index.ts","../src/version.ts","../src/permissions.ts","../src/toml.ts","../src/adapters/common.ts","../src/commands/add.ts","../src/adapters/claude.ts","../src/adapters/codex.ts","../src/artifact-backups.ts","../src/engine/bridge-codex-command.ts","../src/adapters/gemini.ts","../src/adapters/index.ts","../src/engine/bridge-paths.ts","../src/engine/bridge-file-io.ts","../src/engine/bridge-port-network.ts","../src/engine/bridge-windows-spawn.ts","../src/engine/bridge-unix-spawn.ts","../src/engine/bridge-process-control.ts","../src/engine/bridge-config.ts","../src/engine/bridge-state.ts","../src/engine/bridge-observability.ts","../src/engine/server-lifecycle.ts","../src/engine/codex-session-state.ts","../src/engine/bridge-app-server-health.ts","../src/engine/bridge-app-server-auth.ts","../src/runtime/resolve-node.ts","../src/engine/bridge-app-server-lifecycle.ts","../src/engine/bridge-startup.ts","../src/engine/bridge-orchestrator.ts","../src/engine/bridge-restart-plan.ts","../src/engine/health-monitor.ts","../src/commands/status.ts","../src/commands/remote-panel.ts","../src/receiver/codex-cli-polling-receiver.ts","../src/routing/tap-message-prompt.ts","../src/reviews/stale-meta.ts","../src/commands/status-profiles.ts","../src/commands/setup.ts","../src/commands/remove.ts","../src/engine/rollback.ts","../src/commands/bridge.ts","../src/commands/bridge-start.ts","../src/bridges/codex-bridge-runner.ts","../src/config/comms-path-drift.ts","../src/commands/bridge-helpers.ts","../src/commands/bridge-heartbeat.ts","../src/commands/bridge-stop.ts","../src/commands/bridge-watch.ts","../src/commands/bridge-status.ts","../src/commands/bridge-tui.ts","../src/commands/bridge-restart.ts","../src/engine/dashboard.ts","../src/commands/up.ts","../src/commands/down.ts","../src/commands/serve.ts","../src/commands/init-worktree.ts","../src/commands/dashboard.ts","../src/commands/doctor.ts","../src/commands/comms.ts","../src/commands/ready.ts","../src/presence-lookup.ts","../src/receiver/thread-cwd-match.ts","../src/receiver/codex-cli-loaded-thread-readiness.ts","../src/transport/experimental/codex-ipc-observe.ts","../src/transport/experimental/codex-ipc-endpoint.ts","../src/routing/windows-app-route-health.ts","../src/commands/ready-windows-route.ts","../src/transport/experimental/codex-ipc-control.ts","../src/transport/consent.ts","../src/transport/consent-ledger.ts","../src/commands/ready-profiles.ts","../src/commands/receiver.ts","../src/receiver/codex-cli-app-server-promotion.ts","../src/routing/codex-endpoint-profiles.ts","../src/receiver/supervised-receiver-promotion.ts","../src/commands/headless.ts","../src/receiver/headless-response-loop.ts","../src/commands/projection.ts","../src/projection/local-receiver-projection.ts","../src/projection/remote-projection-target.ts","../src/commands/uplink.ts","../src/uplink/local-append-only-uplink.ts","../src/uplink/remote-uplink-source.ts","../src/commands/watch.ts","../src/commands/gui.ts","../src/engine/missions.ts","../src/engine/pull-requests.ts","../src/commands/permissions.ts","../src/commands/reviews.ts","../src/reviews/registration.ts","../src/commands/sessions.ts","../src/commands/infra.ts","../src/commands/windows-route-recover.ts","../src/commands/app-route-freshness.ts","../src/commands/comms-doctor.ts","../src/commands/flow-doctor.ts","../src/output.ts","../src/cli.ts","../src/cli-suggest.ts"],"mappings":"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","names":["key","fs","path","findRepoRoot","fs","path","fs","instancesDir","fs","crypto","fs","path","crypto","spawnSync","extractPrNumber","reviewFilePath","fs","path","log","fs","path","spawnSync","fs","path","crypto","normalizeComparablePath","pathDrifted","basename","fs","path","fs","path","fs","path","fileURLToPath","version","warnings","warnings","tmp","resolvePath","spawnSync","warnings","fs","path","warnings","fs","path","crypto","fs","path","fs","path","fileURLToPath","fileURLToPath","findCodexConfigPath","warnings","fs","path","setNestedKey","warnings","path","fs","path","DEFAULT_APP_SERVER_URL","resolve","hostname","fs","os","path","spawnSync","fs","spawnSync","fs","spawnSync","spawnSync","execSync","spawnSync","spawnSync","execSync","fs","path","fs","fs","fs","path","net","WebSocket","resolve","hostname","resolve","fs","path","randomBytes","fs","path","execSync","version","major","randomBytes","fs","path","DEFAULT_APP_SERVER_URL","manualCommand","pid","healthy","healthyAt","fs","path","fs","path","resolve","fs","path","fs","path","getHeartbeatActivityMs","isSameInstanceHeartbeat","BRIDGE_STARTUP_LOCK_STALE_MS","resolveAgentName","warnings","computeFileHash","fs","fs","net","path","fs","path","fs","path","loadState","saveState","resolve","warnings","snapshot","unique","result","resolve","stripMetadata","parseHeaderFields","parseFilename","warnings","fs","path","unique","readJsonFile","relative","mutationId","status","blocked","evidenceStatus","evidenceMessage","rollbackStatus","rollbackMessage","fs","setNestedKey","tmp","path","randomBytes","fs","path","spawn","fileURLToPath","fileURLToPath","createHeadlessLoop","resolved","spawn","fs","path","normalize","unique","path","envPrefix","normalizeComparablePath","existsSync","readFileSync","renameSync","statSync","unlinkSync","writeFileSync","path","writeFileSync","statSync","unlinkSync","renameSync","readFileSync","existsSync","randomBytes","warnings","cleanupSuffix","warnings","warnings","fs","path","execSync","execSync","warnings","path","spawn","serveCommand","spawn","resolve","fs","path","execSync","warnings","execSync","version","formatAge","str","run","snapshot","existsSync","mkdirSync","readdirSync","readFileSync","renameSync","statSync","unlinkSync","writeFileSync","spawnSync","dirname","join","resolve","normalizeComparablePath","resolve","findCodexConfigPath","canonicalizeTrustPath","trustSelector","dirname","mkdirSync","writeFileSync","renameSync","buildCodexEnvEntries","existsSync","readFileSync","readdirSync","statSync","join","resolveHeartbeatInstanceId","spawnSync","unlinkSync","failures","state","instancesDir","execSync","spawnSync","fs","path","fs","path","spawnSync","fs","path","objectValue","stringValue","stringArray","normalizeAddress","fs","objectValue","net","randomUUID","tmpdir","resolveHostId","resolve","randomUUID","asRecord","resolve","fs","path","randomUUID","randomUUID","createHash","randomBytes","randomUUID","fs","os","path","normalizeString","normalizeString","randomUUID","fs","path","normalizeString","normalizeAddress","normalizeAddress","asRecord","listRecordKeys","randomUUID","resolve","yamlScalar","safeFileLabel","randomUUID","shellQuote","profileId","shellQuote","parsePositiveInteger","spawnSync","path","resolve","profileId","profileId","DEFAULT_APP_SERVER_REQUEST_TIMEOUT_MS","readSocketData","objectValue","getString","extractActiveTurnId","summarizeThread","resolve","DEFAULT_INTERVAL_MS","sleep","resolve","summarizeStatus","warnings","parseListFlag","collectRepeatedListFlag","result","path","spawn","fs","path","resolveReplyTarget","splitAddressList","resolve","spawn","parseListFlag","collectRepeatedListFlag","uniqueList","parseNumberFlag","path","fs","os","fs","path","DEFAULT_LOOKBACK_MINUTES","DEFAULT_INTERVAL_MS","DEFAULT_LIMIT","normalizeAddress","unique","safeStateName","parseFrontmatter","parseHeaderFields","parseFilename","splitAddressList","isForAgent","isOwnMessage","loadState","saveState","parseSinceMs","sleep","resolve","warnings","spawnSync","fs","os","path","APPEND_ONLY_DIRS","parseListFlag","collectRepeatedListFlag","parseNumberFlag","resolveMode","path","fs","os","fs","path","APPEND_ONLY_DIRS","DEFAULT_DIRS","DEFAULT_LOOKBACK_MINUTES","DEFAULT_INTERVAL_MS","DEFAULT_LIMIT","normalizeAddress","unique","safeStateName","parseFrontmatter","parseHeaderFields","parseStringArray","parseAddressField","parseFilename","parseMetadata","splitAddressList","isOwnMessage","loadState","saveState","parseSinceMs","listCandidateFiles","sleep","resolve","warnings","spawnSync","fs","path","defaultRunner","assertSafeSshTarget","assertSafeRemotePath","remoteDirPath","remoteRsyncSource","parseChangedCount","summarizeOutput","APPEND_ONLY_DIRS","parseListFlag","collectRepeatedListFlag","parseNumberFlag","resolveMode","mirrorDirsForRequest","delay","resolve","http","fs","path","spawnSync","str","resolve","fs","path","invalidArgument","relative","fs","createHash","os","path","createHash","fs","path","listMarkdownFiles","splitFrontmatter","inferSubjectFromFilename","extractPrNumber","relative","readIfExists","summarizeSeverity","hasFindings","yamlScalar","stripFencedCodeBlocks","invalidArgument","listMarkdownFiles","splitFrontmatter","inferSubjectFromFilename","extractPrNumber","inferRound","inferFromFilename","summarizeSeverity","stripFencedCodeBlocks","shortHash","createHash","yamlScalar","yamlNullable","fs","os","path","spawnSync","randomUUID","invalidArgument","spawnSync","randomUUID","warnings","fs","path","spawnSync","headlessRunnerStatusRunnerForTests","runHeadlessRunnerStatus","profileId","headlessRunnerStatusRunnerForTests","spawnSync","status","readJsonFile","stringValue","objectValue","schedulerClassification","fs","os","path","spawnSync","HELP","stringArray","readyCommand","run","spawnSync","readJsonFile","addCheck","logReport","HELP","fs","path","sleep","HELP","rec","str","invalid","proof","writeJsonAtomic","logReport","sleep","HELP","fs","path","HELP","str","rec","bool","finiteNumber","stringArray","unique","readJsonFile","positiveIntegerFlag","stringFlag","invalid","parseSurface","resolveStateDir","safeAgentLabel","parseOptions","scanInbox","timestampAgeSeconds","proof","workerStatus","parseFrontmatter","isSubpath","relative","logReport","HELP","fs","path","execFileSync","stringFlag","key","normalizeAddress","unique","stringValue","stringArray","readJsonFile","splitAddressList","isUnknownSender","requiresOwnSource","parseFrontmatter","parseHeaderFields","parseFilename","parseMetadata","sameFileContent","parseSinceMs","invalid","execFileSync","shellQuote","buildNextActions","reportStatus","warnings","HELP","main"]}
|