@lucern/mcp 0.2.0-alpha.9 → 0.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gateway.d.ts +0 -1
- package/dist/gateway.js +12201 -1306
- package/dist/gateway.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +8347 -816
- package/dist/index.js.map +1 -1
- package/dist/runtime.js +12992 -1403
- package/dist/runtime.js.map +1 -1
- package/package.json +4 -4
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../apps/mcp-server/src/handlers/sdk.ts","../../../apps/mcp-server/src/handlers/answers.ts","../../../apps/mcp-server/src/handlers/auto-branching.ts","../../contracts/src/ids.contract.ts","../../contracts/src/lens-filter.contract.ts","../../contracts/src/v1/topics/v1.ts","../../server-core/src/kernelApi.ts","../../../apps/mcp-server/src/kernelApi.ts","../../../apps/mcp-server/src/logging.ts","../../../apps/mcp-server/src/convex-client.ts","../../../apps/mcp-server/src/scope.ts","../../../apps/mcp-server/src/handlers/beliefs.ts","../../../apps/mcp-server/src/handlers/bootstrap-session.ts","../../../apps/mcp-server/src/handlers/bootstrap.ts","../../../apps/mcp-server/src/handlers/coding.ts","../../../apps/mcp-server/src/handlers/contracts.ts","../../../apps/mcp-server/src/handlers/contradictions.ts","../../../apps/mcp-server/src/handlers/coordination.ts","../../../apps/mcp-server/src/handlers/edges.ts","../../../apps/mcp-server/src/handlers/graph.ts","../../../apps/mcp-server/src/handlers/topics.ts","../../../apps/mcp-server/src/handlers/coverage.ts","../../../apps/mcp-server/src/handlers/discovery.ts","../../../apps/mcp-server/src/handlers/engineering-verification.ts","../../../apps/mcp-server/src/handlers/evidence.ts","../../../apps/mcp-server/src/handlers/identity.ts","../../../apps/mcp-server/src/handlers/intelligence.ts","../../../apps/mcp-server/src/handlers/judgments.ts","../../../apps/mcp-server/src/handlers/lenses.ts","../../../apps/mcp-server/src/handlers/lineage.ts","../../../apps/mcp-server/src/handlers/observations.ts","../../../apps/mcp-server/src/handlers/ontologies.ts","../../../apps/mcp-server/src/handlers/ontology-matching.ts","../../../apps/mcp-server/src/handlers/policy.ts","../../../apps/mcp-server/src/handlers/questions.ts","../../../apps/mcp-server/src/handlers/research.ts","../../../apps/mcp-server/src/handlers/research-verification.ts","../../server-core/src/domain/context/compile.ts","../../../apps/mcp-server/src/handlers/scope-context.ts","../../../apps/mcp-server/src/handlers/search.ts","../../../apps/mcp-server/src/handlers/tasks.ts","../../../apps/mcp-server/src/handlers/thesis-artifacts.ts","../../../apps/mcp-server/src/handlers/worktrees.ts","../../../apps/mcp-server/src/handlers/index.ts","../../../apps/mcp-server/src/write-policy.ts","../../../apps/mcp-server/src/credentials.ts"],"names":["kernelApi","kernelComponents","kernelInternal","api","components","path","defaultTopicId"],"mappings":"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","file":"runtime.js","sourcesContent":["import type { AuthContext } from \"./types.js\";\n\ntype HandlerSdkClient = Record<string, any>;\n\nconst handlerSdkClientCache = new WeakMap<AuthContext, HandlerSdkClient>();\n\nasync function resolveOntologyFromLookup(\n baseClient: Record<string, any>,\n input: Record<string, unknown>\n) {\n const id = readString(input.id ?? input.ontologyId);\n if (id) {\n return baseClient.ontologies.get(id);\n }\n\n const ontologyKey = readString(input.ontologyKey);\n if (!ontologyKey) {\n return {\n error: \"Either id or ontologyKey is required.\",\n };\n }\n\n const listResult = await baseClient.ontologies.list({\n tenantId: readString(input.tenantId),\n tier: readString(input.tier),\n status: readString(input.status),\n });\n const payload = asRecord(listResult);\n const rows = Array.isArray(payload.ontologies)\n ? payload.ontologies\n : Array.isArray(payload.definitions)\n ? payload.definitions\n : [];\n const tenantId = readString(input.tenantId);\n const match = rows.find((row) => {\n const record = asRecord(row);\n if (readString(record.ontologyKey) !== ontologyKey) {\n return false;\n }\n if (!tenantId) {\n return true;\n }\n return readString(record.tenantId) === tenantId;\n });\n\n return match\n ? asRecord(match)\n : {\n error: `Ontology not found: ${ontologyKey}`,\n };\n}\n\nfunction buildHandlerSdkClient(ctx: AuthContext): HandlerSdkClient {\n const baseClient = ctx.lucernClient as HandlerSdkClient;\n\n return {\n ...baseClient,\n ontologies: {\n ...baseClient.ontologies,\n get(input: string | Record<string, unknown>) {\n return typeof input === \"string\"\n ? baseClient.ontologies.get(input)\n : resolveOntologyFromLookup(baseClient, input ?? {});\n },\n },\n };\n}\n\nexport function getSdkClient(ctx: AuthContext): HandlerSdkClient {\n if (!ctx.lucernClient) {\n throw new Error(\"Lucern SDK client is not available for this MCP runtime.\");\n }\n\n const cached = handlerSdkClientCache.get(ctx);\n if (cached) {\n return cached;\n }\n\n const wrappedClient = buildHandlerSdkClient(ctx);\n handlerSdkClientCache.set(ctx, wrappedClient);\n return wrappedClient;\n}\n\nexport function formatSdkResult<T>(value: T): Record<string, unknown> {\n if (\n value &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n \"data\" in value\n ) {\n const envelope = value as { data?: Record<string, unknown> };\n if (\n envelope.data &&\n typeof envelope.data === \"object\" &&\n !Array.isArray(envelope.data)\n ) {\n return envelope.data;\n }\n }\n\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n return value as Record<string, unknown>;\n }\n\n return { value } as Record<string, unknown>;\n}\n\nexport function asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {};\n}\n\nexport function asJsonObject(\n value: unknown\n): Record<string, unknown> | undefined {\n const record = asRecord(value);\n return Object.keys(record).length > 0 ? record : undefined;\n}\n\nexport function readString(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : undefined;\n}\n\nexport function readNumber(value: unknown): number | undefined {\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n if (typeof value === \"string\") {\n const parsed = Number(value.trim());\n return Number.isFinite(parsed) ? parsed : undefined;\n }\n return undefined;\n}\n\nexport function readBoolean(value: unknown): boolean | undefined {\n if (typeof value === \"boolean\") {\n return value;\n }\n if (typeof value === \"string\") {\n const normalized = value.trim().toLowerCase();\n if (normalized === \"true\") {\n return true;\n }\n if (normalized === \"false\") {\n return false;\n }\n }\n return undefined;\n}\n\nexport function readStringArray(value: unknown): string[] | undefined {\n if (Array.isArray(value)) {\n const items = value\n .map((entry) => readString(entry))\n .filter((entry): entry is string => Boolean(entry));\n\n return items.length > 0 ? items : undefined;\n }\n\n if (typeof value === \"string\") {\n const normalized = value.trim();\n if (normalized.startsWith(\"[\")) {\n try {\n const parsed = JSON.parse(normalized);\n if (Array.isArray(parsed)) {\n return readStringArray(parsed);\n }\n } catch {\n // Ignore malformed JSON and fall through to undefined.\n }\n }\n }\n\n return undefined;\n}\n\nexport function readTimeRange(\n value: unknown\n): { start: number; end: number } | undefined {\n const record = asRecord(value);\n const start = readNumber(record.start);\n const end = readNumber(record.end);\n\n if (start === undefined && end === undefined) {\n return undefined;\n }\n\n return {\n start: start ?? Number.NaN,\n end: end ?? Number.NaN,\n };\n}\n","/**\n * Answer Handlers — create_answer, get_answer\n */\n\nimport type { HandlerModule } from \"./types.js\";\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\n\nexport const answerHandlers: HandlerModule = {\n async create_answer(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).answers.create({\n questionNodeId: args.questionNodeId as string,\n answerText: args.answerText as string,\n confidence: (args.confidence as string) || \"moderate\",\n evidenceNodeIds: (args.evidenceNodeIds as string[]) || [],\n answerSource: (args.answerSource as string) || \"ai_generated\",\n })\n );\n },\n\n async get_answer(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).answers.get({\n questionNodeId: args.questionNodeId as string,\n })\n );\n },\n};\n","/**\n * Auto-Branching Handlers — analyze_topic_density, apply_auto_branching\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const autoBranchingHandlers: HandlerModule = {\n async analyze_topic_density(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.analyzeTopicDensity(args)\n );\n },\n\n async apply_auto_branching(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.applyAutoBranching(args)\n );\n },\n};\n","export type DecodedPrefixedId = {\n prefix: string;\n value: string;\n};\n\nconst PREFIXED_ID_PATTERN = /^([a-z][a-z0-9]*)_(.+)$/;\n\nexport function encodePrefixedId(prefix: string, value: string): string {\n const normalizedPrefix = prefix.trim();\n const normalizedValue = value.trim();\n\n if (!normalizedPrefix || !normalizedValue) {\n throw new Error(\"Both prefix and value are required to encode a prefixed ID.\");\n }\n\n return `${normalizedPrefix}_${normalizedValue}`;\n}\n\nexport function decodePrefixedId(id: string): DecodedPrefixedId {\n const normalized = id.trim();\n const match = PREFIXED_ID_PATTERN.exec(normalized);\n\n if (!match) {\n throw new Error(`Invalid prefixed ID: ${id}`);\n }\n\n return {\n prefix: match[1],\n value: match[2],\n };\n}\n\nexport function hasPrefixedIdPrefix(id: string, prefix: string): boolean {\n const decoded = decodePrefixedId(id);\n return decoded.prefix === prefix.trim();\n}\n","/**\n * Lens Filter Criteria Contract\n *\n * Version-discriminated filter DSL for lenses. Each filter criteria document\n * carries a `version` and `kind` discriminator so future shapes can coexist\n * without schema migrations. The Convex `filterCriteria` field remains v.any()\n * — all type enforcement happens here at the TypeScript contract layer.\n *\n * Forward-compatibility guarantees:\n * - `version` field: new versions add fields, never remove or rename existing ones\n * - `kind` field: new filter kinds (temporal, confidence-range) can be added\n * without touching taxonomy code paths\n * - `entityTypeFilters` array items are open to extension in future versions\n * - Resolution logic switches on `version` + `kind` to select the right resolver\n *\n * @module lucern/contracts/src/lens-filter\n */\n\n// ---------------------------------------------------------------------------\n// V1: Taxonomy Filter — entity type + subtype matching\n// ---------------------------------------------------------------------------\n\n/**\n * A single entity type filter entry. Matches nodes whose `nodeType` equals\n * `entityTypeValue`, optionally further narrowed by subtype membership.\n *\n * V2 will add `propertyMatchers` here for arbitrary JSON Schema facet queries.\n */\nexport type EntityTypeFilterV1 = {\n /** References ontologyVersion.entityTypes[].value, e.g. \"company\" */\n entityTypeValue: string;\n\n /** Optional subtype narrowing. If omitted or empty, all subtypes match. */\n subtypeValues?: string[];\n};\n\n/**\n * Optional scope to restrict which ontology the filter resolves against.\n * If omitted, resolution uses whatever ontology is active in the workspace.\n */\nexport type OntologyScope = {\n /** Restrict to a specific ontology by key, e.g. \"vc-investment\" */\n ontologyKey?: string;\n};\n\n/**\n * Taxonomy filter criteria v1: entity type + subtype matching over ontology.\n */\nexport type TaxonomyFilterCriteriaV1 = {\n version: 1;\n kind: \"taxonomy\";\n entityTypeFilters: EntityTypeFilterV1[];\n ontologyScope?: OntologyScope;\n};\n\n// ---------------------------------------------------------------------------\n// Union: All filter criteria versions and kinds\n// ---------------------------------------------------------------------------\n\n/**\n * Discriminated union of all supported filter criteria.\n * Resolution logic switches on `version` + `kind`.\n *\n * To add a new filter kind:\n * 1. Define a new type (e.g., TemporalFilterCriteriaV1)\n * 2. Add it to this union\n * 3. Add a resolver in taxonomy-filter.ts\n * 4. No schema migration needed — filterCriteria is v.any()\n */\nexport type LensFilterCriteria = TaxonomyFilterCriteriaV1;\n// Future: | TemporalFilterCriteriaV1 | ConfidenceRangeFilterCriteriaV1 | ...\n\n// ---------------------------------------------------------------------------\n// Type guards\n// ---------------------------------------------------------------------------\n\nexport function isLensFilterCriteria(\n value: unknown\n): value is LensFilterCriteria {\n if (!value || typeof value !== \"object\") return false;\n const obj = value as Record<string, unknown>;\n return typeof obj.version === \"number\" && typeof obj.kind === \"string\";\n}\n\nexport function isTaxonomyFilterCriteriaV1(\n value: unknown\n): value is TaxonomyFilterCriteriaV1 {\n if (!isLensFilterCriteria(value)) return false;\n return value.version === 1 && value.kind === \"taxonomy\";\n}\n\n// ---------------------------------------------------------------------------\n// Validation\n// ---------------------------------------------------------------------------\n\nexport type FilterValidationResult =\n | { valid: true }\n | { valid: false; errors: string[] };\n\n/**\n * Validate a filter criteria document at the contract layer.\n * This runs before persisting to Convex.\n */\nexport function validateFilterCriteria(\n value: unknown\n): FilterValidationResult {\n if (value === undefined || value === null) {\n return { valid: true }; // filterCriteria is optional\n }\n\n if (!isLensFilterCriteria(value)) {\n return {\n valid: false,\n errors: [\n 'filterCriteria must have numeric \"version\" and string \"kind\" fields',\n ],\n };\n }\n\n if (isTaxonomyFilterCriteriaV1(value)) {\n return validateTaxonomyFilterV1(value);\n }\n\n // Cast to access properties — TypeScript narrows to `never` when all union\n // members are exhausted, but at runtime unknown version/kind combos are possible.\n const raw = value as { version: number; kind: string };\n return {\n valid: false,\n errors: [\n `Unsupported filter criteria: version=${raw.version}, kind=${raw.kind}`,\n ],\n };\n}\n\nfunction validateTaxonomyFilterV1(\n criteria: TaxonomyFilterCriteriaV1\n): FilterValidationResult {\n const errors: string[] = [];\n\n if (!Array.isArray(criteria.entityTypeFilters)) {\n errors.push(\"entityTypeFilters must be an array\");\n return { valid: false, errors };\n }\n\n if (criteria.entityTypeFilters.length === 0) {\n errors.push(\"entityTypeFilters must contain at least one entry\");\n return { valid: false, errors };\n }\n\n for (let i = 0; i < criteria.entityTypeFilters.length; i++) {\n const filter = criteria.entityTypeFilters[i];\n if (!filter || typeof filter.entityTypeValue !== \"string\") {\n errors.push(\n `entityTypeFilters[${i}].entityTypeValue must be a non-empty string`\n );\n continue;\n }\n if (filter.entityTypeValue.trim().length === 0) {\n errors.push(\n `entityTypeFilters[${i}].entityTypeValue must be a non-empty string`\n );\n }\n if (\n filter.subtypeValues !== undefined &&\n !Array.isArray(filter.subtypeValues)\n ) {\n errors.push(`entityTypeFilters[${i}].subtypeValues must be an array`);\n }\n }\n\n if (criteria.ontologyScope !== undefined) {\n if (\n typeof criteria.ontologyScope !== \"object\" ||\n criteria.ontologyScope === null\n ) {\n errors.push(\"ontologyScope must be an object\");\n }\n }\n\n return errors.length === 0\n ? { valid: true }\n : { valid: false, errors };\n}\n","/**\n * @lucern/contracts — TopicsV1 namespace (resource contracts)\n *\n * Moved from src/topic-scope.contract.ts in EK-16 T1 PR 2.\n * Compat shim remains at the old path until the Lucern 1.0.0 cut.\n */\n\nexport const ROOT_TOPIC_ID = \"n17tm38rwet7wqgzrmwahyt1z582590y\";\n\nexport type TopicDoc = {\n _id: string;\n name?: string;\n parentTopicId?: string;\n depth?: number;\n type?: string;\n};\n\n/**\n * BFS traversal collecting a topic and its neighborhood:\n * ancestors up to root + descendants down to maxDescendantDepth.\n */\nexport function collectTopicNeighborhood(\n topics: TopicDoc[],\n rootTopicId: string,\n maxDescendantDepth = 2\n): string[] {\n const byId = new Map<string, TopicDoc>();\n const children = new Map<string, string[]>();\n for (const topic of topics) {\n const id = String(topic._id);\n byId.set(id, topic);\n if (!children.has(id)) {\n children.set(id, []);\n }\n }\n for (const topic of topics) {\n if (!topic.parentTopicId) {\n continue;\n }\n const parent = String(topic.parentTopicId);\n const id = String(topic._id);\n const list = children.get(parent) || [];\n list.push(id);\n children.set(parent, list);\n }\n\n const selected = new Set<string>();\n selected.add(rootTopicId);\n\n // Ancestors\n let cursor = byId.get(rootTopicId);\n while (cursor?.parentTopicId) {\n const parentId = String(cursor.parentTopicId);\n if (selected.has(parentId)) {\n break;\n }\n selected.add(parentId);\n cursor = byId.get(parentId);\n }\n\n // Descendants\n const queue: Array<{ id: string; depth: number }> = [\n { id: rootTopicId, depth: 0 },\n ];\n while (queue.length > 0) {\n const current = queue.shift()!;\n if (current.depth >= maxDescendantDepth) {\n continue;\n }\n for (const childId of children.get(current.id) || []) {\n if (!selected.has(childId)) {\n selected.add(childId);\n }\n queue.push({ id: childId, depth: current.depth + 1 });\n }\n }\n\n return Array.from(selected);\n}\n","/**\n * Server-core kernelApi — host-registered Convex API binding.\n *\n * Hosts (Stack gateway, mcp-server, identity-template, etc.) call\n * registerKernelApi({ api, components, internal }) at boot with their\n * deployment's generated bindings. Server-core consumers continue to\n * use `api.xxx`, `components.xxx`, `internal.xxx` unchanged — the\n * exports are Proxies that dispatch to the registered binding at\n * access time.\n */\n\nexport interface KernelApiBinding {\n api: any;\n components: any;\n internal: any;\n}\n\nlet binding: KernelApiBinding | null = null;\n\nexport function registerKernelApi(nextBinding: KernelApiBinding): void {\n binding = nextBinding;\n}\n\nexport function isKernelApiRegistered(): boolean {\n return binding !== null;\n}\n\nfunction getBinding(): KernelApiBinding {\n if (!binding) {\n throw new Error(\n \"Server-core kernelApi not registered. \" +\n \"Call registerKernelApi({api, components, internal}) at host boot.\"\n );\n }\n return binding;\n}\n\nfunction makeProxy(which: keyof KernelApiBinding): any {\n return new Proxy({} as any, {\n get(_target, prop) {\n return getBinding()[which][prop as string];\n },\n });\n}\n\nexport const api: any = makeProxy(\"api\");\nexport const components: any = makeProxy(\"components\");\nexport const internal: any = makeProxy(\"internal\");\n","import {\n api as kernelApi,\n components as kernelComponents,\n internal as kernelInternal,\n} from \"@lucern/reasoning-kernel/_generated/api\";\nimport { registerKernelApi } from \"@lucern/server-core/adapters\";\n\nregisterKernelApi({\n api: kernelApi,\n components: kernelComponents,\n internal: kernelInternal,\n});\n\nexport const api = kernelApi as any;\nexport const components = kernelComponents as any;\nexport const internal = kernelInternal as any;\n","import { appendFileSync } from \"node:fs\";\n\nexport function isQuietMcpBoot(): boolean {\n return process.env.LUCERN_MCP_QUIET === \"1\";\n}\n\nexport function logMcpInfo(message: string): void {\n if (!isQuietMcpBoot()) {\n console.error(message);\n }\n}\n\nexport function appendMcpDiagnostics(\n event: string,\n fields: Record<string, unknown> = {}\n): void {\n const path = process.env.LUCERN_MCP_DIAGNOSTICS_FILE?.trim();\n if (!path) {\n return;\n }\n\n const payload = {\n ts: new Date().toISOString(),\n pid: process.pid,\n event,\n ...Object.fromEntries(\n Object.entries(fields).filter(([, value]) => value !== undefined)\n ),\n };\n\n try {\n appendFileSync(path, `${JSON.stringify(payload)}\\n`);\n } catch {\n // Diagnostics must never interfere with MCP startup.\n }\n}\n","/**\n * Convex Clients — Lazy-initialized admin-authed ConvexHttpClients for MCP server.\n *\n * LAZY INITIALIZATION: Clients are created on first use, not at import time.\n * This allows index.ts loadLucernEnv() to decode LUCERN_API_KEY and\n * STACK_API_KEY into their respective URL and deploy key env vars before\n * any Convex calls are made.\n *\n * Three clients:\n * - Lucern client → reasoning graph (good-blackbird / precious-dog) [required]\n * - Stack client → StackOS platform (sincere-shepherd / sleek-mink) [optional]\n * - Master Control client → control plane (utmost-ox / successful-clam) [optional]\n *\n * Lucern + Stack are decoded from API keys by index.ts resolveCredentials() at startup.\n * Master Control is resolved from MC_CONVEX_URL + MC_DEPLOY_KEY (set in ~/.lucern/credentials).\n * Uses deploy key auth to call internal mutations/queries directly,\n * bypassing Clerk (standard Convex server-to-server pattern).\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { api } from \"./kernelApi.js\";\nimport { ConvexHttpClient } from \"convex/browser\";\nimport { logMcpInfo } from \"./logging.js\";\n\n// ── Per-request client override (hosted multi-tenant) ─────────────────────\n// On Vercel, the hosted route serves multiple MCP instances (lucern, stack)\n// from the same process. Each instance needs to query a different Convex\n// deployment. AsyncLocalStorage lets handlers transparently use the correct\n// client without changing their call signatures.\n\nconst _requestScopedClient = new AsyncLocalStorage<ConvexHttpClient>();\n\n/**\n * Run a function with a request-scoped Convex client.\n * All `adminQuery`/`adminMutation`/`adminAction` calls within `fn` will\n * use the provided client instead of the process-level singleton.\n */\nexport function runWithScopedClient<T>(\n client: ConvexHttpClient,\n fn: () => T | Promise<T>\n): T | Promise<T> {\n return _requestScopedClient.run(client, fn);\n}\n\n/**\n * Create an admin-authed ConvexHttpClient for a specific deployment.\n * Used by the hosted route to create per-instance clients.\n */\nexport function createAdminClient(url: string, deployKey: string): ConvexHttpClient {\n const client = new ConvexHttpClient(url);\n (client as unknown as { setAdminAuth: (key: string) => void }).setAdminAuth(deployKey);\n return client;\n}\n\n// ── Lucern Client (required, lazy) ──────────────────────────────────────────\n\nlet _lucernClient: ConvexHttpClient | null = null;\n\n/**\n * Get the admin-authed Lucern ConvexHttpClient.\n * Checks AsyncLocalStorage first for per-request override (hosted multi-tenant),\n * then falls back to the process-level singleton.\n * Created on first call — env vars must be set by then (index.ts does this).\n */\nfunction getLucernClient(): ConvexHttpClient {\n const scoped = _requestScopedClient.getStore();\n if (scoped) {\n return scoped;\n }\n\n if (_lucernClient) {\n return _lucernClient;\n }\n\n const url = process.env.LUCERN_CONVEX_URL;\n const key = process.env.LUCERN_DEPLOY_KEY;\n\n if (!url) {\n throw new Error(\n \"LUCERN_CONVEX_URL is required. Ensure LUCERN_API_KEY is set in .env.lucern\"\n );\n }\n\n if (!key) {\n throw new Error(\n \"LUCERN_DEPLOY_KEY is required. Ensure LUCERN_API_KEY is set in .env.lucern\"\n );\n }\n\n _lucernClient = new ConvexHttpClient(url);\n // setAdminAuth exists at runtime but is not in the public type declarations.\n // This is the standard Convex pattern for server-to-server admin access.\n (\n _lucernClient as unknown as { setAdminAuth: (key: string) => void }\n ).setAdminAuth(key);\n\n logMcpInfo(`[lucern-graph] Lucern client initialized → ${url}`);\n return _lucernClient;\n}\n\n// ── Stack Client (optional, lazy) ───────────────────────────────────────────\n\nlet _stackClient: ConvexHttpClient | null = null;\nlet _stackClientChecked = false;\n\n/**\n * Get the admin-authed Stack ConvexHttpClient.\n * Returns null if STACK_API_KEY is not configured.\n * Created on first call — env vars must be set by then (index.ts does this).\n */\nfunction getStackClient(): ConvexHttpClient | null {\n if (_stackClientChecked) {\n return _stackClient;\n }\n\n const url = process.env.STACK_CONVEX_URL;\n const key = process.env.STACK_DEPLOY_KEY;\n\n if (url && key) {\n _stackClient = new ConvexHttpClient(url);\n (\n _stackClient as unknown as { setAdminAuth: (key: string) => void }\n ).setAdminAuth(key);\n logMcpInfo(`[lucern-graph] Stack client initialized → ${url}`);\n } else {\n logMcpInfo(\n \"[lucern-graph] Stack client not configured (no STACK_API_KEY). Stack tools unavailable.\"\n );\n }\n\n _stackClientChecked = true;\n return _stackClient;\n}\n\n// ── Admin helpers (Lucern) ──────────────────────────────────────────────────\n\n/**\n * Admin-authed mutation/query/action helpers for Lucern graph.\n * ConvexHttpClient types restrict .mutation()/.query() to public functions,\n * but admin auth enables internal function calls at runtime.\n * These helpers apply the necessary type assertions.\n */\n\n/**\n * MCP-layer metadata fields that handlers attach for observability but that\n * must NOT be forwarded to Convex mutations (validators reject unknown fields).\n * Some Convex functions accept these as v.optional() (S2-13K), but many don't.\n * Stripping here guarantees safety for all call sites while keeping the\n * observability data available for MCP-side logging.\n */\nconst MCP_META_KEYS = [\n \"mcpSessionId\",\n \"mcpToolName\",\n \"runtimeToolName\",\n \"runtimePackKey\",\n \"runtimePackInstallScope\",\n] as const;\ntype RuntimePackInstallScope = \"tenant\" | \"workspace\";\ntype MutationRuntimeFields = {\n runtimeToolName: string;\n runtimePackKey?: string;\n runtimePackInstallScope?: RuntimePackInstallScope;\n};\nconst mutationRuntimeCache = new Map<\n string,\n Promise<MutationRuntimeFields | null>\n>();\nconst packInstallScopeCache = new Map<\n string,\n Promise<RuntimePackInstallScope | undefined>\n>();\n\nasync function resolvePackInstallScope(\n packKey: string\n): Promise<RuntimePackInstallScope | undefined> {\n const normalizedPackKey = packKey.trim();\n if (!normalizedPackKey) {\n return;\n }\n\n let cached = packInstallScopeCache.get(normalizedPackKey);\n if (!cached) {\n cached = (async () => {\n const packDefinition = await mcAdminQuery(\n \"packs:getPackDefinition\" as any,\n {\n packKey: normalizedPackKey,\n }\n );\n const installScope = (packDefinition as { installScope?: unknown } | null)\n ?.installScope;\n if (installScope === \"tenant\" || installScope === \"workspace\") {\n return installScope;\n }\n throw new Error(\n `[mcp-runtime] Pack \"${normalizedPackKey}\" is missing a valid installScope`\n );\n })();\n packInstallScopeCache.set(normalizedPackKey, cached);\n }\n\n return await cached;\n}\n\nasync function resolveMutationRuntimeFields(\n toolName: unknown\n): Promise<MutationRuntimeFields | null> {\n if (typeof toolName !== \"string\" || toolName.trim().length === 0) {\n return null;\n }\n const normalizedToolName = toolName.trim();\n\n let cached = mutationRuntimeCache.get(normalizedToolName);\n if (!cached) {\n cached = (async () => {\n const tools = (await (getLucernClient() as any).query(\n api.toolAccess.getExecutableTools,\n {}\n )) as Array<{\n toolName?: string;\n isActive?: boolean;\n status?: string;\n packKey?: string;\n }>;\n const tool = tools.find(\n (candidate) =>\n candidate?.toolName === normalizedToolName &&\n candidate?.isActive !== false &&\n candidate?.status !== \"deprecated\" &&\n candidate?.status !== \"disabled\"\n );\n const packKey =\n typeof tool?.packKey === \"string\" ? tool.packKey.trim() : \"\";\n if (!packKey) {\n return { runtimeToolName: normalizedToolName };\n }\n\n return {\n runtimeToolName: normalizedToolName,\n runtimePackKey: packKey,\n runtimePackInstallScope: await resolvePackInstallScope(packKey),\n };\n })();\n mutationRuntimeCache.set(normalizedToolName, cached);\n }\n\n return await cached;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function adminMutation(fn: any, args: any): Promise<any> {\n // Strip MCP-layer metadata before forwarding to Convex.\n // These fields are used for session tracking / observability in the MCP layer\n // but cause ArgumentValidationError when the Convex validator doesn't expect them.\n const cleanArgs = { ...args };\n if (\n cleanArgs.runtimeToolName === undefined &&\n cleanArgs.runtimePackKey === undefined &&\n cleanArgs.runtimePackInstallScope === undefined\n ) {\n const runtimeFields = await resolveMutationRuntimeFields(args?.mcpToolName);\n if (runtimeFields) {\n Object.assign(cleanArgs, runtimeFields);\n }\n }\n for (const key of MCP_META_KEYS) {\n delete cleanArgs[key];\n }\n return (getLucernClient() as any).mutation(fn, cleanArgs);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function adminQuery(fn: any, args: any): Promise<any> {\n return (getLucernClient() as any).query(fn, args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function adminAction(fn: any, args: any): Promise<any> {\n return (getLucernClient() as any).action(fn, args);\n}\n\n// ── Admin helpers (Stack) ───────────────────────────────────────────────────\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function stackAdminMutation(fn: any, args: any): Promise<any> {\n const c = getStackClient();\n if (!c) {\n throw new Error(\n \"Stack client not configured (set STACK_API_KEY in .env.lucern)\"\n );\n }\n return (c as any).mutation(fn, args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function stackAdminQuery(fn: any, args: any): Promise<any> {\n const c = getStackClient();\n if (!c) {\n throw new Error(\n \"Stack client not configured (set STACK_API_KEY in .env.lucern)\"\n );\n }\n return (c as any).query(fn, args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function stackAdminAction(fn: any, args: any): Promise<any> {\n const c = getStackClient();\n if (!c) {\n throw new Error(\n \"Stack client not configured (set STACK_API_KEY in .env.lucern)\"\n );\n }\n return (c as any).action(fn, args);\n}\n\n// ── Master Control Client (optional, lazy) ───────────────────────────────\n// Control plane (utmost-ox-403 dev / successful-clam-833 prod).\n// Stores: methodology pack definitions, tenant assignments, API key validation.\n// Tenant-custom packs live in the TENANT's deployment (Lucern client), not here.\n// MCP reads from BOTH to compile the full methodology set.\n\nlet _mcClient: ConvexHttpClient | null = null;\nlet _mcClientChecked = false;\n\nfunction getMcClient(): ConvexHttpClient | null {\n if (_mcClientChecked) {\n return _mcClient;\n }\n\n const url = process.env.MC_CONVEX_URL;\n const key = process.env.MC_DEPLOY_KEY;\n\n if (url && key) {\n _mcClient = new ConvexHttpClient(url);\n (\n _mcClient as unknown as { setAdminAuth: (key: string) => void }\n ).setAdminAuth(key);\n logMcpInfo(`[lucern-graph] Master Control client initialized → ${url}`);\n } else {\n logMcpInfo(\n \"[lucern-graph] Master Control client not configured (no MC_CONVEX_URL). \" +\n \"Methodology packs will use hardcoded fallback.\"\n );\n }\n\n _mcClientChecked = true;\n return _mcClient;\n}\n\n// ── Admin helpers (Master Control) ───────────────────────────────────────\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function mcAdminQuery(fn: any, args: any): Promise<any> {\n const c = getMcClient();\n if (!c) {\n throw new Error(\n \"Master Control client not configured (set MC_CONVEX_URL + MC_DEPLOY_KEY)\"\n );\n }\n return (c as any).query(fn, args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function mcAdminMutation(fn: any, args: any): Promise<any> {\n const c = getMcClient();\n if (!c) {\n throw new Error(\n \"Master Control client not configured (set MC_CONVEX_URL + MC_DEPLOY_KEY)\"\n );\n }\n return (c as any).mutation(fn, args);\n}\n\n/**\n * Check if Master Control client is available.\n * Use this to decide whether to fetch from control plane or use hardcoded fallback.\n */\nexport function isMcClientAvailable(): boolean {\n return !!(process.env.MC_CONVEX_URL && process.env.MC_DEPLOY_KEY);\n}\n\n// ── Tenant Config (MC-validated session context) ────────────────────────────\n// Set at MCP server boot after MC validateMcpSession succeeds.\n// Handlers read this to scope methodology, features, and audit attribution.\n\nexport type TenantConfig = {\n tenantId: string;\n slug: string;\n name: string;\n tier: string;\n methodologyPackIds: string[];\n apiKeyId: string;\n // Block 11B: Per-user session context (optional — omitted for legacy callers)\n sessionType?: \"agent\" | \"user\";\n userId?: string; // Clerk user ID (user sessions) or AGENT_IDENTITY (agent sessions)\n userEmail?: string; // For audit trail (user sessions only)\n userRole?: string; // From MC membership: platform_admin | tenant_admin | editor | viewer | ...\n allowedTools?: string[] | null; // null = all (agents), string[] = filtered (users), [] = deny all\n // Block 11C: Cached permitted tools from tenant Convex getPermittedTools (session-boot)\n permittedTools?: Array<{\n toolName: string;\n requiredRole?: string;\n approvalGateId?: string;\n isCore?: boolean;\n category?: string;\n }>;\n // Block 11D: Topic-level access resolved at session boot from MC resolveTopicAccess.\n // null = unrestricted (agents, admins). string[] = specific topic IDs. [] = no topic access.\n allowedTopics?: string[] | null;\n isTopicAdmin?: boolean; // true for platform_admin/tenant_admin admin bypass\n // Layer 2a: Group-pack binding — resolved at boot from MC resolveUserPackAccess\n groupIds?: string[]; // Groups this user belongs to\n permittedPackKeys?: string[]; // Packs accessible via group assignments\n permittedToolNames?: string[]; // Tool names from permitted packs (for intersection with RBAC)\n principalId?: string;\n principalType?: \"human\" | \"service\" | \"agent\";\n workspaceId?: string;\n scopes?: string[];\n authMode?:\n | \"interactive_user\"\n | \"service_principal\"\n | \"tenant_api_key\"\n | \"session_token\";\n roles?: string[];\n};\n\nlet _tenantConfig: TenantConfig | null = null;\n\n/**\n * Set tenant config — write-once guard. Can only be set once per process lifetime.\n * The config is frozen to prevent mutation by handlers.\n */\nexport function setTenantConfig(config: TenantConfig): void {\n if (_tenantConfig !== null) {\n throw new Error(\n \"[lucern] Tenant config already set — write-once guard prevents overwrite. \" +\n \"Restart the MCP server to change tenant context.\"\n );\n }\n _tenantConfig = Object.freeze({ ...config }) as TenantConfig;\n logMcpInfo(\n `[lucern] Tenant config set: slug=\"${config.slug}\" tier=${config.tier} packs=[${config.methodologyPackIds.join(\",\")}]`\n );\n}\n\n/**\n * Get validated tenant config. Returns a frozen object (immutable).\n */\nexport function getTenantConfig(): Readonly<TenantConfig> | null {\n return _tenantConfig;\n}\n\n// ── Identity & defaults ─────────────────────────────────────────────────────\n\n/**\n * Default agent identity for MCP operations.\n * All graph mutations will be attributed to this identity.\n */\nexport const AGENT_IDENTITY =\n process.env.LUCERN_AGENT_IDENTITY || \"agent:claude-code\";\n\n/**\n * Process-local session identity for inter-agent coordination.\n * Each MCP server process gets a unique UUID, enabling parallel sessions\n * to discover and message each other via agentSessions/agentMessages tables.\n */\nexport const SESSION_ID = crypto.randomUUID();\n\n/**\n * Default topic ID — set after seed script runs.\n * MCP handlers use this if topicId is not explicitly provided.\n *\n * @deprecated DEAD CODE — no importers. Use scope.ts defaultTopicId instead.\n * Will be removed when the legacy scope table is eliminated.\n * See TC-D: Project Overlay Demotion.\n */\nlet defaultTopicId: string | null = null;\n\n/** @deprecated Use scope.ts setDefaultScopeContext instead. No importers. */\nexport function setDefaultTopicId(id: string): void {\n defaultTopicId = id;\n}\n\n/** @deprecated Use scope.ts getDefaultTopicId instead. No importers. */\nexport function getDefaultTopicId(): string | null {\n return defaultTopicId;\n}\n","/**\n * Scope Resolution Helpers\n *\n * `topicId` is the canonical parameter name in MCP tool contracts.\n * `projectId` is accepted as a backward-compatibility alias — callers may\n * still pass it, but new tool schemas expose `topicId`.\n *\n * Use `readTopicIdArg(args)` to read whichever the caller provided:\n * topicId takes precedence; projectId is the fallback.\n *\n * Topic -> legacy scope alias mapping is resolved in this order:\n * 1) topic legacy graph scope field / topic.metadata legacy graph scope field\n * 2) topic.metadata.legacyProjectId\n * 3) topic.metadata.projectId\n * 4) heuristic inference from existing node search results\n *\n * Ambient context: When no explicit topicId/projectId is provided and\n * no in-memory default is set, falls back to .lucern.json in the repo root.\n * This file is written by begin_build_session/compile_context flows and read by hooks + handlers.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { ROOT_TOPIC_ID } from \"@lucern/contracts\";\nimport { api, internal, components } from \"./kernelApi.js\";\nimport { adminQuery } from \"./convex-client.js\";\nimport { checkTopicScope } from \"./topic-scope.js\";\nimport type { Id } from \"@lucern/reasoning-kernel/_generated/dataModel\";\n\ntype AnyRecord = Record<string, unknown>;\n\nexport type ScopeResolution = {\n inputScopeId?: string;\n topicId?: string;\n topicName?: string;\n legacyScopeId?: string;\n source:\n | \"default_topic\"\n | \"direct_topic\"\n | \"topic_metadata\"\n | \"topic_inferred\"\n | \"legacy_project_alias\"\n | \"node_topic\"\n | \"node_project\"\n | \"lucern_json\"\n | \"unresolved\";\n};\n\nlet defaultTopicId: string | null = null;\nconst PUBLIC_TOPIC_PREFIX = \"top_\";\n\nfunction encodePublicTopicId(topicId: string | undefined): string | undefined {\n if (!isNonEmptyString(topicId)) {\n return undefined;\n }\n return topicId.startsWith(PUBLIC_TOPIC_PREFIX)\n ? topicId\n : `${PUBLIC_TOPIC_PREFIX}${topicId}`;\n}\n\nfunction decodePublicTopicId(topicId: string | undefined): string | undefined {\n if (!isNonEmptyString(topicId)) {\n return undefined;\n }\n return topicId.startsWith(PUBLIC_TOPIC_PREFIX)\n ? topicId.slice(PUBLIC_TOPIC_PREFIX.length)\n : topicId;\n}\n\n/**\n * Read the topic scope from MCP tool args.\n * Returns undefined if topicId is not provided — let resolveTopicScopeId handle fallback.\n */\nexport function readTopicIdArg(\n args: Record<string, unknown>\n): string | undefined {\n const topicId = args.topicId as string | undefined;\n const legacyProjectId = args.projectId as string | undefined;\n return topicId || legacyProjectId || undefined;\n}\n\n// --- .lucern.json ambient context ---\n\nexport type LucernContextFile = {\n topicId?: string;\n topicName?: string;\n activeWorktree?: {\n worktreeId: string;\n title: string;\n status: string;\n executionOrder: number | null;\n gate: string | null;\n } | null;\n deployment?: string;\n lastUpdated?: number;\n};\n\nconst LUCERN_JSON_PATH = path.resolve(process.cwd(), \".lucern.json\");\n\n/**\n * Read .lucern.json from the repo root (synchronous).\n * Returns null if the file doesn't exist or is malformed.\n */\nexport function readLucernJson(): LucernContextFile | null {\n try {\n const raw = fs.readFileSync(LUCERN_JSON_PATH, \"utf-8\");\n const parsed = JSON.parse(raw) as LucernContextFile;\n return {\n ...parsed,\n topicId: parsed.topicId,\n topicName: parsed.topicName,\n };\n } catch {\n return null;\n }\n}\n\n/**\n * Write .lucern.json to the repo root.\n * Called by session bootstrap flows after successful init.\n */\nexport function writeLucernJson(context: LucernContextFile): void {\n try {\n const normalized: LucernContextFile = {\n ...context,\n topicId: encodePublicTopicId(context.topicId),\n };\n fs.writeFileSync(\n LUCERN_JSON_PATH,\n `${JSON.stringify(normalized, null, 2)}\\n`,\n \"utf-8\"\n );\n } catch {\n // Non-critical — ambient context just won't be available\n }\n}\n\n// The Root \"Lucern\" topic is a container for child topics.\n// Epistemic nodes (beliefs, questions, evidence, answers) should\n// NEVER be scoped to Root — they belong under specific child topics.\nexport { ROOT_TOPIC_ID };\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === \"string\" && value.trim().length > 0;\n}\n\n/**\n * Resolve topicId from a linked epistemic node.\n * Used by creation handlers to inherit topic from a parent node\n * (e.g., question inherits from belief, answer inherits from question).\n */\nexport async function resolveTopicFromNode(\n nodeId: string | undefined,\n _toolName: string\n): Promise<string | null> {\n if (!isNonEmptyString(nodeId)) {\n return null;\n }\n const node = await tryGetNodeById(nodeId);\n if (!node) {\n return null;\n }\n const topicId = isNonEmptyString(node.topicId) ? node.topicId : null;\n // Never inherit Root — the linked node itself needs backfill\n if (topicId === ROOT_TOPIC_ID) {\n return null;\n }\n return topicId;\n}\n\nfunction readTopicMappedProjectId(topic: AnyRecord): string | undefined {\n const metadata = (topic.metadata || {}) as AnyRecord;\n const candidate =\n (metadata.legacyProjectId as string | undefined) ||\n (metadata.projectId as string | undefined) ||\n (metadata.scopeProjectId as string | undefined);\n return isNonEmptyString(candidate) ? candidate : undefined;\n}\n\nasync function tryGetTopicById(topicId: string): Promise<AnyRecord | null> {\n const normalizedTopicId = decodePublicTopicId(topicId);\n if (!normalizedTopicId) {\n return null;\n }\n try {\n const topic = (await adminQuery(components.lucern.topics.get, {\n id: normalizedTopicId as Id<\"topics\">,\n })) as AnyRecord | null;\n return topic || null;\n } catch {\n return null;\n }\n}\n\nasync function tryGetNodeById(nodeId: string): Promise<AnyRecord | null> {\n try {\n const node = (await adminQuery(components.lucern.epistemicNodes.getInternal, {\n nodeId: nodeId as any,\n })) as AnyRecord | null;\n return node || null;\n } catch {\n return null;\n }\n}\n\nasync function findTopicByMappedProjectId(\n legacyScopeId: string\n): Promise<AnyRecord | null> {\n try {\n const topics = (await adminQuery(components.lucern.topics.list, {})) as AnyRecord[];\n return (\n topics.find((topic) => readTopicMappedProjectId(topic) === legacyScopeId) ||\n null\n );\n } catch {\n return null;\n }\n}\n\nexport async function resolveTopicScopeContext(\n scopeId?: string\n): Promise<ScopeResolution> {\n const normalizedScopeId = decodePublicTopicId(scopeId);\n\n if (!isNonEmptyString(scopeId)) {\n if (isNonEmptyString(defaultTopicId)) {\n const defaultTopic = await tryGetTopicById(defaultTopicId);\n const mapped = defaultTopic\n ? readTopicMappedProjectId(defaultTopic)\n : undefined;\n return {\n inputScopeId: undefined,\n legacyScopeId: mapped || undefined,\n topicId: defaultTopicId || undefined,\n topicName: defaultTopic ? String(defaultTopic.name || \"\") : undefined,\n source: \"default_topic\",\n };\n }\n return { inputScopeId: undefined, source: \"unresolved\" };\n }\n\n const topic = normalizedScopeId\n ? await tryGetTopicById(normalizedScopeId)\n : null;\n if (topic) {\n const mapped = readTopicMappedProjectId(topic);\n if (mapped) {\n return {\n inputScopeId: scopeId,\n topicId: String(topic._id),\n topicName: String(topic.name || \"\"),\n legacyScopeId: mapped,\n source: \"topic_metadata\",\n };\n }\n\n return {\n inputScopeId: scopeId,\n topicId: String(topic._id),\n topicName: String(topic.name || \"\"),\n source: \"direct_topic\",\n };\n }\n\n const mappedTopic = normalizedScopeId\n ? await findTopicByMappedProjectId(normalizedScopeId)\n : null;\n if (mappedTopic) {\n return {\n inputScopeId: scopeId,\n topicId: String(mappedTopic._id),\n topicName: String(mappedTopic.name || \"\"),\n legacyScopeId: normalizedScopeId,\n source: \"legacy_project_alias\",\n };\n }\n\n const node = normalizedScopeId ? await tryGetNodeById(normalizedScopeId) : null;\n if (node) {\n const nodeTopicId = node.topicId;\n if (isNonEmptyString(nodeTopicId)) {\n const nodeTopic = await tryGetTopicById(nodeTopicId);\n const mapped = nodeTopic\n ? readTopicMappedProjectId(nodeTopic)\n : undefined;\n return {\n inputScopeId: scopeId,\n topicId: nodeTopicId,\n topicName: nodeTopic ? String(nodeTopic.name || \"\") : undefined,\n legacyScopeId: mapped,\n source: \"node_topic\",\n };\n }\n const nodeProjectId = node.projectId;\n if (isNonEmptyString(nodeProjectId)) {\n const mappedTopic = await findTopicByMappedProjectId(nodeProjectId);\n return {\n inputScopeId: scopeId,\n topicId: mappedTopic ? String(mappedTopic._id) : undefined,\n topicName: mappedTopic ? String(mappedTopic.name || \"\") : undefined,\n legacyScopeId: nodeProjectId,\n source: \"node_project\",\n };\n }\n }\n\n return {\n inputScopeId: scopeId,\n source: \"unresolved\",\n };\n}\n\nexport async function resolveTopicScopeId(\n scopeId: string | undefined,\n toolName: string\n): Promise<string> {\n let resolved: string | undefined;\n const normalizedScopeId = decodePublicTopicId(scopeId);\n\n if (!isNonEmptyString(scopeId)) {\n if (isNonEmptyString(defaultTopicId)) {\n resolved = defaultTopicId;\n } else {\n // Fall back to .lucern.json ambient context\n const lucernContext = readLucernJson();\n const ambientTopicId = decodePublicTopicId(lucernContext?.topicId);\n if (isNonEmptyString(ambientTopicId)) {\n resolved = ambientTopicId;\n }\n }\n if (!resolved) {\n throw new Error(\n `[${toolName}] Missing topic scope. Provide topicId.`\n );\n }\n }\n\n if (!resolved) {\n const topic = normalizedScopeId\n ? await tryGetTopicById(normalizedScopeId)\n : null;\n if (topic) {\n resolved = String(topic._id);\n }\n }\n\n if (!resolved) {\n const mappedTopic = normalizedScopeId\n ? await findTopicByMappedProjectId(normalizedScopeId)\n : null;\n if (mappedTopic) {\n resolved = String(mappedTopic._id);\n }\n }\n\n if (!resolved) {\n const node = normalizedScopeId\n ? await tryGetNodeById(normalizedScopeId)\n : null;\n if (node && isNonEmptyString(node.topicId)) {\n resolved = node.topicId;\n }\n }\n\n if (!resolved) {\n throw new Error(\n `[${toolName}] Scope \"${scopeId}\" is not a topic and has no mapped topic.`\n );\n }\n\n // Block 11D: Enforce topic-level access control.\n // Checks the session-level permitted topics set by setSessionTopicScope() at boot.\n // Agent sessions and admin sessions pass through (allowedTopics = null).\n // User sessions are restricted to their assigned topics via pack assignments.\n checkTopicScope(resolved, toolName);\n\n return resolved;\n}\n\nexport async function setDefaultScopeContext(\n scopeId: string\n): Promise<ScopeResolution> {\n const resolved = await resolveTopicScopeContext(scopeId);\n if (isNonEmptyString(resolved.topicId)) {\n defaultTopicId = decodePublicTopicId(resolved.topicId) || null;\n }\n return resolved;\n}\n\nexport function getDefaultScopeContext(): { topicId: string | null } {\n if (defaultTopicId) {\n return { topicId: defaultTopicId };\n }\n // Fall back to .lucern.json ambient context\n const lucernContext = readLucernJson();\n const ambientTopicId = decodePublicTopicId(lucernContext?.topicId);\n if (ambientTopicId) {\n return { topicId: ambientTopicId };\n }\n return { topicId: null };\n}\n","import type { HandlerModule } from \"./types.js\";\nimport { readTopicIdArg } from \"../scope.js\";\nimport {\n asJsonObject,\n asRecord,\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n readStringArray,\n readTimeRange,\n} from \"./sdk.js\";\n\nconst AMBIGUOUS_SCALAR_SUGGESTION =\n \"Use opinion tuple (b, d, u, a) or an @lucern/sdk opinionFromBaseRate/opinionFromDogmatic/opinionFromProjected helper.\";\n\nfunction readOpinionTuple(args: Record<string, unknown>) {\n const belief = readNumber(args.belief);\n const disbelief = readNumber(args.disbelief);\n const uncertainty = readNumber(args.uncertainty);\n const baseRate = readNumber(args.baseRate);\n const tupleValues = [belief, disbelief, uncertainty, baseRate];\n const providedCount = tupleValues.filter(\n (value) => value !== undefined\n ).length;\n\n if (providedCount === 0 && readNumber(args.confidence ?? args.newConfidence) !== undefined) {\n throw new Error(\n JSON.stringify({\n code: \"AMBIGUOUS_SCALAR\",\n message:\n \"Scalar confidence input is ambiguous without an explicit subjective-logic interpretation.\",\n suggestion: AMBIGUOUS_SCALAR_SUGGESTION,\n })\n );\n }\n\n if (providedCount !== tupleValues.length) {\n throw new Error(\n \"belief, disbelief, uncertainty, and baseRate must all be provided together.\"\n );\n }\n\n return {\n b: belief ?? 0,\n d: disbelief ?? 0,\n u: uncertainty ?? 0,\n a: baseRate ?? 0.5,\n };\n}\n\nexport const beliefHandlers: HandlerModule = {\n async create_belief(args, ctx) {\n const baseRate = readNumber(args.baseRate);\n if (baseRate === undefined) {\n throw new Error(\"baseRate is required for create_belief.\");\n }\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.create({\n topicId: readString(readTopicIdArg(args)) ?? \"\",\n text:\n readString(args.text ?? args.canonicalText ?? args.formulation) ?? \"\",\n baseRate,\n rationale: readString(args.rationale),\n worktreeId: readString(args.worktreeId),\n pillar: readString(args.pillar),\n sourceBeliefIds: readStringArray(args.sourceBeliefIds),\n sourceType: readString(args.sourceType),\n beliefType: readString(args.beliefType),\n reversibility: readString(args.reversibility),\n predictionMeta: asJsonObject(args.predictionMeta) as any,\n metadata: asJsonObject(args.metadata) as any,\n })\n );\n },\n\n async get_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.get(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async list_beliefs(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.list({\n topicId: readString(readTopicIdArg(args)),\n status: readString(args.status),\n worktreeId: readString(args.worktreeId),\n minConfidence: readNumber(args.minConfidence),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async refine_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.refine(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n text:\n readString(args.canonicalText ?? args.text ?? args.formulation) ??\n \"\",\n rationale: readString(args.rationale),\n }\n )\n );\n },\n\n async modulate_confidence(args, ctx) {\n const opinion = readOpinionTuple(args);\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.modulateConfidence(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n opinion,\n trigger: readString(args.trigger) as any,\n rationale: readString(args.rationale) ?? \"\",\n maxInlinePropagationTargets: readNumber(\n args.maxInlinePropagationTargets\n ),\n }\n )\n );\n },\n\n async fork_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.fork(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n text:\n readString(args.text ?? args.newFormulation ?? args.formulation) ??\n \"\",\n forkReason: readString(args.forkReason) as any,\n rationale: readString(args.rationale),\n }\n )\n );\n },\n\n async archive_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.archive(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n reason: readString(args.reason ?? args.rationale),\n }\n )\n );\n },\n\n async query_lineage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.lineage(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async get_confidence_history(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.confidenceHistory(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async create_epistemic_contract(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.createContract(\n readString(\n args.id ?? args.nodeId ?? args.beliefId ?? args.beliefNodeId\n ) ?? \"\",\n {\n title: readString(args.title) ?? \"\",\n description: readString(args.description),\n conditionType: readString(args.conditionType) as any,\n direction: readString(args.direction) as any,\n condition: asRecord(args.condition) as any,\n deadline: readNumber(args.deadline),\n compositeOf: readStringArray(args.compositeOf),\n compositeOperator: readString(args.compositeOperator) as any,\n modulation: asRecord(args.modulation) as any,\n evaluationSchedule: readString(\n args.evaluationSchedule ?? args.schedule\n ) as any,\n periodicIntervalMs: readNumber(args.periodicIntervalMs),\n }\n )\n );\n },\n\n async bisect_confidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.bisect(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n expectedDirection: readString(args.expectedDirection) as any,\n timeRange: readTimeRange(args.timeRange),\n }\n )\n );\n },\n};\n","import { api, components } from \"../kernelApi.js\";\nimport { adminMutation, adminQuery } from \"../convex-client.js\";\n\ntype AnyRecord = Record<string, unknown>;\n\nfunction slugify(name: string): string {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\")\n .slice(0, 40);\n}\n\nasync function resolveBeliefs(\n nodeIds: string[]\n): Promise<Array<{ nodeId: string; text: string; confidence: number | null }>> {\n const results: Array<{\n nodeId: string;\n text: string;\n confidence: number | null;\n }> = [];\n\n for (const nodeId of nodeIds) {\n try {\n const node = (await adminQuery(components.lucern.epistemicNodes.get, {\n nodeId: nodeId as any,\n })) as AnyRecord | null;\n if (!node) {\n continue;\n }\n\n results.push({\n nodeId,\n text: String(node.canonicalText || \"\").slice(0, 200),\n confidence:\n typeof node.confidence === \"number\" ? node.confidence : null,\n });\n } catch {\n // Ignore missing graph nodes when assembling the build packet.\n }\n }\n\n return results;\n}\n\nasync function resolveQuestions(\n nodeIds: string[]\n): Promise<\n Array<{ nodeId: string; text: string; status: string; priority: string }>\n> {\n const results: Array<{\n nodeId: string;\n text: string;\n status: string;\n priority: string;\n }> = [];\n\n for (const nodeId of nodeIds) {\n try {\n const node = (await adminQuery(components.lucern.epistemicNodes.get, {\n nodeId: nodeId as any,\n })) as AnyRecord | null;\n if (!node) {\n continue;\n }\n\n const metadata = (node.metadata || {}) as AnyRecord;\n results.push({\n nodeId,\n text: String(node.canonicalText || \"\").slice(0, 200),\n status: String(metadata.questionStatus || node.status || \"open\"),\n priority: String(metadata.priority || \"medium\"),\n });\n } catch {\n // Ignore missing graph nodes when assembling the build packet.\n }\n }\n\n return results;\n}\n\nexport async function beginBuildSession(\n args: Record<string, unknown>\n): Promise<Record<string, unknown>> {\n const worktreeId =\n typeof args.worktreeId === \"string\" ? args.worktreeId : undefined;\n if (!worktreeId) {\n throw new Error(\"[begin_build_session] worktreeId is required\");\n }\n\n const branch =\n typeof args.branch === \"string\" && args.branch.trim().length > 0\n ? args.branch.trim()\n : undefined;\n const branchBase =\n typeof args.branchBase === \"string\" && args.branchBase.trim().length > 0\n ? args.branchBase.trim()\n : \"staging\";\n const prBase =\n typeof args.prBase === \"string\" && args.prBase.trim().length > 0\n ? args.prBase.trim()\n : \"staging\";\n const sessionMode =\n typeof args.sessionMode === \"string\" && args.sessionMode.trim().length > 0\n ? args.sessionMode.trim()\n : \"async\";\n const activateIfPlanning = args.activateIfPlanning !== false;\n\n const worktree = (await adminQuery(components.lucern.worktrees.get, {\n worktreeId: worktreeId as any,\n })) as AnyRecord | null;\n if (!worktree) {\n throw new Error(`Worktree ${worktreeId} not found`);\n }\n\n const worktreeName = String(worktree.name || \"Untitled\");\n const topicId = String(worktree.topicId || \"\");\n const track = String(worktree.track || \"untracked\");\n const trackPosition = (worktree.trackPosition as number) ?? 0;\n const executionBand = (worktree.executionBand as number) ?? 0;\n const gate = String(worktree.gate || \"\");\n const hypothesis = String(worktree.hypothesis || worktree.beliefFocus || \"\");\n let status = String(worktree.status || \"planning\");\n const dependsOn = (worktree.dependsOn as string[]) || [];\n const blocks = (worktree.blocks as string[]) || [];\n const targetBeliefIds = (worktree.targetBeliefIds as string[]) || [];\n const targetQuestionIds = (worktree.targetQuestionIds as string[]) || [];\n\n if (activateIfPlanning && status === \"planning\") {\n try {\n await adminMutation(components.lucern.worktrees.activate, {\n worktreeId: worktreeId as any,\n });\n status = \"active\";\n } catch {\n // Non-fatal: keep the graph status unchanged if activation fails.\n }\n }\n\n let topicName = \"Unknown\";\n try {\n const topic = (await adminQuery(components.lucern.topics.get, {\n id: topicId as any,\n })) as AnyRecord | null;\n if (topic) {\n topicName = String(topic.name || \"Unknown\");\n }\n } catch {\n // Non-critical metadata lookup.\n }\n\n const allBeliefs = await resolveBeliefs(targetBeliefIds);\n const topBeliefs = allBeliefs\n .slice()\n .sort((left, right) => (right.confidence ?? -1) - (left.confidence ?? -1))\n .slice(0, 8);\n\n const allQuestions = await resolveQuestions(targetQuestionIds);\n const openQuestions: Array<{\n nodeId: string;\n text: string;\n priority: string;\n }> = [];\n const resolvedDecisions: Array<{ question: string; decision: string }> = [];\n\n for (const question of allQuestions) {\n const questionStatus = question.status.toLowerCase();\n if (questionStatus === \"answered\" || questionStatus === \"resolved\") {\n let decision = \"(decision recorded — call get_answer for details)\";\n try {\n const answer = (await adminQuery(\n api.epistemicAnswers.getLatestForQuestion,\n {\n questionNodeId: question.nodeId as any,\n }\n )) as AnyRecord | null;\n if (answer) {\n decision = String(\n answer.answerText || answer.canonicalText || decision\n ).slice(0, 200);\n }\n } catch {\n try {\n const node = (await adminQuery(components.lucern.epistemicNodes.get, {\n nodeId: question.nodeId as any,\n })) as AnyRecord | null;\n if (node?._id) {\n const answer = (await adminQuery(\n api.epistemicAnswers.getLatestForQuestion,\n {\n questionNodeId: node._id as any,\n }\n )) as AnyRecord | null;\n if (answer) {\n decision = String(\n answer.answerText || answer.canonicalText || decision\n ).slice(0, 200);\n }\n }\n } catch {\n // Keep the default summary when answer lookup fails.\n }\n }\n\n resolvedDecisions.push({\n question: question.text.slice(0, 150),\n decision,\n });\n continue;\n }\n\n openQuestions.push({\n nodeId: question.nodeId,\n text: question.text,\n priority: question.priority,\n });\n }\n\n try {\n const topicQuestions = await adminQuery(components.lucern.epistemicQuestions.getByTopic, {\n topicId: topicId as any,\n userId: \"system\",\n limit: 20,\n }).catch(() => []);\n\n for (const question of Array.isArray(topicQuestions) ? topicQuestions : []) {\n const metadata = (question.metadata || {}) as AnyRecord;\n const questionStatus = String(\n metadata.questionStatus || question.status || \"open\"\n ).toLowerCase();\n if (\n (questionStatus === \"open\" || questionStatus === \"in_progress\") &&\n !targetQuestionIds.includes(String(question._id))\n ) {\n openQuestions.push({\n nodeId: String(question._id),\n text: String(question.canonicalText || \"\").slice(0, 200),\n priority: String(metadata.priority || \"medium\"),\n });\n }\n }\n } catch {\n // Non-critical metadata lookup.\n }\n\n const dependencies: Array<{\n worktreeId: string;\n title: string;\n status: string;\n }> = [];\n for (const dependencyId of dependsOn.slice(0, 5)) {\n try {\n const dependency = (await adminQuery(components.lucern.worktrees.get, {\n worktreeId: dependencyId as any,\n })) as AnyRecord | null;\n dependencies.push({\n worktreeId: dependencyId,\n title: String(dependency?.name || \"Unknown\"),\n status: String(dependency?.status || \"unknown\"),\n });\n } catch {\n dependencies.push({\n worktreeId: dependencyId,\n title: \"Unknown\",\n status: \"unknown\",\n });\n }\n }\n\n const unblocks: Array<{ worktreeId: string; title: string }> = [];\n for (const blockedId of blocks.slice(0, 5)) {\n try {\n const blocked = (await adminQuery(components.lucern.worktrees.get, {\n worktreeId: blockedId as any,\n })) as AnyRecord | null;\n unblocks.push({\n worktreeId: blockedId,\n title: String(blocked?.name || \"Unknown\"),\n });\n } catch {\n unblocks.push({\n worktreeId: blockedId,\n title: \"Unknown\",\n });\n }\n }\n\n const effectiveBranch = branch || `codex/${slugify(worktreeName)}`;\n const incompleteDependencies = dependencies.filter(\n (dependency) =>\n dependency.status !== \"completed\" && dependency.status !== \"merged\"\n );\n const mergeOrderNotes =\n incompleteDependencies.length > 0\n ? `Blocked by: ${incompleteDependencies.map((dependency) => dependency.title).join(\", \")}`\n : \"none\";\n\n const requiredDocs = [\n \"docs/api/EK-13-api-sdk-architecture.md\",\n \"docs/api/EK-13.1.5-repo-architecture-blueprint.md\",\n \"docs/api/EK-13.1-contract-authority.md\",\n \"docs/development/handoff-contract.md\",\n ];\n\n const focus = hypothesis\n ? `${hypothesis.split(\".\")[0]}.`\n : `Complete ${worktreeName}`;\n\n const exitCriteria = gate ? [`Gate: ${gate}`] : [];\n exitCriteria.push(\n \"All namespace surfaces end-to-end: contract → domain → HTTP → SDK → MCP → test\",\n \"All code lands in target-state paths under lucern/\",\n \"PR targets staging, not main\"\n );\n\n const keyFiles = [\n \"app/api/platform/v1/_lib/gateway.ts\",\n \"modules/access-control/src/principalContext.ts\",\n \"lucern/packages/sdk/src/coreClient.ts\",\n \"lucern/packages/sdk/src/identityClient.ts\",\n \"lucern/contracts/src/sdk-methods.contract.ts\",\n \"app/api/platform/v1/identity/\",\n ];\n\n const pillarKeywords = [\n \"Pillar 1\",\n \"Pillar 2\",\n \"Pillar 3\",\n \"Pillar 4\",\n \"Pillar 5\",\n \"Pillar 6\",\n \"Pillar 7\",\n \"Pillar 8\",\n \"8 innovation pillars\",\n ];\n const pillarBeliefs: Array<{\n pillar: string;\n text: string;\n nodeId: string;\n }> = [];\n for (const belief of allBeliefs) {\n for (const keyword of pillarKeywords) {\n if (!belief.text.includes(keyword)) {\n continue;\n }\n const pillarMatch = belief.text.match(/Pillar \\d+ \\([^)]+\\)/);\n pillarBeliefs.push({\n pillar: pillarMatch ? pillarMatch[0] : keyword,\n text: belief.text.slice(0, 250),\n nodeId: belief.nodeId,\n });\n break;\n }\n }\n\n const visionDocs = [\n {\n path: \"docs/product/core-value-propositions.md\",\n description:\n \"8 innovation pillars through developer, marketing, and investor lenses\",\n },\n {\n path: \"docs/product/five-domains.md\",\n description:\n \"5 product domains: MC, Tenant, Developer, Reasoning Control, Reasoning\",\n },\n {\n path: \"docs/product/innovation-pillars.md\",\n description: \"The 8 pillars that define what makes Lucern unique\",\n },\n {\n path: \"docs/product/vision-to-roadmap-bridge.md\",\n description:\n \"Where each pillar is today vs. where it goes — the north star trajectory\",\n },\n ];\n\n return {\n topicId,\n topicName,\n worktreeId,\n worktreeName,\n branch: effectiveBranch,\n branchBase,\n prBase,\n track,\n trackPosition,\n executionBand,\n gate,\n hypothesis,\n focus,\n status,\n sessionMode,\n targetBeliefIds,\n targetQuestionIds,\n topBeliefs,\n openQuestions,\n resolvedDecisions,\n exitCriteria,\n requiredDocs,\n keyFiles,\n pillarBeliefs,\n visionDocs,\n dependencies,\n unblocks,\n mergeOrderNotes,\n };\n}\n","/**\n * Bootstrap Handlers — generate_session_handoff, begin_build_session\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport { beginBuildSession } from \"./bootstrap-session.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const bootstrapHandlers: HandlerModule = {\n async generate_session_handoff(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).bootstrap.generateSessionHandoff(args)\n );\n },\n\n async begin_build_session(args, ctx) {\n void ctx;\n return beginBuildSession(args);\n },\n};\n","/**\n * Coding Intelligence Handlers\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const codingHandlers: HandlerModule = {\n async get_code_context(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coding.getCodeContext(args));\n },\n\n async get_change_history(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coding.getChangeHistory(args)\n );\n },\n\n async record_attempt(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coding.recordAttempt(args));\n },\n\n async get_failure_log(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coding.getFailureLog(args));\n },\n};\n","import type { JsonObject } from \"@lucern/sdk/types\";\nimport { formatSdkResult, getSdkClient, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const contractHandlers: HandlerModule = {\n async create_epistemic_contract(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).contracts.create(args as JsonObject)\n );\n },\n\n async evaluate_contract(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).contracts.evaluate({\n contractId: readString(args.contractId),\n trigger: args.trigger as any,\n topicId: readString(args.topicId),\n })\n );\n },\n\n async get_contract_status(args, ctx) {\n if (!args.beliefNodeId && !args.contractId) {\n throw new Error(\n \"get_contract_status requires either beliefNodeId or contractId.\"\n );\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).contracts.getStatus({\n beliefNodeId: readString(args.beliefNodeId),\n contractId: readString(args.contractId),\n status: args.status as any,\n })\n );\n },\n};\n","import {\n decodePrefixedId,\n encodePrefixedId,\n} from \"@lucern/contracts\";\nimport { readTopicIdArg, resolveTopicScopeId } from \"../scope.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n} from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nfunction normalizeBeliefId(value: string): string {\n try {\n const decoded = decodePrefixedId(value);\n return encodePrefixedId(\"bel\", decoded.value);\n } catch {\n return encodePrefixedId(\"bel\", value);\n }\n}\n\nexport const contradictionHandlers: HandlerModule = {\n async flag_contradiction(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"flag_contradiction\"\n );\n\n return formatSdkResult(\n await getSdkClient(ctx).contradictions.flag({\n beliefA: readString(args.beliefA) ?? \"\",\n beliefB: readString(args.beliefB) ?? \"\",\n description: readString(args.description) ?? \"\",\n topicId,\n severity: readString(args.severity),\n defeatType: readString(args.defeatType),\n })\n );\n },\n\n async find_contradictions(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args) ?? readString(args.nodeId),\n \"find_contradictions\"\n );\n const beliefId = readString(args.nodeId);\n const payload = formatSdkResult(\n await getSdkClient(ctx).contradictions.list({\n topicId,\n status: readString(args.status),\n limit: readNumber(args.limit),\n })\n );\n\n if (!beliefId) {\n return payload;\n }\n\n const normalizedBeliefId = normalizeBeliefId(beliefId);\n return {\n ...payload,\n contradictions: (Array.isArray(payload.contradictions)\n ? payload.contradictions\n : []\n ).filter(\n (entry) =>\n entry.beliefA === normalizedBeliefId ||\n entry.beliefB === normalizedBeliefId\n ),\n };\n },\n\n async list_contradictions(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"list_contradictions\"\n );\n\n return formatSdkResult(\n await getSdkClient(ctx).contradictions.list({\n topicId,\n status: readString(args.status),\n limit: readNumber(args.limit),\n })\n );\n },\n\n async get_contradiction(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).contradictions.get(\n readString(args.id ?? args.contradictionId) ?? \"\"\n )\n );\n },\n};\n","/**\n * Coordination Handlers — MCP tool handlers for inter-agent session coordination.\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const coordinationHandlers: HandlerModule = {\n async register_session(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.registerSession(args)\n );\n },\n\n async heartbeat_session(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.heartbeatSession(args)\n );\n },\n\n async end_session(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coordination.endSession(args));\n },\n\n async list_active_sessions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.listActiveSessions(args)\n );\n },\n\n async send_agent_message(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.sendAgentMessage(args)\n );\n },\n\n async broadcast_message(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.broadcastMessage(args)\n );\n },\n\n async get_agent_inbox(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coordination.getInbox(args));\n },\n\n async claim_files(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coordination.claimFiles(args));\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n} from \"./sdk.js\";\n\nexport const edgeHandlers: HandlerModule = {\n async create_edge(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).edges.create({\n sourceId: readString(args.sourceId) ?? \"\",\n targetId: readString(args.targetId) ?? \"\",\n edgeType: readString(args.edgeType) ?? \"\",\n topicId: readString(args.topicId ?? args.projectId),\n confidence: readNumber(args.confidence),\n weight: readNumber(args.weight),\n context: readString(args.context) ?? readString(args.reasoning),\n })\n );\n },\n\n async list_edges(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).edges.list({\n sourceId: readString(args.sourceId) ?? \"\",\n edgeType: readString(args.edgeType),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async traverse_graph(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).edges.traverse({\n startNode: readString(args.startNode) ?? \"\",\n direction: readString(args.direction),\n maxDepth: readNumber(args.maxDepth),\n topicId: readString(args.topicId ?? args.projectId),\n })\n );\n },\n};\n","/**\n * Graph Handlers — traverse_graph, search_beliefs, find_contradictions,\n * bisect_confidence, trace_entity_impact\n */\n\nimport { readTopicIdArg, resolveTopicScopeId } from \"../scope.js\";\nimport { beliefHandlers } from \"./beliefs.js\";\nimport { contradictionHandlers } from \"./contradictions.js\";\nimport { edgeHandlers } from \"./edges.js\";\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const graphHandlers: HandlerModule = {\n async traverse_graph(args, ctx) {\n return edgeHandlers.traverse_graph(args, ctx);\n },\n\n async search_beliefs(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"search_beliefs\"\n );\n\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.search({\n query: typeof args.query === \"string\" ? args.query : \"\",\n topicId,\n status: typeof args.status === \"string\" ? args.status : undefined,\n minConfidence:\n typeof args.minConfidence === \"number\" ? args.minConfidence : undefined,\n limit: typeof args.limit === \"number\" ? args.limit : undefined,\n })\n );\n },\n\n async find_contradictions(args, ctx) {\n return contradictionHandlers.find_contradictions(args, ctx);\n },\n\n async bisect_confidence(args, ctx) {\n return beliefHandlers.bisect_confidence(args, ctx);\n },\n\n async trace_entity_impact(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"trace_entity_impact\"\n ).catch(() => undefined);\n\n return formatSdkResult(\n await getSdkClient(ctx).graph.traceEntityImpact({\n nodeId: typeof args.nodeId === \"string\" ? args.nodeId : \"\",\n topicId,\n })\n );\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readBoolean,\n readNumber,\n readString,\n} from \"./sdk.js\";\n\nexport const topicHandlers: HandlerModule = {\n async create_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.create({\n name: readString(args.name) ?? \"\",\n description: readString(args.description),\n type: readString(args.type),\n parentTopicId: readString(args.parentTopicId),\n ontologyId: readString(args.ontologyId),\n tenantId: readString(args.tenantId),\n workspaceId: readString(args.workspaceId),\n visibility: readString(args.visibility) as any,\n createdBy: readString(args.createdBy),\n })\n );\n },\n\n async list_topics(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.list({\n ontologyId: readString(args.ontologyId),\n parentTopicId: readString(args.parentTopicId),\n status: readString(args.status),\n type: readString(args.type),\n })\n );\n },\n\n async get_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.get(\n readString(args.topicId ?? args.id) ?? \"\"\n )\n );\n },\n\n async update_topic(args, ctx) {\n const topicId = readString(args.topicId ?? args.id) ?? \"\";\n if (!topicId) {\n throw new Error(\"topicId is required.\");\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).topics.update(topicId, {\n name: readString(args.name),\n description: readString(args.description),\n type: readString(args.type),\n ontologyId: readString(args.ontologyId),\n clearOntologyId: readBoolean(args.clearOntologyId),\n status: readString(args.status) as\n | \"active\"\n | \"archived\"\n | \"watching\"\n | undefined,\n visibility: readString(args.visibility) as\n | \"private\"\n | \"team\"\n | \"firm\"\n | \"external\"\n | \"public\"\n | undefined,\n })\n );\n },\n\n async get_topic_tree(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.getTree({\n rootId: readString(args.rootId ?? args.topicId ?? args.id) ?? \"\",\n maxDepth: readNumber(args.maxDepth),\n })\n );\n },\n\n async get_topic_coverage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.coverage(\n readString(args.topicId ?? args.id) ?? \"\",\n {\n includeDescendants: readBoolean(args.includeDescendants),\n maxDepth: readNumber(args.maxDepth),\n }\n )\n );\n },\n};\n","import { graphHandlers as modernGraphHandlers } from \"./graph.js\";\nimport { topicHandlers } from \"./topics.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const coverageHandlers: HandlerModule = {\n async get_topic_coverage(args, ctx) {\n return topicHandlers.get_topic_coverage(\n {\n topicId: args.topicId ?? args.id,\n includeDescendants: args.includeDescendants,\n maxDepth: args.maxDepth,\n },\n ctx\n );\n },\n\n async get_graph_gaps(args, ctx) {\n return modernGraphHandlers.get_graph_gaps(\n {\n topicId: args.topicId ?? args.projectId,\n minConfidence: args.minConfidence,\n },\n ctx\n );\n },\n};\n","/**\n * Discovery Handler — LLM-friendly topic tree navigation for cross-topic search.\n */\n\nimport { formatSdkResult, getSdkClient, readBoolean, readNumber, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const discoveryHandlers: HandlerModule = {\n async discover(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.discover({\n query: readString(args.query) ?? \"\",\n topK: readNumber(args.topK),\n includeNeighborhood: readBoolean(args.includeNeighborhood),\n })\n );\n },\n};\n","import { adminMutation } from \"../convex-client.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nfunction hasVerificationPayload(args: Record<string, unknown>): boolean {\n return (\n args.testOutput !== undefined ||\n args.tscOutput !== undefined ||\n args.lintOutput !== undefined ||\n args.sentryData !== undefined\n );\n}\n\nexport const engineeringVerificationHandlers: HandlerModule = {\n async evaluate_engineering_contract(args, ctx) {\n if (!hasVerificationPayload(args)) {\n throw new Error(\n \"evaluate_engineering_contract requires at least one verification payload.\"\n );\n }\n\n const result = await adminMutation(\n \"epistemicContracts:evaluateEngineeringContracts\" as any,\n {\n beliefNodeId: args.beliefNodeId,\n trigger: args.trigger,\n testOutput: args.testOutput,\n tscOutput: args.tscOutput,\n lintOutput: args.lintOutput,\n sentryData: args.sentryData,\n authenticatedUserId: ctx.userId,\n }\n );\n\n return result as Record<string, unknown>;\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport { readTopicIdArg } from \"../scope.js\";\nimport {\n asJsonObject,\n asRecord,\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n} from \"./sdk.js\";\n\nexport const evidenceHandlers: HandlerModule = {\n async create_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.create({\n topicId: readString(readTopicIdArg(args)) ?? \"\",\n text: readString(args.text) ?? \"\",\n source: readString(args.source),\n targetId: readString(args.targetId),\n weight: readNumber(args.weight),\n metadata: asJsonObject(args.metadata) as any,\n title: readString(args.title),\n content: readString(args.content),\n contentType: readString(args.contentType),\n kind: readString(args.kind),\n })\n );\n },\n\n async get_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.get(\n readString(args.id ?? args.evidenceId) ?? \"\"\n )\n );\n },\n\n async list_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.list({\n topicId: readString(readTopicIdArg(args)),\n targetId: readString(args.targetId),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async link_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.link({\n evidenceId: readString(args.evidenceId) ?? \"\",\n targetId:\n readString(args.targetId ?? args.beliefId ?? args.questionId) ?? \"\",\n targetType: readString(args.targetType),\n weight: readNumber(args.weight ?? args.relevance),\n rationale: readString(args.rationale),\n })\n );\n },\n\n async search_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.search({\n q: readString(args.q ?? args.query) ?? \"\",\n topicId: readString(readTopicIdArg(args)),\n targetId: readString(args.targetId),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async add_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.add({\n topicId: readString(readTopicIdArg(args)) ?? \"\",\n text: readString(args.text ?? args.canonicalText) ?? \"\",\n source: readString(args.source ?? args.sourceUrl),\n targetId: readString(args.targetId ?? args.targetNodeId),\n weight: readNumber(args.weight),\n metadata: {\n ...asRecord(args.metadata),\n ...(readString(args.reasoning)\n ? { rationale: readString(args.reasoning) }\n : {}),\n } as any,\n title: readString(args.title),\n content: readString(args.content),\n contentType: readString(args.contentType),\n kind: readString(args.kind),\n })\n );\n },\n\n async link_evidence_to_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.linkToBelief({\n evidenceId: readString(args.evidenceId) ?? \"\",\n beliefId: readString(args.beliefId) ?? \"\",\n weight: readNumber(args.weight) ?? 1,\n rationale: readString(args.rationale),\n })\n );\n },\n};\n","import { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const identityHandlers: HandlerModule = {\n async identity_whoami(_args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).identity.whoami());\n },\n};\n","import { graphHandlers } from \"./graph.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const intelligenceHandlers: HandlerModule = {\n detect_confirmation_bias: graphHandlers.detect_confirmation_bias,\n get_graph_structure_analysis: graphHandlers.get_graph_structure_analysis,\n get_falsification_questions: graphHandlers.get_falsification_questions,\n};\n","/**\n * Judgment Handlers — record_judgment\n */\n\nimport { readTopicIdArg, ROOT_TOPIC_ID, resolveTopicScopeId } from \"../scope.js\";\nimport { formatSdkResult, getSdkClient, readNumber, readString, readStringArray } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const judgmentHandlers: HandlerModule = {\n async record_judgment(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"record_judgment\"\n );\n\n if (topicId === ROOT_TOPIC_ID) {\n throw new Error(\n \"[record_judgment] Resolved topic is Root — epistemic nodes must belong to a child topic. \" +\n \"Provide a valid topicId for this judgment.\"\n );\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).judgments.record({\n title: readString(args.title) ?? \"\",\n rationale: readString(args.rationale) ?? \"\",\n topicId,\n confidence: readNumber(args.confidence) ?? 0.7,\n beliefIds: readStringArray(args.beliefIds),\n })\n );\n },\n};\n","/**\n * Lens Handlers — create_lens, list_lenses, apply_lens_to_topic, remove_lens_from_topic\n */\n\nimport { validateFilterCriteria } from \"@lucern/contracts/lens-filter.contract\";\nimport { readTopicIdArg } from \"../scope.js\";\nimport { formatSdkResult, getSdkClient, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nfunction readWorkspaceIdArg(args: Record<string, unknown>): string | undefined {\n return readString(args.workspaceId);\n}\n\nexport const lensHandlers: HandlerModule = {\n async create_lens(args, ctx) {\n const filterCriteria =\n args.filterCriteria && typeof args.filterCriteria === \"object\"\n ? (args.filterCriteria as Record<string, unknown>)\n : undefined;\n\n if (filterCriteria !== undefined) {\n const validation = validateFilterCriteria(filterCriteria);\n if (!validation.valid) {\n throw new Error(\n `Invalid filterCriteria: ${validation.errors.join(\"; \")}`\n );\n }\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.createLens({\n name: readString(args.name) ?? \"\",\n topicId: readTopicIdArg(args),\n workspaceId: readWorkspaceIdArg(args),\n description: readString(args.description),\n perspectiveType: readString(args.perspectiveType) as any,\n promptTemplates: Array.isArray(args.promptTemplates)\n ? (args.promptTemplates as any[])\n : undefined,\n workflowTemplates: Array.isArray(args.workflowTemplates)\n ? (args.workflowTemplates as any[])\n : undefined,\n taskTemplates: Array.isArray(args.taskTemplates)\n ? (args.taskTemplates as any[])\n : undefined,\n questionTemplates: Array.isArray(args.questionTemplates)\n ? (args.questionTemplates as any[])\n : undefined,\n filterCriteria,\n })\n );\n },\n\n async list_lenses(args, ctx) {\n try {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.listLenses({\n workspaceId: readWorkspaceIdArg(args),\n topicId: readTopicIdArg(args),\n status: readString(args.status) as any,\n perspectiveType: readString(args.perspectiveType) as any,\n })\n );\n } catch (error) {\n if (\n error instanceof Error &&\n error.message.includes(\n \"workspaceId is required unless topicId resolves to a workspace-scoped topic\"\n )\n ) {\n return {\n lenses: [],\n note: \"workspaceId is required unless topicId resolves to a workspace-scoped topic\",\n };\n }\n throw error;\n }\n },\n\n async apply_lens_to_topic(args, ctx) {\n const topicId = readTopicIdArg(args);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.applyLensToTopic({\n lensId: readString(args.lensId) ?? \"\",\n topicId,\n metadata:\n args.metadata && typeof args.metadata === \"object\"\n ? (args.metadata as Record<string, unknown>)\n : undefined,\n })\n );\n },\n\n async remove_lens_from_topic(args, ctx) {\n const topicId = readTopicIdArg(args);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.removeLensFromTopic({\n lensId: readString(args.lensId) ?? \"\",\n topicId,\n })\n );\n },\n};\n","import { formatSdkResult, getSdkClient, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const lineageHandlers: HandlerModule = {\n async query_lineage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).graph.queryLineage(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async get_confidence_history(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).graph.getConfidenceHistory(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async get_audit_trail(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).graph.getAuditTrail(\n args.nodeId as string,\n (args.limit as number) ?? 50\n )\n );\n },\n};\n","/**\n * Observation Handlers — ingest_observation, get_observation_context\n *\n * Stage-1 implementation is process-local and read-only to graph state.\n * This preserves invariant #14: observations stage candidate updates but do not mutate epistemic nodes.\n */\n\nimport { readTopicIdArg, resolveTopicScopeId } from \"../scope.js\";\nimport type { HandlerModule } from \"./types.js\";\n\ntype ObservationType =\n | \"claim\"\n | \"evidence\"\n | \"question\"\n | \"contradiction\"\n | \"judgment\"\n | \"note\";\n\ntype ObservationRecord = {\n observationId: string;\n topicId: string;\n observationType: ObservationType;\n summary: string;\n source?: string;\n confidence?: number;\n tags: string[];\n metadata?: Record<string, unknown>;\n createdAt: number;\n};\n\nconst observationStore = new Map<string, ObservationRecord[]>();\n\nfunction tokenize(input: string): string[] {\n return input\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .map((token) => token.trim())\n .filter(Boolean);\n}\n\nfunction scoreSemanticMatch(record: ObservationRecord, query: string): number {\n const queryTokens = new Set(tokenize(query));\n if (queryTokens.size === 0) {\n return 0;\n }\n const haystack = [record.summary, record.source || \"\", ...(record.tags || [])]\n .join(\" \")\n .toLowerCase();\n let score = 0;\n for (const token of queryTokens) {\n if (haystack.includes(token)) {\n score += 1;\n }\n }\n return score;\n}\n\nexport const observationHandlers: HandlerModule = {\n async ingest_observation(args, _ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"ingest_observation\"\n );\n const observationType = args.observationType as ObservationType;\n const summary = args.summary as string;\n const source = (args.source as string) || undefined;\n const confidence = (args.confidence as number) || undefined;\n const tags = ((args.tags as string[]) || []).filter(\n (tag) => typeof tag === \"string\" && tag.trim().length > 0\n );\n const metadata = (args.metadata as Record<string, unknown>) || undefined;\n\n const createdAt = Date.now();\n const observationId = (\n typeof crypto !== \"undefined\" && \"randomUUID\" in crypto\n ? crypto.randomUUID()\n : `obs_${createdAt}_${Math.random().toString(36).slice(2)}`\n ) as string;\n\n const record: ObservationRecord = {\n observationId,\n topicId,\n observationType,\n summary,\n source,\n confidence,\n tags,\n metadata,\n createdAt,\n };\n\n const existing = observationStore.get(topicId) || [];\n existing.push(record);\n observationStore.set(topicId, existing.slice(-500));\n\n return {\n observationId,\n topicId,\n observationType,\n createdAt,\n contextResourceUri: `lucern://observations/${topicId}`,\n };\n },\n\n async get_observation_context(args, _ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"get_observation_context\"\n );\n const query = (args.query as string) || \"\";\n const limit = Math.max(1, Math.min((args.limit as number) || 25, 200));\n const records = observationStore.get(topicId) || [];\n\n const latest = records.slice(-limit).reverse();\n\n const semanticMatches = query\n ? records\n .map((record) => ({\n record,\n score: scoreSemanticMatch(record, query),\n }))\n .filter((row) => row.score > 0)\n .sort((a, b) => b.score - a.score)\n .slice(0, limit)\n .map((row) => row.record)\n : [];\n\n const byType: Record<string, number> = {};\n for (const row of records) {\n byType[row.observationType] = (byType[row.observationType] || 0) + 1;\n }\n\n return {\n topicId,\n totalObservations: records.length,\n latest,\n semanticMatches,\n byType,\n generatedAt: Date.now(),\n };\n },\n};\n","/**\n * Ontology Handlers — MCP handlers for ontology definition CRUD.\n */\n\nimport { formatSdkResult, getSdkClient, readNumber, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const ontologyHandlers: HandlerModule = {\n async list_ontologies(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.list({\n tenantId: readString(args.tenantId),\n tier: readString(args.tier),\n status: readString(args.status),\n })\n );\n },\n\n async get_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.get({\n id: readString(args.id ?? args.ontologyId),\n ontologyKey: readString(args.ontologyKey),\n tenantId: readString(args.tenantId),\n tier: readString(args.tier),\n status: readString(args.status),\n } as any)\n );\n },\n\n async apply_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.bind({\n ontologyId: readString(args.ontologyId ?? args.id) ?? \"\",\n topicId: readString(args.topicId) ?? \"\",\n })\n );\n },\n\n async match_entity_type(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.match({\n text: readString(args.text) ?? \"\",\n topicId: readString(args.topicId),\n ontologyId: readString(args.ontologyId),\n minScore: readNumber(args.minScore),\n limit: readNumber(args.limit),\n })\n );\n },\n\n async create_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.create({\n ontologyKey: readString(args.ontologyKey) ?? \"\",\n name: readString(args.name) ?? \"\",\n description: readString(args.description),\n tenantId: readString(args.tenantId),\n tier: readString(args.tier) ?? \"platform\",\n parentOntologyId: readString(args.parentOntologyId),\n })\n );\n },\n\n async update_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.update({\n id: readString(args.id) ?? \"\",\n name: readString(args.name),\n description: readString(args.description),\n status: readString(args.status),\n })\n );\n },\n\n async archive_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.archive({\n id: readString(args.id) ?? \"\",\n })\n );\n },\n\n async create_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.createVersion({\n ontologyId: readString(args.ontologyId) ?? \"\",\n version: readString(args.version) ?? \"\",\n entityTypes: Array.isArray(args.entityTypes) ? (args.entityTypes as any[]) : [],\n edgeTypes: Array.isArray(args.edgeTypes) ? (args.edgeTypes as any[]) : [],\n releaseNotes: readString(args.releaseNotes),\n })\n );\n },\n\n async publish_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.publishVersion({\n id: readString(args.id) ?? \"\",\n })\n );\n },\n\n async deprecate_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.deprecateVersion({\n id: readString(args.id) ?? \"\",\n })\n );\n },\n\n async resolve_effective_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.resolveEffective({\n ontologyId: readString(args.ontologyId) ?? \"\",\n })\n );\n },\n};\n","/**\n * Ontology Matching Handlers — MCP handlers for L0 entity type classification,\n * entity discovery, and change-triggered belief review.\n */\n\nimport { ontologyHandlers } from \"./ontologies.js\";\nimport { formatSdkResult, getSdkClient, readNumber, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const ontologyMatchingHandlers: HandlerModule = {\n async match_entity_type(args, ctx) {\n return ontologyHandlers.match_entity_type(args, ctx);\n },\n\n async discover_entity_connections(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.discoverEntityConnections({\n nodeId: readString(args.nodeId) ?? \"\",\n topicId: readString(args.topicId),\n minScore: readNumber(args.minScore),\n limit: readNumber(args.limit),\n })\n );\n },\n\n async trigger_belief_review(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.triggerBeliefReview({\n entityNodeId: readString(args.entityNodeId) ?? \"\",\n changeDescription: readString(args.changeDescription),\n maxQuestions: readNumber(args.maxQuestions),\n })\n );\n },\n};\n","/**\n * Policy Handlers — check_permission, filter_by_permission, manage_write_policy\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const policyHandlers: HandlerModule = {\n async check_permission(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).policy.checkPermission(args)\n );\n },\n\n async filter_by_permission(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).policy.filterByPermission(args)\n );\n },\n\n async manage_write_policy(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).policy.manageWritePolicy(args)\n );\n },\n};\n","import { evidenceHandlers } from \"./evidence.js\";\nimport {\n asRecord,\n formatSdkResult,\n getSdkClient,\n readBoolean,\n readNumber,\n readString,\n readStringArray,\n} from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const questionHandlers: HandlerModule = {\n async create_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.create({\n topicId: readString(args.topicId) ?? \"\",\n text: readString(args.text) ?? \"\",\n priority: readString(args.priority),\n linkedBeliefId: readString(args.linkedBeliefId),\n metadata: asRecord(args.metadata) as any,\n })\n );\n },\n\n async get_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.get(\n readString(args.id ?? args.questionId) ?? \"\"\n )\n );\n },\n\n async list_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.list({\n topicId: readString(args.topicId),\n status: readString(args.status),\n priority: readString(args.priority),\n worktreeId: readString(args.worktreeId),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async answer_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.answer(\n readString(args.id ?? args.questionId) ?? \"\",\n {\n text: readString(args.text) ?? \"\",\n confidence: readString(args.confidence),\n evidenceIds: readStringArray(args.evidenceIds),\n rationale: readString(args.rationale),\n }\n )\n );\n },\n\n async refine_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.refine(\n readString(args.id ?? args.questionId) ?? \"\",\n readString(args.text) ?? \"\",\n readString(args.rationale ?? args.refinementReason)\n )\n );\n },\n\n async update_question_status(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.updateStatus(\n readString(args.id ?? args.questionId) ?? \"\",\n readString(args.status) ?? \"\",\n readString(args.rationale)\n )\n );\n },\n\n async archive_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.archive(\n readString(args.id ?? args.questionId) ?? \"\",\n readString(args.reason ?? args.rationale)\n )\n );\n },\n\n async link_evidence_to_question(args, ctx) {\n const result = await evidenceHandlers.link_evidence(\n {\n evidenceId: readString(args.evidenceId) ?? \"\",\n targetId: readString(args.questionId) ?? \"\",\n weight: readNumber(args.relevance),\n rationale: readString(args.rationale),\n },\n ctx\n );\n\n return {\n ...result,\n questionId: readString(args.questionId) ?? result.targetId,\n relevance: readNumber(args.relevance),\n };\n },\n\n async get_high_priority_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.getHighPriority({\n topicId: readString(args.topicId),\n limit: readNumber(args.limit),\n includeAnswered: readBoolean(args.includeAnswered),\n })\n );\n },\n\n async find_missing_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.findMissing({\n topicId: readString(args.topicId) ?? \"\",\n minConfidence: readNumber(args.minConfidence),\n })\n );\n },\n};\n","/**\n * Research Handlers — search_sources, execute_deep_research\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const researchHandlers: HandlerModule = {\n async search_sources(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).research.searchSources(args));\n },\n\n async execute_deep_research(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).research.executeDeepResearch(args)\n );\n },\n};\n","import { api } from \"../kernelApi.js\";\nimport { adminMutation } from \"../convex-client.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nfunction buildInputData(\n args: Record<string, unknown>\n): Record<string, unknown> | undefined {\n const entries = Object.entries({\n metricData: args.metricData,\n referenceCheckData: args.referenceCheckData,\n marketIndexData: args.marketIndexData,\n temporalData: args.temporalData,\n }).filter(([, value]) => value !== undefined);\n\n return entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\nexport const researchVerificationHandlers: HandlerModule = {\n async evaluate_research_contract(args, ctx) {\n const inputData = buildInputData(args);\n const result = await adminMutation(\n api.epistemicContracts.evaluateContractsForTrigger as any,\n {\n beliefNodeId: args.beliefNodeId,\n trigger:\n typeof args.trigger === \"string\" && args.trigger.length > 0\n ? args.trigger\n : \"event_driven\",\n ...(inputData ? { inputData } : {}),\n authenticatedUserId: ctx.userId,\n }\n );\n\n return result as Record<string, unknown>;\n },\n};\n","import type { ContextPackV1 } from \"@lucern/contracts\";\nimport {\n decodePrefixedId,\n encodePrefixedId,\n} from \"@lucern/contracts\";\nimport {\n type CompileContextCommand,\n type CompileContextPorts,\n type CompileContextPortInput,\n} from \"./ports\";\nimport type { PublicCompiledContext } from \"./public-types\";\n\nexport class ContextCompileError extends Error {\n readonly code: string;\n readonly status: number;\n\n constructor(code: string, message: string, status: number) {\n super(message);\n this.name = \"ContextCompileError\";\n this.code = code;\n this.status = status;\n }\n}\n\nexport function isContextCompileError(\n error: unknown\n): error is ContextCompileError {\n return error instanceof ContextCompileError;\n}\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction cleanNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction cleanBoolean(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction cleanStringArray(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value\n .map((entry) => cleanString(entry))\n .filter((entry): entry is string => Boolean(entry));\n}\n\nfunction prefixId(prefix: string, value: unknown): string {\n const cleaned = cleanString(value);\n if (!cleaned) {\n return `${prefix}_unknown`;\n }\n try {\n const decoded = decodePrefixedId(cleaned);\n if (decoded.prefix === prefix) {\n return cleaned;\n }\n } catch {\n // Fall through and encode raw ids below.\n }\n return encodePrefixedId(prefix, cleaned);\n}\n\nfunction mapSelectedIds(\n value: Record<string, string[]>\n): Record<string, string[]> {\n return {\n invariants: (value.invariants ?? []).map((id) => prefixId(\"bel\", id)),\n activeBeliefs: (value.activeBeliefs ?? []).map((id) => prefixId(\"bel\", id)),\n openQuestions: (value.openQuestions ?? []).map((id) => prefixId(\"que\", id)),\n recentEvidence: (value.recentEvidence ?? []).map((id) => prefixId(\"evi\", id)),\n contradictions: (value.contradictions ?? []).map((id) => prefixId(\"con\", id)),\n };\n}\n\nfunction mapExcludedId(section: string, id: string): string {\n if (section === \"invariants\" || section === \"activeBeliefs\") {\n return prefixId(\"bel\", id);\n }\n if (section === \"openQuestions\") {\n return prefixId(\"que\", id);\n }\n if (section === \"recentEvidence\") {\n return prefixId(\"evi\", id);\n }\n if (section === \"contradictions\") {\n return prefixId(\"con\", id);\n }\n return id;\n}\n\nexport function toPublicCompiledContext(\n pack: ContextPackV1\n): PublicCompiledContext {\n return {\n schemaVersion: pack.schemaVersion,\n topicId: prefixId(\"top\", pack.topicId),\n topicName: pack.topicName,\n scopedTopicIds: (pack.scopedTopicIds ?? []).map((id) => prefixId(\"top\", id)),\n generatedAt: pack.generatedAt,\n ranking: pack.rankingProfile,\n summary: pack.summary as Record<string, unknown>,\n invariants: (pack.invariants ?? []).map((belief) => ({\n beliefId: prefixId(\"bel\", belief.nodeId),\n text: belief.canonicalText,\n confidence: belief.confidence ?? null,\n beliefType: belief.beliefType ?? null,\n score: belief.score,\n ...(belief.justification ? { justification: belief.justification } : {}),\n })),\n activeBeliefs: (pack.activeBeliefs ?? []).map((belief) => ({\n beliefId: prefixId(\"bel\", belief.nodeId),\n text: belief.canonicalText,\n confidence: belief.confidence ?? null,\n beliefType: belief.beliefType ?? null,\n status: belief.status,\n updatedAt: belief.updatedAt ?? null,\n score: belief.score,\n ...(belief.justification ? { justification: belief.justification } : {}),\n })),\n openQuestions: (pack.openQuestions ?? []).map((question) => ({\n questionId: prefixId(\"que\", question.questionId),\n text: question.text,\n status: question.status,\n priority: question.priority,\n updatedAt: question.updatedAt ?? null,\n score: question.score,\n ...(question.justification ? { justification: question.justification } : {}),\n })),\n recentEvidence: (pack.recentEvidence ?? []).map((evidence) => ({\n evidenceId: prefixId(\"evi\", evidence.nodeId),\n text: evidence.canonicalText,\n kind: evidence.kind,\n sourceUrl: evidence.sourceUrl ?? null,\n createdAt: evidence.createdAt ?? null,\n score: evidence.score,\n ...(evidence.justification ? { justification: evidence.justification } : {}),\n })),\n contradictions: (pack.contradictions ?? []).map((contradiction) => ({\n contradictionId: prefixId(\"con\", contradiction.contradictionId),\n severity: contradiction.severity,\n status: contradiction.status,\n description: contradiction.description,\n score: contradiction.score,\n ...(contradiction.justification\n ? { justification: contradiction.justification }\n : {}),\n })),\n ...(pack.relatedEntities\n ? {\n relatedEntities: pack.relatedEntities.map((entity) => ({\n entityId: cleanString(entity.nodeId) ?? \"\",\n entityType: entity.entityType,\n title: entity.title,\n text: cleanString((entity as Record<string, unknown>).canonicalText),\n connectedBeliefCount: entity.connectedBeliefCount,\n connectedEvidenceCount: entity.connectedEvidenceCount,\n score: entity.score,\n ...(entity.metadata ? { metadata: entity.metadata } : {}),\n })),\n }\n : {}),\n contextNarrative: pack.contextNarrative ?? [],\n injectionPolicy: {\n tokenBudget: pack.injectionPolicy.tokenBudget,\n estimatedTokens: pack.injectionPolicy.estimatedTokens,\n sectionBudgets: pack.injectionPolicy.sectionBudgets,\n sectionUsage: pack.injectionPolicy.sectionUsage,\n selected: mapSelectedIds(pack.injectionPolicy.selected),\n ...(pack.injectionPolicy.excludedItems\n ? {\n excludedItems: pack.injectionPolicy.excludedItems.map((item) => ({\n ...item,\n id: mapExcludedId(item.section, item.id),\n })),\n }\n : {}),\n },\n diagnostics: pack.diagnostics as Record<string, unknown>,\n ...(pack.compilationMode ? { compilationMode: pack.compilationMode } : {}),\n ...(pack.failureContext\n ? {\n failureContext: {\n failures: pack.failureContext.failures.map((failure) => ({\n ...failure,\n attemptId: prefixId(\"evi\", failure.attemptId),\n })),\n suppressedIds: pack.failureContext.suppressedIds.map((id) =>\n prefixId(\"evi\", id)\n ),\n },\n }\n : {}),\n ...(pack.deltaReport\n ? {\n deltaReport: {\n changedItems: pack.deltaReport.changedItems.map((item) => ({\n ...item,\n id: mapExcludedId(item.section, item.id),\n })),\n verificationObligations: pack.deltaReport.verificationObligations,\n referencePoint: prefixId(\"wt\", pack.deltaReport.referencePoint),\n },\n }\n : {}),\n ...(pack.appliedWeightOverrides\n ? { appliedWeightOverrides: pack.appliedWeightOverrides }\n : {}),\n };\n}\n\nfunction toCompilePortInput(\n input: CompileContextCommand,\n allowedTopicIds: string[]\n): CompileContextPortInput {\n const topicId = cleanString(input.topicId) ?? cleanString(input.projectId);\n if (!topicId) {\n throw new ContextCompileError(\n \"INVALID_REQUEST\",\n \"topicId is required.\",\n 400\n );\n }\n\n const query = cleanString(input.query);\n const ranking = cleanString(input.ranking) ?? cleanString(input.rankingProfile);\n const worktreeId = cleanString(input.worktreeId);\n const sessionId = cleanString(input.sessionId);\n\n return {\n topicId,\n projectId: topicId,\n ...(query ? { query } : {}),\n ...(cleanNumber(input.budget) !== undefined\n ? { budget: cleanNumber(input.budget) }\n : cleanNumber(input.tokenBudget) !== undefined\n ? { budget: cleanNumber(input.tokenBudget) }\n : {}),\n ...(ranking ? { ranking: ranking as CompileContextPortInput[\"ranking\"] } : {}),\n ...(cleanNumber(input.limit) !== undefined ? { limit: cleanNumber(input.limit) } : {}),\n ...(cleanNumber(input.maxDepth) !== undefined\n ? { maxDepth: cleanNumber(input.maxDepth) }\n : {}),\n ...(cleanBoolean(input.includeEntities) !== undefined\n ? { includeEntities: cleanBoolean(input.includeEntities) }\n : {}),\n ...(cleanString(input.mode) ? { mode: input.mode } : {}),\n ...(cleanBoolean(input.includeFailures) !== undefined\n ? { includeFailures: cleanBoolean(input.includeFailures) }\n : {}),\n ...(worktreeId ? { worktreeId } : {}),\n ...(sessionId ? { sessionId } : {}),\n ...(Array.isArray(input.packWeightOverrides) &&\n input.packWeightOverrides.length > 0\n ? { packWeightOverrides: input.packWeightOverrides }\n : {}),\n allowedTopicIds,\n };\n}\n\nexport async function compileContext(\n ports: CompileContextPorts,\n input: CompileContextCommand\n): Promise<PublicCompiledContext> {\n const topicId = cleanString(input.topicId) ?? cleanString(input.projectId);\n if (!topicId) {\n throw new ContextCompileError(\n \"INVALID_REQUEST\",\n \"topicId is required.\",\n 400\n );\n }\n\n const actorPrincipalId = cleanString(input.actorPrincipalId);\n if (ports.requireAuth !== false && !actorPrincipalId) {\n throw new ContextCompileError(\n \"AUTHENTICATION_REQUIRED\",\n \"Authentication is required to compile context.\",\n 401\n );\n }\n\n let allowedTopicIds = cleanStringArray(input.allowedTopicIds);\n if (ports.policy && actorPrincipalId) {\n const readableRoots = await ports.policy.filterReadableTopicIds({\n topicIds: [topicId],\n actorPrincipalId,\n traceId: input.policyTraceId,\n });\n if (!readableRoots.includes(topicId)) {\n throw new ContextCompileError(\n \"FORBIDDEN\",\n \"Access denied to compile context for this topic.\",\n 403\n );\n }\n const listedTopics = await ports.policy.listReadableTopicIds({\n actorPrincipalId,\n traceId: input.policyTraceId,\n });\n allowedTopicIds = listedTopics.length > 0 ? listedTopics : [topicId];\n }\n\n const compiled = await ports.compiler.compile(\n toCompilePortInput(input, allowedTopicIds.length > 0 ? allowedTopicIds : [topicId])\n );\n return toPublicCompiledContext(compiled);\n}\n","/**\n * Universal scope workflow handlers.\n */\n\nimport { toPublicCompiledContext } from \"@lucern/server-core/domain/context/compile\";\nimport { readTopicIdArg, resolveTopicScopeId } from \"../scope.js\";\nimport { formatSdkResult, getSdkClient, readBoolean, readNumber, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const scopeContextHandlers: HandlerModule = {\n async compile_context(args, ctx) {\n const requestedScope = readTopicIdArg(args);\n if (!requestedScope) {\n throw new Error(\"[compile_context] topicId is required.\");\n }\n\n const topicId = await resolveTopicScopeId(requestedScope, \"compile_context\");\n if (\n ctx.sessionType === \"user\" &&\n Array.isArray(ctx.allowedTopics) &&\n (!ctx.allowedTopics.includes(topicId) || ctx.allowedTopics.length === 0)\n ) {\n throw new Error(\n `[compile_context] Access denied to compile context for topic ${topicId}.`\n );\n }\n\n const compiled = formatSdkResult(\n await getSdkClient(ctx).context.compile(topicId, {\n query: readString(args.query),\n budget: readNumber(args.budget ?? args.tokenBudget),\n ranking: readString(args.ranking ?? args.rankingProfile),\n limit: readNumber(args.limit),\n maxDepth: readNumber(args.maxDepth),\n includeEntities: readBoolean(args.includeEntities),\n mode: readString(args.mode),\n includeFailures: readBoolean(args.includeFailures),\n worktreeId: readString(args.worktreeId),\n sessionId: readString(args.sessionId),\n packWeightOverrides: Array.isArray(args.packWeightOverrides)\n ? (args.packWeightOverrides as any[])\n : undefined,\n })\n );\n\n return toPublicCompiledContext(compiled as any);\n },\n\n async record_scope_learning(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.recordScopeLearning(args)\n );\n },\n\n async seed_belief_lattice(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.seedBeliefLattice(args)\n );\n },\n\n async get_lattice_coverage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.getLatticeCoverage(args)\n );\n },\n};\n","import {\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n readStringArray,\n} from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const searchHandlers: HandlerModule = {\n async search_resources(args, ctx) {\n const topicId = readString(args.topicId) ?? readString(args.projectId) ?? \"\";\n if (!topicId) {\n throw new Error(\"search_resources requires a topicId parameter\");\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).search(readString(args.q) ?? readString(args.query) ?? \"\", {\n topicId,\n types: readStringArray(args.types) as\n | Array<\"belief\" | \"evidence\" | \"question\">\n | undefined,\n status: readString(args.status),\n minConfidence: readNumber(args.minConfidence),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n} from \"./sdk.js\";\n\nexport const taskHandlers: HandlerModule = {\n async create_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).tasks.create({\n topicId: readString(args.topicId ?? args.projectId) ?? \"\",\n title: readString(args.title) ?? \"\",\n description: readString(args.description),\n taskType: readString(args.taskType) as any,\n priority: readString(args.priority) as any,\n linkedBeliefId: readString(args.linkedBeliefId),\n linkedQuestionId: readString(args.linkedQuestionId),\n linkedWorktreeId: readString(args.linkedWorktreeId),\n })\n );\n },\n\n async complete_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).tasks.complete(\n readString(args.taskId ?? args.id) ?? \"\",\n {\n outputSummary: readString(args.outputSummary) ?? \"\",\n }\n )\n );\n },\n\n async update_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).tasks.update(\n readString(args.taskId ?? args.id) ?? \"\",\n {\n title: readString(args.title),\n description: readString(args.description),\n priority: readString(args.priority) as any,\n status: readString(args.status) as any,\n linkedBeliefId: readString(args.linkedBeliefId),\n linkedQuestionId: readString(args.linkedQuestionId),\n linkedWorktreeId: readString(args.linkedWorktreeId),\n }\n )\n );\n },\n\n async list_tasks(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).tasks.list({\n topicId: readString(args.topicId ?? args.projectId),\n worktreeId:\n readString(args.worktreeId) ?? readString(args.linkedWorktreeId),\n status: readString(args.status),\n limit: readNumber(args.limit),\n })\n );\n },\n};\n","import { api, components } from \"../kernelApi.js\";\nimport { adminQuery } from \"../convex-client.js\";\nimport { getDefaultScopeContext, readTopicIdArg } from \"../scope.js\";\nimport type { HandlerModule } from \"./types.js\";\n\ntype ThesisDoc = {\n content?: string;\n memoContent?: string;\n status?: string;\n generatedAt?: number;\n approvedAt?: number;\n};\n\ntype WorktreeDoc = Record<string, unknown> & {\n _id?: string;\n worktreeId?: string;\n name?: string;\n title?: string;\n status?: string;\n phase?: string;\n hypothesis?: string;\n track?: string;\n executionBand?: number;\n topicId?: string;\n branchThesis?: ThesisDoc;\n pillarThesis?: ThesisDoc;\n updatedAt?: number;\n createdAt?: number;\n _creationTime?: number;\n};\n\nfunction stripHtml(value: string): string {\n return value\n .replace(/<[^>]+>/g, \" \")\n .replace(/ /g, \" \")\n .replace(/&/g, \"&\")\n .replace(/\\s+/g, \" \")\n .trim();\n}\n\nfunction truncateText(value: string | null, maxChars = 320): string | null {\n if (!value) {\n return null;\n }\n if (value.length <= maxChars) {\n return value;\n }\n return `${value.slice(0, maxChars - 3).trimEnd()}...`;\n}\n\nfunction normalizeThesis(worktree: WorktreeDoc): ThesisDoc | null {\n const thesis =\n worktree.branchThesis && typeof worktree.branchThesis === \"object\"\n ? worktree.branchThesis\n : worktree.pillarThesis && typeof worktree.pillarThesis === \"object\"\n ? worktree.pillarThesis\n : null;\n return thesis ?? null;\n}\n\nfunction hasThesisArtifact(worktree: WorktreeDoc): boolean {\n const thesis = normalizeThesis(worktree);\n return Boolean(\n typeof thesis?.content === \"string\" && thesis.content.trim().length > 0\n );\n}\n\nfunction normalizeWorktreeId(worktree: WorktreeDoc): string | null {\n if (typeof worktree.worktreeId === \"string\") {\n return worktree.worktreeId;\n }\n if (typeof worktree._id === \"string\") {\n return worktree._id;\n }\n return null;\n}\n\nfunction normalizeTopicId(worktree: WorktreeDoc): string | null {\n return typeof worktree.topicId === \"string\" ? worktree.topicId : null;\n}\n\nfunction rankWorktreesByArtifact(left: WorktreeDoc, right: WorktreeDoc): number {\n const leftThesis = normalizeThesis(left);\n const rightThesis = normalizeThesis(right);\n\n const leftRank =\n leftThesis?.status === \"final\" || typeof leftThesis?.approvedAt === \"number\"\n ? 2\n : 1;\n const rightRank =\n rightThesis?.status === \"final\" || typeof rightThesis?.approvedAt === \"number\"\n ? 2\n : 1;\n if (leftRank !== rightRank) {\n return rightRank - leftRank;\n }\n\n const leftTimestamp =\n leftThesis?.approvedAt ??\n leftThesis?.generatedAt ??\n left.updatedAt ??\n left.createdAt ??\n left._creationTime ??\n 0;\n const rightTimestamp =\n rightThesis?.approvedAt ??\n rightThesis?.generatedAt ??\n right.updatedAt ??\n right.createdAt ??\n right._creationTime ??\n 0;\n return rightTimestamp - leftTimestamp;\n}\n\nfunction summarizeQuestionPayload(questions: unknown[]): {\n total: number;\n answered: number;\n open: number;\n} {\n const normalized = Array.isArray(questions) ? questions : [];\n const answered = normalized.filter((question) => {\n const status =\n question && typeof question === \"object\" && \"status\" in question\n ? String((question as Record<string, unknown>).status ?? \"\").toLowerCase()\n : \"\";\n return status === \"answered\" || status === \"final\";\n }).length;\n const open = normalized.filter((question) => {\n const status =\n question && typeof question === \"object\" && \"status\" in question\n ? String((question as Record<string, unknown>).status ?? \"\").toLowerCase()\n : \"\";\n return status === \"open\" || status === \"in_progress\" || status === \"active\";\n }).length;\n\n return {\n total: normalized.length,\n answered,\n open,\n };\n}\n\nasync function buildWorktreeArtifact(args: {\n worktree: WorktreeDoc;\n topicId: string | null;\n topicName: string | null;\n userId: string;\n includeVersions: boolean;\n}) {\n const worktreeId = normalizeWorktreeId(args.worktree);\n if (!worktreeId) {\n return null;\n }\n\n const thesis = normalizeThesis(args.worktree);\n const thesisHtml =\n typeof thesis?.content === \"string\" && thesis.content.trim().length > 0\n ? thesis.content\n : null;\n const memoHtml =\n typeof thesis?.memoContent === \"string\" && thesis.memoContent.trim().length > 0\n ? thesis.memoContent\n : null;\n const thesisText = thesisHtml ? stripHtml(thesisHtml) : null;\n const memoText = memoHtml ? stripHtml(memoHtml) : null;\n\n const [beliefs, qa, recentEvidence, openQuestions, versionHistory] =\n await Promise.all([\n adminQuery(components.lucern.epistemicBeliefs.getByWorktree, {\n worktreeId: worktreeId as any,\n }).catch(() => []),\n args.topicId\n ? adminQuery((api as any).worktrees.getWorktreeQAForReport, {\n worktreeId: worktreeId as any,\n topicId: args.topicId as any,\n userId: args.userId,\n }).catch(() => null)\n : Promise.resolve(null),\n args.topicId\n ? adminQuery(components.lucern.epistemicEvidence.getByTopic, {\n topicId: args.topicId as any,\n userId: args.userId,\n limit: 8,\n }).catch(() => [])\n : Promise.resolve([]),\n args.topicId\n ? adminQuery(components.lucern.epistemicQuestions.getByTopic, {\n topicId: args.topicId as any,\n userId: args.userId,\n limit: 8,\n status: \"open\",\n }).catch(() => [])\n : Promise.resolve([]),\n args.includeVersions\n ? adminQuery((api as any).worktrees.getPillarThesisVersions, {\n worktreeId: worktreeId as any,\n }).catch(() => [])\n : Promise.resolve([]),\n ]);\n\n const supportingBeliefs = (Array.isArray(beliefs) ? beliefs : [])\n .slice()\n .sort((left: any, right: any) => {\n const leftConfidence =\n typeof left?.confidence === \"number\"\n ? left.confidence\n : typeof left?.currentConfidence === \"number\"\n ? left.currentConfidence\n : 0;\n const rightConfidence =\n typeof right?.confidence === \"number\"\n ? right.confidence\n : typeof right?.currentConfidence === \"number\"\n ? right.currentConfidence\n : 0;\n return rightConfidence - leftConfidence;\n })\n .slice(0, 8)\n .map((belief: any) => ({\n nodeId: String(belief?._id ?? belief?.nodeId ?? \"\"),\n canonicalText: String(\n belief?.canonicalText ?? belief?.text ?? belief?.title ?? \"\"\n ),\n confidence:\n typeof belief?.confidence === \"number\"\n ? belief.confidence\n : typeof belief?.currentConfidence === \"number\"\n ? belief.currentConfidence\n : null,\n status: belief?.status ?? null,\n criticality:\n belief?.criticality ?? belief?.metadata?.criticality ?? null,\n }));\n\n const reportQuestions = Array.isArray((qa as any)?.questions)\n ? ((qa as any).questions as any[])\n : Array.isArray(openQuestions)\n ? (openQuestions as any[])\n : [];\n\n return {\n artifactState: thesisHtml || memoHtml ? \"ready\" : \"missing\",\n worktreeId,\n worktreeName:\n typeof args.worktree.name === \"string\"\n ? args.worktree.name\n : typeof args.worktree.title === \"string\"\n ? args.worktree.title\n : \"Untitled worktree\",\n topicId: args.topicId,\n topicName: args.topicName,\n status: args.worktree.status ?? null,\n phase: args.worktree.phase ?? null,\n track: args.worktree.track ?? null,\n executionBand:\n typeof args.worktree.executionBand === \"number\"\n ? args.worktree.executionBand\n : null,\n hypothesis:\n typeof args.worktree.hypothesis === \"string\"\n ? args.worktree.hypothesis\n : null,\n thesisStatus: thesis?.status ?? null,\n generatedAt:\n typeof thesis?.generatedAt === \"number\" ? thesis.generatedAt : null,\n approvedAt:\n typeof thesis?.approvedAt === \"number\" ? thesis.approvedAt : null,\n thesisHtml,\n thesisText,\n memoHtml,\n memoText,\n preferredArtifact:\n memoText && memoText.length > 0\n ? { format: \"text\", text: memoText, source: \"memo\" }\n : thesisText && thesisText.length > 0\n ? { format: \"text\", text: thesisText, source: \"thesis\" }\n : null,\n preview:\n truncateText(memoText) ??\n truncateText(thesisText) ??\n truncateText(\n typeof args.worktree.hypothesis === \"string\"\n ? args.worktree.hypothesis\n : null\n ),\n questionSummary: summarizeQuestionPayload(reportQuestions),\n supportingBeliefs,\n openQuestions: reportQuestions.slice(0, 8).map((question: any) => ({\n questionId: String(question?.questionId ?? question?._id ?? \"\"),\n question: String(question?.question ?? question?.canonicalText ?? \"\"),\n status: question?.status ?? null,\n importance:\n typeof question?.importance === \"number\" ? question.importance : null,\n answer:\n typeof question?.answer === \"string\" && question.answer.trim().length > 0\n ? question.answer\n : null,\n })),\n recentEvidence: (Array.isArray(recentEvidence) ? recentEvidence : [])\n .slice(0, 6)\n .map((evidence: any) => ({\n nodeId: String(evidence?._id ?? evidence?.nodeId ?? \"\"),\n title: String(evidence?.title ?? evidence?.canonicalText ?? \"\"),\n canonicalText: String(evidence?.canonicalText ?? evidence?.text ?? \"\"),\n sourceUrl:\n typeof evidence?.sourceUrl === \"string\" ? evidence.sourceUrl : null,\n })),\n versionHistory: Array.isArray(versionHistory)\n ? versionHistory.map((version: any) => ({\n version:\n typeof version?.version === \"number\" ? version.version : null,\n status: version?.status ?? null,\n changeType: version?.changeType ?? null,\n changeDescription: version?.changeDescription ?? null,\n createdAt:\n typeof version?.createdAt === \"number\" ? version.createdAt : null,\n }))\n : [],\n };\n}\n\nexport const thesisArtifactHandlers: HandlerModule = {\n async get_thesis_artifacts(args, ctx) {\n const defaultTopicId = getDefaultScopeContext().topicId ?? undefined;\n const requestedTopicId = readTopicIdArg(args) || defaultTopicId || undefined;\n const worktreeId =\n typeof args.worktreeId === \"string\" && args.worktreeId.trim().length > 0\n ? args.worktreeId.trim()\n : undefined;\n const includeVersions = args.includeVersions === true;\n const limit =\n typeof args.limit === \"number\" && Number.isFinite(args.limit)\n ? Math.max(1, Math.min(10, Math.floor(args.limit)))\n : 5;\n\n let selectedWorktree: WorktreeDoc | null = null;\n if (worktreeId) {\n selectedWorktree = (await adminQuery(components.lucern.worktrees.get, {\n worktreeId: worktreeId as any,\n }).catch(() => null)) as WorktreeDoc | null;\n }\n\n const resolvedTopicId = requestedTopicId || normalizeTopicId(selectedWorktree ?? {}) || null;\n let topicName: string | null = null;\n if (resolvedTopicId) {\n const topic = (await adminQuery(components.lucern.topics.get, {\n id: resolvedTopicId as any,\n }).catch(() => null)) as { name?: string } | null;\n topicName = typeof topic?.name === \"string\" ? topic.name : null;\n }\n\n const topicWorktrees = resolvedTopicId\n ? ((await adminQuery(components.lucern.worktrees.getByTopic, {\n topicId: resolvedTopicId as any,\n }).catch(() => [])) as WorktreeDoc[])\n : [];\n const rankedTopicArtifacts = topicWorktrees\n .filter(hasThesisArtifact)\n .sort(rankWorktreesByArtifact);\n\n const selectedArtifact = selectedWorktree\n ? await buildWorktreeArtifact({\n worktree: selectedWorktree,\n topicId: resolvedTopicId,\n topicName,\n userId: ctx.userId,\n includeVersions,\n })\n : rankedTopicArtifacts.length > 0\n ? await buildWorktreeArtifact({\n worktree: rankedTopicArtifacts[0],\n topicId: resolvedTopicId,\n topicName,\n userId: ctx.userId,\n includeVersions,\n })\n : null;\n\n const topicArtifacts = await Promise.all(\n rankedTopicArtifacts.slice(0, limit).map((worktree) =>\n buildWorktreeArtifact({\n worktree,\n topicId: resolvedTopicId,\n topicName,\n userId: ctx.userId,\n includeVersions: false,\n })\n )\n );\n\n return {\n scope: {\n topicId: resolvedTopicId,\n topicName,\n worktreeId: worktreeId ?? null,\n },\n selectedArtifact,\n topicArtifacts: topicArtifacts.filter(Boolean),\n availableArtifactCount: rankedTopicArtifacts.length,\n recommendedUses: [\n \"Draft a meeting agenda grounded in the latest worktree thesis and open questions.\",\n \"Turn the memo text into a one-pager, partner update, or investment note.\",\n \"Use the thesis plus supporting beliefs as slide-outline raw material for a deck.\",\n \"Seed blog-post or email drafts from the narrative artifact without re-querying the graph.\",\n ],\n };\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport {\n asRecord,\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n readStringArray,\n} from \"./sdk.js\";\n\nexport const worktreeHandlers: HandlerModule = {\n async add_worktree(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.add({\n title: readString(args.title) ?? \"\",\n topicId: readString(args.topicId ?? args.projectId) ?? \"\",\n objective: readString(args.objective),\n hypothesis: readString(args.hypothesis),\n beliefIds:\n readStringArray(args.beliefIds) ?? readStringArray(args.beliefs),\n autoShape:\n typeof args.autoShape === \"boolean\" ? args.autoShape : undefined,\n domainPackId: readString(args.domainPackId),\n executionOrder: readNumber(args.executionOrder),\n dependsOn: readStringArray(args.dependsOn),\n blocks: readStringArray(args.blocks),\n gate: readString(args.gate),\n proofArtifacts: Array.isArray(args.proofArtifacts)\n ? args.proofArtifacts\n : undefined,\n staffingHint: readString(args.staffingHint),\n lastReconciledAt: readNumber(args.lastReconciledAt),\n autoFixPolicy:\n args.autoFixPolicy &&\n typeof args.autoFixPolicy === \"object\" &&\n !Array.isArray(args.autoFixPolicy)\n ? (args.autoFixPolicy as any)\n : undefined,\n })\n );\n },\n\n async list_worktrees(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.list({\n topicId: readString(args.topicId ?? args.projectId) ?? \"\",\n status: readString(args.status) as any,\n limit: readNumber(args.limit),\n })\n );\n },\n\n async activate_worktree(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.activate(\n readString(args.worktreeId ?? args.id) ?? \"\"\n )\n );\n },\n\n async update_worktree_metadata(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.updateMetadata({\n worktreeId: readString(args.worktreeId ?? args.id) ?? \"\",\n objective: readString(args.objective),\n hypothesis: readString(args.hypothesis),\n rationale: readString(args.rationale),\n track: readString(args.track),\n trackPosition: readNumber(args.trackPosition),\n executionBand: readNumber(args.executionBand),\n executionOrder: readNumber(args.executionOrder),\n dependsOn: readStringArray(args.dependsOn),\n blocks: readStringArray(args.blocks),\n gate: readString(args.gate),\n status: readString(args.status),\n topicId: readString(args.topicId),\n additionalTopicIds: readStringArray(args.additionalTopicIds),\n proofArtifacts: Array.isArray(args.proofArtifacts)\n ? args.proofArtifacts\n : undefined,\n staffingHint: readString(args.staffingHint),\n lastReconciledAt: readNumber(args.lastReconciledAt),\n autoFixPolicy:\n args.autoFixPolicy &&\n typeof args.autoFixPolicy === \"object\" &&\n !Array.isArray(args.autoFixPolicy)\n ? args.autoFixPolicy\n : undefined,\n } as any)\n );\n },\n\n async merge(args, ctx) {\n const record = asRecord(args);\n const outcomes = Array.isArray(record.outcomes) ? record.outcomes : [];\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.merge(\n readString(record.worktreeId ?? record.id) ?? \"\",\n {\n summary: readString(record.summary),\n outcomes: outcomes.map((entry) => {\n const row = asRecord(entry);\n return {\n beliefId: readString(row.beliefId) ?? \"\",\n confidence: readNumber(row.confidence) ?? Number.NaN,\n rationale: readString(row.rationale) ?? \"\",\n };\n }),\n }\n )\n );\n },\n\n async list_all_worktrees(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.listAll({\n status: readString(args.status) as any,\n track: readString(args.track),\n executionBand: readNumber(args.executionBand),\n limit: readNumber(args.limit),\n })\n );\n },\n\n async pipeline_snapshot(args, ctx) {\n const topicId = readString(args.topicId) ?? \"\";\n if (!topicId) {\n return { error: \"topicId is required\" };\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.pipelineSnapshot(topicId)\n );\n },\n\n async push(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.push(\n readString(args.worktreeId ?? args.id) ?? \"\",\n {\n targetContext: readString(args.targetContext) ?? \"\",\n beliefIds: readStringArray(args.beliefIds),\n }\n )\n );\n },\n\n async open_pull_request(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.openPullRequest(\n readString(args.worktreeId ?? args.id) ?? \"\",\n {\n summary: readString(args.summary) ?? \"\",\n reviewers: readStringArray(args.reviewers),\n }\n )\n );\n },\n\n async update_worktree_targets(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.updateTargets({\n worktreeId: readString(args.worktreeId ?? args.id) ?? \"\",\n addBeliefIds: readStringArray(args.addBeliefIds),\n addQuestionIds: readStringArray(args.addQuestionIds),\n removeBeliefIds: readStringArray(args.removeBeliefIds),\n removeQuestionIds: readStringArray(args.removeQuestionIds),\n })\n );\n },\n};\n","/**\n * Handler Index — barrel file combining all handler modules into a single map.\n *\n * Each handler module exports a HandlerModule (Record<string, ToolHandler>)\n * keyed by MCP tool name. buildHandlerMap() merges them into a single lookup.\n */\n\nimport { answerHandlers } from \"./answers.js\";\nimport { autoBranchingHandlers } from \"./auto-branching.js\";\nimport { beliefHandlers } from \"./beliefs.js\";\nimport { bootstrapHandlers } from \"./bootstrap.js\";\nimport { codingHandlers } from \"./coding.js\";\nimport { contractHandlers } from \"./contracts.js\";\nimport { contradictionHandlers } from \"./contradictions.js\";\nimport { coordinationHandlers } from \"./coordination.js\";\nimport { coverageHandlers } from \"./coverage.js\";\nimport { discoveryHandlers } from \"./discovery.js\";\nimport { edgeHandlers } from \"./edges.js\";\nimport { engineeringVerificationHandlers } from \"./engineering-verification.js\";\nimport { evidenceHandlers } from \"./evidence.js\";\nimport { graphHandlers } from \"./graph.js\";\nimport { identityHandlers } from \"./identity.js\";\nimport { intelligenceHandlers } from \"./intelligence.js\";\nimport { judgmentHandlers } from \"./judgments.js\";\nimport { lensHandlers } from \"./lenses.js\";\nimport { lineageHandlers } from \"./lineage.js\";\nimport { observationHandlers } from \"./observations.js\";\nimport { ontologyHandlers } from \"./ontologies.js\";\nimport { ontologyMatchingHandlers } from \"./ontology-matching.js\";\nimport { policyHandlers } from \"./policy.js\";\nimport { questionHandlers } from \"./questions.js\";\nimport { researchHandlers } from \"./research.js\";\nimport { researchVerificationHandlers } from \"./research-verification.js\";\nimport { scopeContextHandlers } from \"./scope-context.js\";\nimport { searchHandlers } from \"./search.js\";\nimport { taskHandlers } from \"./tasks.js\";\nimport { thesisArtifactHandlers } from \"./thesis-artifacts.js\";\nimport { topicHandlers } from \"./topics.js\";\nimport type { AuthenticatedHandler } from \"./types.js\";\nimport { worktreeHandlers } from \"./worktrees.js\";\n\n/**\n * Build the complete handler map for all MCP tools.\n */\nexport function buildHandlerMap(): Record<string, AuthenticatedHandler> {\n return {\n ...evidenceHandlers,\n ...questionHandlers,\n ...searchHandlers,\n ...answerHandlers,\n ...worktreeHandlers,\n ...lensHandlers,\n ...edgeHandlers,\n ...judgmentHandlers,\n ...graphHandlers,\n ...identityHandlers,\n ...lineageHandlers,\n ...intelligenceHandlers,\n ...researchHandlers,\n ...researchVerificationHandlers,\n ...taskHandlers,\n ...topicHandlers,\n ...contradictionHandlers,\n ...contractHandlers,\n ...engineeringVerificationHandlers,\n ...policyHandlers,\n ...observationHandlers,\n ...scopeContextHandlers,\n ...codingHandlers,\n ...coordinationHandlers,\n ...coverageHandlers,\n ...discoveryHandlers,\n ...thesisArtifactHandlers,\n ...bootstrapHandlers,\n ...autoBranchingHandlers,\n ...ontologyHandlers,\n ...ontologyMatchingHandlers,\n ...beliefHandlers,\n };\n}\n","/**\n * Write Policy — S2-13K Graph Compounding\n *\n * Policy enforcement for MCP mutation tools.\n * Queries Convex write policies and tracks per-session write counts.\n */\n\nimport { api } from \"./kernelApi.js\";\nimport { adminQuery } from \"./convex-client.js\";\nimport type { AuthContext } from \"./handlers/types.js\";\n\n// ── Tool Category Classification ─────────────────────────────────────────────\n\nconst MUTATION_TOOL_NAMES = new Set([\n \"create_belief\",\n \"refine_belief\",\n \"modulate_confidence\",\n \"fork_belief\",\n \"archive_belief\",\n \"create_evidence\",\n \"link_evidence\",\n \"add_evidence\",\n \"link_evidence_to_belief\",\n \"record_scope_learning\",\n \"record_attempt\",\n \"create_question\",\n \"answer_question\",\n \"refine_question\",\n \"update_question_status\",\n \"archive_question\",\n \"link_evidence_to_question\",\n \"create_answer\",\n \"create_edge\",\n \"flag_contradiction\",\n \"add_worktree\",\n \"merge\",\n \"activate_worktree\",\n \"update_worktree_metadata\",\n \"update_worktree_targets\",\n \"create_lens\",\n \"apply_lens_to_topic\",\n \"remove_lens_from_topic\",\n \"create_task\",\n \"complete_task\",\n \"record_judgment\",\n \"register_session\",\n \"heartbeat_session\",\n \"end_session\",\n \"send_agent_message\",\n \"broadcast_message\",\n \"claim_files\",\n \"create_topic\",\n \"open_pull_request\",\n \"apply_auto_branching\",\n \"seed_belief_lattice\",\n \"trigger_belief_review\",\n \"create_epistemic_contract\",\n \"evaluate_contract\",\n \"create_ontology\",\n \"update_ontology\",\n \"archive_ontology\",\n \"create_ontology_version\",\n \"publish_ontology_version\",\n \"deprecate_ontology_version\",\n \"manage_write_policy\",\n]);\n\n/**\n * Check if a tool name is a mutation (write) tool.\n */\nexport function isMutationTool(toolName: string): boolean {\n return MUTATION_TOOL_NAMES.has(toolName);\n}\n\n// ── Per-Session Write Counter ────────────────────────────────────────────────\n\ntype WriteRecord = {\n toolName: string;\n timestamp: number;\n topicId?: string;\n};\n\nconst sessionWrites: WriteRecord[] = [];\nconst sessionWritesBySession = new Map<string, WriteRecord[]>();\n\n/**\n * Record a write operation for the current session.\n */\nexport function recordWrite(\n toolName: string,\n topicId?: string,\n sessionId = \"default\"\n): void {\n const record = {\n toolName,\n timestamp: Date.now(),\n topicId,\n };\n sessionWrites.push(record);\n const existing = sessionWritesBySession.get(sessionId) ?? [];\n existing.push(record);\n sessionWritesBySession.set(sessionId, existing);\n}\n\n/**\n * Get write statistics for the current session.\n */\nexport function getSessionWriteStats(): {\n totalWrites: number;\n byCategory: Record<string, number>;\n byTool: Record<string, number>;\n firstWrite: number | null;\n lastWrite: number | null;\n} {\n return getSessionWriteStatsForSession(\"default\");\n}\n\nexport function getSessionWriteStatsForSession(sessionId: string): {\n totalWrites: number;\n byCategory: Record<string, number>;\n byTool: Record<string, number>;\n firstWrite: number | null;\n lastWrite: number | null;\n} {\n const records = sessionWritesBySession.get(sessionId) ?? [];\n const byCategory: Record<string, number> = {};\n const byTool: Record<string, number> = {};\n const lastWrite = records.at(-1)?.timestamp ?? null;\n\n for (const record of records) {\n byTool[record.toolName] = (byTool[record.toolName] ?? 0) + 1;\n }\n\n return {\n totalWrites: records.length,\n byCategory,\n byTool,\n firstWrite: records.length > 0 ? records[0].timestamp : null,\n lastWrite,\n };\n}\n\n// ── Policy Enforcement ───────────────────────────────────────────────────────\n\ntype PolicyCheckResult = {\n allowed: boolean;\n permission: string;\n rationale?: string;\n maxWritesPerSession?: number;\n toolCategory?: string | null;\n policy?: Record<string, unknown> | null;\n explanation?: {\n summary?: string;\n matchedReasonCode?: string;\n steps?: Array<{\n stage?: string;\n outcome?: string;\n reasonCode?: string;\n detail?: string;\n }>;\n [key: string]: unknown;\n };\n reason: string;\n};\n\nfunction buildRateLimitExplanation(args: {\n toolName: string;\n toolCategory?: string | null;\n authRole: string;\n topicId?: string;\n maxWritesPerSession: number;\n currentCount: number;\n policy?: Record<string, unknown> | null;\n}) {\n const summary = `Denied ${args.toolName}: session write limit ${args.currentCount}/${args.maxWritesPerSession} reached for the matched write policy.`;\n return {\n summary,\n matchedReasonCode: \"RATE_LIMIT_EXCEEDED\",\n toolName: args.toolName,\n toolCategory: args.toolCategory ?? null,\n role: args.authRole,\n topicId: args.topicId ?? null,\n policy: args.policy ?? null,\n steps: [\n {\n stage: \"policy_lookup\",\n outcome: \"passed\",\n reasonCode: \"WRITE_POLICY_MATCHED\",\n detail: \"A matching write policy was found before evaluating the session limit.\",\n },\n {\n stage: \"rate_limit\",\n outcome: \"failed\",\n reasonCode: \"RATE_LIMIT_EXCEEDED\",\n detail: `This session has already recorded ${args.currentCount} writes and the matched rule caps it at ${args.maxWritesPerSession}.`,\n },\n {\n stage: \"decision\",\n outcome: \"failed\",\n reasonCode: \"RATE_LIMIT_EXCEEDED\",\n detail: summary,\n },\n ],\n };\n}\n\n/**\n * Check if a mutation tool call is allowed by write policy.\n *\n * Resolution order:\n * 1. Topic-specific + role match\n * 2. Global (no topic) + role match\n * 3. No matching policy → allow (open by default)\n *\n * Also checks per-session write limits if policy specifies maxWritesPerSession.\n */\nexport async function checkWritePolicy(\n toolName: string,\n topicId: string | undefined,\n authCtx: AuthContext\n): Promise<PolicyCheckResult> {\n // Non-mutation tools always pass\n if (!isMutationTool(toolName)) {\n return { allowed: true, permission: \"allow\", reason: \"read_only_tool\" };\n }\n\n try {\n const result = await adminQuery((api.mcpWritePolicy as any).checkAccess, {\n topicId: topicId ?? undefined,\n role: authCtx.role,\n toolName,\n });\n\n if (!result) {\n return {\n allowed: true,\n permission: \"allow\",\n toolCategory: null,\n policy: null,\n reason: \"no_policy_response\",\n };\n }\n\n // Check rate limit\n if (\n result.allowed &&\n typeof result.maxWritesPerSession === \"number\" &&\n Number.isFinite(result.maxWritesPerSession)\n ) {\n const currentCount =\n sessionWritesBySession.get(authCtx.sessionId)?.length ?? 0;\n if (currentCount >= result.maxWritesPerSession) {\n return {\n allowed: false,\n permission: \"deny\",\n rationale: `Session write limit reached (${currentCount}/${result.maxWritesPerSession})`,\n maxWritesPerSession: result.maxWritesPerSession,\n toolCategory:\n typeof result.toolCategory === \"string\" ? result.toolCategory : null,\n policy:\n result.policy && typeof result.policy === \"object\"\n ? (result.policy as Record<string, unknown>)\n : null,\n explanation: buildRateLimitExplanation({\n toolName,\n toolCategory:\n typeof result.toolCategory === \"string\" ? result.toolCategory : null,\n authRole: authCtx.role,\n topicId,\n maxWritesPerSession: result.maxWritesPerSession,\n currentCount,\n policy:\n result.policy && typeof result.policy === \"object\"\n ? (result.policy as Record<string, unknown>)\n : null,\n }),\n reason: \"rate_limit_exceeded\",\n };\n }\n }\n\n return result as PolicyCheckResult;\n } catch (err) {\n // Policy check failure → allow (fail-open for write policies)\n // This ensures the compounding loop isn't blocked by infrastructure issues.\n console.error(\n `[write-policy] Policy check failed for ${toolName}: ${err instanceof Error ? err.message : err}. Allowing (fail-open).`\n );\n return {\n allowed: true,\n permission: \"allow\",\n toolCategory: null,\n policy: null,\n explanation: {\n summary:\n \"Allowed because write-policy evaluation failed and the runtime fell back to fail-open behavior.\",\n matchedReasonCode: \"WRITE_POLICY_CHECK_ERROR\",\n steps: [\n {\n stage: \"policy_lookup\",\n outcome: \"failed\",\n reasonCode: \"WRITE_POLICY_CHECK_ERROR\",\n detail:\n err instanceof Error ? err.message : \"Unknown policy evaluation error.\",\n },\n {\n stage: \"decision\",\n outcome: \"bypassed\",\n reasonCode: \"WRITE_POLICY_CHECK_ERROR\",\n detail:\n \"Write-policy infrastructure error did not block the mutation because this runtime is fail-open on evaluation errors.\",\n },\n ],\n },\n reason: \"policy_check_error\",\n };\n }\n}\n","/**\n * Credential Resolution — Battle-proof credential loading for the Lucern MCP.\n *\n * Resolution order (first match wins):\n * 1. process.env.LUCERN_API_KEY (set via .mcp.json env, shell, or CI)\n * 2. ~/.lucern/credentials (persistent, git-safe credential store)\n * 3. process.env.LUCERN_CONVEX_URL + LUCERN_DEPLOY_KEY (direct, advanced)\n *\n * NO .env.lucern. That file lives in a git repo and can be destroyed by\n * stash, checkout, or branch operations. Credentials belong in ~/.lucern/.\n *\n * The `lucern init` command writes credentials to ~/.lucern/credentials.\n * After that, the MCP server works with zero repo-level config.\n */\n\nimport { createHash } from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport { logMcpInfo } from \"./logging.js\";\n\n// ── Types ────────────────────────────────────────────────────────────────────\n\nexport type EnvCredentials = { url: string; key: string };\nexport type UnifiedPayload = { dev: EnvCredentials; prod?: EnvCredentials };\ntype LegacyPayload = { url: string; key: string };\n\n// ── Constants ────────────────────────────────────────────────────────────────\n\nconst LUCERN_HOME = path.join(os.homedir(), \".lucern\");\nconst CREDENTIALS_FILE = path.join(LUCERN_HOME, \"credentials\");\n\nexport { LUCERN_HOME, CREDENTIALS_FILE };\n\n// ── API Key Decode ───────────────────────────────────────────────────────────\n\nexport function decodeApiKey(\n apiKey: string,\n prefix: string\n): { unified: UnifiedPayload } | { legacy: LegacyPayload } | null {\n if (!apiKey.startsWith(prefix)) {\n return null;\n }\n try {\n const payload = apiKey.slice(prefix.length);\n const b64 = payload.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const json = Buffer.from(b64, \"base64\").toString(\"utf-8\");\n const parsed = JSON.parse(json);\n\n // Unified format (v2): { dev: { url, key }, prod?: { url, key } }\n if (\n parsed.dev &&\n typeof parsed.dev.url === \"string\" &&\n typeof parsed.dev.key === \"string\"\n ) {\n const result: UnifiedPayload = { dev: parsed.dev };\n if (\n parsed.prod &&\n typeof parsed.prod.url === \"string\" &&\n typeof parsed.prod.key === \"string\"\n ) {\n result.prod = parsed.prod;\n }\n return { unified: result };\n }\n\n // Legacy format (v1): { url, key }\n if (typeof parsed.url === \"string\" && typeof parsed.key === \"string\") {\n return { legacy: { url: parsed.url, key: parsed.key } };\n }\n\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Select the right credentials from a unified key based on LUCERN_ENV.\n */\nexport function selectEnvironment(payload: UnifiedPayload): EnvCredentials {\n const env = (process.env.LUCERN_ENV || \"development\").toLowerCase();\n if (env === \"production\" && payload.prod) {\n return payload.prod;\n }\n if (env === \"production\" && !payload.prod) {\n logMcpInfo(\n \"[lucern] LUCERN_ENV=production but key has no prod credentials. Falling back to dev.\"\n );\n }\n return payload.dev;\n}\n\n// ── API Key Encode ───────────────────────────────────────────────────────────\n\nexport function encodeLucernApiKey(\n dev: EnvCredentials,\n prod?: EnvCredentials\n): string {\n const payload: UnifiedPayload = { dev };\n if (prod) {\n payload.prod = prod;\n }\n return `luc_${Buffer.from(JSON.stringify(payload)).toString(\"base64url\")}`;\n}\n\nexport function encodeStackApiKey(\n dev: EnvCredentials,\n prod?: EnvCredentials\n): string {\n const payload: UnifiedPayload = { dev };\n if (prod) {\n payload.prod = prod;\n }\n return `stk_${Buffer.from(JSON.stringify(payload)).toString(\"base64url\")}`;\n}\n\n// ── API Key Hash ────────────────────────────────────────────────────────────\n\n/**\n * Compute SHA-256 hash of a raw API key for MC validation lookup.\n * The MCP server hashes its luc_/stk_ key and sends the hash to MC,\n * which compares against stored hashes (never sees the raw key).\n */\nexport function hashApiKey(apiKey: string): string {\n return createHash(\"sha256\").update(apiKey).digest(\"hex\");\n}\n\n// ── Credential Store ─────────────────────────────────────────────────────────\n\n/**\n * Read KEY=VALUE pairs from a credentials file.\n * Strips quotes, ignores comments and blank lines.\n */\nfunction parseCredentialsFile(filePath: string): Record<string, string> {\n if (!fs.existsSync(filePath)) {\n return {};\n }\n\n const result: Record<string, string> = {};\n const lines = fs.readFileSync(filePath, \"utf-8\").split(\"\\n\");\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith(\"#\")) {\n continue;\n }\n const eqIdx = trimmed.indexOf(\"=\");\n if (eqIdx < 1) {\n continue;\n }\n const key = trimmed.slice(0, eqIdx).trim();\n let val = trimmed.slice(eqIdx + 1).trim();\n if (\n (val.startsWith('\"') && val.endsWith('\"')) ||\n (val.startsWith(\"'\") && val.endsWith(\"'\"))\n ) {\n val = val.slice(1, -1);\n }\n result[key] = val;\n }\n return result;\n}\n\n/**\n * Write credentials to ~/.lucern/credentials.\n * Creates ~/.lucern/ if it doesn't exist.\n */\nexport function writeCredentials(creds: Record<string, string>): void {\n if (!fs.existsSync(LUCERN_HOME)) {\n fs.mkdirSync(LUCERN_HOME, { recursive: true, mode: 0o700 });\n }\n\n // Merge with existing credentials (don't overwrite keys we're not setting)\n const existing = parseCredentialsFile(CREDENTIALS_FILE);\n const merged = { ...existing, ...creds };\n\n const lines = [\n \"# Lucern credentials — managed by `lucern init`\",\n \"# This file is outside any git repo. Git operations cannot destroy it.\",\n \"\",\n ];\n\n for (const [key, val] of Object.entries(merged)) {\n lines.push(`${key}=${val}`);\n }\n\n fs.writeFileSync(CREDENTIALS_FILE, `${lines.join(\"\\n\")}\\n`, {\n mode: 0o600, // Owner read/write only\n });\n}\n\n// ── Credential Resolution ────────────────────────────────────────────────────\n\n/**\n * Resolve LUCERN_API_KEY from the credential chain.\n * Sets process.env vars so the rest of the server can use them.\n *\n * Resolution order:\n * 1. process.env.LUCERN_API_KEY (already set via .mcp.json, shell, CI)\n * 2. ~/.lucern/credentials file\n * 3. process.env.LUCERN_CONVEX_URL + LUCERN_DEPLOY_KEY (direct)\n */\nexport function resolveCredentials(): {\n lucernResolved: boolean;\n stackResolved: boolean;\n mcResolved: boolean;\n source: string;\n rawLucernApiKey?: string;\n rawStackApiKey?: string;\n rawUserToken?: string;\n} {\n // Already fully configured — skip\n if (process.env.LUCERN_CONVEX_URL && process.env.LUCERN_DEPLOY_KEY) {\n return {\n lucernResolved: true,\n stackResolved: !!process.env.STACK_CONVEX_URL,\n mcResolved: !!(process.env.MC_CONVEX_URL && process.env.MC_DEPLOY_KEY),\n source: \"env\",\n rawLucernApiKey: process.env.LUCERN_API_KEY,\n rawStackApiKey: process.env.STACK_API_KEY,\n rawUserToken: process.env.LUCERN_USER_TOKEN,\n };\n }\n\n const lucernEnv = process.env.LUCERN_ENV || \"development\";\n let source = \"none\";\n\n // --- Source 1: process.env (already set) ---\n let lucernApiKey = process.env.LUCERN_API_KEY;\n let stackApiKey = process.env.STACK_API_KEY;\n\n if (lucernApiKey) {\n source = \"env\";\n }\n\n // --- Resolve user token (per-user identity for MCP sessions) ---\n let userToken = process.env.LUCERN_USER_TOKEN;\n\n // --- Source 2: ~/.lucern/credentials ---\n if (lucernApiKey) {\n // Source 1 matched — still check credentials file for user token + JWKS\n const creds = parseCredentialsFile(CREDENTIALS_FILE);\n if (creds.LUCERN_USER_TOKEN && !userToken) {\n userToken = creds.LUCERN_USER_TOKEN;\n process.env.LUCERN_USER_TOKEN = userToken;\n }\n const lucernEnvLocal = (\n process.env.LUCERN_ENV || \"development\"\n ).toLowerCase();\n if (\n creds.CLERK_JWKS_URL &&\n !process.env.CLERK_JWKS_URL &&\n lucernEnvLocal === \"development\"\n ) {\n process.env.CLERK_JWKS_URL = creds.CLERK_JWKS_URL;\n }\n } else {\n const creds = parseCredentialsFile(CREDENTIALS_FILE);\n if (creds.LUCERN_API_KEY) {\n lucernApiKey = creds.LUCERN_API_KEY;\n process.env.LUCERN_API_KEY = lucernApiKey;\n source = CREDENTIALS_FILE;\n }\n if (creds.STACK_API_KEY && !stackApiKey) {\n stackApiKey = creds.STACK_API_KEY;\n process.env.STACK_API_KEY = stackApiKey;\n }\n if (creds.LUCERN_ENV && !process.env.LUCERN_ENV) {\n process.env.LUCERN_ENV = creds.LUCERN_ENV;\n }\n if (creds.LUCERN_USER_TOKEN && !userToken) {\n userToken = creds.LUCERN_USER_TOKEN;\n process.env.LUCERN_USER_TOKEN = userToken;\n }\n // CLERK_JWKS_URL override — only allowed in development\n const lucernEnvLocal = (\n process.env.LUCERN_ENV || \"development\"\n ).toLowerCase();\n if (\n creds.CLERK_JWKS_URL &&\n !process.env.CLERK_JWKS_URL &&\n lucernEnvLocal === \"development\"\n ) {\n process.env.CLERK_JWKS_URL = creds.CLERK_JWKS_URL;\n }\n }\n\n if (source !== \"none\") {\n logMcpInfo(`[lucern] Credentials from ${source} (LUCERN_ENV=${lucernEnv})`);\n }\n\n // --- Decode LUCERN_API_KEY ---\n let lucernResolved = false;\n if (lucernApiKey) {\n const decoded = decodeApiKey(lucernApiKey, \"luc_\");\n if (decoded && \"unified\" in decoded) {\n const creds = selectEnvironment(decoded.unified);\n process.env.LUCERN_CONVEX_URL = creds.url;\n process.env.LUCERN_DEPLOY_KEY = creds.key;\n lucernResolved = true;\n logMcpInfo(\n `[lucern] Lucern → ${creds.url} (${lucernEnv})` +\n (decoded.unified.prod ? \" [prod available]\" : \" [dev only]\")\n );\n } else if (decoded && \"legacy\" in decoded) {\n process.env.LUCERN_CONVEX_URL = decoded.legacy.url;\n process.env.LUCERN_DEPLOY_KEY = decoded.legacy.key;\n lucernResolved = true;\n logMcpInfo(`[lucern] Lucern (legacy) → ${decoded.legacy.url}`);\n } else {\n console.error(\n \"[lucern] LUCERN_API_KEY found but failed to decode. Check format (luc_xxxxx).\"\n );\n }\n }\n\n // --- Decode STACK_API_KEY ---\n let stackResolved = false;\n if (stackApiKey) {\n const decoded = decodeApiKey(stackApiKey, \"stk_\");\n if (decoded && \"unified\" in decoded) {\n const creds = selectEnvironment(decoded.unified);\n process.env.STACK_CONVEX_URL = creds.url;\n process.env.STACK_DEPLOY_KEY = creds.key;\n stackResolved = true;\n logMcpInfo(\n `[lucern] Stack → ${creds.url} (${lucernEnv})` +\n (decoded.unified.prod ? \" [prod available]\" : \" [dev only]\")\n );\n } else if (decoded && \"legacy\" in decoded) {\n process.env.STACK_CONVEX_URL = decoded.legacy.url;\n process.env.STACK_DEPLOY_KEY = decoded.legacy.key;\n stackResolved = true;\n logMcpInfo(`[lucern] Stack (legacy) → ${decoded.legacy.url}`);\n }\n }\n\n // --- Resolve Master Control credentials ---\n // MC credentials enable the MCP server to fetch methodology packs,\n // validate API keys, and read tenant config from the control plane.\n // Default: utmost-ox-403 (dev) / successful-clam-833 (prod)\n let mcResolved = false;\n if (!process.env.MC_CONVEX_URL) {\n const creds = parseCredentialsFile(CREDENTIALS_FILE);\n if (creds.MC_CONVEX_URL) {\n process.env.MC_CONVEX_URL = creds.MC_CONVEX_URL;\n }\n if (creds.MC_DEPLOY_KEY) {\n process.env.MC_DEPLOY_KEY = creds.MC_DEPLOY_KEY;\n }\n }\n if (process.env.MC_CONVEX_URL && process.env.MC_DEPLOY_KEY) {\n mcResolved = true;\n logMcpInfo(`[lucern] Master Control → ${process.env.MC_CONVEX_URL}`);\n }\n\n if (!lucernResolved) {\n console.error(\n \"[lucern] No credentials found. Run: lucern init --key luc_xxxxx\"\n );\n }\n\n if (userToken) {\n logMcpInfo(\"[lucern] User token detected — per-user session mode\");\n }\n\n return {\n lucernResolved,\n stackResolved,\n mcResolved,\n source,\n rawLucernApiKey: lucernApiKey,\n rawStackApiKey: stackApiKey,\n rawUserToken: userToken,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../apps/mcp-server/src/handlers/sdk.ts","../../../apps/mcp-server/src/handlers/answers.ts","../../../apps/mcp-server/src/handlers/auto-branching.ts","../../contracts/src/ids.contract.ts","../../contracts/src/dsl/defineTable.ts","../../contracts/src/dsl/idOf.ts","../../contracts/src/schemas/enums.ts","../../contracts/src/schemas/tables/kernel/coordination.ts","../../contracts/src/schemas/tables/mc/registry.ts","../../contracts/src/schemas/tables/identity/agent.ts","../../contracts/src/schemas/tables/mc/tenant.ts","../../contracts/src/schemas/tables/kernel/infra.ts","../../contracts/src/schemas/tables/kernel/epistemic.ts","../../contracts/src/schemas/tables/kernel/decision.ts","../../contracts/src/schemas/tables/mc/runtime.ts","../../contracts/src/schemas/tables/kernel/intelligence.ts","../../contracts/src/schemas/tables/kernel/spine.ts","../../contracts/src/schemas/tables/kernel/embedding.ts","../../contracts/src/schemas/tables/mc/identity.ts","../../contracts/src/schemas/tables/kernel/platform.ts","../../contracts/src/schemas/tables/kernel/idempotency.ts","../../contracts/src/schemas/tables/kernel/lens.ts","../../contracts/src/schemas/tables/identity/platform.ts","../../contracts/src/schemas/tables/mc/methodology.ts","../../contracts/src/schemas/tables/identity/model.ts","../../contracts/src/schemas/tables/kernel/ontology.ts","../../contracts/src/schemas/tables/mc/pack.ts","../../contracts/src/schemas/tables/mc/policy.ts","../../contracts/src/schemas/tables/identity/project.ts","../../contracts/src/schemas/tables/identity/epistemic.ts","../../contracts/src/schemas/tables/kernel/config.ts","../../contracts/src/schemas/tables/kernel/task.ts","../../contracts/src/schemas/tables/kernel/topic.ts","../../contracts/src/schemas/tables/identity/user.ts","../../contracts/src/schemas/tables/kernel/workflow.ts","../../contracts/src/schemas/tables/mc/workspace.ts","../../contracts/src/schemas/tables/kernel/worktree.ts","../../contracts/src/lens-filter.contract.ts","../../contracts/src/lens-workflow.contract.ts","../../contracts/src/tool-contracts.ts","../../contracts/src/function-registry/manifest.ts","../../contracts/src/function-registry/helpers.ts","../../contracts/src/function-registry/context.ts","../../contracts/src/function-registry/identity.ts","../../contracts/src/function-registry/beliefs.ts","../../contracts/src/function-registry/evidence.ts","../../contracts/src/function-registry/questions.ts","../../contracts/src/function-registry/topics.ts","../../contracts/src/function-registry/lenses.ts","../../contracts/src/function-registry/ontologies.ts","../../contracts/src/function-registry/worktrees.ts","../../contracts/src/function-registry/tasks.ts","../../contracts/src/function-registry/edges.ts","../../contracts/src/function-registry/graph.ts","../../contracts/src/function-registry/contracts.ts","../../contracts/src/function-registry/judgments.ts","../../contracts/src/function-registry/coordination.ts","../../contracts/src/function-registry/pipeline.ts","../../contracts/src/function-registry/coding.ts","../../contracts/src/function-registry/legacy.ts","../../contracts/src/function-registry/index.ts","../../contracts/src/v1/topics/v1.ts","../../server-core/src/kernelApi.ts","../../../apps/mcp-server/src/kernelApi.ts","../../../apps/mcp-server/src/logging.ts","../../../apps/mcp-server/src/convex-client.ts","../../../apps/mcp-server/src/scope.ts","../../../apps/mcp-server/src/handlers/beliefs.ts","../../../apps/mcp-server/src/handlers/bootstrap-session.ts","../../../apps/mcp-server/src/handlers/bootstrap.ts","../../../apps/mcp-server/src/handlers/coding.ts","../../../apps/mcp-server/src/handlers/contracts.ts","../../../apps/mcp-server/src/handlers/contradictions.ts","../../../apps/mcp-server/src/handlers/coordination.ts","../../../apps/mcp-server/src/handlers/edges.ts","../../../apps/mcp-server/src/handlers/graph.ts","../../../apps/mcp-server/src/handlers/topics.ts","../../../apps/mcp-server/src/handlers/coverage.ts","../../../apps/mcp-server/src/handlers/discovery.ts","../../../apps/mcp-server/src/handlers/engineering-verification.ts","../../../apps/mcp-server/src/handlers/evidence.ts","../../../apps/mcp-server/src/handlers/generated/functionSurface.ts","../../../apps/mcp-server/src/handlers/identity.ts","../../../apps/mcp-server/src/handlers/intelligence.ts","../../server-core/src/mcp-context-tools.ts","../../server-core/src/topic-resolver.ts","../../../apps/mcp-server/src/handlers/judgments.ts","../../../apps/mcp-server/src/handlers/lenses.ts","../../../apps/mcp-server/src/handlers/lineage.ts","../../../apps/mcp-server/src/handlers/observations.ts","../../../apps/mcp-server/src/handlers/ontologies.ts","../../../apps/mcp-server/src/handlers/ontology-matching.ts","../../../apps/mcp-server/src/handlers/policy.ts","../../../apps/mcp-server/src/handlers/questions.ts","../../../apps/mcp-server/src/handlers/research-verification.ts","../../server-core/src/domain/context/compile.ts","../../../apps/mcp-server/src/handlers/scope-context.ts","../../../apps/mcp-server/src/handlers/tasks.ts","../../../apps/mcp-server/src/handlers/worktrees.ts","../../../apps/mcp-server/src/handlers/index.ts","../../../apps/mcp-server/src/write-policy.ts","../../../apps/mcp-server/src/credentials.ts"],"names":["z","entries","kernelApi","kernelComponents","kernelInternal","api","components","path","topics","readString","readStringArray","asRecord","tokenize"],"mappings":"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","file":"runtime.js","sourcesContent":["import type { AuthContext } from \"./types.js\";\n\ntype HandlerSdkClient = Record<string, any>;\n\nconst handlerSdkClientCache = new WeakMap<AuthContext, HandlerSdkClient>();\n\nasync function resolveOntologyFromLookup(\n baseClient: Record<string, any>,\n input: Record<string, unknown>\n) {\n const id = readString(input.id ?? input.ontologyId);\n if (id) {\n return baseClient.ontologies.get(id);\n }\n\n const ontologyKey = readString(input.ontologyKey);\n if (!ontologyKey) {\n return {\n error: \"Either id or ontologyKey is required.\",\n };\n }\n\n const listResult = await baseClient.ontologies.list({\n tenantId: readString(input.tenantId),\n tier: readString(input.tier),\n status: readString(input.status),\n });\n const payload = asRecord(listResult);\n const rows = Array.isArray(payload.ontologies)\n ? payload.ontologies\n : Array.isArray(payload.definitions)\n ? payload.definitions\n : [];\n const tenantId = readString(input.tenantId);\n const match = rows.find((row) => {\n const record = asRecord(row);\n if (readString(record.ontologyKey) !== ontologyKey) {\n return false;\n }\n if (!tenantId) {\n return true;\n }\n return readString(record.tenantId) === tenantId;\n });\n\n return match\n ? asRecord(match)\n : {\n error: `Ontology not found: ${ontologyKey}`,\n };\n}\n\nfunction buildHandlerSdkClient(ctx: AuthContext): HandlerSdkClient {\n const baseClient = ctx.lucernClient as HandlerSdkClient;\n\n return {\n ...baseClient,\n ontologies: {\n ...baseClient.ontologies,\n get(input: string | Record<string, unknown>) {\n return typeof input === \"string\"\n ? baseClient.ontologies.get(input)\n : resolveOntologyFromLookup(baseClient, input ?? {});\n },\n },\n };\n}\n\nexport function getSdkClient(ctx: AuthContext): HandlerSdkClient {\n if (!ctx.lucernClient) {\n throw new Error(\"Lucern SDK client is not available for this MCP runtime.\");\n }\n\n const cached = handlerSdkClientCache.get(ctx);\n if (cached) {\n return cached;\n }\n\n const wrappedClient = buildHandlerSdkClient(ctx);\n handlerSdkClientCache.set(ctx, wrappedClient);\n return wrappedClient;\n}\n\nexport function formatSdkResult<T>(value: T): Record<string, unknown> {\n if (\n value &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n \"data\" in value\n ) {\n const envelope = value as { data?: Record<string, unknown> };\n if (\n envelope.data &&\n typeof envelope.data === \"object\" &&\n !Array.isArray(envelope.data)\n ) {\n return envelope.data;\n }\n }\n\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n return value as Record<string, unknown>;\n }\n\n return { value } as Record<string, unknown>;\n}\n\nexport function asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {};\n}\n\nexport function asJsonObject(\n value: unknown\n): Record<string, unknown> | undefined {\n const record = asRecord(value);\n return Object.keys(record).length > 0 ? record : undefined;\n}\n\nexport function readString(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : undefined;\n}\n\nexport function readNumber(value: unknown): number | undefined {\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n if (typeof value === \"string\") {\n const parsed = Number(value.trim());\n return Number.isFinite(parsed) ? parsed : undefined;\n }\n return undefined;\n}\n\nexport function readBoolean(value: unknown): boolean | undefined {\n if (typeof value === \"boolean\") {\n return value;\n }\n if (typeof value === \"string\") {\n const normalized = value.trim().toLowerCase();\n if (normalized === \"true\") {\n return true;\n }\n if (normalized === \"false\") {\n return false;\n }\n }\n return undefined;\n}\n\nexport function readStringArray(value: unknown): string[] | undefined {\n if (Array.isArray(value)) {\n const items = value\n .map((entry) => readString(entry))\n .filter((entry): entry is string => Boolean(entry));\n\n return items.length > 0 ? items : undefined;\n }\n\n if (typeof value === \"string\") {\n const normalized = value.trim();\n if (normalized.startsWith(\"[\")) {\n try {\n const parsed = JSON.parse(normalized);\n if (Array.isArray(parsed)) {\n return readStringArray(parsed);\n }\n } catch {\n // Ignore malformed JSON and fall through to undefined.\n }\n }\n }\n\n return undefined;\n}\n\nexport function readTimeRange(\n value: unknown\n): { start: number; end: number } | undefined {\n const record = asRecord(value);\n const start = readNumber(record.start);\n const end = readNumber(record.end);\n\n if (start === undefined && end === undefined) {\n return undefined;\n }\n\n return {\n start: start ?? Number.NaN,\n end: end ?? Number.NaN,\n };\n}\n","/**\n * Answer Handlers — create_answer, get_answer\n */\n\nimport type { HandlerModule } from \"./types.js\";\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\n\nexport const answerHandlers: HandlerModule = {\n async create_answer(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).answers.create({\n questionNodeId: args.questionNodeId as string,\n answerText: args.answerText as string,\n confidence: (args.confidence as string) || \"moderate\",\n evidenceNodeIds: (args.evidenceNodeIds as string[]) || [],\n answerSource: (args.answerSource as string) || \"ai_generated\",\n })\n );\n },\n\n async get_answer(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).answers.get({\n questionNodeId: args.questionNodeId as string,\n })\n );\n },\n};\n","/**\n * Auto-Branching Handlers — analyze_topic_density, apply_auto_branching\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const autoBranchingHandlers: HandlerModule = {\n async analyze_topic_density(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.analyzeTopicDensity(args)\n );\n },\n\n async apply_auto_branching(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.applyAutoBranching(args)\n );\n },\n};\n","export type DecodedPrefixedId = {\n prefix: string;\n value: string;\n};\n\nconst PREFIXED_ID_PATTERN = /^([a-z][a-z0-9]*)_(.+)$/;\n\nexport function encodePrefixedId(prefix: string, value: string): string {\n const normalizedPrefix = prefix.trim();\n const normalizedValue = value.trim();\n\n if (!normalizedPrefix || !normalizedValue) {\n throw new Error(\"Both prefix and value are required to encode a prefixed ID.\");\n }\n\n return `${normalizedPrefix}_${normalizedValue}`;\n}\n\nexport function decodePrefixedId(id: string): DecodedPrefixedId {\n const normalized = id.trim();\n const match = PREFIXED_ID_PATTERN.exec(normalized);\n\n if (!match) {\n throw new Error(`Invalid prefixed ID: ${id}`);\n }\n\n return {\n prefix: match[1],\n value: match[2],\n };\n}\n\nexport function hasPrefixedIdPrefix(id: string, prefix: string): boolean {\n const decoded = decodePrefixedId(id);\n return decoded.prefix === prefix.trim();\n}\n","import type { ZodObject, ZodRawShape } from \"zod\";\n\nexport type TableComponent = \"mc\" | \"kernel\" | \"identity\" | \"developer-pack\";\n\nexport type TableIndex =\n | {\n kind: \"index\";\n name: string;\n columns: readonly string[];\n }\n | {\n kind: \"search\";\n name: string;\n searchField: string;\n filterFields?: readonly string[];\n }\n | {\n kind: \"vector\";\n name: string;\n vectorField: string;\n dimensions: number;\n filterFields?: readonly string[];\n };\n\nexport type TableDeprecation = {\n since: string;\n reason: string;\n replacement?: string;\n};\n\nexport type TableContract<S extends ZodRawShape = ZodRawShape> = {\n name: string;\n component: TableComponent;\n category: string;\n shape: ZodObject<S>;\n indices: readonly TableIndex[];\n deprecated?: TableDeprecation;\n invariants?: readonly string[];\n};\n\nexport function defineTable<S extends ZodRawShape>(\n spec: TableContract<S>\n): TableContract<S> {\n return spec;\n}\n","import { z } from \"zod\";\n\nexport const CONVEX_ID_TABLE = Symbol.for(\"lucern.contracts.convexIdTable\");\n\nexport type ConvexIdSchema<T extends string> = z.ZodBranded<\n z.ZodString,\n `Id<${T}>`\n> & {\n readonly [CONVEX_ID_TABLE]: T;\n};\n\nexport function idOf<T extends string>(table: T): ConvexIdSchema<T> {\n const schema = z.string().brand<`Id<${T}>`>();\n Object.defineProperty(schema, CONVEX_ID_TABLE, {\n configurable: false,\n enumerable: false,\n value: table,\n writable: false,\n });\n return schema as ConvexIdSchema<T>;\n}\n\nexport function getConvexIdTable(schema: z.ZodTypeAny): string | undefined {\n return (schema as Partial<Record<typeof CONVEX_ID_TABLE, string>>)[\n CONVEX_ID_TABLE\n ];\n}\n","/**\n * Shared schema enums referenced by the initial table manifest.\n */\n\nimport { z } from 'zod';\n\nexport const NODE_TYPE = z.enum([\"decision\", \"belief\", \"question\", \"theme\", \"deal\", \"topic\", \"claim\", \"evidence\", \"synthesis\", \"answer\", \"atomic_fact\", \"excerpt\", \"source\", \"company\", \"person\", \"investor\", \"function\", \"value_chain\"]);\n\nexport const EDGE_TYPE = z.enum([\"supports\", \"informs\", \"depends_on\", \"extracted_from\", \"contains\", \"tests\", \"supersedes\", \"responds_to\", \"belongs_to\", \"relates_to_thesis\", \"works_at\", \"invested_in\", \"competes_with\", \"participates_in\", \"founded_by\", \"evaluates\", \"performs\", \"function_in\", \"impacts\", \"raised_from\", \"mentioned_in\", \"perspective_on\", \"plays_theme\", \"answers\", \"explores\", \"qualifies\", \"based_on\", \"based_on_belief\", \"based_on_question\", \"blocked_by_contradiction\", \"informed_by_theme\", \"same_as\", \"reinforces\", \"parent_of\", \"child_of\", \"falsified_by\", \"exclusive_with\", \"collapses_if\", \"cascade_from\", \"counterfactual_of\", \"cascade_to\", \"mutually_exclusive\", \"correlates_with\", \"amplifies\", \"precondition_for\", \"in_tension_with\", \"strengthened_by\", \"weakened_by\", \"alternative_to\", \"subsumes\", \"validated_by\", \"required_for\", \"blocks\", \"prerequisite_for\", \"parallel_to\", \"corroborates\", \"extends\", \"same_source_as\", \"same_theme_as\", \"assumes\", \"would_predict\", \"analogous_to\", \"independent_of\", \"implements\", \"violates\", \"co_changes_with\", \"migrating_from\", \"migrating_to\", \"scoped_by\", \"about_entity\", \"entity_referenced_in\", \"contradicts\", \"cites\", \"summarizes\", \"related_to\", \"partially_answers\", \"refines\", \"branches_from\"]);\n\nexport const TOPIC_STATUS = z.enum([\"active\", \"archived\", \"watching\"]);\n\nexport const TOPIC_VISIBILITY = z.enum([\"private\", \"team\", \"firm\", \"external\", \"public\"]);\n","/**\n * Schema contracts for kernel/coordination.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/coordination.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const agentMessages = defineTable({\n name: \"agentMessages\",\n component: \"kernel\",\n category: \"coordination\",\n shape: z.object({\n \"fromSessionId\": z.string(),\n \"toSessionId\": z.string(),\n \"content\": z.string(),\n \"messageType\": z.enum([\"note\", \"question\", \"answer\", \"alert\", \"handoff\"]),\n \"relatedBeliefId\": z.string().optional(),\n \"relatedWorktreeId\": z.string().optional(),\n \"readAt\": z.number().optional(),\n \"expiresAt\": z.number().optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_toSessionId\", columns: [\"toSessionId\", \"createdAt\"] },\n { kind: 'index', name: \"by_fromSessionId\", columns: [\"fromSessionId\", \"createdAt\"] }\n ],\n});\n\nexport const agentSessions = defineTable({\n name: \"agentSessions\",\n component: \"kernel\",\n category: \"coordination\",\n shape: z.object({\n \"sessionId\": z.string(),\n \"sessionName\": z.string().optional(),\n \"agentType\": z.string().optional(),\n \"topicId\": z.string().optional(),\n \"worktreeId\": z.string().optional(),\n \"gitBranch\": z.string().optional(),\n \"touchedFiles\": z.array(z.string()).optional(),\n \"status\": z.enum([\"active\", \"idle\", \"ended\"]),\n \"lastHeartbeatAt\": z.number(),\n \"startedAt\": z.number(),\n \"endedAt\": z.number().optional(),\n \"metadata\": z.any().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\"] }\n ],\n});\n","/**\n * Schema contracts for mc/registry.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const agentRegistryEntries = defineTable({\n name: \"agentRegistryEntries\",\n component: \"mc\",\n category: \"registry\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"agentDefinitionId\": z.string(),\n \"agentKey\": z.string(),\n \"displayName\": z.string(),\n \"description\": z.string(),\n \"version\": z.string(),\n \"status\": z.enum([\"active\", \"deprecated\", \"disabled\"]),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]),\n \"scopeRequirements\": z.array(z.string()),\n \"promptReleaseChannel\": z.enum([\"dev\", \"staging\", \"prod\"]),\n \"promptName\": z.string().optional(),\n \"systemPrompt\": z.string().optional(),\n \"toolIds\": z.array(z.string()).optional(),\n \"modelSlot\": z.string().optional(),\n \"requiredModelCapabilities\": z.array(z.string()).optional(),\n \"parameterSchema\": z.record(z.any()),\n \"outputSchema\": z.record(z.any()).optional(),\n \"guardrails\": z.object({\n \"isolationMode\": z.enum([\"direct\", \"sandbox\"]).optional(),\n \"maxExecutionMs\": z.number().optional(),\n \"heartbeatIntervalMs\": z.number().optional(),\n \"maxToolCalls\": z.number().optional(),\n \"allowNetworkEgress\": z.boolean().optional(),\n \"allowedOrigins\": z.array(z.string()).optional()\n }).optional(),\n \"runtimeConfig\": z.object({\n \"entryPoint\": z.string().optional(),\n \"callbackUrl\": z.string().optional(),\n \"modelRouting\": z.enum([\"model_machine\", \"tenant_proxy\", \"bring_your_own\"]).optional(),\n \"auditMode\": z.enum([\"harness\", \"master_control\"]).optional()\n }).optional(),\n \"exampleInvocations\": z.array(z.object({\n \"input\": z.record(z.any()),\n \"expectedOutput\": z.record(z.any()).optional()\n })),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_agentDefinitionId\", columns: [\"agentDefinitionId\"] },\n { kind: 'index', name: \"by_tenant_agentDefinitionId\", columns: [\"tenantId\", \"agentDefinitionId\"] },\n { kind: 'index', name: \"by_tenant_agentDefinitionId_version\", columns: [\"tenantId\", \"agentDefinitionId\", \"version\"] },\n { kind: 'index', name: \"by_tenant_agentKey\", columns: [\"tenantId\", \"agentKey\"] },\n { kind: 'index', name: \"by_tenant_agentKey_version\", columns: [\"tenantId\", \"agentKey\", \"version\"] },\n { kind: 'index', name: \"by_workspace_agentKey_version\", columns: [\"workspaceId\", \"agentKey\", \"version\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n\nexport const toolCatalog = defineTable({\n name: \"toolCatalog\",\n component: \"mc\",\n category: \"registry\",\n shape: z.object({\n \"toolName\": z.string(),\n \"description\": z.string(),\n \"version\": z.string(),\n \"distribution\": z.enum([\"base\", \"pack_only\"]),\n \"status\": z.enum([\"active\", \"deprecated\", \"draft\"]),\n \"category\": z.enum([\"read\", \"write\", \"admin\", \"system\"]),\n \"requiredRole\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]),\n \"requiredAction\": z.enum([\"read\", \"mutate\", \"admin\", \"summarize\", \"export\", \"create\", \"delete\", \"grant\", \"revoke\"]),\n \"surfaces\": z.array(z.enum([\"mcp\", \"chat\", \"voice\", \"sprint\", \"api\", \"sdk\", \"cli\"])),\n \"parameterSchema\": z.record(z.any()).optional(),\n \"returnSchema\": z.record(z.any()).optional(),\n \"handlerRef\": z.string().optional(),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]).optional(),\n \"safetyMetadata\": z.object({\n \"readOnly\": z.boolean(),\n \"idempotent\": z.boolean(),\n \"sideEffectLevel\": z.enum([\"none\", \"low\", \"high\"])\n }).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_toolName\", columns: [\"toolName\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_distribution\", columns: [\"distribution\"] },\n { kind: 'index', name: \"by_distribution_status\", columns: [\"distribution\", \"status\"] },\n { kind: 'index', name: \"by_category\", columns: [\"category\"] },\n { kind: 'index', name: \"by_requiredRole\", columns: [\"requiredRole\"] }\n ],\n});\n\nexport const toolRegistryEntries = defineTable({\n name: \"toolRegistryEntries\",\n component: \"mc\",\n category: \"registry\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"toolId\": z.string(),\n \"toolName\": z.string(),\n \"description\": z.string(),\n \"version\": z.string(),\n \"status\": z.enum([\"active\", \"deprecated\", \"disabled\"]),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]),\n \"gateClassification\": z.enum([\"core\", \"shimmed\"]),\n \"scopeRequirements\": z.array(z.string()),\n \"parameterSchema\": z.record(z.any()),\n \"safetyMetadata\": z.object({\n \"readOnly\": z.boolean(),\n \"idempotent\": z.boolean(),\n \"sideEffectLevel\": z.enum([\"none\", \"low\", \"high\"])\n }),\n \"exampleInvocations\": z.array(z.object({\n \"input\": z.record(z.any()),\n \"expectedOutput\": z.record(z.any()).optional()\n })),\n \"requiredRole\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]).optional(),\n \"requiredAction\": z.enum([\"read\", \"mutate\", \"admin\", \"summarize\", \"export\", \"create\", \"delete\", \"grant\", \"revoke\"]).optional(),\n \"surfaces\": z.array(z.enum([\"mcp\", \"chat\", \"voice\", \"sprint\", \"api\", \"sdk\", \"cli\"])).optional(),\n \"approvalGateId\": z.string().optional(),\n \"isCore\": z.boolean().optional(),\n \"category\": z.enum([\"read\", \"write\", \"admin\", \"system\"]).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_toolId\", columns: [\"toolId\"] },\n { kind: 'index', name: \"by_tenant_toolId\", columns: [\"tenantId\", \"toolId\"] },\n { kind: 'index', name: \"by_tenant_toolId_version\", columns: [\"tenantId\", \"toolId\", \"version\"] },\n { kind: 'index', name: \"by_tenant_toolName\", columns: [\"tenantId\", \"toolName\"] },\n { kind: 'index', name: \"by_tenant_toolName_version\", columns: [\"tenantId\", \"toolName\", \"version\"] },\n { kind: 'index', name: \"by_workspace_toolName_version\", columns: [\"workspaceId\", \"toolName\", \"version\"] },\n { kind: 'index', name: \"by_tenant_gateClassification\", columns: [\"tenantId\", \"gateClassification\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n","/**\n * Schema contracts for identity/agent.\n *\n * Mirrored from:\n * - packages/identity/src/component/schema/domains/agent.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const agents = defineTable({\n name: \"agents\",\n component: \"identity\",\n category: \"agent\",\n shape: z.object({\n \"slug\": z.string(),\n \"displayName\": z.string().optional(),\n \"principalId\": z.string(),\n \"principalType\": z.literal(\"service\"),\n \"tenantId\": z.string(),\n \"workspaceId\": z.string(),\n \"roles\": z.array(z.string()),\n \"permittedToolNames\": z.array(z.string()).optional(),\n \"permittedPackKeys\": z.array(z.string()).optional(),\n \"groupIds\": z.array(z.string()).optional(),\n \"status\": z.enum([\"active\", \"suspended\", \"disabled\"]),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"createdBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_slug\", columns: [\"slug\"] },\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n","/**\n * Schema contracts for mc/tenant.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const apiKeys = defineTable({\n name: \"apiKeys\",\n component: \"mc\",\n category: \"tenant\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"keyPrefix\": z.enum([\"luc\", \"stk\"]),\n \"keyHash\": z.string(),\n \"keyHint\": z.string(),\n \"label\": z.string().optional(),\n \"status\": z.enum([\"active\", \"revoked\", \"expired\"]),\n \"expiresAt\": z.number().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_keyHash\", columns: [\"keyHash\"] },\n { kind: 'index', name: \"by_tenant_prefix\", columns: [\"tenantId\", \"keyPrefix\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const auditLog = defineTable({\n name: \"auditLog\",\n component: \"mc\",\n category: \"tenant\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\").optional(),\n \"apiKeyId\": idOf(\"apiKeys\").optional(),\n \"action\": z.enum([\"key_created\", \"key_revoked\", \"key_expired\", \"key_used\", \"tenant_secret_created\", \"tenant_secret_rotated\", \"tenant_secret_revoked\", \"tenant_slot_binding_upserted\", \"tenant_slot_binding_revoked\", \"proxy_token_minted\", \"proxy_request_recorded\", \"tenant_created\", \"tenant_updated\", \"tenant_suspended\", \"tenant_archived\", \"tenant_reactivated\", \"principal_created\", \"principal_updated\", \"principal_suspended\", \"membership_created\", \"membership_updated\", \"membership_revoked\", \"group_created\", \"group_updated\", \"group_deleted\", \"group_member_added\", \"group_member_removed\", \"workspace_created\", \"workspace_updated\", \"workspace_archived\", \"workspace_deployment_set\", \"workspace_deployment_removed\", \"service_key_created\", \"service_key_rotated\", \"service_key_revoked\", \"service_key_used\", \"service_key_auth_failed\", \"session_created\", \"session_validated\", \"session_revoked\", \"session_cascade_revoked\", \"session_expired\", \"sandbox_created\", \"sandbox_secret_injected\", \"sandbox_execution_started\", \"sandbox_execution_completed\", \"sandbox_limit_violated\", \"policy_created\", \"policy_updated\", \"policy_enforced\", \"policy_archived\", \"agent_registered\", \"agent_updated\", \"tool_registered\", \"tool_updated\", \"pack_entitled\", \"pack_installed\", \"pack_enabled\", \"pack_disabled\", \"pack_entitlement_revoked\", \"pack_upgraded\", \"pack_upgrade_committed\", \"pack_upgrade_rolled_back\", \"pack_group_assigned\", \"pack_group_unassigned\", \"methodology_pack_created\", \"methodology_pack_updated\", \"methodology_pack_assigned\", \"methodology_pack_removed\", \"pack_assigned_to_group\", \"pack_revoked_from_group\", \"pack_ontology_materialized\", \"pack_ontology_topic_bound\", \"cutover_flag_set\", \"cutover_flag_cleared\"]),\n \"actorClerkId\": z.string(),\n \"details\": z.any().optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_apiKeyId\", columns: [\"apiKeyId\", \"createdAt\"] },\n { kind: 'index', name: \"by_action\", columns: [\"action\", \"createdAt\"] }\n ],\n});\n\nexport const tenants = defineTable({\n name: \"tenants\",\n component: \"mc\",\n category: \"tenant\",\n shape: z.object({\n \"slug\": z.string(),\n \"name\": z.string(),\n \"status\": z.enum([\"provisioning\", \"active\", \"suspended\", \"archived\"]),\n \"tier\": z.enum([\"free\", \"developer\", \"team\", \"enterprise\"]),\n \"kernelDeployment\": z.object({\n \"devUrl\": z.string(),\n \"devId\": z.string(),\n \"stagingUrl\": z.string().optional(),\n \"stagingId\": z.string().optional(),\n \"prodUrl\": z.string().optional(),\n \"prodId\": z.string().optional()\n }).optional(),\n \"lucernDeployment\": z.object({\n \"devUrl\": z.string(),\n \"devId\": z.string(),\n \"stagingUrl\": z.string().optional(),\n \"stagingId\": z.string().optional(),\n \"prodUrl\": z.string().optional(),\n \"prodId\": z.string().optional()\n }).optional(),\n \"appDeployment\": z.object({\n \"devUrl\": z.string(),\n \"devId\": z.string(),\n \"stagingUrl\": z.string().optional(),\n \"stagingId\": z.string().optional(),\n \"prodUrl\": z.string().optional(),\n \"prodId\": z.string().optional()\n }).optional(),\n \"ownerClerkId\": z.string(),\n \"ownerEmail\": z.string().optional(),\n \"metadata\": z.any().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_slug\", columns: [\"slug\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_ownerClerkId\", columns: [\"ownerClerkId\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/infra.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/infra.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const autofixJobs = defineTable({\n name: \"autofixJobs\",\n component: \"kernel\",\n category: \"infra\",\n shape: z.object({\n \"sentryIssueId\": z.string(),\n \"sentryEventId\": z.string(),\n \"fingerprint\": z.string(),\n \"dedupeKey\": z.string(),\n \"errorType\": z.string(),\n \"errorMessage\": z.string(),\n \"stackTrace\": z.string().optional(),\n \"filePaths\": z.array(z.string()),\n \"environment\": z.string(),\n \"sentryProjectSlug\": z.string(),\n \"sentryOrgSlug\": z.string(),\n \"sentryIssueUrl\": z.string().optional(),\n \"triggeredRule\": z.string(),\n \"sentryPayload\": z.record(z.any()),\n \"allowlistEligible\": z.boolean(),\n \"allowlistReason\": z.string(),\n \"status\": z.enum([\"pending\", \"claimed\", \"running\", \"iterating\", \"succeeded\", \"failed\", \"cancelled\"]),\n \"claimedBy\": z.string().optional(),\n \"claimedAt\": z.number().optional(),\n \"startedAt\": z.number().optional(),\n \"completedAt\": z.number().optional(),\n \"error\": z.string().optional(),\n \"prNumber\": z.number().optional(),\n \"prUrl\": z.string().optional(),\n \"commitSha\": z.string().optional(),\n \"branchName\": z.string().optional(),\n \"harnessReceipt\": z.object({\n \"runnerSessionId\": z.string(),\n \"startedAt\": z.number(),\n \"completedAt\": z.number(),\n \"fixDescription\": z.string().optional(),\n \"filesChanged\": z.array(z.string()),\n \"verificationResults\": z.array(z.object({\n \"command\": z.string(),\n \"status\": z.enum([\"pass\", \"fail\", \"skipped\"]),\n \"summary\": z.string().optional()\n })),\n \"commitShas\": z.array(z.string()),\n \"prCreated\": z.boolean(),\n \"errorSummary\": z.string().optional()\n }).optional(),\n \"iterationReceipts\": z.array(z.object({\n \"iteration\": z.number(),\n \"startedAt\": z.number(),\n \"completedAt\": z.number(),\n \"checkConclusion\": z.string(),\n \"failureSummary\": z.string().optional(),\n \"actionTaken\": z.string(),\n \"commitSha\": z.string().optional(),\n \"filesChanged\": z.array(z.string()).optional(),\n \"agentConfidence\": z.number().optional(),\n \"errorSignature\": z.string().optional()\n })).optional(),\n \"iterationCount\": z.number().optional(),\n \"maxIterations\": z.number().optional(),\n \"lastCheckConclusion\": z.string().optional(),\n \"stopReason\": z.string().optional(),\n \"iterationPolicy\": z.object({\n \"maxIterations\": z.number(),\n \"pollIntervalMs\": z.number(),\n \"flakeThreshold\": z.number(),\n \"confidenceFloor\": z.number()\n }).optional(),\n \"attemptCount\": z.number(),\n \"maxAttempts\": z.number(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_dedupeKey\", columns: [\"dedupeKey\"] },\n { kind: 'index', name: \"by_sentryIssueId\", columns: [\"sentryIssueId\"] },\n { kind: 'index', name: \"by_status_createdAt\", columns: [\"status\", \"createdAt\"] },\n { kind: 'index', name: \"by_environment\", columns: [\"environment\"] },\n { kind: 'index', name: \"by_claimedBy\", columns: [\"claimedBy\"] },\n { kind: 'index', name: \"by_createdAt\", columns: [\"createdAt\"] }\n ],\n});\n\nexport const backgroundJobRuns = defineTable({\n name: \"backgroundJobRuns\",\n component: \"kernel\",\n category: \"infra\",\n shape: z.object({\n \"jobKey\": z.string(),\n \"scheduler\": z.string(),\n \"triggeredBy\": z.string(),\n \"status\": z.enum([\"running\", \"completed\", \"failed\", \"skipped\"]),\n \"startedAt\": z.number(),\n \"completedAt\": z.number().optional(),\n \"durationMs\": z.number().optional(),\n \"resultSummary\": z.string().optional(),\n \"error\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_jobKey\", columns: [\"jobKey\"] },\n { kind: 'index', name: \"by_startedAt\", columns: [\"startedAt\"] },\n { kind: 'index', name: \"by_jobKey_startedAt\", columns: [\"jobKey\", \"startedAt\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const backgroundJobSettings = defineTable({\n name: \"backgroundJobSettings\",\n component: \"kernel\",\n category: \"infra\",\n shape: z.object({\n \"jobKey\": z.string(),\n \"enabled\": z.boolean(),\n \"notes\": z.string().optional(),\n \"updatedAt\": z.number(),\n \"updatedBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_jobKey\", columns: [\"jobKey\"] },\n { kind: 'index', name: \"by_enabled\", columns: [\"enabled\"] },\n { kind: 'index', name: \"by_updatedAt\", columns: [\"updatedAt\"] }\n ],\n});\n\nexport const systemLogs = defineTable({\n name: \"systemLogs\",\n component: \"kernel\",\n category: \"infra\",\n shape: z.object({\n \"chatId\": z.string().optional(),\n \"workflowId\": z.string().optional(),\n \"threadId\": z.string().optional(),\n \"level\": z.string(),\n \"source\": z.string(),\n \"message\": z.string(),\n \"metadata\": z.record(z.any()).optional(),\n \"traceId\": z.string().optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_chatId\", columns: [\"chatId\"] },\n { kind: 'index', name: \"by_workflowId\", columns: [\"workflowId\"] },\n { kind: 'index', name: \"by_threadId\", columns: [\"threadId\"] },\n { kind: 'index', name: \"by_traceId\", columns: [\"traceId\"] },\n { kind: 'index', name: \"by_level\", columns: [\"level\"] },\n { kind: 'index', name: \"by_source\", columns: [\"source\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/epistemic.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/epistemic.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const beliefConfidence = defineTable({\n name: \"beliefConfidence\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"beliefId\": z.string(),\n \"belief\": z.number().optional(),\n \"disbelief\": z.number().optional(),\n \"uncertainty\": z.number().optional(),\n \"baseRate\": z.number(),\n \"slOperator\": z.string().optional(),\n \"confidence\": z.number(),\n \"confidenceLevel\": z.enum([\"high\", \"medium\", \"low\"]).optional(),\n \"valence\": z.number().optional(),\n \"certainty\": z.number().optional(),\n \"assessedAt\": z.number(),\n \"assessedBy\": z.string(),\n \"trigger\": z.enum([\"initial\", \"evidence_added\", \"evidence_removed\", \"contradiction_detected\", \"contradiction_resolved\", \"manual\", \"decay\", \"propagation\", \"agent_assessment\", \"worktree_outcome\", \"worktree_completed\", \"fusion\", \"discount\", \"deduction\", \"backfill_synthetic\"]),\n \"rationale\": z.string().optional(),\n \"triggeringEvidenceId\": z.string().optional(),\n \"triggeringEvidenceIds\": z.array(z.string()).optional(),\n \"triggeringContradictionId\": idOf(\"contradictions\").optional(),\n \"triggeringWorktreeId\": z.string().optional(),\n \"triggeringAgentId\": z.string().optional(),\n \"isAgentAssessment\": z.boolean().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_beliefId\", columns: [\"beliefId\"] },\n { kind: 'index', name: \"by_beliefId_time\", columns: [\"beliefId\", \"assessedAt\"] },\n { kind: 'index', name: \"by_trigger\", columns: [\"trigger\"] }\n ],\n});\n\nexport const beliefEvidenceLinks = defineTable({\n name: \"beliefEvidenceLinks\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"beliefId\": z.string(),\n \"insightId\": z.string(),\n \"relation\": z.enum([\"supports\", \"contradicts\"]),\n \"confidence\": z.number().optional(),\n \"rationale\": z.string().optional(),\n \"status\": z.enum([\"suggested\", \"approved\", \"dismissed\"]).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_beliefId\", columns: [\"beliefId\"] },\n { kind: 'index', name: \"by_insightId\", columns: [\"insightId\"] },\n { kind: 'index', name: \"by_relation\", columns: [\"beliefId\", \"relation\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const beliefHistory = defineTable({\n name: \"beliefHistory\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"beliefId\": z.string(),\n \"timestamp\": z.number(),\n \"previousStatus\": z.string().optional(),\n \"newStatus\": z.string(),\n \"justification\": z.string().optional(),\n \"triggeredByEvidenceIds\": z.array(z.string()).optional(),\n \"triggeredByUserId\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_beliefId\", columns: [\"beliefId\"] }\n ],\n});\n\nexport const beliefScenarios = defineTable({\n name: \"beliefScenarios\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"testedBeliefId\": z.string(),\n \"scenarioType\": z.enum([\"falsification\", \"strengthening\", \"alternative\", \"collapse\", \"critical_path\"]),\n \"assumedState\": z.enum([\"false\", \"true\", \"weakened\", \"strengthened\"]),\n \"title\": z.string(),\n \"description\": z.string(),\n \"cascadeEffects\": z.array(z.object({\n \"beliefId\": z.string(),\n \"beliefText\": z.string(),\n \"currentConfidence\": z.string(),\n \"projectedConfidence\": z.string(),\n \"reason\": z.string()\n })),\n \"thesisImpact\": z.enum([\"thesis_fails\", \"thesis_weakens\", \"pillar_fails\", \"localized\", \"minimal\"]),\n \"pillarImpacts\": z.array(z.object({\n \"pillar\": z.string(),\n \"impactLevel\": z.string(),\n \"reason\": z.string()\n })).optional(),\n \"keyInsights\": z.array(z.string()),\n \"recommendedActions\": z.array(z.object({\n \"action\": z.string(),\n \"priority\": z.string(),\n \"rationale\": z.string()\n })).optional(),\n \"sourceWorktreeId\": z.string().optional(),\n \"sourceChatId\": idOf(\"chats\").optional(),\n \"sourceMessageId\": idOf(\"messages\").optional(),\n \"createdAt\": z.number(),\n \"createdBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_scenarioType\", columns: [\"topicId\", \"scenarioType\"] },\n { kind: 'index', name: \"by_topic_thesisImpact\", columns: [\"topicId\", \"thesisImpact\"] },\n { kind: 'index', name: \"by_testedBelief\", columns: [\"testedBeliefId\"] },\n { kind: 'index', name: \"by_sourceWorktreeId\", columns: [\"sourceWorktreeId\"] }\n ],\n});\n\nexport const contractEvaluations = defineTable({\n name: \"contractEvaluations\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"contractId\": z.string(),\n \"beliefNodeId\": z.string(),\n \"result\": z.enum([\"confirmed\", \"disconfirmed\", \"partial\", \"expired\", \"error\", \"inconclusive\"]),\n \"evaluatedAt\": z.number(),\n \"evaluator\": z.string(),\n \"trigger\": z.string(),\n \"resultData\": z.union([z.string(), z.number(), z.boolean(), z.null(), z.record(z.any()), z.array(z.any())]).optional(),\n \"modulationApplied\": z.boolean(),\n \"confidenceDelta\": z.number().optional(),\n \"confidenceBefore\": z.number().optional(),\n \"confidenceAfter\": z.number().optional(),\n \"beliefConfidenceId\": idOf(\"beliefConfidence\").optional(),\n \"modulationRationale\": z.string().optional(),\n \"topicId\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_contract\", columns: [\"contractId\"] },\n { kind: 'index', name: \"by_contract_time\", columns: [\"contractId\", \"evaluatedAt\"] },\n { kind: 'index', name: \"by_belief\", columns: [\"beliefNodeId\"] },\n { kind: 'index', name: \"by_result\", columns: [\"result\"] },\n { kind: 'index', name: \"by_time\", columns: [\"evaluatedAt\"] },\n { kind: 'index', name: \"by_topic_time\", columns: [\"topicId\", \"evaluatedAt\"] }\n ],\n});\n\nexport const contradictions = defineTable({\n name: \"contradictions\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"beliefId\": z.string(),\n \"supportingInsightIds\": z.array(z.string()),\n \"contradictingInsightIds\": z.array(z.string()),\n \"resolutionStatus\": z.enum([\"unresolved\", \"investigating\", \"accepted_as_permanent\", \"resolved_by_fork\", \"resolved_by_evidence\", \"resolved_by_reinterpretation\", \"superseded\"]),\n \"status\": z.enum([\"unresolved\", \"investigating\", \"resolved_support\", \"resolved_contra\", \"belief_forked\"]).optional(),\n \"blocksDecisionFinalization\": z.boolean().optional(),\n \"blockingReason\": z.string().optional(),\n \"severity\": z.enum([\"critical\", \"significant\", \"minor\"]),\n \"aiAnalysis\": z.object({\n \"summary\": z.string(),\n \"likelyExplanation\": z.string(),\n \"suggestedResolution\": z.string(),\n \"confidenceInAnalysis\": z.number(),\n \"analyzedAt\": z.number()\n }).optional(),\n \"resolutionWorktreeId\": z.string().optional(),\n \"resolution\": z.object({\n \"verdict\": z.string(),\n \"reasoning\": z.string(),\n \"beliefUpdate\": z.string(),\n \"resolvedBy\": z.string()\n }).optional(),\n \"resultingBeliefIds\": z.array(z.string()).optional(),\n \"detectionMethod\": z.enum([\"semantic\", \"keyword\", \"manual\", \"agent\"]).optional(),\n \"similarityScore\": z.number().optional(),\n \"detectedAt\": z.number(),\n \"resolvedAt\": z.number().optional(),\n \"lastReviewedAt\": z.number().optional(),\n \"createdBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_resolutionStatus\", columns: [\"topicId\", \"resolutionStatus\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_topic_severity\", columns: [\"topicId\", \"severity\"] },\n { kind: 'index', name: \"by_topic_blocking\", columns: [\"topicId\", \"blocksDecisionFinalization\"] },\n { kind: 'index', name: \"by_beliefId\", columns: [\"beliefId\"] }\n ],\n});\n\nexport const epistemicAudit = defineTable({\n name: \"epistemicAudit\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"entityType\": z.enum([\"belief\", \"evidence\", \"question\", \"answer\", \"contradiction\", \"decision\", \"proposal\", \"edge\", \"node\", \"entity\", \"source\", \"belief_conditional\", \"belief_scenario\", \"ontologyDefinition\", \"ontologyVersion\"]),\n \"entityId\": z.string(),\n \"changeType\": z.enum([\"created\", \"status_changed\", \"confidence_changed\", \"criticality_changed\", \"formulation_modified\", \"forked\", \"superseded\", \"archived\", \"resolved\", \"severity_changed\", \"edge_added\", \"edge_removed\", \"annotated\", \"blocked\", \"unblocked\", \"decision_finalized\", \"proposal_accepted\", \"proposal_rejected\", \"pillar_changed\", \"updated\", \"deleted\", \"entity_merged\", \"entity_attributes_updated\", \"entity_archived\", \"published\", \"deprecated\", \"source_created\", \"source_metadata_updated\"]),\n \"changedAt\": z.number(),\n \"changedBy\": z.string(),\n \"isAgent\": z.boolean(),\n \"agentType\": z.string().optional(),\n \"previousState\": z.union([z.record(z.any()), z.null()]).optional(),\n \"newState\": z.union([z.record(z.any()), z.null()]).optional(),\n \"rationale\": z.string().optional(),\n \"triggeringAction\": z.string().optional(),\n \"topicId\": z.string().optional(),\n \"proposalId\": z.string().optional(),\n \"mcpSessionId\": z.string().optional(),\n \"mcpToolName\": z.string().optional(),\n \"sourceCommit\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_entityId\", columns: [\"entityId\"] },\n { kind: 'index', name: \"by_entityType\", columns: [\"entityType\"] },\n { kind: 'index', name: \"by_entityType_id\", columns: [\"entityType\", \"entityId\"] },\n { kind: 'index', name: \"by_changedAt\", columns: [\"changedAt\"] },\n { kind: 'index', name: \"by_changedBy\", columns: [\"changedBy\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_changeType\", columns: [\"changeType\"] },\n { kind: 'index', name: \"by_mcpSessionId\", columns: [\"mcpSessionId\"] }\n ],\n});\n\nexport const epistemicContracts = defineTable({\n name: \"epistemicContracts\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"beliefNodeId\": z.string(),\n \"contractId\": z.string(),\n \"title\": z.string(),\n \"description\": z.string().optional(),\n \"conditionType\": z.enum([\"assertion\", \"temporal\", \"evidential\", \"threshold\", \"composite\"]),\n \"direction\": z.enum([\"confirms\", \"falsifies\"]),\n \"condition\": z.object({\n \"expression\": z.string(),\n \"evaluator\": z.string(),\n \"evaluatorConfig\": z.union([z.string(), z.number(), z.boolean(), z.null(), z.record(z.any()), z.array(z.any())]).optional()\n }),\n \"deadline\": z.number().optional(),\n \"compositeOf\": z.array(z.string()).optional(),\n \"compositeOperator\": z.enum([\"all\", \"any\", \"majority\"]).optional(),\n \"modulation\": z.object({\n \"onConfirmed\": z.object({\n \"delta\": z.number(),\n \"ceiling\": z.number().optional()\n }),\n \"onDisconfirmed\": z.object({\n \"delta\": z.number(),\n \"floor\": z.number().optional()\n }),\n \"onExpired\": z.object({\n \"delta\": z.number()\n }).optional(),\n \"onPartial\": z.object({\n \"threshold\": z.number(),\n \"delta\": z.number()\n }).optional()\n }),\n \"evaluationSchedule\": z.enum([\"on_demand\", \"on_evidence\", \"periodic\", \"event_driven\"]),\n \"periodicIntervalMs\": z.number().optional(),\n \"status\": z.enum([\"active\", \"satisfied\", \"violated\", \"expired\", \"suspended\", \"archived\"]),\n \"lineageSource\": z.enum([\"declared\", \"inherited\"]),\n \"inheritedFromContractId\": z.string().optional(),\n \"inheritedFromBeliefNodeId\": z.string().optional(),\n \"inheritedAt\": z.number().optional(),\n \"lastEvaluatedAt\": z.number().optional(),\n \"evaluationCount\": z.number().optional(),\n \"topicId\": z.string().optional(),\n \"createdAt\": z.number(),\n \"createdBy\": z.string(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_contractId\", columns: [\"contractId\"] },\n { kind: 'index', name: \"by_belief\", columns: [\"beliefNodeId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_evaluator\", columns: [\"condition.evaluator\"] },\n { kind: 'index', name: \"by_topic\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_schedule\", columns: [\"evaluationSchedule\"] }\n ],\n});\n\nexport const questionEvidenceLinks = defineTable({\n name: \"questionEvidenceLinks\",\n component: \"kernel\",\n category: \"epistemic\",\n shape: z.object({\n \"questionId\": z.string(),\n \"insightId\": z.string(),\n \"helpsAnswer\": z.boolean(),\n \"relevance\": z.number().optional(),\n \"rationale\": z.string().optional(),\n \"impactScore\": z.number().optional(),\n \"impact\": z.enum([\"supports\", \"contradicts\", \"neutral\"]).optional(),\n \"status\": z.enum([\"suggested\", \"approved\", \"dismissed\"]).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_questionId\", columns: [\"questionId\"] },\n { kind: 'index', name: \"by_insightId\", columns: [\"insightId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/decision.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/decision.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const beliefVotes = defineTable({\n name: \"beliefVotes\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"decisionEventId\": idOf(\"decisionEvents\"),\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"voterPrincipalId\": z.string(),\n \"voterUserId\": z.string().optional(),\n \"voterRole\": z.enum([\"owner\", \"facilitator\", \"decision_maker\", \"advisor\", \"observer\", \"recorder\"]).optional(),\n \"stakeholderGroupId\": idOf(\"stakeholderGroups\").optional(),\n \"beliefId\": idOf(\"epistemicNodes\"),\n \"domainCategory\": z.string().optional(),\n \"voteDirection\": z.enum([\"support\", \"oppose\", \"abstain\", \"uncertain\"]),\n \"confidence\": z.number(),\n \"probability\": z.number().optional(),\n \"comment\": z.string().optional(),\n \"isHingeVote\": z.boolean().optional(),\n \"status\": z.enum([\"active\", \"superseded\", \"withdrawn\"]),\n \"supersedesVoteId\": idOf(\"beliefVotes\").optional(),\n \"supersededByVoteId\": idOf(\"beliefVotes\").optional(),\n \"weightingModelVersion\": z.string(),\n \"weightingInput\": z.record(z.any()).optional(),\n \"effectiveWeight\": z.number().optional(),\n \"policyTraceId\": z.string().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_decisionEventId\", columns: [\"decisionEventId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_decision_belief\", columns: [\"decisionEventId\", \"beliefId\"] },\n { kind: 'index', name: \"by_decision_belief_voter\", columns: [\"decisionEventId\", \"beliefId\", \"voterPrincipalId\"] },\n { kind: 'index', name: \"by_decision_status\", columns: [\"decisionEventId\", \"status\"] },\n { kind: 'index', name: \"by_supersedesVoteId\", columns: [\"supersedesVoteId\"] }\n ],\n});\n\nexport const calibrationScores = defineTable({\n name: \"calibrationScores\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"principalId\": z.string(),\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"decisionEventId\": idOf(\"decisionEvents\").optional(),\n \"snapshotId\": idOf(\"decisionSnapshots\").optional(),\n \"scoreType\": z.enum([\"confidence_alignment\", \"outcome_accuracy\", \"weighting_alignment\", \"readiness_alignment\", \"brier\"]),\n \"score\": z.number(),\n \"inputCount\": z.number().optional(),\n \"windowStartAt\": z.number().optional(),\n \"windowEndAt\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principal_createdAt\", columns: [\"principalId\", \"createdAt\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_principal_createdAt\", columns: [\"topicId\", \"principalId\", \"createdAt\"] },\n { kind: 'index', name: \"by_decisionEventId\", columns: [\"decisionEventId\"] },\n { kind: 'index', name: \"by_snapshotId\", columns: [\"snapshotId\"] },\n { kind: 'index', name: \"by_tenant_createdAt\", columns: [\"tenantId\", \"createdAt\"] }\n ],\n});\n\nexport const decisionComputedSummaries = defineTable({\n name: \"decisionComputedSummaries\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"decisionEventId\": idOf(\"decisionEvents\"),\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"summaryKind\": z.enum([\"contradiction_map\", \"hinge_fragility\", \"certainty_map\", \"unknown_concentration\", \"risk_ledger_draft\", \"readiness_breakdown\", \"quorum_suggestion\", \"vote_weighting\", \"cross_group_divergence\", \"cross_theme_concentration\"]),\n \"schemaVersion\": z.string(),\n \"status\": z.enum([\"draft\", \"current\", \"superseded\"]),\n \"payload\": z.record(z.any()),\n \"inputHash\": z.string().optional(),\n \"policyTraceId\": z.string().optional(),\n \"supersededBySummaryId\": idOf(\"decisionComputedSummaries\").optional(),\n \"computedBy\": z.string().optional(),\n \"computedAt\": z.number(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_decisionEventId\", columns: [\"decisionEventId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_kind_createdAt\", columns: [\"topicId\", \"summaryKind\", \"computedAt\"] },\n { kind: 'index', name: \"by_decision_kind_createdAt\", columns: [\"decisionEventId\", \"summaryKind\", \"computedAt\"] },\n { kind: 'index', name: \"by_decision_status\", columns: [\"decisionEventId\", \"status\"] }\n ],\n});\n\nexport const decisionEvents = defineTable({\n name: \"decisionEvents\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"eventKey\": z.string(),\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"ownerPrincipalId\": z.string().optional(),\n \"audienceLabel\": z.string().optional(),\n \"policyTags\": z.array(z.string()).optional(),\n \"sensitivityTier\": z.enum([\"low\", \"medium\", \"high\"]).optional(),\n \"exportClass\": z.enum([\"public_safe\", \"client_safe\", \"internal_only\"]).optional(),\n \"anonymizationClass\": z.enum([\"none\", \"standard\", \"strict\"]).optional(),\n \"title\": z.string(),\n \"summary\": z.string().optional(),\n \"eventType\": z.enum([\"investment\", \"deal\", \"portfolio\", \"strategy\", \"operations\", \"other\"]),\n \"status\": z.enum([\"draft\", \"pre_ic_preparing\", \"pre_ic_ready\", \"ic_in_session\", \"risk_confirmed\", \"snapshot_locked\", \"finalized\", \"reopened\", \"superseded\"]),\n \"outcome\": z.enum([\"approve\", \"conditional\", \"defer\", \"reject\", \"reopen_on_trigger\"]).optional(),\n \"scheduledAt\": z.number().optional(),\n \"startedAt\": z.number().optional(),\n \"riskConfirmedAt\": z.number().optional(),\n \"snapshotLockedAt\": z.number().optional(),\n \"finalizedAt\": z.number().optional(),\n \"supersedesDecisionEventId\": idOf(\"decisionEvents\").optional(),\n \"supersededByDecisionEventId\": idOf(\"decisionEvents\").optional(),\n \"weightingModelVersion\": z.string(),\n \"weightingParameters\": z.record(z.any()).optional(),\n \"advisoryReadinessScore\": z.number().optional(),\n \"advisoryReadinessFactors\": z.record(z.any()).optional(),\n \"policyTraceId\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"updatedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_eventKey\", columns: [\"eventKey\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_topic_updatedAt\", columns: [\"topicId\", \"updatedAt\"] },\n { kind: 'index', name: \"by_status_scheduledAt\", columns: [\"status\", \"scheduledAt\"] },\n { kind: 'index', name: \"by_supersedesDecisionEventId\", columns: [\"supersedesDecisionEventId\"] },\n { kind: 'index', name: \"by_supersededByDecisionEventId\", columns: [\"supersededByDecisionEventId\"] }\n ],\n});\n\nexport const decisionParticipants = defineTable({\n name: \"decisionParticipants\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"decisionEventId\": idOf(\"decisionEvents\"),\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"principalId\": z.string(),\n \"userId\": z.string().optional(),\n \"role\": z.enum([\"owner\", \"facilitator\", \"decision_maker\", \"advisor\", \"observer\", \"recorder\"]),\n \"stakeholderGroupId\": idOf(\"stakeholderGroups\").optional(),\n \"weight\": z.number().optional(),\n \"calibrationWeight\": z.number().optional(),\n \"status\": z.enum([\"active\", \"invited\", \"removed\"]),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_decisionEventId\", columns: [\"decisionEventId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_decision_principal\", columns: [\"decisionEventId\", \"principalId\"] },\n { kind: 'index', name: \"by_decision_role\", columns: [\"decisionEventId\", \"role\"] },\n { kind: 'index', name: \"by_group\", columns: [\"stakeholderGroupId\"] }\n ],\n});\n\nexport const decisionRiskLedger = defineTable({\n name: \"decisionRiskLedger\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"decisionEventId\": idOf(\"decisionEvents\"),\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"riskType\": z.string(),\n \"riskDescription\": z.string(),\n \"relatedBeliefId\": idOf(\"epistemicNodes\").optional(),\n \"probabilityBand\": z.enum([\"very_low\", \"low\", \"medium\", \"high\", \"very_high\"]),\n \"impactBand\": z.enum([\"very_low\", \"low\", \"medium\", \"high\", \"very_high\"]),\n \"ownerPrincipalId\": z.string().optional(),\n \"triggerCondition\": z.string().optional(),\n \"monitoringPlan\": z.string().optional(),\n \"status\": z.enum([\"draft\", \"confirmed\", \"resolved\", \"dismissed\"]),\n \"confirmationMetadata\": z.record(z.any()).optional(),\n \"confirmedAt\": z.number().optional(),\n \"confirmedBy\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_decisionEventId\", columns: [\"decisionEventId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_decision_status\", columns: [\"decisionEventId\", \"status\"] }\n ],\n});\n\nexport const decisionSnapshots = defineTable({\n name: \"decisionSnapshots\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"decisionEventId\": idOf(\"decisionEvents\"),\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"ownerPrincipalId\": z.string().optional(),\n \"audienceLabel\": z.string().optional(),\n \"policyTags\": z.array(z.string()).optional(),\n \"sensitivityTier\": z.enum([\"low\", \"medium\", \"high\"]).optional(),\n \"exportClass\": z.enum([\"public_safe\", \"client_safe\", \"internal_only\"]).optional(),\n \"anonymizationClass\": z.enum([\"none\", \"standard\", \"strict\"]).optional(),\n \"version\": z.number(),\n \"snapshotLabel\": z.string().optional(),\n \"payload\": z.record(z.any()),\n \"payloadHash\": z.string(),\n \"weightingModelVersion\": z.string(),\n \"weightingParameters\": z.record(z.any()).optional(),\n \"outcome\": z.enum([\"approve\", \"conditional\", \"defer\", \"reject\", \"reopen_on_trigger\"]).optional(),\n \"lineageParentSnapshotId\": idOf(\"decisionSnapshots\").optional(),\n \"lineageParentDecisionEventId\": idOf(\"decisionEvents\").optional(),\n \"policyTraceId\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"lockedBy\": z.string(),\n \"lockedAt\": z.number(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_decisionEventId\", columns: [\"decisionEventId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_lockedAt\", columns: [\"topicId\", \"lockedAt\"] },\n { kind: 'index', name: \"by_decision_version\", columns: [\"decisionEventId\", \"version\"] },\n { kind: 'index', name: \"by_decision_lockedAt\", columns: [\"decisionEventId\", \"lockedAt\"] },\n { kind: 'index', name: \"by_payloadHash\", columns: [\"payloadHash\"] }\n ],\n});\n\nexport const deliberationContributions = defineTable({\n name: \"deliberationContributions\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"sessionId\": idOf(\"deliberationSessions\"),\n \"topicId\": z.string().optional(),\n \"principalId\": z.string(),\n \"slot\": z.string(),\n \"modelKey\": z.string().optional(),\n \"promptName\": z.string().optional(),\n \"role\": z.enum([\"support\", \"oppose\", \"uncertain\", \"synthesize\"]),\n \"answer\": z.string(),\n \"confidence\": z.number(),\n \"reasoningChain\": z.array(z.string()),\n \"uncertaintyZones\": z.array(z.object({\n \"label\": z.string(),\n \"explanation\": z.string()\n })),\n \"escalationQuestions\": z.array(z.string()),\n \"contradictionHypotheses\": z.array(z.string()),\n \"rawResponse\": z.string(),\n \"parsedResponse\": z.any().optional(),\n \"traceId\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_session_slot\", columns: [\"sessionId\", \"slot\"] }\n ],\n});\n\nexport const deliberationSessions = defineTable({\n name: \"deliberationSessions\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"principalId\": z.string(),\n \"question\": z.string(),\n \"status\": z.enum([\"running\", \"completed\", \"failed\"]),\n \"modelSlots\": z.array(z.string()),\n \"linkedBeliefNodeId\": idOf(\"epistemicNodes\").optional(),\n \"replayBaselineAt\": z.number(),\n \"replayHeadAt\": z.number().optional(),\n \"replayBaseline\": z.any().optional(),\n \"replayDelta\": z.any().optional(),\n \"contextBrief\": z.string().optional(),\n \"contextSnapshot\": z.any().optional(),\n \"contradictionIds\": z.array(idOf(\"contradictions\")),\n \"escalationQuestionIds\": z.array(idOf(\"epistemicNodes\")),\n \"uncertaintyZones\": z.array(z.object({\n \"label\": z.string(),\n \"explanation\": z.string(),\n \"slots\": z.array(z.string())\n })),\n \"outcomeSummary\": z.any().optional(),\n \"traceId\": z.string().optional(),\n \"error\": z.string().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"completedAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_createdBy\", columns: [\"createdBy\"] }\n ],\n});\n\nexport const stakeholderGroups = defineTable({\n name: \"stakeholderGroups\",\n component: \"kernel\",\n category: \"decision\",\n shape: z.object({\n \"decisionEventId\": idOf(\"decisionEvents\"),\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"groupKey\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"weight\": z.number(),\n \"status\": z.enum([\"active\", \"archived\"]),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_decisionEventId\", columns: [\"decisionEventId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_decision_groupKey\", columns: [\"decisionEventId\", \"groupKey\"] },\n { kind: 'index', name: \"by_decision_status\", columns: [\"decisionEventId\", \"status\"] }\n ],\n});\n","/**\n * Schema contracts for mc/runtime.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const compatibilityShims = defineTable({\n name: \"compatibilityShims\",\n component: \"mc\",\n category: \"runtime\",\n shape: z.object({\n \"shimId\": z.string(),\n \"gateId\": z.string(),\n \"removalDate\": z.string(),\n \"removalPriority\": z.enum([\"P1\", \"P2\", \"P3\"]),\n \"description\": z.string(),\n \"owner\": z.string(),\n \"createdAt\": z.string(),\n \"status\": z.enum([\"active\", \"overdue\", \"removed\"]),\n \"bridgeType\": z.enum([\"tool\", \"agent\"]),\n \"bridgeTarget\": z.object({\n \"type\": z.enum([\"tool\", \"agent\"]),\n \"legacyPath\": z.string(),\n \"harnessPath\": z.string()\n }),\n \"shimBehavior\": z.enum([\"passthrough_with_logging\", \"adapter\", \"feature_flag_gate\"]),\n \"producesLedgerEntries\": z.boolean(),\n \"lastAuditedAt\": z.number(),\n \"metadata\": z.record(z.any()).optional()\n }),\n indices: [\n { kind: 'index', name: \"by_shimId\", columns: [\"shimId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_bridgeType_status\", columns: [\"bridgeType\", \"status\"] }\n ],\n});\n\nexport const cutoverFlags = defineTable({\n name: \"cutoverFlags\",\n component: \"mc\",\n category: \"runtime\",\n shape: z.object({\n \"domain\": z.enum([\"graph\", \"schema\", \"identity\", \"policy\", \"audit\", \"admin\", \"agent\", \"tool\", \"prompt\", \"intelligence\"]),\n \"state\": z.enum([\"legacy\", \"cutover\", \"disabled\"]),\n \"metadata\": z.record(z.any()).optional(),\n \"updatedBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_domain\", columns: [\"domain\"] },\n { kind: 'index', name: \"by_state\", columns: [\"state\"] }\n ],\n});\n\nexport const tenantDeploymentCredentials = defineTable({\n name: \"tenantDeploymentCredentials\",\n component: \"mc\",\n category: \"runtime\",\n shape: z.object({\n \"credentialRef\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"target\": z.enum([\"kernelDeployment\", \"appDeployment\"]),\n \"environment\": z.enum([\"dev\", \"prod\"]),\n \"encryptedDeployKey\": z.string(),\n \"encryptionVersion\": z.string(),\n \"keyFingerprint\": z.string(),\n \"keyHint\": z.string(),\n \"status\": z.enum([\"active\", \"revoked\"]),\n \"rotatedFromCredentialRef\": z.string().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_credentialRef\", columns: [\"credentialRef\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_target\", columns: [\"tenantId\", \"target\"] },\n { kind: 'index', name: \"by_tenant_target_environment\", columns: [\"tenantId\", \"target\", \"environment\"] },\n { kind: 'index', name: \"by_tenant_target_environment_status\", columns: [\"tenantId\", \"target\", \"environment\", \"status\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const controlPlaneTenantModelSlotBindings = defineTable({\n name: \"controlPlaneTenantModelSlotBindings\",\n component: \"mc\",\n category: \"runtime\",\n shape: z.object({\n \"bindingId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"providerId\": z.string(),\n \"modelSlotId\": z.string(),\n \"secretRef\": z.string(),\n \"status\": z.enum([\"active\", \"revoked\"]),\n \"passThroughOnly\": z.boolean(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_bindingId\", columns: [\"bindingId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_slot\", columns: [\"tenantId\", \"modelSlotId\"] },\n { kind: 'index', name: \"by_tenant_provider_slot\", columns: [\"tenantId\", \"providerId\", \"modelSlotId\"] },\n { kind: 'index', name: \"by_secretRef\", columns: [\"secretRef\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const controlPlaneTenantProviderSecrets = defineTable({\n name: \"controlPlaneTenantProviderSecrets\",\n component: \"mc\",\n category: \"runtime\",\n shape: z.object({\n \"secretRef\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"providerId\": z.string(),\n \"label\": z.string().optional(),\n \"encryptedSecret\": z.string(),\n \"encryptionVersion\": z.string(),\n \"secretFingerprint\": z.string(),\n \"keyHint\": z.string(),\n \"status\": z.enum([\"active\", \"revoked\"]),\n \"rotatedFromSecretRef\": z.string().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_secretRef\", columns: [\"secretRef\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_provider\", columns: [\"tenantId\", \"providerId\"] },\n { kind: 'index', name: \"by_tenant_provider_status\", columns: [\"tenantId\", \"providerId\", \"status\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const controlPlaneTenantProxyGatewayUsage = defineTable({\n name: \"controlPlaneTenantProxyGatewayUsage\",\n component: \"mc\",\n category: \"runtime\",\n shape: z.object({\n \"usageId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"providerId\": z.string(),\n \"modelSlotId\": z.string(),\n \"secretRef\": z.string(),\n \"proxyTokenId\": z.string(),\n \"sessionId\": z.string(),\n \"principalId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"modelId\": z.string().optional(),\n \"requestPath\": z.string(),\n \"status\": z.enum([\"success\", \"error\"]),\n \"responseStatus\": z.number().optional(),\n \"inputTokens\": z.number().optional(),\n \"outputTokens\": z.number().optional(),\n \"tokenCount\": z.number().optional(),\n \"latencyMs\": z.number(),\n \"estimatedCostUsd\": z.number().optional(),\n \"failureCode\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_usageId\", columns: [\"usageId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tenant_provider\", columns: [\"tenantId\", \"providerId\", \"createdAt\"] },\n { kind: 'index', name: \"by_proxyTokenId\", columns: [\"proxyTokenId\", \"createdAt\"] },\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\", \"createdAt\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/intelligence.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/intelligence.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const crossProjectConnections = defineTable({\n name: \"crossProjectConnections\",\n component: \"kernel\",\n category: \"intelligence\",\n shape: z.object({\n \"sourceProjectId\": z.string().optional(),\n \"sourceTopicId\": idOf(\"topics\").optional(),\n \"sourceNodeId\": idOf(\"epistemicNodes\"),\n \"targetProjectId\": z.string().optional(),\n \"targetTopicId\": idOf(\"topics\").optional(),\n \"targetNodeId\": idOf(\"epistemicNodes\"),\n \"semanticSimilarity\": z.number(),\n \"matchSignals\": z.object({\n \"beliefTextSimilarity\": z.number(),\n \"themeOverlap\": z.boolean(),\n \"sharedThemeNames\": z.array(z.string()).optional(),\n \"themeSimilarity\": z.number().optional(),\n \"ontologyOverlap\": z.boolean(),\n \"sharedFunctions\": z.array(z.string()).optional(),\n \"sharedValueChains\": z.array(z.string()).optional()\n }),\n \"suggestedEdgeType\": z.string(),\n \"suggestedWeight\": z.number().optional(),\n \"rationale\": z.string(),\n \"decision\": z.enum([\"pending\", \"accepted\", \"declined\"]),\n \"acceptedEdgeId\": idOf(\"epistemicEdges\").optional(),\n \"declineReason\": z.string().optional(),\n \"declineCategory\": z.enum([\"not_relevant\", \"too_generic\", \"already_known\", \"different_context\", \"wrong_relationship\", \"premature\", \"other\"]).optional(),\n \"surfacedDuring\": z.enum([\"worktree_clustering\", \"chat\", \"morning_brief\", \"manual\"]),\n \"worktreeId\": z.string().optional(),\n \"userId\": z.string(),\n \"createdAt\": z.number(),\n \"decidedAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_source_project\", columns: [\"sourceProjectId\"] },\n { kind: 'index', name: \"by_sourceTopicId\", columns: [\"sourceTopicId\"] },\n { kind: 'index', name: \"by_target_project\", columns: [\"targetProjectId\"] },\n { kind: 'index', name: \"by_targetTopicId\", columns: [\"targetTopicId\"] },\n { kind: 'index', name: \"by_source_node\", columns: [\"sourceNodeId\"] },\n { kind: 'index', name: \"by_decision\", columns: [\"decision\"] },\n { kind: 'index', name: \"by_user_decision\", columns: [\"userId\", \"decision\"] }\n ],\n});\n\nexport const graphAnalysisCache = defineTable({\n name: \"graphAnalysisCache\",\n component: \"kernel\",\n category: \"intelligence\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"healthScore\": z.number(),\n \"findings\": z.array(z.object({\n \"id\": z.string(),\n \"severity\": z.enum([\"critical\", \"warning\", \"info\"]),\n \"category\": z.enum([\"structural_risk\", \"evidence_gap\", \"reasoning_flaw\", \"staleness\", \"opportunity\", \"propagation_risk\", \"epistemology\", \"temporal\", \"semantic_gap\"]),\n \"title\": z.string(),\n \"description\": z.string(),\n \"nodeIds\": z.array(z.string()),\n \"nodeLabels\": z.array(z.string()),\n \"detector\": z.string(),\n \"importance\": z.number().optional(),\n \"totalCount\": z.number().optional()\n })),\n \"stats\": z.object({\n \"totalNodes\": z.number(),\n \"totalEdges\": z.number(),\n \"beliefs\": z.number(),\n \"questions\": z.number(),\n \"evidence\": z.number(),\n \"cycleCount\": z.number(),\n \"ungroundedCount\": z.number(),\n \"bridgeNodeCount\": z.number(),\n \"orphanCount\": z.number(),\n \"overconfidentCount\": z.number(),\n \"communityCount\": z.number(),\n \"sccCount\": z.number(),\n \"algebraicConnectivity\": z.number(),\n \"coherenceScore\": z.number(),\n \"averageResilience\": z.number(),\n \"tensionPairs\": z.number(),\n \"propagationRisks\": z.number(),\n \"temporalDecayCount\": z.number(),\n \"beliefStatus\": z.object({\n \"assumption\": z.number(),\n \"hypothesis\": z.number(),\n \"belief\": z.number(),\n \"fact\": z.number()\n }).optional(),\n \"evidenceTemporalNature\": z.object({\n \"factual\": z.number(),\n \"forecast\": z.number(),\n \"unknown\": z.number()\n }).optional()\n }),\n \"killerQueryResults\": z.object({\n \"confirmationBias\": z.array(z.any()).optional(),\n \"anchoringBias\": z.array(z.any()).optional(),\n \"sourceConcentration\": z.array(z.any()).optional(),\n \"contradictionTensions\": z.array(z.any()).optional(),\n \"reasoningDepth\": z.array(z.any()).optional(),\n \"knowledgeFrontier\": z.array(z.any()).optional(),\n \"portfolioConviction\": z.array(z.any()).optional(),\n \"staleThemes\": z.array(z.any()).optional(),\n \"missingQuestions\": z.array(z.any()).optional(),\n \"nonConsensusBeliefs\": z.array(z.any()).optional(),\n \"minimumFalsificationSet\": z.union([z.string(), z.number(), z.boolean(), z.null(), z.record(z.any()), z.array(z.any())]).optional()\n }).optional(),\n \"analyzedAt\": z.number(),\n \"isStale\": z.boolean(),\n \"changesSinceRefresh\": z.number(),\n \"lastGraphChange\": z.number().optional(),\n \"analysisVersion\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_topic\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_stale\", columns: [\"topicId\", \"isStale\"] },\n { kind: 'index', name: \"by_analyzedAt\", columns: [\"analyzedAt\"] }\n ],\n});\n\nexport const graphAnalysisResults = defineTable({\n name: \"graphAnalysisResults\",\n component: \"kernel\",\n category: \"intelligence\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"userId\": z.string(),\n \"findingId\": z.string().optional(),\n \"customQuery\": z.string().optional(),\n \"mode\": z.enum([\"explain\", \"query\"]),\n \"analysisText\": z.string(),\n \"modelId\": z.string().optional(),\n \"findingSnapshot\": z.object({\n \"title\": z.string(),\n \"description\": z.string(),\n \"severity\": z.string(),\n \"category\": z.string(),\n \"nodeIds\": z.array(z.string()),\n \"nodeLabels\": z.array(z.string())\n }).optional(),\n \"status\": z.enum([\"active\", \"archived\", \"deleted\"]),\n \"createdAt\": z.number(),\n \"archivedAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_user\", columns: [\"topicId\", \"userId\"] },\n { kind: 'index', name: \"by_topic_finding\", columns: [\"topicId\", \"findingId\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_createdAt\", columns: [\"createdAt\"] }\n ],\n});\n\nexport const graphSuggestions = defineTable({\n name: \"graphSuggestions\",\n component: \"kernel\",\n category: \"intelligence\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"userId\": z.string(),\n \"analysisResultId\": idOf(\"graphAnalysisResults\"),\n \"suggestionHash\": z.string(),\n \"suggestionType\": z.string(),\n \"title\": z.string(),\n \"rationale\": z.string(),\n \"priority\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]),\n \"targetNodeId\": z.string().optional(),\n \"secondaryNodeId\": z.string().optional(),\n \"payload\": z.union([z.string(), z.number(), z.boolean(), z.null(), z.record(z.any()), z.array(z.any())]),\n \"status\": z.enum([\"pending\", \"accepted\", \"declined\", \"failed\", \"superseded\"]),\n \"resultNodeId\": z.string().optional(),\n \"errorMessage\": z.string().optional(),\n \"createdAt\": z.number(),\n \"actedAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_analysis\", columns: [\"analysisResultId\"] },\n { kind: 'index', name: \"by_suggestion_hash\", columns: [\"topicId\", \"suggestionHash\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_user\", columns: [\"topicId\", \"userId\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_createdAt\", columns: [\"createdAt\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/spine.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/spine/epistemicEdges.ts\n * - packages/reasoning-kernel/src/adapters/schema/spine/epistemicNodes.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\nimport { EDGE_TYPE, NODE_TYPE } from '../../enums.js';\n\nexport const epistemicEdges = defineTable({\n name: \"epistemicEdges\",\n component: \"kernel\",\n category: \"spine\",\n shape: z.object({\n \"globalId\": z.string(),\n \"fromNodeId\": z.string(),\n \"toNodeId\": z.string().optional(),\n \"sourceGlobalId\": z.string().optional(),\n \"targetGlobalId\": z.string().optional(),\n \"edgeType\": EDGE_TYPE,\n \"edgeTier\": z.string().optional(),\n \"domainNamespace\": z.string().optional(),\n \"constraint\": z.string().optional(),\n \"normalization\": z.string().optional(),\n \"causal\": z.boolean().optional(),\n \"propagation\": z.string().optional(),\n \"blocking\": z.boolean().optional(),\n \"implicit\": z.boolean().optional(),\n \"conditionalA\": z.object({\n \"b\": z.number(),\n \"d\": z.number(),\n \"u\": z.number(),\n \"a\": z.number()\n }).optional(),\n \"conditionalNotA\": z.object({\n \"b\": z.number(),\n \"d\": z.number(),\n \"u\": z.number(),\n \"a\": z.number()\n }).optional(),\n \"derivation\": z.string().optional(),\n \"containment\": z.string().optional(),\n \"interrogation\": z.string().optional(),\n \"weight\": z.number().optional(),\n \"confidence\": z.number().optional(),\n \"context\": z.string().optional(),\n \"reasoningMethod\": z.enum([\"deductive\", \"inductive\", \"abductive\", \"analogical\", \"causal\", \"correlational\", \"testimonial\", \"statistical\", \"implicit\", \"pattern_match\"]).optional(),\n \"logicalRole\": z.enum([\"necessary\", \"sufficient\", \"necessary_sufficient\", \"contributory\", \"corroborative\"]).optional(),\n \"surpriseScore\": z.number().optional(),\n \"validFrom\": z.number().optional(),\n \"validUntil\": z.number().optional(),\n \"temporalClass\": z.enum([\"structural\", \"cyclical\", \"transient\", \"point_in_time\"]).optional(),\n \"analogyBasis\": z.string().optional(),\n \"disanalogies\": z.array(z.string()).optional(),\n \"analogyStrength\": z.number().optional(),\n \"defeatType\": z.enum([\"rebuts\", \"undercuts\", \"undermines\"]).optional(),\n \"predictionFulfilled\": z.boolean().optional(),\n \"predictionFulfilledAt\": z.number().optional(),\n \"predictionFulfilledBy\": z.string().optional(),\n \"derivationType\": z.string().optional(),\n \"startDate\": z.number().optional(),\n \"endDate\": z.number().optional(),\n \"keywords\": z.array(z.string()).optional(),\n \"evidence\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"ownerPrincipalId\": z.string().optional(),\n \"audienceLabel\": z.string().optional(),\n \"policyTags\": z.array(z.string()).optional(),\n \"sensitivityTier\": z.enum([\"low\", \"medium\", \"high\", \"restricted\"]).optional(),\n \"exportClass\": z.enum([\"internal_only\", \"client_safe\", \"public_safe\", \"restricted\"]).optional(),\n \"anonymizationClass\": z.enum([\"none\", \"standard\", \"strict\"]).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number().optional(),\n \"topicId\": z.string().optional(),\n \"projectId\": z.string().optional(),\n \"fromNodeType\": z.string().optional(),\n \"toNodeType\": z.string().optional(),\n \"fromLayer\": z.enum([\"L4\", \"L3\", \"L2\", \"L1\", \"ontological\", \"organizational\"]).optional(),\n \"toLayer\": z.enum([\"L4\", \"L3\", \"L2\", \"L1\", \"ontological\", \"organizational\"]).optional()\n }),\n indices: [\n { kind: 'index', name: \"by_globalId\", columns: [\"globalId\"] },\n { kind: 'index', name: \"by_from\", columns: [\"fromNodeId\"] },\n { kind: 'index', name: \"by_to\", columns: [\"toNodeId\"] },\n { kind: 'index', name: \"by_from_type\", columns: [\"fromNodeId\", \"edgeType\"] },\n { kind: 'index', name: \"by_to_type\", columns: [\"toNodeId\", \"edgeType\"] },\n { kind: 'index', name: \"by_topic\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_workspace\", columns: [\"tenantId\", \"workspaceId\"] },\n { kind: 'index', name: \"by_audienceLabel\", columns: [\"audienceLabel\"] },\n { kind: 'index', name: \"by_sensitivityTier\", columns: [\"sensitivityTier\"] },\n { kind: 'index', name: \"by_exportClass\", columns: [\"exportClass\"] },\n { kind: 'index', name: \"by_type\", columns: [\"edgeType\"] },\n { kind: 'index', name: \"by_from_to\", columns: [\"fromNodeId\", \"toNodeId\"] },\n { kind: 'index', name: \"by_fromLayer\", columns: [\"fromLayer\"] },\n { kind: 'index', name: \"by_toLayer\", columns: [\"toLayer\"] },\n { kind: 'index', name: \"by_layer_pair\", columns: [\"fromLayer\", \"toLayer\"] },\n { kind: 'index', name: \"by_source_global_id\", columns: [\"sourceGlobalId\"] },\n { kind: 'index', name: \"by_target_global_id\", columns: [\"targetGlobalId\"] },\n { kind: 'index', name: \"by_reasoning_method\", columns: [\"edgeType\", \"reasoningMethod\"] },\n { kind: 'index', name: \"by_logical_role\", columns: [\"edgeType\", \"logicalRole\"] },\n { kind: 'index', name: \"by_temporal_class\", columns: [\"temporalClass\", \"validUntil\"] },\n { kind: 'index', name: \"by_surprise\", columns: [\"edgeType\", \"surpriseScore\"] }\n ],\n});\n\nexport const epistemicNodes = defineTable({\n name: \"epistemicNodes\",\n component: \"kernel\",\n category: \"spine\",\n shape: z.object({\n \"globalId\": z.string(),\n \"nodeType\": NODE_TYPE,\n \"epistemicLayer\": z.enum([\"L4\", \"L3\", \"L2\", \"L1\", \"ontological\", \"organizational\"]).optional(),\n \"subtype\": z.string().optional(),\n \"canonicalText\": z.string(),\n \"contentHash\": z.string(),\n \"content\": z.string().optional(),\n \"contentType\": z.string().optional(),\n \"title\": z.string().optional(),\n \"tags\": z.array(z.string()).optional(),\n \"domain\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"ownerPrincipalId\": z.string().optional(),\n \"audienceLabel\": z.string().optional(),\n \"policyTags\": z.array(z.string()).optional(),\n \"sensitivityTier\": z.enum([\"low\", \"medium\", \"high\", \"restricted\"]).optional(),\n \"exportClass\": z.enum([\"internal_only\", \"client_safe\", \"public_safe\", \"restricted\"]).optional(),\n \"anonymizationClass\": z.enum([\"none\", \"standard\", \"strict\"]).optional(),\n \"beliefType\": z.string().optional(),\n \"beliefStatus\": z.enum([\"assumption\", \"hypothesis\", \"belief\", \"fact\"]).optional(),\n \"epistemicStatus\": z.enum([\"hypothesis\", \"emerging\", \"established\", \"challenged\", \"assumption\", \"deprecated\"]).optional(),\n \"reversibility\": z.enum([\"irreversible\", \"hard_to_reverse\", \"reversible\", \"trivial\"]).optional(),\n \"predictionMeta\": z.object({\n \"isPrediction\": z.boolean(),\n \"registeredAt\": z.number(),\n \"expectedBy\": z.number().optional(),\n \"outcome\": z.enum([\"pending\", \"confirmed\", \"disconfirmed\", \"partial\", \"expired\"]).optional(),\n \"outcomeRecordedAt\": z.number().optional(),\n \"outcomeEvidenceId\": z.string().optional(),\n \"confidenceAtPrediction\": z.number().optional(),\n \"actualVsPredicted\": z.string().optional()\n }).optional(),\n \"consensusView\": z.enum([\"aligned\", \"ahead_of\", \"contrarian\", \"orthogonal\", \"unknown\"]).optional(),\n \"consensusConfidence\": z.number().optional(),\n \"consensusSource\": z.string().optional(),\n \"methodology\": z.enum([\"primary_research\", \"expert_interview\", \"customer_interview\", \"field_observation\", \"proprietary_data\", \"desk_research\", \"regulatory_filing\", \"news_article\", \"academic_paper\", \"ai_synthesis\", \"ai_extraction\"]).optional(),\n \"informationAsymmetry\": z.enum([\"proprietary\", \"early\", \"common\"]).optional(),\n \"temporalNature\": z.enum([\"factual\", \"forecast\", \"unknown\"]).optional(),\n \"questionType\": z.enum([\"validation\", \"falsification\", \"assumption_probe\", \"prediction_test\", \"counterfactual\", \"discovery\", \"clarification\", \"comparison\", \"causal\", \"mechanism\", \"general\"]).optional(),\n \"questionPriority\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]).optional(),\n \"answerQuality\": z.enum([\"definitive\", \"strong\", \"moderate\", \"weak\", \"speculative\", \"unanswered\"]).optional(),\n \"themeConviction\": z.enum([\"high\", \"medium\", \"low\", \"negative\"]).optional(),\n \"decisionType\": z.enum([\"invest\", \"pass\", \"follow_on\", \"exit\", \"deep_dive\", \"monitor\", \"deprioritize\", \"thesis_adopt\", \"thesis_revise\", \"thesis_abandon\"]).optional(),\n \"decisionOutcome\": z.enum([\"pending\", \"successful\", \"unsuccessful\", \"mixed\", \"unknown\"]).optional(),\n \"externalIds\": z.object({\n \"crunchbase\": z.string().optional(),\n \"linkedin\": z.string().optional(),\n \"pitchbook\": z.string().optional(),\n \"twitter\": z.string().optional(),\n \"website\": z.string().optional()\n }).optional(),\n \"sourceType\": z.enum([\"human\", \"ai_extracted\", \"ai_generated\", \"imported\", \"system\", \"verified\", \"proprietary\"]),\n \"aiProvider\": z.string().optional(),\n \"extractedFromNodeId\": idOf(\"epistemicNodes\").optional(),\n \"extractionModel\": z.string().optional(),\n \"extractionPromptName\": z.string().optional(),\n \"extractionPromptVersion\": z.number().optional(),\n \"extractionTemperature\": z.number().optional(),\n \"extractionLangfuseTraceId\": z.string().optional(),\n \"groundingVerified\": z.boolean().optional(),\n \"groundingConfidence\": z.number().optional(),\n \"groundingMatchedText\": z.string().optional(),\n \"groundingStartOffset\": z.number().optional(),\n \"groundingEndOffset\": z.number().optional(),\n \"groundingRejectionReason\": z.string().optional(),\n \"confidence\": z.number().optional(),\n \"verificationStatus\": z.enum([\"unverified\", \"human_verified\", \"ai_verified\", \"contradicted\", \"outdated\"]).optional(),\n \"status\": z.enum([\"active\", \"superseded\", \"archived\", \"deleted\"]),\n \"supersededBy\": idOf(\"epistemicNodes\").optional(),\n \"topicId\": z.string().optional(),\n \"projectId\": z.string().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"syncStatus\": z.enum([\"synced\", \"pending_edges\", \"edge_creation_failed\"]).optional(),\n \"syncError\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_globalId\", columns: [\"globalId\"] },\n { kind: 'index', name: \"by_contentHash\", columns: [\"contentHash\"] },\n { kind: 'index', name: \"by_nodeType\", columns: [\"nodeType\"] },\n { kind: 'index', name: \"by_subtype\", columns: [\"nodeType\", \"subtype\"] },\n { kind: 'index', name: \"by_domain\", columns: [\"domain\"] },\n { kind: 'index', name: \"by_topic\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_type\", columns: [\"topicId\", \"nodeType\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_workspace\", columns: [\"tenantId\", \"workspaceId\"] },\n { kind: 'index', name: \"by_audienceLabel\", columns: [\"audienceLabel\"] },\n { kind: 'index', name: \"by_sensitivityTier\", columns: [\"sensitivityTier\"] },\n { kind: 'index', name: \"by_exportClass\", columns: [\"exportClass\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_sourceType\", columns: [\"sourceType\"] },\n { kind: 'index', name: \"by_verification\", columns: [\"verificationStatus\"] },\n { kind: 'index', name: \"by_layer\", columns: [\"epistemicLayer\"] },\n { kind: 'index', name: \"by_layer_type\", columns: [\"epistemicLayer\", \"nodeType\"] },\n { kind: 'index', name: \"by_syncStatus\", columns: [\"syncStatus\"] },\n { kind: 'index', name: \"by_belief_status\", columns: [\"nodeType\", \"beliefStatus\"] },\n { kind: 'index', name: \"by_epistemic_status\", columns: [\"nodeType\", \"epistemicStatus\"] },\n { kind: 'index', name: \"by_temporal_nature\", columns: [\"nodeType\", \"temporalNature\"] },\n { kind: 'index', name: \"by_methodology\", columns: [\"nodeType\", \"methodology\"] },\n { kind: 'index', name: \"by_reversibility\", columns: [\"nodeType\", \"reversibility\"] },\n { kind: 'index', name: \"by_questionType\", columns: [\"nodeType\", \"questionType\"] },\n { kind: 'index', name: \"by_questionPriority\", columns: [\"nodeType\", \"questionPriority\"] },\n { kind: 'search', name: \"search_canonicalText\", searchField: \"canonicalText\", filterFields: [\"nodeType\", \"topicId\", \"topicId\", \"status\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/embedding.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/embedding.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const epistemicNodeEmbeddings = defineTable({\n name: \"epistemicNodeEmbeddings\",\n component: \"kernel\",\n category: \"embedding\",\n shape: z.object({\n \"nodeId\": idOf(\"epistemicNodes\"),\n \"topicId\": z.string().optional(),\n \"nodeType\": z.enum([\"belief\", \"question\", \"evidence\", \"answer\", \"synthesis\", \"theme\", \"source\"]),\n \"embedding\": z.array(z.number()),\n \"createdBy\": z.string(),\n \"hasAnswer\": z.boolean().optional(),\n \"confidence\": z.number().optional(),\n \"importance\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_nodeId\", columns: [\"nodeId\"] },\n { kind: 'index', name: \"by_topicId_type\", columns: [\"topicId\", \"nodeType\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'vector', name: \"by_embedding\", vectorField: \"embedding\", dimensions: 1024, filterFields: [\"nodeType\", \"createdBy\"] }\n ],\n});\n","/**\n * Schema contracts for mc/identity.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const groupMemberships = defineTable({\n name: \"groupMemberships\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"groupId\": idOf(\"groups\"),\n \"principalId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"status\": z.enum([\"active\", \"invited\", \"revoked\"]),\n \"addedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_groupId\", columns: [\"groupId\"] },\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_principal_group\", columns: [\"principalId\", \"groupId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const groups = defineTable({\n name: \"groups\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"groupKey\": z.string(),\n \"name\": z.string(),\n \"groupType\": z.enum([\"internal\", \"external\", \"system\"]),\n \"description\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenantId_groupKey\", columns: [\"tenantId\", \"groupKey\"] }\n ],\n});\n\nexport const memberships = defineTable({\n name: \"memberships\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"principalRefId\": idOf(\"principals\").optional(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"role\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]),\n \"status\": z.enum([\"active\", \"invited\", \"revoked\"]),\n \"source\": z.enum([\"manual\", \"sso\", \"bootstrap\", \"api\", \"scim\"]),\n \"grantedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_principal_tenant\", columns: [\"principalId\", \"tenantId\"] },\n { kind: 'index', name: \"by_workspace_principal\", columns: [\"workspaceId\", \"principalId\"] },\n { kind: 'index', name: \"by_tenant_role\", columns: [\"tenantId\", \"role\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const principals = defineTable({\n name: \"principals\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"principalType\": z.enum([\"user\", \"group\", \"service\", \"external_viewer\"]),\n \"clerkId\": z.string().optional(),\n \"email\": z.string().optional(),\n \"displayName\": z.string().optional(),\n \"groupIds\": z.array(idOf(\"groups\")).optional(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"status\": z.enum([\"active\", \"invited\", \"suspended\", \"disabled\"]),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_clerkId\", columns: [\"clerkId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const rateLimitWindows = defineTable({\n name: \"rateLimitWindows\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"keyId\": z.string().optional(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"windowType\": z.enum([\"minute\", \"hour\"]),\n \"windowStartMs\": z.number(),\n \"windowEndMs\": z.number(),\n \"requestCount\": z.number(),\n \"limit\": z.number(),\n \"tier\": z.enum([\"free\", \"developer\", \"partner\"]),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principal_window\", columns: [\"principalId\", \"windowType\", \"windowStartMs\"] },\n { kind: 'index', name: \"by_window_type_start\", columns: [\"windowType\", \"windowStartMs\"] },\n { kind: 'index', name: \"by_window_end\", columns: [\"windowEndMs\"] },\n { kind: 'index', name: \"by_tier_window_end\", columns: [\"tier\", \"windowEndMs\"] }\n ],\n});\n\nexport const servicePrincipalKeys = defineTable({\n name: \"servicePrincipalKeys\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"keyId\": z.string(),\n \"tokenHash\": z.string(),\n \"principalId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"scopes\": z.array(z.string()),\n \"environment\": z.enum([\"sandbox\", \"production\"]),\n \"status\": z.enum([\"active\", \"rotating\", \"rotated\", \"expired\", \"revoked\"]),\n \"expiresAt\": z.number(),\n \"rotationGracePeriod\": z.number().optional(),\n \"rotatedToKeyId\": z.string().optional(),\n \"rateLimitTier\": z.enum([\"free\", \"developer\", \"partner\"]).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"revokedBy\": z.string().optional(),\n \"revokedAt\": z.number().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_keyId\", columns: [\"keyId\"] },\n { kind: 'index', name: \"by_tokenHash\", columns: [\"tokenHash\"] },\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_principal_status\", columns: [\"principalId\", \"status\"] }\n ],\n});\n\nexport const userSessions = defineTable({\n name: \"userSessions\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"sessionId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"clerkUserId\": z.string(),\n \"principalId\": z.string().optional(),\n \"principalType\": z.enum([\"human\", \"service\", \"agent\"]).optional(),\n \"workspaceId\": z.string().optional(),\n \"apiKeyId\": idOf(\"apiKeys\"),\n \"sessionType\": z.enum([\"user\", \"agent\"]),\n \"authMode\": z.enum([\"interactive_user\", \"service_principal\", \"tenant_api_key\", \"session_token\"]).optional(),\n \"role\": z.string().optional(),\n \"scopes\": z.array(z.string()).optional(),\n \"delegationChain\": z.array(z.object({\n \"principalId\": z.string(),\n \"principalType\": z.enum([\"human\", \"service\", \"agent\"]),\n \"authMode\": z.enum([\"interactive_user\", \"service_principal\", \"tenant_api_key\", \"session_token\"]).optional(),\n \"sessionId\": z.string().optional(),\n \"delegatedAt\": z.number().optional(),\n \"reason\": z.string().optional()\n })).optional(),\n \"sourceSessionId\": z.string().optional(),\n \"status\": z.enum([\"active\", \"expired\", \"revoked\"]),\n \"sessionExpiresAt\": z.number().optional(),\n \"jwtIssuedAt\": z.number().optional(),\n \"jwtExpiresAt\": z.number().optional(),\n \"lastActivityAt\": z.number(),\n \"lastValidatedAt\": z.number().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"revokeReason\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\"] },\n { kind: 'index', name: \"by_sourceSessionId\", columns: [\"sourceSessionId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_clerkUserId\", columns: [\"clerkUserId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/platform.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/platform.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const harnessReplays = defineTable({\n name: \"harnessReplays\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"replayId\": z.string(),\n \"runId\": z.string(),\n \"traceVersion\": z.string(),\n \"status\": z.enum([\"captured\", \"partial\", \"failed\"]),\n \"entrypoints\": z.array(z.string()),\n \"steps\": z.array(z.object({\n \"stepId\": z.string(),\n \"phase\": z.string(),\n \"kind\": z.string(),\n \"status\": z.enum([\"completed\", \"failed\", \"skipped\"]),\n \"startedAt\": z.number(),\n \"completedAt\": z.number().optional(),\n \"summary\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional()\n })),\n \"inputSnapshot\": z.record(z.any()).optional(),\n \"outputSnapshot\": z.record(z.any()).optional(),\n \"sandboxAudit\": z.array(z.record(z.any())).optional(),\n \"workflowReceipt\": z.record(z.any()).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_replayId\", columns: [\"replayId\"] },\n { kind: 'index', name: \"by_runId\", columns: [\"runId\"] },\n { kind: 'index', name: \"by_status_createdAt\", columns: [\"status\", \"createdAt\"] }\n ],\n});\n\nexport const harnessRuns = defineTable({\n name: \"harnessRuns\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"runId\": z.string(),\n \"replayId\": z.string().optional(),\n \"agentId\": z.string(),\n \"agentVersion\": z.string().optional(),\n \"runKind\": z.enum([\"sandbox\", \"live_runner\", \"workflow\", \"bi\", \"chat\", \"sdk\", \"mcp\", \"external\"]),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]),\n \"principalId\": z.string(),\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"authMode\": z.enum([\"interactive_user\", \"service_principal\"]),\n \"environment\": z.enum([\"sandbox\", \"production\"]),\n \"promptReleaseChannel\": z.enum([\"dev\", \"staging\", \"prod\"]),\n \"isolationMode\": z.enum([\"sandbox\", \"direct\", \"workflow\", \"observed\"]).optional(),\n \"langfuseTraceId\": z.string().optional(),\n \"chatId\": z.string().optional(),\n \"worktreeId\": z.string().optional(),\n \"topicId\": z.string().optional(),\n \"startedAt\": z.number(),\n \"completedAt\": z.number().optional(),\n \"durationMs\": z.number().optional(),\n \"status\": z.enum([\"running\", \"completed\", \"failed\", \"timeout\"]),\n \"outcome\": z.object({\n \"verdict\": z.enum([\"success\", \"partial\", \"failure\", \"timeout\", \"cancelled\"]),\n \"summary\": z.string(),\n \"errorCategory\": z.enum([\"policy_denied\", \"tool_execution\", \"prompt_resolution\", \"model_error\", \"timeout\", \"heartbeat_timeout\", \"input_validation\", \"internal\", \"external_service\"]).optional(),\n \"errorMessage\": z.string().optional()\n }),\n \"toolCalls\": z.array(z.object({\n \"toolCallId\": z.string(),\n \"toolName\": z.string(),\n \"success\": z.boolean(),\n \"durationMs\": z.number(),\n \"policyDecisionId\": z.string().optional(),\n \"gateClassification\": z.enum([\"core\", \"shimmed\"]).optional(),\n \"requiredScopes\": z.array(z.string()).optional(),\n \"graphWriteCount\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional()\n })),\n \"toolCallCount\": z.number(),\n \"graphReads\": z.array(z.object({\n \"operationId\": z.string(),\n \"surface\": z.enum([\"belief\", \"question\", \"evidence\", \"worktree\", \"workflow\", \"topic\", \"document\", \"external\"]),\n \"action\": z.string(),\n \"targetId\": z.string().optional(),\n \"summary\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional()\n })),\n \"graphReadCount\": z.number(),\n \"graphWrites\": z.array(z.object({\n \"operationId\": z.string(),\n \"surface\": z.enum([\"belief\", \"question\", \"evidence\", \"worktree\", \"workflow\", \"topic\", \"document\", \"external\"]),\n \"action\": z.string(),\n \"targetId\": z.string().optional(),\n \"summary\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional()\n })),\n \"graphWriteCount\": z.number(),\n \"workflow\": z.object({\n \"workflowId\": z.string(),\n \"workflowVersion\": z.string().optional(),\n \"triggerKind\": z.enum([\"manual\", \"schedule\", \"hook\"]),\n \"mutationTier\": z.enum([\"read_only\", \"low_risk_write\", \"high_risk_write\"]).optional(),\n \"approvalMode\": z.enum([\"none\", \"audit_only\", \"human_required\", \"auto_approve\"]).optional(),\n \"actionCount\": z.number().optional()\n }).optional(),\n \"cost\": z.object({\n \"totalInputTokens\": z.number().optional(),\n \"totalOutputTokens\": z.number().optional(),\n \"estimatedTotalCostUsd\": z.number().optional(),\n \"llmCallCount\": z.number().optional(),\n \"toolCallCount\": z.number().optional(),\n \"modelsUsed\": z.array(z.string()).optional()\n }).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_runId\", columns: [\"runId\"] },\n { kind: 'index', name: \"by_status_startedAt\", columns: [\"status\", \"startedAt\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] },\n { kind: 'index', name: \"by_workspace_status\", columns: [\"workspaceId\", \"status\"] },\n { kind: 'index', name: \"by_agent_createdAt\", columns: [\"agentId\", \"createdAt\"] },\n { kind: 'index', name: \"by_runKind_createdAt\", columns: [\"runKind\", \"createdAt\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] }\n ],\n});\n\nexport const platformAgentRunPolicyDecisions = defineTable({\n name: \"platformAgentRunPolicyDecisions\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"runId\": z.string(),\n \"decisionId\": z.string(),\n \"action\": z.string(),\n \"result\": z.enum([\"allow\", \"deny\", \"shadow_allow\"]),\n \"reasonCode\": z.string(),\n \"scopesChecked\": z.array(z.string()),\n \"scopesGranted\": z.array(z.string()),\n \"evaluatedAt\": z.number(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_decisionId\", columns: [\"decisionId\"] },\n { kind: 'index', name: \"by_run_createdAt\", columns: [\"runId\", \"createdAt\"] }\n ],\n});\n\nexport const platformAgentRunPromptResolutions = defineTable({\n name: \"platformAgentRunPromptResolutions\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"runId\": z.string(),\n \"promptResolutionId\": z.string(),\n \"sequenceIndex\": z.number(),\n \"promptName\": z.string(),\n \"promptVersion\": z.string(),\n \"releaseChannel\": z.enum([\"dev\", \"staging\", \"prod\"]),\n \"usedFallback\": z.boolean(),\n \"modelSlot\": z.string(),\n \"modelKey\": z.string(),\n \"provider\": z.string(),\n \"inputTokens\": z.number().optional(),\n \"outputTokens\": z.number().optional(),\n \"durationMs\": z.number().optional(),\n \"estimatedCostUsd\": z.number().optional(),\n \"resolvedAt\": z.number(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_promptResolutionId\", columns: [\"promptResolutionId\"] },\n { kind: 'index', name: \"by_run_createdAt\", columns: [\"runId\", \"createdAt\"] },\n { kind: 'index', name: \"by_prompt_createdAt\", columns: [\"promptName\", \"createdAt\"] }\n ],\n});\n\nexport const platformAgentRuns = defineTable({\n name: \"platformAgentRuns\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"runId\": z.string(),\n \"reportingToken\": z.string(),\n \"agentDefinitionId\": z.string(),\n \"agentVersion\": z.string(),\n \"principalId\": z.string(),\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"authMode\": z.enum([\"interactive_user\", \"service_principal\"]),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]),\n \"environment\": z.enum([\"sandbox\", \"production\"]),\n \"promptReleaseChannel\": z.enum([\"dev\", \"staging\", \"prod\"]),\n \"status\": z.enum([\"running\", \"completed\", \"failed\", \"timeout\"]),\n \"startedAt\": z.number(),\n \"finalizedAt\": z.number().optional(),\n \"durationMs\": z.number().optional(),\n \"lastHeartbeatAt\": z.number().optional(),\n \"langfuseTraceId\": z.string().optional(),\n \"chatId\": z.string().optional(),\n \"topicId\": z.string().optional(),\n \"error\": z.object({\n \"category\": z.enum([\"policy_denied\", \"tool_execution\", \"prompt_resolution\", \"model_error\", \"timeout\", \"heartbeat_timeout\", \"input_validation\", \"internal\", \"external_service\"]),\n \"message\": z.string(),\n \"code\": z.string().optional(),\n \"stack\": z.string().optional()\n }).optional(),\n \"costMetrics\": z.record(z.any()).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_runId\", columns: [\"runId\"] },\n { kind: 'index', name: \"by_status_lastHeartbeatAt\", columns: [\"status\", \"lastHeartbeatAt\"] },\n { kind: 'index', name: \"by_status_startedAt\", columns: [\"status\", \"startedAt\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] },\n { kind: 'index', name: \"by_workspace_status\", columns: [\"workspaceId\", \"status\"] },\n { kind: 'index', name: \"by_principal_createdAt\", columns: [\"principalId\", \"createdAt\"] },\n { kind: 'index', name: \"by_agentDefinition_createdAt\", columns: [\"agentDefinitionId\", \"createdAt\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] }\n ],\n});\n\nexport const platformAgentRunToolCalls = defineTable({\n name: \"platformAgentRunToolCalls\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"runId\": z.string(),\n \"toolCallId\": z.string(),\n \"sequenceIndex\": z.number(),\n \"toolName\": z.string(),\n \"toolVersion\": z.string().optional(),\n \"policyDecisionId\": z.string(),\n \"requiredScopes\": z.array(z.string()),\n \"policyResult\": z.enum([\"allowed\", \"denied\", \"shadow_allowed\"]),\n \"policyReasonCode\": z.string(),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]),\n \"inputHash\": z.string(),\n \"outputHash\": z.string(),\n \"durationMs\": z.number().optional(),\n \"success\": z.boolean(),\n \"error\": z.string().optional(),\n \"startedAt\": z.number(),\n \"completedAt\": z.number(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_toolCallId\", columns: [\"toolCallId\"] },\n { kind: 'index', name: \"by_run_createdAt\", columns: [\"runId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tool_createdAt\", columns: [\"toolName\", \"createdAt\"] }\n ],\n});\n\nexport const platformHarnessShadowAudit = defineTable({\n name: \"platformHarnessShadowAudit\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"shadowAuditId\": z.string(),\n \"runId\": z.string(),\n \"toolCallId\": z.string(),\n \"policyDecisionId\": z.string(),\n \"toolName\": z.string(),\n \"gateClassification\": z.enum([\"core\", \"shimmed\"]),\n \"requiredScopes\": z.array(z.string()),\n \"grantedScopes\": z.array(z.string()),\n \"shadowResult\": z.literal(\"shadow_allow\"),\n \"wouldHaveDenied\": z.boolean(),\n \"reason\": z.string(),\n \"retentionExpiresAt\": z.number(),\n \"createdAt\": z.number(),\n \"metadata\": z.record(z.any()).optional()\n }),\n indices: [\n { kind: 'index', name: \"by_shadowAuditId\", columns: [\"shadowAuditId\"] },\n { kind: 'index', name: \"by_run_createdAt\", columns: [\"runId\", \"createdAt\"] },\n { kind: 'index', name: \"by_policyDecisionId\", columns: [\"policyDecisionId\"] },\n { kind: 'index', name: \"by_retentionExpiresAt\", columns: [\"retentionExpiresAt\"] }\n ],\n});\n\nexport const publicationRules = defineTable({\n name: \"publicationRules\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"packKey\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"conditionType\": z.enum([\"confidence_threshold\", \"node_type_match\", \"epistemic_layer_match\", \"tag_match\", \"composite\"]),\n \"conditions\": z.any(),\n \"enabled\": z.boolean(),\n \"priority\": z.number().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenantId_enabled\", columns: [\"tenantId\", \"enabled\"] },\n { kind: 'index', name: \"by_tenantId_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenantId_workspaceId\", columns: [\"tenantId\", \"workspaceId\"] }\n ],\n});\n\nexport const researchJobs = defineTable({\n name: \"researchJobs\",\n component: \"kernel\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"jobId\": z.string(),\n \"type\": z.enum([\"search\", \"deep_research\", \"scrape\"]),\n \"query\": z.string(),\n \"topicId\": z.string().optional(),\n \"depth\": z.string().optional(),\n \"integrationKey\": z.string(),\n \"status\": z.enum([\"pending\", \"running\", \"completed\", \"failed\", \"cancelled\"]),\n \"results\": z.record(z.any()).optional(),\n \"resultCount\": z.number().optional(),\n \"error\": z.string().optional(),\n \"langfuseTraceId\": z.string().optional(),\n \"autoCommitEvidence\": z.boolean(),\n \"committedEvidenceIds\": z.array(z.string()).optional(),\n \"requestedBy\": z.string(),\n \"createdAt\": z.number(),\n \"startedAt\": z.number().optional(),\n \"completedAt\": z.number().optional(),\n \"durationMs\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_jobId\", columns: [\"jobId\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] },\n { kind: 'index', name: \"by_topic\", columns: [\"topicId\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/idempotency.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/idempotency.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const idempotencyTokens = defineTable({\n name: \"idempotencyTokens\",\n component: \"kernel\",\n category: \"idempotency\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"fnName\": z.string(),\n \"key\": z.string(),\n \"resultJson\": z.string(),\n \"recordedAt\": z.number(),\n \"expiresAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant_fn_key\", columns: [\"tenantId\", \"fnName\", \"key\"] },\n { kind: 'index', name: \"by_expiry\", columns: [\"expiresAt\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/lens.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/lens.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const lenses = defineTable({\n name: \"lenses\",\n component: \"kernel\",\n category: \"lens\",\n shape: z.object({\n \"globalId\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"workspaceId\": z.string(),\n \"topicId\": z.string().optional(),\n \"perspectiveType\": z.string(),\n \"promptTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"promptRef\": z.string(),\n \"phase\": z.string().optional(),\n \"role\": z.string().optional(),\n \"version\": z.string().optional(),\n \"required\": z.boolean().optional(),\n \"metadata\": z.any().optional()\n })),\n \"workflowTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"steps\": z.array(z.object({\n \"key\": z.string(),\n \"title\": z.string(),\n \"description\": z.string().optional(),\n \"promptTemplateKey\": z.string().optional(),\n \"taskTemplateKeys\": z.array(z.string()).optional(),\n \"metadata\": z.any().optional()\n })),\n \"metadata\": z.any().optional()\n })),\n \"taskTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"title\": z.string(),\n \"description\": z.string().optional(),\n \"priority\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]).optional(),\n \"phase\": z.string().optional(),\n \"metadata\": z.any().optional()\n })),\n \"questionTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"text\": z.string(),\n \"priority\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]).optional(),\n \"linkedBeliefKey\": z.string().optional(),\n \"metadata\": z.any().optional()\n })).optional(),\n \"filterCriteria\": z.object({\n \"version\": z.literal(1),\n \"kind\": z.literal(\"taxonomy\"),\n \"entityTypeFilters\": z.array(z.object({\n \"entityTypeValue\": z.string(),\n \"subtypeValues\": z.array(z.string()).optional()\n })),\n \"ontologyScope\": z.object({\n \"ontologyKey\": z.string().optional()\n }).optional()\n }).optional(),\n \"metadata\": z.any().optional(),\n \"status\": z.enum([\"draft\", \"active\", \"archived\"]),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_workspace\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_workspace_status\", columns: [\"workspaceId\", \"status\"] },\n { kind: 'index', name: \"by_workspace_perspective\", columns: [\"workspaceId\", \"perspectiveType\"] },\n { kind: 'index', name: \"by_topic\", columns: [\"topicId\"] }\n ],\n});\n\nexport const lensTopicBindings = defineTable({\n name: \"lensTopicBindings\",\n component: \"kernel\",\n category: \"lens\",\n shape: z.object({\n \"lensId\": idOf(\"lenses\"),\n \"topicId\": z.string(),\n \"workspaceId\": z.string(),\n \"status\": z.enum([\"active\", \"removed\"]),\n \"metadata\": z.any().optional(),\n \"appliedBy\": z.string(),\n \"appliedAt\": z.number(),\n \"removedBy\": z.string().optional(),\n \"removedAt\": z.number().optional(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_lens\", columns: [\"lensId\"] },\n { kind: 'index', name: \"by_lens_status\", columns: [\"lensId\", \"status\"] },\n { kind: 'index', name: \"by_topic\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_topic_lens\", columns: [\"topicId\", \"lensId\"] }\n ],\n});\n","/**\n * Schema contracts for identity/platform.\n *\n * Mirrored from:\n * - packages/identity/src/component/schema/domains/platform.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const mcpWritePolicy = defineTable({\n name: \"mcpWritePolicy\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"role\": z.string(),\n \"toolCategory\": z.string(),\n \"permission\": z.enum([\"allow\", \"deny\", \"review_required\"]),\n \"maxWritesPerSession\": z.number().optional(),\n \"enabled\": z.boolean(),\n \"rationale\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"createdBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_role\", columns: [\"role\"] },\n { kind: 'index', name: \"by_topicId_role\", columns: [\"topicId\", \"role\"] },\n { kind: 'index', name: \"by_enabled\", columns: [\"enabled\"] }\n ],\n});\n\nexport const platformAudienceGrants = defineTable({\n name: \"platformAudienceGrants\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"principalId\": z.string().optional(),\n \"groupId\": z.string().optional(),\n \"audienceKey\": z.string(),\n \"audienceClass\": z.enum([\"internal\", \"restricted_external\", \"public\"]),\n \"status\": z.enum([\"active\", \"revoked\", \"expired\"]),\n \"grantedBy\": z.string().optional(),\n \"expiresAt\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant_principal\", columns: [\"tenantId\", \"principalId\"] },\n { kind: 'index', name: \"by_tenant_group\", columns: [\"tenantId\", \"groupId\"] },\n { kind: 'index', name: \"by_tenant_audienceKey\", columns: [\"tenantId\", \"audienceKey\"] },\n { kind: 'index', name: \"by_principal_status\", columns: [\"principalId\", \"status\"] },\n { kind: 'index', name: \"by_group_status\", columns: [\"groupId\", \"status\"] }\n ],\n});\n\nexport const platformAudiences = defineTable({\n name: \"platformAudiences\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"audienceKey\": z.string(),\n \"audienceLabel\": z.string(),\n \"audienceClass\": z.enum([\"internal\", \"restricted_external\", \"public\"]),\n \"status\": z.enum([\"active\", \"disabled\", \"archived\"]),\n \"description\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_audienceKey\", columns: [\"tenantId\", \"audienceKey\"] },\n { kind: 'index', name: \"by_tenant_workspace_audienceKey\", columns: [\"tenantId\", \"workspaceId\", \"audienceKey\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n\nexport const platformPolicyDecisionLogs = defineTable({\n name: \"platformPolicyDecisionLogs\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"principalId\": z.string(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"topicId\": z.string().optional(),\n \"resourceType\": z.string(),\n \"resourceId\": z.string(),\n \"action\": z.enum([\"read\", \"summarize\", \"export\", \"mutate\", \"admin\", \"comment\", \"escalate\", \"resolve\", \"vote\"]),\n \"decision\": z.enum([\"allow\", \"deny\"]),\n \"reasonCode\": z.string(),\n \"policyVersion\": z.string(),\n \"policyBundleId\": z.string().optional(),\n \"audienceKey\": z.string().optional(),\n \"audienceClass\": z.enum([\"internal\", \"restricted_external\", \"public\"]).optional(),\n \"audienceMode\": z.string().optional(),\n \"traceId\": z.string().optional(),\n \"packKey\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principal_createdAt\", columns: [\"principalId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tenant_createdAt\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_pack_createdAt\", columns: [\"packKey\", \"createdAt\"] },\n { kind: 'index', name: \"by_audienceKey_createdAt\", columns: [\"audienceKey\", \"createdAt\"] },\n { kind: 'index', name: \"by_audienceClass_createdAt\", columns: [\"audienceClass\", \"createdAt\"] },\n { kind: 'index', name: \"by_decision_createdAt\", columns: [\"decision\", \"createdAt\"] },\n { kind: 'index', name: \"by_traceId\", columns: [\"traceId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_createdAt\", columns: [\"topicId\", \"createdAt\"] }\n ],\n});\n\nexport const tenantApiKeys = defineTable({\n name: \"tenantApiKeys\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"label\": z.string().optional(),\n \"keyPrefix\": z.string(),\n \"hashedKey\": z.string(),\n \"scopes\": z.array(z.string()),\n \"status\": z.enum([\"active\", \"revoked\", \"expired\"]),\n \"expiresAt\": z.number().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_hashedKey\", columns: [\"hashedKey\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n\nexport const tenantConfig = defineTable({\n name: \"tenantConfig\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"authPolicyMode\": z.enum([\"open\", \"invite_only\", \"sso_required\"]),\n \"defaultSessionTTL\": z.number(),\n \"defaultTopicVisibility\": z.enum([\"private\", \"tenant\", \"public\"]),\n \"featureFlags\": z.record(z.boolean()),\n \"maxWorkspaceCount\": z.number(),\n \"defaultModelSlotOverrides\": z.record(z.string()),\n \"updatedAt\": z.number(),\n \"updatedBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] }\n ],\n});\n\nexport const tenantIntegrations = defineTable({\n name: \"tenantIntegrations\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"integrationKey\": z.string(),\n \"displayName\": z.string(),\n \"description\": z.string().optional(),\n \"category\": z.enum([\"search\", \"scraper\", \"llm\", \"analysis\", \"custom\"]),\n \"capabilities\": z.array(z.enum([\"search\", \"deep_research\", \"scrape\", \"summarize\", \"generate\"])),\n \"config\": z.object({\n \"apiBaseUrl\": z.string(),\n \"authType\": z.enum([\"api_key\", \"bearer\", \"basic\", \"none\"]),\n \"authHeaderName\": z.string().optional(),\n \"credentialSecretName\": z.string().optional(),\n \"defaultParams\": z.record(z.any()).optional(),\n \"timeout\": z.number().optional(),\n \"customHeaders\": z.record(z.any()).optional()\n }),\n \"endpoints\": z.object({\n \"search\": z.object({\n \"path\": z.string(),\n \"method\": z.string().optional(),\n \"queryParamName\": z.string().optional(),\n \"resultPath\": z.string().optional()\n }).optional(),\n \"deepResearch\": z.object({\n \"path\": z.string(),\n \"method\": z.string().optional(),\n \"resultPath\": z.string().optional(),\n \"async\": z.boolean().optional(),\n \"pollPath\": z.string().optional(),\n \"pollIntervalMs\": z.number().optional()\n }).optional(),\n \"scrape\": z.object({\n \"path\": z.string(),\n \"method\": z.string().optional(),\n \"resultPath\": z.string().optional()\n }).optional()\n }).optional(),\n \"status\": z.enum([\"active\", \"disabled\", \"error\"]),\n \"lastUsedAt\": z.number().optional(),\n \"lastError\": z.string().optional(),\n \"usageCount\": z.number().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"createdBy\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_key\", columns: [\"tenantId\", \"integrationKey\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n\nexport const tenantModelSlotBindings = defineTable({\n name: \"tenantModelSlotBindings\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"bindingId\": z.string(),\n \"tenantId\": z.string(),\n \"providerId\": z.string(),\n \"modelSlotId\": z.string(),\n \"secretRef\": z.string(),\n \"status\": z.enum([\"active\", \"revoked\"]),\n \"passThroughOnly\": z.boolean(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_bindingId\", columns: [\"bindingId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_slot\", columns: [\"tenantId\", \"modelSlotId\"] },\n { kind: 'index', name: \"by_tenant_provider_slot\", columns: [\"tenantId\", \"providerId\", \"modelSlotId\"] },\n { kind: 'index', name: \"by_secretRef\", columns: [\"secretRef\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const tenantPolicies = defineTable({\n name: \"tenantPolicies\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"roleName\": z.string(),\n \"description\": z.string().optional(),\n \"permissions\": z.array(z.object({\n \"resource\": z.string(),\n \"actions\": z.array(z.string())\n })),\n \"groupBindings\": z.array(z.string()),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"createdBy\": z.string(),\n \"updatedBy\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_roleName\", columns: [\"tenantId\", \"roleName\"] }\n ],\n});\n\nexport const tenantProviderSecrets = defineTable({\n name: \"tenantProviderSecrets\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"secretRef\": z.string(),\n \"tenantId\": z.string(),\n \"providerId\": z.string(),\n \"label\": z.string().optional(),\n \"encryptedSecret\": z.string(),\n \"encryptionVersion\": z.string(),\n \"secretFingerprint\": z.string(),\n \"keyHint\": z.string(),\n \"status\": z.enum([\"active\", \"rotated\", \"revoked\"]),\n \"rotatedFromSecretRef\": z.string().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_secretRef\", columns: [\"secretRef\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_provider\", columns: [\"tenantId\", \"providerId\"] },\n { kind: 'index', name: \"by_tenant_provider_status\", columns: [\"tenantId\", \"providerId\", \"status\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const tenantProxyGatewayUsage = defineTable({\n name: \"tenantProxyGatewayUsage\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"usageId\": z.string(),\n \"tenantId\": z.string(),\n \"providerId\": z.string(),\n \"modelSlotId\": z.string(),\n \"secretRef\": z.string(),\n \"proxyTokenId\": z.string(),\n \"sessionId\": z.string(),\n \"principalId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"modelId\": z.string().optional(),\n \"requestPath\": z.string(),\n \"status\": z.enum([\"success\", \"error\"]),\n \"responseStatus\": z.number().optional(),\n \"inputTokens\": z.number().optional(),\n \"outputTokens\": z.number().optional(),\n \"tokenCount\": z.number().optional(),\n \"latencyMs\": z.number(),\n \"estimatedCostUsd\": z.number().optional(),\n \"failureCode\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_usageId\", columns: [\"usageId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tenant_provider\", columns: [\"tenantId\", \"providerId\", \"createdAt\"] },\n { kind: 'index', name: \"by_proxyTokenId\", columns: [\"proxyTokenId\", \"createdAt\"] }\n ],\n});\n\nexport const tenantProxyTokenMints = defineTable({\n name: \"tenantProxyTokenMints\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"proxyTokenId\": z.string(),\n \"tenantId\": z.string(),\n \"providerId\": z.string(),\n \"modelSlotId\": z.string(),\n \"sessionId\": z.string(),\n \"principalId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"secretRef\": z.string(),\n \"expiresAt\": z.number(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_proxyTokenId\", columns: [\"proxyTokenId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\", \"createdAt\"] }\n ],\n});\n\nexport const tenantSandboxAuditEvents = defineTable({\n name: \"tenantSandboxAuditEvents\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"eventId\": z.string(),\n \"tenantId\": z.string(),\n \"actorClerkId\": z.string(),\n \"action\": z.enum([\"sandbox_created\", \"sandbox_secret_injected\", \"sandbox_execution_started\", \"sandbox_execution_completed\", \"sandbox_limit_violated\"]),\n \"executionId\": z.string(),\n \"sessionId\": z.string().optional(),\n \"principalId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"providerId\": z.string().optional(),\n \"secretRef\": z.string().optional(),\n \"toolCallId\": z.string().optional(),\n \"correlationId\": z.string().optional(),\n \"sandboxDir\": z.string().optional(),\n \"timeoutMs\": z.number().optional(),\n \"memoryLimitMb\": z.number().optional(),\n \"allowedOrigins\": z.array(z.string()).optional(),\n \"limitName\": z.string().optional(),\n \"outcome\": z.string().optional(),\n \"responseStatus\": z.number().optional(),\n \"durationMs\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_eventId\", columns: [\"eventId\"] },\n { kind: 'index', name: \"by_executionId\", columns: [\"executionId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\", \"createdAt\"] }\n ],\n});\n\nexport const tenantSecrets = defineTable({\n name: \"tenantSecrets\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"encryptedValue\": z.string(),\n \"lastRotated\": z.number(),\n \"createdBy\": z.string(),\n \"updatedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_name\", columns: [\"tenantId\", \"name\"] }\n ],\n});\n\nexport const toolAcls = defineTable({\n name: \"toolAcls\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"role\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]),\n \"toolName\": z.string(),\n \"createdBy\": z.string().optional(),\n \"createdAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_role\", columns: [\"role\"] },\n { kind: 'index', name: \"by_toolName\", columns: [\"toolName\"] }\n ],\n});\n\nexport const toolRegistry = defineTable({\n name: \"toolRegistry\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"toolName\": z.string(),\n \"description\": z.string().optional(),\n \"version\": z.string().optional(),\n \"status\": z.enum([\"active\", \"deprecated\", \"disabled\"]),\n \"requiredRole\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]).optional(),\n \"requiredAction\": z.enum([\"read\", \"mutate\", \"admin\", \"summarize\", \"export\", \"create\", \"delete\", \"grant\", \"revoke\"]).optional(),\n \"surfaces\": z.array(z.enum([\"mcp\", \"chat\", \"voice\", \"sprint\", \"api\", \"sdk\", \"cli\"])).optional(),\n \"approvalGateId\": z.string().optional(),\n \"category\": z.enum([\"read\", \"write\", \"admin\", \"system\"]).optional(),\n \"parameterSchema\": z.record(z.any()).optional(),\n \"handlerRef\": z.string().optional(),\n \"returnSchema\": z.record(z.any()).optional(),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]).optional(),\n \"safetyMetadata\": z.object({\n \"readOnly\": z.boolean(),\n \"idempotent\": z.boolean(),\n \"sideEffectLevel\": z.enum([\"none\", \"low\", \"high\"])\n }).optional(),\n \"packKey\": z.string().optional(),\n \"packVersion\": z.string().optional(),\n \"isCore\": z.boolean(),\n \"mcVersion\": z.string().optional(),\n \"registeredBy\": z.string().optional(),\n \"registeredAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_toolName\", columns: [\"toolName\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_isCore\", columns: [\"isCore\"] },\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] }\n ],\n});\n","/**\n * Schema contracts for mc/methodology.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const methodologyPacks = defineTable({\n name: \"methodologyPacks\",\n component: \"mc\",\n category: \"methodology\",\n shape: z.object({\n \"packId\": z.string(),\n \"name\": z.string(),\n \"description\": z.string(),\n \"version\": z.string(),\n \"enforcementLevel\": z.enum([\"strict\", \"guided\", \"advisory\"]),\n \"phases\": z.array(z.object({\n \"name\": z.string(),\n \"title\": z.string(),\n \"description\": z.string(),\n \"requiredTools\": z.array(z.string()),\n \"gate\": z.string().optional(),\n \"instructions\": z.string()\n })),\n \"principles\": z.array(z.string()),\n \"status\": z.enum([\"active\", \"draft\", \"archived\"]),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_packId\", columns: [\"packId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const tenantMethodologyAssignments = defineTable({\n name: \"tenantMethodologyAssignments\",\n component: \"mc\",\n category: \"methodology\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"methodologyPackId\": idOf(\"methodologyPacks\"),\n \"isDefault\": z.boolean(),\n \"assignedAt\": z.number(),\n \"assignedBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_methodologyPackId\", columns: [\"methodologyPackId\"] }\n ],\n});\n","/**\n * Schema contracts for identity/model.\n *\n * Mirrored from:\n * - packages/identity/src/component/schema/domains/model.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const modelCallLogs = defineTable({\n name: \"modelCallLogs\",\n component: \"identity\",\n category: \"model\",\n shape: z.object({\n \"slot\": z.string(),\n \"modelKey\": z.string(),\n \"provider\": z.string(),\n \"inputTokens\": z.number().optional(),\n \"outputTokens\": z.number().optional(),\n \"durationMs\": z.number().optional(),\n \"cost\": z.number().optional(),\n \"success\": z.boolean(),\n \"error\": z.string().optional(),\n \"userId\": z.string().optional(),\n \"sessionId\": z.string().optional(),\n \"traceId\": z.string().optional(),\n \"timestamp\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_slot\", columns: [\"slot\"] },\n { kind: 'index', name: \"by_model\", columns: [\"modelKey\"] },\n { kind: 'index', name: \"by_timestamp\", columns: [\"timestamp\"] },\n { kind: 'index', name: \"by_user\", columns: [\"userId\"] }\n ],\n});\n\nexport const modelFunctionSlots = defineTable({\n name: \"modelFunctionSlots\",\n component: \"identity\",\n category: \"model\",\n shape: z.object({\n \"slot\": z.string(),\n \"category\": z.string(),\n \"description\": z.string(),\n \"modelKey\": z.string(),\n \"promptName\": z.string().optional(),\n \"temperature\": z.number().optional(),\n \"maxTokens\": z.number().optional(),\n \"requiredCapabilities\": z.array(z.string()).optional(),\n \"enabled\": z.boolean(),\n \"isDefault\": z.boolean(),\n \"notes\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_slot\", columns: [\"slot\"] },\n { kind: 'index', name: \"by_category\", columns: [\"category\"] },\n { kind: 'index', name: \"by_enabled\", columns: [\"enabled\"] }\n ],\n});\n\nexport const modelRegistry = defineTable({\n name: \"modelRegistry\",\n component: \"identity\",\n category: \"model\",\n shape: z.object({\n \"key\": z.string(),\n \"name\": z.string(),\n \"modelId\": z.string(),\n \"provider\": z.string(),\n \"capabilities\": z.array(z.string()),\n \"contextWindow\": z.number(),\n \"maxOutputTokens\": z.number(),\n \"defaultTemperature\": z.number(),\n \"inputCostPer1M\": z.number(),\n \"outputCostPer1M\": z.number(),\n \"recommended\": z.boolean(),\n \"enabled\": z.boolean(),\n \"notes\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_key\", columns: [\"key\"] },\n { kind: 'index', name: \"by_provider\", columns: [\"provider\"] },\n { kind: 'index', name: \"by_enabled\", columns: [\"enabled\"] }\n ],\n});\n\nexport const modelSlotConfigs = defineTable({\n name: \"modelSlotConfigs\",\n component: \"identity\",\n category: \"model\",\n shape: z.object({\n \"slot\": z.string(),\n \"modelKey\": z.string(),\n \"temperature\": z.number().optional(),\n \"maxTokens\": z.number().optional(),\n \"enabled\": z.boolean(),\n \"notes\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_slot\", columns: [\"slot\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/ontology.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/ontology.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const ontologyDefinitions = defineTable({\n name: \"ontologyDefinitions\",\n component: \"kernel\",\n category: \"ontology\",\n shape: z.object({\n \"ontologyKey\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"tier\": z.enum([\"platform\", \"pack\", \"tenant\"]),\n \"parentOntologyId\": idOf(\"ontologyDefinitions\").optional(),\n \"status\": z.enum([\"draft\", \"active\", \"deprecated\", \"archived\"]),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_ontologyKey\", columns: [\"ontologyKey\"] },\n { kind: 'index', name: \"by_tenant_ontologyKey\", columns: [\"tenantId\", \"ontologyKey\"] },\n { kind: 'index', name: \"by_tier\", columns: [\"tier\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] },\n { kind: 'index', name: \"by_parentOntologyId\", columns: [\"parentOntologyId\"] }\n ],\n});\n\nexport const ontologyVersions = defineTable({\n name: \"ontologyVersions\",\n component: \"kernel\",\n category: \"ontology\",\n shape: z.object({\n \"ontologyId\": idOf(\"ontologyDefinitions\"),\n \"ontologyKey\": z.string(),\n \"version\": z.string(),\n \"status\": z.enum([\"draft\", \"published\", \"deprecated\"]),\n \"entityTypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional(),\n \"schema\": z.any().optional(),\n \"subtypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional()\n })).optional()\n })),\n \"edgeTypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional(),\n \"sourceTypes\": z.array(z.string()).optional(),\n \"targetTypes\": z.array(z.string()).optional(),\n \"constraintSeverity\": z.enum([\"warn\", \"info\"]).optional()\n })),\n \"releaseNotes\": z.string().optional(),\n \"publishedBy\": z.string().optional(),\n \"publishedAt\": z.number().optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_ontologyId\", columns: [\"ontologyId\"] },\n { kind: 'index', name: \"by_ontologyKey\", columns: [\"ontologyKey\"] },\n { kind: 'index', name: \"by_ontologyKey_version\", columns: [\"ontologyKey\", \"version\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_publishedAt\", columns: [\"publishedAt\"] }\n ],\n});\n","/**\n * Schema contracts for mc/pack.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const packAssignments = defineTable({\n name: \"packAssignments\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"groupId\": idOf(\"groups\"),\n \"packKey\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"status\": z.enum([\"active\", \"revoked\"]),\n \"assignedBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_groupId\", columns: [\"groupId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_group_packKey\", columns: [\"groupId\", \"packKey\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const packDefinitions = defineTable({\n name: \"packDefinitions\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"packKey\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"category\": z.enum([\"developer\", \"strategy\", \"data\", \"methodology\", \"ontology\", \"custom\"]),\n \"lifecycle\": z.enum([\"active\", \"beta\", \"experimental\"]),\n \"tierRequirement\": z.enum([\"free\", \"developer\", \"team\", \"enterprise\"]),\n \"installScope\": z.enum([\"tenant\", \"workspace\"]).optional(),\n \"toolNames\": z.array(z.string()),\n \"promptNames\": z.array(z.string()).optional(),\n \"agentKeys\": z.array(z.string()).optional(),\n \"methodologyPackIds\": z.array(z.string()).optional(),\n \"ontologyConfig\": z.object({\n \"ontologyKey\": z.string(),\n \"ontologyVersion\": z.string().optional(),\n \"topicBindings\": z.array(z.object({\n \"topicType\": z.string(),\n \"autoBindNewTopics\": z.boolean()\n })).optional()\n }).optional(),\n \"lensConfig\": z.array(z.object({\n \"lensKey\": z.string(),\n \"perspectiveType\": z.string()\n })).optional(),\n \"configTemplates\": z.record(z.any()).optional(),\n \"topicIds\": z.array(z.string()).optional(),\n \"status\": z.enum([\"draft\", \"active\", \"archived\"]),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] },\n { kind: 'index', name: \"by_category\", columns: [\"category\"] },\n { kind: 'index', name: \"by_lifecycle\", columns: [\"lifecycle\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_tierRequirement\", columns: [\"tierRequirement\"] }\n ],\n});\n\nexport const packEntitlements = defineTable({\n name: \"packEntitlements\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"packKey\": z.string(),\n \"status\": z.enum([\"active\", \"disabled\", \"revoked\"]),\n \"allowedLifecycles\": z.array(z.enum([\"active\", \"beta\", \"experimental\"])).optional(),\n \"minVersion\": z.string().optional(),\n \"maxVersion\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"grantedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenant_workspace_packKey\", columns: [\"tenantId\", \"workspaceId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] },\n { kind: 'index', name: \"by_workspace_status\", columns: [\"workspaceId\", \"status\"] }\n ],\n});\n\nexport const packGroupAssignments = defineTable({\n name: \"packGroupAssignments\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"groupId\": idOf(\"groups\"),\n \"tenantId\": idOf(\"tenants\"),\n \"packKey\": z.string(),\n \"packVersion\": z.string().optional(),\n \"status\": z.enum([\"active\", \"disabled\"]),\n \"assignedBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_groupId\", columns: [\"groupId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_group_packKey\", columns: [\"groupId\", \"packKey\"] }\n ],\n});\n\nexport const packInstallations = defineTable({\n name: \"packInstallations\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"installScope\": z.enum([\"tenant\", \"workspace\"]).optional(),\n \"packKey\": z.string(),\n \"packVersion\": z.string(),\n \"candidateVersion\": z.string().optional(),\n \"versionWindowState\": z.enum([\"none\", \"prepared\", \"canary\", \"committed\", \"rolled_back\"]).optional(),\n \"upgradeStartedAt\": z.number().optional(),\n \"upgradeCompletedAt\": z.number().optional(),\n \"runtimeState\": z.enum([\"registered\", \"validated\", \"installed\", \"enabled\", \"degraded\", \"disabled\", \"removed\"]),\n \"healthStatus\": z.enum([\"unknown\", \"healthy\", \"degraded\", \"failing\"]),\n \"installStatus\": z.enum([\"installing\", \"installed\", \"partial_failure\", \"uninstalling\"]).optional(),\n \"componentStatus\": z.record(z.any()).optional(),\n \"lastError\": z.string().optional(),\n \"installedBy\": z.string().optional(),\n \"enabledBy\": z.string().optional(),\n \"disabledBy\": z.string().optional(),\n \"lastHealthCheckAt\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] },\n { kind: 'index', name: \"by_packKey_version\", columns: [\"packKey\", \"packVersion\"] },\n { kind: 'index', name: \"by_tenant_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenant_workspace_packKey\", columns: [\"tenantId\", \"workspaceId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenant_runtimeState\", columns: [\"tenantId\", \"runtimeState\"] },\n { kind: 'index', name: \"by_workspace_runtimeState\", columns: [\"workspaceId\", \"runtimeState\"] },\n { kind: 'index', name: \"by_tenant_healthStatus\", columns: [\"tenantId\", \"healthStatus\"] },\n { kind: 'index', name: \"by_workspace_healthStatus\", columns: [\"workspaceId\", \"healthStatus\"] }\n ],\n});\n\nexport const packVersions = defineTable({\n name: \"packVersions\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"packKey\": z.string(),\n \"version\": z.string(),\n \"status\": z.enum([\"draft\", \"published\", \"deprecated\"]),\n \"toolManifest\": z.array(z.object({\n \"toolName\": z.string(),\n \"toolVersion\": z.string(),\n \"description\": z.string().optional(),\n \"category\": z.enum([\"read\", \"write\", \"admin\", \"system\"]).optional(),\n \"requiredRole\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]).optional(),\n \"requiredAction\": z.enum([\"read\", \"mutate\", \"admin\", \"summarize\", \"export\", \"create\", \"delete\", \"grant\", \"revoke\"]).optional(),\n \"surfaces\": z.array(z.enum([\"mcp\", \"chat\", \"voice\", \"sprint\", \"api\", \"sdk\", \"cli\"])).optional(),\n \"handlerRef\": z.string().optional(),\n \"parameterSchema\": z.record(z.any()).optional(),\n \"returnSchema\": z.record(z.any()).optional(),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]).optional(),\n \"safetyMetadata\": z.object({\n \"readOnly\": z.boolean(),\n \"idempotent\": z.boolean(),\n \"sideEffectLevel\": z.enum([\"none\", \"low\", \"high\"])\n }).optional()\n })),\n \"promptManifest\": z.array(z.string()).optional(),\n \"agentManifest\": z.array(z.string()).optional(),\n \"methodologyManifest\": z.array(z.string()).optional(),\n \"ontologySnapshot\": z.object({\n \"ontologyKey\": z.string(),\n \"version\": z.string(),\n \"entityTypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional(),\n \"schema\": z.any().optional(),\n \"subtypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional()\n })).optional()\n })),\n \"edgeTypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional(),\n \"sourceTypes\": z.array(z.string()).optional(),\n \"targetTypes\": z.array(z.string()).optional(),\n \"constraintSeverity\": z.enum([\"warn\", \"info\"]).optional()\n })),\n \"topicBindings\": z.array(z.object({\n \"topicType\": z.string(),\n \"autoBindNewTopics\": z.boolean()\n })).optional()\n }).optional(),\n \"lensManifest\": z.array(z.object({\n \"lensKey\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"perspectiveType\": z.string(),\n \"promptTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"promptRef\": z.string(),\n \"phase\": z.string().optional(),\n \"role\": z.string().optional(),\n \"version\": z.string().optional(),\n \"required\": z.boolean().optional(),\n \"metadata\": z.any().optional()\n })),\n \"workflowTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"steps\": z.array(z.object({\n \"key\": z.string(),\n \"title\": z.string(),\n \"description\": z.string().optional(),\n \"promptTemplateKey\": z.string().optional(),\n \"taskTemplateKeys\": z.array(z.string()).optional(),\n \"metadata\": z.any().optional()\n })),\n \"metadata\": z.any().optional()\n })),\n \"taskTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"title\": z.string(),\n \"description\": z.string().optional(),\n \"priority\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]).optional(),\n \"phase\": z.string().optional(),\n \"metadata\": z.any().optional()\n })),\n \"questionTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"text\": z.string(),\n \"priority\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]).optional(),\n \"linkedBeliefKey\": z.string().optional(),\n \"metadata\": z.any().optional()\n })).optional(),\n \"filterCriteria\": z.any().optional(),\n \"topicTypeAffinity\": z.array(z.string()).optional(),\n \"metadata\": z.any().optional()\n })).optional(),\n \"configSnapshot\": z.record(z.any()).optional(),\n \"topicIds\": z.array(z.string()).optional(),\n \"releaseNotes\": z.string().optional(),\n \"releasedBy\": z.string(),\n \"publishedAt\": z.number().optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] },\n { kind: 'index', name: \"by_packKey_version\", columns: [\"packKey\", \"version\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_publishedAt\", columns: [\"publishedAt\"] }\n ],\n});\n","/**\n * Schema contracts for mc/policy.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const policyBundles = defineTable({\n name: \"policyBundles\",\n component: \"mc\",\n category: \"policy\",\n shape: z.object({\n \"bundleKey\": z.string(),\n \"version\": z.number(),\n \"scope\": z.enum([\"platform\", \"tenant\", \"workspace\"]),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"status\": z.enum([\"draft\", \"validated\", \"enforced\", \"archived\"]),\n \"policyHash\": z.string().optional(),\n \"rules\": z.record(z.any()),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_bundle_key\", columns: [\"bundleKey\"] },\n { kind: 'index', name: \"by_bundle_key_version\", columns: [\"bundleKey\", \"version\"] },\n { kind: 'index', name: \"by_scope_status\", columns: [\"scope\", \"status\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] },\n { kind: 'index', name: \"by_workspace_status\", columns: [\"workspaceId\", \"status\"] }\n ],\n});\n\nexport const policyDecisionLogs = defineTable({\n name: \"policyDecisionLogs\",\n component: \"mc\",\n category: \"policy\",\n shape: z.object({\n \"principalId\": z.string(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"resourceType\": z.string(),\n \"resourceId\": z.string(),\n \"action\": z.enum([\"read\", \"summarize\", \"export\", \"mutate\", \"admin\", \"comment\", \"escalate\", \"resolve\", \"vote\"]),\n \"decision\": z.enum([\"allow\", \"deny\"]),\n \"reasonCode\": z.string(),\n \"policyVersion\": z.string(),\n \"policyBundleId\": idOf(\"policyBundles\").optional(),\n \"audienceKey\": z.string().optional(),\n \"audienceClass\": z.enum([\"internal\", \"restricted_external\", \"public\"]).optional(),\n \"audienceMode\": z.string().optional(),\n \"traceId\": z.string().optional(),\n \"packKey\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principal_createdAt\", columns: [\"principalId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tenant_createdAt\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_pack_createdAt\", columns: [\"packKey\", \"createdAt\"] },\n { kind: 'index', name: \"by_audienceKey_createdAt\", columns: [\"audienceKey\", \"createdAt\"] },\n { kind: 'index', name: \"by_decision_createdAt\", columns: [\"decision\", \"createdAt\"] },\n { kind: 'index', name: \"by_traceId\", columns: [\"traceId\"] }\n ],\n});\n\nexport const policySimulations = defineTable({\n name: \"policySimulations\",\n component: \"mc\",\n category: \"policy\",\n shape: z.object({\n \"simulationKey\": z.string(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"actorPrincipalId\": z.string(),\n \"input\": z.record(z.any()),\n \"result\": z.record(z.any()),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_simulation_key\", columns: [\"simulationKey\"] },\n { kind: 'index', name: \"by_tenant_createdAt\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_workspace_createdAt\", columns: [\"workspaceId\", \"createdAt\"] },\n { kind: 'index', name: \"by_actor_createdAt\", columns: [\"actorPrincipalId\", \"createdAt\"] }\n ],\n});\n\nexport const controlPlaneToolAcls = defineTable({\n name: \"controlPlaneToolAcls\",\n component: \"mc\",\n category: \"policy\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"role\": z.string(),\n \"toolName\": z.string(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant_role\", columns: [\"tenantId\", \"role\"] },\n { kind: 'index', name: \"by_tenant_toolName\", columns: [\"tenantId\", \"toolName\"] }\n ],\n});\n","/**\n * Schema contracts for identity/project.\n *\n * Mirrored from:\n * - packages/identity/src/component/schema/domains/project.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const projectGrants = defineTable({\n name: \"projectGrants\",\n component: \"identity\",\n category: \"project\",\n shape: z.object({\n \"projectId\": z.string().optional(),\n \"topicId\": z.string().optional(),\n \"beliefClusterId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"subjectType\": z.enum([\"principal\", \"group\"]),\n \"principalId\": z.string().optional(),\n \"groupId\": z.string().optional(),\n \"role\": z.enum([\"viewer\", \"editor\", \"owner_delegate\"]),\n \"status\": z.enum([\"active\", \"revoked\", \"expired\"]),\n \"source\": z.enum([\"owner_share\", \"group_share\", \"external_share\", \"policy\", \"api\", \"migration\"]),\n \"grantedBy\": z.string().optional(),\n \"expiresAt\": z.number().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principal_status\", columns: [\"principalId\", \"status\"] },\n { kind: 'index', name: \"by_group_status\", columns: [\"groupId\", \"status\"] },\n { kind: 'index', name: \"by_tenant_workspace\", columns: [\"tenantId\", \"workspaceId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_topic_principal\", columns: [\"topicId\", \"principalId\"] },\n { kind: 'index', name: \"by_topic_group\", columns: [\"topicId\", \"groupId\"] },\n { kind: 'index', name: \"by_topic_cluster\", columns: [\"topicId\", \"beliefClusterId\"] },\n { kind: 'index', name: \"by_topic_cluster_status\", columns: [\"topicId\", \"beliefClusterId\", \"status\"] }\n ],\n});\n","/**\n * Schema contracts for identity/epistemic.\n *\n * Mirrored from:\n * - packages/identity/src/component/schema/domains/epistemic.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const reasoningPermissions = defineTable({\n name: \"reasoningPermissions\",\n component: \"identity\",\n category: \"epistemic\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"principalId\": z.string(),\n \"nodeType\": z.enum([\"belief\", \"evidence\", \"action\", \"approval\", \"artifact\"]),\n \"action\": z.enum([\"view_conclusion\", \"view_evidence\", \"propose_action\", \"approve_action\", \"view_derived_artifact\"]),\n \"effect\": z.enum([\"allow\", \"deny\"]),\n \"policyReference\": z.string().optional(),\n \"rationale\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"createdBy\": z.string(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_topic_principal\", columns: [\"topicId\", \"principalId\"] },\n { kind: 'index', name: \"by_topic_principal_action\", columns: [\"topicId\", \"principalId\", \"action\"] },\n { kind: 'index', name: \"by_topic_principal_node_action\", columns: [\"topicId\", \"principalId\", \"nodeType\", \"action\"] },\n { kind: 'index', name: \"by_principal_action\", columns: [\"principalId\", \"action\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/config.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/config.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const schemaEnumConfig = defineTable({\n name: \"schemaEnumConfig\",\n component: \"kernel\",\n category: \"config\",\n shape: z.object({\n \"tenantId\": z.string().optional(),\n \"category\": z.string(),\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional(),\n \"tier\": z.enum([\"platform\", \"tenant\"]),\n \"domainNamespace\": z.string().optional(),\n \"metadata\": z.any().optional(),\n \"isDefault\": z.boolean().optional(),\n \"sortOrder\": z.number().optional(),\n \"status\": z.enum([\"active\", \"deprecated\"]),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_category\", columns: [\"category\"] },\n { kind: 'index', name: \"by_tenant_category\", columns: [\"tenantId\", \"category\"] },\n { kind: 'index', name: \"by_category_value\", columns: [\"category\", \"value\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/task.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/task.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const tasks = defineTable({\n name: \"tasks\",\n component: \"kernel\",\n category: \"task\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"title\": z.string(),\n \"description\": z.string().optional(),\n \"status\": z.enum([\"todo\", \"in_progress\", \"blocked\", \"done\"]),\n \"priority\": z.enum([\"urgent\", \"high\", \"medium\", \"low\"]),\n \"dueDate\": z.number().optional(),\n \"linkedWorktreeId\": idOf(\"worktrees\").optional(),\n \"linkedBeliefId\": z.string().optional(),\n \"linkedQuestionId\": z.string().optional(),\n \"taskType\": z.enum([\"general\", \"find_evidence\", \"verify_claim\", \"research\", \"review\", \"interview\", \"analysis\", \"track_metrics\"]).optional(),\n \"assigneeId\": z.string().optional(),\n \"blockedReason\": z.string().optional(),\n \"blockedBy\": z.array(idOf(\"tasks\")).optional(),\n \"blocks\": z.array(idOf(\"tasks\")).optional(),\n \"sortOrder\": z.number().optional(),\n \"executionOrder\": z.number().optional(),\n \"subtasks\": z.array(z.object({\n \"id\": z.string(),\n \"title\": z.string(),\n \"completed\": z.boolean(),\n \"completedAt\": z.number().optional()\n })).optional(),\n \"comments\": z.array(z.object({\n \"id\": z.string(),\n \"userId\": z.string(),\n \"content\": z.string(),\n \"createdAt\": z.number()\n })).optional(),\n \"attachments\": z.array(z.object({\n \"id\": z.string(),\n \"type\": z.enum([\"call_script\", \"email_template\", \"research_plan\", \"framework\", \"checklist\", \"note\", \"file\", \"transcript\"]),\n \"title\": z.string(),\n \"content\": z.string(),\n \"metadata\": z.object({\n \"items\": z.array(z.object({\n \"id\": z.string(),\n \"text\": z.string(),\n \"completed\": z.boolean()\n })).optional(),\n \"fileUrl\": z.string().optional(),\n \"fileName\": z.string().optional(),\n \"fileSize\": z.number().optional(),\n \"frameworkType\": z.string().optional(),\n \"variables\": z.array(z.string()).optional(),\n \"mappedQuestions\": z.array(z.object({\n \"id\": z.string(),\n \"questionText\": z.string(),\n \"linkedQuestionId\": z.string().optional(),\n \"linkedBeliefId\": z.string().optional(),\n \"category\": z.string().optional(),\n \"priority\": z.enum([\"must_ask\", \"nice_to_have\"]).optional(),\n \"answered\": z.boolean().optional(),\n \"answerExcerpt\": z.string().optional(),\n \"answerTimestamp\": z.string().optional(),\n \"capturedAsInsight\": z.boolean().optional(),\n \"insightId\": idOf(\"epistemicNodes\").optional()\n })).optional(),\n \"linkedCallScriptId\": z.string().optional(),\n \"editable\": z.boolean().optional(),\n \"executionTool\": z.string().optional(),\n \"linkedQuestionId\": z.string().optional(),\n \"linkedBeliefId\": z.string().optional(),\n \"workflowStepId\": z.string().optional(),\n \"workflowOrder\": z.number().optional(),\n \"dependsOnStepIds\": z.array(z.string()).optional(),\n \"runCondition\": z.string().optional(),\n \"continueOnFailure\": z.boolean().optional(),\n \"stepStatus\": z.enum([\"pending\", \"running\", \"completed\", \"failed\", \"skipped\"]).optional(),\n \"stepRunCount\": z.number().optional(),\n \"stepLastRunAt\": z.number().optional(),\n \"stepOutputSummary\": z.string().optional(),\n \"stepOutputData\": z.string().optional(),\n \"stepFailureReason\": z.string().optional(),\n \"researchResult\": z.string().optional(),\n \"researchStatus\": z.enum([\"pending\", \"running\", \"completed\", \"failed\"]).optional(),\n \"researchCompletedAt\": z.number().optional(),\n \"researchCitations\": z.array(z.union([z.string(), z.object({\n \"url\": z.string(),\n \"title\": z.string().optional(),\n \"snippet\": z.string().optional()\n })])).optional(),\n \"generatedPersonas\": z.array(z.any()).optional(),\n \"personasGeneratedAt\": z.number().optional(),\n \"expertSearchResults\": z.array(z.any()).optional(),\n \"expertSearchAt\": z.number().optional(),\n \"capturedAsEvidence\": z.boolean().optional(),\n \"capturedInsightId\": z.string().optional(),\n \"capturedAt\": z.number().optional(),\n \"capturedImpact\": z.number().optional(),\n \"tools\": z.array(z.object({\n \"tool\": z.string(),\n \"purpose\": z.string(),\n \"suggestedQuery\": z.string()\n })).optional(),\n \"metrics\": z.array(z.object({\n \"metric\": z.string(),\n \"source\": z.string(),\n \"frequency\": z.string(),\n \"currentValue\": z.string().optional()\n })).optional(),\n \"personas\": z.array(z.object({\n \"role\": z.string(),\n \"title\": z.string(),\n \"company\": z.string(),\n \"rationale\": z.string()\n })).optional(),\n \"experts\": z.array(z.object({\n \"expertise\": z.string(),\n \"potentialSources\": z.array(z.string()),\n \"questions\": z.array(z.string()),\n \"searchStrategy\": z.string().optional()\n })).optional(),\n \"factChecker\": z.object({\n \"claimsToVerify\": z.array(z.string()),\n \"sourcesToCheck\": z.array(z.string()),\n \"verificationCriteria\": z.array(z.string())\n }).optional()\n }).optional(),\n \"capturedAsEvidence\": z.boolean().optional(),\n \"capturedInsightId\": idOf(\"epistemicNodes\").optional(),\n \"capturedAt\": z.number().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number()\n })).optional(),\n \"tags\": z.array(z.string()).optional(),\n \"executionType\": z.enum([\"research_search\", \"find_news\", \"identify_experts\", \"market_research\", \"generate_primer\", \"verify_claim\", \"manual\", \"mcp_research\", \"mcp_web_search\", \"mcp_capture\", \"mcp_network_search\"]).optional(),\n \"executionStatus\": z.enum([\"pending\", \"running\", \"completed\", \"failed\"]).optional(),\n \"executionResults\": z.union([z.string(), z.number(), z.boolean(), z.null(), z.record(z.any()), z.array(z.any())]).optional(),\n \"executionStartedAt\": z.number().optional(),\n \"executionCompletedAt\": z.number().optional(),\n \"executionError\": z.string().optional(),\n \"mcpDatasetIds\": z.array(z.string()).optional(),\n \"mcpSkillIds\": z.array(z.string()).optional(),\n \"mcpExecutionId\": z.string().optional(),\n \"linkedChatId\": z.string().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"completedAt\": z.number().optional(),\n \"completedBy\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topicId_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_worktreeId\", columns: [\"linkedWorktreeId\"] },\n { kind: 'index', name: \"by_beliefId\", columns: [\"linkedBeliefId\"] },\n { kind: 'index', name: \"by_questionId\", columns: [\"linkedQuestionId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_assigneeId\", columns: [\"assigneeId\"] },\n { kind: 'index', name: \"by_dueDate\", columns: [\"dueDate\"] },\n { kind: 'index', name: \"by_priority\", columns: [\"priority\"] },\n { kind: 'index', name: \"by_executionType\", columns: [\"executionType\"] },\n { kind: 'index', name: \"by_executionStatus\", columns: [\"executionStatus\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/topic.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/topic.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\nimport { TOPIC_STATUS, TOPIC_VISIBILITY } from '../../enums.js';\n\nexport const topics = defineTable({\n name: \"topics\",\n component: \"kernel\",\n category: \"topic\",\n shape: z.object({\n \"globalId\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"parentTopicId\": idOf(\"topics\").optional(),\n \"depth\": z.number(),\n \"path\": z.array(z.string()),\n \"type\": z.string(),\n \"ontologyId\": idOf(\"ontologyDefinitions\").optional(),\n \"graphScopeProjectId\": z.string().optional(),\n \"metadata\": z.any().optional(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"status\": TOPIC_STATUS,\n \"visibility\": TOPIC_VISIBILITY.optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_parent\", columns: [\"parentTopicId\"] },\n { kind: 'index', name: \"by_type\", columns: [\"type\"] },\n { kind: 'index', name: \"by_graph_scope_project\", columns: [\"graphScopeProjectId\"] },\n { kind: 'index', name: \"by_tenant\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_ontology\", columns: [\"ontologyId\"] },\n { kind: 'index', name: \"by_path\", columns: [\"path\"] },\n { kind: 'search', name: \"search_name\", searchField: \"name\", filterFields: [\"tenantId\", \"type\"] }\n ],\n});\n","/**\n * Schema contracts for identity/user.\n *\n * Mirrored from:\n * - packages/identity/src/component/schema/domains/user.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const users = defineTable({\n name: \"users\",\n component: \"identity\",\n category: \"user\",\n shape: z.object({\n \"clerkId\": z.string(),\n \"email\": z.string(),\n \"name\": z.string().optional(),\n \"imageUrl\": z.string().optional(),\n \"lastSeenAt\": z.number(),\n \"chatCount\": z.number(),\n \"messageCount\": z.number(),\n \"isAdmin\": z.boolean().optional(),\n \"mcRole\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]).optional(),\n \"mcRoleSyncedAt\": z.number().optional(),\n \"defaultTenantId\": z.string().optional(),\n \"defaultWorkspaceId\": z.string().optional(),\n \"defaultPrincipalId\": z.string().optional(),\n \"principalGroupIds\": z.array(z.string()).optional(),\n \"permittedPackKeys\": z.array(z.string()).optional(),\n \"permittedToolNames\": z.array(z.string()).optional(),\n \"governanceGrantsSyncedAt\": z.number().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_clerkId\", columns: [\"clerkId\"] },\n { kind: 'index', name: \"by_email\", columns: [\"email\"] },\n { kind: 'index', name: \"by_lastSeenAt\", columns: [\"lastSeenAt\"] },\n { kind: 'index', name: \"by_defaultTenantId\", columns: [\"defaultTenantId\"] },\n { kind: 'index', name: \"by_defaultWorkspaceId\", columns: [\"defaultWorkspaceId\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/workflow.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/workflow.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const workflowDefinitions = defineTable({\n name: \"workflowDefinitions\",\n component: \"kernel\",\n category: \"workflow\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"name\": z.string(),\n \"displayName\": z.string(),\n \"description\": z.string().optional(),\n \"status\": z.enum([\"draft\", \"active\", \"deprecated\"]),\n \"version\": z.number(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_name\", columns: [\"tenantId\", \"name\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n\nexport const workflowPullRequests = defineTable({\n name: \"workflowPullRequests\",\n component: \"kernel\",\n category: \"workflow\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"worktreeId\": idOf(\"worktrees\"),\n \"status\": z.enum([\"pending_review\", \"changes_requested\", \"approved\", \"blocked\"]),\n \"summary\": z.string(),\n \"reviewers\": z.array(z.string()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"resolvedAt\": z.number().optional(),\n \"resolvedBy\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional()\n }),\n indices: [\n { kind: 'index', name: \"by_worktreeId\", columns: [\"worktreeId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_status\", columns: [\"topicId\", \"status\"] }\n ],\n});\n\nexport const workflowStages = defineTable({\n name: \"workflowStages\",\n component: \"kernel\",\n category: \"workflow\",\n shape: z.object({\n \"workflowDefinitionId\": idOf(\"workflowDefinitions\"),\n \"name\": z.string(),\n \"displayName\": z.string(),\n \"description\": z.string().optional(),\n \"order\": z.number(),\n \"entryConditions\": z.record(z.any()).optional(),\n \"exitConditions\": z.record(z.any()).optional(),\n \"gateRules\": z.record(z.any()).optional(),\n \"isOptional\": z.boolean().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_workflow\", columns: [\"workflowDefinitionId\"] },\n { kind: 'index', name: \"by_workflow_order\", columns: [\"workflowDefinitionId\", \"order\"] }\n ],\n});\n","/**\n * Schema contracts for mc/workspace.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const workspaces = defineTable({\n name: \"workspaces\",\n component: \"mc\",\n category: \"workspace\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"key\": z.string(),\n \"slug\": z.string(),\n \"name\": z.string(),\n \"status\": z.enum([\"active\", \"archived\"]),\n \"defaultProjectVisibility\": z.enum([\"private\", \"team\", \"firm\", \"external\", \"public\"]).optional(),\n \"deployments\": z.record(z.object({\n \"url\": z.string(),\n \"encryptedDeployKey\": z.string()\n })).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenantId_key\", columns: [\"tenantId\", \"key\"] },\n { kind: 'index', name: \"by_tenantId_slug\", columns: [\"tenantId\", \"slug\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n","/**\n * Schema contracts for kernel/worktree.\n *\n * Mirrored from:\n * - packages/reasoning-kernel/src/adapters/schema/domains/worktree.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const worktreeBeliefCluster = defineTable({\n name: \"worktreeBeliefCluster\",\n component: \"kernel\",\n category: \"worktree\",\n shape: z.object({\n \"worktreeId\": idOf(\"worktrees\"),\n \"beliefId\": z.string(),\n \"relationType\": z.enum([\"primary\", \"counterfactual\", \"dependency\", \"cascade\", \"conditional\", \"supporting\", \"contradicting\", \"alternative\", \"prerequisite\"]),\n \"relationDescription\": z.string().optional(),\n \"counterfactualText\": z.string().optional(),\n \"dependencyText\": z.string().optional(),\n \"cascadeText\": z.string().optional(),\n \"initialConfidence\": z.number().optional(),\n \"initialEvidenceCount\": z.number().optional(),\n \"finalConfidence\": z.number().optional(),\n \"finalEvidenceCount\": z.number().optional(),\n \"confidenceDelta\": z.number().optional(),\n \"llmValence\": z.number().optional(),\n \"llmCertainty\": z.number().optional(),\n \"llmReasoning\": z.string().optional(),\n \"llmEvidenceScores\": z.string().optional(),\n \"llmAssessedAt\": z.number().optional(),\n \"addedAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_worktree\", columns: [\"worktreeId\"] },\n { kind: 'index', name: \"by_belief\", columns: [\"beliefId\"] },\n { kind: 'index', name: \"by_worktree_relation\", columns: [\"worktreeId\", \"relationType\"] }\n ],\n});\n\nexport const worktrees = defineTable({\n name: \"worktrees\",\n component: \"kernel\",\n category: \"worktree\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"index\": z.number(),\n \"name\": z.string(),\n \"beliefFocus\": z.string().optional(),\n \"objective\": z.string(),\n \"worktreeType\": z.string().optional(),\n \"rationale\": z.string().optional(),\n \"confidenceImpact\": z.enum([\"high\", \"medium\", \"low\"]).optional(),\n \"hypothesis\": z.string().optional(),\n \"executionOrder\": z.number().optional(),\n \"dependsOn\": z.array(idOf(\"worktrees\")).optional(),\n \"blocks\": z.array(idOf(\"worktrees\")).optional(),\n \"gate\": z.string().optional(),\n \"track\": z.string().optional(),\n \"trackPosition\": z.number().optional(),\n \"executionBand\": z.number().optional(),\n \"startDate\": z.number(),\n \"endDate\": z.number(),\n \"durationWeeks\": z.number(),\n \"status\": z.enum([\"suggested\", \"planning\", \"active\", \"paused\", \"completed\", \"dismissed\", \"abandoned\"]),\n \"generatedBy\": z.string().optional(),\n \"epistemicOrigin\": z.string().optional(),\n \"priority\": z.number().optional(),\n \"dismissedReason\": z.string().optional(),\n \"userId\": z.string().optional(),\n \"createdAt\": z.number().optional(),\n \"updatedAt\": z.number().optional(),\n \"chatId\": z.string().optional(),\n \"tasks\": z.union([z.string(), z.number(), z.boolean(), z.null(), z.record(z.any()), z.array(z.any())]).optional(),\n \"targetBeliefIds\": z.array(z.string()),\n \"targetQuestionIds\": z.array(z.string()),\n \"keyQuestions\": z.array(z.object({\n \"question\": z.string(),\n \"status\": z.enum([\"open\", \"answered\", \"forked\"]),\n \"answer\": z.string().optional(),\n \"answerConfidence\": z.enum([\"high\", \"medium\", \"low\"]).optional(),\n \"linkedQuestionId\": z.string().optional()\n })).optional(),\n \"evidenceSignals\": z.array(z.object({\n \"signal\": z.string(),\n \"collected\": z.boolean(),\n \"progress\": z.string().optional(),\n \"notes\": z.string().optional()\n })).optional(),\n \"decisionGate\": z.object({\n \"goCriteria\": z.array(z.string()),\n \"noGoSignals\": z.array(z.string()),\n \"verdict\": z.enum([\"go\", \"no_go\", \"pivot\", \"pending\"]).optional(),\n \"verdictRationale\": z.string().optional(),\n \"decidedAt\": z.number().optional(),\n \"decidedBy\": z.string().optional()\n }).optional(),\n \"beliefRefinement\": z.object({\n \"isRefined\": z.boolean(),\n \"refinedAt\": z.number().optional(),\n \"refinedBy\": z.string().optional(),\n \"originalText\": z.string().optional(),\n \"refinedText\": z.string().optional(),\n \"testingCriteria\": z.string().optional(),\n \"measurableCriteria\": z.string().optional(),\n \"timeframe\": z.string().optional(),\n \"checklist\": z.object({\n \"hasSpecificClaim\": z.boolean(),\n \"hasTimeframe\": z.boolean(),\n \"hasMeasurableCriteria\": z.boolean(),\n \"hasTestability\": z.boolean()\n }).optional()\n }).optional(),\n \"beliefRefinements\": z.array(z.any()).optional(),\n \"startingConfidence\": z.object({\n \"overall\": z.number(),\n \"beliefConfidences\": z.array(z.object({\n \"beliefId\": z.string(),\n \"confidence\": z.number()\n }))\n }).optional(),\n \"endingConfidence\": z.object({\n \"overall\": z.number(),\n \"beliefConfidences\": z.array(z.object({\n \"beliefId\": z.string(),\n \"confidence\": z.number()\n }))\n }).optional(),\n \"outcome\": z.object({\n \"verdict\": z.enum([\"validated\", \"invalidated\", \"forked\", \"inconclusive\"]),\n \"summary\": z.string(),\n \"whatChanged\": z.string(),\n \"confidenceChange\": z.number()\n }).optional(),\n \"epistemicChain\": z.object({\n \"capturedAt\": z.number(),\n \"capturedBy\": z.string(),\n \"worktreeId\": idOf(\"worktrees\"),\n \"topicId\": z.string().optional(),\n \"primaryBelief\": z.object({\n \"id\": z.string(),\n \"text\": z.string(),\n \"startingConfidence\": z.number(),\n \"startingConfidenceLabel\": z.string().optional(),\n \"endingConfidence\": z.number(),\n \"endingConfidenceLabel\": z.string().optional(),\n \"confidenceScore\": z.number().optional(),\n \"status\": z.string().optional(),\n \"criticality\": z.string().optional()\n }).optional(),\n \"clusterEdges\": z.array(z.object({\n \"edgeId\": z.string().optional(),\n \"edgeType\": z.string(),\n \"sourceId\": z.string(),\n \"targetId\": z.string(),\n \"weight\": z.number().optional(),\n \"createdAt\": z.number().optional()\n })),\n \"relatedBeliefs\": z.array(z.object({\n \"id\": z.string(),\n \"text\": z.string().optional(),\n \"confidence\": z.string().optional(),\n \"confidenceScore\": z.number().optional()\n })).optional(),\n \"questions\": z.array(z.object({\n \"id\": z.string(),\n \"text\": z.string(),\n \"status\": z.string(),\n \"priority\": z.string().optional(),\n \"answer\": z.string().optional(),\n \"answerStatus\": z.string().optional(),\n \"answeredBy\": z.string().optional(),\n \"answeredAt\": z.number().optional(),\n \"evidenceCount\": z.number()\n })),\n \"evidence\": z.array(z.object({\n \"id\": z.string(),\n \"text\": z.string(),\n \"sourceType\": z.string().optional(),\n \"verificationStatus\": z.string().optional(),\n \"verified\": z.boolean(),\n \"createdAt\": z.number().optional()\n })),\n \"tasksCompleted\": z.number().optional(),\n \"totalTasks\": z.number().optional(),\n \"outcome\": z.object({\n \"verdict\": z.string(),\n \"summary\": z.string(),\n \"confidenceChange\": z.number(),\n \"startingConfidence\": z.number(),\n \"endingConfidence\": z.number()\n }),\n \"confidenceHistory\": z.array(z.object({\n \"beliefId\": z.string(),\n \"recentChanges\": z.array(z.object({\n \"confidence\": z.string().optional(),\n \"trigger\": z.string().optional(),\n \"timestamp\": z.number().optional()\n }))\n })).optional()\n }).optional(),\n \"keyFindings\": z.array(z.string()).optional(),\n \"decisionsReached\": z.array(z.string()).optional(),\n \"nextSteps\": z.array(z.string()).optional(),\n \"retrospective\": z.object({\n \"whatWorked\": z.array(z.string()),\n \"whatDidnt\": z.array(z.string()),\n \"lessonsLearned\": z.array(z.string()),\n \"confidenceChange\": z.number()\n }).optional(),\n \"thesisReportId\": z.string().optional(),\n \"branchThesis\": z.object({\n \"content\": z.string(),\n \"memoContent\": z.string().optional(),\n \"status\": z.enum([\"ai_draft\", \"user_draft\", \"final\"]),\n \"generatedAt\": z.number().optional(),\n \"approvedAt\": z.number().optional(),\n \"approvedBy\": z.string().optional(),\n \"generationMetadata\": z.object({\n \"modelUsed\": z.string(),\n \"promptName\": z.string(),\n \"langfuseTraceId\": z.string().optional()\n }).optional()\n }).optional(),\n \"generatedAt\": z.number().optional(),\n \"sourceProposalId\": z.string().optional(),\n \"triggerReason\": z.string().optional(),\n \"linkedEvidenceIds\": z.array(z.string()).optional(),\n \"linkedDocumentIds\": z.array(z.string()).optional(),\n \"linkedCallIds\": z.array(z.string()).optional(),\n \"linkedNewsIds\": z.array(z.string()).optional(),\n \"linkedPrimerIds\": z.array(z.string()).optional(),\n \"linkedDeepResearchIds\": z.array(z.string()).optional(),\n \"notes\": z.array(z.object({\n \"id\": z.string(),\n \"content\": z.string(),\n \"createdAt\": z.number(),\n \"createdBy\": z.string(),\n \"linkedTaskId\": z.string().optional(),\n \"linkedQuestionId\": z.string().optional(),\n \"linkedBeliefId\": z.string().optional()\n })).optional(),\n \"targetBranch\": z.string().optional(),\n \"worktreeScope\": z.enum([\"belief\", \"branch\"]).optional(),\n \"synthesisState\": z.object({\n \"originalBeliefIds\": z.array(z.string()),\n \"synthesizedBeliefIds\": z.array(z.string()),\n \"synthesisComplete\": z.boolean(),\n \"synthesisRationale\": z.string().optional(),\n \"synthesisCompletedAt\": z.number().optional(),\n \"synthesisCompletedBy\": z.string().optional()\n }).optional(),\n \"evidenceReviewState\": z.object({\n \"existingEvidenceReviewed\": z.boolean(),\n \"evidenceGaps\": z.array(z.string()),\n \"strengthAreas\": z.array(z.string()),\n \"evidenceQuestionMapping\": z.array(z.object({\n \"evidenceId\": z.string(),\n \"questionIds\": z.array(z.string()),\n \"coverageNote\": z.string().optional()\n })).optional(),\n \"reviewCompletedAt\": z.number().optional(),\n \"reviewCompletedBy\": z.string().optional()\n }).optional(),\n \"phase\": z.string().optional(),\n \"clusterStatus\": z.object({\n \"totalConditionals\": z.number(),\n \"hasCounterfactuals\": z.boolean(),\n \"hasDependencies\": z.boolean(),\n \"hasCascades\": z.boolean(),\n \"conditionalsByType\": z.object({\n \"counterfactuals\": z.number(),\n \"dependencies\": z.number(),\n \"cascades\": z.number(),\n \"other\": z.number()\n }).optional(),\n \"mappingCompletedAt\": z.number().optional(),\n \"mappingCompletedBy\": z.string().optional()\n }).optional(),\n \"phaseHistory\": z.array(z.object({\n \"phase\": z.string(),\n \"enteredAt\": z.number(),\n \"pausedAt\": z.number().optional(),\n \"resumedAt\": z.number().optional(),\n \"completedAt\": z.number().optional(),\n \"completedBy\": z.string().optional()\n })).optional(),\n \"questionsCoverage\": z.object({\n \"totalQuestions\": z.number(),\n \"clusterNodesCovered\": z.number(),\n \"coveragePercent\": z.number(),\n \"gapsIdentified\": z.array(z.string()).optional()\n }).optional(),\n \"researchEfficiency\": z.object({\n \"totalTasks\": z.number(),\n \"questionsPerTask\": z.number(),\n \"clusterCoverage\": z.number(),\n \"efficiencyScore\": z.number()\n }).optional(),\n \"createdBy\": z.string(),\n \"metadata\": z.any().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topicId_status\", columns: [\"topicId\", \"status\"] },\n { kind: 'index', name: \"by_topicId_index\", columns: [\"topicId\", \"index\"] },\n { kind: 'index', name: \"by_worktreeType\", columns: [\"topicId\", \"worktreeType\"] },\n { kind: 'index', name: \"by_topicId_priority\", columns: [\"topicId\", \"priority\"] },\n { kind: 'index', name: \"by_topicId_branch\", columns: [\"topicId\", \"targetBranch\"] },\n { kind: 'index', name: \"by_topicId_scope\", columns: [\"topicId\", \"worktreeScope\"] }\n ],\n});\n","/**\n * Lens Filter Criteria Contract\n *\n * Version-discriminated filter DSL for lenses. Each filter criteria document\n * carries a `version` and `kind` discriminator so future shapes can coexist\n * without schema migrations. The Convex `filterCriteria` field remains v.any()\n * — all type enforcement happens here at the TypeScript contract layer.\n *\n * Forward-compatibility guarantees:\n * - `version` field: new versions add fields, never remove or rename existing ones\n * - `kind` field: new filter kinds (temporal, confidence-range) can be added\n * without touching taxonomy code paths\n * - `entityTypeFilters` array items are open to extension in future versions\n * - Resolution logic switches on `version` + `kind` to select the right resolver\n *\n * @module lucern/contracts/src/lens-filter\n */\n\n// ---------------------------------------------------------------------------\n// V1: Taxonomy Filter — entity type + subtype matching\n// ---------------------------------------------------------------------------\n\n/**\n * A single entity type filter entry. Matches nodes whose `nodeType` equals\n * `entityTypeValue`, optionally further narrowed by subtype membership.\n *\n * V2 will add `propertyMatchers` here for arbitrary JSON Schema facet queries.\n */\nexport type EntityTypeFilterV1 = {\n /** References ontologyVersion.entityTypes[].value, e.g. \"company\" */\n entityTypeValue: string;\n\n /** Optional subtype narrowing. If omitted or empty, all subtypes match. */\n subtypeValues?: string[];\n};\n\n/**\n * Optional scope to restrict which ontology the filter resolves against.\n * If omitted, resolution uses whatever ontology is active in the workspace.\n */\nexport type OntologyScope = {\n /** Restrict to a specific ontology by key, e.g. \"vc-investment\" */\n ontologyKey?: string;\n};\n\n/**\n * Taxonomy filter criteria v1: entity type + subtype matching over ontology.\n */\nexport type TaxonomyFilterCriteriaV1 = {\n version: 1;\n kind: \"taxonomy\";\n entityTypeFilters: EntityTypeFilterV1[];\n ontologyScope?: OntologyScope;\n};\n\n// ---------------------------------------------------------------------------\n// Union: All filter criteria versions and kinds\n// ---------------------------------------------------------------------------\n\n/**\n * Discriminated union of all supported filter criteria.\n * Resolution logic switches on `version` + `kind`.\n *\n * To add a new filter kind:\n * 1. Define a new type (e.g., TemporalFilterCriteriaV1)\n * 2. Add it to this union\n * 3. Add a resolver in taxonomy-filter.ts\n * 4. No schema migration needed — filterCriteria is v.any()\n */\nexport type LensFilterCriteria = TaxonomyFilterCriteriaV1;\n// Future: | TemporalFilterCriteriaV1 | ConfidenceRangeFilterCriteriaV1 | ...\n\n// ---------------------------------------------------------------------------\n// Type guards\n// ---------------------------------------------------------------------------\n\nexport function isLensFilterCriteria(\n value: unknown\n): value is LensFilterCriteria {\n if (!value || typeof value !== \"object\") return false;\n const obj = value as Record<string, unknown>;\n return typeof obj.version === \"number\" && typeof obj.kind === \"string\";\n}\n\nexport function isTaxonomyFilterCriteriaV1(\n value: unknown\n): value is TaxonomyFilterCriteriaV1 {\n if (!isLensFilterCriteria(value)) return false;\n return value.version === 1 && value.kind === \"taxonomy\";\n}\n\n// ---------------------------------------------------------------------------\n// Validation\n// ---------------------------------------------------------------------------\n\nexport type FilterValidationResult =\n | { valid: true }\n | { valid: false; errors: string[] };\n\n/**\n * Validate a filter criteria document at the contract layer.\n * This runs before persisting to Convex.\n */\nexport function validateFilterCriteria(\n value: unknown\n): FilterValidationResult {\n if (value === undefined || value === null) {\n return { valid: true }; // filterCriteria is optional\n }\n\n if (!isLensFilterCriteria(value)) {\n return {\n valid: false,\n errors: [\n 'filterCriteria must have numeric \"version\" and string \"kind\" fields',\n ],\n };\n }\n\n if (isTaxonomyFilterCriteriaV1(value)) {\n return validateTaxonomyFilterV1(value);\n }\n\n // Cast to access properties — TypeScript narrows to `never` when all union\n // members are exhausted, but at runtime unknown version/kind combos are possible.\n const raw = value as { version: number; kind: string };\n return {\n valid: false,\n errors: [\n `Unsupported filter criteria: version=${raw.version}, kind=${raw.kind}`,\n ],\n };\n}\n\nfunction validateTaxonomyFilterV1(\n criteria: TaxonomyFilterCriteriaV1\n): FilterValidationResult {\n const errors: string[] = [];\n\n if (!Array.isArray(criteria.entityTypeFilters)) {\n errors.push(\"entityTypeFilters must be an array\");\n return { valid: false, errors };\n }\n\n if (criteria.entityTypeFilters.length === 0) {\n errors.push(\"entityTypeFilters must contain at least one entry\");\n return { valid: false, errors };\n }\n\n for (let i = 0; i < criteria.entityTypeFilters.length; i++) {\n const filter = criteria.entityTypeFilters[i];\n if (!filter || typeof filter.entityTypeValue !== \"string\") {\n errors.push(\n `entityTypeFilters[${i}].entityTypeValue must be a non-empty string`\n );\n continue;\n }\n if (filter.entityTypeValue.trim().length === 0) {\n errors.push(\n `entityTypeFilters[${i}].entityTypeValue must be a non-empty string`\n );\n }\n if (\n filter.subtypeValues !== undefined &&\n !Array.isArray(filter.subtypeValues)\n ) {\n errors.push(`entityTypeFilters[${i}].subtypeValues must be an array`);\n }\n }\n\n if (criteria.ontologyScope !== undefined) {\n if (\n typeof criteria.ontologyScope !== \"object\" ||\n criteria.ontologyScope === null\n ) {\n errors.push(\"ontologyScope must be an object\");\n }\n }\n\n return errors.length === 0\n ? { valid: true }\n : { valid: false, errors };\n}\n","/**\n * Canonical lens workflow contract shared across schema, SDK, and MCP surfaces.\n */\n\n// Re-export filter criteria types for consumers who import from lens-workflow\nexport type {\n LensFilterCriteria,\n TaxonomyFilterCriteriaV1,\n EntityTypeFilterV1,\n OntologyScope,\n FilterValidationResult,\n} from \"./lens-filter.contract\";\nexport {\n validateFilterCriteria,\n isLensFilterCriteria,\n isTaxonomyFilterCriteriaV1,\n} from \"./lens-filter.contract\";\n\nexport const LENS_PERSPECTIVE_TYPES = [\n \"investigation\",\n \"monitoring\",\n \"analysis\",\n \"comparison\",\n \"taxonomy\",\n] as const;\n\nexport type LensPerspectiveType = (typeof LENS_PERSPECTIVE_TYPES)[number];\n\nexport const LENS_STATUSES = [\"draft\", \"active\", \"archived\"] as const;\n\nexport type LensStatus = (typeof LENS_STATUSES)[number];\n\nexport const LENS_TASK_TEMPLATE_PRIORITIES = [\n \"critical\",\n \"high\",\n \"medium\",\n \"low\",\n] as const;\n\nexport type LensTaskTemplatePriority =\n (typeof LENS_TASK_TEMPLATE_PRIORITIES)[number];\n\nexport type LensLooseMetadata = Record<string, unknown>;\n\nexport type LensPromptTemplateReference = {\n key: string;\n promptRef: string;\n phase?: string;\n role?: string;\n version?: string;\n required?: boolean;\n metadata?: LensLooseMetadata;\n};\n\nexport type LensWorkflowStepTemplate = {\n key: string;\n title: string;\n description?: string;\n promptTemplateKey?: string;\n taskTemplateKeys?: string[];\n metadata?: LensLooseMetadata;\n};\n\nexport type LensWorkflowTemplate = {\n key: string;\n name: string;\n description?: string;\n steps: LensWorkflowStepTemplate[];\n metadata?: LensLooseMetadata;\n};\n\nexport type LensTaskTemplate = {\n key: string;\n title: string;\n description?: string;\n priority?: LensTaskTemplatePriority;\n phase?: string;\n metadata?: LensLooseMetadata;\n};\n\nexport type LensQuestionTemplate = {\n key: string;\n text: string;\n priority?: LensTaskTemplatePriority;\n linkedBeliefKey?: string;\n metadata?: LensLooseMetadata;\n};\n\nexport type LensBranchMigrationSuggestion = {\n recommendedTool: \"create_lens\";\n perspectiveType: LensPerspectiveType;\n message: string;\n suggestedPayload: {\n name: string;\n description?: string;\n topicId?: string;\n workspaceId?: string;\n perspectiveType: LensPerspectiveType;\n };\n};\n\nexport const BRANCH_DEPRECATION_MESSAGE =\n \"Branches are deprecated for operational framing. Create a workspace-scoped lens instead.\";\n\nexport type DeprecatedBranchMetadata = {\n deprecated: true;\n deprecationMessage: string;\n lensSuggestion: LensBranchMigrationSuggestion;\n};\n\nexport function inferLensPerspectiveTypeFromBranchSchema(\n schema?: string | null\n): LensPerspectiveType {\n const normalized = schema?.trim().toLowerCase();\n if (normalized === \"phase\") {\n return \"monitoring\";\n }\n if (normalized === \"axis\" || normalized === \"dimension\") {\n return \"comparison\";\n }\n if (normalized === \"track\") {\n return \"investigation\";\n }\n return \"analysis\";\n}\n\nexport function migrateBranchToLens(args: {\n name: string;\n description?: string;\n topicId?: string;\n workspaceId?: string;\n schema?: string | null;\n}): LensBranchMigrationSuggestion {\n const perspectiveType = inferLensPerspectiveTypeFromBranchSchema(args.schema);\n return {\n recommendedTool: \"create_lens\",\n perspectiveType,\n message:\n \"Branches are deprecated for operational framing. Create a workspace-scoped lens with the suggested payload instead.\",\n suggestedPayload: {\n name: args.name,\n description: args.description,\n topicId: args.topicId,\n workspaceId: args.workspaceId,\n perspectiveType,\n },\n };\n}\n\nexport function buildDeprecatedBranchMetadata(args: {\n name: string;\n description?: string;\n topicId?: string;\n workspaceId?: string;\n schema?: string | null;\n}): DeprecatedBranchMetadata {\n return {\n deprecated: true,\n deprecationMessage: BRANCH_DEPRECATION_MESSAGE,\n lensSuggestion: migrateBranchToLens(args),\n };\n}\n","/**\n * MCP Tool Contract Definitions\n *\n * Machine-readable source of truth for all Lucern MCP tool names,\n * descriptions, parameters, and response schemas.\n *\n * CONTRACT SURFACE: These definitions are the external API for AI agents.\n * Renaming a tool or changing its description is a BREAKING CHANGE.\n *\n * Git-native naming rules (enforced by lint):\n * 1. Workflow tools use git verbs directly (add_worktree, merge, push, open_pull_request)\n * 2. Knowledge tools use epistemic verbs (create_belief, fork_belief, modulate_confidence)\n * 3. First sentence of description includes the git analog verb\n * 4. Description includes \"Like `git X`\" parenthetical\n * 5. Parameter names use domain terms (canonicalText, nodeId, confidence)\n */\n\nimport { LENS_PERSPECTIVE_TYPES } from \"./lens-workflow.contract\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport type McpToolContract = {\n /** Stable tool name — breaking change to rename */\n name: string;\n /** Git-semantic description — breaking change to remove git references */\n description: string;\n /** Parameter schema (JSON Schema subset) */\n parameters: Record<string, McpParameterDef>;\n /** Required parameter names */\n required: string[];\n /** Response shape description */\n response: McpResponseDef;\n /** Which Lucern module owns the implementation */\n ownerModule: string;\n /** Ontology primitive this tool operates on */\n ontologyPrimitive:\n | \"belief\"\n | \"evidence\"\n | \"source\"\n | \"question\"\n | \"judgment\"\n | \"worktree\"\n | \"branch\"\n | \"lens\"\n | \"edge\"\n | \"graph\"\n | \"task\"\n | \"policy\"\n | \"ontology\"\n | \"identity\";\n /** MCP surface tier — showcase (front page, every demo) or workhorse (complete CRUD, discovered when building) */\n tier: \"showcase\" | \"workhorse\";\n /** Hide this tool from public discovery surfaces. */\n internal?: boolean;\n /** Deprecation notice shown in contract-driven docs and discovery. */\n deprecated?: string;\n};\n\nexport type McpParameterDef = {\n type: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\";\n description: string;\n required?: boolean;\n enum?: string[];\n};\n\nexport type McpResponseDef = {\n description: string;\n fields: Record<string, string>;\n};\n\n// =============================================================================\n// BELIEF LIFECYCLE TOOLS\n// =============================================================================\n\nexport const CREATE_BELIEF: McpToolContract = {\n name: \"create_belief\",\n description:\n \"Commit a new belief (knowledge unit) to the reasoning graph. \" +\n \"Like `git commit` — creates an atomic, traceable knowledge object with a mandatory prior. \" +\n \"Creation stores the vacuous opinion `(0, 0, 1, a)`; use modulate_confidence to record the first evidential update.\",\n parameters: {\n canonicalText: {\n type: \"string\",\n description: \"The belief statement — what the agent holds to be true\",\n },\n topicId: {\n type: \"string\",\n description: \"Optional topic scope hint for the belief\",\n },\n baseRate: {\n type: \"number\",\n description:\n \"Required prior probability used to seed the vacuous opinion `(0, 0, 1, a)` at creation time.\",\n },\n beliefType: {\n type: \"string\",\n description:\n \"Belief type (e.g., hypothesis, belief, principle, invariant, tenet, forecast). Validated against schemaEnumConfig.\",\n },\n metadata: {\n type: \"object\",\n description:\n \"Optional extra metadata merged into the node (e.g., { codeAnchors: ['path/to/file.ts'] } for coding intelligence)\",\n },\n },\n required: [\"canonicalText\", \"baseRate\"],\n response: {\n description: \"The created canonical belief record\",\n fields: {\n id: \"string — canonical belief ID\",\n nodeId: \"string — canonical belief ID\",\n beliefId: \"string — canonical belief ID\",\n text: \"string — canonical belief formulation\",\n topicId: \"string\",\n status: \"string — active | superseded | archived\",\n scoringState: \"string — unscored | scored\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\nexport const GET_BELIEF: McpToolContract = {\n name: \"get_belief\",\n description:\n \"Read one belief by ID. \" +\n \"Like `git show` — resolves the canonical belief payload for a single identifier.\",\n parameters: {\n id: { type: \"string\", description: \"Canonical belief ID\" },\n },\n required: [\"id\"],\n response: {\n description: \"The canonical belief record\",\n fields: {\n id: \"string — canonical belief ID\",\n nodeId: \"string — canonical belief ID\",\n beliefId: \"string — canonical belief ID\",\n text: \"string — canonical belief formulation\",\n topicId: \"string\",\n status: \"string — active | superseded | archived\",\n scoringState: \"string — unscored | scored\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\nexport const REFINE_BELIEF: McpToolContract = {\n name: \"refine_belief\",\n description:\n \"Amend a draft belief in-place within an active worktree. \" +\n \"Like `git commit --amend` — rewrites the last commit on a feature branch. \" +\n \"Only valid before merge to main. Fails if the belief is already scored.\",\n parameters: {\n nodeId: { type: \"string\", description: \"The belief to refine\" },\n canonicalText: { type: \"string\", description: \"Updated belief statement\" },\n rationale: { type: \"string\", description: \"Why the refinement was made\" },\n },\n required: [\"nodeId\", \"canonicalText\"],\n response: {\n description: \"The updated belief node\",\n fields: {\n nodeId: \"string\",\n canonicalText: \"string — updated text\",\n updatedAt: \"number — timestamp\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\nexport const MODULATE_CONFIDENCE: McpToolContract = {\n name: \"modulate_confidence\",\n description:\n \"Record a confidence change for a belief. \" +\n \"Like `git commit` to the credence log — an atomic, append-only write. \" +\n \"Each modulation is a new entry in the history, not an overwrite. \" +\n \"Scoring happens via merge; this tool records the individual data points. \" +\n \"Pass the full subjective-logic tuple (`belief`, `disbelief`, `uncertainty`, `baseRate`) directly. \" +\n \"If a caller only has a scalar probability, use `@lucern/sdk` helpers `opinionFromBaseRate`, `opinionFromDogmatic`, or `opinionFromProjected` to name the intended interpretation before calling this tool. \" +\n \"Triggers: evidence_added, evidence_removed, contradiction_detected, contradiction_resolved, agent_assessment, worktree_outcome, worktree_completed, fusion, discount, deduction, manual, decay.\",\n parameters: {\n nodeId: { type: \"string\", description: \"The belief to score\" },\n belief: {\n type: \"number\",\n description: \"Subjective-logic belief mass `b` in [0, 1]\",\n },\n disbelief: {\n type: \"number\",\n description: \"Subjective-logic disbelief mass `d` in [0, 1]\",\n },\n uncertainty: {\n type: \"number\",\n description: \"Subjective-logic uncertainty mass `u` in [0, 1]\",\n },\n baseRate: {\n type: \"number\",\n description:\n \"Subjective-logic base rate `a` in [0, 1]. Required for tuple payloads.\",\n },\n confidence: {\n type: \"number\",\n description:\n \"Deprecated scalar confidence value in [0, 1]. Scalar-only payloads are rejected as AMBIGUOUS_SCALAR.\",\n },\n trigger: {\n type: \"string\",\n description: \"What caused this confidence change\",\n enum: [\n \"evidence_added\",\n \"evidence_removed\",\n \"contradiction_detected\",\n \"contradiction_resolved\",\n \"agent_assessment\",\n \"worktree_outcome\",\n \"worktree_completed\",\n \"fusion\",\n \"discount\",\n \"deduction\",\n \"manual\",\n \"decay\",\n ],\n },\n rationale: {\n type: \"string\",\n description: \"Human-readable explanation of why confidence changed\",\n },\n },\n required: [\"nodeId\", \"trigger\", \"rationale\"],\n response: {\n description: \"Confidence modulation result\",\n fields: {\n beliefId: \"string — canonical belief ID\",\n nodeId: \"string — canonical belief ID\",\n newConfidence: \"number\",\n previousConfidence: \"number\",\n trigger: \"string\",\n requestId: \"string — request identifier for the scheduled cascade\",\n propagationSummary:\n \"object — bounded inline cascade summary with totalCandidateTargets, inlineTargets, and remainingTargetCount\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\nexport const FORK_BELIEF: McpToolContract = {\n name: \"fork_belief\",\n description:\n \"Branch off a scored belief to create a new version with a different formulation. \" +\n \"Like `git fork` — the parent remains immutable with full history. \" +\n \"The new belief gets a `supersedes` edge to the parent. \" +\n \"Fork reasons: refinement, contradiction_response, scope_change, confidence_collapse, manual.\",\n parameters: {\n nodeId: { type: \"string\", description: \"The scored belief to fork from\" },\n newFormulation: {\n type: \"string\",\n description: \"The evolved belief statement\",\n },\n forkReason: {\n type: \"string\",\n description: \"Why this fork was created\",\n enum: [\n \"refinement\",\n \"contradiction_response\",\n \"scope_change\",\n \"confidence_collapse\",\n \"manual\",\n ],\n },\n },\n required: [\"nodeId\", \"newFormulation\", \"forkReason\"],\n response: {\n description: \"The forked canonical belief record\",\n fields: {\n id: \"string — canonical child belief ID\",\n nodeId: \"string — canonical child belief ID\",\n beliefId: \"string — canonical child belief ID\",\n parentBeliefId: \"string — canonical parent belief ID\",\n forkReason: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\nexport const ARCHIVE_BELIEF: McpToolContract = {\n name: \"archive_belief\",\n description:\n \"Soft-delete a belief by setting its status to archived. \" +\n \"Like `git rm` — removed from the working tree but preserved in history. \" +\n \"Beliefs are never truly deleted. Archived beliefs retain full lineage and confidence history.\",\n parameters: {\n nodeId: { type: \"string\", description: \"The belief to archive\" },\n rationale: {\n type: \"string\",\n description: \"Why this belief is being archived\",\n },\n },\n required: [\"nodeId\"],\n response: {\n description: \"Archived canonical belief record\",\n fields: {\n beliefId: \"string — canonical belief ID\",\n nodeId: \"string — canonical belief ID\",\n previousStatus: \"string | undefined\",\n newStatus: \"string — 'archived'\",\n status: \"string — 'archived'\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\nexport const CREATE_EPISTEMIC_CONTRACT: McpToolContract = {\n name: \"create_epistemic_contract\",\n description:\n \"Bind a machine-evaluable epistemic contract to a belief. \" +\n \"Like `git add` for falsification rules — records the verification condition, modulation policy, \" +\n \"and evaluation schedule that keep a belief accountable to reality.\",\n parameters: {\n beliefNodeId: {\n type: \"string\",\n description: \"The belief node to bind this contract to\",\n },\n title: {\n type: \"string\",\n description: \"Contract title\",\n },\n description: {\n type: \"string\",\n description: \"Optional contract description\",\n },\n conditionType: {\n type: \"string\",\n description: \"What kind of contract condition to evaluate\",\n enum: [\"assertion\", \"temporal\", \"evidential\", \"threshold\", \"composite\"],\n },\n direction: {\n type: \"string\",\n description: \"Whether satisfying the condition confirms or falsifies\",\n enum: [\"confirms\", \"falsifies\"],\n },\n condition: {\n type: \"object\",\n description:\n \"Condition payload: { expression, evaluator, evaluatorConfig? }\",\n },\n deadline: {\n type: \"number\",\n description: \"Optional Unix timestamp deadline for temporal contracts\",\n },\n compositeOf: {\n type: \"array\",\n description: \"Optional array of sub-contract IDs for composite contracts\",\n },\n compositeOperator: {\n type: \"string\",\n description: \"How composite sub-contracts should be combined\",\n enum: [\"all\", \"any\", \"majority\"],\n },\n modulation: {\n type: \"object\",\n description:\n \"Asymmetric modulation rules for confirmed, disconfirmed, expired, and partial outcomes\",\n },\n evaluationSchedule: {\n type: \"string\",\n description: \"When this contract should be evaluated\",\n enum: [\"on_demand\", \"on_evidence\", \"periodic\", \"event_driven\"],\n },\n periodicIntervalMs: {\n type: \"number\",\n description: \"Optional interval in milliseconds for periodic contracts\",\n },\n },\n required: [\n \"beliefNodeId\",\n \"title\",\n \"conditionType\",\n \"direction\",\n \"condition\",\n \"modulation\",\n \"evaluationSchedule\",\n ],\n response: {\n description: \"The created epistemic contract binding\",\n fields: {\n id: \"string — storage record ID\",\n contractId: \"string — contract identifier\",\n beliefId: \"string — canonical belief ID\",\n status: \"string — initial contract status\",\n title: \"string — contract title\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// EVIDENCE TOOLS\n// =============================================================================\n\nexport const ADD_EVIDENCE: McpToolContract = {\n name: \"add_evidence\",\n description:\n \"Commit evidence to the reasoning graph and attach it to a belief. \" +\n \"Like `git add && git commit` — an atomic write that creates a traceable evidence object. \" +\n \"Weight ranges from -1.0 (contradicts) to +1.0 (strongly supports). \" +\n \"Evidence is always context-bound: tied to its source, the time it was captured, and the belief it informs.\",\n parameters: {\n canonicalText: { type: \"string\", description: \"The evidence statement\" },\n topicId: { type: \"string\", description: \"Optional topic scope hint\" },\n sourceUrl: { type: \"string\", description: \"URL of the source material\" },\n targetNodeId: {\n type: \"string\",\n description: \"The belief this evidence bears on\",\n },\n weight: {\n type: \"number\",\n description: \"Support weight: -1.0 (contradicts) to +1.0 (supports)\",\n },\n reasoning: {\n type: \"string\",\n description: \"Why this evidence is relevant to the target belief\",\n },\n title: {\n type: \"string\",\n description: \"Optional short title for the evidence node\",\n },\n content: {\n type: \"string\",\n description:\n \"Optional long-form content (separate from canonicalText summary)\",\n },\n contentType: {\n type: \"string\",\n description:\n \"Content MIME type or format hint (e.g., 'text/markdown', 'code')\",\n },\n metadata: {\n type: \"object\",\n description:\n \"Optional extra metadata merged into the node (e.g., { codeAnchors: ['path/to/file.ts'], failedApproach: true } for coding intelligence)\",\n },\n },\n required: [\"canonicalText\", \"targetNodeId\"],\n response: {\n description: \"The created evidence node and its edge\",\n fields: {\n nodeId: \"string — evidence node ID\",\n edgeId: \"string — edge to target belief\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"evidence\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// CONTRADICTION TOOLS\n// =============================================================================\n\nexport const FLAG_CONTRADICTION: McpToolContract = {\n name: \"flag_contradiction\",\n description:\n \"Flag a contradiction between two beliefs. Contradictions are first-class objects \" +\n \"with their own lifecycle — they may remain permanently unresolved. \" +\n \"Like a merge conflict that is allowed to persist. \" +\n \"Contradictions can trigger structural changes: forking, confidence collapse, or decision blocking. \" +\n \"Resolution is NEVER automatic — always surfaces for human review.\",\n parameters: {\n beliefA: {\n type: \"string\",\n description: \"First belief in the contradiction\",\n },\n beliefB: {\n type: \"string\",\n description: \"Second belief in the contradiction\",\n },\n description: { type: \"string\", description: \"What the tension is about\" },\n severity: {\n type: \"string\",\n description: \"How serious the contradiction is\",\n enum: [\"low\", \"medium\", \"high\", \"critical\"],\n },\n topicId: { type: \"string\", description: \"Optional topic scope hint\" },\n defeatType: {\n type: \"string\",\n description:\n \"Pollock defeat classification: rebuts (direct contradiction), undercuts (attacks the inferential link), undermines (attacks a premise)\",\n enum: [\"rebuts\", \"undercuts\", \"undermines\"],\n },\n },\n required: [\"beliefA\", \"beliefB\", \"description\"],\n response: {\n description: \"The created contradiction object\",\n fields: {\n contradictionId: \"string\",\n status: \"string — 'unresolved'\",\n beliefA: \"string\",\n beliefB: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// WORKTREE TOOLS (git worktree add, git merge)\n// =============================================================================\n\nexport const ADD_WORKTREE: McpToolContract = {\n name: \"add_worktree\",\n description:\n \"Check out a branch into an active worktree for investigation. \" +\n \"Like `git worktree add <branch>` — creates independent working state on a thematic branch. \" +\n \"Beliefs committed within the worktree can be freely amended (draft code on a feature branch). \" +\n \"When investigation is complete, `merge` integrates findings into main.\",\n parameters: {\n title: { type: \"string\", description: \"Worktree name/objective\" },\n topicId: { type: \"string\", description: \"Optional topic scope hint\" },\n branchId: {\n type: \"string\",\n description: \"The branch this worktree investigates\",\n },\n objective: {\n type: \"string\",\n description:\n \"Plain-text reasoning objective to auto-shape into a hypothesis, questions, tasks, and dependencies\",\n },\n hypothesis: {\n type: \"string\",\n description: \"The testable claim this worktree investigates\",\n },\n beliefIds: {\n type: \"array\",\n description: \"Beliefs to test in this worktree\",\n },\n autoShape: {\n type: \"boolean\",\n description:\n \"Whether to invoke inquiry auto-shaping during worktree creation\",\n },\n domainPackId: {\n type: \"string\",\n description:\n \"Optional domain pack whose shaping hooks should influence generated questions and tasks\",\n },\n executionOrder: {\n type: \"number\",\n description: \"Global execution order for this worktree\",\n },\n dependsOn: {\n type: \"array\",\n description: \"Worktree IDs that must complete before this one can activate\",\n },\n blocks: {\n type: \"array\",\n description: \"Worktree IDs blocked by this worktree\",\n },\n gate: {\n type: \"string\",\n description: \"Exit gate name for this worktree\",\n },\n },\n required: [\"title\", \"topicId\"],\n response: {\n description: \"The created worktree\",\n fields: {\n worktreeId: \"string\",\n branchId: \"string | null\",\n status: \"string — usually 'planning' or 'active'\",\n title: \"string\",\n hypothesis: \"string | null\",\n questionCount: \"number\",\n taskCount: \"number\",\n autoShapeApplied: \"boolean\",\n frameworkSuggestions: \"array\",\n dependencySuggestions: \"array\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"showcase\",\n};\n\nexport const MERGE: McpToolContract = {\n name: \"merge\",\n description:\n \"Merge a worktree's findings into the stable knowledge base (main). \" +\n \"Like `git merge` to main — formulations freeze, confidence is recorded, findings are integrated. \" +\n \"Each belief gets a confidence score and rationale. After merge, beliefs can only evolve via fork. \" +\n \"Low-confidence beliefs may need forking.\",\n parameters: {\n worktreeId: { type: \"string\", description: \"The worktree to merge\" },\n outcomes: {\n type: \"array\",\n description:\n \"Scoring outcomes for each belief: { beliefId, confidence, rationale }\",\n },\n summary: { type: \"string\", description: \"Overall findings summary\" },\n },\n required: [\"worktreeId\", \"outcomes\"],\n response: {\n description: \"Merge result\",\n fields: {\n worktreeId: \"string\",\n status: \"string — 'merged'\",\n beliefsScored: \"number\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// LINEAGE AND AUDIT TOOLS\n// =============================================================================\n\nexport const QUERY_LINEAGE: McpToolContract = {\n name: \"query_lineage\",\n description:\n \"Trace a belief's full ancestry — every fork, score, and confidence modulation. \" +\n \"Like `git log --graph`. \" +\n \"Returns the complete evolution chain showing how understanding developed over time. \" +\n \"Lineage is permanent and can never be erased (Invariant #3).\",\n parameters: {\n nodeId: { type: \"string\", description: \"Starting node to trace from\" },\n depth: {\n type: \"number\",\n description: \"How many generations to traverse (default: 5)\",\n },\n },\n required: [\"nodeId\"],\n response: {\n description: \"Canonical lineage result\",\n fields: {\n beliefId: \"string — canonical belief ID\",\n lineage: \"array — ancestry entries with beliefId, nodeId, formulation, forkReason, and createdAt\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\nexport const GET_CONFIDENCE_HISTORY: McpToolContract = {\n name: \"get_confidence_history\",\n description:\n \"Get the full confidence history for a belief. \" +\n \"Each entry records the confidence level, trigger, rationale, and actor. \" +\n \"Like `git log` for a single metric — append-only, never overwritten.\",\n parameters: {\n nodeId: { type: \"string\", description: \"The belief to get history for\" },\n },\n required: [\"nodeId\"],\n response: {\n description: \"Confidence history entries\",\n fields: {\n beliefId: \"string — canonical belief ID\",\n entries: \"array — { confidence, trigger, rationale, timestamp, userId }\",\n nextCursor: \"string | null\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\nexport const GET_AUDIT_TRAIL: McpToolContract = {\n name: \"get_audit_trail\",\n description:\n \"Get the full audit trail for a node — every mutation, who made it, when, and why. \" +\n \"Like `git blame` for knowledge. \" +\n \"All state transitions are explicit, attributable, and permanently queryable. \" +\n \"No silent changes are possible (Invariant #14).\",\n parameters: {\n nodeId: { type: \"string\", description: \"The node to audit\" },\n limit: {\n type: \"number\",\n description: \"Maximum entries to return (default: 50)\",\n },\n },\n required: [\"nodeId\"],\n response: {\n description: \"Audit trail entries\",\n fields: {\n entries: \"array — { action, actor, timestamp, before, after, rationale }\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// GRAPH QUERY TOOLS\n// =============================================================================\n\nexport const TRAVERSE_GRAPH: McpToolContract = {\n name: \"traverse_graph\",\n description:\n \"Walk the reasoning graph from a starting node. \" +\n \"Like `git log --graph` — traverses connected lineage across nodes and edges. \" +\n \"Traversal follows epistemic layers: L4 (judgments) → L3 (beliefs, questions) → L2 (evidence) → L1 (sources). \" +\n \"Never skips layers. \" +\n \"Use direction 'up' to trace what a piece of evidence supports, 'down' to trace what supports a judgment.\",\n parameters: {\n startNode: { type: \"string\", description: \"Node to start traversal from\" },\n direction: {\n type: \"string\",\n description: \"Traversal direction\",\n enum: [\"up\", \"down\", \"both\"],\n },\n maxDepth: {\n type: \"number\",\n description: \"Maximum traversal depth (default: 3)\",\n },\n },\n required: [\"startNode\"],\n response: {\n description: \"Subgraph of traversed nodes and edges\",\n fields: {\n nodes: \"array — traversed nodes\",\n edges: \"array — traversed edges\",\n depth: \"number\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\nexport const GET_GRAPH_NEIGHBORHOOD: McpToolContract = {\n name: \"get_graph_neighborhood\",\n description:\n \"Retrieve the local neighborhood around one or more graph nodes. \" +\n \"Like `git log --graph --boundary` for a focused reasoning window. \" +\n \"Returns the canonical neighborhood payload shared by HTTP and SDK graph surfaces.\",\n parameters: {\n globalId: {\n type: \"string\",\n description: \"Single root node global identifier.\",\n },\n globalIds: {\n type: \"array\",\n description: \"Optional list of root node global identifiers.\",\n },\n maxDepth: {\n type: \"number\",\n description: \"Maximum traversal depth (default: 2).\",\n },\n },\n required: [],\n response: {\n description: \"Canonical graph neighborhood payload\",\n fields: {\n nodes: \"array — graph nodes in the returned neighborhood\",\n edges: \"array — graph edges in the returned neighborhood\",\n depth: \"number — deepest traversed node depth\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\nexport const TRACE_ENTITY_IMPACT: McpToolContract = {\n name: \"trace_entity_impact\",\n description:\n \"Returns code-grounded beliefs, contracts, migration states, and failed attempts \" +\n \"anchored to a specific file or function path. \" +\n \"Like `git log -- <path>` — filters the knowledge graph to nodes anchored to a file path \" +\n \"via metadata.codeAnchors. Results are separated by coding belief type: decisions, contracts, \" +\n \"migrations, patterns, deprecations, and failures.\",\n parameters: {\n nodeId: {\n type: \"string\",\n description: \"Entity node ID to trace impact from\",\n },\n },\n required: [\"nodeId\"],\n response: {\n description:\n \"Entity impact trace: direct beliefs, evidence, and indirect belief reach\",\n fields: {\n entityNodeId: \"string — the traced entity\",\n entityType: \"string — nodeType of the entity\",\n directBeliefConnections:\n \"array — beliefs directly connected via bridge edges\",\n evidenceConnections: \"array — evidence referencing this entity\",\n indirectBeliefConnections: \"array — beliefs reached through evidence\",\n totalBeliefReach: \"number — total unique beliefs impacted\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\nexport const SEARCH_BELIEFS: McpToolContract = {\n name: \"search_beliefs\",\n description:\n \"Search for beliefs in the reasoning graph. \" +\n \"Like `git grep` — finds relevant beliefs across the full history and active state. \" +\n \"Supports semantic search, filtering by status (unscored, scored, archived), \" +\n \"confidence thresholds, and topic scope. \" +\n \"Returns beliefs with their current confidence, lineage depth, and contradiction count.\",\n parameters: {\n query: { type: \"string\", description: \"Semantic search query\" },\n status: {\n type: \"string\",\n description: \"Filter by belief status\",\n enum: [\"unscored\", \"scored\", \"archived\"],\n },\n minConfidence: {\n type: \"number\",\n description: \"Minimum confidence threshold (0-1)\",\n },\n topicId: { type: \"string\", description: \"Filter by topic\" },\n limit: { type: \"number\", description: \"Maximum results (default: 10)\" },\n },\n required: [\"query\"],\n response: {\n description: \"Matching beliefs with metadata\",\n fields: {\n results:\n \"array — { nodeId, canonicalText, confidence, status, contradictionCount }\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\nexport const FIND_CONTRADICTIONS: McpToolContract = {\n name: \"find_contradictions\",\n description:\n \"Find contradictions in the reasoning graph — beliefs that are in tension with each other. \" +\n \"Like a merge conflict in `git` — surfaces incompatible states that require explicit resolution. \" +\n \"Contradictions are first-class objects that may remain permanently unresolved. \" +\n \"They can block judgments, trigger forks, or collapse confidence. \" +\n \"Filter by project, status (unresolved, resolved, accepted), and severity.\",\n parameters: {\n topicId: { type: \"string\", description: \"Filter by topic\" },\n nodeId: {\n type: \"string\",\n description: \"Find contradictions involving a specific belief\",\n },\n status: {\n type: \"string\",\n description: \"Filter by status\",\n enum: [\"unresolved\", \"resolved\", \"accepted\"],\n },\n },\n required: [],\n response: {\n description: \"Contradiction objects\",\n fields: {\n contradictions:\n \"array — { beliefA, beliefB, description, severity, status, defeatType }\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// EDGE TOOLS\n// =============================================================================\n\nexport const CREATE_EDGE: McpToolContract = {\n name: \"create_edge\",\n description:\n \"Commit a typed relationship between two nodes in the reasoning graph. \" +\n \"Like `git commit` — an atomic write that declares a dependency between nodes. \" +\n \"The engine enforces layer transition rules — for example, L1 → L3 direct edges are forbidden (must go through L2).\",\n parameters: {\n sourceId: {\n type: \"string\",\n description: \"Source node of the relationship\",\n },\n targetId: {\n type: \"string\",\n description: \"Target node of the relationship\",\n },\n edgeType: {\n type: \"string\",\n description:\n \"Relationship type (informs, tests, depends_on, supersedes, etc.)\",\n },\n weight: {\n type: \"number\",\n description:\n \"Edge weight: -1.0 to +1.0 for informs edges, 0-1 for structural\",\n },\n reasoning: { type: \"string\", description: \"Why this relationship exists\" },\n reasoningMethod: {\n type: \"string\",\n description: \"How this was determined\",\n enum: [\"deductive\", \"inductive\", \"abductive\", \"analogical\", \"empirical\"],\n },\n },\n required: [\"sourceId\", \"targetId\", \"edgeType\"],\n response: {\n description: \"The created edge\",\n fields: {\n globalId: \"string — edge identifier\",\n edgeType: \"string\",\n fromLayer: \"string\",\n toLayer: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"edge\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// JUDGMENT TOOLS (Phase 1: new vocabulary, aliased to decision implementation)\n// =============================================================================\n\nexport const RECORD_JUDGMENT: McpToolContract = {\n name: \"record_judgment\",\n description:\n \"Record a judgment — an irreversible commitment based on the current epistemic state. \" +\n \"Like a `git tag` marking a release. \" +\n \"A judgment synthesizes beliefs, evidence, and uncertainties into a determination. \" +\n \"Once issued, a judgment is evaluated against the epistemic state that existed when it was made \" +\n \"(knowledge horizon evaluation, Invariant #10).\",\n parameters: {\n title: { type: \"string\", description: \"Short judgment statement\" },\n rationale: {\n type: \"string\",\n description: \"Full reasoning behind the judgment\",\n },\n topicId: { type: \"string\", description: \"Topic scope\" },\n beliefIds: {\n type: \"array\",\n description: \"Beliefs that warrant this judgment\",\n },\n confidence: {\n type: \"number\",\n description: \"Confidence in the judgment (0-1)\",\n },\n },\n required: [\"title\", \"rationale\"],\n response: {\n description: \"The recorded judgment\",\n fields: {\n judgmentId: \"string\",\n title: \"string\",\n status: \"string — 'issued'\",\n },\n },\n ownerModule: \"decisions\",\n ontologyPrimitive: \"judgment\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// LENS TOOLS (workspace-scoped operational frames)\n// =============================================================================\n\nexport const CREATE_LENS: McpToolContract = {\n name: \"create_lens\",\n description:\n \"Create a reusable lens that overlays a workspace topic with a specific analytical perspective. \" +\n \"Like `git branch <name>` for operational scaffolding — a lens persists across worktrees and carries prompts, workflows, and task templates. \" +\n \"Multiple topics in the same workspace can reuse the same lens.\",\n parameters: {\n name: {\n type: \"string\",\n description: \"Lens name (e.g., 'market dynamics', 'team quality')\",\n },\n workspaceId: {\n type: \"string\",\n description:\n \"Workspace scope for the lens. Required unless topicId resolves to a workspace-scoped topic.\",\n },\n topicId: {\n type: \"string\",\n description:\n \"Optional originating topic scope. Lenses remain reusable across topics even when this is set.\",\n },\n description: {\n type: \"string\",\n description: \"What this lens is designed to investigate or monitor\",\n },\n perspectiveType: {\n type: \"string\",\n description:\n \"Perspective type for the lens. Validated against schemaEnumConfig category 'lens_perspective_type'.\",\n enum: [...LENS_PERSPECTIVE_TYPES],\n },\n promptTemplates: {\n type: \"array\",\n description: \"Langfuse prompt references used when operating through this lens\",\n },\n workflowTemplates: {\n type: \"array\",\n description: \"Guided workflow templates for lens-driven investigations\",\n },\n taskTemplates: {\n type: \"array\",\n description: \"Default task templates instantiated when the lens is applied\",\n },\n filterCriteria: {\n type: \"object\",\n description: \"Belief/evidence filtering rules applied by the lens\",\n },\n },\n required: [\"name\", \"perspectiveType\"],\n response: {\n description: \"The created lens\",\n fields: {\n lensId: \"string\",\n name: \"string\",\n workspaceId: \"string\",\n status: \"string — 'active'\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"lens\",\n tier: \"showcase\",\n};\n\nexport const LIST_LENSES: McpToolContract = {\n name: \"list_lenses\",\n description:\n \"List reusable lenses for a workspace, optionally scored by whether they are active on a topic. \" +\n \"Like `git branch --list` — shows the available named frames you can activate. \" +\n \"When topicId is provided, the response can indicate which lenses are already applied there.\",\n parameters: {\n workspaceId: {\n type: \"string\",\n description: \"Workspace scope to list lenses from\",\n },\n topicId: {\n type: \"string\",\n description:\n \"Optional topic scope used to derive workspace and annotate applied lenses\",\n },\n status: {\n type: \"string\",\n description: \"Filter by lens lifecycle status\",\n enum: [\"draft\", \"active\", \"archived\"],\n },\n perspectiveType: {\n type: \"string\",\n description: \"Filter by perspective type\",\n enum: [...LENS_PERSPECTIVE_TYPES],\n },\n },\n required: [],\n response: {\n description: \"Available lenses\",\n fields: {\n lenses:\n \"array — each item includes lensId, name, workspaceId, perspectiveType, status, and optional isAppliedToTopic\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"lens\",\n tier: \"workhorse\",\n};\n\nexport const APPLY_LENS_TO_TOPIC: McpToolContract = {\n name: \"apply_lens_to_topic\",\n description:\n \"Apply a lens to a topic so it becomes an active perspective overlay. \" +\n \"Like `git checkout <branch>` for a reusable frame — the topic keeps its knowledge, but the active lens shapes guidance and retrieval. \" +\n \"Multiple active lenses can coexist on the same topic.\",\n parameters: {\n lensId: { type: \"string\", description: \"Lens to activate on the topic\" },\n topicId: { type: \"string\", description: \"Topic that should receive the lens\" },\n },\n required: [\"lensId\", \"topicId\"],\n response: {\n description: \"Lens activation result\",\n fields: {\n bindingId: \"string\",\n lensId: \"string\",\n topicId: \"string\",\n status: \"string — 'active'\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"lens\",\n tier: \"workhorse\",\n};\n\nexport const REMOVE_LENS_FROM_TOPIC: McpToolContract = {\n name: \"remove_lens_from_topic\",\n description:\n \"Remove an active lens overlay from a topic. \" +\n \"Like `git switch` away from a frame — the topic remains, but the lens stops shaping the investigation context. \" +\n \"Historical binding state is preserved for auditability.\",\n parameters: {\n lensId: { type: \"string\", description: \"Lens to remove from the topic\" },\n topicId: { type: \"string\", description: \"Topic that currently has the lens applied\" },\n },\n required: [\"lensId\", \"topicId\"],\n response: {\n description: \"Lens removal result\",\n fields: {\n bindingId: \"string\",\n lensId: \"string\",\n topicId: \"string\",\n status: \"string — 'removed'\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"lens\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// PUSH TOOLS (git push)\n// =============================================================================\n\nexport const PUSH: McpToolContract = {\n name: \"push\",\n description:\n \"Push scored beliefs from a merged worktree to other contexts. \" +\n \"Like `git push` — makes local findings available on the remote. \" +\n \"Only merged beliefs can be pushed. \" +\n \"Publication makes findings visible to other projects, teams, or external consumers.\",\n parameters: {\n worktreeId: {\n type: \"string\",\n description: \"The merged worktree whose findings to push\",\n },\n targetContext: {\n type: \"string\",\n description: \"Where to push (e.g., 'portfolio', 'ic_review', 'external')\",\n },\n beliefIds: {\n type: \"array\",\n description: \"Optional subset of beliefs to push (default: all scored)\",\n },\n },\n required: [\"worktreeId\", \"targetContext\"],\n response: {\n description: \"Push result\",\n fields: {\n pushedCount: \"number\",\n targetContext: \"string\",\n pushedAt: \"number\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// PULL REQUEST TOOLS (git pull request)\n// =============================================================================\n\nexport const OPEN_PULL_REQUEST: McpToolContract = {\n name: \"open_pull_request\",\n description:\n \"Open a pull request for peer review before merging a worktree. \" +\n \"Like opening a `git pull request` — the worktree's findings are ready but await approval before merge. \" +\n \"Reviewers can approve, request changes, or block the merge. \" +\n \"This is the gate between draft work and scored knowledge.\",\n parameters: {\n worktreeId: {\n type: \"string\",\n description: \"The worktree to submit for review\",\n },\n reviewers: {\n type: \"array\",\n description: \"User IDs of requested reviewers\",\n },\n summary: {\n type: \"string\",\n description: \"Summary of findings and why they're ready for merge\",\n },\n },\n required: [\"worktreeId\", \"summary\"],\n response: {\n description: \"The pull request\",\n fields: {\n pullRequestId: \"string\",\n worktreeId: \"string\",\n status: \"string — 'pending_review'\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// FORENSIC TOOLS (git bisect)\n// =============================================================================\n\nexport const BISECT_CONFIDENCE: McpToolContract = {\n name: \"bisect_confidence\",\n description:\n \"Find when a belief's confidence diverged from reality. \" +\n \"Like `git bisect` — binary search through the credence history to find the inflection point. \" +\n \"Given a belief that is now known to be wrong (or right), traces back through \" +\n \"confidence modulations to identify which evidence or event caused the divergence.\",\n parameters: {\n nodeId: { type: \"string\", description: \"The belief to bisect\" },\n expectedDirection: {\n type: \"string\",\n description: \"Was confidence too high or too low?\",\n enum: [\"overconfident\", \"underconfident\"],\n },\n timeRange: {\n type: \"object\",\n description:\n \"Optional time range to search within: { start: number, end: number }\",\n },\n },\n required: [\"nodeId\", \"expectedDirection\"],\n response: {\n description: \"The inflection point in confidence history\",\n fields: {\n beliefId: \"string — canonical belief ID\",\n expectedDirection: \"string — overconfident | underconfident\",\n inflectionEntry:\n \"object — the confidence modulation where divergence began\",\n triggerEvent: \"string | null — what caused the divergence\",\n confidenceBefore: \"number | null\",\n confidenceAfter: \"number | null\",\n totalEntries: \"number\",\n inflectionIndex: \"number | null\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// GRAPH INTELLIGENCE TOOLS\n// =============================================================================\n\nexport const DETECT_CONFIRMATION_BIAS: McpToolContract = {\n name: \"detect_confirmation_bias\",\n description:\n \"Detect confirmation bias in the evidence graph. \" +\n \"Like `git diff --stat` for reasoning — analyzes the ratio of supporting vs challenging evidence \" +\n \"per belief and flags beliefs where the evidence is suspiciously one-sided. \" +\n \"Returns risk classification (critical/high/moderate/healthy).\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic to analyze\" },\n threshold: {\n type: \"number\",\n description: \"Bias threshold (0-1, default 0.7)\",\n },\n },\n required: [\"topicId\"],\n response: {\n description: \"Beliefs with bias scores, risk levels, and evidence counts\",\n fields: {\n beliefs:\n \"array — { nodeId, biasScore, riskLevel, supportingCount, challengingCount }\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n};\n\nexport const GET_GRAPH_STRUCTURE_ANALYSIS: McpToolContract = {\n name: \"get_graph_structure_analysis\",\n description:\n \"Run comprehensive structural analysis on the knowledge graph. \" +\n \"Like `git fsck` combined with PageRank — runs 14 algorithmic detectors including \" +\n \"PageRank centrality, Louvain community detection, Tarjan SCC, Fiedler vector spectral analysis, \" +\n \"Bayesian surprise, and overconfidence detection.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic to analyze\" },\n },\n required: [\"topicId\"],\n response: {\n description:\n \"Structural analysis with detector results and recommendations\",\n fields: {\n topicId: \"string — canonical topic scope\",\n metric: \"string — analysis metric identifier\",\n payload: \"object — detector results, recommendations, graph metrics\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n};\n\nexport const GET_FALSIFICATION_QUESTIONS: McpToolContract = {\n name: \"get_falsification_questions\",\n description:\n \"Generate Popperian falsification questions for beliefs. \" +\n \"Like `git test` — identifies the questions most likely to disprove current beliefs. \" +\n \"Karl Popper as a tool: surfaces what would need to be true to invalidate each belief.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic to analyze\" },\n beliefIds: { type: \"array\", description: \"Specific beliefs to target\" },\n },\n required: [\"topicId\"],\n response: {\n description:\n \"Questions with falsification potential scores and target beliefs\",\n fields: {\n questions:\n \"array — { questionText, falsificationPotential, targetBeliefId, targetBeliefText }\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"question\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// EVIDENCE OPERATION TOOLS\n// =============================================================================\n\nexport const SEARCH_EVIDENCE: McpToolContract = {\n name: \"search_evidence\",\n description:\n \"Search for evidence across the reasoning graph. \" +\n \"Like `git grep` — returns the evidence records that best match a textual query. \" +\n \"Results share the same canonical semantics as the HTTP and SDK evidence search surface.\",\n parameters: {\n q: { type: \"string\", description: \"Search text\" },\n topicId: { type: \"string\", description: \"Topic scope filter\" },\n targetId: {\n type: \"string\",\n description: \"Optional belief or question identifier to scope the search\",\n },\n limit: { type: \"number\", description: \"Max results\" },\n cursor: { type: \"string\", description: \"Pagination cursor\" },\n },\n required: [\"q\"],\n response: {\n description: \"Canonical evidence search results page\",\n fields: {\n results:\n \"array — { evidenceId, nodeId, globalId?, text, source?, kind?, relevanceScore }\",\n nextCursor: \"string | null\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"evidence\",\n tier: \"workhorse\",\n};\n\nexport const CREATE_EVIDENCE: McpToolContract = {\n name: \"create_evidence\",\n description:\n \"Commit evidence to the reasoning graph. \" +\n \"Like `git commit` — creates a traceable evidence record with canonical public IDs. \" +\n \"Optionally links the evidence to a belief or question in the same operation.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope\" },\n text: { type: \"string\", description: \"Canonical evidence text\" },\n source: { type: \"string\", description: \"Source URL or source label\" },\n targetId: {\n type: \"string\",\n description: \"Optional belief or question identifier to link immediately\",\n },\n weight: {\n type: \"number\",\n description: \"Support weight: -1.0 (contradicts) to +1.0 (supports)\",\n },\n metadata: {\n type: \"object\",\n description: \"Optional metadata merged into the canonical evidence node\",\n },\n title: { type: \"string\", description: \"Optional short title\" },\n content: { type: \"string\", description: \"Optional long-form content\" },\n contentType: {\n type: \"string\",\n description: \"Optional content format or MIME hint\",\n },\n kind: { type: \"string\", description: \"Optional evidence kind\" },\n },\n required: [\"text\"],\n response: {\n description: \"The created canonical evidence record\",\n fields: {\n id: \"string — canonical evidence ID\",\n nodeId: \"string — canonical evidence ID\",\n evidenceId: \"string — canonical evidence ID\",\n text: \"string\",\n topicId: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"evidence\",\n tier: \"workhorse\",\n};\n\nexport const GET_EVIDENCE: McpToolContract = {\n name: \"get_evidence\",\n description:\n \"Read one evidence record by ID. \" +\n \"Like `git show` — resolves the canonical evidence payload for a single identifier.\",\n parameters: {\n id: { type: \"string\", description: \"Canonical evidence ID\" },\n },\n required: [\"id\"],\n response: {\n description: \"The canonical evidence record\",\n fields: {\n id: \"string — canonical evidence ID\",\n nodeId: \"string — canonical evidence ID\",\n evidenceId: \"string — canonical evidence ID\",\n text: \"string\",\n topicId: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"evidence\",\n tier: \"workhorse\",\n};\n\nexport const LIST_EVIDENCE: McpToolContract = {\n name: \"list_evidence\",\n description:\n \"List evidence records within a topic or linked to a target. \" +\n \"Like `git log -- path` — returns the canonical evidence page for a topic, belief, or question scope.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope filter\" },\n targetId: {\n type: \"string\",\n description: \"Optional belief or question identifier to scope by linkage\",\n },\n limit: { type: \"number\", description: \"Max results\" },\n cursor: { type: \"string\", description: \"Pagination cursor\" },\n },\n required: [],\n response: {\n description: \"Canonical evidence page\",\n fields: {\n evidence: \"array — canonical evidence records\",\n nextCursor: \"string | null\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"evidence\",\n tier: \"workhorse\",\n};\n\nexport const LINK_EVIDENCE: McpToolContract = {\n name: \"link_evidence\",\n description:\n \"Link evidence to a belief or question. \" +\n \"Like `git notes add` — attaches a supporting or contradicting edge without rewriting the evidence itself.\",\n parameters: {\n evidenceId: { type: \"string\", description: \"Canonical evidence ID\" },\n targetId: {\n type: \"string\",\n description: \"Canonical belief or question ID\",\n },\n weight: {\n type: \"number\",\n description: \"Support weight: -1.0 (contradicts) to +1.0 (supports)\",\n },\n rationale: { type: \"string\", description: \"Why this link exists\" },\n },\n required: [\"evidenceId\", \"targetId\"],\n response: {\n description: \"The created canonical evidence edge summary\",\n fields: {\n edgeId: \"string\",\n evidenceId: \"string\",\n targetId: \"string\",\n targetType: \"string — belief | question\",\n weight: \"number\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"edge\",\n tier: \"workhorse\",\n};\n\nexport const LINK_EVIDENCE_TO_BELIEF: McpToolContract = {\n name: \"link_evidence_to_belief\",\n description:\n \"Link evidence to a belief with a support weight. \" +\n \"Like `git add` — stages evidence in support of (or against) a belief. \" +\n \"The weight ranges from -1.0 (strongly contradicts) to +1.0 (strongly supports).\",\n parameters: {\n evidenceId: { type: \"string\", description: \"The evidence node ID\" },\n beliefId: { type: \"string\", description: \"The belief node ID\" },\n weight: {\n type: \"number\",\n description: \"Support weight: -1.0 (contradicts) to +1.0 (supports)\",\n },\n rationale: { type: \"string\", description: \"Why this evidence is relevant\" },\n },\n required: [\"evidenceId\", \"beliefId\", \"weight\"],\n response: {\n description: \"The created edge linking evidence to belief\",\n fields: {\n edgeId: \"string\",\n evidenceId: \"string\",\n beliefId: \"string\",\n weight: \"number\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"edge\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// QUESTION OPERATION TOOLS\n// =============================================================================\n\nexport const CREATE_QUESTION: McpToolContract = {\n name: \"create_question\",\n description:\n \"Commit an investigation question to the reasoning graph. \" +\n \"Like `git issue` — creates a traceable question that drives research and evidence collection. \" +\n \"Questions test beliefs and guide worktree investigation.\",\n parameters: {\n text: { type: \"string\", description: \"The question text\" },\n topicId: { type: \"string\", description: \"Optional topic scope hint\" },\n priority: {\n type: \"string\",\n description: \"Priority: urgent, high, medium, low\",\n enum: [\"urgent\", \"high\", \"medium\", \"low\"],\n },\n linkedBeliefId: {\n type: \"string\",\n description: \"Belief this question tests\",\n },\n metadata: {\n type: \"object\",\n description: \"Optional metadata merged into the question record\",\n },\n },\n required: [\"text\"],\n response: {\n description: \"The created canonical question record\",\n fields: {\n id: \"string — canonical question ID\",\n nodeId: \"string — canonical question ID\",\n questionId: \"string — canonical question ID\",\n text: \"string\",\n status: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\nexport const GET_QUESTION: McpToolContract = {\n name: \"get_question\",\n description:\n \"Read one question by ID. \" +\n \"Like `git show` — resolves the canonical question payload for a single identifier.\",\n parameters: {\n id: { type: \"string\", description: \"Canonical question ID\" },\n },\n required: [\"id\"],\n response: {\n description: \"The canonical question record\",\n fields: {\n id: \"string — canonical question ID\",\n nodeId: \"string — canonical question ID\",\n questionId: \"string — canonical question ID\",\n text: \"string\",\n status: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\nexport const REFINE_QUESTION: McpToolContract = {\n name: \"refine_question\",\n description:\n \"Refine a question's framing or scope. \" +\n \"Like `git commit --amend` for questions — updates the question text \" +\n \"while preserving its identity and linked evidence.\",\n parameters: {\n id: { type: \"string\", description: \"The question to refine\" },\n text: { type: \"string\", description: \"Updated question text\" },\n rationale: {\n type: \"string\",\n description: \"Why the question is being refined\",\n },\n },\n required: [\"id\", \"text\"],\n response: {\n description: \"The refined question\",\n fields: {\n id: \"string\",\n questionId: \"string\",\n updatedText: \"string\",\n previousText: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\nexport const LIST_QUESTIONS: McpToolContract = {\n name: \"list_questions\",\n description:\n \"List questions scoped to a topic or worktree. \" +\n \"Like `git issue list` — returns questions with their status, priority, and linked belief context. \" +\n \"Supports filtering by status and priority.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope\" },\n worktreeId: { type: \"string\", description: \"Filter to worktree scope\" },\n status: {\n type: \"string\",\n description: \"Filter by canonical question status\",\n enum: [\"open\", \"researching\", \"answered\", \"parked\", \"closed\"],\n },\n priority: {\n type: \"string\",\n description: \"Filter by canonical question priority\",\n enum: [\"urgent\", \"high\", \"medium\", \"low\"],\n },\n limit: { type: \"number\", description: \"Max results\" },\n cursor: { type: \"string\", description: \"Pagination cursor\" },\n },\n required: [\"topicId\"],\n response: {\n description: \"Canonical question page\",\n fields: {\n questions: \"array — canonical question records\",\n nextCursor: \"string | null\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\nexport const ANSWER_QUESTION: McpToolContract = {\n name: \"answer_question\",\n description:\n \"Answer a question with optional evidence links. \" +\n \"Like `git commit` on the question thread — records the answer and closes the loop with a canonical answered state.\",\n parameters: {\n id: { type: \"string\", description: \"Canonical question ID\" },\n text: { type: \"string\", description: \"Answer text\" },\n confidence: {\n type: \"string\",\n description: \"Optional answer confidence\",\n enum: [\"weak\", \"medium\", \"strong\"],\n },\n evidenceIds: {\n type: \"array\",\n description: \"Optional canonical evidence IDs supporting the answer\",\n },\n rationale: { type: \"string\", description: \"Why this answer is credible\" },\n },\n required: [\"id\", \"text\"],\n response: {\n description: \"Answer result\",\n fields: {\n questionId: \"string\",\n answerId: \"string\",\n status: \"string — answered\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\nexport const UPDATE_QUESTION_STATUS: McpToolContract = {\n name: \"update_question_status\",\n description:\n \"Transition a question's status through its lifecycle. \" +\n \"Like `git issue update` — moves a question through the canonical reasoning lifecycle. \" +\n \"Status transitions preserve history and keep linked evidence intact.\",\n parameters: {\n id: { type: \"string\", description: \"The question to update\" },\n status: {\n type: \"string\",\n description: \"New status\",\n enum: [\"open\", \"researching\", \"answered\", \"parked\", \"closed\"],\n },\n rationale: { type: \"string\", description: \"Why the status is changing\" },\n },\n required: [\"id\", \"status\"],\n response: {\n description: \"Updated question status\",\n fields: {\n id: \"string\",\n questionId: \"string\",\n previousStatus: \"string\",\n newStatus: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\nexport const ARCHIVE_QUESTION: McpToolContract = {\n name: \"archive_question\",\n description:\n \"Archive a question no longer relevant to current investigation scope. \" +\n \"Like `git issue close` — removes it from active work while preserving audit history. \" +\n \"Archived questions keep their existing links to beliefs and evidence.\",\n parameters: {\n questionId: { type: \"string\", description: \"The question to archive\" },\n reason: {\n type: \"string\",\n description: \"Why the question is being archived\",\n },\n },\n required: [\"questionId\"],\n response: {\n description: \"Archive confirmation\",\n fields: {\n questionId: \"string\",\n status: \"string — 'archived'\",\n archivedAt: \"number\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\nexport const LINK_EVIDENCE_TO_QUESTION: McpToolContract = {\n name: \"link_evidence_to_question\",\n description:\n \"Link evidence to the question it helps answer. \" +\n \"Like `git notes add` — attaches supporting detail to an active question. \" +\n \"Question-level links improve answer quality and traceability to beliefs.\",\n parameters: {\n evidenceId: { type: \"string\", description: \"The evidence to link\" },\n questionId: {\n type: \"string\",\n description: \"The question this evidence addresses\",\n },\n relevance: { type: \"number\", description: \"Relevance score in [0,1]\" },\n rationale: {\n type: \"string\",\n description: \"How this evidence bears on the question\",\n },\n },\n required: [\"evidenceId\", \"questionId\"],\n response: {\n description: \"The created edge\",\n fields: {\n edgeId: \"string\",\n evidenceId: \"string\",\n questionId: \"string\",\n relevance: \"number\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"edge\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// ANSWER LIFECYCLE TOOLS\n// =============================================================================\n\nexport const CREATE_ANSWER: McpToolContract = {\n name: \"create_answer\",\n description:\n \"Create an answer node responding to a question. \" +\n \"Like `git commit` for resolved questions — creates an immutable answer snapshot at L2. \" +\n \"New answers supersede old ones, preserving full version history. \" +\n \"Answers link to supporting evidence via based_on edges.\",\n parameters: {\n questionNodeId: {\n type: \"string\",\n description: \"The question node ID this answers\",\n },\n answerText: {\n type: \"string\",\n description: \"The answer content — the actual response to the question\",\n },\n topicId: {\n type: \"string\",\n description: \"Topic scope (optional if question already has topicId)\",\n },\n confidence: {\n type: \"string\",\n description:\n \"Answer confidence: definitive, strong, moderate, weak, speculative\",\n },\n evidenceNodeIds: {\n type: \"array\",\n description: \"Supporting evidence node IDs to link via based_on edges\",\n },\n answerSource: {\n type: \"string\",\n description:\n \"How the answer was produced: human, ai_generated, deep_research, synthesis\",\n },\n },\n required: [\"questionNodeId\", \"answerText\"],\n response: {\n description: \"The created answer node with version metadata\",\n fields: {\n nodeId: \"string — unique node identifier\",\n globalId: \"string — globally unique ID\",\n versionNumber: \"number — version of this answer (auto-incremented)\",\n questionNodeId: \"string — the question this answers\",\n confidence: \"string — answer confidence level\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"evidence\",\n tier: \"showcase\",\n};\n\nexport const GET_ANSWER: McpToolContract = {\n name: \"get_answer\",\n description:\n \"Get the latest answer for a question. \" +\n \"Like `git show HEAD` for a question's resolution — returns the active answer snapshot. \" +\n \"Returns null if the question is unanswered.\",\n parameters: {\n questionNodeId: {\n type: \"string\",\n description: \"The question node ID to get the answer for\",\n },\n },\n required: [\"questionNodeId\"],\n response: {\n description: \"The active answer node or null\",\n fields: {\n nodeId: \"string | null\",\n globalId: \"string | null\",\n answerText: \"string | null\",\n versionNumber: \"number\",\n isLatest: \"boolean\",\n evidenceCount: \"number\",\n confidence: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"evidence\",\n tier: \"workhorse\",\n};\n\nexport const GET_HIGH_PRIORITY_QUESTIONS: McpToolContract = {\n name: \"get_high_priority_questions\",\n description:\n \"Rank open questions by urgency and expected decision impact. \" +\n \"Like `git issue list --sort=priority` — brings the highest-leverage open questions to the top. \" +\n \"Ranking accounts for linked belief criticality and evidence gaps.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope\" },\n limit: { type: \"number\", description: \"Maximum results (default: 20)\" },\n includeAnswered: {\n type: \"boolean\",\n description: \"Include answered questions (default: false)\",\n },\n },\n required: [\"topicId\"],\n response: {\n description: \"Priority-ranked questions\",\n fields: {\n questions:\n \"array — { questionId, text, priority, urgencyScore, linkedBeliefCount, evidenceGapCount }\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\nexport const FIND_MISSING_QUESTIONS: McpToolContract = {\n name: \"find_missing_questions\",\n description:\n \"Identify beliefs missing testing questions. \" +\n \"Like `git diff --check` — surfaces reasoning coverage gaps before merge. \" +\n \"Returns candidate beliefs that need explicit question coverage.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope\" },\n minConfidence: {\n type: \"number\",\n description: \"Only check beliefs above this confidence (default: 0)\",\n },\n },\n required: [\"topicId\"],\n response: {\n description: \"Beliefs missing testing questions\",\n fields: {\n gaps: \"array — { beliefId, canonicalText, confidence, suggestedQuestions }\",\n totalGaps: \"number\",\n },\n },\n ownerModule: \"graph-search\",\n ontologyPrimitive: \"question\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// LISTING & QUERY TOOLS\n// =============================================================================\n\nexport const LIST_BELIEFS: McpToolContract = {\n name: \"list_beliefs\",\n description:\n \"List beliefs scoped to a topic or worktree. \" +\n \"Like `git log --oneline` — returns beliefs with their confidence, status, and scoring state. \" +\n \"Supports filtering by status and confidence threshold.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope\" },\n worktreeId: { type: \"string\", description: \"Filter to worktree scope\" },\n status: {\n type: \"string\",\n description: \"Filter: unscored, scored, archived\",\n enum: [\"unscored\", \"scored\", \"archived\"],\n },\n minConfidence: {\n type: \"number\",\n description: \"Minimum confidence threshold\",\n },\n },\n required: [\"topicId\"],\n response: {\n description: \"Canonical belief page\",\n fields: {\n beliefs: \"array — canonical belief records\",\n nextCursor: \"string | null\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\nexport const LIST_WORKTREES: McpToolContract = {\n name: \"list_worktrees\",\n description:\n \"List all worktrees for a topic. \" +\n \"Like `git worktree list` — shows active and completed investigation branches \" +\n \"with their phase, status, and belief counts.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope\" },\n status: {\n type: \"string\",\n description: \"Filter: active, merged, abandoned\",\n enum: [\"active\", \"merged\", \"abandoned\"],\n },\n },\n required: [\"topicId\"],\n response: {\n description:\n \"Worktrees with phase, status, belief count, and creation time\",\n fields: {\n worktrees:\n \"array — { worktreeId, title, phase, status, beliefCount, createdAt }\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"workhorse\",\n};\n\nexport const LIST_ALL_WORKTREES: McpToolContract = {\n name: \"list_all_worktrees\",\n description:\n \"List ALL worktrees across ALL topics in one query. No topic scope required. \" +\n \"Like `git worktree list --all` — returns the complete pipeline inventory with \" +\n \"track, trackPosition, executionBand, dependencies, and status. \" +\n \"Supports filtering by status, track, and executionBand. \" +\n \"This is the PM's primary pipeline query — one call, full picture.\",\n parameters: {\n status: {\n type: \"string\",\n description:\n \"Filter by status: planning, active, completed, abandoned, superseded, long_term, idea, paused, suggested, dismissed\",\n enum: [\n \"planning\",\n \"active\",\n \"completed\",\n \"abandoned\",\n \"superseded\",\n \"long_term\",\n \"idea\",\n \"paused\",\n \"suggested\",\n \"dismissed\",\n ],\n },\n track: {\n type: \"string\",\n description:\n \"Filter by track name (e.g., 'ontology', 'tc-scope', 'control-plane', 'dev-portal', 'mcp-sdk-parity')\",\n },\n executionBand: {\n type: \"number\",\n description:\n \"Filter by execution band number (e.g., 1, 2, 3). Returns only worktrees in that parallel execution group.\",\n },\n limit: {\n type: \"number\",\n description: \"Maximum results to return (default: 500, max: 1000)\",\n },\n },\n required: [],\n response: {\n description: \"All worktrees across all topics with full pipeline metadata\",\n fields: {\n worktrees:\n \"array — { worktreeId, title, topicId, topicName, phase, status, hypothesis, track, trackPosition, executionBand, executionOrder, dependsOn, blocks, gate, createdAt }\",\n total: \"number — total count after filtering\",\n tracks: \"object — { trackName: count } summary of worktrees per track\",\n bands:\n \"object — { bandNumber: count } summary of worktrees per execution band\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"showcase\",\n};\n\nexport const ACTIVATE_WORKTREE: McpToolContract = {\n name: \"activate_worktree\",\n description:\n \"Activate a worktree to begin investigation. \" +\n \"Like `git checkout <branch>` — transitions a worktree from planning to active status. \" +\n \"Sets the initial phase and enables belief/question editing within the worktree scope.\",\n parameters: {\n worktreeId: { type: \"string\", description: \"The worktree to activate\" },\n },\n required: [\"worktreeId\"],\n response: {\n description: \"Activation result with initial phase\",\n fields: {\n worktreeId: \"string\",\n status: \"string — 'active'\",\n phase: \"string\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"workhorse\",\n};\n\nexport const UPDATE_WORKTREE_TARGETS: McpToolContract = {\n name: \"update_worktree_targets\",\n description:\n \"Update the target beliefs and questions tracked by a worktree. \" +\n \"Like `git add/rm <files>` — stages or unstages beliefs/questions for investigation \" +\n \"within the worktree scope. Supports adding and removing targets atomically.\",\n parameters: {\n worktreeId: { type: \"string\", description: \"The worktree to update\" },\n addBeliefIds: {\n type: \"array\",\n description: \"Belief node IDs to add to the worktree\",\n },\n addQuestionIds: {\n type: \"array\",\n description: \"Question node IDs to add to the worktree\",\n },\n removeBeliefIds: {\n type: \"array\",\n description: \"Belief node IDs to remove from the worktree\",\n },\n removeQuestionIds: {\n type: \"array\",\n description: \"Question node IDs to remove from the worktree\",\n },\n },\n required: [\"worktreeId\"],\n response: {\n description: \"Updated target counts\",\n fields: {\n worktreeId: \"string\",\n beliefCount: \"number\",\n questionCount: \"number\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"workhorse\",\n};\n\nexport const UPDATE_WORKTREE_METADATA: McpToolContract = {\n name: \"update_worktree_metadata\",\n description:\n \"Update worktree sequencing metadata — execution order, dependencies, blocking relations, and gates. \" +\n \"Like `git config` for a worktree — sets the scheduling and dependency metadata that determines \" +\n \"when this worktree can activate relative to others. Use to backfill or correct sequencing data.\",\n parameters: {\n worktreeId: { type: \"string\", description: \"The worktree to update\" },\n hypothesis: {\n type: \"string\",\n description: \"Testable claim this worktree investigates\",\n },\n executionOrder: {\n type: \"number\",\n description: \"Global execution order (1 = first, higher = later)\",\n },\n dependsOn: {\n type: \"array\",\n description:\n \"Worktree IDs that must complete before this one can activate\",\n },\n blocks: {\n type: \"array\",\n description: \"Worktree IDs that are blocked until this one completes\",\n },\n gate: {\n type: \"string\",\n description: \"Exit gate name (e.g., 'gate:ontology-schema-hardened')\",\n },\n rationale: {\n type: \"string\",\n description: \"Why this worktree is sequenced here\",\n },\n objective: {\n type: \"string\",\n description: \"What we're trying to learn/prove\",\n },\n proofArtifacts: {\n type: \"array\",\n description:\n \"Typed proof artifacts that define what evidence or deliverables this worktree must emit before it can claim success.\",\n },\n staffingHint: {\n type: \"string\",\n description:\n \"Advisory staffing shape for the worktree (for example `backend+tests` or `fullstack`).\",\n },\n lastReconciledAt: {\n type: \"number\",\n description:\n \"Timestamp of the last deterministic workflow reconciliation pass against this worktree.\",\n },\n autoFixPolicy: {\n type: \"object\",\n description:\n \"Calibrated auto-fix policy controlling dry-run vs safe execution, per-run action caps, and permitted mutation tiers.\",\n },\n track: {\n type: \"string\",\n description:\n \"Parallel workstream name (e.g., 'ontology', 'tc-scope', 'control-plane', 'dev-portal', 'mcp-sdk-parity', 'execution-program'). Groups worktrees into named lanes for pipeline visualization and PM analysis.\",\n },\n trackPosition: {\n type: \"number\",\n description:\n \"Position within the track (1-indexed). E.g., TC-A=1, TC-B=2, TC-C=3 within the 'tc-scope' track.\",\n },\n executionBand: {\n type: \"number\",\n description:\n \"Parallel execution band number. All worktrees in the same band can run simultaneously. Band 2 = OE-B + TC-A, Band 3 = TC-B + 11D-R + S2-13A, etc.\",\n },\n status: {\n type: \"string\",\n description:\n \"Override the worktree status. Use for lifecycle transitions like marking a worktree superseded, long-term, or as a raw idea.\",\n enum: [\n \"suggested\",\n \"planning\",\n \"active\",\n \"paused\",\n \"completed\",\n \"dismissed\",\n \"abandoned\",\n \"superseded\",\n \"long_term\",\n \"idea\",\n ],\n },\n topicId: {\n type: \"string\",\n description:\n \"Reassign this worktree's primary topic. Validates the target topic exists before updating.\",\n },\n additionalTopicIds: {\n type: \"array\",\n description:\n \"Set additional topic associations for cross-topic worktrees. Each topic ID is validated before updating. \" +\n \"Use when a worktree spans multiple knowledge domains.\",\n },\n },\n required: [\"worktreeId\"],\n response: {\n description: \"Update confirmation\",\n fields: { worktreeId: \"string\", success: \"boolean\" },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"workhorse\",\n};\n\nexport const IDENTITY_WHOAMI: McpToolContract = {\n name: \"identity_whoami\",\n description:\n \"Read the authenticated identity summary for the current session. \" +\n \"Like `git config --get user.name` — shows who the current MCP session is acting as.\",\n parameters: {},\n required: [],\n response: {\n description: \"Canonical identity summary for the current session\",\n fields: {\n principalId: \"string — canonical federated principal identifier\",\n principalType: \"string — human, service, or agent\",\n tenantId: \"string | undefined — resolved tenant scope\",\n workspaceId: \"string | undefined — resolved workspace scope\",\n scopes: \"string[] | undefined — granted scopes for this session\",\n roles: \"string[] | undefined — canonical roles for this session\",\n },\n },\n ownerModule: \"identity-core\",\n ontologyPrimitive: \"identity\",\n tier: \"workhorse\",\n};\n\nexport const COMPILE_CONTEXT: McpToolContract = {\n name: \"compile_context\",\n description:\n \"Compile a focused reasoning context for a topic. \" +\n \"Like `git log --graph --decorate` for the reasoning substrate — returns the canonical Pillar 3 context pack through the public API shape.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Topic scope ID to compile\",\n },\n query: {\n type: \"string\",\n description: \"Optional focus query used to rank context items\",\n },\n budget: {\n type: \"number\",\n description: \"Token budget for prompt injection planning\",\n },\n ranking: {\n type: \"string\",\n description: \"Ranking profile for context ordering\",\n enum: [\"baseline_v1\", \"weighted_v1\"],\n },\n limit: {\n type: \"number\",\n description: \"Optional per-section item limit\",\n },\n maxDepth: {\n type: \"number\",\n description: \"Optional descendant topic depth for neighborhood expansion\",\n },\n includeEntities: {\n type: \"boolean\",\n description: \"Include related ontological entities in the compiled result\",\n },\n },\n required: [\"topicId\"],\n response: {\n description: \"Compiled context pack for the requested topic\",\n fields: {\n schemaVersion: \"string\",\n topicId: \"string\",\n topicName: \"string\",\n scopedTopicIds: \"array — topic IDs included in the compilation neighborhood\",\n generatedAt:\n \"number — deterministic graph-backed reference timestamp for this compilation\",\n ranking: \"string — baseline_v1 | weighted_v1\",\n summary: \"object — counts and scoped health signals\",\n invariants: \"array — high-confidence invariant beliefs\",\n activeBeliefs: \"array — current high-signal beliefs\",\n openQuestions: \"array — unresolved questions ranked for this query\",\n recentEvidence: \"array — recent evidence ranked for this query\",\n contradictions: \"array — unresolved contradiction records\",\n relatedEntities: \"array | undefined — ranked ontological entities in scope\",\n contextNarrative: \"array — guidance for prompt assembly\",\n injectionPolicy: \"object — token-budgeted section selections\",\n diagnostics: \"object — scoring and utilization telemetry\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// POLICY / ACL TOOLS\n// =============================================================================\n\nexport const CHECK_PERMISSION: McpToolContract = {\n name: \"check_permission\",\n description:\n \"Check whether a principal can read or mutate a topic scope. \" +\n \"Like `git check-ref-format` for ACLs — validates whether the requested operation is allowed before execution.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope to evaluate\" },\n permission: {\n type: \"string\",\n description: \"Permission to evaluate\",\n enum: [\"read\", \"write\"],\n },\n principal: {\n type: \"string\",\n description:\n \"Optional principal override (defaults to current principal)\",\n },\n beliefClusterId: {\n type: \"string\",\n description: \"Optional neighborhood scope within a topic\",\n },\n },\n required: [\"topicId\", \"permission\"],\n response: {\n description: \"Permission evaluation result\",\n fields: {\n allowed: \"boolean\",\n decision: \"string — allow | deny\",\n reasonCode: \"string\",\n principalId: \"string\",\n topicId: \"string\",\n permission: \"string — read | write\",\n },\n },\n ownerModule: \"access-control\",\n ontologyPrimitive: \"policy\",\n tier: \"workhorse\",\n};\n\nexport const FILTER_BY_PERMISSION: McpToolContract = {\n name: \"filter_by_permission\",\n description:\n \"Filter a topic set down to ACL-authorized topics. \" +\n \"Like `git rev-list --ancestry-path` for policy boundaries — keeps only topics permitted for the requested action.\",\n parameters: {\n topicIds: { type: \"array\", description: \"Topic IDs to evaluate\" },\n permission: {\n type: \"string\",\n description: \"Permission filter\",\n enum: [\"read\", \"write\"],\n },\n principal: {\n type: \"string\",\n description: \"Optional principal override (tenant admin only)\",\n },\n },\n required: [\"topicIds\", \"permission\"],\n response: {\n description: \"Allowed/denied split for the requested topic set\",\n fields: {\n permission: \"string — read | write\",\n allowedTopicIds: \"array — topic IDs allowed by policy\",\n deniedTopics: \"array — { topicId, reasonCode }\",\n count: \"number\",\n },\n },\n ownerModule: \"access-control\",\n ontologyPrimitive: \"policy\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// OBSERVATION TOOLS\n// =============================================================================\n\nexport const INGEST_OBSERVATION: McpToolContract = {\n name: \"ingest_observation\",\n description:\n \"Record an observational delta for a topic context stream. \" +\n \"Like `git notes add` — attaches structured observation metadata without mutating graph state directly. \" +\n \"Used by watcher/cowork agents to stage candidate updates before explicit write confirmation.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Optional topic scope hint for the observation\",\n },\n observationType: {\n type: \"string\",\n description: \"Observation class\",\n enum: [\n \"claim\",\n \"evidence\",\n \"question\",\n \"contradiction\",\n \"judgment\",\n \"note\",\n ],\n },\n summary: {\n type: \"string\",\n description: \"Human-readable observation summary\",\n },\n source: {\n type: \"string\",\n description: \"Optional source (message ID, tool name, URL, etc.)\",\n },\n confidence: { type: \"number\", description: \"Optional confidence in [0,1]\" },\n tags: { type: \"array\", description: \"Optional observation tags\" },\n metadata: {\n type: \"object\",\n description: \"Optional structured metadata payload\",\n },\n },\n required: [\"observationType\", \"summary\"],\n response: {\n description: \"Recorded observation entry\",\n fields: {\n observationId: \"string\",\n topicId: \"string\",\n observationType: \"string\",\n createdAt: \"number\",\n contextResourceUri: \"string\",\n },\n },\n ownerModule: \"agent-frameworks\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\nexport const GET_OBSERVATION_CONTEXT: McpToolContract = {\n name: \"get_observation_context\",\n description:\n \"Retrieve observer-ready context for a topic, including recent deltas and semantic matches. \" +\n \"Like `git log --grep` — shows recent context and filtered matches across observation history. \" +\n \"This powers prompt context injection without mutating graph state.\",\n parameters: {\n topicId: { type: \"string\", description: \"Optional topic scope hint\" },\n query: {\n type: \"string\",\n description: \"Optional semantic query over observation history\",\n },\n limit: {\n type: \"number\",\n description: \"Maximum entries in each returned collection\",\n },\n },\n required: [\"topicId\"],\n response: {\n description: \"Observation context payload\",\n fields: {\n topicId: \"string\",\n totalObservations: \"number\",\n latest: \"array\",\n semanticMatches: \"array\",\n byType: \"object\",\n generatedAt: \"number\",\n },\n },\n ownerModule: \"agent-frameworks\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// TASK LIFECYCLE TOOLS\n// =============================================================================\n\nexport const CREATE_TASK: McpToolContract = {\n name: \"create_task\",\n description:\n \"Create an execution task tied to the reasoning state. \" +\n \"Like `git task` — tracks concrete work items (calls to make, data to gather, analyses to run) \" +\n \"linked to questions, beliefs, or worktrees.\",\n parameters: {\n title: { type: \"string\", description: \"Task description\" },\n topicId: { type: \"string\", description: \"Topic scope\" },\n taskType: {\n type: \"string\",\n description: \"Type: research, interview, analysis, data_collection\",\n enum: [\"research\", \"interview\", \"analysis\", \"data_collection\"],\n },\n linkedQuestionId: {\n type: \"string\",\n description: \"Question this task addresses\",\n },\n linkedWorktreeId: { type: \"string\", description: \"Worktree scope\" },\n },\n required: [\"title\"],\n response: {\n description: \"The created task\",\n fields: {\n taskId: \"string\",\n status: \"string — 'pending'\",\n createdAt: \"number\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"task\",\n tier: \"workhorse\",\n};\n\nexport const COMPLETE_TASK: McpToolContract = {\n name: \"complete_task\",\n description:\n \"Mark a task as complete with an output summary. \" +\n \"Like `git tag` for work items — records the discrete completion event and captures what was learned. \" +\n \"Completed tasks feed back into the evidence graph.\",\n parameters: {\n taskId: { type: \"string\", description: \"The task to complete\" },\n outputSummary: {\n type: \"string\",\n description: \"What was accomplished or learned\",\n },\n evidenceCreated: {\n type: \"boolean\",\n description: \"Whether new evidence was created from this task\",\n },\n },\n required: [\"taskId\", \"outputSummary\"],\n response: {\n description: \"The completed task\",\n fields: {\n taskId: \"string\",\n completedAt: \"number\",\n outputSummary: \"string\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"task\",\n tier: \"workhorse\",\n};\n\nexport const UPDATE_TASK: McpToolContract = {\n name: \"update_task\",\n description:\n \"Update a task's fields — relink to a different worktree, belief, or question, change title/priority/status. \" +\n \"Like `git task edit` — mutates an existing task in place instead of requiring recreate-plus-supersede.\",\n parameters: {\n taskId: { type: \"string\", description: \"The task to update\" },\n linkedWorktreeId: {\n type: \"string\",\n description: \"Reassign this task to a different worktree\",\n },\n linkedBeliefId: {\n type: \"string\",\n description: \"Link or relink this task to a belief node\",\n },\n linkedQuestionId: {\n type: \"string\",\n description: \"Link or relink this task to a question node\",\n },\n title: { type: \"string\", description: \"Updated task title\" },\n description: {\n type: \"string\",\n description: \"Updated task description\",\n },\n priority: {\n type: \"string\",\n description: \"Updated priority\",\n enum: [\"critical\", \"high\", \"medium\", \"low\"],\n },\n status: {\n type: \"string\",\n description: \"Updated status\",\n enum: [\"todo\", \"in_progress\", \"blocked\", \"done\"],\n },\n },\n required: [\"taskId\"],\n response: {\n description: \"The updated task\",\n fields: {\n taskId: \"string\",\n updatedAt: \"number\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"task\",\n tier: \"workhorse\",\n};\n\nexport const LIST_TASKS: McpToolContract = {\n name: \"list_tasks\",\n description:\n \"List tasks for a topic or worktree. \" +\n \"Like `git task list` — returns tasks with status, priority, and linked nodes. \" +\n \"Filter by worktree to see tasks for a specific investigation, or by status to find incomplete work.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope\" },\n linkedWorktreeId: {\n type: \"string\",\n description: \"Filter to tasks linked to this worktree\",\n },\n status: {\n type: \"string\",\n description: \"Filter by status: todo, in_progress, blocked, done\",\n enum: [\"todo\", \"in_progress\", \"blocked\", \"done\"],\n },\n limit: { type: \"number\", description: \"Maximum results (default: 100)\" },\n },\n required: [\"topicId\"],\n response: {\n description: \"List of tasks with metadata\",\n fields: { tasks: \"array of task objects\", count: \"number\" },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"task\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// TOPIC TOOLS (git init, git remote)\n// =============================================================================\n\nexport const CREATE_TOPIC: McpToolContract = {\n name: \"create_topic\",\n description:\n \"Create a new topic container for scoping knowledge. \" +\n \"Like `git init` — initializes a new repository for a knowledge domain. \" +\n \"Topics are hierarchical: a deal topic can nest under a theme topic. \" +\n \"Types: domain, theme, deal, strategy, constitution, project, portfolio.\",\n parameters: {\n name: { type: \"string\", description: \"Topic name\" },\n type: {\n type: \"string\",\n description:\n \"Topic type. Validated against schemaEnumConfig category 'topic_type'.\",\n },\n description: { type: \"string\", description: \"What this topic covers\" },\n parentTopicId: {\n type: \"string\",\n description: \"Optional parent topic for nesting\",\n },\n createdBy: { type: \"string\", description: \"Who created this topic\" },\n },\n required: [\"name\", \"type\"],\n response: {\n description: \"The created topic\",\n fields: {\n id: \"string — topic ID\",\n globalId: \"string — globally unique ID\",\n depth: \"number — nesting depth\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n};\n\nexport const LIST_TOPICS: McpToolContract = {\n name: \"list_topics\",\n description:\n \"List topics, optionally filtered by type or parent. \" +\n \"Like `git remote -v` — shows all knowledge containers with their types and hierarchy.\",\n parameters: {\n type: {\n type: \"string\",\n description: \"Filter by topic type (e.g., 'theme', 'deal')\",\n },\n parentTopicId: {\n type: \"string\",\n description: \"Filter to children of this parent\",\n },\n status: {\n type: \"string\",\n description: \"Filter by status\",\n enum: [\"active\", \"archived\", \"watching\"],\n },\n },\n required: [],\n response: {\n description: \"List of topics with metadata\",\n fields: {\n topics: \"array — { id, name, type, depth, status, parentTopicId }\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\nexport const GET_TOPIC: McpToolContract = {\n name: \"get_topic\",\n description:\n \"Get one topic by ID. \" +\n \"Like `git remote show origin` — inspects a single knowledge container in detail.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Canonical topic ID to retrieve\",\n },\n id: {\n type: \"string\",\n description: \"Legacy alias for topicId\",\n },\n },\n required: [],\n response: {\n description: \"Single topic record\",\n fields: {\n topic:\n \"object — { id, globalId, name, type, depth, status, parentTopicId, description }\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\nexport const UPDATE_TOPIC: McpToolContract = {\n name: \"update_topic\",\n description:\n \"Update an existing topic's metadata. \" +\n \"Like `git remote set-url` — changes the canonical configuration for a knowledge container without recreating it.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Canonical topic ID to update\",\n },\n id: {\n type: \"string\",\n description: \"Legacy alias for topicId\",\n },\n name: { type: \"string\", description: \"Updated topic name\" },\n description: { type: \"string\", description: \"Updated topic description\" },\n type: {\n type: \"string\",\n description:\n \"Updated topic type. Validated against schemaEnumConfig category 'topic_type'.\",\n },\n ontologyId: {\n type: \"string\",\n description: \"Updated ontology binding\",\n },\n clearOntologyId: {\n type: \"boolean\",\n description: \"Clear the current ontology binding\",\n },\n status: {\n type: \"string\",\n description: \"Updated topic status\",\n enum: [\"active\", \"archived\", \"watching\"],\n },\n visibility: {\n type: \"string\",\n description: \"Updated topic visibility\",\n enum: [\"private\", \"team\", \"firm\", \"external\", \"public\"],\n },\n },\n required: [],\n response: {\n description: \"The updated topic\",\n fields: {\n id: \"string — topic ID\",\n globalId: \"string — globally unique ID\",\n status: \"string — topic lifecycle status\",\n visibility: \"string — topic visibility\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\nexport const GET_TOPIC_TREE: McpToolContract = {\n name: \"get_topic_tree\",\n description:\n \"Get the full topic hierarchy from a root. \" +\n \"Like `git log --graph --all` — shows the complete tree of nested topics.\",\n parameters: {\n rootId: { type: \"string\", description: \"Root topic to start from\" },\n maxDepth: {\n type: \"number\",\n description: \"Maximum depth to traverse (default: 5)\",\n },\n },\n required: [\"rootId\"],\n response: {\n description: \"Tree of topics with nesting\",\n fields: { tree: \"array — topics in BFS order with depth and path\" },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// CODING INTELLIGENCE TOOLS (code-grounded knowledge)\n// =============================================================================\n\nexport const GET_CODE_CONTEXT: McpToolContract = {\n name: \"get_code_context\",\n description:\n \"Returns code-grounded beliefs, contracts, migration states, and failed attempts anchored to a specific file or function path. \" +\n \"Like `git log -- <path>` — filters the knowledge graph to nodes anchored to a file path via metadata.codeAnchors. \" +\n \"Results are separated by coding belief type: decisions, contracts, migrations, patterns, deprecations, and failures.\",\n parameters: {\n filePath: {\n type: \"string\",\n description:\n \"File path to search for (partial matches supported, e.g. 'epistemicBeliefs.ts' or 'convex/epistemicBeliefs.ts')\",\n },\n topicId: {\n type: \"string\",\n description: \"Topic scope (optional, uses default if not provided)\",\n },\n includeFailures: {\n type: \"boolean\",\n description: \"Whether to include failed attempt evidence (default: true)\",\n },\n },\n required: [\"filePath\"],\n response: {\n description: \"Code-anchored beliefs and evidence grouped by type\",\n fields: {\n filePath: \"string — queried path\",\n decisions: \"array — implementation_decision beliefs\",\n contracts: \"array — interface_contract beliefs\",\n migrations: \"array — migration_state beliefs\",\n patterns: \"array — code_pattern beliefs\",\n deprecations: \"array — deprecation_notice beliefs\",\n failures: \"array — failed attempt evidence\",\n totalMatched: \"number\",\n },\n },\n ownerModule: \"coding-intelligence\",\n ontologyPrimitive: \"belief\",\n tier: \"showcase\",\n};\n\nexport const GET_CHANGE_HISTORY: McpToolContract = {\n name: \"get_change_history\",\n description:\n \"Returns recent changes and decisions for a file path — the 'why' behind recent code changes. \" +\n \"Like `git log --follow <path>` — shows the evolution of understanding anchored to a specific file. \" +\n \"Searches beliefs and evidence updated recently, sorted by most recent first.\",\n parameters: {\n filePath: { type: \"string\", description: \"File path to get history for\" },\n topicId: { type: \"string\", description: \"Topic scope (optional)\" },\n limit: { type: \"number\", description: \"Max results (default: 10)\" },\n },\n required: [\"filePath\"],\n response: {\n description: \"Recent code-anchored changes sorted by recency\",\n fields: {\n filePath: \"string — queried path\",\n changes:\n \"array — nodes with coding view (nodeId, beliefType, canonicalText, codeAnchors, timestamps)\",\n totalFound: \"number\",\n showing: \"number\",\n },\n },\n ownerModule: \"coding-intelligence\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\nexport const RECORD_ATTEMPT: McpToolContract = {\n name: \"record_attempt\",\n description:\n \"Log a failed approach as evidence linked to a belief. \" +\n \"Like `git stash` for failed experiments — preserves what was tried so the same mistake isn't repeated. \" +\n \"Creates evidence with metadata.failedApproach=true and metadata.codeAnchors. \" +\n \"The key anti-repetition mechanism: future agents check the failure log before trying new approaches.\",\n parameters: {\n description: {\n type: \"string\",\n description: \"What was attempted and why it failed\",\n },\n filePaths: {\n type: \"array\",\n description: \"File paths involved in the attempt\",\n },\n errorMessage: {\n type: \"string\",\n description: \"Error message or failure reason\",\n },\n linkedBeliefId: {\n type: \"string\",\n description:\n \"Belief this attempt was targeting (creates -0.5 weight edge)\",\n },\n topicId: { type: \"string\", description: \"Topic scope (optional)\" },\n },\n required: [\"description\"],\n response: {\n description: \"The recorded failed attempt evidence node\",\n fields: {\n nodeId: \"string — evidence node ID\",\n edgeId: \"string | null — edge to linked belief\",\n recorded: \"boolean — true\",\n filePaths: \"array — anchored file paths\",\n },\n },\n ownerModule: \"coding-intelligence\",\n ontologyPrimitive: \"evidence\",\n tier: \"showcase\",\n};\n\nexport const GET_FAILURE_LOG: McpToolContract = {\n name: \"get_failure_log\",\n description:\n \"Search past failed attempts matching a task description. \" +\n \"Like `git log --grep='FAILED'` — finds evidence of what was tried before and didn't work. \" +\n \"Before trying a new approach, check this log to avoid repeating the same mistake. \" +\n \"Filters to evidence with metadata.failedApproach=true, sorted by recency.\",\n parameters: {\n query: {\n type: \"string\",\n description: \"Description of the task or approach to search for\",\n },\n filePath: {\n type: \"string\",\n description: \"Optional file path to narrow results\",\n },\n topicId: { type: \"string\", description: \"Topic scope (optional)\" },\n limit: { type: \"number\", description: \"Max results (default: 5)\" },\n },\n required: [\"query\"],\n response: {\n description: \"Failed attempts matching the query\",\n fields: {\n query: \"string — search query\",\n failures: \"array — failed attempt evidence with coding view\",\n totalFound: \"number\",\n showing: \"number\",\n },\n },\n ownerModule: \"coding-intelligence\",\n ontologyPrimitive: \"evidence\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// GRAPH SELF-INTELLIGENCE TOOLS\n// =============================================================================\n\nexport const GET_TOPIC_COVERAGE: McpToolContract = {\n name: \"get_topic_coverage\",\n description:\n \"Returns per-topic belief/question/evidence counts across the topic tree. \" +\n \"Like `git diff --stat` for the knowledge graph — shows coverage density \" +\n \"and empty spots across the topic hierarchy. Use to identify which topics \" +\n \"need more beliefs, which lack questions, and overall graph health.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Topic scope ID (optional, uses default if not provided)\",\n },\n includeDescendants: {\n type: \"boolean\",\n description:\n \"Whether to include descendant topics in the coverage report (default: true)\",\n },\n maxDepth: {\n type: \"number\",\n description:\n \"Maximum descendant topic depth for neighborhood expansion. \" +\n \"Defaults to 4 for root/theme scopes, 2 for deeper scopes.\",\n },\n },\n required: [],\n response: {\n description: \"Per-topic coverage metrics and aggregate summary\",\n fields: {\n topics:\n \"array — per-topic { topicId, name, type, depth, beliefs, questions, evidence, coverage }\",\n summary:\n \"object — { totalTopics, coveredTopics, emptyTopics, coveragePercent, totalBeliefs, totalQuestions, totalEvidence }\",\n scopeTopicId: \"string — the root topic used for scoping\",\n },\n },\n ownerModule: \"coverage-intelligence\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n};\n\nexport const GET_GRAPH_GAPS: McpToolContract = {\n name: \"get_graph_gaps\",\n description:\n \"Identify structural gaps in the knowledge graph — empty topics, beliefs \" +\n \"without questions, beliefs without evidence, and orphan edges. \" +\n \"Like `git fsck` for reasoning coverage — surfaces holes that weaken \" +\n \"the epistemic foundation. Returns prioritized gap list.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Topic scope ID (optional, uses default if not provided)\",\n },\n maxDepth: {\n type: \"number\",\n description:\n \"Maximum descendant topic depth for neighborhood expansion (default: 4)\",\n },\n },\n required: [\"topicId\"],\n response: {\n description: \"Prioritized list of graph gaps by category\",\n fields: {\n emptyTopics:\n \"array — topics with zero beliefs { topicId, name, type, depth }\",\n beliefsWithoutQuestions:\n \"array — beliefs that have no testing questions { nodeId, canonicalText, topicId }\",\n beliefsWithoutEvidence:\n \"array — beliefs that have no supporting evidence { nodeId, canonicalText, topicId }\",\n summary:\n \"object — { totalGaps, emptyTopicCount, untestedBeliefCount, unsupportedBeliefCount }\",\n scopeTopicId: \"string — the root topic used for scoping\",\n },\n },\n ownerModule: \"coverage-intelligence\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n};\n\n// =============================================================================\n// SESSION INITIALIZATION\n// =============================================================================\n\n// =============================================================================\n// WRITE POLICY (S2-13K Graph Compounding)\n// =============================================================================\n\nexport const MANAGE_WRITE_POLICY: McpToolContract = {\n name: \"manage_write_policy\",\n description:\n \"Manage write policies for MCP mutation tools. \" +\n \"Like `git config` for write permissions — sets per-topic or global \" +\n \"policies that control which roles can mutate the graph.\",\n parameters: {\n action: {\n type: \"string\",\n description:\n \"Action to perform: 'get' (read policies) or 'set' (upsert a policy)\",\n enum: [\"get\", \"set\"],\n },\n topicId: {\n type: \"string\",\n description: \"Topic scope for the policy. Omit for global policies.\",\n },\n role: {\n type: \"string\",\n description:\n \"Role to set policy for (required for 'set'). E.g. 'agent:internal', 'user:analyst'.\",\n },\n permission: {\n type: \"string\",\n description: \"Permission level (required for 'set').\",\n enum: [\"allow\", \"deny\", \"read_only\"],\n },\n maxWritesPerSession: {\n type: \"number\",\n description: \"Optional per-session write limit for this role+scope.\",\n },\n rationale: {\n type: \"string\",\n description: \"Why this policy is being set (audit trail).\",\n },\n },\n required: [\"action\"],\n response: {\n description: \"Policy operation result\",\n fields: {\n action: \"string — get | set\",\n topicId: \"string|null — topic scope or null for global\",\n policies: \"array — (for get) list of matching policies\",\n role: \"string — (for set) role that was updated\",\n permission: \"string — (for set) new permission level\",\n maxWritesPerSession: \"number|null — (for set) session write cap\",\n },\n },\n ownerModule: \"access-control\",\n ontologyPrimitive: \"policy\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// ONTOLOGY TOOLS (ontology lifecycle, version management)\n// =============================================================================\n\nexport const LIST_ONTOLOGIES: McpToolContract = {\n name: \"list_ontologies\",\n description:\n \"List ontology definitions with optional filters. \" +\n \"Like `git remote -v` for ontologies — shows all registered ontology definitions \" +\n \"with their tier, status, and tenant scope.\",\n parameters: {\n tenantId: {\n type: \"string\",\n description: \"Filter by tenant ID. Omit for platform-level ontologies.\",\n },\n tier: {\n type: \"string\",\n description: \"Filter by tier\",\n enum: [\"platform\", \"pack\", \"tenant\"],\n },\n status: {\n type: \"string\",\n description: \"Filter by status\",\n enum: [\"draft\", \"active\", \"deprecated\", \"archived\"],\n },\n },\n required: [],\n response: {\n description: \"Array of ontology definitions\",\n fields: {\n ontologies:\n \"array — ontology definitions with id, ontologyKey, name, tier, status\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"showcase\",\n};\n\nexport const GET_ONTOLOGY: McpToolContract = {\n name: \"get_ontology\",\n description:\n \"Get a single ontology definition by ID or ontologyKey. \" +\n \"Like `git show` for an ontology — returns the definition metadata plus the latest \" +\n \"published version with entity types and edge types.\",\n parameters: {\n id: {\n type: \"string\",\n description: \"Ontology definition ID (Convex document ID)\",\n },\n ontologyKey: {\n type: \"string\",\n description:\n \"Ontology key (e.g., 'investment-ontology'). Alternative to id.\",\n },\n tenantId: {\n type: \"string\",\n description: \"Tenant scope for key lookup. Omit for platform-level.\",\n },\n },\n required: [],\n response: {\n description: \"Ontology definition with latest published version\",\n fields: {\n id: \"string — definition ID\",\n ontologyKey: \"string — unique key\",\n name: \"string — display name\",\n publishedVersion:\n \"object|null — latest published version with entityTypes and edgeTypes\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"showcase\",\n};\n\nexport const APPLY_ONTOLOGY: McpToolContract = {\n name: \"apply_ontology\",\n description:\n \"Bind an ontology definition directly to a topic. \" +\n \"Like `git checkout` for a domain vocabulary — applies an ontology to a topic so the topic \" +\n \"and its descendants inherit the configured entity and edge schema.\",\n parameters: {\n ontologyId: {\n type: \"string\",\n description: \"Canonical ontology identifier to bind\",\n },\n topicId: {\n type: \"string\",\n description: \"Canonical topic identifier to receive the binding\",\n },\n },\n required: [\"ontologyId\", \"topicId\"],\n response: {\n description: \"Ontology binding summary\",\n fields: {\n applied: \"boolean — true when the binding was written\",\n source: \"string — always 'direct' for an explicit bind\",\n ontologyId: \"string — canonical ontology ID\",\n ontologyKey: \"string — ontology key\",\n topicId: \"string — canonical topic ID\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"ontology\",\n tier: \"showcase\",\n};\n\nexport const MATCH_ENTITY_TYPE: McpToolContract = {\n name: \"match_entity_type\",\n description:\n \"Classify free text against the effective ontology vocabulary. \" +\n \"Like `git grep` for ontology types — ranks the most likely entity types for the supplied text \" +\n \"using the topic-bound or explicitly selected ontology.\",\n parameters: {\n text: {\n type: \"string\",\n description: \"Free text to classify against ontology entity types\",\n },\n topicId: {\n type: \"string\",\n description:\n \"Canonical topic ID used to resolve the effective ontology when ontologyId is omitted\",\n },\n ontologyId: {\n type: \"string\",\n description:\n \"Optional ontology definition ID to match against instead of the topic-bound ontology\",\n },\n minScore: {\n type: \"number\",\n description: \"Optional lower similarity bound for returned matches\",\n },\n limit: {\n type: \"number\",\n description: \"Optional maximum number of ranked matches to return\",\n },\n },\n required: [\"text\"],\n response: {\n description: \"Ranked ontology entity type matches\",\n fields: {\n matches:\n \"array — ranked entity type matches with score, entityType, label, and optional description\",\n ontologyId: \"string|null — ontology used for matching\",\n topicId: \"string|null — topic scope used for ontology resolution\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"ontology\",\n tier: \"showcase\",\n};\n\nexport const CREATE_ONTOLOGY: McpToolContract = {\n name: \"create_ontology\",\n description:\n \"Create a new ontology definition. \" +\n \"Like `git init` for a domain vocabulary — creates a named, versioned container for \" +\n \"entity types and edge types. Starts in 'draft' status.\",\n parameters: {\n ontologyKey: {\n type: \"string\",\n description:\n \"Unique key (lowercase, hyphens, e.g., 'investment-ontology')\",\n },\n name: { type: \"string\", description: \"Human-readable name\" },\n description: { type: \"string\", description: \"What this ontology covers\" },\n tenantId: {\n type: \"string\",\n description: \"Tenant scope. Omit for platform-level.\",\n },\n tier: {\n type: \"string\",\n description: \"Ontology tier\",\n enum: [\"platform\", \"pack\", \"tenant\"],\n },\n parentOntologyId: {\n type: \"string\",\n description: \"Parent ontology ID for layered composition\",\n },\n },\n required: [\"ontologyKey\", \"name\", \"tier\"],\n response: {\n description: \"Created ontology definition\",\n fields: {\n id: \"string — new definition ID\",\n ontologyKey: \"string — normalized key\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"showcase\",\n};\n\nexport const UPDATE_ONTOLOGY: McpToolContract = {\n name: \"update_ontology\",\n description:\n \"Update an ontology definition's metadata (name, description, status). \" +\n \"Like `git config` for an ontology — updates mutable fields on the definition. \" +\n \"Only allowed while the ontology is in draft or active status.\",\n parameters: {\n id: { type: \"string\", description: \"Ontology definition ID\" },\n name: { type: \"string\", description: \"New display name\" },\n description: { type: \"string\", description: \"New description\" },\n status: {\n type: \"string\",\n description: \"New status\",\n enum: [\"draft\", \"active\", \"deprecated\"],\n },\n },\n required: [\"id\"],\n response: {\n description: \"Update confirmation\",\n fields: { success: \"boolean\" },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"workhorse\",\n};\n\nexport const ARCHIVE_ONTOLOGY: McpToolContract = {\n name: \"archive_ontology\",\n description:\n \"Archive an ontology definition. \" +\n \"Like `git rm` for an ontology — soft-deletes the definition. \" +\n \"Archived ontologies are preserved in history but no longer active.\",\n parameters: {\n id: { type: \"string\", description: \"Ontology definition ID to archive\" },\n },\n required: [\"id\"],\n response: {\n description: \"Archive confirmation\",\n fields: { success: \"boolean\" },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"workhorse\",\n};\n\nexport const CREATE_ONTOLOGY_VERSION: McpToolContract = {\n name: \"create_ontology_version\",\n description:\n \"Create a new version snapshot for an ontology definition. \" +\n \"Like `git commit` for ontology content — captures entity types and edge types \" +\n \"in a versioned snapshot. Starts in 'draft' status. Publish to freeze.\",\n parameters: {\n ontologyId: {\n type: \"string\",\n description: \"Parent ontology definition ID\",\n },\n version: {\n type: \"string\",\n description: \"Semantic version string (X.Y.Z format)\",\n },\n entityTypes: {\n type: \"array\",\n description:\n \"Array of entity type definitions: [{ value, label, description?, schema?, subtypes? }]\",\n },\n edgeTypes: {\n type: \"array\",\n description:\n \"Array of edge type definitions: [{ value, label, description?, sourceTypes?, targetTypes?, constraintSeverity? }]\",\n },\n releaseNotes: {\n type: \"string\",\n description: \"Optional release notes for this version\",\n },\n },\n required: [\"ontologyId\", \"version\", \"entityTypes\", \"edgeTypes\"],\n response: {\n description: \"Created version\",\n fields: {\n id: \"string — new version ID\",\n version: \"string — version string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"showcase\",\n};\n\nexport const PUBLISH_ONTOLOGY_VERSION: McpToolContract = {\n name: \"publish_ontology_version\",\n description:\n \"Publish a draft ontology version — freezes it permanently. \" +\n \"Like `git tag` for an ontology release — the version becomes immutable after publish. \" +\n \"If the parent definition is still in 'draft', promotes it to 'active'.\",\n parameters: {\n id: { type: \"string\", description: \"Ontology version ID to publish\" },\n },\n required: [\"id\"],\n response: {\n description: \"Publish confirmation\",\n fields: {\n success: \"boolean\",\n publishedAt: \"number — timestamp\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"showcase\",\n};\n\nexport const DEPRECATE_ONTOLOGY_VERSION: McpToolContract = {\n name: \"deprecate_ontology_version\",\n description:\n \"Deprecate a published ontology version. \" +\n \"Like `git tag -d` for an ontology release — marks the version as deprecated. \" +\n \"Only published versions can be deprecated.\",\n parameters: {\n id: { type: \"string\", description: \"Ontology version ID to deprecate\" },\n },\n required: [\"id\"],\n response: {\n description: \"Deprecation confirmation\",\n fields: { success: \"boolean\" },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"workhorse\",\n};\n\nexport const RESOLVE_EFFECTIVE_ONTOLOGY: McpToolContract = {\n name: \"resolve_effective_ontology\",\n description:\n \"Resolve the effective ontology by composing the parent chain. \" +\n \"Like `git merge --squash` for ontology layers — walks parentOntologyId chain \" +\n \"(max depth 3) and merges entity/edge types additively from root (platform) to leaf (tenant).\",\n parameters: {\n ontologyId: {\n type: \"string\",\n description: \"Ontology definition ID to resolve from\",\n },\n },\n required: [\"ontologyId\"],\n response: {\n description: \"Merged ontology with composed entity and edge types\",\n fields: {\n entityTypes: \"array — merged entity types from all layers\",\n edgeTypes: \"array — merged edge types from all layers\",\n layers: \"array — ontology keys in composition order\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"ontology\",\n tier: \"workhorse\",\n};\n\n// =============================================================================\n// FUNCTION SURFACE WORKFLOW TOOLS\n// =============================================================================\n\nexport const RECORD_SCOPE_LEARNING: McpToolContract = {\n name: \"record_scope_learning\",\n description:\n \"Write a structured learning entry into the epistemic spine. \" +\n \"Like `git commit` for scope learnings — records evidence, can attach to a belief, and can open a follow-up belief/question in one atomic workflow.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope ID\" },\n summary: { type: \"string\", description: \"Atomic learning statement\" },\n title: {\n type: \"string\",\n description: \"Optional evidence title, such as a commit, doc, or issue.\",\n },\n body: {\n type: \"string\",\n description:\n \"Optional rich evidence body. If omitted, body is synthesized from summary and touched paths.\",\n },\n contentType: {\n type: \"string\",\n description: \"Optional evidence body format, such as markdown or text.\",\n },\n sourceKind: {\n type: \"string\",\n description: \"Source type for the learning event\",\n enum: [\"commit\", \"merge\", \"doc\", \"issue\", \"manual\"],\n },\n sourceRef: {\n type: \"string\",\n description: \"Optional source reference, such as SHA, PR number, or URL slug.\",\n },\n sourceUrl: { type: \"string\", description: \"Optional canonical source URL\" },\n touchedPaths: {\n type: \"array\",\n description: \"Optional touched file paths for retrieval hints\",\n },\n tags: { type: \"array\", description: \"Optional tags\" },\n linkedBeliefNodeId: {\n type: \"string\",\n description: \"Optional belief to attach evidence to\",\n },\n evidenceRelation: {\n type: \"string\",\n description: \"Relation to linked belief\",\n enum: [\"supports\", \"contradicts\"],\n },\n confidence: { type: \"number\", description: \"Optional confidence in [0,1]\" },\n createQuestionText: {\n type: \"string\",\n description: \"Optional follow-up question text\",\n },\n createBeliefText: {\n type: \"string\",\n description: \"Optional new belief text\",\n },\n beliefType: {\n type: \"string\",\n description: \"Optional belief type for createBeliefText\",\n },\n },\n required: [\"summary\"],\n response: {\n description: \"Created learning artifacts\",\n fields: {\n topicId: \"string — resolved topic ID\",\n evidenceNodeId: \"string\",\n linkedBeliefNodeId: \"string | null\",\n createdQuestionId: \"string | null\",\n createdBeliefId: \"string | null\",\n sourceUrl: \"string\",\n createdAt: \"number\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"evidence\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const PIPELINE_SNAPSHOT: McpToolContract = {\n name: \"pipeline_snapshot\",\n description:\n \"Summarize a topic's worktree pipeline in band-and-lane form. \" +\n \"Like `git status --short` for Lucern execution — returns the hinge worktree, next planned wave, blockers, critical path, superseded work, and graph hygiene debt.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic scope ID\" },\n },\n required: [\"topicId\"],\n response: {\n description: \"Human-oriented pipeline summary for a single topic scope\",\n fields: {\n topicId: \"string\",\n topicName: \"string\",\n currentBand: \"number | null\",\n nextBand: \"number | null\",\n activeWorktrees: \"array — current hinge worktree(s)\",\n nextWave: \"array — worktrees in the next planned band\",\n readyNow: \"array — planning worktrees with dependencies completed\",\n blockedBy: \"array — grouped blockers\",\n criticalPath: \"array — ordered incomplete worktree chain\",\n bands: \"array — incomplete worktrees grouped by executionBand\",\n superseded: \"array — worktrees marked superseded or not for activation\",\n graphHygiene: \"object — untargeted and taskless worktree debt\",\n riskQuestions: \"array — critical/high open questions\",\n narrative: \"array — concise natural-language summary lines\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const DISCOVER: McpToolContract = {\n name: \"discover\",\n description:\n \"Navigate the topic tree to find where knowledge lives. \" +\n \"Like `git log --all --grep` — searches across the graph using bottom-up content matching plus top-down structural scoring.\",\n parameters: {\n query: {\n type: \"string\",\n description: \"What to look for across the topic tree\",\n },\n topK: {\n type: \"number\",\n description: \"How many matching topics to return (default: 3, max: 10)\",\n },\n includeNeighborhood: {\n type: \"boolean\",\n description:\n \"Whether to include beliefs/questions/evidence for matched topics\",\n },\n },\n required: [\"query\"],\n response: {\n description: \"Ranked topic matches with optional neighborhood content\",\n fields: {\n query: \"string — original query\",\n matchedTopics: \"array — ranked topics with scores and paths\",\n neighborhoods: \"array — beliefs, questions, evidence for each match\",\n totalTopicsScored: \"number\",\n topicTreeSize: \"number\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n deprecated: \"Deprecated: use lucern.context.compile() with topicId\",\n};\n\nexport const ANALYZE_TOPIC_DENSITY: McpToolContract = {\n name: \"analyze_topic_density\",\n description:\n \"Analyze topic belief density and identify natural conceptual clusters. \" +\n \"Like `git diff --stat` for topic organization — detects when a topic has accumulated too many beliefs and suggests subtopic decomposition.\",\n parameters: {\n topicId: { type: \"string\", description: \"Topic ID to analyze\" },\n threshold: {\n type: \"number\",\n description: \"Belief count threshold for density warning\",\n },\n minModularity: {\n type: \"number\",\n description: \"Minimum modularity score for suggesting decomposition\",\n },\n },\n required: [\"topicId\"],\n response: {\n description: \"Density analysis with cluster suggestions\",\n fields: {\n topicId: \"string\",\n topicName: \"string\",\n beliefCount: \"number\",\n edgeCount: \"number\",\n threshold: \"number\",\n isDense: \"boolean\",\n modularity: \"number\",\n clusterCount: \"number\",\n clusters: \"array — suggested belief clusters\",\n recommendation: \"string\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n};\n\nexport const APPLY_AUTO_BRANCHING: McpToolContract = {\n name: \"apply_auto_branching\",\n description:\n \"Execute topic decomposition by creating subtopics and reassigning beliefs. \" +\n \"Like `git subtree split` — splits a dense topic into focused subtopics while preserving belief identity and edges.\",\n parameters: {\n topicId: { type: \"string\", description: \"Parent topic ID to decompose\" },\n clusters: {\n type: \"array\",\n description:\n \"Cluster definitions from analyze_topic_density, each with name and beliefIds\",\n },\n dryRun: {\n type: \"boolean\",\n description: \"Preview changes without applying them\",\n },\n },\n required: [\"topicId\", \"clusters\"],\n response: {\n description: \"Results of the auto-branching operation\",\n fields: {\n success: \"boolean\",\n parentTopicId: \"string\",\n createdSubtopics: \"array\",\n totalReassigned: \"number\",\n totalSkipped: \"number\",\n dryRun: \"boolean\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"graph\",\n tier: \"showcase\",\n};\n\nexport const SEED_BELIEF_LATTICE: McpToolContract = {\n name: \"seed_belief_lattice\",\n description:\n \"Seed belief lattice coverage for a topic based on its resolved ontology. \" +\n \"Like `git init` for ontology coverage — creates or previews seed beliefs for entity types that need a baseline anchor.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Topic scope ID. Lattice seeding must target a child topic.\",\n },\n dryRun: {\n type: \"boolean\",\n description: \"Preview seeds without creating them\",\n },\n },\n required: [],\n response: {\n description: \"Lattice seed results with per-entity-type status\",\n fields: {\n topicId: \"string\",\n ontologyResolved: \"boolean\",\n ontologyKey: \"string | null\",\n ontologyVersion: \"string | null\",\n entityTypeCount: \"number\",\n seeds: \"array — per-entity-type seed status\",\n summary: \"object — created/existing/scored/total counts\",\n dryRun: \"boolean\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const GET_LATTICE_COVERAGE: McpToolContract = {\n name: \"get_lattice_coverage\",\n description:\n \"Report belief lattice coverage for a topic. \" +\n \"Like `git fsck` for ontology coverage — identifies anchored, hollow, and missing entity-type belief coverage.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Topic scope ID to check lattice coverage for\",\n },\n },\n required: [],\n response: {\n description: \"Per-entity-type coverage with overall score\",\n fields: {\n topicId: \"string\",\n ontologyKey: \"string | null\",\n ontologyVersion: \"string | null\",\n entityTypes: \"array — per-entity-type coverage rows\",\n summary: \"object — total/anchored/hollow/missing/coverageScore\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const DISCOVER_ENTITY_CONNECTIONS: McpToolContract = {\n name: \"discover_entity_connections\",\n description:\n \"Find existing entities that should be connected to a belief/question/evidence node. \" +\n \"Like `git log --diff-filter=M` for missing entity connections — scans entities in scope and suggests bridge edge types.\",\n parameters: {\n nodeId: {\n type: \"string\",\n description: \"Epistemic node ID to find entity connections for\",\n },\n topicId: {\n type: \"string\",\n description: \"Optional topic scope override\",\n },\n minScore: {\n type: \"number\",\n description: \"Minimum match score threshold\",\n },\n limit: {\n type: \"number\",\n description: \"Maximum candidates to return\",\n },\n },\n required: [\"nodeId\"],\n response: {\n description: \"Ranked entity connection candidates\",\n fields: {\n nodeId: \"string\",\n candidateCount: \"number\",\n candidates: \"array — suggested entity bridge candidates\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"ontology\",\n tier: \"workhorse\",\n};\n\nexport const TRIGGER_BELIEF_REVIEW: McpToolContract = {\n name: \"trigger_belief_review\",\n description:\n \"Flag beliefs for review after an entity changes. \" +\n \"Like `git bisect` for stale beliefs — traverses bridge edges from the changed entity and creates review questions for stale connected beliefs.\",\n parameters: {\n entityNodeId: {\n type: \"string\",\n description: \"The entity node that changed\",\n },\n changeDescription: {\n type: \"string\",\n description: \"What changed about the entity\",\n },\n maxQuestions: {\n type: \"number\",\n description: \"Maximum review questions to create\",\n },\n },\n required: [\"entityNodeId\"],\n response: {\n description: \"Affected beliefs and created review questions\",\n fields: {\n entityNodeId: \"string\",\n entityTitle: \"string\",\n entityType: \"string\",\n changeDescription: \"string\",\n affectedBeliefCount: \"number\",\n questionsCreated: \"number\",\n reviewedBeliefs: \"array\",\n questions: \"array\",\n },\n },\n ownerModule: \"reasoning-kernel\",\n ontologyPrimitive: \"ontology\",\n tier: \"workhorse\",\n};\n\nexport const EVALUATE_CONTRACT: McpToolContract = {\n name: \"evaluate_contract\",\n description:\n \"Run a contract evaluation and record the append-only result. \" +\n \"Like `git test` for a belief binding — executes the evaluator, logs the result, and applies any allowed confidence modulation.\",\n parameters: {\n contractId: { type: \"string\", description: \"Which contract to evaluate\" },\n trigger: {\n type: \"string\",\n description: \"What caused this evaluation\",\n },\n },\n required: [\"contractId\"],\n response: {\n description: \"The most recent contract evaluation result\",\n fields: {\n evaluationId: \"string\",\n result: \"string\",\n status: \"string\",\n confidenceBefore: \"number\",\n confidenceAfter: \"number\",\n rationale: \"string\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\nexport const GET_CONTRACT_STATUS: McpToolContract = {\n name: \"get_contract_status\",\n description:\n \"Inspect epistemic contracts and their latest evaluations. \" +\n \"Like `git status` for verification bindings — returns the contract rows plus the freshest recorded evaluation for each one.\",\n parameters: {\n beliefNodeId: {\n type: \"string\",\n description: \"Return all contracts attached to a specific belief\",\n },\n contractId: {\n type: \"string\",\n description: \"Return one specific contract by contractId\",\n },\n status: {\n type: \"string\",\n description: \"Optional status filter applied after lookup\",\n enum: [\"active\", \"satisfied\", \"violated\", \"expired\", \"suspended\", \"archived\"],\n },\n },\n required: [],\n response: {\n description: \"Matching contract rows with latest evaluation context\",\n fields: {\n contracts: \"array — matching contracts with latestEvaluation attached\",\n count: \"number\",\n },\n },\n ownerModule: \"graph-primitives\",\n ontologyPrimitive: \"belief\",\n tier: \"workhorse\",\n};\n\nexport const REGISTER_SESSION: McpToolContract = {\n name: \"register_session\",\n description:\n \"Announce this agent session's presence to other parallel sessions. \" +\n \"Like `git init` for coordination — creates a session record so other agents can discover you.\",\n parameters: {\n sessionName: { type: \"string\", description: \"Human-readable session label\" },\n agentType: { type: \"string\", description: \"Agent type\" },\n topicId: { type: \"string\", description: \"Current Lucern topic scope ID\" },\n worktreeId: { type: \"string\", description: \"Active Lucern worktree ID\" },\n gitBranch: { type: \"string\", description: \"Current git branch name\" },\n },\n required: [],\n response: {\n description: \"Session registration result\",\n fields: {\n sessionId: \"string\",\n status: \"string — active\",\n isNew: \"boolean\",\n },\n },\n ownerModule: \"coordination\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const HEARTBEAT_SESSION: McpToolContract = {\n name: \"heartbeat_session\",\n description:\n \"Update this session's heartbeat and optional status fields. \" +\n \"Like `git status` — signals liveness and updates what you are working on.\",\n parameters: {\n topicId: { type: \"string\", description: \"Updated topic scope\" },\n worktreeId: { type: \"string\", description: \"Updated worktree ID\" },\n gitBranch: { type: \"string\", description: \"Updated git branch\" },\n status: {\n type: \"string\",\n description: \"Session status update\",\n enum: [\"active\", \"idle\"],\n },\n },\n required: [],\n response: {\n description: \"Heartbeat result\",\n fields: {\n success: \"boolean\",\n message: \"string\",\n },\n },\n ownerModule: \"coordination\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const END_SESSION: McpToolContract = {\n name: \"end_session\",\n description:\n \"Gracefully end this agent session. \" +\n \"Like `git stash` — marks the session as ended so other agents know you are gone.\",\n parameters: {},\n required: [],\n response: {\n description: \"Session end result\",\n fields: {\n success: \"boolean\",\n message: \"string\",\n },\n },\n ownerModule: \"coordination\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const LIST_ACTIVE_SESSIONS: McpToolContract = {\n name: \"list_active_sessions\",\n description:\n \"See who else is online with active agent sessions, scope, branch, and file claims. \" +\n \"Like `git branch --list` for live agents — shows active and idle sessions before editing.\",\n parameters: {\n includeIdle: {\n type: \"boolean\",\n description: \"Include idle sessions\",\n },\n },\n required: [],\n response: {\n description: \"List of active/idle agent sessions\",\n fields: {\n sessions: \"array — active session records\",\n },\n },\n ownerModule: \"coordination\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const SEND_AGENT_MESSAGE: McpToolContract = {\n name: \"send_agent_message\",\n description:\n \"Send a directed message to a specific agent session. \" +\n \"Like `git notes` — leaves a coordination note for a specific peer.\",\n parameters: {\n toSessionId: { type: \"string\", description: \"Target session ID\" },\n content: { type: \"string\", description: \"Message text\" },\n messageType: {\n type: \"string\",\n description: \"Message intent\",\n enum: [\"note\", \"question\", \"answer\", \"alert\", \"handoff\"],\n },\n relatedBeliefId: {\n type: \"string\",\n description: \"Optional related belief node ID\",\n },\n relatedWorktreeId: {\n type: \"string\",\n description: \"Optional related worktree ID\",\n },\n },\n required: [\"toSessionId\", \"content\"],\n response: {\n description: \"Message delivery result\",\n fields: { messageId: \"string\" },\n },\n ownerModule: \"coordination\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const BROADCAST_MESSAGE: McpToolContract = {\n name: \"broadcast_message\",\n description:\n \"Send a message to all active agent sessions. \" +\n \"Like `git tag` — marks an important event visible to everyone.\",\n parameters: {\n content: { type: \"string\", description: \"Broadcast message text\" },\n messageType: {\n type: \"string\",\n description: \"Message intent\",\n enum: [\"note\", \"alert\", \"handoff\"],\n },\n relatedBeliefId: {\n type: \"string\",\n description: \"Optional related belief node ID\",\n },\n relatedWorktreeId: {\n type: \"string\",\n description: \"Optional related worktree ID\",\n },\n },\n required: [\"content\"],\n response: {\n description: \"Broadcast result\",\n fields: { messageId: \"string\" },\n },\n ownerModule: \"coordination\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const GET_AGENT_INBOX: McpToolContract = {\n name: \"get_agent_inbox\",\n description:\n \"Check unread messages addressed to this session. \" +\n \"Like `git log --incoming` — shows direct and broadcast messages from other agents.\",\n parameters: {\n limit: { type: \"number\", description: \"Max messages to return\" },\n markAsRead: {\n type: \"boolean\",\n description: \"Mark returned messages as read\",\n },\n },\n required: [],\n response: {\n description: \"Inbox messages\",\n fields: {\n messages: \"array — unread direct and broadcast messages\",\n },\n },\n ownerModule: \"coordination\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const CLAIM_FILES: McpToolContract = {\n name: \"claim_files\",\n description:\n \"Declare which files this session is actively editing. \" +\n \"Like `git add` for coordination — tells other sessions what you are touching and returns advisory conflicts.\",\n parameters: {\n files: {\n type: \"array\",\n description: \"File paths this session is actively editing\",\n },\n },\n required: [\"files\"],\n response: {\n description: \"File claim result with conflict detection\",\n fields: {\n success: \"boolean\",\n conflicts: \"array — conflicting file claims\",\n },\n },\n ownerModule: \"coordination\",\n ontologyPrimitive: \"graph\",\n tier: \"workhorse\",\n internal: true,\n};\n\nexport const GENERATE_SESSION_HANDOFF: McpToolContract = {\n name: \"generate_session_handoff\",\n description:\n \"Generate a complete, zero-context handoff message for a new coding session. \" +\n \"Like `git format-patch` — produces a self-contained instruction set that bootstraps a fresh Lucern worktree session.\",\n parameters: {\n worktreeId: {\n type: \"string\",\n description: \"The Lucern worktree ID to generate handoff instructions for\",\n },\n gitWorktreePath: {\n type: \"string\",\n description: \"Optional existing git worktree path\",\n },\n gitBranchName: {\n type: \"string\",\n description: \"Optional branch name for the session\",\n },\n additionalContext: {\n type: \"string\",\n description: \"Optional extra context to include in the handoff\",\n },\n },\n required: [\"worktreeId\"],\n response: {\n description: \"A complete handoff message ready for a new coding session\",\n fields: {\n handoffMessage: \"string\",\n worktreeId: \"string\",\n worktreeName: \"string\",\n trackBoundary: \"object\",\n needsActivation: \"boolean\",\n needsGitSetup: \"string — create | fast-forward | ready\",\n },\n },\n ownerModule: \"bootstrap\",\n ontologyPrimitive: \"worktree\",\n tier: \"showcase\",\n internal: true,\n};\n\n// =============================================================================\n// TOOL REGISTRY\n// =============================================================================\n\n/** All MCP tool contracts, indexed by name */\nexport const MCP_TOOL_CONTRACTS: Record<string, McpToolContract> = {\n // Belief lifecycle (commit, amend, fork, archive)\n create_belief: CREATE_BELIEF,\n get_belief: GET_BELIEF,\n refine_belief: REFINE_BELIEF,\n modulate_confidence: MODULATE_CONFIDENCE,\n fork_belief: FORK_BELIEF,\n archive_belief: ARCHIVE_BELIEF,\n create_epistemic_contract: CREATE_EPISTEMIC_CONTRACT,\n evaluate_contract: EVALUATE_CONTRACT,\n get_contract_status: GET_CONTRACT_STATUS,\n // Evidence (commit)\n create_evidence: CREATE_EVIDENCE,\n get_evidence: GET_EVIDENCE,\n list_evidence: LIST_EVIDENCE,\n link_evidence: LINK_EVIDENCE,\n add_evidence: ADD_EVIDENCE,\n // Contradictions (merge conflict)\n flag_contradiction: FLAG_CONTRADICTION,\n // Lens lifecycle (workspace-scoped operational frames)\n create_lens: CREATE_LENS,\n list_lenses: LIST_LENSES,\n apply_lens_to_topic: APPLY_LENS_TO_TOPIC,\n remove_lens_from_topic: REMOVE_LENS_FROM_TOPIC,\n // Worktree lifecycle (git worktree add → merge → push → pull request)\n add_worktree: ADD_WORKTREE,\n merge: MERGE,\n push: PUSH,\n open_pull_request: OPEN_PULL_REQUEST,\n // Lineage and audit (log, blame)\n query_lineage: QUERY_LINEAGE,\n get_confidence_history: GET_CONFIDENCE_HISTORY,\n get_audit_trail: GET_AUDIT_TRAIL,\n // Graph queries (traverse, search, bisect, entity impact)\n traverse_graph: TRAVERSE_GRAPH,\n get_graph_neighborhood: GET_GRAPH_NEIGHBORHOOD,\n trace_entity_impact: TRACE_ENTITY_IMPACT,\n search_beliefs: SEARCH_BELIEFS,\n find_contradictions: FIND_CONTRADICTIONS,\n bisect_confidence: BISECT_CONFIDENCE,\n // Edges (commit)\n create_edge: CREATE_EDGE,\n // Judgments (tag)\n record_judgment: RECORD_JUDGMENT,\n // Graph intelligence (showcase)\n detect_confirmation_bias: DETECT_CONFIRMATION_BIAS,\n get_graph_structure_analysis: GET_GRAPH_STRUCTURE_ANALYSIS,\n get_falsification_questions: GET_FALSIFICATION_QUESTIONS,\n // Evidence operations (workhorse)\n search_evidence: SEARCH_EVIDENCE,\n link_evidence_to_belief: LINK_EVIDENCE_TO_BELIEF,\n // Answer lifecycle (L2 question responses)\n create_answer: CREATE_ANSWER,\n get_answer: GET_ANSWER,\n // Question operations (workhorse)\n create_question: CREATE_QUESTION,\n get_question: GET_QUESTION,\n refine_question: REFINE_QUESTION,\n list_questions: LIST_QUESTIONS,\n answer_question: ANSWER_QUESTION,\n update_question_status: UPDATE_QUESTION_STATUS,\n archive_question: ARCHIVE_QUESTION,\n link_evidence_to_question: LINK_EVIDENCE_TO_QUESTION,\n get_high_priority_questions: GET_HIGH_PRIORITY_QUESTIONS,\n find_missing_questions: FIND_MISSING_QUESTIONS,\n // Listing & query (workhorse)\n list_beliefs: LIST_BELIEFS,\n list_worktrees: LIST_WORKTREES,\n list_all_worktrees: LIST_ALL_WORKTREES,\n activate_worktree: ACTIVATE_WORKTREE,\n update_worktree_targets: UPDATE_WORKTREE_TARGETS,\n update_worktree_metadata: UPDATE_WORKTREE_METADATA,\n identity_whoami: IDENTITY_WHOAMI,\n compile_context: COMPILE_CONTEXT,\n record_scope_learning: RECORD_SCOPE_LEARNING,\n pipeline_snapshot: PIPELINE_SNAPSHOT,\n discover: DISCOVER,\n analyze_topic_density: ANALYZE_TOPIC_DENSITY,\n apply_auto_branching: APPLY_AUTO_BRANCHING,\n seed_belief_lattice: SEED_BELIEF_LATTICE,\n get_lattice_coverage: GET_LATTICE_COVERAGE,\n discover_entity_connections: DISCOVER_ENTITY_CONNECTIONS,\n trigger_belief_review: TRIGGER_BELIEF_REVIEW,\n register_session: REGISTER_SESSION,\n heartbeat_session: HEARTBEAT_SESSION,\n end_session: END_SESSION,\n list_active_sessions: LIST_ACTIVE_SESSIONS,\n send_agent_message: SEND_AGENT_MESSAGE,\n broadcast_message: BROADCAST_MESSAGE,\n get_agent_inbox: GET_AGENT_INBOX,\n claim_files: CLAIM_FILES,\n generate_session_handoff: GENERATE_SESSION_HANDOFF,\n // Policy / ACL (workhorse)\n check_permission: CHECK_PERMISSION,\n filter_by_permission: FILTER_BY_PERMISSION,\n // Write policy (S2-13K Graph Compounding)\n manage_write_policy: MANAGE_WRITE_POLICY,\n // Observation context (workhorse)\n ingest_observation: INGEST_OBSERVATION,\n get_observation_context: GET_OBSERVATION_CONTEXT,\n // Task lifecycle (workhorse)\n create_task: CREATE_TASK,\n complete_task: COMPLETE_TASK,\n update_task: UPDATE_TASK,\n list_tasks: LIST_TASKS,\n // Topic lifecycle (init, remote)\n create_topic: CREATE_TOPIC,\n list_topics: LIST_TOPICS,\n get_topic: GET_TOPIC,\n update_topic: UPDATE_TOPIC,\n get_topic_tree: GET_TOPIC_TREE,\n // Coding intelligence (code-grounded knowledge)\n get_code_context: GET_CODE_CONTEXT,\n get_change_history: GET_CHANGE_HISTORY,\n record_attempt: RECORD_ATTEMPT,\n get_failure_log: GET_FAILURE_LOG,\n // Graph self-intelligence (coverage, gaps)\n get_topic_coverage: GET_TOPIC_COVERAGE,\n get_graph_gaps: GET_GRAPH_GAPS,\n // Ontology lifecycle (definition CRUD, version management)\n list_ontologies: LIST_ONTOLOGIES,\n get_ontology: GET_ONTOLOGY,\n apply_ontology: APPLY_ONTOLOGY,\n match_entity_type: MATCH_ENTITY_TYPE,\n create_ontology: CREATE_ONTOLOGY,\n update_ontology: UPDATE_ONTOLOGY,\n archive_ontology: ARCHIVE_ONTOLOGY,\n create_ontology_version: CREATE_ONTOLOGY_VERSION,\n publish_ontology_version: PUBLISH_ONTOLOGY_VERSION,\n deprecate_ontology_version: DEPRECATE_ONTOLOGY_VERSION,\n resolve_effective_ontology: RESOLVE_EFFECTIVE_ONTOLOGY,\n};\n\n/** Tool names that MUST include git-semantic language in descriptions */\nexport const GIT_SEMANTIC_REQUIRED_TOOLS = Object.keys(MCP_TOOL_CONTRACTS);\n\n/**\n * Lint validation: every tool description must contain \"Like `git\" or \"Like a `git\"\n * or reference a git operation in the first sentence.\n */\nexport function validateGitSemantics(tool: McpToolContract): {\n valid: boolean;\n reason?: string;\n} {\n const desc = tool.description;\n const hasGitReference =\n /Like (`git |a `git |a merge conflict|opening a `git)/.test(desc);\n if (!hasGitReference) {\n return {\n valid: false,\n reason: `Tool \"${tool.name}\" description missing git-semantic reference`,\n };\n }\n return { valid: true };\n}\n","import type {\n FunctionSurfaceIntent,\n SurfaceClass,\n SurfaceExposure,\n FunctionSurfaceMap,\n} from \"./types.js\";\n\nexport type LucernOperationManifestEntry = {\n name: string;\n surfaceClass: SurfaceClass;\n surfaceIntent: FunctionSurfaceIntent;\n surfaces: FunctionSurfaceMap;\n rationale: string;\n};\n\nconst publicEverywhere: FunctionSurfaceMap = {\n sdk: \"public\",\n rest: \"public\",\n mcp: \"public\",\n cli: \"public\",\n};\n\nconst internalSystem: FunctionSurfaceMap = {\n sdk: \"internal\",\n rest: \"internal\",\n mcp: \"internal\",\n cli: \"internal\",\n};\n\nconst publicWithInternalMcp: FunctionSurfaceMap = {\n sdk: \"public\",\n rest: \"public\",\n mcp: \"internal\",\n cli: \"public\",\n};\n\nconst publicWithoutMcp: FunctionSurfaceMap = {\n sdk: \"public\",\n rest: \"public\",\n mcp: \"none\",\n cli: \"none\",\n};\n\nconst sdkOnlyPublic: FunctionSurfaceMap = {\n sdk: \"public\",\n rest: \"none\",\n mcp: \"none\",\n cli: \"none\",\n};\n\nconst mcpOnlyInternal: FunctionSurfaceMap = {\n sdk: \"none\",\n rest: \"none\",\n mcp: \"internal\",\n cli: \"none\",\n};\n\nfunction entries(\n names: readonly string[],\n surfaceClass: SurfaceClass,\n surfaceIntent: FunctionSurfaceIntent,\n surfaces: FunctionSurfaceMap,\n rationale: string\n): Record<string, LucernOperationManifestEntry> {\n return Object.fromEntries(\n names.map((name) => [\n name,\n {\n name,\n surfaceClass,\n surfaceIntent,\n surfaces,\n rationale,\n },\n ])\n );\n}\n\nexport const MCP_CORE_OPERATION_NAMES = [\n \"compile_context\",\n \"identity_whoami\",\n \"check_permission\",\n \"filter_by_permission\",\n \"create_belief\",\n \"get_belief\",\n \"list_beliefs\",\n \"refine_belief\",\n \"modulate_confidence\",\n \"fork_belief\",\n \"archive_belief\",\n \"search_beliefs\",\n \"bisect_confidence\",\n \"create_evidence\",\n \"get_evidence\",\n \"list_evidence\",\n \"search_evidence\",\n \"link_evidence_to_belief\",\n \"link_evidence_to_question\",\n \"create_question\",\n \"get_question\",\n \"list_questions\",\n \"refine_question\",\n \"update_question_status\",\n \"archive_question\",\n \"create_answer\",\n \"get_answer\",\n \"find_missing_questions\",\n \"get_high_priority_questions\",\n \"get_falsification_questions\",\n \"create_topic\",\n \"get_topic\",\n \"list_topics\",\n \"update_topic\",\n \"get_topic_tree\",\n] as const;\n\nexport const MCP_ANALYSIS_PLATFORM_OPERATION_NAMES = [\n \"create_edge\",\n \"query_lineage\",\n \"traverse_graph\",\n \"get_graph_neighborhood\",\n \"get_graph_structure_analysis\",\n \"find_contradictions\",\n \"flag_contradiction\",\n \"detect_confirmation_bias\",\n \"get_topic_coverage\",\n \"get_graph_gaps\",\n] as const;\n\nexport const MCP_ANALYSIS_TENANT_OPERATION_NAMES = [\n \"analyze_topic_density\",\n \"discover_entity_connections\",\n \"trace_entity_impact\",\n] as const;\n\nexport const MCP_WORKFLOW_PLATFORM_OPERATION_NAMES = [\n \"list_lenses\",\n \"apply_lens_to_topic\",\n \"remove_lens_from_topic\",\n \"get_ontology\",\n \"list_ontologies\",\n \"apply_ontology\",\n \"match_entity_type\",\n \"resolve_effective_ontology\",\n \"add_worktree\",\n \"activate_worktree\",\n \"list_worktrees\",\n \"list_all_worktrees\",\n \"update_worktree_targets\",\n \"update_worktree_metadata\",\n \"create_task\",\n \"list_tasks\",\n \"update_task\",\n \"complete_task\",\n] as const;\n\nexport const MCP_WORKFLOW_TENANT_OPERATION_NAMES = [\n \"resolve_effective_ontology\",\n \"get_observation_context\",\n \"ingest_observation\",\n \"merge\",\n] as const;\n\nexport const MCP_GOVERNANCE_PLATFORM_OPERATION_NAMES = [\n \"create_lens\",\n \"create_ontology\",\n \"update_ontology\",\n \"archive_ontology\",\n \"create_ontology_version\",\n] as const;\n\nexport const MCP_GOVERNANCE_TENANT_OPERATION_NAMES = [\n \"create_epistemic_contract\",\n \"evaluate_contract\",\n \"get_contract_status\",\n \"publish_ontology_version\",\n \"deprecate_ontology_version\",\n \"manage_write_policy\",\n] as const;\n\nexport const MCP_AUTOMATION_OPERATION_NAMES = [\n \"apply_auto_branching\",\n \"trigger_belief_review\",\n] as const;\n\nexport const DUPLICATE_OPERATION_NAMES = [\n \"link_evidence\",\n] as const;\n\nexport const PLATFORM_PUBLIC_OPERATION_NAMES = [\n ...MCP_CORE_OPERATION_NAMES,\n ...MCP_ANALYSIS_PLATFORM_OPERATION_NAMES,\n ...MCP_WORKFLOW_PLATFORM_OPERATION_NAMES,\n ...MCP_GOVERNANCE_PLATFORM_OPERATION_NAMES,\n ...DUPLICATE_OPERATION_NAMES,\n] as const;\n\nexport const TENANT_PUBLIC_OPERATION_NAMES = [\n ...MCP_ANALYSIS_TENANT_OPERATION_NAMES,\n ...MCP_WORKFLOW_TENANT_OPERATION_NAMES,\n ...MCP_GOVERNANCE_TENANT_OPERATION_NAMES,\n ...MCP_AUTOMATION_OPERATION_NAMES,\n] as const;\n\nexport const PLATFORM_INTERNAL_OPERATION_NAMES = [\n \"register_session\",\n \"heartbeat_session\",\n \"end_session\",\n \"list_active_sessions\",\n \"send_agent_message\",\n \"broadcast_message\",\n \"get_agent_inbox\",\n \"claim_files\",\n \"generate_session_handoff\",\n \"record_scope_learning\",\n \"pipeline_snapshot\",\n \"seed_belief_lattice\",\n \"get_lattice_coverage\",\n \"get_code_context\",\n \"get_change_history\",\n \"get_failure_log\",\n \"record_attempt\",\n \"push\",\n \"open_pull_request\",\n \"record_judgment\",\n \"get_audit_trail\",\n] as const;\n\nexport const LEGACY_COMPAT_OPERATION_NAMES = [\n \"discover\",\n \"add_evidence\",\n \"answer_question\",\n \"get_confidence_history\",\n] as const;\n\nexport const SDK_ONLY_OPERATION_NAMES = [\n \"start_worktree\",\n \"update_worktree_phase\",\n \"advance_worktree_phase\",\n \"add_note_to_worktree\",\n \"link_document_to_worktree\",\n \"link_evidence_to_worktree\",\n \"link_question_to_worktree\",\n \"link_belief_to_worktree\",\n \"create_synthesized_belief\",\n \"complete_hypothesis_formation\",\n \"complete_evidence_review\",\n \"refine_worktree_belief\",\n \"trace_provenance\",\n \"get_belief_relationships\",\n \"get_belief_support_chain\",\n \"explore_connections\",\n \"get_deep_lineage\",\n \"graph_aware_search\",\n \"get_collection_conviction\",\n \"get_conviction_trend\",\n \"analyze_belief_criticality\",\n \"analyze_belief_cluster_candidates\",\n \"create_belief_conditional\",\n \"get_necessary_evidence\",\n \"analyze_reasoning_depth\",\n \"get_evidence_by_methodology\",\n \"create_evidence_task\",\n \"get_task_counts\",\n \"add_research_action\",\n \"get_predictions\",\n \"get_surprise_detection\",\n \"get_challenged_beliefs\",\n \"get_causal_chains\",\n \"get_non_consensus_beliefs\",\n \"get_beliefs_by_epistemic_status\",\n \"detect_anchoring_bias\",\n \"detect_source_concentration\",\n \"find_soft_contradictions\",\n \"find_semantic_bridges\",\n \"find_semantic_orphans\",\n] as const;\n\nexport const MCP_ONLY_INTERNAL_OPERATION_NAMES = [\n \"begin_build_session\",\n \"evaluate_engineering_contract\",\n \"evaluate_research_contract\",\n] as const;\n\nexport const FORBIDDEN_APPLICATION_OPERATION_NAMES = [\n \"execute_deep_research\",\n \"search_sources\",\n \"search_resources\",\n \"get_privileged_evidence\",\n \"get_privileged_signals\",\n \"get_thesis_artifacts\",\n] as const;\n\nexport const LUCERN_OPERATION_MANIFEST = {\n ...entries(\n MCP_CORE_OPERATION_NAMES,\n \"platform_public\",\n \"mcp_core\",\n publicEverywhere,\n \"Default conversational Lucern MCP primitive for reading, writing, and shaping the reasoning graph.\"\n ),\n ...entries(\n MCP_ANALYSIS_PLATFORM_OPERATION_NAMES,\n \"platform_public\",\n \"mcp_analysis\",\n publicEverywhere,\n \"High-signal graph analysis operation that belongs in chat/MCP because users naturally ask for gaps, contradictions, lineage, and coverage.\"\n ),\n ...entries(\n MCP_ANALYSIS_TENANT_OPERATION_NAMES,\n \"tenant_public\",\n \"mcp_analysis\",\n publicEverywhere,\n \"Tenant-scoped analysis operation that remains MCP-visible because agents can answer graph-quality and impact questions from chat.\"\n ),\n ...entries(\n MCP_WORKFLOW_PLATFORM_OPERATION_NAMES,\n \"platform_public\",\n \"mcp_workflow\",\n publicEverywhere,\n \"Workflow operation expected by coding agents and human MCP users managing Lucern worktrees, tasks, lenses, and observations.\"\n ),\n ...entries(\n MCP_WORKFLOW_TENANT_OPERATION_NAMES,\n \"tenant_public\",\n \"mcp_workflow\",\n publicEverywhere,\n \"Tenant-scoped workflow operation expected by coding agents and human MCP users managing observations and worktree lifecycle.\"\n ),\n ...entries(\n MCP_AUTOMATION_OPERATION_NAMES,\n \"tenant_public\",\n \"mcp_analysis\",\n publicEverywhere,\n \"Tenant-scoped automation that remains MCP-visible because agents can explicitly request review or branching assistance.\"\n ),\n ...entries(\n MCP_GOVERNANCE_PLATFORM_OPERATION_NAMES,\n \"platform_public\",\n \"mcp_governance\",\n publicWithInternalMcp,\n \"Governance/admin operation. SDK, REST, and CLI remain public, but MCP is internal by default to keep chat surfaces focused.\"\n ),\n ...entries(\n MCP_GOVERNANCE_TENANT_OPERATION_NAMES,\n \"tenant_public\",\n \"mcp_governance\",\n publicWithInternalMcp,\n \"Governance/admin operation. SDK, REST, and CLI remain public, but MCP is internal by default to keep chat surfaces focused.\"\n ),\n ...entries(\n DUPLICATE_OPERATION_NAMES,\n \"platform_public\",\n \"compatibility\",\n publicWithoutMcp,\n \"Duplicate compatibility operation kept for SDK/REST callers, removed from MCP/CLI discovery in favor of the canonical specific tool.\"\n ),\n ...entries(\n PLATFORM_INTERNAL_OPERATION_NAMES,\n \"platform_internal\",\n \"system\",\n internalSystem,\n \"Lucern system/background operation. Available to platform code paths, hidden from public MCP discovery.\"\n ),\n ...entries(\n LEGACY_COMPAT_OPERATION_NAMES,\n \"legacy_compat\",\n \"compatibility\",\n publicWithoutMcp,\n \"Temporary compatibility operation. Must name a canonical replacement before removal.\"\n ),\n ...entries(\n SDK_ONLY_OPERATION_NAMES,\n \"tenant_public\",\n \"sdk_granular\",\n sdkOnlyPublic,\n \"Granular Lucern SDK operation. Not an MCP, REST, or CLI tool until backed by the generated function pipe.\"\n ),\n ...entries(\n MCP_ONLY_INTERNAL_OPERATION_NAMES,\n \"platform_internal\",\n \"system\",\n mcpOnlyInternal,\n \"Lucern MCP-only platform operation for local agent/bootstrap or verification workflows. Hidden from public discovery.\"\n ),\n} as const satisfies Record<string, LucernOperationManifestEntry>;\n\nexport type LucernOperationName = keyof typeof LUCERN_OPERATION_MANIFEST;\n\nexport function surfaceEnabled(exposure: SurfaceExposure): boolean {\n return exposure !== \"none\";\n}\n\nexport function surfaceIntentGateViolations(\n entry: LucernOperationManifestEntry\n): string[] {\n const violations: string[] = [];\n if (entry.surfaceIntent === \"system\" && entry.surfaces.mcp === \"public\") {\n violations.push(\"system operations cannot be public MCP tools\");\n }\n if (\n entry.surfaceIntent === \"compatibility\" &&\n entry.surfaces.mcp !== \"none\"\n ) {\n violations.push(\"compatibility operations must not be MCP tools\");\n }\n if (entry.surfaceIntent === \"sdk_granular\" && entry.surfaces.mcp !== \"none\") {\n violations.push(\"SDK-granular operations must not be MCP tools\");\n }\n if (\n entry.surfaceIntent === \"mcp_governance\" &&\n entry.surfaces.mcp === \"public\"\n ) {\n violations.push(\"governance operations must be internal or absent from MCP\");\n }\n return violations;\n}\n","import { z } from \"zod\";\nimport type { FunctionEffect } from \"../dsl/defineFunction.js\";\nimport type { McpParameterDef, McpToolContract } from \"../tool-contracts.js\";\nimport { MCP_TOOL_CONTRACTS } from \"../tool-contracts.js\";\nimport type {\n ContractProjectionContext,\n FunctionContract,\n SurfaceClass,\n} from \"./types.js\";\nimport {\n LUCERN_OPERATION_MANIFEST,\n type LucernOperationManifestEntry,\n} from \"./manifest.js\";\n\nexport const jsonObjectSchema = z.record(z.unknown());\n\nfunction mcpContractShape(contract: McpToolContract): z.ZodRawShape {\n const required = new Set(contract.required);\n return Object.fromEntries(\n Object.entries(contract.parameters).map(([name, parameter]) => {\n const schema = schemaForMcpParameter(parameter);\n return [\n name,\n required.has(name) || parameter.required ? schema : schema.optional(),\n ];\n })\n );\n}\n\nfunction schemaForMcpParameter(parameter: McpParameterDef): z.ZodTypeAny {\n if (parameter.enum && parameter.enum.length > 0) {\n const [first, ...rest] = parameter.enum;\n return z.enum([first, ...rest] as [string, ...string[]]);\n }\n\n switch (parameter.type) {\n case \"array\":\n return z.array(z.unknown());\n case \"boolean\":\n return z.boolean();\n case \"number\":\n return z.number();\n case \"object\":\n return z.record(z.unknown());\n case \"string\":\n return z.string();\n }\n}\n\nexport function argsSchemaFromMcpContract(\n contract: McpToolContract\n): z.ZodObject<z.ZodRawShape> {\n return z.object(mcpContractShape(contract));\n}\n\nexport function inputSchemaFromMcpContract(\n contract: McpToolContract\n): z.ZodObject<z.ZodRawShape> {\n return argsSchemaFromMcpContract(contract).passthrough();\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapMcpParameterSchema(schema: z.ZodTypeAny): {\n schema: z.ZodTypeAny;\n required: boolean;\n description?: string;\n} {\n let current = schema;\n let required = true;\n let description = schema.description;\n\n while (true) {\n description ??= current.description;\n\n switch (current._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodOptional:\n case z.ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n current = current._def.innerType;\n continue;\n case z.ZodFirstPartyTypeKind.ZodNullable:\n current = current._def.innerType;\n continue;\n case z.ZodFirstPartyTypeKind.ZodBranded:\n current = current._def.type;\n continue;\n default:\n return { schema: current, required, description: description ?? current.description };\n }\n }\n}\n\nfunction mcpParameterFromZod(\n fieldName: string,\n schema: z.ZodTypeAny,\n contractName: string\n): { parameter: McpParameterDef; required: boolean } {\n const { schema: unwrapped, required, description: schemaDescription } =\n unwrapMcpParameterSchema(schema);\n const description = schemaDescription ?? unwrapped.description ?? fieldName;\n\n switch (unwrapped._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodString:\n return { parameter: { type: \"string\", description }, required };\n case z.ZodFirstPartyTypeKind.ZodNumber:\n return { parameter: { type: \"number\", description }, required };\n case z.ZodFirstPartyTypeKind.ZodBoolean:\n return { parameter: { type: \"boolean\", description }, required };\n case z.ZodFirstPartyTypeKind.ZodArray:\n return { parameter: { type: \"array\", description }, required };\n case z.ZodFirstPartyTypeKind.ZodObject:\n case z.ZodFirstPartyTypeKind.ZodRecord:\n return { parameter: { type: \"object\", description }, required };\n case z.ZodFirstPartyTypeKind.ZodEnum:\n return {\n parameter: {\n type: \"string\",\n description,\n enum: [...unwrapped._def.values],\n },\n required,\n };\n case z.ZodFirstPartyTypeKind.ZodLiteral:\n if (typeof unwrapped._def.value === \"string\") {\n return {\n parameter: {\n type: \"string\",\n description,\n enum: [unwrapped._def.value],\n },\n required,\n };\n }\n break;\n }\n\n throw new Error(\n `Function surface contract ${contractName}.${fieldName} cannot be lowered to an MCP parameter from ${unwrapped._def.typeName}.`\n );\n}\n\nfunction mcpContractFromArgsSchema(\n base: FunctionContract[\"mcp\"],\n args: z.ZodObject<z.ZodRawShape>,\n contractName: string\n): FunctionContract[\"mcp\"] {\n const entries = Object.entries(getObjectShape(args)).sort(([left], [right]) =>\n left.localeCompare(right)\n );\n const converted = entries.map(([fieldName, schema]) => [\n fieldName,\n mcpParameterFromZod(fieldName, schema, contractName),\n ] as const);\n\n return {\n ...base,\n parameters: Object.fromEntries(\n converted.map(([fieldName, field]) => [fieldName, field.parameter])\n ),\n required: converted\n .filter(([, field]) => field.required)\n .map(([fieldName]) => fieldName),\n };\n}\n\nexport function defineFunctionContract<T extends FunctionContract>(\n contract: T\n): T {\n return contract;\n}\n\nexport function classifyContract<\n T extends Omit<FunctionContract, \"surfaceClass\"> & {\n surfaceClass?: SurfaceClass;\n },\n>(contract: T, surfaceClass: SurfaceClass): T & { surfaceClass: SurfaceClass } {\n return {\n ...contract,\n surfaceClass: contract.surfaceClass ?? surfaceClass,\n };\n}\n\nexport function authUserId(context: ContractProjectionContext): string {\n return context.userId ?? context.principalId ?? \"lucern-agent\";\n}\n\nexport function withUserId(\n input: Record<string, unknown>,\n context: ContractProjectionContext\n): Record<string, unknown> {\n return {\n ...input,\n userId: typeof input.userId === \"string\" ? input.userId : authUserId(context),\n };\n}\n\nexport function withCreatedBy(\n input: Record<string, unknown>,\n context: ContractProjectionContext\n): Record<string, unknown> {\n return {\n ...input,\n createdBy:\n typeof input.createdBy === \"string\" ? input.createdBy : authUserId(context),\n };\n}\n\nexport function surfaceMcpContract(name: string): FunctionContract[\"mcp\"] {\n const contract = MCP_TOOL_CONTRACTS[name];\n if (!contract) {\n throw new Error(\n `Function surface contract ${name} is missing from MCP_TOOL_CONTRACTS.`\n );\n }\n\n return {\n ...contract,\n exposed: true,\n toolName: contract.name,\n };\n}\n\nfunction deriveFunctionEffects(args: {\n kind: FunctionContract[\"kind\"];\n domain: string;\n surfaceIntent: FunctionContract[\"surfaceIntent\"];\n}): readonly FunctionEffect[] {\n if (args.kind === \"query\") {\n return [\"read\"];\n }\n\n if (\n args.surfaceIntent === \"system\" ||\n args.surfaceIntent === \"mcp_governance\" ||\n args.domain === \"identity\" ||\n args.domain === \"contracts\" ||\n args.domain === \"coordination\" ||\n args.domain === \"pipeline\"\n ) {\n return [\"admin\"];\n }\n\n return [\"write\"];\n}\n\nexport function surfaceContract(args: {\n name: string;\n kind: FunctionContract[\"kind\"];\n domain: string;\n surfaceClass: SurfaceClass;\n method?: FunctionContract[\"rest\"][\"method\"];\n path: string;\n sdkNamespace: string;\n sdkMethod: string;\n summary: string;\n tags?: string[];\n scopes?: string[];\n replacedBy?: string;\n idempotent?: FunctionContract[\"idempotent\"];\n convex?: FunctionContract[\"convex\"];\n args?: z.ZodObject<z.ZodRawShape>;\n returns?: z.ZodTypeAny;\n input?: z.ZodTypeAny;\n output?: z.ZodTypeAny;\n effects?: readonly FunctionEffect[];\n invariants?: readonly string[];\n}) {\n const manifest = LUCERN_OPERATION_MANIFEST as Record<\n string,\n LucernOperationManifestEntry | undefined\n >;\n const manifestEntry = manifest[args.name];\n if (!manifestEntry) {\n throw new Error(\n `Function surface contract ${args.name} is not in LUCERN_OPERATION_MANIFEST.`\n );\n }\n if (manifestEntry.surfaceClass !== args.surfaceClass) {\n throw new Error(\n `Function surface contract ${args.name} is classified as ${args.surfaceClass}, but manifest requires ${manifestEntry.surfaceClass}.`\n );\n }\n if (manifestEntry.surfaces.sdk === \"none\" && manifestEntry.surfaces.rest === \"none\") {\n throw new Error(\n `Function surface contract ${args.name} has no SDK or REST exposure in the manifest.`\n );\n }\n\n const baseMcp = surfaceMcpContract(args.name);\n const canonicalArgs = args.args ?? argsSchemaFromMcpContract(baseMcp);\n const mcp = args.args\n ? mcpContractFromArgsSchema(baseMcp, canonicalArgs, args.name)\n : baseMcp;\n const canonicalReturns = args.returns ?? jsonObjectSchema;\n const input = args.input ?? inputSchemaFromMcpContract(mcp);\n const output = args.output ?? canonicalReturns;\n\n return defineFunctionContract({\n name: args.name,\n kind: args.kind,\n idempotent: args.idempotent ?? (args.kind === \"query\" ? false : true),\n effects:\n args.effects ??\n deriveFunctionEffects({\n kind: args.kind,\n domain: args.domain,\n surfaceIntent: manifestEntry.surfaceIntent,\n }),\n invariants: args.invariants,\n surfaceIntent: manifestEntry.surfaceIntent,\n domain: args.domain,\n surfaceClass: manifestEntry.surfaceClass,\n surfaces: manifestEntry.surfaces,\n replacedBy: args.replacedBy,\n rest: {\n method: args.method ?? \"POST\",\n path: args.path,\n },\n sdk: {\n namespace: args.sdkNamespace,\n method: args.sdkMethod,\n },\n mcp,\n auth: {\n scopes: args.scopes ?? [\n args.kind === \"query\" ? `${args.domain}.read` : `${args.domain}.write`,\n ],\n allowedPrincipalTypes: [\"user\", \"service\", \"agent\"],\n },\n convex: args.convex,\n args: canonicalArgs,\n returns: canonicalReturns,\n input,\n output,\n openapi: {\n summary: args.summary,\n tags: args.tags ?? [args.domain],\n },\n });\n}\n\nexport function assertSurfaceCoverage(contracts: readonly FunctionContract[]) {\n const names = new Set<string>();\n for (const contract of contracts) {\n if (names.has(contract.name)) {\n throw new Error(`Duplicate function contract name: ${contract.name}`);\n }\n names.add(contract.name);\n }\n\n for (const contract of contracts) {\n if (contract.replacedBy && !names.has(contract.replacedBy)) {\n throw new Error(\n `Function contract ${contract.name} replacedBy target ${contract.replacedBy} is not registered.`\n );\n }\n }\n}\n","import { surfaceContract, withUserId } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst observationInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n {\n ...input,\n text: input.text ?? input.summary,\n title: input.title ?? input.summary,\n content: input.content ?? input.summary,\n kind: input.kind ?? input.observationType ?? \"observation\",\n sourceType: input.sourceType ?? input.source ?? \"agent\",\n metadata: {\n ...(input.metadata &&\n typeof input.metadata === \"object\" &&\n !Array.isArray(input.metadata)\n ? (input.metadata as Record<string, unknown>)\n : {}),\n observationType: input.observationType,\n source: input.source,\n },\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n );\n\nexport const contextContracts = [\n surfaceContract({\n name: \"compile_context\",\n kind: \"query\",\n domain: \"context\",\n surfaceClass: \"platform_public\",\n path: \"/context/compile\",\n sdkNamespace: \"context\",\n sdkMethod: \"compileContext\",\n summary: \"Compile a focused reasoning context for a topic.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"compile\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"ingest_observation\",\n kind: \"mutation\",\n domain: \"observations\",\n surfaceClass: \"tenant_public\",\n path: \"/observations/ingest\",\n sdkNamespace: \"observations\",\n sdkMethod: \"ingestObservation\",\n summary: \"Ingest a non-destructive observation.\",\n convex: {\n module: \"evidence\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: observationInput,\n outputProjection: (output, input) => ({\n ...(output && typeof output === \"object\"\n ? (output as Record<string, unknown>)\n : {}),\n observationId:\n output && typeof output === \"object\"\n ? (output as Record<string, unknown>).nodeId\n : undefined,\n observationType: input.observationType,\n }),\n },\n }),\n surfaceContract({\n name: \"get_observation_context\",\n kind: \"query\",\n domain: \"observations\",\n surfaceClass: \"tenant_public\",\n path: \"/observations/context\",\n sdkNamespace: \"observations\",\n sdkMethod: \"getObservationContext\",\n summary: \"Read staged observation context.\",\n convex: {\n module: \"evidence\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nconst withPrincipal = (\n input: Record<string, unknown>,\n context: {\n tenantId?: string;\n workspaceId?: string;\n userId?: string;\n principalId?: string;\n }\n) => ({\n ...input,\n tenantId: input.tenantId ?? context.tenantId,\n workspaceId: input.workspaceId ?? context.workspaceId,\n userId: input.userId ?? context.userId,\n principalId: input.principalId ?? context.principalId ?? context.userId,\n});\n\nexport const identityContracts = [\n surfaceContract({\n name: \"identity_whoami\",\n kind: \"query\",\n domain: \"identity\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/identity/whoami\",\n sdkNamespace: \"identity\",\n sdkMethod: \"whoami\",\n summary: \"Describe the current gateway principal.\",\n convex: {\n module: \"identity\",\n functionName: \"whoami\",\n kind: \"query\",\n inputProjection: withPrincipal,\n },\n }),\n surfaceContract({\n name: \"check_permission\",\n kind: \"query\",\n domain: \"identity\",\n surfaceClass: \"platform_public\",\n path: \"/identity/check-permission\",\n sdkNamespace: \"identity\",\n sdkMethod: \"checkPermission\",\n summary: \"Check whether the current principal can access a topic.\",\n convex: {\n module: \"identity\",\n functionName: \"checkPermission\",\n kind: \"query\",\n inputProjection: withPrincipal,\n },\n }),\n surfaceContract({\n name: \"filter_by_permission\",\n kind: \"query\",\n domain: \"identity\",\n surfaceClass: \"platform_public\",\n path: \"/identity/filter-by-permission\",\n sdkNamespace: \"identity\",\n sdkMethod: \"filterByPermission\",\n summary: \"Filter topic ids by the current principal's permission.\",\n convex: {\n module: \"identity\",\n functionName: \"filterByPermission\",\n kind: \"query\",\n inputProjection: withPrincipal,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract, withUserId } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst withBeliefId = (input: Record<string, unknown>) => ({\n ...input,\n nodeId: input.nodeId ?? input.id ?? input.beliefId,\n beliefId: input.beliefId ?? input.id ?? input.nodeId,\n});\n\nconst createBeliefInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n {\n ...input,\n formulation: input.formulation ?? input.canonicalText,\n baseRate: input.baseRate ?? 0.5,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n );\n\nconst forkBeliefInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n {\n ...input,\n parentNodeId: input.parentNodeId ?? input.nodeId ?? input.id,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n );\n\nconst confidenceInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) => {\n const confidence =\n typeof input.confidence === \"number\" ? input.confidence : undefined;\n const belief =\n typeof input.belief === \"number\" ? input.belief : confidence ?? 0.5;\n const disbelief =\n typeof input.disbelief === \"number\" ? input.disbelief : 0;\n const uncertainty =\n typeof input.uncertainty === \"number\"\n ? input.uncertainty\n : Math.max(0, 1 - belief - disbelief);\n\n return withUserId(\n {\n ...input,\n belief,\n disbelief,\n uncertainty,\n baseRate: input.baseRate ?? 0.5,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n );\n};\n\nexport const beliefsContracts = [\n surfaceContract({\n name: \"create_belief\",\n kind: \"mutation\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n path: \"/beliefs\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"createBelief\",\n summary: \"Create a belief.\",\n convex: {\n module: \"beliefs\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: createBeliefInput,\n },\n }),\n surfaceContract({\n name: \"get_belief\",\n kind: \"query\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/beliefs/get\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"getBelief\",\n summary: \"Get a belief.\",\n convex: {\n module: \"beliefs\",\n functionName: \"getById\",\n kind: \"query\",\n inputProjection: withBeliefId,\n },\n }),\n surfaceContract({\n name: \"list_beliefs\",\n kind: \"query\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/beliefs\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"listBeliefs\",\n summary: \"List beliefs for a topic.\",\n convex: {\n module: \"beliefs\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"refine_belief\",\n kind: \"mutation\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n method: \"PATCH\",\n path: \"/beliefs/refine\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"refineBelief\",\n summary: \"Refine an unscored belief in place.\",\n convex: {\n module: \"beliefs\",\n functionName: \"refineBelief\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId(\n {\n ...withBeliefId(input),\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"modulate_confidence\",\n kind: \"mutation\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n path: \"/beliefs/confidence\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"modulateConfidence\",\n summary: \"Append a belief confidence modulation.\",\n convex: {\n module: \"beliefs\",\n functionName: \"modulateConfidence\",\n kind: \"mutation\",\n inputProjection: confidenceInput,\n },\n }),\n surfaceContract({\n name: \"fork_belief\",\n kind: \"mutation\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n path: \"/beliefs/fork\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"forkBelief\",\n summary: \"Fork a belief.\",\n convex: {\n module: \"beliefs\",\n functionName: \"forkBelief\",\n kind: \"mutation\",\n inputProjection: forkBeliefInput,\n },\n }),\n surfaceContract({\n name: \"archive_belief\",\n kind: \"mutation\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n method: \"DELETE\",\n path: \"/beliefs\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"archiveBelief\",\n summary: \"Archive a belief.\",\n convex: {\n module: \"beliefs\",\n functionName: \"archive\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId(\n {\n ...withBeliefId(input),\n reason: input.reason ?? input.rationale,\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"search_beliefs\",\n kind: \"query\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n path: \"/beliefs/search\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"searchBeliefs\",\n summary: \"Search beliefs.\",\n convex: {\n module: \"nodes\",\n functionName: \"search\",\n kind: \"query\",\n inputProjection: (input) => ({\n ...input,\n searchQuery: input.searchQuery ?? input.query,\n nodeType: \"belief\",\n }),\n },\n }),\n surfaceContract({\n name: \"bisect_confidence\",\n kind: \"query\",\n domain: \"beliefs\",\n surfaceClass: \"platform_public\",\n path: \"/beliefs/confidence/bisect\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"bisectConfidence\",\n summary: \"Read belief confidence history for bisection.\",\n convex: {\n module: \"beliefs\",\n functionName: \"getConfidenceHistory\",\n kind: \"query\",\n inputProjection: withBeliefId,\n },\n }),\n surfaceContract({\n name: \"get_confidence_history\",\n kind: \"query\",\n domain: \"beliefs\",\n surfaceClass: \"legacy_compat\",\n replacedBy: \"bisect_confidence\",\n path: \"/beliefs/confidence-history\",\n sdkNamespace: \"beliefs\",\n sdkMethod: \"getConfidenceHistory\",\n summary: \"Legacy confidence-history alias for the generated belief history route.\",\n convex: {\n module: \"beliefs\",\n functionName: \"getConfidenceHistory\",\n kind: \"query\",\n inputProjection: withBeliefId,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract, withCreatedBy, withUserId } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst evidenceIdInput = (input: Record<string, unknown>) => ({\n ...input,\n evidenceId: input.evidenceId ?? input.id ?? input.nodeId,\n nodeId: input.nodeId ?? input.id ?? input.evidenceId,\n});\n\nconst createEvidenceInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n {\n ...input,\n title: input.title ?? input.text,\n content: input.content ?? input.text,\n sourceType: input.sourceType ?? input.source ?? \"agent\",\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n );\n\nexport const evidenceContracts = [\n surfaceContract({\n name: \"create_evidence\",\n kind: \"mutation\",\n domain: \"evidence\",\n surfaceClass: \"platform_public\",\n path: \"/evidence\",\n sdkNamespace: \"evidence\",\n sdkMethod: \"createEvidence\",\n summary: \"Create evidence.\",\n convex: {\n module: \"evidence\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: createEvidenceInput,\n },\n }),\n surfaceContract({\n name: \"add_evidence\",\n kind: \"mutation\",\n domain: \"evidence\",\n surfaceClass: \"legacy_compat\",\n replacedBy: \"create_evidence\",\n path: \"/evidence/add\",\n sdkNamespace: \"evidence\",\n sdkMethod: \"addEvidence\",\n summary: \"Legacy evidence creation alias that writes through create_evidence.\",\n convex: {\n module: \"evidence\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: (input, context) => {\n const weight = typeof input.weight === \"number\" ? input.weight : 0.7;\n return createEvidenceInput(\n {\n ...input,\n text: input.text ?? input.canonicalText,\n sourceUrl: input.sourceUrl,\n linkedBeliefNodeId:\n input.linkedBeliefNodeId ?? input.targetNodeId ?? input.targetId,\n evidenceRelation: weight < 0 ? \"contradicts\" : \"supports\",\n confidence: Math.min(1, Math.max(0, Math.abs(weight))),\n metadata: {\n ...(input.metadata &&\n typeof input.metadata === \"object\" &&\n !Array.isArray(input.metadata)\n ? (input.metadata as Record<string, unknown>)\n : {}),\n reasoning: input.reasoning,\n sourceUrl: input.sourceUrl,\n },\n },\n context\n );\n },\n },\n }),\n surfaceContract({\n name: \"get_evidence\",\n kind: \"query\",\n domain: \"evidence\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/evidence/get\",\n sdkNamespace: \"evidence\",\n sdkMethod: \"getEvidence\",\n summary: \"Get evidence.\",\n convex: {\n module: \"evidence\",\n functionName: \"getById\",\n kind: \"query\",\n inputProjection: evidenceIdInput,\n },\n }),\n surfaceContract({\n name: \"list_evidence\",\n kind: \"query\",\n domain: \"evidence\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/evidence\",\n sdkNamespace: \"evidence\",\n sdkMethod: \"listEvidence\",\n summary: \"List evidence for a topic.\",\n convex: {\n module: \"evidence\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"search_evidence\",\n kind: \"query\",\n domain: \"evidence\",\n surfaceClass: \"platform_public\",\n path: \"/evidence/search\",\n sdkNamespace: \"evidence\",\n sdkMethod: \"searchEvidence\",\n summary: \"Search evidence.\",\n convex: {\n module: \"nodes\",\n functionName: \"search\",\n kind: \"query\",\n inputProjection: (input) => ({\n ...input,\n searchQuery: input.searchQuery ?? input.q ?? input.query,\n nodeType: \"evidence\",\n }),\n },\n }),\n surfaceContract({\n name: \"link_evidence_to_belief\",\n kind: \"mutation\",\n domain: \"evidence\",\n surfaceClass: \"platform_public\",\n path: \"/evidence/link-belief\",\n sdkNamespace: \"evidence\",\n sdkMethod: \"linkEvidenceToBelief\",\n summary: \"Link evidence to a belief.\",\n convex: {\n module: \"beliefs\",\n functionName: \"linkEvidence\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId(\n {\n ...input,\n beliefNodeId: input.beliefNodeId ?? input.beliefId ?? input.targetId,\n evidenceNodeId: input.evidenceNodeId ?? input.evidenceId,\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"link_evidence_to_question\",\n kind: \"mutation\",\n domain: \"evidence\",\n surfaceClass: \"platform_public\",\n path: \"/evidence/link-question\",\n sdkNamespace: \"evidence\",\n sdkMethod: \"linkEvidenceToQuestion\",\n summary: \"Link evidence to a question.\",\n convex: {\n module: \"questionLinks\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withCreatedBy(\n {\n ...input,\n questionId: input.questionId,\n insightId: input.insightId ?? input.evidenceId,\n helpsAnswer: input.helpsAnswer ?? true,\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"link_evidence\",\n kind: \"mutation\",\n domain: \"evidence\",\n surfaceClass: \"platform_public\",\n path: \"/evidence/link\",\n sdkNamespace: \"evidence\",\n sdkMethod: \"linkEvidence\",\n summary: \"Link evidence to a target node.\",\n convex: {\n module: \"beliefs\",\n functionName: \"linkEvidence\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId(\n {\n ...input,\n beliefNodeId: input.beliefNodeId ?? input.targetId,\n evidenceNodeId: input.evidenceNodeId ?? input.evidenceId,\n },\n context\n ),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract, withUserId } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst questionIdInput = (input: Record<string, unknown>) => ({\n ...input,\n questionId: input.questionId ?? input.id ?? input.nodeId,\n nodeId: input.nodeId ?? input.id ?? input.questionId,\n});\n\nconst createQuestionInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n {\n ...input,\n text: input.text ?? input.question,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n );\n\nexport const questionsContracts = [\n surfaceContract({\n name: \"create_question\",\n kind: \"mutation\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n path: \"/questions\",\n sdkNamespace: \"questions\",\n sdkMethod: \"createQuestion\",\n summary: \"Create a question.\",\n convex: {\n module: \"questions\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: createQuestionInput,\n },\n }),\n surfaceContract({\n name: \"get_question\",\n kind: \"query\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/questions/get\",\n sdkNamespace: \"questions\",\n sdkMethod: \"getQuestion\",\n summary: \"Get a question.\",\n convex: {\n module: \"questions\",\n functionName: \"getById\",\n kind: \"query\",\n inputProjection: questionIdInput,\n },\n }),\n surfaceContract({\n name: \"list_questions\",\n kind: \"query\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/questions\",\n sdkNamespace: \"questions\",\n sdkMethod: \"listQuestions\",\n summary: \"List questions for a topic.\",\n convex: {\n module: \"questions\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"refine_question\",\n kind: \"mutation\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n method: \"PATCH\",\n path: \"/questions/refine\",\n sdkNamespace: \"questions\",\n sdkMethod: \"refineQuestion\",\n summary: \"Refine a question.\",\n convex: {\n module: \"questions\",\n functionName: \"updateQuestion\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId({ ...questionIdInput(input), text: input.text }, context),\n },\n }),\n surfaceContract({\n name: \"update_question_status\",\n kind: \"mutation\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n method: \"PATCH\",\n path: \"/questions/status\",\n sdkNamespace: \"questions\",\n sdkMethod: \"updateQuestionStatus\",\n summary: \"Update a question status.\",\n convex: {\n module: \"questions\",\n functionName: \"updateStatus\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId(questionIdInput(input), context),\n },\n }),\n surfaceContract({\n name: \"archive_question\",\n kind: \"mutation\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n method: \"DELETE\",\n path: \"/questions\",\n sdkNamespace: \"questions\",\n sdkMethod: \"archiveQuestion\",\n summary: \"Archive a question.\",\n convex: {\n module: \"questions\",\n functionName: \"deleteQuestion\",\n kind: \"mutation\",\n inputProjection: questionIdInput,\n },\n }),\n surfaceContract({\n name: \"create_answer\",\n kind: \"mutation\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n path: \"/answers\",\n sdkNamespace: \"answers\",\n sdkMethod: \"createAnswer\",\n summary: \"Create an answer.\",\n convex: {\n module: \"answers\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId(\n {\n ...input,\n questionNodeId: input.questionNodeId ?? input.questionId,\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"answer_question\",\n kind: \"mutation\",\n domain: \"questions\",\n surfaceClass: \"legacy_compat\",\n replacedBy: \"create_answer\",\n path: \"/questions/answer\",\n sdkNamespace: \"answers\",\n sdkMethod: \"answerQuestion\",\n summary: \"Legacy question-answer alias that writes through create_answer.\",\n convex: {\n module: \"answers\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId(\n {\n ...input,\n questionNodeId: input.questionNodeId ?? input.questionId ?? input.id,\n answerText: input.answerText ?? input.text,\n evidenceNodeIds: input.evidenceNodeIds ?? input.evidenceIds,\n answerSource: input.answerSource ?? \"human\",\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"get_answer\",\n kind: \"query\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/answers/get\",\n sdkNamespace: \"answers\",\n sdkMethod: \"getAnswer\",\n summary: \"Get the latest answer for a question.\",\n convex: {\n module: \"answers\",\n functionName: \"getLatestForQuestion\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"find_missing_questions\",\n kind: \"query\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n path: \"/questions/missing\",\n sdkNamespace: \"questions\",\n sdkMethod: \"findMissingQuestions\",\n summary: \"List open questions as missing-question candidates.\",\n convex: {\n module: \"questions\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"get_high_priority_questions\",\n kind: \"query\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n path: \"/questions/high-priority\",\n sdkNamespace: \"questions\",\n sdkMethod: \"getHighPriorityQuestions\",\n summary: \"List high-priority questions.\",\n convex: {\n module: \"questions\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"get_falsification_questions\",\n kind: \"query\",\n domain: \"questions\",\n surfaceClass: \"platform_public\",\n path: \"/questions/falsification\",\n sdkNamespace: \"questions\",\n sdkMethod: \"getFalsificationQuestions\",\n summary: \"List falsification questions.\",\n convex: {\n module: \"questions\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract, withCreatedBy } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nconst topicIdInput = (input: Record<string, unknown>) => ({\n ...input,\n id: input.id ?? input.topicId,\n});\n\nexport const topicsContracts = [\n surfaceContract({\n name: \"create_topic\",\n kind: \"mutation\",\n domain: \"topics\",\n surfaceClass: \"platform_public\",\n path: \"/topics\",\n sdkNamespace: \"topics\",\n sdkMethod: \"createTopic\",\n summary: \"Create a topic.\",\n convex: {\n module: \"topics\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: withCreatedBy,\n },\n }),\n surfaceContract({\n name: \"get_topic\",\n kind: \"query\",\n domain: \"topics\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/topics/get\",\n sdkNamespace: \"topics\",\n sdkMethod: \"getTopic\",\n summary: \"Get a topic.\",\n convex: {\n module: \"topics\",\n functionName: \"get\",\n kind: \"query\",\n inputProjection: topicIdInput,\n },\n }),\n surfaceContract({\n name: \"list_topics\",\n kind: \"query\",\n domain: \"topics\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/topics\",\n sdkNamespace: \"topics\",\n sdkMethod: \"listTopics\",\n summary: \"List topics.\",\n convex: {\n module: \"topics\",\n functionName: \"list\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"update_topic\",\n kind: \"mutation\",\n domain: \"topics\",\n surfaceClass: \"platform_public\",\n method: \"PATCH\",\n path: \"/topics\",\n sdkNamespace: \"topics\",\n sdkMethod: \"updateTopic\",\n summary: \"Update a topic.\",\n convex: {\n module: \"topics\",\n functionName: \"update\",\n kind: \"mutation\",\n inputProjection: topicIdInput,\n },\n }),\n surfaceContract({\n name: \"get_topic_tree\",\n kind: \"query\",\n domain: \"topics\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/topics/tree\",\n sdkNamespace: \"topics\",\n sdkMethod: \"getTopicTree\",\n summary: \"Get a topic tree.\",\n convex: {\n module: \"topics\",\n functionName: \"getTree\",\n kind: \"query\",\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nexport const lensesContracts = [\n surfaceContract({\n name: \"create_lens\",\n kind: \"mutation\",\n domain: \"lenses\",\n surfaceClass: \"platform_public\",\n path: \"/lenses\",\n sdkNamespace: \"lenses\",\n sdkMethod: \"createLens\",\n summary: \"Create a lens.\",\n convex: {\n module: \"lenses\",\n functionName: \"create\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"list_lenses\",\n kind: \"query\",\n domain: \"lenses\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/lenses\",\n sdkNamespace: \"lenses\",\n sdkMethod: \"listLenses\",\n summary: \"List lenses.\",\n convex: {\n module: \"lenses\",\n functionName: \"list\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"apply_lens_to_topic\",\n kind: \"mutation\",\n domain: \"lenses\",\n surfaceClass: \"platform_public\",\n path: \"/lenses/apply\",\n sdkNamespace: \"lenses\",\n sdkMethod: \"applyLensToTopic\",\n summary: \"Apply a lens to a topic.\",\n convex: {\n module: \"lenses\",\n functionName: \"applyToTopic\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"remove_lens_from_topic\",\n kind: \"mutation\",\n domain: \"lenses\",\n surfaceClass: \"platform_public\",\n method: \"DELETE\",\n path: \"/lenses/apply\",\n sdkNamespace: \"lenses\",\n sdkMethod: \"removeLensFromTopic\",\n summary: \"Remove a lens from a topic.\",\n convex: {\n module: \"lenses\",\n functionName: \"removeFromTopic\",\n kind: \"mutation\",\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nexport const ontologiesContracts = [\n surfaceContract({\n name: \"create_ontology\",\n kind: \"mutation\",\n domain: \"ontologies\",\n surfaceClass: \"platform_public\",\n path: \"/ontologies\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"createOntology\",\n summary: \"Create an ontology definition.\",\n convex: {\n module: \"ontologies\",\n functionName: \"createOntologyDefinition\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"get_ontology\",\n kind: \"query\",\n domain: \"ontologies\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/ontologies/get\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"getOntology\",\n summary: \"Get an ontology definition.\",\n convex: {\n module: \"ontologies\",\n functionName: \"getOntologyDefinition\",\n kind: \"query\",\n inputProjection: (input) => ({\n ...input,\n id: input.id ?? input.ontologyId,\n }),\n },\n }),\n surfaceContract({\n name: \"list_ontologies\",\n kind: \"query\",\n domain: \"ontologies\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/ontologies\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"listOntologies\",\n summary: \"List ontology definitions.\",\n convex: {\n module: \"ontologies\",\n functionName: \"listOntologyDefinitions\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"update_ontology\",\n kind: \"mutation\",\n domain: \"ontologies\",\n surfaceClass: \"platform_public\",\n method: \"PATCH\",\n path: \"/ontologies\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"updateOntology\",\n summary: \"Update an ontology definition.\",\n convex: {\n module: \"ontologies\",\n functionName: \"updateOntologyDefinition\",\n kind: \"mutation\",\n inputProjection: (input) => ({\n ...input,\n id: input.id ?? input.ontologyId,\n }),\n },\n }),\n surfaceContract({\n name: \"archive_ontology\",\n kind: \"mutation\",\n domain: \"ontologies\",\n surfaceClass: \"platform_public\",\n method: \"DELETE\",\n path: \"/ontologies\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"archiveOntology\",\n summary: \"Archive an ontology definition.\",\n convex: {\n module: \"ontologies\",\n functionName: \"archiveOntologyDefinition\",\n kind: \"mutation\",\n inputProjection: (input) => ({\n ...input,\n id: input.id ?? input.ontologyId,\n }),\n },\n }),\n surfaceContract({\n name: \"create_ontology_version\",\n kind: \"mutation\",\n domain: \"ontologies\",\n surfaceClass: \"platform_public\",\n path: \"/ontologies/versions\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"createOntologyVersion\",\n summary: \"Create an ontology version.\",\n convex: {\n module: \"ontologies\",\n functionName: \"createOntologyVersion\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"apply_ontology\",\n kind: \"mutation\",\n domain: \"ontologies\",\n surfaceClass: \"platform_public\",\n path: \"/ontologies/apply\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"applyOntology\",\n summary: \"Apply an ontology to a topic.\",\n convex: {\n module: \"topics\",\n functionName: \"update\",\n kind: \"mutation\",\n inputProjection: (input) => ({\n ...input,\n id: input.topicId ?? input.id,\n ontologyId: input.ontologyId ?? input.id,\n }),\n },\n }),\n surfaceContract({\n name: \"match_entity_type\",\n kind: \"query\",\n domain: \"ontologies\",\n surfaceClass: \"platform_public\",\n path: \"/ontologies/match-entity-type\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"matchEntityType\",\n summary: \"Resolve an ontology before matching entity types.\",\n convex: {\n module: \"ontologies\",\n functionName: \"resolveEffectiveOntology\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"publish_ontology_version\",\n kind: \"mutation\",\n domain: \"ontologies\",\n surfaceClass: \"tenant_public\",\n path: \"/ontologies/versions/publish\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"publishOntologyVersion\",\n summary: \"Publish an ontology version.\",\n convex: {\n module: \"ontologies\",\n functionName: \"publishOntologyVersion\",\n kind: \"mutation\",\n inputProjection: (input) => ({\n ...input,\n id: input.id ?? input.versionId,\n }),\n },\n }),\n surfaceContract({\n name: \"deprecate_ontology_version\",\n kind: \"mutation\",\n domain: \"ontologies\",\n surfaceClass: \"tenant_public\",\n path: \"/ontologies/versions/deprecate\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"deprecateOntologyVersion\",\n summary: \"Deprecate an ontology version.\",\n convex: {\n module: \"ontologies\",\n functionName: \"deprecateOntologyVersion\",\n kind: \"mutation\",\n inputProjection: (input) => ({\n ...input,\n id: input.id ?? input.versionId,\n }),\n },\n }),\n surfaceContract({\n name: \"resolve_effective_ontology\",\n kind: \"query\",\n domain: \"ontologies\",\n surfaceClass: \"tenant_public\",\n path: \"/ontologies/effective\",\n sdkNamespace: \"ontologies\",\n sdkMethod: \"resolveEffectiveOntology\",\n summary: \"Resolve the effective ontology for a topic.\",\n convex: {\n module: \"ontologies\",\n functionName: \"resolveEffectiveOntology\",\n kind: \"query\",\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract, withCreatedBy } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nconst worktreeInput = (input: Record<string, unknown>) => ({\n ...input,\n worktreeId: input.worktreeId ?? input.id,\n});\n\nexport const worktreesContracts = [\n surfaceContract({\n name: \"add_worktree\",\n kind: \"mutation\",\n domain: \"worktrees\",\n surfaceClass: \"platform_public\",\n path: \"/worktrees\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"addWorktree\",\n summary: \"Create a worktree.\",\n convex: {\n module: \"worktrees\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withCreatedBy(\n {\n ...input,\n name: input.name ?? input.title,\n targetBeliefIds: input.targetBeliefIds ?? input.beliefIds,\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"activate_worktree\",\n kind: \"mutation\",\n domain: \"worktrees\",\n surfaceClass: \"platform_public\",\n path: \"/worktrees/activate\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"activateWorktree\",\n summary: \"Activate a worktree.\",\n convex: {\n module: \"worktrees\",\n functionName: \"activate\",\n kind: \"mutation\",\n inputProjection: worktreeInput,\n },\n }),\n surfaceContract({\n name: \"list_worktrees\",\n kind: \"query\",\n domain: \"worktrees\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/worktrees\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"listWorktrees\",\n summary: \"List worktrees for a topic.\",\n convex: {\n module: \"worktrees\",\n functionName: \"list\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"list_all_worktrees\",\n kind: \"query\",\n domain: \"worktrees\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/worktrees/all\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"listAllWorktrees\",\n summary: \"List all worktrees.\",\n convex: {\n module: \"worktrees\",\n functionName: \"listAll\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"update_worktree_targets\",\n kind: \"mutation\",\n domain: \"worktrees\",\n surfaceClass: \"platform_public\",\n method: \"PATCH\",\n path: \"/worktrees/targets\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"updateWorktreeTargets\",\n summary: \"Update worktree target ids.\",\n convex: {\n module: \"worktrees\",\n functionName: \"updateTargets\",\n kind: \"mutation\",\n inputProjection: worktreeInput,\n },\n }),\n surfaceContract({\n name: \"update_worktree_metadata\",\n kind: \"mutation\",\n domain: \"worktrees\",\n surfaceClass: \"platform_public\",\n method: \"PATCH\",\n path: \"/worktrees/metadata\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"updateWorktreeMetadata\",\n summary: \"Update worktree metadata.\",\n convex: {\n module: \"worktrees\",\n functionName: \"updateMetadata\",\n kind: \"mutation\",\n inputProjection: worktreeInput,\n },\n }),\n surfaceContract({\n name: \"merge\",\n kind: \"mutation\",\n domain: \"worktrees\",\n surfaceClass: \"tenant_public\",\n path: \"/worktrees/merge\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"merge\",\n summary: \"Complete a worktree merge-style handoff.\",\n convex: {\n module: \"worktrees\",\n functionName: \"complete\",\n kind: \"mutation\",\n inputProjection: (input) => ({\n ...worktreeInput(input),\n keyFindings: input.keyFindings ?? [input.summary ?? \"Merged worktree\"],\n decisionsReached: input.decisionsReached ?? [],\n nextSteps: input.nextSteps ?? [],\n }),\n },\n }),\n surfaceContract({\n name: \"push\",\n kind: \"mutation\",\n domain: \"worktrees\",\n surfaceClass: \"platform_internal\",\n path: \"/worktrees/push\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"push\",\n summary: \"Record a worktree push intent.\",\n convex: {\n module: \"worktrees\",\n functionName: \"updateMetadata\",\n kind: \"mutation\",\n inputProjection: (input) => ({\n ...worktreeInput(input),\n lastPushTargetContext: input.targetContext,\n lastPushBeliefIds: input.beliefIds,\n }),\n },\n }),\n surfaceContract({\n name: \"open_pull_request\",\n kind: \"mutation\",\n domain: \"worktrees\",\n surfaceClass: \"platform_internal\",\n path: \"/worktrees/open-pull-request\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"openPullRequest\",\n summary: \"Record a pull-request opening intent.\",\n convex: {\n module: \"worktrees\",\n functionName: \"updateMetadata\",\n kind: \"mutation\",\n inputProjection: (input) => ({\n ...worktreeInput(input),\n lastPullRequestSummary: input.summary,\n lastPullRequestReviewers: input.reviewers,\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nconst taskInput = (input: Record<string, unknown>) => ({\n ...input,\n taskId: input.taskId ?? input.id,\n});\n\nexport const tasksContracts = [\n surfaceContract({\n name: \"create_task\",\n kind: \"mutation\",\n domain: \"tasks\",\n surfaceClass: \"platform_public\",\n path: \"/tasks\",\n sdkNamespace: \"tasks\",\n sdkMethod: \"createTask\",\n summary: \"Create a task.\",\n convex: {\n module: \"tasks\",\n functionName: \"create\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"list_tasks\",\n kind: \"query\",\n domain: \"tasks\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/tasks\",\n sdkNamespace: \"tasks\",\n sdkMethod: \"listTasks\",\n summary: \"List tasks.\",\n convex: {\n module: \"tasks\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"update_task\",\n kind: \"mutation\",\n domain: \"tasks\",\n surfaceClass: \"platform_public\",\n method: \"PATCH\",\n path: \"/tasks\",\n sdkNamespace: \"tasks\",\n sdkMethod: \"updateTask\",\n summary: \"Update a task.\",\n convex: {\n module: \"tasks\",\n functionName: \"update\",\n kind: \"mutation\",\n inputProjection: taskInput,\n },\n }),\n surfaceContract({\n name: \"complete_task\",\n kind: \"mutation\",\n domain: \"tasks\",\n surfaceClass: \"platform_public\",\n path: \"/tasks/complete\",\n sdkNamespace: \"tasks\",\n sdkMethod: \"completeTask\",\n summary: \"Complete a task.\",\n convex: {\n module: \"tasks\",\n functionName: \"complete\",\n kind: \"mutation\",\n inputProjection: taskInput,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract, withCreatedBy } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nexport const edgesContracts = [\n surfaceContract({\n name: \"create_edge\",\n kind: \"mutation\",\n domain: \"edges\",\n surfaceClass: \"platform_public\",\n path: \"/edges\",\n sdkNamespace: \"edges\",\n sdkMethod: \"createEdge\",\n summary: \"Create an epistemic edge.\",\n convex: {\n module: \"edges\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withCreatedBy(\n {\n ...input,\n fromNodeId: input.fromNodeId ?? input.sourceId,\n toNodeId: input.toNodeId ?? input.targetId,\n context: input.context ?? input.reasoning,\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"query_lineage\",\n kind: \"query\",\n domain: \"edges\",\n surfaceClass: \"platform_public\",\n path: \"/edges/lineage\",\n sdkNamespace: \"edges\",\n sdkMethod: \"queryLineage\",\n summary: \"Query graph lineage for a node.\",\n convex: {\n module: \"edges\",\n functionName: \"getLineage\",\n kind: \"query\",\n inputProjection: (input) => ({\n ...input,\n maxDepth: input.maxDepth ?? input.depth,\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { authUserId, surfaceContract } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst contradictionSeverity = (value: unknown) => {\n switch (value) {\n case \"critical\":\n case \"high\":\n return \"critical\";\n case \"medium\":\n return \"significant\";\n case \"low\":\n return \"minor\";\n default:\n return \"significant\";\n }\n};\n\nconst flagContradictionInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) => ({\n ...input,\n beliefId: input.beliefId ?? input.beliefA,\n supportingInsightIds: Array.isArray(input.supportingInsightIds)\n ? input.supportingInsightIds\n : [],\n contradictingInsightIds: Array.isArray(input.contradictingInsightIds)\n ? input.contradictingInsightIds\n : [input.beliefB].filter((value): value is string => typeof value === \"string\"),\n severity: contradictionSeverity(input.severity),\n aiAnalysis: {\n summary: input.description ?? \"Contradiction flagged.\",\n likelyExplanation: input.description ?? \"Contradiction flagged.\",\n suggestedResolution: `Review the conflicting beliefs before acting. Defeat type: ${\n typeof input.defeatType === \"string\" ? input.defeatType : \"unspecified\"\n }.`,\n confidenceInAnalysis: 0.5,\n analyzedAt: Date.now(),\n },\n createdBy: authUserId(context),\n});\n\nexport const graphContracts = [\n surfaceContract({\n name: \"traverse_graph\",\n kind: \"query\",\n domain: \"graph\",\n surfaceClass: \"platform_public\",\n path: \"/graph/traverse\",\n sdkNamespace: \"graph\",\n sdkMethod: \"traverseGraph\",\n summary: \"Traverse graph lineage from a node.\",\n convex: {\n module: \"edges\",\n functionName: \"getLineage\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"get_graph_neighborhood\",\n kind: \"query\",\n domain: \"graph\",\n surfaceClass: \"platform_public\",\n path: \"/graph/neighborhood\",\n sdkNamespace: \"graph\",\n sdkMethod: \"getGraphNeighborhood\",\n summary: \"Read graph neighborhood edges for a topic.\",\n convex: {\n module: \"edges\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"get_graph_structure_analysis\",\n kind: \"query\",\n domain: \"graph\",\n surfaceClass: \"platform_public\",\n path: \"/graph/structure-analysis\",\n sdkNamespace: \"graph\",\n sdkMethod: \"getGraphStructureAnalysis\",\n summary: \"Read cached graph structure analysis.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"getGraphStructureAnalysis\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"find_contradictions\",\n kind: \"query\",\n domain: \"graph\",\n surfaceClass: \"platform_public\",\n path: \"/graph/contradictions\",\n sdkNamespace: \"graph\",\n sdkMethod: \"findContradictions\",\n summary: \"Find contradiction edges.\",\n convex: {\n module: \"edges\",\n functionName: \"findContradictions\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"flag_contradiction\",\n kind: \"mutation\",\n domain: \"graph\",\n surfaceClass: \"platform_public\",\n path: \"/contradictions\",\n sdkNamespace: \"contradictions\",\n sdkMethod: \"flagContradiction\",\n summary: \"Flag a contradiction between two beliefs.\",\n convex: {\n module: \"contradictions\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: flagContradictionInput,\n },\n }),\n surfaceContract({\n name: \"detect_confirmation_bias\",\n kind: \"query\",\n domain: \"graph\",\n surfaceClass: \"platform_public\",\n path: \"/graph/confirmation-bias\",\n sdkNamespace: \"graph\",\n sdkMethod: \"detectConfirmationBias\",\n summary: \"Detect confirmation-bias risk from topic context.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"detectConfirmationBias\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"get_topic_coverage\",\n kind: \"query\",\n domain: \"graph\",\n surfaceClass: \"platform_public\",\n path: \"/graph/topic-coverage\",\n sdkNamespace: \"graph\",\n sdkMethod: \"getTopicCoverage\",\n summary: \"Read topic coverage context.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"getTopicCoverage\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"get_graph_gaps\",\n kind: \"query\",\n domain: \"graph\",\n surfaceClass: \"platform_public\",\n path: \"/graph/gaps\",\n sdkNamespace: \"graph\",\n sdkMethod: \"getGraphGaps\",\n summary: \"Read graph gap context.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"getGraphGaps\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"analyze_topic_density\",\n kind: \"query\",\n domain: \"scope\",\n surfaceClass: \"tenant_public\",\n path: \"/scope/topic-density\",\n sdkNamespace: \"context\",\n sdkMethod: \"analyzeTopicDensity\",\n summary: \"Analyze graph density for a topic.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"analyzeTopicDensity\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"apply_auto_branching\",\n kind: \"mutation\",\n domain: \"scope\",\n surfaceClass: \"tenant_public\",\n path: \"/scope/auto-branching\",\n sdkNamespace: \"context\",\n sdkMethod: \"applyAutoBranching\",\n summary: \"Apply automatic graph branching recommendations.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"applyAutoBranching\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"discover_entity_connections\",\n kind: \"query\",\n domain: \"context\",\n surfaceClass: \"tenant_public\",\n path: \"/context/entity-connections\",\n sdkNamespace: \"context\",\n sdkMethod: \"discoverEntityConnections\",\n summary: \"Discover graph connections for an entity.\",\n convex: {\n module: \"edges\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"trigger_belief_review\",\n kind: \"mutation\",\n domain: \"context\",\n surfaceClass: \"tenant_public\",\n path: \"/context/belief-review\",\n sdkNamespace: \"context\",\n sdkMethod: \"triggerBeliefReview\",\n summary: \"Trigger review suggestions for belief quality.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"triggerBeliefReview\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"trace_entity_impact\",\n kind: \"query\",\n domain: \"graph\",\n surfaceClass: \"tenant_public\",\n path: \"/graph/trace-entity-impact\",\n sdkNamespace: \"graph\",\n sdkMethod: \"traceEntityImpact\",\n summary: \"Trace graph impact for an entity.\",\n convex: {\n module: \"edges\",\n functionName: \"getLineage\",\n kind: \"query\",\n inputProjection: (input) => ({\n ...input,\n nodeId: input.nodeId ?? input.entityId,\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nexport const contractsContracts = [\n surfaceContract({\n name: \"create_epistemic_contract\",\n kind: \"mutation\",\n domain: \"contracts\",\n surfaceClass: \"tenant_public\",\n path: \"/contracts\",\n sdkNamespace: \"contracts\",\n sdkMethod: \"createEpistemicContract\",\n summary: \"Create an epistemic contract.\",\n convex: {\n module: \"contracts\",\n functionName: \"createEpistemicContract\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"evaluate_contract\",\n kind: \"mutation\",\n domain: \"contracts\",\n surfaceClass: \"tenant_public\",\n path: \"/contracts/evaluate\",\n sdkNamespace: \"contracts\",\n sdkMethod: \"evaluateContract\",\n summary: \"Evaluate an epistemic contract.\",\n convex: {\n module: \"contracts\",\n functionName: \"evaluateContract\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"get_contract_status\",\n kind: \"query\",\n domain: \"contracts\",\n surfaceClass: \"tenant_public\",\n path: \"/contracts/status\",\n sdkNamespace: \"contracts\",\n sdkMethod: \"getContractStatus\",\n summary: \"Read epistemic contract status.\",\n convex: {\n module: \"contracts\",\n functionName: \"getContractStatus\",\n kind: \"query\",\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract, withUserId } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nexport const judgmentsContracts = [\n surfaceContract({\n name: \"record_judgment\",\n kind: \"mutation\",\n domain: \"judgments\",\n surfaceClass: \"platform_internal\",\n path: \"/judgments\",\n sdkNamespace: \"judgments\",\n sdkMethod: \"recordJudgment\",\n summary: \"Record a judgment as evidence.\",\n convex: {\n module: \"evidence\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n withUserId(\n {\n ...input,\n text: input.rationale,\n title: input.title,\n content: input.rationale,\n kind: \"judgment\",\n sourceType: \"agent\",\n metadata: {\n confidence: input.confidence,\n beliefIds: input.beliefIds,\n },\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"get_audit_trail\",\n kind: \"query\",\n domain: \"judgments\",\n surfaceClass: \"platform_internal\",\n path: \"/judgments/audit-trail\",\n sdkNamespace: \"judgments\",\n sdkMethod: \"getAuditTrail\",\n summary: \"Read node lineage as an audit trail.\",\n convex: {\n module: \"edges\",\n functionName: \"getLineage\",\n kind: \"query\",\n inputProjection: (input) => ({\n ...input,\n nodeId: input.nodeId ?? input.id,\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nconst stringArray = (value: unknown): string[] | undefined =>\n Array.isArray(value)\n ? value.filter((entry): entry is string => typeof entry === \"string\")\n : undefined;\n\nexport const coordinationContracts = [\n surfaceContract({\n name: \"register_session\",\n kind: \"mutation\",\n domain: \"coordination\",\n surfaceClass: \"platform_internal\",\n path: \"/coordination/register-session\",\n sdkNamespace: \"coordination\",\n sdkMethod: \"registerSession\",\n summary: \"Register an active agent session.\",\n convex: {\n module: \"coordination\",\n functionName: \"registerSession\",\n kind: \"mutation\",\n injectSessionId: \"sessionId\",\n },\n }),\n surfaceContract({\n name: \"heartbeat_session\",\n kind: \"mutation\",\n domain: \"coordination\",\n surfaceClass: \"platform_internal\",\n path: \"/coordination/heartbeat-session\",\n sdkNamespace: \"coordination\",\n sdkMethod: \"heartbeatSession\",\n summary: \"Refresh an agent session heartbeat.\",\n convex: {\n module: \"coordination\",\n functionName: \"heartbeatSession\",\n kind: \"mutation\",\n injectSessionId: \"sessionId\",\n },\n }),\n surfaceContract({\n name: \"end_session\",\n kind: \"mutation\",\n domain: \"coordination\",\n surfaceClass: \"platform_internal\",\n path: \"/coordination/end-session\",\n sdkNamespace: \"coordination\",\n sdkMethod: \"endSession\",\n summary: \"End an agent session.\",\n convex: {\n module: \"coordination\",\n functionName: \"endSession\",\n kind: \"mutation\",\n injectSessionId: \"sessionId\",\n },\n }),\n surfaceContract({\n name: \"list_active_sessions\",\n kind: \"query\",\n domain: \"coordination\",\n surfaceClass: \"platform_internal\",\n path: \"/coordination/active-sessions\",\n sdkNamespace: \"coordination\",\n sdkMethod: \"listActiveSessions\",\n summary: \"List active agent sessions.\",\n convex: {\n module: \"coordination\",\n functionName: \"listActiveSessions\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"send_agent_message\",\n kind: \"mutation\",\n domain: \"coordination\",\n surfaceClass: \"platform_internal\",\n path: \"/coordination/messages/send\",\n sdkNamespace: \"coordination\",\n sdkMethod: \"sendAgentMessage\",\n summary: \"Send a directed agent coordination message.\",\n convex: {\n module: \"coordination\",\n functionName: \"sendMessage\",\n kind: \"mutation\",\n injectSessionId: \"fromSessionId\",\n inputProjection: (input) => ({\n ...input,\n messageType:\n typeof input.messageType === \"string\" ? input.messageType : \"note\",\n }),\n },\n }),\n surfaceContract({\n name: \"broadcast_message\",\n kind: \"mutation\",\n domain: \"coordination\",\n surfaceClass: \"platform_internal\",\n path: \"/coordination/messages/broadcast\",\n sdkNamespace: \"coordination\",\n sdkMethod: \"broadcastMessage\",\n summary: \"Broadcast an agent coordination message.\",\n convex: {\n module: \"coordination\",\n functionName: \"sendMessage\",\n kind: \"mutation\",\n injectSessionId: \"fromSessionId\",\n broadcastToAll: true,\n inputProjection: (input) => ({\n ...input,\n messageType:\n typeof input.messageType === \"string\" ? input.messageType : \"note\",\n }),\n },\n }),\n surfaceContract({\n name: \"get_agent_inbox\",\n kind: \"query\",\n domain: \"coordination\",\n surfaceClass: \"platform_internal\",\n path: \"/coordination/messages/inbox\",\n sdkNamespace: \"coordination\",\n sdkMethod: \"getAgentInbox\",\n summary: \"Read an agent session inbox.\",\n convex: {\n module: \"coordination\",\n functionName: \"getInbox\",\n kind: \"query\",\n injectSessionId: \"sessionId\",\n },\n }),\n surfaceContract({\n name: \"claim_files\",\n kind: \"mutation\",\n domain: \"coordination\",\n surfaceClass: \"platform_internal\",\n path: \"/coordination/file-claims\",\n sdkNamespace: \"coordination\",\n sdkMethod: \"claimFiles\",\n summary: \"Claim files for advisory agent coordination.\",\n convex: {\n module: \"coordination\",\n functionName: \"claimFiles\",\n kind: \"mutation\",\n injectSessionId: \"sessionId\",\n inputProjection: (input) => ({\n ...input,\n touchedFiles:\n stringArray(input.touchedFiles) ??\n stringArray(input.files) ??\n stringArray(input.paths) ??\n [],\n }),\n },\n }),\n surfaceContract({\n name: \"generate_session_handoff\",\n kind: \"query\",\n domain: \"bootstrap\",\n surfaceClass: \"platform_internal\",\n path: \"/bootstrap/session-handoff\",\n sdkNamespace: \"bootstrap\",\n sdkMethod: \"generateSessionHandoff\",\n summary: \"Generate a session handoff package.\",\n convex: {\n module: \"worktrees\",\n functionName: \"get\",\n kind: \"query\",\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nexport const pipelineContracts = [\n surfaceContract({\n name: \"pipeline_snapshot\",\n kind: \"query\",\n domain: \"worktrees\",\n surfaceClass: \"platform_internal\",\n path: \"/worktrees/pipeline-snapshot\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"pipelineSnapshot\",\n summary: \"Summarize worktree pipeline state for a topic.\",\n convex: {\n module: \"worktrees\",\n functionName: \"listAll\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"seed_belief_lattice\",\n kind: \"mutation\",\n domain: \"scope\",\n surfaceClass: \"platform_internal\",\n path: \"/scope/belief-lattice/seed\",\n sdkNamespace: \"context\",\n sdkMethod: \"seedBeliefLattice\",\n summary: \"Seed baseline belief lattice coverage for a topic.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"seedBeliefLattice\",\n kind: \"mutation\",\n },\n }),\n surfaceContract({\n name: \"get_lattice_coverage\",\n kind: \"query\",\n domain: \"scope\",\n surfaceClass: \"platform_internal\",\n path: \"/scope/belief-lattice/coverage\",\n sdkNamespace: \"context\",\n sdkMethod: \"getLatticeCoverage\",\n summary: \"Read belief lattice coverage for a topic.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"getLatticeCoverage\",\n kind: \"query\",\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { z } from \"zod\";\nimport { surfaceContract, withUserId } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst recordScopeLearningArgs = z.object({\n topicId: z.string().optional().describe(\"Topic scope ID\"),\n summary: z.string().describe(\"Atomic learning statement\"),\n title: z\n .string()\n .optional()\n .describe(\"Optional evidence title, such as a commit, doc, or issue.\"),\n body: z\n .string()\n .optional()\n .describe(\n \"Optional rich evidence body. If omitted, body is synthesized from summary and touched paths.\"\n ),\n contentType: z\n .string()\n .optional()\n .describe(\"Optional evidence body format, such as markdown or text.\"),\n sourceKind: z\n .enum([\"commit\", \"merge\", \"doc\", \"issue\", \"manual\"])\n .optional()\n .describe(\"Source type for the learning event\"),\n sourceRef: z\n .string()\n .optional()\n .describe(\"Optional source reference, such as SHA, PR number, or URL slug.\"),\n sourceUrl: z.string().optional().describe(\"Optional canonical source URL\"),\n touchedPaths: z\n .array(z.string())\n .optional()\n .describe(\"Optional touched file paths for retrieval hints\"),\n tags: z.array(z.string()).optional().describe(\"Optional tags\"),\n linkedBeliefNodeId: z\n .string()\n .optional()\n .describe(\"Optional belief to attach evidence to\"),\n evidenceRelation: z\n .enum([\"supports\", \"contradicts\"])\n .optional()\n .describe(\"Relation to linked belief\"),\n confidence: z.number().optional().describe(\"Optional confidence in [0,1]\"),\n createQuestionText: z\n .string()\n .optional()\n .describe(\"Optional follow-up question text\"),\n createBeliefText: z\n .string()\n .optional()\n .describe(\"Optional new belief text\"),\n beliefType: z\n .string()\n .optional()\n .describe(\"Optional belief type for createBeliefText\"),\n});\n\nconst learningInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n {\n ...input,\n text: input.summary ?? input.text,\n title: input.title ?? input.summary ?? \"Scope learning\",\n content: input.body ?? input.content ?? input.summary,\n kind: input.kind ?? input.sourceKind ?? \"learning\",\n tags: input.tags ?? [],\n metadata: {\n sourceRef: input.sourceRef,\n sourceKind: input.sourceKind,\n touchedPaths: input.touchedPaths,\n },\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n );\n\nconst attemptInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n {\n ...input,\n text: input.description,\n title: input.title ?? input.description,\n content: input.errorMessage ?? input.description,\n kind: \"code_attempt\",\n tags: [\"code_attempt\"],\n metadata: {\n filePaths: input.filePaths,\n filePath: input.filePath,\n errorMessage: input.errorMessage,\n linkedBeliefId: input.linkedBeliefId,\n },\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n },\n context\n );\n\nexport const codingContracts = [\n surfaceContract({\n name: \"record_scope_learning\",\n kind: \"mutation\",\n domain: \"scope\",\n surfaceClass: \"platform_internal\",\n path: \"/scope/learnings\",\n sdkNamespace: \"context\",\n sdkMethod: \"recordScopeLearning\",\n summary: \"Record a scope-level learning to the reasoning graph.\",\n args: recordScopeLearningArgs,\n input: recordScopeLearningArgs,\n convex: {\n module: \"evidence\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: learningInput,\n },\n }),\n surfaceContract({\n name: \"manage_write_policy\",\n kind: \"mutation\",\n domain: \"policy\",\n surfaceClass: \"tenant_public\",\n path: \"/policy/write-policy/manage\",\n sdkNamespace: \"policy\",\n sdkMethod: \"manageWritePolicy\",\n summary: \"Manage MCP write policy rules.\",\n convex: {\n module: \"evidence\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: (input, context) =>\n learningInput(\n {\n ...input,\n summary:\n input.summary ??\n `Write policy ${String(input.action ?? \"update\")}`,\n sourceKind: \"write_policy\",\n },\n context\n ),\n },\n }),\n surfaceContract({\n name: \"get_code_context\",\n kind: \"query\",\n domain: \"coding\",\n surfaceClass: \"platform_internal\",\n path: \"/coding/context\",\n sdkNamespace: \"coding\",\n sdkMethod: \"getCodeContext\",\n summary: \"Read code context for graph-linked files.\",\n convex: {\n module: \"evidence\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"get_change_history\",\n kind: \"query\",\n domain: \"coding\",\n surfaceClass: \"platform_internal\",\n path: \"/coding/change-history\",\n sdkNamespace: \"coding\",\n sdkMethod: \"getChangeHistory\",\n summary: \"Read recorded code change attempts.\",\n convex: {\n module: \"evidence\",\n functionName: \"getByTopic\",\n kind: \"query\",\n },\n }),\n surfaceContract({\n name: \"record_attempt\",\n kind: \"mutation\",\n domain: \"coding\",\n surfaceClass: \"platform_internal\",\n path: \"/coding/attempts\",\n sdkNamespace: \"coding\",\n sdkMethod: \"recordAttempt\",\n summary: \"Record a code attempt for failure learning.\",\n convex: {\n module: \"evidence\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: attemptInput,\n },\n }),\n surfaceContract({\n name: \"get_failure_log\",\n kind: \"query\",\n domain: \"coding\",\n surfaceClass: \"platform_internal\",\n path: \"/coding/failure-log\",\n sdkNamespace: \"coding\",\n sdkMethod: \"getFailureLog\",\n summary: \"Read code failure log entries.\",\n convex: {\n module: \"evidence\",\n functionName: \"getByTopic\",\n kind: \"query\",\n inputProjection: (input) => ({\n ...input,\n topicId: input.topicId ?? input.query,\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nexport const legacyContracts = [\n surfaceContract({\n name: \"discover\",\n kind: \"query\",\n domain: \"context\",\n surfaceClass: \"legacy_compat\",\n replacedBy: \"compile_context\",\n path: \"/context/discover\",\n sdkNamespace: \"context\",\n sdkMethod: \"discover\",\n summary: \"Discover relevant topic context.\",\n convex: {\n module: \"contextCompiler\",\n functionName: \"compile\",\n kind: \"query\",\n inputProjection: (input) => ({\n ...input,\n query: input.query ?? input.prompt ?? input.topicHint ?? \"discover\",\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { contextContracts } from \"./context.js\";\nimport { identityContracts } from \"./identity.js\";\nimport { beliefsContracts } from \"./beliefs.js\";\nimport { evidenceContracts } from \"./evidence.js\";\nimport { questionsContracts } from \"./questions.js\";\nimport { topicsContracts } from \"./topics.js\";\nimport { lensesContracts } from \"./lenses.js\";\nimport { ontologiesContracts } from \"./ontologies.js\";\nimport { worktreesContracts } from \"./worktrees.js\";\nimport { tasksContracts } from \"./tasks.js\";\nimport { edgesContracts } from \"./edges.js\";\nimport { graphContracts } from \"./graph.js\";\nimport { contractsContracts } from \"./contracts.js\";\nimport { judgmentsContracts } from \"./judgments.js\";\nimport { coordinationContracts } from \"./coordination.js\";\nimport { pipelineContracts } from \"./pipeline.js\";\nimport { codingContracts } from \"./coding.js\";\nimport { legacyContracts } from \"./legacy.js\";\nimport { assertSurfaceCoverage } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nexport * from \"./types.js\";\nexport * from \"./helpers.js\";\nexport * from \"./manifest.js\";\nexport { contextContracts } from \"./context.js\";\nexport { identityContracts } from \"./identity.js\";\nexport { beliefsContracts } from \"./beliefs.js\";\nexport { evidenceContracts } from \"./evidence.js\";\nexport { questionsContracts } from \"./questions.js\";\nexport { topicsContracts } from \"./topics.js\";\nexport { lensesContracts } from \"./lenses.js\";\nexport { ontologiesContracts } from \"./ontologies.js\";\nexport { worktreesContracts } from \"./worktrees.js\";\nexport { tasksContracts } from \"./tasks.js\";\nexport { edgesContracts } from \"./edges.js\";\nexport { graphContracts } from \"./graph.js\";\nexport { contractsContracts } from \"./contracts.js\";\nexport { judgmentsContracts } from \"./judgments.js\";\nexport { coordinationContracts } from \"./coordination.js\";\nexport { pipelineContracts } from \"./pipeline.js\";\nexport { codingContracts } from \"./coding.js\";\nexport { legacyContracts } from \"./legacy.js\";\n\nexport const ALL_FUNCTION_CONTRACTS: readonly FunctionContract[] = [\n ...contextContracts,\n ...identityContracts,\n ...beliefsContracts,\n ...evidenceContracts,\n ...questionsContracts,\n ...topicsContracts,\n ...lensesContracts,\n ...ontologiesContracts,\n ...worktreesContracts,\n ...tasksContracts,\n ...edgesContracts,\n ...graphContracts,\n ...contractsContracts,\n ...judgmentsContracts,\n ...coordinationContracts,\n ...pipelineContracts,\n ...codingContracts,\n ...legacyContracts,\n] as const;\n\nassertSurfaceCoverage(ALL_FUNCTION_CONTRACTS);\n\nexport const FUNCTION_SURFACE_CONTRACTS: readonly FunctionContract[] =\n ALL_FUNCTION_CONTRACTS;\n\nexport const FUNCTION_CONTRACTS_BY_NAME = new Map(\n ALL_FUNCTION_CONTRACTS.map((contract) => [contract.name, contract] as const)\n);\n\nexport function getFunctionContract(name: string) {\n return FUNCTION_CONTRACTS_BY_NAME.get(name);\n}\n","/**\n * @lucern/contracts — TopicsV1 namespace (resource contracts)\n *\n * Moved from src/topic-scope.contract.ts in EK-16 T1 PR 2.\n * Compat shim remains at the old path until the Lucern 1.0.0 cut.\n */\n\nexport const ROOT_TOPIC_ID = \"n17tm38rwet7wqgzrmwahyt1z582590y\";\n\nexport type TopicDoc = {\n _id: string;\n name?: string;\n parentTopicId?: string;\n depth?: number;\n type?: string;\n};\n\n/**\n * BFS traversal collecting a topic and its neighborhood:\n * ancestors up to root + descendants down to maxDescendantDepth.\n */\nexport function collectTopicNeighborhood(\n topics: TopicDoc[],\n rootTopicId: string,\n maxDescendantDepth = 2\n): string[] {\n const byId = new Map<string, TopicDoc>();\n const children = new Map<string, string[]>();\n for (const topic of topics) {\n const id = String(topic._id);\n byId.set(id, topic);\n if (!children.has(id)) {\n children.set(id, []);\n }\n }\n for (const topic of topics) {\n if (!topic.parentTopicId) {\n continue;\n }\n const parent = String(topic.parentTopicId);\n const id = String(topic._id);\n const list = children.get(parent) || [];\n list.push(id);\n children.set(parent, list);\n }\n\n const selected = new Set<string>();\n selected.add(rootTopicId);\n\n // Ancestors\n let cursor = byId.get(rootTopicId);\n while (cursor?.parentTopicId) {\n const parentId = String(cursor.parentTopicId);\n if (selected.has(parentId)) {\n break;\n }\n selected.add(parentId);\n cursor = byId.get(parentId);\n }\n\n // Descendants\n const queue: Array<{ id: string; depth: number }> = [\n { id: rootTopicId, depth: 0 },\n ];\n while (queue.length > 0) {\n const current = queue.shift()!;\n if (current.depth >= maxDescendantDepth) {\n continue;\n }\n for (const childId of children.get(current.id) || []) {\n if (!selected.has(childId)) {\n selected.add(childId);\n }\n queue.push({ id: childId, depth: current.depth + 1 });\n }\n }\n\n return Array.from(selected);\n}\n","/**\n * Server-core kernelApi — host-registered Convex API binding.\n *\n * Hosts (Stack gateway, mcp-server, identity-template, etc.) call\n * registerKernelApi({ api, components, internal }) at boot with their\n * deployment's generated bindings.\n *\n * The binding is stored on globalThis rather than module scope to survive\n * tsup's per-entry bundling. Each dist entry inlines this module; with\n * module-level state each entry had its own `binding` closure, meaning\n * register calls in one bundle were invisible to reader bundles. globalThis\n * is a process-wide shared slot so all bundle copies agree.\n */\n\nexport interface KernelApiBinding {\n api: any;\n components: any;\n internal: any;\n}\n\nconst GLOBAL_KEY = \"__LUCERN_SERVER_CORE_KERNEL_API_BINDING__\" as const;\n\ntype GlobalStore = {\n [GLOBAL_KEY]?: KernelApiBinding | null;\n};\n\nfunction store(): GlobalStore {\n return globalThis as unknown as GlobalStore;\n}\n\nexport function registerKernelApi(nextBinding: KernelApiBinding): void {\n store()[GLOBAL_KEY] = nextBinding;\n}\n\nexport function isKernelApiRegistered(): boolean {\n const current = store()[GLOBAL_KEY];\n return current != null;\n}\n\nfunction getBinding(): KernelApiBinding {\n const current = store()[GLOBAL_KEY];\n if (!current) {\n throw new Error(\n \"Server-core kernelApi not registered. \" +\n \"Call registerKernelApi({api, components, internal}) at host boot.\"\n );\n }\n return current;\n}\n\nfunction makeProxy(which: keyof KernelApiBinding): any {\n return new Proxy({} as any, {\n get(_target, prop) {\n return getBinding()[which][prop as string];\n },\n });\n}\n\nexport const api: any = makeProxy(\"api\");\nexport const components: any = makeProxy(\"components\");\nexport const internal: any = makeProxy(\"internal\");\n","import {\n api as kernelApi,\n components as kernelComponents,\n internal as kernelInternal,\n} from \"@lucern/reasoning-kernel/_generated/api\";\nimport { registerKernelApi } from \"@lucern/server-core/adapters\";\n\nregisterKernelApi({\n api: kernelApi,\n components: kernelComponents,\n internal: kernelInternal,\n});\n\nexport const api = kernelApi as any;\nexport const components = kernelComponents as any;\nexport const internal = kernelInternal as any;\n","import { appendFileSync } from \"node:fs\";\n\nexport function isQuietMcpBoot(): boolean {\n return process.env.LUCERN_MCP_QUIET === \"1\";\n}\n\nexport function logMcpInfo(message: string): void {\n if (!isQuietMcpBoot()) {\n console.error(message);\n }\n}\n\nexport function appendMcpDiagnostics(\n event: string,\n fields: Record<string, unknown> = {}\n): void {\n const path = process.env.LUCERN_MCP_DIAGNOSTICS_FILE?.trim();\n if (!path) {\n return;\n }\n\n const payload = {\n ts: new Date().toISOString(),\n pid: process.pid,\n event,\n ...Object.fromEntries(\n Object.entries(fields).filter(([, value]) => value !== undefined)\n ),\n };\n\n try {\n appendFileSync(path, `${JSON.stringify(payload)}\\n`);\n } catch {\n // Diagnostics must never interfere with MCP startup.\n }\n}\n","/**\n * Convex Clients — Lazy-initialized admin-authed ConvexHttpClients for MCP server.\n *\n * LAZY INITIALIZATION: Clients are created on first use, not at import time.\n * This allows index.ts loadLucernEnv() to decode LUCERN_API_KEY and\n * STACK_API_KEY into their respective URL and deploy key env vars before\n * any Convex calls are made.\n *\n * Three clients:\n * - Lucern client → reasoning graph (good-blackbird / precious-dog) [required]\n * - Stack client → StackOS platform (sincere-shepherd / sleek-mink) [optional]\n * - Master Control client → control plane (utmost-ox / successful-clam) [optional]\n *\n * Lucern + Stack are decoded from API keys by index.ts resolveCredentials() at startup.\n * Master Control is resolved from MC_CONVEX_URL + MC_DEPLOY_KEY (set in ~/.lucern/credentials).\n * Uses deploy key auth to call internal mutations/queries directly,\n * bypassing Clerk (standard Convex server-to-server pattern).\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { api } from \"./kernelApi.js\";\nimport { ConvexHttpClient } from \"convex/browser\";\nimport { logMcpInfo } from \"./logging.js\";\n\n// ── Per-request client override (hosted multi-tenant) ─────────────────────\n// On Vercel, the hosted route serves multiple MCP instances (lucern, stack)\n// from the same process. Each instance needs to query a different Convex\n// deployment. AsyncLocalStorage lets handlers transparently use the correct\n// client without changing their call signatures.\n\nconst _requestScopedClient = new AsyncLocalStorage<ConvexHttpClient>();\n\n/**\n * Run a function with a request-scoped Convex client.\n * All `adminQuery`/`adminMutation`/`adminAction` calls within `fn` will\n * use the provided client instead of the process-level singleton.\n */\nexport function runWithScopedClient<T>(\n client: ConvexHttpClient,\n fn: () => T | Promise<T>\n): T | Promise<T> {\n return _requestScopedClient.run(client, fn);\n}\n\n/**\n * Create an admin-authed ConvexHttpClient for a specific deployment.\n * Used by the hosted route to create per-instance clients.\n */\nexport function createAdminClient(url: string, deployKey: string): ConvexHttpClient {\n const client = new ConvexHttpClient(url);\n (client as unknown as { setAdminAuth: (key: string) => void }).setAdminAuth(deployKey);\n return client;\n}\n\n// ── Lucern Client (required, lazy) ──────────────────────────────────────────\n\nlet _lucernClient: ConvexHttpClient | null = null;\n\n/**\n * Get the admin-authed Lucern ConvexHttpClient.\n * Checks AsyncLocalStorage first for per-request override (hosted multi-tenant),\n * then falls back to the process-level singleton.\n * Created on first call — env vars must be set by then (index.ts does this).\n */\nfunction getLucernClient(): ConvexHttpClient {\n const scoped = _requestScopedClient.getStore();\n if (scoped) {\n return scoped;\n }\n\n if (_lucernClient) {\n return _lucernClient;\n }\n\n const url = process.env.LUCERN_CONVEX_URL;\n const key = process.env.LUCERN_DEPLOY_KEY;\n\n if (!url) {\n throw new Error(\n \"LUCERN_CONVEX_URL is required. Ensure LUCERN_API_KEY is set in .env.lucern\"\n );\n }\n\n if (!key) {\n throw new Error(\n \"LUCERN_DEPLOY_KEY is required. Ensure LUCERN_API_KEY is set in .env.lucern\"\n );\n }\n\n _lucernClient = new ConvexHttpClient(url);\n // setAdminAuth exists at runtime but is not in the public type declarations.\n // This is the standard Convex pattern for server-to-server admin access.\n (\n _lucernClient as unknown as { setAdminAuth: (key: string) => void }\n ).setAdminAuth(key);\n\n logMcpInfo(`[lucern-graph] Lucern client initialized → ${url}`);\n return _lucernClient;\n}\n\n// ── Stack Client (optional, lazy) ───────────────────────────────────────────\n\nlet _stackClient: ConvexHttpClient | null = null;\nlet _stackClientChecked = false;\n\n/**\n * Get the admin-authed Stack ConvexHttpClient.\n * Returns null if STACK_API_KEY is not configured.\n * Created on first call — env vars must be set by then (index.ts does this).\n */\nfunction getStackClient(): ConvexHttpClient | null {\n if (_stackClientChecked) {\n return _stackClient;\n }\n\n const url = process.env.STACK_CONVEX_URL;\n const key = process.env.STACK_DEPLOY_KEY;\n\n if (url && key) {\n _stackClient = new ConvexHttpClient(url);\n (\n _stackClient as unknown as { setAdminAuth: (key: string) => void }\n ).setAdminAuth(key);\n logMcpInfo(`[lucern-graph] Stack client initialized → ${url}`);\n } else {\n logMcpInfo(\n \"[lucern-graph] Stack client not configured (no STACK_API_KEY). Stack tools unavailable.\"\n );\n }\n\n _stackClientChecked = true;\n return _stackClient;\n}\n\n// ── Admin helpers (Lucern) ──────────────────────────────────────────────────\n\n/**\n * Admin-authed mutation/query/action helpers for Lucern graph.\n * ConvexHttpClient types restrict .mutation()/.query() to public functions,\n * but admin auth enables internal function calls at runtime.\n * These helpers apply the necessary type assertions.\n */\n\n/**\n * MCP-layer metadata fields that handlers attach for observability but that\n * must NOT be forwarded to Convex mutations (validators reject unknown fields).\n * Some Convex functions accept these as v.optional() (S2-13K), but many don't.\n * Stripping here guarantees safety for all call sites while keeping the\n * observability data available for MCP-side logging.\n */\nconst MCP_META_KEYS = [\n \"mcpSessionId\",\n \"mcpToolName\",\n \"runtimeToolName\",\n \"runtimePackKey\",\n \"runtimePackInstallScope\",\n] as const;\ntype RuntimePackInstallScope = \"tenant\" | \"workspace\";\ntype MutationRuntimeFields = {\n runtimeToolName: string;\n runtimePackKey?: string;\n runtimePackInstallScope?: RuntimePackInstallScope;\n};\nconst mutationRuntimeCache = new Map<\n string,\n Promise<MutationRuntimeFields | null>\n>();\nconst packInstallScopeCache = new Map<\n string,\n Promise<RuntimePackInstallScope | undefined>\n>();\n\nasync function resolvePackInstallScope(\n packKey: string\n): Promise<RuntimePackInstallScope | undefined> {\n const normalizedPackKey = packKey.trim();\n if (!normalizedPackKey) {\n return;\n }\n\n let cached = packInstallScopeCache.get(normalizedPackKey);\n if (!cached) {\n cached = (async () => {\n const packDefinition = await mcAdminQuery(\n \"packs:getPackDefinition\" as any,\n {\n packKey: normalizedPackKey,\n }\n );\n const installScope = (packDefinition as { installScope?: unknown } | null)\n ?.installScope;\n if (installScope === \"tenant\" || installScope === \"workspace\") {\n return installScope;\n }\n throw new Error(\n `[mcp-runtime] Pack \"${normalizedPackKey}\" is missing a valid installScope`\n );\n })();\n packInstallScopeCache.set(normalizedPackKey, cached);\n }\n\n return await cached;\n}\n\nasync function resolveMutationRuntimeFields(\n toolName: unknown\n): Promise<MutationRuntimeFields | null> {\n if (typeof toolName !== \"string\" || toolName.trim().length === 0) {\n return null;\n }\n const normalizedToolName = toolName.trim();\n\n let cached = mutationRuntimeCache.get(normalizedToolName);\n if (!cached) {\n cached = (async () => {\n const tools = (await (getLucernClient() as any).query(\n api.toolAccess.getExecutableTools,\n {}\n )) as Array<{\n toolName?: string;\n isActive?: boolean;\n status?: string;\n packKey?: string;\n }>;\n const tool = tools.find(\n (candidate) =>\n candidate?.toolName === normalizedToolName &&\n candidate?.isActive !== false &&\n candidate?.status !== \"deprecated\" &&\n candidate?.status !== \"disabled\"\n );\n const packKey =\n typeof tool?.packKey === \"string\" ? tool.packKey.trim() : \"\";\n if (!packKey) {\n return { runtimeToolName: normalizedToolName };\n }\n\n return {\n runtimeToolName: normalizedToolName,\n runtimePackKey: packKey,\n runtimePackInstallScope: await resolvePackInstallScope(packKey),\n };\n })();\n mutationRuntimeCache.set(normalizedToolName, cached);\n }\n\n return await cached;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function adminMutation(fn: any, args: any): Promise<any> {\n // Strip MCP-layer metadata before forwarding to Convex.\n // These fields are used for session tracking / observability in the MCP layer\n // but cause ArgumentValidationError when the Convex validator doesn't expect them.\n const cleanArgs = { ...args };\n if (\n cleanArgs.runtimeToolName === undefined &&\n cleanArgs.runtimePackKey === undefined &&\n cleanArgs.runtimePackInstallScope === undefined\n ) {\n const runtimeFields = await resolveMutationRuntimeFields(args?.mcpToolName);\n if (runtimeFields) {\n Object.assign(cleanArgs, runtimeFields);\n }\n }\n for (const key of MCP_META_KEYS) {\n delete cleanArgs[key];\n }\n return (getLucernClient() as any).mutation(fn, cleanArgs);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function adminQuery(fn: any, args: any): Promise<any> {\n return (getLucernClient() as any).query(fn, args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function adminAction(fn: any, args: any): Promise<any> {\n return (getLucernClient() as any).action(fn, args);\n}\n\n// ── Admin helpers (Stack) ───────────────────────────────────────────────────\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function stackAdminMutation(fn: any, args: any): Promise<any> {\n const c = getStackClient();\n if (!c) {\n throw new Error(\n \"Stack client not configured (set STACK_API_KEY in .env.lucern)\"\n );\n }\n return (c as any).mutation(fn, args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function stackAdminQuery(fn: any, args: any): Promise<any> {\n const c = getStackClient();\n if (!c) {\n throw new Error(\n \"Stack client not configured (set STACK_API_KEY in .env.lucern)\"\n );\n }\n return (c as any).query(fn, args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function stackAdminAction(fn: any, args: any): Promise<any> {\n const c = getStackClient();\n if (!c) {\n throw new Error(\n \"Stack client not configured (set STACK_API_KEY in .env.lucern)\"\n );\n }\n return (c as any).action(fn, args);\n}\n\n// ── Master Control Client (optional, lazy) ───────────────────────────────\n// Control plane (utmost-ox-403 dev / successful-clam-833 prod).\n// Stores: methodology pack definitions, tenant assignments, API key validation.\n// Tenant-custom packs live in the TENANT's deployment (Lucern client), not here.\n// MCP reads from BOTH to compile the full methodology set.\n\nlet _mcClient: ConvexHttpClient | null = null;\nlet _mcClientChecked = false;\n\nfunction getMcClient(): ConvexHttpClient | null {\n if (_mcClientChecked) {\n return _mcClient;\n }\n\n const url = process.env.MC_CONVEX_URL;\n const key = process.env.MC_DEPLOY_KEY;\n\n if (url && key) {\n _mcClient = new ConvexHttpClient(url);\n (\n _mcClient as unknown as { setAdminAuth: (key: string) => void }\n ).setAdminAuth(key);\n logMcpInfo(`[lucern-graph] Master Control client initialized → ${url}`);\n } else {\n logMcpInfo(\n \"[lucern-graph] Master Control client not configured (no MC_CONVEX_URL). \" +\n \"Methodology packs will use hardcoded fallback.\"\n );\n }\n\n _mcClientChecked = true;\n return _mcClient;\n}\n\n// ── Admin helpers (Master Control) ───────────────────────────────────────\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function mcAdminQuery(fn: any, args: any): Promise<any> {\n const c = getMcClient();\n if (!c) {\n throw new Error(\n \"Master Control client not configured (set MC_CONVEX_URL + MC_DEPLOY_KEY)\"\n );\n }\n return (c as any).query(fn, args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function mcAdminMutation(fn: any, args: any): Promise<any> {\n const c = getMcClient();\n if (!c) {\n throw new Error(\n \"Master Control client not configured (set MC_CONVEX_URL + MC_DEPLOY_KEY)\"\n );\n }\n return (c as any).mutation(fn, args);\n}\n\n/**\n * Check if Master Control client is available.\n * Use this to decide whether to fetch from control plane or use hardcoded fallback.\n */\nexport function isMcClientAvailable(): boolean {\n return !!(process.env.MC_CONVEX_URL && process.env.MC_DEPLOY_KEY);\n}\n\n// ── Tenant Config (MC-validated session context) ────────────────────────────\n// Set at MCP server boot after MC validateMcpSession succeeds.\n// Handlers read this to scope methodology, features, and audit attribution.\n\nexport type TenantConfig = {\n tenantId: string;\n slug: string;\n name: string;\n tier: string;\n methodologyPackIds: string[];\n apiKeyId: string;\n // Block 11B: Per-user session context (optional — omitted for legacy callers)\n sessionType?: \"agent\" | \"user\";\n userId?: string; // Clerk user ID (user sessions) or AGENT_IDENTITY (agent sessions)\n userEmail?: string; // For audit trail (user sessions only)\n userRole?: string; // From MC membership: platform_admin | tenant_admin | editor | viewer | ...\n allowedTools?: string[] | null; // null = all (agents), string[] = filtered (users), [] = deny all\n // Block 11C: Cached permitted tools from tenant Convex getPermittedTools (session-boot)\n permittedTools?: Array<{\n toolName: string;\n requiredRole?: string;\n approvalGateId?: string;\n isCore?: boolean;\n category?: string;\n }>;\n // Block 11D: Topic-level access resolved at session boot from MC resolveTopicAccess.\n // null = unrestricted (agents, admins). string[] = specific topic IDs. [] = no topic access.\n allowedTopics?: string[] | null;\n isTopicAdmin?: boolean; // true for platform_admin/tenant_admin admin bypass\n // Layer 2a: Group-pack binding — resolved at boot from MC resolveUserPackAccess\n groupIds?: string[]; // Groups this user belongs to\n permittedPackKeys?: string[]; // Packs accessible via group assignments\n permittedToolNames?: string[]; // Tool names from permitted packs (for intersection with RBAC)\n principalId?: string;\n principalType?: \"human\" | \"service\" | \"agent\";\n workspaceId?: string;\n scopes?: string[];\n authMode?:\n | \"interactive_user\"\n | \"service_principal\"\n | \"tenant_api_key\"\n | \"session_token\";\n roles?: string[];\n};\n\nlet _tenantConfig: TenantConfig | null = null;\n\n/**\n * Set tenant config — write-once guard. Can only be set once per process lifetime.\n * The config is frozen to prevent mutation by handlers.\n */\nexport function setTenantConfig(config: TenantConfig): void {\n if (_tenantConfig !== null) {\n throw new Error(\n \"[lucern] Tenant config already set — write-once guard prevents overwrite. \" +\n \"Restart the MCP server to change tenant context.\"\n );\n }\n _tenantConfig = Object.freeze({ ...config }) as TenantConfig;\n logMcpInfo(\n `[lucern] Tenant config set: slug=\"${config.slug}\" tier=${config.tier} packs=[${config.methodologyPackIds.join(\",\")}]`\n );\n}\n\n/**\n * Get validated tenant config. Returns a frozen object (immutable).\n */\nexport function getTenantConfig(): Readonly<TenantConfig> | null {\n return _tenantConfig;\n}\n\n// ── Identity & defaults ─────────────────────────────────────────────────────\n\n/**\n * Default agent identity for MCP operations.\n * All graph mutations will be attributed to this identity.\n */\nexport const AGENT_IDENTITY =\n process.env.LUCERN_AGENT_IDENTITY || \"agent:claude-code\";\n\n/**\n * Process-local session identity for inter-agent coordination.\n * Each MCP server process gets a unique UUID, enabling parallel sessions\n * to discover and message each other via agentSessions/agentMessages tables.\n */\nexport const SESSION_ID = crypto.randomUUID();\n\n/**\n * Default topic ID — set after seed script runs.\n * MCP handlers use this if topicId is not explicitly provided.\n *\n * @deprecated DEAD CODE — no importers. Use scope.ts defaultTopicId instead.\n * Will be removed when the legacy scope table is eliminated.\n * See TC-D: Project Overlay Demotion.\n */\nlet defaultTopicId: string | null = null;\n\n/** @deprecated Use scope.ts setDefaultScopeContext instead. No importers. */\nexport function setDefaultTopicId(id: string): void {\n defaultTopicId = id;\n}\n\n/** @deprecated Use scope.ts getDefaultTopicId instead. No importers. */\nexport function getDefaultTopicId(): string | null {\n return defaultTopicId;\n}\n","/**\n * Scope Resolution Helpers\n *\n * `topicId` is the canonical parameter name in MCP tool contracts.\n * `projectId` is accepted as a backward-compatibility alias — callers may\n * still pass it, but new tool schemas expose `topicId`.\n *\n * Use `readTopicIdArg(args)` to read whichever the caller provided:\n * topicId takes precedence; projectId is the fallback.\n *\n * Topic -> legacy scope alias mapping is resolved in this order:\n * 1) topic legacy graph scope field / topic.metadata legacy graph scope field\n * 2) topic.metadata.legacyProjectId\n * 3) topic.metadata.projectId\n * 4) heuristic inference from existing node search results\n *\n * Ambient context: When no explicit topicId/projectId is provided and\n * no in-memory default is set, falls back to .lucern.json in the repo root.\n * This file is written by begin_build_session/compile_context flows and read by hooks + handlers.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { ROOT_TOPIC_ID } from \"@lucern/contracts\";\nimport { api, internal, components } from \"./kernelApi.js\";\nimport { adminQuery } from \"./convex-client.js\";\nimport { checkTopicScope } from \"./topic-scope.js\";\nimport type { Id } from \"@lucern/reasoning-kernel/_generated/dataModel\";\n\ntype AnyRecord = Record<string, unknown>;\n\nexport type ScopeResolution = {\n inputScopeId?: string;\n topicId?: string;\n topicName?: string;\n legacyScopeId?: string;\n source:\n | \"default_topic\"\n | \"direct_topic\"\n | \"topic_metadata\"\n | \"topic_inferred\"\n | \"legacy_project_alias\"\n | \"node_topic\"\n | \"node_project\"\n | \"lucern_json\"\n | \"unresolved\";\n};\n\nlet defaultTopicId: string | null = null;\nconst PUBLIC_TOPIC_PREFIX = \"top_\";\n\nfunction encodePublicTopicId(topicId: string | undefined): string | undefined {\n if (!isNonEmptyString(topicId)) {\n return undefined;\n }\n return topicId.startsWith(PUBLIC_TOPIC_PREFIX)\n ? topicId\n : `${PUBLIC_TOPIC_PREFIX}${topicId}`;\n}\n\nfunction decodePublicTopicId(topicId: string | undefined): string | undefined {\n if (!isNonEmptyString(topicId)) {\n return undefined;\n }\n return topicId.startsWith(PUBLIC_TOPIC_PREFIX)\n ? topicId.slice(PUBLIC_TOPIC_PREFIX.length)\n : topicId;\n}\n\n/**\n * Read the topic scope from MCP tool args.\n * Returns undefined if topicId is not provided — let resolveTopicScopeId handle fallback.\n */\nexport function readTopicIdArg(\n args: Record<string, unknown>\n): string | undefined {\n const topicId = args.topicId as string | undefined;\n const legacyProjectId = args.projectId as string | undefined;\n return topicId || legacyProjectId || undefined;\n}\n\n// --- .lucern.json ambient context ---\n\nexport type LucernContextFile = {\n topicId?: string;\n topicName?: string;\n activeWorktree?: {\n worktreeId: string;\n title: string;\n status: string;\n executionOrder: number | null;\n gate: string | null;\n } | null;\n deployment?: string;\n lastUpdated?: number;\n};\n\nconst LUCERN_JSON_PATH = path.resolve(process.cwd(), \".lucern.json\");\n\n/**\n * Read .lucern.json from the repo root (synchronous).\n * Returns null if the file doesn't exist or is malformed.\n */\nexport function readLucernJson(): LucernContextFile | null {\n try {\n const raw = fs.readFileSync(LUCERN_JSON_PATH, \"utf-8\");\n const parsed = JSON.parse(raw) as LucernContextFile;\n return {\n ...parsed,\n topicId: parsed.topicId,\n topicName: parsed.topicName,\n };\n } catch {\n return null;\n }\n}\n\n/**\n * Write .lucern.json to the repo root.\n * Called by session bootstrap flows after successful init.\n */\nexport function writeLucernJson(context: LucernContextFile): void {\n try {\n const normalized: LucernContextFile = {\n ...context,\n topicId: encodePublicTopicId(context.topicId),\n };\n fs.writeFileSync(\n LUCERN_JSON_PATH,\n `${JSON.stringify(normalized, null, 2)}\\n`,\n \"utf-8\"\n );\n } catch {\n // Non-critical — ambient context just won't be available\n }\n}\n\n// The Root \"Lucern\" topic is a container for child topics.\n// Epistemic nodes (beliefs, questions, evidence, answers) should\n// NEVER be scoped to Root — they belong under specific child topics.\nexport { ROOT_TOPIC_ID };\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === \"string\" && value.trim().length > 0;\n}\n\n/**\n * Resolve topicId from a linked epistemic node.\n * Used by creation handlers to inherit topic from a parent node\n * (e.g., question inherits from belief, answer inherits from question).\n */\nexport async function resolveTopicFromNode(\n nodeId: string | undefined,\n _toolName: string\n): Promise<string | null> {\n if (!isNonEmptyString(nodeId)) {\n return null;\n }\n const node = await tryGetNodeById(nodeId);\n if (!node) {\n return null;\n }\n const topicId = isNonEmptyString(node.topicId) ? node.topicId : null;\n // Never inherit Root — the linked node itself needs backfill\n if (topicId === ROOT_TOPIC_ID) {\n return null;\n }\n return topicId;\n}\n\nfunction readTopicMappedProjectId(topic: AnyRecord): string | undefined {\n const metadata = (topic.metadata || {}) as AnyRecord;\n const candidate =\n (metadata.legacyProjectId as string | undefined) ||\n (metadata.projectId as string | undefined) ||\n (metadata.scopeProjectId as string | undefined);\n return isNonEmptyString(candidate) ? candidate : undefined;\n}\n\nasync function tryGetTopicById(topicId: string): Promise<AnyRecord | null> {\n const normalizedTopicId = decodePublicTopicId(topicId);\n if (!normalizedTopicId) {\n return null;\n }\n try {\n const topic = (await adminQuery(components.lucern.topics.get, {\n id: normalizedTopicId as Id<\"topics\">,\n })) as AnyRecord | null;\n return topic || null;\n } catch {\n return null;\n }\n}\n\nasync function tryGetNodeById(nodeId: string): Promise<AnyRecord | null> {\n try {\n const node = (await adminQuery(components.lucern.epistemicNodes.getInternal, {\n nodeId: nodeId as any,\n })) as AnyRecord | null;\n return node || null;\n } catch {\n return null;\n }\n}\n\nasync function findTopicByMappedProjectId(\n legacyScopeId: string\n): Promise<AnyRecord | null> {\n try {\n const topics = (await adminQuery(components.lucern.topics.list, {})) as AnyRecord[];\n return (\n topics.find((topic) => readTopicMappedProjectId(topic) === legacyScopeId) ||\n null\n );\n } catch {\n return null;\n }\n}\n\nexport async function resolveTopicScopeContext(\n scopeId?: string\n): Promise<ScopeResolution> {\n const normalizedScopeId = decodePublicTopicId(scopeId);\n\n if (!isNonEmptyString(scopeId)) {\n if (isNonEmptyString(defaultTopicId)) {\n const defaultTopic = await tryGetTopicById(defaultTopicId);\n const mapped = defaultTopic\n ? readTopicMappedProjectId(defaultTopic)\n : undefined;\n return {\n inputScopeId: undefined,\n legacyScopeId: mapped || undefined,\n topicId: defaultTopicId || undefined,\n topicName: defaultTopic ? String(defaultTopic.name || \"\") : undefined,\n source: \"default_topic\",\n };\n }\n return { inputScopeId: undefined, source: \"unresolved\" };\n }\n\n const topic = normalizedScopeId\n ? await tryGetTopicById(normalizedScopeId)\n : null;\n if (topic) {\n const mapped = readTopicMappedProjectId(topic);\n if (mapped) {\n return {\n inputScopeId: scopeId,\n topicId: String(topic._id),\n topicName: String(topic.name || \"\"),\n legacyScopeId: mapped,\n source: \"topic_metadata\",\n };\n }\n\n return {\n inputScopeId: scopeId,\n topicId: String(topic._id),\n topicName: String(topic.name || \"\"),\n source: \"direct_topic\",\n };\n }\n\n const mappedTopic = normalizedScopeId\n ? await findTopicByMappedProjectId(normalizedScopeId)\n : null;\n if (mappedTopic) {\n return {\n inputScopeId: scopeId,\n topicId: String(mappedTopic._id),\n topicName: String(mappedTopic.name || \"\"),\n legacyScopeId: normalizedScopeId,\n source: \"legacy_project_alias\",\n };\n }\n\n const node = normalizedScopeId ? await tryGetNodeById(normalizedScopeId) : null;\n if (node) {\n const nodeTopicId = node.topicId;\n if (isNonEmptyString(nodeTopicId)) {\n const nodeTopic = await tryGetTopicById(nodeTopicId);\n const mapped = nodeTopic\n ? readTopicMappedProjectId(nodeTopic)\n : undefined;\n return {\n inputScopeId: scopeId,\n topicId: nodeTopicId,\n topicName: nodeTopic ? String(nodeTopic.name || \"\") : undefined,\n legacyScopeId: mapped,\n source: \"node_topic\",\n };\n }\n const nodeProjectId = node.projectId;\n if (isNonEmptyString(nodeProjectId)) {\n const mappedTopic = await findTopicByMappedProjectId(nodeProjectId);\n return {\n inputScopeId: scopeId,\n topicId: mappedTopic ? String(mappedTopic._id) : undefined,\n topicName: mappedTopic ? String(mappedTopic.name || \"\") : undefined,\n legacyScopeId: nodeProjectId,\n source: \"node_project\",\n };\n }\n }\n\n return {\n inputScopeId: scopeId,\n source: \"unresolved\",\n };\n}\n\nexport async function resolveTopicScopeId(\n scopeId: string | undefined,\n toolName: string\n): Promise<string> {\n let resolved: string | undefined;\n const normalizedScopeId = decodePublicTopicId(scopeId);\n\n if (!isNonEmptyString(scopeId)) {\n if (isNonEmptyString(defaultTopicId)) {\n resolved = defaultTopicId;\n } else {\n // Fall back to .lucern.json ambient context\n const lucernContext = readLucernJson();\n const ambientTopicId = decodePublicTopicId(lucernContext?.topicId);\n if (isNonEmptyString(ambientTopicId)) {\n resolved = ambientTopicId;\n }\n }\n if (!resolved) {\n throw new Error(\n `[${toolName}] Missing topic scope. Provide topicId.`\n );\n }\n }\n\n if (!resolved) {\n const topic = normalizedScopeId\n ? await tryGetTopicById(normalizedScopeId)\n : null;\n if (topic) {\n resolved = String(topic._id);\n }\n }\n\n if (!resolved) {\n const mappedTopic = normalizedScopeId\n ? await findTopicByMappedProjectId(normalizedScopeId)\n : null;\n if (mappedTopic) {\n resolved = String(mappedTopic._id);\n }\n }\n\n if (!resolved) {\n const node = normalizedScopeId\n ? await tryGetNodeById(normalizedScopeId)\n : null;\n if (node && isNonEmptyString(node.topicId)) {\n resolved = node.topicId;\n }\n }\n\n if (!resolved) {\n throw new Error(\n `[${toolName}] Scope \"${scopeId}\" is not a topic and has no mapped topic.`\n );\n }\n\n // Block 11D: Enforce topic-level access control.\n // Checks the session-level permitted topics set by setSessionTopicScope() at boot.\n // Agent sessions and admin sessions pass through (allowedTopics = null).\n // User sessions are restricted to their assigned topics via pack assignments.\n checkTopicScope(resolved, toolName);\n\n return resolved;\n}\n\nexport async function setDefaultScopeContext(\n scopeId: string\n): Promise<ScopeResolution> {\n const resolved = await resolveTopicScopeContext(scopeId);\n if (isNonEmptyString(resolved.topicId)) {\n defaultTopicId = decodePublicTopicId(resolved.topicId) || null;\n }\n return resolved;\n}\n\nexport function getDefaultScopeContext(): { topicId: string | null } {\n if (defaultTopicId) {\n return { topicId: defaultTopicId };\n }\n // Fall back to .lucern.json ambient context\n const lucernContext = readLucernJson();\n const ambientTopicId = decodePublicTopicId(lucernContext?.topicId);\n if (ambientTopicId) {\n return { topicId: ambientTopicId };\n }\n return { topicId: null };\n}\n","import type { HandlerModule } from \"./types.js\";\nimport { readTopicIdArg } from \"../scope.js\";\nimport {\n asJsonObject,\n asRecord,\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n readStringArray,\n readTimeRange,\n} from \"./sdk.js\";\n\nconst AMBIGUOUS_SCALAR_SUGGESTION =\n \"Use opinion tuple (b, d, u, a) or an @lucern/sdk opinionFromBaseRate/opinionFromDogmatic/opinionFromProjected helper.\";\n\nfunction readOpinionTuple(args: Record<string, unknown>) {\n const belief = readNumber(args.belief);\n const disbelief = readNumber(args.disbelief);\n const uncertainty = readNumber(args.uncertainty);\n const baseRate = readNumber(args.baseRate);\n const tupleValues = [belief, disbelief, uncertainty, baseRate];\n const providedCount = tupleValues.filter(\n (value) => value !== undefined\n ).length;\n\n if (providedCount === 0 && readNumber(args.confidence ?? args.newConfidence) !== undefined) {\n throw new Error(\n JSON.stringify({\n code: \"AMBIGUOUS_SCALAR\",\n message:\n \"Scalar confidence input is ambiguous without an explicit subjective-logic interpretation.\",\n suggestion: AMBIGUOUS_SCALAR_SUGGESTION,\n })\n );\n }\n\n if (providedCount !== tupleValues.length) {\n throw new Error(\n \"belief, disbelief, uncertainty, and baseRate must all be provided together.\"\n );\n }\n\n return {\n b: belief ?? 0,\n d: disbelief ?? 0,\n u: uncertainty ?? 0,\n a: baseRate ?? 0.5,\n };\n}\n\nexport const beliefHandlers: HandlerModule = {\n async create_belief(args, ctx) {\n const baseRate = readNumber(args.baseRate);\n if (baseRate === undefined) {\n throw new Error(\"baseRate is required for create_belief.\");\n }\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.create({\n topicId: readString(readTopicIdArg(args)),\n text:\n readString(args.text ?? args.canonicalText ?? args.formulation) ?? \"\",\n baseRate,\n rationale: readString(args.rationale),\n worktreeId: readString(args.worktreeId),\n pillar: readString(args.pillar),\n sourceBeliefIds: readStringArray(args.sourceBeliefIds),\n sourceType: readString(args.sourceType),\n beliefType: readString(args.beliefType),\n reversibility: readString(args.reversibility),\n predictionMeta: asJsonObject(args.predictionMeta) as any,\n metadata: asJsonObject(args.metadata) as any,\n })\n );\n },\n\n async get_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.get(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async list_beliefs(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.list({\n topicId: readString(readTopicIdArg(args)),\n status: readString(args.status),\n worktreeId: readString(args.worktreeId),\n minConfidence: readNumber(args.minConfidence),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async refine_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.refine(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n text:\n readString(args.canonicalText ?? args.text ?? args.formulation) ??\n \"\",\n rationale: readString(args.rationale),\n }\n )\n );\n },\n\n async modulate_confidence(args, ctx) {\n const opinion = readOpinionTuple(args);\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.modulateConfidence(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n opinion,\n trigger: readString(args.trigger) as any,\n rationale: readString(args.rationale) ?? \"\",\n maxInlinePropagationTargets: readNumber(\n args.maxInlinePropagationTargets\n ),\n }\n )\n );\n },\n\n async fork_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.fork(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n text:\n readString(args.text ?? args.newFormulation ?? args.formulation) ??\n \"\",\n forkReason: readString(args.forkReason) as any,\n rationale: readString(args.rationale),\n }\n )\n );\n },\n\n async archive_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.archive(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n reason: readString(args.reason ?? args.rationale),\n }\n )\n );\n },\n\n async query_lineage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.lineage(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async get_confidence_history(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.confidenceHistory(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async create_epistemic_contract(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.createContract(\n readString(\n args.id ?? args.nodeId ?? args.beliefId ?? args.beliefNodeId\n ) ?? \"\",\n {\n title: readString(args.title) ?? \"\",\n description: readString(args.description),\n conditionType: readString(args.conditionType) as any,\n direction: readString(args.direction) as any,\n condition: asRecord(args.condition) as any,\n deadline: readNumber(args.deadline),\n compositeOf: readStringArray(args.compositeOf),\n compositeOperator: readString(args.compositeOperator) as any,\n modulation: asRecord(args.modulation) as any,\n evaluationSchedule: readString(\n args.evaluationSchedule ?? args.schedule\n ) as any,\n periodicIntervalMs: readNumber(args.periodicIntervalMs),\n }\n )\n );\n },\n\n async bisect_confidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.bisect(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\",\n {\n expectedDirection: readString(args.expectedDirection) as any,\n timeRange: readTimeRange(args.timeRange),\n }\n )\n );\n },\n};\n","import { api, components } from \"../kernelApi.js\";\nimport { adminMutation, adminQuery } from \"../convex-client.js\";\n\ntype AnyRecord = Record<string, unknown>;\n\nfunction slugify(name: string): string {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\")\n .slice(0, 40);\n}\n\nasync function resolveBeliefs(\n nodeIds: string[]\n): Promise<Array<{ nodeId: string; text: string; confidence: number | null }>> {\n const results: Array<{\n nodeId: string;\n text: string;\n confidence: number | null;\n }> = [];\n\n for (const nodeId of nodeIds) {\n try {\n const node = (await adminQuery(components.lucern.epistemicNodes.get, {\n nodeId: nodeId as any,\n })) as AnyRecord | null;\n if (!node) {\n continue;\n }\n\n results.push({\n nodeId,\n text: String(node.canonicalText || \"\").slice(0, 200),\n confidence:\n typeof node.confidence === \"number\" ? node.confidence : null,\n });\n } catch {\n // Ignore missing graph nodes when assembling the build packet.\n }\n }\n\n return results;\n}\n\nasync function resolveQuestions(\n nodeIds: string[]\n): Promise<\n Array<{ nodeId: string; text: string; status: string; priority: string }>\n> {\n const results: Array<{\n nodeId: string;\n text: string;\n status: string;\n priority: string;\n }> = [];\n\n for (const nodeId of nodeIds) {\n try {\n const node = (await adminQuery(components.lucern.epistemicNodes.get, {\n nodeId: nodeId as any,\n })) as AnyRecord | null;\n if (!node) {\n continue;\n }\n\n const metadata = (node.metadata || {}) as AnyRecord;\n results.push({\n nodeId,\n text: String(node.canonicalText || \"\").slice(0, 200),\n status: String(metadata.questionStatus || node.status || \"open\"),\n priority: String(metadata.priority || \"medium\"),\n });\n } catch {\n // Ignore missing graph nodes when assembling the build packet.\n }\n }\n\n return results;\n}\n\nexport async function beginBuildSession(\n args: Record<string, unknown>\n): Promise<Record<string, unknown>> {\n const worktreeId =\n typeof args.worktreeId === \"string\" ? args.worktreeId : undefined;\n if (!worktreeId) {\n throw new Error(\"[begin_build_session] worktreeId is required\");\n }\n\n const branch =\n typeof args.branch === \"string\" && args.branch.trim().length > 0\n ? args.branch.trim()\n : undefined;\n const branchBase =\n typeof args.branchBase === \"string\" && args.branchBase.trim().length > 0\n ? args.branchBase.trim()\n : \"staging\";\n const prBase =\n typeof args.prBase === \"string\" && args.prBase.trim().length > 0\n ? args.prBase.trim()\n : \"staging\";\n const sessionMode =\n typeof args.sessionMode === \"string\" && args.sessionMode.trim().length > 0\n ? args.sessionMode.trim()\n : \"async\";\n const activateIfPlanning = args.activateIfPlanning !== false;\n\n const worktree = (await adminQuery(components.lucern.worktrees.get, {\n worktreeId: worktreeId as any,\n })) as AnyRecord | null;\n if (!worktree) {\n throw new Error(`Worktree ${worktreeId} not found`);\n }\n\n const worktreeName = String(worktree.name || \"Untitled\");\n const topicId = String(worktree.topicId || \"\");\n const track = String(worktree.track || \"untracked\");\n const trackPosition = (worktree.trackPosition as number) ?? 0;\n const executionBand = (worktree.executionBand as number) ?? 0;\n const gate = String(worktree.gate || \"\");\n const hypothesis = String(worktree.hypothesis || worktree.beliefFocus || \"\");\n let status = String(worktree.status || \"planning\");\n const dependsOn = (worktree.dependsOn as string[]) || [];\n const blocks = (worktree.blocks as string[]) || [];\n const targetBeliefIds = (worktree.targetBeliefIds as string[]) || [];\n const targetQuestionIds = (worktree.targetQuestionIds as string[]) || [];\n\n if (activateIfPlanning && status === \"planning\") {\n try {\n await adminMutation(components.lucern.worktrees.activate, {\n worktreeId: worktreeId as any,\n });\n status = \"active\";\n } catch {\n // Non-fatal: keep the graph status unchanged if activation fails.\n }\n }\n\n let topicName = \"Unknown\";\n try {\n const topic = (await adminQuery(components.lucern.topics.get, {\n id: topicId as any,\n })) as AnyRecord | null;\n if (topic) {\n topicName = String(topic.name || \"Unknown\");\n }\n } catch {\n // Non-critical metadata lookup.\n }\n\n const allBeliefs = await resolveBeliefs(targetBeliefIds);\n const topBeliefs = allBeliefs\n .slice()\n .sort((left, right) => (right.confidence ?? -1) - (left.confidence ?? -1))\n .slice(0, 8);\n\n const allQuestions = await resolveQuestions(targetQuestionIds);\n const openQuestions: Array<{\n nodeId: string;\n text: string;\n priority: string;\n }> = [];\n const resolvedDecisions: Array<{ question: string; decision: string }> = [];\n\n for (const question of allQuestions) {\n const questionStatus = question.status.toLowerCase();\n if (questionStatus === \"answered\" || questionStatus === \"resolved\") {\n let decision = \"(decision recorded — call get_answer for details)\";\n try {\n const answer = (await adminQuery(\n api.epistemicAnswers.getLatestForQuestion,\n {\n questionNodeId: question.nodeId as any,\n }\n )) as AnyRecord | null;\n if (answer) {\n decision = String(\n answer.answerText || answer.canonicalText || decision\n ).slice(0, 200);\n }\n } catch {\n try {\n const node = (await adminQuery(components.lucern.epistemicNodes.get, {\n nodeId: question.nodeId as any,\n })) as AnyRecord | null;\n if (node?._id) {\n const answer = (await adminQuery(\n api.epistemicAnswers.getLatestForQuestion,\n {\n questionNodeId: node._id as any,\n }\n )) as AnyRecord | null;\n if (answer) {\n decision = String(\n answer.answerText || answer.canonicalText || decision\n ).slice(0, 200);\n }\n }\n } catch {\n // Keep the default summary when answer lookup fails.\n }\n }\n\n resolvedDecisions.push({\n question: question.text.slice(0, 150),\n decision,\n });\n continue;\n }\n\n openQuestions.push({\n nodeId: question.nodeId,\n text: question.text,\n priority: question.priority,\n });\n }\n\n try {\n const topicQuestions = await adminQuery(components.lucern.epistemicQuestions.getByTopic, {\n topicId: topicId as any,\n userId: \"system\",\n limit: 20,\n }).catch(() => []);\n\n for (const question of Array.isArray(topicQuestions) ? topicQuestions : []) {\n const metadata = (question.metadata || {}) as AnyRecord;\n const questionStatus = String(\n metadata.questionStatus || question.status || \"open\"\n ).toLowerCase();\n if (\n (questionStatus === \"open\" || questionStatus === \"in_progress\") &&\n !targetQuestionIds.includes(String(question._id))\n ) {\n openQuestions.push({\n nodeId: String(question._id),\n text: String(question.canonicalText || \"\").slice(0, 200),\n priority: String(metadata.priority || \"medium\"),\n });\n }\n }\n } catch {\n // Non-critical metadata lookup.\n }\n\n const dependencies: Array<{\n worktreeId: string;\n title: string;\n status: string;\n }> = [];\n for (const dependencyId of dependsOn.slice(0, 5)) {\n try {\n const dependency = (await adminQuery(components.lucern.worktrees.get, {\n worktreeId: dependencyId as any,\n })) as AnyRecord | null;\n dependencies.push({\n worktreeId: dependencyId,\n title: String(dependency?.name || \"Unknown\"),\n status: String(dependency?.status || \"unknown\"),\n });\n } catch {\n dependencies.push({\n worktreeId: dependencyId,\n title: \"Unknown\",\n status: \"unknown\",\n });\n }\n }\n\n const unblocks: Array<{ worktreeId: string; title: string }> = [];\n for (const blockedId of blocks.slice(0, 5)) {\n try {\n const blocked = (await adminQuery(components.lucern.worktrees.get, {\n worktreeId: blockedId as any,\n })) as AnyRecord | null;\n unblocks.push({\n worktreeId: blockedId,\n title: String(blocked?.name || \"Unknown\"),\n });\n } catch {\n unblocks.push({\n worktreeId: blockedId,\n title: \"Unknown\",\n });\n }\n }\n\n const effectiveBranch = branch || `codex/${slugify(worktreeName)}`;\n const incompleteDependencies = dependencies.filter(\n (dependency) =>\n dependency.status !== \"completed\" && dependency.status !== \"merged\"\n );\n const mergeOrderNotes =\n incompleteDependencies.length > 0\n ? `Blocked by: ${incompleteDependencies.map((dependency) => dependency.title).join(\", \")}`\n : \"none\";\n\n const requiredDocs = [\n \"docs/api/EK-13-api-sdk-architecture.md\",\n \"docs/api/EK-13.1.5-repo-architecture-blueprint.md\",\n \"docs/api/EK-13.1-contract-authority.md\",\n \"docs/development/handoff-contract.md\",\n ];\n\n const focus = hypothesis\n ? `${hypothesis.split(\".\")[0]}.`\n : `Complete ${worktreeName}`;\n\n const exitCriteria = gate ? [`Gate: ${gate}`] : [];\n exitCriteria.push(\n \"All namespace surfaces end-to-end: contract → domain → HTTP → SDK → MCP → test\",\n \"All code lands in target-state paths under lucern/\",\n \"PR targets staging, not main\"\n );\n\n const keyFiles = [\n \"app/api/platform/v1/_lib/gateway.ts\",\n \"modules/access-control/src/principalContext.ts\",\n \"lucern/packages/sdk/src/coreClient.ts\",\n \"lucern/packages/sdk/src/identityClient.ts\",\n \"lucern/contracts/src/sdk-methods.contract.ts\",\n \"app/api/platform/v1/identity/\",\n ];\n\n const pillarKeywords = [\n \"Pillar 1\",\n \"Pillar 2\",\n \"Pillar 3\",\n \"Pillar 4\",\n \"Pillar 5\",\n \"Pillar 6\",\n \"Pillar 7\",\n \"Pillar 8\",\n \"8 innovation pillars\",\n ];\n const pillarBeliefs: Array<{\n pillar: string;\n text: string;\n nodeId: string;\n }> = [];\n for (const belief of allBeliefs) {\n for (const keyword of pillarKeywords) {\n if (!belief.text.includes(keyword)) {\n continue;\n }\n const pillarMatch = belief.text.match(/Pillar \\d+ \\([^)]+\\)/);\n pillarBeliefs.push({\n pillar: pillarMatch ? pillarMatch[0] : keyword,\n text: belief.text.slice(0, 250),\n nodeId: belief.nodeId,\n });\n break;\n }\n }\n\n const visionDocs = [\n {\n path: \"docs/product/core-value-propositions.md\",\n description:\n \"8 innovation pillars through developer, marketing, and investor lenses\",\n },\n {\n path: \"docs/product/five-domains.md\",\n description:\n \"5 product domains: MC, Tenant, Developer, Reasoning Control, Reasoning\",\n },\n {\n path: \"docs/product/innovation-pillars.md\",\n description: \"The 8 pillars that define what makes Lucern unique\",\n },\n {\n path: \"docs/product/vision-to-roadmap-bridge.md\",\n description:\n \"Where each pillar is today vs. where it goes — the north star trajectory\",\n },\n ];\n\n return {\n topicId,\n topicName,\n worktreeId,\n worktreeName,\n branch: effectiveBranch,\n branchBase,\n prBase,\n track,\n trackPosition,\n executionBand,\n gate,\n hypothesis,\n focus,\n status,\n sessionMode,\n targetBeliefIds,\n targetQuestionIds,\n topBeliefs,\n openQuestions,\n resolvedDecisions,\n exitCriteria,\n requiredDocs,\n keyFiles,\n pillarBeliefs,\n visionDocs,\n dependencies,\n unblocks,\n mergeOrderNotes,\n };\n}\n","/**\n * Bootstrap Handlers — generate_session_handoff, begin_build_session\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport { beginBuildSession } from \"./bootstrap-session.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const bootstrapHandlers: HandlerModule = {\n async generate_session_handoff(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).bootstrap.generateSessionHandoff(args)\n );\n },\n\n async begin_build_session(args, ctx) {\n void ctx;\n return beginBuildSession(args);\n },\n};\n","/**\n * Coding Intelligence Handlers\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const codingHandlers: HandlerModule = {\n async get_code_context(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coding.getCodeContext(args));\n },\n\n async get_change_history(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coding.getChangeHistory(args)\n );\n },\n\n async record_attempt(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coding.recordAttempt(args));\n },\n\n async get_failure_log(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coding.getFailureLog(args));\n },\n};\n","import type { JsonObject } from \"@lucern/sdk/types\";\nimport { formatSdkResult, getSdkClient, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const contractHandlers: HandlerModule = {\n async create_epistemic_contract(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).contracts.create(args as JsonObject)\n );\n },\n\n async evaluate_contract(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).contracts.evaluate({\n contractId: readString(args.contractId),\n trigger: args.trigger as any,\n topicId: readString(args.topicId),\n })\n );\n },\n\n async get_contract_status(args, ctx) {\n if (!args.beliefNodeId && !args.contractId) {\n throw new Error(\n \"get_contract_status requires either beliefNodeId or contractId.\"\n );\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).contracts.getStatus({\n beliefNodeId: readString(args.beliefNodeId),\n contractId: readString(args.contractId),\n status: args.status as any,\n })\n );\n },\n};\n","import {\n decodePrefixedId,\n encodePrefixedId,\n} from \"@lucern/contracts\";\nimport { readTopicIdArg, resolveTopicScopeId } from \"../scope.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n} from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nfunction normalizeBeliefId(value: string): string {\n try {\n const decoded = decodePrefixedId(value);\n return encodePrefixedId(\"bel\", decoded.value);\n } catch {\n return encodePrefixedId(\"bel\", value);\n }\n}\n\nexport const contradictionHandlers: HandlerModule = {\n async flag_contradiction(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).contradictions.flag({\n beliefA: readString(args.beliefA) ?? \"\",\n beliefB: readString(args.beliefB) ?? \"\",\n description: readString(args.description) ?? \"\",\n topicId: readString(readTopicIdArg(args)),\n severity: readString(args.severity),\n defeatType: readString(args.defeatType),\n })\n );\n },\n\n async find_contradictions(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args) ?? readString(args.nodeId),\n \"find_contradictions\"\n );\n const beliefId = readString(args.nodeId);\n const payload = formatSdkResult(\n await getSdkClient(ctx).contradictions.list({\n topicId,\n status: readString(args.status),\n limit: readNumber(args.limit),\n })\n );\n\n if (!beliefId) {\n return payload;\n }\n\n const normalizedBeliefId = normalizeBeliefId(beliefId);\n return {\n ...payload,\n contradictions: (Array.isArray(payload.contradictions)\n ? payload.contradictions\n : []\n ).filter(\n (entry) =>\n entry.beliefA === normalizedBeliefId ||\n entry.beliefB === normalizedBeliefId\n ),\n };\n },\n\n async list_contradictions(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"list_contradictions\"\n );\n\n return formatSdkResult(\n await getSdkClient(ctx).contradictions.list({\n topicId,\n status: readString(args.status),\n limit: readNumber(args.limit),\n })\n );\n },\n\n async get_contradiction(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).contradictions.get(\n readString(args.id ?? args.contradictionId) ?? \"\"\n )\n );\n },\n};\n","/**\n * Coordination Handlers — MCP tool handlers for inter-agent session coordination.\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const coordinationHandlers: HandlerModule = {\n async register_session(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.registerSession(args)\n );\n },\n\n async heartbeat_session(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.heartbeatSession(args)\n );\n },\n\n async end_session(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coordination.endSession(args));\n },\n\n async list_active_sessions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.listActiveSessions(args)\n );\n },\n\n async send_agent_message(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.sendAgentMessage(args)\n );\n },\n\n async broadcast_message(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).coordination.broadcastMessage(args)\n );\n },\n\n async get_agent_inbox(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coordination.getInbox(args));\n },\n\n async claim_files(args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).coordination.claimFiles(args));\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n} from \"./sdk.js\";\n\nexport const edgeHandlers: HandlerModule = {\n async create_edge(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).edges.create({\n sourceId: readString(args.sourceId) ?? \"\",\n targetId: readString(args.targetId) ?? \"\",\n edgeType: readString(args.edgeType) ?? \"\",\n topicId: readString(args.topicId ?? args.projectId),\n confidence: readNumber(args.confidence),\n weight: readNumber(args.weight),\n context: readString(args.context) ?? readString(args.reasoning),\n })\n );\n },\n\n async list_edges(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).edges.list({\n sourceId: readString(args.sourceId) ?? \"\",\n edgeType: readString(args.edgeType),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async traverse_graph(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).edges.traverse({\n startNode: readString(args.startNode) ?? \"\",\n direction: readString(args.direction),\n maxDepth: readNumber(args.maxDepth),\n topicId: readString(args.topicId ?? args.projectId),\n })\n );\n },\n};\n","/**\n * Graph Handlers — traverse_graph, search_beliefs, find_contradictions,\n * bisect_confidence, trace_entity_impact\n */\n\nimport { readTopicIdArg, resolveTopicScopeId } from \"../scope.js\";\nimport { beliefHandlers } from \"./beliefs.js\";\nimport { contradictionHandlers } from \"./contradictions.js\";\nimport { edgeHandlers } from \"./edges.js\";\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const graphHandlers: HandlerModule = {\n async traverse_graph(args, ctx) {\n return edgeHandlers.traverse_graph(args, ctx);\n },\n\n async search_beliefs(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"search_beliefs\"\n );\n\n return formatSdkResult(\n await getSdkClient(ctx).beliefs.search({\n query: typeof args.query === \"string\" ? args.query : \"\",\n topicId,\n status: typeof args.status === \"string\" ? args.status : undefined,\n minConfidence:\n typeof args.minConfidence === \"number\" ? args.minConfidence : undefined,\n limit: typeof args.limit === \"number\" ? args.limit : undefined,\n })\n );\n },\n\n async find_contradictions(args, ctx) {\n return contradictionHandlers.find_contradictions(args, ctx);\n },\n\n async bisect_confidence(args, ctx) {\n return beliefHandlers.bisect_confidence(args, ctx);\n },\n\n async trace_entity_impact(args, ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"trace_entity_impact\"\n ).catch(() => undefined);\n\n return formatSdkResult(\n await getSdkClient(ctx).graph.traceEntityImpact({\n nodeId: typeof args.nodeId === \"string\" ? args.nodeId : \"\",\n topicId,\n })\n );\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readBoolean,\n readNumber,\n readString,\n} from \"./sdk.js\";\n\nexport const topicHandlers: HandlerModule = {\n async create_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.create({\n name: readString(args.name) ?? \"\",\n description: readString(args.description),\n type: readString(args.type),\n parentTopicId: readString(args.parentTopicId),\n ontologyId: readString(args.ontologyId),\n tenantId: readString(args.tenantId),\n workspaceId: readString(args.workspaceId),\n visibility: readString(args.visibility) as any,\n createdBy: readString(args.createdBy),\n })\n );\n },\n\n async list_topics(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.list({\n ontologyId: readString(args.ontologyId),\n parentTopicId: readString(args.parentTopicId),\n status: readString(args.status),\n type: readString(args.type),\n })\n );\n },\n\n async get_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.get(\n readString(args.topicId ?? args.id) ?? \"\"\n )\n );\n },\n\n async update_topic(args, ctx) {\n const topicId = readString(args.topicId ?? args.id) ?? \"\";\n if (!topicId) {\n throw new Error(\"topicId is required.\");\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).topics.update(topicId, {\n name: readString(args.name),\n description: readString(args.description),\n type: readString(args.type),\n ontologyId: readString(args.ontologyId),\n clearOntologyId: readBoolean(args.clearOntologyId),\n status: readString(args.status) as\n | \"active\"\n | \"archived\"\n | \"watching\"\n | undefined,\n visibility: readString(args.visibility) as\n | \"private\"\n | \"team\"\n | \"firm\"\n | \"external\"\n | \"public\"\n | undefined,\n })\n );\n },\n\n async get_topic_tree(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.getTree({\n rootId: readString(args.rootId ?? args.topicId ?? args.id) ?? \"\",\n maxDepth: readNumber(args.maxDepth),\n })\n );\n },\n\n async get_topic_coverage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).topics.coverage(\n readString(args.topicId ?? args.id) ?? \"\",\n {\n includeDescendants: readBoolean(args.includeDescendants),\n maxDepth: readNumber(args.maxDepth),\n }\n )\n );\n },\n};\n","import { graphHandlers as modernGraphHandlers } from \"./graph.js\";\nimport { topicHandlers } from \"./topics.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const coverageHandlers: HandlerModule = {\n async get_topic_coverage(args, ctx) {\n return topicHandlers.get_topic_coverage(\n {\n topicId: args.topicId ?? args.id,\n includeDescendants: args.includeDescendants,\n maxDepth: args.maxDepth,\n },\n ctx\n );\n },\n\n async get_graph_gaps(args, ctx) {\n return modernGraphHandlers.get_graph_gaps(\n {\n topicId: args.topicId ?? args.projectId,\n minConfidence: args.minConfidence,\n },\n ctx\n );\n },\n};\n","/**\n * Discovery Handler — LLM-friendly topic tree navigation for cross-topic search.\n */\n\nimport { formatSdkResult, getSdkClient, readBoolean, readNumber, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const discoveryHandlers: HandlerModule = {\n async discover(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.discover({\n query: readString(args.query) ?? \"\",\n topK: readNumber(args.topK),\n includeNeighborhood: readBoolean(args.includeNeighborhood),\n })\n );\n },\n};\n","import { adminMutation } from \"../convex-client.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nfunction hasVerificationPayload(args: Record<string, unknown>): boolean {\n return (\n args.testOutput !== undefined ||\n args.tscOutput !== undefined ||\n args.lintOutput !== undefined ||\n args.sentryData !== undefined\n );\n}\n\nexport const engineeringVerificationHandlers: HandlerModule = {\n async evaluate_engineering_contract(args, ctx) {\n if (!hasVerificationPayload(args)) {\n throw new Error(\n \"evaluate_engineering_contract requires at least one verification payload.\"\n );\n }\n\n const result = await adminMutation(\n \"epistemicContracts:evaluateEngineeringContracts\" as any,\n {\n beliefNodeId: args.beliefNodeId,\n trigger: args.trigger,\n testOutput: args.testOutput,\n tscOutput: args.tscOutput,\n lintOutput: args.lintOutput,\n sentryData: args.sentryData,\n authenticatedUserId: ctx.userId,\n }\n );\n\n return result as Record<string, unknown>;\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport { readTopicIdArg } from \"../scope.js\";\nimport {\n asJsonObject,\n asRecord,\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n} from \"./sdk.js\";\n\nexport const evidenceHandlers: HandlerModule = {\n async create_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.create({\n topicId: readString(readTopicIdArg(args)),\n text: readString(args.text) ?? \"\",\n source: readString(args.source),\n targetId: readString(args.targetId),\n weight: readNumber(args.weight),\n metadata: asJsonObject(args.metadata) as any,\n title: readString(args.title),\n content: readString(args.content),\n contentType: readString(args.contentType),\n kind: readString(args.kind),\n })\n );\n },\n\n async get_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.get(\n readString(args.id ?? args.evidenceId) ?? \"\"\n )\n );\n },\n\n async list_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.list({\n topicId: readString(readTopicIdArg(args)),\n targetId: readString(args.targetId),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async link_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.link({\n evidenceId: readString(args.evidenceId) ?? \"\",\n targetId:\n readString(args.targetId ?? args.beliefId ?? args.questionId) ?? \"\",\n targetType: readString(args.targetType),\n weight: readNumber(args.weight ?? args.relevance),\n rationale: readString(args.rationale),\n })\n );\n },\n\n async search_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.search({\n q: readString(args.q ?? args.query) ?? \"\",\n topicId: readString(readTopicIdArg(args)),\n targetId: readString(args.targetId),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async add_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.add({\n topicId: readString(readTopicIdArg(args)),\n text: readString(args.text ?? args.canonicalText) ?? \"\",\n source: readString(args.source ?? args.sourceUrl),\n targetId: readString(args.targetId ?? args.targetNodeId),\n weight: readNumber(args.weight),\n metadata: {\n ...asRecord(args.metadata),\n ...(readString(args.reasoning)\n ? { rationale: readString(args.reasoning) }\n : {}),\n } as any,\n title: readString(args.title),\n content: readString(args.content),\n contentType: readString(args.contentType),\n kind: readString(args.kind),\n })\n );\n },\n\n async link_evidence_to_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).evidence.linkToBelief({\n evidenceId: readString(args.evidenceId) ?? \"\",\n beliefId: readString(args.beliefId) ?? \"\",\n weight: readNumber(args.weight) ?? 1,\n rationale: readString(args.rationale),\n })\n );\n },\n};\n","/* GENERATED by scripts/generate-api-surface.ts. DO NOT EDIT. */\n\nimport { formatSdkResult, getSdkClient } from \"../sdk.js\";\nimport type { HandlerModule } from \"../types.js\";\n\nfunction idempotencyKeyFrom(args: Record<string, unknown>): string | undefined {\n return typeof args.__idempotencyKey === \"string\"\n ? args.__idempotencyKey\n : undefined;\n}\n\nfunction stripInternalArgs(args: Record<string, unknown>): Record<string, unknown> {\n const {\n __idempotencyKey: _idempotencyKey,\n __idempotencyFnName: _idempotencyFnName,\n __idempotencyTenantId: _idempotencyTenantId,\n ...rest\n } = args;\n return rest;\n}\n\nexport const generatedFunctionSurfaceHandlers: HandlerModule = {\n async activate_worktree(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.activateWorktree(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async add_worktree(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.addWorktree(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async analyze_topic_density(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.analyzeTopicDensity(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async apply_auto_branching(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.applyAutoBranching(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async apply_lens_to_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.applyLensToTopic(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async apply_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.applyOntology(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async archive_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.archiveBelief(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async archive_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.archiveOntology(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async archive_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.archiveQuestion(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async bisect_confidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.bisectConfidence(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async broadcast_message(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.broadcastMessage(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async check_permission(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.checkPermission(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async claim_files(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.claimFiles(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async compile_context(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.compileContext(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async complete_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.completeTask(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_answer(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createAnswer(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createBelief(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_edge(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createEdge(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_epistemic_contract(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createEpistemicContract(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createEvidence(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_lens(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createLens(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createOntology(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createOntologyVersion(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createQuestion(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createTask(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async create_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.createTopic(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async deprecate_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.deprecateOntologyVersion(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async detect_confirmation_bias(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.detectConfirmationBias(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async discover_entity_connections(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.discoverEntityConnections(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async end_session(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.endSession(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async evaluate_contract(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.evaluateContract(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async filter_by_permission(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.filterByPermission(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async find_contradictions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.findContradictions(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async find_missing_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.findMissingQuestions(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async flag_contradiction(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.flagContradiction(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async fork_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.forkBelief(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async generate_session_handoff(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.generateSessionHandoff(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_agent_inbox(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getAgentInbox(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_answer(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getAnswer(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_audit_trail(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getAuditTrail(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getBelief(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_change_history(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getChangeHistory(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_code_context(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getCodeContext(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_contract_status(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getContractStatus(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getEvidence(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_failure_log(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getFailureLog(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_falsification_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getFalsificationQuestions(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_graph_gaps(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getGraphGaps(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_graph_neighborhood(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getGraphNeighborhood(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_graph_structure_analysis(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getGraphStructureAnalysis(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_high_priority_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getHighPriorityQuestions(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_lattice_coverage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getLatticeCoverage(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_observation_context(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getObservationContext(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getOntology(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getQuestion(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getTopic(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_topic_coverage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getTopicCoverage(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async get_topic_tree(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.getTopicTree(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async heartbeat_session(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.heartbeatSession(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async identity_whoami(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.whoami(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async ingest_observation(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.ingestObservation(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async link_evidence_to_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.linkEvidenceToBelief(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async link_evidence_to_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.linkEvidenceToQuestion(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_active_sessions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listActiveSessions(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_all_worktrees(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listAllWorktrees(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_beliefs(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listBeliefs(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listEvidence(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_lenses(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listLenses(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_ontologies(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listOntologies(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listQuestions(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_tasks(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listTasks(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_topics(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listTopics(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async list_worktrees(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.listWorktrees(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async manage_write_policy(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.manageWritePolicy(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async match_entity_type(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.matchEntityType(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async merge(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.merge(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async modulate_confidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.modulateConfidence(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async open_pull_request(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.openPullRequest(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async pipeline_snapshot(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.pipelineSnapshot(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async publish_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.publishOntologyVersion(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async push(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.push(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async query_lineage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.queryLineage(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async record_attempt(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.recordAttempt(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async record_judgment(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.recordJudgment(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async record_scope_learning(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.recordScopeLearning(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async refine_belief(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.refineBelief(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async refine_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.refineQuestion(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async register_session(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.registerSession(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async remove_lens_from_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.removeLensFromTopic(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async resolve_effective_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.resolveEffectiveOntology(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async search_beliefs(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.searchBeliefs(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async search_evidence(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.searchEvidence(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async seed_belief_lattice(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.seedBeliefLattice(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async send_agent_message(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.sendAgentMessage(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async trace_entity_impact(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.traceEntityImpact(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async traverse_graph(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.traverseGraph(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async trigger_belief_review(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.triggerBeliefReview(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async update_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.updateOntology(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async update_question_status(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.updateQuestionStatus(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async update_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.updateTask(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async update_topic(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.updateTopic(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async update_worktree_metadata(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.updateWorktreeMetadata(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n async update_worktree_targets(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).raw.functionSurface.updateWorktreeTargets(\n stripInternalArgs(args),\n idempotencyKeyFrom(args)\n )\n );\n },\n};\n","import { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const identityHandlers: HandlerModule = {\n async identity_whoami(_args, ctx) {\n return formatSdkResult(await getSdkClient(ctx).identity.whoami());\n },\n};\n","import { graphHandlers } from \"./graph.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const intelligenceHandlers: HandlerModule = {\n detect_confirmation_bias: graphHandlers.detect_confirmation_bias,\n get_graph_structure_analysis: graphHandlers.get_graph_structure_analysis,\n get_falsification_questions: graphHandlers.get_falsification_questions,\n};\n","import { api, internal, components } from \"./kernelApi\";\nimport type { AuthContext } from \"@lucern/contracts\";\nimport { ROOT_TOPIC_ID } from \"@lucern/contracts\";\n\ntype TopicDoc = {\n _id: string;\n name?: string;\n type?: string;\n status?: string;\n metadata?: Record<string, unknown>;\n};\n\nexport function requireMcpConvex(authContext: AuthContext, label: string) {\n const convex = authContext.convex;\n if (!convex) {\n throw new Error(`${label}: authContext.convex is required for MCP paths`);\n }\n return convex;\n}\n\nfunction requireSetDefaultScopeContext(authContext: AuthContext) {\n if (!authContext.setDefaultScopeContext) {\n throw new Error(\"setDefaultScopeContext is required on authContext for this tool\");\n }\n return authContext.setDefaultScopeContext;\n}\n\nfunction normalizeText(value: unknown): string {\n return typeof value === \"string\" ? value.trim().toLowerCase() : \"\";\n}\n\nfunction chooseTopicByName(\n topics: TopicDoc[],\n target: string\n): TopicDoc | null {\n const normalizedTarget = normalizeText(target);\n if (!normalizedTarget) {\n return null;\n }\n\n const exact = topics.find(\n (topic) => normalizeText(topic.name) === normalizedTarget\n );\n if (exact) {\n return exact;\n }\n\n const startsWith = topics.find((topic) =>\n normalizeText(topic.name).startsWith(normalizedTarget)\n );\n if (startsWith) {\n return startsWith;\n }\n\n const contains = topics.find((topic) =>\n normalizeText(topic.name).includes(normalizedTarget)\n );\n return contains || null;\n}\n\nasync function listTopicCandidates(convex: NonNullable<AuthContext[\"convex\"]>, targetTopicName: string): Promise<TopicDoc[]> {\n const directMatches = (await convex.query((api.topics as any).findByName, {\n name: targetTopicName,\n status: \"active\",\n limit: 10,\n }).catch(() => [])) as TopicDoc[];\n if (directMatches.length > 0) {\n return directMatches;\n }\n\n const recentTopics = (await convex.query((internal.lucernMcp as any).listTopics, {\n limit: 500,\n }).catch(() => [])) as TopicDoc[];\n if (chooseTopicByName(recentTopics, targetTopicName)) {\n return recentTopics;\n }\n\n const listed = (await convex.query(api.topics.list, {\n status: \"active\",\n }).catch(() => [])) as TopicDoc[];\n if (chooseTopicByName(listed, targetTopicName)) {\n return listed;\n }\n\n const tree = (await convex.query(api.topics.getTree, {\n rootId: ROOT_TOPIC_ID,\n maxDepth: 12,\n }).catch(() => [])) as TopicDoc[] | null;\n\n const seen = new Set(\n listed.map((topic) => (typeof topic?._id === \"string\" ? topic._id : \"\"))\n );\n const fallback = Array.isArray(tree)\n ? tree.filter((topic) => {\n const topicId = typeof topic?._id === \"string\" ? topic._id : \"\";\n return topicId.length > 0 && !seen.has(topicId) && topic.status !== \"archived\";\n })\n : [];\n\n return [...listed, ...fallback];\n}\n\nexport async function listAccessibleTopicsFromMcpAuth(\n ctx: AuthContext,\n input: {\n permission: \"read\" | \"write\";\n includeShared?: boolean;\n principal?: string;\n }\n) {\n const convex = requireMcpConvex(ctx, \"listAccessibleTopicsFromMcpAuth\");\n\n if (ctx.sessionType === \"agent\" || ctx.allowedTopics === null) {\n const topics = (await convex.query(api.topics.list, {\n status: \"active\",\n })) as TopicDoc[];\n\n return {\n permission: input.permission,\n topics: topics.map((topic) => ({\n topicId: topic._id,\n name: topic.name || \"Untitled Topic\",\n type: topic.type || \"topic\",\n isOwner: true,\n })),\n total: topics.length,\n deniedTopics: [],\n };\n }\n\n const result = (await convex.query((api.policy as any).listAccessibleTopics, {\n permission: input.permission,\n includeShared: input.includeShared,\n principalId: input.principal,\n actorPrincipalId: ctx.userId,\n }).catch(() => ({\n topics: [],\n total: 0,\n deniedTopics: [],\n }))) as {\n topics?: Array<{\n topicId?: string;\n name?: string;\n type?: string;\n isOwner?: boolean;\n }>;\n total?: number;\n deniedTopics?: Array<{ topicId: string; reasonCode: string }>;\n };\n\n const accessibleTopics = Array.isArray(result.topics) ? result.topics : [];\n\n return {\n permission: input.permission,\n topics: accessibleTopics,\n total:\n typeof result.total === \"number\" ? result.total : accessibleTopics.length,\n deniedTopics: Array.isArray(result.deniedTopics) ? result.deniedTopics : [],\n };\n}\n\nexport async function switchTopicContextFromMcpAuth(\n authContext: AuthContext,\n targetTopicName: string\n) {\n const convex = requireMcpConvex(authContext, \"switchTopicContextFromMcpAuth\");\n const setDefaultScopeContext = requireSetDefaultScopeContext(authContext);\n const topics = await listTopicCandidates(convex, targetTopicName);\n\n const topic =\n topics.find((candidate) => candidate._id === targetTopicName) ||\n chooseTopicByName(topics, targetTopicName);\n\n if (!topic) {\n return {\n topicId: \"\",\n topicName: \"\",\n switched: false,\n briefing: null,\n };\n }\n\n await setDefaultScopeContext(topic._id);\n\n return {\n topicId: topic._id,\n topicName: topic.name || \"Untitled Topic\",\n switched: true,\n briefing: {\n topicId: topic._id,\n topicType: topic.type || \"topic\",\n },\n };\n}\n","import { basename, extname } from \"node:path\"\nimport {\n ROOT_TOPIC_ID,\n decodePrefixedId,\n type AuthContext,\n type GatewayAuthContext,\n} from \"@lucern/contracts\"\nimport { api } from \"./kernelApi\"\nimport { requireMcpConvex } from \"./mcp-context-tools\"\n\nexport interface TopicResolveInput {\n workspaceId?: string\n topicHint?: string\n summary: string\n tags?: string[]\n touchedPaths?: string[]\n sourceRef?: string\n sourceKind?: string\n autoCreate?: boolean\n threshold?: number\n}\n\nexport interface TopicResolveOutput {\n topicId: string\n path: string[]\n created: boolean\n score: number\n trace?: { topicId: string; name: string; score: number }[]\n}\n\ntype TopicResolverContext = GatewayAuthContext | AuthContext\n\ntype ConvexLike = {\n query: (reference: unknown, args: Record<string, unknown>) => Promise<unknown>\n mutation: (\n reference: unknown,\n args: Record<string, unknown>\n ) => Promise<unknown>\n}\n\ntype TopicCandidate = {\n rawId: string\n name: string\n description?: string\n type?: string\n parentTopicId?: string | null\n tenantId?: string\n workspaceId?: string\n status?: string\n metadata: Record<string, unknown>\n globalId?: string\n}\n\ntype TopicSignalBag = {\n summaryTokens: Set<string>\n tagTokens: Set<string>\n pathTokens: Set<string>\n hintTokens: Set<string>\n allTokens: Set<string>\n}\n\nconst DEFAULT_THRESHOLD = 0.35\nconst TREE_MAX_DEPTH = 20\nconst METADATA_TOKEN_KEYS = [\n \"aliases\",\n \"alias\",\n \"keywords\",\n \"labels\",\n \"label\",\n \"ontologyLabels\",\n \"ontologyLabel\",\n \"ontologyKey\",\n \"slug\",\n \"tags\",\n] as const\n\nconst STOP_WORDS = new Set([\n \"a\",\n \"an\",\n \"and\",\n \"at\",\n \"by\",\n \"for\",\n \"from\",\n \"in\",\n \"into\",\n \"is\",\n \"of\",\n \"on\",\n \"or\",\n \"the\",\n \"to\",\n \"with\",\n])\n\nfunction isGatewayAuthContext(\n ctx: TopicResolverContext\n): ctx is GatewayAuthContext {\n return \"requestEnvironment\" in ctx\n}\n\nfunction getConvex(ctx: TopicResolverContext): ConvexLike {\n if (isGatewayAuthContext(ctx)) {\n return ctx.convex as ConvexLike\n }\n return requireMcpConvex(ctx, \"topic-resolver\") as unknown as ConvexLike\n}\n\nfunction readString(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined\n }\n const normalized = value.trim()\n return normalized.length > 0 ? normalized : undefined\n}\n\nfunction readStringArray(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return []\n }\n return value\n .map((entry) => readString(entry))\n .filter((entry): entry is string => Boolean(entry))\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {}\n}\n\nfunction normalizeTopicId(value: string | undefined): string | undefined {\n const normalized = readString(value)\n if (!normalized) {\n return undefined\n }\n try {\n const decoded = decodePrefixedId(normalized)\n return decoded.prefix === \"top\" ? decoded.value : normalized\n } catch {\n return normalized\n }\n}\n\nfunction normalizeExternalId(\n value: string | undefined,\n prefix?: string\n): string | undefined {\n const normalized = readString(value)\n if (!normalized) {\n return undefined\n }\n try {\n const decoded = decodePrefixedId(normalized)\n if (prefix && decoded.prefix !== prefix) {\n return normalized\n }\n return decoded.value\n } catch {\n return normalized\n }\n}\n\nfunction normalizeToken(value: string): string | null {\n const normalized = value.toLowerCase().trim()\n if (!normalized || normalized.length < 2 || STOP_WORDS.has(normalized)) {\n return null\n }\n return normalized\n}\n\nfunction tokenize(value: string | undefined): string[] {\n const normalized = readString(value)\n if (!normalized) {\n return []\n }\n return normalized\n .toLowerCase()\n .split(/[^a-z0-9]+/g)\n .map((token) => normalizeToken(token))\n .filter((token): token is string => Boolean(token))\n}\n\nfunction addTokens(set: Set<string>, values: Iterable<string>) {\n for (const value of values) {\n const normalized = normalizeToken(value)\n if (normalized) {\n set.add(normalized)\n }\n }\n}\n\nfunction basenameStem(filePath: string): string | undefined {\n const base = basename(filePath)\n const trimmed = base.trim()\n if (!trimmed) {\n return undefined\n }\n const extension = extname(trimmed)\n return extension ? trimmed.slice(0, -extension.length) : trimmed\n}\n\nfunction buildSignalBag(input: TopicResolveInput): TopicSignalBag {\n const summaryTokens = new Set<string>()\n const tagTokens = new Set<string>()\n const pathTokens = new Set<string>()\n const hintTokens = new Set<string>()\n\n addTokens(summaryTokens, tokenize(input.summary))\n\n for (const tag of input.tags ?? []) {\n addTokens(tagTokens, tokenize(tag))\n }\n\n for (const touchedPath of input.touchedPaths ?? []) {\n const stem = basenameStem(touchedPath)\n if (stem) {\n addTokens(pathTokens, [stem, ...tokenize(stem)])\n }\n }\n\n addTokens(pathTokens, tokenize(input.sourceRef))\n addTokens(pathTokens, tokenize(input.sourceKind))\n addTokens(hintTokens, tokenize(input.topicHint))\n\n const allTokens = new Set<string>()\n addTokens(allTokens, summaryTokens)\n addTokens(allTokens, tagTokens)\n addTokens(allTokens, pathTokens)\n addTokens(allTokens, hintTokens)\n\n return {\n summaryTokens,\n tagTokens,\n pathTokens,\n hintTokens,\n allTokens,\n }\n}\n\nfunction collectTopicMetadataTokens(metadata: Record<string, unknown>): string[] {\n const values: string[] = []\n for (const key of METADATA_TOKEN_KEYS) {\n const value = metadata[key]\n if (typeof value === \"string\") {\n values.push(value)\n continue\n }\n values.push(...readStringArray(value))\n }\n return values\n}\n\nfunction topicNameSlug(name: string): string {\n return tokenize(name).join(\" \")\n}\n\nfunction topicTokenSet(topic: {\n name: string\n description?: string\n type?: string\n metadata?: Record<string, unknown>\n}): Set<string> {\n const tokens = new Set<string>()\n addTokens(tokens, tokenize(topic.name))\n addTokens(tokens, tokenize(topic.description))\n addTokens(tokens, tokenize(topic.type))\n addTokens(tokens, collectTopicMetadataTokens(topic.metadata ?? {}))\n return tokens\n}\n\nexport function scoreTopicMatch(\n topic: {\n name: string\n description?: string\n type?: string\n metadata?: Record<string, unknown>\n },\n input: TopicResolveInput\n): number {\n const signals = buildSignalBag(input)\n const topicTokens = topicTokenSet(topic)\n if (signals.allTokens.size === 0 || topicTokens.size === 0) {\n return 0\n }\n\n let intersection = 0\n for (const token of signals.allTokens) {\n if (topicTokens.has(token)) {\n intersection += 1\n }\n }\n\n const union = new Set<string>([...signals.allTokens, ...topicTokens]).size\n const jaccard = union > 0 ? intersection / union : 0\n const topicSlug = topicNameSlug(topic.name)\n\n let boost = 0\n for (const token of signals.tagTokens) {\n if (topicTokens.has(token)) {\n boost += 0.08\n break\n }\n }\n\n for (const token of signals.pathTokens) {\n if (topicTokens.has(token) || topicSlug === token) {\n boost += 0.12\n break\n }\n }\n\n for (const token of signals.hintTokens) {\n if (topicTokens.has(token) || topicSlug.includes(token)) {\n boost += 0.05\n break\n }\n }\n\n return Math.max(0, Math.min(1, jaccard + boost))\n}\n\nfunction normalizeTopicCandidate(value: unknown): TopicCandidate | null {\n const record = asRecord(value)\n const rawId =\n readString(record._id) ??\n readString(record.id) ??\n normalizeTopicId(readString(record.topicId)) ??\n normalizeTopicId(readString(record.projectId))\n\n const name = readString(record.name)\n if (!rawId || !name) {\n return null\n }\n\n return {\n rawId,\n name,\n description: readString(record.description),\n type: readString(record.type),\n parentTopicId: normalizeTopicId(readString(record.parentTopicId)) ?? null,\n tenantId: readString(record.tenantId),\n workspaceId: readString(record.workspaceId),\n status: readString(record.status),\n metadata: asRecord(record.metadata),\n globalId: readString(record.globalId),\n }\n}\n\nfunction topicMatchesScope(\n topic: TopicCandidate,\n tenantId: string | undefined,\n workspaceId: string | undefined\n): boolean {\n if (topic.status === \"archived\") {\n return false\n }\n if (tenantId && topic.tenantId && topic.tenantId !== tenantId) {\n return false\n }\n if (workspaceId && topic.workspaceId && topic.workspaceId !== workspaceId) {\n return false\n }\n return true\n}\n\nasync function fetchTopicById(\n ctx: TopicResolverContext,\n topicId: string | undefined\n): Promise<TopicCandidate | null> {\n const normalizedTopicId = normalizeTopicId(topicId)\n if (!normalizedTopicId) {\n return null\n }\n\n const topic = await getConvex(ctx)\n .query(api.topics.get, {\n id: normalizedTopicId as any,\n })\n .catch(() => null)\n\n return normalizeTopicCandidate(topic)\n}\n\nfunction readRecordTopicId(value: unknown): string | undefined {\n const record = asRecord(value)\n return normalizeTopicId(\n readString(record.topicId) ??\n readString(record.projectId) ??\n readString(asRecord(record.metadata).topicId)\n )\n}\n\nasync function fetchRecordTopicId(\n ctx: TopicResolverContext,\n reference: unknown,\n args: Record<string, unknown>\n): Promise<string | undefined> {\n const result = await getConvex(ctx)\n .query(reference, args)\n .catch(() => null)\n return readRecordTopicId(result)\n}\n\nexport async function resolveBeliefTopicId(\n ctx: TopicResolverContext,\n beliefId: string | undefined\n): Promise<string | undefined> {\n const normalizedBeliefId = normalizeExternalId(beliefId, \"bel\")\n if (!normalizedBeliefId) {\n return undefined\n }\n return fetchRecordTopicId(ctx, api.epistemicBeliefs.getById, {\n beliefId: normalizedBeliefId as any,\n nodeId: normalizedBeliefId as any,\n })\n}\n\nexport async function resolveQuestionTopicId(\n ctx: TopicResolverContext,\n questionId: string | undefined\n): Promise<string | undefined> {\n const normalizedQuestionId = normalizeExternalId(questionId, \"que\")\n if (!normalizedQuestionId) {\n return undefined\n }\n return fetchRecordTopicId(ctx, api.epistemicQuestions.getById, {\n questionId: normalizedQuestionId as any,\n nodeId: normalizedQuestionId as any,\n })\n}\n\nexport async function resolveWorktreeTopicId(\n ctx: TopicResolverContext,\n worktreeId: string | undefined\n): Promise<string | undefined> {\n const normalizedWorktreeId = readString(worktreeId)\n if (!normalizedWorktreeId) {\n return undefined\n }\n return fetchRecordTopicId(ctx, api.worktrees.get, {\n worktreeId: normalizedWorktreeId as any,\n })\n}\n\nexport async function resolveTopicIdFromEvidenceTarget(\n ctx: TopicResolverContext,\n targetId: string | undefined,\n targetType?: string\n): Promise<string | undefined> {\n const normalizedTargetId = readString(targetId)\n if (!normalizedTargetId) {\n return undefined\n }\n\n if (targetType === \"question\") {\n return resolveQuestionTopicId(ctx, normalizedTargetId)\n }\n\n if (targetType === \"belief\") {\n return resolveBeliefTopicId(ctx, normalizedTargetId)\n }\n\n try {\n const decoded = decodePrefixedId(normalizedTargetId)\n if (decoded.prefix === \"que\") {\n return resolveQuestionTopicId(ctx, normalizedTargetId)\n }\n } catch {\n // Belief IDs are still the common raw fallback.\n }\n\n return resolveBeliefTopicId(ctx, normalizedTargetId)\n}\n\nexport async function resolveCommonBeliefTopicId(\n ctx: TopicResolverContext,\n beliefIds: string[] | undefined\n): Promise<string | undefined> {\n const normalizedBeliefIds = (beliefIds ?? []).filter(\n (beliefId): beliefId is string => Boolean(readString(beliefId))\n )\n if (normalizedBeliefIds.length === 0) {\n return undefined\n }\n\n const resolvedTopicIds = (\n await Promise.all(\n normalizedBeliefIds.map((beliefId) => resolveBeliefTopicId(ctx, beliefId))\n )\n ).filter((topicId): topicId is string => Boolean(topicId))\n\n if (resolvedTopicIds.length !== normalizedBeliefIds.length) {\n return undefined\n }\n\n return resolvedTopicIds.every((topicId) => topicId === resolvedTopicIds[0])\n ? resolvedTopicIds[0]\n : undefined\n}\n\nasync function fetchTopicTree(\n ctx: TopicResolverContext\n): Promise<TopicCandidate[]> {\n const convex = getConvex(ctx)\n const tree = await convex\n .query(api.topics.getTree, {\n rootId: ROOT_TOPIC_ID,\n maxDepth: TREE_MAX_DEPTH,\n })\n .catch(() => null)\n\n const normalizedTree = Array.isArray(tree)\n ? tree\n .map((topic) => normalizeTopicCandidate(topic))\n .filter((topic): topic is TopicCandidate => Boolean(topic))\n : []\n\n if (normalizedTree.length > 0) {\n return normalizedTree\n }\n\n const listed = await convex\n .query(api.topics.list, {\n status: \"active\",\n })\n .catch(() => [])\n\n return Array.isArray(listed)\n ? listed\n .map((topic) => normalizeTopicCandidate(topic))\n .filter((topic): topic is TopicCandidate => Boolean(topic))\n : []\n}\n\nfunction buildTopicMaps(topics: TopicCandidate[]) {\n const byId = new Map<string, TopicCandidate>()\n const childrenByParent = new Map<string, TopicCandidate[]>()\n\n for (const topic of topics) {\n byId.set(topic.rawId, topic)\n }\n\n for (const topic of topics) {\n if (!topic.parentTopicId) {\n continue\n }\n const siblings = childrenByParent.get(topic.parentTopicId) ?? []\n siblings.push(topic)\n childrenByParent.set(topic.parentTopicId, siblings)\n }\n\n return { byId, childrenByParent }\n}\n\nfunction buildPath(topicId: string, byId: Map<string, TopicCandidate>): string[] {\n const path: string[] = []\n const seen = new Set<string>()\n let cursor = byId.get(topicId)\n\n while (cursor && !seen.has(cursor.rawId)) {\n path.push(cursor.rawId)\n seen.add(cursor.rawId)\n cursor = cursor.parentTopicId ? byId.get(cursor.parentTopicId) : undefined\n }\n\n return path.reverse()\n}\n\nfunction titleCase(value: string): string {\n return value.replace(/\\b[a-z]/g, (match) => match.toUpperCase())\n}\n\nfunction compactWhitespace(value: string): string {\n return value.replace(/\\s+/g, \" \").trim()\n}\n\nfunction deriveTopicName(\n input: TopicResolveInput,\n parentTopic: TopicCandidate\n): string {\n const textualHint = readString(input.topicHint)\n if (textualHint && tokenize(textualHint).length > 0) {\n return titleCase(compactWhitespace(textualHint)).slice(0, 60)\n }\n\n const firstTag = (input.tags ?? []).find((tag) => tokenize(tag).length > 0)\n if (firstTag) {\n return titleCase(compactWhitespace(firstTag)).slice(0, 60)\n }\n\n const firstPathStem = (input.touchedPaths ?? [])\n .map((filePath) => basenameStem(filePath))\n .find((stem) => stem && tokenize(stem).length > 0)\n if (firstPathStem) {\n return titleCase(compactWhitespace(firstPathStem.replace(/[-_]+/g, \" \"))).slice(0, 60)\n }\n\n const summary = compactWhitespace(input.summary)\n if (summary.length > 0) {\n return titleCase(summary.slice(0, 60))\n }\n\n const sourceRef = readString(input.sourceRef)\n if (sourceRef) {\n return titleCase(compactWhitespace(sourceRef.replace(/[-_:/]+/g, \" \"))).slice(0, 60)\n }\n\n return `${titleCase(parentTopic.name)} Subtopic`\n}\n\nasync function createChildTopic(\n ctx: TopicResolverContext,\n parentTopic: TopicCandidate,\n input: TopicResolveInput\n): Promise<TopicCandidate> {\n const convex = getConvex(ctx)\n const desiredTenantId = ctx.tenantId\n const desiredWorkspaceId = readString(input.workspaceId) ?? ctx.workspaceId\n const createdBy = ctx.principalId ?? ctx.userId\n\n const created = await convex.mutation(api.topics.create, {\n name: deriveTopicName(input, parentTopic),\n description: compactWhitespace(input.summary).slice(0, 280) || undefined,\n type: \"theme\",\n parentTopicId: parentTopic.rawId as any,\n tenantId: desiredTenantId,\n workspaceId: desiredWorkspaceId,\n visibility: \"team\",\n createdBy,\n metadata: {\n autoResolvedForWrite: true,\n sourceKind: input.sourceKind,\n sourceRef: input.sourceRef,\n tags: input.tags,\n touchedPaths: input.touchedPaths,\n },\n })\n\n const createdRecord = asRecord(created)\n const createdId =\n readString(createdRecord.id) ??\n readString(createdRecord.topicId) ??\n readString(createdRecord._id)\n\n const hydrated = await fetchTopicById(ctx, createdId)\n if (!hydrated) {\n throw new Error(\"[topic-resolver] Auto-created topic could not be reloaded.\")\n }\n return hydrated\n}\n\nfunction pushTrace(\n trace: Array<{ topicId: string; name: string; score: number }>,\n topic: TopicCandidate,\n score: number\n) {\n const existing = trace[trace.length - 1]\n if (existing?.topicId === topic.rawId) {\n existing.score = score\n existing.name = topic.name\n return\n }\n trace.push({\n topicId: topic.rawId,\n name: topic.name,\n score,\n })\n}\n\nasync function loadTopicUniverse(\n ctx: TopicResolverContext,\n input: TopicResolveInput\n) {\n const desiredTenantId = ctx.tenantId\n const desiredWorkspaceId = readString(input.workspaceId) ?? ctx.workspaceId\n const rawTopics = await fetchTopicTree(ctx)\n const root =\n rawTopics.find((topic) => topic.rawId === ROOT_TOPIC_ID) ??\n (await fetchTopicById(ctx, ROOT_TOPIC_ID)) ??\n rawTopics.find((topic) => !topic.parentTopicId) ??\n null\n\n if (!root) {\n throw new Error(\"[topic-resolver] Root topic not found.\")\n }\n\n const topics = rawTopics.filter(\n (topic) =>\n topic.rawId === root.rawId ||\n topicMatchesScope(topic, desiredTenantId, desiredWorkspaceId)\n )\n\n const dedupedTopics = new Map<string, TopicCandidate>()\n dedupedTopics.set(root.rawId, root)\n for (const topic of topics) {\n dedupedTopics.set(topic.rawId, topic)\n }\n\n const { byId, childrenByParent } = buildTopicMaps([...dedupedTopics.values()])\n return {\n root,\n byId,\n childrenByParent,\n }\n}\n\nexport async function validateTopicOrNull(\n ctx: TopicResolverContext,\n topicId: string | undefined\n): Promise<TopicResolveOutput | null> {\n const topic = await fetchTopicById(ctx, topicId)\n if (!topic || topic.status === \"archived\") {\n return null\n }\n\n const { byId } = await loadTopicUniverse(ctx, {\n summary: topic.name,\n autoCreate: false,\n })\n if (!byId.has(topic.rawId)) {\n byId.set(topic.rawId, topic)\n }\n\n return {\n topicId: topic.rawId,\n path: buildPath(topic.rawId, byId),\n created: false,\n score: 1,\n trace: [\n {\n topicId: topic.rawId,\n name: topic.name,\n score: 1,\n },\n ],\n }\n}\n\nexport async function resolveTopicForWrite(\n ctx: TopicResolverContext,\n input: TopicResolveInput\n): Promise<TopicResolveOutput> {\n const threshold =\n typeof input.threshold === \"number\" && Number.isFinite(input.threshold)\n ? Math.max(0, Math.min(1, input.threshold))\n : DEFAULT_THRESHOLD\n const createThreshold = Math.max(0.5, Math.min(1, threshold + 0.15))\n const autoCreate = input.autoCreate !== false\n const { root, byId, childrenByParent } = await loadTopicUniverse(ctx, input)\n const trace: Array<{ topicId: string; name: string; score: number }> = []\n\n // Precompute the maximum own-score across every topic in each subtree, so\n // descent can look ahead: a shallow topic that doesn't score well itself\n // still pulls descent toward it when a descendant is a strong match.\n // This matches Pete's product semantic — walk the tree until specificity\n // stops improving, not until direct-child scores clear an absolute gate.\n const ownScore = new Map<string, number>()\n const subtreeScore = new Map<string, number>()\n const computeSubtreeScore = (topicId: string, visited: Set<string>): number => {\n if (subtreeScore.has(topicId)) {\n return subtreeScore.get(topicId)!\n }\n if (visited.has(topicId)) {\n return 0\n }\n visited.add(topicId)\n const topic = byId.get(topicId)\n if (!topic || topic.status === \"archived\") {\n visited.delete(topicId)\n return 0\n }\n if (!ownScore.has(topicId)) {\n ownScore.set(topicId, scoreTopicMatch(topic, input))\n }\n let best = ownScore.get(topicId)!\n for (const child of childrenByParent.get(topicId) ?? []) {\n best = Math.max(best, computeSubtreeScore(child.rawId, visited))\n }\n subtreeScore.set(topicId, best)\n visited.delete(topicId)\n return best\n }\n computeSubtreeScore(root.rawId, new Set())\n\n let current = root\n let currentScore = ownScore.get(root.rawId) ?? scoreTopicMatch(root, input)\n pushTrace(trace, current, currentScore)\n\n while (true) {\n const children = (childrenByParent.get(current.rawId) ?? []).filter(\n (topic) => topic.status !== \"archived\"\n )\n if (children.length === 0) {\n break\n }\n\n // Rank by subtree look-ahead, not just the child's own score. This lets\n // descent navigate through low-scoring intermediate topics whose\n // descendants carry the real signal.\n const rankedChildren = children\n .map((topic) => {\n if (!ownScore.has(topic.rawId)) {\n ownScore.set(topic.rawId, scoreTopicMatch(topic, input))\n }\n return {\n topic,\n lookahead: subtreeScore.get(topic.rawId) ?? ownScore.get(topic.rawId)!,\n }\n })\n .sort((left, right) => right.lookahead - left.lookahead)\n\n const bestChild = rankedChildren[0]\n // Descent is gated on whether a deeper topic is strictly more specific\n // than the current one. The absolute threshold gates auto-creation below,\n // not descent — otherwise shallow/generic roots block every traversal.\n if (!bestChild || bestChild.lookahead <= currentScore) {\n break\n }\n\n current = bestChild.topic\n currentScore = ownScore.get(current.rawId) ?? scoreTopicMatch(current, input)\n pushTrace(trace, current, currentScore)\n }\n\n let created = false\n let resolvedTopic = current\n let finalScore = currentScore\n\n if (autoCreate && finalScore < createThreshold) {\n const siblings = childrenByParent.get(current.rawId) ?? []\n const derivedName = deriveTopicName(input, current).toLowerCase()\n const existingSibling = siblings.find(\n (topic) => topic.name.trim().toLowerCase() === derivedName\n )\n\n if (existingSibling) {\n resolvedTopic = existingSibling\n finalScore = scoreTopicMatch(existingSibling, input)\n pushTrace(trace, resolvedTopic, finalScore)\n } else {\n resolvedTopic = await createChildTopic(ctx, current, input)\n created = true\n byId.set(resolvedTopic.rawId, resolvedTopic)\n const nextChildren = childrenByParent.get(current.rawId) ?? []\n nextChildren.push(resolvedTopic)\n childrenByParent.set(current.rawId, nextChildren)\n finalScore = Math.max(\n createThreshold,\n scoreTopicMatch(resolvedTopic, input)\n )\n pushTrace(trace, resolvedTopic, finalScore)\n }\n }\n\n return {\n topicId: resolvedTopic.rawId,\n path: buildPath(resolvedTopic.rawId, byId),\n created,\n score: finalScore,\n trace,\n }\n}\n\nexport async function resolveTopicIdForWrite(\n ctx: TopicResolverContext,\n input: TopicResolveInput & { topicId?: string }\n): Promise<TopicResolveOutput> {\n const explicitTopicId = normalizeTopicId(input.topicId)\n const explicit = await validateTopicOrNull(ctx, explicitTopicId)\n if (explicit) {\n return explicit\n }\n\n if (explicitTopicId) {\n console.warn(\n `[topic-resolver] Explicit topicId \"${explicitTopicId}\" is invalid or stale. Falling back to hop-by-hop topic resolution.`\n )\n }\n\n return resolveTopicForWrite(ctx, {\n ...input,\n topicHint: input.topicHint ?? explicitTopicId,\n autoCreate: explicitTopicId ? false : input.autoCreate,\n })\n}\n","/**\n * Judgment Handlers — record_judgment\n */\n\nimport {\n resolveCommonBeliefTopicId,\n resolveTopicForWrite,\n validateTopicOrNull,\n} from \"@lucern/server-core/topic-resolver\";\nimport { readTopicIdArg } from \"../scope.js\";\nimport { formatSdkResult, getSdkClient, readNumber, readString, readStringArray } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const judgmentHandlers: HandlerModule = {\n async record_judgment(args, ctx) {\n const explicitTopicId = readString(readTopicIdArg(args));\n const beliefIds = readStringArray(args.beliefIds);\n const explicitTopic = await validateTopicOrNull(ctx, explicitTopicId);\n const inferredTopicId = await resolveCommonBeliefTopicId(ctx, beliefIds);\n\n if (!explicitTopic && explicitTopicId) {\n console.warn(\n `[topic-resolver] Explicit topicId \"${explicitTopicId}\" is invalid or stale. Falling back to topic inference for record_judgment.`\n );\n }\n\n const topicId =\n explicitTopic?.topicId ??\n inferredTopicId ??\n (\n await resolveTopicForWrite(ctx, {\n topicHint: explicitTopicId,\n workspaceId: ctx.workspaceId,\n summary: [readString(args.title), readString(args.rationale)]\n .filter((value): value is string => Boolean(value))\n .join(\". \"),\n tags: [\"judgment\"],\n sourceRef: (beliefIds ?? []).join(\",\"),\n sourceKind: \"judgment\",\n autoCreate: explicitTopicId ? false : true,\n })\n ).topicId;\n\n return formatSdkResult(\n await getSdkClient(ctx).judgments.record({\n title: readString(args.title) ?? \"\",\n rationale: readString(args.rationale) ?? \"\",\n topicId,\n confidence: readNumber(args.confidence) ?? 0.7,\n beliefIds,\n })\n );\n },\n};\n","/**\n * Lens Handlers — create_lens, list_lenses, apply_lens_to_topic, remove_lens_from_topic\n */\n\nimport { validateFilterCriteria } from \"@lucern/contracts/lens-filter.contract\";\nimport { readTopicIdArg } from \"../scope.js\";\nimport { formatSdkResult, getSdkClient, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nfunction readWorkspaceIdArg(args: Record<string, unknown>): string | undefined {\n return readString(args.workspaceId);\n}\n\nexport const lensHandlers: HandlerModule = {\n async create_lens(args, ctx) {\n const filterCriteria =\n args.filterCriteria && typeof args.filterCriteria === \"object\"\n ? (args.filterCriteria as Record<string, unknown>)\n : undefined;\n\n if (filterCriteria !== undefined) {\n const validation = validateFilterCriteria(filterCriteria);\n if (!validation.valid) {\n throw new Error(\n `Invalid filterCriteria: ${validation.errors.join(\"; \")}`\n );\n }\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.createLens({\n name: readString(args.name) ?? \"\",\n topicId: readTopicIdArg(args),\n workspaceId: readWorkspaceIdArg(args),\n description: readString(args.description),\n perspectiveType: readString(args.perspectiveType) as any,\n promptTemplates: Array.isArray(args.promptTemplates)\n ? (args.promptTemplates as any[])\n : undefined,\n workflowTemplates: Array.isArray(args.workflowTemplates)\n ? (args.workflowTemplates as any[])\n : undefined,\n taskTemplates: Array.isArray(args.taskTemplates)\n ? (args.taskTemplates as any[])\n : undefined,\n questionTemplates: Array.isArray(args.questionTemplates)\n ? (args.questionTemplates as any[])\n : undefined,\n filterCriteria,\n })\n );\n },\n\n async list_lenses(args, ctx) {\n try {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.listLenses({\n workspaceId: readWorkspaceIdArg(args),\n topicId: readTopicIdArg(args),\n status: readString(args.status) as any,\n perspectiveType: readString(args.perspectiveType) as any,\n })\n );\n } catch (error) {\n if (\n error instanceof Error &&\n error.message.includes(\n \"workspaceId is required unless topicId resolves to a workspace-scoped topic\"\n )\n ) {\n return {\n lenses: [],\n note: \"workspaceId is required unless topicId resolves to a workspace-scoped topic\",\n };\n }\n throw error;\n }\n },\n\n async apply_lens_to_topic(args, ctx) {\n const topicId = readTopicIdArg(args);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.applyLensToTopic({\n lensId: readString(args.lensId) ?? \"\",\n topicId,\n metadata:\n args.metadata && typeof args.metadata === \"object\"\n ? (args.metadata as Record<string, unknown>)\n : undefined,\n })\n );\n },\n\n async remove_lens_from_topic(args, ctx) {\n const topicId = readTopicIdArg(args);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.removeLensFromTopic({\n lensId: readString(args.lensId) ?? \"\",\n topicId,\n })\n );\n },\n};\n","import { formatSdkResult, getSdkClient, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const lineageHandlers: HandlerModule = {\n async query_lineage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).graph.queryLineage(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async get_confidence_history(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).graph.getConfidenceHistory(\n readString(args.id ?? args.nodeId ?? args.beliefId) ?? \"\"\n )\n );\n },\n\n async get_audit_trail(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).graph.getAuditTrail(\n args.nodeId as string,\n (args.limit as number) ?? 50\n )\n );\n },\n};\n","/**\n * Observation Handlers — ingest_observation, get_observation_context\n *\n * Stage-1 implementation is process-local and read-only to graph state.\n * This preserves invariant #14: observations stage candidate updates but do not mutate epistemic nodes.\n */\n\nimport { resolveTopicIdForWrite } from \"@lucern/server-core/topic-resolver\";\nimport { readTopicIdArg, resolveTopicScopeId } from \"../scope.js\";\nimport { readString, readStringArray } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\ntype ObservationType =\n | \"claim\"\n | \"evidence\"\n | \"question\"\n | \"contradiction\"\n | \"judgment\"\n | \"note\";\n\ntype ObservationRecord = {\n observationId: string;\n topicId: string;\n observationType: ObservationType;\n summary: string;\n source?: string;\n confidence?: number;\n tags: string[];\n metadata?: Record<string, unknown>;\n createdAt: number;\n};\n\nconst observationStore = new Map<string, ObservationRecord[]>();\n\nfunction tokenize(input: string): string[] {\n return input\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .map((token) => token.trim())\n .filter(Boolean);\n}\n\nfunction scoreSemanticMatch(record: ObservationRecord, query: string): number {\n const queryTokens = new Set(tokenize(query));\n if (queryTokens.size === 0) {\n return 0;\n }\n const haystack = [record.summary, record.source || \"\", ...(record.tags || [])]\n .join(\" \")\n .toLowerCase();\n let score = 0;\n for (const token of queryTokens) {\n if (haystack.includes(token)) {\n score += 1;\n }\n }\n return score;\n}\n\nexport const observationHandlers: HandlerModule = {\n async ingest_observation(args, ctx) {\n const explicitTopicId = readString(readTopicIdArg(args));\n const resolvedTopic = await resolveTopicIdForWrite(ctx, {\n topicId: explicitTopicId,\n topicHint: explicitTopicId,\n workspaceId: readString(args.workspaceId) ?? ctx.workspaceId,\n summary: readString(args.summary) ?? \"\",\n tags: readStringArray(args.tags),\n sourceRef: readString(args.source),\n sourceKind: readString(args.observationType),\n });\n const topicId = resolvedTopic.topicId;\n const observationType = args.observationType as ObservationType;\n const summary = args.summary as string;\n const source = (args.source as string) || undefined;\n const confidence = (args.confidence as number) || undefined;\n const tags = ((args.tags as string[]) || []).filter(\n (tag) => typeof tag === \"string\" && tag.trim().length > 0\n );\n const metadata = (args.metadata as Record<string, unknown>) || undefined;\n\n const createdAt = Date.now();\n const observationId = (\n typeof crypto !== \"undefined\" && \"randomUUID\" in crypto\n ? crypto.randomUUID()\n : `obs_${createdAt}_${Math.random().toString(36).slice(2)}`\n ) as string;\n\n const record: ObservationRecord = {\n observationId,\n topicId,\n observationType,\n summary,\n source,\n confidence,\n tags,\n metadata,\n createdAt,\n };\n\n const existing = observationStore.get(topicId) || [];\n existing.push(record);\n observationStore.set(topicId, existing.slice(-500));\n\n return {\n observationId,\n topicId,\n observationType,\n createdAt,\n contextResourceUri: `lucern://observations/${topicId}`,\n };\n },\n\n async get_observation_context(args, _ctx) {\n const topicId = await resolveTopicScopeId(\n readTopicIdArg(args),\n \"get_observation_context\"\n );\n const query = (args.query as string) || \"\";\n const limit = Math.max(1, Math.min((args.limit as number) || 25, 200));\n const records = observationStore.get(topicId) || [];\n\n const latest = records.slice(-limit).reverse();\n\n const semanticMatches = query\n ? records\n .map((record) => ({\n record,\n score: scoreSemanticMatch(record, query),\n }))\n .filter((row) => row.score > 0)\n .sort((a, b) => b.score - a.score)\n .slice(0, limit)\n .map((row) => row.record)\n : [];\n\n const byType: Record<string, number> = {};\n for (const row of records) {\n byType[row.observationType] = (byType[row.observationType] || 0) + 1;\n }\n\n return {\n topicId,\n totalObservations: records.length,\n latest,\n semanticMatches,\n byType,\n generatedAt: Date.now(),\n };\n },\n};\n","/**\n * Ontology Handlers — MCP handlers for ontology definition CRUD.\n */\n\nimport { formatSdkResult, getSdkClient, readNumber, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const ontologyHandlers: HandlerModule = {\n async list_ontologies(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.list({\n tenantId: readString(args.tenantId),\n tier: readString(args.tier),\n status: readString(args.status),\n })\n );\n },\n\n async get_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.get({\n id: readString(args.id ?? args.ontologyId),\n ontologyKey: readString(args.ontologyKey),\n tenantId: readString(args.tenantId),\n tier: readString(args.tier),\n status: readString(args.status),\n } as any)\n );\n },\n\n async apply_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.bind({\n ontologyId: readString(args.ontologyId ?? args.id) ?? \"\",\n topicId: readString(args.topicId) ?? \"\",\n })\n );\n },\n\n async match_entity_type(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.match({\n text: readString(args.text) ?? \"\",\n topicId: readString(args.topicId),\n ontologyId: readString(args.ontologyId),\n minScore: readNumber(args.minScore),\n limit: readNumber(args.limit),\n })\n );\n },\n\n async create_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.create({\n ontologyKey: readString(args.ontologyKey) ?? \"\",\n name: readString(args.name) ?? \"\",\n description: readString(args.description),\n tenantId: readString(args.tenantId),\n tier: readString(args.tier) ?? \"platform\",\n parentOntologyId: readString(args.parentOntologyId),\n })\n );\n },\n\n async update_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.update({\n id: readString(args.id) ?? \"\",\n name: readString(args.name),\n description: readString(args.description),\n status: readString(args.status),\n })\n );\n },\n\n async archive_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.archive({\n id: readString(args.id) ?? \"\",\n })\n );\n },\n\n async create_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.createVersion({\n ontologyId: readString(args.ontologyId) ?? \"\",\n version: readString(args.version) ?? \"\",\n entityTypes: Array.isArray(args.entityTypes) ? (args.entityTypes as any[]) : [],\n edgeTypes: Array.isArray(args.edgeTypes) ? (args.edgeTypes as any[]) : [],\n releaseNotes: readString(args.releaseNotes),\n })\n );\n },\n\n async publish_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.publishVersion({\n id: readString(args.id) ?? \"\",\n })\n );\n },\n\n async deprecate_ontology_version(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.deprecateVersion({\n id: readString(args.id) ?? \"\",\n })\n );\n },\n\n async resolve_effective_ontology(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).ontologies.resolveEffective({\n ontologyId: readString(args.ontologyId) ?? \"\",\n })\n );\n },\n};\n","/**\n * Ontology Matching Handlers — MCP handlers for L0 entity type classification,\n * entity discovery, and change-triggered belief review.\n */\n\nimport { ontologyHandlers } from \"./ontologies.js\";\nimport { formatSdkResult, getSdkClient, readNumber, readString } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const ontologyMatchingHandlers: HandlerModule = {\n async match_entity_type(args, ctx) {\n return ontologyHandlers.match_entity_type(args, ctx);\n },\n\n async discover_entity_connections(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.discoverEntityConnections({\n nodeId: readString(args.nodeId) ?? \"\",\n topicId: readString(args.topicId),\n minScore: readNumber(args.minScore),\n limit: readNumber(args.limit),\n })\n );\n },\n\n async trigger_belief_review(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.triggerBeliefReview({\n entityNodeId: readString(args.entityNodeId) ?? \"\",\n changeDescription: readString(args.changeDescription),\n maxQuestions: readNumber(args.maxQuestions),\n })\n );\n },\n};\n","/**\n * Policy Handlers — check_permission, filter_by_permission, manage_write_policy\n */\n\nimport { formatSdkResult, getSdkClient } from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const policyHandlers: HandlerModule = {\n async check_permission(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).policy.checkPermission(args)\n );\n },\n\n async filter_by_permission(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).policy.filterByPermission(args)\n );\n },\n\n async manage_write_policy(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).policy.manageWritePolicy(args)\n );\n },\n};\n","import { evidenceHandlers } from \"./evidence.js\";\nimport {\n asRecord,\n formatSdkResult,\n getSdkClient,\n readBoolean,\n readNumber,\n readString,\n readStringArray,\n} from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const questionHandlers: HandlerModule = {\n async create_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.create({\n topicId: readString(args.topicId),\n text: readString(args.text) ?? \"\",\n priority: readString(args.priority),\n linkedBeliefId: readString(args.linkedBeliefId),\n metadata: asRecord(args.metadata) as any,\n })\n );\n },\n\n async get_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.get(\n readString(args.id ?? args.questionId) ?? \"\"\n )\n );\n },\n\n async list_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.list({\n topicId: readString(args.topicId),\n status: readString(args.status),\n priority: readString(args.priority),\n worktreeId: readString(args.worktreeId),\n limit: readNumber(args.limit),\n cursor: readString(args.cursor),\n })\n );\n },\n\n async answer_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.answer(\n readString(args.id ?? args.questionId) ?? \"\",\n {\n text: readString(args.text) ?? \"\",\n confidence: readString(args.confidence),\n evidenceIds: readStringArray(args.evidenceIds),\n rationale: readString(args.rationale),\n }\n )\n );\n },\n\n async refine_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.refine(\n readString(args.id ?? args.questionId) ?? \"\",\n readString(args.text) ?? \"\",\n readString(args.rationale ?? args.refinementReason)\n )\n );\n },\n\n async update_question_status(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.updateStatus(\n readString(args.id ?? args.questionId) ?? \"\",\n readString(args.status) ?? \"\",\n readString(args.rationale)\n )\n );\n },\n\n async archive_question(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.archive(\n readString(args.id ?? args.questionId) ?? \"\",\n readString(args.reason ?? args.rationale)\n )\n );\n },\n\n async link_evidence_to_question(args, ctx) {\n const result = await evidenceHandlers.link_evidence(\n {\n evidenceId: readString(args.evidenceId) ?? \"\",\n targetId: readString(args.questionId) ?? \"\",\n weight: readNumber(args.relevance),\n rationale: readString(args.rationale),\n },\n ctx\n );\n\n return {\n ...result,\n questionId: readString(args.questionId) ?? result.targetId,\n relevance: readNumber(args.relevance),\n };\n },\n\n async get_high_priority_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.getHighPriority({\n topicId: readString(args.topicId),\n limit: readNumber(args.limit),\n includeAnswered: readBoolean(args.includeAnswered),\n })\n );\n },\n\n async find_missing_questions(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).questions.findMissing({\n topicId: readString(args.topicId) ?? \"\",\n minConfidence: readNumber(args.minConfidence),\n })\n );\n },\n};\n","import { api } from \"../kernelApi.js\";\nimport { adminMutation } from \"../convex-client.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nfunction buildInputData(\n args: Record<string, unknown>\n): Record<string, unknown> | undefined {\n const entries = Object.entries({\n metricData: args.metricData,\n referenceCheckData: args.referenceCheckData,\n marketIndexData: args.marketIndexData,\n temporalData: args.temporalData,\n }).filter(([, value]) => value !== undefined);\n\n return entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\nexport const researchVerificationHandlers: HandlerModule = {\n async evaluate_research_contract(args, ctx) {\n const inputData = buildInputData(args);\n const result = await adminMutation(\n api.epistemicContracts.evaluateContractsForTrigger as any,\n {\n beliefNodeId: args.beliefNodeId,\n trigger:\n typeof args.trigger === \"string\" && args.trigger.length > 0\n ? args.trigger\n : \"event_driven\",\n ...(inputData ? { inputData } : {}),\n authenticatedUserId: ctx.userId,\n }\n );\n\n return result as Record<string, unknown>;\n },\n};\n","import type { ContextPackV1 } from \"@lucern/contracts\";\nimport {\n decodePrefixedId,\n encodePrefixedId,\n} from \"@lucern/contracts\";\nimport {\n type CompileContextCommand,\n type CompileContextPorts,\n type CompileContextPortInput,\n} from \"./ports\";\nimport type { PublicCompiledContext } from \"./public-types\";\n\nexport class ContextCompileError extends Error {\n readonly code: string;\n readonly status: number;\n\n constructor(code: string, message: string, status: number) {\n super(message);\n this.name = \"ContextCompileError\";\n this.code = code;\n this.status = status;\n }\n}\n\nexport function isContextCompileError(\n error: unknown\n): error is ContextCompileError {\n return error instanceof ContextCompileError;\n}\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction cleanNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction cleanBoolean(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction cleanStringArray(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value\n .map((entry) => cleanString(entry))\n .filter((entry): entry is string => Boolean(entry));\n}\n\nfunction prefixId(prefix: string, value: unknown): string {\n const cleaned = cleanString(value);\n if (!cleaned) {\n return `${prefix}_unknown`;\n }\n try {\n const decoded = decodePrefixedId(cleaned);\n if (decoded.prefix === prefix) {\n return cleaned;\n }\n } catch {\n // Fall through and encode raw ids below.\n }\n return encodePrefixedId(prefix, cleaned);\n}\n\nfunction mapSelectedIds(\n value: Record<string, string[]>\n): Record<string, string[]> {\n return {\n invariants: (value.invariants ?? []).map((id) => prefixId(\"bel\", id)),\n activeBeliefs: (value.activeBeliefs ?? []).map((id) => prefixId(\"bel\", id)),\n openQuestions: (value.openQuestions ?? []).map((id) => prefixId(\"que\", id)),\n recentEvidence: (value.recentEvidence ?? []).map((id) => prefixId(\"evi\", id)),\n contradictions: (value.contradictions ?? []).map((id) => prefixId(\"con\", id)),\n };\n}\n\nfunction mapExcludedId(section: string, id: string): string {\n if (section === \"invariants\" || section === \"activeBeliefs\") {\n return prefixId(\"bel\", id);\n }\n if (section === \"openQuestions\") {\n return prefixId(\"que\", id);\n }\n if (section === \"recentEvidence\") {\n return prefixId(\"evi\", id);\n }\n if (section === \"contradictions\") {\n return prefixId(\"con\", id);\n }\n return id;\n}\n\nexport function toPublicCompiledContext(\n pack: ContextPackV1\n): PublicCompiledContext {\n return {\n schemaVersion: pack.schemaVersion,\n topicId: prefixId(\"top\", pack.topicId),\n topicName: pack.topicName,\n scopedTopicIds: (pack.scopedTopicIds ?? []).map((id) => prefixId(\"top\", id)),\n generatedAt: pack.generatedAt,\n ranking: pack.rankingProfile,\n summary: pack.summary as Record<string, unknown>,\n invariants: (pack.invariants ?? []).map((belief) => ({\n beliefId: prefixId(\"bel\", belief.nodeId),\n text: belief.canonicalText,\n confidence: belief.confidence ?? null,\n beliefType: belief.beliefType ?? null,\n score: belief.score,\n ...(belief.justification ? { justification: belief.justification } : {}),\n })),\n activeBeliefs: (pack.activeBeliefs ?? []).map((belief) => ({\n beliefId: prefixId(\"bel\", belief.nodeId),\n text: belief.canonicalText,\n confidence: belief.confidence ?? null,\n beliefType: belief.beliefType ?? null,\n status: belief.status,\n updatedAt: belief.updatedAt ?? null,\n score: belief.score,\n ...(belief.justification ? { justification: belief.justification } : {}),\n })),\n openQuestions: (pack.openQuestions ?? []).map((question) => ({\n questionId: prefixId(\"que\", question.questionId),\n text: question.text,\n status: question.status,\n priority: question.priority,\n updatedAt: question.updatedAt ?? null,\n score: question.score,\n ...(question.justification ? { justification: question.justification } : {}),\n })),\n recentEvidence: (pack.recentEvidence ?? []).map((evidence) => ({\n evidenceId: prefixId(\"evi\", evidence.nodeId),\n text: evidence.canonicalText,\n kind: evidence.kind,\n sourceUrl: evidence.sourceUrl ?? null,\n createdAt: evidence.createdAt ?? null,\n score: evidence.score,\n ...(evidence.justification ? { justification: evidence.justification } : {}),\n })),\n contradictions: (pack.contradictions ?? []).map((contradiction) => ({\n contradictionId: prefixId(\"con\", contradiction.contradictionId),\n severity: contradiction.severity,\n status: contradiction.status,\n description: contradiction.description,\n score: contradiction.score,\n ...(contradiction.justification\n ? { justification: contradiction.justification }\n : {}),\n })),\n ...(pack.relatedEntities\n ? {\n relatedEntities: pack.relatedEntities.map((entity) => ({\n entityId: cleanString(entity.nodeId) ?? \"\",\n entityType: entity.entityType,\n title: entity.title,\n text: cleanString((entity as Record<string, unknown>).canonicalText),\n connectedBeliefCount: entity.connectedBeliefCount,\n connectedEvidenceCount: entity.connectedEvidenceCount,\n score: entity.score,\n ...(entity.metadata ? { metadata: entity.metadata } : {}),\n })),\n }\n : {}),\n contextNarrative: pack.contextNarrative ?? [],\n injectionPolicy: {\n tokenBudget: pack.injectionPolicy.tokenBudget,\n estimatedTokens: pack.injectionPolicy.estimatedTokens,\n sectionBudgets: pack.injectionPolicy.sectionBudgets,\n sectionUsage: pack.injectionPolicy.sectionUsage,\n selected: mapSelectedIds(pack.injectionPolicy.selected),\n ...(pack.injectionPolicy.excludedItems\n ? {\n excludedItems: pack.injectionPolicy.excludedItems.map((item) => ({\n ...item,\n id: mapExcludedId(item.section, item.id),\n })),\n }\n : {}),\n },\n diagnostics: pack.diagnostics as Record<string, unknown>,\n ...(pack.compilationMode ? { compilationMode: pack.compilationMode } : {}),\n ...(pack.failureContext\n ? {\n failureContext: {\n failures: pack.failureContext.failures.map((failure) => ({\n ...failure,\n attemptId: prefixId(\"evi\", failure.attemptId),\n })),\n suppressedIds: pack.failureContext.suppressedIds.map((id) =>\n prefixId(\"evi\", id)\n ),\n },\n }\n : {}),\n ...(pack.deltaReport\n ? {\n deltaReport: {\n changedItems: pack.deltaReport.changedItems.map((item) => ({\n ...item,\n id: mapExcludedId(item.section, item.id),\n })),\n verificationObligations: pack.deltaReport.verificationObligations,\n referencePoint: prefixId(\"wt\", pack.deltaReport.referencePoint),\n },\n }\n : {}),\n ...(pack.appliedWeightOverrides\n ? { appliedWeightOverrides: pack.appliedWeightOverrides }\n : {}),\n };\n}\n\nfunction toCompilePortInput(\n input: CompileContextCommand,\n allowedTopicIds: string[]\n): CompileContextPortInput {\n const topicId = cleanString(input.topicId) ?? cleanString(input.projectId);\n if (!topicId) {\n throw new ContextCompileError(\n \"INVALID_REQUEST\",\n \"topicId is required.\",\n 400\n );\n }\n\n const query = cleanString(input.query);\n const ranking = cleanString(input.ranking) ?? cleanString(input.rankingProfile);\n const worktreeId = cleanString(input.worktreeId);\n const sessionId = cleanString(input.sessionId);\n\n return {\n topicId,\n projectId: topicId,\n ...(query ? { query } : {}),\n ...(cleanNumber(input.budget) !== undefined\n ? { budget: cleanNumber(input.budget) }\n : cleanNumber(input.tokenBudget) !== undefined\n ? { budget: cleanNumber(input.tokenBudget) }\n : {}),\n ...(ranking ? { ranking: ranking as CompileContextPortInput[\"ranking\"] } : {}),\n ...(cleanNumber(input.limit) !== undefined ? { limit: cleanNumber(input.limit) } : {}),\n ...(cleanNumber(input.maxDepth) !== undefined\n ? { maxDepth: cleanNumber(input.maxDepth) }\n : {}),\n ...(cleanBoolean(input.includeEntities) !== undefined\n ? { includeEntities: cleanBoolean(input.includeEntities) }\n : {}),\n ...(cleanString(input.mode) ? { mode: input.mode } : {}),\n ...(cleanBoolean(input.includeFailures) !== undefined\n ? { includeFailures: cleanBoolean(input.includeFailures) }\n : {}),\n ...(worktreeId ? { worktreeId } : {}),\n ...(sessionId ? { sessionId } : {}),\n ...(Array.isArray(input.packWeightOverrides) &&\n input.packWeightOverrides.length > 0\n ? { packWeightOverrides: input.packWeightOverrides }\n : {}),\n allowedTopicIds,\n };\n}\n\nexport async function compileContext(\n ports: CompileContextPorts,\n input: CompileContextCommand\n): Promise<PublicCompiledContext> {\n const topicId = cleanString(input.topicId) ?? cleanString(input.projectId);\n if (!topicId) {\n throw new ContextCompileError(\n \"INVALID_REQUEST\",\n \"topicId is required.\",\n 400\n );\n }\n\n const actorPrincipalId = cleanString(input.actorPrincipalId);\n if (ports.requireAuth !== false && !actorPrincipalId) {\n throw new ContextCompileError(\n \"AUTHENTICATION_REQUIRED\",\n \"Authentication is required to compile context.\",\n 401\n );\n }\n\n let allowedTopicIds = cleanStringArray(input.allowedTopicIds);\n if (ports.policy && actorPrincipalId) {\n const readableRoots = await ports.policy.filterReadableTopicIds({\n topicIds: [topicId],\n actorPrincipalId,\n traceId: input.policyTraceId,\n });\n if (!readableRoots.includes(topicId)) {\n throw new ContextCompileError(\n \"FORBIDDEN\",\n \"Access denied to compile context for this topic.\",\n 403\n );\n }\n const listedTopics = await ports.policy.listReadableTopicIds({\n actorPrincipalId,\n traceId: input.policyTraceId,\n });\n allowedTopicIds = listedTopics.length > 0 ? listedTopics : [topicId];\n }\n\n const compiled = await ports.compiler.compile(\n toCompilePortInput(input, allowedTopicIds.length > 0 ? allowedTopicIds : [topicId])\n );\n return toPublicCompiledContext(compiled);\n}\n","/**\n * Universal scope workflow handlers.\n */\n\nimport { toPublicCompiledContext } from \"@lucern/server-core/domain/context/compile\";\nimport {\n resolveBeliefTopicId,\n resolveTopicForWrite,\n validateTopicOrNull,\n} from \"@lucern/server-core/topic-resolver\";\nimport { readTopicIdArg, resolveTopicScopeId } from \"../scope.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readBoolean,\n readNumber,\n readString,\n readStringArray,\n} from \"./sdk.js\";\nimport type { HandlerModule } from \"./types.js\";\n\nexport const scopeContextHandlers: HandlerModule = {\n async compile_context(args, ctx) {\n const requestedScope = readTopicIdArg(args);\n if (!requestedScope) {\n throw new Error(\"[compile_context] topicId is required.\");\n }\n\n const topicId = await resolveTopicScopeId(requestedScope, \"compile_context\");\n if (\n ctx.sessionType === \"user\" &&\n Array.isArray(ctx.allowedTopics) &&\n (!ctx.allowedTopics.includes(topicId) || ctx.allowedTopics.length === 0)\n ) {\n throw new Error(\n `[compile_context] Access denied to compile context for topic ${topicId}.`\n );\n }\n\n const compiled = formatSdkResult(\n await getSdkClient(ctx).context.compile(topicId, {\n query: readString(args.query),\n budget: readNumber(args.budget ?? args.tokenBudget),\n ranking: readString(args.ranking ?? args.rankingProfile),\n limit: readNumber(args.limit),\n maxDepth: readNumber(args.maxDepth),\n includeEntities: readBoolean(args.includeEntities),\n mode: readString(args.mode),\n includeFailures: readBoolean(args.includeFailures),\n worktreeId: readString(args.worktreeId),\n sessionId: readString(args.sessionId),\n packWeightOverrides: Array.isArray(args.packWeightOverrides)\n ? (args.packWeightOverrides as any[])\n : undefined,\n })\n );\n\n return toPublicCompiledContext(compiled as any);\n },\n\n async record_scope_learning(args, ctx) {\n const explicitTopicId = readString(readTopicIdArg(args));\n const explicitTopic = await validateTopicOrNull(ctx, explicitTopicId);\n const linkedBeliefTopicId = await resolveBeliefTopicId(\n ctx,\n readString(args.linkedBeliefNodeId)\n );\n if (!explicitTopic && explicitTopicId) {\n console.warn(\n `[topic-resolver] Explicit topicId \"${explicitTopicId}\" is invalid or stale. Falling back to topic inference for record_scope_learning.`\n );\n }\n const resolvedTopic = explicitTopic\n ? explicitTopic\n : linkedBeliefTopicId\n ? {\n topicId: linkedBeliefTopicId,\n path: [linkedBeliefTopicId],\n created: false,\n score: 1,\n }\n : await resolveTopicForWrite(ctx, {\n topicHint: explicitTopicId,\n workspaceId: readString(args.workspaceId) ?? ctx.workspaceId,\n summary: readString(args.summary) ?? \"\",\n tags: readStringArray(args.tags),\n touchedPaths: readStringArray(args.touchedPaths),\n sourceRef: readString(args.sourceRef),\n sourceKind: readString(args.sourceKind),\n autoCreate: explicitTopicId ? false : true,\n });\n return formatSdkResult(\n await getSdkClient(ctx).context.recordScopeLearning({\n ...args,\n topicId: resolvedTopic.topicId,\n })\n );\n },\n\n async seed_belief_lattice(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.seedBeliefLattice(args)\n );\n },\n\n async get_lattice_coverage(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).context.getLatticeCoverage(args)\n );\n },\n};\n","import type { HandlerModule } from \"./types.js\";\nimport {\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n} from \"./sdk.js\";\n\nexport const taskHandlers: HandlerModule = {\n async create_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).tasks.create({\n topicId: readString(args.topicId ?? args.projectId),\n title: readString(args.title) ?? \"\",\n description: readString(args.description),\n taskType: readString(args.taskType) as any,\n priority: readString(args.priority) as any,\n linkedBeliefId: readString(args.linkedBeliefId),\n linkedQuestionId: readString(args.linkedQuestionId),\n linkedWorktreeId: readString(args.linkedWorktreeId),\n })\n );\n },\n\n async complete_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).tasks.complete(\n readString(args.taskId ?? args.id) ?? \"\",\n {\n outputSummary: readString(args.outputSummary) ?? \"\",\n }\n )\n );\n },\n\n async update_task(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).tasks.update(\n readString(args.taskId ?? args.id) ?? \"\",\n {\n title: readString(args.title),\n description: readString(args.description),\n priority: readString(args.priority) as any,\n status: readString(args.status) as any,\n linkedBeliefId: readString(args.linkedBeliefId),\n linkedQuestionId: readString(args.linkedQuestionId),\n linkedWorktreeId: readString(args.linkedWorktreeId),\n }\n )\n );\n },\n\n async list_tasks(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).tasks.list({\n topicId: readString(args.topicId ?? args.projectId),\n worktreeId:\n readString(args.worktreeId) ?? readString(args.linkedWorktreeId),\n status: readString(args.status),\n limit: readNumber(args.limit),\n })\n );\n },\n};\n","import { resolveTopicIdForWrite } from \"@lucern/server-core/topic-resolver\";\nimport type { HandlerModule } from \"./types.js\";\nimport {\n asRecord,\n formatSdkResult,\n getSdkClient,\n readNumber,\n readString,\n readStringArray,\n} from \"./sdk.js\";\n\nexport const worktreeHandlers: HandlerModule = {\n async add_worktree(args, ctx) {\n const explicitTopicId = readString(args.topicId ?? args.projectId);\n const title = readString(args.title) ?? \"\";\n const objective = readString(args.objective);\n const hypothesis = readString(args.hypothesis);\n const resolved = await resolveTopicIdForWrite(ctx, {\n topicId: explicitTopicId,\n topicHint: explicitTopicId,\n workspaceId: readString(args.workspaceId) ?? ctx.workspaceId,\n summary: objective ?? hypothesis ?? title,\n tags: [\n ...(readStringArray(args.tags) ?? []),\n ...(readString(args.track) ? [readString(args.track) as string] : []),\n ...(readString(args.gate) ? [readString(args.gate) as string] : []),\n ],\n sourceRef: title,\n sourceKind: \"worktree\",\n });\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.add({\n title,\n topicId: resolved.topicId,\n objective,\n hypothesis,\n beliefIds:\n readStringArray(args.beliefIds) ?? readStringArray(args.beliefs),\n autoShape:\n typeof args.autoShape === \"boolean\" ? args.autoShape : undefined,\n domainPackId: readString(args.domainPackId),\n executionOrder: readNumber(args.executionOrder),\n dependsOn: readStringArray(args.dependsOn),\n blocks: readStringArray(args.blocks),\n gate: readString(args.gate),\n proofArtifacts: Array.isArray(args.proofArtifacts)\n ? args.proofArtifacts\n : undefined,\n staffingHint: readString(args.staffingHint),\n lastReconciledAt: readNumber(args.lastReconciledAt),\n autoFixPolicy:\n args.autoFixPolicy &&\n typeof args.autoFixPolicy === \"object\" &&\n !Array.isArray(args.autoFixPolicy)\n ? (args.autoFixPolicy as any)\n : undefined,\n })\n );\n },\n\n async list_worktrees(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.list({\n topicId: readString(args.topicId ?? args.projectId) ?? \"\",\n status: readString(args.status) as any,\n limit: readNumber(args.limit),\n })\n );\n },\n\n async activate_worktree(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.activate(\n readString(args.worktreeId ?? args.id) ?? \"\"\n )\n );\n },\n\n async update_worktree_metadata(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.updateMetadata({\n worktreeId: readString(args.worktreeId ?? args.id) ?? \"\",\n objective: readString(args.objective),\n hypothesis: readString(args.hypothesis),\n rationale: readString(args.rationale),\n track: readString(args.track),\n trackPosition: readNumber(args.trackPosition),\n executionBand: readNumber(args.executionBand),\n executionOrder: readNumber(args.executionOrder),\n dependsOn: readStringArray(args.dependsOn),\n blocks: readStringArray(args.blocks),\n gate: readString(args.gate),\n status: readString(args.status),\n topicId: readString(args.topicId),\n additionalTopicIds: readStringArray(args.additionalTopicIds),\n proofArtifacts: Array.isArray(args.proofArtifacts)\n ? args.proofArtifacts\n : undefined,\n staffingHint: readString(args.staffingHint),\n lastReconciledAt: readNumber(args.lastReconciledAt),\n autoFixPolicy:\n args.autoFixPolicy &&\n typeof args.autoFixPolicy === \"object\" &&\n !Array.isArray(args.autoFixPolicy)\n ? args.autoFixPolicy\n : undefined,\n } as any)\n );\n },\n\n async merge(args, ctx) {\n const record = asRecord(args);\n const outcomes = Array.isArray(record.outcomes) ? record.outcomes : [];\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.merge(\n readString(record.worktreeId ?? record.id) ?? \"\",\n {\n summary: readString(record.summary),\n outcomes: outcomes.map((entry) => {\n const row = asRecord(entry);\n return {\n beliefId: readString(row.beliefId) ?? \"\",\n confidence: readNumber(row.confidence) ?? Number.NaN,\n rationale: readString(row.rationale) ?? \"\",\n };\n }),\n }\n )\n );\n },\n\n async list_all_worktrees(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.listAll({\n status: readString(args.status) as any,\n track: readString(args.track),\n executionBand: readNumber(args.executionBand),\n limit: readNumber(args.limit),\n })\n );\n },\n\n async pipeline_snapshot(args, ctx) {\n const topicId = readString(args.topicId) ?? \"\";\n if (!topicId) {\n return { error: \"topicId is required\" };\n }\n\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.pipelineSnapshot(topicId)\n );\n },\n\n async push(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.push(\n readString(args.worktreeId ?? args.id) ?? \"\",\n {\n targetContext: readString(args.targetContext) ?? \"\",\n beliefIds: readStringArray(args.beliefIds),\n }\n )\n );\n },\n\n async open_pull_request(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.openPullRequest(\n readString(args.worktreeId ?? args.id) ?? \"\",\n {\n summary: readString(args.summary) ?? \"\",\n reviewers: readStringArray(args.reviewers),\n }\n )\n );\n },\n\n async update_worktree_targets(args, ctx) {\n return formatSdkResult(\n await getSdkClient(ctx).worktrees.updateTargets({\n worktreeId: readString(args.worktreeId ?? args.id) ?? \"\",\n addBeliefIds: readStringArray(args.addBeliefIds),\n addQuestionIds: readStringArray(args.addQuestionIds),\n removeBeliefIds: readStringArray(args.removeBeliefIds),\n removeQuestionIds: readStringArray(args.removeQuestionIds),\n })\n );\n },\n};\n","/**\n * Handler Index — barrel file combining all handler modules into a single map.\n *\n * Each handler module exports a HandlerModule (Record<string, ToolHandler>)\n * keyed by MCP tool name. buildHandlerMap() merges them into a single lookup.\n */\n\nimport { answerHandlers } from \"./answers.js\";\nimport { autoBranchingHandlers } from \"./auto-branching.js\";\nimport { beliefHandlers } from \"./beliefs.js\";\nimport { bootstrapHandlers } from \"./bootstrap.js\";\nimport { codingHandlers } from \"./coding.js\";\nimport { contractHandlers } from \"./contracts.js\";\nimport { contradictionHandlers } from \"./contradictions.js\";\nimport { coordinationHandlers } from \"./coordination.js\";\nimport { coverageHandlers } from \"./coverage.js\";\nimport { discoveryHandlers } from \"./discovery.js\";\nimport { edgeHandlers } from \"./edges.js\";\nimport { engineeringVerificationHandlers } from \"./engineering-verification.js\";\nimport { evidenceHandlers } from \"./evidence.js\";\nimport { graphHandlers } from \"./graph.js\";\nimport { generatedFunctionSurfaceHandlers } from \"./generated/functionSurface.js\";\nimport { identityHandlers } from \"./identity.js\";\nimport { intelligenceHandlers } from \"./intelligence.js\";\nimport { judgmentHandlers } from \"./judgments.js\";\nimport { lensHandlers } from \"./lenses.js\";\nimport { lineageHandlers } from \"./lineage.js\";\nimport { observationHandlers } from \"./observations.js\";\nimport { ontologyHandlers } from \"./ontologies.js\";\nimport { ontologyMatchingHandlers } from \"./ontology-matching.js\";\nimport { policyHandlers } from \"./policy.js\";\nimport { questionHandlers } from \"./questions.js\";\nimport { researchVerificationHandlers } from \"./research-verification.js\";\nimport { scopeContextHandlers } from \"./scope-context.js\";\nimport { taskHandlers } from \"./tasks.js\";\nimport { topicHandlers } from \"./topics.js\";\nimport type { AuthenticatedHandler } from \"./types.js\";\nimport { worktreeHandlers } from \"./worktrees.js\";\n\n/**\n * Build the complete handler map for all MCP tools.\n */\nexport function buildHandlerMap(): Record<string, AuthenticatedHandler> {\n return {\n ...evidenceHandlers,\n ...questionHandlers,\n ...answerHandlers,\n ...worktreeHandlers,\n ...lensHandlers,\n ...edgeHandlers,\n ...judgmentHandlers,\n ...graphHandlers,\n ...identityHandlers,\n ...lineageHandlers,\n ...intelligenceHandlers,\n ...researchVerificationHandlers,\n ...taskHandlers,\n ...topicHandlers,\n ...contradictionHandlers,\n ...contractHandlers,\n ...engineeringVerificationHandlers,\n ...policyHandlers,\n ...observationHandlers,\n ...scopeContextHandlers,\n ...codingHandlers,\n ...coordinationHandlers,\n ...coverageHandlers,\n ...discoveryHandlers,\n ...bootstrapHandlers,\n ...autoBranchingHandlers,\n ...ontologyHandlers,\n ...ontologyMatchingHandlers,\n ...beliefHandlers,\n ...generatedFunctionSurfaceHandlers,\n };\n}\n","/**\n * Write Policy — S2-13K Graph Compounding\n *\n * Policy enforcement for MCP mutation tools.\n * Queries Convex write policies and tracks per-session write counts.\n */\n\nimport { api } from \"./kernelApi.js\";\nimport { adminQuery } from \"./convex-client.js\";\nimport type { AuthContext } from \"./handlers/types.js\";\n\n// ── Tool Category Classification ─────────────────────────────────────────────\n\nconst MUTATION_TOOL_NAMES = new Set([\n \"create_belief\",\n \"refine_belief\",\n \"modulate_confidence\",\n \"fork_belief\",\n \"archive_belief\",\n \"create_evidence\",\n \"link_evidence\",\n \"add_evidence\",\n \"link_evidence_to_belief\",\n \"record_scope_learning\",\n \"record_attempt\",\n \"create_question\",\n \"answer_question\",\n \"refine_question\",\n \"update_question_status\",\n \"archive_question\",\n \"link_evidence_to_question\",\n \"create_answer\",\n \"create_edge\",\n \"flag_contradiction\",\n \"add_worktree\",\n \"merge\",\n \"activate_worktree\",\n \"update_worktree_metadata\",\n \"update_worktree_targets\",\n \"create_lens\",\n \"apply_lens_to_topic\",\n \"remove_lens_from_topic\",\n \"create_task\",\n \"complete_task\",\n \"record_judgment\",\n \"register_session\",\n \"heartbeat_session\",\n \"end_session\",\n \"send_agent_message\",\n \"broadcast_message\",\n \"claim_files\",\n \"create_topic\",\n \"open_pull_request\",\n \"apply_auto_branching\",\n \"seed_belief_lattice\",\n \"trigger_belief_review\",\n \"create_epistemic_contract\",\n \"evaluate_contract\",\n \"create_ontology\",\n \"update_ontology\",\n \"archive_ontology\",\n \"create_ontology_version\",\n \"publish_ontology_version\",\n \"deprecate_ontology_version\",\n \"manage_write_policy\",\n]);\n\n/**\n * Check if a tool name is a mutation (write) tool.\n */\nexport function isMutationTool(toolName: string): boolean {\n return MUTATION_TOOL_NAMES.has(toolName);\n}\n\n// ── Per-Session Write Counter ────────────────────────────────────────────────\n\ntype WriteRecord = {\n toolName: string;\n timestamp: number;\n topicId?: string;\n};\n\nconst sessionWrites: WriteRecord[] = [];\nconst sessionWritesBySession = new Map<string, WriteRecord[]>();\n\n/**\n * Record a write operation for the current session.\n */\nexport function recordWrite(\n toolName: string,\n topicId?: string,\n sessionId = \"default\"\n): void {\n const record = {\n toolName,\n timestamp: Date.now(),\n topicId,\n };\n sessionWrites.push(record);\n const existing = sessionWritesBySession.get(sessionId) ?? [];\n existing.push(record);\n sessionWritesBySession.set(sessionId, existing);\n}\n\n/**\n * Get write statistics for the current session.\n */\nexport function getSessionWriteStats(): {\n totalWrites: number;\n byCategory: Record<string, number>;\n byTool: Record<string, number>;\n firstWrite: number | null;\n lastWrite: number | null;\n} {\n return getSessionWriteStatsForSession(\"default\");\n}\n\nexport function getSessionWriteStatsForSession(sessionId: string): {\n totalWrites: number;\n byCategory: Record<string, number>;\n byTool: Record<string, number>;\n firstWrite: number | null;\n lastWrite: number | null;\n} {\n const records = sessionWritesBySession.get(sessionId) ?? [];\n const byCategory: Record<string, number> = {};\n const byTool: Record<string, number> = {};\n const lastWrite = records.at(-1)?.timestamp ?? null;\n\n for (const record of records) {\n byTool[record.toolName] = (byTool[record.toolName] ?? 0) + 1;\n }\n\n return {\n totalWrites: records.length,\n byCategory,\n byTool,\n firstWrite: records.length > 0 ? records[0].timestamp : null,\n lastWrite,\n };\n}\n\n// ── Policy Enforcement ───────────────────────────────────────────────────────\n\ntype PolicyCheckResult = {\n allowed: boolean;\n permission: string;\n rationale?: string;\n maxWritesPerSession?: number;\n toolCategory?: string | null;\n policy?: Record<string, unknown> | null;\n explanation?: {\n summary?: string;\n matchedReasonCode?: string;\n steps?: Array<{\n stage?: string;\n outcome?: string;\n reasonCode?: string;\n detail?: string;\n }>;\n [key: string]: unknown;\n };\n reason: string;\n};\n\nfunction buildRateLimitExplanation(args: {\n toolName: string;\n toolCategory?: string | null;\n authRole: string;\n topicId?: string;\n maxWritesPerSession: number;\n currentCount: number;\n policy?: Record<string, unknown> | null;\n}) {\n const summary = `Denied ${args.toolName}: session write limit ${args.currentCount}/${args.maxWritesPerSession} reached for the matched write policy.`;\n return {\n summary,\n matchedReasonCode: \"RATE_LIMIT_EXCEEDED\",\n toolName: args.toolName,\n toolCategory: args.toolCategory ?? null,\n role: args.authRole,\n topicId: args.topicId ?? null,\n policy: args.policy ?? null,\n steps: [\n {\n stage: \"policy_lookup\",\n outcome: \"passed\",\n reasonCode: \"WRITE_POLICY_MATCHED\",\n detail: \"A matching write policy was found before evaluating the session limit.\",\n },\n {\n stage: \"rate_limit\",\n outcome: \"failed\",\n reasonCode: \"RATE_LIMIT_EXCEEDED\",\n detail: `This session has already recorded ${args.currentCount} writes and the matched rule caps it at ${args.maxWritesPerSession}.`,\n },\n {\n stage: \"decision\",\n outcome: \"failed\",\n reasonCode: \"RATE_LIMIT_EXCEEDED\",\n detail: summary,\n },\n ],\n };\n}\n\n/**\n * Check if a mutation tool call is allowed by write policy.\n *\n * Resolution order:\n * 1. Topic-specific + role match\n * 2. Global (no topic) + role match\n * 3. No matching policy → allow (open by default)\n *\n * Also checks per-session write limits if policy specifies maxWritesPerSession.\n */\nexport async function checkWritePolicy(\n toolName: string,\n topicId: string | undefined,\n authCtx: AuthContext\n): Promise<PolicyCheckResult> {\n // Non-mutation tools always pass\n if (!isMutationTool(toolName)) {\n return { allowed: true, permission: \"allow\", reason: \"read_only_tool\" };\n }\n\n try {\n const result = await adminQuery((api.mcpWritePolicy as any).checkAccess, {\n topicId: topicId ?? undefined,\n role: authCtx.role,\n toolName,\n });\n\n if (!result) {\n return {\n allowed: true,\n permission: \"allow\",\n toolCategory: null,\n policy: null,\n reason: \"no_policy_response\",\n };\n }\n\n // Check rate limit\n if (\n result.allowed &&\n typeof result.maxWritesPerSession === \"number\" &&\n Number.isFinite(result.maxWritesPerSession)\n ) {\n const currentCount =\n sessionWritesBySession.get(authCtx.sessionId)?.length ?? 0;\n if (currentCount >= result.maxWritesPerSession) {\n return {\n allowed: false,\n permission: \"deny\",\n rationale: `Session write limit reached (${currentCount}/${result.maxWritesPerSession})`,\n maxWritesPerSession: result.maxWritesPerSession,\n toolCategory:\n typeof result.toolCategory === \"string\" ? result.toolCategory : null,\n policy:\n result.policy && typeof result.policy === \"object\"\n ? (result.policy as Record<string, unknown>)\n : null,\n explanation: buildRateLimitExplanation({\n toolName,\n toolCategory:\n typeof result.toolCategory === \"string\" ? result.toolCategory : null,\n authRole: authCtx.role,\n topicId,\n maxWritesPerSession: result.maxWritesPerSession,\n currentCount,\n policy:\n result.policy && typeof result.policy === \"object\"\n ? (result.policy as Record<string, unknown>)\n : null,\n }),\n reason: \"rate_limit_exceeded\",\n };\n }\n }\n\n return result as PolicyCheckResult;\n } catch (err) {\n // Policy check failure → allow (fail-open for write policies)\n // This ensures the compounding loop isn't blocked by infrastructure issues.\n console.error(\n `[write-policy] Policy check failed for ${toolName}: ${err instanceof Error ? err.message : err}. Allowing (fail-open).`\n );\n return {\n allowed: true,\n permission: \"allow\",\n toolCategory: null,\n policy: null,\n explanation: {\n summary:\n \"Allowed because write-policy evaluation failed and the runtime fell back to fail-open behavior.\",\n matchedReasonCode: \"WRITE_POLICY_CHECK_ERROR\",\n steps: [\n {\n stage: \"policy_lookup\",\n outcome: \"failed\",\n reasonCode: \"WRITE_POLICY_CHECK_ERROR\",\n detail:\n err instanceof Error ? err.message : \"Unknown policy evaluation error.\",\n },\n {\n stage: \"decision\",\n outcome: \"bypassed\",\n reasonCode: \"WRITE_POLICY_CHECK_ERROR\",\n detail:\n \"Write-policy infrastructure error did not block the mutation because this runtime is fail-open on evaluation errors.\",\n },\n ],\n },\n reason: \"policy_check_error\",\n };\n }\n}\n","/**\n * Credential Resolution — Battle-proof credential loading for the Lucern MCP.\n *\n * Resolution order (first match wins):\n * 1. process.env.LUCERN_API_KEY (set via .mcp.json env, shell, or CI)\n * 2. ~/.lucern/credentials (persistent, git-safe credential store)\n * 3. process.env.LUCERN_CONVEX_URL + LUCERN_DEPLOY_KEY (direct, advanced)\n *\n * NO .env.lucern. That file lives in a git repo and can be destroyed by\n * stash, checkout, or branch operations. Credentials belong in ~/.lucern/.\n *\n * The `lucern init` command writes credentials to ~/.lucern/credentials.\n * After that, the MCP server works with zero repo-level config.\n */\n\nimport { createHash } from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport { logMcpInfo } from \"./logging.js\";\n\n// ── Types ────────────────────────────────────────────────────────────────────\n\nexport type EnvCredentials = { url: string; key: string };\nexport type UnifiedPayload = { dev: EnvCredentials; prod?: EnvCredentials };\ntype LegacyPayload = { url: string; key: string };\n\n// ── Constants ────────────────────────────────────────────────────────────────\n\nconst LUCERN_HOME = path.join(os.homedir(), \".lucern\");\nconst CREDENTIALS_FILE = path.join(LUCERN_HOME, \"credentials\");\n\nexport { LUCERN_HOME, CREDENTIALS_FILE };\n\n// ── API Key Decode ───────────────────────────────────────────────────────────\n\nexport function decodeApiKey(\n apiKey: string,\n prefix: string\n): { unified: UnifiedPayload } | { legacy: LegacyPayload } | null {\n if (!apiKey.startsWith(prefix)) {\n return null;\n }\n try {\n const payload = apiKey.slice(prefix.length);\n const b64 = payload.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const json = Buffer.from(b64, \"base64\").toString(\"utf-8\");\n const parsed = JSON.parse(json);\n\n // Unified format (v2): { dev: { url, key }, prod?: { url, key } }\n if (\n parsed.dev &&\n typeof parsed.dev.url === \"string\" &&\n typeof parsed.dev.key === \"string\"\n ) {\n const result: UnifiedPayload = { dev: parsed.dev };\n if (\n parsed.prod &&\n typeof parsed.prod.url === \"string\" &&\n typeof parsed.prod.key === \"string\"\n ) {\n result.prod = parsed.prod;\n }\n return { unified: result };\n }\n\n // Legacy format (v1): { url, key }\n if (typeof parsed.url === \"string\" && typeof parsed.key === \"string\") {\n return { legacy: { url: parsed.url, key: parsed.key } };\n }\n\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Select the right credentials from a unified key based on LUCERN_ENV.\n */\nexport function selectEnvironment(payload: UnifiedPayload): EnvCredentials {\n const env = (process.env.LUCERN_ENV || \"development\").toLowerCase();\n if (env === \"production\" && payload.prod) {\n return payload.prod;\n }\n if (env === \"production\" && !payload.prod) {\n logMcpInfo(\n \"[lucern] LUCERN_ENV=production but key has no prod credentials. Falling back to dev.\"\n );\n }\n return payload.dev;\n}\n\n// ── API Key Encode ───────────────────────────────────────────────────────────\n\nexport function encodeLucernApiKey(\n dev: EnvCredentials,\n prod?: EnvCredentials\n): string {\n const payload: UnifiedPayload = { dev };\n if (prod) {\n payload.prod = prod;\n }\n return `luc_${Buffer.from(JSON.stringify(payload)).toString(\"base64url\")}`;\n}\n\nexport function encodeStackApiKey(\n dev: EnvCredentials,\n prod?: EnvCredentials\n): string {\n const payload: UnifiedPayload = { dev };\n if (prod) {\n payload.prod = prod;\n }\n return `stk_${Buffer.from(JSON.stringify(payload)).toString(\"base64url\")}`;\n}\n\n// ── API Key Hash ────────────────────────────────────────────────────────────\n\n/**\n * Compute SHA-256 hash of a raw API key for MC validation lookup.\n * The MCP server hashes its luc_/stk_ key and sends the hash to MC,\n * which compares against stored hashes (never sees the raw key).\n */\nexport function hashApiKey(apiKey: string): string {\n return createHash(\"sha256\").update(apiKey).digest(\"hex\");\n}\n\n// ── Credential Store ─────────────────────────────────────────────────────────\n\n/**\n * Read KEY=VALUE pairs from a credentials file.\n * Strips quotes, ignores comments and blank lines.\n */\nfunction parseCredentialsFile(filePath: string): Record<string, string> {\n if (!fs.existsSync(filePath)) {\n return {};\n }\n\n const result: Record<string, string> = {};\n const lines = fs.readFileSync(filePath, \"utf-8\").split(\"\\n\");\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith(\"#\")) {\n continue;\n }\n const eqIdx = trimmed.indexOf(\"=\");\n if (eqIdx < 1) {\n continue;\n }\n const key = trimmed.slice(0, eqIdx).trim();\n let val = trimmed.slice(eqIdx + 1).trim();\n if (\n (val.startsWith('\"') && val.endsWith('\"')) ||\n (val.startsWith(\"'\") && val.endsWith(\"'\"))\n ) {\n val = val.slice(1, -1);\n }\n result[key] = val;\n }\n return result;\n}\n\n/**\n * Write credentials to ~/.lucern/credentials.\n * Creates ~/.lucern/ if it doesn't exist.\n */\nexport function writeCredentials(creds: Record<string, string>): void {\n if (!fs.existsSync(LUCERN_HOME)) {\n fs.mkdirSync(LUCERN_HOME, { recursive: true, mode: 0o700 });\n }\n\n // Merge with existing credentials (don't overwrite keys we're not setting)\n const existing = parseCredentialsFile(CREDENTIALS_FILE);\n const merged = { ...existing, ...creds };\n\n const lines = [\n \"# Lucern credentials — managed by `lucern init`\",\n \"# This file is outside any git repo. Git operations cannot destroy it.\",\n \"\",\n ];\n\n for (const [key, val] of Object.entries(merged)) {\n lines.push(`${key}=${val}`);\n }\n\n fs.writeFileSync(CREDENTIALS_FILE, `${lines.join(\"\\n\")}\\n`, {\n mode: 0o600, // Owner read/write only\n });\n}\n\n// ── Credential Resolution ────────────────────────────────────────────────────\n\n/**\n * Resolve LUCERN_API_KEY from the credential chain.\n * Sets process.env vars so the rest of the server can use them.\n *\n * Resolution order:\n * 1. process.env.LUCERN_API_KEY (already set via .mcp.json, shell, CI)\n * 2. ~/.lucern/credentials file\n * 3. process.env.LUCERN_CONVEX_URL + LUCERN_DEPLOY_KEY (direct)\n */\nexport function resolveCredentials(): {\n lucernResolved: boolean;\n stackResolved: boolean;\n mcResolved: boolean;\n source: string;\n rawLucernApiKey?: string;\n rawStackApiKey?: string;\n rawUserToken?: string;\n} {\n // Already fully configured — skip\n if (process.env.LUCERN_CONVEX_URL && process.env.LUCERN_DEPLOY_KEY) {\n return {\n lucernResolved: true,\n stackResolved: !!process.env.STACK_CONVEX_URL,\n mcResolved: !!(process.env.MC_CONVEX_URL && process.env.MC_DEPLOY_KEY),\n source: \"env\",\n rawLucernApiKey: process.env.LUCERN_API_KEY,\n rawStackApiKey: process.env.STACK_API_KEY,\n rawUserToken: process.env.LUCERN_USER_TOKEN,\n };\n }\n\n const lucernEnv = process.env.LUCERN_ENV || \"development\";\n let source = \"none\";\n\n // --- Source 1: process.env (already set) ---\n let lucernApiKey = process.env.LUCERN_API_KEY;\n let stackApiKey = process.env.STACK_API_KEY;\n\n if (lucernApiKey) {\n source = \"env\";\n }\n\n // --- Resolve user token (per-user identity for MCP sessions) ---\n let userToken = process.env.LUCERN_USER_TOKEN;\n\n // --- Source 2: ~/.lucern/credentials ---\n if (lucernApiKey) {\n // Source 1 matched — still check credentials file for user token + JWKS\n const creds = parseCredentialsFile(CREDENTIALS_FILE);\n if (creds.LUCERN_USER_TOKEN && !userToken) {\n userToken = creds.LUCERN_USER_TOKEN;\n process.env.LUCERN_USER_TOKEN = userToken;\n }\n const lucernEnvLocal = (\n process.env.LUCERN_ENV || \"development\"\n ).toLowerCase();\n if (\n creds.CLERK_JWKS_URL &&\n !process.env.CLERK_JWKS_URL &&\n lucernEnvLocal === \"development\"\n ) {\n process.env.CLERK_JWKS_URL = creds.CLERK_JWKS_URL;\n }\n } else {\n const creds = parseCredentialsFile(CREDENTIALS_FILE);\n if (creds.LUCERN_API_KEY) {\n lucernApiKey = creds.LUCERN_API_KEY;\n process.env.LUCERN_API_KEY = lucernApiKey;\n source = CREDENTIALS_FILE;\n }\n if (creds.STACK_API_KEY && !stackApiKey) {\n stackApiKey = creds.STACK_API_KEY;\n process.env.STACK_API_KEY = stackApiKey;\n }\n if (creds.LUCERN_ENV && !process.env.LUCERN_ENV) {\n process.env.LUCERN_ENV = creds.LUCERN_ENV;\n }\n if (creds.LUCERN_USER_TOKEN && !userToken) {\n userToken = creds.LUCERN_USER_TOKEN;\n process.env.LUCERN_USER_TOKEN = userToken;\n }\n // CLERK_JWKS_URL override — only allowed in development\n const lucernEnvLocal = (\n process.env.LUCERN_ENV || \"development\"\n ).toLowerCase();\n if (\n creds.CLERK_JWKS_URL &&\n !process.env.CLERK_JWKS_URL &&\n lucernEnvLocal === \"development\"\n ) {\n process.env.CLERK_JWKS_URL = creds.CLERK_JWKS_URL;\n }\n }\n\n if (source !== \"none\") {\n logMcpInfo(`[lucern] Credentials from ${source} (LUCERN_ENV=${lucernEnv})`);\n }\n\n // --- Decode LUCERN_API_KEY ---\n let lucernResolved = false;\n if (lucernApiKey) {\n const decoded = decodeApiKey(lucernApiKey, \"luc_\");\n if (decoded && \"unified\" in decoded) {\n const creds = selectEnvironment(decoded.unified);\n process.env.LUCERN_CONVEX_URL = creds.url;\n process.env.LUCERN_DEPLOY_KEY = creds.key;\n lucernResolved = true;\n logMcpInfo(\n `[lucern] Lucern → ${creds.url} (${lucernEnv})` +\n (decoded.unified.prod ? \" [prod available]\" : \" [dev only]\")\n );\n } else if (decoded && \"legacy\" in decoded) {\n process.env.LUCERN_CONVEX_URL = decoded.legacy.url;\n process.env.LUCERN_DEPLOY_KEY = decoded.legacy.key;\n lucernResolved = true;\n logMcpInfo(`[lucern] Lucern (legacy) → ${decoded.legacy.url}`);\n } else {\n console.error(\n \"[lucern] LUCERN_API_KEY found but failed to decode. Check format (luc_xxxxx).\"\n );\n }\n }\n\n // --- Decode STACK_API_KEY ---\n let stackResolved = false;\n if (stackApiKey) {\n const decoded = decodeApiKey(stackApiKey, \"stk_\");\n if (decoded && \"unified\" in decoded) {\n const creds = selectEnvironment(decoded.unified);\n process.env.STACK_CONVEX_URL = creds.url;\n process.env.STACK_DEPLOY_KEY = creds.key;\n stackResolved = true;\n logMcpInfo(\n `[lucern] Stack → ${creds.url} (${lucernEnv})` +\n (decoded.unified.prod ? \" [prod available]\" : \" [dev only]\")\n );\n } else if (decoded && \"legacy\" in decoded) {\n process.env.STACK_CONVEX_URL = decoded.legacy.url;\n process.env.STACK_DEPLOY_KEY = decoded.legacy.key;\n stackResolved = true;\n logMcpInfo(`[lucern] Stack (legacy) → ${decoded.legacy.url}`);\n }\n }\n\n // --- Resolve Master Control credentials ---\n // MC credentials enable the MCP server to fetch methodology packs,\n // validate API keys, and read tenant config from the control plane.\n // Default: utmost-ox-403 (dev) / successful-clam-833 (prod)\n let mcResolved = false;\n if (!process.env.MC_CONVEX_URL) {\n const creds = parseCredentialsFile(CREDENTIALS_FILE);\n if (creds.MC_CONVEX_URL) {\n process.env.MC_CONVEX_URL = creds.MC_CONVEX_URL;\n }\n if (creds.MC_DEPLOY_KEY) {\n process.env.MC_DEPLOY_KEY = creds.MC_DEPLOY_KEY;\n }\n }\n if (process.env.MC_CONVEX_URL && process.env.MC_DEPLOY_KEY) {\n mcResolved = true;\n logMcpInfo(`[lucern] Master Control → ${process.env.MC_CONVEX_URL}`);\n }\n\n if (!lucernResolved) {\n console.error(\n \"[lucern] No credentials found. Run: lucern init --key luc_xxxxx\"\n );\n }\n\n if (userToken) {\n logMcpInfo(\"[lucern] User token detected — per-user session mode\");\n }\n\n return {\n lucernResolved,\n stackResolved,\n mcResolved,\n source,\n rawLucernApiKey: lucernApiKey,\n rawStackApiKey: stackApiKey,\n rawUserToken: userToken,\n };\n}\n"]}
|