@hua-labs/tap 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AI_GUIDE.md +165 -0
- package/CHANGELOG.md +67 -0
- package/README.md +201 -12
- package/dist/bridges/codex-app-server-auth-gateway.mjs +16 -1
- package/dist/bridges/codex-app-server-auth-gateway.mjs.map +1 -1
- package/dist/bridges/codex-app-server-bridge.d.mts +105 -12
- package/dist/bridges/codex-app-server-bridge.mjs +3149 -251
- package/dist/bridges/codex-app-server-bridge.mjs.map +1 -1
- package/dist/bridges/codex-bridge-runner.d.mts +4 -1
- package/dist/bridges/codex-bridge-runner.mjs +512 -58
- package/dist/bridges/codex-bridge-runner.mjs.map +1 -1
- package/dist/bridges/codex-remote-ipc-relay.d.mts +1 -0
- package/dist/bridges/codex-remote-ipc-relay.mjs +1912 -0
- package/dist/bridges/codex-remote-ipc-relay.mjs.map +1 -0
- package/dist/bridges/gemini-ide-companion-runner.mjs.map +1 -1
- package/dist/cli.mjs +30944 -8415
- package/dist/cli.mjs.map +1 -1
- package/dist/codex-a2a/index.d.mts +2 -0
- package/dist/codex-a2a/index.mjs +416 -0
- package/dist/codex-a2a/index.mjs.map +1 -0
- package/dist/codex-health/index.d.mts +76 -0
- package/dist/codex-health/index.mjs +153 -0
- package/dist/codex-health/index.mjs.map +1 -0
- package/dist/codex-ipc/index.d.mts +2 -0
- package/dist/codex-ipc/index.mjs +1834 -0
- package/dist/codex-ipc/index.mjs.map +1 -0
- package/dist/index-D4Khz2Mh.d.mts +206 -0
- package/dist/index-DMToLyGd.d.mts +256 -0
- package/dist/index.d.mts +763 -8
- package/dist/index.mjs +11600 -3449
- package/dist/index.mjs.map +1 -1
- package/dist/mcp-server.mjs +8838 -811
- package/dist/mcp-server.mjs.map +1 -1
- package/dist/types-FWvKrFUt.d.mts +43 -0
- package/examples/01-logic-battle-known-broken.md +46 -0
- package/examples/02-cross-model-review-root-cause.md +37 -0
- package/examples/03-convergence-pattern.md +42 -0
- package/examples/04-tower-broadcast.md +41 -0
- package/examples/05-self-awareness-paradox.md +49 -0
- package/examples/06-session-resurrection.md +37 -0
- package/examples/07-ghost-agent.md +31 -0
- package/examples/08-naming-creates-identity.md +36 -0
- package/examples/09-ceo-as-middleware.md +52 -0
- package/examples/10-files-as-interface.md +67 -0
- package/examples/README.md +34 -0
- package/examples/tap-profile-pack.example.json +71 -0
- package/package.json +21 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bridges/codex-app-server-bridge.ts","../../scripts/bridge/bridge-types.ts","../../scripts/bridge/bridge-routing.ts","../../packages/tap-plugin/channels/tap-identity.ts","../../scripts/bridge/bridge-config.ts","../../src/config/resolve.ts","../../scripts/bridge/bridge-candidates.ts","../../scripts/bridge/bridge-logging.ts","../../scripts/bridge/bridge-format.ts","../../scripts/bridge/bridge-dispatch.ts","../../scripts/bridge/bridge-ws-client.ts","../../scripts/bridge/bridge-main.ts"],"sourcesContent":["import { pathToFileURL } from \"node:url\";\nimport { resolve } from \"node:path\";\nimport { main } from \"../../scripts/codex-app-server-bridge.js\";\n\nexport * from \"../../scripts/codex-app-server-bridge.js\";\n\nfunction isDirectExecution(): boolean {\n const entry = process.argv[1];\n if (!entry) return false;\n return import.meta.url === pathToFileURL(resolve(entry)).href;\n}\n\nif (isDirectExecution()) {\n main().catch((error) => {\n console.error(\n error instanceof Error ? (error.stack ?? error.message) : String(error),\n );\n process.exitCode = 1;\n });\n}\n","// bridge-types.ts — All interfaces, types, type aliases, and constants\n\nexport type BusyMode = \"wait\" | \"steer\";\nexport type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\nexport interface Options {\n repoRoot: string;\n commsDir: string;\n agentId: string;\n agentName: string;\n stateDir: string;\n pollSeconds: number;\n reconnectSeconds: number;\n messageLookbackMinutes: number;\n processExistingMessages: boolean;\n dryRun: boolean;\n runOnce: boolean;\n waitAfterDispatchSeconds: number;\n appServerUrl: string;\n connectAppServerUrl: string;\n gatewayToken: string | null;\n gatewayTokenFile: string | null;\n busyMode: BusyMode;\n logLevel: LogLevel;\n threadId: string | null;\n ephemeral: boolean;\n}\n\nexport interface InboxRoute {\n sender: string;\n recipient: string;\n subject: string;\n}\n\nexport interface Candidate {\n markerId: string;\n filePath: string;\n fileName: string;\n sender: string;\n recipient: string;\n subject: string;\n body: string;\n mtimeMs: number;\n}\n\nexport interface ThreadStateRecord {\n threadId: string;\n updatedAt: string;\n appServerUrl: string;\n ephemeral: boolean;\n cwd?: string | null;\n}\n\nexport interface HeartbeatRecord {\n pid: number;\n agent: string;\n updatedAt: string;\n pollSeconds: number;\n appServerUrl: string;\n authenticated: boolean;\n connected: boolean;\n initialized: boolean;\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\";\n lastNotificationMethod: string | null;\n lastNotificationAt: string | null;\n lastError: string | null;\n lastSuccessfulAppServerAt: string | null;\n lastSuccessfulAppServerMethod: string | null;\n consecutiveFailureCount: number;\n busyMode: BusyMode;\n}\n\nexport interface BridgeHealthState {\n consecutiveFailureCount: number;\n}\n\nexport interface HeadlessWarmupClient {\n activeTurnId: string | null;\n lastTurnStatus: string | null;\n startTurn(inputText: string): Promise<string | null>;\n refreshCurrentThreadState(): Promise<void>;\n}\n\nexport interface LoadedThreadCandidate {\n id: string;\n cwd: string;\n updatedAt: number;\n statusType: string | null;\n thread: any;\n}\n\nexport interface RequestRecord {\n jsonrpc: \"2.0\";\n id: number;\n method: string;\n params: unknown;\n}\n\nexport interface HeartbeatStoreRecord {\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\nexport type HeartbeatStore = Record<string, HeartbeatStoreRecord>;\n\nexport interface JsonRpcResponse {\n id?: number;\n result?: any;\n error?: {\n code?: number;\n message?: string;\n data?: unknown;\n };\n method?: string;\n params?: any;\n}\n\nexport const DEFAULT_AGENT = String.fromCharCode(0xc628);\nexport const DEFAULT_APP_SERVER_URL = \"ws://127.0.0.1:4501\";\nexport const AUTH_SUBPROTOCOL_PREFIX = \"tap-auth-\";\nexport const PLACEHOLDER_AGENT_VALUES = new Set([\n \"unknown\",\n \"unnamed\",\n \"<set-per-session>\",\n]);\nexport const HEADLESS_WARMUP_PROMPT = [\n \"You are a tap worker agent connected via the tap-comms inbox.\",\n \"This is a one-time warmup turn for headless bridge startup.\",\n \"Do not take any external actions.\",\n \"Reply briefly, then wait for future inbox instructions.\",\n].join(\" \");\nexport const HEADLESS_WARMUP_TIMEOUT_MS = 30_000;\nexport const TURN_COMPLETION_POLL_MS = 250;\nexport const TURN_COMPLETION_REFRESH_MS = 1_000;\n\n// When running in headless reviewer mode, review-request files are handled\n// by the headless loop (engine/headless-loop.ts), not the generic bridge.\n// Skip them here to prevent race conditions.\nexport const HEADLESS_SKIP_PATTERNS = [\n /리뷰\\s*요청/,\n /review[- ]?request/i,\n /재리뷰/,\n /re-?review/i,\n];\n\n// ── Comms heartbeat (shared agent registry) ───────────────────────────\nexport const COMMS_HEARTBEAT_LOCK_TIMEOUT_MS = 2_000;\nexport const COMMS_LOCK_STALE_AGE_MS = 10_000;\n\n/** M203: Timeout after which an active turn is considered stale (5 minutes). */\nexport const STALE_TURN_MS = 5 * 60 * 1000;\n","// bridge-routing.ts — Agent identity, message routing, frontmatter parsing\n\nimport { existsSync, readFileSync, writeFileSync } from \"fs\";\nimport { join, resolve } from \"path\";\nimport {\n DEFAULT_AGENT,\n HeartbeatStore,\n InboxRoute,\n LoadedThreadCandidate,\n Options,\n PLACEHOLDER_AGENT_VALUES,\n STALE_TURN_MS,\n} from \"./bridge-types.js\";\nimport {\n canonicalizeAgentId,\n matchesAgentRecipient as sharedMatchesAgentRecipient,\n isOwnMessageAddress as sharedIsOwnMessageAddress,\n} from \"../../packages/tap-plugin/channels/tap-identity.js\";\n\n/**\n * M206: Re-export canonicalizeAgentId as canonicalize for backward compat.\n */\nexport function canonicalize(id: string): string {\n return canonicalizeAgentId(id);\n}\n\nexport function normalizeThreadCwd(cwd: string): string {\n return resolve(cwd).replace(/\\\\/g, \"/\").toLowerCase();\n}\n\nexport function threadCwdMatches(\n expectedCwd: string,\n actualCwd: string | null | undefined,\n): boolean {\n if (!actualCwd) {\n return false;\n }\n\n return normalizeThreadCwd(expectedCwd) === normalizeThreadCwd(actualCwd);\n}\n\nexport function chooseLoadedThreadForCwd(\n cwd: string,\n threads: LoadedThreadCandidate[],\n): LoadedThreadCandidate | null {\n const matching = threads.filter((thread) => {\n if (!threadCwdMatches(cwd, thread.cwd)) {\n return false;\n }\n\n // `notLoaded` means the app-server knows about the thread id but the\n // thread is not attached in memory, so treating it as a ready loaded\n // thread can strand headless dispatch after restart/TUI detach.\n return thread.statusType !== \"notLoaded\";\n });\n if (matching.length === 0) {\n return null;\n }\n\n matching.sort((left, right) => {\n const leftActive = left.statusType === \"active\" ? 1 : 0;\n const rightActive = right.statusType === \"active\" ? 1 : 0;\n if (leftActive !== rightActive) {\n return rightActive - leftActive;\n }\n return right.updatedAt - left.updatedAt;\n });\n\n return matching[0] ?? null;\n}\n\nexport function normalizeAgentToken(value?: string | null): string | null {\n const normalized = value?.trim();\n if (!normalized || PLACEHOLDER_AGENT_VALUES.has(normalized)) {\n return null;\n }\n\n return canonicalize(normalized);\n}\n\nexport function resolveAgentId(preferredAgentName?: string | null): string {\n return (\n normalizeAgentToken(process.env.TAP_AGENT_ID) ??\n normalizeAgentToken(preferredAgentName) ??\n \"unknown\"\n );\n}\n\nexport function resolveAgentName(\n preferredAgentName: string | null,\n stateDir: string,\n): string {\n if (preferredAgentName?.trim()) {\n return preferredAgentName.trim();\n }\n\n const agentFile = join(stateDir, \"agent-name.txt\");\n if (existsSync(agentFile)) {\n const candidate = readFileSync(agentFile, \"utf8\").trim();\n if (candidate) {\n return candidate;\n }\n }\n\n return DEFAULT_AGENT;\n}\n\nexport function resolveCurrentAgentName(\n agentId: string,\n fallbackAgentName: string,\n heartbeats: HeartbeatStore,\n): string {\n const currentName = heartbeats[agentId]?.agent?.trim();\n if (currentName) {\n return currentName;\n }\n\n for (const heartbeat of Object.values(heartbeats)) {\n if (heartbeat.id?.trim() === agentId && heartbeat.agent?.trim()) {\n return heartbeat.agent.trim();\n }\n }\n\n return fallbackAgentName;\n}\n\nexport function resolveAddressLabel(\n address: string,\n heartbeats: HeartbeatStore,\n): string {\n const normalized = address.trim();\n if (!normalized || normalized === \"전체\" || normalized === \"all\") {\n return address;\n }\n\n const direct = heartbeats[normalized];\n if (direct?.agent?.trim()) {\n return formatAgentLabel(normalized, direct.agent);\n }\n\n for (const [agentId, heartbeat] of Object.entries(heartbeats)) {\n if (heartbeat.agent?.trim() === normalized) {\n return formatAgentLabel(agentId, heartbeat.agent);\n }\n }\n\n return normalized;\n}\n\nexport function persistAgentName(stateDir: string, agentName: string): void {\n writeFileSync(join(stateDir, \"agent-name.txt\"), `${agentName}\\n`, \"utf8\");\n}\n\nexport function 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\n/**\n * Resolve the current display name from heartbeats and persist if changed.\n * Returns the resolved name WITHOUT mutating options.agentName — callers\n * should use the return value for the current scan cycle only.\n * This prevents recipient matching from losing the original configured name.\n */\nexport function refreshAgentIdentity(\n options: Options,\n heartbeats: HeartbeatStore,\n): string {\n const nextAgentName = resolveCurrentAgentName(\n options.agentId,\n options.agentName,\n heartbeats,\n );\n\n if (nextAgentName !== options.agentName) {\n // Persist for next startup, but don't mutate options mid-cycle\n persistAgentName(options.stateDir, nextAgentName);\n }\n\n return nextAgentName;\n}\n\n/**\n * M206: Delegate to shared tap-identity helper.\n * Kept as named export for barrel backward compatibility.\n */\nexport function recipientMatchesAgent(\n recipient: string,\n agentId: string,\n agentName: string,\n): boolean {\n return sharedMatchesAgentRecipient(recipient, agentId, agentName);\n}\n\n/**\n * M206: Delegate to shared tap-identity helper.\n * Kept as named export for barrel backward compatibility.\n */\nexport function isOwnMessageSender(\n sender: string,\n agentId: string,\n agentName: string,\n): boolean {\n return sharedIsOwnMessageAddress(sender, agentId, agentName);\n}\n\n/**\n * M203: Check if a turn's activeFlags indicate it cannot accept steer.\n * Returns true if the turn should be treated as not active.\n */\nexport function isTurnStuckOnApproval(activeFlags: string[]): boolean {\n return activeFlags.includes(\"waitingOnApproval\");\n}\n\n/**\n * M203: Check if a turn has been running longer than the stale threshold.\n */\nexport function isTurnStale(\n turnStartedAt: string | null,\n nowMs: number = Date.now(),\n): boolean {\n if (!turnStartedAt) return false;\n return nowMs - new Date(turnStartedAt).getTime() > STALE_TURN_MS;\n}\n\nexport function shouldRetrySteerAsStart(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n\n const message = error.message.toLowerCase();\n return (\n message.includes(\"no active turn\") ||\n message.includes(\"expectedturnid\") ||\n (message.includes(\"turn/steer failed\") &&\n (message.includes(\"active turn\") || message.includes(\"not found\")))\n );\n}\n\n/**\n * Parse YAML frontmatter from message content for routing.\n * Returns null if no valid frontmatter found.\n */\nexport function parseBridgeFrontmatter(\n content: string,\n): { sender: string; recipient: string; subject: string } | null {\n const match = content.match(/^---\\r?\\n([\\s\\S]*?)\\r?\\n---/);\n if (!match) return null;\n\n const fields: Record<string, string> = {};\n for (const line of match[1].split(\"\\n\")) {\n const kv = line.match(/^(\\w+):\\s*(.+)$/);\n if (kv) fields[kv[1]] = kv[2].trim();\n }\n\n if (!fields.from || !fields.to) return null;\n\n return {\n sender: fields.from,\n recipient: fields.to,\n subject: fields.subject ?? \"\",\n };\n}\n\n/**\n * Strip YAML frontmatter from message content, returning only the body.\n */\nexport function stripBridgeFrontmatter(content: string): string {\n return content.replace(/^---\\r?\\n[\\s\\S]*?\\r?\\n---\\r?\\n*/, \"\");\n}\n\nexport function getInboxRoute(fileName: string, body?: string): InboxRoute {\n if (body) {\n const fm = parseBridgeFrontmatter(body);\n if (fm) return fm;\n }\n return getInboxRouteFromFilename(fileName);\n}\n\nexport function getInboxRouteFromFilename(fileName: string): InboxRoute {\n const stem = fileName.replace(/\\.md$/i, \"\");\n const parts = stem.split(\"-\");\n let offset = 0;\n if (parts[0] && /^\\d{8}$/.test(parts[0])) {\n offset = 1;\n }\n\n return {\n sender: parts[offset] ?? \"\",\n recipient: parts[offset + 1] ?? \"\",\n subject: parts.slice(offset + 2).join(\"-\"),\n };\n}\n","const BROADCAST_RECIPIENTS = new Set([\"전체\", \"all\"]);\n\nexport const PLACEHOLDER_AGENT_VALUES = new Set([\n \"unknown\",\n \"unnamed\",\n \"<set-per-session>\",\n]);\n\nfunction trimAddress(value?: string | null): string {\n return value?.trim() ?? \"\";\n}\n\nexport function canonicalizeAgentId(value: string): string {\n return trimAddress(value).replace(/-/g, \"_\");\n}\n\nexport function isBroadcastRecipient(value: string): boolean {\n return BROADCAST_RECIPIENTS.has(trimAddress(value));\n}\n\nexport function isPlaceholderAgentValue(value?: string | null): boolean {\n const normalized = trimAddress(value);\n return !normalized || PLACEHOLDER_AGENT_VALUES.has(normalized);\n}\n\nexport function sameRoutingAddress(left: string, right: string): boolean {\n const normalizedLeft = trimAddress(left);\n const normalizedRight = trimAddress(right);\n if (!normalizedLeft || !normalizedRight) {\n return false;\n }\n\n if (\n isBroadcastRecipient(normalizedLeft) &&\n isBroadcastRecipient(normalizedRight)\n ) {\n return true;\n }\n\n return (\n normalizedLeft === normalizedRight ||\n canonicalizeAgentId(normalizedLeft) === canonicalizeAgentId(normalizedRight)\n );\n}\n\nexport function matchesAgentRecipient(\n recipient: string,\n agentId: string,\n agentName: string,\n): boolean {\n const normalizedRecipient = trimAddress(recipient);\n if (!normalizedRecipient) {\n return false;\n }\n\n return (\n isBroadcastRecipient(normalizedRecipient) ||\n sameRoutingAddress(normalizedRecipient, agentId) ||\n normalizedRecipient === trimAddress(agentName)\n );\n}\n\nexport function isOwnMessageAddress(\n sender: string,\n agentId: string,\n agentName: string,\n): boolean {\n const normalizedSender = trimAddress(sender);\n if (!normalizedSender) {\n return false;\n }\n\n return (\n sameRoutingAddress(normalizedSender, agentId) ||\n normalizedSender === trimAddress(agentName)\n );\n}\n\nexport function normalizeRecipientList(\n rawRecipients: unknown,\n exclude: string[] = [],\n): string[] | undefined {\n let recipients: string[] | undefined;\n if (rawRecipients == null) {\n recipients = undefined;\n } else if (typeof rawRecipients === \"string\") {\n const trimmed = trimAddress(rawRecipients);\n recipients = trimmed ? [trimmed] : undefined;\n } else if (Array.isArray(rawRecipients)) {\n const valid = rawRecipients\n .filter(\n (value): value is string =>\n typeof value === \"string\" && trimAddress(value).length > 0,\n )\n .map((value) => trimAddress(value));\n recipients = valid.length > 0 ? valid : undefined;\n } else {\n recipients = undefined;\n }\n\n if (!recipients) {\n return undefined;\n }\n\n const filtered: string[] = [];\n for (const recipient of recipients) {\n if (exclude.some((value) => sameRoutingAddress(value, recipient))) {\n continue;\n }\n if (filtered.some((value) => sameRoutingAddress(value, recipient))) {\n continue;\n }\n filtered.push(recipient);\n }\n\n return filtered.length > 0 ? filtered : undefined;\n}\n","// bridge-config.ts — CLI argument parsing and options building\n\nimport { existsSync, mkdirSync, readFileSync } from \"fs\";\nimport { isAbsolute, join, resolve } from \"path\";\nimport { normalizeTapPath } from \"../../src/config/resolve.js\";\nimport {\n BusyMode,\n DEFAULT_APP_SERVER_URL,\n LogLevel,\n Options,\n} from \"./bridge-types.js\";\nimport {\n persistAgentName,\n resolveAgentId,\n resolveAgentName,\n} from \"./bridge-routing.js\";\n\nfunction ensureDir(target: string): string {\n if (!existsSync(target)) {\n mkdirSync(target, { recursive: true });\n }\n return resolve(target);\n}\n\nfunction printHelp(): void {\n console.log(`Codex App Server bridge\n\nUsage:\n node --experimental-strip-types scripts/codex-app-server-bridge.ts [options]\n\nOptions:\n --repo-root=<path>\n --comms-dir=<path>\n --agent-name=<name>\n --state-dir=<path>\n --poll-seconds=<n>\n --reconnect-seconds=<n>\n --message-lookback-minutes=<n>\n --process-existing-messages\n --dry-run\n --run-once\n --wait-after-dispatch-seconds=<n>\n --app-server-url=<ws-url>\n --gateway-token-file=<path>\n --busy-mode=wait|steer\n --log-level=debug|info|warn|error\n --thread-id=<id>\n --ephemeral\n --help\n`);\n}\n\nfunction parseNumber(value: string, flag: string): number {\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed < 0) {\n throw new Error(`Invalid ${flag}: ${value}`);\n }\n return parsed;\n}\n\nfunction readFlagValue(argv: string[], index: number, flag: string): string {\n const current = argv[index];\n const eqIndex = current.indexOf(\"=\");\n if (eqIndex >= 0) {\n return current.slice(eqIndex + 1);\n }\n\n const next = argv[index + 1];\n if (!next || next.startsWith(\"--\")) {\n throw new Error(`Missing value for ${flag}`);\n }\n return next;\n}\n\nexport function parseArgs(argv: string[]): {\n repoRoot?: string;\n commsDir?: string;\n agentName?: string;\n stateDir?: string;\n pollSeconds?: number;\n reconnectSeconds?: number;\n messageLookbackMinutes?: number;\n processExistingMessages: boolean;\n dryRun: boolean;\n runOnce: boolean;\n waitAfterDispatchSeconds?: number;\n appServerUrl?: string;\n gatewayTokenFile?: string;\n busyMode?: BusyMode;\n logLevel?: LogLevel;\n threadId?: string;\n ephemeral: boolean;\n} {\n const parsed = {\n processExistingMessages: false,\n dryRun: false,\n runOnce: false,\n ephemeral: false,\n } as {\n repoRoot?: string;\n commsDir?: string;\n agentName?: string;\n stateDir?: string;\n pollSeconds?: number;\n reconnectSeconds?: number;\n messageLookbackMinutes?: number;\n processExistingMessages: boolean;\n dryRun: boolean;\n runOnce: boolean;\n waitAfterDispatchSeconds?: number;\n appServerUrl?: string;\n gatewayTokenFile?: string;\n busyMode?: BusyMode;\n logLevel?: LogLevel;\n threadId?: string;\n ephemeral: boolean;\n };\n\n for (let index = 0; index < argv.length; index += 1) {\n const flag = argv[index];\n const consumesNext = !flag.includes(\"=\");\n\n if (flag === \"--help\") {\n printHelp();\n process.exit(0);\n }\n\n if (flag === \"--process-existing-messages\") {\n parsed.processExistingMessages = true;\n continue;\n }\n\n if (flag === \"--dry-run\") {\n parsed.dryRun = true;\n continue;\n }\n\n if (flag === \"--run-once\") {\n parsed.runOnce = true;\n continue;\n }\n\n if (flag === \"--ephemeral\") {\n parsed.ephemeral = true;\n continue;\n }\n\n if (flag.startsWith(\"--repo-root\")) {\n parsed.repoRoot = readFlagValue(argv, index, \"--repo-root\");\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--comms-dir\")) {\n parsed.commsDir = readFlagValue(argv, index, \"--comms-dir\");\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--agent-name\")) {\n parsed.agentName = readFlagValue(argv, index, \"--agent-name\");\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--state-dir\")) {\n parsed.stateDir = readFlagValue(argv, index, \"--state-dir\");\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--poll-seconds\")) {\n parsed.pollSeconds = parseNumber(\n readFlagValue(argv, index, \"--poll-seconds\"),\n \"--poll-seconds\",\n );\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--reconnect-seconds\")) {\n parsed.reconnectSeconds = parseNumber(\n readFlagValue(argv, index, \"--reconnect-seconds\"),\n \"--reconnect-seconds\",\n );\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--message-lookback-minutes\")) {\n parsed.messageLookbackMinutes = parseNumber(\n readFlagValue(argv, index, \"--message-lookback-minutes\"),\n \"--message-lookback-minutes\",\n );\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--app-server-url\")) {\n parsed.appServerUrl = readFlagValue(argv, index, \"--app-server-url\");\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--gateway-token-file\")) {\n parsed.gatewayTokenFile = readFlagValue(\n argv,\n index,\n \"--gateway-token-file\",\n );\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--wait-after-dispatch-seconds\")) {\n parsed.waitAfterDispatchSeconds = parseNumber(\n readFlagValue(argv, index, \"--wait-after-dispatch-seconds\"),\n \"--wait-after-dispatch-seconds\",\n );\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--busy-mode\")) {\n const value = readFlagValue(argv, index, \"--busy-mode\");\n if (value !== \"wait\" && value !== \"steer\") {\n throw new Error(`Invalid --busy-mode: ${value}`);\n }\n parsed.busyMode = value;\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--thread-id\")) {\n parsed.threadId = readFlagValue(argv, index, \"--thread-id\");\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n if (flag.startsWith(\"--log-level\")) {\n const value = readFlagValue(argv, index, \"--log-level\");\n if (\n value !== \"debug\" &&\n value !== \"info\" &&\n value !== \"warn\" &&\n value !== \"error\"\n ) {\n throw new Error(`Invalid --log-level: ${value}`);\n }\n parsed.logLevel = value;\n if (consumesNext) {\n index += 1;\n }\n continue;\n }\n\n throw new Error(`Unknown argument: ${flag}`);\n }\n\n return parsed;\n}\n\nexport function resolveRepoRoot(explicit?: string): string {\n if (explicit) {\n return resolve(explicit);\n }\n\n return process.cwd();\n}\n\nexport function resolveTapConfigPath(repoRoot: string, input: string): string {\n const converted = normalizeTapPath(input);\n return isAbsolute(converted)\n ? resolve(converted)\n : resolve(repoRoot, converted);\n}\n\nexport function resolveCommsDir(repoRoot: string, explicit?: string): string {\n if (explicit) {\n return resolve(normalizeTapPath(explicit));\n }\n\n const tapConfigPath = join(repoRoot, \".tap-config\");\n if (!existsSync(tapConfigPath)) {\n throw new Error(\n \"Unable to resolve comms directory. Pass --comms-dir explicitly.\",\n );\n }\n\n const configText = readFileSync(tapConfigPath, \"utf8\");\n const match = configText.match(/^TAP_COMMS_DIR=\"?(.*?)\"?$/m);\n if (!match?.[1]) {\n throw new Error(\n \"Unable to resolve comms directory. Pass --comms-dir explicitly.\",\n );\n }\n\n return resolveTapConfigPath(repoRoot, match[1]);\n}\n\nexport function resolvePreferredAgentName(requested?: string): string | null {\n if (requested?.trim()) {\n return requested.trim();\n }\n\n for (const envName of [\"TAP_AGENT_NAME\", \"CODEX_TAP_AGENT_NAME\"]) {\n const candidate = process.env[envName];\n if (candidate?.trim()) {\n return candidate.trim();\n }\n }\n\n return null;\n}\n\nexport function sanitizeStateSegment(agentName: string): string {\n const normalized = agentName\n .trim()\n .replace(/[<>:\"/\\\\|?*\\x00-\\x1f]/g, \"-\")\n .replace(/[. ]+$/g, \"\");\n\n return normalized || \"agent\";\n}\n\nexport function buildDefaultStateDir(\n repoRoot: string,\n preferredAgentName?: string | null,\n): string {\n const suffix = preferredAgentName?.trim()\n ? `-${sanitizeStateSegment(preferredAgentName)}`\n : \"\";\n return resolve(join(repoRoot, \".tmp\", `codex-app-server-bridge${suffix}`));\n}\n\nexport function resolveStateDir(\n repoRoot: string,\n explicit?: string,\n preferredAgentName?: string | null,\n): string {\n const root = explicit\n ? resolve(explicit)\n : buildDefaultStateDir(repoRoot, preferredAgentName);\n\n ensureDir(root);\n ensureDir(join(root, \"processed\"));\n ensureDir(join(root, \"logs\"));\n return root;\n}\n\nexport function readGatewayTokenFile(tokenFile: string): string {\n const token = readFileSync(tokenFile, \"utf8\").trim();\n if (!token) {\n throw new Error(`Gateway token file is empty: ${tokenFile}`);\n }\n return token;\n}\n\nexport function buildOptions(argv: string[]): Options {\n const parsed = parseArgs(argv);\n const repoRoot = resolveRepoRoot(parsed.repoRoot);\n const commsDir = resolveCommsDir(repoRoot, parsed.commsDir);\n const preferredAgentName = resolvePreferredAgentName(parsed.agentName);\n const stateDir = resolveStateDir(\n repoRoot,\n parsed.stateDir,\n preferredAgentName,\n );\n const agentName = resolveAgentName(preferredAgentName, stateDir);\n const agentId = resolveAgentId(agentName);\n persistAgentName(stateDir, agentName);\n const gatewayTokenFile =\n parsed.gatewayTokenFile?.trim() ||\n process.env.TAP_GATEWAY_TOKEN_FILE?.trim() ||\n null;\n const appServerUrl =\n parsed.appServerUrl?.trim() ||\n process.env.CODEX_APP_SERVER_URL ||\n DEFAULT_APP_SERVER_URL;\n\n return {\n repoRoot,\n commsDir,\n agentId,\n stateDir,\n agentName,\n pollSeconds: parsed.pollSeconds ?? 5,\n reconnectSeconds: parsed.reconnectSeconds ?? 5,\n messageLookbackMinutes: parsed.messageLookbackMinutes ?? 10,\n processExistingMessages: parsed.processExistingMessages,\n dryRun: parsed.dryRun,\n runOnce: parsed.runOnce,\n waitAfterDispatchSeconds: parsed.waitAfterDispatchSeconds ?? 0,\n appServerUrl,\n connectAppServerUrl: appServerUrl,\n gatewayToken: gatewayTokenFile\n ? readGatewayTokenFile(gatewayTokenFile)\n : null,\n gatewayTokenFile,\n busyMode: parsed.busyMode ?? \"steer\",\n logLevel: parsed.logLevel ?? \"info\",\n threadId: parsed.threadId?.trim() || null,\n ephemeral: parsed.ephemeral,\n };\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","// bridge-candidates.ts — Message collection and filtering\n\nimport { createHash } from \"crypto\";\nimport { existsSync, readFileSync, readdirSync, statSync } from \"fs\";\nimport { join } from \"path\";\nimport {\n Candidate,\n HEADLESS_SKIP_PATTERNS,\n HeartbeatStore,\n Options,\n} from \"./bridge-types.js\";\nimport { createBridgeLogger } from \"./bridge-logging.js\";\nimport {\n getInboxRoute,\n isOwnMessageSender,\n recipientMatchesAgent,\n refreshAgentIdentity,\n stripBridgeFrontmatter,\n} from \"./bridge-routing.js\";\n\nconst routingLogger = createBridgeLogger(\"routing\");\n\nexport function buildMarkerId(filePath: string, mtimeMs: number): string {\n return createHash(\"sha1\").update(`${filePath}|${mtimeMs}`).digest(\"hex\");\n}\n\nexport function getProcessedMarkerPath(\n stateDir: string,\n markerId: string,\n): string {\n return join(stateDir, \"processed\", `${markerId}.done`);\n}\n\nexport function loadHeartbeats(commsDir: string): HeartbeatStore {\n try {\n return JSON.parse(readFileSync(join(commsDir, \"heartbeats.json\"), \"utf8\"));\n } catch {\n return {};\n }\n}\n\nexport function shouldSkipInHeadlessMode(\n fileName: string,\n body: string,\n): boolean {\n if (process.env.TAP_HEADLESS !== \"true\") return false;\n const combined = `${fileName}\\n${body}`;\n return HEADLESS_SKIP_PATTERNS.some((p) => p.test(combined));\n}\n\nexport function collectCandidates(\n inboxDir: string,\n agentId: string,\n agentName: string,\n aliasName?: string,\n): Candidate[] {\n const entries = readdirSync(inboxDir, { withFileTypes: true })\n .filter(\n (entry) => entry.isFile() && entry.name.toLowerCase().endsWith(\".md\"),\n )\n .map((entry) => {\n const filePath = join(inboxDir, entry.name);\n const stats = statSync(filePath);\n return { entry, filePath, stats };\n })\n .sort((left, right) => left.stats.mtimeMs - right.stats.mtimeMs);\n\n const candidates: Candidate[] = [];\n let filteredByRecipient = 0;\n let filteredBySelf = 0;\n let filteredByHeadless = 0;\n for (const item of entries) {\n let body: string;\n try {\n body = readFileSync(item.filePath, \"utf8\");\n } catch {\n continue;\n }\n\n // Frontmatter-first routing (M202): try frontmatter, fall back to filename\n const route = getInboxRoute(item.entry.name, body);\n // M205: Match against configured name AND heartbeat-refreshed alias\n if (\n !recipientMatchesAgent(route.recipient, agentId, agentName) &&\n !(aliasName && recipientMatchesAgent(route.recipient, agentId, aliasName))\n ) {\n filteredByRecipient += 1;\n continue;\n }\n\n if (\n isOwnMessageSender(route.sender, agentId, agentName) ||\n (aliasName && isOwnMessageSender(route.sender, agentId, aliasName))\n ) {\n filteredBySelf += 1;\n continue;\n }\n\n // In headless mode, skip review-request files — handled by headless loop\n if (shouldSkipInHeadlessMode(item.entry.name, body)) {\n filteredByHeadless += 1;\n continue;\n }\n\n candidates.push({\n markerId: buildMarkerId(item.filePath, item.stats.mtimeMs),\n filePath: item.filePath,\n fileName: item.entry.name,\n sender: route.sender,\n recipient: route.recipient,\n subject: route.subject,\n body: stripBridgeFrontmatter(body),\n mtimeMs: item.stats.mtimeMs,\n });\n }\n\n routingLogger.debug(\"candidate scan completed\", {\n inboxDir,\n scanned: entries.length,\n matched: candidates.length,\n filteredByRecipient,\n filteredBySelf,\n filteredByHeadless,\n agentId,\n agentName,\n aliasName,\n });\n\n return candidates;\n}\n\nexport function getPendingCandidates(\n options: Options,\n cutoff: Date,\n): {\n heartbeats: HeartbeatStore;\n candidates: Candidate[];\n} {\n const inboxDir = join(options.commsDir, \"inbox\");\n if (!existsSync(inboxDir)) {\n throw new Error(`Inbox directory not found: ${inboxDir}`);\n }\n\n const heartbeats = loadHeartbeats(options.commsDir);\n const refreshedName = refreshAgentIdentity(options, heartbeats);\n const cutoffMs = cutoff.getTime();\n // Collect candidates matching the configured name\n const candidates = collectCandidates(\n inboxDir,\n options.agentId,\n options.agentName,\n // M205: Also accept messages addressed to the heartbeat-refreshed name\n refreshedName !== options.agentName ? refreshedName : undefined,\n ).filter((candidate) => {\n if (candidate.mtimeMs < cutoffMs) {\n return false;\n }\n\n return !existsSync(\n getProcessedMarkerPath(options.stateDir, candidate.markerId),\n );\n });\n\n routingLogger.debug(\"pending candidates resolved\", {\n agentId: options.agentId,\n configuredName: options.agentName,\n refreshedName:\n refreshedName !== options.agentName ? refreshedName : undefined,\n candidateCount: candidates.length,\n cutoff: cutoff.toISOString(),\n });\n\n return { heartbeats, candidates };\n}\n","// bridge-logging.ts — Structured bridge logging with scoped levels\n\nimport { LogLevel } from \"./bridge-types.js\";\n\nexport type LogContext = Record<string, unknown>;\n\nexport interface BridgeLogger {\n debug(message: string, context?: LogContext): void;\n info(message: string, context?: LogContext): void;\n warn(message: string, context?: LogContext): void;\n error(message: string, context?: LogContext): void;\n}\n\nconst LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {\n debug: 10,\n info: 20,\n warn: 30,\n error: 40,\n};\n\nlet currentLogLevel: LogLevel = \"info\";\n\nexport function configureBridgeLogging(level: LogLevel): void {\n currentLogLevel = level;\n}\n\nfunction shouldLog(level: LogLevel): boolean {\n return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[currentLogLevel];\n}\n\nfunction formatValue(value: unknown): string {\n if (typeof value === \"string\") {\n return JSON.stringify(value);\n }\n\n if (\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n if (value === null) {\n return \"null\";\n }\n\n return JSON.stringify(value);\n}\n\nfunction formatContext(context?: LogContext): string {\n if (!context) {\n return \"\";\n }\n\n const entries = Object.entries(context).filter(\n ([, value]) => value !== undefined,\n );\n if (entries.length === 0) {\n return \"\";\n }\n\n return ` ${entries\n .map(([key, value]) => `${key}=${formatValue(value)}`)\n .join(\" \")}`;\n}\n\nexport function logBridge(\n level: LogLevel,\n message: string,\n context?: LogContext,\n): void {\n if (!shouldLog(level)) {\n return;\n }\n\n const ts = new Date().toISOString().replace(\"T\", \" \").replace(\"Z\", \" UTC\");\n const line = `[${ts}] ${level.toUpperCase()} ${message}${formatContext(context)}`;\n\n if (level === \"error\") {\n console.error(line);\n return;\n }\n\n if (level === \"warn\") {\n console.warn(line);\n return;\n }\n\n console.log(line);\n}\n\nexport function createBridgeLogger(scope: string): BridgeLogger {\n const scopedMessage = (message: string) => `[${scope}] ${message}`;\n\n return {\n debug(message, context) {\n logBridge(\"debug\", scopedMessage(message), context);\n },\n info(message, context) {\n logBridge(\"info\", scopedMessage(message), context);\n },\n warn(message, context) {\n logBridge(\"warn\", scopedMessage(message), context);\n },\n error(message, context) {\n logBridge(\"error\", scopedMessage(message), context);\n },\n };\n}\n","// bridge-format.ts — Message formatting for dispatch\n\nimport { writeFileSync } from \"fs\";\nimport { join } from \"path\";\nimport { Candidate, HeartbeatStore } from \"./bridge-types.js\";\nimport { resolveAddressLabel } from \"./bridge-routing.js\";\nimport { getProcessedMarkerPath } from \"./bridge-candidates.js\";\n\nexport function buildUserInput(\n candidate: Candidate,\n agentName: string,\n heartbeats: HeartbeatStore,\n): string {\n const sender = resolveAddressLabel(candidate.sender || \"unknown\", heartbeats);\n const recipient = resolveAddressLabel(\n candidate.recipient || agentName,\n heartbeats,\n );\n const subject = candidate.subject || \"(none)\";\n const body = candidate.body.trim();\n\n return [\n `Tap-comms inbox message for ${agentName}.`,\n `Sender: ${sender}`,\n `Recipient: ${recipient}`,\n `Subject: ${subject}`,\n `File: ${candidate.fileName}`,\n \"\",\n \"Message body:\",\n body || \"(empty)\",\n \"\",\n \"---\",\n \"Instructions: Read the message above and respond using the tap_reply tool.\",\n `Use tap_reply(to: \"${candidate.sender || \"unknown\"}\", subject: \"<your-subject>\", content: \"<your-response>\") to send your response.`,\n \"If the message is a review request, perform the review and reply with your findings.\",\n \"If the message is informational, acknowledge briefly via tap_reply.\",\n \"Do NOT respond with plain text only — you MUST use the tap_reply tool.\",\n ].join(\"\\n\");\n}\n\nexport function writeProcessedMarker(\n stateDir: string,\n candidate: Candidate,\n dispatchMode: \"start\" | \"steer\",\n threadId: string | null,\n turnId: string | null,\n): void {\n const payload = {\n requestFile: candidate.filePath,\n requestName: candidate.fileName,\n sender: candidate.sender,\n recipient: candidate.recipient,\n subject: candidate.subject,\n dispatchMode,\n threadId,\n turnId,\n markedAt: new Date().toISOString(),\n };\n writeFileSync(\n getProcessedMarkerPath(stateDir, candidate.markerId),\n `${JSON.stringify(payload, null, 2)}\\n`,\n \"utf8\",\n );\n}\n\nexport function writeLastDispatch(\n stateDir: string,\n candidate: Candidate,\n dispatchMode: \"start\" | \"steer\",\n threadId: string | null,\n turnId: string | null,\n): void {\n const payload = {\n requestFile: candidate.filePath,\n requestName: candidate.fileName,\n markerId: candidate.markerId,\n sender: candidate.sender,\n recipient: candidate.recipient,\n subject: candidate.subject,\n dispatchMode,\n threadId,\n turnId,\n dispatchedAt: new Date().toISOString(),\n };\n writeFileSync(\n join(stateDir, \"last-dispatch.json\"),\n `${JSON.stringify(payload, null, 2)}\\n`,\n \"utf8\",\n );\n}\n","// bridge-dispatch.ts — Dispatch orchestration + heartbeat\n\nimport {\n existsSync,\n readFileSync,\n renameSync,\n statSync,\n unlinkSync,\n writeFileSync,\n} from \"fs\";\nimport { join } from \"path\";\nimport {\n BridgeHealthState,\n Candidate,\n COMMS_HEARTBEAT_LOCK_TIMEOUT_MS,\n COMMS_LOCK_STALE_AGE_MS,\n HeadlessWarmupClient,\n HeartbeatRecord,\n HeartbeatStore,\n HEADLESS_WARMUP_PROMPT,\n HEADLESS_WARMUP_TIMEOUT_MS,\n Options,\n ThreadStateRecord,\n TURN_COMPLETION_POLL_MS,\n TURN_COMPLETION_REFRESH_MS,\n} from \"./bridge-types.js\";\nimport { createBridgeLogger } from \"./bridge-logging.js\";\nimport { shouldRetrySteerAsStart } from \"./bridge-routing.js\";\nimport { getPendingCandidates } from \"./bridge-candidates.js\";\nimport {\n buildUserInput,\n writeLastDispatch,\n writeProcessedMarker,\n} from \"./bridge-format.js\";\nimport { AppServerClient } from \"./bridge-ws-client.js\";\n\nconst dispatchLogger = createBridgeLogger(\"dispatch\");\nconst heartbeatLogger = createBridgeLogger(\"heartbeat\");\n\nexport function sanitizeErrorForPersistence(\n error: string | null,\n): string | null {\n if (!error) return null;\n return (\n error\n // URL query token params\n .replace(/([?&])tap_token=[^\\s&)\"'}]+/gi, \"$1tap_token=***\")\n .replace(/([?&])token=[^\\s&)\"'}]+/gi, \"$1token=***\")\n .replace(/([?&])secret=[^\\s&)\"'}]+/gi, \"$1secret=***\")\n .replace(/([?&])key=[^\\s&)\"'}]+/gi, \"$1key=***\")\n // JSON string values for sensitive keys\n .replace(/\"tap_token\"\\s*:\\s*\"[^\"]*\"/g, '\"tap_token\":\"***\"')\n .replace(/\"token\"\\s*:\\s*\"[^\"]*\"/g, '\"token\":\"***\"')\n .replace(/\"secret\"\\s*:\\s*\"[^\"]*\"/g, '\"secret\":\"***\"')\n .replace(/\"password\"\\s*:\\s*\"[^\"]*\"/g, '\"password\":\"***\"')\n .replace(/\"authorization\"\\s*:\\s*\"[^\"]*\"/gi, '\"authorization\":\"***\"')\n // WebSocket subprotocol auth prefix\n .replace(/tap-auth-[A-Za-z0-9_.\\-/+=]+/g, \"tap-auth-***\")\n // Bearer tokens in any context\n .replace(/Bearer\\s+[A-Za-z0-9_.\\-/+=]+/gi, \"Bearer ***\")\n // Generic long hex/base64 secrets (32+ chars — likely tokens)\n .replace(/(?<=[=:\"\\s])[A-Za-z0-9_\\-/+=]{40,}(?=[\"\\s&)}'}\\],]|$)/g, \"***\")\n );\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolvePromise) => {\n setTimeout(resolvePromise, ms);\n });\n}\n\nexport function readThreadState(stateDir: string): ThreadStateRecord | null {\n const threadPath = join(stateDir, \"thread.json\");\n if (!existsSync(threadPath)) {\n return null;\n }\n\n try {\n const parsed = JSON.parse(\n readFileSync(threadPath, \"utf8\"),\n ) as ThreadStateRecord;\n if (parsed.threadId) {\n return parsed;\n }\n } catch {\n return null;\n }\n\n return null;\n}\n\nexport function persistThreadState(\n stateDir: string,\n threadId: string,\n appServerUrl: string,\n ephemeral: boolean,\n cwd: string | null,\n): void {\n const payload: ThreadStateRecord = {\n threadId,\n updatedAt: new Date().toISOString(),\n appServerUrl,\n ephemeral,\n cwd,\n };\n writeFileSync(\n join(stateDir, \"thread.json\"),\n `${JSON.stringify(payload, null, 2)}\\n`,\n \"utf8\",\n );\n}\n\nexport function acquireCommsLock(lockPath: string): boolean {\n const deadline = Date.now() + COMMS_HEARTBEAT_LOCK_TIMEOUT_MS;\n while (Date.now() < deadline) {\n try {\n writeFileSync(lockPath, String(process.pid), { flag: \"wx\" });\n return true;\n } catch {\n // Lock exists — check if stale\n try {\n const lockAge = Date.now() - statSync(lockPath).mtimeMs;\n if (lockAge > COMMS_LOCK_STALE_AGE_MS) {\n unlinkSync(lockPath);\n // Retry with exclusive create\n try {\n writeFileSync(lockPath, String(process.pid), { flag: \"wx\" });\n return true;\n } catch {\n // Another process grabbed it between unlink and our wx\n }\n }\n } catch {\n // Lock disappeared between check and stat — retry\n }\n const start = Date.now();\n while (Date.now() - start < 50) {\n /* spin */\n }\n }\n }\n return false;\n}\n\nexport function releaseCommsLock(lockPath: string): void {\n try {\n unlinkSync(lockPath);\n } catch {\n // Already removed\n }\n}\n\nexport function updateCommsHeartbeat(options: Options, status: string): void {\n const heartbeatsPath = join(options.commsDir, \"heartbeats.json\");\n const lockPath = join(options.commsDir, \".heartbeats.lock\");\n\n if (!acquireCommsLock(lockPath)) {\n return; // Non-critical — skip this cycle\n }\n\n try {\n let store: Record<string, unknown> = {};\n try {\n store = JSON.parse(readFileSync(heartbeatsPath, \"utf-8\"));\n } catch {\n // Empty or corrupt — start fresh\n }\n\n // Use agentId as key (SSOT for heartbeat store), not agentName.\n // This matches tap-comms.ts which keys by routing id.\n const key = options.agentId;\n const existing = store[key] as Record<string, unknown> | undefined;\n const now = new Date().toISOString();\n store[key] = {\n id: options.agentId,\n agent: options.agentName,\n timestamp: now,\n lastActivity: now,\n joinedAt: (existing?.joinedAt as string) ?? now,\n status,\n source: \"bridge-dispatch\",\n instanceId: options.agentId,\n bridgePid: process.pid,\n connectHash: `instance:${options.agentId}`,\n };\n\n const tmpPath = heartbeatsPath + \".tmp.\" + process.pid;\n writeFileSync(tmpPath, JSON.stringify(store, null, 2), \"utf-8\");\n renameSync(tmpPath, heartbeatsPath);\n } catch {\n // Non-critical — comms heartbeat update failure should never crash bridge\n } finally {\n releaseCommsLock(lockPath);\n }\n}\n\nlet heartbeatCount = 0;\n\ninterface PreviousHeartbeatRecord {\n activeTurnId?: string | null;\n lastTurnAt?: string | null;\n lastDispatchAt?: string | null;\n idleSince?: string | null;\n turnState?: \"active\" | \"idle\" | \"waiting-approval\" | \"disconnected\" | null;\n}\n\ninterface LastDispatchRecord {\n dispatchedAt?: string;\n}\n\nfunction readPreviousHeartbeat(\n stateDir: string,\n): PreviousHeartbeatRecord | null {\n const heartbeatPath = join(stateDir, \"heartbeat.json\");\n if (!existsSync(heartbeatPath)) {\n return null;\n }\n\n try {\n return JSON.parse(\n readFileSync(heartbeatPath, \"utf8\"),\n ) as PreviousHeartbeatRecord;\n } catch {\n return null;\n }\n}\n\nfunction readLastDispatchAt(stateDir: string): string | null {\n const dispatchPath = join(stateDir, \"last-dispatch.json\");\n if (!existsSync(dispatchPath)) {\n return null;\n }\n\n try {\n const parsed = JSON.parse(\n readFileSync(dispatchPath, \"utf8\"),\n ) as LastDispatchRecord;\n return typeof parsed.dispatchedAt === \"string\" ? parsed.dispatchedAt : null;\n } catch {\n return null;\n }\n}\n\nfunction isWaitingApprovalStatus(status: string | null | undefined): boolean {\n if (!status) return false;\n return /approval|input-required|confirm|consent/i.test(status);\n}\n\nfunction resolveTurnState(\n client: AppServerClient | null,\n): \"active\" | \"idle\" | \"waiting-approval\" | \"disconnected\" | null {\n if (!client) return null;\n if (client.activeTurnId) return \"active\";\n if (client.connected === false) return \"disconnected\";\n if (isWaitingApprovalStatus(client.lastTurnStatus)) {\n return \"waiting-approval\";\n }\n if (client.connected) return \"idle\";\n return null;\n}\n\nexport function writeHeartbeat(\n options: Options,\n client: AppServerClient | null,\n health: BridgeHealthState,\n): void {\n const nowIso = new Date().toISOString();\n const previousHeartbeat = readPreviousHeartbeat(options.stateDir);\n const lastDispatchAt = readLastDispatchAt(options.stateDir);\n const turnState = resolveTurnState(client);\n const lastTurnAt =\n previousHeartbeat?.activeTurnId && !client?.activeTurnId\n ? nowIso\n : (previousHeartbeat?.lastTurnAt ?? null);\n const idleSince =\n turnState === \"idle\" || turnState === \"waiting-approval\"\n ? previousHeartbeat?.turnState === turnState &&\n previousHeartbeat.idleSince\n ? previousHeartbeat.idleSince\n : (lastTurnAt ?? lastDispatchAt ?? nowIso)\n : null;\n\n if (client?.threadId) {\n const savedThread = readThreadState(options.stateDir);\n persistThreadState(\n options.stateDir,\n client.threadId,\n options.appServerUrl,\n options.ephemeral,\n client.currentThreadCwd ?? savedThread?.cwd ?? null,\n );\n }\n\n const payload: HeartbeatRecord = {\n pid: process.pid,\n agent: options.agentName,\n updatedAt: nowIso,\n pollSeconds: options.pollSeconds,\n appServerUrl: options.appServerUrl,\n authenticated: Boolean(options.gatewayToken),\n connected: client?.connected ?? false,\n initialized: client?.initialized ?? false,\n threadId: client?.threadId ?? null,\n threadCwd: client?.currentThreadCwd ?? null,\n activeTurnId: client?.activeTurnId ?? null,\n turnStartedAt: client?.turnStartedAt ?? null,\n lastTurnStatus: client?.lastTurnStatus ?? null,\n lastTurnAt,\n lastDispatchAt,\n idleSince,\n turnState: turnState ?? undefined,\n lastNotificationMethod: client?.lastNotificationMethod ?? null,\n lastNotificationAt: client?.lastNotificationAt ?? null,\n lastError: sanitizeErrorForPersistence(client?.lastError ?? null),\n lastSuccessfulAppServerAt: client?.lastSuccessfulAppServerAt ?? null,\n lastSuccessfulAppServerMethod:\n client?.lastSuccessfulAppServerMethod ?? null,\n consecutiveFailureCount: health.consecutiveFailureCount,\n busyMode: options.busyMode,\n };\n\n writeFileSync(\n join(options.stateDir, \"heartbeat.json\"),\n `${JSON.stringify(payload, null, 2)}\\n`,\n \"utf8\",\n );\n\n heartbeatCount += 1;\n if (heartbeatCount % 5 === 0) {\n heartbeatLogger.debug(\"heartbeat written\", {\n connected: payload.connected,\n threadId: payload.threadId ?? \"null\",\n activeTurnId: payload.activeTurnId ?? null,\n consecutiveFailureCount: payload.consecutiveFailureCount,\n });\n }\n\n // Also update comms heartbeats.json so tap_who sees this agent\n const status = turnState === \"active\" ? \"active\" : \"idle\";\n updateCommsHeartbeat(options, status);\n}\n\nexport async function dispatchCandidate(\n client: AppServerClient,\n options: Options,\n candidate: Candidate,\n heartbeats: HeartbeatStore,\n): Promise<boolean> {\n const input = buildUserInput(candidate, options.agentName, heartbeats);\n\n dispatchLogger.info(\"dispatching candidate\", {\n sender: candidate.sender || \"unknown\",\n recipient: candidate.recipient || options.agentName,\n subject: candidate.subject || \"(none)\",\n fileName: candidate.fileName,\n threadId: client.threadId,\n activeTurnId: client.activeTurnId,\n busyMode: options.busyMode,\n });\n\n if (client.isBusy()) {\n if (options.busyMode !== \"steer\") {\n dispatchLogger.debug(\"bridge busy and steer disabled\", {\n fileName: candidate.fileName,\n activeTurnId: client.activeTurnId,\n });\n return false;\n }\n\n try {\n const turnId = await client.steerTurn(input);\n writeProcessedMarker(\n options.stateDir,\n candidate,\n \"steer\",\n client.threadId,\n turnId,\n );\n writeLastDispatch(\n options.stateDir,\n candidate,\n \"steer\",\n client.threadId,\n turnId,\n );\n dispatchLogger.info(\"steered active turn\", {\n fileName: candidate.fileName,\n threadId: client.threadId,\n turnId,\n });\n return true;\n } catch (error) {\n await client.refreshCurrentThreadState().catch(() => undefined);\n\n if (!client.isBusy()) {\n return dispatchCandidate(client, options, candidate, heartbeats);\n }\n\n if (shouldRetrySteerAsStart(error)) {\n client.activeTurnId = null;\n client.turnStartedAt = null;\n dispatchLogger.warn(\"steer fallback to start\", {\n fileName: candidate.fileName,\n threadId: client.threadId,\n error: sanitizeErrorForPersistence(String(error)),\n });\n return dispatchCandidate(client, options, candidate, heartbeats);\n }\n\n throw error;\n }\n }\n\n const turnId = await client.startTurn(input);\n writeProcessedMarker(\n options.stateDir,\n candidate,\n \"start\",\n client.threadId,\n turnId,\n );\n writeLastDispatch(\n options.stateDir,\n candidate,\n \"start\",\n client.threadId,\n turnId,\n );\n dispatchLogger.info(\"started turn for candidate\", {\n fileName: candidate.fileName,\n threadId: client.threadId,\n turnId,\n });\n return true;\n}\n\nexport async function runScan(\n options: Options,\n cutoff: Date,\n client: AppServerClient | null,\n): Promise<{ dispatched: boolean; maxMtimeMs: number }> {\n const { heartbeats, candidates } = getPendingCandidates(options, cutoff);\n if (candidates.length === 0) {\n dispatchLogger.debug(\"no pending candidates\", {\n cutoff: cutoff.toISOString(),\n agentName: options.agentName,\n });\n }\n let maxMtimeMs = 0;\n for (const candidate of candidates) {\n if (options.dryRun) {\n dispatchLogger.info(\"dry-run candidate\", {\n fileName: candidate.fileName,\n sender: candidate.sender,\n recipient: candidate.recipient,\n });\n maxMtimeMs = Math.max(maxMtimeMs, candidate.mtimeMs);\n continue;\n }\n\n if (!client) {\n throw new Error(\"App Server client is not available\");\n }\n\n const dispatched = await dispatchCandidate(\n client,\n options,\n candidate,\n heartbeats,\n );\n if (!dispatched && options.busyMode === \"wait\") {\n return { dispatched: false, maxMtimeMs };\n }\n maxMtimeMs = Math.max(maxMtimeMs, candidate.mtimeMs);\n return { dispatched: true, maxMtimeMs };\n }\n\n return { dispatched: false, maxMtimeMs: 0 };\n}\n\nexport async function waitForTurnDrain(\n options: Options,\n client: AppServerClient,\n health: BridgeHealthState,\n): Promise<void> {\n const deadline = Date.now() + options.waitAfterDispatchSeconds * 1_000;\n while (Date.now() < deadline) {\n writeHeartbeat(options, client, health);\n if (!client.activeTurnId) {\n return;\n }\n await delay(1_000);\n }\n\n dispatchLogger.warn(\"wait-after-dispatch deadline reached\", {\n threadId: client.threadId,\n activeTurnId: client.activeTurnId,\n waitAfterDispatchSeconds: options.waitAfterDispatchSeconds,\n });\n}\n\nexport async function waitForTurnCompletion(\n client: Pick<\n HeadlessWarmupClient,\n \"activeTurnId\" | \"lastTurnStatus\" | \"refreshCurrentThreadState\"\n >,\n turnId: string,\n timeoutMs: number,\n): Promise<string | null> {\n const deadline = Date.now() + timeoutMs;\n let nextRefreshAt = Date.now();\n\n while (Date.now() < deadline) {\n if (!client.activeTurnId || client.activeTurnId !== turnId) {\n return client.lastTurnStatus;\n }\n\n if (Date.now() >= nextRefreshAt) {\n await client.refreshCurrentThreadState().catch(() => undefined);\n if (!client.activeTurnId || client.activeTurnId !== turnId) {\n return client.lastTurnStatus;\n }\n nextRefreshAt = Date.now() + TURN_COMPLETION_REFRESH_MS;\n }\n\n await delay(\n Math.min(TURN_COMPLETION_POLL_MS, Math.max(deadline - Date.now(), 0)),\n );\n }\n\n await client.refreshCurrentThreadState().catch(() => undefined);\n if (!client.activeTurnId || client.activeTurnId !== turnId) {\n return client.lastTurnStatus;\n }\n\n throw new Error(`Timed out waiting for turn ${turnId} to complete`);\n}\n\nexport async function maybeBootstrapHeadlessTurn(\n options: Options,\n cutoff: Date,\n client: HeadlessWarmupClient,\n): Promise<boolean> {\n if (\n process.env.TAP_HEADLESS !== \"true\" &&\n process.env.TAP_COLD_START_WARMUP !== \"true\"\n ) {\n return false;\n }\n\n const { candidates } = getPendingCandidates(options, cutoff);\n if (\n candidates.length > 0 ||\n client.activeTurnId ||\n client.lastTurnStatus !== null\n ) {\n return false;\n }\n\n dispatchLogger.info(\"headless cold-start warmup starting\", {\n threadId: client.activeTurnId,\n });\n const turnId = await client.startTurn(HEADLESS_WARMUP_PROMPT);\n if (!turnId) {\n throw new Error(\n \"Headless cold-start warmup failed: turn/start did not return a turn id. \" +\n \"Run: npx @hua-labs/tap doctor\",\n );\n }\n\n try {\n const status = await waitForTurnCompletion(\n client,\n turnId,\n HEADLESS_WARMUP_TIMEOUT_MS,\n );\n if (status !== \"completed\") {\n throw new Error(\n `turn ${turnId} finished with status ${status ?? \"unknown\"}`,\n );\n }\n\n dispatchLogger.info(\"headless cold-start warmup completed\", {\n turnId,\n status,\n });\n return true;\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Headless cold-start warmup failed: ${reason}. ` +\n \"Run: npx @hua-labs/tap doctor\",\n );\n }\n}\n","// bridge-ws-client.ts — AppServerClient class (WebSocket + JSON-RPC + thread/turn state)\n\nimport {\n AUTH_SUBPROTOCOL_PREFIX,\n JsonRpcResponse,\n LoadedThreadCandidate,\n RequestRecord,\n ThreadStateRecord,\n} from \"./bridge-types.js\";\nimport { BridgeLogger } from \"./bridge-logging.js\";\nimport { sanitizeErrorForPersistence } from \"./bridge-dispatch.js\";\nimport {\n chooseLoadedThreadForCwd,\n isTurnStale,\n isTurnStuckOnApproval,\n threadCwdMatches,\n} from \"./bridge-routing.js\";\n\nexport async function readSocketData(data: unknown): Promise<string> {\n if (typeof data === \"string\") {\n return data;\n }\n\n if (data instanceof ArrayBuffer) {\n return Buffer.from(data).toString(\"utf8\");\n }\n\n if (ArrayBuffer.isView(data)) {\n return Buffer.from(data.buffer, data.byteOffset, data.byteLength).toString(\n \"utf8\",\n );\n }\n\n if (typeof Blob !== \"undefined\" && data instanceof Blob) {\n return await data.text();\n }\n\n return String(data);\n}\n\nexport function formatJsonRpcError(error: JsonRpcResponse[\"error\"]): string {\n if (!error) {\n return \"Unknown App Server error\";\n }\n\n return JSON.stringify(\n {\n code: error.code,\n message: error.message,\n data: error.data,\n },\n null,\n 2,\n );\n}\n\nlet nextAppServerClientId = 1;\n\nexport class AppServerClient {\n private socket: WebSocket | null = null;\n private readonly url: string;\n private readonly gatewayToken: string | null;\n private readonly logger: BridgeLogger;\n private readonly clientId = nextAppServerClientId++;\n private nextId = 1;\n private pending = new Map<\n number,\n {\n resolve: (value: any) => void;\n reject: (reason?: unknown) => void;\n method: string;\n }\n >();\n\n connected = false;\n initialized = false;\n threadId: string | null = null;\n currentThreadCwd: string | null = null;\n activeTurnId: string | null = null;\n turnStartedAt: string | null = null;\n lastTurnStatus: string | null = null;\n lastNotificationMethod: string | null = null;\n lastNotificationAt: string | null = null;\n lastError: string | null = null;\n lastSuccessfulAppServerAt: string | null = null;\n lastSuccessfulAppServerMethod: string | null = null;\n\n constructor(url: string, logger: BridgeLogger, gatewayToken?: string | null) {\n this.url = url;\n this.logger = logger;\n this.gatewayToken = gatewayToken ?? null;\n }\n\n async connect(): Promise<void> {\n if (this.connected && this.socket?.readyState === WebSocket.OPEN) {\n return;\n }\n\n // M175: Warn when connecting without auth — unauthenticated connections\n // allow any local process to control the app-server session.\n if (!this.gatewayToken) {\n this.logger.warn(\n \"connecting without auth token — app-server session is unprotected. \" +\n \"Use --gateway-token-file or TAP_GATEWAY_TOKEN_FILE to enable auth.\",\n { url: this.url },\n );\n }\n\n // Authenticate via WebSocket subprotocol instead of URL query param.\n // Token stays out of URLs (no log/referer/history leakage).\n const wsOptions: { protocols?: string[] } = {};\n if (this.gatewayToken) {\n wsOptions.protocols = [`${AUTH_SUBPROTOCOL_PREFIX}${this.gatewayToken}`];\n }\n this.socket = new WebSocket(this.url, wsOptions);\n\n await new Promise<void>((resolvePromise, rejectPromise) => {\n let settled = false;\n\n const resolveOnce = () => {\n if (settled) {\n return;\n }\n settled = true;\n resolvePromise();\n };\n\n const rejectOnce = (error: Error) => {\n if (settled) {\n return;\n }\n settled = true;\n rejectPromise(error);\n };\n\n this.socket?.addEventListener(\n \"open\",\n () => {\n this.connected = true;\n this.logger.info(\"connected to app-server\", {\n clientId: this.clientId,\n url: this.url,\n authenticated: Boolean(this.gatewayToken),\n });\n resolveOnce();\n },\n { once: true },\n );\n\n this.socket?.addEventListener(\"error\", () => {\n const error = new Error(\n `Failed to connect to App Server at ${this.url}`,\n );\n this.lastError = sanitizeErrorForPersistence(error.message);\n this.logger.error(\"failed to connect to app-server\", {\n clientId: this.clientId,\n url: this.url,\n error: this.lastError,\n });\n rejectOnce(error);\n });\n\n this.socket?.addEventListener(\"close\", () => {\n this.connected = false;\n this.initialized = false;\n this.activeTurnId = null;\n this.turnStartedAt = null;\n this.logger.warn(\"disconnected from app-server\", {\n clientId: this.clientId,\n url: this.url,\n });\n this.rejectPending(new Error(\"App Server connection closed\"));\n });\n\n this.socket?.addEventListener(\"message\", (event) => {\n void this.handleMessage(event.data);\n });\n });\n\n await this.request(\"initialize\", {\n clientInfo: {\n name: \"tap-app-server-bridge\",\n title: \"tap app-server bridge\",\n version: \"0.1.0\",\n },\n capabilities: {\n experimentalApi: false,\n },\n });\n this.initialized = true;\n }\n\n async disconnect(): Promise<void> {\n if (!this.socket) {\n return;\n }\n\n this.socket.close();\n this.connected = false;\n this.initialized = false;\n this.socket = null;\n }\n\n async ensureThread(\n explicitThreadId: string | null,\n savedThread: ThreadStateRecord | null,\n cwd: string,\n ephemeral: boolean,\n ): Promise<string> {\n if (explicitThreadId) {\n try {\n const resumeResponse = await this.request(\"thread/resume\", {\n threadId: explicitThreadId,\n persistExtendedHistory: false,\n });\n const resumedThreadId = resumeResponse?.thread?.id ?? explicitThreadId;\n await this.refreshThreadState(resumedThreadId);\n this.logger.info(\"resumed explicit thread\", {\n clientId: this.clientId,\n threadId: resumedThreadId,\n activeTurnId: this.activeTurnId,\n });\n return resumedThreadId;\n } catch (error) {\n this.logger.warn(\n \"explicit thread resume failed; starting fresh thread\",\n {\n clientId: this.clientId,\n threadId: explicitThreadId,\n error: sanitizeErrorForPersistence(String(error)),\n },\n );\n }\n }\n\n const loadedThreadId = await this.findLoadedThread(cwd);\n if (loadedThreadId) {\n return loadedThreadId;\n }\n\n if (savedThread?.threadId) {\n if (savedThread.cwd && !threadCwdMatches(cwd, savedThread.cwd)) {\n this.logger.warn(\"saved thread cwd mismatch; skipping saved thread\", {\n clientId: this.clientId,\n threadId: savedThread.threadId,\n savedCwd: savedThread.cwd,\n expectedCwd: cwd,\n });\n } else {\n try {\n const resumeResponse = await this.request(\"thread/resume\", {\n threadId: savedThread.threadId,\n persistExtendedHistory: false,\n });\n const resumedThreadId =\n resumeResponse?.thread?.id ?? savedThread.threadId;\n await this.refreshThreadState(resumedThreadId);\n if (!threadCwdMatches(cwd, this.currentThreadCwd)) {\n this.logger.warn(\"saved thread resumed with mismatched cwd\", {\n clientId: this.clientId,\n threadId: resumedThreadId,\n expectedCwd: cwd,\n actualCwd: this.currentThreadCwd ?? \"unknown\",\n });\n this.threadId = null;\n this.currentThreadCwd = null;\n this.activeTurnId = null;\n this.turnStartedAt = null;\n this.lastTurnStatus = null;\n } else {\n this.logger.info(\"resumed saved thread\", {\n clientId: this.clientId,\n threadId: resumedThreadId,\n activeTurnId: this.activeTurnId,\n });\n return resumedThreadId;\n }\n } catch (error) {\n this.logger.warn(\n \"saved thread resume failed; starting fresh thread\",\n {\n clientId: this.clientId,\n threadId: savedThread.threadId,\n error: sanitizeErrorForPersistence(String(error)),\n },\n );\n }\n }\n }\n\n const startResponse = await this.request(\"thread/start\", {\n cwd,\n ephemeral,\n experimentalRawEvents: false,\n persistExtendedHistory: false,\n });\n\n const startedThreadId = startResponse?.thread?.id;\n if (!startedThreadId) {\n throw new Error(\"thread/start did not return a thread id\");\n }\n\n this.syncThreadStateFromThread(startResponse?.thread);\n this.threadId = startedThreadId;\n this.currentThreadCwd = this.currentThreadCwd ?? cwd;\n this.activeTurnId = null;\n this.lastTurnStatus = null;\n this.logger.info(\"started thread\", {\n clientId: this.clientId,\n threadId: startedThreadId,\n cwd: this.currentThreadCwd,\n ephemeral,\n });\n return startedThreadId;\n }\n\n async findLoadedThread(cwd: string): Promise<string | null> {\n const response = await this.request(\"thread/loaded/list\", {\n limit: 20,\n });\n const threadIds = Array.isArray(response?.data)\n ? response.data.filter(\n (value: unknown): value is string => typeof value === \"string\",\n )\n : [];\n\n if (threadIds.length === 0) {\n return null;\n }\n\n const threads: LoadedThreadCandidate[] = [];\n\n for (const threadId of threadIds) {\n try {\n const threadResponse = await this.request(\"thread/read\", {\n threadId,\n includeTurns: true,\n });\n const thread = threadResponse?.thread;\n if (!thread?.id) {\n continue;\n }\n threads.push({\n id: thread.id,\n cwd: typeof thread.cwd === \"string\" ? thread.cwd : \"\",\n updatedAt:\n typeof thread.updatedAt === \"number\" ? thread.updatedAt : 0,\n statusType: thread.status?.type ?? null,\n thread,\n });\n } catch {\n continue;\n }\n }\n\n const chosen = chooseLoadedThreadForCwd(cwd, threads);\n if (!chosen) {\n if (threads.length > 0) {\n this.logger.debug(\"loaded threads exist but none match cwd\", {\n clientId: this.clientId,\n cwd,\n loadedThreadCount: threads.length,\n });\n }\n return null;\n }\n this.syncThreadStateFromThread(chosen.thread);\n this.logger.info(\"attached to loaded thread\", {\n clientId: this.clientId,\n threadId: chosen.id,\n activeTurnId: this.activeTurnId,\n cwd: chosen.cwd,\n });\n return chosen.id;\n }\n\n async startTurn(inputText: string): Promise<string | null> {\n const threadId = this.requireThreadId();\n const response = await this.request(\"turn/start\", {\n threadId,\n input: [\n {\n type: \"text\",\n text: inputText,\n text_elements: [],\n },\n ],\n });\n\n const turnId = response?.turn?.id ?? null;\n if (turnId) {\n this.activeTurnId = turnId;\n this.turnStartedAt = new Date().toISOString();\n }\n return turnId;\n }\n\n async steerTurn(inputText: string): Promise<string> {\n const threadId = this.requireThreadId();\n const turnId = this.requireActiveTurnId();\n\n await this.request(\"turn/steer\", {\n threadId,\n expectedTurnId: turnId,\n input: [\n {\n type: \"text\",\n text: inputText,\n text_elements: [],\n },\n ],\n });\n\n return turnId;\n }\n\n isBusy(): boolean {\n if (!this.activeTurnId) return false;\n if (isTurnStale(this.turnStartedAt)) {\n this.logger.warn(\"active turn is stale; treating bridge as idle\", {\n clientId: this.clientId,\n turnId: this.activeTurnId,\n turnStartedAt: this.turnStartedAt,\n });\n this.activeTurnId = null;\n this.turnStartedAt = null;\n return false;\n }\n return true;\n }\n\n async refreshCurrentThreadState(): Promise<void> {\n if (!this.threadId) {\n return;\n }\n\n await this.refreshThreadState(this.threadId);\n }\n\n private requireThreadId(): string {\n if (!this.threadId) {\n throw new Error(\"No active App Server thread is available\");\n }\n return this.threadId;\n }\n\n private requireActiveTurnId(): string {\n if (!this.activeTurnId) {\n throw new Error(\"No active turn is available for turn/steer\");\n }\n return this.activeTurnId;\n }\n\n private async refreshThreadState(threadId: string): Promise<void> {\n const threadResponse = await this.request(\"thread/read\", {\n threadId,\n includeTurns: true,\n });\n this.syncThreadStateFromThread(threadResponse?.thread);\n }\n\n private syncThreadStateFromThread(thread: any): void {\n if (typeof thread?.id === \"string\") {\n this.threadId = thread.id;\n }\n this.currentThreadCwd = typeof thread?.cwd === \"string\" ? thread.cwd : null;\n\n let activeTurnId: string | null = null;\n let lastTurnStatus: string | null = null;\n\n // M203: Check thread-level status.activeFlags (live production shape)\n const threadActiveFlags: string[] = Array.isArray(\n thread?.status?.activeFlags,\n )\n ? thread.status.activeFlags\n : [];\n const threadStuckOnApproval = isTurnStuckOnApproval(threadActiveFlags);\n if (threadStuckOnApproval) {\n this.logger.warn(\"thread waitingOnApproval; ignoring in-progress turns\", {\n clientId: this.clientId,\n threadId: this.threadId,\n });\n }\n\n const turns = Array.isArray(thread?.turns) ? thread.turns : [];\n for (const turn of turns) {\n if (typeof turn?.status === \"string\") {\n lastTurnStatus = turn.status;\n }\n if (turn?.status === \"inProgress\" && typeof turn.id === \"string\") {\n // M203: Skip if thread-level or turn-level waitingOnApproval\n if (threadStuckOnApproval) {\n continue;\n }\n const turnActiveFlags: string[] = Array.isArray(turn.activeFlags)\n ? turn.activeFlags\n : [];\n if (isTurnStuckOnApproval(turnActiveFlags)) {\n this.logger.warn(\"turn waitingOnApproval; ignoring turn as active\", {\n clientId: this.clientId,\n turnId: turn.id,\n });\n continue;\n }\n activeTurnId = turn.id;\n }\n }\n\n if (activeTurnId && activeTurnId !== this.activeTurnId) {\n this.turnStartedAt = new Date().toISOString();\n } else if (!activeTurnId) {\n this.turnStartedAt = null;\n }\n this.activeTurnId = activeTurnId;\n this.lastTurnStatus = lastTurnStatus;\n }\n\n private async handleMessage(data: unknown): Promise<void> {\n const text = await readSocketData(data);\n const message = JSON.parse(text) as JsonRpcResponse;\n\n if (\n typeof message.id === \"number\" &&\n (Object.hasOwn(message, \"result\") || Object.hasOwn(message, \"error\"))\n ) {\n const pending = this.pending.get(message.id);\n if (!pending) {\n return;\n }\n\n this.pending.delete(message.id);\n if (message.error) {\n const errorText = formatJsonRpcError(message.error);\n this.lastError = sanitizeErrorForPersistence(errorText);\n this.logger.error(\"app-server request failed\", {\n clientId: this.clientId,\n method: pending.method,\n error: this.lastError,\n });\n pending.reject(new Error(`${pending.method} failed: ${errorText}`));\n return;\n }\n\n pending.resolve(message.result);\n this.lastSuccessfulAppServerAt = new Date().toISOString();\n this.lastSuccessfulAppServerMethod = pending.method;\n this.lastError = null;\n return;\n }\n\n if (!message.method) {\n return;\n }\n\n this.lastNotificationMethod = message.method;\n this.lastNotificationAt = new Date().toISOString();\n this.logger.debug(\"received app-server notification\", {\n clientId: this.clientId,\n method: message.method,\n });\n this.handleNotification(message.method, message.params);\n }\n\n private handleNotification(method: string, params: any): void {\n switch (method) {\n case \"thread/started\":\n if (params?.thread?.id) {\n this.threadId = params.thread.id;\n }\n if (typeof params?.thread?.cwd === \"string\") {\n this.currentThreadCwd = params.thread.cwd;\n }\n this.logger.info(\"thread started notification\", {\n clientId: this.clientId,\n threadId: params?.thread?.id ?? null,\n cwd: params?.thread?.cwd ?? null,\n });\n break;\n case \"thread/status/changed\":\n this.logger.debug(\"thread status changed\", {\n clientId: this.clientId,\n threadId: params?.thread?.id ?? this.threadId,\n status:\n params?.thread?.status?.type ?? params?.status?.type ?? \"unknown\",\n });\n break;\n case \"turn/started\":\n if (params?.turn?.id) {\n this.activeTurnId = params.turn.id;\n this.turnStartedAt = new Date().toISOString();\n this.logger.info(\"turn started\", {\n clientId: this.clientId,\n threadId: this.threadId,\n turnId: params.turn.id,\n });\n }\n break;\n case \"turn/completed\": {\n this.lastTurnStatus = params?.turn?.status ?? null;\n const prevTurnStartedAt = this.turnStartedAt;\n this.activeTurnId = null;\n this.turnStartedAt = null;\n const elapsedMs = prevTurnStartedAt\n ? Date.now() - new Date(prevTurnStartedAt).getTime()\n : null;\n this.logger.info(\"turn completed\", {\n clientId: this.clientId,\n threadId: this.threadId,\n status: this.lastTurnStatus ?? \"unknown\",\n elapsedSeconds:\n elapsedMs !== null ? Math.round(elapsedMs / 1000) : undefined,\n });\n break;\n }\n case \"error\":\n this.lastError = sanitizeErrorForPersistence(\n JSON.stringify(params ?? {}, null, 2),\n );\n this.logger.error(\"app-server error notification\", {\n clientId: this.clientId,\n error: this.lastError,\n });\n break;\n default:\n break;\n }\n }\n\n private request(method: string, params: unknown): Promise<any> {\n if (!this.socket || this.socket.readyState !== WebSocket.OPEN) {\n throw new Error(`Cannot call ${method}; App Server socket is not open`);\n }\n\n const id = this.nextId;\n this.nextId += 1;\n\n const request: RequestRecord = {\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n };\n\n return new Promise((resolvePromise, rejectPromise) => {\n this.pending.set(id, {\n resolve: resolvePromise,\n reject: rejectPromise,\n method,\n });\n this.socket?.send(JSON.stringify(request));\n });\n }\n\n private rejectPending(error: Error): void {\n for (const pending of this.pending.values()) {\n pending.reject(error);\n }\n this.pending.clear();\n }\n}\n","// bridge-main.ts — Entry point, main loop, signal handling\n\nimport { existsSync, readFileSync, writeFileSync } from \"fs\";\nimport { isAbsolute, join, resolve } from \"path\";\nimport { pathToFileURL } from \"url\";\nimport {\n BridgeHealthState,\n HeartbeatRecord,\n ThreadStateRecord,\n} from \"./bridge-types.js\";\nimport {\n configureBridgeLogging,\n createBridgeLogger,\n} from \"./bridge-logging.js\";\nimport { buildOptions } from \"./bridge-config.js\";\nimport {\n maybeBootstrapHeadlessTurn,\n persistThreadState,\n readThreadState,\n runScan,\n waitForTurnDrain,\n writeHeartbeat,\n} from \"./bridge-dispatch.js\";\nimport { AppServerClient } from \"./bridge-ws-client.js\";\nimport { sanitizeErrorForPersistence } from \"./bridge-dispatch.js\";\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolvePromise) => {\n setTimeout(resolvePromise, ms);\n });\n}\n\nexport function readHeartbeatState(stateDir: string): HeartbeatRecord | null {\n const heartbeatPath = join(stateDir, \"heartbeat.json\");\n if (!existsSync(heartbeatPath)) {\n return null;\n }\n\n try {\n return JSON.parse(readFileSync(heartbeatPath, \"utf8\")) as HeartbeatRecord;\n } catch {\n return null;\n }\n}\n\nfunction parseUpdatedAt(value?: string | null): number {\n if (!value) {\n return 0;\n }\n\n const parsed = Date.parse(value);\n return Number.isFinite(parsed) ? parsed : 0;\n}\n\nfunction appServerUrlMatches(\n expectedAppServerUrl: string,\n actualAppServerUrl?: string | null,\n): boolean {\n return actualAppServerUrl?.trim() === expectedAppServerUrl;\n}\n\nfunction hasValidHeartbeatThreadCwd(\n threadCwd?: string | null,\n): threadCwd is string {\n const normalized = threadCwd?.trim();\n if (!normalized) {\n return false;\n }\n\n return (\n isAbsolute(normalized) ||\n /^[A-Za-z]:[\\\\/]/.test(normalized) ||\n normalized.startsWith(\"\\\\\\\\\")\n );\n}\n\nexport function loadResumableThreadState(\n stateDir: string,\n fallbackAppServerUrl: string,\n): ThreadStateRecord | null {\n const savedThread = readThreadState(stateDir);\n const heartbeat = readHeartbeatState(stateDir);\n const heartbeatThreadId = heartbeat?.threadId?.trim();\n\n if (!heartbeatThreadId) {\n return savedThread;\n }\n\n if (!appServerUrlMatches(fallbackAppServerUrl, heartbeat?.appServerUrl)) {\n return savedThread;\n }\n\n if (!hasValidHeartbeatThreadCwd(heartbeat?.threadCwd)) {\n return savedThread;\n }\n\n const heartbeatBackedThread: ThreadStateRecord = {\n threadId: heartbeatThreadId,\n updatedAt:\n heartbeat?.updatedAt ??\n savedThread?.updatedAt ??\n new Date().toISOString(),\n appServerUrl:\n heartbeat?.appServerUrl ||\n savedThread?.appServerUrl ||\n fallbackAppServerUrl,\n ephemeral: savedThread?.ephemeral ?? false,\n cwd:\n heartbeat?.threadCwd ??\n (savedThread?.threadId === heartbeatThreadId\n ? (savedThread.cwd ?? null)\n : null),\n };\n\n let preferred = savedThread;\n if (!savedThread?.threadId) {\n preferred = heartbeatBackedThread;\n } else if (savedThread.threadId === heartbeatThreadId) {\n preferred = {\n ...savedThread,\n updatedAt: heartbeatBackedThread.updatedAt ?? savedThread.updatedAt,\n appServerUrl: heartbeatBackedThread.appServerUrl,\n cwd: heartbeatBackedThread.cwd ?? savedThread.cwd ?? null,\n };\n } else if (\n parseUpdatedAt(heartbeat?.updatedAt) > parseUpdatedAt(savedThread.updatedAt)\n ) {\n preferred = heartbeatBackedThread;\n }\n\n return preferred;\n}\n\nexport function getGeneralInboxCutoff(\n stateDir: string,\n lookbackMinutes: number,\n processExistingMessages: boolean,\n): Date {\n if (processExistingMessages) {\n return new Date(0);\n }\n\n const lookbackCutoff =\n lookbackMinutes > 0\n ? new Date(Date.now() - lookbackMinutes * 60_000)\n : null;\n\n // Prefer saved cutoff (last processed timestamp) over lookback window\n // to avoid re-dispatching already-processed messages on restart.\n const cutoffPath = join(stateDir, \"general-inbox-cutoff.txt\");\n if (existsSync(cutoffPath)) {\n try {\n const saved = new Date(readFileSync(cutoffPath, \"utf8\").trim());\n if (!isNaN(saved.getTime())) {\n // Use the more recent of saved cutoff vs lookback window\n if (lookbackCutoff && lookbackCutoff > saved) {\n return lookbackCutoff;\n }\n return saved;\n }\n } catch {\n // fall through to lookback/now\n }\n }\n\n if (lookbackCutoff) {\n return lookbackCutoff;\n }\n\n const cutoff = new Date();\n writeFileSync(cutoffPath, `${cutoff.toISOString()}\\n`, \"utf8\");\n return cutoff;\n}\n\nexport async function main(): Promise<void> {\n const options = buildOptions(process.argv.slice(2));\n configureBridgeLogging(options.logLevel);\n const logger = createBridgeLogger(\"bridge\");\n const cutoff = getGeneralInboxCutoff(\n options.stateDir,\n options.messageLookbackMinutes,\n options.processExistingMessages,\n );\n const initialSavedThread = loadResumableThreadState(\n options.stateDir,\n options.appServerUrl,\n );\n\n logger.info(\"codex app-server bridge ready\", {\n repoRoot: options.repoRoot,\n commsDir: options.commsDir,\n agentName: options.agentName,\n stateDir: options.stateDir,\n appServerUrl: options.appServerUrl,\n busyMode: options.busyMode,\n logLevel: options.logLevel,\n waitAfterDispatchSeconds:\n options.waitAfterDispatchSeconds > 0\n ? options.waitAfterDispatchSeconds\n : undefined,\n lookback: options.processExistingMessages\n ? \"existing messages\"\n : `${options.messageLookbackMinutes} minute(s)`,\n threadId: options.threadId ?? initialSavedThread?.threadId,\n });\n if (options.dryRun) {\n logger.info(\"dry-run mode enabled\");\n }\n\n let client: AppServerClient | null = null;\n const health: BridgeHealthState = {\n consecutiveFailureCount: 0,\n };\n\n while (true) {\n try {\n if (!options.dryRun) {\n if (!client || !client.connected) {\n client = new AppServerClient(\n options.connectAppServerUrl,\n createBridgeLogger(\"app-server\"),\n options.gatewayToken,\n );\n await client.connect();\n const savedThread = loadResumableThreadState(\n options.stateDir,\n options.appServerUrl,\n );\n logger.debug(\"resolved resumable thread state\", {\n savedThreadId: savedThread?.threadId,\n savedThreadCwd: savedThread?.cwd ?? null,\n });\n\n const threadId = await client.ensureThread(\n options.threadId,\n savedThread,\n options.repoRoot,\n options.ephemeral,\n );\n persistThreadState(\n options.stateDir,\n threadId,\n options.appServerUrl,\n options.ephemeral,\n client.currentThreadCwd ?? options.repoRoot,\n );\n writeHeartbeat(options, client, health);\n const bootstrapped = await maybeBootstrapHeadlessTurn(\n options,\n cutoff,\n client,\n );\n if (bootstrapped) {\n writeHeartbeat(options, client, health);\n }\n }\n }\n\n const scanResult = await runScan(options, cutoff, client);\n if (scanResult.dispatched && scanResult.maxMtimeMs > 0) {\n // Advance the persisted cutoff to the latest dispatched message mtime\n // (not wall-clock now) to avoid skipping messages that arrived mid-scan\n const cutoffPath = join(options.stateDir, \"general-inbox-cutoff.txt\");\n const advancedCutoff = new Date(scanResult.maxMtimeMs);\n writeFileSync(cutoffPath, `${advancedCutoff.toISOString()}\\n`, \"utf8\");\n }\n if (\n scanResult.dispatched &&\n client &&\n options.waitAfterDispatchSeconds > 0\n ) {\n await waitForTurnDrain(options, client, health);\n }\n health.consecutiveFailureCount = 0;\n writeHeartbeat(options, client, health);\n\n if (options.runOnce) {\n break;\n }\n\n await delay(options.pollSeconds * 1_000);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(\"bridge error\", {\n error: sanitizeErrorForPersistence(message),\n });\n if (client) {\n client.lastError = sanitizeErrorForPersistence(message);\n }\n health.consecutiveFailureCount += 1;\n writeHeartbeat(options, client, health);\n\n if (options.runOnce) {\n // Sanitize before re-throwing — top-level catch may log raw message\n const sanitized = sanitizeErrorForPersistence(message);\n throw new Error(sanitized ?? message);\n }\n\n client?.disconnect().catch(() => undefined);\n client = null;\n logger.warn(\"reconnecting after bridge error\", {\n reconnectSeconds: options.reconnectSeconds,\n consecutiveFailureCount: health.consecutiveFailureCount,\n });\n await delay(options.reconnectSeconds * 1_000);\n }\n }\n\n await client?.disconnect();\n}\n\nexport function isDirectExecution(): boolean {\n const entry = process.argv[1];\n if (!entry) return false;\n return import.meta.url === pathToFileURL(resolve(entry)).href;\n}\n"],"mappings":"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","names":["pathToFileURL","resolve","existsSync","readFileSync","isAbsolute","join","resolve","existsSync","resolve","isAbsolute","join","readFileSync","existsSync","readFileSync","join","join","readFileSync","existsSync","writeFileSync","join","writeFileSync","join","existsSync","readFileSync","renameSync","statSync","writeFileSync","join","join","existsSync","readFileSync","writeFileSync","statSync","renameSync","turnId","existsSync","readFileSync","writeFileSync","isAbsolute","join","resolve","delay","join","existsSync","readFileSync","isAbsolute","writeFileSync","resolve","isDirectExecution","pathToFileURL","resolve"]}
|
|
1
|
+
{"version":3,"sources":["../../src/bridges/codex-app-server-bridge.ts","../../scripts/bridge/bridge-types.ts","../../scripts/bridge/bridge-routing.ts","../../packages/tap-plugin/channels/tap-identity.ts","../../scripts/bridge/bridge-config.ts","../../scripts/bridge/bridge-candidates.ts","../../scripts/bridge/bridge-logging.ts","../../scripts/bridge/bridge-format.ts","../../src/routing/tap-message-prompt.ts","../../scripts/bridge/bridge-elicitation.ts","../../scripts/bridge/bridge-dispatch.ts","../../src/transport/experimental/codex-ipc-control.ts","../../src/transport/consent.ts","../../src/transport/consent-ledger.ts","../../src/transport/experimental/codex-ipc-observe.ts","../../src/transport/experimental/codex-ipc-endpoint.ts","../../scripts/bridge/bridge-ws-client.ts","../../scripts/bridge/bridge-main.ts"],"mappings":"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","names":["pathToFileURL","basename","resolve","existsSync","readFileSync","join","resolve","existsSync","resolve","join","readFileSync","existsSync","readFileSync","join","writeFileSync","join","writeFileSync","join","join","readFileSync","existsSync","randomUUID","existsSync","mkdirSync","readFileSync","renameSync","statSync","unlinkSync","writeFileSync","join","randomUUID","createHash","randomUUID","fs","path","normalizeString","randomUUID","tmpdir","resolve","randomUUID","normalizeAddress","asRecord","listRecordKeys","randomUUID","resolve","randomUUID","asRecord","extractDriveTurnId","join","existsSync","readFileSync","writeFileSync","statSync","unlinkSync","renameSync","mkdirSync","turnId","existsSync","readFileSync","writeFileSync","isAbsolute","join","resolve","delay","getProcessRssMb","join","existsSync","readFileSync","isAbsolute","writeFileSync","resolve","isDirectExecution","basename","pathToFileURL","resolve"]}
|