negotium 0.23.4 → 0.23.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/agent-helpers.js +29 -4
  2. package/dist/agent-helpers.js.map +9 -9
  3. package/dist/background-bash.js +2 -1
  4. package/dist/background-bash.js.map +3 -3
  5. package/dist/browser-runtime.js +2 -1
  6. package/dist/browser-runtime.js.map +3 -3
  7. package/dist/{chunk-ggdwn8d5.js → chunk-0hmrwxks.js} +3 -3
  8. package/dist/{chunk-ggdwn8d5.js.map → chunk-0hmrwxks.js.map} +2 -2
  9. package/dist/{chunk-qekt5bnd.js → chunk-ad7kxsaq.js} +4 -2
  10. package/dist/{chunk-qekt5bnd.js.map → chunk-ad7kxsaq.js.map} +1 -1
  11. package/dist/chunk-f7p0h1gs.js.map +1 -1
  12. package/dist/{chunk-jarf6nb2.js → chunk-mxxwx5mg.js} +3 -2
  13. package/dist/{chunk-jarf6nb2.js.map → chunk-mxxwx5mg.js.map} +3 -3
  14. package/dist/{chunk-vtd5kn4n.js → chunk-n6crwk1s.js} +26 -2
  15. package/dist/{chunk-vtd5kn4n.js.map → chunk-n6crwk1s.js.map} +7 -7
  16. package/dist/{chunk-pwafy9bb.js → chunk-ztcj9grz.js} +1 -1
  17. package/dist/hosted-agent.js +29 -5
  18. package/dist/hosted-agent.js.map +6 -6
  19. package/dist/main.js +368 -36
  20. package/dist/main.js.map +13 -12
  21. package/dist/mcp-catalog.js +3 -2
  22. package/dist/mcp-catalog.js.map +3 -3
  23. package/dist/mcp-factories.js +344 -32
  24. package/dist/mcp-factories.js.map +11 -10
  25. package/dist/media.js +2 -1
  26. package/dist/media.js.map +3 -3
  27. package/dist/prompts.js +2 -1
  28. package/dist/prompts.js.map +3 -3
  29. package/dist/query-runtime.js +2 -1
  30. package/dist/query-runtime.js.map +3 -3
  31. package/dist/registry.js +3 -3
  32. package/dist/rollout.js +2 -2
  33. package/dist/runtime/src/mcp/canonical-bridge-config.ts +1 -1
  34. package/dist/runtime/src/mcp/canonical-proxy-server.ts +39 -1
  35. package/dist/runtime/src/mcp/factories/index.ts +4 -0
  36. package/dist/runtime/src/mcp/factories/session-history.ts +388 -0
  37. package/dist/runtime/src/mcp/runtime-spec.ts +1 -0
  38. package/dist/runtime/src/mcp/session-history-server.ts +27 -0
  39. package/dist/runtime/src/platform/config.ts +2 -0
  40. package/dist/runtime/src/platform/mcp-catalog-policy.ts +5 -0
  41. package/dist/runtime/src/platform/mcp-config.ts +30 -0
  42. package/dist/runtime/src/storage/topic-archive.ts +4 -2
  43. package/dist/runtime/src/version.ts +1 -1
  44. package/dist/runtime-helpers.js +2 -1
  45. package/dist/runtime-helpers.js.map +3 -3
  46. package/dist/storage.js +5 -1
  47. package/dist/storage.js.map +3 -3
  48. package/dist/types/packages/core/src/mcp/canonical-bridge-config.d.ts +1 -1
  49. package/dist/types/packages/core/src/mcp/factories/index.d.ts +1 -0
  50. package/dist/types/packages/core/src/mcp/factories/session-history.d.ts +11 -0
  51. package/dist/types/packages/core/src/mcp/runtime-spec.d.ts +1 -1
  52. package/dist/types/packages/core/src/platform/config.d.ts +1 -0
  53. package/dist/types/packages/core/src/platform/mcp-catalog-policy.d.ts +4 -0
  54. package/dist/types/packages/core/src/storage/topic-archive.d.ts +5 -0
  55. package/dist/types/packages/core/src/version.d.ts +1 -1
  56. package/dist/vault.js +2 -1
  57. package/dist/vault.js.map +3 -3
  58. package/package.json +1 -1
  59. /package/dist/{chunk-pwafy9bb.js.map → chunk-ztcj9grz.js.map} +0 -0
@@ -8,17 +8,17 @@
8
8
  "import type { HostMcpServerSpec } from \"#runtime-gateway\";\n\nexport interface TokenUsage {\n /** Aggregate billable input across every model call made during this turn. */\n inputTokens: number;\n outputTokens: number;\n cacheCreationInputTokens?: number;\n cacheReadInputTokens?: number;\n /** Provider-reported query cost when available. */\n costUsd?: number;\n /** Tokens occupied by the latest model call, not aggregate turn spend. */\n contextTokens?: number;\n /** Provider-reported context window for the latest model call. */\n contextWindow?: number;\n}\n\n/** Agent identifier — one of the supported AI provider backends. */\nexport type AgentKind = \"maestro\" | \"claude\" | \"codex\";\n\nexport const SUPPORTED_AGENTS: readonly AgentKind[] = [\"maestro\", \"claude\", \"codex\"] as const;\n\nexport function isAgentKind(value: unknown): value is AgentKind {\n return typeof value === \"string\" && (SUPPORTED_AGENTS as readonly string[]).includes(value);\n}\n\n/**\n * Per-agent supported reasoning efforts. Single source of truth for both the\n * `EffortLevel` type and each registry's `validEfforts` runtime list — the\n * registries import these directly so adding a value in one place\n * propagates to validation, footer rendering, and zod enums.\n *\n * Claude SDK rejects 'minimal'; Codex SDK rejects 'max'. The two sets\n * intersect on low/medium/high/xhigh. Maestro (TS port) currently piggybacks\n * on the Anthropic provider, so its efforts mirror the Claude set; this can\n * narrow per-provider once Phase 5 lands.\n *\n * 'minimal' removed from codex: Codex API rejects it when default tools\n * (image_gen, web_search) are active, making agent sessions unusable.\n */\nexport const CLAUDE_EFFORT_VALUES = [\"low\", \"medium\", \"high\", \"xhigh\", \"max\"] as const;\nexport const CODEX_EFFORT_VALUES = [\"low\", \"medium\", \"high\", \"xhigh\", \"max\"] as const;\nexport const MAESTRO_EFFORT_VALUES = [\"low\", \"medium\", \"high\", \"xhigh\", \"max\"] as const;\n\nexport type EffortLevel =\n | (typeof CLAUDE_EFFORT_VALUES)[number]\n | (typeof CODEX_EFFORT_VALUES)[number]\n | (typeof MAESTRO_EFFORT_VALUES)[number];\n\n/**\n * Runtime iteration list (used by zod enums and any callers that need to\n * loop over every accepted value). Manually ordered for readability; the\n * `satisfies` check fails the build if an entry here isn't covered by the\n * per-agent unions above.\n */\nexport const EFFORT_VALUES = [\n \"low\",\n \"medium\",\n \"high\",\n \"xhigh\",\n \"max\",\n] as const satisfies readonly EffortLevel[];\n\n/**\n * Normalized events yielded by any agent provider (claudeProvider, codexProvider).\n * The handler/event-processor consumes these without caring which backend produced them.\n *\n * `user_message` is the lone \"into-the-log\" variant — no provider yields it.\n * The query handler writes it directly to the conversation log right before\n * `runAgent()` starts, so cross-agent rollout reconstruction can pair every\n * assistant turn with the user prompt that triggered it. Consumers that only\n * react to provider output (e.g. processAgentEvent) can safely ignore it.\n */\n/**\n * Wire-safe projection of one task, carried by the `tasks` UnifiedEvent.\n *\n * This is also the on-disk shape of Otium's shared task store, so claude,\n * codex, and maestro render the same live panel from the same source of truth.\n */\nexport interface TaskSnapshot {\n id: string;\n subject: string;\n status: \"pending\" | \"in_progress\" | \"completed\";\n /** Task ids this one is blocked by; omitted when empty. */\n blockedBy?: string[];\n /** Present-continuous label for spinners, when set. */\n activeForm?: string;\n /** Owner / agent name for multi-agent runs, when set. */\n owner?: string;\n}\n\n/** One topic-scoped decision and its incoming causal edges. */\nexport interface DecisionSnapshot {\n id: string;\n action: string;\n reasoning: string;\n agent: AgentKind;\n model?: string;\n status: \"proposed\" | \"accepted\" | \"executed\" | \"rejected\" | \"superseded\";\n /** Upstream decision ids. Each entry forms a directed upstream -> this edge. */\n causedBy?: string[];\n timestamp: number;\n}\n\nexport type UnifiedEvent =\n | {\n type: \"user_message\";\n content: string;\n synthetic?: \"compaction\";\n /** Total ordered user submissions represented by one preempting provider turn. */\n consecutiveBatchSize?: number;\n /** Zero-based position within the ordered preemption batch. */\n consecutiveBatchIndex?: number;\n }\n | { type: \"session\"; sessionId: string }\n | {\n type: \"tool_use\";\n name: string;\n input: Record<string, unknown>;\n /** Provider-assigned id so the client can match tool_use→tool_result pairs. */\n toolUseId?: string;\n }\n | { type: \"tool_progress\"; toolName: string; elapsed: number }\n | { type: \"tool_use_summary\"; summary: string }\n // Provider reasoning/thinking summary text (Codex `reasoning` items; Claude\n // extended-thinking). Surfaced so background runs (cron/archiver) show the\n // agent's thought process, not just tool calls.\n | { type: \"reasoning\"; content: string }\n // Full task-list snapshot (replace, not delta) from Otium's shared task\n // store. Provider-native task/todo stores are not authoritative.\n | { type: \"tasks\"; tasks: TaskSnapshot[] }\n | {\n type: \"tool_result\";\n toolUseId: string;\n content: string;\n /** True when the tool call failed; absent/false means success. */\n isError?: boolean;\n metadata?: {\n truncatedForModel: boolean;\n originalBytes: number;\n returnedBytes: number;\n omittedBytes?: number;\n outputPath?: string;\n };\n }\n | { type: \"text_delta\"; content: string }\n | { type: \"text\"; content: string }\n | { type: \"result\"; content: string; stopReason: string; usage?: TokenUsage }\n | { type: \"file\"; path: string; source: string; origin: \"tag\" | \"extension\" }\n | {\n type: \"error\";\n content: string;\n usage?: TokenUsage;\n /**\n * - `budget_exceeded`: the Claude spend budget (max USD) was hit.\n * - `context_budget_exceeded`: maestro-agent-sdk refused a request that is\n * still over the model's context budget after trimming (SDK >= 0.5.4).\n */\n code?: \"budget_exceeded\" | \"context_budget_exceeded\";\n }\n | { type: \"status\"; content: string };\n\nexport interface AgentInputAttachment {\n id: string;\n type: \"image\" | \"file\" | \"audio\";\n filename: string;\n mimeType: string;\n sizeBytes: number;\n path: string;\n}\n\n/** Worker-side runtime tools proxy user-facing state back to the canonical\n * hub topic identified here. */\nexport interface PeerRuntimeBridgeContext {\n hubCellId: string;\n hostTopicId: string;\n hostQueryId: string;\n canSpawnSubagents: boolean;\n}\n\n/**\n * The rooms the turn's human actor may reach on this node, asserted by the\n * hub that owns per-person membership for the `otium` surface.\n *\n * Node topic ids, valid on the node the turn was submitted to. `visible` is\n * every room the actor participates in (owner or member); `owned` is the\n * subset the actor owns. The assertion rides the signed per-turn MCP token,\n * so the agent can never widen it. With one, it is authoritative: reachable is\n * exactly the current room plus `visible`, owned exactly `owned` — the node\n * adds nothing of its own, not even subagent lineage. A turn without one\n * (older hub, or a turn no person started: cron, self-schedule, a subagent's\n * spawn/report/follow-up) is fail-closed to the current room plus the node's\n * own subagent lineage (direct parent, `grant_subagent_tell` targets, own\n * child workers).\n *\n * `issuedAt` (epoch ms) bounds how long the assertion is believed: this node\n * stamps it when the turn request arrives (the earlier of the hub's own\n * `issuedAt`, if sent, and the receipt time). Past\n * `actorTopicScopeMaxAgeMs()` — or with no `issuedAt` at all — the assertion\n * is stale and grants no cross-room reach (see `isActorTopicScopeFresh`).\n */\nexport interface ActorTopicScope {\n visibleNodeTopicIds: string[];\n ownedNodeTopicIds: string[];\n issuedAt?: number;\n}\n\n/**\n * Hub-issued authority for the `node/topic` branches of `session-comm` on\n * the `otium` surface, one per turn. `capability` is an opaque bearer\n * (`rsc1.<payload>.<hmac>`) only the hub can verify: it binds the person who\n * spoke, the origin room and this turn's request id, and the hub re-checks\n * the person's membership of the origin and target rooms on every call. The\n * node holds no key, so it can neither mint nor verify one; the only thing it\n * reads out of the payload is `e` (expiry), base64-decoded untrusted to order\n * grants when several requests fold into one turn. `hubUrl` is where the\n * node presents it (`/api/v1/session-comm/remote/*`). Absent — an older hub,\n * a hub with the feature off, or a turn no person started (cron,\n * self-schedule, subagent lineage) — remote session-comm stays fail-closed.\n */\nexport interface RemoteSessionGrant {\n hubUrl: string;\n capability: string;\n}\n\nexport interface AgentQueryOptions {\n agent: AgentKind;\n prompt: string;\n attachments?: AgentInputAttachment[];\n sessionId?: string | null;\n cwd: string;\n systemPrompt: string;\n /**\n * Trusted system-level instructions for this Maestro invocation only.\n * Maestro projects them onto the invocation-start user message without\n * persisting them in session history or compaction. Omitted for Claude/Codex.\n */\n ephemeralSystemPrompt?: string;\n userId?: string;\n /** Product actor identity when execution uses a canonical node principal. */\n actorUserId?: string;\n /** Hub-asserted rooms the product actor may reach; absent means fail-closed. */\n actorTopicScope?: ActorTopicScope;\n /** Hub-issued per-turn authority for remote (`node/topic`) session-comm. */\n remoteSession?: RemoteSessionGrant;\n /** Credential namespace when it differs from the execution principal. */\n vaultUserId?: string;\n session?: string;\n playwrightPort?: number;\n playwrightCapability?: string;\n bgBashPort?: number;\n sessionType?: \"dm\" | \"forum\" | \"ephemeral\" | \"manager\" | \"cron\";\n /** API topic id (REST/WS world). Carries per-query topic context for MCP servers. */\n topicId?: string;\n /** Direct parent topic id when this query runs inside a subagent room. */\n subagentParentTopicId?: string;\n /** API query id for the currently running turn. Used by runtime MCP tools. */\n queryId?: string;\n /** Optional wiki-memory topic id. Derived topics use their root origin here\n * while other per-topic MCP servers keep `topicId` bound to the live room. */\n wikiTopicId?: string;\n /** Whether self-config MCP may enqueue an automatic continue turn after set_* changes. */\n autoContinue?: boolean;\n /** Expose Otium-only visual panel tools for this turn. Default-deny. */\n visualTools?: boolean;\n /** Expose adapter-backed file-delivery tools for this turn. Default-deny. */\n fileDeliveryTools?: boolean;\n /** Validated host MCPs resolved from durable manager-room grants at execution time. */\n hostMcpServers?: Record<string, HostMcpServerSpec>;\n /**\n * Thread this turn answers inside, so the turn's runtime MCP can default\n * `thread_read` to it. Turn-scoped, unlike the session, which is per topic.\n */\n threadRootId?: string;\n abortController?: AbortController;\n model?: string;\n /** Provider-side hard budget when the selected SDK supports one. */\n maxBudgetUsd?: number;\n depth?: number;\n agents?: Record<\n string,\n {\n description: string;\n prompt: string;\n model?: string;\n tools?: string[];\n maxTurns?: number;\n effort?: EffortLevel | number;\n }\n >;\n effort?: EffortLevel;\n /**\n * Per-API-call `max_tokens` ceiling on the assistant's output. Wired\n * through to the underlying provider request body for every agent\n * (claude/codex/maestro). Omit to inherit each provider SDK's per-model\n * default — for maestro that's the v0.1.21+ `getNativeMaxOutputTokens`\n * catalog (deepseek-pro=64K, kimi-k3=64K, kimi-k2.7-code=32K).\n *\n * Pass an explicit number when a specific topic / surface needs a tighter\n * latency cap or a higher ceiling for long-form generation (legal\n * report writing, multi-K Write/Edit file bodies). Pre-0.1.21 maestro\n * builds silently clamped at 4096 and truncated outputs mid-string;\n * setting this field is now the supported way to lift that ceiling.\n */\n maxTokens?: number;\n /**\n * v0.1.22+: Claude-Code-style deferred tool catalog + `ToolSearch` built-in.\n *\n * Wired straight through to `maestro-agent-sdk`'s\n * `AgentQueryOptions.enableToolSearch`. When `true`, the maestro provider\n * registers every MCP tool as deferred — schemas stay off the wire until\n * the model promotes them via `ToolSearch(\"select:Name1,Name2\")` or\n * `ToolSearch(\"keyword\")`. Active set persists across resume.\n *\n * Otium's maestro provider supplies `true` when the caller leaves this\n * option unset, because most forum turns carry enough MCP surface for the\n * reminder-token savings to outweigh the first-use `ToolSearch` round-trip.\n * Callers can still pass `false` per call when a narrow surface or\n * latency-sensitive workflow is better served by eager MCP schemas.\n *\n * No-op for claude / codex agents — they have their own deferred-tool\n * machinery owned by their respective SDKs.\n */\n enableToolSearch?: boolean;\n /**\n * Bounded tool results with the full output kept on disk.\n *\n * Wired to `maestro-agent-sdk`'s `AgentQueryOptions.toolResultTruncation`.\n * The SDK caps a string tool result, writes the untruncated bytes to a file,\n * and splices an opaque `maestro://tool-output/<id>` reference into the text\n * that the `ReadToolOutput` tool can page back through.\n *\n * The maestro provider enables it by default. Left unset, every tool result\n * — a whole-file `Read`, a wide `Grep`, a `WebFetch` of a large page —\n * entered the context at full size, and the `\"ReadToolOutput\"` entry in the\n * provider's builtin list was dead, because the SDK only registers that tool\n * when truncation is on with `saveFullOutput`.\n *\n * Pass an explicit object to tune the budget, or `{ enabled: false }` for a\n * call whose tool results must arrive whole.\n *\n * No-op for claude / codex agents — their SDKs do their own truncation.\n */\n toolResultTruncation?: {\n enabled?: boolean;\n maxBytes?: number;\n headBytes?: number;\n tailBytes?: number;\n saveFullOutput?: boolean;\n outputDir?: string;\n retentionDays?: number;\n ignoreTools?: string[];\n };\n /**\n * Claude-Code-compatible exact tool denylist. Maestro v0.1.42+ hides these\n * tools from provider schemas / ToolSearch and blocks dispatch if a stale\n * call still arrives. Claude maps this to its SDK option. Codex does not\n * support this name-based list; its provider-native multi-agent tool family\n * is disabled separately through the Codex feature config.\n */\n disallowedTools?: readonly string[];\n /**\n * Hard provider tool policy for auxiliary model calls.\n *\n * `\"none\"` removes MCP and provider-native tools before the request is\n * dispatched. `\"compaction-log\"` keeps provider-native tools disabled and\n * exposes only the host-scoped immutable log reader. Use these for untrusted\n * transcript transforms; reacting to tool events after dispatch is not a\n * security boundary.\n */\n toolPolicy?: \"none\" | \"compaction-log\";\n mcpEnabled?: string[] | null;\n peerBridge?: PeerRuntimeBridgeContext;\n mcpExtra?: Record<string, unknown>;\n /**\n * true for silent fork runs generating ask_session replies — restricts session-comm\n * outbound tools (ask/tell/abort) so the forked session can only produce text\n */\n silent?: boolean;\n}\n\n/** State file written to data/users/{userId}/active-queries/{topicId}.json while a query is running. */\nexport interface QueryState {\n topicId?: string;\n topicName?: string;\n task?: string; // first 100 chars of prompt, newlines normalized\n since: string; // ISO timestamp\n}\n",
9
9
  "import { resolve } from \"node:path\";\nimport { type AgentKind, isAgentKind } from \"#types\";\n\nexport type RuntimeEnvironment = Readonly<Record<string, string | undefined>>;\n\nexport function readEnvText(env: RuntimeEnvironment, key: string): string | undefined {\n const value = env[key]?.trim();\n return value || undefined;\n}\n\n/**\n * Node-wide default agent (FALLBACK_AGENT env, legacy DEFAULT_AGENT, else\n * \"claude\"). Lives in this side-effect-free leaf module — not #platform/config\n * — so storage layers that only need this one value (e.g. the forum/api-topics\n * repositories, re-exported through the public storage facade) don't drag in\n * config.ts's eager `mkdirSync` of every node data directory just by\n * importing it.\n */\nexport function resolveFallbackAgent(env: RuntimeEnvironment = process.env): AgentKind {\n const value = readEnvText(env, \"FALLBACK_AGENT\") ?? readEnvText(env, \"DEFAULT_AGENT\");\n return isAgentKind(value) ? value : \"claude\";\n}\n\nexport function parseRuntimePort(value: string | undefined, fallback: number): number {\n if (!value) return fallback;\n const port = Number.parseInt(value, 10);\n return Number.isInteger(port) && port > 0 && port <= 65_535 ? port : fallback;\n}\n\nexport function resolveRuntimeStateDir(options: {\n env: RuntimeEnvironment;\n envKey: string;\n fallbackRoot: string;\n fallbackName: string;\n}): string {\n const configured = readEnvText(options.env, options.envKey);\n return configured ? resolve(configured) : resolve(options.fallbackRoot, options.fallbackName);\n}\n\nexport function safeRuntimePathSegment(value: string, fallback: string, maxLength = 160): string {\n const cleaned = value\n .trim()\n .replace(/[^A-Za-z0-9._-]/g, \"_\")\n .replace(/^_+|_+$/g, \"\")\n .slice(0, maxLength);\n return cleaned || fallback;\n}\n",
10
10
  "import pino from \"pino\";\n\nexport interface StdioLoggerOptions {\n level?: string;\n development?: boolean;\n}\n\n/**\n * Always write logs to stderr (fd 2), never stdout.\n *\n * MCP servers under `src/mcp/**` run as stdio subprocesses where stdout is the\n * JSON-RPC transport channel. A single log line on stdout corrupts the next\n * message and the MCP client closes the transport (\"Transport closed\"). The\n * main bot process is also fine with stderr — pm2 captures both streams.\n *\n * In dev mode pino spawns a `pino-pretty` worker that owns its own sink, so we\n * pass `destination: 2` through transport.options. In prod (no transport) the\n * second arg to `pino()` sets the destination directly.\n */\nexport function createStdioLogger(options: StdioLoggerOptions = {}) {\n const development = options.development ?? process.env.NODE_ENV === \"development\";\n return pino(\n {\n level: options.level ?? process.env.LOG_LEVEL ?? \"info\",\n transport: development\n ? {\n target: \"pino-pretty\",\n options: {\n colorize: true,\n translateTime: \"SYS:yyyy-mm-dd HH:MM:ss\",\n destination: 2,\n },\n }\n : undefined,\n },\n pino.destination(2),\n );\n}\n\nexport type StdioLogger = ReturnType<typeof createStdioLogger>;\n\nexport const logger = createStdioLogger();\n",
11
- "import { execFileSync } from \"node:child_process\";\nimport { randomBytes } from \"node:crypto\";\nimport {\n accessSync,\n chmodSync,\n constants,\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { homedir } from \"node:os\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport {\n parseRuntimePort,\n readEnvText,\n resolveFallbackAgent,\n safeRuntimePathSegment,\n} from \"#platform/config-helpers\";\nimport { logger } from \"#platform/logger\";\nimport { type AgentKind, EFFORT_VALUES, type EffortLevel } from \"#types\";\n\nexport function envText(envKey: string): string | undefined {\n return readEnvText(process.env, envKey);\n}\n\nconst HOME = homedir();\n\nfunction resolveStateDir(): string {\n const configured = envText(\"NEGOTIUM_STATE_DIR\");\n if (process.env.NODE_ENV === \"test\" && !configured) {\n throw new Error(\n \"NEGOTIUM_STATE_DIR must be set before importing #platform/config in test processes\",\n );\n }\n return configured ? resolve(configured) : resolve(HOME, \".negotium\");\n}\n\n// new URL(\"../..\", import.meta.url) causes webpack to treat \"../..\" as a module import.\n// Split into fileURLToPath → dirname → resolve to avoid that.\nfunction resolveProjectRoot(): string {\n const moduleDir = dirname(fileURLToPath(import.meta.url));\n const packagedRuntime = resolve(moduleDir, \"runtime\");\n if (existsSync(resolve(packagedRuntime, \"src\"))) return packagedRuntime;\n return resolve(moduleDir, \"../..\");\n}\n\nexport const PROJECT_ROOT = resolveProjectRoot();\n\n/** Resolve a dependency executable from either a package-local or hoisted install. */\n/**\n * Names a package-manager shim can carry in `node_modules/.bin`.\n *\n * POSIX gets one extension-less executable. Windows has no execute bit, so the\n * installer writes an extension instead — bun produces `<name>.exe` plus a\n * `<name>.bunx` stub, npm a `.cmd`/`.ps1` pair — and probing only the bare name\n * finds nothing, leaving the resolved path pointing at a file that does not\n * exist.\n */\nfunction dependencyBinNames(name: string): string[] {\n if (process.platform !== \"win32\") return [name];\n return [name, `${name}.exe`, `${name}.cmd`, `${name}.bat`, `${name}.bunx`];\n}\n\nfunction resolveDependencyBin(name: string): string {\n let dir = PROJECT_ROOT;\n while (true) {\n const binDir = resolve(dir, \"node_modules\", \".bin\");\n for (const candidate of dependencyBinNames(name)) {\n const path = resolve(binDir, candidate);\n if (existsSync(path)) return path;\n }\n const parent = dirname(dir);\n // Exhausted: hand back the canonical spelling so the failure names the\n // path that was expected.\n if (parent === dir) return resolve(binDir, name);\n dir = parent;\n }\n}\n\n// Each machine is one negotium node; all node state lives in one dotdir.\n// NEGOTIUM_STATE_DIR overrides (useful for tests and multi-node-on-one-box).\nexport const STATE_DIR = resolveStateDir();\n\nfunction resolveLocalStateDir(envKey: string, stateName: string): string {\n const envValue = envText(envKey);\n if (envValue) return resolve(envValue);\n return resolve(STATE_DIR, stateName);\n}\n\nfunction parsePortEnv(envValue: string | undefined, fallback: number): number {\n return parseRuntimePort(envValue, fallback);\n}\n\nexport const WORKSPACE_DIR = resolveLocalStateDir(\"NEGOTIUM_WORKSPACE_DIR\", \"workspace\");\nexport const TOPIC_WORKSPACE_DIR = resolve(WORKSPACE_DIR, \"topics\");\nexport const SHARED_WIKI_DIR = resolve(WORKSPACE_DIR, \"wiki\");\nexport const CRON_WORKSPACE_DIR = resolve(WORKSPACE_DIR, \"cron\");\nexport const BROWSER_DIR = resolveLocalStateDir(\"NEGOTIUM_BROWSER_DIR\", \"browser\");\nexport const BROWSER_PROFILES_DIR = resolve(BROWSER_DIR, \"profiles\");\nexport const BINARIES_DIR = resolve(STATE_DIR, \"binaries\");\nexport const SECRETS_DIR = resolve(STATE_DIR, \"secrets\");\n// Legacy names remain public, but their durable contents now live under data.\nexport const DM_WORKSPACE_DIR = resolve(STATE_DIR, \"data\", \"dm\");\nexport const SESSION_WORKSPACE_DIR = resolve(STATE_DIR, \"data\", \"sessions\");\n// The Claude Agent SDK ships a platform-matched Claude Code binary. Keep that\n// SDK/CLI pair together by default; only use an external executable when an\n// operator explicitly opts in. This avoids silently pairing an older SDK with\n// a newer globally installed Claude Code release.\nconst CLAUDE_EXECUTABLE_ENV = envText(\"NEGOTIUM_CLAUDE_EXECUTABLE\");\nexport const CLAUDE_EXECUTABLE = CLAUDE_EXECUTABLE_ENV ? resolve(CLAUDE_EXECUTABLE_ENV) : undefined;\n\n// Fallback output language for model-generated prose (topic/channel/manager\n// replies and the archiver's summaries, briefs, articles, completion reply).\n// Defaults to English; set `NEGOTIUM_LANG` to the user's mother tongue (e.g.\n// `Korean`, `ko`). The assistant still mirrors whatever language the user\n// writes in; `NEGOTIUM_MEMORY_LANG` can narrow just the archiver. Fixed system\n// chrome / degraded-path strings emitted by code stay English (can't translate\n// an arbitrary value at runtime).\nexport const DEFAULT_OUTPUT_LANGUAGE = \"English\";\n\nexport function resolveOutputLanguage(): string {\n const raw = envText(\"NEGOTIUM_LANG\")?.trim();\n return raw && raw.length > 0 ? raw : DEFAULT_OUTPUT_LANGUAGE;\n}\n\n/**\n * Suffix the managed Rust helpers carry on this platform.\n *\n * The installers write the binary under its plain name, which on Windows is\n * not executable — the release asset is `browser-rs.exe` and the resolver has\n * to look for exactly that. Empty everywhere else, so POSIX paths are\n * unchanged.\n */\nexport const BINARY_EXTENSION = process.platform === \"win32\" ? \".exe\" : \"\";\n\n/** Browser.rs release tested with this Negotium version. */\nexport const BROWSER_RS_VERSION = \"v0.7.7\";\n/** Require the authenticated listener and the current Browser.rs tool contract. */\nexport const BROWSER_RS_MIN_SECURE_VERSION = \"0.2.1\";\n\nfunction versionAtLeast(actualVersion: string, minimumVersion: string): boolean {\n const actual = actualVersion.split(\".\").map(Number);\n const minimum = minimumVersion.split(\".\").map(Number);\n if (actual.some(Number.isNaN) || minimum.some(Number.isNaN)) return false;\n for (let index = 0; index < minimum.length; index += 1) {\n if ((actual[index] ?? 0) > (minimum[index] ?? 0)) return true;\n if ((actual[index] ?? 0) < (minimum[index] ?? 0)) return false;\n }\n return true;\n}\n\n/**\n * Ceiling for the `--version` probe, not a latency expectation.\n *\n * The probe exists so a wedged binary cannot hang startup; a healthy one\n * answers in milliseconds. At 2s it also failed whenever the machine was merely\n * busy — process startup under a loaded test suite regularly exceeds that —\n * which turned a correctness check into a load measurement and made\n * `resolveBrowserRsBin` intermittently report a perfectly good binary as\n * unusable. Generous enough that only a genuinely stuck process trips it.\n */\nconst BROWSER_RS_VERSION_PROBE_TIMEOUT_MS = 15_000;\n\nfunction browserRsMeetsMinimumVersion(candidate: string): boolean {\n try {\n const output = execFileSync(candidate, [\"--version\"], {\n encoding: \"utf8\",\n timeout: BROWSER_RS_VERSION_PROBE_TIMEOUT_MS,\n stdio: [\"ignore\", \"pipe\", \"ignore\"],\n // This module is imported by every CLI invocation, so on Windows the\n // probe blinked a console window each time `negotium` was run. Ignored\n // on POSIX.\n windowsHide: true,\n }).trim();\n const match = output.match(/^browser-rs (\\d+)\\.(\\d+)\\.(\\d+)$/);\n if (!match) return false;\n return versionAtLeast(match.slice(1).join(\".\"), BROWSER_RS_MIN_SECURE_VERSION);\n } catch {\n return false;\n }\n}\n\n/**\n * Resolve the preferred Browser.rs engine without consulting PATH. The\n * versioned private location keeps different Negotium releases reproducible\n * and avoids changing a user's global browser-rs installation.\n */\nexport function resolveBrowserRsBin(envValue?: string): string | undefined {\n const override = envValue?.trim();\n if (\n !override &&\n !versionAtLeast(BROWSER_RS_VERSION.replace(/^v/, \"\"), BROWSER_RS_MIN_SECURE_VERSION)\n ) {\n return undefined;\n }\n const candidate = override\n ? resolve(override)\n : resolve(BINARIES_DIR, \"browser-rs\", BROWSER_RS_VERSION, `browser-rs${BINARY_EXTENSION}`);\n try {\n accessSync(candidate, constants.X_OK);\n return browserRsMeetsMinimumVersion(candidate) ? candidate : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Backend that stores documents published by `publish_html` and serves them\n * at `<base>/snippets/<id>`. Unset means the deployment has nowhere to\n * publish, and the publish tools are omitted from the catalog rather than\n * offering a link that cannot be minted.\n */\nexport const SNIPPETS_API_URL = (\n envText(\"NEGOTIUM_SNIPPETS_API_URL\") ??\n envText(\"SNIPPETS_API_URL\") ??\n \"\"\n).replace(/\\/+$/, \"\");\n\nexport const BROWSER_RS_BIN = resolveBrowserRsBin(envText(\"NEGOTIUM_BROWSER_RS_BIN\"));\n\n/** bash-rs release tested with this Negotium version — see apps/negotium/install-bash-rs.mjs. */\nexport const BASH_RS_VERSION = \"v0.1.10\";\n\n/**\n * Resolve the bash-rs binary the same way `resolveBrowserRsBin` resolves\n * Browser.rs: a versioned private location, no PATH lookup, `undefined`\n * (rather than throwing) when it's missing. There is no substitute: the manager\n * throws when a turn tries to prepare background-bash without a binary (see\n * `background-bash/manager.ts`), the turn runner catches that and continues\n * with a reminder that the tools are gone, so background-bash is simply\n * unavailable on a platform without a prebuilt binary.\n */\nexport function resolveBashRsBin(envValue?: string): string | undefined {\n const override = envValue?.trim();\n const candidate = override\n ? resolve(override)\n : resolve(BINARIES_DIR, \"bash-rs\", BASH_RS_VERSION, `bash-rs${BINARY_EXTENSION}`);\n try {\n accessSync(candidate, constants.X_OK);\n return candidate;\n } catch {\n return undefined;\n }\n}\n\nexport const BASH_RS_BIN = resolveBashRsBin(envText(\"NEGOTIUM_BASH_RS_BIN\"));\n\n// Managed Browser.rs terminates MCP transports and security policy itself.\nexport function resolveBrowserMcpBin(envValue?: string): string {\n const override = envValue?.trim();\n if (override) return resolve(override);\n return (\n BROWSER_RS_BIN ??\n resolve(BINARIES_DIR, \"browser-rs\", BROWSER_RS_VERSION, `browser-rs${BINARY_EXTENSION}`)\n );\n}\n\nexport const PLAYWRIGHT_MCP_BIN = resolveBrowserMcpBin(envText(\"NEGOTIUM_BROWSER_MCP_BIN\"));\n\n// --- Browser egress proxy ---\n//\n// On a datacenter host (AWS) the browser's egress IP is a known cloud range,\n// so anti-bot services (Cloudflare, DataDome, reCAPTCHA) challenge or block it\n// far more than a residential IP would. Routing the automation browser through\n// a residential/ISP proxy moves the egress IP out of the datacenter range.\n//\n// Operators set BROWSER_PROXY_URL, e.g. http://user:pass@proxy.host:8080 or\n// socks5://proxy.host:1080. Credentials in the URL are split out because\n// Playwright takes them as separate fields. BROWSER_PROXY_BYPASS is an optional\n// comma-separated no-proxy list (e.g. \"localhost,127.0.0.1,*.internal\").\n//\n// NOTE: Chromium does not support authentication for SOCKS proxies — put\n// credentials only on http/https proxy URLs.\nexport type BrowserProxyConfig = {\n server: string;\n username?: string;\n password?: string;\n bypass?: string;\n};\n\nexport function resolveBrowserProxy(): BrowserProxyConfig | null {\n const raw = envText(\"BROWSER_PROXY_URL\");\n if (!raw) return null;\n let url: URL;\n try {\n url = new URL(raw);\n } catch {\n logger.warn({ raw }, \"Ignoring malformed BROWSER_PROXY_URL\");\n return null;\n }\n // Playwright wants the server without embedded credentials.\n const server = `${url.protocol}//${url.host}`;\n const proxy: BrowserProxyConfig = { server };\n if (url.username) proxy.username = decodeURIComponent(url.username);\n if (url.password) proxy.password = decodeURIComponent(url.password);\n const bypass = envText(\"BROWSER_PROXY_BYPASS\");\n if (bypass) proxy.bypass = bypass;\n return proxy;\n}\n\n// --- Node/tsx runtime for the `codex` agent's MCP servers ---\n//\n// codex 0.135's rmcp stdio MCP client cannot reliably complete the initialize\n// handshake with servers spawned via `bun` (the JSON-RPC initialize is\n// dropped/raced and no tools ever reach the model). Pure-node servers connect\n// reliably, so codex turns launch the SAME .ts servers via node + tsx instead\n// of `bun run`. claude/maestro keep using `bun run` (fast, native, unaffected).\n//\n// tsx transpiles .ts on the fly and resolves the `@/*` tsconfig path aliases,\n// but only when it can find the tsconfig — and MCP servers run with cwd set to\n// the user's workspace dir, not PROJECT_ROOT — so we pass TSX_TSCONFIG_PATH\n// explicitly via env. Requires package.json `\"type\": \"module\"` so the servers'\n// top-level `await` loads as ESM under node.\nexport const TSX_BIN = resolveDependencyBin(\"tsx\");\n/**\n * In-process tsx loader used by Node MCP entrypoints (avoids the tsx CLI child\n * process).\n *\n * `node --import` takes a module specifier, not a filesystem path. A POSIX\n * absolute path happens to be a valid one; a Windows `C:\\…` is not — Node reads\n * the drive letter as a URL scheme and refuses it with\n * ERR_UNSUPPORTED_ESM_URL_SCHEME, which took out every tsx-hosted MCP server\n * (the Codex tool surface) at spawn. Hand it a `file://` URL there, and leave\n * the POSIX value exactly as it was.\n */\nconst TSX_LOADER_PATH = createRequire(import.meta.url).resolve(\"tsx\");\nexport const TSX_LOADER =\n process.platform === \"win32\" ? pathToFileURL(TSX_LOADER_PATH).href : TSX_LOADER_PATH;\nexport const TSCONFIG_PATH = resolve(PROJECT_ROOT, \"tsconfig.json\");\n\nexport const SESSION_COMM_SERVER = resolve(PROJECT_ROOT, \"src/mcp/session-comm/server.ts\");\n\nexport const TASK_SERVER = resolve(PROJECT_ROOT, \"src/mcp/task-server.ts\");\nexport const DECISION_SERVER = resolve(PROJECT_ROOT, \"src/mcp/decision-server.ts\");\nexport const CANONICAL_MCP_PROXY_SERVER = resolve(\n PROJECT_ROOT,\n \"src/mcp/canonical-proxy-server.ts\",\n);\n\nexport const WIKI_SERVER = resolve(PROJECT_ROOT, \"src/mcp/wiki-server.ts\");\n\nexport const TOKEN_STATS_SERVER = resolve(PROJECT_ROOT, \"src/mcp/token-stats-server.ts\");\n\nexport const COMPACTION_LOG_SERVER = resolve(PROJECT_ROOT, \"src/mcp/compaction-log-server.ts\");\n\nexport const SYSTEM_HEALTH_SERVER = resolve(PROJECT_ROOT, \"src/mcp/system-health-server.ts\");\n\nexport const AGENT_HEALTH_SERVER = resolve(PROJECT_ROOT, \"src/mcp/agent-health-server.ts\");\n\nexport const VAULT_SERVER = resolve(PROJECT_ROOT, \"src/mcp/vault-server.ts\");\n\nexport const BG_BASH_BASE_PORT = parsePortEnv(process.env.BG_BASH_BASE_PORT, 9700);\nexport const BG_BASH_MAX_PORT = parsePortEnv(process.env.BG_BASH_MAX_PORT, 9799);\n\nfunction safeWorkspaceSegment(value: string, fallback: string): string {\n return safeRuntimePathSegment(value, fallback);\n}\n\n/** Resolve the shared filesystem workspace for an API topic. */\nexport function resolveTopicWorkspaceDir(topicId: string): string {\n return join(TOPIC_WORKSPACE_DIR, safeWorkspaceSegment(topicId, \"topic\"));\n}\n\nexport function isProductionEnv(): boolean {\n return process.env.NODE_ENV === \"production\";\n}\n\nfunction loadOrCreateLocalSecret(\n envKey: string,\n filename: string,\n options: { persistEnvValue?: boolean } = {},\n): string {\n const envValue = envText(envKey);\n const secretFile = resolve(SECRETS_DIR, filename);\n mkdirSync(dirname(secretFile), { recursive: true });\n if (envValue) {\n if (options.persistEnvValue) {\n writeFileSync(secretFile, `${envValue}\\n`, { mode: 0o600 });\n chmodSync(secretFile, 0o600);\n }\n return envValue;\n }\n\n if (existsSync(secretFile)) {\n const stored = readFileSync(secretFile, \"utf-8\").trim();\n if (stored) {\n chmodSync(secretFile, 0o600);\n return stored;\n }\n }\n\n const secret = randomBytes(32).toString(\"base64url\");\n try {\n writeFileSync(secretFile, `${secret}\\n`, { mode: 0o600, flag: \"wx\" });\n return secret;\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== \"EEXIST\") throw error;\n const stored = readFileSync(secretFile, \"utf-8\").trim();\n if (!stored) throw new Error(`Secret file exists but is empty: ${secretFile}`);\n chmodSync(secretFile, 0o600);\n return stored;\n }\n}\n\nexport const RUNTIME_MCP_SECRET = loadOrCreateLocalSecret(\n \"RUNTIME_MCP_SECRET\",\n \"runtime-mcp-secret\",\n);\n/** Local bearer token for the loopback node-control API. */\nexport const NODE_CONTROL_TOKEN = loadOrCreateLocalSecret(\n \"NEGOTIUM_CONTROL_TOKEN\",\n \"node-control-token\",\n);\n/**\n * Stable identity of this node's store, minted once and kept across restarts.\n *\n * Deliberately not a secret: it is published in the gateway health response so a\n * host can tell \"the node I recorded a mapping against\" apart from \"whatever is\n * answering on that port today\". Without it, pointing a host at a different node\n * makes every existing mapping look like a topic whose owner withdrew it, and the\n * same topics come back as duplicate rooms. It shares the secrets directory only\n * because that is already where per-install state that must survive restarts\n * lives; the stricter file mode costs nothing.\n */\nexport const NODE_ID = loadOrCreateLocalSecret(\"NEGOTIUM_NODE_ID\", \"node-id\");\nexport const VAULT_MASTER_KEY = loadOrCreateLocalSecret(\n \"NEGOTIUM_VAULT_MASTER_KEY\",\n \"vault-master-key\",\n { persistEnvValue: true },\n);\n// Agent/tool subprocesses inherit process.env. Keep the loaded key in this\n// process only so `env`/`ps` inside an agent workspace cannot reveal it.\ndelete process.env.NEGOTIUM_VAULT_MASTER_KEY;\n\n/** The node's single open port: runtime MCP endpoint + node API. */\nexport const NEGOTIUM_PORT = parseInt(process.env.NEGOTIUM_PORT || \"7777\", 10);\nexport const hostname = process.env.HOSTNAME || \"127.0.0.1\";\n\n// Persistent state (survives restarts, long-lived)\nexport const DATA_DIR = resolveLocalStateDir(\"NEGOTIUM_DATA_DIR\", \"data\");\nexport const LOG_DIR = resolveLocalStateDir(\"NEGOTIUM_LOG_DIR\", \"logs\");\nexport const UPLOADS_DIR = resolve(DATA_DIR, \"uploads\");\nexport const VAULT_DIR = resolve(DATA_DIR, \"vault\");\n// SESSIONS_DB_PATH env override lets tests point the DB singleton at a temp file.\nexport const SESSIONS_DB = process.env.SESSIONS_DB_PATH\n ? resolve(process.env.SESSIONS_DB_PATH)\n : resolve(DATA_DIR, \"sessions.db\");\nexport const DEBUG_FILE = resolve(DATA_DIR, \"debug-users.json\");\nexport const USERS_LOG_DIR = resolve(DATA_DIR, \"users\");\n\n// Runtime IPC queues (transient, safe to clear on restart)\n/** @deprecated Use the runtime layout name; NEGOTIUM_RUN_DIR remains a compatibility override. */\nexport const RUN_DIR = resolveLocalStateDir(\"NEGOTIUM_RUN_DIR\", \"runtime\");\nexport const RUNTIME_DIR = RUN_DIR;\nexport const PROGRESS_DIR = resolve(RUN_DIR, \"progress\");\nexport const DM_CMD_DIR = resolve(RUN_DIR, \"dm-commands\");\nexport const DM_RESP_DIR = resolve(RUN_DIR, \"dm-responses\");\nexport const SESSION_INBOX_DIR = resolve(RUN_DIR, \"session-inbox\");\nexport const SESSION_ASKS_DIR = resolve(RUN_DIR, \"session-asks\");\n/**\n * Passed to `bash-rs` as `BASHRS_SPILL_ROOT`. Each job gets a subdirectory\n * here (`{bash_id}/meta.json`, `result.json`, `stdout.log`, `stderr.log`) —\n * see bash-rs-mcp's `journal.rs`. `runtime/bashrs-completions.ts` watches\n * this directory and turns `result.json` into a session-inbox `tell`. The\n * retired TypeScript server used to write one directly instead.\n */\nexport const BASHRS_SPILL_ROOT = resolve(RUN_DIR, \"bashrs\");\nexport const PLAYWRIGHT_BASE_PORT = parsePortEnv(process.env.PLAYWRIGHT_BASE_PORT, 9100);\nexport const PLAYWRIGHT_MAX_PORT = parsePortEnv(process.env.PLAYWRIGHT_MAX_PORT, 9499);\nexport const PLAYWRIGHT_PORTS_DIR = resolve(RUN_DIR, \"playwright-ports\");\nmkdirSync(STATE_DIR, { recursive: true });\nmkdirSync(DATA_DIR, { recursive: true });\nmkdirSync(UPLOADS_DIR, { recursive: true });\nmkdirSync(VAULT_DIR, { recursive: true, mode: 0o700 });\nmkdirSync(LOG_DIR, { recursive: true });\nmkdirSync(PROGRESS_DIR, { recursive: true });\nmkdirSync(DM_CMD_DIR, { recursive: true });\nmkdirSync(DM_RESP_DIR, { recursive: true });\nmkdirSync(SESSION_INBOX_DIR, { recursive: true });\nmkdirSync(SESSION_ASKS_DIR, { recursive: true });\nmkdirSync(PLAYWRIGHT_PORTS_DIR, { recursive: true });\nmkdirSync(WORKSPACE_DIR, { recursive: true });\nmkdirSync(TOPIC_WORKSPACE_DIR, { recursive: true });\nmkdirSync(SHARED_WIKI_DIR, { recursive: true });\nmkdirSync(CRON_WORKSPACE_DIR, { recursive: true });\nmkdirSync(DM_WORKSPACE_DIR, { recursive: true });\nmkdirSync(SESSION_WORKSPACE_DIR, { recursive: true });\nmkdirSync(BROWSER_DIR, { recursive: true });\nmkdirSync(BROWSER_PROFILES_DIR, { recursive: true });\nmkdirSync(BINARIES_DIR, { recursive: true });\nmkdirSync(SECRETS_DIR, { recursive: true, mode: 0o700 });\n\n/** Stale threshold for active-query state files (crash recovery) */\nexport const ACTIVE_QUERY_STALE_MS = 10 * 60 * 1000; // 10 minutes\n\nexport const AGENTS_PROMPTS_DIR = resolve(PROJECT_ROOT, \"src/prompts/agents\");\nexport const RESOURCES_DIR = resolve(PROJECT_ROOT, \"src/resources\");\n\n/** Returns process.env without CLAUDECODE, to prevent nested claude-code detection in subprocesses. */\nexport function getCleanEnv(): NodeJS.ProcessEnv {\n const env = { ...process.env };\n delete env.CLAUDECODE;\n return env;\n}\n\n/**\n * How an absolute path can start.\n *\n * A POSIX root (`/`) is not the only form once the runtime also runs on\n * Windows, where the same tag carries `C:\\…` or a `\\\\server\\share` UNC path.\n * Anchoring on `/` alone silently dropped every Windows attachment: the tag\n * stayed in the visible text and no file was ever sent.\n */\nconst ABSOLUTE_PATH_PREFIX = String.raw`(?:[A-Za-z]:[\\\\/]|\\\\\\\\|\\/)`;\n\nexport const FILE_EXTENSIONS_REGEX = new RegExp(\n `(?:${ABSOLUTE_PATH_PREFIX}[^\\\\s\"'<>|*?[\\\\]]+\\\\.(?:png|jpg|jpeg|gif|webp|svg|pdf|csv|xlsx|xls|json|txt|md|html|zip|py|js|ts|tsx|jsx|css|xml|yaml|yml|docx|pptx))`,\n \"gi\",\n);\n\nexport const FILE_TAG_REGEX = new RegExp(`\\\\[FILE:(${ABSOLUTE_PATH_PREFIX}[^\\\\]]+)\\\\]`, \"gi\");\n\n// Canonical Claude model IDs — update here when Anthropic releases new versions\nexport const MODEL_SONNET = \"claude-sonnet-5\";\nexport const MODEL_OPUS = \"claude-opus-5-5\";\nexport const MODEL_HAIKU = \"claude-haiku-4-5-20251001\";\nexport const MODEL_FABLE = \"claude-fable-5-1\"; // Mythos-class, Fable 5.1 announced 2026-09-01 (was claude-fable-5)\n\n// DeepSeek V4 (released 2026-04-24). API is OpenAI-compatible at\n// https://api.deepseek.com/v1/chat/completions; thinking mode is enabled via\n// `extra_body.thinking.type` + `reasoning_effort`. Legacy `deepseek-chat` /\n// `deepseek-reasoner` are deprecated 2026-07-24.\nexport const MODEL_DEEPSEEK_V4_PRO = \"deepseek-v4-pro\";\nexport const MODEL_DEEPSEEK_V4_FLASH = \"deepseek-v4-flash\";\n\n// Single agent + model default for the whole node. DEFAULT_* remains a legacy alias.\nexport const FALLBACK_AGENT: AgentKind = resolveFallbackAgent(process.env);\nexport const FALLBACK_MODEL = envText(\"FALLBACK_MODEL\") ?? envText(\"DEFAULT_MODEL\");\n\n/**\n * Effort used when a caller (or an archiver assignment) names a model but no\n * effort. Deliberately one fixed node-wide value instead of each agent's\n * registry default: a model-derived agent switch would otherwise move effort —\n * and therefore cost — without anyone asking for it.\n */\nexport const DEFAULT_TOPIC_EFFORT: EffortLevel = ((): EffortLevel => {\n const raw = envText(\"NEGOTIUM_DEFAULT_EFFORT\")?.toLowerCase();\n return raw && (EFFORT_VALUES as readonly string[]).includes(raw)\n ? (raw as EffortLevel)\n : \"medium\";\n})();\n\n// ── External tool binaries + media pipeline env ───────────────────\n// (src/media/* 에서 사용. 미설정 시 fallback 의미는 기존 그대로:\n// FFMPEG_BIN은 text-extractor에서 필수(undefined면 spawn 시점 실패),\n// video.ts에서는 PATH의 ffmpeg/ffprobe로 fallback.)\nexport const FFMPEG_BIN = envText(\"FFMPEG_BIN\");\nexport const FFPROBE_BIN = envText(\"FFPROBE_BIN\");\nexport const PYTHON_BIN = envText(\"PYTHON_BIN\") ?? \"python3\";\nexport const FASTER_WHISPER_WRAPPER =\n envText(\"FASTER_WHISPER_WRAPPER\") ?? resolve(PROJECT_ROOT, \"scripts/faster-whisper-wrapper.py\");\nexport const WHISPER_MODEL = envText(\"WHISPER_MODEL_FILE\") ?? \"turbo\";\nexport const TESSERACT_BIN = envText(\"TESSERACT_BIN\") ?? \"tesseract\";\nexport const PDFTOTEXT_BIN = envText(\"PDFTOTEXT_BIN\") ?? \"pdftotext\";\n\n// ── Whisper backend selection ──────────────────────────────────────\n// Different hosts want different whisper runtimes: Apple Silicon Macs get\n// real acceleration from mlx-whisper (see clawgram's transcribe.ts, which\n// this mirrors), while Linux/Ubuntu hubs have no MLX and use the CPU-friendly\n// faster-whisper wrapper instead. Both CLIs accept the same\n// `INPUT --model M --language L --output-dir D --output-format txt` shape\n// and write `{basename}.txt`, so extractFromAudio only needs to pick which\n// binary/args to use — no per-backend parsing logic.\nexport type WhisperBackend = \"faster-whisper\" | \"mlx-whisper\";\nfunction resolveWhisperBackend(): WhisperBackend {\n return envText(\"WHISPER_BACKEND\") === \"mlx-whisper\" ? \"mlx-whisper\" : \"faster-whisper\";\n}\nexport const WHISPER_BACKEND = resolveWhisperBackend();\n/** Path to the `mlx_whisper` CLI (only used when WHISPER_BACKEND=mlx-whisper). */\nexport const MLX_WHISPER_BIN = envText(\"MLX_WHISPER_BIN\");\n/** mlx-whisper model id, e.g. \"mlx-community/whisper-large-v3-turbo\".\n *\n * Deliberately does NOT fall back to WHISPER_MODEL: that env defaults to the\n * bare alias \"turbo\", which faster-whisper's own model-name normalization\n * accepts but mlx_whisper's `--model` does not — it expects a full\n * HuggingFace repo id and otherwise fails hard with a 401\n * RepositoryNotFoundError trying to resolve \"turbo\" as a repo. Confirmed by\n * actually running mlx_whisper with each value while wiring up the\n * mlx-whisper hub in production. */\nexport const WHISPER_MODEL_MLX =\n envText(\"WHISPER_MODEL_MLX\") ?? \"mlx-community/whisper-large-v3-turbo\";\n\n// Max tell_session relay depth from origin user. ask_session forks reset to\n// depth=0, so this only caps tell_session chains. Override via MAX_TELL_DEPTH\n// (positive int); defaults to 20 when unset or invalid.\nconst _envMaxTellDepth = Number.parseInt(process.env.MAX_TELL_DEPTH ?? \"\", 10);\nexport const MAX_TELL_DEPTH =\n Number.isInteger(_envMaxTellDepth) && _envMaxTellDepth > 0 ? _envMaxTellDepth : 20;\n\n/** Codex CLI auth file. 호출 시점에 env를 읽는다 — 테스트가 런타임에\n * NEGOTIUM_CODEX_AUTH_FILE을 바꾸므로 모듈 로드 상수로 만들면 안 된다. */\nexport function codexAuthFilePath(): string {\n return (\n process.env.NEGOTIUM_CODEX_AUTH_FILE ||\n join(process.env.CODEX_HOME || join(homedir(), \".codex\"), \"auth.json\")\n );\n}\n\n// System defaults moved to per-agent registries\n// (`src/agents/{claude,codex}-registry.ts`). Read via\n// `getRegistry(agent).defaultModel` / `.defaultEffort`.\n\n// MCP server builders -> src/platform/mcp-config.ts\n",
11
+ "import { execFileSync } from \"node:child_process\";\nimport { randomBytes } from \"node:crypto\";\nimport {\n accessSync,\n chmodSync,\n constants,\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { homedir } from \"node:os\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport {\n parseRuntimePort,\n readEnvText,\n resolveFallbackAgent,\n safeRuntimePathSegment,\n} from \"#platform/config-helpers\";\nimport { logger } from \"#platform/logger\";\nimport { type AgentKind, EFFORT_VALUES, type EffortLevel } from \"#types\";\n\nexport function envText(envKey: string): string | undefined {\n return readEnvText(process.env, envKey);\n}\n\nconst HOME = homedir();\n\nfunction resolveStateDir(): string {\n const configured = envText(\"NEGOTIUM_STATE_DIR\");\n if (process.env.NODE_ENV === \"test\" && !configured) {\n throw new Error(\n \"NEGOTIUM_STATE_DIR must be set before importing #platform/config in test processes\",\n );\n }\n return configured ? resolve(configured) : resolve(HOME, \".negotium\");\n}\n\n// new URL(\"../..\", import.meta.url) causes webpack to treat \"../..\" as a module import.\n// Split into fileURLToPath → dirname → resolve to avoid that.\nfunction resolveProjectRoot(): string {\n const moduleDir = dirname(fileURLToPath(import.meta.url));\n const packagedRuntime = resolve(moduleDir, \"runtime\");\n if (existsSync(resolve(packagedRuntime, \"src\"))) return packagedRuntime;\n return resolve(moduleDir, \"../..\");\n}\n\nexport const PROJECT_ROOT = resolveProjectRoot();\n\n/** Resolve a dependency executable from either a package-local or hoisted install. */\n/**\n * Names a package-manager shim can carry in `node_modules/.bin`.\n *\n * POSIX gets one extension-less executable. Windows has no execute bit, so the\n * installer writes an extension instead — bun produces `<name>.exe` plus a\n * `<name>.bunx` stub, npm a `.cmd`/`.ps1` pair — and probing only the bare name\n * finds nothing, leaving the resolved path pointing at a file that does not\n * exist.\n */\nfunction dependencyBinNames(name: string): string[] {\n if (process.platform !== \"win32\") return [name];\n return [name, `${name}.exe`, `${name}.cmd`, `${name}.bat`, `${name}.bunx`];\n}\n\nfunction resolveDependencyBin(name: string): string {\n let dir = PROJECT_ROOT;\n while (true) {\n const binDir = resolve(dir, \"node_modules\", \".bin\");\n for (const candidate of dependencyBinNames(name)) {\n const path = resolve(binDir, candidate);\n if (existsSync(path)) return path;\n }\n const parent = dirname(dir);\n // Exhausted: hand back the canonical spelling so the failure names the\n // path that was expected.\n if (parent === dir) return resolve(binDir, name);\n dir = parent;\n }\n}\n\n// Each machine is one negotium node; all node state lives in one dotdir.\n// NEGOTIUM_STATE_DIR overrides (useful for tests and multi-node-on-one-box).\nexport const STATE_DIR = resolveStateDir();\n\nfunction resolveLocalStateDir(envKey: string, stateName: string): string {\n const envValue = envText(envKey);\n if (envValue) return resolve(envValue);\n return resolve(STATE_DIR, stateName);\n}\n\nfunction parsePortEnv(envValue: string | undefined, fallback: number): number {\n return parseRuntimePort(envValue, fallback);\n}\n\nexport const WORKSPACE_DIR = resolveLocalStateDir(\"NEGOTIUM_WORKSPACE_DIR\", \"workspace\");\nexport const TOPIC_WORKSPACE_DIR = resolve(WORKSPACE_DIR, \"topics\");\nexport const SHARED_WIKI_DIR = resolve(WORKSPACE_DIR, \"wiki\");\nexport const CRON_WORKSPACE_DIR = resolve(WORKSPACE_DIR, \"cron\");\nexport const BROWSER_DIR = resolveLocalStateDir(\"NEGOTIUM_BROWSER_DIR\", \"browser\");\nexport const BROWSER_PROFILES_DIR = resolve(BROWSER_DIR, \"profiles\");\nexport const BINARIES_DIR = resolve(STATE_DIR, \"binaries\");\nexport const SECRETS_DIR = resolve(STATE_DIR, \"secrets\");\n// Legacy names remain public, but their durable contents now live under data.\nexport const DM_WORKSPACE_DIR = resolve(STATE_DIR, \"data\", \"dm\");\nexport const SESSION_WORKSPACE_DIR = resolve(STATE_DIR, \"data\", \"sessions\");\n// The Claude Agent SDK ships a platform-matched Claude Code binary. Keep that\n// SDK/CLI pair together by default; only use an external executable when an\n// operator explicitly opts in. This avoids silently pairing an older SDK with\n// a newer globally installed Claude Code release.\nconst CLAUDE_EXECUTABLE_ENV = envText(\"NEGOTIUM_CLAUDE_EXECUTABLE\");\nexport const CLAUDE_EXECUTABLE = CLAUDE_EXECUTABLE_ENV ? resolve(CLAUDE_EXECUTABLE_ENV) : undefined;\n\n// Fallback output language for model-generated prose (topic/channel/manager\n// replies and the archiver's summaries, briefs, articles, completion reply).\n// Defaults to English; set `NEGOTIUM_LANG` to the user's mother tongue (e.g.\n// `Korean`, `ko`). The assistant still mirrors whatever language the user\n// writes in; `NEGOTIUM_MEMORY_LANG` can narrow just the archiver. Fixed system\n// chrome / degraded-path strings emitted by code stay English (can't translate\n// an arbitrary value at runtime).\nexport const DEFAULT_OUTPUT_LANGUAGE = \"English\";\n\nexport function resolveOutputLanguage(): string {\n const raw = envText(\"NEGOTIUM_LANG\")?.trim();\n return raw && raw.length > 0 ? raw : DEFAULT_OUTPUT_LANGUAGE;\n}\n\n/**\n * Suffix the managed Rust helpers carry on this platform.\n *\n * The installers write the binary under its plain name, which on Windows is\n * not executable — the release asset is `browser-rs.exe` and the resolver has\n * to look for exactly that. Empty everywhere else, so POSIX paths are\n * unchanged.\n */\nexport const BINARY_EXTENSION = process.platform === \"win32\" ? \".exe\" : \"\";\n\n/** Browser.rs release tested with this Negotium version. */\nexport const BROWSER_RS_VERSION = \"v0.7.7\";\n/** Require the authenticated listener and the current Browser.rs tool contract. */\nexport const BROWSER_RS_MIN_SECURE_VERSION = \"0.2.1\";\n\nfunction versionAtLeast(actualVersion: string, minimumVersion: string): boolean {\n const actual = actualVersion.split(\".\").map(Number);\n const minimum = minimumVersion.split(\".\").map(Number);\n if (actual.some(Number.isNaN) || minimum.some(Number.isNaN)) return false;\n for (let index = 0; index < minimum.length; index += 1) {\n if ((actual[index] ?? 0) > (minimum[index] ?? 0)) return true;\n if ((actual[index] ?? 0) < (minimum[index] ?? 0)) return false;\n }\n return true;\n}\n\n/**\n * Ceiling for the `--version` probe, not a latency expectation.\n *\n * The probe exists so a wedged binary cannot hang startup; a healthy one\n * answers in milliseconds. At 2s it also failed whenever the machine was merely\n * busy — process startup under a loaded test suite regularly exceeds that —\n * which turned a correctness check into a load measurement and made\n * `resolveBrowserRsBin` intermittently report a perfectly good binary as\n * unusable. Generous enough that only a genuinely stuck process trips it.\n */\nconst BROWSER_RS_VERSION_PROBE_TIMEOUT_MS = 15_000;\n\nfunction browserRsMeetsMinimumVersion(candidate: string): boolean {\n try {\n const output = execFileSync(candidate, [\"--version\"], {\n encoding: \"utf8\",\n timeout: BROWSER_RS_VERSION_PROBE_TIMEOUT_MS,\n stdio: [\"ignore\", \"pipe\", \"ignore\"],\n // This module is imported by every CLI invocation, so on Windows the\n // probe blinked a console window each time `negotium` was run. Ignored\n // on POSIX.\n windowsHide: true,\n }).trim();\n const match = output.match(/^browser-rs (\\d+)\\.(\\d+)\\.(\\d+)$/);\n if (!match) return false;\n return versionAtLeast(match.slice(1).join(\".\"), BROWSER_RS_MIN_SECURE_VERSION);\n } catch {\n return false;\n }\n}\n\n/**\n * Resolve the preferred Browser.rs engine without consulting PATH. The\n * versioned private location keeps different Negotium releases reproducible\n * and avoids changing a user's global browser-rs installation.\n */\nexport function resolveBrowserRsBin(envValue?: string): string | undefined {\n const override = envValue?.trim();\n if (\n !override &&\n !versionAtLeast(BROWSER_RS_VERSION.replace(/^v/, \"\"), BROWSER_RS_MIN_SECURE_VERSION)\n ) {\n return undefined;\n }\n const candidate = override\n ? resolve(override)\n : resolve(BINARIES_DIR, \"browser-rs\", BROWSER_RS_VERSION, `browser-rs${BINARY_EXTENSION}`);\n try {\n accessSync(candidate, constants.X_OK);\n return browserRsMeetsMinimumVersion(candidate) ? candidate : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Backend that stores documents published by `publish_html` and serves them\n * at `<base>/snippets/<id>`. Unset means the deployment has nowhere to\n * publish, and the publish tools are omitted from the catalog rather than\n * offering a link that cannot be minted.\n */\nexport const SNIPPETS_API_URL = (\n envText(\"NEGOTIUM_SNIPPETS_API_URL\") ??\n envText(\"SNIPPETS_API_URL\") ??\n \"\"\n).replace(/\\/+$/, \"\");\n\nexport const BROWSER_RS_BIN = resolveBrowserRsBin(envText(\"NEGOTIUM_BROWSER_RS_BIN\"));\n\n/** bash-rs release tested with this Negotium version — see apps/negotium/install-bash-rs.mjs. */\nexport const BASH_RS_VERSION = \"v0.1.10\";\n\n/**\n * Resolve the bash-rs binary the same way `resolveBrowserRsBin` resolves\n * Browser.rs: a versioned private location, no PATH lookup, `undefined`\n * (rather than throwing) when it's missing. There is no substitute: the manager\n * throws when a turn tries to prepare background-bash without a binary (see\n * `background-bash/manager.ts`), the turn runner catches that and continues\n * with a reminder that the tools are gone, so background-bash is simply\n * unavailable on a platform without a prebuilt binary.\n */\nexport function resolveBashRsBin(envValue?: string): string | undefined {\n const override = envValue?.trim();\n const candidate = override\n ? resolve(override)\n : resolve(BINARIES_DIR, \"bash-rs\", BASH_RS_VERSION, `bash-rs${BINARY_EXTENSION}`);\n try {\n accessSync(candidate, constants.X_OK);\n return candidate;\n } catch {\n return undefined;\n }\n}\n\nexport const BASH_RS_BIN = resolveBashRsBin(envText(\"NEGOTIUM_BASH_RS_BIN\"));\n\n// Managed Browser.rs terminates MCP transports and security policy itself.\nexport function resolveBrowserMcpBin(envValue?: string): string {\n const override = envValue?.trim();\n if (override) return resolve(override);\n return (\n BROWSER_RS_BIN ??\n resolve(BINARIES_DIR, \"browser-rs\", BROWSER_RS_VERSION, `browser-rs${BINARY_EXTENSION}`)\n );\n}\n\nexport const PLAYWRIGHT_MCP_BIN = resolveBrowserMcpBin(envText(\"NEGOTIUM_BROWSER_MCP_BIN\"));\n\n// --- Browser egress proxy ---\n//\n// On a datacenter host (AWS) the browser's egress IP is a known cloud range,\n// so anti-bot services (Cloudflare, DataDome, reCAPTCHA) challenge or block it\n// far more than a residential IP would. Routing the automation browser through\n// a residential/ISP proxy moves the egress IP out of the datacenter range.\n//\n// Operators set BROWSER_PROXY_URL, e.g. http://user:pass@proxy.host:8080 or\n// socks5://proxy.host:1080. Credentials in the URL are split out because\n// Playwright takes them as separate fields. BROWSER_PROXY_BYPASS is an optional\n// comma-separated no-proxy list (e.g. \"localhost,127.0.0.1,*.internal\").\n//\n// NOTE: Chromium does not support authentication for SOCKS proxies — put\n// credentials only on http/https proxy URLs.\nexport type BrowserProxyConfig = {\n server: string;\n username?: string;\n password?: string;\n bypass?: string;\n};\n\nexport function resolveBrowserProxy(): BrowserProxyConfig | null {\n const raw = envText(\"BROWSER_PROXY_URL\");\n if (!raw) return null;\n let url: URL;\n try {\n url = new URL(raw);\n } catch {\n logger.warn({ raw }, \"Ignoring malformed BROWSER_PROXY_URL\");\n return null;\n }\n // Playwright wants the server without embedded credentials.\n const server = `${url.protocol}//${url.host}`;\n const proxy: BrowserProxyConfig = { server };\n if (url.username) proxy.username = decodeURIComponent(url.username);\n if (url.password) proxy.password = decodeURIComponent(url.password);\n const bypass = envText(\"BROWSER_PROXY_BYPASS\");\n if (bypass) proxy.bypass = bypass;\n return proxy;\n}\n\n// --- Node/tsx runtime for the `codex` agent's MCP servers ---\n//\n// codex 0.135's rmcp stdio MCP client cannot reliably complete the initialize\n// handshake with servers spawned via `bun` (the JSON-RPC initialize is\n// dropped/raced and no tools ever reach the model). Pure-node servers connect\n// reliably, so codex turns launch the SAME .ts servers via node + tsx instead\n// of `bun run`. claude/maestro keep using `bun run` (fast, native, unaffected).\n//\n// tsx transpiles .ts on the fly and resolves the `@/*` tsconfig path aliases,\n// but only when it can find the tsconfig — and MCP servers run with cwd set to\n// the user's workspace dir, not PROJECT_ROOT — so we pass TSX_TSCONFIG_PATH\n// explicitly via env. Requires package.json `\"type\": \"module\"` so the servers'\n// top-level `await` loads as ESM under node.\nexport const TSX_BIN = resolveDependencyBin(\"tsx\");\n/**\n * In-process tsx loader used by Node MCP entrypoints (avoids the tsx CLI child\n * process).\n *\n * `node --import` takes a module specifier, not a filesystem path. A POSIX\n * absolute path happens to be a valid one; a Windows `C:\\…` is not — Node reads\n * the drive letter as a URL scheme and refuses it with\n * ERR_UNSUPPORTED_ESM_URL_SCHEME, which took out every tsx-hosted MCP server\n * (the Codex tool surface) at spawn. Hand it a `file://` URL there, and leave\n * the POSIX value exactly as it was.\n */\nconst TSX_LOADER_PATH = createRequire(import.meta.url).resolve(\"tsx\");\nexport const TSX_LOADER =\n process.platform === \"win32\" ? pathToFileURL(TSX_LOADER_PATH).href : TSX_LOADER_PATH;\nexport const TSCONFIG_PATH = resolve(PROJECT_ROOT, \"tsconfig.json\");\n\nexport const SESSION_COMM_SERVER = resolve(PROJECT_ROOT, \"src/mcp/session-comm/server.ts\");\n\nexport const TASK_SERVER = resolve(PROJECT_ROOT, \"src/mcp/task-server.ts\");\nexport const DECISION_SERVER = resolve(PROJECT_ROOT, \"src/mcp/decision-server.ts\");\nexport const CANONICAL_MCP_PROXY_SERVER = resolve(\n PROJECT_ROOT,\n \"src/mcp/canonical-proxy-server.ts\",\n);\n\nexport const WIKI_SERVER = resolve(PROJECT_ROOT, \"src/mcp/wiki-server.ts\");\n\nexport const TOKEN_STATS_SERVER = resolve(PROJECT_ROOT, \"src/mcp/token-stats-server.ts\");\n\nexport const COMPACTION_LOG_SERVER = resolve(PROJECT_ROOT, \"src/mcp/compaction-log-server.ts\");\n\nexport const SESSION_HISTORY_SERVER = resolve(PROJECT_ROOT, \"src/mcp/session-history-server.ts\");\n\nexport const SYSTEM_HEALTH_SERVER = resolve(PROJECT_ROOT, \"src/mcp/system-health-server.ts\");\n\nexport const AGENT_HEALTH_SERVER = resolve(PROJECT_ROOT, \"src/mcp/agent-health-server.ts\");\n\nexport const VAULT_SERVER = resolve(PROJECT_ROOT, \"src/mcp/vault-server.ts\");\n\nexport const BG_BASH_BASE_PORT = parsePortEnv(process.env.BG_BASH_BASE_PORT, 9700);\nexport const BG_BASH_MAX_PORT = parsePortEnv(process.env.BG_BASH_MAX_PORT, 9799);\n\nfunction safeWorkspaceSegment(value: string, fallback: string): string {\n return safeRuntimePathSegment(value, fallback);\n}\n\n/** Resolve the shared filesystem workspace for an API topic. */\nexport function resolveTopicWorkspaceDir(topicId: string): string {\n return join(TOPIC_WORKSPACE_DIR, safeWorkspaceSegment(topicId, \"topic\"));\n}\n\nexport function isProductionEnv(): boolean {\n return process.env.NODE_ENV === \"production\";\n}\n\nfunction loadOrCreateLocalSecret(\n envKey: string,\n filename: string,\n options: { persistEnvValue?: boolean } = {},\n): string {\n const envValue = envText(envKey);\n const secretFile = resolve(SECRETS_DIR, filename);\n mkdirSync(dirname(secretFile), { recursive: true });\n if (envValue) {\n if (options.persistEnvValue) {\n writeFileSync(secretFile, `${envValue}\\n`, { mode: 0o600 });\n chmodSync(secretFile, 0o600);\n }\n return envValue;\n }\n\n if (existsSync(secretFile)) {\n const stored = readFileSync(secretFile, \"utf-8\").trim();\n if (stored) {\n chmodSync(secretFile, 0o600);\n return stored;\n }\n }\n\n const secret = randomBytes(32).toString(\"base64url\");\n try {\n writeFileSync(secretFile, `${secret}\\n`, { mode: 0o600, flag: \"wx\" });\n return secret;\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== \"EEXIST\") throw error;\n const stored = readFileSync(secretFile, \"utf-8\").trim();\n if (!stored) throw new Error(`Secret file exists but is empty: ${secretFile}`);\n chmodSync(secretFile, 0o600);\n return stored;\n }\n}\n\nexport const RUNTIME_MCP_SECRET = loadOrCreateLocalSecret(\n \"RUNTIME_MCP_SECRET\",\n \"runtime-mcp-secret\",\n);\n/** Local bearer token for the loopback node-control API. */\nexport const NODE_CONTROL_TOKEN = loadOrCreateLocalSecret(\n \"NEGOTIUM_CONTROL_TOKEN\",\n \"node-control-token\",\n);\n/**\n * Stable identity of this node's store, minted once and kept across restarts.\n *\n * Deliberately not a secret: it is published in the gateway health response so a\n * host can tell \"the node I recorded a mapping against\" apart from \"whatever is\n * answering on that port today\". Without it, pointing a host at a different node\n * makes every existing mapping look like a topic whose owner withdrew it, and the\n * same topics come back as duplicate rooms. It shares the secrets directory only\n * because that is already where per-install state that must survive restarts\n * lives; the stricter file mode costs nothing.\n */\nexport const NODE_ID = loadOrCreateLocalSecret(\"NEGOTIUM_NODE_ID\", \"node-id\");\nexport const VAULT_MASTER_KEY = loadOrCreateLocalSecret(\n \"NEGOTIUM_VAULT_MASTER_KEY\",\n \"vault-master-key\",\n { persistEnvValue: true },\n);\n// Agent/tool subprocesses inherit process.env. Keep the loaded key in this\n// process only so `env`/`ps` inside an agent workspace cannot reveal it.\ndelete process.env.NEGOTIUM_VAULT_MASTER_KEY;\n\n/** The node's single open port: runtime MCP endpoint + node API. */\nexport const NEGOTIUM_PORT = parseInt(process.env.NEGOTIUM_PORT || \"7777\", 10);\nexport const hostname = process.env.HOSTNAME || \"127.0.0.1\";\n\n// Persistent state (survives restarts, long-lived)\nexport const DATA_DIR = resolveLocalStateDir(\"NEGOTIUM_DATA_DIR\", \"data\");\nexport const LOG_DIR = resolveLocalStateDir(\"NEGOTIUM_LOG_DIR\", \"logs\");\nexport const UPLOADS_DIR = resolve(DATA_DIR, \"uploads\");\nexport const VAULT_DIR = resolve(DATA_DIR, \"vault\");\n// SESSIONS_DB_PATH env override lets tests point the DB singleton at a temp file.\nexport const SESSIONS_DB = process.env.SESSIONS_DB_PATH\n ? resolve(process.env.SESSIONS_DB_PATH)\n : resolve(DATA_DIR, \"sessions.db\");\nexport const DEBUG_FILE = resolve(DATA_DIR, \"debug-users.json\");\nexport const USERS_LOG_DIR = resolve(DATA_DIR, \"users\");\n\n// Runtime IPC queues (transient, safe to clear on restart)\n/** @deprecated Use the runtime layout name; NEGOTIUM_RUN_DIR remains a compatibility override. */\nexport const RUN_DIR = resolveLocalStateDir(\"NEGOTIUM_RUN_DIR\", \"runtime\");\nexport const RUNTIME_DIR = RUN_DIR;\nexport const PROGRESS_DIR = resolve(RUN_DIR, \"progress\");\nexport const DM_CMD_DIR = resolve(RUN_DIR, \"dm-commands\");\nexport const DM_RESP_DIR = resolve(RUN_DIR, \"dm-responses\");\nexport const SESSION_INBOX_DIR = resolve(RUN_DIR, \"session-inbox\");\nexport const SESSION_ASKS_DIR = resolve(RUN_DIR, \"session-asks\");\n/**\n * Passed to `bash-rs` as `BASHRS_SPILL_ROOT`. Each job gets a subdirectory\n * here (`{bash_id}/meta.json`, `result.json`, `stdout.log`, `stderr.log`) —\n * see bash-rs-mcp's `journal.rs`. `runtime/bashrs-completions.ts` watches\n * this directory and turns `result.json` into a session-inbox `tell`. The\n * retired TypeScript server used to write one directly instead.\n */\nexport const BASHRS_SPILL_ROOT = resolve(RUN_DIR, \"bashrs\");\nexport const PLAYWRIGHT_BASE_PORT = parsePortEnv(process.env.PLAYWRIGHT_BASE_PORT, 9100);\nexport const PLAYWRIGHT_MAX_PORT = parsePortEnv(process.env.PLAYWRIGHT_MAX_PORT, 9499);\nexport const PLAYWRIGHT_PORTS_DIR = resolve(RUN_DIR, \"playwright-ports\");\nmkdirSync(STATE_DIR, { recursive: true });\nmkdirSync(DATA_DIR, { recursive: true });\nmkdirSync(UPLOADS_DIR, { recursive: true });\nmkdirSync(VAULT_DIR, { recursive: true, mode: 0o700 });\nmkdirSync(LOG_DIR, { recursive: true });\nmkdirSync(PROGRESS_DIR, { recursive: true });\nmkdirSync(DM_CMD_DIR, { recursive: true });\nmkdirSync(DM_RESP_DIR, { recursive: true });\nmkdirSync(SESSION_INBOX_DIR, { recursive: true });\nmkdirSync(SESSION_ASKS_DIR, { recursive: true });\nmkdirSync(PLAYWRIGHT_PORTS_DIR, { recursive: true });\nmkdirSync(WORKSPACE_DIR, { recursive: true });\nmkdirSync(TOPIC_WORKSPACE_DIR, { recursive: true });\nmkdirSync(SHARED_WIKI_DIR, { recursive: true });\nmkdirSync(CRON_WORKSPACE_DIR, { recursive: true });\nmkdirSync(DM_WORKSPACE_DIR, { recursive: true });\nmkdirSync(SESSION_WORKSPACE_DIR, { recursive: true });\nmkdirSync(BROWSER_DIR, { recursive: true });\nmkdirSync(BROWSER_PROFILES_DIR, { recursive: true });\nmkdirSync(BINARIES_DIR, { recursive: true });\nmkdirSync(SECRETS_DIR, { recursive: true, mode: 0o700 });\n\n/** Stale threshold for active-query state files (crash recovery) */\nexport const ACTIVE_QUERY_STALE_MS = 10 * 60 * 1000; // 10 minutes\n\nexport const AGENTS_PROMPTS_DIR = resolve(PROJECT_ROOT, \"src/prompts/agents\");\nexport const RESOURCES_DIR = resolve(PROJECT_ROOT, \"src/resources\");\n\n/** Returns process.env without CLAUDECODE, to prevent nested claude-code detection in subprocesses. */\nexport function getCleanEnv(): NodeJS.ProcessEnv {\n const env = { ...process.env };\n delete env.CLAUDECODE;\n return env;\n}\n\n/**\n * How an absolute path can start.\n *\n * A POSIX root (`/`) is not the only form once the runtime also runs on\n * Windows, where the same tag carries `C:\\…` or a `\\\\server\\share` UNC path.\n * Anchoring on `/` alone silently dropped every Windows attachment: the tag\n * stayed in the visible text and no file was ever sent.\n */\nconst ABSOLUTE_PATH_PREFIX = String.raw`(?:[A-Za-z]:[\\\\/]|\\\\\\\\|\\/)`;\n\nexport const FILE_EXTENSIONS_REGEX = new RegExp(\n `(?:${ABSOLUTE_PATH_PREFIX}[^\\\\s\"'<>|*?[\\\\]]+\\\\.(?:png|jpg|jpeg|gif|webp|svg|pdf|csv|xlsx|xls|json|txt|md|html|zip|py|js|ts|tsx|jsx|css|xml|yaml|yml|docx|pptx))`,\n \"gi\",\n);\n\nexport const FILE_TAG_REGEX = new RegExp(`\\\\[FILE:(${ABSOLUTE_PATH_PREFIX}[^\\\\]]+)\\\\]`, \"gi\");\n\n// Canonical Claude model IDs — update here when Anthropic releases new versions\nexport const MODEL_SONNET = \"claude-sonnet-5\";\nexport const MODEL_OPUS = \"claude-opus-5-5\";\nexport const MODEL_HAIKU = \"claude-haiku-4-5-20251001\";\nexport const MODEL_FABLE = \"claude-fable-5-1\"; // Mythos-class, Fable 5.1 announced 2026-09-01 (was claude-fable-5)\n\n// DeepSeek V4 (released 2026-04-24). API is OpenAI-compatible at\n// https://api.deepseek.com/v1/chat/completions; thinking mode is enabled via\n// `extra_body.thinking.type` + `reasoning_effort`. Legacy `deepseek-chat` /\n// `deepseek-reasoner` are deprecated 2026-07-24.\nexport const MODEL_DEEPSEEK_V4_PRO = \"deepseek-v4-pro\";\nexport const MODEL_DEEPSEEK_V4_FLASH = \"deepseek-v4-flash\";\n\n// Single agent + model default for the whole node. DEFAULT_* remains a legacy alias.\nexport const FALLBACK_AGENT: AgentKind = resolveFallbackAgent(process.env);\nexport const FALLBACK_MODEL = envText(\"FALLBACK_MODEL\") ?? envText(\"DEFAULT_MODEL\");\n\n/**\n * Effort used when a caller (or an archiver assignment) names a model but no\n * effort. Deliberately one fixed node-wide value instead of each agent's\n * registry default: a model-derived agent switch would otherwise move effort —\n * and therefore cost — without anyone asking for it.\n */\nexport const DEFAULT_TOPIC_EFFORT: EffortLevel = ((): EffortLevel => {\n const raw = envText(\"NEGOTIUM_DEFAULT_EFFORT\")?.toLowerCase();\n return raw && (EFFORT_VALUES as readonly string[]).includes(raw)\n ? (raw as EffortLevel)\n : \"medium\";\n})();\n\n// ── External tool binaries + media pipeline env ───────────────────\n// (src/media/* 에서 사용. 미설정 시 fallback 의미는 기존 그대로:\n// FFMPEG_BIN은 text-extractor에서 필수(undefined면 spawn 시점 실패),\n// video.ts에서는 PATH의 ffmpeg/ffprobe로 fallback.)\nexport const FFMPEG_BIN = envText(\"FFMPEG_BIN\");\nexport const FFPROBE_BIN = envText(\"FFPROBE_BIN\");\nexport const PYTHON_BIN = envText(\"PYTHON_BIN\") ?? \"python3\";\nexport const FASTER_WHISPER_WRAPPER =\n envText(\"FASTER_WHISPER_WRAPPER\") ?? resolve(PROJECT_ROOT, \"scripts/faster-whisper-wrapper.py\");\nexport const WHISPER_MODEL = envText(\"WHISPER_MODEL_FILE\") ?? \"turbo\";\nexport const TESSERACT_BIN = envText(\"TESSERACT_BIN\") ?? \"tesseract\";\nexport const PDFTOTEXT_BIN = envText(\"PDFTOTEXT_BIN\") ?? \"pdftotext\";\n\n// ── Whisper backend selection ──────────────────────────────────────\n// Different hosts want different whisper runtimes: Apple Silicon Macs get\n// real acceleration from mlx-whisper (see clawgram's transcribe.ts, which\n// this mirrors), while Linux/Ubuntu hubs have no MLX and use the CPU-friendly\n// faster-whisper wrapper instead. Both CLIs accept the same\n// `INPUT --model M --language L --output-dir D --output-format txt` shape\n// and write `{basename}.txt`, so extractFromAudio only needs to pick which\n// binary/args to use — no per-backend parsing logic.\nexport type WhisperBackend = \"faster-whisper\" | \"mlx-whisper\";\nfunction resolveWhisperBackend(): WhisperBackend {\n return envText(\"WHISPER_BACKEND\") === \"mlx-whisper\" ? \"mlx-whisper\" : \"faster-whisper\";\n}\nexport const WHISPER_BACKEND = resolveWhisperBackend();\n/** Path to the `mlx_whisper` CLI (only used when WHISPER_BACKEND=mlx-whisper). */\nexport const MLX_WHISPER_BIN = envText(\"MLX_WHISPER_BIN\");\n/** mlx-whisper model id, e.g. \"mlx-community/whisper-large-v3-turbo\".\n *\n * Deliberately does NOT fall back to WHISPER_MODEL: that env defaults to the\n * bare alias \"turbo\", which faster-whisper's own model-name normalization\n * accepts but mlx_whisper's `--model` does not — it expects a full\n * HuggingFace repo id and otherwise fails hard with a 401\n * RepositoryNotFoundError trying to resolve \"turbo\" as a repo. Confirmed by\n * actually running mlx_whisper with each value while wiring up the\n * mlx-whisper hub in production. */\nexport const WHISPER_MODEL_MLX =\n envText(\"WHISPER_MODEL_MLX\") ?? \"mlx-community/whisper-large-v3-turbo\";\n\n// Max tell_session relay depth from origin user. ask_session forks reset to\n// depth=0, so this only caps tell_session chains. Override via MAX_TELL_DEPTH\n// (positive int); defaults to 20 when unset or invalid.\nconst _envMaxTellDepth = Number.parseInt(process.env.MAX_TELL_DEPTH ?? \"\", 10);\nexport const MAX_TELL_DEPTH =\n Number.isInteger(_envMaxTellDepth) && _envMaxTellDepth > 0 ? _envMaxTellDepth : 20;\n\n/** Codex CLI auth file. 호출 시점에 env를 읽는다 — 테스트가 런타임에\n * NEGOTIUM_CODEX_AUTH_FILE을 바꾸므로 모듈 로드 상수로 만들면 안 된다. */\nexport function codexAuthFilePath(): string {\n return (\n process.env.NEGOTIUM_CODEX_AUTH_FILE ||\n join(process.env.CODEX_HOME || join(homedir(), \".codex\"), \"auth.json\")\n );\n}\n\n// System defaults moved to per-agent registries\n// (`src/agents/{claude,codex}-registry.ts`). Read via\n// `getRegistry(agent).defaultModel` / `.defaultEffort`.\n\n// MCP server builders -> src/platform/mcp-config.ts\n",
12
12
  "/**\n * The explicit-switch gate behind `set_agent`: an agent may move a topic to\n * another backend only when the *person's* current message asked for it.\n *\n * The decision is derived here, once, from the full prompt on the node that\n * mints the per-turn runtime MCP token, and the token then carries only the\n * result ({@link explicitAgentSwitchTargets}) — a bounded list of agent kinds\n * — instead of the prompt itself. That keeps the token small whatever the\n * prompt's length and means a long message cannot push the phrase past a\n * cap and turn a request the user made into a refusal.\n */\nimport { type AgentKind, SUPPORTED_AGENTS } from \"#types\";\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nfunction agentAliases(agent: AgentKind): string[] {\n switch (agent) {\n case \"codex\":\n return [\n \"codex\",\n \"코덱스\",\n \"astra\",\n \"sol\",\n \"luna\",\n \"terra\",\n \"gpt-6-luna\",\n \"gpt-6-sol\",\n \"gpt-5.6-luna\",\n \"gpt-6.1-terra\",\n \"gpt-5.6-terra\",\n \"gpt-5.6-sol\",\n \"gpt-6-astra\",\n ];\n case \"claude\":\n return [\"claude\", \"클로드\", \"sonnet\", \"opus\", \"fable\"];\n case \"maestro\":\n return [\n \"maestro\",\n \"마에스트로\",\n \"메스트로\",\n \"deepseek\",\n \"deepseek-pro\",\n \"kimi\",\n \"kimi-pro\",\n \"kimi-k3\",\n \"kimi-code\",\n \"kimi-k2.7-code\",\n \"딥시크\",\n \"키미\",\n ];\n }\n}\n\n/** Whether `prompt` explicitly asks to switch this topic to `agent`. */\nexport function hasExplicitAgentSwitchRequest(\n prompt: string | undefined,\n agent: AgentKind,\n): boolean {\n if (!prompt?.trim()) return false;\n const text = prompt.toLowerCase().replace(/\\s+/g, \" \").trim();\n const target = `(?<![A-Za-z0-9_-])(?:${agentAliases(agent).map(escapeRegExp).join(\"|\")})(?![A-Za-z0-9_-])`;\n const switchVerb =\n \"(?:바꿔|바꿔줘|변경|변경해|전환|전환해|설정|설정해|써줘|사용|가|switch|change|set|use)\";\n const switchSubject = \"(?:agent|runtime|model|에이전트|런타임|모델)\";\n\n return [\n new RegExp(`^/(?:agent|runtime)\\\\s+${target}(?:\\\\s|$)`, \"iu\"),\n new RegExp(`${target}\\\\s*(?:로|으로)\\\\s*.{0,16}${switchVerb}`, \"iu\"),\n new RegExp(`${switchSubject}.{0,24}${target}.{0,24}${switchVerb}`, \"iu\"),\n new RegExp(`${switchVerb}.{0,24}${switchSubject}.{0,24}${target}`, \"iu\"),\n new RegExp(`(?:switch|change|set|use).{0,24}${target}`, \"iu\"),\n ].some((pattern) => pattern.test(text));\n}\n\n/**\n * The agents `prompt` explicitly asks to switch to, in {@link SUPPORTED_AGENTS}\n * order — the same test as {@link hasExplicitAgentSwitchRequest}, evaluated for\n * every agent kind over the whole prompt. Empty when nothing was asked for.\n */\nexport function explicitAgentSwitchTargets(prompt: string | undefined): AgentKind[] {\n if (!prompt?.trim()) return [];\n return SUPPORTED_AGENTS.filter((agent) => hasExplicitAgentSwitchRequest(prompt, agent));\n}\n\n/**\n * Shape check for the derived field where it crosses a trust boundary (the\n * signed token): a de-duplicated list of known agent kinds. It cannot hold\n * more entries than there are agents, so its size is fixed.\n */\nexport function isExplicitAgentSwitchTargets(value: unknown): value is AgentKind[] {\n return (\n Array.isArray(value) &&\n value.length <= SUPPORTED_AGENTS.length &&\n value.every((item, index) => isAgentKindUnique(value, item, index))\n );\n}\n\nfunction isAgentKindUnique(list: unknown[], item: unknown, index: number): boolean {\n return (\n typeof item === \"string\" &&\n (SUPPORTED_AGENTS as readonly string[]).includes(item) &&\n list.indexOf(item) === index\n );\n}\n",
13
- "import type { PeerRuntimeBridgeContext } from \"#types\";\n\nexport type CanonicalMcpSurface = \"task\" | \"decision\" | \"wiki\";\n\nexport interface CanonicalMcpBridgeScope {\n surface: CanonicalMcpSurface;\n userId: string;\n topicId: string;\n queryId: string;\n peerBridge: PeerRuntimeBridgeContext;\n}\n\nexport interface CanonicalMcpBridgeEnvLease {\n env: Record<string, string>;\n /** Revoke the capability immediately. Must be safe to call more than once. */\n revoke(): void;\n}\n\nexport type CanonicalMcpBridgeEnvProvider = (\n scope: CanonicalMcpBridgeScope,\n) => CanonicalMcpBridgeEnvLease | undefined;\n\nconst registrations: Array<{ id: symbol; provider: CanonicalMcpBridgeEnvProvider }> = [];\nconst turnLeases = new Map<string, Set<() => void>>();\n\nfunction turnKey(\n scope: Pick<CanonicalMcpBridgeScope, \"userId\" | \"topicId\" | \"queryId\" | \"peerBridge\">,\n): string {\n return JSON.stringify([\n scope.userId,\n scope.topicId,\n scope.queryId,\n scope.peerBridge.hubCellId,\n scope.peerBridge.hostTopicId,\n scope.peerBridge.hostQueryId,\n ]);\n}\n\n/** Placement adapters install a scoped capability issuer without exposing\n * their hub discovery or authentication model to generic core. */\nexport function registerCanonicalMcpBridgeEnvProvider(\n provider: CanonicalMcpBridgeEnvProvider,\n): () => void {\n const registration = { id: Symbol(\"canonical-mcp-bridge\"), provider };\n registrations.push(registration);\n let disposed = false;\n return () => {\n if (disposed) return;\n disposed = true;\n const index = registrations.findIndex((entry) => entry.id === registration.id);\n if (index >= 0) registrations.splice(index, 1);\n };\n}\n\nexport function canonicalMcpBridgeEnv(\n scope: CanonicalMcpBridgeScope,\n): Record<string, string> | undefined {\n const lease = registrations.at(-1)?.provider(scope);\n if (!lease) return undefined;\n const key = turnKey(scope);\n const leases = turnLeases.get(key) ?? new Set<() => void>();\n leases.add(lease.revoke);\n turnLeases.set(key, leases);\n return lease.env;\n}\n\n/** Revoke every canonical MCP capability issued while building one placed turn. */\nexport function revokeCanonicalMcpBridgeTurn(\n scope: Pick<CanonicalMcpBridgeScope, \"userId\" | \"topicId\" | \"queryId\" | \"peerBridge\">,\n): number {\n const key = turnKey(scope);\n const leases = turnLeases.get(key);\n if (!leases) return 0;\n turnLeases.delete(key);\n for (const revoke of leases) {\n try {\n revoke();\n } catch {\n // Revocation is best-effort across independently owned bridge adapters;\n // continue so one broken disposer cannot preserve sibling capabilities.\n }\n }\n return leases.size;\n}\n",
13
+ "import type { PeerRuntimeBridgeContext } from \"#types\";\n\nexport type CanonicalMcpSurface = \"task\" | \"decision\" | \"wiki\" | \"session-history\";\n\nexport interface CanonicalMcpBridgeScope {\n surface: CanonicalMcpSurface;\n userId: string;\n topicId: string;\n queryId: string;\n peerBridge: PeerRuntimeBridgeContext;\n}\n\nexport interface CanonicalMcpBridgeEnvLease {\n env: Record<string, string>;\n /** Revoke the capability immediately. Must be safe to call more than once. */\n revoke(): void;\n}\n\nexport type CanonicalMcpBridgeEnvProvider = (\n scope: CanonicalMcpBridgeScope,\n) => CanonicalMcpBridgeEnvLease | undefined;\n\nconst registrations: Array<{ id: symbol; provider: CanonicalMcpBridgeEnvProvider }> = [];\nconst turnLeases = new Map<string, Set<() => void>>();\n\nfunction turnKey(\n scope: Pick<CanonicalMcpBridgeScope, \"userId\" | \"topicId\" | \"queryId\" | \"peerBridge\">,\n): string {\n return JSON.stringify([\n scope.userId,\n scope.topicId,\n scope.queryId,\n scope.peerBridge.hubCellId,\n scope.peerBridge.hostTopicId,\n scope.peerBridge.hostQueryId,\n ]);\n}\n\n/** Placement adapters install a scoped capability issuer without exposing\n * their hub discovery or authentication model to generic core. */\nexport function registerCanonicalMcpBridgeEnvProvider(\n provider: CanonicalMcpBridgeEnvProvider,\n): () => void {\n const registration = { id: Symbol(\"canonical-mcp-bridge\"), provider };\n registrations.push(registration);\n let disposed = false;\n return () => {\n if (disposed) return;\n disposed = true;\n const index = registrations.findIndex((entry) => entry.id === registration.id);\n if (index >= 0) registrations.splice(index, 1);\n };\n}\n\nexport function canonicalMcpBridgeEnv(\n scope: CanonicalMcpBridgeScope,\n): Record<string, string> | undefined {\n const lease = registrations.at(-1)?.provider(scope);\n if (!lease) return undefined;\n const key = turnKey(scope);\n const leases = turnLeases.get(key) ?? new Set<() => void>();\n leases.add(lease.revoke);\n turnLeases.set(key, leases);\n return lease.env;\n}\n\n/** Revoke every canonical MCP capability issued while building one placed turn. */\nexport function revokeCanonicalMcpBridgeTurn(\n scope: Pick<CanonicalMcpBridgeScope, \"userId\" | \"topicId\" | \"queryId\" | \"peerBridge\">,\n): number {\n const key = turnKey(scope);\n const leases = turnLeases.get(key);\n if (!leases) return 0;\n turnLeases.delete(key);\n for (const revoke of leases) {\n try {\n revoke();\n } catch {\n // Revocation is best-effort across independently owned bridge adapters;\n // continue so one broken disposer cannot preserve sibling capabilities.\n }\n }\n return leases.size;\n}\n",
14
14
  "import type { ActorTopicScope } from \"#types\";\n\n/**\n * Hard caps on a hub-supplied room assertion.\n *\n * The assertion is not stored and forgotten: it rides the signed per-turn MCP\n * token, which every hosted built-in MCP server receives in the URL query\n * (`?token=`) of an `http://127.0.0.1` request, and — with\n * `NEGOTIUM_BUILTIN_MCP_TRANSPORT=stdio` — one base64url argv entry of the\n * session-comm child. The transport, not the database, is the tight bound:\n *\n * - `Bun.serve` answers 431 once the request line is too long (Bun 1.3.14:\n * a 16,205-character URL is served, 16,305 is refused). These caps alone\n * do not bound the URL — the token carries other fields — so the whole URL\n * is budgeted at `MCP_URL_BUDGET_CHARS` (14 KiB) in `runtime-spec.ts`,\n * where the numbers live. The 8 KiB assertion below becomes 10,924\n * base64url characters at most; with every other runtime-token field at\n * its largest (the prompt itself is not in the token — only the derived\n * `explicitAgentSwitchTargets`, at most three agent names) the URL is\n * ≤ ~13.4 KB.\n * - argv: `encodeActorTopicScopeArg` is the assertion alone, ≤ 10,924\n * characters, far below Linux `MAX_ARG_STRLEN` (128 KiB) for one argument\n * and macOS `ARG_MAX` (1 MiB) overall. The encoder re-validates before it\n * encodes, so an in-process caller that bypassed the gateway parser cannot\n * put an unbounded object into argv either.\n *\n * With UUID room ids (39 bytes each serialized) the byte cap admits roughly\n * 208 ids across both lists; the per-list count cap bounds the work done on\n * an assertion before its size is known, and the id length cap keeps a single\n * id from being the whole budget. Raising these means moving the assertion\n * out of the token (server-side per-turn context), not editing the numbers.\n */\nexport const ACTOR_TOPIC_SCOPE_LIMITS = Object.freeze({\n /** Ids per list, counted before de-duplication. */\n maxIdsPerList: 200,\n /** Characters per id, after trimming. */\n maxIdLength: 128,\n /** UTF-8 bytes of the normalized assertion as JSON. */\n maxSerializedBytes: 8 * 1024,\n});\n\nconst SCOPE_KEYS = [\"visibleNodeTopicIds\", \"ownedNodeTopicIds\"] as const;\nconst OPTIONAL_SCOPE_KEYS = [\"issuedAt\"] as const;\n\n/**\n * How long a hub room assertion is believed after it was issued.\n *\n * The assertion rides the per-turn MCP token, which lives for hours\n * (`HOSTED_MCP_TOKEN_TTL_MS`), and nothing on this node re-asks the hub\n * whether a person is still in a room. Without a bound, a person removed from\n * a room would keep reaching it for the whole token lifetime. Past this age\n * the assertion is stale and grants no cross-room reach (fail-closed, see\n * `isActorTopicScopeFresh`): a person removed from a room loses it on their\n * next turn (a fresh assertion), and at the latest this long after the\n * assertion was issued for a turn that is still running.\n *\n * Trade-off (product decision, safe default): a turn that runs longer than\n * this keeps its own room and its own lineage but can no longer list, tell,\n * ask or abort other rooms until the person speaks again.\n * `NEGOTIUM_ACTOR_TOPIC_SCOPE_MAX_AGE_MS` overrides it, clamped to\n * [0, `ACTOR_TOPIC_SCOPE_MAX_AGE_CEILING_MS`]; `0` disables cross-room reach.\n */\nexport const ACTOR_TOPIC_SCOPE_DEFAULT_MAX_AGE_MS = 10 * 60 * 1000;\n/** Never believe an assertion longer than a hosted MCP token lives. */\nexport const ACTOR_TOPIC_SCOPE_MAX_AGE_CEILING_MS = 4 * 60 * 60 * 1000;\n/** A stamp this far ahead of the local clock is not trusted as \"fresh\". */\nconst ACTOR_TOPIC_SCOPE_FUTURE_SKEW_MS = 60 * 1000;\n\nexport function actorTopicScopeMaxAgeMs(env: NodeJS.ProcessEnv = process.env): number {\n const raw = env.NEGOTIUM_ACTOR_TOPIC_SCOPE_MAX_AGE_MS?.trim();\n if (!raw || !/^\\d+$/.test(raw)) return ACTOR_TOPIC_SCOPE_DEFAULT_MAX_AGE_MS;\n return Math.min(Number(raw), ACTOR_TOPIC_SCOPE_MAX_AGE_CEILING_MS);\n}\n\n/**\n * Whether `scope` may still grant cross-room reach at `now`. An assertion\n * without `issuedAt` (a row or token written before the stamp existed) is\n * never fresh — the safe reading of \"we do not know how old this is\".\n */\nexport function isActorTopicScopeFresh(\n scope: ActorTopicScope,\n now: number = Date.now(),\n maxAgeMs: number = actorTopicScopeMaxAgeMs(),\n): boolean {\n const issuedAt = scope.issuedAt;\n if (issuedAt === undefined) return false;\n if (issuedAt > now + ACTOR_TOPIC_SCOPE_FUTURE_SKEW_MS) return false;\n return now - issuedAt <= maxAgeMs;\n}\n\n/**\n * Stamp an assertion as it enters this node. The node's receipt time is the\n * upper bound (a hub `issuedAt` in the future, e.g. clock skew, cannot extend\n * it); an older hub `issuedAt` is kept, so time the hub spent before sending\n * counts against the window.\n */\nexport function stampActorTopicScope(\n scope: ActorTopicScope,\n now: number = Date.now(),\n): ActorTopicScope {\n const issuedAt = scope.issuedAt === undefined ? now : Math.min(scope.issuedAt, now);\n return { ...scope, issuedAt };\n}\n\nexport type ActorTopicScopeValidation =\n | { ok: true; scope: ActorTopicScope | undefined }\n | { ok: false; error: string };\n\nfunction idList(value: unknown, name: string): string[] | string {\n if (!Array.isArray(value)) return `${name} must be an array of topic ids`;\n if (value.length > ACTOR_TOPIC_SCOPE_LIMITS.maxIdsPerList) {\n return `${name} has ${value.length} ids; at most ${ACTOR_TOPIC_SCOPE_LIMITS.maxIdsPerList} are allowed`;\n }\n const ids = new Set<string>();\n for (const item of value) {\n if (typeof item !== \"string\") return `${name} must contain only strings`;\n const id = item.trim();\n if (!id) return `${name} must not contain empty ids`;\n if (id.length > ACTOR_TOPIC_SCOPE_LIMITS.maxIdLength) {\n return `${name} contains an id longer than ${ACTOR_TOPIC_SCOPE_LIMITS.maxIdLength} characters`;\n }\n ids.add(id);\n }\n return [...ids];\n}\n\n/**\n * Validate a hub-supplied room assertion and say why it failed.\n *\n * `undefined` in means `undefined` out (no assertion, fail-closed downstream);\n * anything else must be exactly `{ visibleNodeTopicIds, ownedNodeTopicIds }`\n * plus an optional `issuedAt` (epoch ms) — a plain object with those own keys\n * and nothing else (so a stray\n * `__proto__` or `constructor` key is a rejection, not a property), each a\n * list of non-empty strings within {@link ACTOR_TOPIC_SCOPE_LIMITS} — or it is\n * rejected, so a malformed assertion can never be read as \"everything\".\n */\nexport function validateActorTopicScope(value: unknown): ActorTopicScopeValidation {\n if (value === undefined) return { ok: true, scope: undefined };\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return {\n ok: false,\n error:\n \"actorTopicScope must be { visibleNodeTopicIds: string[], ownedNodeTopicIds: string[] }\",\n };\n }\n const proto = Object.getPrototypeOf(value);\n if (proto !== Object.prototype && proto !== null) {\n return { ok: false, error: \"actorTopicScope must be a plain object\" };\n }\n const keys = Object.keys(value);\n const allowed: readonly string[] = [...SCOPE_KEYS, ...OPTIONAL_SCOPE_KEYS];\n const unknown = keys.filter((key) => !allowed.includes(key));\n const required = SCOPE_KEYS.filter((key) => keys.includes(key)).length;\n if (unknown.length || required !== SCOPE_KEYS.length) {\n return {\n ok: false,\n error: unknown.length\n ? `actorTopicScope has unexpected key(s): ${unknown.join(\", \")}`\n : \"actorTopicScope must have both visibleNodeTopicIds and ownedNodeTopicIds\",\n };\n }\n const record = value as Record<string, unknown>;\n const visible = idList(record.visibleNodeTopicIds, \"actorTopicScope.visibleNodeTopicIds\");\n if (typeof visible === \"string\") return { ok: false, error: visible };\n const owned = idList(record.ownedNodeTopicIds, \"actorTopicScope.ownedNodeTopicIds\");\n if (typeof owned === \"string\") return { ok: false, error: owned };\n const issuedAt = record.issuedAt;\n if (issuedAt !== undefined && (!Number.isSafeInteger(issuedAt) || (issuedAt as number) < 0)) {\n return { ok: false, error: \"actorTopicScope.issuedAt must be epoch milliseconds\" };\n }\n const scope: ActorTopicScope = {\n visibleNodeTopicIds: visible,\n ownedNodeTopicIds: owned,\n ...(issuedAt !== undefined ? { issuedAt: issuedAt as number } : {}),\n };\n const bytes = Buffer.byteLength(JSON.stringify(scope), \"utf-8\");\n if (bytes > ACTOR_TOPIC_SCOPE_LIMITS.maxSerializedBytes) {\n return {\n ok: false,\n error: `actorTopicScope is ${bytes} bytes serialized; at most ${ACTOR_TOPIC_SCOPE_LIMITS.maxSerializedBytes} are allowed`,\n };\n }\n return { ok: true, scope };\n}\n\n/**\n * Validate a hub-supplied room assertion.\n *\n * `undefined` in means `undefined` out (no assertion, fail-closed downstream);\n * anything else must pass {@link validateActorTopicScope} or it is rejected\n * with `null`. Every path an assertion can enter by — the gateway body, the\n * signed MCP tokens, the stdio argv — goes through this one parser, so the\n * limits cannot drift between them.\n */\nexport function parseActorTopicScope(value: unknown): ActorTopicScope | undefined | null {\n const validated = validateActorTopicScope(value);\n return validated.ok ? validated.scope : null;\n}\n\nexport function isActorTopicScope(value: unknown): value is ActorTopicScope {\n return parseActorTopicScope(value) != null;\n}\n\n/**\n * Read a validated assertion out of a persisted or signed context. Anything\n * that does not validate collapses to \"no assertion\" rather than throwing, so\n * a stale row cannot break a turn — it only narrows it to what a turn without\n * an assertion reaches: the current room plus its own subagent lineage.\n */\nexport function actorTopicScopeFrom(value: unknown): ActorTopicScope | undefined {\n return parseActorTopicScope(value) ?? undefined;\n}\n\n/**\n * The strictest assertion two requests agree on: an id is kept only when both\n * assert it, and a request without an assertion leaves the result without one\n * (fail-closed). Used when several pending requests of one actor fold into a\n * single turn, so the merged turn never reaches a room one of them could not.\n */\nexport function intersectActorTopicScopes(\n scopes: ReadonlyArray<ActorTopicScope | undefined>,\n): ActorTopicScope | undefined {\n if (scopes.length === 0 || scopes.some((scope) => scope === undefined)) return undefined;\n const all = scopes as ActorTopicScope[];\n const [first, ...rest] = all;\n const keep = (key: \"visibleNodeTopicIds\" | \"ownedNodeTopicIds\") =>\n first[key].filter((id) => rest.every((scope) => scope[key].includes(id)));\n // The oldest stamp wins; one unstamped request leaves the batch unstamped\n // (stale), never fresher than any folded assertion.\n const stamps = all.map((scope) => scope.issuedAt);\n const issuedAt = stamps.every((stamp) => stamp !== undefined)\n ? Math.min(...(stamps as number[]))\n : undefined;\n return {\n visibleNodeTopicIds: keep(\"visibleNodeTopicIds\"),\n ownedNodeTopicIds: keep(\"ownedNodeTopicIds\"),\n ...(issuedAt !== undefined ? { issuedAt } : {}),\n };\n}\n\n/**\n * Argv-safe encoding for the stdio session-comm server (`--actor-topic-scope=`).\n * Bounded by {@link ACTOR_TOPIC_SCOPE_LIMITS}: 8,192 bytes of JSON become at\n * most 10,924 base64url characters, see there. The input is put through\n * {@link validateActorTopicScope} first and an invalid or oversized assertion\n * throws — it is never truncated (which would narrow the turn silently) nor\n * passed on (which would let a typed in-process caller overflow argv).\n */\nexport function encodeActorTopicScopeArg(scope: ActorTopicScope): string {\n const validated = validateActorTopicScope(scope);\n if (!validated.ok) throw new Error(validated.error);\n if (!validated.scope) throw new Error(\"actorTopicScope is required\");\n return Buffer.from(JSON.stringify(validated.scope), \"utf-8\").toString(\"base64url\");\n}\n",
15
15
  "import type { RemoteSessionGrant } from \"#types\";\n\n/**\n * Hard caps on a hub-supplied remote-session grant.\n *\n * Like the actor room assertion (`actor-topic-scope.ts`), the grant rides the\n * signed per-turn `session-comm` MCP token in a URL query and — with\n * `NEGOTIUM_BUILTIN_MCP_TRANSPORT=stdio` — one base64url argv entry, so the\n * transport bounds it, not the database. A capability is ≈330–440 characters\n * (`rsc1.<base64url JSON>.<base64url HMAC>`) and adds ≈680 URL characters\n * beside the maximal 8 KiB assertion (12,800 of the 14,336 budget, measured\n * in `hosted-runtime-spec.test.ts`). The caps below leave a hub room to grow\n * the payload, but a grant at both caps (≈3,475 URL characters) does not fit\n * beside the *maximal* assertion — `MCP_URL_BUDGET_CHARS` is the backstop and\n * refuses that mint loudly rather than dropping a field. A capability up to\n * ≈1,590 characters always fits.\n */\nexport const REMOTE_SESSION_GRANT_LIMITS = Object.freeze({\n /** Characters of `hubUrl`, after trimming. */\n maxHubUrlLength: 512,\n /** Characters of `capability`, after trimming. */\n maxCapabilityLength: 2 * 1024,\n /** The only capability format this node forwards. */\n capabilityPrefix: \"rsc1.\",\n});\n\nconst GRANT_KEYS = [\"hubUrl\", \"capability\"] as const;\nconst LOOPBACK_HOSTS = new Set([\"127.0.0.1\", \"::1\", \"[::1]\", \"localhost\"]);\n\nexport type RemoteSessionGrantValidation =\n | { ok: true; grant: RemoteSessionGrant | undefined }\n | { ok: false; error: string };\n\n/**\n * Normalize a hub URL the node may present a bearer to: loopback `http://`\n * or any `https://` origin, ≤ 512 characters, no credentials, no query or\n * fragment. Returns the canonical string (trailing slash dropped) or the\n * reason it is refused. The one rule for every hub URL the node stores — the\n * turn grant's `hubUrl` and an ask's `remoteReply.hubUrl` alike — so a\n * bearer can never be steered to an attacker-chosen host.\n */\nexport function normalizeHubUrl(\n raw: string,\n name = \"remoteSession.hubUrl\",\n): { url: string } | { error: string } {\n if (raw.length > REMOTE_SESSION_GRANT_LIMITS.maxHubUrlLength) {\n return {\n error: `${name} is longer than ${REMOTE_SESSION_GRANT_LIMITS.maxHubUrlLength} characters`,\n };\n }\n let url: URL;\n try {\n url = new URL(raw);\n } catch {\n return { error: `${name} must be an absolute URL` };\n }\n if (url.username || url.password) {\n return { error: `${name} must not carry credentials` };\n }\n if (url.search || url.hash || raw.includes(\"?\") || raw.includes(\"#\")) {\n return { error: `${name} must not carry a query or fragment` };\n }\n if (url.protocol === \"http:\") {\n if (!LOOPBACK_HOSTS.has(url.hostname)) {\n return { error: `${name} must be https:// or a loopback http:// origin` };\n }\n } else if (url.protocol !== \"https:\") {\n return { error: `${name} must be https:// or a loopback http:// origin` };\n }\n return { url: url.toString().replace(/\\/+$/, \"\") };\n}\n\n/** Shape of the hub's one-shot `rsr1` reply token; the node never verifies it. */\nexport const REMOTE_SESSION_REPLY_TOKEN_PATTERN = /^rsr1\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$/;\n/** Same cap as the capability: the hub's tokens are ≈200 characters. */\nexport const MAX_REMOTE_SESSION_REPLY_TOKEN_LENGTH =\n REMOTE_SESSION_GRANT_LIMITS.maxCapabilityLength;\n\n/**\n * Validate a hub-supplied remote-session grant and say why it failed.\n *\n * `undefined` in means `undefined` out (no grant: remote session-comm stays\n * fail-closed on `otium`); anything else must be exactly\n * `{ hubUrl, capability }` — a plain object with those two own keys — with a\n * callable hub URL and an opaque `rsc1.` capability within\n * {@link REMOTE_SESSION_GRANT_LIMITS}. The node never decodes or verifies the\n * capability: it is a bearer the hub issued and only the hub can check.\n */\nexport function validateRemoteSessionGrant(value: unknown): RemoteSessionGrantValidation {\n if (value === undefined) return { ok: true, grant: undefined };\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return { ok: false, error: \"remoteSession must be { hubUrl: string, capability: string }\" };\n }\n const proto = Object.getPrototypeOf(value);\n if (proto !== Object.prototype && proto !== null) {\n return { ok: false, error: \"remoteSession must be a plain object\" };\n }\n const keys = Object.keys(value);\n const unknown = keys.filter((key) => !(GRANT_KEYS as readonly string[]).includes(key));\n if (unknown.length || keys.length !== GRANT_KEYS.length) {\n return {\n ok: false,\n error: unknown.length\n ? `remoteSession has unexpected key(s): ${unknown.join(\", \")}`\n : \"remoteSession must have both hubUrl and capability\",\n };\n }\n const record = value as Record<string, unknown>;\n if (typeof record.hubUrl !== \"string\" || !record.hubUrl.trim()) {\n return { ok: false, error: \"remoteSession.hubUrl must be a non-empty string\" };\n }\n const hubUrl = normalizeHubUrl(record.hubUrl.trim());\n if (\"error\" in hubUrl) return { ok: false, error: hubUrl.error };\n if (typeof record.capability !== \"string\" || !record.capability.trim()) {\n return { ok: false, error: \"remoteSession.capability must be a non-empty string\" };\n }\n const capability = record.capability.trim();\n if (capability.length > REMOTE_SESSION_GRANT_LIMITS.maxCapabilityLength) {\n return {\n ok: false,\n error: `remoteSession.capability is ${capability.length} characters; at most ${REMOTE_SESSION_GRANT_LIMITS.maxCapabilityLength} are allowed`,\n };\n }\n if (!capability.startsWith(REMOTE_SESSION_GRANT_LIMITS.capabilityPrefix)) {\n return {\n ok: false,\n error: `remoteSession.capability must start with \"${REMOTE_SESSION_GRANT_LIMITS.capabilityPrefix}\"`,\n };\n }\n // Three dot-separated base64url parts and nothing else, so a value that\n // is not even shaped like a capability never reaches the hub.\n if (!/^rsc1\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$/.test(capability)) {\n return { ok: false, error: \"remoteSession.capability is malformed\" };\n }\n return { ok: true, grant: { hubUrl: hubUrl.url, capability } };\n}\n\n/** {@link validateRemoteSessionGrant} collapsed to `null` on failure. */\nexport function parseRemoteSessionGrant(value: unknown): RemoteSessionGrant | undefined | null {\n const validated = validateRemoteSessionGrant(value);\n return validated.ok ? validated.grant : null;\n}\n\nexport function isRemoteSessionGrant(value: unknown): value is RemoteSessionGrant {\n return parseRemoteSessionGrant(value) != null;\n}\n\n/**\n * Read a validated grant out of a persisted or signed context. Anything that\n * does not validate collapses to \"no grant\" rather than throwing: a stale row\n * only loses remote reach, it never breaks the turn.\n */\nexport function remoteSessionGrantFrom(value: unknown): RemoteSessionGrant | undefined {\n return parseRemoteSessionGrant(value) ?? undefined;\n}\n\n/**\n * Best-effort peek at the capability's expiry (`e`, epoch seconds), used only\n * to order grants when several requests fold into one turn. Untrusted: the\n * node never decides validity from it — the hub does.\n */\nexport function remoteSessionGrantExpiry(grant: RemoteSessionGrant): number | null {\n const payload = grant.capability.split(\".\")[1];\n if (!payload) return null;\n try {\n const decoded = JSON.parse(Buffer.from(payload, \"base64url\").toString(\"utf-8\")) as unknown;\n const exp = (decoded as { e?: unknown } | null)?.e;\n return typeof exp === \"number\" && Number.isFinite(exp) ? exp : null;\n } catch {\n return null;\n }\n}\n\n/**\n * The grant a merged turn runs with: symmetric to `intersectActorTopicScopes`\n * — a request without a grant leaves the batch without one (fail-closed), and\n * a batch of grants for one hub keeps the one that expires last so the merged\n * turn is not cut short by the oldest message's capability. Grants naming\n * different hubs never merge (the batch runs with none). The caller has\n * already ensured the folded requests speak for the same actor.\n */\nexport function mergeRemoteSessionGrants(\n grants: ReadonlyArray<RemoteSessionGrant | undefined>,\n): RemoteSessionGrant | undefined {\n if (grants.length === 0 || grants.some((grant) => grant === undefined)) return undefined;\n const present = grants as RemoteSessionGrant[];\n const hubUrl = present[0]!.hubUrl;\n if (present.some((grant) => grant.hubUrl !== hubUrl)) return undefined;\n let chosen = present[present.length - 1]!;\n let chosenExpiry = remoteSessionGrantExpiry(chosen);\n for (const grant of present) {\n const expiry = remoteSessionGrantExpiry(grant);\n if (expiry !== null && (chosenExpiry === null || expiry > chosenExpiry)) {\n chosen = grant;\n chosenExpiry = expiry;\n }\n }\n return chosen;\n}\n\n/**\n * Argv-safe encoding for the stdio session-comm server\n * (`--remote-session-grant=`). Re-validated before encoding, so an in-process\n * caller cannot put an unbounded or malformed grant into argv.\n */\nexport function encodeRemoteSessionGrantArg(grant: RemoteSessionGrant): string {\n const validated = validateRemoteSessionGrant(grant);\n if (!validated.ok) throw new Error(validated.error);\n if (!validated.grant) throw new Error(\"remoteSession is required\");\n return Buffer.from(JSON.stringify(validated.grant), \"utf-8\").toString(\"base64url\");\n}\n\n/** Inverse of {@link encodeRemoteSessionGrantArg}; `null` when malformed. */\nexport function decodeRemoteSessionGrantArg(value: string): RemoteSessionGrant | null {\n try {\n const decoded = JSON.parse(Buffer.from(value, \"base64url\").toString(\"utf-8\")) as unknown;\n return parseRemoteSessionGrant(decoded) ?? null;\n } catch {\n return null;\n }\n}\n",
16
- "/**\n * Runtime-MCP wiring shared between core (which injects the MCP into agent\n * sessions) and @negotium/mcp (which serves the endpoint).\n *\n * The runtime process exposes one HTTP MCP endpoint; every agent turn gets a\n * per-turn signed token carrying its full execution context, so the MCP layer\n * never trusts the agent to say who it is. Ported from otium runtime-api\n * `mcp/runtime-server.ts` (transport-agnostic parts only).\n */\n\nimport { createHash, createHmac, timingSafeEqual } from \"node:crypto\";\nimport { isExplicitAgentSwitchTargets } from \"#agents/explicit-agent-switch\";\nimport { NEGOTIUM_PORT, RUNTIME_MCP_SECRET } from \"#platform/config\";\nimport { logger } from \"#platform/logger\";\nimport { isActorTopicScope } from \"#runtime/actor-topic-scope\";\nimport { isRemoteSessionGrant } from \"#runtime/remote-session-grant\";\nimport {\n type ActorTopicScope,\n type AgentKind,\n isAgentKind,\n type PeerRuntimeBridgeContext,\n type RemoteSessionGrant,\n} from \"#types\";\n\nexport const RUNTIME_MCP_KEY = \"runtime\";\n\nexport const RUNTIME_MCP_BASE_PATH = \"/mcp/runtime\";\nexport const HOSTED_MCP_SURFACES = [\n \"task\",\n \"decision\",\n \"token-stats\",\n \"system-health\",\n \"vault\",\n \"wiki\",\n \"skills\",\n \"session-comm\",\n \"agent-health\",\n] as const;\nexport type HostedMcpSurface = (typeof HOSTED_MCP_SURFACES)[number];\nconst TOKEN_TTL_MS = 4 * 60 * 60 * 1000;\nconst CLAUDE_MCP_TOOL_TIMEOUT_MS = 600_000;\n\n/**\n * Hard ceiling on the length of a built-in MCP URL (path plus `?token=...`).\n *\n * The signed per-turn token rides the URL query of an `http://127.0.0.1`\n * request, and `Bun.serve` answers 431 once the request line is too long:\n * measured on Bun 1.3.14 with a plain `fetch`, a 16,205-character URL is\n * served (200) and a 16,305-character one is refused (431). The budget stays\n * 1,869 characters under the last known-good length so the server, the\n * agent's own client and a slightly different Bun release all have room.\n *\n * Real sizes (UUID ids, base64url growth of 4/3 on the JSON payload):\n * - runtime token, no assertion, every optional field set (peer bridge,\n * thread, 64-char title, workspace cwd, all three explicit-switch\n * targets): ~1,150-character URL;\n * - the same with the largest assertion `validateActorTopicScope` admits\n * (8,159 bytes of JSON = 208 UUIDs): 12,052–12,055 characters, under this\n * budget with ~2,280 characters to spare for an unusually long cwd or title;\n * the hosted tokens (`buildHostedMcpSpec`) with the same assertion measure\n * 12,100–12,118, so neither variant is the \"small\" one.\n * The token has no free-text field: the user's prompt never rides it. It used\n * to, and an uncapped prompt made the assertion cap meaningless (3,000 Korean\n * characters on top of the maximal assertion gave a 24,009-character URL and\n * 10,000 gave 52,009 — every built-in MCP unreachable for that turn), while a\n * capped one broke `set_agent` for any request phrased after the cap. The\n * prompt's only consumer was that gate, so the node now derives the gate's\n * answer from the full prompt when it mints the token\n * (`explicitAgentSwitchTargets`, at most three agent names) and signs that.\n *\n * Over budget, {@link buildRuntimeMcpSpec} throws\n * {@link McpUrlBudgetExceededError} rather than minting a URL that will 431.\n * Nothing is dropped or trimmed to fit: every remaining field either\n * authorizes (ids, assertion, switch targets) or changes behaviour (thread,\n * capabilities, bridge), and a token missing one would widen or alter the\n * turn, not narrow it.\n */\nexport const MCP_URL_BUDGET_CHARS = 14 * 1024;\n\nexport class McpUrlBudgetExceededError extends Error {\n constructor(\n readonly surface: string,\n readonly urlLength: number,\n ) {\n super(\n `built-in MCP URL for \"${surface}\" is ${urlLength} characters; the transport allows at most ${MCP_URL_BUDGET_CHARS}`,\n );\n this.name = \"McpUrlBudgetExceededError\";\n }\n}\n\nexport interface RuntimeMcpContext {\n /** Canonical principal authorized against this node's topic roster. */\n userId: string;\n /** Product-side human actor when it differs from the execution principal. */\n actorUserId?: string;\n /**\n * Hub-asserted rooms `actorUserId` may reach on this node. Signed with the\n * rest of the context and authoritative when present (no lineage is added);\n * absent means the tools reach only the current room plus its own subagent\n * lineage.\n */\n actorTopicScope?: ActorTopicScope;\n topicId: string;\n topicTitle: string;\n queryId?: string;\n cwd: string;\n agent: AgentKind;\n model?: string;\n /**\n * Agents the current user message explicitly asked to switch to, derived\n * from the full prompt at mint time (`explicitAgentSwitchTargets`). Signed\n * with the rest of the context, so the agent cannot grant itself a switch;\n * absent or empty means `set_agent` is refused this turn.\n */\n explicitAgentSwitchTargets?: AgentKind[];\n autoContinue?: boolean;\n /** Capability minted by the adapter. Visual tools are absent unless true. */\n visualTools?: boolean;\n /** Capability minted by the adapter. File-delivery tools are absent unless true. */\n fileDeliveryTools?: boolean;\n /**\n * Thread this turn is answering inside, when it is answering in one.\n *\n * The runtime MCP is built per turn from a signed token, so unlike the\n * session — which spans the whole topic — this context can carry a value\n * that changes from one turn to the next. That is what lets `thread_read`\n * default to \"the thread I am in\" with no argument.\n */\n threadRootId?: string;\n peerBridge?: PeerRuntimeBridgeContext;\n}\n\n/** Signed identity/capability context shared by hosted built-in MCP surfaces. */\nexport interface HostedMcpContext {\n userId: string;\n /** Product-side human actor when it differs from the execution principal. */\n actorUserId?: string;\n /** Hub-asserted rooms `actorUserId` may reach; see {@link RuntimeMcpContext}. */\n actorTopicScope?: ActorTopicScope;\n /**\n * Hub-issued per-turn authority for remote (`node/topic`) session-comm.\n * Carried by the `session-comm` audience only. Signed with the rest of the\n * context so the agent cannot mint or swap one; the capability inside is a\n * bearer for the hub, which the node cannot verify (it holds no key) and\n * only ever decodes for the untrusted `e` expiry it uses to order grants\n * when several requests fold into one turn.\n */\n remoteSession?: RemoteSessionGrant;\n topicTitle: string;\n topicId?: string;\n queryId?: string;\n wikiTopicId?: string;\n subagentParentTopicId?: string;\n cwd: string;\n agent: AgentKind;\n model?: string;\n depth?: number;\n silent?: boolean;\n /**\n * Thread the calling turn is answering inside.\n *\n * Present on the hosted surface as well as the stdio one: `session-comm` is\n * served both ways, and the hosted path — the default — carries its context\n * in a signed per-turn token rather than in argv.\n */\n threadRootId?: string;\n peerBridge?: PeerRuntimeBridgeContext;\n}\n\ntype RuntimeTokenPayload = {\n v: 1;\n exp: number;\n ctx: RuntimeMcpContext;\n};\n\ntype HostedTokenPayload = {\n v: 2;\n exp: number;\n aud: HostedMcpSurface;\n ctx: HostedMcpContext;\n};\n\nlet runtimePort = NEGOTIUM_PORT;\n\n/** The runtime host calls this once it knows which port it actually bound. */\nexport function setRuntimeMcpPort(port: number): void {\n runtimePort = port;\n}\n\nexport function getRuntimeMcpPort(): number {\n return runtimePort;\n}\n\nfunction encodeTokenPart(value: unknown): string {\n return Buffer.from(JSON.stringify(value), \"utf-8\").toString(\"base64url\");\n}\n\nfunction decodeTokenPart(part: string): unknown {\n return JSON.parse(Buffer.from(part, \"base64url\").toString(\"utf-8\")) as unknown;\n}\n\nfunction signTokenPayload(payloadPart: string): string {\n return createHmac(\"sha256\", RUNTIME_MCP_SECRET).update(payloadPart).digest(\"base64url\");\n}\n\nfunction safeEqual(a: string, b: string): boolean {\n const aa = Buffer.from(a);\n const bb = Buffer.from(b);\n return aa.length === bb.length && timingSafeEqual(aa, bb);\n}\n\nfunction isRuntimeMcpContext(value: unknown): value is RuntimeMcpContext {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const ctx = value as Partial<RuntimeMcpContext>;\n return (\n typeof ctx.userId === \"string\" &&\n typeof ctx.topicId === \"string\" &&\n typeof ctx.topicTitle === \"string\" &&\n typeof ctx.cwd === \"string\" &&\n typeof ctx.agent === \"string\" &&\n isAgentKind(ctx.agent) &&\n (ctx.actorUserId === undefined || typeof ctx.actorUserId === \"string\") &&\n (ctx.actorTopicScope === undefined || isActorTopicScope(ctx.actorTopicScope)) &&\n (ctx.queryId === undefined || typeof ctx.queryId === \"string\") &&\n (ctx.model === undefined || typeof ctx.model === \"string\") &&\n (ctx.explicitAgentSwitchTargets === undefined ||\n isExplicitAgentSwitchTargets(ctx.explicitAgentSwitchTargets)) &&\n (ctx.autoContinue === undefined || typeof ctx.autoContinue === \"boolean\") &&\n (ctx.visualTools === undefined || typeof ctx.visualTools === \"boolean\") &&\n (ctx.fileDeliveryTools === undefined || typeof ctx.fileDeliveryTools === \"boolean\") &&\n (ctx.peerBridge === undefined ||\n (typeof ctx.peerBridge.hubCellId === \"string\" &&\n typeof ctx.peerBridge.hostTopicId === \"string\" &&\n typeof ctx.peerBridge.hostQueryId === \"string\" &&\n typeof ctx.peerBridge.canSpawnSubagents === \"boolean\"))\n );\n}\n\nexport function isHostedMcpSurface(value: string): value is HostedMcpSurface {\n return (HOSTED_MCP_SURFACES as readonly string[]).includes(value);\n}\n\nfunction isHostedMcpContext(value: unknown): value is HostedMcpContext {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const ctx = value as Partial<HostedMcpContext>;\n return (\n typeof ctx.userId === \"string\" &&\n typeof ctx.topicTitle === \"string\" &&\n typeof ctx.cwd === \"string\" &&\n typeof ctx.agent === \"string\" &&\n isAgentKind(ctx.agent) &&\n (ctx.actorUserId === undefined || typeof ctx.actorUserId === \"string\") &&\n (ctx.actorTopicScope === undefined || isActorTopicScope(ctx.actorTopicScope)) &&\n (ctx.remoteSession === undefined || isRemoteSessionGrant(ctx.remoteSession)) &&\n (ctx.topicId === undefined || typeof ctx.topicId === \"string\") &&\n (ctx.queryId === undefined || typeof ctx.queryId === \"string\") &&\n (ctx.wikiTopicId === undefined || typeof ctx.wikiTopicId === \"string\") &&\n (ctx.subagentParentTopicId === undefined || typeof ctx.subagentParentTopicId === \"string\") &&\n (ctx.model === undefined || typeof ctx.model === \"string\") &&\n (ctx.depth === undefined || (Number.isInteger(ctx.depth) && ctx.depth >= 0)) &&\n (ctx.silent === undefined || typeof ctx.silent === \"boolean\") &&\n (ctx.peerBridge === undefined ||\n (typeof ctx.peerBridge.hubCellId === \"string\" &&\n typeof ctx.peerBridge.hostTopicId === \"string\" &&\n typeof ctx.peerBridge.hostQueryId === \"string\" &&\n typeof ctx.peerBridge.canSpawnSubagents === \"boolean\"))\n );\n}\n\nexport function issueRuntimeMcpToken(ctx: RuntimeMcpContext): string {\n const payloadPart = encodeTokenPart({\n v: 1,\n exp: Date.now() + TOKEN_TTL_MS,\n ctx,\n } satisfies RuntimeTokenPayload);\n return `${payloadPart}.${signTokenPayload(payloadPart)}`;\n}\n\nexport function resolveRuntimeMcpToken(token: string | null): RuntimeMcpContext | null {\n if (!token) return null;\n const [payloadPart, signature, extra] = token.split(\".\");\n if (!payloadPart || !signature || extra !== undefined) return null;\n if (!safeEqual(signature, signTokenPayload(payloadPart))) return null;\n\n try {\n const payload = decodeTokenPart(payloadPart) as Partial<RuntimeTokenPayload>;\n if (payload.v !== 1 || typeof payload.exp !== \"number\" || payload.exp <= Date.now())\n return null;\n if (!isRuntimeMcpContext(payload.ctx)) return null;\n return payload.ctx;\n } catch {\n return null;\n }\n}\n\nexport function issueHostedMcpToken(surface: HostedMcpSurface, ctx: HostedMcpContext): string {\n const payloadPart = encodeTokenPart({\n v: 2,\n exp: Date.now() + TOKEN_TTL_MS,\n aud: surface,\n ctx,\n } satisfies HostedTokenPayload);\n return `${payloadPart}.${signTokenPayload(payloadPart)}`;\n}\n\nexport function resolveHostedMcpToken(\n token: string | null,\n surface: HostedMcpSurface,\n): HostedMcpContext | null {\n if (!token) return null;\n const [payloadPart, signature, extra] = token.split(\".\");\n if (!payloadPart || !signature || extra !== undefined) return null;\n if (!safeEqual(signature, signTokenPayload(payloadPart))) return null;\n\n try {\n const payload = decodeTokenPart(payloadPart) as Partial<HostedTokenPayload>;\n if (\n payload.v !== 2 ||\n payload.aud !== surface ||\n typeof payload.exp !== \"number\" ||\n payload.exp <= Date.now()\n ) {\n return null;\n }\n return isHostedMcpContext(payload.ctx) ? payload.ctx : null;\n } catch {\n return null;\n }\n}\n\n/**\n * MCP server spec injected into an agent session's MCP config so the agent\n * connects back to this node's runtime endpoint with its per-turn token.\n */\nexport function buildRuntimeMcpSpec(\n agent: AgentKind,\n ctx: RuntimeMcpContext,\n): Record<string, unknown> {\n const base = `http://127.0.0.1:${runtimePort}${RUNTIME_MCP_BASE_PATH}`;\n const query = `token=${encodeURIComponent(issueRuntimeMcpToken(ctx))}`;\n const url = agent === \"codex\" ? `${base}/mcp?${query}` : `${base}/sse?${query}`;\n assertMcpUrlWithinBudget(RUNTIME_MCP_KEY, url, ctx.topicId);\n if (agent === \"codex\") return { url };\n return {\n type: \"sse\" as const,\n url,\n timeout: CLAUDE_MCP_TOOL_TIMEOUT_MS,\n ...(agent === \"maestro\" ? { lifecycle: \"turn\" as const } : {}),\n };\n}\n\n/**\n * Refuse loudly rather than hand the agent a URL the server will 431. This\n * fails the turn's MCP setup, which is the safe outcome: the alternative —\n * minting the token without the fields that do not fit — would silently\n * widen the turn whenever the field that did not fit was the assertion.\n */\nfunction assertMcpUrlWithinBudget(surface: string, url: string, topicId: string | undefined) {\n if (url.length <= MCP_URL_BUDGET_CHARS) return;\n const error = new McpUrlBudgetExceededError(surface, url.length);\n logger.error(\n { topicId, surface, urlLength: url.length, budget: MCP_URL_BUDGET_CHARS },\n \"built-in MCP URL exceeds the transport budget; refusing to mint the token\",\n );\n throw error;\n}\n\nfunction hostedMcpCacheIdentity(surface: HostedMcpSurface, ctx: HostedMcpContext): string {\n let semanticContext: unknown;\n switch (surface) {\n case \"system-health\":\n semanticContext = {};\n break;\n case \"token-stats\":\n case \"agent-health\":\n semanticContext = { userId: ctx.userId };\n break;\n case \"task\":\n semanticContext = {\n userId: ctx.userId,\n topicTitle: ctx.topicTitle,\n topicId: ctx.topicId ?? null,\n };\n break;\n case \"wiki\":\n case \"skills\":\n semanticContext = {\n userId: ctx.userId,\n topicId: ctx.wikiTopicId ?? ctx.topicId ?? null,\n };\n break;\n case \"vault\":\n semanticContext = { userId: ctx.userId, cwd: ctx.cwd, agent: ctx.agent };\n break;\n case \"session-comm\":\n semanticContext = {\n userId: ctx.userId,\n // Who may reach what changes per turn (a different person, or a hub\n // that has since changed a roster), so a cached server must not carry\n // an earlier turn's reach into this one.\n actorUserId: ctx.actorUserId ?? null,\n actorTopicScope: ctx.actorTopicScope ?? null,\n // The grant is per turn (bound to this turn's request id), so a\n // server cached with one must not answer a later turn with it.\n remoteSession: ctx.remoteSession ?? null,\n topicTitle: ctx.topicTitle,\n topicId: ctx.topicId ?? null,\n subagentParentTopicId: ctx.subagentParentTopicId ?? null,\n depth: ctx.depth ?? 0,\n silent: ctx.silent ?? false,\n agent: ctx.agent,\n // Part of the identity, not a detail: a server cached for a channel\n // turn would otherwise be reused for a thread turn and record the ask\n // against the wrong conversation.\n threadRootId: ctx.threadRootId ?? null,\n peerBridge: ctx.peerBridge ?? null,\n };\n break;\n }\n const digest = createHash(\"sha256\")\n .update(JSON.stringify([surface, semanticContext]))\n .digest(\"hex\")\n .slice(0, 24);\n return `hosted:${surface}:${digest}`;\n}\n\n/** Build an agent transport spec for one logical MCP surface on the shared runtime process. */\nexport function buildHostedMcpSpec(\n agent: AgentKind,\n surface: HostedMcpSurface,\n ctx: HostedMcpContext,\n): Record<string, unknown> {\n const token = issueHostedMcpToken(surface, ctx);\n const base = `http://127.0.0.1:${runtimePort}${RUNTIME_MCP_BASE_PATH}/${surface}`;\n const query = `token=${encodeURIComponent(token)}`;\n const url = agent === \"codex\" ? `${base}/mcp?${query}` : `${base}/sse?${query}`;\n // A hosted context has no free-text field either. Measured with the\n // maximal assertion (208 UUIDs, 8,159 bytes) and every optional field set,\n // the hosted URL is marginally *longer* than the runtime one — ~12,118\n // characters for `session-comm`, 12,100–12,109 for the other surfaces,\n // against 12,052–12,055 for the runtime token — because the surface name\n // and lifecycle fields outweigh the runtime token's switch-target list.\n // All stay ≥ 2,200 characters under budget. The session-comm token may\n // additionally carry a remote-session grant. Measured in\n // `hosted-runtime-spec.test.ts`: the hub's real grant (≈440-character\n // capability, short hub URL) adds 682 characters — 12,800 beside the\n // maximal assertion, ~1,500 to spare. A grant at both caps (512-char URL,\n // 2 KiB capability) adds ≈3,475 and fits alone (4,689) but not beside the\n // maximal assertion (15,593); the hard check below refuses that mint, so\n // the caps bound the grant while the budget bounds the token — the largest\n // capability that fits beside a maximal assertion is ≈1,590 characters.\n // The check is the same on purpose, so a field added later cannot quietly\n // push it past the transport.\n assertMcpUrlWithinBudget(surface, url, ctx.topicId);\n if (agent === \"codex\") return { url };\n const queryBound =\n surface === \"session-comm\" &&\n (ctx.silent === true || ctx.peerBridge !== undefined || ctx.remoteSession !== undefined);\n const lifecycle = queryBound ? \"turn\" : surface === \"session-comm\" ? \"session\" : \"process\";\n return {\n type: \"sse\" as const,\n url,\n timeout: CLAUDE_MCP_TOOL_TIMEOUT_MS,\n ...(agent === \"maestro\"\n ? {\n lifecycle,\n cacheKey: hostedMcpCacheIdentity(surface, ctx),\n }\n : {}),\n };\n}\n",
16
+ "/**\n * Runtime-MCP wiring shared between core (which injects the MCP into agent\n * sessions) and @negotium/mcp (which serves the endpoint).\n *\n * The runtime process exposes one HTTP MCP endpoint; every agent turn gets a\n * per-turn signed token carrying its full execution context, so the MCP layer\n * never trusts the agent to say who it is. Ported from otium runtime-api\n * `mcp/runtime-server.ts` (transport-agnostic parts only).\n */\n\nimport { createHash, createHmac, timingSafeEqual } from \"node:crypto\";\nimport { isExplicitAgentSwitchTargets } from \"#agents/explicit-agent-switch\";\nimport { NEGOTIUM_PORT, RUNTIME_MCP_SECRET } from \"#platform/config\";\nimport { logger } from \"#platform/logger\";\nimport { isActorTopicScope } from \"#runtime/actor-topic-scope\";\nimport { isRemoteSessionGrant } from \"#runtime/remote-session-grant\";\nimport {\n type ActorTopicScope,\n type AgentKind,\n isAgentKind,\n type PeerRuntimeBridgeContext,\n type RemoteSessionGrant,\n} from \"#types\";\n\nexport const RUNTIME_MCP_KEY = \"runtime\";\n\nexport const RUNTIME_MCP_BASE_PATH = \"/mcp/runtime\";\nexport const HOSTED_MCP_SURFACES = [\n \"task\",\n \"decision\",\n \"token-stats\",\n \"system-health\",\n \"vault\",\n \"wiki\",\n \"skills\",\n \"session-comm\",\n \"agent-health\",\n \"session-history\",\n] as const;\nexport type HostedMcpSurface = (typeof HOSTED_MCP_SURFACES)[number];\nconst TOKEN_TTL_MS = 4 * 60 * 60 * 1000;\nconst CLAUDE_MCP_TOOL_TIMEOUT_MS = 600_000;\n\n/**\n * Hard ceiling on the length of a built-in MCP URL (path plus `?token=...`).\n *\n * The signed per-turn token rides the URL query of an `http://127.0.0.1`\n * request, and `Bun.serve` answers 431 once the request line is too long:\n * measured on Bun 1.3.14 with a plain `fetch`, a 16,205-character URL is\n * served (200) and a 16,305-character one is refused (431). The budget stays\n * 1,869 characters under the last known-good length so the server, the\n * agent's own client and a slightly different Bun release all have room.\n *\n * Real sizes (UUID ids, base64url growth of 4/3 on the JSON payload):\n * - runtime token, no assertion, every optional field set (peer bridge,\n * thread, 64-char title, workspace cwd, all three explicit-switch\n * targets): ~1,150-character URL;\n * - the same with the largest assertion `validateActorTopicScope` admits\n * (8,159 bytes of JSON = 208 UUIDs): 12,052–12,055 characters, under this\n * budget with ~2,280 characters to spare for an unusually long cwd or title;\n * the hosted tokens (`buildHostedMcpSpec`) with the same assertion measure\n * 12,100–12,118, so neither variant is the \"small\" one.\n * The token has no free-text field: the user's prompt never rides it. It used\n * to, and an uncapped prompt made the assertion cap meaningless (3,000 Korean\n * characters on top of the maximal assertion gave a 24,009-character URL and\n * 10,000 gave 52,009 — every built-in MCP unreachable for that turn), while a\n * capped one broke `set_agent` for any request phrased after the cap. The\n * prompt's only consumer was that gate, so the node now derives the gate's\n * answer from the full prompt when it mints the token\n * (`explicitAgentSwitchTargets`, at most three agent names) and signs that.\n *\n * Over budget, {@link buildRuntimeMcpSpec} throws\n * {@link McpUrlBudgetExceededError} rather than minting a URL that will 431.\n * Nothing is dropped or trimmed to fit: every remaining field either\n * authorizes (ids, assertion, switch targets) or changes behaviour (thread,\n * capabilities, bridge), and a token missing one would widen or alter the\n * turn, not narrow it.\n */\nexport const MCP_URL_BUDGET_CHARS = 14 * 1024;\n\nexport class McpUrlBudgetExceededError extends Error {\n constructor(\n readonly surface: string,\n readonly urlLength: number,\n ) {\n super(\n `built-in MCP URL for \"${surface}\" is ${urlLength} characters; the transport allows at most ${MCP_URL_BUDGET_CHARS}`,\n );\n this.name = \"McpUrlBudgetExceededError\";\n }\n}\n\nexport interface RuntimeMcpContext {\n /** Canonical principal authorized against this node's topic roster. */\n userId: string;\n /** Product-side human actor when it differs from the execution principal. */\n actorUserId?: string;\n /**\n * Hub-asserted rooms `actorUserId` may reach on this node. Signed with the\n * rest of the context and authoritative when present (no lineage is added);\n * absent means the tools reach only the current room plus its own subagent\n * lineage.\n */\n actorTopicScope?: ActorTopicScope;\n topicId: string;\n topicTitle: string;\n queryId?: string;\n cwd: string;\n agent: AgentKind;\n model?: string;\n /**\n * Agents the current user message explicitly asked to switch to, derived\n * from the full prompt at mint time (`explicitAgentSwitchTargets`). Signed\n * with the rest of the context, so the agent cannot grant itself a switch;\n * absent or empty means `set_agent` is refused this turn.\n */\n explicitAgentSwitchTargets?: AgentKind[];\n autoContinue?: boolean;\n /** Capability minted by the adapter. Visual tools are absent unless true. */\n visualTools?: boolean;\n /** Capability minted by the adapter. File-delivery tools are absent unless true. */\n fileDeliveryTools?: boolean;\n /**\n * Thread this turn is answering inside, when it is answering in one.\n *\n * The runtime MCP is built per turn from a signed token, so unlike the\n * session — which spans the whole topic — this context can carry a value\n * that changes from one turn to the next. That is what lets `thread_read`\n * default to \"the thread I am in\" with no argument.\n */\n threadRootId?: string;\n peerBridge?: PeerRuntimeBridgeContext;\n}\n\n/** Signed identity/capability context shared by hosted built-in MCP surfaces. */\nexport interface HostedMcpContext {\n userId: string;\n /** Product-side human actor when it differs from the execution principal. */\n actorUserId?: string;\n /** Hub-asserted rooms `actorUserId` may reach; see {@link RuntimeMcpContext}. */\n actorTopicScope?: ActorTopicScope;\n /**\n * Hub-issued per-turn authority for remote (`node/topic`) session-comm.\n * Carried by the `session-comm` audience only. Signed with the rest of the\n * context so the agent cannot mint or swap one; the capability inside is a\n * bearer for the hub, which the node cannot verify (it holds no key) and\n * only ever decodes for the untrusted `e` expiry it uses to order grants\n * when several requests fold into one turn.\n */\n remoteSession?: RemoteSessionGrant;\n topicTitle: string;\n topicId?: string;\n queryId?: string;\n wikiTopicId?: string;\n subagentParentTopicId?: string;\n cwd: string;\n agent: AgentKind;\n model?: string;\n depth?: number;\n silent?: boolean;\n /**\n * Thread the calling turn is answering inside.\n *\n * Present on the hosted surface as well as the stdio one: `session-comm` is\n * served both ways, and the hosted path — the default — carries its context\n * in a signed per-turn token rather than in argv.\n */\n threadRootId?: string;\n peerBridge?: PeerRuntimeBridgeContext;\n}\n\ntype RuntimeTokenPayload = {\n v: 1;\n exp: number;\n ctx: RuntimeMcpContext;\n};\n\ntype HostedTokenPayload = {\n v: 2;\n exp: number;\n aud: HostedMcpSurface;\n ctx: HostedMcpContext;\n};\n\nlet runtimePort = NEGOTIUM_PORT;\n\n/** The runtime host calls this once it knows which port it actually bound. */\nexport function setRuntimeMcpPort(port: number): void {\n runtimePort = port;\n}\n\nexport function getRuntimeMcpPort(): number {\n return runtimePort;\n}\n\nfunction encodeTokenPart(value: unknown): string {\n return Buffer.from(JSON.stringify(value), \"utf-8\").toString(\"base64url\");\n}\n\nfunction decodeTokenPart(part: string): unknown {\n return JSON.parse(Buffer.from(part, \"base64url\").toString(\"utf-8\")) as unknown;\n}\n\nfunction signTokenPayload(payloadPart: string): string {\n return createHmac(\"sha256\", RUNTIME_MCP_SECRET).update(payloadPart).digest(\"base64url\");\n}\n\nfunction safeEqual(a: string, b: string): boolean {\n const aa = Buffer.from(a);\n const bb = Buffer.from(b);\n return aa.length === bb.length && timingSafeEqual(aa, bb);\n}\n\nfunction isRuntimeMcpContext(value: unknown): value is RuntimeMcpContext {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const ctx = value as Partial<RuntimeMcpContext>;\n return (\n typeof ctx.userId === \"string\" &&\n typeof ctx.topicId === \"string\" &&\n typeof ctx.topicTitle === \"string\" &&\n typeof ctx.cwd === \"string\" &&\n typeof ctx.agent === \"string\" &&\n isAgentKind(ctx.agent) &&\n (ctx.actorUserId === undefined || typeof ctx.actorUserId === \"string\") &&\n (ctx.actorTopicScope === undefined || isActorTopicScope(ctx.actorTopicScope)) &&\n (ctx.queryId === undefined || typeof ctx.queryId === \"string\") &&\n (ctx.model === undefined || typeof ctx.model === \"string\") &&\n (ctx.explicitAgentSwitchTargets === undefined ||\n isExplicitAgentSwitchTargets(ctx.explicitAgentSwitchTargets)) &&\n (ctx.autoContinue === undefined || typeof ctx.autoContinue === \"boolean\") &&\n (ctx.visualTools === undefined || typeof ctx.visualTools === \"boolean\") &&\n (ctx.fileDeliveryTools === undefined || typeof ctx.fileDeliveryTools === \"boolean\") &&\n (ctx.peerBridge === undefined ||\n (typeof ctx.peerBridge.hubCellId === \"string\" &&\n typeof ctx.peerBridge.hostTopicId === \"string\" &&\n typeof ctx.peerBridge.hostQueryId === \"string\" &&\n typeof ctx.peerBridge.canSpawnSubagents === \"boolean\"))\n );\n}\n\nexport function isHostedMcpSurface(value: string): value is HostedMcpSurface {\n return (HOSTED_MCP_SURFACES as readonly string[]).includes(value);\n}\n\nfunction isHostedMcpContext(value: unknown): value is HostedMcpContext {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const ctx = value as Partial<HostedMcpContext>;\n return (\n typeof ctx.userId === \"string\" &&\n typeof ctx.topicTitle === \"string\" &&\n typeof ctx.cwd === \"string\" &&\n typeof ctx.agent === \"string\" &&\n isAgentKind(ctx.agent) &&\n (ctx.actorUserId === undefined || typeof ctx.actorUserId === \"string\") &&\n (ctx.actorTopicScope === undefined || isActorTopicScope(ctx.actorTopicScope)) &&\n (ctx.remoteSession === undefined || isRemoteSessionGrant(ctx.remoteSession)) &&\n (ctx.topicId === undefined || typeof ctx.topicId === \"string\") &&\n (ctx.queryId === undefined || typeof ctx.queryId === \"string\") &&\n (ctx.wikiTopicId === undefined || typeof ctx.wikiTopicId === \"string\") &&\n (ctx.subagentParentTopicId === undefined || typeof ctx.subagentParentTopicId === \"string\") &&\n (ctx.model === undefined || typeof ctx.model === \"string\") &&\n (ctx.depth === undefined || (Number.isInteger(ctx.depth) && ctx.depth >= 0)) &&\n (ctx.silent === undefined || typeof ctx.silent === \"boolean\") &&\n (ctx.peerBridge === undefined ||\n (typeof ctx.peerBridge.hubCellId === \"string\" &&\n typeof ctx.peerBridge.hostTopicId === \"string\" &&\n typeof ctx.peerBridge.hostQueryId === \"string\" &&\n typeof ctx.peerBridge.canSpawnSubagents === \"boolean\"))\n );\n}\n\nexport function issueRuntimeMcpToken(ctx: RuntimeMcpContext): string {\n const payloadPart = encodeTokenPart({\n v: 1,\n exp: Date.now() + TOKEN_TTL_MS,\n ctx,\n } satisfies RuntimeTokenPayload);\n return `${payloadPart}.${signTokenPayload(payloadPart)}`;\n}\n\nexport function resolveRuntimeMcpToken(token: string | null): RuntimeMcpContext | null {\n if (!token) return null;\n const [payloadPart, signature, extra] = token.split(\".\");\n if (!payloadPart || !signature || extra !== undefined) return null;\n if (!safeEqual(signature, signTokenPayload(payloadPart))) return null;\n\n try {\n const payload = decodeTokenPart(payloadPart) as Partial<RuntimeTokenPayload>;\n if (payload.v !== 1 || typeof payload.exp !== \"number\" || payload.exp <= Date.now())\n return null;\n if (!isRuntimeMcpContext(payload.ctx)) return null;\n return payload.ctx;\n } catch {\n return null;\n }\n}\n\nexport function issueHostedMcpToken(surface: HostedMcpSurface, ctx: HostedMcpContext): string {\n const payloadPart = encodeTokenPart({\n v: 2,\n exp: Date.now() + TOKEN_TTL_MS,\n aud: surface,\n ctx,\n } satisfies HostedTokenPayload);\n return `${payloadPart}.${signTokenPayload(payloadPart)}`;\n}\n\nexport function resolveHostedMcpToken(\n token: string | null,\n surface: HostedMcpSurface,\n): HostedMcpContext | null {\n if (!token) return null;\n const [payloadPart, signature, extra] = token.split(\".\");\n if (!payloadPart || !signature || extra !== undefined) return null;\n if (!safeEqual(signature, signTokenPayload(payloadPart))) return null;\n\n try {\n const payload = decodeTokenPart(payloadPart) as Partial<HostedTokenPayload>;\n if (\n payload.v !== 2 ||\n payload.aud !== surface ||\n typeof payload.exp !== \"number\" ||\n payload.exp <= Date.now()\n ) {\n return null;\n }\n return isHostedMcpContext(payload.ctx) ? payload.ctx : null;\n } catch {\n return null;\n }\n}\n\n/**\n * MCP server spec injected into an agent session's MCP config so the agent\n * connects back to this node's runtime endpoint with its per-turn token.\n */\nexport function buildRuntimeMcpSpec(\n agent: AgentKind,\n ctx: RuntimeMcpContext,\n): Record<string, unknown> {\n const base = `http://127.0.0.1:${runtimePort}${RUNTIME_MCP_BASE_PATH}`;\n const query = `token=${encodeURIComponent(issueRuntimeMcpToken(ctx))}`;\n const url = agent === \"codex\" ? `${base}/mcp?${query}` : `${base}/sse?${query}`;\n assertMcpUrlWithinBudget(RUNTIME_MCP_KEY, url, ctx.topicId);\n if (agent === \"codex\") return { url };\n return {\n type: \"sse\" as const,\n url,\n timeout: CLAUDE_MCP_TOOL_TIMEOUT_MS,\n ...(agent === \"maestro\" ? { lifecycle: \"turn\" as const } : {}),\n };\n}\n\n/**\n * Refuse loudly rather than hand the agent a URL the server will 431. This\n * fails the turn's MCP setup, which is the safe outcome: the alternative —\n * minting the token without the fields that do not fit — would silently\n * widen the turn whenever the field that did not fit was the assertion.\n */\nfunction assertMcpUrlWithinBudget(surface: string, url: string, topicId: string | undefined) {\n if (url.length <= MCP_URL_BUDGET_CHARS) return;\n const error = new McpUrlBudgetExceededError(surface, url.length);\n logger.error(\n { topicId, surface, urlLength: url.length, budget: MCP_URL_BUDGET_CHARS },\n \"built-in MCP URL exceeds the transport budget; refusing to mint the token\",\n );\n throw error;\n}\n\nfunction hostedMcpCacheIdentity(surface: HostedMcpSurface, ctx: HostedMcpContext): string {\n let semanticContext: unknown;\n switch (surface) {\n case \"system-health\":\n semanticContext = {};\n break;\n case \"token-stats\":\n case \"agent-health\":\n semanticContext = { userId: ctx.userId };\n break;\n case \"task\":\n semanticContext = {\n userId: ctx.userId,\n topicTitle: ctx.topicTitle,\n topicId: ctx.topicId ?? null,\n };\n break;\n case \"wiki\":\n case \"skills\":\n semanticContext = {\n userId: ctx.userId,\n topicId: ctx.wikiTopicId ?? ctx.topicId ?? null,\n };\n break;\n case \"vault\":\n semanticContext = { userId: ctx.userId, cwd: ctx.cwd, agent: ctx.agent };\n break;\n case \"session-comm\":\n semanticContext = {\n userId: ctx.userId,\n // Who may reach what changes per turn (a different person, or a hub\n // that has since changed a roster), so a cached server must not carry\n // an earlier turn's reach into this one.\n actorUserId: ctx.actorUserId ?? null,\n actorTopicScope: ctx.actorTopicScope ?? null,\n // The grant is per turn (bound to this turn's request id), so a\n // server cached with one must not answer a later turn with it.\n remoteSession: ctx.remoteSession ?? null,\n topicTitle: ctx.topicTitle,\n topicId: ctx.topicId ?? null,\n subagentParentTopicId: ctx.subagentParentTopicId ?? null,\n depth: ctx.depth ?? 0,\n silent: ctx.silent ?? false,\n agent: ctx.agent,\n // Part of the identity, not a detail: a server cached for a channel\n // turn would otherwise be reused for a thread turn and record the ask\n // against the wrong conversation.\n threadRootId: ctx.threadRootId ?? null,\n peerBridge: ctx.peerBridge ?? null,\n };\n break;\n }\n const digest = createHash(\"sha256\")\n .update(JSON.stringify([surface, semanticContext]))\n .digest(\"hex\")\n .slice(0, 24);\n return `hosted:${surface}:${digest}`;\n}\n\n/** Build an agent transport spec for one logical MCP surface on the shared runtime process. */\nexport function buildHostedMcpSpec(\n agent: AgentKind,\n surface: HostedMcpSurface,\n ctx: HostedMcpContext,\n): Record<string, unknown> {\n const token = issueHostedMcpToken(surface, ctx);\n const base = `http://127.0.0.1:${runtimePort}${RUNTIME_MCP_BASE_PATH}/${surface}`;\n const query = `token=${encodeURIComponent(token)}`;\n const url = agent === \"codex\" ? `${base}/mcp?${query}` : `${base}/sse?${query}`;\n // A hosted context has no free-text field either. Measured with the\n // maximal assertion (208 UUIDs, 8,159 bytes) and every optional field set,\n // the hosted URL is marginally *longer* than the runtime one — ~12,118\n // characters for `session-comm`, 12,100–12,109 for the other surfaces,\n // against 12,052–12,055 for the runtime token — because the surface name\n // and lifecycle fields outweigh the runtime token's switch-target list.\n // All stay ≥ 2,200 characters under budget. The session-comm token may\n // additionally carry a remote-session grant. Measured in\n // `hosted-runtime-spec.test.ts`: the hub's real grant (≈440-character\n // capability, short hub URL) adds 682 characters — 12,800 beside the\n // maximal assertion, ~1,500 to spare. A grant at both caps (512-char URL,\n // 2 KiB capability) adds ≈3,475 and fits alone (4,689) but not beside the\n // maximal assertion (15,593); the hard check below refuses that mint, so\n // the caps bound the grant while the budget bounds the token — the largest\n // capability that fits beside a maximal assertion is ≈1,590 characters.\n // The check is the same on purpose, so a field added later cannot quietly\n // push it past the transport.\n assertMcpUrlWithinBudget(surface, url, ctx.topicId);\n if (agent === \"codex\") return { url };\n const queryBound =\n surface === \"session-comm\" &&\n (ctx.silent === true || ctx.peerBridge !== undefined || ctx.remoteSession !== undefined);\n const lifecycle = queryBound ? \"turn\" : surface === \"session-comm\" ? \"session\" : \"process\";\n return {\n type: \"sse\" as const,\n url,\n timeout: CLAUDE_MCP_TOOL_TIMEOUT_MS,\n ...(agent === \"maestro\"\n ? {\n lifecycle,\n cacheKey: hostedMcpCacheIdentity(surface, ctx),\n }\n : {}),\n };\n}\n",
17
17
  "export interface PeerSessionBridgeIpcConfig {\n url: string;\n token: string;\n}\n\nconst registrations: Array<{ id: symbol; config: PeerSessionBridgeIpcConfig }> = [];\n\nexport function registerPeerSessionBridgeIpcConfig(config: PeerSessionBridgeIpcConfig): () => void {\n const registration = { id: Symbol(\"peer-session-bridge-ipc\"), config: { ...config } };\n registrations.push(registration);\n let disposed = false;\n return () => {\n if (disposed) return;\n disposed = true;\n const index = registrations.findIndex((entry) => entry.id === registration.id);\n if (index >= 0) registrations.splice(index, 1);\n };\n}\n\nexport function peerSessionBridgeIpcEnv(): Record<string, string> | undefined {\n const active = registrations.at(-1)?.config;\n if (!active) return undefined;\n return {\n NEGOTIUM_PEER_SESSION_BRIDGE_URL: active.url,\n NEGOTIUM_PEER_SESSION_BRIDGE_TOKEN: active.token,\n };\n}\n",
18
18
  "export const delay = (ms: number) => new Promise<void>((r) => setTimeout(r, ms));\n",
19
19
  "import { createHmac } from \"node:crypto\";\n\nexport function deriveBgBashContextCapability(\n runtimeCapability: string,\n userId: string,\n topic: string,\n): string {\n return createHmac(\"sha256\", runtimeCapability).update(`${userId}\\0${topic}`).digest(\"hex\");\n}\n",
20
20
  "import { type ChildProcess, execFileSync, spawn } from \"node:child_process\";\nimport { randomBytes } from \"node:crypto\";\nimport {\n BASH_RS_BIN,\n BASH_RS_VERSION,\n BASHRS_SPILL_ROOT,\n BG_BASH_BASE_PORT,\n BG_BASH_MAX_PORT,\n} from \"#platform/config\";\nimport { delay } from \"#platform/delay\";\nimport { logger } from \"#platform/logger\";\nimport { deriveBgBashContextCapability } from \"./context\";\n\nexport function makeBgBashKey(_userId: string, _topic: string): string {\n return \"runtime\";\n}\n\ninterface BgBashInstance {\n process: ChildProcess;\n port: number;\n startedAt: number;\n lastUsedAt: number;\n}\n\nexport interface BackgroundBashManager {\n contextCapability(userId: string, topic: string): string;\n ensure(userId: string, topic: string): Promise<number>;\n clear(userId: string, topic: string): void;\n clearUser(userId: string): void;\n killAll(): Promise<void>;\n}\n\nexport interface BackgroundBashManagerOptions {\n /**\n * bash-rs executable. Defaults to the installed binary; injectable so a test\n * can drive the manager's bookkeeping with a fake `spawn` on a host that has\n * no binary at all.\n */\n bashRsBin?: string;\n basePort?: number;\n maxPort?: number;\n capability?: string;\n serverId?: string;\n env?: NodeJS.ProcessEnv;\n fetch?: typeof globalThis.fetch;\n now?: () => number;\n delay?: (milliseconds: number) => Promise<void>;\n portPids?: (port: number) => readonly number[];\n spawn?: (\n command: string,\n args: readonly string[],\n options: Parameters<typeof spawn>[2],\n ) => ChildProcess;\n}\n\nfunction defaultPortPids(port: number): number[] {\n try {\n return execFileSync(\"lsof\", [\"-i\", `:${port}`, \"-t\"], { stdio: \"pipe\" })\n .toString()\n .trim()\n .split(\"\\n\")\n .map((pid) => Number.parseInt(pid, 10))\n .filter((pid) => !Number.isNaN(pid));\n } catch {\n return [];\n }\n}\n\n/** Create a fully isolated manager. All mutable process/port/context state belongs to the caller. */\nexport function createBackgroundBashManager(\n options: BackgroundBashManagerOptions = {},\n): BackgroundBashManager {\n const instances = new Map<string, BgBashInstance>();\n const usedPorts = new Set<number>();\n const spawning = new Map<string, Promise<number>>();\n const knownContexts = new Map<string, { userId: string; topic: string }>();\n const runtimeCapability = options.capability ?? randomBytes(32).toString(\"hex\");\n const runtimeServerId = options.serverId ?? randomBytes(16).toString(\"hex\");\n const bashRsBin = options.bashRsBin ?? BASH_RS_BIN;\n const basePort = options.basePort ?? BG_BASH_BASE_PORT;\n const maxPort = options.maxPort ?? BG_BASH_MAX_PORT;\n const fetchImpl = options.fetch ?? globalThis.fetch;\n const now = options.now ?? Date.now;\n const wait = options.delay ?? delay;\n const portPids = options.portPids ?? defaultPortPids;\n const spawnImpl =\n options.spawn ?? ((command, args, spawnOptions) => spawn(command, [...args], spawnOptions));\n\n function contextKey(userId: string, topic: string): string {\n return `${userId}\\0${topic}`;\n }\n\n function contextCapability(userId: string, topic: string): string {\n return deriveBgBashContextCapability(runtimeCapability, userId, topic);\n }\n\n async function allocatePort(excludedPorts: ReadonlySet<number> = new Set()): Promise<number> {\n for (let port = basePort; port <= maxPort; port++) {\n if (usedPorts.has(port) || excludedPorts.has(port)) continue;\n usedPorts.add(port);\n if (portPids(port).length > 0) {\n usedPorts.delete(port);\n continue;\n }\n return port;\n }\n throw new Error(\n `No available ports for background-bash (range ${basePort}-${maxPort}, ${instances.size} active)`,\n );\n }\n\n async function isHealthy(port: number): Promise<boolean> {\n try {\n const response = await fetchImpl(`http://127.0.0.1:${port}/health`, {\n signal: AbortSignal.timeout(2000),\n });\n if (!response.ok) return false;\n // Confirm this port answers for *our* spawned process rather than a\n // stale one left behind by a previous manager instance.\n const body = await response.text();\n try {\n const parsed = JSON.parse(body);\n return (\n Boolean(parsed) && typeof parsed === \"object\" && parsed.instance_id === runtimeServerId\n );\n } catch {\n return false;\n }\n } catch {\n return false;\n }\n }\n\n function killRuntime(): void {\n const key = \"runtime\";\n const instance = instances.get(key);\n if (!instance) return;\n try {\n instance.process.kill(\"SIGTERM\");\n } catch {}\n usedPorts.delete(instance.port);\n instances.delete(key);\n logger.info({ key, port: instance.port }, \"background-bash server killed\");\n }\n\n async function spawnServer(\n key: string,\n reservedPort?: number,\n excludedPorts: ReadonlySet<number> = new Set(),\n ): Promise<number> {\n // bash-rs is the only implementation. A TS server used to stand in when the\n // binary was absent, but the two agreed on the HTTP protocol while exposing\n // different MCP tool names (bash_run vs background_bash_run), so which one\n // spawned silently changed the tool surface an agent saw. Failing loudly\n // beats serving a different API than the caller was told to expect.\n //\n // Checked before allocating: the caller retries once per turn, and a port\n // reserved by a throw is never released, so allocating first leaked one\n // port per attempt until the range was exhausted and the real cause was\n // buried under \"No available ports\".\n if (!bashRsBin) {\n throw new Error(\n `background-bash requires the bash-rs ${BASH_RS_VERSION} binary; run install-bash-rs.mjs (or set NEGOTIUM_BASH_RS_BIN)`,\n );\n }\n const port = reservedPort ?? (await allocatePort(excludedPorts));\n const process = spawnImpl(bashRsBin, [String(port)], {\n stdio: \"ignore\",\n detached: false,\n // Long-lived background server — no console window on Windows. Ignored\n // on POSIX.\n windowsHide: true,\n env: {\n ...(options.env ?? globalThis.process.env),\n NEGOTIUM_BG_BASH_CAPABILITY: runtimeCapability,\n NEGOTIUM_BG_BASH_SERVER_ID: runtimeServerId,\n BASHRS_HTTP_CAPABILITY: runtimeCapability,\n BASHRS_INSTANCE_ID: runtimeServerId,\n BASHRS_SPILL_ROOT,\n },\n });\n\n process.once(\"error\", (error) => {\n logger.error({ err: error, key }, \"background-bash server error\");\n if (instances.get(key)?.process === process) {\n usedPorts.delete(port);\n instances.delete(key);\n }\n });\n process.once(\"exit\", (code) => {\n logger.info({ key, code }, \"background-bash server exited\");\n if (instances.get(key)?.process === process) {\n usedPorts.delete(port);\n instances.delete(key);\n }\n });\n\n const timestamp = now();\n instances.set(key, { process, port, startedAt: timestamp, lastUsedAt: timestamp });\n const started = now();\n while (now() - started < 8_000) {\n if (process.exitCode !== null) {\n const nextExcluded = new Set(excludedPorts);\n nextExcluded.add(port);\n return spawnServer(key, undefined, nextExcluded);\n }\n if (await isHealthy(port)) return port;\n await wait(200);\n }\n killRuntime();\n throw new Error(`background-bash server failed health check after spawn on port ${port}`);\n }\n\n async function ensure(userId: string, topic: string): Promise<number> {\n const key = makeBgBashKey(userId, topic);\n knownContexts.set(contextKey(userId, topic), { userId, topic });\n const inProgress = spawning.get(key);\n if (inProgress) return inProgress;\n\n const promise = (async () => {\n const existing = instances.get(key);\n if (existing && !existing.process.killed && existing.process.exitCode === null) {\n if (await isHealthy(existing.port)) {\n existing.lastUsedAt = now();\n return existing.port;\n }\n killRuntime();\n } else if (existing) {\n usedPorts.delete(existing.port);\n instances.delete(key);\n }\n return spawnServer(key);\n })().finally(() => spawning.delete(key));\n spawning.set(key, promise);\n return promise;\n }\n\n function clear(userId: string, topic: string): void {\n knownContexts.delete(contextKey(userId, topic));\n const instance = instances.get(\"runtime\");\n if (!instance) return;\n const query = new URLSearchParams({\n user: userId,\n topic,\n capability: contextCapability(userId, topic),\n });\n void fetchImpl(`http://127.0.0.1:${instance.port}/contexts?${query}`, {\n method: \"DELETE\",\n }).catch(() => {});\n }\n\n function clearUser(userId: string): void {\n for (const context of [...knownContexts.values()]) {\n if (context.userId === userId) clear(context.userId, context.topic);\n }\n }\n\n async function killAll(): Promise<void> {\n const entries = [...instances.values()];\n for (const instance of entries) {\n try {\n instance.process.kill(\"SIGTERM\");\n } catch {}\n }\n instances.clear();\n usedPorts.clear();\n knownContexts.clear();\n const deadline = now() + 3000;\n await Promise.all(\n entries.map(\n (instance) =>\n new Promise<void>((resolve) => {\n if (instance.process.exitCode !== null || instance.process.killed) return resolve();\n instance.process.once(\"exit\", resolve);\n instance.process.once(\"error\", resolve);\n const timer = setTimeout(resolve, Math.max(0, deadline - now()));\n timer.unref?.();\n }),\n ),\n );\n }\n\n return { contextCapability, ensure, clear, clearUser, killAll };\n}\n\nconst defaultManager = createBackgroundBashManager();\n\nexport const bgBashContextCapability = defaultManager.contextCapability;\nexport const ensureBgBash = defaultManager.ensure;\nexport const killBgBash = defaultManager.clear;\nexport const killBgBashForUser = defaultManager.clearUser;\nexport const killAllBgBash = defaultManager.killAll;\n",
21
- "export type RuntimeMcpScope = \"dm\" | \"forum\" | \"fork\" | \"manager\" | \"cron\";\n\nexport interface RuntimeMcpPolicyEntry {\n scopes: readonly RuntimeMcpScope[];\n /** Forum entries marked required cannot be disabled by a topic whitelist. */\n forumRequired?: boolean;\n}\n\nexport const COMMON_RUNTIME_MCP_POLICY = {\n playwright: { scopes: [\"dm\", \"forum\", \"fork\", \"cron\"], forumRequired: true },\n runtime: { scopes: [\"forum\", \"manager\", \"fork\", \"cron\"], forumRequired: true },\n \"token-stats\": { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n task: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n decision: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n \"session-comm\": { scopes: [\"forum\", \"fork\", \"manager\"], forumRequired: true },\n wiki: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n skills: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n \"system-health\": { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n \"background-bash\": { scopes: [\"forum\"], forumRequired: true },\n \"agent-health\": { scopes: [\"forum\", \"manager\", \"cron\"], forumRequired: true },\n vault: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n // macOS desktop control via maestrojeong/cua-rs. Deliberately NOT\n // forumRequired: it advertises 12 tools, a meaningful slice of a turn's\n // tool budget, and most topics never touch a native app. Opt in per topic\n // through the enabled whitelist.\n \"cua-rs\": { scopes: [\"dm\", \"forum\", \"fork\"], forumRequired: false },\n} as const satisfies Record<string, RuntimeMcpPolicyEntry>;\n\nexport type CommonRuntimeMcpName = keyof typeof COMMON_RUNTIME_MCP_POLICY;\n\nexport interface ForumMcpClassification {\n all: string[];\n required: string[];\n optional: string[];\n}\n\nexport function classifyForumMcpServers(\n catalog: Readonly<Record<string, RuntimeMcpPolicyEntry>>,\n): ForumMcpClassification {\n const all = Object.entries(catalog)\n .filter(([, entry]) => entry.scopes.includes(\"forum\"))\n .map(([name]) => name);\n const required = Object.entries(catalog)\n .filter(([, entry]) => entry.scopes.includes(\"forum\") && entry.forumRequired)\n .map(([name]) => name);\n const requiredSet = new Set(required);\n return { all, required, optional: all.filter((name) => !requiredSet.has(name)) };\n}\n\nexport function commonRuntimeMcpPolicy(name: CommonRuntimeMcpName): RuntimeMcpPolicyEntry {\n return COMMON_RUNTIME_MCP_POLICY[name];\n}\n\nexport function isForumRequiredMcp(name: string): boolean {\n const entry = COMMON_RUNTIME_MCP_POLICY[name as CommonRuntimeMcpName];\n return Boolean(entry?.scopes.includes(\"forum\") && entry.forumRequired);\n}\n",
21
+ "export type RuntimeMcpScope = \"dm\" | \"forum\" | \"fork\" | \"manager\" | \"cron\";\n\nexport interface RuntimeMcpPolicyEntry {\n scopes: readonly RuntimeMcpScope[];\n /** Forum entries marked required cannot be disabled by a topic whitelist. */\n forumRequired?: boolean;\n}\n\nexport const COMMON_RUNTIME_MCP_POLICY = {\n playwright: { scopes: [\"dm\", \"forum\", \"fork\", \"cron\"], forumRequired: true },\n runtime: { scopes: [\"forum\", \"manager\", \"fork\", \"cron\"], forumRequired: true },\n \"token-stats\": { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n task: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n decision: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n \"session-comm\": { scopes: [\"forum\", \"fork\", \"manager\"], forumRequired: true },\n wiki: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n skills: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n \"system-health\": { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n \"background-bash\": { scopes: [\"forum\"], forumRequired: true },\n \"agent-health\": { scopes: [\"forum\", \"manager\", \"cron\"], forumRequired: true },\n vault: { scopes: [\"dm\", \"forum\", \"manager\", \"cron\"], forumRequired: true },\n // macOS desktop control via maestrojeong/cua-rs. Deliberately NOT\n // forumRequired: it advertises 12 tools, a meaningful slice of a turn's\n // tool budget, and most topics never touch a native app. Opt in per topic\n // through the enabled whitelist.\n \"cua-rs\": { scopes: [\"dm\", \"forum\", \"fork\"], forumRequired: false },\n // Reads the append-only raw conversation manifest (survives /compact and\n // agent switches). Deliberately NOT forumRequired: most turns never need\n // to look past the active context, and it is a 3-tool surface most topics\n // will not touch. Opt in per topic through the enabled whitelist.\n \"session-history\": { scopes: [\"dm\", \"forum\", \"manager\"], forumRequired: false },\n} as const satisfies Record<string, RuntimeMcpPolicyEntry>;\n\nexport type CommonRuntimeMcpName = keyof typeof COMMON_RUNTIME_MCP_POLICY;\n\nexport interface ForumMcpClassification {\n all: string[];\n required: string[];\n optional: string[];\n}\n\nexport function classifyForumMcpServers(\n catalog: Readonly<Record<string, RuntimeMcpPolicyEntry>>,\n): ForumMcpClassification {\n const all = Object.entries(catalog)\n .filter(([, entry]) => entry.scopes.includes(\"forum\"))\n .map(([name]) => name);\n const required = Object.entries(catalog)\n .filter(([, entry]) => entry.scopes.includes(\"forum\") && entry.forumRequired)\n .map(([name]) => name);\n const requiredSet = new Set(required);\n return { all, required, optional: all.filter((name) => !requiredSet.has(name)) };\n}\n\nexport function commonRuntimeMcpPolicy(name: CommonRuntimeMcpName): RuntimeMcpPolicyEntry {\n return COMMON_RUNTIME_MCP_POLICY[name];\n}\n\nexport function isForumRequiredMcp(name: string): boolean {\n const entry = COMMON_RUNTIME_MCP_POLICY[name as CommonRuntimeMcpName];\n return Boolean(entry?.scopes.includes(\"forum\") && entry.forumRequired);\n}\n",
22
22
  "import { createHmac } from \"node:crypto\";\n\nexport function browserOwnerCapability(capability: string, owner: string): string {\n return createHmac(\"sha256\", capability).update(owner).digest(\"hex\");\n}\n",
23
23
  "import type { AgentKind } from \"#types\";\n\nimport { browserOwnerCapability } from \"./capability\";\n\nexport const CODEX_BROWSER_CAPABILITY_ENV = \"NEGOTIUM_BROWSER_CAPABILITY\";\n\n/** Build the authenticated Browser.rs transport for one agent turn. */\nexport function buildPlaywrightMcpTransport(\n port: number,\n owner: string,\n capability: string,\n agent?: AgentKind,\n): Record<string, unknown> {\n const query = new URLSearchParams({ owner });\n const ownerCapability = browserOwnerCapability(capability, owner);\n\n if (agent === \"codex\") {\n return {\n url: `http://127.0.0.1:${port}/mcp?${query}`,\n env_http_headers: { \"X-Browser-Capability\": CODEX_BROWSER_CAPABILITY_ENV },\n };\n }\n if (agent === \"maestro\") {\n return {\n type: \"http\" as const,\n url: `http://127.0.0.1:${port}/mcp?${query}`,\n headers: { \"X-Browser-Capability\": ownerCapability },\n };\n }\n return {\n type: \"sse\" as const,\n url: `http://127.0.0.1:${port}/sse?${query}`,\n headers: { \"X-Browser-Capability\": ownerCapability },\n };\n}\n",
24
24
  "import { logger } from \"#platform/logger\";\nimport type { AgentKind } from \"#types\";\n\nexport interface CronSessionRef {\n sessionId: string;\n ownerUserId: string;\n}\n\nexport type CronSessionProvider = (topicId: string, agent: AgentKind) => CronSessionRef | null;\n\nconst providers: Array<{ provider: CronSessionProvider }> = [];\n\nexport function getRegisteredCronSession(topicId: string, agent: AgentKind): CronSessionRef | null {\n const registration = providers.at(-1);\n if (!registration) return null;\n try {\n return registration.provider(topicId, agent);\n } catch (error) {\n logger.warn({ err: error, topicId, agent }, \"cron-session: provider lookup failed\");\n return null;\n }\n}\n\n/** Register the optional Cron module's session lookup without coupling core to the module. */\nexport function registerCronSessionProvider(next: CronSessionProvider): () => void {\n const registration = { provider: next };\n providers.push(registration);\n let disposed = false;\n return () => {\n if (disposed) return;\n disposed = true;\n const index = providers.indexOf(registration);\n if (index >= 0) providers.splice(index, 1);\n };\n}\n",
@@ -30,7 +30,7 @@
30
30
  "// Persistent message store for the REST/WS API channel (Otium).\n//\n// Replaces the previous in-memory `Map<topicId, MessageDto[]>` so messages\n// survive server restarts. Backed by the shared sessions SQLite DB — the same\n// database the Telegram channel uses — which is the foundation for unifying\n// conversation state across channels later.\n//\n// Ordering is by the implicit SQLite `rowid` (monotonic insert order). Cursor\n// pagination resolves the cursor id → its rowid and returns rows after it.\n\nimport { db } from \"#storage/forum-db\";\nimport { registerStorageSchemaInitializer } from \"#storage/storage-host\";\nimport type { AgentKind } from \"#types\";\nimport type { MessageDto } from \"#types/api\";\n\nfunction initializeApiMessagesSchema(): void {\n db.exec(`\n CREATE TABLE IF NOT EXISTS api_messages (\n id TEXT PRIMARY KEY,\n topic_id TEXT NOT NULL,\n parent_id TEXT,\n author_id TEXT NOT NULL,\n source_adapter TEXT,\n source_node TEXT,\n source_message_id TEXT,\n text TEXT NOT NULL,\n query_id TEXT,\n agent_type TEXT,\n model TEXT,\n attachments TEXT,\n usage TEXT,\n deleted INTEGER NOT NULL DEFAULT 0,\n edited_at TEXT,\n reactions TEXT,\n kind TEXT,\n ask_user_question TEXT,\n tell_card TEXT,\n mentions TEXT,\n thread_root_id TEXT,\n created_at TEXT NOT NULL\n )\n`);\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN source_adapter TEXT\");\n } catch {\n // Column already exists.\n }\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN source_node TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN source_message_id TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN deleted INTEGER NOT NULL DEFAULT 0\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN edited_at TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN reactions TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN kind TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN ask_user_question TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN tell_card TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN mentions TEXT\");\n } catch {}\n try {\n // Slack-style threads: a reply carries the ROOT message id (flat, no nesting).\n // Distinct from parent_id (which is a Telegram-style inline quote-reply).\n db.exec(\"ALTER TABLE api_messages ADD COLUMN thread_root_id TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN subagent_card TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_messages ADD COLUMN vault_secret_request TEXT\");\n } catch {}\n // Index on topic_id; SQLite appends the implicit rowid to every index entry,\n // so `WHERE topic_id=? AND rowid>? ORDER BY rowid` stays index-driven.\n db.exec(\"CREATE INDEX IF NOT EXISTS idx_api_messages_topic ON api_messages(topic_id)\");\n db.exec(\n \"CREATE INDEX IF NOT EXISTS idx_api_messages_thread_root ON api_messages(thread_root_id)\",\n );\n}\n\nregisterStorageSchemaInitializer(initializeApiMessagesSchema, 30);\n\nexport interface ApiMessageRow {\n id: string;\n topic_id: string;\n parent_id: string | null;\n author_id: string;\n source_adapter: string | null;\n source_node: string | null;\n source_message_id: string | null;\n text: string;\n query_id: string | null;\n agent_type: string | null;\n model: string | null;\n attachments: string | null;\n usage: string | null;\n deleted: number;\n edited_at: string | null;\n reactions: string | null;\n kind: string | null;\n ask_user_question: string | null;\n tell_card: string | null;\n subagent_card: string | null;\n vault_secret_request: string | null;\n mentions: string | null;\n thread_root_id: string | null;\n created_at: string;\n rowid?: number;\n}\n\nexport type ApiMessageAppendHook = (msg: MessageDto) => void | Promise<void>;\nconst appendHooks = new Set<ApiMessageAppendHook>();\n\nexport interface AppendApiMessageOptions {\n notify?: boolean;\n updateTopicLastMessageAt?: boolean;\n}\n\nexport function registerApiMessageAppendHook(hook: ApiMessageAppendHook): () => void {\n appendHooks.add(hook);\n return () => {\n appendHooks.delete(hook);\n };\n}\n\nfunction emitApiMessageAppended(msg: MessageDto): void {\n for (const hook of appendHooks) {\n queueMicrotask(() => {\n try {\n void Promise.resolve(hook(msg)).catch(() => undefined);\n } catch {\n // Hooks are post-persist side effects; never make message writes fail.\n }\n });\n }\n}\n\nfunction rowToDto(r: ApiMessageRow): MessageDto {\n return {\n id: r.id,\n topicId: r.topic_id,\n parentId: r.parent_id ?? undefined,\n authorId: r.author_id,\n sourceAdapter: r.source_adapter ?? undefined,\n sourceNode: r.source_node ?? undefined,\n sourceMessageId: r.source_message_id ?? undefined,\n text: r.text,\n queryId: r.query_id ?? undefined,\n agentType: (r.agent_type as AgentKind | null) ?? undefined,\n model: r.model ?? undefined,\n attachments: r.attachments ? JSON.parse(r.attachments) : undefined,\n usage: r.usage ? JSON.parse(r.usage) : undefined,\n deleted: r.deleted !== 0,\n editedAt: r.edited_at ?? undefined,\n reactions: r.reactions ? JSON.parse(r.reactions) : undefined,\n kind: (r.kind as MessageDto[\"kind\"] | null) ?? undefined,\n askUserQuestion: r.ask_user_question ? JSON.parse(r.ask_user_question) : undefined,\n tellCard: r.tell_card ? JSON.parse(r.tell_card) : undefined,\n subagentCard: r.subagent_card ? JSON.parse(r.subagent_card) : undefined,\n vaultSecretRequest: r.vault_secret_request ? JSON.parse(r.vault_secret_request) : undefined,\n mentions: r.mentions ? JSON.parse(r.mentions) : undefined,\n threadRootId: r.thread_root_id ?? undefined,\n createdAt: r.created_at,\n };\n}\n\nfunction attachmentListHasFileId(raw: string | null, fileId: string): boolean {\n if (!raw) return false;\n try {\n const attachments = JSON.parse(raw) as unknown;\n return (\n Array.isArray(attachments) &&\n attachments.some(\n (attachment) =>\n typeof attachment === \"object\" &&\n attachment !== null &&\n \"id\" in attachment &&\n attachment.id === fileId,\n )\n );\n } catch {\n return false;\n }\n}\n\n/** Persist a single message. Idempotent on id: duplicate appends do not rewrite edited/reaction state. */\nexport function appendApiMessage(msg: MessageDto, options: AppendApiMessageOptions = {}): void {\n const notify = options.notify ?? true;\n const updateTopicLastMessageAt = options.updateTopicLastMessageAt ?? true;\n let inserted = false;\n db.transaction(() => {\n const result = db\n .query(\n `INSERT INTO api_messages\n (id, topic_id, parent_id, author_id, source_adapter, source_node, source_message_id, text, query_id, agent_type, model, attachments, usage, deleted, edited_at, reactions, kind, ask_user_question, tell_card, subagent_card, vault_secret_request, mentions, thread_root_id, created_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO NOTHING`,\n )\n .run(\n msg.id,\n msg.topicId,\n msg.parentId ?? null,\n msg.authorId,\n msg.sourceAdapter ?? null,\n msg.sourceNode ?? null,\n msg.sourceMessageId ?? null,\n msg.text,\n msg.queryId ?? null,\n msg.agentType ?? null,\n msg.model ?? null,\n msg.attachments ? JSON.stringify(msg.attachments) : null,\n msg.usage ? JSON.stringify(msg.usage) : null,\n msg.deleted ? 1 : 0,\n msg.editedAt ?? null,\n msg.reactions?.length ? JSON.stringify(msg.reactions) : null,\n msg.kind ?? null,\n msg.askUserQuestion ? JSON.stringify(msg.askUserQuestion) : null,\n msg.tellCard ? JSON.stringify(msg.tellCard) : null,\n msg.subagentCard ? JSON.stringify(msg.subagentCard) : null,\n msg.vaultSecretRequest ? JSON.stringify(msg.vaultSecretRequest) : null,\n msg.mentions?.length ? JSON.stringify(msg.mentions) : null,\n msg.threadRootId ?? null,\n msg.createdAt,\n );\n inserted = Number(result.changes ?? 0) > 0;\n if (inserted && updateTopicLastMessageAt && !msg.deleted) {\n db.query(\n `UPDATE api_topics\n SET last_message_at = CASE\n WHEN last_message_at IS NULL OR last_message_at < ? THEN ?\n ELSE last_message_at\n END\n WHERE id = ?`,\n ).run(msg.createdAt, msg.createdAt, msg.topicId);\n }\n })();\n if (inserted && notify && !msg.deleted) emitApiMessageAppended(msg);\n}\n\nexport function getApiMessage(topicId: string, messageId: string): MessageDto | null {\n const row = db\n .query(\"SELECT * FROM api_messages WHERE topic_id = ? AND id = ?\")\n .get(topicId, messageId) as ApiMessageRow | undefined;\n return row ? rowToDto(row) : null;\n}\n\nexport function topicHasAttachmentFileId(topicId: string, fileId: string): boolean {\n const rows = db\n .query<{ attachments: string | null }, [string]>(\n \"SELECT attachments FROM api_messages WHERE topic_id = ? AND deleted = 0 AND attachments IS NOT NULL\",\n )\n .all(topicId);\n return rows.some((row) => attachmentListHasFileId(row.attachments, fileId));\n}\n\nexport function updateApiMessageText(\n topicId: string,\n messageId: string,\n text: string,\n editedAt = new Date().toISOString(),\n): MessageDto | null {\n const res = db\n .query(\n `UPDATE api_messages\n SET text = ?, edited_at = ?\n WHERE topic_id = ? AND id = ? AND deleted = 0`,\n )\n .run(text, editedAt, topicId, messageId);\n if (Number(res.changes ?? 0) === 0) return null;\n return getApiMessage(topicId, messageId);\n}\n\n/** Attach terminal turn usage to an already-persisted assistant segment. */\nexport function updateApiMessageUsage(\n topicId: string,\n messageId: string,\n usage: NonNullable<MessageDto[\"usage\"]>,\n): MessageDto | null {\n const res = db\n .query(\n `UPDATE api_messages\n SET usage = ?\n WHERE topic_id = ? AND id = ? AND deleted = 0`,\n )\n .run(JSON.stringify(usage), topicId, messageId);\n if (Number(res.changes ?? 0) === 0) return null;\n return getApiMessage(topicId, messageId);\n}\n\nexport function updateApiMessageAskUserQuestion(\n topicId: string,\n messageId: string,\n askUserQuestion: NonNullable<MessageDto[\"askUserQuestion\"]>,\n editedAt = new Date().toISOString(),\n): MessageDto | null {\n const res = db\n .query(\n `UPDATE api_messages\n SET ask_user_question = ?, edited_at = ?\n WHERE topic_id = ? AND id = ? AND deleted = 0 AND kind = 'ask_user_question'`,\n )\n .run(JSON.stringify(askUserQuestion), editedAt, topicId, messageId);\n if (Number(res.changes ?? 0) === 0) return null;\n return getApiMessage(topicId, messageId);\n}\n\nexport function updateApiMessageSubagentCard(\n topicId: string,\n messageId: string,\n subagentCard: NonNullable<MessageDto[\"subagentCard\"]>,\n editedAt = new Date().toISOString(),\n): MessageDto | null {\n const res = db\n .query(\n `UPDATE api_messages\n SET subagent_card = ?, edited_at = ?\n WHERE topic_id = ? AND id = ? AND deleted = 0 AND kind = 'subagent'`,\n )\n .run(JSON.stringify(subagentCard), editedAt, topicId, messageId);\n if (Number(res.changes ?? 0) === 0) return null;\n return getApiMessage(topicId, messageId);\n}\n\n/** All non-deleted messages of one kind, across topics (boot-time sweeps). */\nexport function listApiMessagesByKind(kind: NonNullable<MessageDto[\"kind\"]>): MessageDto[] {\n const rows = db\n .query(\"SELECT * FROM api_messages WHERE kind = ? AND deleted = 0\")\n .all(kind) as ApiMessageRow[];\n return rows.map(rowToDto);\n}\n\n/** Replace a message's full reactions array. Toggle logic lives in the route. */\nexport function setApiMessageReactions(\n topicId: string,\n messageId: string,\n reactions: NonNullable<MessageDto[\"reactions\"]>,\n): MessageDto | null {\n const res = db\n .query(\n `UPDATE api_messages\n SET reactions = ?\n WHERE topic_id = ? AND id = ? AND deleted = 0`,\n )\n .run(reactions.length ? JSON.stringify(reactions) : null, topicId, messageId);\n if (Number(res.changes ?? 0) === 0) return null;\n return getApiMessage(topicId, messageId);\n}\n\nexport function softDeleteApiMessage(topicId: string, messageId: string): MessageDto | null {\n const res = db\n .query(\n `UPDATE api_messages\n SET deleted = 1, text = ''\n WHERE topic_id = ? AND id = ? AND deleted = 0`,\n )\n .run(topicId, messageId);\n if (Number(res.changes ?? 0) === 0) return null;\n return getApiMessage(topicId, messageId);\n}\n\n/** Soft-delete every live message whose id starts with a caller-owned prefix. */\nexport function softDeleteApiMessagesByIdPrefix(topicId: string, prefix: string): string[] {\n if (!prefix) return [];\n const rows = db\n .query(\n `SELECT id FROM api_messages\n WHERE topic_id = ? AND deleted = 0 AND substr(id, 1, ?) = ?`,\n )\n .all(topicId, prefix.length, prefix) as { id: string }[];\n if (rows.length === 0) return [];\n db.query(\n `UPDATE api_messages\n SET deleted = 1, text = ''\n WHERE topic_id = ? AND deleted = 0 AND substr(id, 1, ?) = ?`,\n ).run(topicId, prefix.length, prefix);\n return rows.map((row) => row.id);\n}\n\nexport interface MessagePage {\n page: MessageDto[];\n cursor?: string;\n hasMore: boolean;\n}\n\nexport interface ListApiMessagesOptions {\n cursor?: string | null;\n limit?: number;\n}\n\n/**\n * List messages for a topic, NEWEST-FIRST by default (bug G).\n *\n * The chat client loads once on mount and renders whatever it gets, so the\n * initial page must be the *latest* N messages, not the oldest. We therefore\n * query newest→oldest (`ORDER BY rowid DESC`) and then reverse the page back to\n * chronological (oldest→newest) order for display.\n *\n * Pagination is BACKWARD (toward older history): pass the returned `cursor`\n * (the oldest id currently loaded) to fetch the page of messages *older* than\n * it. `hasMore` therefore means \"there are older messages above this page\".\n */\nexport function listApiMessages(topicId: string, options?: ListApiMessagesOptions): MessagePage {\n const limit = Math.max(1, Math.min(options?.limit ?? 50, 200));\n\n let anchorRowid: number | null = null;\n if (options?.cursor) {\n const cur = db\n .query(\"SELECT rowid AS rowid FROM api_messages WHERE topic_id = ? AND id = ?\")\n .get(topicId, options.cursor) as { rowid: number } | undefined;\n if (cur) anchorRowid = cur.rowid;\n }\n\n const rows = (\n anchorRowid !== null\n ? db\n .query(\n `SELECT *, rowid AS rowid FROM api_messages\n WHERE topic_id = ? AND deleted = 0 AND thread_root_id IS NULL AND rowid < ?\n ORDER BY rowid DESC\n LIMIT ?`,\n )\n .all(topicId, anchorRowid, limit + 1)\n : db\n .query(\n `SELECT *, rowid AS rowid FROM api_messages\n WHERE topic_id = ? AND deleted = 0 AND thread_root_id IS NULL\n ORDER BY rowid DESC\n LIMIT ?`,\n )\n .all(topicId, limit + 1)\n ) as (ApiMessageRow & { rowid: number })[];\n\n const hasMore = rows.length > limit;\n // rows are newest→oldest; trim the look-ahead row, then flip to chronological.\n const pageRows = (hasMore ? rows.slice(0, limit) : rows).reverse();\n const page = pageRows.map(rowToDto);\n\n // Stamp thread reply counts onto the messages that are thread roots.\n const summaries = getThreadSummaries(page.map((m) => m.id));\n if (summaries.size > 0) {\n for (const m of page) {\n const s = summaries.get(m.id);\n if (s) {\n m.threadReplyCount = s.replyCount;\n m.threadLastReplyAt = s.lastReplyAt;\n }\n }\n }\n\n return {\n page,\n // Oldest loaded id — pass back as `cursor` to load the previous (older) page.\n cursor: page.length > 0 ? page[0].id : undefined,\n hasMore,\n };\n}\n\n/**\n * Reply count + last reply time per thread root, computed on read (no\n * denormalized counters to drift). Only non-deleted replies are counted.\n */\nexport function getThreadSummaries(\n rootIds: readonly string[],\n): Map<string, { replyCount: number; lastReplyAt: string }> {\n const out = new Map<string, { replyCount: number; lastReplyAt: string }>();\n const ids = [...new Set(rootIds)].filter(Boolean);\n if (ids.length === 0) return out;\n const rows = db\n .query(\n `SELECT thread_root_id AS rootId, COUNT(*) AS replyCount, MAX(created_at) AS lastReplyAt\n FROM api_messages\n WHERE thread_root_id IN (${ids.map(() => \"?\").join(\",\")}) AND deleted = 0\n GROUP BY thread_root_id`,\n )\n .all(...ids) as { rootId: string; replyCount: number; lastReplyAt: string }[];\n for (const r of rows) {\n out.set(r.rootId, { replyCount: Number(r.replyCount), lastReplyAt: r.lastReplyAt });\n }\n return out;\n}\n\n/** The root message plus its thread replies (chronological). */\nexport function listThreadMessages(\n topicId: string,\n rootId: string,\n): { root: MessageDto | null; replies: MessageDto[] } {\n const root = getApiMessage(topicId, rootId);\n const rows = db\n .query(\n `SELECT *, rowid AS rowid FROM api_messages\n WHERE topic_id = ? AND thread_root_id = ? AND deleted = 0\n ORDER BY rowid ASC\n LIMIT 200`,\n )\n .all(topicId, rootId) as ApiMessageRow[];\n return { root, replies: rows.map(rowToDto) };\n}\n\n/**\n * The root message and its replies as raw rows, oldest first.\n *\n * Row-shaped rather than DTO-shaped because the caller renders them with\n * `formatChannelTranscriptLine`, so a thread read to the model looks exactly\n * like the channel transcript it may appear next to.\n */\nexport function listThreadMessageRows(\n topicId: string,\n rootId: string,\n limit = 200,\n): { root: ApiMessageRow | null; replies: ApiMessageRow[] } {\n const root =\n (db\n .query(\"SELECT *, rowid AS rowid FROM api_messages WHERE topic_id = ? AND id = ?\")\n .get(topicId, rootId) as ApiMessageRow | null) ?? null;\n // Newest-first with a LIMIT, then reversed: when a thread is longer than the\n // budget the recent end is the part worth keeping.\n const rows = db\n .query(\n `SELECT *, rowid AS rowid FROM api_messages\n WHERE topic_id = ? AND thread_root_id = ? AND deleted = 0\n ORDER BY rowid DESC\n LIMIT ?`,\n )\n .all(topicId, rootId, Math.max(1, limit)) as ApiMessageRow[];\n return { root, replies: rows.reverse() };\n}\n\n/** Total undeleted replies in a thread, for reporting what a read left out. */\nexport function countThreadReplies(topicId: string, rootId: string): number {\n const row = db\n .query(\n `SELECT COUNT(*) AS n FROM api_messages\n WHERE topic_id = ? AND thread_root_id = ? AND deleted = 0`,\n )\n .get(topicId, rootId) as { n: number } | null;\n return Number(row?.n ?? 0);\n}\n\n/**\n * Thread roots in a topic whose id starts with `prefix`, ignoring separators.\n *\n * Resolved in SQL over the whole topic rather than over a page of recent\n * threads: the short tag a model reads in a transcript may belong to a thread\n * that has not been touched in months, and a capped scan reports that thread as\n * nonexistent. Returns every match so the caller can refuse an ambiguous\n * prefix instead of guessing a room's newest thread.\n */\nexport function findThreadRootsByPrefix(topicId: string, prefix: string): string[] {\n const bare = prefix.replace(/[^0-9A-Za-z]/g, \"\");\n if (!bare) return [];\n const rows = db\n .query(\n `SELECT DISTINCT thread_root_id AS rootId FROM api_messages\n WHERE topic_id = ? AND thread_root_id IS NOT NULL AND deleted = 0`,\n )\n .all(topicId) as { rootId: string }[];\n return rows\n .filter((row) => row.rootId.replace(/[^0-9A-Za-z]/g, \"\").startsWith(bare))\n .map((row) => row.rootId);\n}\n\n/** Threads in a topic that have at least one reply, most recently active first. */\nexport function listTopicThreadRoots(\n topicId: string,\n limit = 20,\n): { rootId: string; replyCount: number; lastReplyAt: string }[] {\n return db\n .query(\n `SELECT thread_root_id AS rootId, COUNT(*) AS replyCount, MAX(created_at) AS lastReplyAt\n FROM api_messages\n WHERE topic_id = ? AND thread_root_id IS NOT NULL AND deleted = 0\n GROUP BY thread_root_id\n ORDER BY lastReplyAt DESC\n LIMIT ?`,\n )\n .all(topicId, Math.max(1, limit)) as {\n rootId: string;\n replyCount: number;\n lastReplyAt: string;\n }[];\n}\n\n/**\n * Find the newest same-user/same-text message that is recent enough to be the\n * message just posted before a follow-up `/ai` call. This is a compatibility\n * fallback for clients that persist attachments through `/messages` but do not\n * repeat their file ids in the `/ai` request body.\n */\nexport function findRecentUserMessage(\n topicId: string,\n authorId: string,\n text: string,\n maxAgeMs: number,\n): MessageDto | undefined {\n const row = db\n .query(\n `SELECT * FROM api_messages\n WHERE topic_id = ? AND author_id = ? AND text = ?\n AND deleted = 0\n ORDER BY rowid DESC\n LIMIT 1`,\n )\n .get(topicId, authorId, text) as ApiMessageRow | undefined;\n if (!row) return undefined;\n\n const createdMs = Date.parse(row.created_at);\n if (!Number.isFinite(createdMs) || Date.now() - createdMs > maxAgeMs) return undefined;\n return rowToDto(row);\n}\n\n/**\n * Latest message text per topic, keyed by topic_id. Used to render a preview\n * subtitle in the topic list. One index-driven query (MAX(rowid) per topic)\n * instead of N round-trips. Empty topics are simply absent from the map.\n */\nexport function getLastMessagePreviews(topicIds?: readonly string[]): Map<string, string> {\n const uniqueTopicIds = topicIds ? [...new Set(topicIds)] : undefined;\n if (uniqueTopicIds && uniqueTopicIds.length === 0) return new Map();\n const topicFilter = uniqueTopicIds\n ? `AND topic_id IN (${uniqueTopicIds.map(() => \"?\").join(\",\")})`\n : \"\";\n const rows = db\n .query(\n `SELECT m.topic_id AS topic_id, m.text AS text\n FROM api_messages m\n JOIN (\n SELECT topic_id, MAX(rowid) AS mx FROM api_messages\n WHERE deleted = 0 AND thread_root_id IS NULL\n ${topicFilter}\n GROUP BY topic_id\n ) last ON m.topic_id = last.topic_id AND m.rowid = last.mx`,\n )\n .all(...(uniqueTopicIds ?? [])) as { topic_id: string; text: string }[];\n\n const out = new Map<string, string>();\n for (const r of rows) {\n const preview = (r.text ?? \"\").replace(/\\s+/g, \" \").trim().slice(0, 120);\n if (preview) out.set(r.topic_id, preview);\n }\n return out;\n}\n\n/** Hard-delete every message in a topic (used when a topic is deleted). */\nexport function deleteMessagesForTopic(topicId: string): number {\n const res = db.query(\"DELETE FROM api_messages WHERE topic_id = ?\").run(topicId);\n return Number(res.changes ?? 0);\n}\n\n/** Anonymize all messages authored by a deleted user. */\nexport function anonymizeApiMessages(userId: string): void {\n db.query(\"UPDATE api_messages SET author_id = 'deleted-user' WHERE author_id = ?\").run(userId);\n}\n\n/** Topic ids whose persisted attachment JSON references this exact upload id.\n * Used only as a compatibility bridge for uploads created before ACL metadata\n * was introduced. JSON UUIDs are quoted, avoiding substring matches. */\nexport function listTopicIdsForAttachment(fileId: string): string[] {\n const needle = `%\"${fileId.replace(/[\\\\%_]/g, (char) => `\\\\${char}`)}\"%`;\n // The ESCAPE literal must reach SQLite as a SINGLE backslash. SQLite string\n // literals do no backslash processing, so '\\\\' there is two characters and\n // fails at row-evaluation time (\"ESCAPE expression must be a single\n // character\") — which only surfaces once api_messages has any rows.\n const rows = db\n .query<{ topic_id: string }, [string]>(\n \"SELECT DISTINCT topic_id FROM api_messages WHERE attachments LIKE ? ESCAPE '\\\\'\",\n )\n .all(needle);\n return rows.map((row) => row.topic_id);\n}\n\n/**\n * Copy all messages from one topic to another (used by fork).\n * Each message gets a new UUID but retains original content, author, and timestamps.\n * Returns the number of messages copied.\n */\nexport function copyMessagesForTopic(sourceTopicId: string, targetTopicId: string): number {\n return copyMessageSnapshotToTopic(captureMessageSnapshotForTopic(sourceTopicId), targetTopicId);\n}\n\nexport interface TopicMessageSnapshot {\n sourceTopicId: string;\n rows: ApiMessageRow[];\n capturedAt: string;\n maxRowid: number;\n}\n\n/** Capture immutable message rows for point-in-time fork/compaction work. */\nexport function captureMessageSnapshotForTopic(topicId: string): TopicMessageSnapshot {\n const rows = db\n .query(\n \"SELECT *, rowid AS rowid FROM api_messages WHERE topic_id = ? AND deleted = 0 ORDER BY rowid ASC\",\n )\n .all(topicId) as ApiMessageRow[];\n return {\n sourceTopicId: topicId,\n rows: rows.map((row) => ({ ...row })),\n capturedAt: new Date().toISOString(),\n maxRowid: rows.at(-1)?.rowid ?? 0,\n };\n}\n\n/** Copy only rows captured by captureMessageSnapshotForTopic; never re-read the source. */\nexport function copyMessageSnapshotToTopic(\n snapshot: TopicMessageSnapshot,\n targetTopicId: string,\n): number {\n const { rows } = snapshot;\n if (rows.length === 0) return 0;\n\n const idMap = new Map(rows.map((r) => [r.id, crypto.randomUUID()]));\n let copied = 0;\n for (const r of rows) {\n const newId = idMap.get(r.id);\n if (!newId) continue;\n appendApiMessage(\n {\n ...rowToDto(r),\n id: newId,\n topicId: targetTopicId,\n parentId: r.parent_id ? (idMap.get(r.parent_id) ?? r.parent_id) : undefined,\n threadRootId: r.thread_root_id\n ? (idMap.get(r.thread_root_id) ?? r.thread_root_id)\n : undefined,\n },\n { notify: false, updateTopicLastMessageAt: false },\n );\n copied++;\n }\n\n return copied;\n}\n\n/**\n * Get all messages for a topic in chronological order (used by export).\n */\nexport function getAllMessagesForTopic(topicId: string): ApiMessageRow[] {\n return db\n .query(\n \"SELECT *, rowid AS rowid FROM api_messages WHERE topic_id = ? AND deleted = 0 ORDER BY rowid ASC\",\n )\n .all(topicId) as ApiMessageRow[];\n}\n\nexport function getMessagesForTopicAfterRowid(\n topicId: string,\n afterRowid: number,\n): ApiMessageRow[] {\n return db\n .query(\n \"SELECT *, rowid AS rowid FROM api_messages WHERE topic_id = ? AND rowid > ? AND deleted = 0 ORDER BY rowid ASC\",\n )\n .all(topicId, afterRowid) as ApiMessageRow[];\n}\n",
31
31
  "/**\n * Durable evidence for the hub↔node topic link (topic-link design v2 §4.2,\n * §4.5, PR7). Two tables, both written by the node and only ever read by a\n * host through the authenticated Runtime Gateway:\n *\n * - `api_topic_create_claims` — one row per host `requestId` on a room-creating\n * request (`POST /topics`, `POST /topics/:id/derive`). Written inside the same\n * SQLite transaction that inserts the topic, so a response lost after commit\n * can always be replayed by id instead of being guessed at (title/parent\n * heuristics are forbidden by the design).\n * - `api_topic_tombstones` — one row per topic that left the host-visible\n * surface, stamped with THIS node's identity. Written by SQLite triggers on\n * `api_topics`, so every delete path (gateway, MCP, CLI, account deletion,\n * future ones) records it in the very statement that removes the row; there\n * is no code path that can delete a topic and forget the tombstone.\n *\n * `api_node_identity` holds the node id the triggers stamp. The node process\n * records its `NODE_ID` there at start (and the delete cascade re-asserts it)\n * via {@link recordTopicLinkNodeIdentity}: a database copied to another install\n * keeps the old id on its old tombstones, so the existence API — which only\n * answers `gone` for a tombstone written under the identity it is answering\n * as — can never turn a copied store's history into a delete on the new node.\n * Until an identity is recorded, tombstones carry NULL and never count as\n * `gone` (fail-safe). This module deliberately does not import\n * `#platform/config`: that would create state paths merely by importing the\n * public storage facade.\n */\n\nimport { createHash } from \"node:crypto\";\nimport { GENERAL_TOPIC_ID } from \"#platform/constants\";\n// Side effect: registers `api_messages`, which the message fence trigger\n// guards (and orders it before this schema).\nimport \"#storage/api-messages\";\nimport { db } from \"#storage/forum-db\";\n// Side effect: registers `runtime_topic_state`, which the message fence\n// trigger reads (and orders it before this schema).\nimport \"#storage/runtime-topic-state\";\nimport { registerStorageSchemaInitializer } from \"#storage/storage-host\";\n\nexport type TopicCreateClaimOp = \"create\" | \"derive\" | \"abort\";\nexport type TopicCreateClaimState = \"committed\" | \"aborted\";\nexport type TopicTombstoneReason = \"deleted\" | \"unshared\";\n\nexport interface TopicCreateClaim {\n principalKey: string;\n requestId: string;\n op: TopicCreateClaimOp;\n payloadHash: string;\n topicId: string | null;\n state: TopicCreateClaimState;\n nodeId: string | null;\n /** Highest `api_messages.rowid` of the topic when the claim committed (seeded history). */\n seedMaxMessageRowid: number;\n /** Derive only: the source topic the claim was made for (null on create / legacy rows). */\n sourceTopicId: string | null;\n /** Message count of the topic when the claim committed (null on legacy rows). */\n seedMessageCount: number | null;\n /** sha256 of the sorted message ids at claim time (null on legacy rows). */\n seedMessageIdsHash: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface TopicTombstone {\n seq: number;\n topicId: string;\n nodeId: string | null;\n reason: TopicTombstoneReason;\n surface: string | null;\n surfaceScope: string | null;\n deletedAt: string;\n /**\n * Present on feed entries that come from `api_topic_scope_moves`: the room\n * was moved OUT of `surfaceScope` by an admin scope repair (reported to the\n * old scope as `unshared`). Not a row of `api_topic_tombstones`.\n */\n scopeMoved?: true;\n}\n\ninterface ClaimRow {\n principal_key: string;\n request_id: string;\n op: string;\n payload_hash: string;\n topic_id: string | null;\n state: string;\n node_id: string | null;\n seed_max_message_rowid: number | bigint | null;\n source_topic_id?: string | null;\n seed_message_count?: number | bigint | null;\n seed_message_ids_hash?: string | null;\n created_at: string;\n updated_at: string;\n}\n\ninterface TombstoneRow {\n seq: number | bigint;\n topic_id: string;\n node_id: string | null;\n reason: string;\n surface: string | null;\n surface_scope: string | null;\n deleted_at: string;\n}\n\n/** Claims are kept at least this long (design v2 §4.2: ≥ 30 days). */\nexport const TOPIC_CREATE_CLAIM_RETENTION_MS = 30 * 24 * 60 * 60_000;\n\nconst NODE_IDENTITY_SQL = \"(SELECT node_id FROM api_node_identity WHERE singleton = 1)\";\nconst NOW_SQL = \"strftime('%Y-%m-%dT%H:%M:%fZ','now')\";\nconst TOMBSTONE_SEQ_SQL = \"(SELECT seq FROM api_topic_tombstone_seq WHERE singleton = 1)\";\n// Advances the never-decreasing tombstone sequence. Runs as the first\n// statement of every tombstone-writing trigger, so the new row's seq is read\n// back from the counter within the same statement/transaction.\nconst BUMP_TOMBSTONE_SEQ_SQL =\n \"UPDATE api_topic_tombstone_seq SET seq = seq + 1 WHERE singleton = 1\";\nconst NEW_EPOCH_SQL = \"lower(hex(randomblob(16)))\";\n\n/**\n * Owner-id prefix of the runtime maintenance fence a claim abort holds while\n * it deletes the claimed topic. While such a fence is live, the\n * `api_messages_claim_abort_fence` trigger refuses every message insert into\n * that topic (any writer, any process), so nothing can land between the\n * abort's \"no new messages\" check and the delete.\n */\nexport const TOPIC_CLAIM_ABORT_OWNER_PREFIX = \"topic-link-abort:\";\n/** The message the fence trigger raises; matched by ingress to answer 409. */\nexport const TOPIC_CLAIM_ABORT_FENCE_ERROR = \"topic_claim_abort_in_progress\";\n// Same staleness rule as `runtime-topic-state` (TOPIC_MAINTENANCE_STALE_MS):\n// a crashed abort never blocks a room for longer than a stale fence.\nconst CLAIM_ABORT_FENCE_STALE_MS = 30_000;\nconst NOW_MS_SQL = \"CAST((julianday('now') - 2440587.5) * 86400000 AS INTEGER)\";\nconst CLAIM_ABORT_FENCE_PREDICATE = `maintenance = 1\n AND maintenance_owner LIKE '${TOPIC_CLAIM_ABORT_OWNER_PREFIX}%'\n AND heartbeat_at IS NOT NULL\n AND heartbeat_at >= ${NOW_MS_SQL} - ${CLAIM_ABORT_FENCE_STALE_MS}`;\n\ntype SchemaDatabase = {\n exec(sql: string): unknown;\n transaction<T>(fn: () => T): (() => T) & { immediate?: () => T };\n query(sql: string): { all(...params: never[]): unknown[] };\n};\n\nconst SCHEMA_TABLES = [\n \"api_node_identity\",\n \"api_topic_create_claims\",\n \"api_topic_tombstones\",\n \"api_topic_tombstone_seq\",\n \"api_topic_scope_repair_grants\",\n \"api_topic_scope_moves\",\n];\nconst SCHEMA_INDEXES = [\n \"idx_api_topic_create_claims_topic\",\n \"idx_api_topic_create_claims_created\",\n \"idx_api_topic_create_claims_principal\",\n \"idx_api_topic_create_claims_settled_at\",\n \"idx_api_topic_scope_moves_seq\",\n];\n/** Columns added to `api_topic_create_claims` after its first release. */\nconst CLAIM_ADDED_COLUMNS: Record<string, string> = {\n source_topic_id: \"TEXT\",\n seed_message_count: \"INTEGER\",\n seed_message_ids_hash: \"TEXT\",\n settled_at: \"TEXT\",\n};\nconst SCHEMA_INDEXES_TOMBSTONES = [\"idx_api_topic_tombstones_seq\"];\n/** Trigger → a marker its current SQL must contain (older builds lack it). */\nconst SCHEMA_TRIGGERS: Record<string, string> = {\n api_topics_tombstone_on_delete: \"api_topic_tombstone_seq\",\n api_topics_tombstone_on_unshare: \"api_topic_tombstone_seq\",\n api_topics_tombstone_on_reshare: \"surface_scope IS NEW.surface_scope\",\n api_topics_tombstone_on_insert: \"api_topic_tombstones\",\n api_messages_claim_abort_fence: TOPIC_CLAIM_ABORT_OWNER_PREFIX,\n api_topics_otium_scope_immutable: \"api_topic_scope_repair_grants\",\n};\n\n/** The message the scope-immutability trigger raises. */\nexport const OTIUM_TOPIC_SCOPE_IMMUTABLE_ERROR = \"otium_topic_scope_immutable\";\n\n/**\n * Read-only: whether the schema (and identity) is already current. Every\n * process start runs the initializer, so the common path must not write — a\n * write here would take the database lock on every boot and can fail with\n * SQLITE_BUSY while other processes start concurrently.\n */\nfunction topicLinkSchemaIsCurrent(database: SchemaDatabase, nodeId?: string): boolean {\n const objects = new Map(\n (\n database\n .query(\"SELECT name, sql FROM sqlite_master WHERE type IN ('table','index','trigger')\")\n .all() as Array<{ name: string; sql: string | null }>\n ).map((row) => [row.name, row.sql ?? \"\"]),\n );\n for (const name of [...SCHEMA_TABLES, ...SCHEMA_INDEXES, ...SCHEMA_INDEXES_TOMBSTONES]) {\n if (!objects.has(name)) return false;\n }\n for (const [name, marker] of Object.entries(SCHEMA_TRIGGERS)) {\n if (!objects.get(name)?.includes(marker)) return false;\n }\n if (!columnNames(database, \"api_node_identity\").has(\"epoch_id\")) return false;\n const claimColumns = columnNames(database, \"api_topic_create_claims\");\n for (const column of Object.keys(CLAIM_ADDED_COLUMNS)) {\n if (!claimColumns.has(column)) return false;\n }\n const identity = database\n .query(\"SELECT node_id, epoch_id FROM api_node_identity WHERE singleton = 1\")\n .all() as Array<{ node_id: string; epoch_id: string | null }>;\n if (identity.some((row) => row.epoch_id === null)) return false;\n if (nodeId && identity[0]?.node_id !== nodeId) return false;\n const counter = database\n .query(\n `SELECT (SELECT seq FROM api_topic_tombstone_seq WHERE singleton = 1) AS counter,\n MAX((SELECT COALESCE(MAX(seq), 0) FROM api_topic_tombstones),\n (SELECT COALESCE(MAX(seq), 0) FROM api_topic_scope_moves)) AS max_seq`,\n )\n .all() as Array<{ counter: number | bigint | null; max_seq: number | bigint }>;\n const row = counter[0];\n return row?.counter !== null && row?.counter !== undefined && row.counter >= row.max_seq;\n}\n\nfunction columnNames(database: SchemaDatabase, table: string): Set<string> {\n const rows = database.query(`PRAGMA table_info(${table})`).all() as Array<{ name: string }>;\n return new Set(rows.map((row) => row.name));\n}\n\n/**\n * Idempotent, and all-or-nothing: every statement is `IF NOT EXISTS` / an\n * upsert / a drop-and-recreate of a trigger, and the whole set runs in one\n * transaction so a crash half-way never leaves triggers without the table\n * they write to.\n */\nexport function initializeTopicLinkRecordsSchema(database: SchemaDatabase, nodeId?: string): void {\n if (topicLinkSchemaIsCurrent(database, nodeId)) return;\n const migrate = database.transaction(() => {\n database.exec(`\n CREATE TABLE IF NOT EXISTS api_node_identity (\n singleton INTEGER PRIMARY KEY CHECK (singleton = 1),\n node_id TEXT NOT NULL,\n epoch_id TEXT,\n updated_at TEXT NOT NULL\n )\n `);\n // PR7 fix: a random id minted when this store first records an identity.\n // Survives NODE_ID changes; a wiped/recreated store gets a new one.\n if (!columnNames(database, \"api_node_identity\").has(\"epoch_id\")) {\n database.exec(\"ALTER TABLE api_node_identity ADD COLUMN epoch_id TEXT\");\n }\n database.exec(\n `UPDATE api_node_identity SET epoch_id = ${NEW_EPOCH_SQL} WHERE epoch_id IS NULL`,\n );\n database.exec(`\n CREATE TABLE IF NOT EXISTS api_topic_create_claims (\n principal_key TEXT NOT NULL,\n request_id TEXT NOT NULL,\n op TEXT NOT NULL CHECK (op IN ('create','derive','abort')),\n payload_hash TEXT NOT NULL,\n topic_id TEXT,\n state TEXT NOT NULL CHECK (state IN ('committed','aborted')),\n node_id TEXT,\n seed_max_message_rowid INTEGER NOT NULL DEFAULT 0,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n source_topic_id TEXT,\n seed_message_count INTEGER,\n seed_message_ids_hash TEXT,\n settled_at TEXT,\n PRIMARY KEY (principal_key, request_id)\n )\n `);\n // Review fixes (additive): the derive source a claim was made for, and the\n // exact message set the created topic was seeded with.\n const claimColumns = columnNames(database, \"api_topic_create_claims\");\n for (const [column, type] of Object.entries(CLAIM_ADDED_COLUMNS)) {\n if (!claimColumns.has(column)) {\n database.exec(`ALTER TABLE api_topic_create_claims ADD COLUMN ${column} ${type}`);\n }\n }\n database.exec(\n `CREATE INDEX IF NOT EXISTS idx_api_topic_create_claims_principal\n ON api_topic_create_claims(principal_key, state, topic_id)`,\n );\n // Retention anchor of a settled (aborted) claim is its settlement time.\n database.exec(\n `CREATE INDEX IF NOT EXISTS idx_api_topic_create_claims_settled_at\n ON api_topic_create_claims(state, settled_at)`,\n );\n // Scope repair (review fix 6): the one sanctioned way to change an otium\n // topic's surface_scope. A grant row exists only inside the repair's own\n // transaction (inserted and deleted before commit), so no other\n // connection ever observes it.\n database.exec(`\n CREATE TABLE IF NOT EXISTS api_topic_scope_repair_grants (\n topic_id TEXT PRIMARY KEY\n )\n `);\n // Scope move history + audit (one row per admin repair). Its seq comes\n // from the tombstone counter, so moves merge into the tombstone feed in\n // order: a hub bound to the OLD scope sees the move as `unshared`.\n database.exec(`\n CREATE TABLE IF NOT EXISTS api_topic_scope_moves (\n seq INTEGER PRIMARY KEY,\n topic_id TEXT NOT NULL,\n node_id TEXT,\n from_scope TEXT,\n to_scope TEXT NOT NULL,\n actor TEXT NOT NULL,\n reason TEXT NOT NULL,\n claims_left INTEGER NOT NULL,\n moved_at TEXT NOT NULL\n )\n `);\n database.exec(\n \"CREATE INDEX IF NOT EXISTS idx_api_topic_scope_moves_seq ON api_topic_scope_moves(topic_id, seq)\",\n );\n database.exec(\n \"CREATE INDEX IF NOT EXISTS idx_api_topic_create_claims_topic ON api_topic_create_claims(topic_id)\",\n );\n database.exec(\n \"CREATE INDEX IF NOT EXISTS idx_api_topic_create_claims_created ON api_topic_create_claims(created_at)\",\n );\n database.exec(`\n CREATE TABLE IF NOT EXISTS api_topic_tombstones (\n topic_id TEXT PRIMARY KEY,\n seq INTEGER NOT NULL,\n node_id TEXT,\n reason TEXT NOT NULL CHECK (reason IN ('deleted','unshared')),\n surface TEXT,\n surface_scope TEXT,\n deleted_at TEXT NOT NULL\n )\n `);\n database.exec(\n \"CREATE INDEX IF NOT EXISTS idx_api_topic_tombstones_seq ON api_topic_tombstones(seq)\",\n );\n // Never-decreasing tombstone sequence (PR7 fix). `api_topic_tombstones` is\n // a current-state table whose rows are deleted on reshare/reinsert, so\n // MAX(seq)+1 could hand out a seq a cursor already passed. Seeded from the\n // table on every init, and never lowered.\n database.exec(`\n CREATE TABLE IF NOT EXISTS api_topic_tombstone_seq (\n singleton INTEGER PRIMARY KEY CHECK (singleton = 1),\n seq INTEGER NOT NULL\n )\n `);\n database.exec(`\n INSERT INTO api_topic_tombstone_seq (singleton, seq)\n VALUES (1, (SELECT MAX(\n (SELECT COALESCE(MAX(seq), 0) FROM api_topic_tombstones),\n (SELECT COALESCE(MAX(seq), 0) FROM api_topic_scope_moves))))\n ON CONFLICT(singleton) DO UPDATE SET seq = MAX(api_topic_tombstone_seq.seq, excluded.seq)\n `);\n // Recreated on every init so a store migrated by an earlier build (whose\n // triggers computed MAX(seq)+1) gets the counter-based versions.\n for (const name of [\n \"api_topics_tombstone_on_delete\",\n \"api_topics_tombstone_on_unshare\",\n \"api_topics_tombstone_on_reshare\",\n \"api_topics_tombstone_on_insert\",\n \"api_messages_claim_abort_fence\",\n \"api_topics_otium_scope_immutable\",\n ]) {\n database.exec(`DROP TRIGGER IF EXISTS ${name}`);\n }\n // Hard delete, from any writer. `DROP TABLE` (the legacy schema rebuild)\n // does not fire row triggers, so a migration never fabricates tombstones.\n database.exec(`\n CREATE TRIGGER api_topics_tombstone_on_delete\n AFTER DELETE ON api_topics\n BEGIN\n ${BUMP_TOMBSTONE_SEQ_SQL};\n INSERT OR REPLACE INTO api_topic_tombstones\n (topic_id, seq, node_id, reason, surface, surface_scope, deleted_at)\n VALUES\n (OLD.id, ${TOMBSTONE_SEQ_SQL}, ${NODE_IDENTITY_SQL}, 'deleted',\n OLD.surface, OLD.surface_scope, ${NOW_SQL});\n END\n `);\n // Left the Otium surface (moved to another surface or hidden). Evidence of\n // a withdrawal, never of a deletion: the existence API still answers\n // `present` for such a topic.\n database.exec(`\n CREATE TRIGGER api_topics_tombstone_on_unshare\n AFTER UPDATE OF surface, visibility ON api_topics\n WHEN OLD.surface = 'otium' AND COALESCE(OLD.visibility, 'visible') != 'hidden'\n AND (NEW.surface IS NOT 'otium' OR NEW.visibility = 'hidden')\n BEGIN\n ${BUMP_TOMBSTONE_SEQ_SQL};\n INSERT OR REPLACE INTO api_topic_tombstones\n (topic_id, seq, node_id, reason, surface, surface_scope, deleted_at)\n VALUES\n (OLD.id, ${TOMBSTONE_SEQ_SQL}, ${NODE_IDENTITY_SQL}, 'unshared',\n OLD.surface, OLD.surface_scope, ${NOW_SQL});\n END\n `);\n database.exec(`\n CREATE TRIGGER api_topics_tombstone_on_reshare\n AFTER UPDATE OF surface, visibility ON api_topics\n WHEN NEW.surface = 'otium' AND COALESCE(NEW.visibility, 'visible') != 'hidden'\n BEGIN\n -- Only the withdrawal from the scope the room is back in is undone; an\n -- unshare from another workspace stays that workspace's evidence.\n DELETE FROM api_topic_tombstones\n WHERE topic_id = NEW.id AND reason = 'unshared' AND surface_scope IS NEW.surface_scope;\n END\n `);\n // An otium room's workspace is fixed (review fix 6): a claim, a tombstone\n // and the host's mapping all bind to it, and one topic_id-keyed tombstone\n // cannot express several past scopes. Only the audited scope repair\n // (`adminRepairOtiumTopicScope`) may change it, through a grant row that exists\n // only inside its own transaction. Leaving the otium surface is allowed\n // (that is an unshare, tombstoned with the old scope).\n database.exec(`\n CREATE TRIGGER api_topics_otium_scope_immutable\n BEFORE UPDATE OF surface, surface_scope ON api_topics\n WHEN NEW.surface = 'otium'\n AND OLD.surface_scope IS NOT NEW.surface_scope\n AND NOT EXISTS (SELECT 1 FROM api_topic_scope_repair_grants WHERE topic_id = OLD.id)\n BEGIN\n SELECT RAISE(ABORT, '${OTIUM_TOPIC_SCOPE_IMMUTABLE_ERROR}');\n END\n `);\n // A row that exists again (restored or re-inserted id) is not gone.\n database.exec(`\n CREATE TRIGGER api_topics_tombstone_on_insert\n AFTER INSERT ON api_topics\n BEGIN\n DELETE FROM api_topic_tombstones WHERE topic_id = NEW.id;\n END\n `);\n // A topic a claim abort is deleting accepts no message (PR7 fix): see\n // TOPIC_CLAIM_ABORT_OWNER_PREFIX. Checked by SQLite on every insert path,\n // atomically with the insert itself.\n database.exec(`\n CREATE TRIGGER api_messages_claim_abort_fence\n BEFORE INSERT ON api_messages\n WHEN EXISTS (SELECT 1 FROM runtime_topic_state\n WHERE topic_id = NEW.topic_id AND ${CLAIM_ABORT_FENCE_PREDICATE})\n BEGIN\n SELECT RAISE(ABORT, '${TOPIC_CLAIM_ABORT_FENCE_ERROR}');\n END\n `);\n if (nodeId) {\n database.exec(\n `INSERT INTO api_node_identity (singleton, node_id, epoch_id, updated_at)\n VALUES (1, '${nodeId.replaceAll(\"'\", \"''\")}', ${NEW_EPOCH_SQL}, ${NOW_SQL})\n ON CONFLICT(singleton) DO UPDATE SET node_id = excluded.node_id, updated_at = excluded.updated_at\n WHERE api_node_identity.node_id IS NOT excluded.node_id`,\n );\n }\n });\n // BEGIN IMMEDIATE when available: a migrating process waits on the busy\n // timeout for another one instead of failing its read→write upgrade.\n if (migrate.immediate) migrate.immediate();\n else migrate();\n}\n\n// After api_topics (20), api_messages (30) and runtime_topic_state (32): the\n// triggers name their columns, so the tables must already have their shape.\nregisterStorageSchemaInitializer((database) => initializeTopicLinkRecordsSchema(database), 45);\n\n// ── canonical payload hash ────────────────────────────────────────────────\n\nfunction canonicalJson(value: unknown): string {\n if (Array.isArray(value)) return `[${value.map(canonicalJson).join(\",\")}]`;\n if (value && typeof value === \"object\") {\n const entries = Object.entries(value as Record<string, unknown>)\n .filter(([, entry]) => entry !== undefined)\n .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));\n return `{${entries.map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`).join(\",\")}}`;\n }\n return JSON.stringify(value ?? null);\n}\n\n/**\n * sha256 (hex) of the canonical JSON of a room-creating request body without\n * the saga's own `requestId`/`payloadHash` — byte-for-byte the hub's\n * `linkPayloadHash` (otium `link/link-intents.ts`): keys sorted at every depth\n * by UTF-16 code unit, compact separators, `undefined` members dropped.\n *\n * For derive the caller passes `{ sourceTopicId: <path id>, ...body }` (the\n * same body forked from two parents must not hash equal).\n */\nexport function topicLinkPayloadHash(body: Record<string, unknown>): string {\n const { requestId: _requestId, payloadHash: _payloadHash, ...payload } = body;\n return createHash(\"sha256\").update(canonicalJson(payload)).digest(\"hex\");\n}\n\n// ── node identity ─────────────────────────────────────────────────────────\n\n/** Record the identity new tombstones and claims are stamped with (no-op when unchanged). */\nexport function recordTopicLinkNodeIdentity(nodeId: string): void {\n const id = nodeId.trim();\n if (!id) return;\n db.query(\n `INSERT INTO api_node_identity (singleton, node_id, epoch_id, updated_at)\n VALUES (1, ?, ${NEW_EPOCH_SQL}, ${NOW_SQL})\n ON CONFLICT(singleton) DO UPDATE SET node_id = excluded.node_id, updated_at = excluded.updated_at\n WHERE api_node_identity.node_id IS NOT excluded.node_id`,\n ).run(id);\n}\n\n/**\n * Random id minted when this store first recorded an identity (`dbEpoch` on\n * the wire). A wiped/recreated store answering under the same `NODE_ID` has a\n * different one; a restore of a backup of the SAME store does not (residual\n * risk, see the contract). Null until an identity is recorded.\n */\nexport function topicLinkDbEpoch(): string | null {\n return (\n db\n .query<{ epoch_id: string | null }, []>(\n \"SELECT epoch_id FROM api_node_identity WHERE singleton = 1\",\n )\n .get()?.epoch_id ?? null\n );\n}\n\n/**\n * The highest tombstone seq ever handed out (never decreases, also counts\n * rows later removed by a reshare/reinsert). A hub whose recorded cursor is\n * above this value is talking to a rolled-back store.\n */\nexport function topicTombstoneHighWater(): number {\n const row = db\n .query<{ seq: number | bigint }, []>(\n \"SELECT seq FROM api_topic_tombstone_seq WHERE singleton = 1\",\n )\n .get();\n return Number(row?.seq ?? 0);\n}\n\n/** The identity new tombstones and claims are stamped with. */\nexport function topicLinkNodeIdentity(): string | null {\n return (\n db\n .query<{ node_id: string }, []>(\"SELECT node_id FROM api_node_identity WHERE singleton = 1\")\n .get()?.node_id ?? null\n );\n}\n\n// ── create claims ─────────────────────────────────────────────────────────\n\nfunction toClaim(row: ClaimRow): TopicCreateClaim {\n return {\n principalKey: row.principal_key,\n requestId: row.request_id,\n op: row.op as TopicCreateClaimOp,\n payloadHash: row.payload_hash,\n topicId: row.topic_id,\n state: row.state as TopicCreateClaimState,\n nodeId: row.node_id,\n seedMaxMessageRowid: Number(row.seed_max_message_rowid ?? 0),\n sourceTopicId: row.source_topic_id ?? null,\n seedMessageCount:\n row.seed_message_count === null || row.seed_message_count === undefined\n ? null\n : Number(row.seed_message_count),\n seedMessageIdsHash: row.seed_message_ids_hash ?? null,\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nexport function getTopicCreateClaim(\n principalKey: string,\n requestId: string,\n): TopicCreateClaim | null {\n const row = db\n .query<ClaimRow, [string, string]>(\n \"SELECT * FROM api_topic_create_claims WHERE principal_key = ? AND request_id = ?\",\n )\n .get(principalKey, requestId);\n return row ? toClaim(row) : null;\n}\n\n/**\n * Committed claims of one principal for exactly these topics — for\n * `hostCreate` on topic DTOs. Bounded by the ids asked for (index\n * `(principal_key, state, topic_id)`), never the principal's whole history.\n */\nexport function committedClaimsByTopic(\n principalKey: string,\n topicIds: readonly string[],\n): Map<string, TopicCreateClaim> {\n const byTopic = new Map<string, TopicCreateClaim>();\n const unique = [...new Set(topicIds)];\n for (let start = 0; start < unique.length; start += 500) {\n const chunk = unique.slice(start, start + 500);\n const rows = db\n .query<ClaimRow, string[]>(\n `SELECT * FROM api_topic_create_claims\n WHERE principal_key = ? AND state = 'committed'\n AND topic_id IN (${chunk.map(() => \"?\").join(\",\")})`,\n )\n .all(principalKey, ...chunk);\n for (const row of rows) if (row.topic_id) byTopic.set(row.topic_id, toClaim(row));\n }\n return byTopic;\n}\n\nfunction maxMessageRowid(topicId: string): number {\n const row = db\n .query<{ max_rowid: number | bigint | null }, [string]>(\n \"SELECT MAX(rowid) AS max_rowid FROM api_messages WHERE topic_id = ?\",\n )\n .get(topicId);\n return Number(row?.max_rowid ?? 0);\n}\n\n/** Count and sha256 of the sorted message ids of a topic: its exact message set. */\nfunction messageSetOf(topicId: string): { count: number; hash: string } {\n const ids = db\n .query<{ id: string }, [string]>(\"SELECT id FROM api_messages WHERE topic_id = ? ORDER BY id\")\n .all(topicId)\n .map((row) => row.id);\n return { count: ids.length, hash: createHash(\"sha256\").update(ids.join(\"\\n\")).digest(\"hex\") };\n}\n\n/**\n * Record a committed claim. MUST be called inside the transaction that inserts\n * the topic row (the `withinCreateTransaction` hook of `registerTopic` /\n * `createDerivedTopic`): a plain INSERT, so a concurrent second request with\n * the same key fails the primary key and rolls its own topic back.\n */\nexport function insertCommittedTopicCreateClaim(input: {\n principalKey: string;\n requestId: string;\n op: \"create\" | \"derive\";\n payloadHash: string;\n topicId: string;\n /** Derive: the path source topic the claim is bound to. */\n sourceTopicId?: string;\n}): TopicCreateClaim {\n const now = new Date().toISOString();\n const seed = maxMessageRowid(input.topicId);\n const seeded = messageSetOf(input.topicId);\n db.query(\n `INSERT INTO api_topic_create_claims\n (principal_key, request_id, op, payload_hash, topic_id, state, node_id,\n seed_max_message_rowid, created_at, updated_at,\n source_topic_id, seed_message_count, seed_message_ids_hash)\n VALUES (?, ?, ?, ?, ?, 'committed', ${NODE_IDENTITY_SQL}, ?, ?, ?, ?, ?, ?)`,\n ).run(\n input.principalKey,\n input.requestId,\n input.op,\n input.payloadHash,\n input.topicId,\n seed,\n now,\n now,\n input.sourceTopicId ?? null,\n seeded.count,\n seeded.hash,\n );\n const claim = getTopicCreateClaim(input.principalKey, input.requestId);\n if (!claim) throw new Error(\"topic create claim was not recorded\");\n return claim;\n}\n\n/**\n * Write the aborted fence for a key that has no claim yet, so a create that\n * arrives after the abort is refused rather than orphaned. No-op (false) when\n * any claim already exists for the key. Callers deciding \"no claim\" MUST do so\n * in the same transaction (see `abortTopicCreateClaim`).\n */\nexport function insertTopicCreateAbortFence(principalKey: string, requestId: string): boolean {\n const now = new Date().toISOString();\n const inserted = db\n .query(\n `INSERT OR IGNORE INTO api_topic_create_claims\n (principal_key, request_id, op, payload_hash, topic_id, state, node_id,\n seed_max_message_rowid, created_at, updated_at, settled_at)\n VALUES (?, ?, 'abort', '', NULL, 'aborted', ${NODE_IDENTITY_SQL}, 0, ?, ?, ?)`,\n )\n .run(principalKey, requestId, now, now, now);\n return Number(inserted.changes ?? 0) > 0;\n}\n\n/**\n * CAS a committed claim to aborted. Only for a caller that has decided the\n * claim's topic in the same transaction (deleted it, or found it gone): a\n * committed claim must never become aborted while its topic lives on.\n */\nexport function flipCommittedTopicCreateClaimToAborted(\n principalKey: string,\n requestId: string,\n): boolean {\n const updated = db\n .query(\n `UPDATE api_topic_create_claims SET state = 'aborted', updated_at = ?1, settled_at = ?1\n WHERE principal_key = ?2 AND request_id = ?3 AND state = 'committed'`,\n )\n .run(new Date().toISOString(), principalKey, requestId);\n return Number(updated.changes ?? 0) > 0;\n}\n\n/**\n * Settle a claim as aborted where that is safe without deleting anything, in\n * one `BEGIN IMMEDIATE`: no claim → aborted fence; committed claim whose topic\n * row is already gone → aborted. A committed claim whose topic still exists is\n * returned UNCHANGED (deleting it is `abortTopicCreateClaim`'s job). Returns\n * the stored claim.\n */\nexport function markTopicCreateClaimAborted(\n principalKey: string,\n requestId: string,\n): TopicCreateClaim {\n return db\n .transaction(() => {\n const current = getTopicCreateClaim(principalKey, requestId);\n if (!current) {\n insertTopicCreateAbortFence(principalKey, requestId);\n } else if (current.state === \"committed\" && !topicRowExists(current.topicId)) {\n flipCommittedTopicCreateClaimToAborted(principalKey, requestId);\n }\n const claim = getTopicCreateClaim(principalKey, requestId);\n if (!claim) throw new Error(\"topic create claim abort was not recorded\");\n return claim;\n })\n .immediate();\n}\n\nfunction topicRowExists(topicId: string | null): boolean {\n if (!topicId) return false;\n return Boolean(\n db\n .query<{ found: number }, [string]>(\"SELECT 1 AS found FROM api_topics WHERE id = ?\")\n .get(topicId),\n );\n}\n\n/** Whether a live claim-abort fence currently refuses messages into this topic. */\nexport function isTopicClaimAbortFenced(topicId: string): boolean {\n return Boolean(\n db\n .query<{ found: number }, [string]>(\n `SELECT 1 AS found FROM runtime_topic_state WHERE topic_id = ? AND ${CLAIM_ABORT_FENCE_PREDICATE}`,\n )\n .get(topicId),\n );\n}\n\n/** Whether an error is the message fence trigger's refusal. */\nexport function isTopicClaimAbortFenceError(error: unknown): boolean {\n return error instanceof Error && error.message.includes(TOPIC_CLAIM_ABORT_FENCE_ERROR);\n}\n\n/**\n * Whether the claimed topic's messages differ from what it was created with.\n *\n * Compared as an exact SET (count + hash of the sorted ids recorded at claim\n * time), not by rowid: a logical dump/import or a VACUUM that renumbers rowids\n * cannot make a post-create message look seeded. Any difference — a new\n * message, a hard-deleted one — counts, so an abort only ever deletes a topic\n * holding exactly its seeded history. Legacy claims without a recorded set fall\n * back to the rowid boundary.\n */\nexport function topicHasMessagesAfterClaim(claim: TopicCreateClaim): boolean {\n if (!claim.topicId) return false;\n if (claim.seedMessageCount !== null && claim.seedMessageIdsHash !== null) {\n const current = messageSetOf(claim.topicId);\n return current.count !== claim.seedMessageCount || current.hash !== claim.seedMessageIdsHash;\n }\n const row = db\n .query<{ found: number }, [string, number]>(\n \"SELECT 1 AS found FROM api_messages WHERE topic_id = ? AND rowid > ? LIMIT 1\",\n )\n .get(claim.topicId, claim.seedMaxMessageRowid);\n return Boolean(row);\n}\n\n/** Upper bound of claims one prune call removes (bounded work per request). */\nexport const TOPIC_CREATE_CLAIM_PRUNE_BATCH = 500;\n\n/**\n * Drop claims past the retention window. Returns the number removed.\n *\n * The retention anchor is the claim's LAST settlement: a committed claim is\n * kept from its `created_at`, an aborted one (fence) from its `settled_at` —\n * the moment it became aborted (rows settled before that column existed fall\n * back to `updated_at`). An old committed claim aborted today therefore\n * keeps refusing a late create with the same requestId for a full window.\n * Removes at most `batch` rows per call.\n */\nexport function pruneTopicCreateClaims(\n now: number = Date.now(),\n retentionMs: number = TOPIC_CREATE_CLAIM_RETENTION_MS,\n batch: number = TOPIC_CREATE_CLAIM_PRUNE_BATCH,\n): number {\n const cutoff = new Date(now - retentionMs).toISOString();\n const result = db\n .query(\n `DELETE FROM api_topic_create_claims WHERE rowid IN (\n SELECT rowid FROM api_topic_create_claims\n WHERE (state = 'committed' AND created_at < ?)\n OR (state = 'aborted' AND COALESCE(settled_at, updated_at) < ?)\n LIMIT ?)`,\n )\n .run(cutoff, cutoff, batch);\n return Number(result.changes ?? 0);\n}\n\n// ── tombstones ────────────────────────────────────────────────────────────\n\nfunction toTombstone(row: TombstoneRow): TopicTombstone {\n return {\n seq: Number(row.seq),\n topicId: row.topic_id,\n nodeId: row.node_id,\n reason: row.reason as TopicTombstoneReason,\n surface: row.surface,\n surfaceScope: row.surface_scope,\n deletedAt: row.deleted_at,\n };\n}\n\nexport function getTopicTombstone(topicId: string): TopicTombstone | null {\n const row = db\n .query<TombstoneRow, [string]>(\"SELECT * FROM api_topic_tombstones WHERE topic_id = ?\")\n .get(topicId);\n return row ? toTombstone(row) : null;\n}\n\n/** Tombstones after a cursor, oldest first. */\n/**\n * The tombstone feed after a cursor, oldest first: current tombstones merged\n * with scope moves (as `unshared` for the OLD scope, `scopeMoved: true`). Both\n * take their seq from the same never-decreasing counter.\n */\nexport function listTopicTombstonesAfter(after: number, limit: number): TopicTombstone[] {\n return db\n .query<TombstoneRow & { scope_moved: number }, [number, number, number]>(\n `SELECT seq, topic_id, node_id, reason, surface, surface_scope, deleted_at, 0 AS scope_moved\n FROM api_topic_tombstones WHERE seq > ?1\n UNION ALL\n SELECT seq, topic_id, node_id, 'unshared', 'otium', from_scope, moved_at, 1\n FROM api_topic_scope_moves WHERE seq > ?2\n ORDER BY seq ASC LIMIT ?3`,\n )\n .all(after, after, limit)\n .map((row) => ({\n ...toTombstone(row),\n ...(row.scope_moved ? { scopeMoved: true as const } : {}),\n }));\n}\n\n/** The latest admin scope move of a topic (the scope it was moved out of), if any. */\nexport function latestTopicScopeMove(topicId: string): TopicTombstone | null {\n const row = db\n .query<\n { seq: number | bigint; node_id: string | null; from_scope: string | null; moved_at: string },\n [string]\n >(\n `SELECT seq, node_id, from_scope, moved_at FROM api_topic_scope_moves\n WHERE topic_id = ? ORDER BY seq DESC LIMIT 1`,\n )\n .get(topicId);\n if (!row) return null;\n return {\n seq: Number(row.seq),\n topicId,\n nodeId: row.node_id,\n reason: \"unshared\",\n surface: \"otium\",\n surfaceScope: row.from_scope,\n deletedAt: row.moved_at,\n scopeMoved: true,\n };\n}\n\n// ── otium scope repair (review fix 6 / PR12 admin repair) ────────────────\n\nexport interface AdminRepairOtiumTopicScopeInput {\n topicId: string;\n /** Only an unscoped room can be repaired: must be `null`. */\n fromScope: null;\n /** Non-empty, no leading/trailing whitespace. */\n toScope: string;\n /**\n * The row the operator observed — compare-and-set. `surface`/`surfaceScope`\n * are required; `createdAt`/`title` pin the exact row when given.\n */\n expectedRow: { surface: \"otium\"; surfaceScope: null; createdAt?: string; title?: string };\n /** Who asked (operator/CLI user, `m9-stamp`). Recorded in the history row. */\n actor: string;\n reason: string;\n}\n\nexport type AdminRepairOtiumTopicScopeRefusal =\n | \"invalid_scope\"\n | \"not_found\"\n | \"not_otium\"\n | \"scope_not_null\"\n | \"row_changed\"\n | \"title_conflict\"\n | \"duplicate_manager\"\n | \"maintenance_in_progress\";\n\nexport type AdminRepairOtiumTopicScopeResult =\n | {\n ok: true;\n topicId: string;\n fromScope: null;\n toScope: string;\n /**\n * Committed create claims of the topic, left on their ORIGINAL principal\n * (never re-bound). A claim whose principal no longer covers the new\n * scope answers `409 claim_topic_moved` on replay/abort.\n */\n claimsLeft: number;\n /** seq of the scope-move entry in the tombstone feed (also the audit id). */\n moveSeq: number;\n }\n | { ok: false; topicId: string; reason: AdminRepairOtiumTopicScopeRefusal; detail?: string };\n\ninterface RepairTopicRow {\n id: string;\n title: string;\n kind: string;\n surface: string;\n surface_scope: string | null;\n created_at: string;\n}\n\nfunction repairOneTopicScope(\n input: AdminRepairOtiumTopicScopeInput,\n): AdminRepairOtiumTopicScopeResult {\n const { topicId } = input;\n const refuse = (reason: AdminRepairOtiumTopicScopeRefusal, detail?: string) =>\n ({ ok: false, topicId, reason, ...(detail ? { detail } : {}) }) as const;\n const toScope = typeof input.toScope === \"string\" ? input.toScope : \"\";\n if (!toScope || toScope !== toScope.trim() || input.fromScope !== null) {\n return refuse(\"invalid_scope\");\n }\n const row = db\n .query<RepairTopicRow, [string]>(\n \"SELECT id, title, kind, surface, surface_scope, created_at FROM api_topics WHERE id = ?\",\n )\n .get(topicId);\n if (!row) return refuse(\"not_found\");\n if (row.surface !== \"otium\" || input.expectedRow.surface !== \"otium\") return refuse(\"not_otium\");\n if (row.surface_scope !== null || input.expectedRow.surfaceScope !== null) {\n return refuse(\"scope_not_null\", row.surface_scope ?? undefined);\n }\n if (\n (input.expectedRow.createdAt !== undefined && input.expectedRow.createdAt !== row.created_at) ||\n (input.expectedRow.title !== undefined && input.expectedRow.title !== row.title)\n ) {\n return refuse(\"row_changed\");\n }\n // A claim abort (or any delete/reset/compact) holds the topic right now.\n const busy = db\n .query<{ found: number }, [string, number]>(\n `SELECT 1 AS found FROM runtime_topic_state\n WHERE topic_id = ? AND maintenance = 1 AND heartbeat_at >= ?`,\n )\n .get(topicId, Date.now() - CLAIM_ABORT_FENCE_STALE_MS);\n if (busy) return refuse(\"maintenance_in_progress\");\n if (row.kind === \"manager\") {\n // Manager rooms are one-per-user and all titled \"General\", so — exactly as\n // in `findTopicTitleConflict` — they take no part in title conflicts.\n // What must not happen is a SECOND manager room for the same owner in one\n // scope (the PR12 CLI and hub audit D7 enforce it too; this is the\n // primitive's own guard so no caller can create one silently).\n const duplicate = db\n .query<{ id: string }, [string, string, string, string]>(\n `SELECT t.id FROM api_topics t\n JOIN topic_members m ON m.topic_id = t.id AND m.role = 'owner'\n WHERE t.kind = 'manager' AND t.surface = 'otium' AND t.surface_scope IS ?\n AND t.id != ? AND t.id != ?\n AND m.user_id IN (\n SELECT user_id FROM topic_members WHERE topic_id = ? AND role = 'owner'\n )\n LIMIT 1`,\n )\n .get(toScope, topicId, GENERAL_TOPIC_ID, topicId);\n if (duplicate) return refuse(\"duplicate_manager\", duplicate.id);\n } else {\n // Same rule as `findTopicTitleConflict`: manager rooms are not title\n // peers, except the reserved shared `general` row.\n const conflict = db\n .query<{ id: string }, [string, string, string, string]>(\n `SELECT id FROM api_topics\n WHERE LOWER(TRIM(title)) = LOWER(TRIM(?)) AND surface = 'otium' AND surface_scope IS ?\n AND id != ? AND (kind != 'manager' OR id = ?) LIMIT 1`,\n )\n .get(row.title, toScope, topicId, GENERAL_TOPIC_ID);\n if (conflict) return refuse(\"title_conflict\", conflict.id);\n }\n\n const claimsLeft = Number(\n db\n .query<{ n: number }, [string]>(\n `SELECT COUNT(*) AS n FROM api_topic_create_claims\n WHERE topic_id = ? AND state = 'committed'`,\n )\n .get(topicId)?.n ?? 0,\n );\n db.query(\"INSERT INTO api_topic_scope_repair_grants (topic_id) VALUES (?)\").run(topicId);\n const updated = db\n .query(\n `UPDATE api_topics SET surface_scope = ?\n WHERE id = ? AND surface = 'otium' AND surface_scope IS NULL`,\n )\n .run(toScope, topicId);\n db.query(\"DELETE FROM api_topic_scope_repair_grants WHERE topic_id = ?\").run(topicId);\n if (Number(updated.changes ?? 0) !== 1) throw new Error(\"scope repair CAS lost the row\");\n db.query(BUMP_TOMBSTONE_SEQ_SQL).run();\n db.query(\n `INSERT INTO api_topic_scope_moves\n (seq, topic_id, node_id, from_scope, to_scope, actor, reason, claims_left, moved_at)\n VALUES (${TOMBSTONE_SEQ_SQL}, ?, ${NODE_IDENTITY_SQL}, NULL, ?, ?, ?, ?, ?)`,\n ).run(topicId, toScope, input.actor, input.reason, claimsLeft, new Date().toISOString());\n const moveSeq = Number(\n db.query<{ seq: number }, []>(`SELECT ${TOMBSTONE_SEQ_SQL} AS seq`).get()?.seq ?? 0,\n );\n return { ok: true, topicId, fromScope: null, toScope, claimsLeft, moveSeq };\n}\n\n/**\n * The ONLY sanctioned way to change an otium topic's `surface_scope` after\n * creation — the `api_topics_otium_scope_immutable` trigger refuses every other\n * writer. One-shot, audited, one `BEGIN IMMEDIATE` (joins the caller's\n * transaction when there is one):\n *\n * - only `NULL → <non-empty scope>` on a `surface='otium'` row, compare-and-set\n * against `expectedRow`; any refusal changes nothing;\n * - create claims are NOT re-bound: they stay on their original principal, and\n * replay/abort re-verify that the topic's current scope still belongs to the\n * claim's principal (else `409 claim_topic_moved`). Re-binding would let the\n * new scope's principal delete a room another caller created, and that\n * caller's retry would then create a duplicate;\n * - the move is recorded in `api_topic_scope_moves` (history + audit) with a\n * seq from the tombstone counter, and appears in the tombstone feed as an\n * `unshared` entry for the OLD scope (`scopeMoved: true`);\n * - tombstones are not rewritten.\n *\n * No HTTP route: storage / admin CLI only.\n */\nexport function adminRepairOtiumTopicScope(\n input: AdminRepairOtiumTopicScopeInput,\n): AdminRepairOtiumTopicScopeResult {\n return db.transaction(() => repairOneTopicScope(input)).immediate();\n}\n\n/**\n * M-9 bulk variant: stamp every unscoped otium room with `toScope` through the\n * same per-topic repair (history recorded, claims untouched). Rooms that are\n * refused (busy, title conflict, duplicate manager) are skipped and reported — the caller decides\n * whether that leaves its migration incomplete (it must, revision 5).\n *\n * `topicIds` narrows the pass to those rooms (the M-9 retry of its pending\n * set); ids that are no longer unscoped otium rooms are simply not selected.\n */\nexport function repairUnscopedOtiumTopicScopes(\n toScope: string,\n actor: string,\n reason: string,\n options: { topicIds?: readonly string[] } = {},\n): { stamped: number; skipped: AdminRepairOtiumTopicScopeResult[] } {\n const skipped: AdminRepairOtiumTopicScopeResult[] = [];\n let stamped = 0;\n const all = db\n .query<RepairTopicRow, []>(\n `SELECT id, title, kind, surface, surface_scope, created_at FROM api_topics\n WHERE surface = 'otium' AND surface_scope IS NULL`,\n )\n .all();\n const only = options.topicIds ? new Set(options.topicIds) : null;\n const rows = only ? all.filter((row) => only.has(row.id)) : all;\n for (const row of rows) {\n const result = repairOneTopicScope({\n topicId: row.id,\n fromScope: null,\n toScope,\n expectedRow: { surface: \"otium\", surfaceScope: null, createdAt: row.created_at },\n actor,\n reason,\n });\n if (result.ok) stamped += 1;\n else skipped.push(result);\n }\n return { stamped, skipped };\n}\n",
32
32
  "// Persistent topic store backed by shared SQLite.\n\nimport { resolveFallbackAgent } from \"#platform/config-helpers\";\nimport { GENERAL_TOPIC_ID } from \"#platform/constants\";\nimport { logger } from \"#platform/logger\";\nimport { db } from \"#storage/forum-db\";\nimport { onRuntimeTopicMaintenanceReleased } from \"#storage/runtime-topic-state\";\nimport { registerStorageSchemaInitializer } from \"#storage/storage-host\";\n// Also registers the claim/tombstone schema and the api_topics tombstone and\n// scope-immutability triggers wherever topics can be written (topic-link PR7).\nimport { repairUnscopedOtiumTopicScopes } from \"#storage/topic-link-records\";\nimport type { AgentKind, EffortLevel } from \"#types\";\nimport type {\n AiMode,\n ParticipantDto,\n SubagentReportMode,\n TopicDto,\n TopicKind,\n TopicSurface,\n TopicVisibility,\n} from \"#types/api\";\n\n/**\n * Surface used when a caller does not name one — and the value every existing\n * row is backfilled with on first boot after the surface migration.\n *\n * Hosts that only ever serve one surface declare it once in their environment\n * (`NEGOTIUM_DEFAULT_SURFACE=otium` on the Otium hub and worker); a developer\n * Mac leaves it unset and gets `terminal`, with the telegram adapter\n * reclassifying its own mapped rooms afterwards.\n */\nexport function defaultTopicSurface(): TopicSurface {\n return normalizeTopicSurface(process.env.NEGOTIUM_DEFAULT_SURFACE);\n}\n\nexport function normalizeTopicSurface(value: unknown): TopicSurface {\n return value === \"telegram\" || value === \"otium\" || value === \"terminal\" ? value : \"terminal\";\n}\n\n/**\n * The surface instance new rooms are filed under when the caller names none.\n *\n * `surface` alone is not enough once a node may be attached to several Otium\n * workspaces (M-2): two workspaces are two independent namespaces on the same\n * surface. The adapter that owns the attachment installs the active scope at\n * mount time; `terminal` and `telegram` are singletons and stay null.\n *\n * Kept as process state rather than an argument threaded through every creation\n * path because the value is a property of *this process's attachment*, not of\n * any individual call — the same reason `defaultTopicSurface()` exists.\n */\nlet activeSurfaceScope: string | null = null;\n\nexport function normalizeSurfaceScope(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed ? trimmed : null;\n}\n\nexport function defaultSurfaceScope(): string | null {\n return activeSurfaceScope ?? normalizeSurfaceScope(process.env.NEGOTIUM_SURFACE_SCOPE);\n}\n\n/** Install (or clear) the scope new rooms inherit. Returns the previous value. */\nexport function setDefaultSurfaceScope(scope: string | null): string | null {\n const previous = activeSurfaceScope;\n activeSurfaceScope = normalizeSurfaceScope(scope);\n return previous;\n}\n\n/**\n * Whether an Otium room must name a workspace to be created at all (M-3).\n *\n * Off by default, and off for every single-workspace host: an unscoped room is\n * then legacy, reachable, and perfectly usable. The adapter turns it on only\n * while several workspaces are attached, because there an unscoped room is\n * reachable from none of them (M-10) — a room nobody can see is worse than a\n * refusal that says so.\n */\nlet surfaceScopeRequired = false;\n\nexport function setSurfaceScopeRequired(required: boolean): void {\n surfaceScopeRequired = required;\n}\n\nexport function isSurfaceScopeRequired(): boolean {\n return surfaceScopeRequired;\n}\n\n/**\n * How many Otium workspaces the adapter currently has mounted, or null when no\n * adapter ever reported (a node without the Otium adapter). Lets a loopback\n * caller tell \"one workspace, scope not resolved yet\" apart from \"no\n * workspace at all\" (topic-link design v2 §4.6, `GET /surface-scope`).\n */\nlet mountedSurfaceScopeCount: number | null = null;\n\nexport function setMountedSurfaceScopeCount(count: number | null): void {\n mountedSurfaceScopeCount = count === null ? null : Math.max(0, Math.floor(count));\n}\n\nexport interface LocalSurfaceScopeStatus {\n /** The workspace an unscoped (loopback) caller's otium rooms are filed under. */\n surfaceScope: string | null;\n /** False while the scope cannot be stated (several workspaces, or one not resolved yet). */\n resolved: boolean;\n /** True while several workspaces are mounted: a room must name one. */\n scopeRequired: boolean;\n /** Mounted Otium workspaces; 0 when no adapter reported. */\n joinsMounted: number;\n}\n\n/** The scope a loopback (no scope header) gateway caller gets. */\nexport function localSurfaceScopeStatus(): LocalSurfaceScopeStatus {\n const joinsMounted = mountedSurfaceScopeCount ?? 0;\n if (surfaceScopeRequired) {\n return { surfaceScope: null, resolved: false, scopeRequired: true, joinsMounted };\n }\n const surfaceScope = defaultSurfaceScope();\n return {\n surfaceScope,\n resolved: joinsMounted === 1 ? surfaceScope !== null : true,\n scopeRequired: false,\n joinsMounted,\n };\n}\n\nfunction tableColumns(table: string): Set<string> {\n const rows = db.query(`PRAGMA table_info(${table})`).all() as Array<{ name: string }>;\n return new Set(rows.map((row) => row.name));\n}\n\n/** Persist the authoritative agent and, when supplied, its normalized base defaults. */\nexport function setApiTopicAgent(\n topicId: string,\n agent: AgentKind,\n defaults?: { model: string; effort?: EffortLevel },\n): void {\n if (!defaults) {\n db.query(\"UPDATE api_topics SET agent = ? WHERE id = ?\").run(agent, topicId);\n return;\n }\n db.query(\"UPDATE api_topics SET agent = ?, base_model = ?, base_effort = ? WHERE id = ?\").run(\n agent,\n defaults.model,\n defaults.effort ?? null,\n topicId,\n );\n}\n\nfunction initializeApiTopicsSchema(): void {\n db.exec(`\n CREATE TABLE IF NOT EXISTS api_topics (\n id TEXT PRIMARY KEY,\n title TEXT NOT NULL,\n kind TEXT NOT NULL DEFAULT 'channel',\n description TEXT,\n agent TEXT,\n default_model TEXT,\n default_effort TEXT,\n participants TEXT,\n created_at TEXT NOT NULL,\n last_message_at TEXT,\n is_archived INTEGER NOT NULL DEFAULT 0,\n ai_mention INTEGER NOT NULL DEFAULT 0,\n ai_mode TEXT\n )\n`);\n\n const initialTopicColumns = tableColumns(\"api_topics\");\n const legacyTopicSchema = !initialTopicColumns.has(\"response_policy\");\n const needsCanonicalTopicRebuild = legacyTopicSchema || !initialTopicColumns.has(\"agent\");\n if (legacyTopicSchema) {\n // Rename the legacy column once; new databases are created with `agent`.\n try {\n db.exec(\"ALTER TABLE api_topics RENAME COLUMN default_agent TO agent\");\n } catch {\n // Already migrated or freshly created.\n }\n\n // Migrate existing DBs that predate the ai_mention column (team-mode topics).\n try {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN ai_mention INTEGER NOT NULL DEFAULT 0\");\n } catch {\n // Column already exists — nothing to do.\n }\n\n // Migrate for spawn/fork tracking (R1).\n try {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN parent_topic_id TEXT\");\n } catch {}\n try {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN is_fork INTEGER NOT NULL DEFAULT 0\");\n } catch {}\n\n // Migrate for agent-spawned subagent worker rooms.\n try {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN is_subagent INTEGER NOT NULL DEFAULT 0\");\n } catch {}\n\n // Migrate for session persistence.\n try {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN session_id TEXT\");\n } catch {}\n\n try {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN kind TEXT NOT NULL DEFAULT 'channel'\");\n } catch {}\n\n try {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN ai_mode TEXT\");\n } catch {}\n\n db.exec(`\n CREATE TABLE IF NOT EXISTS api_schema_migrations (\n key TEXT PRIMARY KEY,\n applied_at TEXT NOT NULL\n )\n`);\n\n const ALWAYS_RESPOND_MIGRATION = \"api_topics_ai_invited_default_always_respond_20260623\";\n const alwaysRespondMigration = db\n .query(\"SELECT key FROM api_schema_migrations WHERE key = ?\")\n .get(ALWAYS_RESPOND_MIGRATION);\n if (!alwaysRespondMigration) {\n db.transaction(() => {\n db.query(\"UPDATE api_topics SET ai_mention = 0 WHERE agent IS NOT NULL\").run();\n db.query(\"INSERT INTO api_schema_migrations (key, applied_at) VALUES (?, ?)\").run(\n ALWAYS_RESPOND_MIGRATION,\n new Date().toISOString(),\n );\n })();\n }\n\n const GENERAL_AGENT_KIND_MIGRATION = \"api_topics_general_agent_kind_20260704\";\n const generalAgentKindMigration = db\n .query(\"SELECT key FROM api_schema_migrations WHERE key = ?\")\n .get(GENERAL_AGENT_KIND_MIGRATION);\n if (!generalAgentKindMigration) {\n db.transaction(() => {\n db.query(\"UPDATE api_topics SET kind = 'agent', ai_mention = 0 WHERE id = ?\").run(\n GENERAL_TOPIC_ID,\n );\n db.query(\"INSERT INTO api_schema_migrations (key, applied_at) VALUES (?, ?)\").run(\n GENERAL_AGENT_KIND_MIGRATION,\n new Date().toISOString(),\n );\n })();\n }\n\n const AI_MODE_MIGRATION = \"api_topics_ai_mode_20260704\";\n const aiModeMigration = db\n .query(\"SELECT key FROM api_schema_migrations WHERE key = ?\")\n .get(AI_MODE_MIGRATION);\n if (!aiModeMigration) {\n db.transaction(() => {\n db.query(\n `UPDATE api_topics\n SET\n kind = CASE\n WHEN id = ? THEN 'agent'\n WHEN kind = 'channel' AND agent IS NOT NULL AND ai_mention = 0 THEN 'agent'\n ELSE kind\n END,\n ai_mode = CASE\n WHEN id = ? THEN 'always'\n WHEN agent IS NULL THEN 'off'\n WHEN kind = 'agent' THEN 'always'\n WHEN kind = 'channel' AND ai_mention != 0 THEN 'mention'\n WHEN kind = 'channel' AND ai_mention = 0 THEN 'always'\n WHEN ai_mention != 0 THEN 'mention'\n ELSE 'always'\n END`,\n ).run(GENERAL_TOPIC_ID, GENERAL_TOPIC_ID);\n db.query(\"INSERT INTO api_schema_migrations (key, applied_at) VALUES (?, ?)\").run(\n AI_MODE_MIGRATION,\n new Date().toISOString(),\n );\n })();\n }\n\n const GENERAL_MANAGER_KIND_MIGRATION = \"api_topics_general_manager_kind_20260704\";\n const generalManagerKindMigration = db\n .query(\"SELECT key FROM api_schema_migrations WHERE key = ?\")\n .get(GENERAL_MANAGER_KIND_MIGRATION);\n if (!generalManagerKindMigration) {\n db.transaction(() => {\n db.query(\n \"UPDATE api_topics SET kind = 'manager', ai_mention = 0, ai_mode = 'always' WHERE id = ?\",\n ).run(GENERAL_TOPIC_ID);\n db.query(\"INSERT INTO api_schema_migrations (key, applied_at) VALUES (?, ?)\").run(\n GENERAL_MANAGER_KIND_MIGRATION,\n new Date().toISOString(),\n );\n })();\n }\n }\n\n function createCanonicalTopicsTable(name: string): void {\n db.exec(`\n CREATE TABLE IF NOT EXISTS ${name} (\n id TEXT PRIMARY KEY,\n title TEXT NOT NULL,\n kind TEXT NOT NULL CHECK (kind IN ('channel','agent','manager')),\n description TEXT,\n agent TEXT CHECK (agent IS NULL OR agent IN ('maestro','claude','codex')),\n base_model TEXT,\n base_effort TEXT CHECK (base_effort IS NULL OR base_effort IN ('low','medium','high','xhigh','max')),\n response_policy TEXT NOT NULL CHECK (response_policy IN ('off','mention','always')),\n created_at TEXT NOT NULL,\n last_message_at TEXT,\n parent_topic_id TEXT,\n memory_topic_id TEXT,\n memory_key TEXT,\n is_fork INTEGER NOT NULL DEFAULT 0 CHECK (is_fork IN (0,1)),\n is_subagent INTEGER NOT NULL DEFAULT 0 CHECK (is_subagent IN (0,1)),\n visibility TEXT NOT NULL DEFAULT 'visible' CHECK (visibility IN ('visible','hidden')),\n surface TEXT NOT NULL DEFAULT 'terminal' CHECK (surface IN ('terminal','telegram','otium')),\n surface_scope TEXT,\n browser_profile TEXT NOT NULL DEFAULT 'default',\n browser_profile_owner TEXT,\n browser_connect_port INTEGER,\n session_id TEXT,\n CHECK (\n (kind = 'channel' AND response_policy = 'off' AND agent IS NULL) OR\n (kind = 'channel' AND response_policy = 'mention' AND agent IS NOT NULL) OR\n (kind IN ('agent','manager') AND response_policy = 'always' AND agent IS NOT NULL)\n )\n )\n `);\n }\n\n function createTopicMembersTable(): void {\n db.exec(`\n CREATE TABLE IF NOT EXISTS topic_members (\n topic_id TEXT NOT NULL REFERENCES api_topics(id) ON DELETE CASCADE,\n user_id TEXT NOT NULL,\n role TEXT NOT NULL CHECK (role IN ('owner','member')),\n PRIMARY KEY (topic_id, user_id)\n )\n `);\n db.exec(\"CREATE INDEX IF NOT EXISTS idx_topic_members_user ON topic_members(user_id)\");\n }\n\n if (needsCanonicalTopicRebuild) {\n const legacyRows = db.query(\"SELECT * FROM api_topics\").all() as Array<Record<string, unknown>>;\n const existingMemberRows = tableColumns(\"topic_members\").has(\"topic_id\")\n ? (db.query(\"SELECT topic_id, user_id, role FROM topic_members\").all() as Array<{\n topic_id: string;\n user_id: string;\n role: string;\n }>)\n : [];\n const configColumns = tableColumns(\"api_topic_config\");\n const legacyAgentOverrides = configColumns.has(\"agent\")\n ? new Map(\n (\n db\n .query(\"SELECT topic_id, agent FROM api_topic_config WHERE agent IS NOT NULL\")\n .all() as Array<{ topic_id: string; agent: AgentKind }>\n ).map((row) => [row.topic_id, row.agent]),\n )\n : new Map<string, AgentKind>();\n const previousForeignKeys = db\n .query<{ foreign_keys: number }, []>(\"PRAGMA foreign_keys\")\n .get()?.foreign_keys;\n db.exec(\"PRAGMA foreign_keys = OFF\");\n try {\n db.transaction(() => {\n createCanonicalTopicsTable(\"api_topics_next\");\n for (const row of legacyRows) {\n const selectedAgent = (legacyAgentOverrides.get(String(row.id)) ??\n row.agent ??\n row.runtime_agent ??\n row.default_agent ??\n undefined) as AgentKind | undefined;\n const normalized = normalizeTopicState({\n id: String(row.id),\n kind: normalizeTopicKind(row.kind),\n agent: selectedAgent,\n aiMode: normalizeAiMode(row.response_policy ?? row.ai_mode),\n aiMention: Number(row.ai_mention ?? 0) !== 0,\n });\n const legacyBaseModel = row.base_model ?? row.default_model;\n const legacyBaseEffort = row.base_effort ?? row.default_effort;\n db.query(\n `INSERT INTO api_topics_next\n (id,title,kind,description,agent,base_model,base_effort,response_policy,\n created_at,last_message_at,parent_topic_id,memory_topic_id,memory_key,is_fork,is_subagent,visibility,surface,surface_scope,session_id)\n VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`,\n ).run(\n String(row.id),\n String(row.title),\n normalized.kind,\n typeof row.description === \"string\" ? row.description : null,\n normalized.agent ?? null,\n typeof legacyBaseModel === \"string\" ? legacyBaseModel : null,\n typeof legacyBaseEffort === \"string\" ? legacyBaseEffort : null,\n normalized.aiMode,\n String(row.created_at),\n typeof row.last_message_at === \"string\" ? row.last_message_at : null,\n typeof row.parent_topic_id === \"string\" ? row.parent_topic_id : null,\n typeof row.memory_topic_id === \"string\" ? row.memory_topic_id : null,\n typeof row.memory_key === \"string\" ? row.memory_key : null,\n Number(row.is_fork ?? 0) !== 0 ? 1 : 0,\n Number(row.is_subagent ?? 0) !== 0 ? 1 : 0,\n row.visibility === \"hidden\" ? \"hidden\" : \"visible\",\n row.surface === undefined ? defaultTopicSurface() : normalizeTopicSurface(row.surface),\n normalizeSurfaceScope(row.surface_scope),\n typeof row.session_id === \"string\" ? row.session_id : null,\n );\n }\n db.exec(\"DROP TABLE IF EXISTS topic_members\");\n db.exec(\"DROP TABLE api_topics\");\n db.exec(\"ALTER TABLE api_topics_next RENAME TO api_topics\");\n createTopicMembersTable();\n if (existingMemberRows.length > 0) {\n for (const member of existingMemberRows) {\n db.query(\n \"INSERT OR REPLACE INTO topic_members (topic_id,user_id,role) VALUES (?,?,?)\",\n ).run(member.topic_id, member.user_id, member.role === \"owner\" ? \"owner\" : \"member\");\n }\n } else {\n for (const row of legacyRows) {\n let participants: ParticipantDto[] = [];\n try {\n const parsed = JSON.parse(String(row.participants ?? \"[]\"));\n if (Array.isArray(parsed)) participants = parsed as ParticipantDto[];\n } catch {\n participants = [];\n }\n for (const participant of participants) {\n if (!participant?.userId) continue;\n db.query(\n \"INSERT OR REPLACE INTO topic_members (topic_id,user_id,role) VALUES (?,?,?)\",\n ).run(\n String(row.id),\n participant.userId,\n participant.role === \"owner\" ? \"owner\" : \"member\",\n );\n }\n }\n }\n })();\n } finally {\n db.exec(`PRAGMA foreign_keys = ${previousForeignKeys ? \"ON\" : \"OFF\"}`);\n }\n } else {\n createCanonicalTopicsTable(\"api_topics\");\n createTopicMembersTable();\n }\n\n db.exec(`\n CREATE TABLE IF NOT EXISTS subagent_tell_grants (\n subagent_topic_id TEXT NOT NULL REFERENCES api_topics(id) ON DELETE CASCADE,\n target_topic_id TEXT NOT NULL REFERENCES api_topics(id) ON DELETE CASCADE,\n granted_by_topic_id TEXT NOT NULL REFERENCES api_topics(id) ON DELETE CASCADE,\n created_at TEXT NOT NULL,\n PRIMARY KEY (subagent_topic_id, target_topic_id)\n )\n `);\n db.exec(`\n DELETE FROM subagent_tell_grants\n WHERE subagent_topic_id NOT IN (SELECT id FROM api_topics)\n OR target_topic_id NOT IN (SELECT id FROM api_topics)\n OR granted_by_topic_id NOT IN (SELECT id FROM api_topics)\n `);\n db.exec(\"DELETE FROM topic_members WHERE topic_id NOT IN (SELECT id FROM api_topics)\");\n\n // Canonical databases created before explicit adapter visibility need a\n // lightweight additive migration; fresh/rebuilt databases already have it.\n if (!tableColumns(\"api_topics\").has(\"visibility\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN visibility TEXT NOT NULL DEFAULT 'visible'\");\n }\n if (!tableColumns(\"api_topics\").has(\"surface\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN surface TEXT NOT NULL DEFAULT 'terminal'\");\n }\n if (!tableColumns(\"api_topics\").has(\"surface_scope\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN surface_scope TEXT\");\n }\n // `access_mode` was replaced by `surface`: a topic is reachable from Otium\n // because it lives there, not because a flag was flipped (S-4). Dropping the\n // column removes the second, now-contradictory source of truth.\n if (tableColumns(\"api_topics\").has(\"access_mode\")) {\n try {\n db.exec(\"ALTER TABLE api_topics DROP COLUMN access_mode\");\n } catch (err) {\n logger.warn({ err }, \"api_topics: could not drop the retired access_mode column\");\n }\n }\n if (!tableColumns(\"api_topics\").has(\"browser_profile\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN browser_profile TEXT NOT NULL DEFAULT 'default'\");\n }\n if (!tableColumns(\"api_topics\").has(\"browser_profile_owner\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN browser_profile_owner TEXT\");\n }\n if (!tableColumns(\"api_topics\").has(\"browser_connect_port\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN browser_connect_port INTEGER\");\n }\n if (!tableColumns(\"api_topics\").has(\"subagent_report_mode\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN subagent_report_mode TEXT NOT NULL DEFAULT 'auto'\");\n }\n if (!tableColumns(\"api_topics\").has(\"derived_by_user_id\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN derived_by_user_id TEXT\");\n }\n if (!tableColumns(\"api_topics\").has(\"memory_topic_id\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN memory_topic_id TEXT\");\n }\n if (!tableColumns(\"api_topics\").has(\"memory_key\")) {\n db.exec(\"ALTER TABLE api_topics ADD COLUMN memory_key TEXT\");\n }\n db.exec(`\n UPDATE api_topics\n SET browser_profile_owner = (\n SELECT m.user_id FROM topic_members m\n WHERE m.topic_id = api_topics.id AND m.role = 'owner'\n ORDER BY m.rowid\n LIMIT 1\n )\n WHERE browser_profile_owner IS NULL\n`);\n backfillTopicSurfaces();\n ensureSurfaceScopeStampTables();\n db.exec(\n \"CREATE INDEX IF NOT EXISTS idx_api_topics_last_message ON api_topics(last_message_at DESC)\",\n );\n db.exec(\"CREATE INDEX IF NOT EXISTS idx_api_topics_surface ON api_topics(surface)\");\n db.exec(\n \"CREATE INDEX IF NOT EXISTS idx_api_topics_surface_scope ON api_topics(surface, surface_scope)\",\n );\n}\n\nconst SURFACE_SCOPE_STAMP_MIGRATION = \"api_topics_surface_scope_stamp_20260809\";\n\n/**\n * Minimum spacing between two unforced retries of an incomplete M-9 stamp.\n * The retry is driven by timers / scope refreshes, never by request traffic,\n * and this bound keeps even a tight caller from turning it into a hot path.\n */\nexport const SURFACE_SCOPE_STAMP_RETRY_INTERVAL_MS = 30_000;\n\n/**\n * Refusals that leave a room pending: the room is still an unscoped otium room\n * and the stamp may succeed later (maintenance ends, an operator renames the\n * conflicting room or resolves a duplicate manager room, the row settles).\n * Every other refusal (`not_found`, `not_otium`, `scope_not_null`) means there\n * is nothing left to stamp.\n */\nconst SURFACE_SCOPE_STAMP_RETRYABLE = new Set([\n \"maintenance_in_progress\",\n \"title_conflict\",\n \"duplicate_manager\",\n \"row_changed\",\n \"invalid_scope\",\n]);\n\nfunction ensureSurfaceScopeStampTables(): void {\n db.exec(`\n CREATE TABLE IF NOT EXISTS api_schema_migrations (\n key TEXT PRIMARY KEY,\n applied_at TEXT NOT NULL\n )\n`);\n // Rooms the M-9 stamp could not file yet (revision 5). `scope` is pinned at\n // the first attempt: a retry never re-reads the current workspace, so a\n // second workspace joined later cannot swallow the first one's rooms.\n db.exec(`\n CREATE TABLE IF NOT EXISTS api_surface_scope_stamp_pending (\n topic_id TEXT PRIMARY KEY,\n scope TEXT NOT NULL,\n reason TEXT NOT NULL,\n detail TEXT,\n attempts INTEGER NOT NULL DEFAULT 1,\n first_seen_at TEXT NOT NULL,\n last_attempt_at TEXT NOT NULL\n )\n`);\n}\n\nexport interface SurfaceScopeStampStatus {\n /** The completion marker is written: every pre-existing room was filed. */\n complete: boolean;\n /** Rooms the stamp skipped and will retry (maintenance, title conflict ...). */\n pending: number;\n /** Workspace the pending rooms will be filed under (pinned at first attempt). */\n scope: string | null;\n pendingTopics: Array<{\n topicId: string;\n reason: string;\n detail: string | null;\n attempts: number;\n }>;\n}\n\n/**\n * Operator view of the M-9 stamp (diagnostics; `unscopedPending` on\n * `GET /surface-scope`). Read-only: the tables exist from schema init.\n */\nexport function surfaceScopeStampStatus(): SurfaceScopeStampStatus {\n const complete = Boolean(\n db\n .query(\"SELECT key FROM api_schema_migrations WHERE key = ?\")\n .get(SURFACE_SCOPE_STAMP_MIGRATION),\n );\n const rows = db\n .query<\n { topic_id: string; scope: string; reason: string; detail: string | null; attempts: number },\n []\n >(\n \"SELECT topic_id, scope, reason, detail, attempts FROM api_surface_scope_stamp_pending ORDER BY topic_id\",\n )\n .all();\n return {\n complete,\n pending: rows.length,\n scope: rows[0]?.scope ?? null,\n pendingTopics: rows.map((row) => ({\n topicId: row.topic_id,\n reason: row.reason,\n detail: row.detail,\n attempts: Number(row.attempts),\n })),\n };\n}\n\n/**\n * M-9 — file every pre-existing Otium room under the workspace attached now.\n *\n * Deliberately *not* a schema-init step. The scope is only knowable after the\n * first successful Central contact (M-3), which happens long after the store\n * opens; a boot-time migration would see no scope, record itself as applied and\n * leave every room unstamped forever. The Otium runtime calls this instead, once,\n * as soon as it has resolved its workspace.\n *\n * Completes at most once per store: rooms created after this point are stamped\n * at creation, and a second workspace joined later must not swallow the first\n * one's rooms. Unlike the surface migration this can never rename anything —\n * the scope enters the uniqueness key in the same release, so nothing can start\n * colliding because of it.\n *\n * Revision 5: the completion marker is written only when NO room was skipped.\n * A room refused for a retryable reason (live maintenance, title conflict) is\n * recorded in `api_surface_scope_stamp_pending` with the first attempt's scope,\n * and later calls retry exactly those rooms under that pinned scope — never a\n * fresh sweep, never the caller's (possibly different) scope. Rooms already\n * stamped are no longer unscoped and drop out, so every pass is idempotent. The\n * whole pass is one `BEGIN IMMEDIATE`, so concurrent boots serialize: the\n * second sees the first one's marker or pending set and re-checks it.\n */\nexport function stampUnscopedOtiumTopics(scope: string): number {\n const normalized = normalizeSurfaceScope(scope);\n if (!normalized) return 0;\n ensureSurfaceScopeStampTables();\n // Cheap unlocked pre-check: a completed store never takes the write lock.\n if (\n db\n .query(\"SELECT key FROM api_schema_migrations WHERE key = ?\")\n .get(SURFACE_SCOPE_STAMP_MIGRATION)\n ) {\n return 0;\n }\n\n let stamped = 0;\n const stillPending: Array<{ topicId: string; reason: string; detail?: string }> = [];\n let effectiveScope = normalized;\n let ran = false;\n db.transaction(() => {\n // Re-check under the write lock: a concurrent boot may have finished.\n if (\n db\n .query(\"SELECT key FROM api_schema_migrations WHERE key = ?\")\n .get(SURFACE_SCOPE_STAMP_MIGRATION)\n ) {\n return;\n }\n ran = true;\n const pendingRows = db\n .query<{ topic_id: string; scope: string }, []>(\n \"SELECT topic_id, scope FROM api_surface_scope_stamp_pending ORDER BY topic_id\",\n )\n .all();\n const retry = pendingRows.length > 0;\n if (retry) effectiveScope = pendingRows[0]?.scope ?? normalized;\n // Through the audited scope repair: an otium room's scope is otherwise\n // immutable (topic-link review fix 6); the move is recorded and create\n // claims stay on their original principal.\n const result = repairUnscopedOtiumTopicScopes(\n effectiveScope,\n \"m9-stamp\",\n \"file pre-existing Otium rooms under the resolved workspace\",\n retry ? { topicIds: pendingRows.map((row) => row.topic_id) } : {},\n );\n stamped = result.stamped;\n for (const skip of result.skipped) {\n if (skip.ok || !SURFACE_SCOPE_STAMP_RETRYABLE.has(skip.reason)) continue;\n stillPending.push({ topicId: skip.topicId, reason: skip.reason, detail: skip.detail });\n }\n const now = new Date().toISOString();\n const keep = new Set(stillPending.map((row) => row.topicId));\n for (const row of pendingRows) {\n if (!keep.has(row.topic_id)) {\n db.query(\"DELETE FROM api_surface_scope_stamp_pending WHERE topic_id = ?\").run(\n row.topic_id,\n );\n }\n }\n for (const row of stillPending) {\n db.query(\n `INSERT INTO api_surface_scope_stamp_pending\n (topic_id, scope, reason, detail, attempts, first_seen_at, last_attempt_at)\n VALUES (?, ?, ?, ?, 1, ?, ?)\n ON CONFLICT(topic_id) DO UPDATE SET\n reason = excluded.reason,\n detail = excluded.detail,\n attempts = api_surface_scope_stamp_pending.attempts + 1,\n last_attempt_at = excluded.last_attempt_at`,\n ).run(row.topicId, effectiveScope, row.reason, row.detail ?? null, now, now);\n }\n if (stillPending.length === 0) {\n db.query(\"INSERT INTO api_schema_migrations (key, applied_at) VALUES (?, ?)\").run(\n SURFACE_SCOPE_STAMP_MIGRATION,\n now,\n );\n }\n }).immediate();\n if (!ran) return 0;\n if (effectiveScope !== normalized) {\n logger.info(\n { scope: normalized, pinnedScope: effectiveScope },\n \"api_topics: surface scope stamp retry keeps the workspace of its first attempt\",\n );\n }\n if (stamped > 0) {\n logger.info({ scope: effectiveScope, stamped }, \"api_topics: surface scope stamped\");\n }\n if (stillPending.length > 0) {\n // Operator-visible every attempt: a permanent title conflict never\n // completes the migration and needs a rename (or admin repair).\n logger.warn(\n {\n scope: effectiveScope,\n pending: stillPending.length,\n topicIds: stillPending.map((row) => row.topicId),\n skipped: stillPending,\n },\n \"api_topics: surface scope stamp incomplete; rooms stay pending and will be retried\",\n );\n } else {\n logger.info({ scope: effectiveScope }, \"api_topics: surface scope stamp complete\");\n }\n return stamped;\n}\n\nlet lastSurfaceScopeStampRetryAt = 0;\n\n/**\n * Retry an incomplete M-9 stamp under its pinned scope. No-op (no write lock)\n * when the stamp never started or already completed. Unforced calls run at most\n * once per {@link SURFACE_SCOPE_STAMP_RETRY_INTERVAL_MS} per process; `force`\n * is for discrete events (a pending room's maintenance released, a scope\n * refresh). Never throws: a busy database just waits for the next trigger.\n */\nexport function retryPendingSurfaceScopeStamp(\n options: { force?: boolean; now?: number } = {},\n): number {\n const now = options.now ?? Date.now();\n if (\n !options.force &&\n now - lastSurfaceScopeStampRetryAt < SURFACE_SCOPE_STAMP_RETRY_INTERVAL_MS\n ) {\n return 0;\n }\n lastSurfaceScopeStampRetryAt = now;\n try {\n ensureSurfaceScopeStampTables();\n const pinned = db\n .query<{ scope: string }, []>(\"SELECT scope FROM api_surface_scope_stamp_pending LIMIT 1\")\n .get();\n if (!pinned) return 0;\n return stampUnscopedOtiumTopics(pinned.scope);\n } catch (err) {\n logger.warn({ err }, \"api_topics: surface scope stamp retry failed (will retry)\");\n return 0;\n }\n}\n\n/** Whether `topicId` is waiting for the M-9 stamp (cheap point lookup). */\nexport function isSurfaceScopeStampPending(topicId: string): boolean {\n return Boolean(\n db.query(\"SELECT 1 FROM api_surface_scope_stamp_pending WHERE topic_id = ?\").get(topicId),\n );\n}\n\n// A pending room's maintenance fence was released: retry now instead of\n// waiting for the next timer tick. Deferred so the stamp never runs inside the\n// releasing caller's transaction.\nonRuntimeTopicMaintenanceReleased((topicId) => {\n const timer = setTimeout(() => {\n try {\n if (isSurfaceScopeStampPending(topicId)) retryPendingSurfaceScopeStamp({ force: true });\n } catch (err) {\n logger.warn({ err, topicId }, \"api_topics: surface scope stamp retry on release failed\");\n }\n }, 0);\n timer.unref?.();\n});\n\nconst SURFACE_BACKFILL_MIGRATION = \"api_topics_surface_backfill_20260808\";\n\n/**\n * One-time classification of pre-surface topics.\n *\n * Every row predates the column, so there is no per-row evidence in this store\n * to distinguish surfaces — the host declares it (`NEGOTIUM_DEFAULT_SURFACE`).\n * The telegram adapter owns the second pass: its chat↔topic mapping lives in a\n * different database file, so only it can reclassify the rooms it created.\n *\n * Names are unique per surface from now on, so collapsing three namespaces into\n * one can produce duplicates. Rather than failing the boot, the oldest room\n * keeps the name and the rest are suffixed — a rename is recoverable, a node\n * that refuses to start is not.\n */\nfunction backfillTopicSurfaces(): void {\n db.exec(`\n CREATE TABLE IF NOT EXISTS api_schema_migrations (\n key TEXT PRIMARY KEY,\n applied_at TEXT NOT NULL\n )\n`);\n const applied = db\n .query(\"SELECT key FROM api_schema_migrations WHERE key = ?\")\n .get(SURFACE_BACKFILL_MIGRATION);\n if (applied) return;\n\n const surface = defaultTopicSurface();\n db.transaction(() => {\n db.query(\"UPDATE api_topics SET surface = ?\").run(surface);\n renameSurfaceTitleCollisions();\n db.query(\"INSERT INTO api_schema_migrations (key, applied_at) VALUES (?, ?)\").run(\n SURFACE_BACKFILL_MIGRATION,\n new Date().toISOString(),\n );\n })();\n logger.info({ surface }, \"api_topics: surface backfilled\");\n}\n\n/**\n * Suffix duplicate `(surface, kind, title)` rows so the new uniqueness rule holds.\n *\n * Manager rooms are excluded: they are one per user, so on a multi-user host\n * every member has a personal room with the same title and none of them is a\n * duplicate. Renaming those relabels real rooms belonging to other people.\n */\nfunction renameSurfaceTitleCollisions(): void {\n const rows = db\n .query<{ id: string; title: string; kind: string; surface: string }, []>(\n \"SELECT id, title, kind, surface FROM api_topics WHERE kind != 'manager' ORDER BY created_at ASC, rowid ASC\",\n )\n .all();\n const keyOf = (surface: string, kind: string, title: string) =>\n [surface, kind, normalizedTitle(title)].join(\"\\u0000\");\n // Every original title is reserved up front. Allocating only against the\n // titles seen so far would let an earlier duplicate claim \"Foo (2)\" while a\n // real room already named \"Foo (2)\" sits later in the scan — that room would\n // then be pushed to \"Foo (2) (2)\" for no reason.\n const reserved = new Set(rows.map((row) => keyOf(row.surface, row.kind, row.title)));\n const used = new Set<string>();\n const update = db.query(\"UPDATE api_topics SET title = ? WHERE id = ?\");\n for (const row of rows) {\n const key = (title: string) => keyOf(row.surface, row.kind, title);\n if (!used.has(key(row.title))) {\n used.add(key(row.title));\n continue;\n }\n let suffix = 2;\n let candidate = `${row.title} (${suffix})`;\n while (reserved.has(key(candidate)) || used.has(key(candidate))) {\n suffix += 1;\n candidate = `${row.title} (${suffix})`;\n }\n used.add(key(candidate));\n update.run(candidate, row.id);\n logger.warn(\n { topicId: row.id, surface: row.surface, from: row.title, to: candidate },\n \"api_topics: renamed a duplicate title for surface-scoped uniqueness\",\n );\n }\n}\n\nregisterStorageSchemaInitializer(initializeApiTopicsSchema, 20);\n\nexport interface TopicRow {\n id: string;\n title: string;\n kind: string | null;\n description: string | null;\n agent: string | null;\n base_model: string | null;\n base_effort: string | null;\n response_policy: string;\n created_at: string;\n last_message_at: string | null;\n parent_topic_id: string | null;\n memory_topic_id: string | null;\n memory_key: string | null;\n is_fork: number;\n is_subagent: number;\n subagent_report_mode: string | null;\n derived_by_user_id: string | null;\n visibility: string | null;\n surface: string | null;\n surface_scope: string | null;\n browser_profile_owner: string | null;\n browser_connect_port: number | null;\n session_id: string | null;\n}\n\nexport interface TopicSessionLogContext {\n reason?: string;\n queryId?: string;\n agent?: AgentKind;\n}\n\nfunction shortSessionId(sessionId: string | null | undefined): string | null {\n return sessionId ? sessionId.slice(0, 8) : null;\n}\n\nfunction getTopicParticipants(topicId: string): ParticipantDto[] {\n return db\n .query<{ user_id: string; role: \"owner\" | \"member\" }, string>(\n \"SELECT user_id, role FROM topic_members WHERE topic_id = ? ORDER BY rowid\",\n )\n .all(topicId)\n .map((row) => ({ userId: row.user_id, role: row.role }));\n}\n\nfunction getAllTopicParticipants(): Map<string, ParticipantDto[]> {\n const grouped = new Map<string, ParticipantDto[]>();\n const rows = db\n .query<{ topic_id: string; user_id: string; role: \"owner\" | \"member\" }, []>(\n \"SELECT topic_id, user_id, role FROM topic_members ORDER BY rowid\",\n )\n .all();\n for (const row of rows) {\n const participants = grouped.get(row.topic_id) ?? [];\n participants.push({ userId: row.user_id, role: row.role });\n grouped.set(row.topic_id, participants);\n }\n return grouped;\n}\n\nfunction getAllSubagentTellTargets(): Map<string, string[]> {\n const rows = db\n .query(\n \"SELECT subagent_topic_id, target_topic_id FROM subagent_tell_grants ORDER BY created_at\",\n )\n .all() as Array<{ subagent_topic_id: string; target_topic_id: string }>;\n const grouped = new Map<string, string[]>();\n for (const row of rows) {\n const targets = grouped.get(row.subagent_topic_id) ?? [];\n targets.push(row.target_topic_id);\n grouped.set(row.subagent_topic_id, targets);\n }\n return grouped;\n}\n\nfunction rowToDto(\n r: TopicRow,\n participants = getTopicParticipants(r.id),\n tellTargets?: Map<string, string[]>,\n): TopicDto {\n const normalized = normalizeTopicState({\n id: r.id,\n kind: normalizeTopicKind(r.kind),\n agent: (r.agent as AgentKind | null) ?? undefined,\n aiMode: normalizeAiMode(r.response_policy),\n });\n return {\n id: r.id,\n title: r.title,\n kind: normalized.kind,\n description: r.description ?? undefined,\n agent: normalized.agent,\n defaultModel: r.base_model ?? \"deepseek-pro\",\n defaultEffort: (r.base_effort as EffortLevel) ?? undefined,\n aiMode: normalized.aiMode,\n aiMention: aiMentionFromMode(normalized.aiMode),\n participants,\n createdAt: r.created_at,\n lastMessageAt: r.last_message_at ?? new Date().toISOString(),\n parentTopicId: r.parent_topic_id ?? undefined,\n memoryTopicId: r.memory_topic_id ?? undefined,\n memoryKey: r.memory_key ?? undefined,\n isFork: r.is_fork !== 0,\n ...(r.derived_by_user_id ? { derivedByUserId: r.derived_by_user_id } : {}),\n ...(r.is_subagent !== 0 ? { isSubagent: true } : {}),\n ...(r.is_subagent !== 0\n ? {\n subagentTellTargetIds: tellTargets\n ? (tellTargets.get(r.id) ?? [])\n : listSubagentTellTargetIds(r.id),\n }\n : {}),\n ...(r.is_subagent !== 0\n ? {\n subagentReportMode: (r.subagent_report_mode === \"tell\" ||\n r.subagent_report_mode === \"status-only\"\n ? r.subagent_report_mode\n : \"auto\") as SubagentReportMode,\n }\n : {}),\n visibility: normalizeTopicVisibility(r.visibility),\n surface: normalizeTopicSurface(r.surface),\n surfaceScope: normalizeSurfaceScope(r.surface_scope),\n ...(r.browser_connect_port != null ? { browserConnectPort: r.browser_connect_port } : {}),\n };\n}\n\nexport function normalizeTopicVisibility(value: unknown): TopicVisibility {\n return value === \"hidden\" ? \"hidden\" : \"visible\";\n}\n\n/** Discovery boundary shared by user-facing adapters. */\nexport function isTopicVisible(topic: Pick<TopicDto, \"visibility\">): boolean {\n return topic.visibility !== \"hidden\";\n}\n\nexport function normalizeTopicKind(value: unknown): TopicKind | null {\n return value === \"channel\" || value === \"agent\" || value === \"manager\" ? value : null;\n}\n\nexport function normalizeAiMode(value: unknown): AiMode | null {\n return value === \"off\" || value === \"mention\" || value === \"always\" ? value : null;\n}\n\nexport function aiMentionFromMode(mode: AiMode): boolean {\n return mode === \"mention\";\n}\n\nexport function inferTopicKind(input: {\n agent?: string | null;\n aiMention?: boolean | null;\n}): TopicKind {\n return input.agent && input.aiMention !== true ? \"agent\" : \"channel\";\n}\n\nexport function inferAiMode(input: {\n kind?: TopicKind | null;\n agent?: string | null;\n aiMode?: AiMode | null;\n aiMention?: boolean | null;\n}): AiMode {\n if (input.kind === \"manager\") return \"always\";\n if (input.kind === \"agent\") return \"always\";\n if (input.kind === \"channel\") {\n if (!input.agent) return \"off\";\n if (input.aiMode === \"mention\") return \"mention\";\n if (input.aiMention === true) return \"mention\";\n return \"mention\";\n }\n if (!input.agent) return \"off\";\n if (input.aiMode) return input.aiMode;\n return input.aiMention === true ? \"mention\" : \"always\";\n}\n\nexport function normalizeTopicState(input: {\n id?: string;\n kind?: TopicKind | null;\n agent?: AgentKind | null;\n aiMode?: AiMode | null;\n aiMention?: boolean | null;\n}): { kind: TopicKind; aiMode: AiMode; agent?: AgentKind } {\n if (input.kind === \"manager\" || input.id === GENERAL_TOPIC_ID) {\n return {\n kind: \"manager\",\n aiMode: \"always\",\n agent: input.agent ?? resolveFallbackAgent(),\n };\n }\n\n const requestedKind = input.kind;\n const kind =\n requestedKind ??\n (input.aiMode === \"always\"\n ? \"agent\"\n : input.aiMode === \"mention\" || input.aiMode === \"off\"\n ? \"channel\"\n : input.agent && input.aiMention !== true\n ? \"agent\"\n : \"channel\");\n\n if (kind === \"agent\") {\n return {\n kind: \"agent\",\n aiMode: \"always\",\n agent: input.agent ?? resolveFallbackAgent(),\n };\n }\n\n const agent = input.aiMode === \"off\" ? undefined : (input.agent ?? undefined);\n return {\n kind: \"channel\",\n aiMode: agent ? \"mention\" : \"off\",\n agent,\n };\n}\n\nfunction normalizedTitle(title: string): string {\n return title.trim().toLowerCase();\n}\n\n/**\n * The workspace a written row belongs to.\n *\n * `surfaceScope` partitions one surface into independent namespaces. Otium\n * uses a workspace scope and Telegram uses a forum-group scope. Terminal is\n * normally unscoped. An explicit value always wins; only Otium has a\n * process-level default because its workspace attachment is host state.\n */\nfunction surfaceScopeForWrite(t: TopicDto): string | null {\n if (t.surfaceScope !== undefined) return normalizeSurfaceScope(t.surfaceScope);\n return normalizeTopicSurface(t.surface ?? defaultTopicSurface()) === \"otium\"\n ? defaultSurfaceScope()\n : null;\n}\n\nexport function upsertTopic(t: TopicDto): void {\n const normalized = normalizeTopicState({\n id: t.id,\n kind: normalizeTopicKind(t.kind),\n agent: t.agent ?? undefined,\n aiMode: normalizeAiMode(t.aiMode),\n aiMention: t.aiMention,\n });\n db.transaction(() => {\n db.query(\n `INSERT INTO api_topics\n (id,title,kind,description,agent,base_model,base_effort,response_policy,\n created_at,last_message_at,parent_topic_id,memory_topic_id,memory_key,is_fork,is_subagent,visibility,surface,\n surface_scope,subagent_report_mode,derived_by_user_id)\n VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)\n ON CONFLICT(id) DO UPDATE SET\n title = excluded.title,\n kind = excluded.kind,\n description = excluded.description,\n agent = excluded.agent,\n base_model = excluded.base_model,\n base_effort = excluded.base_effort,\n response_policy = excluded.response_policy,\n created_at = excluded.created_at,\n last_message_at = excluded.last_message_at,\n parent_topic_id = excluded.parent_topic_id,\n memory_topic_id = excluded.memory_topic_id,\n memory_key = excluded.memory_key,\n is_fork = excluded.is_fork,\n is_subagent = excluded.is_subagent,\n visibility = excluded.visibility,\n surface = excluded.surface,\n -- A room's workspace is fixed at creation (M-1). COALESCE, not\n -- assignment: an update may fill in a scope that was unknown when the\n -- room was created, but may never move a room to another workspace.\n -- An otium room is stricter (topic-link review fix 6): its scope never\n -- changes through an upsert, not even NULL -> scope; only the audited\n -- repair (adminRepairOtiumTopicScope / the M-9 stamp) may assign it.\n surface_scope = CASE\n WHEN excluded.surface = 'otium' OR api_topics.surface = 'otium'\n THEN api_topics.surface_scope\n ELSE COALESCE(api_topics.surface_scope, excluded.surface_scope)\n END,\n subagent_report_mode = excluded.subagent_report_mode,\n -- Who asked for the derive is a fact about creation; a later update\n -- that omits it must not erase it.\n derived_by_user_id = COALESCE(excluded.derived_by_user_id, api_topics.derived_by_user_id)`,\n ).run(\n t.id,\n t.title,\n normalized.kind,\n t.description ?? null,\n normalized.agent ?? null,\n t.defaultModel ?? null,\n t.defaultEffort ?? null,\n normalized.aiMode,\n t.createdAt,\n t.lastMessageAt ?? null,\n t.parentTopicId ?? null,\n t.memoryTopicId ?? null,\n t.memoryKey ?? null,\n t.isFork ? 1 : 0,\n t.isSubagent ? 1 : 0,\n normalizeTopicVisibility(t.visibility),\n // A DTO without a surface means \"wherever this host puts rooms\", not\n // \"terminal\": embedding hosts (Otium) build topic literals by hand and\n // never name one, so defaulting to the literal would file every hub room\n // on the wrong surface.\n normalizeTopicSurface(t.surface ?? defaultTopicSurface()),\n surfaceScopeForWrite(t),\n t.subagentReportMode ?? \"auto\",\n t.derivedByUserId ?? null,\n );\n db.query(\"DELETE FROM topic_members WHERE topic_id = ?\").run(t.id);\n for (const participant of t.participants) {\n db.query(\"INSERT INTO topic_members (topic_id,user_id,role) VALUES (?,?,?)\").run(\n t.id,\n participant.userId,\n participant.role,\n );\n }\n const initialBrowserProfileOwner = t.participants.find(\n (participant) => participant.role === \"owner\",\n )?.userId;\n if (initialBrowserProfileOwner) {\n db.query(\n `UPDATE api_topics\n SET browser_profile_owner = COALESCE(browser_profile_owner, ?)\n WHERE id = ?`,\n ).run(initialBrowserProfileOwner, t.id);\n }\n })();\n}\n\n/**\n * List topics, optionally restricted to one surface.\n *\n * The filter lives here rather than in each adapter so a forgotten call site\n * cannot leak a telegram room into the terminal picker; adapters pass their own\n * surface and get a closed world back.\n */\nexport function listTopics(\n opts: { surface?: TopicSurface; surfaceScope?: string | null } = {},\n): TopicDto[] {\n // `surfaceScope: null` is a real filter (\"the unscoped rooms\"), so presence —\n // not truthiness — decides whether the scope narrows the query at all.\n const scoped = Object.hasOwn(opts, \"surfaceScope\");\n const rows = (\n opts.surface\n ? db\n .query(\n `SELECT * FROM api_topics WHERE surface = ?${scoped ? \" AND surface_scope IS ?\" : \"\"} ORDER BY last_message_at DESC`,\n )\n .all(\n ...(scoped\n ? [normalizeTopicSurface(opts.surface), normalizeSurfaceScope(opts.surfaceScope)]\n : [normalizeTopicSurface(opts.surface)]),\n )\n : db.query(\"SELECT * FROM api_topics ORDER BY last_message_at DESC\").all()\n ) as TopicRow[];\n const participants = getAllTopicParticipants();\n // Batch-load tell grants once: per-row queries would make every listTopics()\n // call O(N) extra statements as subagent counts grow.\n const tellTargets = rows.some((row) => row.is_subagent !== 0)\n ? getAllSubagentTellTargets()\n : undefined;\n return rows.map((row) => rowToDto(row, participants.get(row.id) ?? [], tellTargets));\n}\n\nexport function getTopic(id: string): TopicDto | null {\n const r = db.query(\"SELECT * FROM api_topics WHERE id = ?\").get(id) as TopicRow | undefined;\n return r ? rowToDto(r) : null;\n}\n\n/** Return the private manager room owned by a user, excluding the retired shared General row. */\n/**\n * The user's own manager room, optionally on one surface.\n *\n * A manager room is one per user **per surface**: Terminal and Telegram each\n * give the same person their own personal room, and returning one surface's\n * room to the other adapter lets that adapter bind to — and reclassify — a room\n * belonging to a different surface. Callers that represent an adapter pass\n * theirs; unscoped lookups stay for maintenance paths that work by user alone.\n */\nexport function getManagerTopicForUser(\n userId: string,\n surface?: TopicSurface,\n opts: { surfaceScope?: string | null } = {},\n): TopicDto | null {\n const scoped = Object.hasOwn(opts, \"surfaceScope\");\n const sql = `SELECT t.* FROM api_topics t\n JOIN topic_members m ON m.topic_id = t.id\n WHERE t.kind = 'manager'\n AND t.id != ?\n AND m.user_id = ?\n AND m.role = 'owner'\n ${surface ? \"AND t.surface = ?\" : \"\"}\n ${scoped ? \"AND t.surface_scope IS ?\" : \"\"}\n ORDER BY t.created_at ASC\n LIMIT 1`;\n const params: Array<string | null> = [GENERAL_TOPIC_ID, userId];\n if (surface) params.push(surface);\n if (scoped) params.push(normalizeSurfaceScope(opts.surfaceScope));\n const row = db.query<TopicRow, Array<string | null>>(sql).get(...params);\n return row ? rowToDto(row) : null;\n}\n\n/**\n * Resolve the topic whose wiki memory should be used for this topic.\n *\n * Derived rooms keep `parentTopicId` as an immediate UI link. Memory normally\n * follows the chain to its original root, while `memoryTopicId` can redirect a\n * subagent to another accessible topic's accumulated knowledge.\n */\nexport function getTopicMemoryOrigin(id: string): TopicDto | null {\n let current = getTopic(id);\n if (!current) return null;\n\n const seen = new Set<string>([current.id]);\n while (true) {\n const nextId = current.memoryTopicId ?? current.parentTopicId;\n if (!nextId || seen.has(nextId)) break;\n const next = getTopic(nextId);\n if (!next) {\n // An explicitly selected memory topic that no longer resolves must not\n // silently fall back to the parent chain — that would leak the parent\n // room's memory to a subagent that asked for something else. Stop at the\n // current topic instead so the broken source is visible.\n if (current.memoryTopicId) {\n console.warn(\n `[topics] memory topic ${current.memoryTopicId} for ${current.id} is unresolvable; using the topic's own memory`,\n );\n }\n break;\n }\n current = next;\n seen.add(current.id);\n }\n\n return current;\n}\n\n/** Look up a topic by its user-visible title (case-insensitive exact match). */\nexport function getTopicByName(title: string): TopicDto | null {\n const r = db.query(\"SELECT * FROM api_topics WHERE LOWER(title) = LOWER(?)\").get(title) as\n | TopicRow\n | undefined;\n return r ? rowToDto(r) : null;\n}\n\nexport function getTopicByNameAndKind(title: string, kind: TopicKind): TopicDto | null {\n const r = db\n .query(\"SELECT * FROM api_topics WHERE LOWER(title) = LOWER(?) AND kind = ?\")\n .get(title, kind) as TopicRow | undefined;\n return r ? rowToDto(r) : null;\n}\n\n/**\n * Titles are unique **per surface namespace**, not per node: the same title may\n * exist on terminal, in multiple Telegram groups, and in each attached Otium\n * workspace. Independent namespaces never see each other, so a name taken in\n * one says nothing about another.\n */\nexport function findTopicTitleConflict(\n title: string,\n kind: TopicKind,\n opts: { excludeTopicId?: string; surface?: TopicSurface; surfaceScope?: string | null } = {},\n): TopicDto | null {\n const wanted = normalizedTitle(title);\n const surface = normalizeTopicSurface(opts.surface ?? defaultTopicSurface());\n const surfaceScope = Object.hasOwn(opts, \"surfaceScope\")\n ? normalizeSurfaceScope(opts.surfaceScope)\n : surface === \"otium\"\n ? defaultSurfaceScope()\n : null;\n const generalTitleRequested = wanted === normalizedTitle(GENERAL_TOPIC_ID);\n if (generalTitleRequested && opts.excludeTopicId !== GENERAL_TOPIC_ID) {\n const general = db.query(\"SELECT * FROM api_topics WHERE id = ?\").get(GENERAL_TOPIC_ID) as\n | TopicRow\n | undefined;\n if (general) return rowToDto(general);\n }\n\n // Manager rooms are one-per-user and system-created, so several of them\n // legitimately share a title (every member's personal \"General\"). Comparing\n // them against each other is not a conflict, it is the design — on a\n // multi-user host it renamed real rooms out from under their owners.\n if (kind === \"manager\") return null;\n\n const params: Array<string | null> = [wanted, surface, surfaceScope, kind, GENERAL_TOPIC_ID];\n let sql =\n \"SELECT * FROM api_topics WHERE LOWER(TRIM(title)) = ? AND surface = ? AND surface_scope IS ? AND (kind = ? OR id = ?)\";\n if (opts.excludeTopicId) {\n sql += \" AND id != ?\";\n params.push(opts.excludeTopicId);\n }\n sql += \" LIMIT 1\";\n const row = db.query<TopicRow, string[]>(sql).get(...params);\n return row ? rowToDto(row) : null;\n}\n\n/**\n * Move topics onto a surface. Used by adapters that own a classification the\n * canonical store cannot derive on its own (the telegram chat↔topic mapping\n * lives in that adapter's database, not this one).\n */\nexport function setTopicSurfaces(topicIds: readonly string[], surface: TopicSurface): number {\n if (topicIds.length === 0) return 0;\n const normalized = normalizeTopicSurface(surface);\n let changed = 0;\n db.transaction(() => {\n const update = db.query(\"UPDATE api_topics SET surface = ? WHERE id = ? AND surface != ?\");\n for (const topicId of topicIds) {\n changed += Number(update.run(normalized, topicId, normalized).changes ?? 0);\n }\n })();\n return changed;\n}\n\n/**\n * File an existing topic into one surface namespace without changing its id.\n * Adapter-owned migrations use this when their local mapping store is the only\n * authority capable of deriving the namespace (for example Telegram chat id).\n */\nexport function setTopicSurfaceScope(\n topicId: string,\n surface: TopicSurface,\n surfaceScope: string | null,\n): boolean {\n const normalizedSurface = normalizeTopicSurface(surface);\n const normalizedScope = normalizeSurfaceScope(surfaceScope);\n const result = db\n .query(\n `UPDATE api_topics SET surface = ?, surface_scope = ?\n WHERE id = ? AND (surface IS NOT ? OR surface_scope IS NOT ?)`,\n )\n .run(normalizedSurface, normalizedScope, topicId, normalizedSurface, normalizedScope);\n return Number(result.changes ?? 0) > 0;\n}\n\n/**\n * How wide a title lookup is allowed to reach.\n *\n * `surface` is required rather than optional. It used to default to \"search\n * every surface\", which contradicted S-6's promise that a missed call site\n * \"cannot leak a topic across surfaces\" — the guarantee only held where a\n * caller remembered to opt in, and four did not: Telegram's `/load` and `/del`\n * (the latter could delete a terminal room), the runtime MCP id path, the cron\n * id path, and the session inbox. Every one of those was a silent leak with a\n * correct-looking call. Making the parameter explicit turns each future\n * omission into a compile error instead.\n *\n * `{ scope: \"all\" }` is the deliberate way to search every surface. It exists\n * for operator tooling — the CLI manages jobs across surfaces on purpose — and\n * reads as a decision at the call site rather than as an oversight.\n */\nexport type TopicNameLookupScope =\n | { surface: TopicSurface; surfaceScope?: string | null }\n | { scope: \"all\" };\n\n/**\n * Look up a topic by title, restricted to topics where `userId` participates.\n *\n * Answers only on a single match: a title is unique per surface (S-3), so an\n * `{ scope: \"all\" }` lookup of a name used on two surfaces resolves to null\n * rather than picking one.\n */\nexport function getTopicByNameForUser(\n title: string,\n userId: string,\n lookupScope: TopicNameLookupScope,\n): TopicDto | null {\n const opts: { surface?: TopicSurface; surfaceScope?: string | null } =\n \"scope\" in lookupScope ? {} : lookupScope;\n const trimmed = title.trim();\n const qualified = /^(agent|channel|manager):(.+)$/i.exec(trimmed);\n const requestedKind = qualified ? normalizeTopicKind(qualified[1]?.toLowerCase()) : null;\n const requestedTitle = qualified ? qualified[2]!.trim() : trimmed;\n const scoped = Object.hasOwn(opts, \"surfaceScope\");\n const rows = db\n .query(\n `SELECT t.* FROM api_topics t\n WHERE LOWER(t.title) = LOWER(?)\n AND t.id != ?\n AND t.visibility != 'hidden'\n AND (? IS NULL OR t.surface = ?)\n ${scoped ? \"AND t.surface_scope IS ?\" : \"\"}\n AND EXISTS (\n SELECT 1 FROM topic_members m WHERE m.topic_id = t.id AND m.user_id = ?\n )`,\n )\n .all(\n requestedTitle,\n GENERAL_TOPIC_ID,\n opts.surface ?? null,\n opts.surface ?? null,\n ...(scoped ? [normalizeSurfaceScope(opts.surfaceScope)] : []),\n userId,\n ) as TopicRow[];\n const matches = requestedKind ? rows.filter((row) => row.kind === requestedKind) : rows;\n return matches.length === 1 ? rowToDto(matches[0]!) : null;\n}\n\n/** Persist the agent session ID for a topic after a successful turn. */\nexport function setTopicSessionId(\n topicId: string,\n sessionId: string,\n context: TopicSessionLogContext = {},\n): void {\n const previous = getTopicSessionId(topicId);\n const result = db\n .query(\"UPDATE api_topics SET session_id = ? WHERE id = ?\")\n .run(sessionId, topicId);\n const changes = Number(result.changes ?? 0);\n const logContext = {\n topicId,\n previousSessionId: shortSessionId(previous),\n sessionId: shortSessionId(sessionId),\n reason: context.reason,\n queryId: context.queryId,\n agent: context.agent,\n };\n if (changes === 0) {\n logger.warn(logContext, \"api-topic session_id update missed topic\");\n } else if (previous !== sessionId) {\n logger.debug(logContext, \"api-topic session_id updated\");\n } else {\n logger.debug(logContext, \"api-topic session_id unchanged\");\n }\n}\n\n/** Clear the session ID (e.g. on topic reset). */\nexport function clearTopicSessionId(topicId: string, reason = \"unspecified\"): void {\n const previous = getTopicSessionId(topicId);\n const result = db.query(\"UPDATE api_topics SET session_id = NULL WHERE id = ?\").run(topicId);\n const changes = Number(result.changes ?? 0);\n const logContext = { topicId, previousSessionId: shortSessionId(previous), reason };\n if (changes === 0) {\n logger.warn(logContext, \"api-topic session_id clear missed topic\");\n } else if (previous) {\n logger.info(logContext, \"api-topic session_id cleared\");\n } else {\n logger.debug(logContext, \"api-topic session_id already clear\");\n }\n}\n\n/** Read the persisted session ID for a topic, or null if none. */\nexport function getTopicSessionId(topicId: string): string | null {\n const r = db\n .query<{ session_id: string | null }, string>(\"SELECT session_id FROM api_topics WHERE id = ?\")\n .get(topicId);\n return r?.session_id ?? null;\n}\n\n/**\n * Hard-delete a topic row. Irreversible — the caller is responsible for also\n * deleting the topic's messages (see `deleteMessagesForTopic`). Returns false\n * if the topic didn't exist.\n */\nexport function deleteTopic(id: string, options: { allowManager?: boolean } = {}): boolean {\n const r = db\n .query<{ id: string; kind: string }, string>(\"SELECT id, kind FROM api_topics WHERE id = ?\")\n .get(id);\n if (!r) return false;\n if (id === GENERAL_TOPIC_ID || (r.kind === \"manager\" && !options.allowManager)) return false;\n db.query(\n `DELETE FROM subagent_tell_grants\n WHERE subagent_topic_id = ? OR target_topic_id = ? OR granted_by_topic_id = ?`,\n ).run(id, id, id);\n db.query(\"DELETE FROM topic_members WHERE topic_id = ?\").run(id);\n db.query(\"DELETE FROM api_topics WHERE id = ?\").run(id);\n return true;\n}\n\nexport function listSubagentTellTargetIds(subagentTopicId: string): string[] {\n return db\n .query<{ target_topic_id: string }, string>(\n \"SELECT target_topic_id FROM subagent_tell_grants WHERE subagent_topic_id = ? ORDER BY created_at\",\n )\n .all(subagentTopicId)\n .map((row) => row.target_topic_id);\n}\n\nexport function grantSubagentTellTarget(\n subagentTopicId: string,\n targetTopicId: string,\n grantedByTopicId: string,\n): void {\n db.query(\n `INSERT INTO subagent_tell_grants\n (subagent_topic_id,target_topic_id,granted_by_topic_id,created_at)\n VALUES (?,?,?,?)\n ON CONFLICT(subagent_topic_id,target_topic_id) DO UPDATE SET\n granted_by_topic_id = excluded.granted_by_topic_id`,\n ).run(subagentTopicId, targetTopicId, grantedByTopicId, new Date().toISOString());\n}\n\nexport function revokeSubagentTellTarget(subagentTopicId: string, targetTopicId: string): boolean {\n return (\n db\n .query(\"DELETE FROM subagent_tell_grants WHERE subagent_topic_id = ? AND target_topic_id = ?\")\n .run(subagentTopicId, targetTopicId).changes > 0\n );\n}\n\n/**\n * Preserve a derived-topic chain when an intermediate parent is deleted.\n * Direct children move to the deleted topic's parent (or become roots) rather\n * than retaining a dangling parent id that would break memory-origin lookup.\n */\n/** Ids of the subagent worker rooms spawned directly from `parentTopicId`. */\nexport function listSubagentChildTopicIds(parentTopicId: string): string[] {\n return db\n .query<{ id: string }, string>(\n \"SELECT id FROM api_topics WHERE parent_topic_id = ? AND is_subagent = 1 ORDER BY created_at\",\n )\n .all(parentTopicId)\n .map((row) => row.id);\n}\n\nexport function reparentTopicChildren(\n deletedTopicId: string,\n replacementParentTopicId: string | null,\n): string[] {\n const rows = db\n .query<{ id: string }, string>(\"SELECT id FROM api_topics WHERE parent_topic_id = ?\")\n .all(deletedTopicId);\n if (rows.length === 0) return [];\n db.query(\"UPDATE api_topics SET parent_topic_id = ? WHERE parent_topic_id = ?\").run(\n replacementParentTopicId,\n deletedTopicId,\n );\n // Reparenting can move a topic out of the subtree whose manager granted its\n // tell edges; purge involved grants (fail closed) — an ancestor can re-grant.\n for (const row of rows) {\n db.query(\n \"DELETE FROM subagent_tell_grants WHERE subagent_topic_id = ? OR target_topic_id = ?\",\n ).run(row.id, row.id);\n }\n return rows.map((row) => row.id);\n}\n\nexport function addParticipantToDB(\n topicId: string,\n userId: string,\n role: \"member\" | \"owner\",\n): boolean {\n if (!db.query(\"SELECT 1 FROM api_topics WHERE id = ?\").get(topicId)) return false;\n db.query(\"INSERT OR IGNORE INTO topic_members (topic_id,user_id,role) VALUES (?,?,?)\").run(\n topicId,\n userId,\n role,\n );\n return true;\n}\n\nexport function removeParticipantFromDB(topicId: string, userId: string): boolean {\n if (!db.query(\"SELECT 1 FROM api_topics WHERE id = ?\").get(topicId)) return false;\n db.query(\"DELETE FROM topic_members WHERE topic_id = ? AND user_id = ?\").run(topicId, userId);\n return true;\n}\n",
33
- "import { accessSync, constants as fsConstants } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { explicitAgentSwitchTargets } from \"#agents/explicit-agent-switch\";\n\nimport { canonicalMcpBridgeEnv } from \"#mcp/canonical-bridge-config\";\nimport {\n buildHostedMcpSpec,\n buildRuntimeMcpSpec,\n type HostedMcpSurface,\n RUNTIME_MCP_KEY,\n} from \"#mcp/runtime-spec\";\nimport { peerSessionBridgeIpcEnv } from \"#mcp/session-comm/bridge-ipc-config\";\nimport { bgBashContextCapability } from \"#platform/background-bash/manager\";\nimport {\n AGENT_HEALTH_SERVER,\n CANONICAL_MCP_PROXY_SERVER,\n DECISION_SERVER,\n envText,\n FALLBACK_AGENT,\n resolveTopicWorkspaceDir,\n SESSION_COMM_SERVER,\n SYSTEM_HEALTH_SERVER,\n TASK_SERVER,\n TOKEN_STATS_SERVER,\n TSCONFIG_PATH,\n TSX_LOADER,\n VAULT_SERVER,\n WIKI_SERVER,\n} from \"#platform/config\";\nimport { logger } from \"#platform/logger\";\nimport {\n classifyForumMcpServers,\n commonRuntimeMcpPolicy,\n type RuntimeMcpScope,\n} from \"#platform/mcp-catalog-policy\";\nimport { browserOwnerCapability } from \"#platform/playwright/capability\";\nimport {\n buildPlaywrightMcpTransport,\n CODEX_BROWSER_CAPABILITY_ENV,\n} from \"#platform/playwright/mcp-transport\";\nimport { actorTopicScopeMaxAgeMs, encodeActorTopicScopeArg } from \"#runtime/actor-topic-scope\";\nimport { getRegisteredCronSession } from \"#runtime/cron-sessions\";\nimport { encodeRemoteSessionGrantArg } from \"#runtime/remote-session-grant\";\nimport type { HostMcpServerSpec } from \"#runtime-gateway\";\nimport { getTopic } from \"#storage/api-topics\";\nimport type {\n ActorTopicScope,\n AgentKind,\n AgentQueryOptions,\n PeerRuntimeBridgeContext,\n RemoteSessionGrant,\n} from \"#types\";\nimport type { TopicDto } from \"#types/api\";\n\nexport type { RuntimeMcpScope } from \"#platform/mcp-catalog-policy\";\n\n/**\n * Build the stdio transport spec for a Otium MCP server entry.\n *\n * claude/maestro launch the .ts server directly with `bun run` (fast, native\n * TypeScript + bun:sqlite). codex CANNOT — codex 0.135's rmcp stdio client\n * fails to handshake with bun-spawned servers (initialize is dropped/raced, so\n * no tools reach the model), while pure-node servers connect reliably. So for\n * the `codex` agent we launch the SAME server file via node + tsx, passing the\n * tsconfig explicitly (servers run with cwd ≠ PROJECT_ROOT, so tsx can't find\n * it on its own) so `@/*` path aliases resolve. Per-turn agent-aware config\n * means switching agents mid-topic just works: each turn re-spawns with the\n * right runtime.\n */\nexport function buildStdioMcpServer(\n agent: AgentKind | undefined,\n serverFile: string,\n serverArgs: string[],\n env?: Record<string, string>,\n): Record<string, unknown> {\n if (agent === \"codex\") {\n return {\n command: \"node\",\n args: [\"--import\", TSX_LOADER, serverFile, ...serverArgs],\n // Merged onto codex's inherited env (not a replacement) — verified.\n env: { TSX_TSCONFIG_PATH: TSCONFIG_PATH, ...env },\n };\n }\n return {\n command: \"bun\",\n args: [\"run\", serverFile, ...serverArgs],\n ...(env ? { env } : {}),\n };\n}\n\nfunction useHostedBuiltinMcp(): boolean {\n return envText(\"NEGOTIUM_BUILTIN_MCP_TRANSPORT\") !== \"stdio\";\n}\n\nfunction buildBuiltinMcpServer(\n surface: HostedMcpSurface,\n ctx: RuntimeMcpBuildContext,\n stdio: () => Record<string, unknown>,\n): Record<string, unknown> {\n if (!useHostedBuiltinMcp()) return stdio();\n const agent = ctx.agent ?? FALLBACK_AGENT;\n return buildHostedMcpSpec(agent, surface, {\n userId: ctx.userId,\n ...(ctx.actorUserId ? { actorUserId: ctx.actorUserId } : {}),\n ...(ctx.actorTopicScope ? { actorTopicScope: ctx.actorTopicScope } : {}),\n // Only the session-comm surface addresses remote rooms; the other hosted\n // tokens (and the runtime token) never carry the grant, so it costs them\n // no URL budget.\n ...(surface === \"session-comm\" && ctx.remoteSession\n ? { remoteSession: ctx.remoteSession }\n : {}),\n topicTitle: ctx.session,\n ...(ctx.topicId ? { topicId: ctx.topicId } : {}),\n ...(ctx.queryId ? { queryId: ctx.queryId } : {}),\n ...(ctx.wikiTopicId ? { wikiTopicId: ctx.wikiTopicId } : {}),\n ...(ctx.subagentParentTopicId ? { subagentParentTopicId: ctx.subagentParentTopicId } : {}),\n ...(ctx.threadRootId ? { threadRootId: ctx.threadRootId } : {}),\n cwd: ctx.cwd ?? (ctx.topicId ? resolveTopicWorkspaceDir(ctx.topicId) : process.cwd()),\n agent,\n ...(ctx.model ? { model: ctx.model } : {}),\n ...(ctx.depth !== undefined ? { depth: ctx.depth } : {}),\n ...(ctx.silent !== undefined ? { silent: ctx.silent } : {}),\n ...(ctx.peerBridge ? { peerBridge: ctx.peerBridge } : {}),\n });\n}\n\n// --- Playwright unavailable notifier + per-turn state ---\n//\n// When the playwright manager fails to allocate a long-lived MCP port,\n// the catalog used to fall back to a per-turn stdio chromium that ran as\n// a child of the agent CLI subprocess — which meant Chromium was bound\n// to the agent's process tree and died on cascade-kill. We now skip the\n// browser entry entirely (the playwright entry is omitted from the\n// catalog for that turn) AND surface the gap two ways:\n//\n// 1. `notifyPlaywrightUnavailable` — fire-and-forget callback for the host\n// (telegram bot) to push an alert to the current topic. Throttled\n// per (userId, topic) with a 5-minute cooldown so a flaky\n// manager doesn't spam the chat. Per-process state — restart clears.\n//\n// 2. `consumePlaywrightUnavailable` — the system-prompt builder reads\n// this flag to add an explicit \"Playwright unavailable this turn\"\n// reminder to the agent's user message, so the model knows to\n// route around browser tools instead of hallucinating a call to a\n// tool that was silently removed from the schema list.\n\ntype PlaywrightUnavailableContext = {\n userId: string;\n topic: string | undefined;\n agent: AgentKind | undefined;\n};\n\ntype PlaywrightUnavailableNotifier = (ctx: PlaywrightUnavailableContext) => void;\n\nlet _playwrightUnavailableNotifier: PlaywrightUnavailableNotifier | undefined;\nconst _playwrightUnavailableLastNotifiedAt = new Map<string, number>();\nconst _PLAYWRIGHT_UNAVAILABLE_COOLDOWN_MS = 5 * 60_000;\n\nconst _playwrightUnavailableThisTurn = new Set<string>();\n\nfunction _playwrightUnavailableKey(userId: string, topic: string | undefined): string {\n return `${userId}:${topic ?? \"\"}`;\n}\n\n/**\n * Register the host's \"playwright unavailable\" alert sink. Called once at bot\n * startup. Idempotent — last writer wins.\n */\nexport function setPlaywrightUnavailableNotifier(cb: PlaywrightUnavailableNotifier): void {\n _playwrightUnavailableNotifier = cb;\n}\n\n/**\n * Mark the current turn as missing long-lived Playwright and notify the host.\n * The playwright catalog entry calls this when it is built without a port, but\n * route-level callers can call it earlier after ensurePlaywright fails so the\n * system prompt for the same turn can include the unavailable reminder.\n */\nexport function markPlaywrightUnavailable(ctx: PlaywrightUnavailableContext): void {\n _markPlaywrightUnavailable(ctx);\n}\n\nfunction _markPlaywrightUnavailable(ctx: PlaywrightUnavailableContext): void {\n // Mark unavailable for the next system-prompt build, regardless of\n // notifier presence (the model-side reminder must always fire so the\n // agent doesn't try to call a missing tool).\n _playwrightUnavailableThisTurn.add(_playwrightUnavailableKey(ctx.userId, ctx.topic));\n\n if (!_playwrightUnavailableNotifier) return;\n const key = _playwrightUnavailableKey(ctx.userId, ctx.topic);\n const now = Date.now();\n const last = _playwrightUnavailableLastNotifiedAt.get(key) ?? 0;\n if (now - last < _PLAYWRIGHT_UNAVAILABLE_COOLDOWN_MS) return;\n _playwrightUnavailableLastNotifiedAt.set(key, now);\n try {\n _playwrightUnavailableNotifier(ctx);\n } catch (err) {\n logger.warn({ err }, \"playwright unavailable notifier threw\");\n }\n}\n\n/**\n * Read + clear the \"playwright unavailable this turn\" flag for a\n * (user, group, topic). Used by the system-prompt builder right before\n * the agent query starts. Single consumer pattern — calling more than\n * once per turn returns `false` for the second caller (intended; the\n * reminder only needs to ride one prompt).\n */\nexport function consumePlaywrightUnavailable(userId: string, topic: string | undefined): boolean {\n const key = _playwrightUnavailableKey(userId, topic);\n if (!_playwrightUnavailableThisTurn.has(key)) return false;\n _playwrightUnavailableThisTurn.delete(key);\n return true;\n}\n\n/**\n * Single source of truth for MCP server registration.\n *\n * Each entry declares which scopes it participates in (`dm`, `forum`, `fork`, `cron`)\n * and how to build its spawn config given a context. Public helpers\n * (`getDmMcpServers`, `getForumMcpServers`, `getForkMcpServers`) and the\n * derived forum-name views read from this catalog plus the node-assigned\n * manifest overlay installed below. Adding a built-in MCP server remains a\n * one-line append here instead of touching three places.\n *\n * Conventions:\n * - `scopes` lists every scope the server should appear in by default.\n * - `forumRequired: true` keeps the server even when a forum topic\n * restricts the enabled list via `configure_mcp` (forum scope only).\n * - `build(ctx)` returns the raw transport config (Claude-SDK shape).\n * Codex callers funnel through `toCodexMcpServers` separately.\n *\n * Insertion order is preserved by `Object.entries`, which determines the\n * order of server names in user-facing displays.\n */\n\nexport interface RuntimeMcpBuildContext {\n userId: string;\n /** Product actor identity when it differs from the execution principal. */\n actorUserId?: string;\n /** Hub-asserted rooms the product actor may reach; forwarded into signed tokens. */\n actorTopicScope?: ActorTopicScope;\n /** Hub-issued per-turn remote session-comm grant; session-comm only. */\n remoteSession?: RemoteSessionGrant;\n /** Vault namespace when credentials belong to a different principal. */\n vaultUserId?: string;\n /** \"dm\" for DM scope, topic/session name for forum/fork. */\n session: string;\n /** REST/WS topic id when known. Prefer for authorization/scope checks. */\n topicId?: string;\n /** Direct parent topic id when the current topic is a subagent room. */\n subagentParentTopicId?: string;\n /** REST/WS query id when known. */\n queryId?: string;\n /** Topic id whose wiki memory should be read/written. */\n wikiTopicId?: string;\n agent?: AgentKind;\n cwd?: string;\n model?: string;\n currentUserPrompt?: string;\n depth?: number;\n playwrightPort?: number;\n playwrightCapability?: string;\n bgBashPort?: number;\n autoContinue?: boolean;\n visualTools?: boolean;\n fileDeliveryTools?: boolean;\n silent?: boolean;\n /** Thread this turn answers inside; forwarded to the runtime MCP context. */\n threadRootId?: string;\n peerBridge?: PeerRuntimeBridgeContext;\n}\n\nexport interface RuntimeMcpCatalogEntry {\n scopes: readonly RuntimeMcpScope[];\n /** Forum scope only: cannot be removed via the enabled whitelist. */\n forumRequired?: boolean;\n /**\n * Returns the raw transport spec (Claude-SDK shape), or `null` to\n * signal \"this server is unavailable for this turn — omit it from the\n * catalog entirely.\" Used by the playwright entry when the manager\n * cannot provide a long-lived port.\n */\n build(ctx: RuntimeMcpBuildContext): Record<string, unknown> | null;\n}\n\n// --- Playwright transport builders ---\n\nexport { browserOwnerCapability, buildPlaywrightMcpTransport, CODEX_BROWSER_CAPABILITY_ENV };\n\nexport function browserOwnerForContext(ctx: {\n userId?: string;\n session?: string;\n topicId?: string;\n}): string | undefined {\n if (ctx.topicId) return `topic:${ctx.topicId}`;\n if (ctx.userId && ctx.session) return `user:${ctx.userId}:${ctx.session}`;\n return undefined;\n}\n\nfunction longLivedHttpMcp(agent: AgentKind | undefined, port: number) {\n return agent === \"codex\"\n ? { url: `http://127.0.0.1:${port}/mcp` }\n : { type: \"sse\" as const, url: `http://127.0.0.1:${port}/sse` };\n}\n\n// cua-rs implements Streamable HTTP only; unlike browser-rs, it does not\n// expose the legacy SSE endpoint. The port is installed by the node-owned\n// process manager once its singleton is ready.\nlet cuaRsMcpPort: number | undefined;\n// cua-rs 0.8.0 requires `Authorization: Bearer` on /mcp, because loopback is not\n// an authorization boundary -- any local process, a web page included, could\n// otherwise drive the whole desktop. The node picks the token, hands it to the\n// child as CUA_HTTP_TOKEN, and publishes it here so turns can present it. Kept\n// beside the port because they are one fact: without both, the URL is useless.\nlet cuaRsMcpToken: string | undefined;\n\nexport function setCuaRsMcpPort(port: number | undefined, token?: string): void {\n if (port !== undefined && (!Number.isInteger(port) || port < 1 || port > 65_535)) {\n throw new Error(`invalid cua-rs MCP port: ${port}`);\n }\n cuaRsMcpPort = port;\n cuaRsMcpToken = port === undefined ? undefined : token;\n}\n\nfunction cuaRsHttpMcp(agent: AgentKind | undefined, port: number, token: string | undefined) {\n const url = `http://127.0.0.1:${port}/mcp`;\n // No token means an older cua-rs that does not ask for one. Sending the header\n // anyway would be harmless, but omitting it keeps the config honest about what\n // the running server actually requires.\n const headers = token ? { Authorization: `Bearer ${token}` } : undefined;\n // The shape is otherwise unchanged from before the token existed, including\n // `type` for codex: only the header field is added, and only when there is a\n // token to put in it. Codex spells that field `http_headers`.\n const base = { type: \"http\" as const, url };\n if (!headers) return base;\n return agent === \"codex\" ? { ...base, http_headers: headers } : { ...base, headers };\n}\n\nfunction backgroundBashTransport(\n agent: AgentKind | undefined,\n port: number,\n userId: string,\n topic: string,\n) {\n const capability = bgBashContextCapability(userId, topic);\n const headers = {\n \"X-Background-Bash-User\": userId,\n \"X-Background-Bash-Topic\": topic,\n \"X-Background-Bash-Capability\": capability,\n };\n if (agent === \"codex\") return { url: `http://127.0.0.1:${port}/mcp`, http_headers: headers };\n if (agent === \"maestro\") {\n const query = new URLSearchParams({ user: userId, topic, capability });\n return { type: \"sse\" as const, url: `http://127.0.0.1:${port}/sse?${query}` };\n }\n return { type: \"sse\" as const, url: `http://127.0.0.1:${port}/sse`, headers };\n}\n\n// --- Catalog ---\n\nconst MCP_CATALOG: Record<string, RuntimeMcpCatalogEntry> = {\n playwright: {\n ...commonRuntimeMcpPolicy(\"playwright\"),\n build({ userId, session, topicId, playwrightPort, playwrightCapability, agent }) {\n // Codex and Maestro use Streamable HTTP while Claude uses SSE. Both\n // transports terminate at the same long-lived browser/profile server.\n if (playwrightPort && playwrightCapability) {\n const owner = browserOwnerForContext({ userId, session, topicId });\n if (!owner) return null;\n return buildPlaywrightMcpTransport(playwrightPort, owner, playwrightCapability, agent);\n }\n // No port available — the playwright manager could not allocate one\n // for this turn. The previous behavior was to fall back to a per-turn\n // stdio chromium, but that made Chromium a child of the agent CLI\n // process tree, so cascade-kill on agent exit took the browser down\n // with it (visible in pm2 as \"Chromium died with claude\"). We now\n // omit the playwright entry from this turn's catalog AND fire two\n // side-effects:\n // 1. notify the host so it can push an alert into the current\n // topic (rate-limited 5min per scope key);\n // 2. mark the (user, topic) as \"playwright unavailable\n // this turn\" so the system-prompt builder can tell the model\n // explicitly, instead of letting the model hallucinate a call\n // to a tool whose schema silently vanished.\n _markPlaywrightUnavailable({\n userId,\n topic: session,\n agent,\n });\n return null;\n },\n },\n [RUNTIME_MCP_KEY]: {\n ...commonRuntimeMcpPolicy(\"runtime\"),\n build({\n userId,\n actorUserId,\n actorTopicScope,\n session,\n topicId,\n queryId,\n agent,\n cwd,\n model,\n currentUserPrompt,\n autoContinue,\n visualTools,\n fileDeliveryTools,\n threadRootId,\n peerBridge,\n }) {\n if (!topicId || !agent) return null;\n const switchTargets = explicitAgentSwitchTargets(currentUserPrompt);\n return buildRuntimeMcpSpec(agent, {\n // Runtime tools mutate node-owned state, so authorization stays bound\n // to the canonical execution principal. Keep the product-side human\n // actor separately for attribution instead of replacing the identity\n // that appears in this node's topic participant roster.\n userId,\n ...(actorUserId ? { actorUserId } : {}),\n ...(actorTopicScope ? { actorTopicScope } : {}),\n topicId,\n topicTitle: session,\n queryId,\n cwd: cwd ?? resolveTopicWorkspaceDir(topicId),\n agent,\n model,\n // Derived here, from the full prompt, so the signed token carries the\n // gate's answer (bounded) instead of the prompt (unbounded); see\n // `explicitAgentSwitchTargets`.\n ...(switchTargets.length ? { explicitAgentSwitchTargets: switchTargets } : {}),\n autoContinue,\n visualTools,\n fileDeliveryTools,\n ...(threadRootId ? { threadRootId } : {}),\n peerBridge,\n });\n },\n },\n \"token-stats\": {\n ...commonRuntimeMcpPolicy(\"token-stats\"),\n build(ctx) {\n return buildBuiltinMcpServer(\"token-stats\", ctx, () =>\n buildStdioMcpServer(ctx.agent, TOKEN_STATS_SERVER, [`--user-id=${ctx.userId}`]),\n );\n },\n },\n // Otium-owned shared task system. This is the only authoritative task/todo\n // surface across claude/codex/maestro; provider-native task stores are\n // blocked or ignored because they do not survive agent switches.\n task: {\n ...commonRuntimeMcpPolicy(\"task\"),\n build(ctx) {\n const { userId, session, topicId, queryId, agent, peerBridge } = ctx;\n if (peerBridge) {\n if (!topicId || !queryId) return null;\n const env = canonicalMcpBridgeEnv({\n surface: \"task\",\n userId,\n topicId,\n queryId,\n peerBridge,\n });\n return env\n ? buildStdioMcpServer(agent, CANONICAL_MCP_PROXY_SERVER, [\"--surface=task\"], env)\n : null;\n }\n const args = [`--user-id=${userId}`, `--topic=${session}`];\n if (topicId) args.push(`--topic-id=${topicId}`);\n return buildBuiltinMcpServer(\"task\", ctx, () =>\n buildStdioMcpServer(agent, TASK_SERVER, args),\n );\n },\n },\n decision: {\n ...commonRuntimeMcpPolicy(\"decision\"),\n build(ctx) {\n const { userId, session, topicId, queryId, agent, model, peerBridge } = ctx;\n if (peerBridge) {\n if (!topicId || !queryId) return null;\n const env = canonicalMcpBridgeEnv({\n surface: \"decision\",\n userId,\n topicId,\n queryId,\n peerBridge,\n });\n return env\n ? buildStdioMcpServer(agent, CANONICAL_MCP_PROXY_SERVER, [\"--surface=decision\"], env)\n : null;\n }\n const args = [\n `--user-id=${userId}`,\n `--topic=${session}`,\n `--agent=${agent ?? FALLBACK_AGENT}`,\n ];\n if (topicId) args.push(`--topic-id=${topicId}`);\n if (model) args.push(`--model=${model}`);\n return buildBuiltinMcpServer(\"decision\", ctx, () =>\n buildStdioMcpServer(agent, DECISION_SERVER, args),\n );\n },\n },\n \"session-comm\": {\n // Exposed in `manager` scope as well so the General-topic manager agent\n // can wake fresh-created topics via tell_session/ask_session right after\n // create_topic. Without this, a newly-created topic would stay in the\n // \"fresh-start ready\" state until the user manually visits it.\n ...commonRuntimeMcpPolicy(\"session-comm\"),\n build(ctx) {\n const {\n userId,\n actorUserId,\n actorTopicScope,\n remoteSession,\n session,\n topicId,\n subagentParentTopicId,\n agent,\n depth = 0,\n silent,\n threadRootId,\n peerBridge,\n } = ctx;\n const effectiveAgent = agent ?? FALLBACK_AGENT;\n const cronSessionId = topicId\n ? getRegisteredCronSession(topicId, effectiveAgent)?.sessionId\n : undefined;\n const args = [\n `--user-id=${userId}`,\n ...(actorUserId ? [`--actor-user-id=${actorUserId}`] : []),\n ...(actorTopicScope\n ? [\n `--actor-topic-scope=${encodeActorTopicScopeArg(actorTopicScope)}`,\n // The child does not inherit this process's env; hand it the\n // same freshness window the hosted tools apply.\n `--actor-topic-scope-max-age-ms=${actorTopicScopeMaxAgeMs()}`,\n ]\n : []),\n ...(remoteSession\n ? [`--remote-session-grant=${encodeRemoteSessionGrantArg(remoteSession)}`]\n : []),\n `--topic=${session}`,\n ...(topicId ? [`--topic-id=${topicId}`] : []),\n ...(subagentParentTopicId ? [`--subagent-parent-topic-id=${subagentParentTopicId}`] : []),\n `--depth=${depth}`,\n `--agent=${effectiveAgent}`,\n ...(cronSessionId ? [`--cron-session-id=${cronSessionId}`] : []),\n ...(silent ? [\"--reply-only=true\"] : []),\n // Turn-scoped, like `--peer-host-query-id`: this config is rebuilt for\n // every turn, so an `ask_session` raised inside a thread can record\n // where its answer belongs.\n ...(threadRootId ? [`--thread-root-id=${threadRootId}`] : []),\n ...(peerBridge ? [`--peer-host-query-id=${peerBridge.hostQueryId}`] : []),\n ];\n return buildBuiltinMcpServer(\"session-comm\", ctx, () =>\n buildStdioMcpServer(\n effectiveAgent,\n SESSION_COMM_SERVER,\n args,\n peerBridge ? peerSessionBridgeIpcEnv() : undefined,\n ),\n );\n },\n },\n wiki: {\n ...commonRuntimeMcpPolicy(\"wiki\"),\n build(ctx) {\n const { userId, session, topicId, queryId, wikiTopicId, agent, peerBridge } = ctx;\n if (peerBridge) {\n if (!topicId || !queryId) return null;\n const env = canonicalMcpBridgeEnv({\n surface: \"wiki\",\n userId,\n topicId,\n queryId,\n peerBridge,\n });\n return env\n ? buildStdioMcpServer(agent, CANONICAL_MCP_PROXY_SERVER, [\"--surface=wiki\"], env)\n : null;\n }\n const args = [`--user-id=${userId}`];\n if (topicId) args.push(`--current-topic-id=${topicId}`);\n // Prefer the REST topic id so wiki_write writes filenames and SQLite\n // briefs keyed the same way the topic wiki API reads them.\n const resolvedWikiTopicId =\n wikiTopicId ?? topicId ?? (session !== \"dm\" ? session : undefined);\n if (resolvedWikiTopicId) args.push(`--topic-id=${resolvedWikiTopicId}`);\n args.push(\"--surface=wiki\");\n return buildBuiltinMcpServer(\"wiki\", { ...ctx, wikiTopicId: resolvedWikiTopicId }, () =>\n buildStdioMcpServer(agent, WIKI_SERVER, args),\n );\n },\n },\n skills: {\n ...commonRuntimeMcpPolicy(\"skills\"),\n build(ctx) {\n const { userId, topicId, agent } = ctx;\n const args = [`--user-id=${userId}`, \"--surface=skills\"];\n if (topicId) args.push(`--topic-id=${topicId}`);\n return buildBuiltinMcpServer(\"skills\", ctx, () =>\n buildStdioMcpServer(agent, WIKI_SERVER, args),\n );\n },\n },\n \"system-health\": {\n ...commonRuntimeMcpPolicy(\"system-health\"),\n build(ctx) {\n return buildBuiltinMcpServer(\"system-health\", ctx, () =>\n buildStdioMcpServer(ctx.agent, SYSTEM_HEALTH_SERVER, []),\n );\n },\n },\n \"background-bash\": {\n ...commonRuntimeMcpPolicy(\"background-bash\"),\n build({ agent, bgBashPort, userId, topicId }) {\n // Key the whole pipeline by the canonical topic id: it flows through the\n // capability, the request context, and the completion inbox filename\n // (sessionInboxPath) so the exiting process's output is routed back to\n // the exact originating topic. A title/session fallback would be encoded\n // as if it were an id and the inbox worker would fail to resolve it, so\n // background-bash is simply unavailable without a topic id.\n if (bgBashPort === undefined || !topicId) return null;\n return backgroundBashTransport(agent, bgBashPort, userId, topicId);\n },\n },\n \"agent-health\": {\n ...commonRuntimeMcpPolicy(\"agent-health\"),\n build(ctx) {\n const { userId, agent } = ctx;\n const args = [`--user-id=${userId}`];\n return buildBuiltinMcpServer(\"agent-health\", ctx, () =>\n buildStdioMcpServer(agent, AGENT_HEALTH_SERVER, args),\n );\n },\n },\n vault: {\n ...commonRuntimeMcpPolicy(\"vault\"),\n build(ctx) {\n const { userId, vaultUserId, agent } = ctx;\n // Normal turns use {{KEY}} directly in tool inputs. Keep the Vault MCP\n // surface focused on key discovery; broker tools remain available from\n // the public factory for compatibility but are no longer the default UX.\n const args = [`--user-id=${vaultUserId ?? userId}`];\n if (agent !== \"codex\") args.push(\"--list-only=true\");\n return buildBuiltinMcpServer(\"vault\", { ...ctx, userId: vaultUserId ?? userId }, () =>\n buildStdioMcpServer(agent, VAULT_SERVER, args),\n );\n },\n },\n // macOS desktop control, delegated to maestrojeong/cua-rs rather than\n // reimplemented. The node owns one persistent Streamable HTTP process;\n // turns only receive its loopback URL and must never spawn a stdio copy.\n \"cua-rs\": {\n ...commonRuntimeMcpPolicy(\"cua-rs\"),\n build({ agent }) {\n return cuaRsMcpPort ? cuaRsHttpMcp(agent, cuaRsMcpPort, cuaRsMcpToken) : null;\n },\n },\n};\n\n/**\n * Locate the `cua-rs` binary, or `null` when it is not installed.\n *\n * Checked in order of specificity: an explicit env override for anyone running\n * a local build, then the installer's default target, then `/usr/local/bin`\n * for a `--bin-dir` install. PATH is deliberately not consulted -- the server\n * is spawned by a supervised host process whose PATH is not the user's shell\n * PATH, so a PATH lookup would succeed in a terminal and fail under pm2.\n */\nexport function resolveCuaRsBinary(platform: NodeJS.Platform = process.platform): string | null {\n if (platform !== \"darwin\") return null;\n const candidates = [\n envText(\"NEGOTIUM_CUA_RS_BIN\"),\n join(homedir(), \".local\", \"bin\", \"cua-rs\"),\n \"/usr/local/bin/cua-rs\",\n ].filter((p): p is string => Boolean(p));\n for (const candidate of candidates) {\n try {\n accessSync(candidate, fsConstants.X_OK);\n return candidate;\n } catch {\n // Not there, or not executable. Try the next one.\n }\n }\n return null;\n}\n\n// --- Derived catalog views ---\n\nexport type NodeMcpEntry =\n | { key: string; kind: \"http\"; port: number }\n | {\n key: string;\n kind: \"http-instance\";\n ensurePort: (instanceKey: string) => Promise<number>;\n }\n | { key: string; kind: \"stdio\"; command: string; args?: string[]; env?: Record<string, string> };\n\nlet nodeMcpEntries: NodeMcpEntry[] = [];\nconst resolvedNodeMcpPorts = new WeakMap<\n Extract<NodeMcpEntry, { kind: \"http-instance\" }>,\n Map<string, number>\n>();\n\n/** All forum-eligible MCP server names, in display order. */\nconst allForumMcpServerNames: string[] = [];\nexport const ALL_FORUM_MCP_SERVER_NAMES: readonly string[] = allForumMcpServerNames;\n\n/** Forum servers that cannot be removed via the enabled whitelist. */\nconst requiredForumMcpServers: string[] = [];\nexport const REQUIRED_FORUM_MCP_SERVERS: readonly string[] = requiredForumMcpServers;\n\n/** Forum servers that can be toggled via the enabled whitelist (not required). */\nconst optionalForumMcpServers: string[] = [];\nexport const OPTIONAL_FORUM_MCP_SERVERS: readonly string[] = optionalForumMcpServers;\n\nfunction refreshForumCatalogViews(): void {\n const { all, required, optional } = classifyForumMcpServers(MCP_CATALOG);\n const nodeNames = nodeMcpEntries.map((entry) => entry.key);\n const allWithNodeEntries = [...new Set([...all, ...nodeNames])];\n const optionalWithNodeEntries = [...new Set([...optional, ...nodeNames])];\n allForumMcpServerNames.splice(0, allForumMcpServerNames.length, ...allWithNodeEntries);\n requiredForumMcpServers.splice(0, requiredForumMcpServers.length, ...required);\n optionalForumMcpServers.splice(0, optionalForumMcpServers.length, ...optionalWithNodeEntries);\n}\n\nrefreshForumCatalogViews();\n\n/**\n * Mount one MCP capability supplied by an optional node module.\n *\n * Registration happens once at node startup, never in the per-event hot path.\n * The returned cleanup closure only removes the exact entry installed by this\n * call, making module stop/restart safe.\n */\nexport function registerRuntimeMcpServer(name: string, entry: RuntimeMcpCatalogEntry): () => void {\n const key = name.trim();\n if (!key || !/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(key)) {\n throw new Error(`invalid runtime MCP server name: ${name}`);\n }\n if (MCP_CATALOG[key]) throw new Error(`runtime MCP server already registered: ${key}`);\n MCP_CATALOG[key] = entry;\n refreshForumCatalogViews();\n return () => {\n if (MCP_CATALOG[key] !== entry) return;\n delete MCP_CATALOG[key];\n refreshForumCatalogViews();\n };\n}\n\n/**\n * Format the active MCP config for display (used by get_mcp_config /\n * get_topic_mcp / configure_mcp response).\n *\n * In whitelist mode the DB stores only the user-chosen optional servers;\n * required servers are always active but never written to the whitelist.\n * This helper surfaces that split so the model never confuses \"not in\n * whitelist\" with \"not active\".\n */\nexport function formatMcpStatus(config: {\n enabled: string[] | null;\n extra?: Record<string, unknown>;\n}): string[] {\n const extraNames = Object.keys(config.extra ?? {});\n\n if (config.enabled === null) {\n const total = ALL_FORUM_MCP_SERVER_NAMES.length + extraNames.length;\n return [\n `설정 방식: 기본값 (전체 활성)`,\n `활성 서버 (${total}개): ${[...ALL_FORUM_MCP_SERVER_NAMES, ...extraNames].join(\", \")}`,\n `추가 서버: ${extraNames.length > 0 ? extraNames.join(\", \") : \"없음\"}`,\n ];\n }\n\n // whitelist mode: stored list may or may not include required servers\n // (old entries might have them; new entries won't). Either way, split\n // by required vs optional for display.\n const availableOptional = new Set(OPTIONAL_FORUM_MCP_SERVERS);\n const optionalActive = [...new Set(config.enabled)].filter((name) => availableOptional.has(name));\n const total = REQUIRED_FORUM_MCP_SERVERS.length + optionalActive.length + extraNames.length;\n return [\n `설정 방식: whitelist`,\n `필수 서버 (항상 활성, ${REQUIRED_FORUM_MCP_SERVERS.length}개): ${REQUIRED_FORUM_MCP_SERVERS.join(\", \")}`,\n `선택 서버 (whitelist, ${optionalActive.length}개): ${optionalActive.length > 0 ? optionalActive.join(\", \") : \"없음\"}`,\n `실제 활성 합계: ${total}개`,\n `추가 서버: ${extraNames.length > 0 ? extraNames.join(\", \") : \"없음\"}`,\n ``,\n `선택 가능 서버 전체 (${OPTIONAL_FORUM_MCP_SERVERS.length}개): ${OPTIONAL_FORUM_MCP_SERVERS.join(\", \")}`,\n ];\n}\n\n// --- Builders for each scope ---\n\n// ── Node-assigned MCP servers (mcp-host manifest) ───────────────────\n//\n// The per-node MCP manifest (`negotium mcp add`) lives in @negotium/mcp-host,\n// which depends on core — so core cannot read it directly. Instead the host\n// process resolves the manifest at node start (ensuring long-lived http\n// servers are running and have ports) and installs the result here. Entries\n// then ride every eligible scope's catalog, subject to the same per-topic\n// `enabled` whitelist as optional built-ins.\n\n/** Install the node's assigned MCP servers. Last writer wins (host restart-safe). */\nexport function setNodeMcpServers(entries: NodeMcpEntry[]): void {\n nodeMcpEntries = entries.filter((entry) => !(entry.key in MCP_CATALOG));\n const dropped = entries.length - nodeMcpEntries.length;\n if (dropped > 0) {\n logger.warn({ dropped }, \"setNodeMcpServers: entries shadowing built-in catalog keys ignored\");\n }\n refreshForumCatalogViews();\n}\n\nexport function getNodeMcpServers(): readonly NodeMcpEntry[] {\n return nodeMcpEntries;\n}\n\n/** Prevent host grants from replacing node-owned MCP servers. */\nexport function isReservedRuntimeMcpServerName(name: string): boolean {\n return Object.hasOwn(MCP_CATALOG, name) || nodeMcpEntries.some((entry) => entry.key === name);\n}\n\n/** Host MCP servers that administer the workspace; only a manager room may receive them. */\nconst MANAGER_ONLY_HOST_MCP_NAMES = new Set([\"topic-admin\"]);\n\n/**\n * Why `topic` may not receive host MCP servers named `names`, or null when it\n * may. A manager room takes any of them. An ordinary room takes everything but\n * the manager administration surface, so a host can scope its own tools to a\n * room. A subagent room takes none.\n */\nexport function hostMcpGrantRefusal(\n topic: Pick<TopicDto, \"kind\" | \"isSubagent\">,\n names: readonly string[],\n): string | null {\n if (topic.kind === \"manager\") return null;\n if (topic.isSubagent) return \"hostMcpServers is not allowed for subagent topics\";\n const managerOnly = names.find((name) => MANAGER_ONLY_HOST_MCP_NAMES.has(name));\n return managerOnly ? `${managerOnly} is only allowed for manager topics` : null;\n}\n\nfunction withoutManagerOnlyHostMcpServers(\n hostMcpServers: Record<string, HostMcpServerSpec> | undefined,\n): Record<string, HostMcpServerSpec> | undefined {\n if (!hostMcpServers) return undefined;\n return Object.fromEntries(\n Object.entries(hostMcpServers).filter(([name]) => !MANAGER_ONLY_HOST_MCP_NAMES.has(name)),\n );\n}\n\nfunction mergeHostMcpServers(\n base: Record<string, unknown>,\n hostMcpServers: Record<string, HostMcpServerSpec> | undefined,\n): Record<string, unknown> {\n if (!hostMcpServers) return base;\n for (const name of Object.keys(hostMcpServers)) {\n if (Object.hasOwn(base, name) || isReservedRuntimeMcpServerName(name)) {\n throw new Error(`host MCP server name conflicts with node catalog: ${name}`);\n }\n }\n return { ...base, ...hostMcpServers };\n}\n\nfunction buildNodeMcpSpecs(\n agent: AgentKind | undefined,\n filter: (name: string) => boolean,\n ctx: Pick<RuntimeMcpBuildContext, \"topicId\" | \"userId\" | \"session\">,\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const entry of nodeMcpEntries) {\n if (!filter(entry.key)) continue;\n if (entry.kind === \"http\") {\n out[entry.key] = longLivedHttpMcp(agent, entry.port);\n continue;\n }\n if (entry.kind === \"http-instance\") {\n const port = resolvedNodeMcpPorts.get(entry)?.get(nodeMcpInstanceKey(ctx));\n if (port !== undefined) out[entry.key] = longLivedHttpMcp(agent, port);\n continue;\n }\n out[entry.key] = {\n command: entry.command,\n args: entry.args ?? [],\n ...(entry.env ? { env: entry.env } : {}),\n };\n }\n return out;\n}\n\nfunction nodeMcpInstanceKey(\n ctx: Pick<RuntimeMcpBuildContext, \"topicId\" | \"userId\" | \"session\">,\n): string {\n return ctx.topicId ?? `user:${ctx.userId}:session:${ctx.session}`;\n}\n\n/**\n * Lazily prepare per-topic HTTP manifest entries before a provider resolves\n * its otherwise-synchronous MCP config. One failed custom server is omitted\n * from that turn without taking down the rest of the runtime catalog.\n */\nexport async function prepareNodeMcpServersForQuery(opts: AgentQueryOptions): Promise<void> {\n if (\n opts.toolPolicy ||\n opts.sessionType === \"cron\" ||\n nodeMcpEntries.every((entry) => entry.kind !== \"http-instance\")\n ) {\n return;\n }\n\n const forum = ![\"dm\", \"ephemeral\", \"manager\"].includes(opts.sessionType ?? \"forum\");\n const enabled = opts.mcpEnabled ?? null;\n const instanceKey = nodeMcpInstanceKey({\n topicId: opts.topicId,\n userId: opts.userId || \"local\",\n session: opts.session || \"default\",\n });\n\n await Promise.all(\n nodeMcpEntries.map(async (entry) => {\n if (entry.kind !== \"http-instance\") return;\n if (forum && enabled !== null && !enabled.includes(entry.key)) return;\n let ports = resolvedNodeMcpPorts.get(entry);\n if (!ports) {\n ports = new Map();\n resolvedNodeMcpPorts.set(entry, ports);\n }\n try {\n const port = await entry.ensurePort(instanceKey);\n if (!Number.isInteger(port) || port < 1 || port > 65_535) {\n throw new Error(`invalid port ${port}`);\n }\n ports.set(instanceKey, port);\n } catch (err) {\n ports.delete(instanceKey);\n logger.warn(\n { err, key: entry.key, instanceKey },\n \"node mcp: failed to prepare instance-scoped server\",\n );\n }\n }),\n );\n}\n\nfunction buildScope(\n scope: RuntimeMcpScope,\n ctx: RuntimeMcpBuildContext,\n filter: (name: string) => boolean = () => true,\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const [name, entry] of Object.entries(MCP_CATALOG)) {\n if (!entry.scopes.includes(scope)) continue;\n if (!filter(name)) continue;\n // `null` from build() means \"skip this server for this turn\" —\n // currently used by the playwright entry when no long-lived port\n // is available.\n const spec = entry.build(ctx);\n if (spec === null) continue;\n out[name] = spec;\n }\n // Node-assigned MCPs join every scope except cron (scheduled runs keep the\n // deliberately narrow built-in set).\n if (scope !== \"cron\") {\n Object.assign(out, buildNodeMcpSpecs(ctx.agent, filter, ctx));\n }\n return out;\n}\n\n/** DM session: catalog entries with `dm` scope, no whitelist. */\nexport function getDmMcpServers(opts: {\n userId: string;\n session?: string;\n topicId?: string;\n agent?: AgentKind;\n playwrightPort?: number;\n playwrightCapability?: string;\n}) {\n return buildScope(\"dm\", {\n userId: opts.userId,\n session: opts.session ?? \"dm\",\n topicId: opts.topicId,\n agent: opts.agent,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n });\n}\n\n/**\n * Manager session: lives in the caller's private General API topic. Owns topic CRUD,\n * invite/user admin, and cross-topic MCP toggling through `topic-admin`,\n * plus general utilities. Browser-heavy work belongs in dedicated topics, so\n * Playwright is intentionally excluded here.\n * No whitelist — manager-scope catalog entries are loaded as-is.\n */\nexport function getManagerMcpServers(opts: {\n userId: string;\n actorUserId?: string;\n actorTopicScope?: ActorTopicScope;\n remoteSession?: RemoteSessionGrant;\n session?: string;\n topicId?: string;\n queryId?: string;\n wikiTopicId?: string;\n agent?: AgentKind;\n cwd?: string;\n model?: string;\n currentUserPrompt?: string;\n playwrightPort?: number;\n playwrightCapability?: string;\n autoContinue?: boolean;\n visualTools?: boolean;\n fileDeliveryTools?: boolean;\n}) {\n if (!opts.topicId) {\n throw new Error(\"getManagerMcpServers: private General topicId is required\");\n }\n const topicId = opts.topicId;\n return buildScope(\"manager\", {\n userId: opts.userId,\n actorUserId: opts.actorUserId,\n actorTopicScope: opts.actorTopicScope,\n remoteSession: opts.remoteSession,\n session: opts.session ?? \"General\",\n topicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId ?? topicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.currentUserPrompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n autoContinue: opts.autoContinue,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n });\n}\n\n/**\n * Forum session: catalog entries with `forum` scope.\n * - `enabled === null` → all forum servers.\n * - `enabled` is an array → whitelist; required servers are always included.\n * - `extra` is merged on top, allowing one-off injections per topic.\n */\nexport function getForumMcpServers(opts: {\n userId: string;\n actorUserId?: string;\n actorTopicScope?: ActorTopicScope;\n remoteSession?: RemoteSessionGrant;\n vaultUserId?: string;\n session: string;\n topicId?: string;\n subagentParentTopicId?: string;\n queryId?: string;\n wikiTopicId?: string;\n agent: AgentKind;\n cwd?: string;\n model?: string;\n currentUserPrompt?: string;\n playwrightPort?: number;\n playwrightCapability?: string;\n bgBashPort?: number;\n autoContinue?: boolean;\n visualTools?: boolean;\n fileDeliveryTools?: boolean;\n threadRootId?: string;\n depth?: number;\n enabled?: string[] | null;\n extra?: Record<string, unknown>;\n silent?: boolean;\n peerBridge?: PeerRuntimeBridgeContext;\n}) {\n const {\n userId,\n actorUserId,\n actorTopicScope,\n remoteSession,\n vaultUserId,\n session,\n topicId,\n subagentParentTopicId,\n queryId,\n wikiTopicId,\n agent,\n cwd,\n model,\n currentUserPrompt,\n playwrightPort,\n playwrightCapability,\n depth = 0,\n enabled = null,\n extra = {},\n silent = false,\n bgBashPort,\n autoContinue,\n visualTools,\n fileDeliveryTools,\n threadRootId,\n peerBridge,\n } = opts;\n\n const filter = (name: string) => {\n if (silent && (name === \"task\" || name === \"decision\")) return false;\n if (enabled === null) return true;\n return (\n enabled.includes(name) || (REQUIRED_FORUM_MCP_SERVERS as readonly string[]).includes(name)\n );\n };\n\n const base = buildScope(\n \"forum\",\n {\n userId,\n actorUserId,\n actorTopicScope,\n remoteSession,\n vaultUserId,\n session,\n topicId,\n subagentParentTopicId,\n queryId,\n wikiTopicId,\n agent,\n cwd,\n model,\n currentUserPrompt,\n depth,\n playwrightPort,\n playwrightCapability,\n bgBashPort,\n autoContinue,\n visualTools,\n fileDeliveryTools,\n threadRootId,\n silent,\n peerBridge,\n },\n filter,\n );\n\n return { ...base, ...extra };\n}\n\n/**\n * Cron session: scheduled background run for a concrete API topic. Keep the\n * catalog narrower than forum scope: runtime delivery, topic memory/status,\n * vault utilities and a caller-provided disposable Playwright port.\n */\nexport function getCronMcpServers(opts: {\n userId: string;\n session: string;\n topicId: string;\n queryId?: string;\n wikiTopicId?: string;\n agent: AgentKind;\n cwd?: string;\n model?: string;\n currentUserPrompt?: string;\n playwrightPort?: number;\n playwrightCapability?: string;\n visualTools?: boolean;\n fileDeliveryTools?: boolean;\n}) {\n return buildScope(\"cron\", {\n userId: opts.userId,\n session: opts.session,\n topicId: opts.topicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId ?? opts.topicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.currentUserPrompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n autoContinue: false,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n });\n}\n\n/**\n * Pick the right MCP server bundle for an agent query. DM/ephemeral sessions\n * get the DM bundle; forum sessions get the forum bundle with full options\n * forwarded. Returned shape is the Claude-SDK shape; Codex callers funnel it\n * through their own translator (`toCodexMcpServers`).\n */\nexport function getMcpServersForQuery(opts: AgentQueryOptions): Record<string, unknown> {\n if (opts.toolPolicy === \"none\") return {};\n if (opts.toolPolicy === \"compaction-log\") {\n const compactLog = opts.mcpExtra?.compact_log;\n return compactLog ? { compact_log: compactLog } : {};\n }\n if (opts.sessionType === \"cron\") {\n if (!opts.topicId) throw new Error(\"getMcpServersForQuery: cron sessionType requires topicId\");\n return hideProviderIntrospectionForOtium(\n getCronMcpServers({\n userId: opts.userId || \"local\",\n session: opts.session || \"cron\",\n topicId: opts.topicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.prompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n }),\n opts.topicId,\n );\n }\n if (opts.sessionType === \"dm\" || opts.sessionType === \"ephemeral\") {\n return getDmMcpServers({\n userId: opts.userId || \"local\",\n session: opts.session,\n topicId: opts.topicId,\n agent: opts.agent,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n });\n }\n if (opts.sessionType === \"manager\") {\n return hideProviderIntrospectionForOtium(\n mergeHostMcpServers(\n getManagerMcpServers({\n userId: opts.userId || \"local\",\n actorUserId: opts.actorUserId,\n actorTopicScope: opts.actorTopicScope,\n remoteSession: opts.remoteSession,\n session: opts.session,\n topicId: opts.topicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.prompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n autoContinue: opts.autoContinue,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n }),\n opts.hostMcpServers,\n ),\n opts.topicId,\n );\n }\n return hideProviderIntrospectionForOtium(\n mergeHostMcpServers(\n getForumMcpServers({\n userId: opts.userId || \"local\",\n actorUserId: opts.actorUserId,\n actorTopicScope: opts.actorTopicScope,\n remoteSession: opts.remoteSession,\n vaultUserId: opts.vaultUserId,\n session: opts.session || \"default\",\n topicId: opts.topicId,\n subagentParentTopicId: opts.subagentParentTopicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.prompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n bgBashPort: opts.bgBashPort,\n autoContinue: opts.autoContinue,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n threadRootId: opts.threadRootId,\n depth: opts.depth,\n enabled: opts.mcpEnabled,\n extra: opts.mcpExtra,\n silent: opts.silent,\n peerBridge: opts.peerBridge,\n }),\n withoutManagerOnlyHostMcpServers(opts.hostMcpServers),\n ),\n opts.topicId,\n );\n}\n\nfunction hideProviderIntrospectionForOtium(\n servers: Record<string, unknown>,\n topicId: string | undefined,\n): Record<string, unknown> {\n if (!topicId || getTopic(topicId)?.surface !== \"otium\") return servers;\n const filtered = { ...servers };\n delete filtered[\"agent-health\"];\n delete filtered[\"token-stats\"];\n return filtered;\n}\n",
33
+ "import { accessSync, constants as fsConstants } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { explicitAgentSwitchTargets } from \"#agents/explicit-agent-switch\";\n\nimport { canonicalMcpBridgeEnv } from \"#mcp/canonical-bridge-config\";\nimport {\n buildHostedMcpSpec,\n buildRuntimeMcpSpec,\n type HostedMcpSurface,\n RUNTIME_MCP_KEY,\n} from \"#mcp/runtime-spec\";\nimport { peerSessionBridgeIpcEnv } from \"#mcp/session-comm/bridge-ipc-config\";\nimport { bgBashContextCapability } from \"#platform/background-bash/manager\";\nimport {\n AGENT_HEALTH_SERVER,\n CANONICAL_MCP_PROXY_SERVER,\n DECISION_SERVER,\n envText,\n FALLBACK_AGENT,\n resolveTopicWorkspaceDir,\n SESSION_COMM_SERVER,\n SESSION_HISTORY_SERVER,\n SYSTEM_HEALTH_SERVER,\n TASK_SERVER,\n TOKEN_STATS_SERVER,\n TSCONFIG_PATH,\n TSX_LOADER,\n VAULT_SERVER,\n WIKI_SERVER,\n} from \"#platform/config\";\nimport { logger } from \"#platform/logger\";\nimport {\n classifyForumMcpServers,\n commonRuntimeMcpPolicy,\n type RuntimeMcpScope,\n} from \"#platform/mcp-catalog-policy\";\nimport { browserOwnerCapability } from \"#platform/playwright/capability\";\nimport {\n buildPlaywrightMcpTransport,\n CODEX_BROWSER_CAPABILITY_ENV,\n} from \"#platform/playwright/mcp-transport\";\nimport { actorTopicScopeMaxAgeMs, encodeActorTopicScopeArg } from \"#runtime/actor-topic-scope\";\nimport { getRegisteredCronSession } from \"#runtime/cron-sessions\";\nimport { encodeRemoteSessionGrantArg } from \"#runtime/remote-session-grant\";\nimport type { HostMcpServerSpec } from \"#runtime-gateway\";\nimport { getTopic } from \"#storage/api-topics\";\nimport type {\n ActorTopicScope,\n AgentKind,\n AgentQueryOptions,\n PeerRuntimeBridgeContext,\n RemoteSessionGrant,\n} from \"#types\";\nimport type { TopicDto } from \"#types/api\";\n\nexport type { RuntimeMcpScope } from \"#platform/mcp-catalog-policy\";\n\n/**\n * Build the stdio transport spec for a Otium MCP server entry.\n *\n * claude/maestro launch the .ts server directly with `bun run` (fast, native\n * TypeScript + bun:sqlite). codex CANNOT — codex 0.135's rmcp stdio client\n * fails to handshake with bun-spawned servers (initialize is dropped/raced, so\n * no tools reach the model), while pure-node servers connect reliably. So for\n * the `codex` agent we launch the SAME server file via node + tsx, passing the\n * tsconfig explicitly (servers run with cwd ≠ PROJECT_ROOT, so tsx can't find\n * it on its own) so `@/*` path aliases resolve. Per-turn agent-aware config\n * means switching agents mid-topic just works: each turn re-spawns with the\n * right runtime.\n */\nexport function buildStdioMcpServer(\n agent: AgentKind | undefined,\n serverFile: string,\n serverArgs: string[],\n env?: Record<string, string>,\n): Record<string, unknown> {\n if (agent === \"codex\") {\n return {\n command: \"node\",\n args: [\"--import\", TSX_LOADER, serverFile, ...serverArgs],\n // Merged onto codex's inherited env (not a replacement) — verified.\n env: { TSX_TSCONFIG_PATH: TSCONFIG_PATH, ...env },\n };\n }\n return {\n command: \"bun\",\n args: [\"run\", serverFile, ...serverArgs],\n ...(env ? { env } : {}),\n };\n}\n\nfunction useHostedBuiltinMcp(): boolean {\n return envText(\"NEGOTIUM_BUILTIN_MCP_TRANSPORT\") !== \"stdio\";\n}\n\nfunction buildBuiltinMcpServer(\n surface: HostedMcpSurface,\n ctx: RuntimeMcpBuildContext,\n stdio: () => Record<string, unknown>,\n): Record<string, unknown> {\n if (!useHostedBuiltinMcp()) return stdio();\n const agent = ctx.agent ?? FALLBACK_AGENT;\n return buildHostedMcpSpec(agent, surface, {\n userId: ctx.userId,\n ...(ctx.actorUserId ? { actorUserId: ctx.actorUserId } : {}),\n ...(ctx.actorTopicScope ? { actorTopicScope: ctx.actorTopicScope } : {}),\n // Only the session-comm surface addresses remote rooms; the other hosted\n // tokens (and the runtime token) never carry the grant, so it costs them\n // no URL budget.\n ...(surface === \"session-comm\" && ctx.remoteSession\n ? { remoteSession: ctx.remoteSession }\n : {}),\n topicTitle: ctx.session,\n ...(ctx.topicId ? { topicId: ctx.topicId } : {}),\n ...(ctx.queryId ? { queryId: ctx.queryId } : {}),\n ...(ctx.wikiTopicId ? { wikiTopicId: ctx.wikiTopicId } : {}),\n ...(ctx.subagentParentTopicId ? { subagentParentTopicId: ctx.subagentParentTopicId } : {}),\n ...(ctx.threadRootId ? { threadRootId: ctx.threadRootId } : {}),\n cwd: ctx.cwd ?? (ctx.topicId ? resolveTopicWorkspaceDir(ctx.topicId) : process.cwd()),\n agent,\n ...(ctx.model ? { model: ctx.model } : {}),\n ...(ctx.depth !== undefined ? { depth: ctx.depth } : {}),\n ...(ctx.silent !== undefined ? { silent: ctx.silent } : {}),\n ...(ctx.peerBridge ? { peerBridge: ctx.peerBridge } : {}),\n });\n}\n\n// --- Playwright unavailable notifier + per-turn state ---\n//\n// When the playwright manager fails to allocate a long-lived MCP port,\n// the catalog used to fall back to a per-turn stdio chromium that ran as\n// a child of the agent CLI subprocess — which meant Chromium was bound\n// to the agent's process tree and died on cascade-kill. We now skip the\n// browser entry entirely (the playwright entry is omitted from the\n// catalog for that turn) AND surface the gap two ways:\n//\n// 1. `notifyPlaywrightUnavailable` — fire-and-forget callback for the host\n// (telegram bot) to push an alert to the current topic. Throttled\n// per (userId, topic) with a 5-minute cooldown so a flaky\n// manager doesn't spam the chat. Per-process state — restart clears.\n//\n// 2. `consumePlaywrightUnavailable` — the system-prompt builder reads\n// this flag to add an explicit \"Playwright unavailable this turn\"\n// reminder to the agent's user message, so the model knows to\n// route around browser tools instead of hallucinating a call to a\n// tool that was silently removed from the schema list.\n\ntype PlaywrightUnavailableContext = {\n userId: string;\n topic: string | undefined;\n agent: AgentKind | undefined;\n};\n\ntype PlaywrightUnavailableNotifier = (ctx: PlaywrightUnavailableContext) => void;\n\nlet _playwrightUnavailableNotifier: PlaywrightUnavailableNotifier | undefined;\nconst _playwrightUnavailableLastNotifiedAt = new Map<string, number>();\nconst _PLAYWRIGHT_UNAVAILABLE_COOLDOWN_MS = 5 * 60_000;\n\nconst _playwrightUnavailableThisTurn = new Set<string>();\n\nfunction _playwrightUnavailableKey(userId: string, topic: string | undefined): string {\n return `${userId}:${topic ?? \"\"}`;\n}\n\n/**\n * Register the host's \"playwright unavailable\" alert sink. Called once at bot\n * startup. Idempotent — last writer wins.\n */\nexport function setPlaywrightUnavailableNotifier(cb: PlaywrightUnavailableNotifier): void {\n _playwrightUnavailableNotifier = cb;\n}\n\n/**\n * Mark the current turn as missing long-lived Playwright and notify the host.\n * The playwright catalog entry calls this when it is built without a port, but\n * route-level callers can call it earlier after ensurePlaywright fails so the\n * system prompt for the same turn can include the unavailable reminder.\n */\nexport function markPlaywrightUnavailable(ctx: PlaywrightUnavailableContext): void {\n _markPlaywrightUnavailable(ctx);\n}\n\nfunction _markPlaywrightUnavailable(ctx: PlaywrightUnavailableContext): void {\n // Mark unavailable for the next system-prompt build, regardless of\n // notifier presence (the model-side reminder must always fire so the\n // agent doesn't try to call a missing tool).\n _playwrightUnavailableThisTurn.add(_playwrightUnavailableKey(ctx.userId, ctx.topic));\n\n if (!_playwrightUnavailableNotifier) return;\n const key = _playwrightUnavailableKey(ctx.userId, ctx.topic);\n const now = Date.now();\n const last = _playwrightUnavailableLastNotifiedAt.get(key) ?? 0;\n if (now - last < _PLAYWRIGHT_UNAVAILABLE_COOLDOWN_MS) return;\n _playwrightUnavailableLastNotifiedAt.set(key, now);\n try {\n _playwrightUnavailableNotifier(ctx);\n } catch (err) {\n logger.warn({ err }, \"playwright unavailable notifier threw\");\n }\n}\n\n/**\n * Read + clear the \"playwright unavailable this turn\" flag for a\n * (user, group, topic). Used by the system-prompt builder right before\n * the agent query starts. Single consumer pattern — calling more than\n * once per turn returns `false` for the second caller (intended; the\n * reminder only needs to ride one prompt).\n */\nexport function consumePlaywrightUnavailable(userId: string, topic: string | undefined): boolean {\n const key = _playwrightUnavailableKey(userId, topic);\n if (!_playwrightUnavailableThisTurn.has(key)) return false;\n _playwrightUnavailableThisTurn.delete(key);\n return true;\n}\n\n/**\n * Single source of truth for MCP server registration.\n *\n * Each entry declares which scopes it participates in (`dm`, `forum`, `fork`, `cron`)\n * and how to build its spawn config given a context. Public helpers\n * (`getDmMcpServers`, `getForumMcpServers`, `getForkMcpServers`) and the\n * derived forum-name views read from this catalog plus the node-assigned\n * manifest overlay installed below. Adding a built-in MCP server remains a\n * one-line append here instead of touching three places.\n *\n * Conventions:\n * - `scopes` lists every scope the server should appear in by default.\n * - `forumRequired: true` keeps the server even when a forum topic\n * restricts the enabled list via `configure_mcp` (forum scope only).\n * - `build(ctx)` returns the raw transport config (Claude-SDK shape).\n * Codex callers funnel through `toCodexMcpServers` separately.\n *\n * Insertion order is preserved by `Object.entries`, which determines the\n * order of server names in user-facing displays.\n */\n\nexport interface RuntimeMcpBuildContext {\n userId: string;\n /** Product actor identity when it differs from the execution principal. */\n actorUserId?: string;\n /** Hub-asserted rooms the product actor may reach; forwarded into signed tokens. */\n actorTopicScope?: ActorTopicScope;\n /** Hub-issued per-turn remote session-comm grant; session-comm only. */\n remoteSession?: RemoteSessionGrant;\n /** Vault namespace when credentials belong to a different principal. */\n vaultUserId?: string;\n /** \"dm\" for DM scope, topic/session name for forum/fork. */\n session: string;\n /** REST/WS topic id when known. Prefer for authorization/scope checks. */\n topicId?: string;\n /** Direct parent topic id when the current topic is a subagent room. */\n subagentParentTopicId?: string;\n /** REST/WS query id when known. */\n queryId?: string;\n /** Topic id whose wiki memory should be read/written. */\n wikiTopicId?: string;\n agent?: AgentKind;\n cwd?: string;\n model?: string;\n currentUserPrompt?: string;\n depth?: number;\n playwrightPort?: number;\n playwrightCapability?: string;\n bgBashPort?: number;\n autoContinue?: boolean;\n visualTools?: boolean;\n fileDeliveryTools?: boolean;\n silent?: boolean;\n /** Thread this turn answers inside; forwarded to the runtime MCP context. */\n threadRootId?: string;\n peerBridge?: PeerRuntimeBridgeContext;\n}\n\nexport interface RuntimeMcpCatalogEntry {\n scopes: readonly RuntimeMcpScope[];\n /** Forum scope only: cannot be removed via the enabled whitelist. */\n forumRequired?: boolean;\n /**\n * Returns the raw transport spec (Claude-SDK shape), or `null` to\n * signal \"this server is unavailable for this turn — omit it from the\n * catalog entirely.\" Used by the playwright entry when the manager\n * cannot provide a long-lived port.\n */\n build(ctx: RuntimeMcpBuildContext): Record<string, unknown> | null;\n}\n\n// --- Playwright transport builders ---\n\nexport { browserOwnerCapability, buildPlaywrightMcpTransport, CODEX_BROWSER_CAPABILITY_ENV };\n\nexport function browserOwnerForContext(ctx: {\n userId?: string;\n session?: string;\n topicId?: string;\n}): string | undefined {\n if (ctx.topicId) return `topic:${ctx.topicId}`;\n if (ctx.userId && ctx.session) return `user:${ctx.userId}:${ctx.session}`;\n return undefined;\n}\n\nfunction longLivedHttpMcp(agent: AgentKind | undefined, port: number) {\n return agent === \"codex\"\n ? { url: `http://127.0.0.1:${port}/mcp` }\n : { type: \"sse\" as const, url: `http://127.0.0.1:${port}/sse` };\n}\n\n// cua-rs implements Streamable HTTP only; unlike browser-rs, it does not\n// expose the legacy SSE endpoint. The port is installed by the node-owned\n// process manager once its singleton is ready.\nlet cuaRsMcpPort: number | undefined;\n// cua-rs 0.8.0 requires `Authorization: Bearer` on /mcp, because loopback is not\n// an authorization boundary -- any local process, a web page included, could\n// otherwise drive the whole desktop. The node picks the token, hands it to the\n// child as CUA_HTTP_TOKEN, and publishes it here so turns can present it. Kept\n// beside the port because they are one fact: without both, the URL is useless.\nlet cuaRsMcpToken: string | undefined;\n\nexport function setCuaRsMcpPort(port: number | undefined, token?: string): void {\n if (port !== undefined && (!Number.isInteger(port) || port < 1 || port > 65_535)) {\n throw new Error(`invalid cua-rs MCP port: ${port}`);\n }\n cuaRsMcpPort = port;\n cuaRsMcpToken = port === undefined ? undefined : token;\n}\n\nfunction cuaRsHttpMcp(agent: AgentKind | undefined, port: number, token: string | undefined) {\n const url = `http://127.0.0.1:${port}/mcp`;\n // No token means an older cua-rs that does not ask for one. Sending the header\n // anyway would be harmless, but omitting it keeps the config honest about what\n // the running server actually requires.\n const headers = token ? { Authorization: `Bearer ${token}` } : undefined;\n // The shape is otherwise unchanged from before the token existed, including\n // `type` for codex: only the header field is added, and only when there is a\n // token to put in it. Codex spells that field `http_headers`.\n const base = { type: \"http\" as const, url };\n if (!headers) return base;\n return agent === \"codex\" ? { ...base, http_headers: headers } : { ...base, headers };\n}\n\nfunction backgroundBashTransport(\n agent: AgentKind | undefined,\n port: number,\n userId: string,\n topic: string,\n) {\n const capability = bgBashContextCapability(userId, topic);\n const headers = {\n \"X-Background-Bash-User\": userId,\n \"X-Background-Bash-Topic\": topic,\n \"X-Background-Bash-Capability\": capability,\n };\n if (agent === \"codex\") return { url: `http://127.0.0.1:${port}/mcp`, http_headers: headers };\n if (agent === \"maestro\") {\n const query = new URLSearchParams({ user: userId, topic, capability });\n return { type: \"sse\" as const, url: `http://127.0.0.1:${port}/sse?${query}` };\n }\n return { type: \"sse\" as const, url: `http://127.0.0.1:${port}/sse`, headers };\n}\n\n// --- Catalog ---\n\nconst MCP_CATALOG: Record<string, RuntimeMcpCatalogEntry> = {\n playwright: {\n ...commonRuntimeMcpPolicy(\"playwright\"),\n build({ userId, session, topicId, playwrightPort, playwrightCapability, agent }) {\n // Codex and Maestro use Streamable HTTP while Claude uses SSE. Both\n // transports terminate at the same long-lived browser/profile server.\n if (playwrightPort && playwrightCapability) {\n const owner = browserOwnerForContext({ userId, session, topicId });\n if (!owner) return null;\n return buildPlaywrightMcpTransport(playwrightPort, owner, playwrightCapability, agent);\n }\n // No port available — the playwright manager could not allocate one\n // for this turn. The previous behavior was to fall back to a per-turn\n // stdio chromium, but that made Chromium a child of the agent CLI\n // process tree, so cascade-kill on agent exit took the browser down\n // with it (visible in pm2 as \"Chromium died with claude\"). We now\n // omit the playwright entry from this turn's catalog AND fire two\n // side-effects:\n // 1. notify the host so it can push an alert into the current\n // topic (rate-limited 5min per scope key);\n // 2. mark the (user, topic) as \"playwright unavailable\n // this turn\" so the system-prompt builder can tell the model\n // explicitly, instead of letting the model hallucinate a call\n // to a tool whose schema silently vanished.\n _markPlaywrightUnavailable({\n userId,\n topic: session,\n agent,\n });\n return null;\n },\n },\n [RUNTIME_MCP_KEY]: {\n ...commonRuntimeMcpPolicy(\"runtime\"),\n build({\n userId,\n actorUserId,\n actorTopicScope,\n session,\n topicId,\n queryId,\n agent,\n cwd,\n model,\n currentUserPrompt,\n autoContinue,\n visualTools,\n fileDeliveryTools,\n threadRootId,\n peerBridge,\n }) {\n if (!topicId || !agent) return null;\n const switchTargets = explicitAgentSwitchTargets(currentUserPrompt);\n return buildRuntimeMcpSpec(agent, {\n // Runtime tools mutate node-owned state, so authorization stays bound\n // to the canonical execution principal. Keep the product-side human\n // actor separately for attribution instead of replacing the identity\n // that appears in this node's topic participant roster.\n userId,\n ...(actorUserId ? { actorUserId } : {}),\n ...(actorTopicScope ? { actorTopicScope } : {}),\n topicId,\n topicTitle: session,\n queryId,\n cwd: cwd ?? resolveTopicWorkspaceDir(topicId),\n agent,\n model,\n // Derived here, from the full prompt, so the signed token carries the\n // gate's answer (bounded) instead of the prompt (unbounded); see\n // `explicitAgentSwitchTargets`.\n ...(switchTargets.length ? { explicitAgentSwitchTargets: switchTargets } : {}),\n autoContinue,\n visualTools,\n fileDeliveryTools,\n ...(threadRootId ? { threadRootId } : {}),\n peerBridge,\n });\n },\n },\n \"token-stats\": {\n ...commonRuntimeMcpPolicy(\"token-stats\"),\n build(ctx) {\n return buildBuiltinMcpServer(\"token-stats\", ctx, () =>\n buildStdioMcpServer(ctx.agent, TOKEN_STATS_SERVER, [`--user-id=${ctx.userId}`]),\n );\n },\n },\n // Otium-owned shared task system. This is the only authoritative task/todo\n // surface across claude/codex/maestro; provider-native task stores are\n // blocked or ignored because they do not survive agent switches.\n task: {\n ...commonRuntimeMcpPolicy(\"task\"),\n build(ctx) {\n const { userId, session, topicId, queryId, agent, peerBridge } = ctx;\n if (peerBridge) {\n if (!topicId || !queryId) return null;\n const env = canonicalMcpBridgeEnv({\n surface: \"task\",\n userId,\n topicId,\n queryId,\n peerBridge,\n });\n return env\n ? buildStdioMcpServer(agent, CANONICAL_MCP_PROXY_SERVER, [\"--surface=task\"], env)\n : null;\n }\n const args = [`--user-id=${userId}`, `--topic=${session}`];\n if (topicId) args.push(`--topic-id=${topicId}`);\n return buildBuiltinMcpServer(\"task\", ctx, () =>\n buildStdioMcpServer(agent, TASK_SERVER, args),\n );\n },\n },\n decision: {\n ...commonRuntimeMcpPolicy(\"decision\"),\n build(ctx) {\n const { userId, session, topicId, queryId, agent, model, peerBridge } = ctx;\n if (peerBridge) {\n if (!topicId || !queryId) return null;\n const env = canonicalMcpBridgeEnv({\n surface: \"decision\",\n userId,\n topicId,\n queryId,\n peerBridge,\n });\n return env\n ? buildStdioMcpServer(agent, CANONICAL_MCP_PROXY_SERVER, [\"--surface=decision\"], env)\n : null;\n }\n const args = [\n `--user-id=${userId}`,\n `--topic=${session}`,\n `--agent=${agent ?? FALLBACK_AGENT}`,\n ];\n if (topicId) args.push(`--topic-id=${topicId}`);\n if (model) args.push(`--model=${model}`);\n return buildBuiltinMcpServer(\"decision\", ctx, () =>\n buildStdioMcpServer(agent, DECISION_SERVER, args),\n );\n },\n },\n \"session-history\": {\n ...commonRuntimeMcpPolicy(\"session-history\"),\n build(ctx) {\n const { userId, session, topicId, queryId, agent, peerBridge } = ctx;\n if (peerBridge) {\n if (!topicId || !queryId) return null;\n const env = canonicalMcpBridgeEnv({\n surface: \"session-history\",\n userId,\n topicId,\n queryId,\n peerBridge,\n });\n return env\n ? buildStdioMcpServer(\n agent,\n CANONICAL_MCP_PROXY_SERVER,\n [\"--surface=session-history\"],\n env,\n )\n : null;\n }\n const args = [`--user-id=${userId}`, `--topic=${session}`];\n if (topicId) args.push(`--topic-id=${topicId}`);\n return buildBuiltinMcpServer(\"session-history\", ctx, () =>\n buildStdioMcpServer(agent, SESSION_HISTORY_SERVER, args),\n );\n },\n },\n \"session-comm\": {\n // Exposed in `manager` scope as well so the General-topic manager agent\n // can wake fresh-created topics via tell_session/ask_session right after\n // create_topic. Without this, a newly-created topic would stay in the\n // \"fresh-start ready\" state until the user manually visits it.\n ...commonRuntimeMcpPolicy(\"session-comm\"),\n build(ctx) {\n const {\n userId,\n actorUserId,\n actorTopicScope,\n remoteSession,\n session,\n topicId,\n subagentParentTopicId,\n agent,\n depth = 0,\n silent,\n threadRootId,\n peerBridge,\n } = ctx;\n const effectiveAgent = agent ?? FALLBACK_AGENT;\n const cronSessionId = topicId\n ? getRegisteredCronSession(topicId, effectiveAgent)?.sessionId\n : undefined;\n const args = [\n `--user-id=${userId}`,\n ...(actorUserId ? [`--actor-user-id=${actorUserId}`] : []),\n ...(actorTopicScope\n ? [\n `--actor-topic-scope=${encodeActorTopicScopeArg(actorTopicScope)}`,\n // The child does not inherit this process's env; hand it the\n // same freshness window the hosted tools apply.\n `--actor-topic-scope-max-age-ms=${actorTopicScopeMaxAgeMs()}`,\n ]\n : []),\n ...(remoteSession\n ? [`--remote-session-grant=${encodeRemoteSessionGrantArg(remoteSession)}`]\n : []),\n `--topic=${session}`,\n ...(topicId ? [`--topic-id=${topicId}`] : []),\n ...(subagentParentTopicId ? [`--subagent-parent-topic-id=${subagentParentTopicId}`] : []),\n `--depth=${depth}`,\n `--agent=${effectiveAgent}`,\n ...(cronSessionId ? [`--cron-session-id=${cronSessionId}`] : []),\n ...(silent ? [\"--reply-only=true\"] : []),\n // Turn-scoped, like `--peer-host-query-id`: this config is rebuilt for\n // every turn, so an `ask_session` raised inside a thread can record\n // where its answer belongs.\n ...(threadRootId ? [`--thread-root-id=${threadRootId}`] : []),\n ...(peerBridge ? [`--peer-host-query-id=${peerBridge.hostQueryId}`] : []),\n ];\n return buildBuiltinMcpServer(\"session-comm\", ctx, () =>\n buildStdioMcpServer(\n effectiveAgent,\n SESSION_COMM_SERVER,\n args,\n peerBridge ? peerSessionBridgeIpcEnv() : undefined,\n ),\n );\n },\n },\n wiki: {\n ...commonRuntimeMcpPolicy(\"wiki\"),\n build(ctx) {\n const { userId, session, topicId, queryId, wikiTopicId, agent, peerBridge } = ctx;\n if (peerBridge) {\n if (!topicId || !queryId) return null;\n const env = canonicalMcpBridgeEnv({\n surface: \"wiki\",\n userId,\n topicId,\n queryId,\n peerBridge,\n });\n return env\n ? buildStdioMcpServer(agent, CANONICAL_MCP_PROXY_SERVER, [\"--surface=wiki\"], env)\n : null;\n }\n const args = [`--user-id=${userId}`];\n if (topicId) args.push(`--current-topic-id=${topicId}`);\n // Prefer the REST topic id so wiki_write writes filenames and SQLite\n // briefs keyed the same way the topic wiki API reads them.\n const resolvedWikiTopicId =\n wikiTopicId ?? topicId ?? (session !== \"dm\" ? session : undefined);\n if (resolvedWikiTopicId) args.push(`--topic-id=${resolvedWikiTopicId}`);\n args.push(\"--surface=wiki\");\n return buildBuiltinMcpServer(\"wiki\", { ...ctx, wikiTopicId: resolvedWikiTopicId }, () =>\n buildStdioMcpServer(agent, WIKI_SERVER, args),\n );\n },\n },\n skills: {\n ...commonRuntimeMcpPolicy(\"skills\"),\n build(ctx) {\n const { userId, topicId, agent } = ctx;\n const args = [`--user-id=${userId}`, \"--surface=skills\"];\n if (topicId) args.push(`--topic-id=${topicId}`);\n return buildBuiltinMcpServer(\"skills\", ctx, () =>\n buildStdioMcpServer(agent, WIKI_SERVER, args),\n );\n },\n },\n \"system-health\": {\n ...commonRuntimeMcpPolicy(\"system-health\"),\n build(ctx) {\n return buildBuiltinMcpServer(\"system-health\", ctx, () =>\n buildStdioMcpServer(ctx.agent, SYSTEM_HEALTH_SERVER, []),\n );\n },\n },\n \"background-bash\": {\n ...commonRuntimeMcpPolicy(\"background-bash\"),\n build({ agent, bgBashPort, userId, topicId }) {\n // Key the whole pipeline by the canonical topic id: it flows through the\n // capability, the request context, and the completion inbox filename\n // (sessionInboxPath) so the exiting process's output is routed back to\n // the exact originating topic. A title/session fallback would be encoded\n // as if it were an id and the inbox worker would fail to resolve it, so\n // background-bash is simply unavailable without a topic id.\n if (bgBashPort === undefined || !topicId) return null;\n return backgroundBashTransport(agent, bgBashPort, userId, topicId);\n },\n },\n \"agent-health\": {\n ...commonRuntimeMcpPolicy(\"agent-health\"),\n build(ctx) {\n const { userId, agent } = ctx;\n const args = [`--user-id=${userId}`];\n return buildBuiltinMcpServer(\"agent-health\", ctx, () =>\n buildStdioMcpServer(agent, AGENT_HEALTH_SERVER, args),\n );\n },\n },\n vault: {\n ...commonRuntimeMcpPolicy(\"vault\"),\n build(ctx) {\n const { userId, vaultUserId, agent } = ctx;\n // Normal turns use {{KEY}} directly in tool inputs. Keep the Vault MCP\n // surface focused on key discovery; broker tools remain available from\n // the public factory for compatibility but are no longer the default UX.\n const args = [`--user-id=${vaultUserId ?? userId}`];\n if (agent !== \"codex\") args.push(\"--list-only=true\");\n return buildBuiltinMcpServer(\"vault\", { ...ctx, userId: vaultUserId ?? userId }, () =>\n buildStdioMcpServer(agent, VAULT_SERVER, args),\n );\n },\n },\n // macOS desktop control, delegated to maestrojeong/cua-rs rather than\n // reimplemented. The node owns one persistent Streamable HTTP process;\n // turns only receive its loopback URL and must never spawn a stdio copy.\n \"cua-rs\": {\n ...commonRuntimeMcpPolicy(\"cua-rs\"),\n build({ agent }) {\n return cuaRsMcpPort ? cuaRsHttpMcp(agent, cuaRsMcpPort, cuaRsMcpToken) : null;\n },\n },\n};\n\n/**\n * Locate the `cua-rs` binary, or `null` when it is not installed.\n *\n * Checked in order of specificity: an explicit env override for anyone running\n * a local build, then the installer's default target, then `/usr/local/bin`\n * for a `--bin-dir` install. PATH is deliberately not consulted -- the server\n * is spawned by a supervised host process whose PATH is not the user's shell\n * PATH, so a PATH lookup would succeed in a terminal and fail under pm2.\n */\nexport function resolveCuaRsBinary(platform: NodeJS.Platform = process.platform): string | null {\n if (platform !== \"darwin\") return null;\n const candidates = [\n envText(\"NEGOTIUM_CUA_RS_BIN\"),\n join(homedir(), \".local\", \"bin\", \"cua-rs\"),\n \"/usr/local/bin/cua-rs\",\n ].filter((p): p is string => Boolean(p));\n for (const candidate of candidates) {\n try {\n accessSync(candidate, fsConstants.X_OK);\n return candidate;\n } catch {\n // Not there, or not executable. Try the next one.\n }\n }\n return null;\n}\n\n// --- Derived catalog views ---\n\nexport type NodeMcpEntry =\n | { key: string; kind: \"http\"; port: number }\n | {\n key: string;\n kind: \"http-instance\";\n ensurePort: (instanceKey: string) => Promise<number>;\n }\n | { key: string; kind: \"stdio\"; command: string; args?: string[]; env?: Record<string, string> };\n\nlet nodeMcpEntries: NodeMcpEntry[] = [];\nconst resolvedNodeMcpPorts = new WeakMap<\n Extract<NodeMcpEntry, { kind: \"http-instance\" }>,\n Map<string, number>\n>();\n\n/** All forum-eligible MCP server names, in display order. */\nconst allForumMcpServerNames: string[] = [];\nexport const ALL_FORUM_MCP_SERVER_NAMES: readonly string[] = allForumMcpServerNames;\n\n/** Forum servers that cannot be removed via the enabled whitelist. */\nconst requiredForumMcpServers: string[] = [];\nexport const REQUIRED_FORUM_MCP_SERVERS: readonly string[] = requiredForumMcpServers;\n\n/** Forum servers that can be toggled via the enabled whitelist (not required). */\nconst optionalForumMcpServers: string[] = [];\nexport const OPTIONAL_FORUM_MCP_SERVERS: readonly string[] = optionalForumMcpServers;\n\nfunction refreshForumCatalogViews(): void {\n const { all, required, optional } = classifyForumMcpServers(MCP_CATALOG);\n const nodeNames = nodeMcpEntries.map((entry) => entry.key);\n const allWithNodeEntries = [...new Set([...all, ...nodeNames])];\n const optionalWithNodeEntries = [...new Set([...optional, ...nodeNames])];\n allForumMcpServerNames.splice(0, allForumMcpServerNames.length, ...allWithNodeEntries);\n requiredForumMcpServers.splice(0, requiredForumMcpServers.length, ...required);\n optionalForumMcpServers.splice(0, optionalForumMcpServers.length, ...optionalWithNodeEntries);\n}\n\nrefreshForumCatalogViews();\n\n/**\n * Mount one MCP capability supplied by an optional node module.\n *\n * Registration happens once at node startup, never in the per-event hot path.\n * The returned cleanup closure only removes the exact entry installed by this\n * call, making module stop/restart safe.\n */\nexport function registerRuntimeMcpServer(name: string, entry: RuntimeMcpCatalogEntry): () => void {\n const key = name.trim();\n if (!key || !/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(key)) {\n throw new Error(`invalid runtime MCP server name: ${name}`);\n }\n if (MCP_CATALOG[key]) throw new Error(`runtime MCP server already registered: ${key}`);\n MCP_CATALOG[key] = entry;\n refreshForumCatalogViews();\n return () => {\n if (MCP_CATALOG[key] !== entry) return;\n delete MCP_CATALOG[key];\n refreshForumCatalogViews();\n };\n}\n\n/**\n * Format the active MCP config for display (used by get_mcp_config /\n * get_topic_mcp / configure_mcp response).\n *\n * In whitelist mode the DB stores only the user-chosen optional servers;\n * required servers are always active but never written to the whitelist.\n * This helper surfaces that split so the model never confuses \"not in\n * whitelist\" with \"not active\".\n */\nexport function formatMcpStatus(config: {\n enabled: string[] | null;\n extra?: Record<string, unknown>;\n}): string[] {\n const extraNames = Object.keys(config.extra ?? {});\n\n if (config.enabled === null) {\n const total = ALL_FORUM_MCP_SERVER_NAMES.length + extraNames.length;\n return [\n `설정 방식: 기본값 (전체 활성)`,\n `활성 서버 (${total}개): ${[...ALL_FORUM_MCP_SERVER_NAMES, ...extraNames].join(\", \")}`,\n `추가 서버: ${extraNames.length > 0 ? extraNames.join(\", \") : \"없음\"}`,\n ];\n }\n\n // whitelist mode: stored list may or may not include required servers\n // (old entries might have them; new entries won't). Either way, split\n // by required vs optional for display.\n const availableOptional = new Set(OPTIONAL_FORUM_MCP_SERVERS);\n const optionalActive = [...new Set(config.enabled)].filter((name) => availableOptional.has(name));\n const total = REQUIRED_FORUM_MCP_SERVERS.length + optionalActive.length + extraNames.length;\n return [\n `설정 방식: whitelist`,\n `필수 서버 (항상 활성, ${REQUIRED_FORUM_MCP_SERVERS.length}개): ${REQUIRED_FORUM_MCP_SERVERS.join(\", \")}`,\n `선택 서버 (whitelist, ${optionalActive.length}개): ${optionalActive.length > 0 ? optionalActive.join(\", \") : \"없음\"}`,\n `실제 활성 합계: ${total}개`,\n `추가 서버: ${extraNames.length > 0 ? extraNames.join(\", \") : \"없음\"}`,\n ``,\n `선택 가능 서버 전체 (${OPTIONAL_FORUM_MCP_SERVERS.length}개): ${OPTIONAL_FORUM_MCP_SERVERS.join(\", \")}`,\n ];\n}\n\n// --- Builders for each scope ---\n\n// ── Node-assigned MCP servers (mcp-host manifest) ───────────────────\n//\n// The per-node MCP manifest (`negotium mcp add`) lives in @negotium/mcp-host,\n// which depends on core — so core cannot read it directly. Instead the host\n// process resolves the manifest at node start (ensuring long-lived http\n// servers are running and have ports) and installs the result here. Entries\n// then ride every eligible scope's catalog, subject to the same per-topic\n// `enabled` whitelist as optional built-ins.\n\n/** Install the node's assigned MCP servers. Last writer wins (host restart-safe). */\nexport function setNodeMcpServers(entries: NodeMcpEntry[]): void {\n nodeMcpEntries = entries.filter((entry) => !(entry.key in MCP_CATALOG));\n const dropped = entries.length - nodeMcpEntries.length;\n if (dropped > 0) {\n logger.warn({ dropped }, \"setNodeMcpServers: entries shadowing built-in catalog keys ignored\");\n }\n refreshForumCatalogViews();\n}\n\nexport function getNodeMcpServers(): readonly NodeMcpEntry[] {\n return nodeMcpEntries;\n}\n\n/** Prevent host grants from replacing node-owned MCP servers. */\nexport function isReservedRuntimeMcpServerName(name: string): boolean {\n return Object.hasOwn(MCP_CATALOG, name) || nodeMcpEntries.some((entry) => entry.key === name);\n}\n\n/** Host MCP servers that administer the workspace; only a manager room may receive them. */\nconst MANAGER_ONLY_HOST_MCP_NAMES = new Set([\"topic-admin\"]);\n\n/**\n * Why `topic` may not receive host MCP servers named `names`, or null when it\n * may. A manager room takes any of them. An ordinary room takes everything but\n * the manager administration surface, so a host can scope its own tools to a\n * room. A subagent room takes none.\n */\nexport function hostMcpGrantRefusal(\n topic: Pick<TopicDto, \"kind\" | \"isSubagent\">,\n names: readonly string[],\n): string | null {\n if (topic.kind === \"manager\") return null;\n if (topic.isSubagent) return \"hostMcpServers is not allowed for subagent topics\";\n const managerOnly = names.find((name) => MANAGER_ONLY_HOST_MCP_NAMES.has(name));\n return managerOnly ? `${managerOnly} is only allowed for manager topics` : null;\n}\n\nfunction withoutManagerOnlyHostMcpServers(\n hostMcpServers: Record<string, HostMcpServerSpec> | undefined,\n): Record<string, HostMcpServerSpec> | undefined {\n if (!hostMcpServers) return undefined;\n return Object.fromEntries(\n Object.entries(hostMcpServers).filter(([name]) => !MANAGER_ONLY_HOST_MCP_NAMES.has(name)),\n );\n}\n\nfunction mergeHostMcpServers(\n base: Record<string, unknown>,\n hostMcpServers: Record<string, HostMcpServerSpec> | undefined,\n): Record<string, unknown> {\n if (!hostMcpServers) return base;\n for (const name of Object.keys(hostMcpServers)) {\n if (Object.hasOwn(base, name) || isReservedRuntimeMcpServerName(name)) {\n throw new Error(`host MCP server name conflicts with node catalog: ${name}`);\n }\n }\n return { ...base, ...hostMcpServers };\n}\n\nfunction buildNodeMcpSpecs(\n agent: AgentKind | undefined,\n filter: (name: string) => boolean,\n ctx: Pick<RuntimeMcpBuildContext, \"topicId\" | \"userId\" | \"session\">,\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const entry of nodeMcpEntries) {\n if (!filter(entry.key)) continue;\n if (entry.kind === \"http\") {\n out[entry.key] = longLivedHttpMcp(agent, entry.port);\n continue;\n }\n if (entry.kind === \"http-instance\") {\n const port = resolvedNodeMcpPorts.get(entry)?.get(nodeMcpInstanceKey(ctx));\n if (port !== undefined) out[entry.key] = longLivedHttpMcp(agent, port);\n continue;\n }\n out[entry.key] = {\n command: entry.command,\n args: entry.args ?? [],\n ...(entry.env ? { env: entry.env } : {}),\n };\n }\n return out;\n}\n\nfunction nodeMcpInstanceKey(\n ctx: Pick<RuntimeMcpBuildContext, \"topicId\" | \"userId\" | \"session\">,\n): string {\n return ctx.topicId ?? `user:${ctx.userId}:session:${ctx.session}`;\n}\n\n/**\n * Lazily prepare per-topic HTTP manifest entries before a provider resolves\n * its otherwise-synchronous MCP config. One failed custom server is omitted\n * from that turn without taking down the rest of the runtime catalog.\n */\nexport async function prepareNodeMcpServersForQuery(opts: AgentQueryOptions): Promise<void> {\n if (\n opts.toolPolicy ||\n opts.sessionType === \"cron\" ||\n nodeMcpEntries.every((entry) => entry.kind !== \"http-instance\")\n ) {\n return;\n }\n\n const forum = ![\"dm\", \"ephemeral\", \"manager\"].includes(opts.sessionType ?? \"forum\");\n const enabled = opts.mcpEnabled ?? null;\n const instanceKey = nodeMcpInstanceKey({\n topicId: opts.topicId,\n userId: opts.userId || \"local\",\n session: opts.session || \"default\",\n });\n\n await Promise.all(\n nodeMcpEntries.map(async (entry) => {\n if (entry.kind !== \"http-instance\") return;\n if (forum && enabled !== null && !enabled.includes(entry.key)) return;\n let ports = resolvedNodeMcpPorts.get(entry);\n if (!ports) {\n ports = new Map();\n resolvedNodeMcpPorts.set(entry, ports);\n }\n try {\n const port = await entry.ensurePort(instanceKey);\n if (!Number.isInteger(port) || port < 1 || port > 65_535) {\n throw new Error(`invalid port ${port}`);\n }\n ports.set(instanceKey, port);\n } catch (err) {\n ports.delete(instanceKey);\n logger.warn(\n { err, key: entry.key, instanceKey },\n \"node mcp: failed to prepare instance-scoped server\",\n );\n }\n }),\n );\n}\n\nfunction buildScope(\n scope: RuntimeMcpScope,\n ctx: RuntimeMcpBuildContext,\n filter: (name: string) => boolean = () => true,\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const [name, entry] of Object.entries(MCP_CATALOG)) {\n if (!entry.scopes.includes(scope)) continue;\n if (!filter(name)) continue;\n // `null` from build() means \"skip this server for this turn\" —\n // currently used by the playwright entry when no long-lived port\n // is available.\n const spec = entry.build(ctx);\n if (spec === null) continue;\n out[name] = spec;\n }\n // Node-assigned MCPs join every scope except cron (scheduled runs keep the\n // deliberately narrow built-in set).\n if (scope !== \"cron\") {\n Object.assign(out, buildNodeMcpSpecs(ctx.agent, filter, ctx));\n }\n return out;\n}\n\n/** DM session: catalog entries with `dm` scope, no whitelist. */\nexport function getDmMcpServers(opts: {\n userId: string;\n session?: string;\n topicId?: string;\n agent?: AgentKind;\n playwrightPort?: number;\n playwrightCapability?: string;\n}) {\n return buildScope(\"dm\", {\n userId: opts.userId,\n session: opts.session ?? \"dm\",\n topicId: opts.topicId,\n agent: opts.agent,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n });\n}\n\n/**\n * Manager session: lives in the caller's private General API topic. Owns topic CRUD,\n * invite/user admin, and cross-topic MCP toggling through `topic-admin`,\n * plus general utilities. Browser-heavy work belongs in dedicated topics, so\n * Playwright is intentionally excluded here.\n * No whitelist — manager-scope catalog entries are loaded as-is.\n */\nexport function getManagerMcpServers(opts: {\n userId: string;\n actorUserId?: string;\n actorTopicScope?: ActorTopicScope;\n remoteSession?: RemoteSessionGrant;\n session?: string;\n topicId?: string;\n queryId?: string;\n wikiTopicId?: string;\n agent?: AgentKind;\n cwd?: string;\n model?: string;\n currentUserPrompt?: string;\n playwrightPort?: number;\n playwrightCapability?: string;\n autoContinue?: boolean;\n visualTools?: boolean;\n fileDeliveryTools?: boolean;\n}) {\n if (!opts.topicId) {\n throw new Error(\"getManagerMcpServers: private General topicId is required\");\n }\n const topicId = opts.topicId;\n return buildScope(\"manager\", {\n userId: opts.userId,\n actorUserId: opts.actorUserId,\n actorTopicScope: opts.actorTopicScope,\n remoteSession: opts.remoteSession,\n session: opts.session ?? \"General\",\n topicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId ?? topicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.currentUserPrompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n autoContinue: opts.autoContinue,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n });\n}\n\n/**\n * Forum session: catalog entries with `forum` scope.\n * - `enabled === null` → all forum servers.\n * - `enabled` is an array → whitelist; required servers are always included.\n * - `extra` is merged on top, allowing one-off injections per topic.\n */\nexport function getForumMcpServers(opts: {\n userId: string;\n actorUserId?: string;\n actorTopicScope?: ActorTopicScope;\n remoteSession?: RemoteSessionGrant;\n vaultUserId?: string;\n session: string;\n topicId?: string;\n subagentParentTopicId?: string;\n queryId?: string;\n wikiTopicId?: string;\n agent: AgentKind;\n cwd?: string;\n model?: string;\n currentUserPrompt?: string;\n playwrightPort?: number;\n playwrightCapability?: string;\n bgBashPort?: number;\n autoContinue?: boolean;\n visualTools?: boolean;\n fileDeliveryTools?: boolean;\n threadRootId?: string;\n depth?: number;\n enabled?: string[] | null;\n extra?: Record<string, unknown>;\n silent?: boolean;\n peerBridge?: PeerRuntimeBridgeContext;\n}) {\n const {\n userId,\n actorUserId,\n actorTopicScope,\n remoteSession,\n vaultUserId,\n session,\n topicId,\n subagentParentTopicId,\n queryId,\n wikiTopicId,\n agent,\n cwd,\n model,\n currentUserPrompt,\n playwrightPort,\n playwrightCapability,\n depth = 0,\n enabled = null,\n extra = {},\n silent = false,\n bgBashPort,\n autoContinue,\n visualTools,\n fileDeliveryTools,\n threadRootId,\n peerBridge,\n } = opts;\n\n const filter = (name: string) => {\n if (silent && (name === \"task\" || name === \"decision\")) return false;\n if (enabled === null) return true;\n return (\n enabled.includes(name) || (REQUIRED_FORUM_MCP_SERVERS as readonly string[]).includes(name)\n );\n };\n\n const base = buildScope(\n \"forum\",\n {\n userId,\n actorUserId,\n actorTopicScope,\n remoteSession,\n vaultUserId,\n session,\n topicId,\n subagentParentTopicId,\n queryId,\n wikiTopicId,\n agent,\n cwd,\n model,\n currentUserPrompt,\n depth,\n playwrightPort,\n playwrightCapability,\n bgBashPort,\n autoContinue,\n visualTools,\n fileDeliveryTools,\n threadRootId,\n silent,\n peerBridge,\n },\n filter,\n );\n\n return { ...base, ...extra };\n}\n\n/**\n * Cron session: scheduled background run for a concrete API topic. Keep the\n * catalog narrower than forum scope: runtime delivery, topic memory/status,\n * vault utilities and a caller-provided disposable Playwright port.\n */\nexport function getCronMcpServers(opts: {\n userId: string;\n session: string;\n topicId: string;\n queryId?: string;\n wikiTopicId?: string;\n agent: AgentKind;\n cwd?: string;\n model?: string;\n currentUserPrompt?: string;\n playwrightPort?: number;\n playwrightCapability?: string;\n visualTools?: boolean;\n fileDeliveryTools?: boolean;\n}) {\n return buildScope(\"cron\", {\n userId: opts.userId,\n session: opts.session,\n topicId: opts.topicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId ?? opts.topicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.currentUserPrompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n autoContinue: false,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n });\n}\n\n/**\n * Pick the right MCP server bundle for an agent query. DM/ephemeral sessions\n * get the DM bundle; forum sessions get the forum bundle with full options\n * forwarded. Returned shape is the Claude-SDK shape; Codex callers funnel it\n * through their own translator (`toCodexMcpServers`).\n */\nexport function getMcpServersForQuery(opts: AgentQueryOptions): Record<string, unknown> {\n if (opts.toolPolicy === \"none\") return {};\n if (opts.toolPolicy === \"compaction-log\") {\n const compactLog = opts.mcpExtra?.compact_log;\n return compactLog ? { compact_log: compactLog } : {};\n }\n if (opts.sessionType === \"cron\") {\n if (!opts.topicId) throw new Error(\"getMcpServersForQuery: cron sessionType requires topicId\");\n return hideProviderIntrospectionForOtium(\n getCronMcpServers({\n userId: opts.userId || \"local\",\n session: opts.session || \"cron\",\n topicId: opts.topicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.prompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n }),\n opts.topicId,\n );\n }\n if (opts.sessionType === \"dm\" || opts.sessionType === \"ephemeral\") {\n return getDmMcpServers({\n userId: opts.userId || \"local\",\n session: opts.session,\n topicId: opts.topicId,\n agent: opts.agent,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n });\n }\n if (opts.sessionType === \"manager\") {\n return hideProviderIntrospectionForOtium(\n mergeHostMcpServers(\n getManagerMcpServers({\n userId: opts.userId || \"local\",\n actorUserId: opts.actorUserId,\n actorTopicScope: opts.actorTopicScope,\n remoteSession: opts.remoteSession,\n session: opts.session,\n topicId: opts.topicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.prompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n autoContinue: opts.autoContinue,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n }),\n opts.hostMcpServers,\n ),\n opts.topicId,\n );\n }\n return hideProviderIntrospectionForOtium(\n mergeHostMcpServers(\n getForumMcpServers({\n userId: opts.userId || \"local\",\n actorUserId: opts.actorUserId,\n actorTopicScope: opts.actorTopicScope,\n remoteSession: opts.remoteSession,\n vaultUserId: opts.vaultUserId,\n session: opts.session || \"default\",\n topicId: opts.topicId,\n subagentParentTopicId: opts.subagentParentTopicId,\n queryId: opts.queryId,\n wikiTopicId: opts.wikiTopicId,\n agent: opts.agent,\n cwd: opts.cwd,\n model: opts.model,\n currentUserPrompt: opts.prompt,\n playwrightPort: opts.playwrightPort,\n playwrightCapability: opts.playwrightCapability,\n bgBashPort: opts.bgBashPort,\n autoContinue: opts.autoContinue,\n visualTools: opts.visualTools,\n fileDeliveryTools: opts.fileDeliveryTools,\n threadRootId: opts.threadRootId,\n depth: opts.depth,\n enabled: opts.mcpEnabled,\n extra: opts.mcpExtra,\n silent: opts.silent,\n peerBridge: opts.peerBridge,\n }),\n withoutManagerOnlyHostMcpServers(opts.hostMcpServers),\n ),\n opts.topicId,\n );\n}\n\nfunction hideProviderIntrospectionForOtium(\n servers: Record<string, unknown>,\n topicId: string | undefined,\n): Record<string, unknown> {\n if (!topicId || getTopic(topicId)?.surface !== \"otium\") return servers;\n const filtered = { ...servers };\n delete filtered[\"agent-health\"];\n delete filtered[\"token-stats\"];\n return filtered;\n}\n",
34
34
  "import { createCipheriv, createDecipheriv, createHash, randomBytes } from \"node:crypto\";\n\nconst ENVELOPE_PREFIX = \"otium-vault:v1:\";\nconst IV_BYTES = 12;\nconst KEY_BYTES = 32;\n\nfunction encryptionKey(masterKey: string): Buffer {\n return createHash(\"sha256\")\n .update(\"otium-vault-value-v1\\0\", \"utf8\")\n .update(masterKey, \"utf8\")\n .digest()\n .subarray(0, KEY_BYTES);\n}\n\nfunction aad(userId: string, key: string): Buffer {\n return Buffer.from(`${userId}\\0${key.toUpperCase()}`, \"utf8\");\n}\n\nexport function isEncryptedVaultValue(value: string): boolean {\n return value.startsWith(ENVELOPE_PREFIX);\n}\n\nexport function encryptVaultValueWithKey(\n userId: string,\n key: string,\n value: string,\n masterKey: string,\n): string {\n const iv = randomBytes(IV_BYTES);\n const cipher = createCipheriv(\"aes-256-gcm\", encryptionKey(masterKey), iv);\n cipher.setAAD(aad(userId, key));\n const ciphertext = Buffer.concat([cipher.update(value, \"utf8\"), cipher.final()]);\n const tag = cipher.getAuthTag();\n return `${ENVELOPE_PREFIX}${iv.toString(\"base64url\")}.${ciphertext.toString(\"base64url\")}.${tag.toString(\"base64url\")}`;\n}\n\nexport function decryptVaultValueWithKey(\n userId: string,\n key: string,\n storedValue: string,\n masterKey: string,\n): { value: string; legacyPlaintext: boolean } {\n if (!isEncryptedVaultValue(storedValue)) {\n return { value: storedValue, legacyPlaintext: true };\n }\n\n const encoded = storedValue.slice(ENVELOPE_PREFIX.length);\n const [ivPart, ciphertextPart, tagPart, ...extra] = encoded.split(\".\");\n if (!ivPart || ciphertextPart === undefined || !tagPart || extra.length > 0) {\n throw new Error(\"Invalid encrypted vault value\");\n }\n\n const iv = Buffer.from(ivPart, \"base64url\");\n const ciphertext = Buffer.from(ciphertextPart, \"base64url\");\n const tag = Buffer.from(tagPart, \"base64url\");\n if (iv.length !== IV_BYTES || tag.length !== 16) {\n throw new Error(\"Invalid encrypted vault value\");\n }\n\n const decipher = createDecipheriv(\"aes-256-gcm\", encryptionKey(masterKey), iv);\n decipher.setAAD(aad(userId, key));\n decipher.setAuthTag(tag);\n const plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]);\n return { value: plaintext.toString(\"utf8\"), legacyPlaintext: false };\n}\n",
35
35
  "import { VAULT_MASTER_KEY } from \"#platform/config\";\nimport {\n decryptVaultValueWithKey,\n encryptVaultValueWithKey,\n isEncryptedVaultValue,\n} from \"#storage/vault-crypto-core\";\n\nexport { isEncryptedVaultValue };\n\n/** Encrypt one vault row. The user/key binding prevents ciphertext row swapping. */\nexport function encryptVaultValue(\n userId: string,\n key: string,\n value: string,\n masterKey = VAULT_MASTER_KEY,\n): string {\n return encryptVaultValueWithKey(userId, key, value, masterKey);\n}\n\n/**\n * Decrypt a stored value. Plaintext rows are accepted for rolling upgrades and\n * are re-encrypted by the storage layer immediately after a successful read.\n */\nexport function decryptVaultValue(\n userId: string,\n key: string,\n storedValue: string,\n masterKey = VAULT_MASTER_KEY,\n): { value: string; legacyPlaintext: boolean } {\n return decryptVaultValueWithKey(userId, key, storedValue, masterKey);\n}\n",
36
36
  "import { chmodSync, mkdirSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { VAULT_MASTER_KEY } from \"#platform/config\";\nimport { closeDatabase, Database } from \"#storage/sqlite\";\nimport { resolveStorageDataDir } from \"#storage/storage-host\";\nimport { decryptVaultValue, encryptVaultValue, isEncryptedVaultValue } from \"#storage/vault-crypto\";\n\nexport type VaultDatabase = Pick<InstanceType<typeof Database>, \"exec\" | \"prepare\">;\n\nexport interface VaultStorageOptions {\n database?: VaultDatabase;\n dataDir?: string;\n masterKey?: string;\n /** Prior keys rows may still be encrypted under; migrated onto `masterKey`. */\n legacyMasterKeys?: readonly string[];\n}\n\nlet vaultDb: VaultDatabase | undefined;\nlet vaultMasterKey = VAULT_MASTER_KEY;\n\nfunction initializeVaultDatabase(database: VaultDatabase): void {\n database.exec(\"PRAGMA journal_mode = WAL\");\n database.exec(\"PRAGMA busy_timeout = 5000\");\n database.exec(`\n CREATE TABLE IF NOT EXISTS vault (\n user_id TEXT NOT NULL,\n key TEXT NOT NULL,\n value TEXT NOT NULL,\n description TEXT NOT NULL DEFAULT '',\n PRIMARY KEY (user_id, key)\n )\n `);\n\n // Migrate legacy schema where user_id was INTEGER (Telegram numeric ids only).\n // The Otium API authenticates with string user ids (\"otium-user-…\"), so user_id\n // is now TEXT for every channel. Rebuild + CAST existing rows so old Telegram\n // secrets survive; idempotent (no-op once user_id is already TEXT).\n {\n const cols = database.prepare(\"PRAGMA table_info(vault)\").all() as {\n name: string;\n type: string;\n }[];\n const uid = cols.find((c) => c.name === \"user_id\");\n if (uid && uid.type.toUpperCase() === \"INTEGER\") {\n database.exec(\"BEGIN\");\n database.exec(`\n CREATE TABLE vault_migrated (\n user_id TEXT NOT NULL,\n key TEXT NOT NULL,\n value TEXT NOT NULL,\n description TEXT NOT NULL DEFAULT '',\n PRIMARY KEY (user_id, key)\n )\n `);\n database.exec(\n \"INSERT INTO vault_migrated SELECT CAST(user_id AS TEXT), key, value, description FROM vault\",\n );\n database.exec(\"DROP TABLE vault\");\n database.exec(\"ALTER TABLE vault_migrated RENAME TO vault\");\n database.exec(\"COMMIT\");\n }\n }\n}\n\nfunction openVaultDatabase(dataDir: string): VaultDatabase {\n const vaultDir = join(dataDir, \"vault\");\n const path = join(vaultDir, \"vault.db\");\n mkdirSync(vaultDir, { recursive: true, mode: 0o700 });\n const database = new Database(path, { create: true });\n // Defense in depth: the database and its sidecars are owner-only, while each\n // value is also encrypted independently by vault-crypto.\n chmodSync(path, 0o600);\n initializeVaultDatabase(database);\n return database;\n}\n\nfunction activeVaultDatabase(): VaultDatabase {\n if (!vaultDb) {\n // `resolveStorageDataDir()`, not the import-time `DATA_DIR` constant: an\n // embedding host configures its data directory during bootstrap, and any\n // vault access that happens before `configureVaultStorage()` runs would\n // otherwise pin the vault to Negotium's own state directory for the life of\n // the process — silently, since both paths are valid and writable.\n vaultDb = openVaultDatabase(resolveStorageDataDir());\n }\n return vaultDb;\n}\n\n/** Re-encrypts rows only readable under `legacyKeys` onto `targetKey`, atomically. */\nfunction migrateLegacyMasterKeys(\n database: VaultDatabase,\n targetKey: string,\n legacyKeys: readonly string[],\n): void {\n if (legacyKeys.length === 0) return;\n const rows = database.prepare(\"SELECT user_id, key, value FROM vault\").all() as {\n user_id: string;\n key: string;\n value: string;\n }[];\n\n const rewrites: { userId: string; key: string; newValue: string }[] = [];\n for (const row of rows) {\n if (!isEncryptedVaultValue(row.value)) continue; // plaintext rows are handled by decryptRow()\n try {\n decryptVaultValue(row.user_id, row.key, row.value, targetKey);\n continue; // already readable under the target key\n } catch {\n // fall through to legacy recovery below\n }\n let recovered: string | undefined;\n for (const legacyKey of legacyKeys) {\n try {\n recovered = decryptVaultValue(row.user_id, row.key, row.value, legacyKey).value;\n break;\n } catch {\n // try the next legacy key\n }\n }\n if (recovered === undefined) {\n throw new Error(\n `vault migration: row \"${row.key}\" cannot be authenticated with the target master key or any legacy key`,\n );\n }\n rewrites.push({\n userId: row.user_id,\n key: row.key,\n newValue: encryptVaultValue(row.user_id, row.key, recovered, targetKey),\n });\n }\n if (rewrites.length === 0) return;\n\n database.exec(\"BEGIN IMMEDIATE\");\n try {\n const update = database.prepare(\"UPDATE vault SET value = ? WHERE user_id = ? AND key = ?\");\n for (const rewrite of rewrites) update.run(rewrite.newValue, rewrite.userId, rewrite.key);\n database.exec(\"COMMIT\");\n } catch (error) {\n database.exec(\"ROLLBACK\");\n throw error;\n }\n}\n\n/** Configure process-wide vault storage during embedding-host bootstrap. */\nexport function configureVaultStorage(options: VaultStorageOptions): () => void {\n if (options.database && options.dataDir) {\n throw new Error(\"configureVaultStorage accepts either database or dataDir, not both\");\n }\n const previousDb = vaultDb;\n const previousMasterKey = vaultMasterKey;\n const configuredDb =\n options.database ?? openVaultDatabase(options.dataDir ?? resolveStorageDataDir());\n const targetKey = options.masterKey ?? VAULT_MASTER_KEY;\n try {\n if (options.database) initializeVaultDatabase(configuredDb);\n if (options.legacyMasterKeys && options.legacyMasterKeys.length > 0) {\n migrateLegacyMasterKeys(configuredDb, targetKey, options.legacyMasterKeys);\n }\n } catch (error) {\n // A failed migration must not leak the connection this call opened: there\n // is no dispose to hand back, so nothing else can ever close it. Only a\n // database we opened ourselves is ours to close — an injected one is\n // borrowed.\n if (!options.database) {\n closeDatabase(configuredDb as VaultDatabase & { close(throwOnError?: boolean): void });\n }\n throw error;\n }\n vaultDb = configuredDb;\n vaultMasterKey = targetKey;\n let disposed = false;\n return () => {\n if (disposed) return;\n disposed = true;\n if (!options.database && \"close\" in configuredDb) {\n closeDatabase(configuredDb as VaultDatabase & { close(throwOnError?: boolean): void });\n }\n vaultDb = previousDb;\n vaultMasterKey = previousMasterKey;\n };\n}\n\nexport interface VaultEntry {\n key: string;\n description: string;\n}\n\nexport interface VaultEntryWithValue extends VaultEntry {\n value: string;\n}\n\nexport const VAULT_KEY_PATTERN = /^[A-Z][A-Z0-9_]{0,127}$/;\nexport const VAULT_VALUE_MIN_BYTES = 4;\nexport const VAULT_VALUE_MAX_BYTES = 64 * 1024;\nexport const VAULT_DESCRIPTION_MAX_LENGTH = 500;\n\nexport function normalizeVaultKey(key: string): string {\n return key.trim().toUpperCase();\n}\n\nexport function validateVaultKey(key: string): boolean {\n return VAULT_KEY_PATTERN.test(normalizeVaultKey(key));\n}\n\nfunction decryptRow(userId: string, key: string, storedValue: string): string {\n const database = activeVaultDatabase();\n const decoded = decryptVaultValue(userId, key, storedValue, vaultMasterKey);\n if (decoded.legacyPlaintext) {\n database\n .prepare(\"UPDATE vault SET value = ? WHERE user_id = ? AND key = ? AND value = ?\")\n .run(encryptVaultValue(userId, key, decoded.value, vaultMasterKey), userId, key, storedValue);\n }\n return decoded.value;\n}\n\nexport function vaultListWithValues(userId: string): VaultEntryWithValue[] {\n const rows = activeVaultDatabase()\n .prepare(\"SELECT key, description, value FROM vault WHERE user_id = ? ORDER BY key\")\n .all(userId) as VaultEntryWithValue[];\n return rows.map((row) => ({\n key: row.key,\n description: row.description,\n value: decryptRow(userId, row.key, row.value),\n }));\n}\n\n/**\n * Return only rows that can still be authenticated with the active master key.\n *\n * This is intentionally limited to redaction indexes: one damaged credential\n * must not disable unrelated tools, while direct access to that credential\n * continues to fail closed through vaultGetValue().\n */\nexport function vaultListDecryptableValues(userId: string): VaultEntryWithValue[] {\n const rows = activeVaultDatabase()\n .prepare(\"SELECT key, description, value FROM vault WHERE user_id = ? ORDER BY key\")\n .all(userId) as VaultEntryWithValue[];\n const entries: VaultEntryWithValue[] = [];\n for (const row of rows) {\n try {\n entries.push({\n key: row.key,\n description: row.description,\n value: decryptRow(userId, row.key, row.value),\n });\n } catch {\n // A value that cannot be authenticated cannot be exposed by substitution,\n // so there is no plaintext form available to add to the redaction index.\n }\n }\n return entries;\n}\n\nexport function vaultSet(userId: string, key: string, value: string, description = \"\"): void {\n const normalizedKey = normalizeVaultKey(key);\n activeVaultDatabase()\n .prepare(\n `INSERT INTO vault (user_id, key, value, description) VALUES (?, ?, ?, ?)\n ON CONFLICT (user_id, key) DO UPDATE\n SET value = excluded.value, description = excluded.description`,\n )\n .run(\n userId,\n normalizedKey,\n encryptVaultValue(userId, normalizedKey, value, vaultMasterKey),\n description,\n );\n}\n\nexport function vaultHasKey(userId: string, key: string): boolean {\n const row = activeVaultDatabase()\n .prepare(\"SELECT 1 FROM vault WHERE user_id = ? AND key = ?\")\n .get(userId, normalizeVaultKey(key));\n return row != null;\n}\n\nexport function vaultDel(userId: string, key: string): boolean {\n const result = activeVaultDatabase()\n .prepare(\"DELETE FROM vault WHERE user_id = ? AND key = ?\")\n .run(userId, normalizeVaultKey(key)) as { changes: number };\n return result.changes > 0;\n}\n\nexport function vaultDeleteAllForUser(userId: string): number {\n const result = activeVaultDatabase()\n .prepare(\"DELETE FROM vault WHERE user_id = ?\")\n .run(userId) as {\n changes: number;\n };\n return result.changes;\n}\n\nexport function vaultList(userId: string): VaultEntry[] {\n return activeVaultDatabase()\n .prepare(\"SELECT key, description FROM vault WHERE user_id = ? ORDER BY key\")\n .all(userId) as VaultEntry[];\n}\n\nexport function vaultGetValue(userId: string, key: string): string | undefined {\n const normalizedKey = normalizeVaultKey(key);\n const row = activeVaultDatabase()\n .prepare(\"SELECT key, value FROM vault WHERE user_id = ? AND key = ?\")\n .get(userId, normalizedKey) as { key: string; value: string } | undefined;\n return row ? decryptRow(userId, row.key, row.value) : undefined;\n}\n\nexport interface VaultSubstitutionResult {\n text: string;\n usedKeys: string[];\n}\n\n/** Replace {{KEY}} placeholders and report which credentials were consumed. */\nexport function vaultSubstituteDetailed(userId: string, text: string): VaultSubstitutionResult {\n const entries = new Map<string, string | undefined>();\n const usedKeys = new Set<string>();\n const substituted = text.replace(/\\{\\{([^}]+)\\}\\}/g, (match, rawKey: string) => {\n const key = normalizeVaultKey(rawKey);\n if (!entries.has(key)) entries.set(key, vaultGetValue(userId, key));\n const value = entries.get(key);\n if (value === undefined) return match;\n usedKeys.add(key);\n return value;\n });\n return { text: substituted, usedKeys: [...usedKeys] };\n}\n\n/** Detect real {{KEY}} references without decrypting any Vault values. */\nexport function valueReferencesVaultKey(userId: string, value: unknown): boolean {\n const keys = new Set(vaultList(userId).map((entry) => entry.key));\n const visit = (candidate: unknown): boolean => {\n if (typeof candidate === \"string\") {\n for (const match of candidate.matchAll(/\\{\\{([^}]+)\\}\\}/g)) {\n if (keys.has(normalizeVaultKey(match[1] ?? \"\"))) return true;\n }\n return false;\n }\n if (Array.isArray(candidate)) return candidate.some(visit);\n if (candidate && typeof candidate === \"object\") {\n return Object.values(candidate as Record<string, unknown>).some(visit);\n }\n return false;\n };\n return visit(value);\n}\n\nfunction encodedSecretForms(value: string): string[] {\n const forms = new Set<string>([\n value,\n encodeURIComponent(value),\n Buffer.from(value, \"utf8\").toString(\"base64\"),\n Buffer.from(value, \"utf8\").toString(\"base64url\"),\n Buffer.from(value, \"utf8\").toString(\"hex\"),\n ]);\n forms.delete(\"\");\n return [...forms].sort((a, b) => b.length - a.length);\n}\n\n/** Scrub raw and common encoded forms before tool output reaches a model. */\nexport function redactVaultSecrets(userId: string, text: string): string {\n const candidates = vaultListDecryptableValues(userId)\n .flatMap((entry) => encodedSecretForms(entry.value).map((form) => ({ form, key: entry.key })))\n .sort((a, b) => b.form.length - a.form.length || a.key.localeCompare(b.key));\n if (candidates.length === 0) return text;\n const candidatesByFirstCharacter = new Map<string, typeof candidates>();\n for (const candidate of candidates) {\n const first = candidate.form[0];\n if (!first) continue;\n const bucket = candidatesByFirstCharacter.get(first) ?? [];\n bucket.push(candidate);\n candidatesByFirstCharacter.set(first, bucket);\n }\n\n let redacted = \"\";\n let offset = 0;\n while (offset < text.length) {\n const match = candidatesByFirstCharacter\n .get(text[offset] ?? \"\")\n ?.find((candidate) => text.startsWith(candidate.form, offset));\n if (!match) {\n redacted += text[offset];\n offset += 1;\n continue;\n }\n redacted += `[REDACTED:${match.key}]`;\n offset += match.form.length;\n }\n return redacted;\n}\n",
@@ -43,7 +43,7 @@
43
43
  "/**\n * Claude rollout encoder.\n *\n * Materializes a synthetic JSONL at `~/.claude/projects/<encoded-cwd>/<sessionId>.jsonl`\n * so a subsequent `claude.query({ resume: sessionId })` continues the\n * cross-agent conversation as if it had always been native. Verified by\n * sandbox PoCs (test-7c/test-7d): the SDK accepts these without checksum\n * gating, requiring only `user`/`assistant` messages and a small per-turn\n * attachment chain captured into `agents/fixtures/claude-attachments.jsonl`.\n *\n * Tool history is folded into assistant text as `[Tool: ...]` annotations\n * (see shared.ts:extractChatPairs) — synthetic tool_use IDs across SDKs are\n * too fragile to reconstruct structurally.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport {\n assertUuidLike,\n type ChatPair,\n clone,\n ensureCwdExists,\n extractChatPairs,\n FIXTURES_DIR,\n} from \"#agents/rollout/shared\";\nimport { parseJsonlText, writeJsonlFile } from \"#platform/jsonl\";\nimport { logger } from \"#platform/logger\";\nimport type { ConversationEntry } from \"#storage/conversations\";\n\ninterface ClaudeAttachments {\n deferredToolsDelta: Record<string, unknown>;\n skillListing: Record<string, unknown>;\n}\n\nlet _attachmentsCache: ClaudeAttachments | null = null;\nfunction loadClaudeAttachments(): ClaudeAttachments {\n if (_attachmentsCache) return _attachmentsCache;\n const raw = readFileSync(join(FIXTURES_DIR, \"claude-attachments.jsonl\"), \"utf8\");\n const lines = parseJsonlText<Record<string, unknown>>(raw);\n if (lines.length < 2) {\n throw new Error(\n `loadClaudeAttachments: expected >=2 entries in claude-attachments.jsonl, got ${lines.length}`,\n );\n }\n _attachmentsCache = {\n deferredToolsDelta: lines[0],\n skillListing: lines[1],\n };\n return _attachmentsCache;\n}\n\n/**\n * Version strings stamped onto synthetic rollouts so they look indistinguishable\n * from a live SDK session. These do not affect resume behavior — the SDKs do\n * not gate on them — but keeping them current avoids confusion in observability\n * tooling that scans rollout files.\n */\nconst CLAUDE_SDK_VERSION = \"2.1.126\";\nconst CLAUDE_DEFAULT_MODEL = \"claude-sonnet-5\";\nconst CLAUDE_DEFAULT_GIT_BRANCH = \"HEAD\";\n\n/**\n * Encode a directory path the way Claude SDK expects in\n * `~/.claude/projects/<encoded-cwd>/`. macOS resolves `/tmp` to\n * `/private/tmp`, mirroring what the SDK records.\n *\n * The SDK normalizes ANY non-alphanumeric character to `-` (verified\n * empirically on disk: `/Users/maestrobot/.../user_6407801418` →\n * `-Users-...-user-6407801418`, i.e. both `/` AND `_` collapse to `-`).\n * A previous implementation only replaced `/` and left `_` intact, so\n * synthetic rollouts landed at `…-user_6407801418/` while the SDK looked\n * at `…-user-6407801418/` — every `set_agent` switch surfaced as \"No\n * conversation found with session ID\" on the next message.\n *\n * Nothing is prepended: a POSIX path starts with `/`, which already becomes\n * the leading `-`. A Windows path does not, and the SDK writes\n * `C:\\Users\\x` as `C--Users-x`; forcing a `-` in front sent Windows rollouts\n * to `-C--Users-x/`, where the SDK never looks.\n */\nexport function encodeClaudeCwd(cwd: string): string {\n const realCwd = cwd.startsWith(\"/tmp/\") ? cwd.replace(/^\\/tmp\\//, \"/private/tmp/\") : cwd;\n return realCwd.replaceAll(/[^a-zA-Z0-9]/g, \"-\");\n}\n\nexport interface ClaudeRolloutOptions {\n /** Working directory the resumed Claude session will report. */\n cwd: string;\n /** Optional override; default = freshly generated UUIDv4. */\n sessionId?: string;\n /**\n * Pairs to encode. If omitted, derived from `entries` via extractChatPairs.\n * Pass explicit pairs when the caller has already shaped the dialogue.\n */\n pairs?: ChatPair[];\n /** When `pairs` is omitted, the source UnifiedEvent log to digest. */\n entries?: ConversationEntry[];\n /** Full provider model id stamped on synthesized assistant history. */\n model?: string;\n}\n\nexport interface ClaudeRolloutResult {\n sessionId: string;\n rolloutPath: string;\n}\n\n/**\n * Materialize a Claude rollout JSONL with the provided dialogue and place it\n * at `~/.claude/projects/<encoded-cwd>/<sessionId>.jsonl` so a subsequent\n * `claude.query({ resume: sessionId })` will continue the conversation.\n */\nexport function writeClaudeRollout(opts: ClaudeRolloutOptions): ClaudeRolloutResult {\n const sessionId = opts.sessionId ?? randomUUID();\n assertUuidLike(\"sessionId\", sessionId);\n ensureCwdExists(opts.cwd);\n const pairs = opts.pairs ?? extractChatPairs(opts.entries ?? []);\n const cwdReal = opts.cwd.startsWith(\"/tmp/\")\n ? opts.cwd.replace(/^\\/tmp\\//, \"/private/tmp/\")\n : opts.cwd;\n\n const lines: unknown[] = [];\n const ts = () => new Date().toISOString();\n let lastUuid: string | null = null;\n\n // Queue-operation noise that the live SDK records around each turn. Not\n // strictly required for resume but mirrors what the SDK itself writes,\n // keeping the synthetic file indistinguishable.\n lines.push({ type: \"queue-operation\", operation: \"enqueue\", timestamp: ts(), sessionId });\n lines.push({ type: \"queue-operation\", operation: \"dequeue\", timestamp: ts(), sessionId });\n\n // Per-turn attachment chain captured from a real Claude rollout. claude SDK\n // emits `deferred_tools_delta` followed by `skill_listing` immediately after\n // every user message, building a parentUuid chain user → att1 → att2 →\n // assistant. PoC-7d preserved this shape; replaying it keeps the resumed\n // session indistinguishable from a native one.\n const attachments = loadClaudeAttachments();\n\n for (const pair of pairs) {\n const userUuid = randomUUID();\n lines.push({\n parentUuid: lastUuid,\n isSidechain: false,\n promptId: randomUUID(),\n type: \"user\",\n message: { role: \"user\", content: [{ type: \"text\", text: pair.userText }] },\n uuid: userUuid,\n timestamp: ts(),\n permissionMode: \"bypassPermissions\",\n userType: \"external\",\n entrypoint: \"sdk-ts\",\n cwd: cwdReal,\n sessionId,\n version: CLAUDE_SDK_VERSION,\n gitBranch: CLAUDE_DEFAULT_GIT_BRANCH,\n });\n\n // Attachment 1: deferred_tools_delta — chain from user.\n const att1Uuid = randomUUID();\n const att1 = clone(attachments.deferredToolsDelta);\n (att1 as Record<string, unknown>).parentUuid = userUuid;\n (att1 as Record<string, unknown>).uuid = att1Uuid;\n (att1 as Record<string, unknown>).timestamp = ts();\n (att1 as Record<string, unknown>).sessionId = sessionId;\n (att1 as Record<string, unknown>).cwd = cwdReal;\n lines.push(att1);\n\n // Attachment 2: skill_listing — chain from att1.\n const att2Uuid = randomUUID();\n const att2 = clone(attachments.skillListing);\n (att2 as Record<string, unknown>).parentUuid = att1Uuid;\n (att2 as Record<string, unknown>).uuid = att2Uuid;\n (att2 as Record<string, unknown>).timestamp = ts();\n (att2 as Record<string, unknown>).sessionId = sessionId;\n (att2 as Record<string, unknown>).cwd = cwdReal;\n lines.push(att2);\n\n const assistantUuid = randomUUID();\n lines.push({\n parentUuid: att2Uuid,\n isSidechain: false,\n message: {\n model: opts.model ?? CLAUDE_DEFAULT_MODEL,\n id: `msg_${randomUUID().replace(/-/g, \"\").slice(0, 24)}`,\n type: \"message\",\n role: \"assistant\",\n content: [{ type: \"text\", text: pair.assistantText }],\n stop_reason: \"end_turn\",\n stop_sequence: null,\n stop_details: null,\n usage: {\n input_tokens: 0,\n cache_creation_input_tokens: 0,\n cache_read_input_tokens: 0,\n output_tokens: 0,\n server_tool_use: { web_search_requests: 0, web_fetch_requests: 0 },\n service_tier: \"standard\",\n cache_creation: { ephemeral_1h_input_tokens: 0, ephemeral_5m_input_tokens: 0 },\n inference_geo: \"\",\n iterations: [],\n speed: \"standard\",\n },\n diagnostics: null,\n },\n requestId: `req_${randomUUID().replace(/-/g, \"\").slice(0, 22)}`,\n type: \"assistant\",\n uuid: assistantUuid,\n timestamp: ts(),\n userType: \"external\",\n entrypoint: \"sdk-ts\",\n cwd: cwdReal,\n sessionId,\n version: CLAUDE_SDK_VERSION,\n gitBranch: CLAUDE_DEFAULT_GIT_BRANCH,\n });\n lastUuid = assistantUuid;\n }\n\n const projectsDir = join(homedir(), \".claude\", \"projects\", encodeClaudeCwd(opts.cwd));\n const path = join(projectsDir, `${sessionId}.jsonl`);\n writeJsonlFile(path, lines);\n logger.info(\n { sessionId, path, pairs: pairs.length },\n \"writeClaudeRollout: synthetic rollout placed\",\n );\n return { sessionId, rolloutPath: path };\n}\n\n/**\n * Remove the latest poisoned thinking turn and everything after it from the\n * session JSONL.\n *\n * When a turn ends with stop_reason=\"max_tokens\" while extended thinking is\n * active, the Claude CLI writes the truncated thinking block verbatim to the\n * rollout file. The Anthropic API rejects any subsequent resume that replays\n * this incomplete block with 400 \"thinking/redacted_thinking blocks cannot be\n * modified\". Dropping the entire poisoned turn (user entry + attachments +\n * truncated assistant) leaves the JSONL in a clean state so the next\n * claude.query({ resume }) can proceed without a 400.\n *\n * Returns true when the JSONL was found and repaired, false otherwise\n * (file missing, no poisoned assistant turn found, I/O error). Error-path\n * callers fall back to clearing the session ID when false is returned.\n */\nexport function repairPoisonedRollout(sessionId: string, cwd: string): boolean {\n try {\n const path = join(homedir(), \".claude\", \"projects\", encodeClaudeCwd(cwd), `${sessionId}.jsonl`);\n if (!existsSync(path)) return false;\n\n const lines = readFileSync(path, \"utf8\")\n .split(\"\\n\")\n .filter((l) => l.trim());\n\n // Walk backwards to find the latest assistant turn that actually contains\n // the poisoned shape: max_tokens plus a thinking/redacted_thinking block.\n // A resume failure can append a fresh user entry after the poisoned turn;\n // trimming the last user would remove only the retry and leave the bad\n // assistant in place.\n let poisonedAssistantIdx = -1;\n for (let i = lines.length - 1; i >= 0; i--) {\n const entry = parseClaudeRolloutLine(lines[i]);\n if (entry && isPoisonedAssistantEntry(entry)) {\n poisonedAssistantIdx = i;\n break;\n }\n }\n\n if (poisonedAssistantIdx < 0) {\n logger.warn({ sessionId, path }, \"repairPoisonedRollout: no poisoned assistant entry found\");\n return false;\n }\n\n let turnStartIdx = -1;\n for (let i = poisonedAssistantIdx - 1; i >= 0; i--) {\n const entry = parseClaudeRolloutLine(lines[i]);\n if (entry?.type === \"user\") {\n turnStartIdx = i;\n break;\n }\n }\n\n if (turnStartIdx < 0) {\n logger.warn(\n { sessionId, path, poisonedAssistantIdx },\n \"repairPoisonedRollout: poisoned assistant has no preceding user entry\",\n );\n return false;\n }\n\n const kept = lines.slice(0, turnStartIdx);\n writeFileSync(path, kept.length ? `${kept.join(\"\\n\")}\\n` : \"\");\n logger.warn(\n {\n sessionId,\n path,\n poisonedAssistantIdx,\n turnStartIdx,\n droppedEntries: lines.length - turnStartIdx,\n keptEntries: kept.length,\n },\n \"repairPoisonedRollout: truncated turn removed from rollout JSONL\",\n );\n return true;\n } catch (err) {\n logger.warn({ err, sessionId, cwd }, \"repairPoisonedRollout: I/O error\");\n return false;\n }\n}\n\ntype ClaudeRolloutEntry = {\n type?: string;\n message?: {\n stop_reason?: string | null;\n content?: unknown;\n };\n};\n\nfunction parseClaudeRolloutLine(line: string): ClaudeRolloutEntry | null {\n try {\n return JSON.parse(line) as ClaudeRolloutEntry;\n } catch {\n return null;\n }\n}\n\nfunction isPoisonedAssistantEntry(entry: ClaudeRolloutEntry): boolean {\n if (entry.type !== \"assistant\") return false;\n if (entry.message?.stop_reason !== \"max_tokens\") return false;\n const content = entry.message.content;\n if (!Array.isArray(content)) return false;\n return content.some((block) => {\n if (!block || typeof block !== \"object\") return false;\n const type = (block as { type?: unknown }).type;\n return type === \"thinking\" || type === \"redacted_thinking\";\n });\n}\n",
44
44
  "import { existsSync, mkdirSync, readdirSync, renameSync, unlinkSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { AgentRegistry, AgentRegistryOperations } from \"#agents/contracts\";\nimport { encodeClaudeCwd, writeClaudeRollout } from \"#agents/rollout/claude\";\nimport { MODEL_FABLE, MODEL_OPUS, MODEL_SONNET } from \"#platform/config\";\nimport { logger } from \"#platform/logger\";\nimport { CLAUDE_EFFORT_VALUES, type EffortLevel } from \"#types\";\n\nconst ALIAS_MAP: Record<string, string> = {\n sonnet: MODEL_SONNET,\n opus: MODEL_OPUS,\n fable: MODEL_FABLE,\n};\n\nconst VALID_ALIASES = new Set(Object.keys(ALIAS_MAP));\nconst VALID_EFFORTS = new Set<EffortLevel>(CLAUDE_EFFORT_VALUES);\n\nexport const claudeRegistry: AgentRegistry = {\n kind: \"claude\",\n defaultModel: \"sonnet\",\n defaultEffort: \"high\",\n\n expandModelAlias(s) {\n return ALIAS_MAP[s] ?? s;\n },\n\n validateModel(s) {\n return VALID_ALIASES.has(s);\n },\n\n validEfforts: CLAUDE_EFFORT_VALUES,\n validateEffort(s) {\n return VALID_EFFORTS.has(s);\n },\n\n footerLabel(model, effort) {\n return effort ? `${model} · ${effort}` : model;\n },\n};\n\nexport const claudeRegistryOperations: AgentRegistryOperations = {\n writeRollout(opts) {\n // `reuseSessionId` (if any) becomes the SDK resume key + path component,\n // so claude→codex→claude lands at the original `~/.claude/projects/<dir>/<id>.jsonl`\n // instead of orphaning a fresh UUID every switch.\n const { sessionId, rolloutPath } = writeClaudeRollout({\n cwd: opts.cwd,\n entries: opts.entries,\n model: claudeRegistry.expandModelAlias(opts.model ?? claudeRegistry.defaultModel),\n ...(opts.reuseSessionId ? { sessionId: opts.reuseSessionId } : {}),\n });\n return { sessionId, rolloutPath };\n },\n\n // Claude has a native fork API in @anthropic-ai/claude-agent-sdk that produces\n // a byte-equivalent copy of the parent rollout. Preserves tool history\n // structurally, so the fork is indistinguishable from the parent on resume.\n //\n // SDK ≥0.3.19x semantics: `dir` is where to FIND the parent session (lookup\n // scope), NOT the destination — passing the derived topic's cwd made lookup\n // fail (\"Session … not found in project directory\"). The fork file is always\n // written NEXT TO the parent rollout, so after forking we move it into the\n // derived cwd's project dir where a resume from that cwd expects it.\n async forkSession({ parentSessionId, cwd, title }) {\n const { forkSession } = await import(\"@anthropic-ai/claude-agent-sdk\");\n // Omit `dir`: the parent session lives under the SOURCE topic's project\n // dir, which this registry never receives — global search finds it.\n const result = await forkSession(parentSessionId, {\n ...(title ? { title } : {}),\n });\n const projectsRoot = join(homedir(), \".claude\", \"projects\");\n const destDir = join(projectsRoot, encodeClaudeCwd(cwd));\n const destPath = join(destDir, `${result.sessionId}.jsonl`);\n if (!existsSync(destPath)) {\n const sourcePath = readdirSync(projectsRoot)\n .map((d) => join(projectsRoot, d, `${result.sessionId}.jsonl`))\n .find((p) => existsSync(p));\n if (!sourcePath) {\n throw new Error(\n `claude forkSession: fork rollout ${result.sessionId}.jsonl not found under ${projectsRoot}`,\n );\n }\n mkdirSync(destDir, { recursive: true });\n renameSync(sourcePath, destPath);\n }\n return {\n forkId: result.sessionId,\n // Same project-dir layout as cleanupRollouts below — NOT under\n // `cwd/.claude/sessions/`. A wrong path here makes cleanupAgentFork's\n // existsSync always false, so silent-fork rollouts accumulate forever.\n rolloutPath: destPath,\n };\n },\n\n // Each Claude rollout lives at `~/.claude/projects/<encoded-cwd>/<sessionId>.jsonl`.\n // The encoded-cwd is deterministic so we can compute the path directly\n // without globbing — fast and robust against the SDK changing date layout.\n async cleanupRollouts({ cwd, sessionIds }) {\n const projectsDir = join(homedir(), \".claude\", \"projects\", encodeClaudeCwd(cwd));\n const failures: unknown[] = [];\n for (const sid of sessionIds) {\n const path = join(projectsDir, `${sid}.jsonl`);\n try {\n unlinkSync(path);\n } catch (e) {\n if ((e as NodeJS.ErrnoException)?.code !== \"ENOENT\") {\n logger.warn({ err: e, path }, \"claude cleanupRollouts: unlink failed\");\n failures.push(e);\n }\n }\n }\n if (failures.length > 0) {\n throw new AggregateError(failures, \"claude cleanupRollouts failed\");\n }\n },\n};\n",
45
45
  "/**\n * Codex rollout encoder.\n *\n * Materializes a synthetic JSONL at\n * `~/.codex/sessions/<yyyy>/<mm>/<dd>/rollout-<ts>-<threadId>.jsonl` so a\n * subsequent `codex.resumeThread(threadId)` continues the cross-agent\n * conversation as if it had always been native. Verified by sandbox PoC\n * test-7c: the SDK accepts these without checksum gating, requiring only the\n * captured 5-entry SDK shell (`agents/fixtures/codex-shell.jsonl`) plus\n * synthesized `response_item`/`event_msg` pairs per turn.\n *\n * Tool history is folded into assistant text as `[Tool: ...]` annotations\n * (see shared.ts:extractChatPairs). Native same-agent forks use App Server's\n * `thread/fork`; this encoder remains the fallback and cross-agent bridge,\n * where synthetic tool_use IDs are too fragile to reconstruct structurally.\n */\n\nimport { randomBytes } from \"node:crypto\";\nimport { existsSync, readFileSync, realpathSync, statSync, unlinkSync } from \"node:fs\";\nimport { basename, dirname, join, resolve } from \"node:path\";\nimport { hostedCodexHomePath } from \"#agents/execution-host\";\nimport {\n assertUuidLike,\n type ChatPair,\n clone,\n ensureCwdExists,\n extractChatPairs,\n FIXTURES_DIR,\n} from \"#agents/rollout/shared\";\nimport { parseJsonlText, writeJsonlFile } from \"#platform/jsonl\";\nimport { logger } from \"#platform/logger\";\nimport type { ConversationEntry } from \"#storage/conversations\";\nimport type { EffortLevel } from \"#types\";\n\ninterface CodexShell {\n sessionMeta: Record<string, unknown>;\n taskStarted: Record<string, unknown>;\n developerSetup: Record<string, unknown>;\n envContext: Record<string, unknown>;\n turnContext: Record<string, unknown>;\n}\n\nfunction codexSessionsDir(): string {\n return join(hostedCodexHomePath(), \"sessions\");\n}\n\nlet _shellCache: CodexShell | null = null;\nfunction loadCodexShell(): CodexShell {\n if (_shellCache) return _shellCache;\n const raw = readFileSync(join(FIXTURES_DIR, \"codex-shell.jsonl\"), \"utf8\");\n const lines = parseJsonlText<Record<string, unknown>>(raw);\n if (lines.length < 5) {\n throw new Error(\n `loadCodexShell: expected >=5 entries in codex-shell.jsonl, got ${lines.length}`,\n );\n }\n _shellCache = {\n sessionMeta: lines[0],\n taskStarted: lines[1],\n developerSetup: lines[2],\n envContext: lines[3],\n turnContext: lines[4],\n };\n return _shellCache;\n}\n\n/** UUIDv7 (Codex thread_id format). */\nfunction uuidv7(): string {\n const ts = Date.now();\n const tsHex = ts.toString(16).padStart(12, \"0\");\n const rand = randomBytes(10);\n rand[0] = (rand[0] & 0x0f) | 0x70; // version 7\n rand[2] = (rand[2] & 0x3f) | 0x80; // variant\n return [\n tsHex.slice(0, 8),\n tsHex.slice(8, 12),\n rand.slice(0, 2).toString(\"hex\"),\n rand.slice(2, 4).toString(\"hex\"),\n rand.slice(4, 10).toString(\"hex\"),\n ].join(\"-\");\n}\n\n/** Replace captured developer metadata with the policy used for resumed turns. */\nfunction patchDeveloperSetup(developerSetup: Record<string, unknown>): void {\n const payload = developerSetup.payload as Record<string, unknown> | undefined;\n if (!payload) return;\n payload.content = [\n {\n type: \"input_text\",\n text: [\n \"<permissions instructions>\",\n \"Filesystem sandboxing is disabled for this runtime turn (`danger-full-access`).\",\n \"Approval policy is `never`.\",\n \"</permissions instructions>\",\n ].join(\"\\n\"),\n },\n ];\n}\n\n/** Mutate captured `<environment_context>` fields to the current runtime. */\nfunction patchEnvContext(\n envContext: Record<string, unknown>,\n cwd: string,\n currentDate: string,\n timezone: string,\n): void {\n const payload = envContext.payload as Record<string, unknown> | undefined;\n if (!payload) return;\n const content = payload.content as Array<Record<string, unknown>> | undefined;\n if (!Array.isArray(content)) return;\n for (const block of content) {\n if (block.type === \"input_text\" && typeof block.text === \"string\") {\n block.text = block.text\n .replace(/<cwd>[^<]*<\\/cwd>/, `<cwd>${cwd}</cwd>`)\n .replace(\n /<current_date>[^<]*<\\/current_date>/,\n `<current_date>${currentDate}</current_date>`,\n )\n .replace(/<timezone>[^<]*<\\/timezone>/, `<timezone>${timezone}</timezone>`);\n }\n }\n}\n\nexport interface CodexRolloutOptions {\n /** Working directory the resumed Codex thread will report. */\n cwd: string;\n /** Optional override; default = freshly generated UUIDv7. */\n threadId?: string;\n /** Override extracted pairs. */\n pairs?: ChatPair[];\n /** Source UnifiedEvent log when `pairs` is omitted. */\n entries?: ConversationEntry[];\n /** Effective model/effort that Codex will use when this thread is resumed. */\n model?: string;\n effort?: EffortLevel;\n}\n\nexport interface CodexRolloutResult {\n threadId: string;\n rolloutPath: string;\n}\n\nexport interface CodexContextUsage {\n contextTokens: number;\n contextWindow: number;\n}\n\nexport interface CodexTokenTotals {\n inputTokens: number;\n outputTokens: number;\n cachedInputTokens: number;\n cacheWriteInputTokens: number;\n}\n\nexport interface CodexPatchChangePreview {\n path: string;\n before?: string;\n after?: string;\n diffPreview?: string;\n}\n\nexport interface CodexPatchPreview {\n callId: string;\n changes: CodexPatchChangePreview[];\n}\n\nfunction codexRolloutPath(threadId: string, fallback: Date): string {\n const threadCreatedAt = decodeUuidV7Timestamp(threadId);\n const createdAt = threadCreatedAt === null ? fallback : new Date(threadCreatedAt);\n const yyyy = String(createdAt.getFullYear());\n const mm = String(createdAt.getMonth() + 1).padStart(2, \"0\");\n const dd = String(createdAt.getDate()).padStart(2, \"0\");\n const hh = String(createdAt.getHours()).padStart(2, \"0\");\n const min = String(createdAt.getMinutes()).padStart(2, \"0\");\n const ss = String(createdAt.getSeconds()).padStart(2, \"0\");\n const dir = join(codexSessionsDir(), yyyy, mm, dd);\n return join(dir, `rollout-${yyyy}-${mm}-${dd}T${hh}-${min}-${ss}-${threadId}.jsonl`);\n}\n\nfunction canonicalFilePath(path: string): string {\n const absolute = resolve(path);\n try {\n return realpathSync(absolute);\n } catch {\n try {\n return join(realpathSync(dirname(absolute)), basename(absolute));\n } catch {\n return absolute;\n }\n }\n}\n\nfunction changedPatchLines(value: string): Omit<CodexPatchChangePreview, \"path\"> {\n const removed: string[] = [];\n const added: string[] = [];\n const diffPreview: string[] = [];\n let oldLine = 0;\n let newLine = 0;\n let sawHunk = false;\n for (const line of value.split(\"\\n\")) {\n const hunk = /^@@ -(\\d+)(?:,\\d+)? \\+(\\d+)(?:,\\d+)? @@/.exec(line);\n if (hunk) {\n if (sawHunk) diffPreview.push(\"…\");\n sawHunk = true;\n oldLine = Number.parseInt(hunk[1] ?? \"0\", 10);\n newLine = Number.parseInt(hunk[2] ?? \"0\", 10);\n continue;\n }\n if (!sawHunk && (line.startsWith(\"--- \") || line.startsWith(\"+++ \"))) continue;\n if (line.startsWith(\"\\\\ No newline\")) continue;\n if (line.startsWith(\"-\")) {\n removed.push(line.slice(1));\n diffPreview.push(`${oldLine} -${line.slice(1)}`);\n oldLine += 1;\n continue;\n }\n if (line.startsWith(\"+\")) {\n added.push(line.slice(1));\n diffPreview.push(`${newLine} +${line.slice(1)}`);\n newLine += 1;\n continue;\n }\n if (line.startsWith(\" \")) {\n diffPreview.push(`${newLine} ${line.slice(1)}`);\n oldLine += 1;\n newLine += 1;\n }\n }\n return {\n ...(removed.length > 0 ? { before: removed.join(\"\\n\") } : {}),\n ...(added.length > 0 ? { after: added.join(\"\\n\") } : {}),\n ...(diffPreview.length > 0 ? { diffPreview: diffPreview.join(\"\\n\") } : {}),\n };\n}\n\n/**\n * Extract the newest native apply_patch result matching a Codex file_change.\n *\n * The public SDK intentionally reduces file changes to path + kind, while the\n * native rollout keeps the exact unified diff in patch_apply_end. Reading that\n * payload preserves the real per-edit +/- lines even when the topic cwd itself\n * is not a Git repository.\n */\nexport function extractLatestCodexPatchPreview(\n jsonl: string,\n expectedPaths: string[],\n consumedCallIds: ReadonlySet<string> = new Set(),\n expectedCallId?: string,\n): CodexPatchPreview | undefined {\n const expected = expectedPaths.map(canonicalFilePath);\n const lines = jsonl.trimEnd().split(\"\\n\");\n for (let index = lines.length - 1; index >= 0; index -= 1) {\n try {\n const entry = JSON.parse(lines[index] ?? \"\") as {\n type?: string;\n payload?: {\n type?: string;\n call_id?: string;\n changes?: Record<\n string,\n { type?: string; unified_diff?: string; content?: string; move_path?: string | null }\n >;\n };\n };\n if (entry.type !== \"event_msg\" || entry.payload?.type !== \"patch_apply_end\") continue;\n const callId = entry.payload.call_id;\n const rawChanges = entry.payload.changes;\n if (\n !callId ||\n consumedCallIds.has(callId) ||\n (expectedCallId !== undefined && callId !== expectedCallId) ||\n !rawChanges\n ) {\n continue;\n }\n\n const entries = Object.entries(rawChanges);\n const matched = expected.map((path) =>\n entries.find(([candidate]) => canonicalFilePath(candidate) === path),\n );\n const complete = matched.filter(\n (change): change is NonNullable<typeof change> => change !== undefined,\n );\n if (complete.length !== expected.length) continue;\n\n return {\n callId,\n changes: complete.map(([path, change]) => {\n if (typeof change.unified_diff === \"string\") {\n return { path, ...changedPatchLines(change.unified_diff) };\n }\n const content =\n typeof change.content === \"string\" ? change.content.replace(/\\n$/, \"\") : undefined;\n return {\n path,\n ...(change.type === \"delete\" && content !== undefined ? { before: content } : {}),\n ...(change.type === \"add\" && content !== undefined ? { after: content } : {}),\n };\n }),\n };\n } catch {\n // A concurrently appended final line may be incomplete; keep scanning.\n }\n }\n return undefined;\n}\n\nexport function extractCodexPatchCallIds(jsonl: string): string[] {\n const callIds: string[] = [];\n for (const line of jsonl.trimEnd().split(\"\\n\")) {\n try {\n const entry = JSON.parse(line) as {\n type?: string;\n payload?: { type?: string; call_id?: string };\n };\n if (\n entry.type === \"event_msg\" &&\n entry.payload?.type === \"patch_apply_end\" &&\n typeof entry.payload.call_id === \"string\"\n ) {\n callIds.push(entry.payload.call_id);\n }\n } catch {\n // A concurrently appended final line may be incomplete.\n }\n }\n return callIds;\n}\n\n/** List native patch calls that already existed before a resumed turn. */\nexport function readCodexPatchCallIds(threadId: string): string[] {\n const path = latestCodexRolloutPath(threadId);\n if (!path) return [];\n try {\n return extractCodexPatchCallIds(readFileSync(path, \"utf8\"));\n } catch (error) {\n logger.debug({ error, threadId }, \"codex patch ids: rollout read failed\");\n return [];\n }\n}\n\n/** Resolve a thread's newest native apply_patch preview. */\nexport function readLatestCodexPatchPreview(\n threadId: string,\n expectedPaths: string[],\n consumedCallIds: ReadonlySet<string> = new Set(),\n expectedCallId?: string,\n): CodexPatchPreview | undefined {\n const path = latestCodexRolloutPath(threadId);\n if (!path) return undefined;\n try {\n return extractLatestCodexPatchPreview(\n readFileSync(path, \"utf8\"),\n expectedPaths,\n consumedCallIds,\n expectedCallId,\n );\n } catch (error) {\n logger.debug({ error, threadId }, \"codex patch preview: rollout read failed\");\n return undefined;\n }\n}\n\n/** Read the latest per-request context measurement from a Codex rollout. */\nexport function extractLatestCodexContextUsage(jsonl: string): CodexContextUsage | undefined {\n const lines = jsonl.trimEnd().split(\"\\n\");\n for (let index = lines.length - 1; index >= 0; index -= 1) {\n try {\n const entry = JSON.parse(lines[index] ?? \"\") as {\n type?: string;\n payload?: {\n type?: string;\n info?: {\n last_token_usage?: { total_tokens?: number };\n model_context_window?: number;\n };\n };\n };\n if (entry.type !== \"event_msg\" || entry.payload?.type !== \"token_count\") continue;\n const contextTokens = entry.payload.info?.last_token_usage?.total_tokens;\n const contextWindow = entry.payload.info?.model_context_window;\n if (\n typeof contextTokens === \"number\" &&\n Number.isFinite(contextTokens) &&\n contextTokens >= 0 &&\n typeof contextWindow === \"number\" &&\n Number.isFinite(contextWindow) &&\n contextWindow > 0\n ) {\n return { contextTokens, contextWindow };\n }\n } catch {\n // A concurrently appended final line may be incomplete; keep scanning.\n }\n }\n return undefined;\n}\n\n/** Latest cumulative token counter persisted in a native Codex rollout. */\nexport function extractLatestCodexTokenTotals(jsonl: string): CodexTokenTotals | undefined {\n const lines = jsonl.trimEnd().split(\"\\n\");\n for (let index = lines.length - 1; index >= 0; index -= 1) {\n try {\n const entry = JSON.parse(lines[index] ?? \"\") as {\n type?: string;\n payload?: {\n type?: string;\n info?: {\n total_token_usage?: {\n input_tokens?: number;\n output_tokens?: number;\n cached_input_tokens?: number;\n cache_write_input_tokens?: number;\n };\n };\n };\n };\n if (entry.type !== \"event_msg\" || entry.payload?.type !== \"token_count\") continue;\n const usage = entry.payload.info?.total_token_usage;\n if (!usage) continue;\n const values = [\n usage.input_tokens,\n usage.output_tokens,\n usage.cached_input_tokens,\n usage.cache_write_input_tokens,\n ];\n if (values.some((value) => value !== undefined && (!Number.isFinite(value) || value < 0))) {\n continue;\n }\n return {\n inputTokens: usage.input_tokens ?? 0,\n outputTokens: usage.output_tokens ?? 0,\n cachedInputTokens: usage.cached_input_tokens ?? 0,\n cacheWriteInputTokens: usage.cache_write_input_tokens ?? 0,\n };\n } catch {\n // A concurrently appended final line may be incomplete; keep scanning.\n }\n }\n return undefined;\n}\n\n/** Resolve a thread's current rollout and return its latest context measurement. */\nexport function readLatestCodexContextUsage(threadId: string): CodexContextUsage | undefined {\n const path = latestCodexRolloutPath(threadId);\n if (!path) return undefined;\n try {\n return extractLatestCodexContextUsage(readFileSync(path, \"utf8\"));\n } catch (error) {\n logger.debug({ error, threadId }, \"codex context usage: rollout read failed\");\n return undefined;\n }\n}\n\n/** `forked_from_id` from a rollout's leading session_meta line, if any. */\nexport function extractCodexForkedFromId(jsonl: string): string | undefined {\n const newline = jsonl.indexOf(\"\\n\");\n try {\n const entry = JSON.parse(newline < 0 ? jsonl : jsonl.slice(0, newline)) as {\n type?: string;\n payload?: { forked_from_id?: unknown };\n };\n const id = entry.type === \"session_meta\" ? entry.payload?.forked_from_id : undefined;\n return typeof id === \"string\" && id ? id : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Text of the latest user turn that carried negotium's `[System Instructions]`\n * preamble. Codex has no system-prompt option, so the provider inlines it into\n * the user prompt; this reports what the resumed thread already holds.\n */\nexport function extractLatestCodexSystemInstructionsTurn(jsonl: string): string | undefined {\n const lines = jsonl.trimEnd().split(\"\\n\");\n for (let index = lines.length - 1; index >= 0; index -= 1) {\n const line = lines[index] ?? \"\";\n if (!line.includes(\"[System Instructions]\")) continue;\n try {\n const entry = JSON.parse(line) as {\n type?: string;\n payload?: { type?: string; role?: string; content?: Array<{ text?: unknown }> };\n };\n if (entry.type !== \"response_item\") continue;\n if (entry.payload?.type !== \"message\" || entry.payload.role !== \"user\") continue;\n const text = (entry.payload.content ?? [])\n .map((part) => (typeof part.text === \"string\" ? part.text : \"\"))\n .join(\"\");\n if (text.startsWith(\"[System Instructions]\\n\")) return text;\n } catch {\n // A concurrently appended final line may be incomplete; keep scanning.\n }\n }\n return undefined;\n}\n\n/**\n * Whether the thread's history already ends its instruction trail with exactly\n * `systemPrompt`. Synthesized rollouts (agent switch, fork fallback) carry no\n * instructions, and a changed prompt must be re-sent, so both report false.\n */\nexport function codexThreadHasSystemPrompt(\n threadId: string,\n systemPrompt: string,\n depth = 0,\n): boolean {\n const path = latestCodexRolloutPath(threadId);\n if (!path) return false;\n try {\n const jsonl = readFileSync(path, \"utf8\");\n const latest = extractLatestCodexSystemInstructionsTurn(jsonl);\n if (latest !== undefined) {\n return latest.startsWith(`[System Instructions]\\n${systemPrompt}\\n\\n`);\n }\n if (depth >= 8) return false;\n // A paginated fork may not copy the parent's items into its own rollout.\n const parentId = extractCodexForkedFromId(jsonl);\n return parentId && parentId !== threadId\n ? codexThreadHasSystemPrompt(parentId, systemPrompt, depth + 1)\n : false;\n } catch (error) {\n logger.debug({ error, threadId }, \"codex system prompt: rollout read failed\");\n return false;\n }\n}\n\nexport function readLatestCodexTokenTotals(\n threadId: string,\n depth = 0,\n): CodexTokenTotals | undefined {\n const path = latestCodexRolloutPath(threadId);\n if (!path) return undefined;\n try {\n const jsonl = readFileSync(path, \"utf8\");\n const totals = extractLatestCodexTokenTotals(jsonl);\n if (totals || depth >= 8) return totals;\n // A freshly created paginated fork has no token_count of its own yet, but\n // Codex continues the parent's thread-lifetime counter on the fork's first\n // turn.completed. Inherit the parent's totals as the baseline so the fork\n // turn is not billed with the parent's whole history.\n const parentId = extractCodexForkedFromId(jsonl);\n return parentId && parentId !== threadId\n ? readLatestCodexTokenTotals(parentId, depth + 1)\n : undefined;\n } catch (error) {\n logger.debug({ error, threadId }, \"codex token totals: rollout read failed\");\n return undefined;\n }\n}\n\n/**\n * Old and metadata-free Codex rollouts resume as native multi-agent v1 even\n * when the feature flag is false. Rewrite their runtime metadata in place so\n * the same thread can resume without losing provider conversation history.\n */\nexport function migrateCodexRolloutNativeMultiAgentMetadata(threadId: string): boolean {\n const path = latestCodexRolloutPath(threadId);\n if (!path) return false;\n try {\n const entries = parseJsonlText<{\n type?: string;\n payload?: Record<string, unknown>;\n }>(readFileSync(path, \"utf8\"));\n let changed = false;\n for (const entry of entries) {\n if (entry.type !== \"session_meta\" && entry.type !== \"turn_context\") continue;\n if (!entry.payload) entry.payload = {};\n if (entry.payload.multi_agent_version !== \"disabled\") {\n entry.payload.multi_agent_version = \"disabled\";\n changed = true;\n }\n }\n if (changed) {\n writeJsonlFile(path, entries);\n logger.info({ threadId, path }, \"codex rollout native multi-agent metadata disabled\");\n }\n return changed;\n } catch (error) {\n logger.error({ error, threadId, path }, \"codex rollout native multi-agent migration failed\");\n throw new Error(`Failed to migrate Codex rollout '${threadId}'`, { cause: error });\n }\n}\n\nexport function latestCodexRolloutPath(threadId: string): string | undefined {\n const sessionsDir = codexSessionsDir();\n const candidates: string[] = [];\n const buckets = candidateDateBuckets(threadId);\n try {\n if (buckets) {\n for (const bucket of buckets) {\n const dir = join(sessionsDir, bucket);\n if (!existsSync(dir)) continue;\n const glob = new Bun.Glob(`rollout-*-${threadId}.jsonl`);\n for (const rel of glob.scanSync({ cwd: dir, onlyFiles: true })) {\n candidates.push(join(dir, rel));\n }\n }\n }\n // The UUIDv7 timestamp is UTC, but Codex names session directories by the\n // local date, so a session opened in the evening of a negative-offset\n // timezone lands in the previous day's bucket. When the date-derived\n // buckets miss (or none were computed), fall back to a whole-tree scan so\n // that skew never silently drops the rollout.\n if (candidates.length === 0) {\n const glob = new Bun.Glob(`**/rollout-*-${threadId}.jsonl`);\n for (const rel of glob.scanSync({ cwd: sessionsDir, onlyFiles: true })) {\n candidates.push(join(sessionsDir, rel));\n }\n }\n return candidates.sort((a, b) => statSync(b).mtimeMs - statSync(a).mtimeMs)[0];\n } catch (error) {\n logger.debug({ error, threadId }, \"codex rollout lookup failed\");\n return undefined;\n }\n}\n\n/**\n * Materialize a Codex rollout JSONL with the provided dialogue and place it\n * at `~/.codex/sessions/<yyyy>/<mm>/<dd>/rollout-<ts>-<threadId>.jsonl` so a\n * subsequent `codex.resumeThread(threadId)` continues the conversation.\n */\nexport function writeCodexRollout(opts: CodexRolloutOptions): CodexRolloutResult {\n const threadId = opts.threadId ?? uuidv7();\n assertUuidLike(\"threadId\", threadId);\n ensureCwdExists(opts.cwd);\n const pairs = opts.pairs ?? extractChatPairs(opts.entries ?? []);\n const now = new Date();\n const tsIso = now.toISOString();\n const currentDate = [\n now.getFullYear(),\n String(now.getMonth() + 1).padStart(2, \"0\"),\n String(now.getDate()).padStart(2, \"0\"),\n ].join(\"-\");\n const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || process.env.TZ || \"UTC\";\n\n // Captured 5-entry SDK shell (session_meta, task_started, developer setup,\n // environment_context, turn_context). Cloned per call so the cached\n // fixture is never mutated; only id/timestamp/cwd are patched.\n const shell = loadCodexShell();\n const sessionMeta = clone(shell.sessionMeta);\n (sessionMeta.payload as Record<string, unknown>).id = threadId;\n (sessionMeta.payload as Record<string, unknown>).timestamp = tsIso;\n (sessionMeta.payload as Record<string, unknown>).cwd = opts.cwd;\n (sessionMeta.payload as Record<string, unknown>).multi_agent_version = \"disabled\";\n (sessionMeta as Record<string, unknown>).timestamp = tsIso;\n\n const taskStarted = clone(shell.taskStarted);\n (taskStarted as Record<string, unknown>).timestamp = tsIso;\n\n const developerSetup = clone(shell.developerSetup);\n (developerSetup as Record<string, unknown>).timestamp = tsIso;\n patchDeveloperSetup(developerSetup);\n\n const envContext = clone(shell.envContext);\n (envContext as Record<string, unknown>).timestamp = tsIso;\n patchEnvContext(envContext, opts.cwd, currentDate, timezone);\n\n const turnContext = clone(shell.turnContext);\n (turnContext as Record<string, unknown>).timestamp = tsIso;\n const turnPayload = turnContext.payload as Record<string, unknown>;\n turnPayload.cwd = opts.cwd;\n turnPayload.current_date = currentDate;\n turnPayload.timezone = timezone;\n turnPayload.approval_policy = \"never\";\n turnPayload.sandbox_policy = { type: \"danger-full-access\" };\n turnPayload.multi_agent_version = \"disabled\";\n delete turnPayload.permission_profile;\n if (opts.model) turnPayload.model = opts.model;\n const collaborationMode = turnPayload.collaboration_mode as Record<string, unknown> | undefined;\n const collaborationSettings = collaborationMode?.settings as Record<string, unknown> | undefined;\n if (collaborationSettings) {\n if (opts.model) collaborationSettings.model = opts.model;\n if (opts.effort !== undefined) collaborationSettings.reasoning_effort = opts.effort;\n }\n\n const lines: unknown[] = [sessionMeta, taskStarted, developerSetup, envContext, turnContext];\n\n for (const pair of pairs) {\n lines.push({\n timestamp: tsIso,\n type: \"response_item\",\n payload: {\n type: \"message\",\n role: \"user\",\n content: [{ type: \"input_text\", text: pair.userText }],\n },\n });\n lines.push({\n timestamp: tsIso,\n type: \"event_msg\",\n payload: {\n type: \"user_message\",\n message: pair.userText,\n images: [],\n local_images: [],\n text_elements: [],\n },\n });\n lines.push({\n timestamp: tsIso,\n type: \"event_msg\",\n payload: {\n type: \"agent_message\",\n message: pair.assistantText,\n phase: \"final_answer\",\n memory_citation: null,\n },\n });\n lines.push({\n timestamp: tsIso,\n type: \"response_item\",\n payload: {\n type: \"message\",\n role: \"assistant\",\n content: [{ type: \"output_text\", text: pair.assistantText }],\n phase: \"final_answer\",\n },\n });\n }\n\n lines.push({\n timestamp: tsIso,\n type: \"event_msg\",\n payload: { type: \"task_complete\" },\n });\n\n // Codex indexes a thread by the local wall-clock timestamp encoded in its\n // UUIDv7 creation time. A cross-agent round-trip may rewrite the rollout\n // much later, but the path must remain the original canonical path or\n // `thread/resume` rejects it as missing and the provider starts fresh.\n const path = codexRolloutPath(threadId, now);\n\n // Round-trip cleanup: when the caller reused a threadId (claude→codex→...\n // or maestro→codex→... cycles via `findLastSessionIdForAgent`), the SDK's\n // original rollout for that threadId still sits at its canonical path.\n // Sweep every prior file for this threadId BEFORE replacing that path so\n // legacy writers cannot leave ambiguous duplicates behind.\n //\n // Synchronous on purpose: writeCodexRollout's signature is sync (called\n // inside set_agent's DB transaction), and an async sweep would race with\n // the following `writeJsonlFile` — Bun.Glob would re-scan once the\n // microtask queue drains and could unlink the file we just wrote if today\n // and the original-write-date are the same. Sync glob/unlink completes\n // before the new file ever lands on disk.\n //\n // Only runs when `opts.threadId` was supplied; fresh-mint threadIds can't\n // have prior files. Errors are logged but non-fatal — losing the sweep on\n // a permission glitch is preferable to crashing the whole switch.\n if (opts.threadId) {\n sweepPriorRolloutsForThread(opts.threadId);\n }\n\n writeJsonlFile(path, lines);\n logger.info(\n { threadId, path, pairs: pairs.length },\n \"writeCodexRollout: synthetic rollout placed\",\n );\n return { threadId, rolloutPath: path };\n}\n\n/**\n * Synchronous unlink of every existing `rollout-*-<threadId>.jsonl` under\n * `~/.codex/sessions/**`. Same glob shape `codexRegistry.cleanupRollouts`\n * uses (kept duplicate rather than imported to avoid the registry → rollout\n * → registry cycle).\n */\nfunction sweepPriorRolloutsForThread(threadId: string): void {\n const sessionsDir = codexSessionsDir();\n const buckets = candidateDateBuckets(threadId);\n if (!buckets) {\n // Couldn't pin a date from the threadId — fall back to the safer (but\n // much slower) whole-tree scan so we still find every prior rollout.\n sweepPriorRolloutsFullTree(threadId, sessionsDir);\n return;\n }\n for (const bucket of buckets) {\n const dir = join(sessionsDir, bucket);\n if (!existsSync(dir)) continue;\n try {\n const glob = new Bun.Glob(`rollout-*-${threadId}.jsonl`);\n for (const rel of glob.scanSync({ cwd: dir, onlyFiles: true })) {\n const fullPath = join(dir, rel);\n try {\n unlinkSync(fullPath);\n } catch (e) {\n if ((e as NodeJS.ErrnoException)?.code !== \"ENOENT\") {\n logger.warn(\n { err: e, path: fullPath },\n \"writeCodexRollout: prior-rollout unlink failed (continuing)\",\n );\n }\n }\n }\n } catch (e) {\n logger.warn(\n { err: e, threadId, bucket },\n \"writeCodexRollout: prior-rollout bucket scan failed (continuing)\",\n );\n }\n }\n}\n\n/** Legacy whole-tree scan. Used only when `candidateDateBuckets` can't pin a\n * date set from the threadId (non-UUIDv7 ids, e.g. some test fixtures). */\nfunction sweepPriorRolloutsFullTree(threadId: string, sessionsDir: string): void {\n try {\n const glob = new Bun.Glob(`**/rollout-*-${threadId}.jsonl`);\n for (const rel of glob.scanSync({ cwd: sessionsDir, onlyFiles: true })) {\n const fullPath = join(sessionsDir, rel);\n try {\n unlinkSync(fullPath);\n } catch (e) {\n if ((e as NodeJS.ErrnoException)?.code !== \"ENOENT\") {\n logger.warn(\n { err: e, path: fullPath },\n \"writeCodexRollout: prior-rollout unlink failed (continuing)\",\n );\n }\n }\n }\n } catch (e) {\n logger.warn(\n { err: e, threadId },\n \"writeCodexRollout: full-tree prior-rollout sweep failed (continuing)\",\n );\n }\n}\n\n/**\n * UUIDv7 ids encode their creation time in the first 48 bits. Current writers\n * always use that canonical birth-date bucket, but older writers used the\n * rewrite date during cross-agent bridges. Enumerate the inclusive range from\n * birth date to today so cleanup also removes those legacy misplaced files.\n *\n * Returns null when:\n * - threadId isn't a parseable UUIDv7 (atypical fixture / future format)\n * - the day span exceeds MAX_DAY_SPAN (a month+-old re-bridge isn't worth\n * per-day enumeration; safer to scan the full tree than to enumerate\n * hundreds of dirs and still maybe miss something)\n * In both cases the caller falls back to the whole-tree sweep so safety\n * never degrades below the original implementation.\n */\nconst MAX_DAY_SPAN = 30;\nconst DAY_MS = 86_400_000;\nconst LOCAL_DATE_SKEW_DAYS = 1;\n\nfunction candidateDateBuckets(threadId: string): Set<string> | null {\n const tidMs = decodeUuidV7Timestamp(threadId);\n if (tidMs === null) return null;\n const nowMs = Date.now();\n // Day-floor each end so DST / minutes-of-day noise doesn't bloat the span.\n const tidDay = Math.floor(tidMs / DAY_MS);\n const todayDay = Math.floor(nowMs / DAY_MS);\n const minDay = Math.min(tidDay, todayDay);\n const maxDay = Math.max(tidDay, todayDay);\n const span = maxDay - minDay;\n if (span > MAX_DAY_SPAN) return null;\n const buckets = new Set<string>();\n // Codex buckets sessions by local calendar date while UUIDv7 timestamps are\n // UTC. Include one day on each edge so every date-bucketed caller (context\n // usage, migration, and prior-rollout cleanup) covers timezone skew without\n // falling back to a whole-tree scan.\n for (let d = minDay - LOCAL_DATE_SKEW_DAYS; d <= maxDay + LOCAL_DATE_SKEW_DAYS; d++) {\n buckets.add(formatDateBucket(new Date(d * DAY_MS)));\n }\n return buckets;\n}\n\n/**\n * Decode the 48-bit unix-ms timestamp out of a UUIDv7. The first 12 hex\n * chars of the dash-separated form are the timestamp. Returns null when the\n * input doesn't look like a UUIDv7 or the decoded value is outside a\n * plausibility window (defensive: a malformed id that fits the regex but\n * decodes to year 1972 would point the sweep at a non-existent bucket —\n * better to fall back to the whole-tree scan than to silently no-op).\n *\n * Exported for tests.\n */\nexport function decodeUuidV7Timestamp(threadId: string): number | null {\n if (typeof threadId !== \"string\") return null;\n const m =\n /^([0-9a-fA-F]{8})-([0-9a-fA-F]{4})-7[0-9a-fA-F]{3}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.exec(\n threadId,\n );\n if (!m) return null;\n const hex = `${m[1]}${m[2]}`;\n const ms = Number.parseInt(hex, 16);\n if (!Number.isFinite(ms)) return null;\n const MIN = 1577836800000; // 2020-01-01T00:00:00Z\n const MAX = 4102444800000; // 2100-01-01T00:00:00Z\n if (ms < MIN || ms > MAX) return null;\n return ms;\n}\n\nfunction formatDateBucket(d: Date): string {\n const yyyy = d.getUTCFullYear();\n const mm = String(d.getUTCMonth() + 1).padStart(2, \"0\");\n const dd = String(d.getUTCDate()).padStart(2, \"0\");\n return `${yyyy}/${mm}/${dd}`;\n}\n\n/** Internal export for tests. */\nexport const __candidateDateBuckets = candidateDateBuckets;\n",
46
- "export const NEGOTIUM_VERSION = \"0.23.4\";\n",
46
+ "export const NEGOTIUM_VERSION = \"0.23.5\";\n",
47
47
  "import { type ChildProcess, spawn } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport {\n chmodSync,\n copyFileSync,\n existsSync,\n mkdtempSync,\n readFileSync,\n renameSync,\n rmSync,\n unlinkSync,\n writeFileSync,\n} from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { NEGOTIUM_VERSION } from \"#version\";\n\ntype CodexModel = Record<string, unknown>;\ntype CodexModelCache = {\n client_version?: unknown;\n models?: unknown;\n};\n\n// Resolving these as *modules* (`require.resolve`/`import.meta.resolve`) broke\n// under a plain Node process (which is how Codex itself spawns this server —\n// Bun's resolver is lax enough that it didn't notice) once `@openai/codex-sdk`\n// 0.165.0 dropped CommonJS support (no `\"require\"` condition in its `exports`\n// map), and `@openai/codex` was never importable to begin with — it ships only\n// a CLI `bin`, no `main`/`exports` at all. Neither package needs to be\n// imported here, only located, so this reimplements Node's own node_modules\n// directory-walk (the same algorithm `require`/`import` use internally) over\n// plain filesystem checks instead, which doesn't care what either package's\n// module shape is.\nfunction findPackageJson(specifier: string, searchFromDir: string): string {\n let dir = searchFromDir;\n for (;;) {\n const candidate = join(dir, \"node_modules\", specifier, \"package.json\");\n if (existsSync(candidate)) return candidate;\n const parent = dirname(dir);\n if (parent === dir) {\n throw new Error(`Could not locate node_modules/${specifier} starting from ${searchFromDir}`);\n }\n dir = parent;\n }\n}\n\nconst thisModuleDir = dirname(fileURLToPath(import.meta.url));\nconst codexSdkPackagePath = findPackageJson(\"@openai/codex-sdk\", thisModuleDir);\nconst bundledCodexPackagePath = findPackageJson(\"@openai/codex\", dirname(codexSdkPackagePath));\n\nfunction readPackageVersion(packageJsonPath: string): string {\n const parsed = JSON.parse(readFileSync(packageJsonPath, \"utf8\")) as { version?: unknown };\n if (typeof parsed.version !== \"string\" || !parsed.version.trim()) {\n throw new Error(`Codex package has no valid version: ${packageJsonPath}`);\n }\n return parsed.version;\n}\n\nexport const BUNDLED_CODEX_VERSION = readPackageVersion(bundledCodexPackagePath);\nconst SAFE_BUNDLED_CODEX_VERSION = BUNDLED_CODEX_VERSION.replace(/[^a-zA-Z0-9._-]/g, \"_\");\nconst NEGOTIUM_MODEL_CACHE = `negotium-models-cache-${SAFE_BUNDLED_CODEX_VERSION}.json`;\nconst NEGOTIUM_MODEL_CATALOG = `negotium-model-catalog-${SAFE_BUNDLED_CODEX_VERSION}.json`;\n\nexport function codexCliScriptPath(): string {\n return join(dirname(bundledCodexPackagePath), \"bin\", \"codex.js\");\n}\n\nfunction parseCodexModelCache(contents: string, sourcePath: string): CodexModelCache {\n let parsed: CodexModelCache;\n try {\n parsed = JSON.parse(contents) as CodexModelCache;\n } catch (error) {\n throw new Error(`Codex model cache is invalid JSON: ${sourcePath}`, { cause: error });\n }\n if (!Array.isArray(parsed.models) || parsed.models.length === 0) {\n throw new Error(`Codex model cache has no models: ${sourcePath}`);\n }\n return parsed;\n}\n\nfunction readCodexModelCache(cachePath: string): {\n contents: string;\n parsed: CodexModelCache;\n} {\n const contents = readFileSync(cachePath, \"utf8\");\n return { contents, parsed: parseCodexModelCache(contents, cachePath) };\n}\n\nexport function readCompatibleCodexModelCache(cachePath: string): {\n contents: string;\n parsed: CodexModelCache;\n} {\n const cache = readCodexModelCache(cachePath);\n if (cache.parsed.client_version !== BUNDLED_CODEX_VERSION) {\n const found =\n typeof cache.parsed.client_version === \"string\"\n ? cache.parsed.client_version\n : \"missing or invalid\";\n throw new Error(\n `Codex model cache version ${found} does not match Negotium's bundled Codex ${BUNDLED_CODEX_VERSION}: ${cachePath}`,\n );\n }\n return cache;\n}\n\nfunction writePrivateFileAtomic(path: string, contents: string): void {\n if (existsSync(path) && readFileSync(path, \"utf8\") === contents) return;\n\n const tempPath = `${path}.${process.pid}.${randomUUID()}.tmp`;\n try {\n writeFileSync(tempPath, contents, { encoding: \"utf8\", mode: 0o600 });\n renameSync(tempPath, path);\n chmodSync(path, 0o600);\n } finally {\n try {\n unlinkSync(tempPath);\n } catch {\n // renameSync normally consumed the temporary file.\n }\n }\n}\n\nexport function bundledCodexModelCachePath(authFilePath: string): string {\n return join(dirname(authFilePath), NEGOTIUM_MODEL_CACHE);\n}\n\nasync function bootstrapCodexModelCache(codexHome: string, cachePath: string): Promise<void> {\n const child = spawn(process.execPath, [codexCliScriptPath(), \"app-server\", \"--stdio\"], {\n env: { ...process.env, CODEX_HOME: codexHome },\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n // Background stdio server — no console window on Windows. Ignored on POSIX.\n windowsHide: true,\n });\n\n const refreshed = new Promise<void>((resolve, reject) => {\n let settled = false;\n let stdoutBuffer = \"\";\n let stderr = \"\";\n const timer = setTimeout(\n () => finish(new Error(\"timed out while refreshing the Codex model catalog\")),\n 15_000,\n );\n\n const finish = (error?: Error) => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n try {\n child.stdin.end();\n child.kill();\n } catch {\n // The app server may already have exited after stdin closed.\n }\n if (error) reject(error);\n else if (!existsSync(cachePath)) reject(new Error(\"Codex did not create its model cache\"));\n else resolve();\n };\n\n const send = (message: Record<string, unknown>) => {\n child.stdin.write(`${JSON.stringify(message)}\\n`);\n };\n\n child.stderr.on(\"data\", (chunk) => {\n if (stderr.length < 4_096) stderr += String(chunk);\n });\n child.on(\"error\", (error) => finish(error));\n child.on(\"exit\", (code, signal) => {\n if (!settled) {\n finish(\n new Error(\n `Codex model catalog refresh exited with ${signal ? `signal ${signal}` : `code ${code ?? 1}`}${stderr.trim() ? `: ${stderr.trim()}` : \"\"}`,\n ),\n );\n }\n });\n child.stdout.on(\"data\", (chunk) => {\n stdoutBuffer += String(chunk);\n for (;;) {\n const newline = stdoutBuffer.indexOf(\"\\n\");\n if (newline < 0) break;\n const line = stdoutBuffer.slice(0, newline);\n stdoutBuffer = stdoutBuffer.slice(newline + 1);\n let message: { id?: number; error?: { message?: string } };\n try {\n message = JSON.parse(line) as typeof message;\n } catch {\n continue;\n }\n if (message.id === 1) {\n if (message.error) {\n finish(new Error(message.error.message || \"Codex initialization failed\"));\n return;\n }\n send({ method: \"initialized\" });\n send({ id: 2, method: \"model/list\", params: { includeHidden: true } });\n } else if (message.id === 2) {\n if (message.error) {\n finish(new Error(message.error.message || \"Codex model listing failed\"));\n } else {\n finish();\n }\n return;\n }\n }\n });\n\n send({\n id: 1,\n method: \"initialize\",\n params: {\n clientInfo: { name: \"negotium\", version: NEGOTIUM_VERSION },\n capabilities: { experimentalApi: true },\n },\n });\n });\n\n try {\n await refreshed;\n } finally {\n // `child.kill()` only signals. The caller deletes CODEX_HOME right after we\n // return, and Windows cannot delete a directory the child still holds open\n // (EBUSY), so wait for the process to actually exit first.\n await waitForChildExit(child, CODEX_BOOTSTRAP_EXIT_WAIT_MS);\n }\n}\n\nconst CODEX_BOOTSTRAP_EXIT_WAIT_MS = 3_000;\n\nfunction waitForChildExit(child: ChildProcess, timeoutMs: number): Promise<void> {\n if (child.exitCode !== null || child.signalCode !== null) return Promise.resolve();\n return new Promise((resolve) => {\n const timer = setTimeout(resolve, timeoutMs);\n timer.unref?.();\n child.once(\"exit\", () => {\n clearTimeout(timer);\n resolve();\n });\n });\n}\n\n/**\n * Remove the temporary CODEX_HOME. On Windows a just-exited child (or an\n * antivirus scan of the files it wrote) can keep the directory busy for a\n * moment, so retry, and never let cleanup of a throwaway directory fail a turn\n * whose result was already read. POSIX keeps the original behaviour: unlinking\n * open files works there, and a genuine failure still surfaces.\n */\nfunction removeIsolatedCodexHome(dir: string): void {\n if (process.platform !== \"win32\") {\n rmSync(dir, { recursive: true, force: true });\n return;\n }\n try {\n rmSync(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });\n } catch {\n // Best effort: the OS temp cleaner will reclaim it.\n }\n}\n\nasync function bootstrapIsolatedCodexModelCache(\n authFilePath: string,\n bootstrap: (codexHome: string, cachePath: string) => Promise<void>,\n): Promise<string> {\n const sourceHome = dirname(authFilePath);\n const isolatedHome = mkdtempSync(join(tmpdir(), \"negotium-codex-models-\"));\n const isolatedCachePath = join(isolatedHome, \"models_cache.json\");\n\n try {\n const isolatedAuthPath = join(isolatedHome, \"auth.json\");\n copyFileSync(authFilePath, isolatedAuthPath);\n chmodSync(isolatedAuthPath, 0o600);\n\n // Preserve custom provider configuration while keeping the bundled CLI's\n // cache write completely outside the user's shared CODEX_HOME.\n const sourceConfigPath = join(sourceHome, \"config.toml\");\n if (existsSync(sourceConfigPath)) {\n const isolatedConfigPath = join(isolatedHome, \"config.toml\");\n copyFileSync(sourceConfigPath, isolatedConfigPath);\n chmodSync(isolatedConfigPath, 0o600);\n }\n\n await bootstrap(isolatedHome, isolatedCachePath);\n return readCompatibleCodexModelCache(isolatedCachePath).contents;\n } finally {\n removeIsolatedCodexHome(isolatedHome);\n }\n}\n\nexport async function ensureCodexModelCache(\n authFilePath: string,\n bootstrap: (codexHome: string, cachePath: string) => Promise<void> = bootstrapCodexModelCache,\n): Promise<string> {\n const codexHome = dirname(authFilePath);\n const configuredCachePath = process.env.NEGOTIUM_CODEX_MODELS_CACHE_FILE;\n if (configuredCachePath) {\n if (!existsSync(configuredCachePath)) {\n throw new Error(`Configured Codex model cache does not exist: ${configuredCachePath}`);\n }\n readCompatibleCodexModelCache(configuredCachePath);\n return configuredCachePath;\n }\n\n // The global Codex CLI owns models_cache.json and may update it to a schema\n // newer than the SDK bundled by Negotium. Snapshot a cache generated for our\n // exact bundled version so later global CLI updates cannot break turns.\n const bundledCachePath = bundledCodexModelCachePath(authFilePath);\n const sharedCachePath = join(codexHome, \"models_cache.json\");\n if (existsSync(sharedCachePath)) {\n try {\n const shared = readCompatibleCodexModelCache(sharedCachePath);\n // Keep model metadata fresh while the global CLI remains compatible.\n writePrivateFileAtomic(bundledCachePath, shared.contents);\n return bundledCachePath;\n } catch {\n // A compatible private snapshot is safer than failing because another\n // process briefly exposed an incomplete shared-cache write.\n }\n }\n\n if (existsSync(bundledCachePath)) {\n try {\n readCompatibleCodexModelCache(bundledCachePath);\n return bundledCachePath;\n } catch {\n // Re-bootstrap below instead of passing a corrupt or version-mismatched\n // private snapshot into this SDK version.\n }\n }\n\n const refreshedContents = await bootstrapIsolatedCodexModelCache(authFilePath, bootstrap);\n writePrivateFileAtomic(bundledCachePath, refreshedContents);\n return bundledCachePath;\n}\n\n/**\n * Codex can resolve model metadata before `features.multi_agent=false`, so a\n * model-advertised v1/v2 value may still register native collaboration tools.\n * Feed Codex an authoritative copy of its own catalog with only that field\n * disabled. Runtime MCP delegation remains available independently.\n */\nexport function writeCodexCatalogWithNativeMultiAgentDisabled(\n authFilePath: string,\n sourcePath: string,\n): string {\n const codexHome = dirname(authFilePath);\n const outputPath = join(codexHome, NEGOTIUM_MODEL_CATALOG);\n\n const parsed = readCodexModelCache(sourcePath).parsed;\n\n const models = (parsed.models as unknown[]).map((model, index): CodexModel => {\n if (!model || typeof model !== \"object\" || Array.isArray(model)) {\n throw new Error(`Codex model cache entry ${index} is invalid: ${sourcePath}`);\n }\n return { ...(model as CodexModel), multi_agent_version: \"disabled\" };\n });\n const contents = `${JSON.stringify({ models }, null, 2)}\\n`;\n writePrivateFileAtomic(outputPath, contents);\n return outputPath;\n}\n",
48
48
  "import { type ChildProcessWithoutNullStreams, spawn } from \"node:child_process\";\nimport { codexCliScriptPath } from \"#agents/codex-native-multi-agent\";\nimport { hostedCodexHomePath } from \"#agents/execution-host\";\nimport { latestCodexRolloutPath } from \"#agents/rollout/codex\";\nimport { NEGOTIUM_VERSION } from \"#version\";\n\ninterface CodexAppServerForkResult {\n forkId: string;\n rolloutPath: string;\n}\n\ninterface CodexAppServerForkHost {\n spawnServer(): ChildProcessWithoutNullStreams;\n findRolloutPath(threadId: string): string | undefined;\n timeoutMs: number;\n}\n\ntype JsonRpcResponse = {\n id?: number;\n result?: { thread?: { id?: unknown } };\n error?: { message?: unknown };\n};\n\nexport function createCodexAppServerForker(host: CodexAppServerForkHost) {\n return async (parentThreadId: string): Promise<CodexAppServerForkResult> => {\n const child = host.spawnServer();\n\n return await new Promise<CodexAppServerForkResult>((resolve, reject) => {\n let settled = false;\n let stdoutBuffer = \"\";\n let stderr = \"\";\n const timer = setTimeout(\n () => finish(new Error(\"Codex thread fork timed out\")),\n host.timeoutMs,\n );\n\n const finish = (error?: Error, result?: CodexAppServerForkResult) => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n try {\n child.stdin.end();\n child.kill();\n } catch {\n // The app server may already have exited after stdin closed.\n }\n if (error) reject(error);\n else if (result) resolve(result);\n else reject(new Error(\"Codex thread fork returned no result\"));\n };\n\n const send = (message: Record<string, unknown>) => {\n child.stdin.write(`${JSON.stringify(message)}\\n`);\n };\n\n child.stderr.on(\"data\", (chunk) => {\n if (stderr.length < 8_192) stderr += String(chunk);\n });\n child.on(\"error\", (error) => finish(error));\n child.on(\"exit\", (code, signal) => {\n if (settled) return;\n const detail = signal ? `signal ${signal}` : `code ${code ?? 1}`;\n finish(\n new Error(\n `Codex app server exited with ${detail}${stderr.trim() ? `: ${stderr.trim()}` : \"\"}`,\n ),\n );\n });\n child.stdout.on(\"data\", (chunk) => {\n stdoutBuffer += String(chunk);\n for (;;) {\n const newline = stdoutBuffer.indexOf(\"\\n\");\n if (newline < 0) break;\n const line = stdoutBuffer.slice(0, newline);\n stdoutBuffer = stdoutBuffer.slice(newline + 1);\n let message: JsonRpcResponse;\n try {\n message = JSON.parse(line) as JsonRpcResponse;\n } catch {\n continue;\n }\n\n if (message.id === 1) {\n if (message.error) {\n finish(new Error(String(message.error.message || \"Codex initialization failed\")));\n return;\n }\n send({ method: \"initialized\" });\n send({ id: 2, method: \"thread/fork\", params: { threadId: parentThreadId } });\n continue;\n }\n if (message.id !== 2) continue;\n if (message.error) {\n finish(new Error(String(message.error.message || \"Codex thread fork failed\")));\n return;\n }\n const forkId = message.result?.thread?.id;\n if (typeof forkId !== \"string\" || !forkId) {\n finish(new Error(\"Codex thread fork returned no thread id\"));\n return;\n }\n const rolloutPath = host.findRolloutPath(forkId);\n if (!rolloutPath) {\n finish(new Error(`Codex thread fork rollout was not found for ${forkId}`));\n return;\n }\n finish(undefined, { forkId, rolloutPath });\n return;\n }\n });\n\n send({\n id: 1,\n method: \"initialize\",\n params: {\n clientInfo: { name: \"negotium\", version: NEGOTIUM_VERSION },\n },\n });\n });\n };\n}\n\nconst forkCodexThread = createCodexAppServerForker({\n spawnServer() {\n return spawn(process.execPath, [codexCliScriptPath(), \"app-server\", \"--stdio\"], {\n env: { ...process.env, CODEX_HOME: hostedCodexHomePath() },\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n // Background stdio server — no console window on Windows. Ignored on POSIX.\n windowsHide: true,\n });\n },\n findRolloutPath: latestCodexRolloutPath,\n timeoutMs: 15_000,\n});\n\nexport async function forkCodexSession(parentThreadId: string): Promise<CodexAppServerForkResult> {\n return await forkCodexThread(parentThreadId);\n}\n",
49
49
  "import { existsSync, unlinkSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport type { AgentRegistry, AgentRegistryOperations } from \"#agents/contracts\";\nimport { hostedCodexHomePath } from \"#agents/execution-host\";\nimport { writeCodexRollout } from \"#agents/rollout/codex\";\nimport { logger } from \"#platform/logger\";\nimport { CODEX_EFFORT_VALUES, type EffortLevel } from \"#types\";\n\nconst VALID_EFFORTS = new Set<EffortLevel>(CODEX_EFFORT_VALUES);\n\n// Codex CLI's own bundled default became gpt-6-astra as of v0.153.4\n// (2026-09-05); before that it was gpt-5.6-sol (`codex exec` 2026-07-10 →\n// \"model: gpt-5.6-sol\"). We deliberately default to the luna tier — the\n// cheapest/fastest GPT-6 tier — for a general always-on assistant where most\n// queries are light. Heavier work escalates to terra/sol/astra via set_model. The\n// GPT-5.6 Sol/Luna/Terra ids are retired aliases of their GPT-6 successors (see\n// canonicalModelId), so a stored gpt-5.6-luna normalizes to luna. The provider\n// resolves the tier immediately before passing it to the SDK.\nexport const codexRegistry: AgentRegistry = {\n kind: \"codex\",\n defaultModel: \"luna\",\n // defaultEffort intentionally omitted — Codex SDK treats absence as\n // \"reasoning off\". Setting \"high\"/etc. would silently flip on reasoning.\n\n expandModelAlias(s) {\n return s;\n },\n\n validateModel(s) {\n // Codex doesn't publish a closed model list and OpenAI ships new IDs\n // (gpt-6-astra, gpt-6-sol, gpt-6.1-terra, gpt-6-luna, o3, ...) frequently. Best-effort: accept any\n // non-empty string. Bad IDs surface at SDK call time with a clear error.\n return typeof s === \"string\" && s.length > 0;\n },\n\n validEfforts: CODEX_EFFORT_VALUES,\n validateEffort(s) {\n // GPT-5.6 accepts low/medium/high/xhigh/max; 'minimal'\n // was removed because the Codex API rejects it when default tools\n // (image_gen, web_search) are active.\n return VALID_EFFORTS.has(s);\n },\n\n footerLabel(model, effort) {\n // Codex omits effort to mean \"reasoning off\". Show `(off)` explicitly so\n // the user can distinguish from claude (which always has a default).\n return `${model} · ${effort ?? \"(off)\"}`;\n },\n};\n\nexport const codexRegistryOperations: AgentRegistryOperations = {\n writeRollout(opts) {\n // Codex SDK exposes the resume key as `threadId`; AgentRegistry unifies\n // the name to `sessionId` so callers don't branch on agent.\n // `reuseSessionId` (if any) is forwarded as `threadId` so claude→codex→claude\n // round-trips also keep one continuous codex thread instead of orphaning a\n // fresh uuidv7 on every switch.\n const { threadId, rolloutPath } = writeCodexRollout({\n cwd: opts.cwd,\n entries: opts.entries,\n model: opts.model ?? codexRegistry.defaultModel,\n ...(opts.effort ? { effort: opts.effort } : {}),\n ...(opts.reuseSessionId ? { threadId: opts.reuseSessionId } : {}),\n });\n return { sessionId: threadId, rolloutPath };\n },\n\n // The TypeScript SDK does not expose forking yet, but the bundled Codex App\n // Server does. Native thread/fork preserves the provider's stored prefix,\n // including tool structure, which gives prompt caching the best chance to\n // reuse the parent context. Callers retain unified-log synthesis as fallback.\n async forkSession({ parentSessionId }) {\n // The app-server integration resolves the SDK's bundled CLI. Keep that\n // provider-only dependency out of lightweight registry consumers such as\n // the stdio Cron MCP server, which runs under Node + tsx.\n const { forkCodexSession } = await import(\"#agents/codex-app-server\");\n return await forkCodexSession(parentSessionId);\n },\n\n // Codex stores rollouts at `~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-<ts>-<threadId>.jsonl`.\n // The date prefix is unknown at cleanup time (it's the *original* write\n // timestamp, not \"now\"), so we glob across the whole sessions tree by\n // threadId suffix. With at most a few thousand files in active use this\n // is well under a millisecond on a warm filesystem.\n async cleanupRollouts({ sessionIds }) {\n if (sessionIds.length === 0) return;\n const sessionsDir = join(hostedCodexHomePath(), \"sessions\");\n // No sessions directory means there are no provider rollouts left to remove.\n if (!existsSync(sessionsDir)) return;\n const failures: unknown[] = [];\n // One Glob per threadId so a single corrupt entry can't poison the rest.\n // Bun.Glob's `scan` yields paths relative to its base dir.\n for (const tid of sessionIds) {\n try {\n const glob = new Bun.Glob(`**/rollout-*-${tid}.jsonl`);\n for await (const rel of glob.scan({ cwd: sessionsDir, onlyFiles: true })) {\n const path = join(sessionsDir, rel);\n try {\n unlinkSync(path);\n } catch (e) {\n if ((e as NodeJS.ErrnoException)?.code !== \"ENOENT\") {\n logger.warn({ err: e, path }, \"codex cleanupRollouts: unlink failed\");\n failures.push(e);\n }\n }\n }\n } catch (e) {\n logger.warn({ err: e, threadId: tid }, \"codex cleanupRollouts: scan failed\");\n failures.push(e);\n }\n }\n if (failures.length > 0) {\n throw new AggregateError(failures, \"codex cleanupRollouts failed\");\n }\n },\n};\n",
@@ -90,7 +90,7 @@
90
90
  "import { asTurnSlotKey, type TurnSlotKey } from \"#identifiers\";\n\nexport interface RuntimeTurnLeaseLike {\n topicId: string;\n queryId: string;\n ownerId: string;\n}\n\nexport interface RoomQueryControlLike<TAbortReason> {\n topicId: string;\n roomId?: string;\n queryId: string;\n origin: string;\n abortController: AbortController;\n abortReason: TAbortReason;\n startedAt?: number;\n}\n\nexport interface RoomQueryRegistryHost<TLease extends RuntimeTurnLeaseLike, TAbortReason> {\n instanceId: string;\n internalAbortReason: TAbortReason;\n externalAbortReason: TAbortReason;\n listLeases(): readonly TLease[];\n getLease(roomId: string): TLease | null;\n claimLease(input: { topicId: string; queryId: string; origin: string }): boolean;\n heartbeatLease(\n roomId: string,\n queryId: string,\n ): { owned: boolean; abortRequested: boolean; abortReason?: \"internal\" | \"external\" | null };\n releaseLease(roomId: string, queryId: string): void;\n requestAbort(roomId: string, reason: \"internal\" | \"external\"): boolean;\n now?: () => number;\n heartbeatMs?: number;\n}\n\nexport type RoomQueryDecision<TControl, TLease extends RuntimeTurnLeaseLike> =\n | { action: \"proceed\" }\n | { action: \"abort-replace\"; running: TControl }\n | { action: \"defer\" }\n | { action: \"remote-defer\"; running: TLease }\n | { action: \"remote-abort-wait\"; running: TLease };\n\nconst ISOLATED_TURN_ROOM_MARKER = \"::isolated-turn::\";\n\n/** Build a private scheduling key for a forked turn that may run beside its topic. */\nexport function isolatedTurnRoomId(topicId: string, queryId: string): TurnSlotKey {\n return asTurnSlotKey(`${topicId}${ISOLATED_TURN_ROOM_MARKER}${queryId}`);\n}\n\nexport function isIsolatedTurnRoomId(roomId: string): boolean {\n return roomId.includes(ISOLATED_TURN_ROOM_MARKER);\n}\n\nexport function isUserOrigin(origin: string | undefined): boolean {\n return !origin || origin === \"user\";\n}\n\nexport interface RoomQueryRegistry<\n TControl extends RoomQueryControlLike<TAbortReason>,\n TLease extends RuntimeTurnLeaseLike,\n TAbortReason,\n> {\n get(roomId: string): TControl | undefined;\n listRunningTopicQueries(): Map<string, string>;\n listRunningTopicIds(): Set<string>;\n isTopicRunning(topicId: string): boolean;\n status(topicId: string, queryId: string): \"running\" | \"not_found\";\n set(control: TControl): boolean;\n clear(roomId: string, queryId: string): void;\n abort(roomId: string, reason?: TAbortReason): boolean;\n abortAll(reason?: TAbortReason): number;\n decide(topicId: string, incomingOrigin: string): RoomQueryDecision<TControl, TLease>;\n}\n\n/**\n * Create an isolated room-query registry. Mutable maps and timers belong to\n * the caller; lease persistence and logging remain host-owned.\n */\nexport function createRoomQueryRegistry<\n TControl extends RoomQueryControlLike<TAbortReason>,\n TLease extends RuntimeTurnLeaseLike,\n TAbortReason,\n>(\n host: RoomQueryRegistryHost<TLease, TAbortReason>,\n): RoomQueryRegistry<TControl, TLease, TAbortReason> {\n const activeByRoom = new Map<string, TControl>();\n const leaseMonitors = new Map<string, ReturnType<typeof setInterval>>();\n const now = host.now ?? Date.now;\n const heartbeatMs = host.heartbeatMs ?? 1_000;\n\n function get(roomId: string): TControl | undefined {\n return activeByRoom.get(roomId);\n }\n\n function listRunningTopicQueries(): Map<string, string> {\n const queries = new Map(\n [...activeByRoom.entries()]\n .filter(([roomId]) => !isIsolatedTurnRoomId(roomId))\n .map(([roomId, control]) => [roomId, control.queryId]),\n );\n for (const lease of host.listLeases()) {\n if (isIsolatedTurnRoomId(lease.topicId)) continue;\n if (!queries.has(lease.topicId)) queries.set(lease.topicId, lease.queryId);\n }\n return queries;\n }\n\n function listRunningTopicIds(): Set<string> {\n return new Set(listRunningTopicQueries().keys());\n }\n\n function isTopicRunning(topicId: string): boolean {\n return activeByRoom.has(topicId) || host.getLease(topicId) !== null;\n }\n\n function status(topicId: string, queryId: string): \"running\" | \"not_found\" {\n if (activeByRoom.get(topicId)?.queryId === queryId) return \"running\";\n return host.getLease(topicId)?.queryId === queryId ? \"running\" : \"not_found\";\n }\n\n function set(control: TControl): boolean {\n const roomId = control.roomId ?? control.topicId;\n control.startedAt ??= now();\n if (!host.claimLease({ topicId: roomId, queryId: control.queryId, origin: control.origin })) {\n return false;\n }\n\n const previousMonitor = leaseMonitors.get(roomId);\n if (previousMonitor) clearInterval(previousMonitor);\n activeByRoom.set(roomId, control);\n const monitor = setInterval(() => {\n const current = activeByRoom.get(roomId);\n if (!current || current.queryId !== control.queryId) {\n clearInterval(monitor);\n if (leaseMonitors.get(roomId) === monitor) leaseMonitors.delete(roomId);\n return;\n }\n const heartbeat = host.heartbeatLease(roomId, control.queryId);\n if (!heartbeat.owned) {\n control.abortReason = host.externalAbortReason;\n control.abortController.abort();\n return;\n }\n if (heartbeat.abortRequested && !control.abortController.signal.aborted) {\n control.abortReason =\n heartbeat.abortReason === \"internal\"\n ? host.internalAbortReason\n : host.externalAbortReason;\n control.abortController.abort();\n }\n }, heartbeatMs);\n monitor.unref?.();\n leaseMonitors.set(roomId, monitor);\n return true;\n }\n\n function clear(roomId: string, queryId: string): void {\n const current = activeByRoom.get(roomId);\n if (current?.queryId === queryId) {\n activeByRoom.delete(roomId);\n const monitor = leaseMonitors.get(roomId);\n if (monitor) clearInterval(monitor);\n leaseMonitors.delete(roomId);\n }\n host.releaseLease(roomId, queryId);\n }\n\n function abort(roomId: string, reason = host.externalAbortReason): boolean {\n const running = activeByRoom.get(roomId);\n const wireReason = reason === host.internalAbortReason ? \"internal\" : \"external\";\n if (running) {\n running.abortReason = reason;\n running.abortController.abort();\n host.requestAbort(roomId, wireReason);\n return true;\n }\n return host.requestAbort(roomId, wireReason);\n }\n\n function abortAll(reason = host.externalAbortReason): number {\n let aborted = 0;\n for (const running of activeByRoom.values()) {\n running.abortReason = reason;\n if (!running.abortController.signal.aborted) {\n running.abortController.abort();\n aborted++;\n }\n }\n return aborted;\n }\n\n function decide(topicId: string, incomingOrigin: string): RoomQueryDecision<TControl, TLease> {\n const running = activeByRoom.get(topicId);\n if (!running) {\n const remote = host.getLease(topicId);\n if (!remote || remote.ownerId === host.instanceId) return { action: \"proceed\" };\n return isUserOrigin(incomingOrigin)\n ? { action: \"remote-abort-wait\", running: remote }\n : { action: \"remote-defer\", running: remote };\n }\n if (!isUserOrigin(incomingOrigin)) return { action: \"defer\" };\n return { action: \"abort-replace\", running };\n }\n\n return {\n get,\n listRunningTopicQueries,\n listRunningTopicIds,\n isTopicRunning,\n status,\n set,\n clear,\n abort,\n abortAll,\n decide,\n };\n}\n",
91
91
  "/**\n * Room-keyed in-flight query registry + abort-on-new-message priority +\n * inter-session inject queue (requestId dedup + mergeable-prefix merging).\n *\n * ActiveQueries + SessionInjectQueue semantics, adapted to Otium's REST/WS\n * model where the \"room\" is a `topicId` and the live runner is\n * `api/routes/ai.ts`.\n *\n * Invariant: AT MOST ONE in-flight AI turn per room (topicId). A new turn\n * arriving on a busy room is resolved by origin priority:\n * - incoming user, running user → abort running (superseded), replace\n * - incoming user, running inject → re-queue running inject, abort, replace\n * - incoming inject (any running) → defer incoming (the user keeps priority)\n */\n\nimport type { ForkHandle } from \"#agents/fork\";\nimport { logger } from \"#platform/logger\";\nimport type { UserTurnEnvelope } from \"#runtime/user-turn-envelope\";\nimport {\n claimRuntimeTurnLease,\n getRuntimeTurnLease,\n heartbeatRuntimeTurnLease,\n listRuntimeTurnLeases,\n RUNTIME_INSTANCE_ID,\n type RuntimeTurnLease,\n releaseRuntimeTurnLease,\n requestRuntimeTurnAbort,\n} from \"#storage/runtime-leases\";\nimport type { AskReplySource } from \"#storage/session-asks\";\nimport type { AgentKind, PeerRuntimeBridgeContext } from \"#types\";\nimport { createRoomQueryRegistry, type RoomQueryDecision } from \"./room-query-registry\";\nimport { AbortReason } from \"./types\";\n\nexport { isolatedTurnRoomId, isUserOrigin } from \"./room-query-registry\";\n\n/** Lazily create an isolated provider session immediately before execution. */\nexport type PrepareInjectSession = () => Promise<ForkHandle>;\n\n/** A turn started by a session-inject, replayed when its room frees up. */\nexport interface DeferredInject {\n topicId: string;\n /** Topic execution epoch captured when this work was accepted. */\n runtimeEpoch?: number;\n userId: string;\n /** Credential namespace when the executor and Vault owner differ. */\n vaultUserId?: string;\n prompt: string;\n /** Inject source — the topic name/id this inject came from (never \"user\"). */\n origin: string;\n /** Thread of this topic to answer in, e.g. an ask raised from a thread. */\n threadRootId?: string;\n sourceNode?: string;\n /** Inter-session request id for dedup. */\n requestId?: string;\n /** Nesting depth (starts at 1 for the first cross-topic hop). */\n depth?: number;\n /** Whether this inject is silent (injected but hidden from the user). */\n silent?: boolean;\n /** Context chain id for continuing an inter-session conversation. */\n contextId?: string;\n /** Agent override for injected turns that must resume a provider-specific session. */\n agentOverride?: AgentKind;\n /** Model override for specialized internal turns such as cron. */\n modelOverride?: string;\n /** Effort override for specialized internal turns such as cron. */\n effortOverride?: import(\"#types\").EffortLevel;\n /** SDK-native session/thread id to resume for a forked injected turn. */\n sessionId?: string | null;\n /** Explicit provider-session ownership boundary. */\n sessionScope?: \"topic\" | \"isolated\";\n /** Scheduling boundary. Isolated turns do not occupy or wait for the topic room. */\n turnConcurrency?: \"topic\" | \"isolated\";\n /** Rollout file backing a synthetic/native fork; cleaned when the turn finishes. */\n forkHandle?: ForkHandle;\n /** Build a fresh isolated session at dispatch time (used by ask_session). */\n prepareSession?: PrepareInjectSession;\n /** Working directory override for provider-native resumed sessions. */\n cwd?: string;\n /** Conversation/session namespace override (cron jobs keep isolated rollouts). */\n sessionName?: string;\n /** MCP/tool scope override for a specialized internal turn. */\n sessionType?: \"dm\" | \"forum\" | \"ephemeral\" | \"manager\" | \"cron\";\n /** Adapter-granted access to Otium's visual panel tools. */\n visualTools?: boolean;\n /** Adapter-granted access to chat file-delivery tools. */\n fileDeliveryTools?: boolean;\n /** Optional session owner; when present the topic's main session is not replaced. */\n onSessionId?: (sessionId: string) => void;\n /** Clear an externally-owned session after an unrecoverable expiry. */\n onSessionReset?: () => void;\n /** Rebuild a provider-native rollout from the shared conversation log when needed. */\n bridgeSessionFromHistory?: boolean;\n /** Final result hook for optional modules that own an internal turn. */\n onSettled?: (result: {\n queryId: string;\n kind: \"completed\" | \"aborted\" | \"error\";\n abortReason?: AbortReason;\n error?: string;\n }) => void;\n /** Canonical hub identity for a placed-room runtime turn. */\n peerBridge?: PeerRuntimeBridgeContext;\n /** True after a session-expired recovery retry has already been attempted. */\n _sessionRetried?: boolean;\n /** Original ask_session replies represented by this inject, preserved across dequeueAll merges. */\n askReplySources?: AskReplySource[];\n /** Source marker forwarded to startAiTurn (e.g. FROM_AUTO_CONTINUE). */\n from?: string;\n /** Fired with the AI turn's queryId once the deferred turn is dispatched. */\n onDispatched?: (queryId: string) => void;\n}\n\nexport interface RoomQueryControl {\n topicId: string;\n /** Runtime scheduling/lease key. Defaults to topicId for normal turns. */\n roomId?: string;\n queryId: string;\n /** \"user\" for a human message; otherwise the inject source topic name. */\n origin: string;\n /** Prompt currently being processed. User-turn preemption merges this with the new prompt. */\n prompt: string;\n /** Original user submissions represented by prompt, in arrival order. */\n userMessages?: UserTurnEnvelope[];\n /**\n * Product actor a user turn speaks for, when recorded. Decides whether a\n * later human message may steer this turn: only the same actor's follow-up\n * aborts and folds into it; anyone else's waits its turn in the queue.\n */\n actorUserId?: string;\n /** Durable request rows whose messages are already represented by userMessages. */\n durableRequestIds?: string[];\n /** Attachment ids currently being processed. User-turn preemption carries them forward. */\n attachments?: string[];\n /** Latest provider session id observed for this turn. */\n sessionId?: string | null;\n /** True once the provider has published the native session backing this turn. */\n providerSessionObserved?: boolean;\n /** True once provider output proves that this turn's prompt reached the native session. */\n providerTurnContentObserved?: boolean;\n abortController: AbortController;\n abortReason: AbortReason;\n /** Specific failure surfaced when infrastructure aborts the turn. */\n abortError?: string;\n /** Epoch ms when this turn claimed the room (stale-abort guard). */\n startedAt?: number;\n /**\n * Set when this turn was started by a session-inject — the params needed to\n * re-enqueue it if a user message preempts it mid-flight. undefined for user\n * turns (a preempted user turn is simply discarded).\n */\n injectParams?: DeferredInject;\n /** True only after this process successfully queued a local replay. */\n injectRequeued?: boolean;\n}\n\n// ── Room-keyed in-flight registry ──────────────────────────────────────\n\nconst roomQueryRegistry = createRoomQueryRegistry<RoomQueryControl, RuntimeTurnLease, AbortReason>({\n instanceId: RUNTIME_INSTANCE_ID,\n internalAbortReason: AbortReason.Internal,\n externalAbortReason: AbortReason.External,\n listLeases: listRuntimeTurnLeases,\n getLease: getRuntimeTurnLease,\n claimLease: claimRuntimeTurnLease,\n heartbeatLease: heartbeatRuntimeTurnLease,\n releaseLease: releaseRuntimeTurnLease,\n requestAbort: requestRuntimeTurnAbort,\n});\n\nexport function getRoomQuery(roomId: string): RoomQueryControl | undefined {\n return roomQueryRegistry.get(roomId);\n}\n\n/** Topic ids and query ids with an in-flight turn in this or another runtime process. */\nexport function listRunningTopicQueries(): Map<string, string> {\n return roomQueryRegistry.listRunningTopicQueries();\n}\n\nexport function listRunningTopicIds(): Set<string> {\n return roomQueryRegistry.listRunningTopicIds();\n}\n\n/** Single-topic status check for callers that do not need a list snapshot. */\nexport function isTopicRunning(topicId: string): boolean {\n return roomQueryRegistry.isTopicRunning(topicId);\n}\n\nexport function getRoomQueryStatus(topicId: string, queryId: string): \"running\" | \"not_found\" {\n return roomQueryRegistry.status(topicId, queryId);\n}\n\nexport function setRoomQuery(control: RoomQueryControl): boolean {\n return roomQueryRegistry.set(control);\n}\n\n/**\n * Delete the room's in-flight entry, but ONLY if it is still this query — a\n * newer turn may have already replaced it (abort-and-replace), and the dying\n * turn's cleanup must not clobber its successor. Mirrors Otium's\n * \"Only delete our own entry\" guard.\n */\nexport function clearRoomQuery(roomId: string, queryId: string): void {\n roomQueryRegistry.clear(roomId, queryId);\n}\n\n/** Abort the currently-running turn in a room, if any. Cleanup is still owned by\n * the streaming turn's finally block so deferred injects drain in order. */\nexport function abortRoom(roomId: string, reason: AbortReason = AbortReason.External): boolean {\n return roomQueryRegistry.abort(roomId, reason);\n}\n\n/** Abort every in-flight provider turn before the node tears down its resources. */\nexport function abortAllRooms(reason: AbortReason = AbortReason.External): number {\n return roomQueryRegistry.abortAll(reason);\n}\n\n// ── Priority decision ──────────────────────────────────────────────────\n\nexport type NewQueryDecision = RoomQueryDecision<RoomQueryControl, RuntimeTurnLease>;\n\n/**\n * Decide what to do when a new turn (with `incomingOrigin`) arrives on a room.\n * Mirrors the abort-on-new-message priority used by live topic turns.\n */\nexport function decideNewQuery(topicId: string, incomingOrigin: string): NewQueryDecision {\n return roomQueryRegistry.decide(topicId, incomingOrigin);\n}\n\n// ── Session-inject queue (inter-session) ───────────────────────────────\n//\n// Session-inject queue for cross-topic ask/tell messages.\n// Key differences: Otium doesn't have per-user concurrency caps, so the key\n// is just the `topicId` (room).\n// `markPendingAskSources` is handled by the MCP layer; the queue here only\n// manages in-memory defer/replay.\n\nexport class InterSessionQueue {\n private queue = new Map<\n string,\n { items: DeferredInject[]; head: number; requestIds: Set<string> }\n >();\n\n private compactOrDelete(\n topicId: string,\n bucket: { items: DeferredInject[]; head: number; requestIds: Set<string> },\n ): void {\n if (bucket.head >= bucket.items.length) {\n this.queue.delete(topicId);\n return;\n }\n // Keep dequeue O(1) on the hot path; compact only when the reclaimed\n // prefix is large enough to justify copying the remaining references.\n if (bucket.head >= 64 && bucket.head * 2 >= bucket.items.length) {\n bucket.items = bucket.items.slice(bucket.head);\n bucket.head = 0;\n }\n }\n\n /** Enqueue inject if requestId is set and not a duplicate. Returns true if enqueued. */\n enqueue(topicId: string, inject: DeferredInject): boolean {\n if (!inject.requestId) {\n logger.error(\n { topicId, origin: inject.origin },\n \"BUG: session inject reached enqueue without requestId — DROPPING inject\",\n );\n return false;\n }\n let bucket = this.queue.get(topicId);\n if (!bucket) {\n bucket = { items: [], head: 0, requestIds: new Set<string>() };\n this.queue.set(topicId, bucket);\n }\n if (bucket.requestIds.has(inject.requestId)) {\n logger.info(\n { topicId, requestId: inject.requestId, origin: inject.origin },\n \"session inject deduped (existing entry with same requestId)\",\n );\n return false;\n }\n bucket.items.push(inject);\n bucket.requestIds.add(inject.requestId);\n logger.info(\n { topicId, origin: inject.origin, requestId: inject.requestId, depth: inject.depth },\n \"session inject enqueued\",\n );\n return true;\n }\n\n /** True when an entry with this requestId is still queued for this topic. */\n hasRequest(topicId: string, requestId: string): boolean {\n return this.queue.get(topicId)?.requestIds.has(requestId) ?? false;\n }\n\n /** Remove and return the next queued inject for this topic, or undefined if empty. */\n dequeueNext(topicId: string): DeferredInject | undefined {\n const bucket = this.queue.get(topicId);\n if (!bucket || bucket.head >= bucket.items.length) return undefined;\n const next = bucket.items[bucket.head++];\n if (next.requestId) bucket.requestIds.delete(next.requestId);\n this.compactOrDelete(topicId, bucket);\n return next;\n }\n\n /**\n * Remove and return the longest mergeable PREFIX of the queue as a single\n * entry, or undefined if empty. Multiple prompts are joined so they land in\n * one turn instead of chaining N turns for N queued injects.\n *\n * Merge rule (mirrors Otium): caller-bound ask_session replies can merge\n * even when they came from different target topics; ordinary inter-session\n * injects remain conservative and require the same origin/silent/session\n * shape. `onDispatched` callbacks from each merged entry are composed.\n */\n dequeueAll(topicId: string): DeferredInject | undefined {\n const bucket = this.queue.get(topicId);\n if (!bucket || bucket.head >= bucket.items.length) return undefined;\n const base = bucket.items[bucket.head];\n const isAskReplyInject = (e: DeferredInject) => !e.silent && Boolean(e.askReplySources?.length);\n const baseIsAskReplyInject = isAskReplyInject(base);\n const mergeable = (e: DeferredInject) =>\n (baseIsAskReplyInject\n ? isAskReplyInject(e)\n : !isAskReplyInject(e) &&\n e.origin === base.origin &&\n (e.silent ?? false) === (base.silent ?? false)) &&\n (e.threadRootId ?? null) === (base.threadRootId ?? null) &&\n (e.onDispatched !== undefined) === (base.onDispatched !== undefined) &&\n (e.agentOverride ?? null) === (base.agentOverride ?? null) &&\n (e.modelOverride ?? null) === (base.modelOverride ?? null) &&\n (e.effortOverride ?? null) === (base.effortOverride ?? null) &&\n (e.runtimeEpoch ?? 0) === (base.runtimeEpoch ?? 0) &&\n (e.sessionId ?? null) === (base.sessionId ?? null) &&\n (e.forkHandle?.forkId ?? null) === (base.forkHandle?.forkId ?? null) &&\n (e.prepareSession ?? null) === (base.prepareSession ?? null) &&\n (e.cwd ?? null) === (base.cwd ?? null) &&\n (e.sessionName ?? null) === (base.sessionName ?? null) &&\n (e.sessionType ?? null) === (base.sessionType ?? null) &&\n (e.onSessionId ?? null) === (base.onSessionId ?? null) &&\n (e.onSessionReset ?? null) === (base.onSessionReset ?? null) &&\n (e.bridgeSessionFromHistory ?? false) === (base.bridgeSessionFromHistory ?? false) &&\n (e.onSettled ?? null) === (base.onSettled ?? null);\n let end = bucket.head + 1;\n while (end < bucket.items.length && mergeable(bucket.items[end])) end++;\n const batch = bucket.items.slice(bucket.head, end);\n bucket.head = end;\n for (const entry of batch) {\n if (entry.requestId) bucket.requestIds.delete(entry.requestId);\n }\n this.compactOrDelete(topicId, bucket);\n if (batch.length === 1) return batch[0];\n\n const callbacks = batch\n .map((e) => e.onDispatched)\n .filter((cb): cb is NonNullable<typeof cb> => !!cb);\n const askReplySources = batch.flatMap((e): AskReplySource[] => {\n if (e.askReplySources?.length) return e.askReplySources;\n if (!e.requestId || !e.origin) return [];\n return [{ from: e.origin, requestId: e.requestId, contextId: e.contextId }];\n });\n const depths = batch\n .map((e) => e.depth)\n .filter((depth): depth is number => typeof depth === \"number\");\n return {\n ...base,\n prompt: batch.map((e) => e.prompt).join(\"\\n\\n\"),\n origin: baseIsAskReplyInject\n ? [...new Set(batch.map((e) => e.origin).filter(Boolean))].join(\", \")\n : base.origin,\n depth: depths.length ? Math.min(...depths) : base.depth,\n requestId: `merged-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,\n // Same-origin batches share one context; only drop it when the batch\n // disagrees (a merged turn must not append to the wrong context).\n contextId: batch.every((e) => e.contextId === base.contextId) ? base.contextId : undefined,\n askReplySources,\n onDispatched: callbacks.length\n ? (queryId: string) => {\n callbacks.forEach((cb) => {\n cb(queryId);\n });\n }\n : undefined,\n };\n }\n\n /** All non-empty queue keys for this topic room. */\n keysForRoom(): string[] {\n return Array.from(this.queue.keys());\n }\n\n /**\n * Drop all queued injects for a topic (e.g. after room abort, reset, or\n * delete). Each dropped inject is settled as an undispatched error so its\n * owner can release state — an ask_session queued behind the target's\n * running turn has no reply callback yet, and would otherwise leave the\n * caller waiting until the pending-ask TTL.\n */\n drop(topicId: string, reason = \"target session was stopped before the request ran\"): number {\n const bucket = this.queue.get(topicId);\n this.queue.delete(topicId);\n if (!bucket) return 0;\n const dropped = bucket.items.slice(bucket.head);\n for (const inject of dropped) {\n try {\n inject.onSettled?.({ queryId: \"\", kind: \"error\", error: reason });\n } catch (err) {\n logger.warn(\n { err, topicId, requestId: inject.requestId },\n \"session inject drop settlement hook failed\",\n );\n }\n }\n return dropped.length;\n }\n\n /** Number of queued injects for a topic. */\n size(topicId: string): number {\n const bucket = this.queue.get(topicId);\n return bucket ? bucket.items.length - bucket.head : 0;\n }\n\n /** Remove one queued inject by request id. Used by bounded background queues. */\n remove(topicId: string, requestId: string): DeferredInject | undefined {\n const bucket = this.queue.get(topicId);\n if (!bucket?.requestIds.has(requestId)) return undefined;\n const index = bucket.items.findIndex(\n (entry, entryIndex) => entryIndex >= bucket.head && entry.requestId === requestId,\n );\n if (index < 0) return undefined;\n const [removed] = bucket.items.splice(index, 1);\n bucket.requestIds.delete(requestId);\n this.compactOrDelete(topicId, bucket);\n return removed;\n }\n}\n\nexport interface DeferredInjectBatcherOptions {\n queue: InterSessionQueue;\n delayMs: number;\n isBusy: (topicId: string) => boolean;\n dispatch: (inject: DeferredInject) => void;\n schedule?: (callback: () => void, delayMs: number) => unknown;\n}\n\n/**\n * Gives caller-bound ask replies a short window to collect before dispatch.\n * `dequeueAll()` only merges entries that are already queued, so the first\n * reply must pass through this gate too when its caller room is idle.\n */\nexport class DeferredInjectBatcher {\n private readonly timers = new Map<string, unknown>();\n private readonly scheduleTimer: (callback: () => void, delayMs: number) => unknown;\n\n constructor(private readonly options: DeferredInjectBatcherOptions) {\n this.scheduleTimer = options.schedule ?? ((callback, delayMs) => setTimeout(callback, delayMs));\n }\n\n enqueue(inject: DeferredInject): boolean {\n const queued = this.options.queue.enqueue(inject.topicId, inject);\n if (!queued) return false;\n if (this.timers.has(inject.topicId)) return true;\n\n const timer = this.scheduleTimer(() => {\n this.timers.delete(inject.topicId);\n // A busy room owns the drain in its turn-finally path. Leaving the\n // entries queued avoids a second dispatcher racing that owner.\n if (this.options.isBusy(inject.topicId)) return;\n const batch = this.options.queue.dequeueAll(inject.topicId);\n if (batch) this.options.dispatch(batch);\n }, this.options.delayMs);\n this.timers.set(inject.topicId, timer);\n return true;\n }\n\n isScheduled(topicId: string): boolean {\n return this.timers.has(topicId);\n }\n}\n\nexport const interSessionQueue = new InterSessionQueue();\n\n// ── Defer / drain helpers (thin wrappers around InterSessionQueue) ────\n\n/**\n * Enqueue a deferred inject. With the full queue, this also deduplicates by\n * requestId.\n */\nexport function deferInject(inject: DeferredInject): boolean {\n return interSessionQueue.enqueue(inject.topicId, inject);\n}\n\n/**\n * Remove and return the longest mergeable batch of deferred injects for a room,\n * or undefined if empty.\n */\nexport function takeDeferredInject(topicId: string): DeferredInject | undefined {\n return interSessionQueue.dequeueAll(topicId);\n}\n\n/** Cancel one deferred inject before it claims the room. */\nexport function cancelDeferredInject(topicId: string, requestId: string): boolean {\n return interSessionQueue.remove(topicId, requestId) !== undefined;\n}\n\n// ── WS discriminator ───────────────────────────────────────────────────\n\n/** Map the internal AbortReason → the WS `ai_aborted` discriminator. */\nexport function wsAbortReason(reason: AbortReason): \"superseded\" | \"stopped\" {\n return reason === AbortReason.Internal ? \"superseded\" : \"stopped\";\n}\n",
92
92
  "export interface TopicArchiveMessageRow {\n id: string;\n topic_id: string;\n parent_id: string | null;\n author_id: string;\n text: string;\n query_id: string | null;\n agent_type: string | null;\n model: string | null;\n attachments: string | null;\n usage: string | null;\n deleted: number;\n created_at: string;\n rowid?: number;\n}\n\nexport type TopicArchiveRole = \"user\" | \"assistant\" | \"system\";\n\nexport interface TopicArchiveTranscriptRecord {\n type: \"message\";\n index: number;\n topicId: string;\n topicTitle: string;\n id: string;\n createdAt: string;\n rowid?: number;\n role: TopicArchiveRole;\n speaker: string;\n line: string;\n text: string;\n authorId: string;\n parentId?: string;\n queryId?: string;\n agentType?: string;\n model?: string;\n attachments?: unknown;\n usage?: unknown;\n message: TopicArchiveMessageRow;\n}\n\nfunction parseJsonField(value: string | null): unknown | undefined {\n if (!value) return undefined;\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nfunction transcriptRole(row: TopicArchiveMessageRow): TopicArchiveRole {\n if (row.author_id === \"system\") return \"system\";\n if (row.author_id === \"ai\" || row.agent_type) return \"assistant\";\n return \"user\";\n}\n\nfunction transcriptSpeaker(row: TopicArchiveMessageRow, role: TopicArchiveRole): string {\n if (role === \"assistant\") return row.agent_type ? `assistant:${row.agent_type}` : \"assistant\";\n if (role === \"system\") return \"system\";\n return `user:${row.author_id}`;\n}\n\nfunction oneLine(text: string): string {\n const compact = text.replace(/\\s+/g, \" \").trim();\n return compact.length > 2000 ? `${compact.slice(0, 2000)}...` : compact;\n}\n\nexport function formatTopicArchiveTranscriptRecord(\n row: TopicArchiveMessageRow,\n topicTitle: string,\n index: number,\n): TopicArchiveTranscriptRecord {\n const role = transcriptRole(row);\n const speaker = transcriptSpeaker(row, role);\n const attachments = parseJsonField(row.attachments);\n const usage = parseJsonField(row.usage);\n\n return {\n type: \"message\",\n index,\n topicId: row.topic_id,\n topicTitle,\n id: row.id,\n createdAt: row.created_at,\n ...(row.rowid !== undefined ? { rowid: row.rowid } : {}),\n role,\n speaker,\n line: `[${row.created_at}] ${speaker}: ${oneLine(row.text)}`,\n text: row.text,\n authorId: row.author_id,\n ...(row.parent_id ? { parentId: row.parent_id } : {}),\n ...(row.query_id ? { queryId: row.query_id } : {}),\n ...(row.agent_type ? { agentType: row.agent_type } : {}),\n ...(row.model ? { model: row.model } : {}),\n ...(attachments !== undefined ? { attachments } : {}),\n ...(usage !== undefined ? { usage } : {}),\n message: row,\n };\n}\n",
93
- "import { mkdirSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { countMemoryArchiveExchanges } from \"#agents/memory-archive-policy\";\nimport { logger } from \"#platform/logger\";\nimport { sanitizeTopicName } from \"#security/sanitize\";\nimport { getAllMessagesForTopic, getMessagesForTopicAfterRowid } from \"#storage/api-messages\";\nimport { readRawConversation } from \"#storage/conversations\";\nimport { formatTopicArchiveTranscriptRecord } from \"#storage/topic-transcript\";\nimport { getSharedWikiDir } from \"#storage/wiki\";\nimport type { UnifiedEvent } from \"#types\";\n\nexport interface TopicArchiveResult {\n path: string;\n messageCount: number;\n exchangeCount: number;\n lastRowid: number;\n}\n\nexport interface ConversationEventArchiveResult {\n path: string;\n eventCount: number;\n}\n\nexport interface TopicArchiveOptions {\n afterRowid?: number;\n reason?: \"delete\" | \"idle\" | \"reset\";\n}\n\n/**\n * Forensic-archive a topic's SQLite-backed messages into the shared\n * `wiki/archive/` as JSONL transcript records.\n *\n * Otium keeps conversations in the `api_messages` table (SQLite), not in the\n * `PROJECT_ROOT/logs` activity-log files that Otium's `archiveSessionLogs`\n * scans — so this is Otium's native equivalent. Each JSONL record keeps the raw\n * DB message under `message`, plus a human-readable `line`/`role`/`speaker` for\n * the background wiki-archiver turn.\n *\n * Output lands in the **shared** wiki root (see `getSharedWikiDir`) because\n * that is the root the wiki MCP serves in topic-id mode; writing it elsewhere\n * would make the archive invisible to later `wiki_query` calls.\n *\n * Returns `null` when the selected range has no messages.\n */\nexport function archiveTopicMessages(\n topicId: string,\n topicTitle: string,\n options: TopicArchiveOptions = {},\n): TopicArchiveResult | null {\n const rows =\n options.afterRowid !== undefined\n ? getMessagesForTopicAfterRowid(topicId, options.afterRowid)\n : getAllMessagesForTopic(topicId);\n if (rows.length === 0) return null;\n\n const safeTopic = sanitizeTopicName(topicTitle, true);\n const archiveDir = join(getSharedWikiDir(), \"archive\");\n mkdirSync(archiveDir, { recursive: true });\n\n // Collision-proof file name: a topic deleted twice on the same day (e.g.\n // recreated then deleted again) must not clobber the earlier archive.\n const date = new Date().toISOString().slice(0, 10);\n const reasonSuffix = options.reason && options.reason !== \"delete\" ? `_${options.reason}` : \"\";\n let filename: string;\n let counter = 1;\n const lastRowid = rows.reduce((max, row) => Math.max(max, row.rowid ?? 0), 0);\n const body = `${rows\n .map((r, index) => JSON.stringify(formatTopicArchiveTranscriptRecord(r, topicTitle, index + 1)))\n .join(\"\\n\")}\\n`;\n let path: string;\n while (true) {\n filename = `${safeTopic}_${date}${reasonSuffix}${counter === 1 ? \"\" : `_${counter}`}.jsonl`;\n path = join(archiveDir, filename);\n try {\n writeFileSync(path, body, { flag: \"wx\" });\n break;\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== \"EEXIST\") throw err;\n counter++;\n }\n }\n\n const exchangeCount = countMemoryArchiveExchanges(rows);\n logger.info(\n { topicId, topicTitle, archive: path, messageCount: rows.length, exchangeCount, lastRowid },\n \"archiveTopicMessages: archived topic messages\",\n );\n return { path, messageCount: rows.length, exchangeCount, lastRowid };\n}\n\nfunction eventText(event: UnifiedEvent): string {\n if (\"content\" in event && typeof event.content === \"string\") return event.content;\n if (event.type === \"session\") return `sessionId: ${event.sessionId}`;\n if (event.type === \"tool_use\") {\n return `${event.name}(${JSON.stringify(event.input)})`;\n }\n if (event.type === \"tool_progress\") return `${event.toolName} · ${event.elapsed}s`;\n if (event.type === \"tool_use_summary\") return event.summary;\n if (event.type === \"file\") return `${event.path} (${event.source})`;\n return JSON.stringify(event);\n}\n\nfunction eventSpeaker(event: UnifiedEvent, agent: string): string {\n if (event.type === \"user_message\") return \"user\";\n if (event.type === \"tool_use\" || event.type === \"tool_result\") return `tool:${agent}`;\n if (event.type === \"reasoning\") return `reasoning:${agent}`;\n if (event.type === \"session\") return `session:${agent}`;\n return `assistant:${agent}`;\n}\n\n/**\n * Preserve the append-only provider-neutral event stream before topic teardown.\n * Unlike the visible transcript this includes tools, reasoning, errors, and\n * every provider session id across agent switches and compactions.\n */\nexport function archiveConversationEvents(\n topicId: string,\n topicTitle: string,\n userId: string,\n options: Pick<TopicArchiveOptions, \"reason\"> = {},\n): ConversationEventArchiveResult | null {\n const entries = readRawConversation(userId, topicTitle);\n if (entries.length === 0) return null;\n\n const archiveDir = join(getSharedWikiDir(), \"archive\");\n mkdirSync(archiveDir, { recursive: true });\n const safeTopic = sanitizeTopicName(topicTitle, true);\n const date = new Date().toISOString().slice(0, 10);\n const reasonSuffix = options.reason && options.reason !== \"delete\" ? `_${options.reason}` : \"\";\n const body = `${entries\n .map((entry, index) => {\n const text = eventText(entry.event);\n const speaker = eventSpeaker(entry.event, entry.agent);\n return JSON.stringify({\n type: \"event\",\n index: index + 1,\n topicId,\n topicTitle,\n createdAt: entry.ts,\n role: entry.event.type === \"user_message\" ? \"user\" : \"assistant\",\n speaker,\n line: `[${entry.ts}] ${speaker}: ${text.replace(/\\s+/g, \" \").trim().slice(0, 2000)}`,\n text,\n agent: entry.agent,\n eventType: entry.event.type,\n event: entry.event,\n });\n })\n .join(\"\\n\")}\\n`;\n\n let counter = 1;\n while (true) {\n const suffix = counter === 1 ? \"\" : `_${counter}`;\n const path = join(archiveDir, `${safeTopic}_${date}${reasonSuffix}_events${suffix}.jsonl`);\n try {\n writeFileSync(path, body, { flag: \"wx\" });\n logger.info(\n { topicId, topicTitle, archive: path, eventCount: entries.length },\n \"archiveConversationEvents: archived raw conversation events\",\n );\n return { path, eventCount: entries.length };\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== \"EEXIST\") throw error;\n counter++;\n }\n }\n}\n",
93
+ "import { mkdirSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { countMemoryArchiveExchanges } from \"#agents/memory-archive-policy\";\nimport { logger } from \"#platform/logger\";\nimport { sanitizeTopicName } from \"#security/sanitize\";\nimport { getAllMessagesForTopic, getMessagesForTopicAfterRowid } from \"#storage/api-messages\";\nimport { readRawConversation } from \"#storage/conversations\";\nimport { formatTopicArchiveTranscriptRecord } from \"#storage/topic-transcript\";\nimport { getSharedWikiDir } from \"#storage/wiki\";\nimport type { UnifiedEvent } from \"#types\";\n\nexport interface TopicArchiveResult {\n path: string;\n messageCount: number;\n exchangeCount: number;\n lastRowid: number;\n}\n\nexport interface ConversationEventArchiveResult {\n path: string;\n eventCount: number;\n}\n\nexport interface TopicArchiveOptions {\n afterRowid?: number;\n reason?: \"delete\" | \"idle\" | \"reset\";\n}\n\n/**\n * Forensic-archive a topic's SQLite-backed messages into the shared\n * `wiki/archive/` as JSONL transcript records.\n *\n * Otium keeps conversations in the `api_messages` table (SQLite), not in the\n * `PROJECT_ROOT/logs` activity-log files that Otium's `archiveSessionLogs`\n * scans — so this is Otium's native equivalent. Each JSONL record keeps the raw\n * DB message under `message`, plus a human-readable `line`/`role`/`speaker` for\n * the background wiki-archiver turn.\n *\n * Output lands in the **shared** wiki root (see `getSharedWikiDir`) because\n * that is the root the wiki MCP serves in topic-id mode; writing it elsewhere\n * would make the archive invisible to later `wiki_query` calls.\n *\n * Returns `null` when the selected range has no messages.\n */\nexport function archiveTopicMessages(\n topicId: string,\n topicTitle: string,\n options: TopicArchiveOptions = {},\n): TopicArchiveResult | null {\n const rows =\n options.afterRowid !== undefined\n ? getMessagesForTopicAfterRowid(topicId, options.afterRowid)\n : getAllMessagesForTopic(topicId);\n if (rows.length === 0) return null;\n\n const safeTopic = sanitizeTopicName(topicTitle, true);\n const archiveDir = join(getSharedWikiDir(), \"archive\");\n mkdirSync(archiveDir, { recursive: true });\n\n // Collision-proof file name: a topic deleted twice on the same day (e.g.\n // recreated then deleted again) must not clobber the earlier archive.\n const date = new Date().toISOString().slice(0, 10);\n const reasonSuffix = options.reason && options.reason !== \"delete\" ? `_${options.reason}` : \"\";\n let filename: string;\n let counter = 1;\n const lastRowid = rows.reduce((max, row) => Math.max(max, row.rowid ?? 0), 0);\n const body = `${rows\n .map((r, index) => JSON.stringify(formatTopicArchiveTranscriptRecord(r, topicTitle, index + 1)))\n .join(\"\\n\")}\\n`;\n let path: string;\n while (true) {\n filename = `${safeTopic}_${date}${reasonSuffix}${counter === 1 ? \"\" : `_${counter}`}.jsonl`;\n path = join(archiveDir, filename);\n try {\n writeFileSync(path, body, { flag: \"wx\" });\n break;\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== \"EEXIST\") throw err;\n counter++;\n }\n }\n\n const exchangeCount = countMemoryArchiveExchanges(rows);\n logger.info(\n { topicId, topicTitle, archive: path, messageCount: rows.length, exchangeCount, lastRowid },\n \"archiveTopicMessages: archived topic messages\",\n );\n return { path, messageCount: rows.length, exchangeCount, lastRowid };\n}\n\n/** Render one UnifiedEvent's primary text. Shared with session-history's read/search tools. */\nexport function eventText(event: UnifiedEvent): string {\n if (\"content\" in event && typeof event.content === \"string\") return event.content;\n if (event.type === \"session\") return `sessionId: ${event.sessionId}`;\n if (event.type === \"tool_use\") {\n return `${event.name}(${JSON.stringify(event.input)})`;\n }\n if (event.type === \"tool_progress\") return `${event.toolName} · ${event.elapsed}s`;\n if (event.type === \"tool_use_summary\") return event.summary;\n if (event.type === \"file\") return `${event.path} (${event.source})`;\n return JSON.stringify(event);\n}\n\n/** Render one UnifiedEvent's speaker label. Shared with session-history's read/search tools. */\nexport function eventSpeaker(event: UnifiedEvent, agent: string): string {\n if (event.type === \"user_message\") return \"user\";\n if (event.type === \"tool_use\" || event.type === \"tool_result\") return `tool:${agent}`;\n if (event.type === \"reasoning\") return `reasoning:${agent}`;\n if (event.type === \"session\") return `session:${agent}`;\n return `assistant:${agent}`;\n}\n\n/**\n * Preserve the append-only provider-neutral event stream before topic teardown.\n * Unlike the visible transcript this includes tools, reasoning, errors, and\n * every provider session id across agent switches and compactions.\n */\nexport function archiveConversationEvents(\n topicId: string,\n topicTitle: string,\n userId: string,\n options: Pick<TopicArchiveOptions, \"reason\"> = {},\n): ConversationEventArchiveResult | null {\n const entries = readRawConversation(userId, topicTitle);\n if (entries.length === 0) return null;\n\n const archiveDir = join(getSharedWikiDir(), \"archive\");\n mkdirSync(archiveDir, { recursive: true });\n const safeTopic = sanitizeTopicName(topicTitle, true);\n const date = new Date().toISOString().slice(0, 10);\n const reasonSuffix = options.reason && options.reason !== \"delete\" ? `_${options.reason}` : \"\";\n const body = `${entries\n .map((entry, index) => {\n const text = eventText(entry.event);\n const speaker = eventSpeaker(entry.event, entry.agent);\n return JSON.stringify({\n type: \"event\",\n index: index + 1,\n topicId,\n topicTitle,\n createdAt: entry.ts,\n role: entry.event.type === \"user_message\" ? \"user\" : \"assistant\",\n speaker,\n line: `[${entry.ts}] ${speaker}: ${text.replace(/\\s+/g, \" \").trim().slice(0, 2000)}`,\n text,\n agent: entry.agent,\n eventType: entry.event.type,\n event: entry.event,\n });\n })\n .join(\"\\n\")}\\n`;\n\n let counter = 1;\n while (true) {\n const suffix = counter === 1 ? \"\" : `_${counter}`;\n const path = join(archiveDir, `${safeTopic}_${date}${reasonSuffix}_events${suffix}.jsonl`);\n try {\n writeFileSync(path, body, { flag: \"wx\" });\n logger.info(\n { topicId, topicTitle, archive: path, eventCount: entries.length },\n \"archiveConversationEvents: archived raw conversation events\",\n );\n return { path, eventCount: entries.length };\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code !== \"EEXIST\") throw error;\n counter++;\n }\n }\n}\n",
94
94
  "import { rmSync } from \"node:fs\";\nimport { db } from \"#storage/forum-db\";\nimport { registerStorageSchemaInitializer } from \"#storage/storage-host\";\n\nregisterStorageSchemaInitializer((database) => {\n database.exec(`\n CREATE TABLE IF NOT EXISTS api_topic_archive_state (\n topic_id TEXT PRIMARY KEY,\n last_archived_rowid INTEGER NOT NULL DEFAULT 0,\n last_archive_path TEXT,\n updated_at TEXT NOT NULL\n );\n CREATE TABLE IF NOT EXISTS api_topic_archive_jobs (\n topic_id TEXT PRIMARY KEY,\n after_rowid INTEGER NOT NULL,\n last_rowid INTEGER NOT NULL,\n archive_path TEXT NOT NULL,\n message_count INTEGER NOT NULL,\n status TEXT NOT NULL CHECK (status IN ('running', 'pending')),\n updated_at TEXT NOT NULL\n );\n `);\n}, 30);\n\nconst ARCHIVE_JOB_STALE_MS = 30 * 60 * 1000;\n\nexport interface TopicArchiveState {\n topicId: string;\n lastArchivedRowid: number;\n lastArchivePath?: string;\n updatedAt: string;\n}\n\nexport interface TopicArchiveJob {\n topicId: string;\n afterRowid: number;\n lastRowid: number;\n archivePath: string;\n messageCount: number;\n status: \"running\" | \"pending\";\n updatedAt: string;\n}\n\nexport interface TopicArchiveJobCandidate {\n lastRowid: number;\n archivePath: string;\n messageCount: number;\n}\n\ninterface TopicArchiveStateRow {\n topic_id: string;\n last_archived_rowid: number;\n last_archive_path: string | null;\n updated_at: string;\n}\n\ninterface TopicArchiveJobRow {\n topic_id: string;\n after_rowid: number;\n last_rowid: number;\n archive_path: string;\n message_count: number;\n status: \"running\" | \"pending\";\n updated_at: string;\n}\n\nfunction rowToJob(row: TopicArchiveJobRow): TopicArchiveJob {\n return {\n topicId: row.topic_id,\n afterRowid: row.after_rowid,\n lastRowid: row.last_rowid,\n archivePath: row.archive_path,\n messageCount: row.message_count,\n status: row.status,\n updatedAt: row.updated_at,\n };\n}\n\nexport function getTopicArchiveState(topicId: string): TopicArchiveState | null {\n const row = db.query(\"SELECT * FROM api_topic_archive_state WHERE topic_id = ?\").get(topicId) as\n | TopicArchiveStateRow\n | undefined;\n if (!row) return null;\n return {\n topicId: row.topic_id,\n lastArchivedRowid: row.last_archived_rowid,\n lastArchivePath: row.last_archive_path ?? undefined,\n updatedAt: row.updated_at,\n };\n}\n\nexport function setTopicArchiveState(\n topicId: string,\n lastArchivedRowid: number,\n lastArchivePath?: string,\n): void {\n db.query(\n `INSERT INTO api_topic_archive_state (topic_id, last_archived_rowid, last_archive_path, updated_at)\n VALUES (?, ?, ?, ?)\n ON CONFLICT(topic_id) DO UPDATE SET\n last_archived_rowid = excluded.last_archived_rowid,\n last_archive_path = excluded.last_archive_path,\n updated_at = excluded.updated_at`,\n ).run(topicId, lastArchivedRowid, lastArchivePath ?? null, new Date().toISOString());\n}\n\n/** Atomically reserve one active-topic archive job across runtime processes. */\nexport function claimTopicArchiveJob(\n topicId: string,\n create: (afterRowid: number) => TopicArchiveJobCandidate | null,\n now = Date.now(),\n): { kind: \"claimed\"; job: TopicArchiveJob } | { kind: \"busy\" } | null {\n const claimExisting = () =>\n db.transaction(() => {\n const existing = db\n .query<TopicArchiveJobRow, [string]>(\n \"SELECT * FROM api_topic_archive_jobs WHERE topic_id = ?\",\n )\n .get(topicId);\n if (!existing) return null;\n const updatedAt = Date.parse(existing.updated_at);\n if (\n existing.status === \"running\" &&\n Number.isFinite(updatedAt) &&\n now - updatedAt < ARCHIVE_JOB_STALE_MS\n ) {\n return { kind: \"busy\" } as const;\n }\n const timestamp = new Date(now).toISOString();\n db.query(\n \"UPDATE api_topic_archive_jobs SET status = 'running', updated_at = ? WHERE topic_id = ?\",\n ).run(timestamp, topicId);\n return {\n kind: \"claimed\",\n job: rowToJob({ ...existing, status: \"running\", updated_at: timestamp }),\n } as const;\n })();\n\n const existingClaim = claimExisting();\n if (existingClaim) return existingClaim;\n\n // File serialization stays outside the SQLite write transaction. Only the\n // short compare-and-insert below is serialized across runtime processes.\n for (let attempt = 0; attempt < 2; attempt++) {\n const afterRowid = getTopicArchiveState(topicId)?.lastArchivedRowid ?? 0;\n const candidate = create(afterRowid);\n if (!candidate) return null;\n const result = db.transaction(() => {\n const existing = db\n .query<TopicArchiveJobRow, [string]>(\n \"SELECT * FROM api_topic_archive_jobs WHERE topic_id = ?\",\n )\n .get(topicId);\n if (existing) return { kind: \"busy\" } as const;\n const currentRowid = getTopicArchiveState(topicId)?.lastArchivedRowid ?? 0;\n if (currentRowid !== afterRowid) return { kind: \"stale\" } as const;\n const timestamp = new Date(now).toISOString();\n db.query(\n `INSERT INTO api_topic_archive_jobs\n (topic_id, after_rowid, last_rowid, archive_path, message_count, status, updated_at)\n VALUES (?, ?, ?, ?, ?, 'running', ?)`,\n ).run(\n topicId,\n afterRowid,\n candidate.lastRowid,\n candidate.archivePath,\n candidate.messageCount,\n timestamp,\n );\n return {\n kind: \"claimed\",\n job: {\n topicId,\n afterRowid,\n lastRowid: candidate.lastRowid,\n archivePath: candidate.archivePath,\n messageCount: candidate.messageCount,\n status: \"running\",\n updatedAt: timestamp,\n },\n } as const;\n })();\n if (result.kind === \"claimed\") return result;\n rmSync(candidate.archivePath, { force: true });\n if (result.kind === \"busy\") return result;\n }\n return claimExisting() ?? { kind: \"busy\" };\n}\n\n/** Advance the durable cursor only after the memory turn completes. */\nexport function settleTopicArchiveJob(\n topicId: string,\n archivePath: string,\n success: boolean,\n): void {\n db.transaction(() => {\n const job = db\n .query<TopicArchiveJobRow, [string, string]>(\n \"SELECT * FROM api_topic_archive_jobs WHERE topic_id = ? AND archive_path = ?\",\n )\n .get(topicId, archivePath);\n if (!job) return;\n if (!success) {\n db.query(\n \"UPDATE api_topic_archive_jobs SET status = 'pending', updated_at = ? WHERE topic_id = ? AND archive_path = ?\",\n ).run(new Date().toISOString(), topicId, archivePath);\n return;\n }\n const current = getTopicArchiveState(topicId)?.lastArchivedRowid ?? 0;\n setTopicArchiveState(topicId, Math.max(current, job.last_rowid), job.archive_path);\n db.query(\"DELETE FROM api_topic_archive_jobs WHERE topic_id = ? AND archive_path = ?\").run(\n topicId,\n archivePath,\n );\n })();\n}\n\n/** Remove the idle-archive cursor for a topic that no longer exists. */\nexport function deleteTopicArchiveState(topicId: string): boolean {\n return db.transaction(() => {\n db.query(\"DELETE FROM api_topic_archive_jobs WHERE topic_id = ?\").run(topicId);\n return (\n db.query(\"DELETE FROM api_topic_archive_state WHERE topic_id = ?\").run(topicId).changes > 0\n );\n })();\n}\n",
95
95
  "import { runArchiverTurn } from \"#agents/archiver\";\nimport {\n countMemoryArchiveExchanges,\n meetsMemoryArchiveExchangeThreshold,\n} from \"#agents/memory-archive-policy\";\nimport { logger } from \"#platform/logger\";\nimport { getRoomQuery } from \"#query/active-rooms\";\nimport { getMessagesForTopicAfterRowid } from \"#storage/api-messages\";\nimport { getTopic, getTopicMemoryOrigin } from \"#storage/api-topics\";\nimport { archiveTopicMessages } from \"#storage/topic-archive\";\nimport { claimTopicArchiveJob, settleTopicArchiveJob } from \"#storage/topic-archive-state\";\n\nconst DEFAULT_IDLE_DELAY_MS = 6 * 60 * 60 * 1000;\nconst DEFAULT_MIN_MESSAGES = 8;\n\ntype IdleArchiveStatus =\n | \"scheduled\"\n | \"disabled\"\n | \"busy\"\n | \"topic-not-found\"\n | \"not-ai-invited\"\n | \"mention-only-channel\"\n | \"below-threshold\"\n | \"archived\"\n | \"deferred\"\n | \"empty\";\n\nexport interface ActiveTopicArchiveOptions {\n reason: \"idle\" | \"reset\";\n minMessages: number;\n /** Preserve the raw snapshot but skip the memory agent below this exchange count. */\n minExchanges?: number;\n allowMentionOnly?: boolean;\n skipBusyCheck?: boolean;\n enabled?: boolean;\n isBusy?: (topicId: string) => boolean;\n onBusy?: (topicId: string, userId: string) => void;\n archiveMessages?: typeof archiveTopicMessages;\n rawArchivePaths?: string[];\n launchArchiver?: typeof runArchiverTurn;\n settleArchiveJob?: typeof settleTopicArchiveJob;\n /** Called once when a launched memory turn finishes, successfully or not. */\n onSettled?: (success: boolean) => void;\n}\n\nconst timers = new Map<string, ReturnType<typeof setTimeout>>();\n\n/** Cancel a pending idle snapshot before a topic is hard-deleted. */\nexport function cancelIdleArchiveForTopic(topicId: string): boolean {\n const timer = timers.get(topicId);\n if (!timer) return false;\n clearTimeout(timer);\n timers.delete(topicId);\n return true;\n}\n\nfunction envFlagEnabled(name: string, fallback: boolean): boolean {\n const raw = process.env[name]?.trim().toLowerCase();\n if (!raw) return fallback;\n return ![\"0\", \"false\", \"off\", \"no\"].includes(raw);\n}\n\nfunction envPositiveInt(name: string, fallback: number): number {\n const value = Number.parseInt(process.env[name] ?? \"\", 10);\n return Number.isFinite(value) && value > 0 ? value : fallback;\n}\n\nexport function idleArchiveDelayMs(): number {\n return envPositiveInt(\"NEGOTIUM_IDLE_ARCHIVE_DELAY_MS\", DEFAULT_IDLE_DELAY_MS);\n}\n\nexport function idleArchiveMinMessages(): number {\n return envPositiveInt(\"NEGOTIUM_IDLE_ARCHIVE_MIN_MESSAGES\", DEFAULT_MIN_MESSAGES);\n}\n\nexport function idleArchiverEnabled(): boolean {\n return envFlagEnabled(\"NEGOTIUM_IDLE_ARCHIVER_ENABLED\", true);\n}\n\nexport function scheduleIdleArchiveForTopic(topicId: string, userId: string): IdleArchiveStatus {\n if (!idleArchiverEnabled()) return \"disabled\";\n\n const topic = getTopic(topicId);\n if (!topic) return \"topic-not-found\";\n if (!topic.agent) return \"not-ai-invited\";\n if (topic.aiMode === \"mention\") return \"mention-only-channel\";\n\n const existing = timers.get(topicId);\n if (existing) clearTimeout(existing);\n\n const timer = setTimeout(() => {\n timers.delete(topicId);\n runIdleArchiveForTopic(topicId, userId);\n }, idleArchiveDelayMs());\n timer.unref?.();\n timers.set(topicId, timer);\n return \"scheduled\";\n}\n\nexport function runIdleArchiveForTopic(topicId: string, userId: string): IdleArchiveStatus {\n if (!idleArchiverEnabled()) return \"disabled\";\n\n return archiveActiveTopicForMemory(topicId, userId, {\n reason: \"idle\",\n minMessages: idleArchiveMinMessages(),\n });\n}\n\n/**\n * Snapshot the unarchived tail of a live topic and launch its memory turn.\n * The shared rowid cursor prevents an explicit reset from re-archiving an\n * idle snapshot, and vice versa.\n */\nexport function archiveActiveTopicForMemory(\n topicId: string,\n userId: string,\n options: ActiveTopicArchiveOptions,\n): IdleArchiveStatus {\n if (options.reason === \"idle\" && !(options.enabled ?? idleArchiverEnabled())) return \"disabled\";\n\n const busy = options.isBusy ? options.isBusy(topicId) : Boolean(getRoomQuery(topicId));\n if (!options.skipBusyCheck && busy) {\n if (options.onBusy) options.onBusy(topicId, userId);\n else scheduleIdleArchiveForTopic(topicId, userId);\n return \"busy\";\n }\n\n const topic = getTopic(topicId);\n if (!topic) return \"topic-not-found\";\n if (!topic.agent) return \"not-ai-invited\";\n if (!options.allowMentionOnly && topic.aiMode === \"mention\") return \"mention-only-channel\";\n\n let skipped: \"below-threshold\" | \"empty\" = \"empty\";\n let skipMemoryTurn = false;\n const claim = claimTopicArchiveJob(topicId, (afterRowid) => {\n const pending = getMessagesForTopicAfterRowid(topicId, afterRowid);\n const minMessages = options.minMessages;\n if (pending.length < minMessages) {\n skipped = \"below-threshold\";\n logger.debug(\n { topicId, topicTitle: topic.title, pending: pending.length, minMessages },\n \"topic-memory-archiver: skipped below threshold\",\n );\n return null;\n }\n const exchangeCount = countMemoryArchiveExchanges(pending);\n skipMemoryTurn =\n options.minExchanges !== undefined &&\n !meetsMemoryArchiveExchangeThreshold(exchangeCount, options.minExchanges, topic);\n const archived = (options.archiveMessages ?? archiveTopicMessages)(topicId, topic.title, {\n afterRowid,\n reason: options.reason,\n });\n if (!archived) return null;\n return {\n archivePath: archived.path,\n messageCount: archived.messageCount,\n lastRowid: archived.lastRowid,\n };\n });\n if (!claim) return skipped;\n if (claim.kind === \"busy\") return \"busy\";\n\n const { job } = claim;\n if (skipMemoryTurn) {\n settleTopicArchiveJob(topicId, job.archivePath, true);\n logger.info(\n {\n topicId,\n topicTitle: topic.title,\n messageCount: job.messageCount,\n minExchanges: options.minExchanges,\n archive: job.archivePath,\n reason: options.reason,\n },\n \"topic-memory-archiver: raw snapshot preserved below exchange threshold\",\n );\n return \"below-threshold\";\n }\n const memoryTopic = topic.memoryKey ? topic : (getTopicMemoryOrigin(topicId) ?? topic);\n const memoryTitle = memoryTopic.memoryKey?.trim() || memoryTopic.title;\n const launched = (options.launchArchiver ?? runArchiverTurn)({\n userId,\n sourceTopicId: topic.id,\n topicId: memoryTopic.id,\n topicTitle: memoryTitle,\n archivePath: job.archivePath,\n ...(options.rawArchivePaths ? { rawArchivePaths: options.rawArchivePaths } : {}),\n messageCount: job.messageCount,\n mode: \"active-topic\",\n onSettled: (success) => {\n let settled = false;\n try {\n (options.settleArchiveJob ?? settleTopicArchiveJob)(topicId, job.archivePath, success);\n settled = true;\n } catch (err) {\n logger.warn(\n { err, topicId, archive: job.archivePath },\n \"topic-memory-archiver: failed to settle archive job\",\n );\n } finally {\n // A reset must never hold topic maintenance forever because durable\n // archive settlement failed. Report failure so callers can release\n // their fence while the unchanged running job remains retryable.\n options.onSettled?.(settled && success);\n }\n },\n });\n if (!launched) {\n settleTopicArchiveJob(topicId, job.archivePath, false);\n return \"deferred\";\n }\n logger.info(\n {\n topicId,\n topicTitle: topic.title,\n messageCount: job.messageCount,\n archive: job.archivePath,\n reason: options.reason,\n },\n \"topic-memory-archiver: archived active topic snapshot\",\n );\n return \"archived\";\n}\n",
96
96
  "/** Shared MCP tool response helpers — reduce boilerplate for the common text response shape. */\n\nimport type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\n\nexport type McpContent = { type: \"text\"; text: string };\nexport type McpResponse = { content: McpContent[] };\nexport type McpErrorResponse = { content: McpContent[]; isError: true };\n\nexport function mcpOk(text: string): McpResponse {\n return { content: [{ type: \"text\", text }] };\n}\n\nexport function mcpError(text: string): McpErrorResponse {\n return { content: [{ type: \"text\", text }], isError: true };\n}\n\n/** Wire up an McpServer to stdio and start the listener. Standard entrypoint for stdio-based MCP servers. */\nexport async function connectStdio(server: McpServer): Promise<void> {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n\n/**\n * Parse the `--user-id=<N>` CLI flag from argv and return the raw decimal\n * string. Returns empty string on missing/invalid values so callers can\n * retain their existing \"userId || local\" guards.\n *\n * Rejects unsafe values so the id stays usable as a storage key / process arg\n * if spawn args ever come from an untrusted source.\n */\nexport function parseUserIdArg(args: string[]): string {\n const raw = args.find((a) => a.startsWith(\"--user-id=\"))?.split(\"=\")[1];\n if (!raw) return \"\";\n // REST API user ids can contain letters, dashes, underscores, and dots.\n // Restrict to a safe charset and reject path-traversal so the value stays\n // safe as a storage key / process arg.\n if (!/^[A-Za-z0-9._-]+$/.test(raw) || raw.includes(\"..\")) return \"\";\n return raw;\n}\n",
@@ -165,7 +165,7 @@
165
165
  "import { z } from \"zod\";\nimport { errorResult, type SharedMcpTool, textResult } from \"#agents/mcp-tools/common\";\n\nexport const VISUALS_MCP_KEY = \"visuals\";\n\nexport const showHtmlTool = {\n name: \"show_html\",\n description:\n \"Display charts, tables, or interactive HTML to the user in a sandboxed WebView side panel. Pass a complete, self-contained HTML string with inline CSS/JS. Local DOM interactions are supported. Links (<a href> to http/https URLs) are safe to include: a click opens the URL in the user's system browser. Network requests, external scripts, form posts, popups, and parent-window access are blocked.\",\n schema: {\n html: z.string().describe(\"Complete, self-contained HTML document or fragment to render.\"),\n title: z.string().optional().describe(\"Optional title shown above the rendered card.\"),\n },\n async handler() {\n return textResult(\"HTML card displayed to the user.\");\n },\n} satisfies SharedMcpTool;\n\nexport const showMermaidTool = {\n name: \"show_mermaid\",\n description:\n \"Render a Mermaid diagram in the user's visual side panel. Pass Mermaid DSL only, not markdown fences. Use this for flowcharts, sequence diagrams, class diagrams, state diagrams, ER diagrams, timelines, and architecture diagrams.\",\n schema: {\n code: z.string().describe(\"Mermaid diagram source without markdown code fences.\"),\n title: z.string().optional().describe(\"Optional title shown above the rendered card.\"),\n theme: z\n .enum([\"default\", \"neutral\", \"dark\", \"forest\"])\n .optional()\n .describe(\"Optional Mermaid theme. Defaults to neutral.\"),\n },\n async handler() {\n return textResult(\"Mermaid diagram displayed to the user.\");\n },\n} satisfies SharedMcpTool;\n\nexport const showImageTool = {\n name: \"show_image\",\n description:\n \"Display an image in the user's visual side panel. Provide either file_path for an image in the topic workspace, or file_id for an uploaded file already attached in this topic.\",\n schema: {\n file_path: z\n .string()\n .optional()\n .describe(\"Absolute or workspace-relative path to an image file.\"),\n file_id: z\n .string()\n .optional()\n .describe(\"Full Otium uploaded file UUID for an image attached in this topic.\"),\n title: z.string().optional().describe(\"Optional title shown above the rendered card.\"),\n alt: z.string().optional().describe(\"Optional alt text for the image.\"),\n },\n async handler(input) {\n if (!input?.file_path && !input?.file_id) {\n return errorResult(\"file_path or file_id is required.\");\n }\n return textResult(\"Image displayed to the user.\");\n },\n} satisfies SharedMcpTool;\n\nexport const visualToolDefinitions = [showHtmlTool, showMermaidTool, showImageTool] as const;\n",
166
166
  "import type { SharedMcpTool } from \"#agents/mcp-tools/common\";\nimport { showHtmlTool, showImageTool, showMermaidTool } from \"#agents/mcp-tools/visuals\";\n\n/** Backward-compatible Otium alias retained for persisted prompts and sessions. */\nexport const showPngTool = {\n name: \"show_png\",\n description:\n \"Backward-compatible alias for show_image. Display a PNG or other image from this topic's workspace or an uploaded file in the visual side panel.\",\n schema: showImageTool.schema,\n handler: showImageTool.handler,\n} satisfies SharedMcpTool;\n\nexport const otiumVisualToolDefinitions = [\n showHtmlTool,\n showMermaidTool,\n showImageTool,\n showPngTool,\n] as const;\n"
167
167
  ],
168
- "mappings": "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",
169
- "debugId": "AC0BD394FD56770E64756E2164756E21",
168
+ "mappings": "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",
169
+ "debugId": "ED5A62E03BAFB97964756E2164756E21",
170
170
  "names": []
171
171
  }