@hua-labs/tap 0.5.2 → 0.6.1
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 +270 -0
- package/CHANGELOG.md +81 -0
- package/README.md +189 -133
- 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 +30818 -8324
- 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 +11586 -3438
- 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 +22 -5
package/dist/mcp-server.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../packages/tap-plugin/channels/tap-identity.ts","../packages/tap-plugin/channels/tap-utils.ts","../packages/tap-plugin/channels/tap-io.ts","../packages/tap-plugin/channels/tap-comms.ts","../packages/tap-plugin/channels/tap-peer-dm-rate-limit.ts","../packages/tap-plugin/channels/tap-claims.ts","../packages/tap-plugin/channels/tap-db.ts","../packages/tap-plugin/channels/tap-watcher.ts","../packages/tap-plugin/channels/tap-presence.ts","../packages/tap-plugin/channels/tap-poll-fallback.ts"],"sourcesContent":["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","/**\n * tap-comms shared utilities: types, config, parsing, helpers.\n */\nimport { existsSync, readFileSync, readdirSync, statSync } from \"fs\";\nimport { basename, join, resolve } from \"path\";\nimport {\n canonicalizeAgentId as canonicalizeIdentityId,\n isPlaceholderAgentValue,\n matchesAgentRecipient,\n} from \"./tap-identity.js\";\n\n// ── Config ──────────────────────────────────────────────────────────────\n\nconst RAW_COMMS_DIR = process.env.TAP_COMMS_DIR;\nif (!RAW_COMMS_DIR) {\n console.error(\n \"[tap-comms] FATAL: TAP_COMMS_DIR not set. Set via env or .tap-config\",\n );\n process.exit(1);\n}\n\nexport const COMMS_DIR = resolve(RAW_COMMS_DIR);\nexport const INBOX_DIR = join(COMMS_DIR, \"inbox\");\nexport const REVIEWS_DIR = join(COMMS_DIR, \"reviews\");\nexport const FINDINGS_DIR = join(COMMS_DIR, \"findings\");\nexport const RECEIPTS_DIR = join(COMMS_DIR, \"receipts\");\nexport const RECEIPTS_PATH = join(RECEIPTS_DIR, \"receipts.json\");\nexport const RECEIPTS_LOCK = join(RECEIPTS_DIR, \".lock\");\nexport const HEARTBEATS_PATH = join(COMMS_DIR, \"heartbeats.json\");\nexport const HEARTBEATS_LOCK = join(COMMS_DIR, \".heartbeats.lock\");\nexport const ARCHIVE_DIR = join(COMMS_DIR, \"archive\");\nexport const DB_PATH = join(COMMS_DIR, \"tap.db\");\nexport const SERVER_START = Date.now();\n\n// ── Agent Identity ──────────────────────────────────────────────────────\n// id = immutable routing key (set once at startup or first tap_set_name)\n// name = session display label. Once a real name is confirmed, only\n// idempotent tap_set_name calls are allowed until an explicit rename flow exists.\n\nexport type TapBootstrapInstance = {\n runtime?: string;\n installed?: boolean;\n agentName?: string | null;\n bridgeMode?: string;\n};\n\nfunction isConcreteIdentity(value: string | undefined): value is string {\n return !isPlaceholderAgentValue(value);\n}\n\nfunction normalizeAgentId(value: string): string {\n return canonicalizeIdentityId(value);\n}\n\nexport function loadStateInstances(): Record<string, TapBootstrapInstance> | null {\n const stateDir = process.env.TAP_STATE_DIR;\n if (!stateDir) return null;\n try {\n const statePath = join(stateDir, \"state.json\");\n if (!existsSync(statePath)) return null;\n const state = JSON.parse(readFileSync(statePath, \"utf-8\")) as {\n instances?: Record<string, TapBootstrapInstance>;\n };\n return state.instances ?? null;\n } catch {\n return null;\n }\n}\n\ntype StateBootstrapIdentity = {\n agentId: string;\n agentName: string | null;\n};\n\nconst BRIDGE_RUNTIME_STATE_DIR_PREFIX = \"codex-app-server-bridge-\";\n\nexport type AgentIdentitySnapshot = {\n agentId: string;\n agentName: string;\n idLocked: boolean;\n nameConfirmed: boolean;\n runtimeEnv: {\n bridgeInstanceId: string | null;\n agentId: string | null;\n agentName: string | null;\n codexTapAgentName: string | null;\n commsDir: string | null;\n stateDir: string | null;\n runtimeStateDir: string | null;\n repoRoot: string | null;\n };\n bootstrap: StateBootstrapIdentity | null;\n resolvedCurrentInstanceId: string | null;\n};\n\nfunction resolveSingleCodexBootstrap(): StateBootstrapIdentity | null {\n const instances = loadStateInstances();\n if (!instances) return null;\n\n const installedCodexInstances = Object.entries(instances).filter(\n ([, instance]) => instance?.runtime === \"codex\" && instance?.installed,\n );\n if (installedCodexInstances.length !== 1) return null;\n\n const [instanceId, instance] = installedCodexInstances[0];\n return {\n agentId: normalizeAgentId(instanceId),\n agentName:\n typeof instance.agentName === \"string\" &&\n !isPlaceholderAgentValue(instance.agentName)\n ? instance.agentName\n : null,\n };\n}\n\nfunction resolveRuntimeInstanceId(): string | null {\n const bridgeInstanceId = process.env.TAP_BRIDGE_INSTANCE_ID;\n if (isConcreteIdentity(bridgeInstanceId)) {\n return normalizeAgentId(bridgeInstanceId);\n }\n const envId = process.env.TAP_AGENT_ID;\n if (isConcreteIdentity(envId)) {\n return normalizeAgentId(envId);\n }\n return null;\n}\n\nfunction resolveRuntimeStateDir(): string | null {\n const runtimeStateDir = process.env.TAP_RUNTIME_STATE_DIR;\n if (!runtimeStateDir) return null;\n return resolve(runtimeStateDir);\n}\n\nfunction resolveRuntimeStateInstanceId(): string | null {\n const runtimeStateDir = resolveRuntimeStateDir();\n if (!runtimeStateDir) return null;\n\n const dirName = basename(runtimeStateDir);\n if (!dirName.startsWith(BRIDGE_RUNTIME_STATE_DIR_PREFIX)) {\n return null;\n }\n\n const instanceId = dirName\n .slice(BRIDGE_RUNTIME_STATE_DIR_PREFIX.length)\n .trim();\n if (!instanceId) return null;\n return normalizeAgentId(instanceId);\n}\n\nfunction resolveRuntimeStateDisplayName(): string | null {\n const runtimeStateDir = resolveRuntimeStateDir();\n if (!runtimeStateDir) return null;\n\n try {\n const heartbeatPath = join(runtimeStateDir, \"heartbeat.json\");\n if (existsSync(heartbeatPath)) {\n const heartbeat = JSON.parse(readFileSync(heartbeatPath, \"utf-8\")) as {\n agent?: string | null;\n };\n const heartbeatAgent = heartbeat.agent ?? undefined;\n if (isConcreteIdentity(heartbeatAgent)) {\n return heartbeatAgent;\n }\n }\n } catch {\n // Fall through to the persisted agent-name hint below.\n }\n\n try {\n const agentNamePath = join(runtimeStateDir, \"agent-name.txt\");\n if (!existsSync(agentNamePath)) return null;\n const agentName = readFileSync(agentNamePath, \"utf-8\").trim();\n return isConcreteIdentity(agentName) ? agentName : null;\n } catch {\n return null;\n }\n}\n\nfunction resolveRuntimeDisplayName(): string | null {\n const envName = process.env.TAP_AGENT_NAME;\n if (isConcreteIdentity(envName)) return envName;\n const codexName = process.env.CODEX_TAP_AGENT_NAME;\n if (isConcreteIdentity(codexName)) return codexName;\n const runtimeName = resolveRuntimeStateDisplayName();\n if (runtimeName) return runtimeName;\n return null;\n}\n\nfunction resolveInitialId(\n stateBootstrap: StateBootstrapIdentity | null,\n): string {\n const runtimeInstanceId = resolveRuntimeInstanceId();\n if (runtimeInstanceId) return runtimeInstanceId;\n const runtimeStateInstanceId = resolveRuntimeStateInstanceId();\n if (runtimeStateInstanceId) return runtimeStateInstanceId;\n const envName = process.env.TAP_AGENT_NAME;\n if (isConcreteIdentity(envName)) return normalizeAgentId(envName);\n return stateBootstrap?.agentId ?? \"unknown\";\n}\n\n/** Try to read agentName from state.json for the current instance. */\nfunction resolveNameFromState(\n agentId: string,\n stateBootstrap: StateBootstrapIdentity | null,\n): string | null {\n if (agentId === \"unknown\") return null;\n if (stateBootstrap?.agentId === agentId && stateBootstrap.agentName) {\n return stateBootstrap.agentName;\n }\n try {\n const instances = loadStateInstances();\n if (!instances) return null;\n const instance =\n instances[agentId] ?? instances[agentId.replace(/_/g, \"-\")];\n return typeof instance?.agentName === \"string\" &&\n !isPlaceholderAgentValue(instance.agentName)\n ? instance.agentName\n : null;\n } catch {\n return null;\n }\n}\n\nconst stateBootstrap = resolveSingleCodexBootstrap();\nlet _agentId = resolveInitialId(stateBootstrap);\n// State takes priority over env — tap_set_name backwrites to state,\n// but managed MCP config env may still hold a stale name from tap add time.\nlet _agentName =\n resolveNameFromState(_agentId, stateBootstrap) ??\n resolveRuntimeDisplayName() ??\n \"unknown\";\nlet _idLocked = _agentId !== \"unknown\";\n// M185: Name confirmation — once confirmed, only idempotent calls allowed.\n// Prevents subagents from overwriting parent's display name.\n// If booted with a real name (from state or env), consider it pre-confirmed.\nlet _nameConfirmed = !isPlaceholderAgentValue(_agentName);\n\nfunction refreshUnknownIdentity(): void {\n if (_idLocked) return;\n\n const nextBootstrap = resolveSingleCodexBootstrap();\n const nextId = resolveInitialId(nextBootstrap);\n if (nextId === \"unknown\") return;\n\n _agentId = nextId;\n _idLocked = true;\n\n const nextName =\n resolveNameFromState(nextId, nextBootstrap) ?? resolveRuntimeDisplayName();\n if (nextName && !isPlaceholderAgentValue(nextName)) {\n _agentName = nextName;\n _nameConfirmed = true;\n }\n}\n\nexport function getAgentId(): string {\n refreshUnknownIdentity();\n return _agentId;\n}\n\nexport function getAgentName(): string {\n refreshUnknownIdentity();\n return _agentName;\n}\n\nexport function resolveKnownInstanceId(\n agentId: string,\n displayName?: string | null,\n): string | null {\n const instances = loadStateInstances();\n if (!instances) return null;\n\n const candidates = [\n agentId,\n agentId.replace(/_/g, \"-\"),\n agentId.replace(/-/g, \"_\"),\n ];\n for (const candidate of candidates) {\n if (instances[candidate]?.installed) return candidate;\n }\n\n if (!displayName || isPlaceholderAgentValue(displayName)) return null;\n const matches = Object.entries(instances).filter(\n ([, instance]) => instance?.installed && instance.agentName === displayName,\n );\n return matches.length === 1 ? matches[0][0] : null;\n}\n\nexport function resolveCurrentInstanceId(): string | null {\n refreshUnknownIdentity();\n return resolveKnownInstanceId(_agentId, _agentName);\n}\n\nexport function getAgentIdentitySnapshot(): AgentIdentitySnapshot {\n refreshUnknownIdentity();\n const bootstrap = resolveSingleCodexBootstrap();\n return {\n agentId: _agentId,\n agentName: _agentName,\n idLocked: _idLocked,\n nameConfirmed: _nameConfirmed,\n runtimeEnv: {\n bridgeInstanceId: process.env.TAP_BRIDGE_INSTANCE_ID ?? null,\n agentId: process.env.TAP_AGENT_ID ?? null,\n agentName: process.env.TAP_AGENT_NAME ?? null,\n codexTapAgentName: process.env.CODEX_TAP_AGENT_NAME ?? null,\n commsDir: process.env.TAP_COMMS_DIR ?? null,\n stateDir: process.env.TAP_STATE_DIR ?? null,\n runtimeStateDir: process.env.TAP_RUNTIME_STATE_DIR ?? null,\n repoRoot: process.env.TAP_REPO_ROOT ?? null,\n },\n bootstrap,\n resolvedCurrentInstanceId: resolveKnownInstanceId(_agentId, _agentName),\n };\n}\n\nexport function buildHeartbeatConnectHash(\n instanceId: string | null | undefined,\n agentId: string,\n): string {\n return instanceId ? `instance:${instanceId}` : `session:${agentId}`;\n}\n\nexport function isNameConfirmed(): boolean {\n return _nameConfirmed;\n}\n\n/**\n * Demote agent name to \"unknown\" and reset confirmed state.\n * Used when bootstrap claim fails — allows tap_set_name recovery.\n */\nexport function demoteAgentName(): void {\n _agentName = \"unknown\";\n _nameConfirmed = false;\n}\n\nexport function setAgentName(name: string) {\n _agentName = name;\n _nameConfirmed = true;\n // First set_name also locks the id (backward compat: id = first name chosen)\n if (!_idLocked) {\n // Hyphens are reserved as filename delimiters — use underscores instead\n _agentId = canonicalizeIdentityId(name);\n _idLocked = true;\n }\n}\n\nexport type AgentNameClaimResult =\n | {\n ok: true;\n oldName: string;\n agentId: string;\n wasIdLocked: boolean;\n }\n | {\n ok: false;\n currentName: string;\n agentId: string;\n };\n\n// M185 scope: once a session already holds a real name, later same-process\n// callers can only repeat that same name. Placeholder boot first-claim remains\n// first-caller-wins until caller context exists (M193).\nexport function claimAgentName(name: string): AgentNameClaimResult {\n const oldName = _agentName;\n const wasIdLocked = _idLocked;\n if (_nameConfirmed && name !== oldName) {\n return {\n ok: false,\n currentName: oldName,\n agentId: _agentId,\n };\n }\n\n setAgentName(name);\n return {\n ok: true,\n oldName,\n agentId: _agentId,\n wasIdLocked,\n };\n}\n\nexport function isIdLocked(): boolean {\n return _idLocked;\n}\n\n// ── Types ───────────────────────────────────────────────────────────────\n\nexport type ChannelSource = \"inbox\" | \"reviews\" | \"findings\";\n\nexport type ParsedFilename = { from: string; to: string; subject: string };\n\nexport type ParsedFrontmatter = {\n from: string;\n from_name?: string;\n to: string;\n to_name?: string;\n subject: string;\n sent_at?: string;\n type?: string;\n};\n\nexport type TapUnreadItem = {\n source: ChannelSource;\n filename: string;\n path: string;\n from: string;\n to: string;\n subject: string;\n mtime: string;\n content?: string;\n};\n\nexport type HeartbeatSource = \"bridge-dispatch\" | \"mcp-direct\";\n\nexport type Heartbeat = {\n id?: string; // routing id (immutable) — absent in legacy entries\n agent: string; // display name (mutable)\n timestamp: string;\n lastActivity: string;\n joinedAt?: string; // ISO — set on first tap_set_name, preserved on rename\n status: \"active\" | \"idle\" | \"signing-off\";\n source?: HeartbeatSource;\n instanceId?: string | null;\n bridgePid?: number | null;\n connectHash?: string;\n};\n\nexport type HeartbeatStore = Record<string, Heartbeat>;\n\nexport type Receipt = { reader: string; timestamp: string };\nexport type ReceiptStore = Record<string, Receipt[]>;\n\n// ── Activity Tracking ───────────────────────────────────────────────────\n\nlet _lastActivityTime = new Date().toISOString();\n\nexport function getLastActivityTime(): string {\n return _lastActivityTime;\n}\n\nexport function updateActivityTime() {\n _lastActivityTime = new Date().toISOString();\n}\n\n// ── Utilities ───────────────────────────────────────────────────────────\n\nexport function debug(message: string) {\n console.error(`[tap-comms] ${message}`);\n}\n\nexport function stripBom(text: string): string {\n return text.charCodeAt(0) === 0xfeff ? text.slice(1) : text;\n}\n\n/**\n * Parse YAML frontmatter from message content.\n * Returns parsed fields or null if no valid frontmatter found.\n */\nexport function parseFrontmatter(content: string): ParsedFrontmatter | 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 from: fields.from,\n from_name: fields.from_name,\n to: fields.to,\n to_name: fields.to_name,\n subject: fields.subject ?? \"\",\n sent_at: fields.sent_at,\n type: fields.type,\n };\n}\n\n/**\n * Strip frontmatter from content, returning only the body.\n */\nexport function stripFrontmatter(content: string): string {\n return content.replace(/^---\\r?\\n[\\s\\S]*?\\r?\\n---\\r?\\n*/, \"\");\n}\n\n/**\n * Parse message routing info: try frontmatter first, fall back to filename.\n */\nexport function parseMessageRoute(\n filename: string,\n content?: string,\n): ParsedFilename | null {\n if (content) {\n const fm = parseFrontmatter(content);\n if (fm) return { from: fm.from, to: fm.to, subject: fm.subject };\n }\n return parseFilename(filename);\n}\n\nexport function parseFilename(filename: string): ParsedFilename | null {\n // Format: YYYYMMDD-{from}-{to}-{subject}.md\n // from/to may contain hyphens (e.g. \"codex-1\"), so we split by \"-\" and\n // use a known-agent or structural heuristic: date(1) + from + to + subject(rest).\n // Strategy: strip date prefix, then split remainder into exactly 3+ segments\n // where from/to are single CJK chars or known multi-segment ids.\n const withoutExt = filename.replace(/\\.md$/, \"\");\n const dateMatch = withoutExt.match(/^(\\d{8})-(.+)$/);\n if (!dateMatch) return null;\n\n const rest = dateMatch[2];\n\n // Try CJK-aware split: CJK characters are single-char agent names\n // Match: {from}-{to}-{subject} where from/to can be CJK single chars\n const cjkMatch = rest.match(\n /^([\\u3131-\\uD79DA-Za-z][\\w]*?)-([\\u3131-\\uD79DA-Za-z][\\w]*?)-(.+)$/,\n );\n if (cjkMatch) {\n return { from: cjkMatch[1], to: cjkMatch[2], subject: cjkMatch[3] };\n }\n\n // Fallback: simple 3-part split (first two segments = from/to)\n const parts = rest.split(\"-\");\n if (parts.length >= 3) {\n return {\n from: parts[0] || \"?\",\n to: parts[1] || \"?\",\n subject: parts.slice(2).join(\"-\") || \"?\",\n };\n }\n\n return null;\n}\n\n/**\n * M204: Canonicalize agent ID — normalize hyphens to underscores.\n * Both `codex-1` and `codex_1` map to `codex_1`.\n */\nexport function canonicalizeAgentId(id: string): string {\n return canonicalizeIdentityId(id);\n}\n\nexport function isForMe(to: string): boolean {\n refreshUnknownIdentity();\n return matchesAgentRecipient(to, _agentId, _agentName);\n}\n\nexport function normalizeSources(value: unknown): ChannelSource[] {\n // Default: inbox + reviews only. Findings are record-keeping, not real-time\n // comms — request explicitly via sources: [\"findings\"] if needed.\n if (!Array.isArray(value) || value.length === 0) {\n return [\"inbox\", \"reviews\"];\n }\n\n const allowed = new Set<ChannelSource>([\"inbox\", \"reviews\", \"findings\"]);\n const normalized = value.filter(\n (entry): entry is ChannelSource =>\n typeof entry === \"string\" && allowed.has(entry as ChannelSource),\n );\n\n return normalized.length ? normalized : [\"inbox\", \"reviews\"];\n}\n\nexport function getLatestReviewDir(): string | null {\n if (!existsSync(REVIEWS_DIR)) return null;\n const gens = readdirSync(REVIEWS_DIR)\n .filter((entry) => entry.startsWith(\"gen\"))\n .sort();\n return gens.length ? join(REVIEWS_DIR, gens[gens.length - 1]) : null;\n}\n\nexport function getSourceDir(source: ChannelSource): string | null {\n if (source === \"inbox\") return INBOX_DIR;\n if (source === \"reviews\") return getLatestReviewDir();\n return FINDINGS_DIR;\n}\n\nexport function getSourceKey(source: ChannelSource, filename: string): string {\n return `${source}/${filename}`;\n}\n\nexport function getRecentSenders(): Set<string> {\n const senders = new Set<string>();\n if (!existsSync(INBOX_DIR)) return senders;\n\n const cutoff = Date.now() - 24 * 60 * 60 * 1000;\n for (const filename of readdirSync(INBOX_DIR)) {\n if (!filename.endsWith(\".md\")) continue;\n try {\n const mtime = statSync(join(INBOX_DIR, filename)).mtimeMs;\n if (mtime < cutoff) continue;\n } catch {\n continue;\n }\n const parsed = parseFilename(filename);\n if (parsed) senders.add(parsed.from);\n }\n return senders;\n}\n","/**\n * tap-comms file I/O: locks, receipts, heartbeats, unread scanning.\n */\nimport {\n existsSync,\n mkdirSync,\n readFileSync,\n readdirSync,\n renameSync,\n statSync,\n unlinkSync,\n writeFileSync,\n} from \"fs\";\nimport { createHash } from \"crypto\";\nimport { join } from \"path\";\nimport {\n RECEIPTS_DIR,\n RECEIPTS_PATH,\n HEARTBEATS_PATH,\n stripBom,\n parseFilename,\n parseFrontmatter,\n stripFrontmatter,\n isForMe,\n getAgentId,\n getAgentName,\n getSourceDir,\n getSourceKey,\n normalizeSources,\n type ChannelSource,\n type TapUnreadItem,\n type ReceiptStore,\n type HeartbeatStore,\n} from \"./tap-utils.js\";\nimport { isOwnMessageAddress } from \"./tap-identity.js\";\n\n// ── State ───────────────────────────────────────────────────────────────\n\nexport const startupFiles = new Set<string>();\nexport const readFiles = new Set<string>();\n\n// ── Bridge Dedup ───────────────────────────────────────────────────────\n// Bridge writes processed markers at {bridgeStateDir}/processed/{sha1}.done.\n// bridgeStateDir = {repoRoot}/.tmp/codex-app-server-bridge-{name}/\n// Scan all bridge state dirs to find markers.\n\nconst REPO_ROOT = process.env.TAP_REPO_ROOT ?? null;\n\nconst BRIDGE_DIR_CACHE_TTL_MS = 30_000; // re-scan every 30s to pick up late-start bridges\nlet _bridgeProcessedDirs: string[] = [];\nlet _bridgeDirsCachedAt = 0;\n\nfunction getBridgeProcessedDirs(): string[] {\n const now = Date.now();\n if (now - _bridgeDirsCachedAt < BRIDGE_DIR_CACHE_TTL_MS) {\n return _bridgeProcessedDirs;\n }\n _bridgeDirsCachedAt = now;\n\n if (!REPO_ROOT) {\n _bridgeProcessedDirs = [];\n return _bridgeProcessedDirs;\n }\n const tmpDir = join(REPO_ROOT, \".tmp\");\n if (!existsSync(tmpDir)) {\n _bridgeProcessedDirs = [];\n return _bridgeProcessedDirs;\n }\n try {\n _bridgeProcessedDirs = readdirSync(tmpDir)\n .filter((d) => d.startsWith(\"codex-app-server-bridge\"))\n .map((d) => join(tmpDir, d, \"processed\"))\n .filter((p) => existsSync(p));\n } catch {\n _bridgeProcessedDirs = [];\n }\n return _bridgeProcessedDirs;\n}\n\nfunction isBridgeProcessed(filePath: string, mtimeMs: number): boolean {\n const dirs = getBridgeProcessedDirs();\n if (dirs.length === 0) return false;\n const markerId = createHash(\"sha1\")\n .update(`${filePath}|${mtimeMs}`)\n .digest(\"hex\");\n const markerFile = `${markerId}.done`;\n return dirs.some((dir) => existsSync(join(dir, markerFile)));\n}\n\n// ── Lock ────────────────────────────────────────────────────────────────\n\nexport function acquireLock(\n lockPath: string,\n retries = 3,\n delayMs = 100,\n): boolean {\n for (let attempt = 0; attempt < retries; attempt++) {\n try {\n writeFileSync(lockPath, String(process.pid), { flag: \"wx\" });\n return true;\n } catch {\n try {\n const age = Date.now() - statSync(lockPath).mtimeMs;\n if (age > 10_000) {\n unlinkSync(lockPath);\n continue;\n }\n } catch {}\n if (attempt < retries - 1) {\n const start = Date.now();\n while (Date.now() - start < delayMs) {}\n }\n }\n }\n return false;\n}\n\nexport function releaseLock(lockPath: string) {\n try {\n unlinkSync(lockPath);\n } catch {}\n}\n\n// ── Receipts ────────────────────────────────────────────────────────────\n\nexport function ensureReceiptsDir() {\n if (!existsSync(RECEIPTS_DIR)) mkdirSync(RECEIPTS_DIR, { recursive: true });\n}\n\nexport function loadReceipts(): ReceiptStore {\n try {\n return JSON.parse(readFileSync(RECEIPTS_PATH, \"utf-8\"));\n } catch {\n return {};\n }\n}\n\nexport function saveReceipts(store: ReceiptStore) {\n ensureReceiptsDir();\n const tmpPath = RECEIPTS_PATH + \".tmp\";\n writeFileSync(tmpPath, JSON.stringify(store, null, 2), \"utf-8\");\n renameSync(tmpPath, RECEIPTS_PATH);\n}\n\n// ── Heartbeats ──────────────────────────────────────────────────────────\n\nexport function loadHeartbeats(): HeartbeatStore {\n try {\n return JSON.parse(readFileSync(HEARTBEATS_PATH, \"utf-8\"));\n } catch {\n return {};\n }\n}\n\nexport function saveHeartbeats(store: HeartbeatStore) {\n const tmpPath = HEARTBEATS_PATH + \".tmp\";\n writeFileSync(tmpPath, JSON.stringify(store, null, 2), \"utf-8\");\n renameSync(tmpPath, HEARTBEATS_PATH);\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\nexport function resolveAgentLabel(\n agentIdOrName: string,\n store: HeartbeatStore = loadHeartbeats(),\n): string {\n const normalized = agentIdOrName.trim();\n if (!normalized || normalized === \"전체\" || normalized === \"all\") {\n return agentIdOrName;\n }\n\n const byId = store[normalized];\n if (byId?.agent?.trim()) {\n return formatAgentLabel(normalized, byId.agent);\n }\n\n for (const [agentId, heartbeat] of Object.entries(store)) {\n if (heartbeat.agent?.trim() === normalized) {\n return formatAgentLabel(agentId, heartbeat.agent);\n }\n }\n\n return normalized;\n}\n\n// ── Startup ─────────────────────────────────────────────────────────────\n\nexport function seedStartupFiles(source: ChannelSource) {\n const dir = getSourceDir(source);\n if (!dir || !existsSync(dir)) return;\n\n for (const filename of readdirSync(dir)) {\n startupFiles.add(getSourceKey(source, filename));\n }\n}\n\n// ── Unread Items ────────────────────────────────────────────────────────\n\nexport function getUnreadItems(options?: {\n sources?: unknown;\n limit?: unknown;\n includeContent?: unknown;\n markRead?: unknown;\n since?: unknown;\n}): TapUnreadItem[] {\n const sources = normalizeSources(options?.sources);\n const includeContent = options?.includeContent !== false;\n const markRead = options?.markRead !== false;\n const sinceMs =\n typeof options?.since === \"string\" ? new Date(options.since).getTime() : 0;\n\n // Apply joinedAt filter: don't show messages from before agent joined\n // Look up by id first, fallback to name for backward compat\n const agentId = getAgentId();\n const agentName = getAgentName();\n let heartbeatStore: HeartbeatStore = {};\n let joinedAtMs = 0;\n if (agentId !== \"unknown\") {\n try {\n heartbeatStore = loadHeartbeats();\n const entry = heartbeatStore[agentId] ?? heartbeatStore[agentName];\n if (entry?.joinedAt) {\n joinedAtMs = new Date(entry.joinedAt).getTime();\n }\n } catch {\n // Non-critical: if we can't read, show all\n }\n }\n // Use the later of since and joinedAt\n const effectiveSinceMs = Math.max(sinceMs, joinedAtMs);\n\n const parsedLimit =\n typeof options?.limit === \"number\"\n ? options.limit\n : Number.parseInt(String(options?.limit ?? \"20\"), 10);\n const limit = Number.isFinite(parsedLimit)\n ? Math.max(1, Math.min(100, parsedLimit))\n : 20;\n\n const items: TapUnreadItem[] = [];\n\n for (const source of sources) {\n const dir = getSourceDir(source);\n if (!dir || !existsSync(dir)) continue;\n\n const filenames = readdirSync(dir)\n .filter((filename) => filename.endsWith(\".md\"))\n .sort();\n\n for (const filename of filenames) {\n const key = getSourceKey(source, filename);\n if (startupFiles.has(key) || readFiles.has(key)) continue;\n\n const fullPath = join(dir, filename);\n let mtime: number;\n try {\n mtime = statSync(fullPath).mtimeMs;\n } catch {\n continue;\n }\n if (effectiveSinceMs && mtime < effectiveSinceMs) continue;\n\n // Skip messages already delivered via bridge (dedup)\n if (isBridgeProcessed(fullPath, mtime)) {\n readFiles.add(key);\n continue;\n }\n\n let content: string;\n try {\n content = stripBom(readFileSync(fullPath, \"utf-8\"));\n } catch {\n continue;\n }\n\n let from: string = source;\n let to = \"all\";\n let subject = filename.replace(/\\.md$/, \"\");\n\n if (source === \"inbox\") {\n // Frontmatter-first routing (M202): try frontmatter, fall back to filename\n const fm = parseFrontmatter(content);\n const parsed = fm\n ? { from: fm.from, to: fm.to, subject: fm.subject }\n : parseFilename(filename);\n if (!parsed || !isForMe(parsed.to)) continue;\n if (isOwnMessageAddress(parsed.from, getAgentId(), getAgentName()))\n continue;\n from = resolveAgentLabel(fm?.from_name ?? parsed.from, heartbeatStore);\n to = resolveAgentLabel(fm?.to_name ?? parsed.to, heartbeatStore);\n subject = parsed.subject;\n // Strip frontmatter from displayed content\n if (fm && includeContent) {\n content = stripFrontmatter(content);\n }\n }\n\n const item: TapUnreadItem = {\n source,\n filename,\n path: `${source}/${filename}`,\n from,\n to,\n subject,\n mtime: new Date(mtime).toISOString(),\n };\n\n if (includeContent) {\n item.content = content;\n }\n\n items.push(item);\n if (markRead) {\n readFiles.add(key);\n }\n\n if (items.length >= limit) {\n return items;\n }\n }\n }\n\n return items;\n}\n","#!/usr/bin/env node\n/**\n * tap-comms: file-based real-time channel for tap multi-session orchestration.\n * Claude can receive fs.watch-driven channel notifications.\n * Other MCP clients can poll unread items via tap_list_unread.\n *\n * This is the thin orchestrator — tool definitions + handler routing.\n * Logic lives in tap-utils, tap-io, tap-db, tap-watcher.\n */\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport {\n CallToolRequestSchema,\n ListToolsRequestSchema,\n} from \"@modelcontextprotocol/sdk/types.js\";\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"fs\";\nimport { join } from \"path\";\nimport {\n isBroadcastRecipient,\n isPlaceholderAgentValue,\n normalizeRecipientList,\n} from \"./tap-identity.js\";\nimport {\n checkPeerDmRateLimit,\n recordPeerDm,\n type PeerDmHistoryStore,\n type PeerDmRoute,\n} from \"./tap-peer-dm-rate-limit.js\";\n\nimport {\n INBOX_DIR,\n ARCHIVE_DIR,\n RECEIPTS_LOCK,\n HEARTBEATS_LOCK,\n buildHeartbeatConnectHash,\n debug,\n getAgentId,\n getAgentName,\n getAgentIdentitySnapshot,\n claimAgentName,\n getRecentSenders,\n getLatestReviewDir,\n getLastActivityTime,\n resolveCurrentInstanceId,\n updateActivityTime,\n parseFilename,\n} from \"./tap-utils.js\";\nimport {\n claimName,\n renewClaimTTL,\n releaseClaim,\n resolveClaimInstanceId,\n} from \"./tap-claims.js\";\nimport {\n seedStartupFiles,\n getUnreadItems,\n acquireLock,\n releaseLock,\n ensureReceiptsDir,\n loadReceipts,\n saveReceipts,\n loadHeartbeats,\n saveHeartbeats,\n} from \"./tap-io.js\";\nimport {\n initDb,\n autoSyncOnStartup,\n dbInsertMessage,\n dbUpsertHeartbeat,\n dbInsertReceipt,\n dbGetStats,\n dbSyncAll,\n} from \"./tap-db.js\";\nimport { watchDir } from \"./tap-watcher.js\";\nimport { buildWhoAgents, resolvePreferredRecipient } from \"./tap-presence.js\";\nimport { readdirSync, renameSync, statSync, unlinkSync } from \"fs\";\n\n// ── Initialize ──────────────────────────────────────────────────────────\n\ninitDb();\nautoSyncOnStartup();\n\nseedStartupFiles(\"inbox\");\nseedStartupFiles(\"reviews\");\nseedStartupFiles(\"findings\");\n\n// ── Onboarding ─────────────────────────────────────────────────────────\n\nconst ONBOARDING_TEASER_LINES = 10;\nconst peerDmHistory: PeerDmHistoryStore = new Map();\n\nfunction loadTowerNameFromConfig(): string | null {\n const repoRoot = process.env.TAP_REPO_ROOT ?? \".\";\n try {\n const cfgPath = join(repoRoot, \"tap-config.json\");\n if (!existsSync(cfgPath)) return null;\n const cfg = JSON.parse(readFileSync(cfgPath, \"utf-8\")) as {\n towerName?: string | null;\n };\n return cfg.towerName?.trim() || null;\n } catch {\n return null;\n }\n}\n\nfunction loadOnboardingTeaser(): string {\n const commsDir = process.env.TAP_COMMS_DIR;\n if (!commsDir) return \"\";\n\n // Startup-time gating: skip teaser if agent already onboarded\n const stateDir = process.env.TAP_STATE_DIR;\n const agentId = getAgentId();\n if (stateDir && agentId !== \"unknown\") {\n try {\n const markerPath = join(stateDir, \"onboarded.json\");\n if (existsSync(markerPath)) {\n const store = JSON.parse(readFileSync(markerPath, \"utf-8\"));\n if (store[agentId]) return \"\"; // Already onboarded — skip teaser\n }\n } catch {\n // best-effort — serve teaser if marker unreadable\n }\n }\n\n try {\n const welcomePath = join(commsDir, \"onboarding\", \"welcome.md\");\n if (!existsSync(welcomePath)) return \"\";\n const content = readFileSync(welcomePath, \"utf-8\");\n const lines = content.split(\"\\n\").slice(0, ONBOARDING_TEASER_LINES);\n\n // Write marker on teaser serve — so next startup skips it\n if (stateDir && agentId !== \"unknown\") {\n try {\n const markerPath = join(stateDir, \"onboarded.json\");\n let store: Record<string, { onboardedAt: string }> = {};\n if (existsSync(markerPath)) {\n store = JSON.parse(readFileSync(markerPath, \"utf-8\"));\n }\n if (!store[agentId]) {\n store[agentId] = { onboardedAt: new Date().toISOString() };\n mkdirSync(stateDir, { recursive: true });\n writeFileSync(markerPath, JSON.stringify(store, null, 2), \"utf-8\");\n }\n } catch {\n // best-effort\n }\n }\n\n return (\n \"\\n\\n--- Onboarding ---\\n\" +\n lines.join(\"\\n\") +\n \"\\n(Use tap_onboard tool for full onboarding guide.)\"\n );\n } catch {\n return \"\";\n }\n}\n\n// ── MCP Server ──────────────────────────────────────────────────────────\n\nconst baseInstructions =\n 'You are connected to the tap-comms channel. Messages from other agents may arrive as <channel source=\"tap-comms\" from=\"X\" to=\"Y\" subject=\"Z\"> notifications. If your client does not surface Claude channel notifications, call tap_list_unread to pull pending inbox and review messages. Reply using the tap_reply tool to send messages back to other agents or the control tower.';\n\nconst mcp = new Server(\n { name: \"tap-comms\", version: \"0.2.2\" },\n {\n capabilities: {\n experimental: { \"claude/channel\": {} },\n tools: {},\n },\n instructions: baseInstructions + loadOnboardingTeaser(),\n },\n);\n\n// ── Tool Definitions ────────────────────────────────────────────────────\n\nmcp.setRequestHandler(ListToolsRequestSchema, async () => ({\n tools: [\n {\n name: \"tap_set_name\",\n description:\n \"Set your agent name. Call this when you pick your name at session start.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n name: {\n type: \"string\" as const,\n description: \"Your chosen agent name.\",\n },\n },\n required: [\"name\"],\n },\n },\n {\n name: \"tap_reply\",\n description: \"Send a message to another tap agent via comms inbox.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n to: { type: \"string\" as const, description: \"Recipient agent name.\" },\n subject: {\n type: \"string\" as const,\n description: \"Message subject in kebab-case.\",\n },\n content: {\n type: \"string\" as const,\n description: \"Markdown message content.\",\n },\n cc: {\n description:\n \"Optional CC recipients. Each receives a copy of the message. Pass a single string or an array of strings.\",\n oneOf: [\n { type: \"string\" as const },\n {\n type: \"array\" as const,\n items: { type: \"string\" as const },\n },\n ],\n },\n },\n required: [\"to\", \"subject\", \"content\"],\n },\n },\n {\n name: \"tap_broadcast\",\n description:\n \"Broadcast a message to all agents. Shorthand for tap_reply with to='전체'.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n subject: {\n type: \"string\" as const,\n description: \"Message subject in kebab-case.\",\n },\n content: {\n type: \"string\" as const,\n description: \"Markdown message content.\",\n },\n },\n required: [\"subject\", \"content\"],\n },\n },\n {\n name: \"tap_list_unread\",\n description:\n \"Poll unread tap-comms items for clients that do not receive channel notifications.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n sources: {\n type: \"array\" as const,\n description:\n 'Optional source filter. Defaults to inbox, reviews. Add \"findings\" explicitly if needed.',\n items: {\n type: \"string\" as const,\n enum: [\"inbox\", \"reviews\", \"findings\"],\n },\n },\n limit: {\n type: \"number\" as const,\n description:\n \"Maximum number of unread items to return. Default 20.\",\n },\n includeContent: {\n type: \"boolean\" as const,\n description: \"Include full markdown content. Default true.\",\n },\n markRead: {\n type: \"boolean\" as const,\n description: \"Mark returned items as read. Default true.\",\n },\n since: {\n type: \"string\" as const,\n description:\n \"ISO timestamp. Only return files modified after this time.\",\n },\n },\n },\n },\n {\n name: \"tap_read_receipt\",\n description:\n \"Acknowledge that you read a message. Stores a read receipt so the sender can verify delivery.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n filename: {\n type: \"string\" as const,\n description: \"The inbox filename of the message you read.\",\n },\n },\n required: [\"filename\"],\n },\n },\n {\n name: \"tap_stats\",\n description:\n \"Show communication statistics: messages sent/received per agent, read receipts.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n hours: {\n type: \"number\" as const,\n description: \"Time window in hours. Default 24.\",\n },\n },\n },\n },\n {\n name: \"tap_heartbeat\",\n description:\n \"Send a heartbeat to signal this agent is alive. Call periodically or before/after major work.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n status: {\n type: \"string\" as const,\n enum: [\"active\", \"idle\", \"signing-off\"],\n description:\n \"Agent status. Default 'active'. Use 'signing-off' before session end.\",\n },\n },\n },\n },\n {\n name: \"tap_who\",\n description:\n \"List online agents based on recent heartbeats. Shows status, last heartbeat, and zombie detection.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n minutes: {\n type: \"number\" as const,\n description:\n \"Consider agents alive if heartbeat within this many minutes. Default 10.\",\n },\n },\n },\n },\n {\n name: \"tap_cleanup\",\n description:\n \"Archive inbox files older than N days. Moves them to archive/ directory.\",\n inputSchema: {\n type: \"object\" as const,\n properties: {\n days: {\n type: \"number\" as const,\n description: \"Archive files older than this many days. Default 7.\",\n },\n dryRun: {\n type: \"boolean\" as const,\n description: \"Preview only, don't move files. Default false.\",\n },\n },\n },\n },\n {\n name: \"tap_db_sync\",\n description:\n \"Sync existing inbox/receipts/heartbeats files into the SQLite database.\",\n inputSchema: { type: \"object\" as const, properties: {} },\n },\n {\n name: \"tap_onboard\",\n description:\n \"Get the full onboarding guide for this project. Returns welcome.md + any additional onboarding docs from commsDir/onboarding/.\",\n inputSchema: { type: \"object\" as const, properties: {} },\n },\n {\n name: \"tap_identity_probe\",\n description:\n \"Dump the current MCP-side identity/runtime env snapshot seen by tap tools.\",\n inputSchema: { type: \"object\" as const, properties: {} },\n },\n ],\n}));\n\n// ── Activity Persistence ────────────────────────────────────────────────\n\nfunction prunePhantomHeartbeats(\n store: Record<string, { id?: string; [k: string]: unknown }>,\n): number {\n let removed = 0;\n for (const key of Object.keys(store)) {\n if (!store[key].id) {\n delete store[key];\n removed++;\n }\n }\n return removed;\n}\n\nfunction persistActivity(id: string, name: string): void {\n const locked = acquireLock(HEARTBEATS_LOCK);\n if (!locked) return; // Skip this cycle, retry next tool call\n try {\n const store = loadHeartbeats();\n // M210: Remove phantom entries (no id field) on every write cycle\n prunePhantomHeartbeats(store);\n const existing = store[id];\n const resolvedInstanceId =\n resolveCurrentInstanceId() ?? existing?.instanceId ?? null;\n const connectHash = buildHeartbeatConnectHash(resolvedInstanceId, id);\n const preserveBridgeSource =\n existing?.source === \"bridge-dispatch\" &&\n existing.connectHash === connectHash;\n store[id] = {\n id,\n agent: name,\n timestamp: existing?.timestamp ?? new Date().toISOString(),\n lastActivity: getLastActivityTime(),\n joinedAt: existing?.joinedAt,\n status: existing?.status ?? \"active\",\n source: preserveBridgeSource ? \"bridge-dispatch\" : \"mcp-direct\",\n instanceId: resolvedInstanceId,\n bridgePid: preserveBridgeSource ? (existing?.bridgePid ?? null) : null,\n connectHash,\n };\n saveHeartbeats(store);\n } catch {\n // Non-critical\n } finally {\n releaseLock(HEARTBEATS_LOCK);\n }\n}\n\n// ── Tool Handlers ───────────────────────────────────────────────────────\n\nmcp.setRequestHandler(CallToolRequestSchema, async (req) => {\n updateActivityTime();\n\n // Auto-persist activity to heartbeat store so tap_who can find us\n // Skip for tap_set_name — handled after name change below\n const currentId = getAgentId();\n const currentName = getAgentName();\n if (currentId !== \"unknown\" && req.params.name !== \"tap_set_name\") {\n persistActivity(currentId, currentName);\n }\n\n // ── tap_set_name ──────────────────────────────────────────────────\n if (req.params.name === \"tap_set_name\") {\n const { name } = req.params.arguments as { name: string };\n if (!name || !/^[A-Za-z0-9가-힣_]+$/.test(name)) {\n return {\n content: [\n {\n type: \"text\",\n text: `Rejected: \"${name}\" contains invalid characters. Agent names must match [A-Za-z0-9가-힣_] — no hyphens, spaces, or special characters.`,\n },\n ],\n };\n }\n // Step 1: Pre-check memory guard (read-only) — reject if already confirmed with different name\n const { isNameConfirmed: isConfirmed, getAgentName: currentName } =\n await import(\"./tap-utils.js\");\n if (isConfirmed() && currentName() !== name) {\n return {\n content: [\n {\n type: \"text\",\n text:\n `Rejected: Name already confirmed as \"${currentName()}\". ` +\n `tap_set_name can only be called once per session. ` +\n `Agent ID: ${getAgentId()} (immutable).`,\n },\n ],\n };\n }\n\n // Step 2: File claim — atomic cross-instance lock\n const claimInstanceId = resolveClaimInstanceId();\n const fileClaim = claimName(\n name,\n claimInstanceId,\n process.pid,\n \"mcp-direct\",\n );\n if (!fileClaim.success) {\n const conflict = fileClaim.conflictWith;\n return {\n content: [\n {\n type: \"text\",\n text:\n `Rejected: Name \"${name}\" is claimed by instance \"${conflict?.instanceId}\" (alive: ${conflict?.alive}). ` +\n `Agent ID: ${getAgentId()} (immutable).`,\n },\n ],\n };\n }\n\n // Step 3: Memory claim — only after file claim succeeds\n const claim = claimAgentName(name);\n if (!claim.ok) {\n // Should not happen (pre-check passed), but safety net\n releaseClaim(name, claimInstanceId, process.pid);\n return {\n content: [\n {\n type: \"text\",\n text:\n `Rejected: Name already confirmed as \"${claim.currentName}\". ` +\n `Agent ID: ${claim.agentId} (immutable).`,\n },\n ],\n };\n }\n\n const { oldName, agentId, wasIdLocked } = claim;\n\n const activeSenders = getRecentSenders();\n activeSenders.delete(oldName);\n const isDuplicate = activeSenders.has(name);\n debug(\n `name changed: ${oldName} -> ${name} (id: ${agentId}, locked: ${wasIdLocked})${isDuplicate ? \" (DUPLICATE WARNING)\" : \"\"}`,\n );\n\n const activeList = [...activeSenders]\n .filter((n) => n !== \"unnamed\" && n !== \"unknown\")\n .join(\", \");\n // Persist heartbeat under agent id (not name) for stable routing\n const now = new Date().toISOString();\n let priorJoinedAt: string | null = null; // M111: capture pre-write state\n let priorLastActivity: string | null = null;\n const locked = acquireLock(HEARTBEATS_LOCK);\n if (locked) {\n try {\n const store = loadHeartbeats();\n // Find existing entry by id or old name (migration from name-keyed)\n const oldEntry =\n store[agentId] ??\n (oldName !== \"unknown\" ? store[oldName] : undefined);\n\n // M111: capture pre-write state for tower notify dedupe\n priorJoinedAt = oldEntry?.joinedAt ?? null;\n priorLastActivity = oldEntry?.lastActivity ?? null;\n\n // Delete old name-keyed entry if migrating to id-keyed\n if (oldName !== \"unknown\" && oldName !== agentId) {\n delete store[oldName];\n }\n\n const resolvedInstanceId =\n resolveCurrentInstanceId() ?? oldEntry?.instanceId ?? null;\n const connectHash = buildHeartbeatConnectHash(\n resolvedInstanceId,\n agentId,\n );\n const preserveBridgeSource =\n oldEntry?.source === \"bridge-dispatch\" &&\n oldEntry.connectHash === connectHash;\n store[agentId] = {\n id: agentId,\n agent: name,\n timestamp: now,\n lastActivity: getLastActivityTime(),\n joinedAt: oldEntry?.joinedAt ?? now,\n status: \"active\",\n source: preserveBridgeSource ? \"bridge-dispatch\" : \"mcp-direct\",\n instanceId: resolvedInstanceId,\n bridgePid: preserveBridgeSource\n ? (oldEntry?.bridgePid ?? null)\n : null,\n connectHash,\n };\n\n // M162: Clean stale heartbeats with the same display name but\n // different agent ID. Prevents duplicate routing when a bridge\n // restarts with a new session ID but the same agent name.\n // Use lastActivity (updated on every tool call) rather than\n // timestamp (only set at tap_set_name time) to avoid removing\n // sessions that are still actively using tools.\n const STALE_THRESHOLD_MS = 5 * 60 * 1000; // 5 minutes\n for (const [otherId, otherHb] of Object.entries(store)) {\n if (otherId === agentId) continue;\n if (otherHb.agent !== name) continue;\n const otherConnectHash =\n otherHb.connectHash ??\n buildHeartbeatConnectHash(otherHb.instanceId ?? null, otherId);\n if (otherConnectHash !== connectHash) continue;\n const freshestTs = Math.max(\n otherHb.lastActivity ? new Date(otherHb.lastActivity).getTime() : 0,\n otherHb.timestamp ? new Date(otherHb.timestamp).getTime() : 0,\n );\n if (Date.now() - freshestTs > STALE_THRESHOLD_MS) {\n delete store[otherId];\n }\n }\n\n saveHeartbeats(store);\n } catch {\n // Non-critical\n } finally {\n releaseLock(HEARTBEATS_LOCK);\n }\n }\n\n // Backwrite agentName to state.json so next session bootstraps with it\n const stateDir = process.env.TAP_STATE_DIR;\n if (stateDir) {\n try {\n const statePath = join(stateDir, \"state.json\");\n if (existsSync(statePath)) {\n const state = JSON.parse(readFileSync(statePath, \"utf-8\"));\n const instanceKey = agentId.replace(/_/g, \"-\");\n const instance =\n state.instances?.[agentId] ?? state.instances?.[instanceKey];\n if (instance) {\n instance.agentName = name;\n const tmp = `${statePath}.tmp.${process.pid}`;\n writeFileSync(tmp, JSON.stringify(state, null, 2), \"utf-8\");\n try {\n renameSync(tmp, statePath);\n } catch {\n // Retry once — Windows may hold file handle briefly\n try {\n renameSync(tmp, statePath);\n } catch {\n try {\n unlinkSync(tmp);\n } catch {\n /* best-effort cleanup */\n }\n }\n }\n debug(`backwrite agentName=\"${name}\" to state.json for ${agentId}`);\n }\n }\n } catch {\n // Non-critical — state backwrite is best-effort\n }\n }\n\n // M111: Notify tower on new agent join (first non-placeholder name)\n if (oldName === \"unknown\" || oldName === \"unnamed\") {\n try {\n const towerName = loadTowerNameFromConfig();\n\n // Resolve runtime from state.json (works for all runtimes)\n let runtime = process.env.TAP_BRIDGE_RUNTIME ?? null;\n if (!runtime && stateDir) {\n try {\n const statePath = join(stateDir, \"state.json\");\n if (existsSync(statePath)) {\n const state = JSON.parse(readFileSync(statePath, \"utf-8\"));\n const instanceKey = agentId.replace(/_/g, \"-\");\n const inst =\n state.instances?.[agentId] ?? state.instances?.[instanceKey];\n runtime = inst?.runtime ?? null;\n }\n } catch {\n /* best-effort */\n }\n }\n\n if (towerName && towerName !== name && towerName !== agentId) {\n // Dedupe using pre-write heartbeat state (avoids self-skip on first join)\n const SKIP_WINDOW_MS = 10 * 60 * 1000;\n const STALE_WINDOW_MS = 30 * 60 * 1000;\n let shouldNotify = true;\n\n if (priorJoinedAt) {\n // Existing agent — check lastActivity freshness\n const activityTs = priorLastActivity ?? priorJoinedAt;\n const activityAge = Date.now() - new Date(activityTs).getTime();\n if (activityAge < SKIP_WINDOW_MS) {\n shouldNotify = false; // Recently active — skip\n } else if (activityAge < STALE_WINDOW_MS) {\n shouldNotify = false; // Active within window — skip\n }\n // > 30min since last activity → re-notify\n }\n // priorJoinedAt === null → truly new agent → notify\n\n if (shouldNotify) {\n const ts = new Date().toISOString().replace(/[:.]/g, \"-\");\n const notifyFilename = `${ts.slice(0, 10).replace(/-/g, \"\")}-tap-${towerName}-new-agent-${agentId}.md`;\n const notifyPath = join(INBOX_DIR, notifyFilename);\n writeFileSync(\n notifyPath,\n `[NEW] ${name} (${agentId}) joined. Runtime: ${runtime ?? \"unknown\"}.`,\n \"utf-8\",\n );\n debug(\n `tower notify: ${towerName} ← new agent ${name} (${runtime})`,\n );\n }\n }\n } catch {\n // Non-critical — tower notify is best-effort\n }\n }\n\n let text = `Name set: ${name} (was: ${oldName}). Messages to \"${name}\", \"${agentId}\", \"전체\", or \"all\" will be received.`;\n if (!wasIdLocked)\n text += `\\nAgent ID locked: ${agentId} (immutable for this session)`;\n if (isDuplicate)\n text += `\\n⚠️ WARNING: \"${name}\" was already used in the last 24h. Pick a different name to avoid confusion.`;\n if (activeList) text += `\\nRecent active names: ${activeList}`;\n return { content: [{ type: \"text\", text }] };\n }\n\n // ── tap_reply ─────────────────────────────────────────────────────\n if (req.params.name === \"tap_reply\") {\n const {\n to: rawTo,\n subject: rawSubject,\n content,\n cc: rawCc,\n } = req.params.arguments as {\n to: string;\n subject: string;\n content: string;\n cc?: string | string[];\n };\n\n // M142: Validate required fields\n const to = typeof rawTo === \"string\" ? rawTo.trim() : \"\";\n const subject = typeof rawSubject === \"string\" ? rawSubject.trim() : \"\";\n if (!to) {\n return {\n content: [\n {\n type: \"text\",\n text: 'Rejected: \"to\" is required and must be a non-empty string.',\n },\n ],\n };\n }\n if (!subject) {\n return {\n content: [\n {\n type: \"text\",\n text: 'Rejected: \"subject\" is required and must be a non-empty string.',\n },\n ],\n };\n }\n const cc = normalizeRecipientList(rawCc, [to]);\n\n const recipientWarnings: string[] = [];\n const towerName = loadTowerNameFromConfig();\n const store = loadHeartbeats();\n const resolvedTowerId = towerName\n ? resolvePreferredRecipient(store, towerName).target\n : null;\n const knownAgents = new Set<string>();\n for (const [key, hb] of Object.entries(store)) {\n if (!isPlaceholderAgentValue(key)) knownAgents.add(key);\n if (!isPlaceholderAgentValue(hb.agent)) {\n knownAgents.add(hb.agent); // display name (exclude placeholders)\n }\n }\n const knownList = [...knownAgents]\n .filter((n) => n !== \"unknown\")\n .join(\", \");\n\n function resolveRecipient(recipient: string): {\n target: string;\n found: boolean;\n warning: string | null;\n } {\n const resolution = resolvePreferredRecipient(store, recipient);\n if (resolution.found) {\n return {\n target: resolution.target,\n found: true,\n warning: resolution.warning,\n };\n }\n\n return {\n target: recipient,\n found: false,\n warning:\n `⚠️ WARNING: \"${recipient}\" is not a known agent. ` +\n `Check spelling. Known: ${knownList}`,\n };\n }\n\n let resolvedTo = to;\n if (!isBroadcastRecipient(to)) {\n const resolution = resolveRecipient(to);\n if (!resolution.found) {\n if (resolution.warning) recipientWarnings.push(resolution.warning);\n } else {\n resolvedTo = resolution.target;\n if (resolution.warning) recipientWarnings.push(resolution.warning);\n }\n }\n\n if (cc?.length) {\n for (const recipient of cc) {\n if (isBroadcastRecipient(recipient)) continue;\n const resolution = resolveRecipient(recipient);\n if (resolution.warning) {\n recipientWarnings.push(\n resolution.warning.replace(`\"${recipient}\"`, `CC \"${recipient}\"`),\n );\n }\n }\n }\n\n const resolvedCc = cc?.map((recipient) => ({\n original: recipient,\n resolved: isBroadcastRecipient(recipient)\n ? recipient\n : resolveRecipient(recipient).target,\n }));\n\n const now = new Date();\n const nowMs = now.getTime();\n const date = now.toISOString().slice(0, 10).replace(/-/g, \"\");\n const fromId = getAgentId();\n const fromName = getAgentName();\n const rateLimitRoutes = new Map<string, PeerDmRoute>();\n const primaryRoute: PeerDmRoute = {\n fromId,\n fromName,\n to,\n resolvedTo,\n towerName,\n towerId: resolvedTowerId,\n };\n const primaryCheck = checkPeerDmRateLimit(peerDmHistory, primaryRoute, nowMs);\n if (!primaryCheck.exempt && primaryCheck.key) {\n rateLimitRoutes.set(primaryCheck.key, primaryRoute);\n }\n\n for (const recipient of resolvedCc ?? []) {\n const route: PeerDmRoute = {\n fromId,\n fromName,\n to: recipient.original,\n resolvedTo: recipient.resolved,\n towerName,\n towerId: resolvedTowerId,\n };\n const check = checkPeerDmRateLimit(peerDmHistory, route, nowMs);\n if (check.exempt || !check.key) continue;\n rateLimitRoutes.set(check.key, route);\n }\n\n for (const route of rateLimitRoutes.values()) {\n const check = checkPeerDmRateLimit(peerDmHistory, route, nowMs);\n if (!check.allowed) {\n return {\n content: [\n {\n type: \"text\",\n text:\n `Rate limited: too many messages between ${fromId}→${check.target}. ` +\n \"Route through tower instead.\",\n },\n ],\n };\n }\n }\n\n for (const route of rateLimitRoutes.values()) {\n recordPeerDm(peerDmHistory, route, nowMs);\n }\n\n const filename = `${date}-${fromId}-${resolvedTo}-${subject}.md`;\n const filepath = join(INBOX_DIR, filename);\n const ccHeader = cc?.length ? `> CC: ${cc.join(\", \")}\\n\\n` : \"\";\n const frontmatter = [\n \"---\",\n \"type: inbox\",\n `from: ${fromId}`,\n `from_name: ${fromName}`,\n `to: ${resolvedTo}`,\n `to_name: ${to}`,\n `subject: ${subject}`,\n `sent_at: ${now.toISOString()}`,\n \"---\",\n \"\",\n ].join(\"\\n\");\n writeFileSync(filepath, frontmatter + ccHeader + content, \"utf-8\");\n dbInsertMessage(\n filename,\n fromName,\n resolvedTo,\n subject,\n \"inbox\",\n Date.now(),\n );\n\n const sent = [`Sent to ${to}: ${filename}`];\n if (cc?.length) {\n const writtenFiles = new Set<string>([filename]); // Track to prevent overwrite\n for (const recipient of resolvedCc ?? []) {\n try {\n const resolvedRecipient = recipient.resolved;\n const ccFilename = `${date}-${fromId}-${resolvedRecipient}-${subject}.md`;\n // Skip if resolved filename matches primary or already written CC\n if (writtenFiles.has(ccFilename)) {\n sent.push(\n `CC to ${recipient.original}: skipped (resolves to same target)`,\n );\n continue;\n }\n writtenFiles.add(ccFilename);\n const ccFrontmatter = [\n \"---\",\n \"type: inbox\",\n `from: ${fromId}`,\n `from_name: ${fromName}`,\n `to: ${resolvedRecipient}`,\n `to_name: ${recipient.original}`,\n `subject: ${subject}`,\n `sent_at: ${now.toISOString()}`,\n \"---\",\n \"\",\n ].join(\"\\n\");\n writeFileSync(\n join(INBOX_DIR, ccFilename),\n ccFrontmatter + `> CC from message to ${to}\\n\\n${content}`,\n \"utf-8\",\n );\n dbInsertMessage(\n ccFilename,\n fromName,\n resolvedRecipient,\n subject,\n \"inbox\",\n Date.now(),\n );\n sent.push(`CC to ${recipient.original}: ${ccFilename}`);\n } catch (err) {\n sent.push(\n `CC to ${recipient.original}: FAILED (${err instanceof Error ? err.message : String(err)})`,\n );\n }\n }\n }\n // Append warnings after delivery (still send — warning only, not blocking)\n sent.push(...recipientWarnings);\n return { content: [{ type: \"text\", text: sent.join(\"\\n\") }] };\n }\n\n // ── tap_broadcast ─────────────────────────────────────────────────\n if (req.params.name === \"tap_broadcast\") {\n const { subject, content } = req.params.arguments as {\n subject: string;\n content: string;\n };\n const now = new Date();\n const date = now.toISOString().slice(0, 10).replace(/-/g, \"\");\n const broadcastId = getAgentId();\n const broadcastName = getAgentName();\n const filename = `${date}-${broadcastId}-전체-${subject}.md`;\n const broadcastFrontmatter = [\n \"---\",\n \"type: inbox\",\n `from: ${broadcastId}`,\n `from_name: ${broadcastName}`,\n \"to: 전체\",\n `subject: ${subject}`,\n `sent_at: ${now.toISOString()}`,\n \"---\",\n \"\",\n ].join(\"\\n\");\n writeFileSync(\n join(INBOX_DIR, filename),\n broadcastFrontmatter + content,\n \"utf-8\",\n );\n dbInsertMessage(\n filename,\n broadcastName,\n \"전체\",\n subject,\n \"inbox\",\n Date.now(),\n );\n return { content: [{ type: \"text\", text: `Broadcast sent: ${filename}` }] };\n }\n\n // ── tap_list_unread ───────────────────────────────────────────────\n if (req.params.name === \"tap_list_unread\") {\n const unread = getUnreadItems((req.params.arguments as any) || {});\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(\n { agent: getAgentName(), count: unread.length, items: unread },\n null,\n 2,\n ),\n },\n ],\n };\n }\n\n // ── tap_read_receipt ──────────────────────────────────────────────\n if (req.params.name === \"tap_read_receipt\") {\n const { filename } = req.params.arguments as { filename: string };\n ensureReceiptsDir();\n if (!acquireLock(RECEIPTS_LOCK)) {\n return {\n content: [{ type: \"text\", text: \"Receipt store busy, try again.\" }],\n };\n }\n try {\n const store = loadReceipts();\n if (!store[filename]) store[filename] = [];\n const readerId = getAgentId();\n const already = store[filename].some((r) => r.reader === readerId);\n if (!already) {\n const ts = new Date().toISOString();\n store[filename].push({ reader: readerId, timestamp: ts });\n saveReceipts(store);\n dbInsertReceipt(filename, readerId, ts);\n }\n return {\n content: [\n {\n type: \"text\",\n text: already\n ? `Already acknowledged: ${filename}`\n : `Read receipt saved for: ${filename}`,\n },\n ],\n };\n } finally {\n releaseLock(RECEIPTS_LOCK);\n }\n }\n\n // ── M194: HUD formatter ──────────────────────────────────────────\n function buildHudLine(): string {\n const hbStore = loadHeartbeats();\n const agentCount = buildWhoAgents(hbStore, 10).filter(\n (agent) => agent.alive,\n ).length;\n\n // Unread count — use getUnreadItems with markRead=false for accurate semantics\n // (respects joinedAt, startupFiles, readFiles, isForMe)\n const unreadItems = getUnreadItems({\n sources: [\"inbox\"],\n limit: 100,\n includeContent: false,\n markRead: false,\n });\n // getUnreadItems clamps at 100 — display \"99+\" if at limit\n const unreadCount = unreadItems.length;\n const unreadDisplay = unreadCount >= 100 ? \"99+\" : String(unreadCount);\n\n // Status emoji\n const status = agentCount > 0 ? \"🟢\" : \"⚪\";\n\n return `[tap] ${status} ${agentCount} agents | 📨 ${unreadDisplay} unread`;\n }\n\n // ── tap_stats ─────────────────────────────────────────────────────\n if (req.params.name === \"tap_stats\") {\n const hours =\n typeof (req.params.arguments as any)?.hours === \"number\"\n ? (req.params.arguments as any).hours\n : 24;\n const cutoff = Date.now() - hours * 60 * 60 * 1000;\n\n const hud = buildHudLine();\n\n // DB fast path\n const dbResult = dbGetStats(cutoff);\n if (dbResult) {\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(\n { hours, ...dbResult, source: \"sqlite\", hud },\n null,\n 2,\n ),\n },\n ],\n };\n }\n\n // File fallback\n const sent: Record<string, number> = {};\n const received: Record<string, number> = {};\n let broadcasts = 0;\n if (existsSync(INBOX_DIR)) {\n for (const filename of readdirSync(INBOX_DIR)) {\n if (!filename.endsWith(\".md\")) continue;\n try {\n if (statSync(join(INBOX_DIR, filename)).mtimeMs < cutoff) continue;\n } catch {\n continue;\n }\n const parsed = parseFilename(filename);\n if (!parsed) continue;\n sent[parsed.from] = (sent[parsed.from] || 0) + 1;\n if (isBroadcastRecipient(parsed.to)) broadcasts++;\n else received[parsed.to] = (received[parsed.to] || 0) + 1;\n }\n }\n const receipts = loadReceipts();\n const cutoffISO = new Date(cutoff).toISOString();\n const receiptCount = Object.values(receipts).reduce(\n (sum, arr) => sum + arr.filter((r) => r.timestamp >= cutoffISO).length,\n 0,\n );\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(\n {\n hours,\n sent,\n received,\n broadcasts,\n totalReceipts: receiptCount,\n hud,\n },\n null,\n 2,\n ),\n },\n ],\n };\n }\n\n // ── tap_heartbeat ─────────────────────────────────────────────────\n if (req.params.name === \"tap_heartbeat\") {\n const status =\n ((req.params.arguments as any)?.status as\n | \"active\"\n | \"idle\"\n | \"signing-off\") || \"active\";\n const hbId = getAgentId();\n const hbName = getAgentName();\n if (!acquireLock(HEARTBEATS_LOCK)) {\n return {\n content: [{ type: \"text\", text: \"Heartbeat store busy, try again.\" }],\n };\n }\n try {\n const store = loadHeartbeats();\n const existing = store[hbId];\n const resolvedInstanceId =\n resolveCurrentInstanceId() ?? existing?.instanceId ?? null;\n const connectHash = buildHeartbeatConnectHash(resolvedInstanceId, hbId);\n const preserveBridgeSource =\n existing?.source === \"bridge-dispatch\" &&\n existing.connectHash === connectHash;\n store[hbId] = {\n id: hbId,\n agent: hbName,\n timestamp: new Date().toISOString(),\n lastActivity: getLastActivityTime(),\n joinedAt: existing?.joinedAt,\n status,\n source: preserveBridgeSource ? \"bridge-dispatch\" : \"mcp-direct\",\n instanceId: resolvedInstanceId,\n bridgePid: preserveBridgeSource ? (existing?.bridgePid ?? null) : null,\n connectHash,\n };\n saveHeartbeats(store);\n dbUpsertHeartbeat(hbId, status, getLastActivityTime());\n } finally {\n releaseLock(HEARTBEATS_LOCK);\n }\n\n // M221: Renew claim TTL on heartbeat, release on signing-off\n // Pass ownership (instanceId + pid) to prevent cross-instance interference\n if (hbName && hbName !== \"unknown\") {\n const hbInstanceId = resolveClaimInstanceId();\n if (status === \"signing-off\") {\n releaseClaim(hbName, hbInstanceId, process.pid);\n } else {\n renewClaimTTL(hbName, hbInstanceId, process.pid);\n }\n }\n\n return {\n content: [\n {\n type: \"text\",\n text: `Heartbeat sent: ${hbName} [${hbId}] (${status})`,\n },\n ],\n };\n }\n\n // ── tap_who ───────────────────────────────────────────────────────\n if (req.params.name === \"tap_who\") {\n const minutes =\n typeof (req.params.arguments as any)?.minutes === \"number\"\n ? (req.params.arguments as any).minutes\n : 10;\n const store = loadHeartbeats();\n const agents = buildWhoAgents(store, minutes);\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({ onlineCount: agents.length, agents }, null, 2),\n },\n ],\n };\n }\n\n // ── tap_db_sync ───────────────────────────────────────────────────\n if (req.params.name === \"tap_db_sync\") {\n const result = dbSyncAll();\n if (!result)\n return {\n content: [{ type: \"text\", text: \"SQLite not available. Cannot sync.\" }],\n };\n return {\n content: [\n {\n type: \"text\",\n text: `DB sync complete: ${result.messages} messages, ${result.heartbeats} heartbeats, ${result.receipts} receipts`,\n },\n ],\n };\n }\n\n // ── tap_cleanup ───────────────────────────────────────────────────\n if (req.params.name === \"tap_cleanup\") {\n const days =\n typeof (req.params.arguments as any)?.days === \"number\"\n ? (req.params.arguments as any).days\n : 7;\n const dryRun = (req.params.arguments as any)?.dryRun === true;\n const cutoffDate = new Date(Date.now() - days * 24 * 60 * 60 * 1000);\n const cutoffStr =\n cutoffDate.getFullYear().toString() +\n (cutoffDate.getMonth() + 1).toString().padStart(2, \"0\") +\n cutoffDate.getDate().toString().padStart(2, \"0\");\n const moved: string[] = [];\n if (!existsSync(ARCHIVE_DIR)) mkdirSync(ARCHIVE_DIR, { recursive: true });\n if (existsSync(INBOX_DIR)) {\n for (const filename of readdirSync(INBOX_DIR)) {\n if (!filename.endsWith(\".md\")) continue;\n // Parse date from filename: YYYYMMDD-from-to-subject.md\n const dateMatch = filename.match(/^(\\d{8})-/);\n if (!dateMatch) continue;\n if (dateMatch[1] >= cutoffStr) continue; // not old enough\n const filepath = join(INBOX_DIR, filename);\n if (!dryRun) renameSync(filepath, join(ARCHIVE_DIR, filename));\n moved.push(filename);\n }\n }\n return {\n content: [\n {\n type: \"text\",\n text: dryRun\n ? `[DRY RUN] Would archive ${moved.length} files older than ${days} days (filename date).`\n : `Archived ${moved.length} files older than ${days} days to archive/ (filename date).`,\n },\n ],\n };\n }\n\n // ── tap_onboard ──────────────────────────────────────────────────\n if (req.params.name === \"tap_onboard\") {\n const commsDir = process.env.TAP_COMMS_DIR;\n if (!commsDir) {\n return {\n content: [\n {\n type: \"text\",\n text: \"TAP_COMMS_DIR not set. Cannot load onboarding docs.\",\n },\n ],\n };\n }\n\n // Idempotent marker — agent-scoped onboarding tracker\n const stateDir = process.env.TAP_STATE_DIR;\n const agentId = getAgentId();\n let alreadyOnboarded = false;\n let markerStore: Record<string, { onboardedAt: string }> = {};\n const markerPath = stateDir ? join(stateDir, \"onboarded.json\") : null;\n if (markerPath) {\n try {\n if (existsSync(markerPath)) {\n markerStore = JSON.parse(readFileSync(markerPath, \"utf-8\"));\n if (markerStore[agentId]) {\n alreadyOnboarded = true;\n }\n }\n } catch {\n // best-effort\n }\n }\n\n const onboardingDir = join(commsDir, \"onboarding\");\n if (!existsSync(onboardingDir)) {\n return {\n content: [\n {\n type: \"text\",\n text: \"No onboarding directory found at \" + onboardingDir,\n },\n ],\n };\n }\n\n const docs: string[] = [];\n const allFiles = readdirSync(onboardingDir).filter((f: string) =>\n f.endsWith(\".md\"),\n );\n\n // welcome.md always first, then alphabetical\n const files = [\n ...allFiles.filter((f: string) => f === \"welcome.md\"),\n ...allFiles.filter((f: string) => f !== \"welcome.md\").sort(),\n ];\n\n for (const file of files) {\n try {\n const content = readFileSync(join(onboardingDir, file), \"utf-8\");\n docs.push(`# ${file}\\n\\n${content}`);\n } catch {\n docs.push(`# ${file}\\n\\n(failed to read)`);\n }\n }\n\n if (docs.length === 0) {\n return {\n content: [{ type: \"text\", text: \"Onboarding directory is empty.\" }],\n };\n }\n\n // Write agent-scoped onboarded marker\n if (markerPath && !alreadyOnboarded) {\n try {\n markerStore[agentId] = { onboardedAt: new Date().toISOString() };\n writeFileSync(\n markerPath,\n JSON.stringify(markerStore, null, 2),\n \"utf-8\",\n );\n } catch {\n // best-effort\n }\n }\n\n const prefix = alreadyOnboarded\n ? \"(You have already been onboarded. Showing docs again for reference.)\\n\\n\"\n : \"\";\n\n return {\n content: [{ type: \"text\", text: prefix + docs.join(\"\\n\\n---\\n\\n\") }],\n };\n }\n\n // ── tap_identity_probe ──────────────────────────────────────────\n if (req.params.name === \"tap_identity_probe\") {\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(getAgentIdentitySnapshot(), null, 2),\n },\n ],\n };\n }\n\n throw new Error(`unknown tool: ${req.params.name}`);\n});\n\n// ── Start ───────────────────────────────────────────────────────────────\n\nawait mcp.connect(new StdioServerTransport());\n\n// M221 hotfix: auto-claim bootstrapped name so persisted names are protected\n{\n const { isNameConfirmed, getAgentName: bootName } =\n await import(\"./tap-utils.js\");\n if (isNameConfirmed()) {\n const name = bootName();\n if (name && name !== \"unknown\") {\n const bootInstanceId = resolveClaimInstanceId();\n const bootClaim = claimName(\n name,\n bootInstanceId,\n process.pid,\n \"mcp-direct\",\n );\n if (bootClaim.success) {\n debug(\n `auto-claimed bootstrapped name: ${name} (instance: ${bootInstanceId})`,\n );\n } else {\n // Demote name so tap_set_name can recover with a different name\n const { demoteAgentName } = await import(\"./tap-utils.js\");\n demoteAgentName();\n debug(\n `WARNING: bootstrapped name \"${name}\" claimed by ${bootClaim.conflictWith?.instanceId ?? \"unknown\"} — demoted to unknown, use tap_set_name to pick a new name`,\n );\n }\n }\n }\n}\n\ndebug(`agent id: ${getAgentId()}, name: ${getAgentName()}`);\ndebug(`watching inbox: ${INBOX_DIR}`);\n\nwatchDir(INBOX_DIR, \"inbox\", mcp);\n\nconst latestReviewDir = getLatestReviewDir();\nif (latestReviewDir) {\n debug(`watching reviews: ${latestReviewDir}`);\n watchDir(latestReviewDir, \"reviews\", mcp);\n}\n\n// findings are record-keeping, not real-time comms — no watcher needed.\n// Agents read findings on-demand via tap_list_unread(sources: [\"findings\"]).\n\n// M93: Poll fallback catches messages missed by fs.watch (Windows race, watcher death, etc.)\nimport { startPollFallback } from \"./tap-poll-fallback.js\";\nstartPollFallback(mcp);\n\nprocess.on(\"SIGINT\", () => process.exit(0));\n","import {\n canonicalizeAgentId,\n isBroadcastRecipient,\n sameRoutingAddress,\n} from \"./tap-identity.js\";\n\nexport const PEER_DM_WINDOW_MS = 5 * 60 * 1000;\nexport const PEER_DM_MAX_MESSAGES = 3;\n\nexport type PeerDmHistoryStore = Map<string, number[]>;\n\nexport type PeerDmRoute = {\n fromId: string;\n fromName?: string | null;\n to: string;\n resolvedTo?: string | null;\n towerName?: string | null;\n towerId?: string | null;\n};\n\nexport type PeerDmRateLimitCheck = {\n allowed: boolean;\n exempt: boolean;\n key: string | null;\n target: string;\n recentCount: number;\n};\n\nfunction normalizeAddress(value?: string | null): string {\n return value?.trim() ?? \"\";\n}\n\nfunction matchesTowerAddress(\n value: string | null | undefined,\n towerName: string | null | undefined,\n towerId: string | null | undefined,\n): boolean {\n const normalizedValue = normalizeAddress(value);\n const normalizedTower = normalizeAddress(towerName);\n const normalizedTowerId = normalizeAddress(towerId);\n if (!normalizedValue) return false;\n return (\n (!!normalizedTower &&\n (normalizedValue === normalizedTower ||\n sameRoutingAddress(normalizedValue, normalizedTower))) ||\n (!!normalizedTowerId &&\n (normalizedValue === normalizedTowerId ||\n sameRoutingAddress(normalizedValue, normalizedTowerId)))\n );\n}\n\nfunction resolveTargetAddress(route: PeerDmRoute): string {\n const candidate = normalizeAddress(route.resolvedTo) || normalizeAddress(route.to);\n return isBroadcastRecipient(candidate)\n ? \"broadcast\"\n : canonicalizeAgentId(candidate);\n}\n\nexport function isPeerDmRateLimitExempt(route: PeerDmRoute): boolean {\n if (\n isBroadcastRecipient(normalizeAddress(route.to)) ||\n isBroadcastRecipient(normalizeAddress(route.resolvedTo))\n ) {\n return true;\n }\n\n const towerName = normalizeAddress(route.towerName);\n const towerId = normalizeAddress(route.towerId);\n if (!towerName && !towerId) return false;\n\n return (\n matchesTowerAddress(route.fromId, towerName, towerId) ||\n matchesTowerAddress(route.fromName, towerName, towerId) ||\n matchesTowerAddress(route.to, towerName, towerId) ||\n matchesTowerAddress(route.resolvedTo, towerName, towerId)\n );\n}\n\nfunction pruneHistory(\n entries: number[] | undefined,\n nowMs: number,\n windowMs: number,\n): number[] {\n if (!entries?.length) return [];\n return entries.filter((timestamp) => nowMs - timestamp <= windowMs);\n}\n\nexport function getPeerDmRateLimitKey(route: PeerDmRoute): string | null {\n if (isPeerDmRateLimitExempt(route)) {\n return null;\n }\n\n const from = canonicalizeAgentId(normalizeAddress(route.fromId));\n const to = resolveTargetAddress(route);\n if (!from || !to || to === \"broadcast\") {\n return null;\n }\n\n return `${from}->${to}`;\n}\n\nexport function checkPeerDmRateLimit(\n store: PeerDmHistoryStore,\n route: PeerDmRoute,\n nowMs = Date.now(),\n maxMessages = PEER_DM_MAX_MESSAGES,\n windowMs = PEER_DM_WINDOW_MS,\n): PeerDmRateLimitCheck {\n const key = getPeerDmRateLimitKey(route);\n const target = resolveTargetAddress(route);\n if (!key) {\n return {\n allowed: true,\n exempt: true,\n key: null,\n target,\n recentCount: 0,\n };\n }\n\n const recent = pruneHistory(store.get(key), nowMs, windowMs);\n return {\n allowed: recent.length < maxMessages,\n exempt: false,\n key,\n target,\n recentCount: recent.length,\n };\n}\n\nexport function recordPeerDm(\n store: PeerDmHistoryStore,\n route: PeerDmRoute,\n nowMs = Date.now(),\n windowMs = PEER_DM_WINDOW_MS,\n): void {\n const key = getPeerDmRateLimitKey(route);\n if (!key) return;\n\n const recent = pruneHistory(store.get(key), nowMs, windowMs);\n recent.push(nowMs);\n store.set(key, recent);\n}\n","import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n unlinkSync,\n readdirSync,\n openSync,\n closeSync,\n renameSync,\n statSync,\n constants,\n} from \"node:fs\";\nimport { join } from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { COMMS_DIR } from \"./tap-utils.js\";\n\n// ─── Types ─────────────────────────────────────────────────────\n\nexport type HeartbeatSource = \"bridge-dispatch\" | \"mcp-direct\";\n\nexport interface NameClaim {\n name: string;\n claimedBy: {\n instanceId: string;\n sessionPid: number;\n source: HeartbeatSource;\n };\n claimedAt: string;\n nonce: string;\n status: \"confirmed\" | \"released\";\n expiresAt: string | null;\n}\n\nexport interface NameClaimResult {\n success: boolean;\n claim: NameClaim | null;\n conflictWith: {\n instanceId: string;\n alive: boolean;\n lastActivity: string;\n } | null;\n}\n\n// ─── Constants ─────────────────────────────────────────────────\n\nconst CLAIMS_DIR = join(COMMS_DIR, \".claims\");\nconst CLAIM_TTL_MS = 5 * 60 * 1000; // 5 minutes\n\n// ─── Helpers ───────────────────────────────────────────────────\n\nfunction ensureClaimsDir(): void {\n if (!existsSync(CLAIMS_DIR)) {\n mkdirSync(CLAIMS_DIR, { recursive: true });\n }\n}\n\nfunction claimFilePath(name: string): string {\n const safe = name.replace(/[/\\\\:*?\"<>|]/g, \"_\");\n return join(CLAIMS_DIR, `${safe}.json`);\n}\n\nfunction isProcessAlive(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Build a unique instanceId even when env vars are missing.\n * Falls back to PID-based identity so direct MCP sessions\n * never share the same \"unknown\" instanceId.\n */\nexport function resolveClaimInstanceId(): string {\n const envId = process.env.TAP_BRIDGE_INSTANCE_ID ?? process.env.TAP_AGENT_ID;\n if (envId && envId !== \"unknown\") return envId;\n // No managed identity — use PID to distinguish direct MCP sessions\n return `mcp-direct-${process.pid}`;\n}\n\n/**\n * Atomic create: uses O_EXCL to fail if file already exists.\n * Returns true if file was created, false if it already existed.\n */\nfunction atomicCreate(filePath: string, data: string): boolean {\n try {\n const fd = openSync(\n filePath,\n constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL,\n );\n writeFileSync(fd, data, \"utf-8\");\n closeSync(fd);\n return true;\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === \"EEXIST\") return false;\n throw err;\n }\n}\n\nfunction atomicOverwrite(filePath: string, data: string): void {\n const tmp = `${filePath}.tmp.${process.pid}.${Date.now()}`;\n writeFileSync(tmp, data, \"utf-8\");\n try {\n renameSync(tmp, filePath);\n } catch (err) {\n try {\n unlinkSync(tmp);\n } catch {\n /* best-effort cleanup */\n }\n throw err;\n }\n}\n\n// ─── Core ──────────────────────────────────────────────────────\n\nexport function checkClaim(name: string): NameClaim | null {\n const filePath = claimFilePath(name);\n if (!existsSync(filePath)) return null;\n try {\n const raw = readFileSync(filePath, \"utf-8\");\n return JSON.parse(raw) as NameClaim;\n } catch {\n return null;\n }\n}\n\nexport function isClaimAlive(claim: NameClaim): boolean {\n if (claim.status === \"released\") return false;\n if (claim.expiresAt) {\n if (Date.now() > new Date(claim.expiresAt).getTime()) return false;\n }\n return isProcessAlive(claim.claimedBy.sessionPid);\n}\n\n/**\n * Acquire an exclusive lock file using O_EXCL.\n * Returns true if lock acquired, false if busy.\n * Stale locks (>30s) are force-removed.\n */\nfunction acquireClaimLock(name: string): boolean {\n ensureClaimsDir();\n const lockPath = claimFilePath(name) + \".lock\";\n // Remove stale locks older than 30s\n if (existsSync(lockPath)) {\n try {\n const { mtimeMs } = statSync(lockPath);\n if (Date.now() - mtimeMs > 30_000) {\n unlinkSync(lockPath);\n }\n } catch {\n /* ignore */\n }\n }\n return atomicCreate(lockPath, `${process.pid}\\n`);\n}\n\nfunction releaseClaimLock(name: string): void {\n const lockPath = claimFilePath(name) + \".lock\";\n try {\n unlinkSync(lockPath);\n } catch {\n /* ignore */\n }\n}\n\nexport function claimName(\n name: string,\n instanceId: string,\n pid: number,\n source: HeartbeatSource,\n): NameClaimResult {\n ensureClaimsDir();\n\n // Acquire exclusive lock — serializes all claim operations for this name\n if (!acquireClaimLock(name)) {\n // Lock busy — another process is claiming right now\n return {\n success: false,\n claim: null,\n conflictWith: {\n instanceId: \"lock-busy\",\n alive: true,\n lastActivity: new Date().toISOString(),\n },\n };\n }\n\n try {\n return claimNameLocked(name, instanceId, pid, source);\n } finally {\n releaseClaimLock(name);\n }\n}\n\n/**\n * Claim logic under exclusive lock — no race conditions.\n */\nfunction claimNameLocked(\n name: string,\n instanceId: string,\n pid: number,\n source: HeartbeatSource,\n): NameClaimResult {\n const filePath = claimFilePath(name);\n const claim = createClaim(name, instanceId, pid, source);\n const data = JSON.stringify(claim, null, 2) + \"\\n\";\n\n const existing = checkClaim(name);\n\n // No existing claim → create\n if (!existing) {\n atomicOverwrite(filePath, data);\n return { success: true, claim, conflictWith: null };\n }\n\n // Same instance + same PID → idempotent\n if (\n existing.claimedBy.instanceId === instanceId &&\n existing.claimedBy.sessionPid === pid\n ) {\n return { success: true, claim: existing, conflictWith: null };\n }\n\n // Same instance, different PID → restart reclaim only if previous claim is not alive\n if (existing.claimedBy.instanceId === instanceId) {\n if (isClaimAlive(existing)) {\n // Previous claim still alive (not expired AND PID running) — true conflict\n return {\n success: false,\n claim: null,\n conflictWith: {\n instanceId: existing.claimedBy.instanceId,\n alive: true,\n lastActivity: existing.claimedAt,\n },\n };\n }\n atomicOverwrite(filePath, data);\n return { success: true, claim, conflictWith: null };\n }\n\n // Different instance — check liveness\n if (!isClaimAlive(existing)) {\n // Dead claim — take over\n atomicOverwrite(filePath, data);\n return { success: true, claim, conflictWith: null };\n }\n\n // Alive conflict — reject\n return {\n success: false,\n claim: null,\n conflictWith: {\n instanceId: existing.claimedBy.instanceId,\n alive: true,\n lastActivity: existing.claimedAt,\n },\n };\n}\n\n/**\n * Release claim — under lock, only if caller owns it.\n */\nexport function releaseClaim(\n name: string,\n instanceId?: string,\n pid?: number,\n): boolean {\n if (!acquireClaimLock(name)) return false;\n try {\n return releaseClaimLocked(name, instanceId, pid);\n } finally {\n releaseClaimLock(name);\n }\n}\n\nfunction releaseClaimLocked(\n name: string,\n instanceId?: string,\n pid?: number,\n): boolean {\n const filePath = claimFilePath(name);\n if (!existsSync(filePath)) return false;\n\n if (instanceId || pid) {\n const claim = checkClaim(name);\n if (!claim) return false;\n if (instanceId && claim.claimedBy.instanceId !== instanceId) return false;\n if (pid && claim.claimedBy.sessionPid !== pid) return false;\n }\n\n try {\n unlinkSync(filePath);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Renew TTL — under lock, only if caller owns the claim.\n */\nexport function renewClaimTTL(\n name: string,\n instanceId?: string,\n pid?: number,\n): boolean {\n if (!acquireClaimLock(name)) return false;\n try {\n return renewClaimTTLLocked(name, instanceId, pid);\n } finally {\n releaseClaimLock(name);\n }\n}\n\nfunction renewClaimTTLLocked(\n name: string,\n instanceId?: string,\n pid?: number,\n): boolean {\n const claim = checkClaim(name);\n if (!claim || claim.status === \"released\") return false;\n\n if (instanceId && claim.claimedBy.instanceId !== instanceId) return false;\n if (pid && claim.claimedBy.sessionPid !== pid) return false;\n\n claim.expiresAt = new Date(Date.now() + CLAIM_TTL_MS).toISOString();\n const filePath = claimFilePath(name);\n atomicOverwrite(filePath, JSON.stringify(claim, null, 2) + \"\\n\");\n return true;\n}\n\nexport function expireStale(): string[] {\n ensureClaimsDir();\n const expired: string[] = [];\n\n for (const file of readdirSync(CLAIMS_DIR)) {\n if (!file.endsWith(\".json\")) continue;\n const filePath = join(CLAIMS_DIR, file);\n try {\n const raw = readFileSync(filePath, \"utf-8\");\n const claim = JSON.parse(raw) as NameClaim;\n if (!isClaimAlive(claim)) {\n unlinkSync(filePath);\n expired.push(claim.name);\n }\n } catch {\n // Skip corrupted files\n }\n }\n\n return expired;\n}\n\n// ─── Internal ──────────────────────────────────────────────────\n\nfunction createClaim(\n name: string,\n instanceId: string,\n pid: number,\n source: HeartbeatSource,\n): NameClaim {\n return {\n name,\n claimedBy: { instanceId, sessionPid: pid, source },\n claimedAt: new Date().toISOString(),\n nonce: randomUUID(),\n status: \"confirmed\",\n expiresAt: new Date(Date.now() + CLAIM_TTL_MS).toISOString(),\n };\n}\n","/**\n * tap-comms optional SQLite cache layer.\n * Falls back gracefully if bun:sqlite is unavailable.\n */\nimport { existsSync, readFileSync, readdirSync, statSync } from \"fs\";\nimport { join } from \"path\";\nimport {\n DB_PATH,\n INBOX_DIR,\n RECEIPTS_DIR,\n debug,\n parseFilename,\n type ChannelSource,\n} from \"./tap-utils.js\";\n\n// ── DB Instance ─────────────────────────────────────────────────────────\n\n// bun:sqlite type stub — avoids TS2307 when not running in Bun\ninterface BunDatabase {\n exec(sql: string): void;\n run(sql: string, ...args: unknown[]): void;\n prepare(sql: string): {\n run(...args: unknown[]): void;\n all(...args: unknown[]): unknown[];\n get(...args: unknown[]): unknown;\n };\n close(): void;\n}\n\nlet db: BunDatabase | null = null;\n\nexport function getDb() {\n return db;\n}\n\n// ── Init ────────────────────────────────────────────────────────────────\n\nexport function initDb(): boolean {\n try {\n const { Database } = require(\"bun:sqlite\") as {\n Database: new (path: string, opts?: { create?: boolean }) => BunDatabase;\n };\n db = new Database(DB_PATH, { create: true });\n db.exec(\"PRAGMA journal_mode=WAL\");\n db.exec(\"PRAGMA busy_timeout=5000\");\n db.exec(`\n CREATE TABLE IF NOT EXISTS messages (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n filename TEXT UNIQUE NOT NULL,\n from_agent TEXT NOT NULL,\n to_agent TEXT NOT NULL,\n subject TEXT NOT NULL,\n source TEXT NOT NULL DEFAULT 'inbox',\n mtime REAL NOT NULL,\n created_at TEXT DEFAULT (datetime('now'))\n );\n CREATE INDEX IF NOT EXISTS idx_messages_to ON messages(to_agent);\n CREATE INDEX IF NOT EXISTS idx_messages_mtime ON messages(mtime);\n CREATE INDEX IF NOT EXISTS idx_messages_from ON messages(from_agent);\n\n CREATE TABLE IF NOT EXISTS heartbeats (\n agent TEXT PRIMARY KEY,\n status TEXT NOT NULL DEFAULT 'active',\n last_activity TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS receipts (\n filename TEXT NOT NULL,\n reader TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n PRIMARY KEY (filename, reader)\n );\n `);\n debug(\"SQLite initialized: \" + DB_PATH);\n return true;\n } catch (err) {\n debug(\"SQLite unavailable, using file-only mode: \" + String(err));\n db = null;\n return false;\n }\n}\n\n// ── Auto Sync ───────────────────────────────────────────────────────────\n\nexport function autoSyncOnStartup() {\n if (!db) return;\n\n try {\n // Sync inbox\n if (existsSync(INBOX_DIR)) {\n for (const filename of readdirSync(INBOX_DIR)) {\n if (!filename.endsWith(\".md\")) continue;\n const match = filename.match(/^\\d{8}-(.+?)-(.+?)-(.+)\\.md$/);\n if (!match) continue;\n try {\n const mtime = statSync(join(INBOX_DIR, filename)).mtimeMs;\n db.run(\n \"INSERT OR IGNORE INTO messages (filename, from_agent, to_agent, subject, source, mtime) VALUES (?, ?, ?, ?, ?, ?)\",\n [filename, match[1], match[2], match[3], \"inbox\", mtime],\n );\n } catch {}\n }\n }\n debug(\"auto-sync: inbox files imported into DB\");\n\n // Sync receipts\n const rcptPath = join(RECEIPTS_DIR, \"receipts.json\");\n if (existsSync(rcptPath)) {\n try {\n const rcptStore = JSON.parse(readFileSync(rcptPath, \"utf-8\"));\n for (const [fname, readers] of Object.entries(rcptStore)) {\n for (const r of readers as Array<{\n reader: string;\n timestamp: string;\n }>) {\n db.run(\n \"INSERT OR IGNORE INTO receipts (filename, reader, timestamp) VALUES (?, ?, ?)\",\n [fname, r.reader, r.timestamp],\n );\n }\n }\n debug(\"auto-sync: receipts imported into DB\");\n } catch {}\n }\n } catch {}\n}\n\n// ── Write Helpers ───────────────────────────────────────────────────────\n\nexport function dbInsertMessage(\n filename: string,\n from: string,\n to: string,\n subject: string,\n source: ChannelSource,\n mtimeMs: number,\n) {\n if (!db) return;\n try {\n db.run(\n \"INSERT OR IGNORE INTO messages (filename, from_agent, to_agent, subject, source, mtime) VALUES (?, ?, ?, ?, ?, ?)\",\n [filename, from, to, subject, source, mtimeMs],\n );\n } catch {}\n}\n\nexport function dbUpsertHeartbeat(\n agent: string,\n status: string,\n lastActivity: string,\n) {\n if (!db) return;\n try {\n db.run(\n `INSERT INTO heartbeats (agent, status, last_activity, updated_at)\n VALUES (?, ?, ?, datetime('now'))\n ON CONFLICT(agent) DO UPDATE SET\n status=excluded.status,\n last_activity=excluded.last_activity,\n updated_at=datetime('now')`,\n [agent, status, lastActivity],\n );\n } catch {}\n}\n\nexport function dbInsertReceipt(\n filename: string,\n reader: string,\n timestamp: string,\n) {\n if (!db) return;\n try {\n db.run(\n \"INSERT OR IGNORE INTO receipts (filename, reader, timestamp) VALUES (?, ?, ?)\",\n [filename, reader, timestamp],\n );\n } catch {}\n}\n\n// ── Query Helpers ───────────────────────────────────────────────────────\n\nexport function dbGetStats(cutoff: number): {\n sent: Record<string, number>;\n received: Record<string, number>;\n broadcasts: number;\n totalReceipts: number;\n} | null {\n if (!db) return null;\n try {\n const sentRows = db\n .prepare(\n \"SELECT from_agent, COUNT(*) as cnt FROM messages WHERE mtime >= ? AND source = 'inbox' GROUP BY from_agent\",\n )\n .all(cutoff) as Array<{ from_agent: string; cnt: number }>;\n const receivedRows = db\n .prepare(\n \"SELECT to_agent, COUNT(*) as cnt FROM messages WHERE mtime >= ? AND source = 'inbox' AND to_agent NOT IN ('전체','all') GROUP BY to_agent\",\n )\n .all(cutoff) as Array<{ to_agent: string; cnt: number }>;\n const broadcastRow = db\n .prepare(\n \"SELECT COUNT(*) as cnt FROM messages WHERE mtime >= ? AND source = 'inbox' AND to_agent IN ('전체','all')\",\n )\n .get(cutoff) as { cnt: number } | null;\n const cutoffISO = new Date(cutoff).toISOString();\n const receiptRow = db\n .prepare(\"SELECT COUNT(*) as cnt FROM receipts WHERE timestamp >= ?\")\n .get(cutoffISO) as { cnt: number } | null;\n\n const sent: Record<string, number> = {};\n for (const r of sentRows) sent[r.from_agent] = r.cnt;\n const received: Record<string, number> = {};\n for (const r of receivedRows) received[r.to_agent] = r.cnt;\n\n return {\n sent,\n received,\n broadcasts: broadcastRow?.cnt ?? 0,\n totalReceipts: receiptRow?.cnt ?? 0,\n };\n } catch {\n return null;\n }\n}\n\nexport function dbSyncAll(): {\n messages: number;\n heartbeats: number;\n receipts: number;\n} | null {\n if (!db) return null;\n\n let msgCount = 0;\n let hbCount = 0;\n let rcptCount = 0;\n\n // Sync inbox\n if (existsSync(INBOX_DIR)) {\n for (const filename of readdirSync(INBOX_DIR)) {\n if (!filename.endsWith(\".md\")) continue;\n const parsed = parseFilename(filename);\n if (!parsed) continue;\n try {\n const mtime = statSync(join(INBOX_DIR, filename)).mtimeMs;\n dbInsertMessage(\n filename,\n parsed.from,\n parsed.to,\n parsed.subject,\n \"inbox\",\n mtime,\n );\n msgCount++;\n } catch {}\n }\n }\n\n // Sync heartbeats\n try {\n const { loadHeartbeats } = require(\"./tap-io.js\");\n const hbStore = loadHeartbeats();\n for (const [agent, hb] of Object.entries(hbStore) as Array<[string, any]>) {\n dbUpsertHeartbeat(agent, hb.status, hb.lastActivity);\n hbCount++;\n }\n } catch {}\n\n // Sync receipts\n try {\n const { loadReceipts } = require(\"./tap-io.js\");\n const rcptStore = loadReceipts();\n for (const [filename, readers] of Object.entries(rcptStore) as Array<\n [string, any]\n >) {\n for (const r of readers) {\n dbInsertReceipt(filename, r.reader, r.timestamp);\n rcptCount++;\n }\n }\n } catch {}\n\n return { messages: msgCount, heartbeats: hbCount, receipts: rcptCount };\n}\n","/**\n * tap-comms fs.watch watcher: real-time channel push notifications.\n */\nimport { existsSync, readFileSync, statSync, watch, type FSWatcher } from \"fs\";\nimport { join } from \"path\";\nimport type { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport {\n SERVER_START,\n stripBom,\n parseFilename,\n parseFrontmatter,\n isForMe,\n getAgentId,\n getAgentName,\n getSourceKey,\n debug,\n type ChannelSource,\n} from \"./tap-utils.js\";\nimport { dbInsertMessage } from \"./tap-db.js\";\nimport { readFiles, resolveAgentLabel } from \"./tap-io.js\";\nimport { isOwnMessageAddress } from \"./tap-identity.js\";\n\n// ── State ───────────────────────────────────────────────────────────────\n\nconst notifiedFiles = new Set<string>();\nconst recentEvents = new Map<string, number>();\nconst inFlightFiles = new Set<string>();\nconst DEBOUNCE_MS = 200;\nconst MAX_READY_ATTEMPTS = 6;\nconst READY_RETRY_MS = 40;\nconst WATCH_RESTART_MS = 1_000;\nconst RECENT_EVENT_TTL_MS = 5 * 60 * 1000;\nconst RECENT_EVENT_CLEANUP_MS = 60 * 1000;\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction isRetryableFsError(error: unknown): boolean {\n const code =\n error && typeof error === \"object\" && \"code\" in error\n ? String((error as NodeJS.ErrnoException).code ?? \"\")\n : \"\";\n return (\n code === \"ENOENT\" ||\n code === \"EBUSY\" ||\n code === \"EPERM\" ||\n code === \"EACCES\"\n );\n}\n\nasync function waitForFileReady(\n filepath: string,\n): Promise<{ content: string; mtime: number } | \"stale\" | null> {\n for (let attempt = 0; attempt < MAX_READY_ATTEMPTS; attempt++) {\n try {\n const mtime = statSync(filepath).mtimeMs;\n if (mtime < SERVER_START - 5000) return \"stale\";\n const content = stripBom(readFileSync(filepath, \"utf-8\"));\n return { content, mtime };\n } catch (error) {\n if (attempt === MAX_READY_ATTEMPTS - 1 || !isRetryableFsError(error)) {\n debug(\n `watch read failed [${filepath}]: ${error instanceof Error ? error.message : String(error)}`,\n );\n return null;\n }\n await sleep(READY_RETRY_MS * (attempt + 1));\n }\n }\n\n return null;\n}\n\nfunction isOwnMessageArtifact(\n source: ChannelSource,\n filename: string,\n parsed: ReturnType<typeof parseFilename>,\n): boolean {\n const agentId = getAgentId();\n const agentName = getAgentName();\n\n if (parsed && isOwnMessageAddress(parsed.from, agentId, agentName)) {\n return true;\n }\n\n if (source === \"reviews\") {\n return (\n filename.endsWith(`-${agentId}.md`) ||\n filename.endsWith(`-${agentName}.md`)\n );\n }\n\n return false;\n}\n\nfunction cleanupRecentEvents(now: number = Date.now()) {\n const cutoff = now - RECENT_EVENT_TTL_MS;\n for (const [key, ts] of recentEvents) {\n if (ts < cutoff) recentEvents.delete(key);\n }\n}\n\nconst recentEventsCleanupTimer = setInterval(() => {\n cleanupRecentEvents();\n}, RECENT_EVENT_CLEANUP_MS);\nrecentEventsCleanupTimer.unref?.();\n\n// @internal test helper\nexport function resetWatcherStateForTests() {\n notifiedFiles.clear();\n recentEvents.clear();\n inFlightFiles.clear();\n}\n\n// @internal test helper\nexport async function processWatchFile(\n dir: string,\n source: ChannelSource,\n filename: string,\n mcp: Pick<Server, \"notification\">,\n): Promise<boolean> {\n const key = getSourceKey(source, filename);\n // Skip if already notified (watcher), in-flight, or read via tap_list_unread\n if (notifiedFiles.has(key) || inFlightFiles.has(key) || readFiles.has(key))\n return false;\n\n inFlightFiles.add(key);\n\n try {\n const filepath = join(dir, filename);\n const file = await waitForFileReady(filepath);\n if (file === \"stale\") {\n notifiedFiles.add(key);\n return false;\n }\n if (!file) return false;\n\n // M204: Frontmatter-first routing (matches tap-io getUnreadItems)\n let parsed: ReturnType<typeof parseFilename> = null;\n if (source === \"inbox\") {\n const fm = parseFrontmatter(file.content);\n parsed = fm\n ? { from: fm.from, to: fm.to, subject: fm.subject }\n : parseFilename(filename);\n } else {\n parsed = parseFilename(filename);\n }\n\n if (source === \"inbox\" && (!parsed || !isForMe(parsed.to))) return false;\n if (isOwnMessageArtifact(source, filename, parsed)) return false;\n\n const rawFrom = parsed?.from || source;\n const rawTo = parsed?.to || \"all\";\n const from = parsed ? resolveAgentLabel(parsed.from) : source;\n const to = parsed ? resolveAgentLabel(parsed.to) : \"all\";\n const subject = parsed?.subject || filename.replace(/\\.md$/, \"\");\n\n dbInsertMessage(filename, rawFrom, rawTo, subject, source, Date.now());\n debug(`sending notification [${source}]: from=${from} to=${to}`);\n await mcp.notification({\n method: \"notifications/claude/channel\",\n params: {\n content: file.content,\n meta: { from, to, subject, filename, source },\n },\n });\n notifiedFiles.add(key);\n return true;\n } finally {\n inFlightFiles.delete(key);\n }\n}\n\n// ── Watch ───────────────────────────────────────────────────────────────\n\nexport function watchDir(dir: string, source: ChannelSource, mcp: Server) {\n if (!existsSync(dir)) return;\n\n let watcher: FSWatcher | null = null;\n let restartTimer: NodeJS.Timeout | null = null;\n\n const scheduleRestart = (reason: string) => {\n if (restartTimer) return;\n debug(`fs.watch restart scheduled [${source}]: ${reason}`);\n restartTimer = setTimeout(() => {\n restartTimer = null;\n if (!existsSync(dir)) {\n debug(`fs.watch restart skipped [${source}]: missing ${dir}`);\n return;\n }\n startWatcher();\n }, WATCH_RESTART_MS);\n restartTimer.unref();\n };\n\n const disposeWatcher = () => {\n if (!watcher) return;\n watcher.removeAllListeners();\n try {\n watcher.close();\n } catch {\n // Best-effort cleanup only.\n }\n watcher = null;\n };\n\n const startWatcher = () => {\n disposeWatcher();\n\n try {\n watcher = watch(dir, (eventType, filename) => {\n debug(`fs.watch [${source}]: ${eventType} ${filename}`);\n if (!filename || !filename.endsWith(\".md\")) return;\n\n const key = getSourceKey(source, filename);\n const now = Date.now();\n cleanupRecentEvents(now);\n const lastSeen = recentEvents.get(key);\n if (lastSeen && now - lastSeen < DEBOUNCE_MS) return;\n recentEvents.set(key, now);\n\n void processWatchFile(dir, source, filename, mcp).catch((error) => {\n debug(\n `watch processing failed [${source}/${filename}]: ${error instanceof Error ? error.message : String(error)}`,\n );\n });\n });\n\n watcher.on(\"error\", (error) => {\n debug(\n `fs.watch error [${source}]: ${error instanceof Error ? error.message : String(error)}`,\n );\n scheduleRestart(\"error\");\n });\n\n watcher.on(\"close\", () => {\n debug(`fs.watch closed [${source}]`);\n scheduleRestart(\"close\");\n });\n\n debug(`fs.watch active [${source}]: ${dir}`);\n } catch (error) {\n debug(\n `fs.watch start failed [${source}]: ${error instanceof Error ? error.message : String(error)}`,\n );\n scheduleRestart(\"start-failed\");\n }\n };\n\n startWatcher();\n}\n","import { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport {\n buildHeartbeatConnectHash,\n resolveKnownInstanceId,\n type Heartbeat,\n type HeartbeatSource,\n} from \"./tap-utils.js\";\n\ntype BridgeStateFile = {\n pid?: number;\n runtimeStateDir?: string | null;\n};\n\ntype RuntimeHeartbeat = {\n connected?: boolean;\n initialized?: boolean;\n threadId?: string | null;\n activeTurnId?: string | null;\n idleSince?: string | null;\n turnState?: \"active\" | \"idle\" | \"waiting-approval\" | \"disconnected\" | null;\n};\n\ntype RuntimeThreadState = {\n threadId?: string | null;\n};\n\nexport interface TapWhoAgent {\n id: string;\n agent: string;\n status: string;\n lastHeartbeat: string;\n lastActivity: string;\n alive: boolean;\n source: HeartbeatSource;\n instanceId: string | null;\n connectHash: string;\n presence: \"bridge-live\" | \"bridge-stale\" | \"mcp-only\";\n lifecycle:\n | \"ready\"\n | \"initializing\"\n | \"degraded-no-thread\"\n | \"bridge-stale\"\n | null;\n session:\n | \"initializing\"\n | \"active\"\n | \"idle\"\n | \"waiting-approval\"\n | \"disconnected\"\n | null;\n idleSeconds: number | null;\n}\n\ntype TapPresenceCandidate = TapWhoAgent & {\n displayName: string | null;\n lastActivityMs: number;\n};\n\nexport interface TapRecipientResolution {\n target: string;\n found: boolean;\n ambiguous: boolean;\n candidates: string[];\n warning: string | null;\n}\n\nfunction parseJsonFile<T>(filePath: string): T | null {\n if (!existsSync(filePath)) return null;\n try {\n return JSON.parse(readFileSync(filePath, \"utf-8\")) as T;\n } catch {\n return null;\n }\n}\n\nfunction formatAgentLabel(\n agentIdOrName: string,\n displayName?: string | null,\n): string {\n const normalizedId = agentIdOrName.trim();\n const normalizedName = displayName?.trim();\n\n if (!normalizedId) {\n return normalizedName ?? agentIdOrName;\n }\n\n if (!normalizedName || normalizedName === normalizedId) {\n return normalizedId;\n }\n\n return `${normalizedName} [${normalizedId}]`;\n}\n\nfunction isProcessAlive(pid: number | null | undefined): boolean {\n if (pid == null || !Number.isFinite(pid)) return false;\n try {\n process.kill(pid, 0);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction parseIsoAgeSeconds(value: string | null | undefined): number | null {\n if (!value) return null;\n const timestamp = new Date(value).getTime();\n if (Number.isNaN(timestamp)) return null;\n return Math.max(0, Math.floor((Date.now() - timestamp) / 1000));\n}\n\nfunction getActivityMs(heartbeat: Heartbeat): number {\n return new Date(heartbeat.lastActivity ?? heartbeat.timestamp ?? 0).getTime();\n}\n\nfunction resolveHeartbeatSource(heartbeat: Heartbeat): HeartbeatSource {\n return heartbeat.source === \"bridge-dispatch\" ? \"bridge-dispatch\" : \"mcp-direct\";\n}\n\nfunction resolveBridgeStatus(\n stateDir: string,\n instanceId: string | null,\n): {\n presence: \"bridge-live\" | \"bridge-stale\" | \"mcp-only\";\n lifecycle:\n | \"ready\"\n | \"initializing\"\n | \"degraded-no-thread\"\n | \"bridge-stale\"\n | null;\n session:\n | \"initializing\"\n | \"active\"\n | \"idle\"\n | \"waiting-approval\"\n | \"disconnected\"\n | null;\n idleSince: string | null;\n} {\n if (!instanceId) {\n return {\n presence: \"mcp-only\",\n lifecycle: null,\n session: null,\n idleSince: null,\n };\n }\n\n const bridgeState = parseJsonFile<BridgeStateFile>(\n join(stateDir, \"pids\", `bridge-${instanceId}.json`),\n );\n if (!bridgeState) {\n return {\n presence: \"mcp-only\",\n lifecycle: null,\n session: null,\n idleSince: null,\n };\n }\n\n if (!isProcessAlive(bridgeState.pid)) {\n return {\n presence: \"bridge-stale\",\n lifecycle: \"bridge-stale\",\n session: null,\n idleSince: null,\n };\n }\n\n const runtimeHeartbeat = bridgeState.runtimeStateDir\n ? parseJsonFile<RuntimeHeartbeat>(\n join(bridgeState.runtimeStateDir, \"heartbeat.json\"),\n )\n : null;\n const savedThread = bridgeState.runtimeStateDir\n ? parseJsonFile<RuntimeThreadState>(\n join(bridgeState.runtimeStateDir, \"thread.json\"),\n )\n : null;\n\n if (!runtimeHeartbeat || runtimeHeartbeat.initialized === false) {\n return {\n presence: \"bridge-live\",\n lifecycle: \"initializing\",\n session: \"initializing\",\n idleSince: null,\n };\n }\n\n const lifecycle =\n runtimeHeartbeat.threadId && runtimeHeartbeat.connected !== false\n ? \"ready\"\n : \"degraded-no-thread\";\n\n const session =\n runtimeHeartbeat.activeTurnId || runtimeHeartbeat.turnState === \"active\"\n ? \"active\"\n : runtimeHeartbeat.turnState === \"waiting-approval\"\n ? \"waiting-approval\"\n : runtimeHeartbeat.turnState === \"disconnected\" ||\n runtimeHeartbeat.connected === false\n ? \"disconnected\"\n : \"idle\";\n\n const idleSince =\n session === \"idle\" || session === \"waiting-approval\"\n ? (runtimeHeartbeat.idleSince ?? null)\n : null;\n\n return {\n presence: \"bridge-live\",\n lifecycle:\n lifecycle === \"degraded-no-thread\" && !savedThread?.threadId\n ? \"degraded-no-thread\"\n : lifecycle,\n session,\n idleSince,\n };\n}\n\nconst PRESENCE_PRIORITY: Record<TapWhoAgent[\"presence\"], number> = {\n \"bridge-live\": 3,\n \"mcp-only\": 2,\n \"bridge-stale\": 1,\n};\n\nconst SOURCE_PRIORITY: Record<HeartbeatSource, number> = {\n \"bridge-dispatch\": 2,\n \"mcp-direct\": 1,\n};\n\nfunction compareCandidates(a: TapPresenceCandidate, b: TapPresenceCandidate): number {\n const presenceDelta = PRESENCE_PRIORITY[b.presence] - PRESENCE_PRIORITY[a.presence];\n if (presenceDelta !== 0) return presenceDelta;\n\n const sourceDelta = SOURCE_PRIORITY[b.source] - SOURCE_PRIORITY[a.source];\n if (sourceDelta !== 0) return sourceDelta;\n\n if (a.alive !== b.alive) return a.alive ? -1 : 1;\n if (a.lastActivityMs !== b.lastActivityMs) {\n return b.lastActivityMs - a.lastActivityMs;\n }\n return a.id.localeCompare(b.id);\n}\n\nfunction dedupeByConnectHash(\n candidates: TapPresenceCandidate[],\n): TapPresenceCandidate[] {\n const deduped = new Map<string, TapPresenceCandidate>();\n for (const candidate of candidates) {\n const existing = deduped.get(candidate.connectHash);\n if (!existing || compareCandidates(candidate, existing) < 0) {\n deduped.set(candidate.connectHash, candidate);\n }\n }\n return [...deduped.values()].sort(compareCandidates);\n}\n\nexport function buildPresenceCandidates(\n store: Record<string, Heartbeat>,\n minutes?: number | null,\n): TapPresenceCandidate[] {\n const cutoff = minutes == null ? null : Date.now() - minutes * 60 * 1000;\n const stateDir = process.env.TAP_STATE_DIR;\n const agents: TapPresenceCandidate[] = [];\n\n for (const [agentId, heartbeat] of Object.entries(store)) {\n if (!heartbeat.id) continue;\n\n const lastActivityMs = getActivityMs(heartbeat);\n if (!Number.isFinite(lastActivityMs)) continue;\n if (cutoff != null && lastActivityMs < cutoff) continue;\n\n const displayName = heartbeat.agent ?? null;\n const instanceId =\n heartbeat.instanceId ?? resolveKnownInstanceId(agentId, displayName);\n const source = resolveHeartbeatSource(heartbeat);\n const connectHash =\n heartbeat.connectHash ?? buildHeartbeatConnectHash(instanceId, agentId);\n const bridge =\n stateDir != null\n ? resolveBridgeStatus(stateDir, instanceId)\n : {\n presence: \"mcp-only\" as const,\n lifecycle: null,\n session: null,\n idleSince: null,\n };\n const idleBasis =\n bridge.idleSince ??\n heartbeat.lastActivity ??\n heartbeat.timestamp ??\n null;\n\n agents.push({\n id: agentId,\n agent: formatAgentLabel(agentId, displayName),\n status: heartbeat.status ?? \"active\",\n lastHeartbeat: heartbeat.timestamp ?? \"\",\n lastActivity: heartbeat.lastActivity ?? heartbeat.timestamp ?? \"\",\n alive: heartbeat.status !== \"signing-off\",\n source,\n instanceId,\n connectHash,\n presence: bridge.presence,\n lifecycle: bridge.lifecycle,\n session: bridge.session,\n idleSeconds: parseIsoAgeSeconds(idleBasis),\n displayName,\n lastActivityMs,\n });\n }\n\n return agents.sort(compareCandidates);\n}\n\nexport function buildWhoAgents(\n store: Record<string, Heartbeat>,\n minutes: number,\n): TapWhoAgent[] {\n return dedupeByConnectHash(buildPresenceCandidates(store, minutes));\n}\n\nexport function resolvePreferredRecipient(\n store: Record<string, Heartbeat>,\n recipient: string,\n): TapRecipientResolution {\n const allCandidates = buildPresenceCandidates(store, null);\n const exactId = allCandidates.find((candidate) => candidate.id === recipient);\n if (exactId) {\n return {\n target: exactId.id,\n found: true,\n ambiguous: false,\n candidates: [exactId.id],\n warning: null,\n };\n }\n\n const deduped = dedupeByConnectHash(allCandidates);\n const nameMatches = deduped.filter(\n (candidate) => candidate.displayName === recipient,\n );\n if (nameMatches.length === 1) {\n return {\n target: nameMatches[0].id,\n found: true,\n ambiguous: false,\n candidates: [nameMatches[0].id],\n warning: null,\n };\n }\n\n if (nameMatches.length > 1) {\n const sorted = [...nameMatches].sort(compareCandidates);\n const winner = sorted[0];\n const candidateIds = sorted.map((candidate) => candidate.id);\n return {\n target: winner.id,\n found: true,\n ambiguous: true,\n candidates: candidateIds,\n warning:\n `⚠️ Routed \"${recipient}\" → \"${winner.id}\" ` +\n `(${winner.presence}/${winner.source}, preferred of ${candidateIds.join(\", \")}).`,\n };\n }\n\n return {\n target: recipient,\n found: false,\n ambiguous: false,\n candidates: [],\n warning: null,\n };\n}\n\n/**\n * Build a Map<heartbeatKey, PresenceLevel> for routing disambiguation.\n * Unlike buildWhoAgents, returns raw key→presence without label formatting.\n */\nexport function resolvePresenceMap(\n store: Record<string, Heartbeat>,\n): Map<string, \"bridge-live\" | \"bridge-stale\" | \"mcp-only\"> {\n const result = new Map<string, \"bridge-live\" | \"bridge-stale\" | \"mcp-only\">();\n\n for (const candidate of buildPresenceCandidates(store, null)) {\n result.set(candidate.id, candidate.presence);\n }\n\n return result;\n}\n","/**\n * tap-comms polling fallback: catches messages missed by fs.watch push.\n *\n * Runs periodically alongside the watcher. Scans inbox/reviews for files\n * that arrived after server start but were never pushed via channel\n * notification (e.g. due to fs.watch missing events on Windows).\n *\n * M93: Auto-poll fallback for push reliability.\n */\nimport { existsSync, readdirSync, statSync } from \"fs\";\nimport type { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport {\n SERVER_START,\n getSourceDir,\n debug,\n type ChannelSource,\n} from \"./tap-utils.js\";\nimport { processWatchFile } from \"./tap-watcher.js\";\n\n// ── Config ──────────────────────────────────────────────────────────────\n\n// Windows fs.watch is unreliable for cross-process file creation; poll faster.\nconst POLL_INTERVAL_MS = process.platform === \"win32\" ? 10_000 : 30_000;\nconst POLL_SOURCES: ChannelSource[] = [\"inbox\", \"reviews\"];\n\n// ── Stats ───────────────────────────────────────────────────────────────\n\nlet recoveredCount = 0;\nlet pollCycles = 0;\n\nexport function getPollStats() {\n return { pollCycles, recoveredCount };\n}\n\n// ── Poll ────────────────────────────────────────────────────────────────\n\nasync function pollOnce(mcp: Server): Promise<number> {\n let recovered = 0;\n\n for (const source of POLL_SOURCES) {\n const dir = getSourceDir(source);\n if (!dir || !existsSync(dir)) continue;\n\n let filenames: string[];\n try {\n filenames = readdirSync(dir).filter((f) => f.endsWith(\".md\"));\n } catch {\n continue;\n }\n\n for (const filename of filenames) {\n // Quick pre-filter: only check files newer than server start\n const filepath = `${dir}/${filename}`;\n try {\n const mtime = statSync(filepath).mtimeMs;\n if (mtime < SERVER_START - 5000) continue;\n } catch {\n continue;\n }\n\n // processWatchFile handles notifiedFiles/inFlightFiles dedup internally.\n // If already notified, it returns false immediately (cheap).\n try {\n const sent = await processWatchFile(dir, source, filename, mcp);\n if (sent) {\n recovered++;\n debug(`poll-fallback recovered [${source}]: ${filename}`);\n }\n } catch {\n // Non-critical — skip this file\n }\n }\n }\n\n return recovered;\n}\n\n// ── Start ───────────────────────────────────────────────────────────────\n\nexport function startPollFallback(mcp: Server) {\n debug(`poll-fallback: starting (interval=${POLL_INTERVAL_MS}ms)`);\n\n const timer = setInterval(async () => {\n pollCycles++;\n try {\n const count = await pollOnce(mcp);\n if (count > 0) {\n recoveredCount += count;\n debug(\n `poll-fallback: recovered ${count} missed message(s) (total: ${recoveredCount})`,\n );\n }\n } catch (error) {\n debug(\n `poll-fallback error: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }, POLL_INTERVAL_MS);\n timer.unref();\n\n // Run first poll after a short delay (let watcher settle first)\n setTimeout(async () => {\n pollCycles++;\n try {\n const count = await pollOnce(mcp);\n if (count > 0) {\n recoveredCount += count;\n debug(`poll-fallback (initial): recovered ${count} missed message(s)`);\n }\n } catch {\n // Non-critical\n }\n }, 5_000).unref();\n}\n"],"mappings":"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","names":["canonicalizeAgentId","instance","stateBootstrap","existsSync","mkdirSync","readFileSync","readdirSync","renameSync","statSync","unlinkSync","writeFileSync","join","existsSync","mkdirSync","readFileSync","writeFileSync","join","existsSync","readFileSync","readdirSync","statSync","join","existsSync","readFileSync","readdirSync","statSync","join","existsSync","readdirSync","statSync","join","readFileSync","loadHeartbeats","loadReceipts","existsSync","readFileSync","statSync","join","resolve","statSync","readFileSync","mcp","join","existsSync","existsSync","readFileSync","join","formatAgentLabel","isProcessAlive","readdirSync","renameSync","statSync","unlinkSync","existsSync","readdirSync","statSync","mcp","existsSync","readdirSync","statSync","join","existsSync","readFileSync","mkdirSync","writeFileSync","currentName","renameSync","unlinkSync","resolveRecipient","readdirSync","statSync","isNameConfirmed","demoteAgentName"]}
|
|
1
|
+
{"version":3,"sources":["../packages/tap-plugin/channels/tap-identity.ts","../src/routing/receive-transports.ts","../packages/tap-plugin/channels/tap-claims.ts","../packages/tap-plugin/channels/tap-utils.ts","../src/reviews/stale-meta.ts","../src/routing/tap-message-prompt.ts","../packages/tap-plugin/channels/tap-display.ts","../packages/tap-plugin/channels/tap-io.ts","../packages/tap-plugin/channels/tap-comms.ts","../packages/tap-plugin/channels/tap-capability-snapshot.ts","../packages/tap-plugin/channels/handlers/capabilities.ts","../packages/tap-plugin/channels/tap-route-lease.ts","../src/transport/experimental/codex-ipc-observe.ts","../src/transport/experimental/codex-ipc-endpoint.ts","../src/routing/codex-owner-discovery.ts","../packages/tap-plugin/channels/tap-peer-dm-rate-limit.ts","../packages/tap-plugin/channels/tap-db.ts","../packages/tap-plugin/channels/tap-watcher.ts","../packages/tap-plugin/channels/tap-presence.ts","../packages/tap-plugin/channels/tap-consent.ts","../src/transport/consent-ledger.ts","../src/transport/experimental/codex-ipc-control.ts","../src/transport/consent.ts","../packages/tap-plugin/channels/tap-drive-routing.ts","../src/codex-a2a/binding-registry.ts","../src/transport/trusted-device-lease.ts","../src/transport/slot-collision-audit.ts","../src/transport/instance-ownership-audit.ts","../packages/tap-plugin/channels/tap-instance-ownership.ts","../packages/tap-plugin/channels/tap-poll-fallback.ts"],"mappings":"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","names":["canonicalizeAgentId","existsSync","mkdirSync","readFileSync","readdirSync","renameSync","statSync","writeFileSync","randomUUID","basename","join","instance","stateBootstrap","releaseClaim","resolveClaimInstanceId","existsSync","mkdirSync","readFileSync","readdirSync","renameSync","statSync","unlinkSync","writeFileSync","createHash","join","randomUUID","existsSync","mkdirSync","readFileSync","writeFileSync","basename","join","mkdirSync","renameSync","writeFileSync","join","randomUUID","resolveHostId","resolve","randomUUID","normalizeString","resolve","store","existsSync","readFileSync","readdirSync","statSync","join","existsSync","readdirSync","statSync","join","readFileSync","loadHeartbeats","loadReceipts","existsSync","readFileSync","statSync","join","resolve","statSync","readFileSync","mcp","join","existsSync","existsSync","readFileSync","join","formatAgentLabel","isProcessAlive","createHash","randomUUID","existsSync","mkdirSync","readFileSync","readdirSync","rmSync","statSync","writeFileSync","tmpdir","join","resolve","randomUUID","fs","path","normalizeString","normalizeAddress","normalizeString","resolve","join","tmpdir","createHash","statSync","readFileSync","existsSync","readdirSync","rmSync","mkdirSync","randomUUID","writeFileSync","randomUUID","createHash","randomBytes","randomUUID","execFileSync","fs","path","normalizeString","normalizeMethods","normalizePathForComparison","resolveReceiptsDir","resolveSecretsDir","resolveConsentDirs","hashPairTokenBinding","readUtf8PreservingTimes","isExpired","resolveSecretPath","resolveWindowsAclPrincipals","applyWindowsPrivateAcl","hardenSecretStorePath","stampMintedAt","cleanupExpiredReceipts","mintPairToken","assertNoLegacyPairTokenInput","assertNoLegacyPairTokenInput","resolveConsentDirs","cleanupExpiredReceipts","normalizeString","isExpired","resolveSecretPath","readUtf8PreservingTimes","hashPairTokenBinding","normalizeAddress","asRecord","listRecordKeys","randomUUID","resolve","HEALTH_SEVERITY","normalizeString","mergeRuntimeHealth","fs","path","normalizeString","normalizeString","normalized","resolve","leaseFallback","fs","path","normalizeString","buildFrontmatter","buildBody","fs","path","normalizeString","isAuditEnabled","resolveAuditDir","shortId","dayStamp","buildAuditFilePath","buildFrontmatter","buildBody","existsSync","readFileSync","readdirSync","unlinkSync","join","basename","readdirSync","renameSync","statSync","existsSync","readdirSync","statSync","basename","mcp","existsSync","basename","readdirSync","statSync","join","existsSync","readFileSync","writeFileSync","normalizeStructuredTarget","mkdirSync","currentName","renameSync","resolveRecipient","randomUUID","readdirSync","statSync","isNameConfirmed","demoteAgentName","basename"]}
|