@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.
Files changed (47) hide show
  1. package/AI_GUIDE.md +165 -0
  2. package/CHANGELOG.md +67 -0
  3. package/README.md +201 -12
  4. package/dist/bridges/codex-app-server-auth-gateway.mjs +16 -1
  5. package/dist/bridges/codex-app-server-auth-gateway.mjs.map +1 -1
  6. package/dist/bridges/codex-app-server-bridge.d.mts +105 -12
  7. package/dist/bridges/codex-app-server-bridge.mjs +3149 -251
  8. package/dist/bridges/codex-app-server-bridge.mjs.map +1 -1
  9. package/dist/bridges/codex-bridge-runner.d.mts +4 -1
  10. package/dist/bridges/codex-bridge-runner.mjs +512 -58
  11. package/dist/bridges/codex-bridge-runner.mjs.map +1 -1
  12. package/dist/bridges/codex-remote-ipc-relay.d.mts +1 -0
  13. package/dist/bridges/codex-remote-ipc-relay.mjs +1912 -0
  14. package/dist/bridges/codex-remote-ipc-relay.mjs.map +1 -0
  15. package/dist/bridges/gemini-ide-companion-runner.mjs.map +1 -1
  16. package/dist/cli.mjs +30944 -8415
  17. package/dist/cli.mjs.map +1 -1
  18. package/dist/codex-a2a/index.d.mts +2 -0
  19. package/dist/codex-a2a/index.mjs +416 -0
  20. package/dist/codex-a2a/index.mjs.map +1 -0
  21. package/dist/codex-health/index.d.mts +76 -0
  22. package/dist/codex-health/index.mjs +153 -0
  23. package/dist/codex-health/index.mjs.map +1 -0
  24. package/dist/codex-ipc/index.d.mts +2 -0
  25. package/dist/codex-ipc/index.mjs +1834 -0
  26. package/dist/codex-ipc/index.mjs.map +1 -0
  27. package/dist/index-D4Khz2Mh.d.mts +206 -0
  28. package/dist/index-DMToLyGd.d.mts +256 -0
  29. package/dist/index.d.mts +763 -8
  30. package/dist/index.mjs +11600 -3449
  31. package/dist/index.mjs.map +1 -1
  32. package/dist/mcp-server.mjs +8838 -811
  33. package/dist/mcp-server.mjs.map +1 -1
  34. package/dist/types-FWvKrFUt.d.mts +43 -0
  35. package/examples/01-logic-battle-known-broken.md +46 -0
  36. package/examples/02-cross-model-review-root-cause.md +37 -0
  37. package/examples/03-convergence-pattern.md +42 -0
  38. package/examples/04-tower-broadcast.md +41 -0
  39. package/examples/05-self-awareness-paradox.md +49 -0
  40. package/examples/06-session-resurrection.md +37 -0
  41. package/examples/07-ghost-agent.md +31 -0
  42. package/examples/08-naming-creates-identity.md +36 -0
  43. package/examples/09-ceo-as-middleware.md +52 -0
  44. package/examples/10-files-as-interface.md +67 -0
  45. package/examples/README.md +34 -0
  46. package/examples/tap-profile-pack.example.json +71 -0
  47. package/package.json +21 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/config/resolve.ts","../src/permissions/presets.ts","../src/config/instance-config.ts","../src/config/index.ts","../src/state.ts","../src/engine/bridge-paths.ts","../src/engine/bridge-file-io.ts","../src/engine/bridge-port-network.ts","../src/engine/bridge-process-control.ts","../src/engine/bridge-state.ts","../src/engine/bridge-observability.ts","../src/adapters/common.ts","../src/engine/bridge-codex-command.ts","../src/engine/bridge-windows-spawn.ts","../src/engine/bridge-unix-spawn.ts","../src/engine/bridge-config.ts","../src/engine/server-lifecycle.ts","../src/engine/codex-session-state.ts","../src/engine/bridge-app-server-health.ts","../src/runtime/resolve-node.ts","../src/runtime/index.ts","../src/engine/bridge-app-server-auth.ts","../src/engine/bridge-app-server-lifecycle.ts","../src/engine/bridge-startup.ts","../src/engine/bridge-orchestrator.ts","../src/engine/bridge.ts","../src/engine/dashboard.ts","../src/adapters/claude.ts","../src/artifact-backups.ts","../src/toml.ts","../src/adapters/codex.ts","../src/adapters/gemini.ts","../src/adapters/index.ts","../src/commands/bridge-helpers.ts","../src/commands/bridge-heartbeat.ts","../src/commands/bridge-start.ts","../src/commands/bridge-stop.ts","../src/commands/bridge-watch.ts","../src/engine/health-monitor.ts","../src/commands/bridge-status.ts","../src/commands/bridge-tui.ts","../src/commands/bridge-restart.ts","../src/commands/bridge.ts","../src/commands/up.ts","../src/commands/down.ts","../src/index.ts","../src/version.ts","../src/bridges/gemini-ide-companion.ts","../src/bridges/gemini-ide-process.ts","../src/api/state.ts","../src/api/http.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","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 * 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 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 { 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","/**\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 * 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 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 * 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","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","/**\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","export type { ResolvedRuntime, RuntimeSource } from \"./resolve-node.js\";\n\nexport {\n resolveNodeRuntime,\n buildRuntimeEnv,\n readNodeVersion,\n probeFnmNode,\n detectNodeMajorVersion,\n checkStripTypesSupport,\n findTsxFallback,\n getFnmBinDir,\n} from \"./resolve-node.js\";\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","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","// ─── Extracted modules ─────────────────────────────────────────\n\nexport {\n appServerLogFilePath,\n appServerGatewayLogFilePath,\n appServerGatewayTokenFilePath,\n stderrLogFilePath,\n pidFilePath,\n logFilePath,\n runtimeHeartbeatFilePath,\n runtimeThreadStateFilePath,\n} from \"./bridge-paths.js\";\n\nexport {\n writeProtectedTextFile,\n removeFileIfExists,\n toPowerShellSingleQuotedString,\n toPowerShellStringArrayLiteral,\n} from \"./bridge-file-io.js\";\n\nexport {\n getWebSocketCtor,\n delay,\n isLoopbackHost,\n allocateLoopbackPort,\n isTcpPortAvailable,\n findNextAvailableAppServerPort,\n waitForPortRelease,\n} from \"./bridge-port-network.js\";\n\nexport {\n resolveCodexCommand,\n splitResolvedCommand,\n resolvePowerShellCommand,\n resolveAuthGatewayScript,\n} from \"./bridge-codex-command.js\";\n\nexport {\n cleanupStaleWindowsSpawnWrappers,\n buildWindowsDetachedWrapperScript,\n startWindowsDetachedProcess,\n startWindowsCodexAppServer,\n findListeningProcessId,\n} from \"./bridge-windows-spawn.js\";\n\nexport {\n startUnixDetachedProcess,\n startUnixCodexAppServer,\n findUnixListeningProcessId,\n} from \"./bridge-unix-spawn.js\";\n\nexport {\n isProcessAlive,\n terminateProcess,\n stopManagedAppServer,\n} from \"./bridge-process-control.js\";\n\nexport {\n resolveAgentName,\n inferRestartMode,\n cleanupHeadlessDispatch,\n} from \"./bridge-config.js\";\n\nexport {\n loadBridgeState,\n saveBridgeState,\n clearBridgeState,\n isBridgeRunning,\n loadRuntimeBridgeHeartbeat,\n loadRuntimeBridgeThreadState,\n transitionBridgeLifecycle,\n} from \"./bridge-state.js\";\n\nexport type {\n RuntimeBridgeHeartbeat,\n RuntimeBridgeThreadState,\n} from \"./bridge-state.js\";\n\nexport {\n updateBridgeHeartbeat,\n getHeartbeatAge,\n getBridgeHeartbeatTimestamp,\n getBridgeStatus,\n getTurnInfo,\n isTurnStuck,\n rotateLog,\n} from \"./bridge-observability.js\";\n\nexport type { TurnInfo } from \"./bridge-observability.js\";\n\nexport {\n resolveBridgeLifecycleSnapshot,\n deriveBridgeLifecycleState,\n} from \"./server-lifecycle.js\";\n\nexport type {\n BridgePresence,\n BridgeLifecycleStatus,\n BridgeLifecycleSnapshot,\n DeriveBridgeLifecycleOptions,\n} from \"./server-lifecycle.js\";\n\nexport { deriveCodexSessionState } from \"./codex-session-state.js\";\n\nexport type {\n CodexSessionTurnState,\n CodexSessionStatus,\n CodexSessionSnapshot,\n DeriveCodexSessionOptions,\n} from \"./codex-session-state.js\";\n\nexport {\n checkAppServerHealth,\n waitForAppServerHealth,\n buildAppServerReadyzUrl,\n checkAppServerReadyz,\n checkTcpPortListening,\n checkManagedAppServerReady,\n waitForTcpPortListening,\n waitForManagedAppServerReady,\n markAppServerHealthy,\n APP_SERVER_HEALTH_TIMEOUT_MS,\n APP_SERVER_HEALTH_RETRY_MS,\n APP_SERVER_READYZ_PATH,\n} from \"./bridge-app-server-health.js\";\n\nexport type {\n WebSocketLike,\n WebSocketCtor,\n AppServerReadyzStatus,\n} from \"./bridge-app-server-health.js\";\n\nexport {\n buildProtectedAppServerUrl,\n readGatewayTokenFromPath,\n readGatewayToken,\n materializeGatewayTokenFile,\n createManagedAppServerAuth,\n canReuseManagedAppServer,\n AUTH_SUBPROTOCOL_PREFIX,\n} from \"./bridge-app-server-auth.js\";\n\nexport type { EnsureCodexAppServerOptions } from \"./bridge-app-server-lifecycle.js\";\n\nexport {\n DEFAULT_APP_SERVER_URL,\n APP_SERVER_START_TIMEOUT_MS,\n APP_SERVER_GATEWAY_START_TIMEOUT_MS,\n isAppServerUsedByOtherBridge,\n findReusableManagedAppServer,\n resolveAppServerUrl,\n ensureCodexAppServer,\n formatCodexAppServerCommand,\n} from \"./bridge-app-server-lifecycle.js\";\n\nexport type { BridgeStartOptions } from \"./bridge-startup.js\";\n\nexport { getBridgeRuntimeStateDir, startBridge } from \"./bridge-startup.js\";\nexport type {\n BridgeStopOptions,\n RestartBridgeOptions,\n} from \"./bridge-orchestrator.js\";\n\nexport { stopBridge, restartBridge } from \"./bridge-orchestrator.js\";\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 * 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 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","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 * 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 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 {\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 * 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 { 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 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 * 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","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 { 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","export type {\n RuntimeName,\n BridgeMode,\n Platform,\n InstanceId,\n AdapterContext,\n ProbeResult,\n PatchPlan,\n PatchOp,\n PatchOpType,\n OwnedArtifact,\n ArtifactKind,\n ApplyResult,\n VerifyResult,\n VerifyCheck,\n RuntimeAdapter,\n TapState,\n TapStateV1,\n InstanceState,\n /** @deprecated Use InstanceState. Will be removed in 0.2.0. */\n RuntimeState,\n BridgeState,\n AppServerState,\n AppServerAuthState,\n CommandName,\n CommandCode,\n CommandResult,\n} from \"./types.js\";\n\nexport {\n loadState,\n saveState,\n createInitialState,\n stateExists,\n} from \"./state.js\";\nexport { version } from \"./version.js\";\nexport type {\n GeminiIdeCompanionServer,\n GeminiIdeCompanionServerOptions,\n GeminiIdeContext,\n GeminiIdeCursor,\n GeminiIdeFile,\n GeminiIdeInfo,\n} from \"./bridges/gemini-ide-companion.js\";\nexport { startGeminiIdeCompanionServer } from \"./bridges/gemini-ide-companion.js\";\n\n// Config\nexport type {\n TapSharedConfig,\n TapLocalConfig,\n TapResolvedConfig,\n ConfigSource,\n ConfigResolution,\n ConfigOverrides,\n} from \"./config/index.js\";\nexport {\n resolveConfig,\n loadSharedConfig,\n loadLocalConfig,\n saveSharedConfig,\n saveLocalConfig,\n normalizeTapPath,\n SHARED_CONFIG_FILE,\n LOCAL_CONFIG_FILE,\n} from \"./config/index.js\";\n\n// Bridge engine\nexport {\n /** @deprecated Internal use only. Will be removed in 0.2.0. */\n updateBridgeHeartbeat,\n getHeartbeatAge,\n} from \"./engine/bridge-observability.js\";\nexport { rotateLog, restartBridge } from \"./engine/bridge.js\";\n\n// Dashboard / State API\nexport type {\n AgentInfo,\n BridgeInfo,\n PRInfo,\n DashboardWarning,\n DashboardSnapshot,\n} from \"./engine/dashboard.js\";\nexport { collectDashboardSnapshot } from \"./engine/dashboard.js\";\n\n// State/Control API (M105)\nexport type {\n StateApiOptions,\n EventStreamOptions,\n AgentControlOptions,\n AgentControlResult,\n HealthReport,\n} from \"./api/state.js\";\nexport {\n getDashboardSnapshot,\n streamEvents,\n getConfig,\n getHealthReport,\n startAgents,\n stopAgents,\n} from \"./api/state.js\";\nexport type { HttpServerOptions } from \"./api/http.js\";\nexport { startHttpServer } from \"./api/http.js\";\n\n// Runtime resolver\nexport type { ResolvedRuntime, RuntimeSource } from \"./runtime/index.js\";\nexport {\n resolveNodeRuntime,\n buildRuntimeEnv,\n readNodeVersion,\n probeFnmNode,\n getFnmBinDir,\n} from \"./runtime/index.js\";\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 os from \"node:os\";\nimport * as path from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport {\n createServer,\n type IncomingMessage,\n type Server as HttpServer,\n type ServerResponse,\n} from \"node:http\";\nimport type { AddressInfo } from \"node:net\";\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\nimport {\n CallToolRequestSchema,\n ErrorCode,\n ListToolsRequestSchema,\n McpError,\n} from \"@modelcontextprotocol/sdk/types.js\";\nimport { detectGeminiIdeProcessPid } from \"./gemini-ide-process.js\";\n\nexport interface GeminiIdeCursor {\n line: number;\n character: number;\n}\n\nexport interface GeminiIdeFile {\n path: string;\n timestamp: number;\n isActive?: boolean;\n cursor?: GeminiIdeCursor;\n selectedText?: string;\n}\n\nexport interface GeminiIdeContext {\n workspaceState?: {\n openFiles?: GeminiIdeFile[];\n isTrusted?: boolean;\n };\n}\n\nexport interface GeminiIdeInfo {\n name: string;\n displayName: string;\n}\n\nexport interface GeminiIdeCompanionServerOptions {\n port?: number;\n host?: string;\n endpointPath?: string;\n authToken?: string;\n enableDiscoveryFile?: boolean;\n discoveryPid?: number;\n workspacePaths?: string[];\n ideInfo?: GeminiIdeInfo;\n logger?: {\n info?: (...args: unknown[]) => void;\n warn?: (...args: unknown[]) => void;\n error?: (...args: unknown[]) => void;\n };\n}\n\nexport interface GeminiIdeCompanionServer {\n readonly port: number;\n readonly host: string;\n readonly url: string;\n readonly endpointPath: string;\n readonly authToken: string;\n readonly discoveryFilePath: string | null;\n sessionIds(): string[];\n sendDiffAccepted(\n filePath: string,\n content?: string,\n sessionId?: string,\n ): Promise<string[]>;\n sendDiffRejected(filePath: string, sessionId?: string): Promise<string[]>;\n sendContextUpdate(\n context: GeminiIdeContext,\n sessionId?: string,\n ): Promise<string[]>;\n close(): Promise<void>;\n}\n\ninterface GeminiSession {\n mcpServer: Server;\n transport: StreamableHTTPServerTransport;\n diffContents: Map<string, string>;\n}\n\nconst DEFAULT_IDE_INFO: GeminiIdeInfo = {\n name: \"tap\",\n displayName: \"TAP Gemini Companion\",\n};\n\nfunction readBearerToken(req: IncomingMessage): string | null {\n const authorization = req.headers.authorization;\n if (!authorization) {\n return null;\n }\n\n const [scheme, token] = authorization.split(/\\s+/, 2);\n if (!scheme || !token || scheme.toLowerCase() !== \"bearer\") {\n return null;\n }\n\n return token;\n}\n\nfunction writeJson(\n res: ServerResponse,\n statusCode: number,\n body: Record<string, unknown>,\n): void {\n res.writeHead(statusCode, { \"content-type\": \"application/json\" });\n res.end(JSON.stringify(body));\n}\n\nfunction createSession(): GeminiSession {\n const diffContents = new Map<string, string>();\n const transport = new StreamableHTTPServerTransport({\n sessionIdGenerator: () => randomUUID(),\n });\n const mcpServer = new Server(\n {\n name: \"tap-gemini-ide-companion\",\n version: \"0.1.0\",\n },\n {\n capabilities: {\n tools: {\n listChanged: false,\n },\n },\n },\n );\n\n mcpServer.setRequestHandler(ListToolsRequestSchema, async () => ({\n tools: [\n {\n name: \"openDiff\",\n description: \"Open a diff view for a file inside the IDE companion.\",\n inputSchema: {\n type: \"object\",\n properties: {\n filePath: { type: \"string\" },\n newContent: { type: \"string\" },\n },\n required: [\"filePath\", \"newContent\"],\n },\n },\n {\n name: \"closeDiff\",\n description: \"Close an open diff view and return the final content.\",\n inputSchema: {\n type: \"object\",\n properties: {\n filePath: { type: \"string\" },\n suppressNotification: { type: \"boolean\" },\n },\n required: [\"filePath\"],\n },\n },\n ],\n }));\n\n mcpServer.setRequestHandler(CallToolRequestSchema, async (request) => {\n switch (request.params.name) {\n case \"openDiff\": {\n const filePath = request.params.arguments?.filePath;\n const newContent = request.params.arguments?.newContent;\n\n if (typeof filePath !== \"string\" || typeof newContent !== \"string\") {\n throw new McpError(\n ErrorCode.InvalidParams,\n \"openDiff requires string filePath and newContent arguments.\",\n );\n }\n\n diffContents.set(filePath, newContent);\n return { content: [] };\n }\n\n case \"closeDiff\": {\n const filePath = request.params.arguments?.filePath;\n const suppressNotification =\n request.params.arguments?.suppressNotification;\n if (typeof filePath !== \"string\") {\n throw new McpError(\n ErrorCode.InvalidParams,\n \"closeDiff requires a string filePath argument.\",\n );\n }\n if (\n suppressNotification !== undefined &&\n typeof suppressNotification !== \"boolean\"\n ) {\n throw new McpError(\n ErrorCode.InvalidParams,\n \"closeDiff suppressNotification must be a boolean when provided.\",\n );\n }\n\n const content = diffContents.get(filePath) ?? null;\n diffContents.delete(filePath);\n\n if (content !== null && !suppressNotification) {\n await transport.send({\n jsonrpc: \"2.0\",\n method: \"ide/diffRejected\",\n params: { filePath },\n });\n }\n\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify({ content }),\n },\n ],\n };\n }\n\n default:\n throw new McpError(\n ErrorCode.InvalidParams,\n `Unknown tool: ${request.params.name}`,\n );\n }\n });\n\n return {\n mcpServer,\n transport,\n diffContents,\n };\n}\n\nfunction resolveDiscoveryFilePath(pid: number, port: number): string {\n return path.join(\n os.tmpdir(),\n \"gemini\",\n \"ide\",\n `gemini-ide-server-${pid}-${port}.json`,\n );\n}\n\nfunction writeDiscoveryFile(options: {\n port: number;\n pid: number;\n authToken: string;\n workspacePaths: string[];\n ideInfo: GeminiIdeInfo;\n}): string {\n const filePath = resolveDiscoveryFilePath(options.pid, options.port);\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(\n filePath,\n JSON.stringify(\n {\n port: options.port,\n workspacePath: options.workspacePaths.join(path.delimiter),\n authToken: options.authToken,\n ideInfo: options.ideInfo,\n },\n null,\n 2,\n ) + \"\\n\",\n \"utf-8\",\n );\n return filePath;\n}\n\nfunction removeFileIfExists(filePath: string | null): void {\n if (!filePath) {\n return;\n }\n\n try {\n fs.unlinkSync(filePath);\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== \"ENOENT\") {\n throw error;\n }\n }\n}\n\nexport async function startGeminiIdeCompanionServer(\n options: GeminiIdeCompanionServerOptions = {},\n): Promise<GeminiIdeCompanionServer> {\n const host = options.host ?? \"127.0.0.1\";\n const port = options.port ?? 0;\n const endpointPath = options.endpointPath ?? \"/mcp\";\n const authToken = options.authToken ?? randomUUID();\n const ideInfo = options.ideInfo ?? DEFAULT_IDE_INFO;\n const sessions = new Map<string, GeminiSession>();\n let resolvedPort = port;\n\n const httpServer: HttpServer = createServer(async (req, res) => {\n try {\n const requestUrl = new URL(\n req.url ?? \"/\",\n `http://${req.headers.host ?? `${host}:${resolvedPort}`}`,\n );\n\n if (requestUrl.pathname !== endpointPath) {\n writeJson(res, 404, { error: \"Not found\" });\n return;\n }\n\n const suppliedToken = readBearerToken(req);\n if (suppliedToken !== authToken) {\n res.setHeader(\"www-authenticate\", 'Bearer realm=\"gemini-ide\"');\n writeJson(res, 401, { error: \"Unauthorized\" });\n return;\n }\n\n const sessionIdHeader = req.headers[\"mcp-session-id\"];\n const sessionId =\n typeof sessionIdHeader === \"string\" ? sessionIdHeader : null;\n\n if (!sessionId) {\n if (req.method !== \"POST\") {\n writeJson(res, 400, {\n error: \"Missing MCP session ID for non-initialization request.\",\n });\n return;\n }\n\n const session = createSession();\n session.transport.onclose = () => {\n const activeSessionId = session.transport.sessionId;\n if (activeSessionId) {\n sessions.delete(activeSessionId);\n }\n };\n\n await session.mcpServer.connect(session.transport);\n await session.transport.handleRequest(req, res);\n\n const initializedSessionId = session.transport.sessionId;\n if (initializedSessionId) {\n sessions.set(initializedSessionId, session);\n }\n return;\n }\n\n const existingSession = sessions.get(sessionId);\n if (!existingSession) {\n writeJson(res, 404, { error: `Unknown MCP session: ${sessionId}` });\n return;\n }\n\n await existingSession.transport.handleRequest(req, res);\n } catch (error) {\n options.logger?.error?.(\"[gemini-ide-companion] request failed\", error);\n if (!res.headersSent) {\n writeJson(res, 500, { error: \"Internal server error\" });\n } else {\n res.end();\n }\n }\n });\n\n await new Promise<void>((resolve, reject) => {\n httpServer.once(\"error\", reject);\n httpServer.listen(port, host, () => {\n httpServer.off(\"error\", reject);\n resolve();\n });\n });\n\n const resolvedAddress = httpServer.address();\n if (!resolvedAddress || typeof resolvedAddress === \"string\") {\n throw new Error(\"Failed to resolve Gemini IDE companion listen address.\");\n }\n\n resolvedPort = (resolvedAddress as AddressInfo).port;\n const workspacePaths = (options.workspacePaths ?? [])\n .map((workspacePath) => path.resolve(workspacePath))\n .filter(Boolean);\n\n let discoveryFilePath: string | null = null;\n try {\n if (options.enableDiscoveryFile) {\n if (workspacePaths.length === 0) {\n throw new Error(\n \"workspacePaths is required when enableDiscoveryFile is true.\",\n );\n }\n\n const discoveryPid =\n options.discoveryPid ?? (await detectGeminiIdeProcessPid());\n\n discoveryFilePath = writeDiscoveryFile({\n port: resolvedPort,\n pid: discoveryPid,\n authToken,\n workspacePaths,\n ideInfo,\n });\n }\n } catch (error) {\n await new Promise<void>((resolve, reject) => {\n httpServer.close((closeError) => {\n if (closeError) {\n reject(closeError);\n return;\n }\n resolve();\n });\n });\n throw error;\n }\n\n const close = async (): Promise<void> => {\n removeFileIfExists(discoveryFilePath);\n\n const closePromises = [...sessions.values()].map(async (session) => {\n await session.mcpServer.close();\n session.diffContents.clear();\n });\n await Promise.all(closePromises);\n sessions.clear();\n\n await new Promise<void>((resolve, reject) => {\n httpServer.close((error) => {\n if (error) {\n reject(error);\n return;\n }\n resolve();\n });\n });\n };\n\n const sendContextUpdate = async (\n context: GeminiIdeContext,\n sessionId?: string,\n ): Promise<string[]> => {\n const targets = sessionId\n ? [[sessionId, sessions.get(sessionId) ?? null] as const]\n : [...sessions.entries()].map(([id, session]) => [id, session] as const);\n const delivered: string[] = [];\n\n for (const [targetSessionId, session] of targets) {\n if (!session) {\n continue;\n }\n\n await session.transport.send({\n jsonrpc: \"2.0\",\n method: \"ide/contextUpdate\",\n params: context as Record<string, unknown>,\n });\n delivered.push(targetSessionId);\n }\n\n return delivered;\n };\n\n const sendDiffAccepted = async (\n filePath: string,\n content?: string,\n sessionId?: string,\n ): Promise<string[]> => {\n const targets = sessionId\n ? [[sessionId, sessions.get(sessionId) ?? null] as const]\n : [...sessions.entries()].map(([id, session]) => [id, session] as const);\n const delivered: string[] = [];\n\n for (const [targetSessionId, session] of targets) {\n if (!session) {\n continue;\n }\n\n const finalContent = content ?? session.diffContents.get(filePath);\n if (typeof finalContent !== \"string\") {\n continue;\n }\n\n await session.transport.send({\n jsonrpc: \"2.0\",\n method: \"ide/diffAccepted\",\n params: { filePath, content: finalContent },\n });\n session.diffContents.delete(filePath);\n delivered.push(targetSessionId);\n }\n\n return delivered;\n };\n\n const sendDiffRejected = async (\n filePath: string,\n sessionId?: string,\n ): Promise<string[]> => {\n const targets = sessionId\n ? [[sessionId, sessions.get(sessionId) ?? null] as const]\n : [...sessions.entries()].map(([id, session]) => [id, session] as const);\n const delivered: string[] = [];\n\n for (const [targetSessionId, session] of targets) {\n if (!session) {\n continue;\n }\n if (!sessionId && !session.diffContents.has(filePath)) {\n continue;\n }\n\n await session.transport.send({\n jsonrpc: \"2.0\",\n method: \"ide/diffRejected\",\n params: { filePath },\n });\n session.diffContents.delete(filePath);\n delivered.push(targetSessionId);\n }\n\n return delivered;\n };\n\n return {\n port: resolvedPort,\n host,\n url: `http://${host}:${resolvedPort}${endpointPath}`,\n endpointPath,\n authToken,\n discoveryFilePath,\n sessionIds: () => [...sessions.keys()],\n sendDiffAccepted,\n sendDiffRejected,\n sendContextUpdate,\n close,\n };\n}\n","import { exec } from \"node:child_process\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { promisify } from \"node:util\";\n\nconst execAsync = promisify(exec);\nconst MAX_TRAVERSAL_DEPTH = 32;\nconst WINDOWS_PROCESS_TABLE_COMMAND =\n \"Get-CimInstance Win32_Process | Select-Object ProcessId,ParentProcessId,Name,CommandLine | ConvertTo-Json -Compress\";\n\ninterface ProcessEntry {\n pid: number;\n parentPid: number;\n name: string;\n command: string;\n}\n\nasync function getWindowsProcessTable(): Promise<Map<number, ProcessEntry>> {\n const processMap = new Map<number, ProcessEntry>();\n\n try {\n const { stdout } = await execAsync(\n `powershell \"${WINDOWS_PROCESS_TABLE_COMMAND}\"`,\n {\n maxBuffer: 10 * 1024 * 1024,\n },\n );\n\n if (!stdout.trim()) {\n return processMap;\n }\n\n let processes: unknown = JSON.parse(stdout);\n if (!Array.isArray(processes)) {\n processes = [processes];\n }\n\n for (const processInfo of processes as unknown[]) {\n if (\n !processInfo ||\n typeof processInfo !== \"object\" ||\n typeof (processInfo as { ProcessId?: unknown }).ProcessId !== \"number\"\n ) {\n continue;\n }\n\n const processId = (processInfo as { ProcessId: number }).ProcessId;\n processMap.set(processId, {\n pid: processId,\n parentPid:\n typeof (processInfo as { ParentProcessId?: unknown })\n .ParentProcessId === \"number\"\n ? ((processInfo as { ParentProcessId: number }).ParentProcessId ??\n 0)\n : 0,\n name:\n typeof (processInfo as { Name?: unknown }).Name === \"string\"\n ? (processInfo as { Name: string }).Name\n : \"\",\n command:\n typeof (processInfo as { CommandLine?: unknown }).CommandLine ===\n \"string\"\n ? (processInfo as { CommandLine: string }).CommandLine\n : \"\",\n });\n }\n } catch {\n return processMap;\n }\n\n return processMap;\n}\n\nasync function getUnixProcessInfo(pid: number): Promise<ProcessEntry | null> {\n try {\n const { stdout } = await execAsync(`ps -o ppid=,command= -p ${pid}`);\n const trimmed = stdout.trim();\n if (!trimmed) {\n return null;\n }\n\n const [parentPidText, ...commandParts] = trimmed.split(/\\s+/);\n const parentPid = Number.parseInt(parentPidText ?? \"\", 10);\n const command = commandParts.join(\" \").trim();\n\n return {\n pid,\n parentPid: Number.isFinite(parentPid) ? parentPid : 0,\n name: path.basename(command.split(\" \")[0] ?? \"\"),\n command,\n };\n } catch {\n return null;\n }\n}\n\nasync function detectWindowsIdePid(): Promise<number> {\n const processMap = await getWindowsProcessTable();\n const currentProcess = processMap.get(process.pid);\n\n if (!currentProcess) {\n return process.pid;\n }\n\n const ancestors: ProcessEntry[] = [];\n let current: ProcessEntry | undefined = currentProcess;\n\n for (let i = 0; i < MAX_TRAVERSAL_DEPTH && current; i += 1) {\n ancestors.push(current);\n\n if (current.parentPid === 0 || !processMap.has(current.parentPid)) {\n break;\n }\n\n current = processMap.get(current.parentPid);\n }\n\n if (ancestors.length >= 3) {\n return ancestors[ancestors.length - 3]?.pid ?? process.pid;\n }\n\n return ancestors[ancestors.length - 1]?.pid ?? process.pid;\n}\n\nasync function detectUnixIdePid(): Promise<number> {\n const shells = new Set([\n \"zsh\",\n \"bash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"ksh\",\n \"fish\",\n \"dash\",\n ]);\n let currentPid = process.pid;\n\n for (let i = 0; i < MAX_TRAVERSAL_DEPTH; i += 1) {\n const processInfo = await getUnixProcessInfo(currentPid);\n if (!processInfo) {\n break;\n }\n\n if (shells.has(processInfo.name)) {\n let idePid = processInfo.parentPid;\n const grandParentInfo =\n processInfo.parentPid > 1\n ? await getUnixProcessInfo(processInfo.parentPid)\n : null;\n\n if (grandParentInfo && grandParentInfo.parentPid > 1) {\n idePid = grandParentInfo.parentPid;\n }\n\n return idePid > 0 ? idePid : currentPid;\n }\n\n if (processInfo.parentPid <= 1) {\n break;\n }\n\n currentPid = processInfo.parentPid;\n }\n\n return currentPid;\n}\n\nexport async function detectGeminiIdeProcessPid(): Promise<number> {\n const explicitPid = Number.parseInt(process.env.GEMINI_CLI_IDE_PID ?? \"\", 10);\n if (Number.isFinite(explicitPid) && explicitPid > 0) {\n return explicitPid;\n }\n\n if (os.platform() === \"win32\") {\n return detectWindowsIdePid();\n }\n\n return detectUnixIdePid();\n}\n","/**\n * State/Control API — programmatic access to tap state.\n * GUI and autopilot consume these functions instead of shelling out to CLI.\n *\n * M105 P1: getDashboardSnapshot, streamEvents (read-only)\n * M105 P2: startAgents, stopAgents (write — wraps tap up/down)\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { collectDashboardSnapshot } from \"../engine/dashboard.js\";\nimport type { DashboardSnapshot } from \"../engine/dashboard.js\";\nimport { findRepoRoot } from \"../utils.js\";\nimport { resolveConfig } from \"../config/index.js\";\nimport { loadState } from \"../state.js\";\nimport type { CommandResult } from \"../types.js\";\n\nexport interface StateApiOptions {\n repoRoot?: string;\n commsDir?: string;\n}\n\n/**\n * Get a point-in-time snapshot of all tap state:\n * agents, bridges, PRs, and warnings.\n *\n * This is the read-only entry point for GUI dashboards and autopilot.\n */\nexport function getDashboardSnapshot(\n options?: StateApiOptions,\n): DashboardSnapshot {\n const repoRoot = options?.repoRoot ?? findRepoRoot();\n return collectDashboardSnapshot(repoRoot, options?.commsDir);\n}\n\nexport interface EventStreamOptions extends StateApiOptions {\n /** Poll interval in milliseconds (default: 2000) */\n intervalMs?: number;\n /** AbortSignal to stop the stream */\n signal?: AbortSignal;\n}\n\n/**\n * Async generator that yields dashboard snapshots at regular intervals.\n * Useful for SSE or WebSocket push to GUI clients.\n *\n * Stops when the AbortSignal fires or the consumer breaks out.\n */\nexport async function* streamEvents(\n options?: EventStreamOptions,\n): AsyncGenerator<DashboardSnapshot> {\n const intervalMs = options?.intervalMs ?? 2000;\n const repoRoot = options?.repoRoot ?? findRepoRoot();\n\n while (!options?.signal?.aborted) {\n yield collectDashboardSnapshot(repoRoot, options?.commsDir);\n await new Promise<void>((resolve) => {\n const onAbort = () => {\n clearTimeout(timer);\n resolve();\n };\n const timer = setTimeout(() => {\n options?.signal?.removeEventListener(\"abort\", onAbort);\n resolve();\n }, intervalMs);\n options?.signal?.addEventListener(\"abort\", onAbort, { once: true });\n });\n }\n}\n\n// ── Write API ───────────────────────────────────────────────────\n\nexport interface AgentControlOptions {\n /** Extra CLI args forwarded to `tap up` (e.g. `[\"--no-auth\"]`) */\n args?: string[];\n}\n\nexport interface AgentControlResult {\n ok: boolean;\n message: string;\n snapshot: DashboardSnapshot;\n commandResult: CommandResult;\n}\n\n/**\n * Start all registered bridge daemons.\n * Equivalent to `tap up [...args]`.\n *\n * Always operates on the cwd-based repo (same as CLI commands).\n * Use read-only APIs (getDashboardSnapshot) for cross-repo queries.\n */\nexport async function startAgents(\n options?: AgentControlOptions,\n): Promise<AgentControlResult> {\n const { upCommand } = await import(\"../commands/up.js\");\n const result = await upCommand(options?.args ?? []);\n const repoRoot = findRepoRoot();\n const snapshot = collectDashboardSnapshot(repoRoot);\n return {\n ok: result.ok,\n message: result.message,\n snapshot,\n commandResult: result,\n };\n}\n\n/**\n * Stop all running bridge daemons.\n * Equivalent to `tap down`.\n *\n * Always operates on the cwd-based repo (same as CLI commands).\n */\nexport async function stopAgents(): Promise<AgentControlResult> {\n const { downCommand } = await import(\"../commands/down.js\");\n const result = await downCommand([]);\n const repoRoot = findRepoRoot();\n const snapshot = collectDashboardSnapshot(repoRoot);\n return {\n ok: result.ok,\n message: result.message,\n snapshot,\n commandResult: result,\n };\n}\n\n// ── Health ──────────────────────────────────────────────────────\n\nexport interface HealthReport {\n ok: boolean;\n timestamp: string;\n bridges: DashboardSnapshot[\"bridges\"];\n agents: DashboardSnapshot[\"agents\"];\n warnings: DashboardSnapshot[\"warnings\"];\n headless: Record<string, unknown>[];\n}\n\n/**\n * Health check that combines dashboard snapshot with headless state.\n * Consumed by monitoring tools (Uptime Kuma, cron, autopilot).\n */\nexport function getHealthReport(options?: StateApiOptions): HealthReport {\n const repoRoot = options?.repoRoot ?? findRepoRoot();\n const snapshot = collectDashboardSnapshot(repoRoot, options?.commsDir);\n\n // Collect headless state from .tmp/ dirs — active instances only\n // (same filter as doctor checkBridgeTurnHealth to avoid stale session debris)\n const headlessStates: Record<string, unknown>[] = [];\n try {\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 if (inst.agentName) activeMatchers.add(inst.agentName);\n }\n }\n }\n\n const tmpDir = path.join(repoRoot, \".tmp\");\n if (fs.existsSync(tmpDir)) {\n for (const dir of fs.readdirSync(tmpDir)) {\n if (!dir.startsWith(\"codex-app-server-bridge\")) continue;\n const suffix = dir.replace(\"codex-app-server-bridge-\", \"\");\n // Filter to active instances (skip past session debris)\n if (activeMatchers.size > 0) {\n let matched = false;\n for (const matcher of activeMatchers) {\n if (suffix === matcher || suffix.startsWith(matcher)) {\n matched = true;\n break;\n }\n }\n if (!matched) continue;\n }\n const hsPath = path.join(tmpDir, dir, \"headless-state.json\");\n if (!fs.existsSync(hsPath)) continue;\n try {\n const hs = JSON.parse(fs.readFileSync(hsPath, \"utf-8\"));\n headlessStates.push({ instanceDir: dir, ...hs });\n } catch {\n // skip corrupted\n }\n }\n }\n } catch {\n // .tmp doesn't exist or state load failed\n }\n\n const hasFailures = snapshot.warnings.some((w) => w.level === \"error\");\n const hasBridgeDown = snapshot.bridges.some(\n (b) =>\n b.status === \"stale\" ||\n b.status === \"stopped\" ||\n b.lifecycle?.status === \"degraded-no-thread\",\n );\n const hasBridgeDegraded = snapshot.bridges.some(\n (b) => b.lifecycle?.status === \"degraded-no-thread\",\n );\n\n return {\n ok: !hasFailures && !hasBridgeDown && !hasBridgeDegraded,\n timestamp: snapshot.generatedAt,\n bridges: snapshot.bridges,\n agents: snapshot.agents,\n warnings: snapshot.warnings,\n headless: headlessStates,\n };\n}\n\n// ── Config ──────────────────────────────────────────────────────\n\n/**\n * Resolve tap configuration for API consumers.\n * Returns paths and settings without requiring CLI args.\n */\nexport function getConfig(options?: StateApiOptions) {\n const repoRoot = options?.repoRoot ?? findRepoRoot();\n const { config } = resolveConfig({}, repoRoot);\n return {\n repoRoot,\n commsDir: options?.commsDir ?? config.commsDir,\n stateDir: config.stateDir,\n appServerUrl: config.appServerUrl,\n };\n}\n","/**\n * Minimal HTTP transport for tap State API.\n * localhost-only, no external dependencies (uses node:http).\n *\n * Endpoints:\n * GET /api/snapshot — DashboardSnapshot JSON\n * GET /api/events — SSE stream of snapshots\n * GET /api/config — Resolved tap configuration\n * GET /health — Health check\n */\n\nimport {\n createServer,\n type IncomingMessage,\n type ServerResponse,\n} from \"node:http\";\nimport { randomBytes, timingSafeEqual } from \"node:crypto\";\nimport {\n getDashboardSnapshot,\n streamEvents,\n getConfig,\n getHealthReport,\n startAgents,\n stopAgents,\n} from \"./state.js\";\nimport type { StateApiOptions } from \"./state.js\";\n\nexport interface HttpServerOptions extends StateApiOptions {\n /** Port to listen on (default: 4580) */\n port?: number;\n /** Pre-set API token (default: auto-generated) */\n token?: string;\n}\n\n// M176: CORS restricted to loopback origins only.\n// Dynamic origin reflection for any localhost port (GUI runs on 3847, dev on 3000, etc.)\nfunction getCorsHeaders(req: IncomingMessage): Record<string, string> {\n const origin = req.headers.origin ?? \"\";\n const isLoopback =\n /^https?:\\/\\/(localhost|127\\.0\\.0\\.1|\\[::1\\])(:\\d+)?$/.test(origin);\n return {\n \"Access-Control-Allow-Origin\": isLoopback ? origin : \"http://127.0.0.1\",\n \"Access-Control-Allow-Methods\": \"GET, POST, OPTIONS\",\n \"Access-Control-Allow-Headers\": \"Content-Type, Authorization\",\n Vary: \"Origin\",\n };\n}\n\n/**\n * M176: Verify that the request origin is from localhost.\n * Blocks cross-origin POST requests from malicious sites.\n */\nfunction isLoopbackOrigin(req: IncomingMessage): boolean {\n const origin = req.headers.origin;\n // No Origin header = same-origin or non-browser (CLI, curl) — allow\n if (!origin) return true;\n return /^https?:\\/\\/(localhost|127\\.0\\.0\\.1|\\[::1\\])(:\\d+)?$/.test(origin);\n}\n\nfunction tokensMatch(\n presentedToken: string | null,\n expectedToken: string,\n): boolean {\n if (!presentedToken) {\n return false;\n }\n const presented = Buffer.from(presentedToken, \"utf8\");\n const expected = Buffer.from(expectedToken, \"utf8\");\n if (presented.length !== expected.length) {\n return false;\n }\n return timingSafeEqual(presented, expected);\n}\n\nfunction verifyBearerToken(\n req: IncomingMessage,\n expectedToken: string,\n): boolean {\n const header = req.headers.authorization;\n if (!header?.startsWith(\"Bearer \")) {\n return false;\n }\n return tokensMatch(header.slice(7), expectedToken);\n}\n\nfunction verifySseToken(\n req: IncomingMessage,\n expectedToken: string,\n serverUrl: string,\n): boolean {\n // EventSource can't set custom headers — accept ?token= query param for SSE only\n if (verifyBearerToken(req, expectedToken)) {\n return true;\n }\n const url = new URL(req.url ?? \"/\", serverUrl);\n const queryToken = url.searchParams.get(\"token\");\n return tokensMatch(queryToken, expectedToken);\n}\n\nfunction jsonResponse(\n req: IncomingMessage,\n res: ServerResponse,\n data: unknown,\n status = 200,\n): void {\n res.writeHead(status, {\n \"Content-Type\": \"application/json\",\n ...getCorsHeaders(req),\n });\n res.end(JSON.stringify(data));\n}\n\nfunction handleSnapshot(\n req: IncomingMessage,\n res: ServerResponse,\n apiOptions: StateApiOptions,\n): void {\n const snapshot = getDashboardSnapshot(apiOptions);\n jsonResponse(req, res, snapshot);\n}\n\nfunction handleConfig(\n req: IncomingMessage,\n res: ServerResponse,\n apiOptions: StateApiOptions,\n): void {\n const config = getConfig(apiOptions);\n jsonResponse(req, res, config);\n}\n\nasync function handleEvents(\n req: IncomingMessage,\n res: ServerResponse,\n apiOptions: StateApiOptions,\n): Promise<void> {\n res.writeHead(200, {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n ...getCorsHeaders(req),\n });\n\n const controller = new AbortController();\n req.on(\"close\", () => controller.abort());\n\n for await (const snapshot of streamEvents({\n ...apiOptions,\n signal: controller.signal,\n })) {\n if (controller.signal.aborted) break;\n res.write(`data: ${JSON.stringify(snapshot)}\\n\\n`);\n }\n\n res.end();\n}\n\nfunction handleHealth(\n req: IncomingMessage,\n res: ServerResponse,\n apiOptions: StateApiOptions,\n): void {\n const report = getHealthReport(apiOptions);\n jsonResponse(req, res, report);\n}\n\n/**\n * Start a localhost-only HTTP server for the tap State API.\n * Resolves after the server is listening. Rejects on bind failure (e.g. EADDRINUSE).\n */\nexport async function startHttpServer(options?: HttpServerOptions): Promise<{\n port: number;\n token: string;\n close: () => Promise<void>;\n}> {\n const port = options?.port ?? 4580;\n // Security: always bind to loopback — no auth layer beyond bearer token\n const host = \"127.0.0.1\";\n const token = options?.token ?? randomBytes(24).toString(\"base64url\");\n const apiOptions: StateApiOptions = {\n repoRoot: options?.repoRoot,\n commsDir: options?.commsDir,\n };\n\n const server = createServer(\n async (req: IncomingMessage, res: ServerResponse) => {\n const url = new URL(req.url ?? \"/\", `http://${host}:${port}`);\n const pathname = url.pathname;\n\n if (req.method === \"OPTIONS\") {\n res.writeHead(204, getCorsHeaders(req));\n res.end();\n return;\n }\n\n // M176: Block POST from non-loopback origins (CSRF protection)\n if (req.method === \"POST\" && !isLoopbackOrigin(req)) {\n jsonResponse(\n req,\n res,\n { error: \"Forbidden: non-loopback origin\" },\n 403,\n );\n return;\n }\n\n // Health endpoint is public (no auth required)\n if (req.method === \"GET\" && pathname === \"/health\") {\n handleHealth(req, res, apiOptions);\n return;\n }\n\n // SSE endpoint: accepts Bearer header OR ?token= query param (EventSource can't set headers)\n if (req.method === \"GET\" && pathname === \"/api/events\") {\n const serverUrl = `http://${host}:${port}`;\n if (!verifySseToken(req, token, serverUrl)) {\n jsonResponse(req, res, { error: \"Unauthorized\" }, 401);\n return;\n }\n await handleEvents(req, res, apiOptions);\n return;\n }\n\n // All other endpoints require Bearer token only (no query param fallback)\n if (!verifyBearerToken(req, token)) {\n jsonResponse(req, res, { error: \"Unauthorized\" }, 401);\n return;\n }\n\n try {\n // GET endpoints\n if (req.method === \"GET\") {\n switch (pathname) {\n case \"/api/snapshot\":\n handleSnapshot(req, res, apiOptions);\n return;\n case \"/api/config\":\n handleConfig(req, res, apiOptions);\n return;\n // /health handled above (public, no auth)\n }\n }\n\n // POST endpoints (write API)\n // Require application/json Content-Type to prevent CSRF via browser forms\n // (HTML forms cannot send application/json, forcing preflight on cross-origin)\n if (req.method === \"POST\") {\n const contentType = req.headers[\"content-type\"] ?? \"\";\n if (!contentType.includes(\"application/json\")) {\n jsonResponse(\n req,\n res,\n { error: \"Content-Type must be application/json\" },\n 415,\n );\n return;\n }\n\n switch (pathname) {\n case \"/api/start\":\n jsonResponse(req, res, await startAgents());\n return;\n case \"/api/stop\":\n jsonResponse(req, res, await stopAgents());\n return;\n }\n }\n\n jsonResponse(req, res, { error: \"Not found\" }, 404);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n jsonResponse(req, res, { error: message }, 500);\n }\n },\n );\n\n await new Promise<void>((resolve, reject) => {\n server.once(\"error\", reject);\n server.listen(port, host, () => {\n server.removeListener(\"error\", reject);\n resolve();\n });\n });\n\n // Resolve actual port (supports port: 0 for OS-assigned free port)\n const addr = server.address();\n const actualPort = typeof addr === \"object\" && addr ? addr.port : port;\n\n return {\n port: actualPort,\n token,\n close: () =>\n new Promise<void>((resolve, reject) => {\n server.close((err) => (err ? reject(err) : resolve()));\n }),\n };\n}\n"],"mappings":"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","names":["fs","path","findRepoRoot","fs","path","fs","path","basename","path","fs","path","removeFileIfExists","resolve","DEFAULT_APP_SERVER_URL","removeFileIfExists","fs","fs","fs","os","path","spawnSync","fileURLToPath","version","fs","path","fileURLToPath","fs","os","path","spawnSync","removeFileIfExists","fs","spawnSync","fs","path","fs","path","net","resolve","fs","path","execSync","version","major","fs","path","randomBytes","removeFileIfExists","fs","path","DEFAULT_APP_SERVER_URL","manualCommand","pid","healthy","healthyAt","removeFileIfExists","fs","path","fs","path","resolve","fs","path","execSync","fs","path","execSync","crypto","fs","path","fs","path","fileURLToPath","fs","path","setNestedKey","path","envPrefix","existsSync","readFileSync","renameSync","writeFileSync","path","path","cleanupSuffix","fs","path","getHeartbeatActivityMs","isSameInstanceHeartbeat","path","init_bridge","init_bridge","init_bridge","fs","path","fs","os","path","path","resolve","fs","path","resolve","upCommand","downCommand","createServer","randomBytes","randomBytes","createServer","resolve"]}
1
+ {"version":3,"sources":["../src/utils.ts","../src/config/resolve.ts","../src/permissions/presets.ts","../src/config/instance-config.ts","../src/config/index.ts","../src/state.ts","../src/engine/bridge-paths.ts","../src/engine/bridge-file-io.ts","../src/engine/bridge-port-network.ts","../src/engine/bridge-process-control.ts","../src/engine/bridge-state.ts","../src/engine/bridge-observability.ts","../src/adapters/common.ts","../src/engine/bridge-codex-command.ts","../src/engine/bridge-windows-spawn.ts","../src/engine/bridge-unix-spawn.ts","../src/engine/bridge-config.ts","../src/engine/server-lifecycle.ts","../src/engine/codex-session-state.ts","../src/engine/bridge-app-server-health.ts","../src/runtime/resolve-node.ts","../src/runtime/index.ts","../src/engine/bridge-app-server-auth.ts","../src/engine/bridge-app-server-lifecycle.ts","../src/engine/bridge-startup.ts","../src/engine/bridge-orchestrator.ts","../src/engine/health-monitor.ts","../src/engine/bridge-restart-plan.ts","../src/engine/bridge.ts","../src/engine/dashboard.ts","../src/engine/termination.ts","../src/engine/review.ts","../src/engine/headless-loop.ts","../src/bridges/codex-bridge-runner.ts","../src/adapters/claude.ts","../src/artifact-backups.ts","../src/toml.ts","../src/adapters/codex.ts","../src/adapters/gemini.ts","../src/adapters/index.ts","../src/config/comms-path-drift.ts","../src/commands/bridge-helpers.ts","../src/commands/bridge-heartbeat.ts","../src/commands/bridge-start.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/commands/bridge.ts","../src/commands/up.ts","../src/commands/down.ts","../src/index.ts","../src/version.ts","../src/bridges/gemini-ide-companion.ts","../src/bridges/gemini-ide-process.ts","../src/transport/consent.ts","../src/transport/trusted-device-lease.ts","../src/transport/file-observe-transport.ts","../src/routing/receive-transports.ts","../src/transport/experimental/codex-ipc-observe.ts","../src/transport/experimental/codex-ipc-endpoint.ts","../src/receiver/codex-cli-polling-receiver.ts","../src/routing/tap-message-prompt.ts","../src/reviews/stale-meta.ts","../src/receiver/projected-envelope-backfill.ts","../src/receiver/codex-cli-app-server-promotion.ts","../src/routing/codex-endpoint-profiles.ts","../src/receiver/thread-cwd-match.ts","../src/receiver/supervised-receiver-promotion.ts","../src/projection/local-receiver-projection.ts","../src/uplink/local-append-only-uplink.ts","../src/uplink/remote-uplink-source.ts","../src/codex-a2a/binding-registry.ts","../src/routing/codex-owner-discovery.ts","../src/transport/experimental/codex-ipc-control.ts","../src/transport/consent-ledger.ts","../src/api/state.ts","../src/api/http.ts"],"mappings":"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","names":["key","fs","path","findRepoRoot","fs","path","fs","path","normalizeComparablePath","pathDrifted","basename","path","fs","path","removeFileIfExists","resolve","DEFAULT_APP_SERVER_URL","removeFileIfExists","fs","fs","fs","os","path","spawnSync","fileURLToPath","version","fs","path","fileURLToPath","fs","os","path","spawnSync","removeFileIfExists","fs","spawnSync","fs","path","fs","path","net","WebSocket","resolve","fs","path","execSync","version","major","fs","path","randomBytes","removeFileIfExists","fs","path","DEFAULT_APP_SERVER_URL","manualCommand","pid","healthy","healthyAt","removeFileIfExists","fs","path","fs","path","resolve","fs","path","getHeartbeatActivityMs","isSameInstanceHeartbeat","fs","path","BRIDGE_STARTUP_LOCK_STALE_MS","fs","path","execSync","fs","crypto","fs","path","crypto","spawnSync","extractPrNumber","reviewFilePath","fs","path","log","fs","path","spawn","fileURLToPath","createHeadlessLoop","resolved","fs","path","execSync","crypto","fs","path","fs","path","fs","path","setNestedKey","fs","path","normalize","unique","path","envPrefix","normalizeComparablePath","existsSync","readFileSync","renameSync","statSync","unlinkSync","writeFileSync","path","path","randomBytes","cleanupSuffix","init_bridge","init_bridge","init_bridge","fs","path","fs","os","path","path","resolve","createHash","randomBytes","randomUUID","fs","os","path","fs","path","normalizeString","fs","path","basename","normalizeString","resolveHostId","net","randomUUID","tmpdir","resolveHostId","resolve","randomUUID","fs","path","fs","path","normalizeAddress","loadState","saveState","resolve","fs","path","createHash","resolve","fs","resolve","DEFAULT_INTERVAL_MS","sleep","resolve","fs","path","DEFAULT_LOOKBACK_MINUTES","DEFAULT_INTERVAL_MS","DEFAULT_LIMIT","normalizeAddress","unique","safeStateName","parseFrontmatter","parseHeaderFields","parseFilename","splitAddressList","isForAgent","isOwnMessage","loadState","saveState","parseSinceMs","sleep","resolve","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","blocked","spawnSync","fs","path","normalizeString","normalizeString","resolve","randomUUID","randomUUID","fs","path","normalizeString","normalizeAddress","normalizeAddress","asRecord","listRecordKeys","randomUUID","resolve","fs","path","resolve","upCommand","downCommand","createServer","randomBytes","randomBytes","createServer","resolve"]}