@lucern/mcp 0.2.0-alpha.9 → 0.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gateway.d.ts +17 -4
- package/dist/gateway.js +13563 -1342
- package/dist/gateway.js.map +1 -1
- package/dist/hosted-route.d.ts +3 -0
- package/dist/hosted-route.js +20794 -0
- package/dist/hosted-route.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +9573 -1020
- package/dist/index.js.map +1 -1
- package/dist/runtime.js +14181 -1396
- package/dist/runtime.js.map +1 -1
- package/package.json +15 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/credentials.ts","../src/agentInstructions.ts","../src/observation-store.ts","../../sdk/src/coreClient.ts","../../sdk/src/sdkSurface.ts","../../sdk/src/adminClient.ts","../../sdk/src/answersClient.ts","../../sdk/src/audiencesClient.ts","../../sdk/src/auditClient.ts","../../sdk/src/beliefsClient.ts","../../sdk/src/sourcesClient.ts","../../sdk/src/evidenceClient.ts","../../sdk/src/customTools.ts","../../sdk/src/ontologyClient.ts","../../sdk/src/graphClient.ts","../../sdk/src/identityClient.ts","../../sdk/src/topicsClient.ts","../../sdk/src/gatewayFacades.ts","../../sdk/src/decisionsClient.ts","../../sdk/src/contextClient.ts","../../sdk/src/harnessClient.ts","../../sdk/src/learningClient.ts","../../sdk/src/generated/functionSurface.ts","../../sdk/src/packsClient.ts","../../sdk/src/policyClient.ts","../../sdk/src/reportsClient.ts","../../sdk/src/schemaClient.ts","../../sdk/src/version.ts","../../sdk/src/workflowClient.ts","../../sdk/src/client.ts","../../sdk/src/controlObjectOwnership.ts","../../contracts/src/lens-workflow.contract.ts","../../contracts/src/tool-contracts.ts","../../sdk/src/events.ts","../../contracts/src/function-registry/manifest.ts","../src/execution.ts","../src/types.ts","../src/handler-factory.ts","../src/handlers/beliefs.ts","../src/handlers/context.ts","../src/handlers/contradictions.ts","../src/handlers/edges.ts","../src/handlers/evidence.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/schemas/component-table-manifest.ts","../../contracts/src/schemas/sl-opinion.ts","../../contracts/src/types/graph-ref.ts","../../contracts/src/manifests/edge-policy-manifest.ts","../../contracts/src/manifests/edge-policy-manifest.data.ts","../../contracts/src/manifests/invariant-manifest.ts","../../contracts/src/projections/projection-dsl.ts","../../contracts/src/projections/create-evidence.projection.ts","../../contracts/src/projections/list-beliefs.projection.ts","../../contracts/src/projections/list-tasks.projection.ts","../../contracts/src/projections/modulate-confidence.projection.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","../src/handlers/functionSurface.ts","../src/handlers/graph.ts","../src/handlers/judgments.ts","../src/handlers/observations.ts","../src/handlers/policy.ts","../src/handlers/questions.ts","../src/handlers/tasks.ts","../src/handlers/worktrees.ts","../src/handlers/index.ts","../src/server.ts","../src/standalone.ts","../src/hosted-route.ts"],"names":["asRecord","entries","cleanString","serialized","contradictions","config","readString","readNumber","z","compactRecord","v","recordValue","asNodeArray","AUDIT_NODE_REFERENCE_KEY_PATTERN","matchesAuditNodeReference","readMetadata","worktrees"],"mappings":"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","file":"hosted-route.js","sourcesContent":["const TENANT_API_KEY_PREFIXES = [\"luc_\", \"stk_\"] as const;\nconst SERVICE_PRINCIPAL_KEY_PREFIXES = [\"lk_\", \"lsk_\"] as const;\n\nexport function isTenantApiKey(value: string): boolean {\n return TENANT_API_KEY_PREFIXES.some((prefix) => value.startsWith(prefix));\n}\n\nexport function isServicePrincipalKey(value: string): boolean {\n return SERVICE_PRINCIPAL_KEY_PREFIXES.some((prefix) =>\n value.startsWith(prefix)\n );\n}\n","export const LUCERN_OBSERVER_PROMPT_NAME = \"lucern-observer\";\n\nexport const LUCERN_AGENT_MD = `# Lucern — Reasoning Intelligence\n\nYou are connected to a Lucern reasoning graph. Lucern tracks beliefs, evidence,\nquestions, judgments, and contradictions as structured reasoning state.\n\n## Behavioral Mode\n\nOperate in active observation mode:\n\n1. Watch for claims, evidence, questions, and contradictions.\n2. Suggest graph updates when reasoning-relevant events appear.\n3. Always request user confirmation before mutating graph state.\n4. Preserve uncertainty explicitly; unresolved contradictions are valid.\n\nUse this suggestion format:\n\n\\`🔍 Lucern detected: [what changed] -> Want me to log this?\\`\n\n## Tool Use Defaults\n\n1. Read context first for substantive questions.\n2. Prefer atomic writes: create belief/evidence/question separately, then link edges.\n3. Use worktree lifecycle for investigations: add_worktree -> merge -> push.\n4. Never auto-score confidence without explicit rationale.\n\n## Safety Defaults\n\n1. Do not fabricate evidence.\n2. Do not collapse contradictions automatically.\n3. Keep provenance and rationale in every write path.\n`;\n\nexport function buildLucernObserverPrompt(topicId?: string): string {\n const topicScope = topicId\n ? `Topic scope: ${topicId}.`\n : \"Topic scope: current active topic.\";\n return [\n \"You are in Lucern observation mode.\",\n topicScope,\n \"Continuously watch conversation and tool outputs for epistemic events:\",\n \"- new claim -> create_belief\",\n \"- supporting/challenging source -> add_evidence\",\n \"- unresolved unknown -> create_question\",\n \"- conflict between beliefs -> flag_contradiction\",\n \"Always ask for explicit confirmation before any mutation.\",\n ].join(\"\\n\");\n}\n","export type ObservationKind =\n | \"claim\"\n | \"evidence\"\n | \"question\"\n | \"contradiction\"\n | \"judgment\"\n | \"note\";\n\nexport type ObservationRecord = {\n observationId: string;\n topicId: string;\n observationType: ObservationKind;\n summary: string;\n source?: string;\n confidence?: number;\n tags?: string[];\n metadata?: Record<string, unknown>;\n createdAt: number;\n};\n\nexport type ObservationContext = {\n topicId: string;\n totalObservations: number;\n latest: ObservationRecord[];\n semanticMatches: ObservationRecord[];\n byType: Record<ObservationKind, number>;\n generatedAt: number;\n};\n\ntype ObservationIngestInput = {\n topicId: string;\n observationType: ObservationKind;\n summary: string;\n source?: string;\n confidence?: number;\n tags?: string[];\n metadata?: Record<string, unknown>;\n};\n\ntype ObservationContextInput = {\n topicId: string;\n query?: string;\n limit?: number;\n};\n\nexport class McpObservationStore {\n private readonly byTopic = new Map<string, ObservationRecord[]>();\n\n ingest(input: ObservationIngestInput): ObservationRecord {\n const record: ObservationRecord = {\n observationId: `obs_${crypto.randomUUID()}`,\n topicId: input.topicId,\n observationType: input.observationType,\n summary: input.summary,\n source: input.source,\n confidence: input.confidence,\n tags: input.tags,\n metadata: input.metadata,\n createdAt: Date.now(),\n };\n\n const existing = this.byTopic.get(input.topicId) ?? [];\n existing.push(record);\n this.byTopic.set(input.topicId, existing);\n\n return record;\n }\n\n list(topicId: string, limit = 20): ObservationRecord[] {\n const records = this.byTopic.get(topicId) ?? [];\n return [...records]\n .sort((left, right) => right.createdAt - left.createdAt)\n .slice(0, Math.max(1, limit));\n }\n\n search(topicId: string, query: string, limit = 10): ObservationRecord[] {\n const records = this.byTopic.get(topicId) ?? [];\n const terms = tokenize(query);\n if (terms.length === 0) {\n return this.list(topicId, limit);\n }\n\n const scored = records\n .map((record) => ({\n record,\n score: scoreObservation(record, terms),\n }))\n .filter((entry) => entry.score > 0)\n .sort(\n (left, right) =>\n right.score - left.score ||\n right.record.createdAt - left.record.createdAt\n )\n .slice(0, Math.max(1, limit));\n\n return scored.map((entry) => entry.record);\n }\n\n getContext(input: ObservationContextInput): ObservationContext {\n const limit = Math.max(1, input.limit ?? 8);\n const records = this.byTopic.get(input.topicId) ?? [];\n\n const byType: Record<ObservationKind, number> = {\n claim: 0,\n evidence: 0,\n question: 0,\n contradiction: 0,\n judgment: 0,\n note: 0,\n };\n\n for (const record of records) {\n byType[record.observationType] += 1;\n }\n\n return {\n topicId: input.topicId,\n totalObservations: records.length,\n latest: this.list(input.topicId, limit),\n semanticMatches: input.query\n ? this.search(input.topicId, input.query, limit)\n : this.list(input.topicId, Math.min(limit, 5)),\n byType,\n generatedAt: Date.now(),\n };\n }\n}\n\nfunction tokenize(query: string): string[] {\n return query\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .map((term) => term.trim())\n .filter((term) => term.length >= 2);\n}\n\nfunction scoreObservation(record: ObservationRecord, terms: string[]): number {\n const source = [\n record.summary,\n record.source ?? \"\",\n ...(record.tags ?? []),\n ...(record.metadata\n ? Object.values(record.metadata).map((value) => String(value))\n : []),\n ]\n .join(\" \")\n .toLowerCase();\n\n let score = 0;\n for (const term of terms) {\n if (!source.includes(term)) {\n continue;\n }\n score += 1;\n if (source.includes(` ${term} `)) {\n score += 0.5;\n }\n }\n\n return score;\n}\n","import type { JsonObject, JsonValue } from \"./types\";\n\n/** Tenant and workspace identifiers used to scope gateway requests. */\nexport type GatewayScope = {\n tenantId?: string;\n workspaceId?: string;\n};\n\n/** Successful response envelope from the platform gateway with correlation metadata. */\nexport type PlatformGatewaySuccess<T> = {\n success: true;\n data: T;\n correlationId: string;\n policyTraceId: string | null;\n idempotentReplay: boolean;\n};\n\n/** Failed response envelope with structured error codes and optional invariant references. */\nexport type PlatformGatewayFailure = {\n success: false;\n /**\n * Error string is the canonical envelope field.\n * Object form is legacy-only compatibility for older gateway responses.\n */\n error:\n | string\n | {\n code: string;\n message: string;\n details?: JsonValue;\n };\n code?: string;\n invariant?: string | null;\n suggestion?: string | null;\n details?: JsonValue;\n legacyError?: {\n code: string;\n message: string;\n details?: JsonValue;\n };\n correlationId: string;\n policyTraceId: string | null;\n};\n\n/** Discriminated union of success and failure gateway responses. */\nexport type PlatformGatewayEnvelope<T> =\n | PlatformGatewaySuccess<T>\n | PlatformGatewayFailure;\n\n/**\n * Structured error thrown when a platform API request fails.\n *\n * Includes HTTP status, machine-readable error code, optional invariant\n * reference, and actionable suggestions for common failure modes.\n */\nexport class LucernApiError extends Error {\n public readonly code: string;\n public readonly status: number;\n public readonly invariant?: string | null;\n public readonly suggestion?: string | null;\n public readonly details?: JsonValue;\n public readonly requestId?: string;\n public readonly correlationId?: string;\n public readonly policyTraceId?: string | null;\n\n constructor(args: {\n code: string;\n message: string;\n status: number;\n invariant?: string | null;\n suggestion?: string | null;\n details?: JsonValue;\n requestId?: string;\n correlationId?: string;\n policyTraceId?: string | null;\n }) {\n super(args.message);\n this.name = \"LucernApiError\";\n this.code = args.code;\n this.status = args.status;\n this.invariant = args.invariant;\n this.suggestion = args.suggestion;\n this.details = args.details;\n this.requestId = args.requestId;\n this.correlationId = args.correlationId;\n this.policyTraceId = args.policyTraceId;\n }\n}\n\n/** Supported HTTP methods for gateway requests. */\nexport type GatewayHttpMethod = \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n\ntype FetchLike = (\n input: RequestInfo | URL,\n init?: RequestInit\n) => Promise<Response>;\n\n/** Context passed to the `onRequest` hook before each gateway request attempt. */\nexport type GatewayRequestHookContext = {\n requestId: string;\n attempt: number;\n maxRetries: number;\n method: GatewayHttpMethod;\n path: string;\n url: string;\n headers: Headers;\n body?: string;\n timeoutMs: number;\n};\n\n/** Context passed to the `onResponse` hook after each gateway request attempt (including retries and failures). */\nexport type GatewayResponseHookContext = GatewayRequestHookContext & {\n durationMs: number;\n status?: number;\n response?: Response;\n error?: unknown;\n correlationId?: string;\n policyTraceId?: string | null;\n idempotentReplay?: boolean;\n retryAfterMs?: number | null;\n willRetry: boolean;\n};\n\n/**\n * Low-level transport configuration for the platform gateway client.\n *\n * Most developers should use {@link createLucernClient} instead, which wraps\n * this config with higher-level conveniences like `apiKey` and `environment`.\n */\nexport type GatewayClientConfig = {\n baseUrl?: string;\n fetchImpl?: FetchLike;\n getAuthHeaders?:\n | (() => Promise<Record<string, string>>)\n | (() => Record<string, string>);\n /** Max retries for transient errors (5xx, network). Defaults to 2. */\n maxRetries?: number;\n /** Request timeout in ms. Defaults to 15000. */\n timeoutMs?: number;\n /** Optional timeout overrides by HTTP method. */\n timeoutMsByMethod?: Partial<Record<GatewayHttpMethod, number>>;\n /** Optional request ID factory used for correlation headers. */\n requestIdFactory?: () => string;\n /** Invoked before each request attempt, including retries. */\n onRequest?:\n | ((context: GatewayRequestHookContext) => void)\n | ((context: GatewayRequestHookContext) => Promise<void>);\n /** Invoked after each request attempt, including retries and failures. */\n onResponse?:\n | ((context: GatewayResponseHookContext) => void)\n | ((context: GatewayResponseHookContext) => Promise<void>);\n};\n\n/**\n * Serialize a gateway query object into a URL query string.\n */\nexport function toQueryString(\n scope: GatewayScope & Record<string, string | number | boolean | undefined>\n): string {\n const params = new URLSearchParams();\n if (scope.tenantId) {\n params.set(\"tenantId\", scope.tenantId);\n }\n if (scope.workspaceId) {\n params.set(\"workspaceId\", scope.workspaceId);\n }\n for (const [key, value] of Object.entries(scope)) {\n if (key === \"tenantId\" || key === \"workspaceId\") {\n continue;\n }\n if (value === undefined) {\n continue;\n }\n params.set(key, String(value));\n }\n const serialized = params.toString();\n return serialized.length > 0 ? `?${serialized}` : \"\";\n}\n\nfunction fillRandomBytes(length: number): Uint8Array {\n const bytes = new Uint8Array(length);\n if (typeof globalThis.crypto?.getRandomValues === \"function\") {\n globalThis.crypto.getRandomValues(bytes);\n return bytes;\n }\n\n for (let index = 0; index < length; index += 1) {\n bytes[index] = Math.floor(Math.random() * 256);\n }\n return bytes;\n}\n\nfunction generatePortableRequestId(): string {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n\n const bytes = fillRandomBytes(16);\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n const hex = Array.from(bytes, (value) => value.toString(16).padStart(2, \"0\"));\n return `${hex.slice(0, 4).join(\"\")}-${hex.slice(4, 6).join(\"\")}-${hex.slice(\n 6,\n 8\n ).join(\"\")}-${hex.slice(8, 10).join(\"\")}-${hex.slice(10).join(\"\")}`;\n}\n\n/**\n * Generate a random idempotency key for retry-safe writes.\n */\nexport function randomIdempotencyKey(): string {\n return generatePortableRequestId();\n}\n\nfunction isRetryableStatus(status: number): boolean {\n return status >= 500 || status === 408 || status === 429;\n}\n\nfunction fallbackErrorCode(status: number): string {\n if (status === 401) {\n return \"AUTHENTICATION_REQUIRED\";\n }\n if (status === 403) {\n return \"FORBIDDEN\";\n }\n if (status === 404) {\n return \"NOT_FOUND\";\n }\n if (status === 408) {\n return \"UPSTREAM_ERROR\";\n }\n if (status === 409) {\n return \"CONFLICT\";\n }\n if (status === 429) {\n return \"RATE_LIMIT_EXCEEDED\";\n }\n if (status >= 500) {\n return \"UPSTREAM_ERROR\";\n }\n return \"INTERNAL_ERROR\";\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction parseRetryAfterMs(value: string | null): number | null {\n if (!value) {\n return null;\n }\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n const numeric = Number(trimmed);\n if (Number.isFinite(numeric)) {\n return Math.max(0, Math.round(numeric * 1000));\n }\n const parsedDate = Date.parse(trimmed);\n if (Number.isFinite(parsedDate)) {\n return Math.max(0, parsedDate - Date.now());\n }\n return null;\n}\n\nfunction computeRetryDelayMs(args: {\n attempt: number;\n status?: number;\n retryAfterMs?: number | null;\n}): number {\n const baseDelay =\n args.status === 429\n ? Math.max(\n args.retryAfterMs ?? 0,\n Math.min(1000 * 2 ** args.attempt, 10_000)\n )\n : Math.min(1000 * 2 ** args.attempt, 4000);\n\n if (args.status !== 429) {\n return baseDelay;\n }\n\n const jitterWindow = Math.max(250, Math.round(baseDelay * 0.25));\n return baseDelay + Math.round(Math.random() * jitterWindow);\n}\n\nfunction timeoutError(timeoutMs: number): Error {\n const error = new Error(`Request timed out after ${timeoutMs}ms`);\n error.name = \"AbortError\";\n return error;\n}\n\nfunction readPolicySummaryFromDetails(details?: JsonValue): string | null {\n if (!details || typeof details !== \"object\" || Array.isArray(details)) {\n return null;\n }\n\n const directSummary = (details as { summary?: JsonValue }).summary;\n if (typeof directSummary === \"string\" && directSummary.trim().length > 0) {\n return directSummary.trim();\n }\n\n const policy = (details as { policy?: JsonValue }).policy;\n if (!policy || typeof policy !== \"object\" || Array.isArray(policy)) {\n return null;\n }\n\n const explanation = (policy as { explanation?: JsonValue }).explanation;\n if (!explanation || typeof explanation !== \"object\" || Array.isArray(explanation)) {\n return null;\n }\n\n const nestedSummary = (explanation as { summary?: JsonValue }).summary;\n if (typeof nestedSummary === \"string\" && nestedSummary.trim().length > 0) {\n return nestedSummary.trim();\n }\n\n return null;\n}\n\n/**\n * Create the transport client used by all SDK modules.\n */\nexport function createGatewayRequestClient(config: GatewayClientConfig = {}) {\n const fetchImpl = config.fetchImpl ?? fetch;\n const baseUrl = config.baseUrl?.replace(/\\/+$/, \"\") ?? \"\";\n const maxRetries = config.maxRetries ?? 2;\n const requestIdFactory = config.requestIdFactory ?? (() => generatePortableRequestId());\n\n async function resolveAuthHeaders(): Promise<Record<string, string>> {\n if (!config.getAuthHeaders) {\n return {};\n }\n return await config.getAuthHeaders();\n }\n\n async function fetchWithTimeout(\n url: string,\n init: RequestInit,\n timeoutMs: number\n ): Promise<Response> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n return await fetchImpl(url, { ...init, signal: controller.signal });\n } catch (error) {\n if (controller.signal.aborted) {\n throw timeoutError(timeoutMs);\n }\n throw error;\n } finally {\n clearTimeout(timer);\n }\n }\n\n async function parsePayload<T>(\n response: Response\n ): Promise<PlatformGatewayEnvelope<T> | null> {\n const text = await response.text();\n if (!text) {\n return null;\n }\n try {\n return JSON.parse(text) as PlatformGatewayEnvelope<T>;\n } catch {\n return null;\n }\n }\n\n function resolveTimeoutMs(\n method: GatewayHttpMethod,\n requestTimeoutMs?: number\n ): number {\n if (typeof requestTimeoutMs === \"number\") {\n return requestTimeoutMs;\n }\n const methodTimeoutMs = config.timeoutMsByMethod?.[method];\n if (typeof methodTimeoutMs === \"number\") {\n return methodTimeoutMs;\n }\n return config.timeoutMs ?? 15_000;\n }\n\n function buildApiError(args: {\n requestId: string;\n response: Response;\n failure?: PlatformGatewayFailure | null;\n }): LucernApiError {\n const failure = args.failure;\n const legacyError =\n failure && typeof failure.error === \"object\" && failure.error !== null\n ? failure.error\n : failure?.legacyError;\n const correlationId =\n failure?.correlationId ??\n args.response.headers.get(\"x-lucern-correlation-id\")?.trim() ??\n args.requestId;\n const policyTraceId =\n failure?.policyTraceId ??\n args.response.headers.get(\"x-lucern-policy-trace-id\")?.trim() ??\n null;\n const details = failure?.details ?? legacyError?.details;\n const policySummary = readPolicySummaryFromDetails(details);\n\n return new LucernApiError({\n code: failure?.code ?? legacyError?.code ?? fallbackErrorCode(args.response.status),\n message:\n policySummary ??\n (typeof failure?.error === \"string\"\n ? failure.error\n : legacyError?.message ??\n (args.response.ok\n ? \"Platform API returned an invalid success payload.\"\n : \"Platform API request failed.\")),\n status: args.response.status,\n invariant: failure?.invariant,\n suggestion: failure?.suggestion,\n details,\n requestId: args.requestId,\n correlationId,\n policyTraceId,\n });\n }\n\n async function request<T>(args: {\n path: string;\n method?: GatewayHttpMethod;\n body?: JsonObject;\n idempotencyKey?: string;\n requestId?: string;\n timeoutMs?: number;\n }): Promise<PlatformGatewaySuccess<T>> {\n const authHeaders = await resolveAuthHeaders();\n const method = args.method ?? \"GET\";\n const timeoutMs = resolveTimeoutMs(method, args.timeoutMs);\n const headers = new Headers({\n \"content-type\": \"application/json\",\n ...authHeaders,\n });\n if (args.idempotencyKey) {\n headers.set(\"idempotency-key\", args.idempotencyKey);\n }\n const requestId =\n headers.get(\"x-correlation-id\")?.trim() ||\n headers.get(\"x-request-id\")?.trim() ||\n args.requestId ||\n requestIdFactory();\n if (!headers.has(\"x-correlation-id\") && !headers.has(\"x-request-id\")) {\n headers.set(\"x-correlation-id\", requestId);\n }\n\n const url = `${baseUrl}${args.path}`;\n const serializedBody = args.body ? JSON.stringify(args.body) : undefined;\n const init: RequestInit = {\n method,\n headers,\n body: serializedBody,\n };\n\n let lastError: unknown;\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const hookRequestContext: GatewayRequestHookContext = {\n requestId,\n attempt,\n maxRetries,\n method,\n path: args.path,\n url,\n headers: new Headers(headers),\n body: serializedBody,\n timeoutMs,\n };\n await config.onRequest?.(hookRequestContext);\n const startedAt = Date.now();\n try {\n const response = await fetchWithTimeout(url, init, timeoutMs);\n const responseClone = response.clone();\n const payload = await parsePayload<T>(response);\n const retryAfterMs = parseRetryAfterMs(\n response.headers.get(\"Retry-After\")\n );\n\n if (!response.ok || !payload?.success) {\n const failure =\n payload && !payload.success ? (payload as PlatformGatewayFailure) : null;\n const apiError = buildApiError({\n requestId,\n response,\n failure,\n });\n const willRetry = attempt < maxRetries && isRetryableStatus(response.status);\n\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n status: response.status,\n response: responseClone,\n error: apiError,\n correlationId: apiError.correlationId ?? requestId,\n policyTraceId: apiError.policyTraceId ?? null,\n retryAfterMs,\n willRetry,\n });\n\n if (willRetry) {\n lastError = apiError;\n await delay(\n computeRetryDelayMs({\n attempt,\n status: response.status,\n retryAfterMs,\n })\n );\n continue;\n }\n\n throw apiError;\n }\n\n const successPayload = payload as PlatformGatewaySuccess<T>;\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n status: response.status,\n response: responseClone,\n correlationId:\n successPayload.correlationId ??\n response.headers.get(\"x-lucern-correlation-id\")?.trim() ??\n requestId,\n policyTraceId:\n successPayload.policyTraceId ??\n response.headers.get(\"x-lucern-policy-trace-id\")?.trim() ??\n null,\n idempotentReplay: successPayload.idempotentReplay,\n retryAfterMs,\n willRetry: false,\n });\n\n return successPayload;\n } catch (fetchError) {\n if (fetchError instanceof LucernApiError) {\n throw fetchError;\n }\n const willRetry = attempt < maxRetries;\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n error: fetchError,\n correlationId: requestId,\n policyTraceId: null,\n willRetry,\n });\n lastError = fetchError;\n if (willRetry) {\n await delay(computeRetryDelayMs({ attempt }));\n }\n }\n }\n\n throw lastError instanceof Error\n ? lastError\n : new Error(\"Platform API request failed after retries.\");\n }\n\n return {\n request,\n };\n}\n","import type { PlatformGatewaySuccess } from \"./coreClient\";\nimport type { JsonObject, ListResult } from \"./types\";\n\ntype TopicScopedValue = {\n topicId?: string;\n};\n\ntype TextScopedValue = {\n text?: string;\n canonicalText?: string;\n};\n\ntype AnyRecord = Record<string, unknown>;\n\nfunction asRecord(value: unknown): AnyRecord {\n return value && typeof value === \"object\" ? (value as AnyRecord) : {};\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 normalizeVerificationStatus(value: unknown): string | undefined {\n const status = cleanString(value);\n if (!status) {\n return undefined;\n }\n if (status === \"verified\") {\n return \"human_verified\";\n }\n if (status === \"rejected\") {\n return \"contradicted\";\n }\n return status;\n}\n\nfunction cloneWith<T extends AnyRecord>(value: T, patch: AnyRecord): T {\n return { ...value, ...patch } as T;\n}\n\n/**\n * Resolve the canonical topic identifier.\n */\nexport function resolveTopicId(value: TopicScopedValue): string | undefined {\n return cleanString(value.topicId);\n}\n\n/**\n * Resolve the canonical text field from text-first or legacy canonicalText-first inputs.\n */\nexport function resolveText(value: TextScopedValue): string | undefined {\n return cleanString(value.text) ?? cleanString(value.canonicalText);\n}\n\n/**\n * Attach the topicId to a record.\n */\nexport function withTopicAlias<T extends AnyRecord>(value: T): T {\n const topicId = cleanString(value.topicId) ?? undefined;\n if (!topicId) {\n return value;\n }\n return cloneWith(value, { topicId });\n}\n\n/**\n * Attach the text/canonicalText alias pair to a record.\n */\nexport function withTextAlias<T extends AnyRecord>(value: T): T {\n const text =\n cleanString(value.text) ?? cleanString(value.canonicalText) ?? undefined;\n if (!text) {\n return value;\n }\n return cloneWith(value, { text, canonicalText: text });\n}\n\n/**\n * Attach topic and text aliases to SDK node-like records.\n */\nexport function withSdkAliases<T extends AnyRecord>(value: T): T {\n return withTopicAlias(withTextAlias(value));\n}\n\n/**\n * Normalize a belief/question/evidence write payload to the canonical gateway shape.\n */\nexport function normalizeNodeWriteInput<T extends JsonObject>(value: T): T {\n const topicId = resolveTopicId(value);\n const text = resolveText(value);\n const verificationStatus = normalizeVerificationStatus(value.verificationStatus);\n const next = { ...value } as JsonObject;\n\n if (topicId) {\n next.topicId = topicId;\n }\n if (text) {\n next.text = text;\n next.canonicalText = text;\n }\n if (verificationStatus) {\n next.verificationStatus = verificationStatus;\n }\n\n return next as T;\n}\n\nexport function normalizeNodeVerificationStatus(value: unknown) {\n return normalizeVerificationStatus(value);\n}\n\n/**\n * Build a topic-aware query object.\n */\nexport function normalizeTopicQuery<T extends JsonObject>(value: T): T {\n const topicId = cleanString(value.topicId);\n if (!topicId) {\n return value;\n }\n return { ...value, topicId } as T;\n}\n\n/**\n * Extract list items from array or list-envelope payloads.\n */\nexport function asListItems<T>(data: unknown, legacyKey?: string): T[] {\n if (Array.isArray(data)) {\n return data as T[];\n }\n\n const record = asRecord(data);\n if (Array.isArray(record.items)) {\n return record.items as T[];\n }\n if (legacyKey && Array.isArray(record[legacyKey])) {\n return record[legacyKey] as T[];\n }\n\n return [];\n}\n\n/**\n * Standardize list data to { items, total } while retaining an optional legacy array key.\n */\nexport function createListResult<T, LegacyKey extends string>(\n items: T[],\n legacyKey?: LegacyKey\n): ListResult<T, LegacyKey> {\n const result = {\n items,\n total: items.length,\n } as ListResult<T, LegacyKey>;\n\n if (legacyKey) {\n (result as Record<string, unknown>)[legacyKey] = items;\n }\n\n return result;\n}\n\n/**\n * Map a gateway success envelope's data while preserving the transport metadata.\n */\nexport function mapGatewayData<T, U>(\n response: PlatformGatewaySuccess<T>,\n mapper: (data: T) => U\n): PlatformGatewaySuccess<U> {\n return {\n ...response,\n data: mapper(response.data),\n };\n}\n\n/**\n * Apply SDK aliases across all items in a list-like payload.\n */\nexport function mapAliasedList<\n TItem extends AnyRecord,\n LegacyKey extends string,\n>(\n data: unknown,\n legacyKey?: LegacyKey\n): ListResult<TItem, LegacyKey> {\n const items = asListItems<TItem>(data, legacyKey).map((item) =>\n withSdkAliases(item)\n );\n return createListResult(items, legacyKey);\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { ControlObjectOwnershipContract } from \"./controlObjectOwnership\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the admin client. */\nexport type AdminClientConfig = GatewayClientConfig;\n\nexport type TenantApiKeyRecord = {\n id?: string;\n tenantId?: string;\n workspaceId?: string;\n label?: string;\n keyPrefix?: string;\n hashedKey?: string;\n scopes?: string[];\n status?: string;\n expiresAt?: number;\n lastUsedAt?: number;\n revokedAt?: number;\n revokedBy?: string;\n createdBy?: string;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantVaultSecretRecord = {\n id?: string;\n tenantId?: string;\n workspaceId?: string;\n name?: string;\n description?: string;\n lastRotated?: number;\n createdBy?: string;\n updatedBy?: string;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantAuthPolicyMode = \"open\" | \"invite_only\" | \"sso_required\";\nexport type TenantTopicVisibility = \"private\" | \"tenant\" | \"public\";\nexport type TenantFeatureFlags = Record<string, boolean>;\nexport type TenantModelSlotOverrides = Record<string, string>;\n\nexport type TenantConfigRecord = {\n tenantId: string;\n authPolicyMode: TenantAuthPolicyMode;\n defaultSessionTTL: number;\n defaultTopicVisibility: TenantTopicVisibility;\n featureFlags: TenantFeatureFlags;\n maxWorkspaceCount: number;\n defaultModelSlotOverrides: TenantModelSlotOverrides;\n updatedAt?: number;\n updatedBy?: string;\n};\n\nexport type TenantModelRoutingSlotRecord = {\n slot: string;\n category?: string;\n description?: string;\n modelKey: string;\n promptName?: string;\n temperature?: number;\n maxTokens?: number;\n enabled?: boolean;\n};\n\nexport type TenantModelRoutingModelRecord = {\n key: string;\n name?: string;\n modelId?: string;\n provider?: string;\n enabled?: boolean;\n recommended?: boolean;\n notes?: string;\n};\n\nexport type TenantModelRoutingBindingRecord = {\n slot: string;\n providerId: string;\n secretRef: string;\n label?: string;\n keyHint?: string;\n};\n\nexport type TenantModelRouteOverrideStatus =\n | \"inherit\"\n | \"active\"\n | \"blocked_missing_model\"\n | \"blocked_missing_binding\";\n\nexport type TenantModelRouteBindingState = \"ready\" | \"missing\";\nexport type TenantModelRouteSource = \"platform_default\" | \"tenant_override\";\n\nexport type TenantModelRouteRow = {\n slot: string;\n category: string;\n description?: string;\n promptName?: string;\n slotEnabled: boolean;\n platformModelKey: string;\n platformModelName?: string;\n platformProviderId?: string;\n overrideModelKey?: string;\n overrideModelName?: string;\n overrideProviderId?: string;\n effectiveModelKey: string;\n effectiveModelName?: string;\n effectiveProviderId?: string;\n effectiveSource: TenantModelRouteSource;\n overrideStatus: TenantModelRouteOverrideStatus;\n bindingState: TenantModelRouteBindingState;\n bindingLabel?: string;\n bindingKeyHint?: string;\n bindingSecretRef?: string;\n};\n\nexport type TenantModelRoutingSummary = {\n totalSlots: number;\n promptBoundSlots: number;\n activeOverrides: number;\n blockedOverrides: number;\n readyBindings: number;\n};\n\nexport type TenantModelRoutingSnapshot = {\n tenantId: string;\n defaultModelSlotOverrides: Record<string, string>;\n slots: TenantModelRoutingSlotRecord[];\n models: TenantModelRoutingModelRecord[];\n bindings: TenantModelRoutingBindingRecord[];\n rows: TenantModelRouteRow[];\n summary: TenantModelRoutingSummary;\n notes: string[];\n};\n\nfunction asTenantApiKeyRecord(data: unknown): TenantApiKeyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantApiKeyRecord;\n}\n\nfunction asTenantApiKeyArray(data: unknown): TenantApiKeyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asTenantApiKeyRecord)\n .filter((row): row is TenantApiKeyRecord => Boolean(row));\n}\n\nfunction asTenantVaultSecretRecord(\n data: unknown\n): TenantVaultSecretRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantVaultSecretRecord;\n}\n\nfunction asTenantVaultSecretArray(data: unknown): TenantVaultSecretRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asTenantVaultSecretRecord)\n .filter((row): row is TenantVaultSecretRecord => Boolean(row));\n}\n\n/**\n * Create the admin client for tenant, workspace, and membership administration.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage tenants, workspaces, and memberships.\n */\nexport function createAdminClient(config: AdminClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List tenants visible to the current principal.\n */\n async listTenants(\n query: {\n status?:\n | \"provisioning\"\n | \"active\"\n | \"disabled\"\n | \"suspended\"\n | \"archived\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenants${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"tenants\"\n )\n )\n );\n },\n\n /**\n * Create a tenant.\n */\n async createTenant(\n input: {\n key: string;\n slug?: string;\n name: string;\n tier?: \"free\" | \"developer\" | \"team\" | \"enterprise\";\n status?:\n | \"provisioning\"\n | \"active\"\n | \"disabled\"\n | \"suspended\"\n | \"archived\";\n ownerClerkId?: string;\n ownerEmail?: string;\n lucernDeploymentUrl?: string;\n appDeploymentUrl?: string;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/tenants\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get the control-object ownership contract.\n */\n async getControlObjectOwnership() {\n return gateway.request<ControlObjectOwnershipContract>({\n path: \"/api/platform/v1/admin/control-ownership\",\n });\n },\n\n /**\n * @deprecated Use getControlObjectOwnership.\n */\n async getControlObjectOwnershipContract() {\n return gateway.request<ControlObjectOwnershipContract>({\n path: \"/api/platform/v1/admin/control-ownership\",\n });\n },\n\n /**\n * List workspaces for the current admin scope.\n */\n async listWorkspaces(\n query: GatewayScope & {\n status?: \"active\" | \"archived\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/workspaces${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"workspaces\"\n )\n )\n );\n },\n\n /**\n * Create a workspace.\n */\n async createWorkspace(\n input: GatewayScope & {\n workspaceId?: string;\n key?: string;\n slug?: string;\n name?: string;\n status?: \"active\" | \"archived\";\n defaultProjectVisibility?:\n | \"private\"\n | \"team\"\n | \"firm\"\n | \"external\"\n | \"public\";\n restore?: boolean;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/workspaces\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List memberships for the current admin scope.\n */\n async listMemberships(\n query: GatewayScope & {\n principalId?: string;\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n role?:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/memberships${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"memberships\"\n )\n )\n );\n },\n\n /**\n * Create a membership.\n */\n async createMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/memberships\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a membership.\n */\n async updateMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return this.createMembership(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createMembership or updateMembership.\n */\n async upsertMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return this.createMembership(input, idempotencyKey);\n },\n\n /**\n * List tenant API keys in the current admin scope.\n */\n async listTenantApiKeys(\n scope: GatewayScope & {\n status?: \"active\" | \"revoked\" | \"expired\";\n }\n ) {\n const response = await gateway.request<{ keys?: unknown[] }>({\n path: `/api/platform/v1/tenant-api-keys${toQueryString(scope)}`,\n });\n\n return {\n ...response,\n data: {\n keys: asTenantApiKeyArray(response.data?.keys),\n },\n };\n },\n\n /**\n * Create a tenant API key.\n */\n async createTenantApiKey(\n input: GatewayScope & {\n label?: string;\n scopes: string[];\n expiresAt?: number;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n key?: unknown;\n plaintextKey?: string;\n }>({\n path: \"/api/platform/v1/tenant-api-keys\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n key: asTenantApiKeyRecord(response.data?.key),\n plaintextKey:\n typeof response.data?.plaintextKey === \"string\"\n ? response.data.plaintextKey\n : undefined,\n },\n };\n },\n\n /**\n * Revoke a tenant API key.\n */\n async revokeTenantApiKey(\n keyId: string,\n input: GatewayScope & { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-api-keys/${encodeURIComponent(keyId)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant vault secrets.\n */\n async listTenantVaultSecrets(scope: GatewayScope) {\n const response = await gateway.request<{ secrets?: unknown[] }>({\n path: `/api/platform/v1/tenant-vault-secrets${toQueryString(scope)}`,\n });\n\n return {\n ...response,\n data: {\n secrets: asTenantVaultSecretArray(response.data?.secrets),\n },\n };\n },\n\n /**\n * Create a tenant vault secret.\n */\n async createTenantVaultSecret(\n input: GatewayScope & {\n name: string;\n description?: string;\n value: string;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ secret?: unknown }>({\n path: \"/api/platform/v1/tenant-vault-secrets\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n secret: asTenantVaultSecretRecord(response.data?.secret),\n },\n };\n },\n\n /**\n * Update a tenant vault secret.\n */\n async updateTenantVaultSecret(\n secretId: string,\n input: GatewayScope & {\n name: string;\n description?: string;\n value?: string;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ secret?: unknown }>({\n path: `/api/platform/v1/tenant-vault-secrets/${encodeURIComponent(secretId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n secret: asTenantVaultSecretRecord(response.data?.secret),\n },\n };\n },\n\n /**\n * Delete a tenant vault secret.\n */\n async deleteTenantVaultSecret(\n secretId: string,\n scope: GatewayScope,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-vault-secrets/${encodeURIComponent(\n secretId\n )}${toQueryString(scope)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant provider secrets.\n */\n async listTenantSecrets(\n scope: GatewayScope & {\n providerId?: string;\n status?: \"active\" | \"revoked\";\n }\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-secrets${toQueryString(scope)}`,\n });\n },\n\n /**\n * Upsert a tenant provider secret.\n */\n async upsertTenantSecret(\n input: GatewayScope & {\n providerId: string;\n apiKey: string;\n label?: string;\n modelSlotIds?: string[];\n passThroughOnly?: boolean;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/tenant-secrets\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Revoke a tenant provider secret.\n */\n async revokeTenantSecret(\n secretRef: string,\n input: GatewayScope & { reason?: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-secrets/${encodeURIComponent(secretRef)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get tenant configuration.\n */\n async getTenantConfig(scope: GatewayScope & { tenantId: string }) {\n return gateway.request<TenantConfigRecord>({\n path: `/api/platform/v1/tenant-config${toQueryString(scope)}`,\n });\n },\n\n /**\n * Get tenant model routing.\n */\n async getTenantModelRouting(scope: GatewayScope & { tenantId: string }) {\n return gateway.request<TenantModelRoutingSnapshot>({\n path: `/api/platform/v1/tenant-config/model-routing${toQueryString(scope)}`,\n });\n },\n\n /**\n * Upsert tenant configuration.\n */\n async upsertTenantConfig(\n input: GatewayScope & Omit<TenantConfigRecord, \"updatedAt\" | \"updatedBy\">,\n idempotencyKey?: string\n ) {\n return gateway.request<TenantConfigRecord>({\n path: \"/api/platform/v1/tenant-config\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List groups.\n */\n async listGroups(scope: GatewayScope & { limit?: number } = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create a group.\n */\n async createGroup(\n input: GatewayScope & {\n name: string;\n groupKey?: string;\n groupType?: string;\n description?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a group.\n */\n async updateGroup(\n groupId: string,\n input: GatewayScope & {\n name?: string;\n description?: string;\n workspaceId?: string;\n clearWorkspaceId?: boolean;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/${encodeURIComponent(groupId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete a group.\n */\n async deleteGroup(\n groupId: string,\n input: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/${encodeURIComponent(groupId)}${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List group members.\n */\n async listGroupMembers(query: GatewayScope & { groupId: string }) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/members${toQueryString(query)}`,\n });\n },\n\n /**\n * Add a group member.\n */\n async addGroupMember(\n input: GatewayScope & {\n groupId: string;\n principalId: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups/members\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove a group member.\n */\n async removeGroupMember(\n input: GatewayScope & { groupId: string; principalId: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/members${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List pack-to-group assignments.\n */\n async listPackGroupAssignments(\n query: GatewayScope & {\n groupId?: string;\n status?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/packs${toQueryString(query)}`,\n });\n },\n\n /**\n * Assign a pack to a group.\n */\n async assignPackToGroup(\n input: GatewayScope & {\n groupId: string;\n packKey: string;\n packVersion?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups/packs\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove a pack from a group.\n */\n async removePackFromGroup(\n input: GatewayScope & { groupId: string; packKey: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/packs${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n} from \"./coreClient\";\n\n/** Configuration for the answers client. */\nexport type AnswersClientConfig = GatewayClientConfig;\n\n/**\n * Create the answers client for retrieving question answers.\n * @param config - Gateway transport configuration.\n * @returns An object with a `get` method to fetch the answer for a question.\n */\nexport function createAnswersClient(config: AnswersClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * Get the current answer for a question.\n * @param questionId - The question node identifier.\n * @returns The answer record for the given question.\n */\n async get(questionId: string) {\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/questions/${encodeURIComponent(questionId)}/answer`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the audiences client. */\nexport type AudiencesClientConfig = GatewayClientConfig;\n\n/** Input for creating or updating an audience registry entry. */\nexport type AudienceRegistryInput = GatewayScope & {\n audienceKey: string;\n audienceLabel: string;\n audienceClass: \"internal\" | \"restricted_external\" | \"public\";\n status?: \"active\" | \"disabled\" | \"archived\";\n description?: string;\n metadata?: JsonObject;\n};\n\n/** Input for creating an audience access grant. */\nexport type AudienceGrantInput = GatewayScope & {\n audienceKey: string;\n audienceClass?: \"internal\" | \"restricted_external\" | \"public\";\n principalId?: string;\n groupId?: string;\n expiresAt?: number;\n metadata?: JsonObject;\n};\n\n/** Input for revoking an audience grant by its identifier. */\nexport type AudienceGrantRevokeInput = GatewayScope & {\n grantId: string;\n};\n\n/**\n * Create the audiences client for registry entries and grants.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage audience registry entries and grants.\n */\nexport function createAudiencesClient(config: AudiencesClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List audience registry entries.\n */\n async listRegistry(\n query: GatewayScope & {\n effective?: boolean;\n status?: \"active\" | \"disabled\" | \"archived\";\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audiences/registry${toQueryString({\n ...query,\n effective:\n typeof query.effective === \"boolean\"\n ? query.effective\n ? \"true\"\n : \"false\"\n : undefined,\n status: query.status,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"registryEntries\"\n )\n )\n );\n },\n\n /**\n * @deprecated Use listRegistry.\n */\n async getRegistry(\n query: GatewayScope & {\n effective?: boolean;\n status?: \"active\" | \"disabled\" | \"archived\";\n } = {}\n ) {\n return this.listRegistry(query);\n },\n\n /**\n * Create an audience registry entry.\n */\n async createRegistryEntry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/registry\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update an audience registry entry.\n */\n async updateRegistryEntry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return this.createRegistryEntry(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createRegistryEntry or updateRegistryEntry.\n */\n async upsertRegistry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return this.createRegistryEntry(input, idempotencyKey);\n },\n\n /**\n * List audience grants.\n */\n async listGrants(\n query: GatewayScope & {\n audienceKey?: string;\n principalId?: string;\n groupId?: string;\n status?: \"active\" | \"revoked\" | \"expired\";\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audiences/grants${toQueryString({\n ...query,\n audienceKey: query.audienceKey,\n principalId: query.principalId,\n groupId: query.groupId,\n status: query.status,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"grants\")\n )\n );\n },\n\n /**\n * @deprecated Use listGrants.\n */\n async getGrants(\n query: GatewayScope & {\n audienceKey?: string;\n principalId?: string;\n groupId?: string;\n status?: \"active\" | \"revoked\" | \"expired\";\n } = {}\n ) {\n return this.listGrants(query);\n },\n\n /**\n * Create an audience grant.\n */\n async createGrant(input: AudienceGrantInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/grants\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createGrant.\n */\n async grant(input: AudienceGrantInput, idempotencyKey?: string) {\n return this.createGrant(input, idempotencyKey);\n },\n\n /**\n * Delete an audience grant by revoking it.\n */\n async deleteGrant(\n input: AudienceGrantRevokeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/grants/revoke\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use deleteGrant.\n */\n async revokeGrant(\n input: AudienceGrantRevokeInput,\n idempotencyKey?: string\n ) {\n return this.deleteGrant(input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { TopicIdentifierInput } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the audit client. */\nexport type AuditClientConfig = GatewayClientConfig;\n\n/**\n * Create the audit client for transport-level audit event reads.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list audit events.\n */\nexport function createAuditClient(config: AuditClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List audit events for the current scope.\n */\n async listEvents(\n query: GatewayScope & {\n action?: string;\n decision?: string;\n traceId?: string;\n principalId?: string;\n topicId?: string;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audit/events${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"events\")\n )\n );\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport {\n type Opinion,\n} from \"./opinion\";\nimport { normalizeNodeWriteInput } from \"./sdkSurface\";\nimport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n JsonObject,\n ModulateConfidenceResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n ModulateConfidenceResponse,\n} from \"./types\";\nexport type { Opinion } from \"./opinion\";\n\n/** Configuration for the beliefs client. Inherits gateway transport settings. */\nexport type BeliefsClientConfig = GatewayClientConfig;\n\nexport type OpinionHistoryEntry = {\n t: number;\n b: number;\n d: number;\n u: number;\n a: number;\n P: number;\n trigger: string;\n triggeringRef?: {\n kind: \"evidence\" | \"question\" | \"answer\" | \"contradiction\" | \"worktree\";\n id: string;\n };\n rationale?: string;\n userId?: string;\n slOperator?: string;\n};\n\ntype GatewayRecord = Record<string, unknown>;\n\nfunction asRecord(value: unknown): GatewayRecord {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as GatewayRecord)\n : {};\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 readNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction clamp01(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction normalizeOpinionTuple(record: GatewayRecord): {\n b: number;\n d: number;\n u: number;\n a: number;\n} {\n const opinion = asRecord(record.opinion);\n const rawBelief = readNumber(opinion.b) ?? readNumber(record.belief);\n const rawDisbelief = readNumber(opinion.d) ?? readNumber(record.disbelief);\n const rawUncertainty = readNumber(opinion.u) ?? readNumber(record.uncertainty);\n const rawBaseRate = readNumber(opinion.a) ?? readNumber(record.baseRate);\n\n if (\n rawBelief === undefined ||\n rawDisbelief === undefined ||\n rawUncertainty === undefined ||\n rawBaseRate === undefined\n ) {\n throw new Error(\n \"Gateway opinion history entries must include belief, disbelief, uncertainty, and baseRate.\"\n );\n }\n\n return {\n b: clamp01(rawBelief),\n d: clamp01(rawDisbelief),\n u: clamp01(rawUncertainty),\n a: clamp01(rawBaseRate),\n };\n}\n\nexport function mapOpinionHistoryEntriesFromGatewayData(\n payload: GatewayRecord\n): OpinionHistoryEntry[] {\n const entries = Array.isArray(payload.entries) ? payload.entries : [];\n return entries\n .map((value) => {\n const record = asRecord(value);\n const tuple = normalizeOpinionTuple(record);\n const projected =\n readNumber(record.confidence) ?? clamp01(tuple.b + tuple.a * tuple.u);\n const triggeringEvidenceId = readString(record.triggeringEvidenceId);\n const triggeringQuestionId = readString(record.triggeringQuestionId);\n const triggeringAnswerId = readString(record.triggeringAnswerId);\n const triggeringContradictionId = readString(\n record.triggeringContradictionId\n );\n const triggeringWorktreeId = readString(record.triggeringWorktreeId);\n const triggeringRef = triggeringEvidenceId\n ? ({ kind: \"evidence\", id: triggeringEvidenceId } as const)\n : triggeringQuestionId\n ? ({ kind: \"question\", id: triggeringQuestionId } as const)\n : triggeringAnswerId\n ? ({ kind: \"answer\", id: triggeringAnswerId } as const)\n : triggeringContradictionId\n ? ({ kind: \"contradiction\", id: triggeringContradictionId } as const)\n : triggeringWorktreeId\n ? ({ kind: \"worktree\", id: triggeringWorktreeId } as const)\n : undefined;\n const trigger = readString(record.trigger);\n if (!trigger) {\n throw new Error(\"Gateway opinion history entries must include trigger.\");\n }\n\n return {\n t: readNumber(record.timestamp) ?? readNumber(record.assessedAt) ?? 0,\n b: tuple.b,\n d: tuple.d,\n u: tuple.u,\n a: tuple.a,\n P: clamp01(projected),\n trigger,\n ...(triggeringRef ? { triggeringRef } : {}),\n ...(readString(record.rationale)\n ? { rationale: readString(record.rationale)! }\n : {}),\n ...(readString(record.userId) ? { userId: readString(record.userId)! } : {}),\n ...(readString(record.slOperator)\n ? { slOperator: readString(record.slOperator)! }\n : {}),\n };\n })\n .sort((left, right) => left.t - right.t);\n}\n\n/**\n * Input for creating a new belief within a topic scope.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n * Beliefs start as drafts with a vacuous prior `(0, 0, 1, a)`. When omitted,\n * `baseRate` defaults to the canonical neutral prior `0.5`.\n */\nexport type CreateBeliefInput = {\n topicId?: string;\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n layer?: \"L1\" | \"L2\" | \"L3\" | \"L4\";\n domain?: string;\n sourceType?: \"human\" | \"ai\" | \"agent\" | \"imported\";\n content?: string;\n contentHash?: string;\n globalId?: string;\n title?: string;\n subtype?: string;\n confidence?: number;\n baseRate?: number;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: \"unverified\" | \"verified\" | \"rejected\";\n};\n\n/**\n * Input for refining an existing draft belief.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n */\nexport type RefineBeliefInput = {\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n rationale?: string;\n title?: string;\n};\n\ntype BeliefConfidenceTrigger =\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\ntype ModulateConfidenceInputBase = {\n trigger: BeliefConfidenceTrigger;\n rationale: string;\n triggeringEvidenceId?: string;\n triggeringQuestionId?: string;\n triggeringAnswerId?: string;\n triggeringContradictionId?: string;\n triggeringWorktreeId?: string;\n maxInlinePropagationTargets?: number;\n};\n\n/**\n * Record an append-only confidence change using an explicit subjective-logic\n * opinion tuple.\n */\nexport type ModulateConfidenceOpinionInput = ModulateConfidenceInputBase & {\n opinion: Opinion;\n};\n\nexport type ModulateConfidenceInput = ModulateConfidenceOpinionInput;\n\nfunction normalizeModulateConfidenceInput(\n input: ModulateConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\n/**\n * Input for forking a scored belief into a new formulation.\n * Scored beliefs are immutable — fork to evolve understanding.\n */\nexport type ForkBeliefInput = {\n newFormulation: string;\n forkReason?:\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n rationale?: string;\n};\n\n/** Input for changing a belief's lifecycle status. */\nexport type UpdateBeliefStatusInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n status: \"active\" | \"superseded\" | \"archived\";\n reason?: string;\n};\n\n/** Input for updating a belief's rationale without refining its text. */\nexport type UpdateBeliefRationaleInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n rationale?: string;\n};\n\n/** Input for creating a belief-to-belief reasoning edge. */\nexport type LinkBeliefsInput = {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n weight?: number;\n context?: string;\n};\n\n/** Input for unlinking a belief from an attached evidence item. */\nexport type UnlinkBeliefEvidenceInput = {\n beliefNodeId?: string;\n beliefId?: string;\n nodeId?: string;\n insightId?: string;\n evidenceId?: string;\n};\n\n/** Input for updating a belief's criticality classification. */\nexport type UpdateBeliefCriticalityInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n};\n\n/** Input for bulk-updating multiple beliefs' criticality. */\nexport type BatchUpdateBeliefCriticalityInput = {\n updates: Array<{\n beliefId: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n ifFalseImpact?: string;\n triagePriority?: number;\n reasoning?: string;\n dependentBeliefIds?: string[];\n blockedByBeliefIds?: string[];\n }>;\n};\n\n/** Input for moving beliefs into a different topic scope. */\nexport type ReassignBeliefsTopicInput = {\n beliefNodeIds?: string[];\n beliefIds?: string[];\n targetTopicId: string;\n reason?: string;\n};\n\n/**\n * Create the beliefs client for belief lifecycle operations.\n *\n * @param config - Gateway transport configuration.\n * @returns An object with `createBelief`, `refineBelief`, `modulateConfidence`, and `forkBelief` methods.\n */\nexport function createBeliefsClient(config: BeliefsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n function normalizeBaseRate(value: unknown): number {\n const baseRate = readNumber(value);\n const normalized = baseRate ?? 0.5;\n if (normalized < 0 || normalized > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return normalized;\n }\n const modulateConfidence: {\n (\n beliefId: string,\n input: ModulateConfidenceOpinionInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<ModulateConfidenceResponse>>;\n } = async (\n beliefId: string,\n input: ModulateConfidenceInput,\n idempotencyKey?: string\n ) =>\n gateway.request<ModulateConfidenceResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence`,\n method: \"POST\",\n body: normalizeModulateConfidenceInput(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n async function getOpinionHistory(\n beliefId: string\n ): Promise<OpinionHistoryEntry[]> {\n const response = await gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence-history`,\n });\n return mapOpinionHistoryEntriesFromGatewayData(response.data);\n }\n\n return {\n /**\n * Create a belief within a topic scope.\n */\n async createBelief(input: CreateBeliefInput, idempotencyKey?: string) {\n const baseRate = normalizeBaseRate(input.baseRate);\n return gateway.request<CreateBeliefResponse>({\n path: \"/api/platform/v1/beliefs\",\n method: \"POST\",\n body: {\n ...(normalizeNodeWriteInput(input) as JsonObject),\n baseRate,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Refine a draft belief in place.\n */\n async refineBelief(\n beliefId: string,\n input: RefineBeliefInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBeliefResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}`,\n method: \"PATCH\",\n body: normalizeNodeWriteInput(input as JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Record a confidence change for an existing belief.\n */\n modulateConfidence,\n\n /**\n * Returns the belief's confidence trajectory as a chronological array.\n *\n * Canonical UI trend shape (what every trend component consumes):\n * { t: number, b: number, d: number, u: number, a: number, P: number, trigger: string, triggeringRef?: { kind: \"evidence\" | \"worktree\"; id: string } }[]\n *\n * Where:\n * t = assessedAt (epoch ms)\n * b, d, u, a = Opinion 4-tuple components\n * P = projected probability = b + a*u (precomputed for UI convenience)\n * trigger = cause of the score change\n * triggeringRef = optional pointer to the evidence or worktree that drove the change\n */\n async getOpinionHistory(beliefId: string): Promise<OpinionHistoryEntry[]> {\n return getOpinionHistory(beliefId);\n },\n\n /** @deprecated Use getOpinionHistory(). */\n async getConfidenceHistory(\n beliefId: string\n ): Promise<OpinionHistoryEntry[]> {\n return getOpinionHistory(beliefId);\n },\n\n /**\n * Fork a scored belief into a new formulation.\n */\n async forkBelief(\n beliefId: string,\n input: ForkBeliefInput,\n idempotencyKey?: string\n ) {\n return gateway.request<ForkBeliefResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/fork`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's lifecycle status.\n */\n async updateBeliefStatus(\n input: UpdateBeliefStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's rationale without changing its text.\n */\n async updateBeliefRationale(\n input: UpdateBeliefRationaleInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-rationale\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Create a typed relationship between two beliefs.\n */\n async linkBeliefs(input: LinkBeliefsInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/link\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove an evidence attachment from a belief.\n */\n async unlinkBeliefEvidence(\n input: UnlinkBeliefEvidenceInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/unlink-evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's criticality metadata.\n */\n async updateBeliefCriticality(\n input: UpdateBeliefCriticalityInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update multiple beliefs' criticality in one mutation.\n */\n async batchUpdateBeliefCriticality(\n input: BatchUpdateBeliefCriticalityInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/batch-update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Reassign beliefs to a different topic scope.\n */\n async reassignBeliefsTopic(\n input: ReassignBeliefsTopicInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/reassign-topic\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport type {\n GetSourceResponse,\n JsonObject,\n UpsertSourceResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type { GetSourceResponse, UpsertSourceResponse } from \"./types\";\n\nexport type SourcesClientConfig = GatewayClientConfig;\n\nexport type UpsertSourceSpec = {\n url?: string;\n sha?: string;\n kind: string;\n title?: string;\n capturedAt?: number;\n topicId?: string;\n metadata?: JsonObject;\n};\n\nexport function createSourcesClient(config: SourcesClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async upsert(\n spec: UpsertSourceSpec,\n idempotencyKey = randomIdempotencyKey()\n ) {\n return gateway.request<UpsertSourceResponse>({\n path: \"/api/platform/v1/sources/upsert\",\n method: \"POST\",\n body: spec,\n idempotencyKey,\n });\n },\n\n async get(sourceId: string) {\n return gateway.request<GetSourceResponse>({\n path: `/api/platform/v1/sources/${encodeURIComponent(sourceId)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n} from \"./coreClient\";\n\ntype EvidenceClassificationRelation =\n | \"supports\"\n | \"contradicts\"\n | \"irrelevant\";\n\ntype ModelFallbackConfig = {\n modelKey: string;\n modelId: string;\n temperature: number;\n maxTokens: number;\n};\n\ntype ResolvedModelConfig = ModelFallbackConfig & {\n promptName: string;\n};\n\ntype TracingAdapter = {\n startGeneration(input: {\n name: string;\n userId?: string;\n promptName: string;\n model: string;\n input: unknown;\n }): Promise<{\n start: () => void;\n end: (output: unknown) => Promise<void>;\n error: (err: unknown) => Promise<void>;\n }>;\n};\n\ntype PromptResolver = (name: string) => Promise<string | null>;\n\ntype ModelResolver = (\n slotKey: string,\n fallback: ResolvedModelConfig\n) => Promise<ResolvedModelConfig>;\n\ntype ClassificationRuntimeAdapter = (input: {\n beliefId: string;\n evidenceId: string;\n belief: string;\n evidence: string;\n prompt: string;\n model: ResolvedModelConfig;\n}) => Promise<{\n relation: EvidenceClassificationRelation;\n rationale: string;\n}>;\n\n// Local mirror of the kernel adapter types so SDK DTS generation stays inside\n// packages/sdk rootDir. Source of truth:\n// packages/reasoning-kernel/src/adapters/evidenceClassifier.ts\nexport type SerializableClassifyEvidenceConfig = {\n promptName?: string;\n modelSlotKey?: string;\n modelFallback?: ModelFallbackConfig;\n edgeWeightPolicy?: {\n supports: number;\n contradicts: number;\n };\n statusTransition?: {\n onSupports: string;\n onContradicts: string;\n };\n writeLegacyTables?: boolean;\n};\n\nexport type ClassifyEvidenceConfig = SerializableClassifyEvidenceConfig & {\n trustDiscountPolicy?: (\n relation: Exclude<EvidenceClassificationRelation, \"irrelevant\">,\n rationale: string\n ) => number;\n tracing?: TracingAdapter;\n promptResolver?: PromptResolver;\n modelResolver?: ModelResolver;\n classifier?: ClassificationRuntimeAdapter;\n};\n\nexport type ClassifyEvidenceResult = {\n beliefId: string;\n evidenceId: string;\n relation: EvidenceClassificationRelation;\n rationale: string;\n usedFallback: boolean;\n edgeWeight?: number;\n promptName: string;\n model: ResolvedModelConfig;\n link?: {\n edgeGlobalId: string;\n linkId?: string;\n confidence: number;\n writeLegacyTables: boolean;\n };\n statusUpdate?: {\n previousStatus?: string;\n newStatus: string;\n historyWritten: boolean;\n };\n};\n\nexport type ClassifyEvidenceBatchItem = {\n evidenceId?: string;\n insightId?: string;\n nodeId?: string;\n text?: string;\n};\n\nexport type ClassifyEvidenceBatchResult = {\n items: ClassifyEvidenceResult[];\n summary: {\n supporting: number;\n contradicting: number;\n irrelevant: number;\n };\n};\n\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the evidence classification client. */\nexport type EvidenceClientConfig = GatewayClientConfig;\n\n/**\n * Serializable config accepted by the HTTP SDK surface.\n * Runtime-only ports stay inside the kernel adapter.\n */\nexport type EvidenceClassificationRequestConfig =\n SerializableClassifyEvidenceConfig;\n\n/**\n * Create the evidence classification client.\n *\n * This surface mirrors the promoted kernel primitive through the platform\n * gateway. Auth-scoped callers do not provide `createdBy`; the gateway derives\n * it from the authenticated principal.\n */\nexport function createEvidenceClient(config: EvidenceClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async classifyEvidence(\n beliefId: string,\n evidenceId: string,\n classificationConfig?: EvidenceClassificationRequestConfig,\n idempotencyKey?: string\n ) {\n return gateway.request<ClassifyEvidenceResult>({\n path: \"/api/platform/v1/evidence/classify\",\n method: \"POST\",\n body: {\n beliefId,\n evidenceId,\n config: classificationConfig,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async classifyEvidenceBatch(\n beliefId: string,\n evidence: ClassifyEvidenceBatchItem[],\n classificationConfig?: EvidenceClassificationRequestConfig,\n idempotencyKey?: string\n ) {\n return gateway.request<ClassifyEvidenceBatchResult>({\n path: \"/api/platform/v1/evidence/classify-batch\",\n method: \"POST\",\n body: {\n beliefId,\n evidence,\n config: classificationConfig,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import { z } from \"zod\";\nimport type {\n McpParameterDef,\n McpResponseDef,\n McpToolContract,\n} from \"./contracts/mcpTools\";\nimport type { JsonObject } from \"./types\";\n\n/** Default namespace assigned to custom tools when none is specified. */\nconst DEFAULT_CUSTOM_NAMESPACE = \"custom\";\n\n/** Namespace strings reserved for platform-internal tools. */\nconst RESERVED_NAMESPACES = new Set([\"lucern\"]);\n\ntype AnyZodObject = z.ZodObject<z.ZodRawShape>;\n\n/** Origin of a custom tool invocation (SDK call or MCP request). */\nexport type CustomToolInvocationSource = \"sdk\" | \"mcp\";\n\n/** Runtime context passed to a custom tool handler during invocation. */\nexport type CustomToolInvocationContext = {\n source: CustomToolInvocationSource;\n};\n\n/** Optional metadata attached to a custom tool registration. */\nexport type CustomToolMetadata = {\n category?: string;\n tags?: string[];\n requiredScopes?: string[];\n};\n\n/** Input descriptor for registering a custom tool with its schemas and handler. */\nexport type CustomToolRegistration<\n TInput extends AnyZodObject = AnyZodObject,\n TOutput extends z.ZodTypeAny = z.ZodTypeAny,\n> = {\n namespace?: string;\n name: string;\n description: string;\n inputSchema: TInput;\n outputSchema: TOutput;\n handler: (\n input: z.infer<TInput>,\n context: CustomToolInvocationContext\n ) => Promise<z.infer<TOutput>> | z.infer<TOutput>;\n metadata?: CustomToolMetadata;\n ownerModule?: string;\n ontologyPrimitive?: McpToolContract[\"ontologyPrimitive\"];\n tier?: McpToolContract[\"tier\"];\n};\n\n/** A fully resolved custom tool entry stored in the in-memory registry. */\nexport type RegisteredCustomTool = {\n fullName: string;\n namespace: string;\n shortName: string;\n metadata: CustomToolMetadata;\n contract: McpToolContract;\n inputSchema: AnyZodObject;\n outputSchema: z.ZodTypeAny;\n invoke: (\n input: JsonObject,\n context: CustomToolInvocationContext\n ) => Promise<unknown>;\n};\n\n/** Error thrown when custom tool registration or invocation fails validation. */\nexport class CustomToolRegistryError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"CustomToolRegistryError\";\n }\n}\n\nconst customToolRegistry = new Map<string, RegisteredCustomTool>();\n\nfunction normalizeSegment(value: string, field: \"namespace\" | \"name\"): string {\n const normalized = value.trim();\n if (!normalized) {\n throw new CustomToolRegistryError(`Custom tool ${field} is required.`);\n }\n if (!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(normalized)) {\n throw new CustomToolRegistryError(\n `Invalid custom tool ${field}: \"${value}\". Use letters, numbers, \"_\" or \"-\".`\n );\n }\n return normalized;\n}\n\nfunction normalizeNamespace(namespace?: string): string {\n const resolved = normalizeSegment(\n namespace ?? DEFAULT_CUSTOM_NAMESPACE,\n \"namespace\"\n );\n if (RESERVED_NAMESPACES.has(resolved.toLowerCase())) {\n throw new CustomToolRegistryError(\n `Namespace \"${resolved}\" is reserved for platform tools.`\n );\n }\n return resolved;\n}\n\nfunction normalizeName(name: string): string {\n if (name.includes(\".\")) {\n throw new CustomToolRegistryError(\n `Custom tool name \"${name}\" must not include \".\"; use namespace + name.`\n );\n }\n return normalizeSegment(name, \"name\");\n}\n\nfunction buildFullName(namespace: string, shortName: string): string {\n return `${namespace}.${shortName}`;\n}\n\nfunction unwrapSchema(schema: z.ZodTypeAny): {\n schema: z.ZodTypeAny;\n required: boolean;\n} {\n if (schema instanceof z.ZodOptional) {\n return { schema: schema.unwrap(), required: false };\n }\n if (schema instanceof z.ZodDefault) {\n const removeDefault = (\n schema as unknown as { removeDefault?: () => z.ZodTypeAny }\n ).removeDefault;\n if (typeof removeDefault === \"function\") {\n return { schema: removeDefault.call(schema), required: false };\n }\n const inner = (schema as unknown as { _def?: { innerType?: z.ZodTypeAny } })\n ._def?.innerType;\n return { schema: inner ?? schema, required: false };\n }\n return { schema, required: true };\n}\n\nfunction resolveParameterType(schema: z.ZodTypeAny): {\n type: McpParameterDef[\"type\"];\n enum?: string[];\n} {\n if (schema instanceof z.ZodString) {\n return { type: \"string\" };\n }\n if (schema instanceof z.ZodEnum) {\n return { type: \"string\", enum: schema.options };\n }\n if (schema instanceof z.ZodNativeEnum) {\n const values = Object.values(schema.enum).filter(\n (value): value is string => typeof value === \"string\"\n );\n return values.length > 0\n ? { type: \"string\", enum: values }\n : { type: \"string\" };\n }\n if (schema instanceof z.ZodLiteral) {\n const literalValue = schema.value;\n if (typeof literalValue === \"string\") {\n return { type: \"string\", enum: [literalValue] };\n }\n if (typeof literalValue === \"number\") {\n return { type: \"number\" };\n }\n if (typeof literalValue === \"boolean\") {\n return { type: \"boolean\" };\n }\n return { type: \"object\" };\n }\n if (schema instanceof z.ZodNumber) {\n return { type: \"number\" };\n }\n if (schema instanceof z.ZodBoolean) {\n return { type: \"boolean\" };\n }\n if (schema instanceof z.ZodArray) {\n return { type: \"array\" };\n }\n return { type: \"object\" };\n}\n\nfunction schemaTypeLabel(schema: z.ZodTypeAny): string {\n if (schema instanceof z.ZodString || schema instanceof z.ZodEnum) {\n return \"string\";\n }\n if (schema instanceof z.ZodNumber) {\n return \"number\";\n }\n if (schema instanceof z.ZodBoolean) {\n return \"boolean\";\n }\n if (schema instanceof z.ZodArray) {\n return \"array\";\n }\n if (schema instanceof z.ZodObject) {\n return \"object\";\n }\n return \"unknown\";\n}\n\nfunction parseObjectSchema<TInput extends AnyZodObject>(\n value: TInput,\n fieldName: string\n): TInput {\n if (!(value instanceof z.ZodObject)) {\n throw new CustomToolRegistryError(\n `${fieldName} must be a Zod object schema.`\n );\n }\n return value;\n}\n\nfunction deriveParameters(schema: AnyZodObject): {\n parameters: Record<string, McpParameterDef>;\n required: string[];\n} {\n const shape = schema.shape;\n const parameters: Record<string, McpParameterDef> = {};\n const required: string[] = [];\n\n for (const [key, raw] of Object.entries(shape)) {\n const { schema: unwrapped, required: isRequired } = unwrapSchema(\n raw as z.ZodTypeAny\n );\n const parameterType = resolveParameterType(unwrapped);\n parameters[key] = {\n type: parameterType.type,\n description: (raw as z.ZodTypeAny).description ?? `${key} parameter`,\n ...(parameterType.enum ? { enum: parameterType.enum } : {}),\n };\n if (isRequired) {\n required.push(key);\n }\n }\n\n return { parameters, required };\n}\n\nfunction deriveResponse(schema: z.ZodTypeAny): McpResponseDef {\n if (schema instanceof z.ZodObject) {\n const fields = Object.fromEntries(\n Object.entries(schema.shape).map(([key, value]) => {\n const zodValue = value as z.ZodTypeAny;\n const label = schemaTypeLabel(unwrapSchema(zodValue).schema);\n const description = zodValue.description ?? \"custom output field\";\n return [key, `${label} — ${description}`];\n })\n );\n return {\n description: \"Custom tool result payload\",\n fields,\n };\n }\n\n return {\n description: \"Custom tool result payload\",\n fields: {\n result: `${schemaTypeLabel(schema)} — custom output payload`,\n },\n };\n}\n\nfunction buildContract<\n TInput extends AnyZodObject,\n TOutput extends z.ZodTypeAny,\n>(\n fullName: string,\n namespace: string,\n registration: CustomToolRegistration<TInput, TOutput>,\n inputSchema: TInput\n): McpToolContract {\n const { parameters, required } = deriveParameters(inputSchema);\n return {\n name: fullName,\n description: registration.description,\n parameters,\n required,\n response: deriveResponse(registration.outputSchema),\n ownerModule: registration.ownerModule ?? `${namespace}-extension`,\n ontologyPrimitive: registration.ontologyPrimitive ?? \"task\",\n tier: registration.tier ?? \"workhorse\",\n };\n}\n\n/**\n * Register a custom SDK tool in the in-memory registry.\n * @param registration - The tool definition including name, schemas, and handler.\n * @param options - Optional flags; set `replace` to overwrite an existing registration.\n * @returns The fully resolved registered tool entry.\n */\nexport function registerCustomTool<\n TInput extends AnyZodObject,\n TOutput extends z.ZodTypeAny,\n>(\n registration: CustomToolRegistration<TInput, TOutput>,\n options: { replace?: boolean } = {}\n): RegisteredCustomTool {\n const namespace = normalizeNamespace(registration.namespace);\n const shortName = normalizeName(registration.name);\n const fullName = buildFullName(namespace, shortName);\n\n if (customToolRegistry.has(fullName) && !options.replace) {\n throw new CustomToolRegistryError(\n `Custom tool \"${fullName}\" is already registered.`\n );\n }\n\n const inputSchema = parseObjectSchema(\n registration.inputSchema,\n \"inputSchema\"\n );\n const outputSchema = registration.outputSchema;\n const contract = buildContract(\n fullName,\n namespace,\n registration,\n inputSchema\n );\n const metadata: CustomToolMetadata = {\n category: registration.metadata?.category,\n tags: registration.metadata?.tags ?? [],\n requiredScopes: registration.metadata?.requiredScopes ?? [\"custom:execute\"],\n };\n\n const registered: RegisteredCustomTool = {\n fullName,\n namespace,\n shortName,\n metadata,\n contract,\n inputSchema,\n outputSchema,\n invoke: async (input, context) => {\n const parsedInput = inputSchema.parse(input);\n const rawOutput = await registration.handler(parsedInput, context);\n return outputSchema.parse(rawOutput);\n },\n };\n\n customToolRegistry.set(fullName, registered);\n return registered;\n}\n\n/**\n * Remove a custom SDK tool from the registry.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @returns `true` if the tool was found and removed, `false` otherwise.\n */\nexport function unregisterCustomTool(fullName: string): boolean {\n return customToolRegistry.delete(fullName.trim());\n}\n\n/**\n * Get a custom SDK tool by fully qualified name.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @returns The registered tool entry, or `undefined` if not found.\n */\nexport function getRegisteredCustomTool(\n fullName: string\n): RegisteredCustomTool | undefined {\n return customToolRegistry.get(fullName.trim());\n}\n\n/**\n * List all registered custom SDK tools, sorted alphabetically by full name.\n * @returns An array of all registered tool entries.\n */\nexport function listRegisteredCustomTools(): RegisteredCustomTool[] {\n return [...customToolRegistry.values()].sort((left, right) =>\n left.fullName.localeCompare(right.fullName)\n );\n}\n\n/**\n * Clear the registered custom tool registry.\n */\nexport function clearRegisteredCustomTools(): void {\n customToolRegistry.clear();\n}\n\n/**\n * Invoke a registered custom SDK tool by fully qualified name.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @param params - JSON-serializable input parameters for the tool handler.\n * @param context - Invocation context indicating the call source.\n * @returns The validated output from the tool handler.\n */\nexport async function invokeRegisteredCustomTool(\n fullName: string,\n params: JsonObject,\n context: CustomToolInvocationContext\n): Promise<unknown> {\n const registered = getRegisteredCustomTool(fullName);\n if (!registered) {\n throw new CustomToolRegistryError(\n `Custom tool \"${fullName}\" is not registered.`\n );\n }\n return registered.invoke(params, context);\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the ontology client. */\nexport type OntologyClientConfig = GatewayClientConfig;\n\n/** Input for binding an ontology to a topic. */\nexport type OntologyBindingInput = GatewayScope & {\n ontologyId: string;\n topicId: string;\n};\n\n/** Input for creating an ontology definition. */\nexport type OntologyDefinitionInput = GatewayScope & {\n ontologyKey: string;\n name: string;\n description?: string;\n tenantId?: string;\n tier?: \"platform\" | \"pack\" | \"tenant\";\n};\n\n/** Input for updating mutable fields on an ontology definition. */\nexport type OntologyDefinitionUpdateInput = GatewayScope & {\n name?: string;\n description?: string;\n status?: \"draft\" | \"active\" | \"deprecated\";\n};\n\n/** Input for creating a versioned snapshot of entity and edge type definitions. */\nexport type OntologyVersionInput = GatewayScope & {\n version: string;\n entityTypes: Array<{\n value: string;\n label: string;\n description?: string;\n schema?: JsonObject;\n subtypes?: Array<{ value: string; label: string; description?: string }>;\n }>;\n edgeTypes: Array<{\n value: string;\n label: string;\n description?: string;\n sourceTypes?: string[];\n targetTypes?: string[];\n constraintSeverity?: \"warn\" | \"info\";\n }>;\n releaseNotes?: string;\n};\n\n/**\n * Create the ontology client for ontology definitions and versions.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage ontology definitions, versions, and bindings.\n */\nexport function createOntologyClient(config: OntologyClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List ontology definitions matching optional filters.\n */\n async list(\n filters: GatewayScope & {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return gateway\n .request<unknown>({\n path: `/api/platform/v1/ontologies${toQueryString(filters)}`,\n })\n .then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\" && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {};\n const ontologies = Array.isArray(record.ontologies)\n ? record.ontologies\n : Array.isArray(record.definitions)\n ? record.definitions\n : Array.isArray(data)\n ? data\n : [];\n const total =\n typeof record.total === \"number\" && Number.isFinite(record.total)\n ? record.total\n : ontologies.length;\n return {\n ...record,\n ...createListResult(ontologies, \"definitions\"),\n ontologies,\n total,\n };\n })\n );\n },\n\n /**\n * Get an ontology definition by identifier.\n */\n async get(id: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n });\n },\n\n /**\n * Bind an ontology definition to a topic.\n */\n async bind(input: OntologyBindingInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(input.ontologyId)}/bind`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List ontology definitions.\n */\n async listDefinitions(\n filters: GatewayScope & {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return this.list(filters);\n },\n\n /**\n * Get an ontology definition.\n */\n async getDefinition(id: string) {\n return this.get(id);\n },\n\n /**\n * Create an ontology definition.\n */\n async createDefinition(\n input: OntologyDefinitionInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/ontologies\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update an ontology definition.\n */\n async updateDefinition(\n id: string,\n input: OntologyDefinitionUpdateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Archive an ontology definition.\n */\n async archiveDefinition(id: string, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List versions for an ontology definition.\n */\n async listVersions(\n ontologyId: string,\n filters: GatewayScope & { status?: string } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions${toQueryString(filters)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"versions\")\n )\n );\n },\n\n /**\n * Create an ontology version.\n */\n async createVersion(\n ontologyId: string,\n input: OntologyVersionInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Publish an ontology version.\n */\n async publishVersion(\n ontologyId: string,\n versionId: string,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions/${encodeURIComponent(versionId)}/publish`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Deprecate an ontology version.\n */\n async deprecateVersion(\n ontologyId: string,\n versionId: string,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions/${encodeURIComponent(versionId)}/deprecate`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List topics directly bound to a specific ontology definition.\n * Uses the topics gateway with ontologyId filter.\n */\n async listTopics(ontologyId: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/topics?ontologyId=${encodeURIComponent(ontologyId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"topics\")\n )\n );\n },\n\n /**\n * @deprecated Use listTopics.\n */\n async listTopicsByOntology(ontologyId: string) {\n return this.listTopics(ontologyId);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n mapAliasedList,\n mapGatewayData,\n normalizeNodeWriteInput,\n normalizeNodeVerificationStatus,\n normalizeTopicQuery,\n withSdkAliases,\n} from \"./sdkSurface\";\nimport type {\n CreateEdgeResponse,\n CreateNodeResponse,\n DeleteEdgeResponse,\n GraphAnalyticsMetric,\n GraphAnalyticsResponse,\n GraphNeighborhoodResponse,\n GraphPathResponse,\n JsonObject,\n ListResult,\n PlatformGraphEdge,\n PlatformGraphNode,\n QueryEdgesResponse,\n QueryNodesResponse,\n TextAliasInput,\n TopicIdentifierInput,\n UpdateNodeResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n CreateEdgeResponse,\n CreateNodeResponse,\n DeleteEdgeResponse,\n GraphAnalyticsMetric,\n GraphAnalyticsResponse,\n GraphNeighborhoodResponse,\n GraphPathResponse,\n ListResult,\n QueryEdgesResponse,\n QueryNodesResponse,\n UpdateNodeResponse,\n} from \"./types\";\n\n/** Configuration for the graph client. */\nexport type GraphClientConfig = GatewayClientConfig;\n\n/** Filter parameters for listing graph nodes. */\nexport type ListNodesInput = {\n nodeId?: string;\n globalId?: string;\n topicId?: string;\n nodeType?: string;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Paginated list response containing graph nodes. */\nexport type ListNodesResponse = ListResult<PlatformGraphNode, \"nodes\">;\n\n/** @deprecated Use ListNodesInput. */\nexport type QueryNodesInput = ListNodesInput;\n\n/** Input for creating a new graph node. */\nexport type CreateNodeInput = {\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n nodeType: string;\n topicId?: string;\n content?: string;\n contentHash?: string;\n globalId?: string;\n sourceType?: string;\n subtype?: string;\n title?: string;\n confidence?: number;\n status?: string;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: string;\n} & TextAliasInput &\n TopicIdentifierInput;\n\n/** Input for updating an existing graph node. */\nexport type UpdateNodeInput = {\n nodeId: string;\n text?: string;\n canonicalText?: string;\n content?: string;\n contentHash?: string;\n title?: string;\n subtype?: string;\n confidence?: number;\n status?: string;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: string;\n} & TextAliasInput;\n\n/** Input for retrieving a single graph node by canonical identifier. */\nexport type GetNodeInput = {\n nodeId?: string;\n globalId?: string;\n};\n\n/** Filter parameters for listing graph edges. */\nexport type ListEdgesInput = {\n edgeId?: string;\n topicId?: string;\n fromNodeId?: string;\n toNodeId?: string;\n edgeType?: string;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Paginated list response containing graph edges. */\nexport type ListEdgesResponse = ListResult<PlatformGraphEdge, \"edges\">;\n\n/** @deprecated Use ListEdgesInput. */\nexport type QueryEdgesInput = ListEdgesInput;\n\n/** Input for creating a typed edge between two graph nodes. */\nexport type CreateEdgeInput = {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n globalId?: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n derivationType?: string;\n} & TopicIdentifierInput;\n\n/** Filter for selecting edges to delete. */\nexport type DeleteEdgeInput = {\n edgeId?: string;\n fromNodeId?: string;\n toNodeId?: string;\n edgeType?: string;\n};\n\n/** Input for batch-creating multiple graph nodes. */\nexport type BatchCreateNodesInput = {\n nodes: Array<CreateNodeInput>;\n};\n\n/** Input for superseding an existing graph node with a new version. */\nexport type SupersedeNodeInput = {\n oldNodeId?: string;\n nodeId?: string;\n newGlobalId?: string;\n newCanonicalText?: string;\n text?: string;\n canonicalText?: string;\n newContentHash?: string;\n reason?: string;\n};\n\n/** Input for updating a node's verification state. */\nexport type VerifyNodeInput = {\n nodeId?: string;\n id?: string;\n verificationStatus: string;\n confidence?: number;\n};\n\n/** Input for permanently deleting a node via admin-only API. */\nexport type HardDeleteNodeInput = {\n nodeId?: string;\n id?: string;\n reason: string;\n allowBeliefHardDelete?: boolean;\n};\n\n/** Input for retrieving the local neighborhood around a graph node. */\nexport type NeighborhoodInput = {\n globalId?: string;\n globalIds?: string;\n maxDepth?: number;\n};\n\n/** Input for finding the shortest path between two graph nodes. */\nexport type PathInput = {\n fromGlobalId: string;\n toGlobalId: string;\n maxDepth?: number;\n};\n\n/** Input for retrieving a specific graph analytics metric. */\nexport type AnalyticsInput = {\n metric?: GraphAnalyticsMetric;\n limit?: number;\n};\n\n/** Input for traversing the graph from a starting node. */\nexport type TraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for structural analysis of a topic graph. */\nexport type AnalyzeInput = {\n topicId?: string;\n metric?: GraphAnalyticsMetric;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for detecting confirmation-bias patterns in a topic graph. */\nexport type BiasInput = {\n topicId?: string;\n threshold?: number;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for finding beliefs without sufficient testing questions. */\nexport type GapsInput = {\n topicId?: string;\n minConfidence?: number;\n} & TopicIdentifierInput;\n\n/** Input for cross-resource search within a topic scope. */\nexport type SearchInput = {\n q?: string;\n query?: string;\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n} & TopicIdentifierInput;\n\n/**\n * Create the low-level graph client for nodes, edges, and graph analytics.\n * @param config - Gateway transport configuration.\n * @returns An object with methods for CRUD on nodes/edges plus analytics, traversal, and search.\n */\nexport function createGraphClient(config: GraphClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List graph nodes matching the provided filters.\n */\n async listNodes(query: ListNodesInput) {\n return gateway.request<ListNodesResponse>({\n path: `/api/platform/v1/graph/nodes${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => mapAliasedList<PlatformGraphNode, \"nodes\">(data, \"nodes\"))\n );\n },\n\n /**\n * @deprecated Use listNodes.\n */\n async queryNodes(query: QueryNodesInput) {\n return this.listNodes(query);\n },\n\n /**\n * Retrieve a single graph node by nodeId or globalId.\n */\n async getNode(query: GetNodeInput) {\n return gateway.request<PlatformGraphNode>({\n path: `/api/platform/v1/graph/nodes${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as PlatformGraphNode\n )\n );\n },\n\n /**\n * Create a graph node.\n */\n async createNode(input: CreateNodeInput, idempotencyKey?: string) {\n return gateway.request<CreateNodeResponse>({\n path: \"/api/platform/v1/graph/nodes\",\n method: \"POST\",\n body: normalizeNodeWriteInput(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as CreateNodeResponse\n )\n );\n },\n\n /**\n * Update a graph node.\n */\n async updateNode(input: UpdateNodeInput, idempotencyKey?: string) {\n return gateway.request<UpdateNodeResponse>({\n path: \"/api/platform/v1/graph/nodes\",\n method: \"PUT\",\n body: normalizeNodeWriteInput(input as UpdateNodeInput & JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as UpdateNodeResponse\n )\n );\n },\n\n /**\n * Batch create graph nodes through the admin route surface.\n */\n async batchCreateNodes(\n input: BatchCreateNodesInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/batch\",\n method: \"POST\",\n body: {\n nodes: input.nodes.map((node) => normalizeNodeWriteInput(node)),\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Supersede an existing graph node with a new canonical version.\n */\n async supersedeNode(input: SupersedeNodeInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/supersede\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a node's verification status.\n */\n async verifyNode(input: VerifyNodeInput, idempotencyKey?: string) {\n const verificationStatus =\n normalizeNodeVerificationStatus(input.verificationStatus) ??\n input.verificationStatus;\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/verify\",\n method: \"POST\",\n body: {\n ...input,\n verificationStatus,\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Permanently delete a node via the admin-only hard-delete route.\n */\n async hardDeleteNode(input: HardDeleteNodeInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/hard-delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List graph edges matching the provided filters.\n */\n async listEdges(query: ListEdgesInput) {\n return gateway.request<ListEdgesResponse>({\n path: `/api/platform/v1/graph/edges${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<PlatformGraphEdge, \"edges\">(data, \"edges\")\n )\n );\n },\n\n /**\n * @deprecated Use listEdges.\n */\n async queryEdges(query: QueryEdgesInput) {\n return this.listEdges(query);\n },\n\n /**\n * Create a graph edge.\n */\n async createEdge(input: CreateEdgeInput, idempotencyKey?: string) {\n return gateway.request<CreateEdgeResponse>({\n path: \"/api/platform/v1/graph/edges\",\n method: \"POST\",\n body: normalizeTopicQuery(input as CreateEdgeInput & JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete one or more edges matching the provided filter.\n */\n async deleteEdge(query: DeleteEdgeInput, idempotencyKey?: string) {\n return gateway.request<DeleteEdgeResponse>({\n path: `/api/platform/v1/graph/edges${toQueryString(query)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Retrieve a graph neighborhood around a root node.\n */\n async neighborhood(query: NeighborhoodInput) {\n return gateway.request<GraphNeighborhoodResponse>({\n path: `/api/platform/v1/graph/neighborhood${toQueryString(query)}`,\n });\n },\n\n /**\n * Traverse the graph from a starting node.\n */\n async traverse(query: TraverseInput) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/traverse\",\n method: \"POST\",\n body: normalizeTopicQuery(query as TraverseInput & JsonObject),\n });\n },\n\n /**\n * Analyze graph structure for a topic.\n */\n async analyze(query: AnalyzeInput = {}) {\n const normalized = normalizeTopicQuery(query as AnalyzeInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/analyze${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n metric:\n typeof normalized.metric === \"string\" ? normalized.metric : undefined,\n limit:\n typeof normalized.limit === \"number\" ? normalized.limit : undefined,\n })}`,\n });\n },\n\n /**\n * Detect confirmation-bias patterns for a topic graph.\n */\n async bias(query: BiasInput = {}) {\n const normalized = normalizeTopicQuery(query as BiasInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/bias${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n threshold:\n typeof normalized.threshold === \"number\"\n ? normalized.threshold\n : undefined,\n limit:\n typeof normalized.limit === \"number\" ? normalized.limit : undefined,\n })}`,\n });\n },\n\n /**\n * Find graph gaps for beliefs that still need testing.\n */\n async gaps(query: GapsInput) {\n const normalized = normalizeTopicQuery(query as GapsInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/gaps${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n minConfidence:\n typeof normalized.minConfidence === \"number\"\n ? normalized.minConfidence\n : undefined,\n })}`,\n });\n },\n\n /**\n * Search across graph resources within a topic.\n */\n async search(query: SearchInput) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/search\",\n method: \"POST\",\n body: normalizeTopicQuery(query as SearchInput & JsonObject),\n });\n },\n\n /**\n * Retrieve a graph neighborhood around a root node.\n */\n async getNeighborhood(query: NeighborhoodInput) {\n return this.neighborhood(query);\n },\n\n /**\n * Retrieve the shortest known path between two graph nodes.\n */\n async getPath(query: PathInput) {\n return gateway.request<GraphPathResponse>({\n path: `/api/platform/v1/graph/path${toQueryString(query)}`,\n });\n },\n\n /**\n * Retrieve graph analytics for the requested metric.\n */\n async getAnalytics(query: AnalyticsInput = {}) {\n return gateway.request<GraphAnalyticsResponse>({\n path: `/api/platform/v1/graph/analytics${toQueryString(query)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n type PlatformGatewaySuccess,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, SdkPrincipalContext } from \"./types\";\n\n/** Summary of the currently authenticated principal and their scopes. */\nexport type IdentitySummary = SdkPrincipalContext;\n\n/** Gateway response wrapping an identity summary payload. */\nexport type IdentityWhoamiResponse = PlatformGatewaySuccess<IdentitySummary>;\n\nfunction createIdentityWhoamiClient(\n config: GatewayClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async whoami(): Promise<IdentityWhoamiResponse> {\n return gateway.request<SdkPrincipalContext>({\n path: \"/api/platform/v1/identity/whoami\",\n });\n },\n };\n}\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the identity client. */\nexport type IdentityClientConfig = GatewayClientConfig;\n\nexport type ClerkUserSearchResult = {\n clerkId: string;\n email: string | null;\n firstName: string | null;\n lastName: string | null;\n displayName: string | null;\n imageUrl: string | null;\n};\n\n/**\n * Create the identity client for principals and API keys.\n * @param config - Gateway transport configuration.\n * @returns An object with methods for whoami, principal management, and key management.\n */\nexport function createIdentityClient(config: IdentityClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const whoamiClient = createIdentityWhoamiClient(config);\n\n const requestPrincipalWrite = (\n method: \"POST\" | \"PATCH\",\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) =>\n gateway.request<unknown>({\n path: \"/api/platform/v1/identity/principals\",\n method,\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n /**\n * Resolve the current authenticated identity summary.\n */\n async whoami() {\n return whoamiClient.whoami().then((response) =>\n mapGatewayData(response, (data) => ({\n principalId: data.principalId,\n principalType: data.principalType,\n tenantId: data.tenantId ?? null,\n workspaceId: data.workspaceId ?? null,\n scopes: Array.isArray(data.scopes) ? data.scopes : [],\n roles: Array.isArray(data.roles) ? data.roles : [],\n isPlatformAdmin: data.isPlatformAdmin === true,\n isTenantAdmin: data.isTenantAdmin === true,\n isWorkspaceAdmin: data.isWorkspaceAdmin === true,\n authMode: data.authMode,\n sessionId: data.sessionId,\n delegatedBy: data.delegatedBy,\n expiresAt: data.expiresAt,\n }))\n );\n },\n\n /**\n * List principals in the current identity scope.\n */\n async listPrincipals(\n query: GatewayScope & {\n status?: string;\n principalType?: string;\n query?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/principals${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"principals\"\n )\n )\n );\n },\n\n /**\n * Create a principal.\n */\n async createPrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"POST\", input, idempotencyKey);\n },\n\n /**\n * Update a principal.\n */\n async updatePrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"PATCH\", input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createPrincipal or updatePrincipal.\n */\n async upsertPrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"PATCH\", input, idempotencyKey);\n },\n\n /**\n * List keys in the current identity scope.\n */\n async listKeys(\n query: GatewayScope & {\n principalId?: string;\n status?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"keys\")\n )\n );\n },\n\n /**\n * Create an API key.\n */\n async createKey(\n input: GatewayScope & {\n principalId: string;\n keyId?: string;\n token?: string;\n scopes?: string[];\n environment?: \"sandbox\" | \"production\";\n expiresInDays?: number;\n rateLimitTier?: \"free\" | \"developer\" | \"partner\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/identity/keys\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Rotate an API key.\n */\n async rotateKey(\n keyId: string,\n input: {\n replacementKeyId?: string;\n replacementToken?: string;\n replacementExpiresInDays?: number;\n gracePeriodHours?: number;\n } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys/${encodeURIComponent(keyId)}/rotate`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete an API key by revoking it.\n */\n async deleteKey(\n keyId: string,\n input: { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys/${encodeURIComponent(keyId)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use deleteKey.\n */\n async revokeKey(\n keyId: string,\n input: { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return this.deleteKey(keyId, input, idempotencyKey);\n },\n\n /**\n * Search Clerk users by email or display attributes.\n */\n async searchClerkUsers(q: string) {\n return gateway.request<ClerkUserSearchResult[]>({\n path: `/api/platform/v1/identity/clerk-users${toQueryString({ q })}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n createListResult,\n mapGatewayData,\n resolveTopicId,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n JsonObject,\n TopicCoverageResponse,\n TopicIdentifierInput,\n TopicListResponse,\n TopicRecord,\n TopicTreeNode,\n TopicTreeResponse,\n} from \"./types\";\n\n/** Configuration for the topics client. Inherits gateway transport settings. */\nexport type TopicsClientConfig = GatewayClientConfig;\n\n/** Filters for listing topics within a scope. */\nexport type TopicListInput = TopicIdentifierInput & {\n ontologyId?: string;\n parentTopicId?: string;\n status?: string;\n type?: string;\n};\n\n/** Input for creating a new topic. Name is required; all other fields are optional. */\nexport type TopicCreateInput = TopicIdentifierInput & {\n name: string;\n description?: string;\n type?: string;\n parentTopicId?: string;\n ontologyId?: string;\n tenantId?: string;\n workspaceId?: string;\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n createdBy?: string;\n metadata?: JsonObject;\n};\n\n/** Input for updating an existing topic's metadata. All fields are optional. */\nexport type TopicUpdateInput = TopicIdentifierInput & {\n name?: string;\n description?: string;\n type?: string;\n ontologyId?: string;\n clearOntologyId?: boolean;\n status?: \"active\" | \"archived\" | \"watching\";\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n};\n\n/** Options for retrieving the topic hierarchy. */\nexport type TopicTreeQuery = {\n maxDepth?: number;\n};\n\n/** Options for retrieving belief/question/evidence coverage across a topic tree. */\nexport type TopicCoverageQuery = {\n includeDescendants?: boolean;\n maxDepth?: number;\n};\n\n/** Input for batch-creating topics. */\nexport type TopicBulkCreateInput = {\n topics: Array<\n TopicIdentifierInput & {\n globalId?: string;\n name: string;\n description?: string;\n type: string;\n parentTopicId?: string;\n depth?: number;\n path?: string[];\n tenantId?: string;\n workspaceId?: string;\n graphScopeProjectId?: string;\n status?: \"active\" | \"archived\" | \"watching\";\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n metadata?: JsonObject;\n createdBy?: string;\n }\n >;\n};\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\"\n ? (value as Record<string, unknown>)\n : {};\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 normalizeTopicRecord(value: unknown): TopicRecord {\n const record = asRecord(value);\n const topicId =\n cleanString(record.topicId) ??\n cleanString(record.id) ??\n cleanString(record._id);\n\n return withTopicAlias({\n ...record,\n ...(topicId ? { topicId } : {}),\n }) as TopicRecord;\n}\n\nfunction normalizeTopicTreeNode(value: unknown): TopicTreeNode {\n return normalizeTopicRecord(value) as TopicTreeNode;\n}\n\n/**\n * Create the topics client for managing hierarchical knowledge containers.\n *\n * @param config - Gateway transport configuration.\n * @returns An object with `list`, `get`, `create`, `update`, `getTree`, and `getCoverage` methods.\n */\nexport function createTopicsClient(config: TopicsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async list(query: TopicListInput = {}) {\n const topicId = resolveTopicId(query);\n return gateway.request<TopicListResponse>({\n path: `/api/platform/v1/topics${toQueryString({\n ...(topicId ? { topicId } : {}),\n ontologyId: query.ontologyId,\n parentTopicId: query.parentTopicId,\n status: query.status,\n type: query.type,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record = asRecord(data);\n const items = Array.isArray(record.topics)\n ? record.topics.map(normalizeTopicRecord)\n : [];\n\n return {\n ...createListResult(items, \"topics\"),\n ...record,\n topics: items,\n total:\n typeof record.total === \"number\" ? record.total : items.length,\n } as TopicListResponse;\n })\n );\n },\n\n async get(topicId: string) {\n return gateway.request<TopicRecord>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n normalizeTopicRecord(asRecord(data).topic ?? data)\n )\n );\n },\n\n async create(input: TopicCreateInput, idempotencyKey?: string) {\n const topicId = resolveTopicId(input);\n return gateway.request<TopicRecord>({\n path: \"/api/platform/v1/topics\",\n method: \"POST\",\n body: {\n ...input,\n ...(topicId ? { topicId } : {}),\n type: input.type ?? \"theme\",\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) => normalizeTopicRecord(data))\n );\n },\n\n async update(\n topicId: string,\n input: TopicUpdateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<TopicRecord>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) => normalizeTopicRecord(data))\n );\n },\n\n async getTree(topicId: string, query: TopicTreeQuery = {}) {\n return gateway.request<TopicTreeResponse>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}/tree${toQueryString(\n query\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record = asRecord(data);\n return {\n tree: Array.isArray(record.tree)\n ? record.tree.map(normalizeTopicTreeNode)\n : [],\n } as TopicTreeResponse;\n })\n );\n },\n\n async getCoverage(topicId: string, query: TopicCoverageQuery = {}) {\n return gateway.request<TopicCoverageResponse>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}/coverage${toQueryString(\n query\n )}`,\n });\n },\n\n async remove(topicId: string, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/topics/remove\",\n method: \"POST\",\n body: { id: topicId },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async bulkCreate(input: TopicBulkCreateInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/topics/bulk\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n randomIdempotencyKey,\n toQueryString,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport type { ModulateConfidenceInput } from \"./beliefsClient\";\nimport {\n createOntologyClient,\n type OntologyBindingInput,\n} from \"./ontologyClient\";\nimport { createGraphClient } from \"./graphClient\";\nimport { createIdentityClient } from \"./identityClient\";\nimport {\n createTopicsClient,\n type TopicBulkCreateInput,\n type TopicCreateInput,\n type TopicCoverageQuery,\n type TopicListInput,\n type TopicTreeQuery,\n type TopicUpdateInput,\n} from \"./topicsClient\";\nimport type { GraphAnalyticsMetric, JsonObject } from \"./types\";\n\ntype GatewayRecord = Record<string, unknown>;\ntype GatewayList = GatewayRecord & { cursor?: string; total?: number };\n\ntype BeliefRecord = GatewayRecord & {\n id?: string;\n beliefId?: string;\n nodeId?: string;\n};\n\ntype BeliefsListResult = GatewayList & {\n beliefs?: BeliefRecord[];\n};\n\ntype BeliefsLineageResult = GatewayRecord & {\n beliefId?: string;\n lineage?: GatewayRecord[];\n};\n\ntype SearchResult = GatewayList & {\n beliefs?: GatewayRecord[];\n results?: GatewayRecord[];\n};\n\ntype GraphNeighborhoodInput = {\n globalId?: string;\n globalIds?: string | string[];\n maxDepth?: number;\n};\n\ntype GraphTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\ntype GraphAnalyzeInput = {\n topicId?: string;\n metric?: GraphAnalyticsMetric;\n limit?: number;\n};\n\ntype GraphBiasInput = {\n topicId?: string;\n threshold?: number;\n limit?: number;\n};\n\ntype GraphGapsInput = {\n topicId?: string;\n minConfidence?: number;\n};\n\ntype GraphFalsifyInput = {\n topicId?: string;\n beliefId?: string;\n beliefIds?: string[];\n minConfidence?: number;\n};\n\ntype EventsListResult = GatewayList & {\n events?: GatewayRecord[];\n};\n\ntype WebhooksListResult = GatewayList & {\n webhooks?: GatewayRecord[];\n};\n\ntype QuestionsListResult = GatewayList & {\n questions?: Array<GatewayRecord & { priority?: string }>;\n};\n\ntype ContradictionsListResult = GatewayList & {\n contradictions?: GatewayRecord[];\n};\n\ntype WorktreesListResult = GatewayList & {\n worktrees?: GatewayRecord[];\n};\n\ntype TaskListResult = GatewayList & {\n tasks?: GatewayRecord[];\n};\n\ntype EvidenceCreateResult = GatewayRecord & {\n id?: string;\n};\n\ntype EvidenceLinkResult = GatewayRecord & {\n edgeId?: string;\n};\n\ntype BeliefCreateInput = {\n topicId?: string;\n text: string;\n baseRate?: number;\n rationale?: string;\n worktreeId?: string;\n pillar?: string;\n sourceBeliefIds?: string[];\n sourceType?: string;\n beliefType?: string;\n reversibility?: string;\n predictionMeta?: JsonObject;\n metadata?: JsonObject;\n};\n\ntype BeliefsListQuery = {\n topicId?: string;\n status?: string;\n worktreeId?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\ntype BeliefRefineInput = {\n text: string;\n rationale?: string;\n};\n\ntype BeliefForkInput = {\n text: string;\n forkReason?: string;\n rationale?: string;\n};\n\ntype BeliefConfidenceInput = ModulateConfidenceInput;\n\ntype BeliefArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\nfunction normalizeBeliefConfidenceInput(\n input: BeliefConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\ntype BeliefContractInput = GatewayRecord;\n\ntype BeliefBisectInput = {\n expectedDirection: \"overconfident\" | \"underconfident\";\n timeRange?: {\n start: number;\n end: number;\n };\n};\n\ntype EdgeCreateInput = {\n sourceId: string;\n targetId: string;\n edgeType: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n reasoning?: string;\n};\n\ntype EdgeListQuery = {\n sourceId?: string;\n edgeType?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EdgeTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\ntype EvidenceCreateInput = {\n topicId?: string;\n text: string;\n source?: string;\n targetId?: string;\n weight?: number;\n rationale: string;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n};\n\ntype EvidenceListQuery = {\n topicId?: string;\n targetId?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EvidenceSearchInput = {\n q: string;\n topicId?: string;\n targetId?: string;\n methodology?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EvidenceLinkInput = {\n evidenceId: string;\n targetId: string;\n targetType?: \"belief\" | \"question\";\n weight?: number;\n rationale?: string;\n};\n\ntype QuestionsListQuery = {\n topicId?: string;\n status?: string;\n priority?: string;\n worktreeId?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype QuestionCreateInput = {\n topicId?: string;\n text: string;\n priority?: string;\n linkedBeliefId?: string;\n metadata?: JsonObject;\n};\n\ntype QuestionAnswerInput = {\n text: string;\n confidence?: string;\n evidenceIds?: string[];\n rationale?: string;\n};\n\ntype QuestionRefineInput = {\n text: string;\n rationale?: string;\n};\n\ntype QuestionArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\ntype QuestionStatusInput = {\n status: string;\n rationale?: string;\n};\n\ntype SearchQueryInput = {\n q?: string;\n query?: string;\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\ntype TaskCreateInput = {\n topicId?: string;\n title: string;\n description?: string;\n taskType?: string;\n priority?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n};\n\ntype TaskUpdateInput = {\n id: string;\n title?: string;\n description?: string;\n priority?: string;\n status?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n metadata?: JsonObject;\n};\n\ntype TaskCompleteInput = {\n id: string;\n outputSummary: string;\n};\n\ntype TaskListQuery = {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n limit?: number;\n};\n\ntype WorktreeCreateInput = {\n title: string;\n topicId?: string;\n objective?: string;\n hypothesis?: string;\n beliefIds?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n};\n\ntype WorktreeListQuery = {\n topicId?: string;\n status?: string;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n};\n\ntype WorktreeActivateInput = {\n id: string;\n};\n\ntype WorktreeUpdateInput = {\n id: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n status?: string;\n topicId?: string;\n additionalTopicIds?: string[];\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n lensId?: string;\n};\n\ntype WorktreeMergeInput = {\n id: string;\n summary?: string;\n outcomes: Array<{\n beliefId: string;\n confidence: number;\n rationale: string;\n }>;\n};\n\ntype WorktreeTargetsInput = {\n id: string;\n addBeliefIds?: string[];\n addQuestionIds?: string[];\n removeBeliefIds?: string[];\n removeQuestionIds?: string[];\n};\n\ntype OntologyListInput = {\n tenantId?: string;\n tier?: string;\n status?: string;\n};\n\ntype OntologyMatchInput = GatewayRecord;\n\ntype WebhookCreateInput = GatewayRecord;\ntype WebhookUpdateInput = GatewayRecord;\ntype WebhookListQuery = {\n topicId?: string;\n};\ntype WebhookTestInput = {\n topicId?: string;\n};\ntype WebhookDeliveriesQuery = {\n limit?: number;\n};\n\ntype EventsListQuery = {\n topicId?: string;\n after?: string;\n types?: string[];\n startTime?: number;\n endTime?: number;\n limit?: number;\n};\n\ntype ReplayEventsInput = GatewayRecord;\n\nfunction serializeTypes(types: string[] | undefined) {\n return Array.isArray(types) && types.length > 0 ? types.join(\",\") : undefined;\n}\n\nexport function createBeliefsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: BeliefCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: \"/api/platform/v1/beliefs\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: BeliefsListQuery\n ): Promise<PlatformGatewaySuccess<BeliefsListResult>> {\n return gateway.request<BeliefsListResult>({\n path: `/api/platform/v1/beliefs${toQueryString({\n topicId: query.topicId,\n status: query.status,\n worktreeId: query.worktreeId,\n minConfidence: query.minConfidence,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async refine(\n id: string,\n input: BeliefRefineInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async fork(\n id: string,\n input: BeliefForkInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/fork`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateConfidence(\n id: string,\n input: BeliefConfidenceInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence`,\n method: \"POST\",\n body: normalizeBeliefConfidenceInput(input),\n idempotencyKey,\n });\n },\n\n async updateStatus(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n status: \"active\" | \"superseded\" | \"archived\";\n reason?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateRationale(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n rationale?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-rationale\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async linkBeliefs(\n input: {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n weight?: number;\n context?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/link\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async unlinkEvidence(\n input: {\n beliefNodeId?: string;\n beliefId?: string;\n insightId?: string;\n evidenceId?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/unlink-evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateCriticality(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n criticality: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchUpdateCriticality(\n input: {\n updates: GatewayRecord[];\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/batch-update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async reassignTopic(\n input: {\n beliefNodeIds?: string[];\n beliefIds?: string[];\n targetTopicId: string;\n reason?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/reassign-topic\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async archive(\n id: string,\n input: BeliefArchiveInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async lineage(\n id: string\n ): Promise<PlatformGatewaySuccess<BeliefsLineageResult>> {\n return gateway.request<BeliefsLineageResult>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/lineage`,\n });\n },\n\n async confidenceHistory(\n id: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence-history`,\n });\n },\n\n async opinionHistory(\n id: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence-history`,\n });\n },\n\n async createContract(\n id: string,\n input: BeliefContractInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/contracts`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async bisect(\n id: string,\n input: BeliefBisectInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/bisect`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createContradictionsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async flag(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/contradictions\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: {\n topicId?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n }\n ): Promise<PlatformGatewaySuccess<ContradictionsListResult>> {\n return gateway.request<ContradictionsListResult>({\n path: `/api/platform/v1/contradictions${toQueryString({\n topicId: query.topicId,\n status: query.status,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/contradictions/${encodeURIComponent(id)}`,\n });\n },\n };\n}\n\nexport function createEdgesFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: EdgeCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: EdgeListQuery\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: `/api/platform/v1/edges${toQueryString({\n sourceId: query.sourceId,\n edgeType: query.edgeType,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async traverse(\n input: EdgeTraverseInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/traverse\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: {\n edgeId: string;\n weight?: number;\n confidence?: number;\n context?: string;\n derivationType?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async remove(\n input: { edgeId: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/remove\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async removeBetween(\n input: {\n fromNodeId: string;\n toNodeId: string;\n edgeType?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/remove-between\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchCreate(\n input: {\n edges: GatewayRecord[];\n skipLayerValidation?: boolean;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/batch\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n input: { edgeIds: string[] },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createEvidenceFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: EvidenceCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<EvidenceCreateResult>> {\n return gateway.request<EvidenceCreateResult>({\n path: \"/api/platform/v1/evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/evidence/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: EvidenceListQuery\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: `/api/platform/v1/evidence${toQueryString({\n topicId: query.topicId,\n targetId: query.targetId,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async link(\n input: EvidenceLinkInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<EvidenceLinkResult>> {\n return gateway.request<EvidenceLinkResult>({\n path: `/api/platform/v1/evidence/${encodeURIComponent(input.evidenceId)}/link`,\n method: \"POST\",\n body: {\n targetId: input.targetId,\n targetType: input.targetType,\n weight: input.weight,\n rationale: input.rationale,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async search(\n query: EvidenceSearchInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: \"/api/platform/v1/evidence/search\",\n method: \"POST\",\n body: query as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateStatus(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async flagIncorrect(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/flag-incorrect\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async remove(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/remove\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateVerificationStatus(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update-verification-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createEventsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async list(\n query: EventsListQuery = {}\n ): Promise<PlatformGatewaySuccess<EventsListResult>> {\n return gateway.request<EventsListResult>({\n path: `/api/platform/v1/events${toQueryString({\n topicId: query.topicId,\n after: query.after,\n types: serializeTypes(query.types),\n startTime: query.startTime,\n endTime: query.endTime,\n limit: query.limit,\n })}`,\n });\n },\n\n async replay(\n input: ReplayEventsInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/events/replay\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createGraphFacade(config: GatewayClientConfig = {}) {\n const graphClient = createGraphClient(config);\n const gateway = createGatewayRequestClient(config);\n\n return {\n async neighborhood(input: GraphNeighborhoodInput) {\n return graphClient.neighborhood({\n globalId: input.globalId,\n globalIds: Array.isArray(input.globalIds)\n ? input.globalIds.join(\",\")\n : input.globalIds,\n maxDepth: input.maxDepth,\n });\n },\n\n async traverse(input: GraphTraverseInput) {\n return graphClient.traverse(input);\n },\n\n async analyze(input: GraphAnalyzeInput = {}) {\n return graphClient.analyze(input);\n },\n\n async bias(input: GraphBiasInput = {}) {\n return graphClient.bias(input);\n },\n\n async gaps(input: GraphGapsInput) {\n return graphClient.gaps(input);\n },\n\n async falsify(\n input: GraphFalsifyInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/graph/falsify\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createIdentityFacade(config: GatewayClientConfig = {}) {\n const identityClient = createIdentityClient(config);\n\n return {\n async whoami() {\n const response = await identityClient.whoami();\n return Object.assign({}, response, response.data);\n },\n };\n}\n\nexport function createOntologiesFacade(config: GatewayClientConfig = {}) {\n const ontologyClient = createOntologyClient(config);\n const gateway = createGatewayRequestClient(config);\n\n return {\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n });\n },\n\n async list(query: OntologyListInput = {}) {\n return ontologyClient.list(query);\n },\n\n async bind(\n input: OntologyBindingInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(input.ontologyId)}/bind`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async match(\n input: OntologyMatchInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/ontologies/match\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createQuestionsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: QuestionCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: QuestionsListQuery\n ): Promise<PlatformGatewaySuccess<QuestionsListResult>> {\n return gateway.request<QuestionsListResult>({\n path: `/api/platform/v1/questions${toQueryString({\n topicId: query.topicId,\n status: query.status,\n priority: query.priority,\n worktreeId: query.worktreeId,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async answer(\n id: string,\n input: QuestionAnswerInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/answer`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async refine(\n id: string,\n input: QuestionRefineInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/refine`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async archive(\n id: string,\n input: QuestionArchiveInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateStatus(\n id: string,\n input: QuestionStatusInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/status`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchCreate(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/batch\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async add(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/add\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updatePriority(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update-priority\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async advanceToConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/advance-to-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async finalizeConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/finalize-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createSearchFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async query(\n input: SearchQueryInput\n ): Promise<PlatformGatewaySuccess<SearchResult>> {\n return gateway.request<SearchResult>({\n path: \"/api/platform/v1/search\",\n method: \"POST\",\n body: input as JsonObject,\n });\n },\n };\n}\n\nexport function createTasksFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: TaskCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/tasks\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: TaskUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(input.id)}`,\n method: \"PATCH\",\n body: {\n title: input.title,\n description: input.description,\n priority: input.priority,\n status: input.status,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n metadata: input.metadata,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async complete(\n input: TaskCompleteInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(input.id)}/complete`,\n method: \"POST\",\n body: {\n outputSummary: input.outputSummary,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: TaskListQuery\n ): Promise<PlatformGatewaySuccess<TaskListResult>> {\n return gateway.request<TaskListResult>({\n path: `/api/platform/v1/tasks${toQueryString({\n topicId: query.topicId,\n worktreeId: query.worktreeId,\n status: query.status,\n limit: query.limit,\n })}`,\n });\n },\n };\n}\n\nexport function createTopicsFacade(config: GatewayClientConfig = {}) {\n const topicsClient = createTopicsClient(config);\n\n return {\n async create(input: TopicCreateInput, idempotencyKey?: string) {\n return topicsClient.create(input, idempotencyKey);\n },\n\n async get(id: string) {\n return topicsClient.get(id);\n },\n\n async list(query: TopicListInput = {}) {\n return topicsClient.list(query);\n },\n\n async update(\n input: TopicUpdateInput & { id: string },\n idempotencyKey?: string\n ) {\n const { id, ...rest } = input;\n return topicsClient.update(id, rest, idempotencyKey);\n },\n\n async tree(input: TopicTreeQuery & { id: string }) {\n return topicsClient.getTree(input.id, {\n maxDepth: input.maxDepth,\n });\n },\n\n async coverage(input: TopicCoverageQuery & { id: string }) {\n return topicsClient.getCoverage(input.id, {\n includeDescendants: input.includeDescendants,\n maxDepth: input.maxDepth,\n });\n },\n\n async remove(id: string, idempotencyKey = randomIdempotencyKey()) {\n return topicsClient.remove(id, idempotencyKey);\n },\n\n async bulkCreate(\n input: TopicBulkCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ) {\n return topicsClient.bulkCreate(input, idempotencyKey);\n },\n };\n}\n\nexport function createWebhooksFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WebhookCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/webhooks\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WebhookListQuery = {}\n ): Promise<PlatformGatewaySuccess<WebhooksListResult>> {\n return gateway.request<WebhooksListResult>({\n path: `/api/platform/v1/webhooks${toQueryString({\n topicId: query.topicId,\n })}`,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n });\n },\n\n async update(\n id: string,\n input: WebhookUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n id: string,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n idempotencyKey,\n });\n },\n\n async test(\n id: string,\n input: WebhookTestInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/test`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async deliveries(\n id: string,\n query: WebhookDeliveriesQuery = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/deliveries${toQueryString({\n limit: query.limit,\n })}`,\n });\n },\n\n async health(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/health`,\n });\n },\n };\n}\n\nexport function createWorktreesFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WorktreeCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WorktreeListQuery\n ): Promise<PlatformGatewaySuccess<WorktreesListResult>> {\n return gateway.request<WorktreesListResult>({\n path: `/api/platform/v1/worktrees${toQueryString({\n topicId: query.topicId,\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n });\n },\n\n async listCampaigns(\n query: {\n topicId?: string;\n status?: string;\n limit?: number;\n } = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString({\n topicId: query.topicId,\n status: query.status,\n limit: query.limit,\n })}`,\n });\n },\n\n async activate(\n input: WorktreeActivateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/activate`,\n method: \"POST\",\n body: {} as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: WorktreeUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}`,\n method: \"PATCH\",\n body: {\n objective: input.objective,\n hypothesis: input.hypothesis,\n rationale: input.rationale,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n status: input.status,\n topicId: input.topicId,\n additionalTopicIds: input.additionalTopicIds,\n proofArtifacts: input.proofArtifacts,\n staffingHint: input.staffingHint,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async merge(\n input: WorktreeMergeInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/merge`,\n method: \"POST\",\n body: {\n summary: input.summary,\n outcomes: input.outcomes,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateTargets(\n input: WorktreeTargetsInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/targets`,\n method: \"POST\",\n body: {\n addBeliefIds: input.addBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeBeliefIds: input.removeBeliefIds,\n removeQuestionIds: input.removeQuestionIds,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async complete(\n input: {\n worktreeId: string;\n keyFindings?: string[];\n decisionsReached?: string[];\n nextSteps?: string[];\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/complete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async advancePhase(\n input: { worktreeId: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/advance-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async setPhase(\n input: { worktreeId: string; phase: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/set-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async patchState(\n input: { worktreeId: string; patch: GatewayRecord },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/patch-state\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async bulkCreate(\n input: { worktrees: unknown[] },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/bulk\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n createListResult,\n mapGatewayData,\n normalizeTopicQuery,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentRecord,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n PendingJudgmentOutcomeRecord,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n TopicIdentifierInput,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n} from \"./types\";\n\n/** Configuration for the decisions client. */\nexport type DecisionsClientConfig = GatewayClientConfig;\n\n/** Input for recording a new judgment (irreversible decision commitment). */\nexport type RecordJudgmentInput = {\n title: string;\n summary?: string;\n rationale: string;\n topicId?: string;\n confidence?: number;\n decisionConfidence?: number;\n judgmentType?: string;\n decisionType?: string;\n beliefIds?: string[];\n keyUncertainties?: string[];\n alternativesConsidered?: string[];\n decisionMakers?: string[];\n companyId?: string;\n amount?: number;\n valuation?: number;\n terms?: string;\n themeIds?: string[];\n} & TopicIdentifierInput;\n\n/** Filter parameters for listing judgments within a topic scope. */\nexport type ListJudgmentsInput = {\n topicId?: string;\n includeArchived?: boolean;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for recording the real-world outcome of a judgment. */\nexport type RecordJudgmentOutcomeInput = {\n outcome:\n | \"pending\"\n | \"successful\"\n | \"unsuccessful\"\n | \"mixed\"\n | \"unknown\"\n | \"too_early\";\n outcomeNotes?: string;\n notes?: string;\n};\n\n/** Input for retrieving judgment calibration analytics. */\nexport type GetJudgmentCalibrationInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for listing judgments still awaiting outcome review. */\nexport type ListPendingJudgmentOutcomeReviewInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for checking audit integrity of judgment state transitions. */\nexport type GetJudgmentTransitionAuditIntegrityInput = {\n topicId?: string;\n judgmentId?: string;\n includePassing?: boolean;\n} & TopicIdentifierInput;\n\n/**\n * Create the judgments client for decision lifecycle operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage judgments, outcomes, readiness, and calibration.\n */\nexport function createDecisionsClient(config: DecisionsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List judgments for a topic scope.\n */\n async listJudgments(query: ListJudgmentsInput) {\n return gateway.request<ListJudgmentsResponse>({\n path: `/api/platform/v1/graph/judgments${toQueryString({\n ...normalizeTopicQuery(query),\n includeArchived:\n typeof query.includeArchived === \"boolean\"\n ? query.includeArchived\n ? \"true\"\n : \"false\"\n : undefined,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const rows = Array.isArray(data) ? data : [];\n const judgments = rows.map((row) =>\n withTopicAlias(row as Record<string, unknown>) as JudgmentRecord\n );\n return {\n ...createListResult(judgments, \"judgments\"),\n } as ListJudgmentsResponse;\n })\n );\n },\n\n /**\n * Get a single judgment by identifier.\n */\n async getJudgment(judgmentId: string) {\n return gateway.request<GetJudgmentResponse>({\n path: `/api/platform/v1/graph/judgments/${encodeURIComponent(judgmentId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n data && typeof data === \"object\"\n ? (withTopicAlias(\n data as Record<string, unknown>\n ) as GetJudgmentResponse)\n : data\n )\n );\n },\n\n /**\n * Get readiness signals for creating a judgment.\n */\n async getJudgmentReadiness(query: {\n topicId?: string;\n } & TopicIdentifierInput) {\n return gateway.request<JudgmentReadinessResponse>({\n path: `/api/platform/v1/graph/judgments/readiness${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * Get calibration analytics for judgment outcomes.\n */\n async getJudgmentCalibration(query: GetJudgmentCalibrationInput) {\n return gateway.request<JudgmentCalibrationResponse>({\n path: `/api/platform/v1/graph/judgments/calibration${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * List judgments still awaiting outcome review.\n */\n async listPendingOutcomeReviews(\n query: ListPendingJudgmentOutcomeReviewInput\n ) {\n return gateway.request<PendingJudgmentOutcomeReviewResponse>({\n path: `/api/platform/v1/graph/judgments/pending-outcome-review${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const rows = Array.isArray(data) ? data : [];\n const reviews = rows.map((row) =>\n withTopicAlias(\n row as Record<string, unknown>\n ) as PendingJudgmentOutcomeRecord\n );\n return createListResult(reviews, \"reviews\");\n })\n );\n },\n\n /**\n * @deprecated Use listPendingOutcomeReviews.\n */\n async listPendingJudgmentOutcomeReview(\n query: ListPendingJudgmentOutcomeReviewInput\n ) {\n return this.listPendingOutcomeReviews(query);\n },\n\n /**\n * Get audit integrity checks for judgment transitions.\n */\n async getJudgmentTransitionAuditIntegrity(\n query: GetJudgmentTransitionAuditIntegrityInput\n ) {\n return gateway.request<JudgmentTransitionAuditIntegrityResponse>({\n path: `/api/platform/v1/graph/judgments/transition-audit-integrity${toQueryString(\n {\n ...normalizeTopicQuery(query),\n judgmentId: query.judgmentId,\n includePassing:\n typeof query.includePassing === \"boolean\"\n ? query.includePassing\n ? \"true\"\n : \"false\"\n : undefined,\n }\n )}`,\n });\n },\n\n /**\n * Create a judgment.\n */\n async createJudgment(input: RecordJudgmentInput, idempotencyKey?: string) {\n return gateway.request<RecordJudgmentResponse>({\n path: \"/api/platform/v1/graph/judgments\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(\n data as Record<string, unknown>\n ) as RecordJudgmentResponse\n )\n );\n },\n\n /**\n * @deprecated Use createJudgment.\n */\n async recordJudgment(input: RecordJudgmentInput, idempotencyKey?: string) {\n return this.createJudgment(input, idempotencyKey);\n },\n\n /**\n * Update the outcome for an existing judgment.\n */\n async updateJudgmentOutcome(\n judgmentId: string,\n input: RecordJudgmentOutcomeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<RecordJudgmentOutcomeResponse>({\n path: `/api/platform/v1/graph/judgments/${encodeURIComponent(judgmentId)}/outcome`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use updateJudgmentOutcome.\n */\n async recordJudgmentOutcome(\n judgmentId: string,\n input: RecordJudgmentOutcomeInput,\n idempotencyKey?: string\n ) {\n return this.updateJudgmentOutcome(judgmentId, input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n} from \"./coreClient\";\nimport type {\n CompileContextInput,\n PublicCompiledContext,\n} from \"./contextTypes\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the context client. */\nexport type ContextClientConfig = GatewayClientConfig;\n\n/** Alias for the compiled context payload returned by the gateway. */\nexport type CompileContextResponse = PublicCompiledContext;\n\n/** Internal request shape for the context compile endpoint. */\ntype ContextClientRequest = {\n path: \"/api/platform/v1/context/compile\";\n method: \"POST\";\n body: Record<string, unknown>;\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 buildCompileContextRequest(\n topicId: string,\n input: CompileContextInput = {}\n): ContextClientRequest {\n const payload: Record<string, unknown> = { topicId };\n\n const query = cleanString(input.query);\n if (query) {\n payload.query = query;\n }\n\n const budget = cleanNumber(input.budget) ?? cleanNumber(input.tokenBudget);\n if (budget !== undefined) {\n payload.budget = budget;\n }\n\n const ranking = cleanString(input.ranking) ?? cleanString(input.rankingProfile);\n if (ranking) {\n payload.ranking = ranking;\n }\n\n const limit = cleanNumber(input.limit);\n if (limit !== undefined) {\n payload.limit = limit;\n }\n\n const maxDepth = cleanNumber(input.maxDepth);\n if (maxDepth !== undefined) {\n payload.maxDepth = maxDepth;\n }\n\n const includeEntities = cleanBoolean(input.includeEntities);\n if (includeEntities !== undefined) {\n payload.includeEntities = includeEntities;\n }\n\n const mode = cleanString(input.mode);\n if (mode) {\n payload.mode = mode;\n }\n\n const includeFailures = cleanBoolean(input.includeFailures);\n if (includeFailures !== undefined) {\n payload.includeFailures = includeFailures;\n }\n\n const worktreeId = cleanString(input.worktreeId);\n if (worktreeId) {\n payload.worktreeId = worktreeId;\n }\n\n const sessionId = cleanString(input.sessionId);\n if (sessionId) {\n payload.sessionId = sessionId;\n }\n\n if (Array.isArray(input.packWeightOverrides) && input.packWeightOverrides.length > 0) {\n payload.packWeightOverrides = input.packWeightOverrides;\n }\n\n return {\n path: \"/api/platform/v1/context/compile\",\n method: \"POST\",\n body: payload,\n };\n}\n\n/**\n * Create the context client for compiling reasoning context packs.\n * @param config - Gateway transport configuration.\n * @returns An object with a `compile` method for building context packs.\n */\nexport function createContextClient(config: ContextClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * Compile a focused reasoning context pack for a topic scope.\n * @param topicId - The topic to compile context for.\n * @param input - Optional compile parameters (query, budget, ranking, etc.).\n * @returns The compiled context payload with beliefs, questions, and evidence.\n */\n async compile(topicId: string, input: CompileContextInput = {}) {\n const request = buildCompileContextRequest(topicId, input);\n return gateway.request<CompileContextResponse>({\n ...request,\n body: request.body as JsonObject,\n });\n },\n };\n}\n\nexport type { CompileContextInput, PublicCompiledContext } from \"./contextTypes\";\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { JsonObject, JsonValue, TopicIdentifierInput } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the harness client. Inherits gateway transport settings. */\nexport type HarnessClientConfig = GatewayClientConfig;\n\nexport type HarnessAgentGuardrails = {\n isolationMode?: \"direct\" | \"sandbox\";\n maxExecutionMs?: number;\n heartbeatIntervalMs?: number;\n maxToolCalls?: number;\n allowNetworkEgress?: boolean;\n allowedOrigins?: string[];\n};\n\nexport type HarnessAgentRuntimeConfig = {\n entryPoint?: string;\n callbackUrl?: string;\n modelRouting?: \"model_machine\" | \"tenant_proxy\" | \"bring_your_own\";\n auditMode?: \"harness\" | \"master_control\";\n};\n\n/** Input for creating or updating an agent definition in the harness registry. */\nexport type HarnessAgentWriteInput = GatewayScope & {\n agentDefinitionId?: string;\n agentKey: string;\n displayName: string;\n description: string;\n version: string;\n status?: \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n scopeRequirements?: string[];\n promptReleaseChannel?: \"dev\" | \"staging\" | \"prod\";\n promptName?: string;\n systemPrompt?: string;\n toolIds?: string[];\n modelSlot?: string;\n requiredModelCapabilities?: string[];\n parameterSchema?: JsonObject;\n outputSchema?: JsonObject;\n guardrails?: HarnessAgentGuardrails;\n runtimeConfig?: HarnessAgentRuntimeConfig;\n exampleInvocations?: Array<{\n input: JsonObject;\n expectedOutput?: JsonValue;\n }>;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a tool definition in the harness registry. */\nexport type HarnessToolWriteInput = GatewayScope & {\n toolId?: string;\n toolName: string;\n description: string;\n version: string;\n status?: \"draft\" | \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n gateClassification?: \"core\" | \"shimmed\";\n scopeRequirements?: string[];\n requiredRole?: string;\n requiredAction?: string;\n surfaces?: string[];\n category?: string;\n parameterSchema?: JsonObject;\n returnSchema?: JsonObject;\n handlerRef?: string;\n callbackUrl?: string;\n safetyMetadata: {\n readOnly?: boolean;\n idempotent?: boolean;\n sideEffectLevel: \"none\" | \"low\" | \"high\";\n };\n exampleInvocations?: Array<{\n input: JsonObject;\n expectedOutput?: JsonValue;\n }>;\n metadata?: JsonObject;\n};\n\nexport type HarnessExecuteToolInput = GatewayScope & {\n input?: JsonObject;\n version?: string;\n transportKind?: string;\n};\n\nexport type HarnessExecuteToolResult = {\n tool: {\n toolId: string;\n toolName: string;\n version: string;\n status: \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n gateClassification: \"core\" | \"shimmed\";\n scopeRequirements: string[];\n safetyMetadata: {\n readOnly: boolean;\n idempotent: boolean;\n sideEffectLevel: \"none\" | \"low\" | \"high\";\n };\n };\n execution: {\n input: JsonObject;\n transportKind: string;\n startedAt: number;\n completedAt: number;\n durationMs: number;\n };\n envelope: JsonObject | null;\n audit: {\n toolName: string;\n contractName: string;\n transportKind: string;\n authMode: string;\n requiredScopes: string[];\n source: \"gateway_envelope\";\n isError: boolean;\n code?: string;\n status?: number;\n correlationId?: string | null;\n policyTraceId?: string | null;\n invariant?: string | null;\n } | null;\n output: {\n isError: boolean;\n parsed: JsonValue;\n raw: JsonValue;\n };\n};\n\n/** Input for starting a new harness run (agent execution session). */\nexport type HarnessStartRunInput = GatewayScope & {\n agentDefinitionId: string;\n agentVersion: string;\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n promptReleaseChannel?: \"dev\" | \"staging\" | \"prod\";\n chatId?: string;\n worktreeId?: string;\n topicId?: string;\n langfuseTraceId?: string;\n metadata?: JsonObject;\n} & TopicIdentifierInput;\n\nexport type HarnessInvokeManagedAgentInput = GatewayScope & {\n agentDefinitionId: string;\n input?: JsonObject;\n metadata?: JsonObject;\n};\n\n/** Input for reporting a ledger event (tool call, prompt resolution, or policy decision) within a run. */\nexport type HarnessRunReportInput = {\n reportingToken: string;\n type: \"tool_call\" | \"prompt_resolution\" | \"policy_decision\";\n metadata?: JsonObject;\n toolCallId?: string;\n toolName?: string;\n executionAdapter?:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n policyDecisionId?: string;\n requiredScopes?: string[];\n policyResult?: \"allowed\" | \"denied\";\n policyReasonCode?: string;\n inputHash?: string;\n outputHash?: string;\n durationMs?: number;\n success?: boolean;\n startedAt?: number;\n completedAt?: number;\n input?: JsonObject;\n result?: JsonValue;\n promptKey?: string;\n promptVersion?: string;\n decision?: string;\n reasonCode?: string;\n latencyMs?: number;\n error?:\n | string\n | {\n code?: string;\n message: string;\n details?: JsonValue;\n };\n};\n\n/** Input for completing a harness run with a terminal status. */\nexport type HarnessCompleteRunInput = {\n reportingToken: string;\n status: \"completed\" | \"failed\" | \"timeout\";\n error?: {\n category:\n | \"policy_denied\"\n | \"tool_execution\"\n | \"prompt_resolution\"\n | \"model_error\"\n | \"timeout\"\n | \"heartbeat_timeout\"\n | \"input_validation\"\n | \"internal\"\n | \"external_service\";\n message: string;\n code?: string;\n };\n};\n\n/**\n * Create the harness client for agent and tool registry operations.\n */\nexport function createHarnessClient(config: HarnessClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List agent definitions.\n */\n async listAgentDefinitions(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"agents\")\n )\n );\n },\n\n /**\n * Get an agent definition.\n */\n async getAgentDefinition(agentId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create an agent definition.\n */\n async createAgentDefinition(\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/agents\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createAgentDefinition.\n */\n async registerAgentDefinition(\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return this.createAgentDefinition(input, idempotencyKey);\n },\n\n /**\n * Update an agent definition.\n */\n async updateAgentDefinition(\n agentId: string,\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}`,\n method: \"PUT\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Invoke a managed agent definition.\n */\n async invokeManagedAgentDefinition(\n agentId: string,\n input: Omit<HarnessInvokeManagedAgentInput, \"agentDefinitionId\">,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}/runs`,\n method: \"POST\",\n body: {\n agentDefinitionId: agentId,\n ...input,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List runs for an agent definition.\n */\n async listAgentRuns(\n agentId: string,\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}/runs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"runs\")\n )\n );\n },\n\n /**\n * @deprecated Use listAgentRuns.\n */\n async listRunsForAgent(\n agentId: string,\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return this.listAgentRuns(agentId, scope);\n },\n\n /**\n * List tool definitions.\n */\n async listToolDefinitions(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n gateClassification?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"tools\")\n )\n );\n },\n\n /**\n * Get a tool definition.\n */\n async getToolDefinition(toolId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create a tool definition.\n */\n async createToolDefinition(\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/tools\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createToolDefinition.\n */\n async registerToolDefinition(\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return this.createToolDefinition(input, idempotencyKey);\n },\n\n /**\n * Update a tool definition.\n */\n async updateToolDefinition(\n toolId: string,\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}`,\n method: \"PUT\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Execute a tool definition.\n */\n async executeToolDefinition(\n toolId: string,\n input: HarnessExecuteToolInput = {}\n ) {\n return gateway.request<HarnessExecuteToolResult>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}/execute`,\n method: \"POST\",\n body: input,\n });\n },\n\n /**\n * List run ledger entries.\n */\n async listRunEntries(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"runs\")\n )\n );\n },\n\n /**\n * @deprecated Use listRunEntries.\n */\n async listRunLedgerEntries(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return this.listRunEntries(scope);\n },\n\n /**\n * Create a harness run.\n */\n async startHarnessRun(\n input: HarnessStartRunInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/runs\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get a run ledger entry.\n */\n async getRunLedgerEntry(runId: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}`,\n });\n },\n\n /**\n * Update a harness run with a ledger event.\n */\n async reportHarnessRunEvent(\n runId: string,\n input: HarnessRunReportInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/report`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a harness run heartbeat.\n */\n async heartbeatHarnessRun(\n runId: string,\n input: { reportingToken: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/heartbeat`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Complete a harness run.\n */\n async completeHarnessRun(\n runId: string,\n input: HarnessCompleteRunInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/complete`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List prompt resolutions.\n */\n async listPromptResolutions(\n query: { runId?: string; promptName?: string; limit?: number } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/prompts${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"prompts\")\n )\n );\n },\n\n /**\n * Get the harness scope taxonomy.\n */\n async getScopeTaxonomy() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/scopes\",\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { TopicIdentifierInput } from \"./types\";\n\n/** Configuration for the learning client. */\nexport type LearningClientConfig = GatewayClientConfig;\n\n/**\n * Create the learning client for execution telemetry reads.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list executions and retrieve stats.\n */\nexport function createLearningClient(config: LearningClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List recent execution records.\n */\n async listRecentExecutions(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n success?: boolean;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/learning/executions/recent${toQueryString({\n ...normalizeTopicQuery(args),\n namespace: args.namespace,\n audienceMode: args.audienceMode,\n success:\n typeof args.success === \"boolean\"\n ? args.success\n ? \"true\"\n : \"false\"\n : undefined,\n limit:\n typeof args.limit === \"number\" && Number.isFinite(args.limit)\n ? String(args.limit)\n : undefined,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"executions\")\n )\n );\n },\n\n /**\n * @deprecated Use listRecentExecutions.\n */\n async getRecentExecutions(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n success?: boolean;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return this.listRecentExecutions(args);\n },\n\n /**\n * Get aggregate execution statistics.\n */\n async getExecutionStats(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n hours?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/learning/executions/stats${toQueryString({\n ...normalizeTopicQuery(args),\n namespace: args.namespace,\n audienceMode: args.audienceMode,\n hours:\n typeof args.hours === \"number\" && Number.isFinite(args.hours)\n ? String(args.hours)\n : undefined,\n })}`,\n });\n },\n };\n}\n","/* GENERATED by scripts/generate-api-surface.ts. DO NOT EDIT. */\n\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n type PlatformGatewaySuccess,\n} from \"../coreClient\";\nimport type { JsonObject } from \"../types\";\n\nexport type FunctionSurfaceClientConfig = GatewayClientConfig;\nexport type FunctionSurfaceInput = JsonObject;\nexport type FunctionSurfaceResult<T = unknown> = Promise<PlatformGatewaySuccess<T>>;\nexport const FUNCTION_SURFACE_METHOD_PATHS = [\n \"answers.answerQuestion\",\n \"answers.createAnswer\",\n \"answers.getAnswer\",\n \"beliefs.archiveBelief\",\n \"beliefs.bisectConfidence\",\n \"beliefs.createBelief\",\n \"beliefs.forkBelief\",\n \"beliefs.getBelief\",\n \"beliefs.getConfidenceHistory\",\n \"beliefs.listBeliefs\",\n \"beliefs.modulateConfidence\",\n \"beliefs.refineBelief\",\n \"beliefs.searchBeliefs\",\n \"bootstrap.generateSessionHandoff\",\n \"coding.getChangeHistory\",\n \"coding.getCodeContext\",\n \"coding.getFailureLog\",\n \"coding.recordAttempt\",\n \"context.analyzeTopicDensity\",\n \"context.applyAutoBranching\",\n \"context.compileContext\",\n \"context.discover\",\n \"context.discoverEntityConnections\",\n \"context.getLatticeCoverage\",\n \"context.recordScopeLearning\",\n \"context.seedBeliefLattice\",\n \"context.triggerBeliefReview\",\n \"contracts.createEpistemicContract\",\n \"contracts.evaluateContract\",\n \"contracts.getContractStatus\",\n \"contradictions.flagContradiction\",\n \"coordination.broadcastMessage\",\n \"coordination.claimFiles\",\n \"coordination.endSession\",\n \"coordination.getAgentInbox\",\n \"coordination.heartbeatSession\",\n \"coordination.listActiveSessions\",\n \"coordination.registerSession\",\n \"coordination.sendAgentMessage\",\n \"edges.createEdge\",\n \"edges.queryLineage\",\n \"evidence.addEvidence\",\n \"evidence.createEvidence\",\n \"evidence.getEvidence\",\n \"evidence.linkEvidence\",\n \"evidence.linkEvidenceToBelief\",\n \"evidence.linkEvidenceToQuestion\",\n \"evidence.listEvidence\",\n \"evidence.searchEvidence\",\n \"graph.detectConfirmationBias\",\n \"graph.findContradictions\",\n \"graph.getGraphGaps\",\n \"graph.getGraphNeighborhood\",\n \"graph.getGraphStructureAnalysis\",\n \"graph.getTopicCoverage\",\n \"graph.traceEntityImpact\",\n \"graph.traverseGraph\",\n \"identity.checkPermission\",\n \"identity.filterByPermission\",\n \"identity.whoami\",\n \"judgments.getAuditTrail\",\n \"judgments.recordJudgment\",\n \"lenses.applyLensToTopic\",\n \"lenses.createLens\",\n \"lenses.listLenses\",\n \"lenses.removeLensFromTopic\",\n \"observations.getObservationContext\",\n \"observations.ingestObservation\",\n \"ontologies.applyOntology\",\n \"ontologies.archiveOntology\",\n \"ontologies.createOntology\",\n \"ontologies.createOntologyVersion\",\n \"ontologies.deprecateOntologyVersion\",\n \"ontologies.getOntology\",\n \"ontologies.listOntologies\",\n \"ontologies.matchEntityType\",\n \"ontologies.publishOntologyVersion\",\n \"ontologies.resolveEffectiveOntology\",\n \"ontologies.updateOntology\",\n \"policy.manageWritePolicy\",\n \"questions.archiveQuestion\",\n \"questions.createQuestion\",\n \"questions.findMissingQuestions\",\n \"questions.getFalsificationQuestions\",\n \"questions.getHighPriorityQuestions\",\n \"questions.getQuestion\",\n \"questions.listQuestions\",\n \"questions.refineQuestion\",\n \"questions.updateQuestionStatus\",\n \"tasks.completeTask\",\n \"tasks.createTask\",\n \"tasks.listTasks\",\n \"tasks.updateTask\",\n \"topics.createTopic\",\n \"topics.getTopic\",\n \"topics.getTopicTree\",\n \"topics.listTopics\",\n \"topics.updateTopic\",\n \"worktrees.activateWorktree\",\n \"worktrees.addWorktree\",\n \"worktrees.listAllWorktrees\",\n \"worktrees.listCampaigns\",\n \"worktrees.listWorktrees\",\n \"worktrees.merge\",\n \"worktrees.openPullRequest\",\n \"worktrees.pipelineSnapshot\",\n \"worktrees.push\",\n \"worktrees.updateWorktreeMetadata\",\n \"worktrees.updateWorktreeTargets\"\n] as const;\n\nconst CONTRACTS = {\n \"activate_worktree\": { method: \"POST\", path: \"/worktrees/activate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"add_evidence\": { method: \"POST\", path: \"/evidence/add\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"add_worktree\": { method: \"POST\", path: \"/worktrees\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"analyze_topic_density\": { method: \"POST\", path: \"/scope/topic-density\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"answer_question\": { method: \"POST\", path: \"/questions/answer\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"apply_auto_branching\": { method: \"POST\", path: \"/scope/auto-branching\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"apply_lens_to_topic\": { method: \"POST\", path: \"/lenses/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"apply_ontology\": { method: \"POST\", path: \"/ontologies/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"archive_belief\": { method: \"DELETE\", path: \"/beliefs\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"archive_ontology\": { method: \"DELETE\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"archive_question\": { method: \"DELETE\", path: \"/questions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"bisect_confidence\": { method: \"POST\", path: \"/beliefs/confidence/bisect\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"broadcast_message\": { method: \"POST\", path: \"/coordination/messages/broadcast\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"check_permission\": { method: \"POST\", path: \"/identity/check-permission\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"claim_files\": { method: \"POST\", path: \"/coordination/file-claims\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"compile_context\": { method: \"POST\", path: \"/context/compile\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"complete_task\": { method: \"POST\", path: \"/tasks/complete\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"create_answer\": { method: \"POST\", path: \"/answers\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_belief\": { method: \"POST\", path: \"/beliefs\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_edge\": { method: \"POST\", path: \"/edges\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"create_epistemic_contract\": { method: \"POST\", path: \"/contracts\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_evidence\": { method: \"POST\", path: \"/evidence\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_lens\": { method: \"POST\", path: \"/lenses\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_ontology\": { method: \"POST\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_ontology_version\": { method: \"POST\", path: \"/ontologies/versions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_question\": { method: \"POST\", path: \"/questions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_task\": { method: \"POST\", path: \"/tasks\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"create_topic\": { method: \"POST\", path: \"/topics\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"deprecate_ontology_version\": { method: \"POST\", path: \"/ontologies/versions/deprecate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"detect_confirmation_bias\": { method: \"POST\", path: \"/graph/confirmation-bias\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"discover\": { method: \"POST\", path: \"/context/discover\", kind: \"query\", idempotent: false, surfaceIntent: \"compatibility\" },\n \"discover_entity_connections\": { method: \"POST\", path: \"/context/entity-connections\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"end_session\": { method: \"POST\", path: \"/coordination/end-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"evaluate_contract\": { method: \"POST\", path: \"/contracts/evaluate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"filter_by_permission\": { method: \"POST\", path: \"/identity/filter-by-permission\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"find_contradictions\": { method: \"POST\", path: \"/graph/contradictions\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"find_missing_questions\": { method: \"POST\", path: \"/questions/missing\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"flag_contradiction\": { method: \"POST\", path: \"/contradictions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"fork_belief\": { method: \"POST\", path: \"/beliefs/fork\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"generate_session_handoff\": { method: \"POST\", path: \"/bootstrap/session-handoff\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_agent_inbox\": { method: \"POST\", path: \"/coordination/messages/inbox\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_answer\": { method: \"GET\", path: \"/answers/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_audit_trail\": { method: \"POST\", path: \"/judgments/audit-trail\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_belief\": { method: \"GET\", path: \"/beliefs/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_change_history\": { method: \"POST\", path: \"/coding/change-history\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_code_context\": { method: \"POST\", path: \"/coding/context\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_confidence_history\": { method: \"POST\", path: \"/beliefs/confidence-history\", kind: \"query\", idempotent: false, surfaceIntent: \"compatibility\" },\n \"get_contract_status\": { method: \"POST\", path: \"/contracts/status\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_governance\" },\n \"get_evidence\": { method: \"GET\", path: \"/evidence/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_failure_log\": { method: \"POST\", path: \"/coding/failure-log\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_falsification_questions\": { method: \"POST\", path: \"/questions/falsification\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_graph_gaps\": { method: \"POST\", path: \"/graph/gaps\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_graph_neighborhood\": { method: \"POST\", path: \"/graph/neighborhood\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_graph_structure_analysis\": { method: \"POST\", path: \"/graph/structure-analysis\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_high_priority_questions\": { method: \"POST\", path: \"/questions/high-priority\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_lattice_coverage\": { method: \"POST\", path: \"/scope/belief-lattice/coverage\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_observation_context\": { method: \"POST\", path: \"/observations/context\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"get_ontology\": { method: \"GET\", path: \"/ontologies/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"get_question\": { method: \"GET\", path: \"/questions/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_topic\": { method: \"GET\", path: \"/topics/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_topic_coverage\": { method: \"POST\", path: \"/graph/topic-coverage\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_topic_tree\": { method: \"GET\", path: \"/topics/tree\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"heartbeat_session\": { method: \"POST\", path: \"/coordination/heartbeat-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"identity_whoami\": { method: \"GET\", path: \"/identity/whoami\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"ingest_observation\": { method: \"POST\", path: \"/observations/ingest\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"link_evidence\": { method: \"POST\", path: \"/evidence/link\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"link_evidence_to_belief\": { method: \"POST\", path: \"/evidence/link-belief\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"link_evidence_to_question\": { method: \"POST\", path: \"/evidence/link-question\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"list_active_sessions\": { method: \"POST\", path: \"/coordination/active-sessions\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"list_all_worktrees\": { method: \"GET\", path: \"/worktrees/all\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_beliefs\": { method: \"GET\", path: \"/beliefs\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_campaigns\": { method: \"GET\", path: \"/worktrees/campaigns\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_evidence\": { method: \"GET\", path: \"/evidence\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_lenses\": { method: \"GET\", path: \"/lenses\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_ontologies\": { method: \"GET\", path: \"/ontologies\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_questions\": { method: \"GET\", path: \"/questions\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_tasks\": { method: \"GET\", path: \"/tasks\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_topics\": { method: \"GET\", path: \"/topics\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_worktrees\": { method: \"GET\", path: \"/worktrees\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"manage_write_policy\": { method: \"POST\", path: \"/policy/write-policy/manage\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"match_entity_type\": { method: \"POST\", path: \"/ontologies/match-entity-type\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"merge\": { method: \"POST\", path: \"/worktrees/merge\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"modulate_confidence\": { method: \"POST\", path: \"/beliefs/confidence\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"open_pull_request\": { method: \"POST\", path: \"/worktrees/open-pull-request\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"pipeline_snapshot\": { method: \"POST\", path: \"/worktrees/pipeline-snapshot\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"publish_ontology_version\": { method: \"POST\", path: \"/ontologies/versions/publish\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"push\": { method: \"POST\", path: \"/worktrees/push\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"query_lineage\": { method: \"POST\", path: \"/edges/lineage\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"record_attempt\": { method: \"POST\", path: \"/coding/attempts\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"record_judgment\": { method: \"POST\", path: \"/judgments\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"record_scope_learning\": { method: \"POST\", path: \"/scope/learnings\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"refine_belief\": { method: \"PATCH\", path: \"/beliefs/refine\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"refine_question\": { method: \"PATCH\", path: \"/questions/refine\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"register_session\": { method: \"POST\", path: \"/coordination/register-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"remove_lens_from_topic\": { method: \"DELETE\", path: \"/lenses/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"resolve_effective_ontology\": { method: \"POST\", path: \"/ontologies/effective\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"search_beliefs\": { method: \"POST\", path: \"/beliefs/search\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"search_evidence\": { method: \"POST\", path: \"/evidence/search\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"seed_belief_lattice\": { method: \"POST\", path: \"/scope/belief-lattice/seed\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"send_agent_message\": { method: \"POST\", path: \"/coordination/messages/send\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"trace_entity_impact\": { method: \"POST\", path: \"/graph/trace-entity-impact\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"traverse_graph\": { method: \"POST\", path: \"/graph/traverse\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"trigger_belief_review\": { method: \"POST\", path: \"/context/belief-review\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"update_ontology\": { method: \"PATCH\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"update_question_status\": { method: \"PATCH\", path: \"/questions/status\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"update_task\": { method: \"PATCH\", path: \"/tasks\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"update_topic\": { method: \"PATCH\", path: \"/topics\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"update_worktree_metadata\": { method: \"PATCH\", path: \"/worktrees/metadata\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"update_worktree_targets\": { method: \"PATCH\", path: \"/worktrees/targets\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n} as const;\n\nfunction createSessionId(): string {\n return typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\"\n ? crypto.randomUUID()\n : randomIdempotencyKey();\n}\n\nfunction withSdkSessionId(input: FunctionSurfaceInput, sessionId: string): FunctionSurfaceInput {\n return {\n ...input,\n __sdkSessionId: typeof input.__sdkSessionId === \"string\" ? input.__sdkSessionId : sessionId,\n };\n}\n\nfunction toFunctionSurfaceQuery(input: FunctionSurfaceInput): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined) {\n continue;\n }\n const serialized =\n typeof value === \"string\" ? value : JSON.stringify(value);\n if (serialized !== undefined) {\n params.set(key, serialized);\n }\n }\n const serialized = params.toString();\n return serialized ? `?${serialized}` : \"\";\n}\n\nexport function createFunctionSurfaceClient(config: FunctionSurfaceClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const sessionId = createSessionId();\n\n function execute<T = unknown>(\n name: keyof typeof CONTRACTS,\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ): FunctionSurfaceResult<T> {\n const contract = CONTRACTS[name];\n const payload = withSdkSessionId(input, sessionId);\n const path =\n contract.method === \"GET\"\n ? `${contract.path}${toFunctionSurfaceQuery(payload)}`\n : contract.path;\n return gateway.request<T>({\n path: `/api/platform/v1${path}`,\n method: contract.method,\n body: contract.method === \"GET\" ? undefined : payload,\n idempotencyKey:\n contract.kind !== \"query\" && Boolean(contract.idempotent)\n ? idempotencyKey ?? randomIdempotencyKey()\n : undefined,\n });\n }\n\n return {\n sessionId,\n activateWorktree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"activate_worktree\", input, idempotencyKey);\n },\n addEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"add_evidence\", input, idempotencyKey);\n },\n addWorktree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"add_worktree\", input, idempotencyKey);\n },\n analyzeTopicDensity(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"analyze_topic_density\", input, idempotencyKey);\n },\n answerQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"answer_question\", input, idempotencyKey);\n },\n applyAutoBranching(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_auto_branching\", input, idempotencyKey);\n },\n applyLensToTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_lens_to_topic\", input, idempotencyKey);\n },\n applyOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_ontology\", input, idempotencyKey);\n },\n archiveBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_belief\", input, idempotencyKey);\n },\n archiveOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_ontology\", input, idempotencyKey);\n },\n archiveQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_question\", input, idempotencyKey);\n },\n bisectConfidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"bisect_confidence\", input, idempotencyKey);\n },\n broadcastMessage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"broadcast_message\", input, idempotencyKey);\n },\n checkPermission(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"check_permission\", input, idempotencyKey);\n },\n claimFiles(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"claim_files\", input, idempotencyKey);\n },\n compileContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"compile_context\", input, idempotencyKey);\n },\n completeTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"complete_task\", input, idempotencyKey);\n },\n createAnswer(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_answer\", input, idempotencyKey);\n },\n createBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_belief\", input, idempotencyKey);\n },\n createEdge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_edge\", input, idempotencyKey);\n },\n createEpistemicContract(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_epistemic_contract\", input, idempotencyKey);\n },\n createEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_evidence\", input, idempotencyKey);\n },\n createLens(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_lens\", input, idempotencyKey);\n },\n createOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_ontology\", input, idempotencyKey);\n },\n createOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_ontology_version\", input, idempotencyKey);\n },\n createQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_question\", input, idempotencyKey);\n },\n createTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_task\", input, idempotencyKey);\n },\n createTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_topic\", input, idempotencyKey);\n },\n deprecateOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"deprecate_ontology_version\", input, idempotencyKey);\n },\n detectConfirmationBias(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"detect_confirmation_bias\", input, idempotencyKey);\n },\n discover(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"discover\", input, idempotencyKey);\n },\n discoverEntityConnections(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"discover_entity_connections\", input, idempotencyKey);\n },\n endSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"end_session\", input, idempotencyKey);\n },\n evaluateContract(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"evaluate_contract\", input, idempotencyKey);\n },\n filterByPermission(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"filter_by_permission\", input, idempotencyKey);\n },\n findContradictions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"find_contradictions\", input, idempotencyKey);\n },\n findMissingQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"find_missing_questions\", input, idempotencyKey);\n },\n flagContradiction(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"flag_contradiction\", input, idempotencyKey);\n },\n forkBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"fork_belief\", input, idempotencyKey);\n },\n generateSessionHandoff(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"generate_session_handoff\", input, idempotencyKey);\n },\n getAgentInbox(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_agent_inbox\", input, idempotencyKey);\n },\n getAnswer(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_answer\", input, idempotencyKey);\n },\n getAuditTrail(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_audit_trail\", input, idempotencyKey);\n },\n getBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_belief\", input, idempotencyKey);\n },\n getChangeHistory(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_change_history\", input, idempotencyKey);\n },\n getCodeContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_code_context\", input, idempotencyKey);\n },\n getConfidenceHistory(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_confidence_history\", input, idempotencyKey);\n },\n getContractStatus(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_contract_status\", input, idempotencyKey);\n },\n getEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_evidence\", input, idempotencyKey);\n },\n getFailureLog(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_failure_log\", input, idempotencyKey);\n },\n getFalsificationQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_falsification_questions\", input, idempotencyKey);\n },\n getGraphGaps(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_gaps\", input, idempotencyKey);\n },\n getGraphNeighborhood(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_neighborhood\", input, idempotencyKey);\n },\n getGraphStructureAnalysis(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_structure_analysis\", input, idempotencyKey);\n },\n getHighPriorityQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_high_priority_questions\", input, idempotencyKey);\n },\n getLatticeCoverage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_lattice_coverage\", input, idempotencyKey);\n },\n getObservationContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_observation_context\", input, idempotencyKey);\n },\n getOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_ontology\", input, idempotencyKey);\n },\n getQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_question\", input, idempotencyKey);\n },\n getTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic\", input, idempotencyKey);\n },\n getTopicCoverage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_coverage\", input, idempotencyKey);\n },\n getTopicTree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_tree\", input, idempotencyKey);\n },\n heartbeatSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"heartbeat_session\", input, idempotencyKey);\n },\n whoami(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"identity_whoami\", input, idempotencyKey);\n },\n ingestObservation(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"ingest_observation\", input, idempotencyKey);\n },\n linkEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence\", input, idempotencyKey);\n },\n linkEvidenceToBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_belief\", input, idempotencyKey);\n },\n linkEvidenceToQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_question\", input, idempotencyKey);\n },\n listActiveSessions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_active_sessions\", input, idempotencyKey);\n },\n listAllWorktrees(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_all_worktrees\", input, idempotencyKey);\n },\n listBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_beliefs\", input, idempotencyKey);\n },\n listCampaigns(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_campaigns\", input, idempotencyKey);\n },\n listEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_evidence\", input, idempotencyKey);\n },\n listLenses(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_lenses\", input, idempotencyKey);\n },\n listOntologies(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_ontologies\", input, idempotencyKey);\n },\n listQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_questions\", input, idempotencyKey);\n },\n listTasks(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_tasks\", input, idempotencyKey);\n },\n listTopics(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_topics\", input, idempotencyKey);\n },\n listWorktrees(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_worktrees\", input, idempotencyKey);\n },\n manageWritePolicy(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"manage_write_policy\", input, idempotencyKey);\n },\n matchEntityType(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"match_entity_type\", input, idempotencyKey);\n },\n merge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"merge\", input, idempotencyKey);\n },\n modulateConfidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"modulate_confidence\", input, idempotencyKey);\n },\n openPullRequest(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"open_pull_request\", input, idempotencyKey);\n },\n pipelineSnapshot(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"pipeline_snapshot\", input, idempotencyKey);\n },\n publishOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"publish_ontology_version\", input, idempotencyKey);\n },\n push(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"push\", input, idempotencyKey);\n },\n queryLineage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"query_lineage\", input, idempotencyKey);\n },\n recordAttempt(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_attempt\", input, idempotencyKey);\n },\n recordJudgment(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_judgment\", input, idempotencyKey);\n },\n recordScopeLearning(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_scope_learning\", input, idempotencyKey);\n },\n refineBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"refine_belief\", input, idempotencyKey);\n },\n refineQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"refine_question\", input, idempotencyKey);\n },\n registerSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"register_session\", input, idempotencyKey);\n },\n removeLensFromTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"remove_lens_from_topic\", input, idempotencyKey);\n },\n resolveEffectiveOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"resolve_effective_ontology\", input, idempotencyKey);\n },\n searchBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_beliefs\", input, idempotencyKey);\n },\n searchEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_evidence\", input, idempotencyKey);\n },\n seedBeliefLattice(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"seed_belief_lattice\", input, idempotencyKey);\n },\n sendAgentMessage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"send_agent_message\", input, idempotencyKey);\n },\n traceEntityImpact(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"trace_entity_impact\", input, idempotencyKey);\n },\n traverseGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"traverse_graph\", input, idempotencyKey);\n },\n triggerBeliefReview(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"trigger_belief_review\", input, idempotencyKey);\n },\n updateOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_ontology\", input, idempotencyKey);\n },\n updateQuestionStatus(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_question_status\", input, idempotencyKey);\n },\n updateTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_task\", input, idempotencyKey);\n },\n updateTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_topic\", input, idempotencyKey);\n },\n updateWorktreeMetadata(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_worktree_metadata\", input, idempotencyKey);\n },\n updateWorktreeTargets(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_worktree_targets\", input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the packs client. */\nexport type PacksClientConfig = GatewayClientConfig;\n\n/** Input for installing a pack into a tenant or workspace scope. */\nexport type PackInstallInput = GatewayScope & {\n packKey: string;\n version?: string;\n autoEnable?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for enabling a previously installed pack. */\nexport type PackEnableInput = GatewayScope & {\n packKey: string;\n metadata?: JsonObject;\n};\n\n/** Input for disabling an active pack. */\nexport type PackDisableInput = GatewayScope & {\n packKey: string;\n force?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for uninstalling a pack from a tenant or workspace scope. */\nexport type PackUninstallInput = GatewayScope & {\n packKey: string;\n metadata?: JsonObject;\n};\n\n/** Input for upgrading a pack through the prepare/canary/commit/rollback lifecycle. */\nexport type PackUpgradeInput = GatewayScope & {\n packKey: string;\n mode: \"prepare\" | \"canary\" | \"commit\" | \"rollback\";\n targetVersion?: string;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a pack entitlement record. */\nexport type PackEntitlementInput = GatewayScope & {\n packKey: string;\n status: \"active\" | \"disabled\" | \"revoked\";\n allowedLifecycles?: Array<\"active\" | \"beta\" | \"experimental\">;\n minVersion?: string;\n maxVersion?: string;\n metadata?: JsonObject;\n};\n\n/**\n * Create the packs client for pack catalog, state, and entitlement operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage pack lifecycle, telemetry, and entitlements.\n */\nexport function createPacksClient(config: PacksClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List catalog entries for available packs.\n */\n async listCatalog() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/catalog\",\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"catalog\")\n )\n );\n },\n\n /**\n * @deprecated Use listCatalog.\n */\n async getCatalog() {\n return this.listCatalog();\n },\n\n /**\n * Get the discovery catalog for packs.\n */\n async getDiscoveryCatalog() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/discovery\",\n });\n },\n\n /**\n * Get discovery details for a specific pack.\n */\n async getDiscoveryDetail(packKey: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/discovery/${encodeURIComponent(packKey)}`,\n });\n },\n\n /**\n * List pack states for the current scope.\n */\n async listStates(query: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/states${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"states\")\n )\n );\n },\n\n /**\n * @deprecated Use listStates.\n */\n async getStates(query: GatewayScope = {}) {\n return this.listStates(query);\n },\n\n /**\n * Get health details for a pack.\n */\n async getHealth(packKey: string, query: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/${encodeURIComponent(packKey)}/health${toQueryString(\n query\n )}`,\n });\n },\n\n /**\n * List pack telemetry entries.\n */\n async listTelemetry(\n query: GatewayScope & { lookbackHours?: number; limit?: number } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/telemetry${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"telemetry\")\n )\n );\n },\n\n /**\n * @deprecated Use listTelemetry.\n */\n async getTelemetry(\n query: GatewayScope & { lookbackHours?: number; limit?: number } = {}\n ) {\n return this.listTelemetry(query);\n },\n\n /**\n * Create a pack entitlement.\n */\n async createEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/entitlements\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a pack entitlement.\n */\n async updateEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createEntitlement or updateEntitlement.\n */\n async upsertEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * Install a pack.\n */\n async install(input: PackInstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/install\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Enable a pack.\n */\n async enable(input: PackEnableInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/enable\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Disable a pack.\n */\n async disable(input: PackDisableInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/disable\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Uninstall a pack.\n */\n async uninstall(input: PackUninstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/uninstall\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Upgrade a pack.\n */\n async upgrade(input: PackUpgradeInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/upgrade\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the policy client. */\nexport type PolicyClientConfig = GatewayClientConfig;\n\n/** Permission direction: read access or write access. */\nexport type PermissionKind = \"read\" | \"write\";\n\n/** Permission level for a write policy rule. */\nexport type WritePolicyPermission = \"allow\" | \"deny\" | \"review_required\";\n\ntype TopicRecord = {\n topicId?: string;\n name?: string;\n type?: string;\n isOwner?: boolean;\n [key: string]: unknown;\n};\n\n/** Structured explanation of how a policy decision was derived. */\nexport type PolicyDecisionExplanation = {\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\n/** Result of a permission check against the policy engine. */\nexport type PermissionDecision = {\n allowed?: boolean;\n decision?: string;\n reasonCode?: string;\n principalId?: string;\n topicId?: string;\n permission?: string;\n policyVersion?: string;\n traceId?: string | null;\n explanation?: PolicyDecisionExplanation;\n};\n\n/** A persisted write policy rule controlling mutation access. */\nexport type WritePolicyRecord = {\n id?: string;\n topicId?: string;\n role?: string;\n toolCategory?: string;\n permission?: WritePolicyPermission;\n maxWritesPerSession?: number;\n enabled?: boolean;\n rationale?: string;\n createdAt?: number;\n updatedAt?: number;\n createdBy?: string;\n resolution?: string;\n [key: string]: unknown;\n};\n\n/** Input for creating a write policy rule. */\nexport type WritePolicyCreateInput = GatewayScope & {\n topicId?: string;\n role: string;\n toolCategory: string;\n permission: WritePolicyPermission;\n maxWritesPerSession?: number;\n enabled?: boolean;\n rationale?: string;\n createdBy?: string;\n};\n\n/** Input for partially updating an existing write policy rule. */\nexport type WritePolicyUpdateInput = GatewayScope & {\n topicId?: string;\n clearTopicId?: boolean;\n role?: string;\n toolCategory?: string;\n permission?: WritePolicyPermission;\n maxWritesPerSession?: number;\n clearMaxWritesPerSession?: boolean;\n enabled?: boolean;\n rationale?: string;\n clearRationale?: boolean;\n};\n\nexport type TenantPolicyPermission = {\n resource: string;\n actions: string[];\n};\n\nexport type TenantPolicyRecord = {\n id?: string;\n tenantId: string;\n workspaceId?: string;\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings: string[];\n createdAt?: number;\n updatedAt?: number;\n createdBy?: string;\n updatedBy?: string;\n};\n\ntype AccessibleTopicsResponse = {\n permission: PermissionKind;\n topics: TopicRecord[];\n total: number;\n deniedTopics: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n};\n\ntype FilterByPermissionResponse = {\n permission: PermissionKind;\n allowedTopicIds: string[];\n deniedTopics: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n count: number;\n};\n\nfunction asTopicArray(data: unknown): TopicRecord[] {\n if (Array.isArray(data)) {\n return data.filter(\n (row): row is TopicRecord => Boolean(row) && typeof row === \"object\"\n );\n }\n return [];\n}\n\nfunction asWritePolicyRecord(data: unknown): WritePolicyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as WritePolicyRecord;\n}\n\nfunction asWritePolicyArray(data: unknown): WritePolicyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asWritePolicyRecord)\n .filter((row): row is WritePolicyRecord => Boolean(row));\n}\n\nfunction asRolePolicyRecord(data: unknown): TenantPolicyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantPolicyRecord;\n}\n\nfunction asRolePolicyArray(data: unknown): TenantPolicyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asRolePolicyRecord)\n .filter((row): row is TenantPolicyRecord => Boolean(row));\n}\n\n/**\n * Create the policy client for permission checks, grants, and write policies.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to check permissions, manage grants, and manage write policies.\n */\nexport function createPolicyClient(config: PolicyClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List policy decisions in the current scope.\n */\n async listDecisions(\n query: GatewayScope & {\n action?: string;\n decision?: string;\n traceId?: string;\n principalId?: string;\n topicId?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/policy/decisions${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"decisions\")\n )\n );\n },\n\n /**\n * Create a permission grant.\n */\n async grant(\n input: GatewayScope & {\n topicId: string;\n permission: PermissionKind;\n principal?: string;\n principalId?: string;\n groupId?: string;\n beliefClusterId?: string;\n expiresAt?: number;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/policy/grant\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete a permission grant by revoking it.\n */\n async revoke(\n input: GatewayScope & {\n topicId: string;\n principal?: string;\n principalId?: string;\n groupId?: string;\n beliefClusterId?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/policy/revoke\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List write policy rules for the current scope.\n */\n async listWritePolicies(\n query: GatewayScope & {\n topicId?: string;\n role?: string;\n toolCategory?: string;\n enabled?: boolean;\n } = {}\n ) {\n const response = await gateway.request<{ policies?: unknown[] }>({\n path: `/api/platform/v1/policy/write-policies${toQueryString(query)}`,\n });\n const rawPolicies =\n response.data && typeof response.data === \"object\"\n ? (response.data as { policies?: unknown[] }).policies\n : response.data;\n\n return {\n ...response,\n data: {\n policies: asWritePolicyArray(rawPolicies),\n },\n };\n },\n\n /**\n * Create a write policy rule.\n */\n async createWritePolicy(\n input: WritePolicyCreateInput,\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n id?: string;\n created?: boolean;\n policy?: unknown;\n }>({\n path: \"/api/platform/v1/policy/write-policies\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n id:\n typeof response.data?.id === \"string\" ? response.data.id : undefined,\n created: response.data?.created === true,\n policy: asWritePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Update an existing write policy rule by identifier.\n */\n async updateWritePolicy(\n id: string,\n input: WritePolicyUpdateInput,\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n id?: string;\n updated?: boolean;\n policy?: unknown;\n }>({\n path: `/api/platform/v1/policy/write-policies/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n id:\n typeof response.data?.id === \"string\" ? response.data.id : undefined,\n updated: response.data?.updated === true,\n policy: asWritePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Delete a write policy rule by identifier.\n */\n async deleteWritePolicy(\n id: string,\n scope: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<{ id?: string; deleted?: boolean }>({\n path: `/api/platform/v1/policy/write-policies/${encodeURIComponent(\n id\n )}${toQueryString(scope)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant role policies for the current scope.\n */\n async listRolePolicies(query: GatewayScope = {}) {\n const response = await gateway.request<{ policies?: unknown[] }>({\n path: `/api/platform/v1/policy/roles${toQueryString(query)}`,\n });\n\n return {\n ...response,\n data: {\n policies: asRolePolicyArray(response.data?.policies),\n },\n };\n },\n\n /**\n * Create a tenant role policy.\n */\n async createRolePolicy(\n input: GatewayScope & {\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings?: string[];\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ policy?: unknown }>({\n path: \"/api/platform/v1/policy/roles\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n policy: asRolePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Update a tenant role policy by identifier.\n */\n async updateRolePolicy(\n id: string,\n input: GatewayScope & {\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings?: string[];\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ policy?: unknown }>({\n path: `/api/platform/v1/policy/roles/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n policy: asRolePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Delete a tenant role policy by identifier.\n */\n async deleteRolePolicy(\n id: string,\n scope: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/policy/roles/${encodeURIComponent(id)}${toQueryString(\n scope\n )}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Check a permission decision for a topic or project scope.\n */\n async checkPermission(\n query: GatewayScope & {\n topicId?: string;\n permission?: PermissionKind;\n principal?: string;\n principalId?: string;\n beliefClusterId?: string;\n }\n ) {\n if (!query.topicId) {\n throw new Error(\"topicId is required\");\n }\n return gateway.request<PermissionDecision>({\n path: `/api/platform/v1/policy/check${toQueryString(query)}`,\n });\n },\n\n /**\n * List accessible topics for a principal.\n */\n async listAccessibleTopics(\n query: GatewayScope & {\n permission?: PermissionKind;\n includeShared?: boolean;\n principal?: string;\n principalId?: string;\n limit?: number;\n } = {}\n ) {\n const permission = query.permission ?? \"read\";\n const principal = query.principal ?? query.principalId;\n const response = await gateway.request<{\n permission?: PermissionKind;\n topics?: unknown[];\n total?: number;\n deniedTopics?: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n }>({\n path: `/api/platform/v1/policy/topics${toQueryString({\n tenantId: query.tenantId,\n workspaceId: query.workspaceId,\n permission,\n includeShared: query.includeShared,\n principal,\n limit: query.limit,\n })}`,\n });\n\n return {\n ...response,\n data: {\n permission,\n topics: asTopicArray(response.data?.topics),\n total:\n typeof response.data?.total === \"number\"\n ? response.data.total\n : asTopicArray(response.data?.topics).length,\n deniedTopics: Array.isArray(response.data?.deniedTopics)\n ? response.data.deniedTopics\n : [],\n } satisfies AccessibleTopicsResponse,\n };\n },\n\n /**\n * Filter topic identifiers by permission.\n */\n async filterByPermission(\n input: GatewayScope & {\n topicIds?: string[];\n permission?: PermissionKind;\n principal?: string;\n principalId?: string;\n }\n ) {\n const permission = input.permission ?? \"read\";\n const principal = input.principal ?? input.principalId;\n const uniqueTopicIds = [...new Set(input.topicIds ?? [])].filter(\n (topicId) => typeof topicId === \"string\" && topicId.trim().length > 0\n );\n const response = await gateway.request<{\n permission?: PermissionKind;\n allowedTopicIds?: string[];\n deniedTopics?: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n count?: number;\n }>({\n path: \"/api/platform/v1/policy/filter\",\n method: \"POST\",\n body: {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n topicIds: uniqueTopicIds,\n permission,\n principal,\n },\n });\n\n const allowedTopicIds = Array.isArray(response.data?.allowedTopicIds)\n ? response.data.allowedTopicIds\n : [];\n const deniedTopics = Array.isArray(response.data?.deniedTopics)\n ? response.data.deniedTopics\n : [];\n\n return {\n success: true,\n data: {\n permission,\n allowedTopicIds,\n deniedTopics,\n count:\n typeof response.data?.count === \"number\"\n ? response.data.count\n : allowedTopicIds.length,\n } satisfies FilterByPermissionResponse,\n };\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, resolveTopicId } from \"./sdkSurface\";\nimport type {\n TopicIdentifierInput,\n ProjectReportsResponse,\n ReportTemplatesResponse,\n ReportWithSectionsResponse,\n} from \"./types\";\n\n/** Configuration for the reports client. */\nexport type ReportsClientConfig = GatewayClientConfig;\nexport type {\n ProjectReportsResponse,\n ReportTemplatesResponse,\n ReportWithSectionsResponse,\n} from \"./types\";\n\n/**\n * Create the reports client for report templates and generated reports.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list templates, list reports, and get a report.\n */\nexport function createReportsClient(config: ReportsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List report templates.\n */\n async listTemplates(args: { slug?: string } = {}) {\n return gateway.request<ReportTemplatesResponse>({\n path: `/api/platform/v1/reports/templates${toQueryString({\n slug: args.slug,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\"\n ? (data as Record<string, unknown>)\n : {};\n const rows = Array.isArray(data)\n ? data\n : Array.isArray(record.templates)\n ? record.templates\n : [];\n return createListResult(rows, \"templates\") as ReportTemplatesResponse;\n })\n );\n },\n\n /**\n * @deprecated Use listTemplates.\n */\n async getTemplates(args: { slug?: string } = {}) {\n return this.listTemplates(args);\n },\n\n /**\n * List reports for a topic scope.\n */\n async listReports(\n input: TopicIdentifierInput,\n args: { summary?: boolean } = {}\n ) {\n const topicId = resolveTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return gateway.request<ProjectReportsResponse>({\n path: `/api/platform/v1/reports/topics/${encodeURIComponent(topicId)}${toQueryString(\n {\n summary:\n typeof args.summary === \"boolean\"\n ? args.summary\n ? \"true\"\n : \"false\"\n : undefined,\n }\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"reports\")\n )\n );\n },\n /**\n * Get a generated report.\n */\n async getReport(reportId: string) {\n return gateway.request<ReportWithSectionsResponse>({\n path: `/api/platform/v1/reports/${encodeURIComponent(reportId)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the schema client. */\nexport type SchemaClientConfig = GatewayClientConfig;\n\n/** Input for installing a schema pack into a tenant scope. */\nexport type SchemaPackInstallInput = GatewayScope & {\n packKey: string;\n version?: string;\n autoEnable?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a schema entitlement record. */\nexport type SchemaEntitlementInput = GatewayScope & {\n packKey: string;\n status: \"active\" | \"disabled\" | \"revoked\";\n allowedLifecycles?: Array<\"active\" | \"beta\" | \"experimental\">;\n minVersion?: string;\n maxVersion?: string;\n metadata?: JsonObject;\n};\n\n/**\n * Create the schema client for pack catalog and entitlement operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage schema packs and entitlements.\n */\nexport function createSchemaClient(config: SchemaClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List schema packs.\n */\n async listPacks(scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/packs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"packs\")\n )\n );\n },\n\n /**\n * Install a schema pack.\n */\n async installPack(input: SchemaPackInstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/schema/packs\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get a schema pack by identifier.\n */\n async getPack(packId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/packs/${encodeURIComponent(packId)}${toQueryString(\n scope\n )}`,\n });\n },\n\n /**\n * List schema entitlements.\n */\n async listEntitlements(scope: GatewayScope & { packKey?: string } = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/entitlements${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"entitlements\")\n )\n );\n },\n\n /**\n * Create a schema entitlement.\n */\n async createEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/schema/entitlements\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a schema entitlement.\n */\n async updateEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createEntitlement or updateEntitlement.\n */\n async upsertEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n };\n}\n","/** Current SDK package version. */\nexport const LUCERN_SDK_VERSION = \"0.2.0-alpha.1\";\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n asListItems,\n createListResult,\n mapAliasedList,\n mapGatewayData,\n normalizeTopicQuery,\n resolveTopicId,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n LensPerspectiveType,\n LensPromptTemplateReference,\n LensStatus,\n LensTaskTemplate,\n LensWorkflowTemplate,\n} from \"./contracts/lensWorkflow\";\nimport type {\n WorkflowAutoFixPolicy,\n WorkflowProofArtifact,\n WorkflowStaffingHint,\n} from \"./contracts/workflowRuntime\";\nimport type {\n AddWorktreeResponse,\n CompleteTaskResponse,\n CreateBranchResponse,\n CreateLensResponse,\n CreateTaskResponse,\n JsonObject,\n JsonValue,\n LensTopicBindingResponse,\n ListBranchesResponse,\n ListLensesResponse,\n ListTopicsResponse,\n ListWorktreesResponse,\n MergeWorktreeResponse,\n OpenPullRequestResponse,\n PushWorktreeResponse,\n SwitchTopicContextResponse,\n TopicIdentifierInput,\n UpdateTaskResponse,\n WorkflowBranchRecord,\n WorkflowLensRecord,\n WorkflowTopicRecord,\n WorkflowWorktreeRecord,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n AddWorktreeResponse,\n CompleteTaskResponse,\n CreateBranchResponse,\n CreateLensResponse,\n CreateTaskResponse,\n LensTopicBindingResponse,\n ListBranchesResponse,\n ListLensesResponse,\n ListTopicsResponse,\n ListWorktreesResponse,\n MergeWorktreeResponse,\n OpenPullRequestResponse,\n PushWorktreeResponse,\n SwitchTopicContextResponse,\n UpdateTaskResponse,\n} from \"./types\";\n\n/** Configuration for the workflow client. */\nexport type WorkflowClientConfig = GatewayClientConfig;\n\n/** Lifecycle status of a workflow branch. */\nexport type WorkflowBranchStatus = \"dormant\" | \"active\" | \"archived\";\n\n/** Lifecycle status of a workflow lens. */\nexport type WorkflowLensStatus = LensStatus;\n\n/** Analytical perspective type for a lens overlay. */\nexport type WorkflowLensPerspectiveType = LensPerspectiveType;\n\n/** Lifecycle status of a workflow worktree. */\nexport type WorkflowWorktreeStatus =\n | \"planning\"\n | \"active\"\n | \"paused\"\n | \"completed\"\n | \"merged\"\n | \"failed\"\n | \"archived\";\n\n/** Possible outcomes when merging worktree findings into the main belief line. */\nexport type WorkflowMergeOutcome =\n | \"validated\"\n | \"invalidated\"\n | \"forked\"\n | \"inconclusive\";\n\n/** Input for creating a new workflow worktree. */\nexport type AddWorktreeInput = {\n title: string;\n topicId?: string;\n branchId?: string;\n objective?: string;\n hypothesis?: string;\n beliefIds?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: WorkflowProofArtifact[];\n staffingHint?: WorkflowStaffingHint | string;\n lastReconciledAt?: number;\n autoFixPolicy?: WorkflowAutoFixPolicy;\n} & TopicIdentifierInput;\n\n/** Input for merging worktree findings with belief confidence outcomes. */\nexport type MergeInput = {\n outcomes: Array<{\n beliefId: string;\n confidence: number;\n rationale: string;\n }>;\n summary?: string;\n};\n\n/** Input for updating the beliefs and questions tracked by a worktree. */\nexport type UpdateWorktreeTargetsInput = {\n worktreeId: string;\n addBeliefIds?: string[];\n addQuestionIds?: string[];\n removeBeliefIds?: string[];\n removeQuestionIds?: string[];\n};\n\n/** Input for marking a worktree complete with recorded outcomes. */\nexport type CompleteWorktreeInput = {\n worktreeId: string;\n keyFindings?: string[];\n decisionsReached?: string[];\n nextSteps?: string[];\n};\n\n/** Input for moving a worktree forward to its next phase. */\nexport type AdvanceWorktreePhaseInput = {\n worktreeId: string;\n};\n\n/** Input for forcing a worktree into a specific phase. */\nexport type SetWorktreePhaseInput = {\n worktreeId: string;\n phase: string;\n};\n\n/** Input for patching arbitrary structured worktree state. */\nexport type PatchWorktreeStateInput = {\n worktreeId: string;\n patch: JsonObject;\n};\n\n/** Input for batch-creating worktrees through the workflow surface. */\nexport type BulkCreateWorktreesInput = {\n worktrees: unknown[];\n};\n\n/** Input for listing accessible topic contexts. */\nexport type ListTopicsInput = {\n includeShared?: boolean;\n limit?: number;\n};\n\n/** Input for switching the active topic context by name. */\nexport type SwitchTopicContextInput = {\n targetTopicName: string;\n};\n\n/** Input for creating a workflow task linked to a question or worktree. */\nexport type CreateTaskInput = {\n title: string;\n topicId?: string;\n taskType?: \"research\" | \"interview\" | \"analysis\" | \"data_collection\";\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n linkedBeliefId?: string;\n description?: string;\n priority?: \"low\" | \"medium\" | \"high\" | \"urgent\";\n} & TopicIdentifierInput;\n\n/** Input for marking a workflow task as completed with an output summary. */\nexport type CompleteTaskInput = {\n outputSummary: string;\n evidenceCreated?: boolean;\n};\n\n/** Input for partially updating an existing workflow task. */\nexport type UpdateTaskInput = {\n title?: string;\n description?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n priority?: \"critical\" | \"high\" | \"medium\" | \"low\";\n status?: \"todo\" | \"in_progress\" | \"blocked\" | \"done\";\n};\n\nfunction normalizeLensQuery<T extends { topicId?: string }>(\n value: T\n) {\n const topicId = resolveTopicId(value);\n return {\n ...value,\n ...(topicId ? { topicId } : {}),\n };\n}\n\n/**\n * Create the workflow client for lenses, legacy branches, worktrees, context,\n * and tasks.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage branches, lenses, worktrees, topics, and tasks.\n */\nexport function createWorkflowClient(config: WorkflowClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const client = {\n /**\n * List workflow branches for a topic scope.\n */\n async listBranches(query: {\n topicId?: string;\n status?: WorkflowBranchStatus;\n limit?: number;\n } & TopicIdentifierInput) {\n return gateway.request<ListBranchesResponse>({\n path: `/api/platform/v1/workflow/branches${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowBranchRecord, \"branches\">(data, \"branches\")\n )\n );\n },\n\n /**\n * Create a workflow branch.\n */\n async createBranch(\n input: {\n name: string;\n topicId?: string;\n description?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBranchResponse>({\n path: \"/api/platform/v1/workflow/branches\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateBranchResponse\n )\n );\n },\n\n /**\n * List reusable lenses for a workspace or topic scope.\n */\n async listLenses(query: {\n workspaceId?: string;\n topicId?: string;\n status?: WorkflowLensStatus;\n perspectiveType?: WorkflowLensPerspectiveType;\n } & TopicIdentifierInput) {\n return gateway.request<ListLensesResponse>({\n path: `/api/platform/v1/workflow/lenses${toQueryString(\n normalizeLensQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowLensRecord, \"lenses\">(data, \"lenses\")\n )\n );\n },\n\n /**\n * Create a reusable workflow lens.\n */\n async createLens(\n input: {\n name: string;\n workspaceId?: string;\n topicId?: string;\n description?: string;\n perspectiveType: WorkflowLensPerspectiveType;\n promptTemplates?: LensPromptTemplateReference[];\n workflowTemplates?: LensWorkflowTemplate[];\n taskTemplates?: LensTaskTemplate[];\n filterCriteria?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<CreateLensResponse>({\n path: \"/api/platform/v1/workflow/lenses\",\n method: \"POST\",\n body: payload as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateLensResponse\n )\n );\n },\n\n /**\n * Apply an existing lens to a topic.\n */\n async applyLensToTopic(\n input: {\n lensId: string;\n topicId?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<LensTopicBindingResponse>({\n path: \"/api/platform/v1/workflow/lens-bindings\",\n method: \"POST\",\n body: payload,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * Remove an applied lens from a topic.\n */\n async removeLensFromTopic(\n input: {\n lensId: string;\n topicId?: string;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const topicId = resolveTopicId(input);\n if (!topicId) {\n throw new LucernApiError({\n code: \"INVALID_REQUEST\",\n message: \"topicId is required\",\n status: 400,\n });\n }\n\n return gateway.request<LensTopicBindingResponse>({\n path: `/api/platform/v1/workflow/lens-bindings${toQueryString({\n lensId: input.lensId,\n topicId,\n })}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * List worktrees for a topic scope.\n */\n async listWorktrees(query: {\n topicId?: string;\n branchId?: string;\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } & TopicIdentifierInput) {\n const normalized = normalizeTopicQuery(query);\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees/all${toQueryString({\n ...normalized,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n )\n )\n );\n },\n\n /**\n * List all worktrees across accessible topics.\n */\n async listAllWorktrees(query: {\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } = {}) {\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees${toQueryString({\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\" && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {};\n const list = mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n );\n return {\n ...list,\n ...(record.lanes &&\n typeof record.lanes === \"object\" &&\n !Array.isArray(record.lanes)\n ? { lanes: record.lanes as Record<string, number> }\n : {}),\n ...(record.campaigns &&\n typeof record.campaigns === \"object\" &&\n !Array.isArray(record.campaigns)\n ? { campaigns: record.campaigns as Record<string, number> }\n : {}),\n } as ListWorktreesResponse;\n })\n );\n },\n\n /**\n * List compact pipeline campaigns with nested lanes.\n */\n async listCampaigns(query: {\n topicId?: string;\n status?: WorkflowWorktreeStatus;\n limit?: number;\n } & TopicIdentifierInput = {}) {\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * Create a workflow worktree.\n */\n async createWorktree(input: AddWorktreeInput, idempotencyKey?: string) {\n return gateway.request<AddWorktreeResponse>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * @deprecated Use createWorktree.\n */\n async addWorktree(input: AddWorktreeInput, idempotencyKey?: string) {\n return client.createWorktree(input, idempotencyKey);\n },\n\n /**\n * Merge a worktree into the main belief line.\n */\n async merge(\n worktreeId: string,\n input: MergeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<MergeWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/merge`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Activate a planning worktree.\n */\n async activateWorktree(worktreeId: string, idempotencyKey?: string) {\n return gateway.request<AddWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/activate`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * Update targeted beliefs/questions for a worktree.\n */\n async updateWorktreeTargets(\n input: UpdateWorktreeTargetsInput,\n idempotencyKey?: string\n ) {\n const { worktreeId, ...body } = input;\n return gateway.request<AddWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/targets`,\n method: \"POST\",\n body,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * Mark a worktree record complete.\n */\n async completeWorktree(\n input: CompleteWorktreeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/complete\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Advance a worktree to its next lifecycle phase.\n */\n async advanceWorktreePhase(\n input: AdvanceWorktreePhaseInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/advance-phase\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Force a worktree into a specific lifecycle phase.\n */\n async setWorktreePhase(\n input: SetWorktreePhaseInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/set-phase\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Patch opaque worktree state for orchestration flows.\n */\n async patchWorktreeState(\n input: PatchWorktreeStateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/patch-state\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Batch create worktree records.\n */\n async bulkCreateWorktrees(\n input: BulkCreateWorktreesInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/bulk\",\n method: \"POST\",\n body: input as unknown as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Open a pull request for a worktree.\n */\n async openPullRequest(\n worktreeId: string,\n input: {\n summary: string;\n reviewers?: string[];\n status?:\n | \"pending_review\"\n | \"changes_requested\"\n | \"approved\"\n | \"blocked\";\n },\n idempotencyKey?: string\n ) {\n return gateway.request<OpenPullRequestResponse>({\n path: `/api/platform/v1/workflow/worktrees/${encodeURIComponent(worktreeId)}/pull-request`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Push scored worktree findings into another context.\n */\n async push(\n worktreeId: string,\n input: {\n targetContext: string;\n beliefIds?: string[];\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<PushWorktreeResponse>({\n path: `/api/platform/v1/workflow/worktrees/${encodeURIComponent(worktreeId)}/push`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List accessible topic contexts.\n */\n async listTopics(query: ListTopicsInput = {}) {\n return gateway.request<ListTopicsResponse>({\n path: `/api/platform/v1/workflow/topics${toQueryString({\n includeShared:\n typeof query.includeShared === \"boolean\"\n ? query.includeShared\n ? \"true\"\n : \"false\"\n : undefined,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const items = asListItems<WorkflowTopicRecord>(data, \"topics\").map(\n (item) =>\n withTopicAlias(\n item as Record<string, unknown>\n ) as WorkflowTopicRecord\n );\n const record =\n data && typeof data === \"object\"\n ? (data as Record<string, unknown>)\n : {};\n return {\n ...record,\n ...createListResult(items, \"topics\"),\n total:\n typeof record.total === \"number\" ? record.total : items.length,\n } as ListTopicsResponse;\n })\n );\n },\n\n /**\n * Switch the active context by topic or project name.\n */\n async switchTopicContext(\n input: SwitchTopicContextInput,\n idempotencyKey?: string\n ) {\n return gateway.request<SwitchTopicContextResponse>({\n path: \"/api/platform/v1/workflow/topics/switch\",\n method: \"POST\",\n body: {\n targetTopicName: input.targetTopicName,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(\n data as Record<string, unknown>\n ) as SwitchTopicContextResponse\n )\n );\n },\n\n /**\n * Create a workflow task.\n */\n async createTask(input: CreateTaskInput, idempotencyKey?: string) {\n return gateway.request<CreateTaskResponse>({\n path: \"/api/platform/v1/workflow/tasks\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Complete a workflow task.\n */\n async completeTask(\n taskId: string,\n input: CompleteTaskInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CompleteTaskResponse>({\n path: `/api/platform/v1/workflow/tasks/${encodeURIComponent(taskId)}/complete`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a workflow task.\n */\n async updateTask(\n taskId: string,\n input: UpdateTaskInput,\n idempotencyKey?: string\n ) {\n return gateway.request<UpdateTaskResponse>({\n path: `/api/platform/v1/workflow/tasks/${encodeURIComponent(taskId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createBranch.\n */\n async createPillar(\n input: {\n name: string;\n topicId?: string;\n description?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return client.createBranch(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use addWorktree.\n */\n async createSprint(\n input: {\n title: string;\n topicId?: string;\n branchId?: string;\n hypothesis?: string;\n beliefIds?: string[];\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return client.createWorktree(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use merge.\n */\n async completeSprint(\n worktreeId: string,\n input: MergeInput,\n idempotencyKey?: string\n ) {\n return client.merge(worktreeId, input, idempotencyKey);\n },\n\n /**\n * @deprecated Use openPullRequest.\n */\n async requestReview(\n worktreeId: string,\n input: {\n summary: string;\n reviewers?: string[];\n status?:\n | \"pending_review\"\n | \"changes_requested\"\n | \"approved\"\n | \"blocked\";\n },\n idempotencyKey?: string\n ) {\n return client.openPullRequest(worktreeId, input, idempotencyKey);\n },\n\n /**\n * @deprecated Use push.\n */\n async publishFindings(\n worktreeId: string,\n input: {\n targetContext: string;\n beliefIds?: string[];\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return client.push(worktreeId, input, idempotencyKey);\n },\n };\n\n return client;\n}\n","import { type AdminClientConfig, createAdminClient } from \"./adminClient\";\nimport {\n type AnswersClientConfig,\n createAnswersClient,\n} from \"./answersClient\";\nimport {\n type AudiencesClientConfig,\n createAudiencesClient,\n} from \"./audiencesClient\";\nimport { type AuditClientConfig, createAuditClient } from \"./auditClient\";\nimport {\n type BeliefsClientConfig,\n createBeliefsClient,\n mapOpinionHistoryEntriesFromGatewayData,\n type ModulateConfidenceInput,\n type OpinionHistoryEntry,\n} from \"./beliefsClient\";\nimport {\n type SourcesClientConfig,\n createSourcesClient,\n} from \"./sourcesClient\";\nimport {\n createEvidenceClient,\n type EvidenceClientConfig,\n} from \"./evidenceClient\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n type CustomToolRegistration,\n clearRegisteredCustomTools,\n invokeRegisteredCustomTool,\n listRegisteredCustomTools,\n registerCustomTool,\n unregisterCustomTool,\n} from \"./customTools\";\nimport {\n createBeliefsFacade,\n createContradictionsFacade,\n createEdgesFacade,\n createEvidenceFacade,\n createEventsFacade,\n createGraphFacade,\n createIdentityFacade,\n createOntologiesFacade,\n createQuestionsFacade,\n createSearchFacade,\n createTasksFacade,\n createTopicsFacade,\n createWebhooksFacade,\n createWorktreesFacade,\n} from \"./gatewayFacades\";\nimport {\n createDecisionsClient,\n type DecisionsClientConfig,\n type RecordJudgmentInput,\n} from \"./decisionsClient\";\nimport {\n createContextClient,\n type ContextClientConfig,\n} from \"./contextClient\";\nimport { createGraphClient, type GraphClientConfig } from \"./graphClient\";\nimport { createHarnessClient, type HarnessClientConfig } from \"./harnessClient\";\nimport {\n createIdentityClient,\n type IdentityClientConfig,\n} from \"./identityClient\";\nimport {\n createLearningClient,\n type LearningClientConfig,\n} from \"./learningClient\";\nimport {\n createFunctionSurfaceClient,\n type FunctionSurfaceClientConfig,\n type FunctionSurfaceInput,\n} from \"./generated/functionSurface\";\nimport {\n createOntologyClient,\n type OntologyClientConfig,\n} from \"./ontologyClient\";\nimport { createPacksClient, type PacksClientConfig } from \"./packsClient\";\nimport { createPolicyClient, type PolicyClientConfig } from \"./policyClient\";\nimport { createReportsClient, type ReportsClientConfig } from \"./reportsClient\";\nimport { createSchemaClient, type SchemaClientConfig } from \"./schemaClient\";\nimport { asListItems, resolveText, resolveTopicId } from \"./sdkSurface\";\nimport { createTopicsClient, type TopicsClientConfig } from \"./topicsClient\";\nimport type {\n JsonObject,\n PlatformGraphEdge,\n PlatformGraphNode,\n} from \"./types\";\nimport { LUCERN_SDK_VERSION } from \"./version\";\nimport {\n type AddWorktreeInput,\n type CompleteTaskInput,\n type CreateTaskInput,\n createWorkflowClient,\n type MergeInput,\n type UpdateTaskInput,\n type WorkflowClientConfig,\n} from \"./workflowClient\";\n\ntype ClientConfig =\n | BeliefsClientConfig\n | SourcesClientConfig\n | GraphClientConfig\n | DecisionsClientConfig\n | AnswersClientConfig\n | ContextClientConfig\n | WorkflowClientConfig\n | AuditClientConfig\n | AdminClientConfig\n | EvidenceClientConfig\n | IdentityClientConfig\n | PolicyClientConfig\n | PacksClientConfig\n | ReportsClientConfig\n | LearningClientConfig\n | FunctionSurfaceClientConfig\n | OntologyClientConfig\n | HarnessClientConfig\n | SchemaClientConfig\n | AudiencesClientConfig\n | TopicsClientConfig;\n\ntype NodeLike = PlatformGraphNode;\ntype EdgeLike = PlatformGraphEdge;\ntype CustomToolInput = JsonObject;\ntype CustomToolInvoker = (input?: CustomToolInput) => Promise<unknown>;\ntype CustomToolNamespace = Record<string, CustomToolInvoker>;\ntype GatewayDataEnvelope<T extends Record<string, unknown>> =\n PlatformGatewaySuccess<T> & T;\n\ntype BeliefsCompatCreateInput = {\n topicId?: string;\n text?: string;\n canonicalText?: string;\n formulation?: string;\n rationale?: string;\n worktreeId?: string;\n pillar?: string;\n baseRate?: number;\n sourceBeliefIds?: string[];\n sourceType?: string;\n beliefType?: string;\n reversibility?: string;\n predictionMeta?: JsonObject;\n metadata?: JsonObject;\n};\n\ntype BeliefsCompatForkInput = {\n text?: string;\n newFormulation?: string;\n formulation?: string;\n forkReason?:\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n rationale?: string;\n};\n\ntype BeliefsCompatUpdateConfidenceInput = ModulateConfidenceInput;\n\nfunction asNodeArray(data: unknown): NodeLike[] {\n const rows = asListItems<NodeLike>(data, \"nodes\");\n if (rows.length > 0) {\n return rows.filter(\n (value): value is NodeLike => Boolean(value) && typeof value === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as NodeLike];\n }\n return [];\n}\n\nfunction asEdgeArray(data: unknown): EdgeLike[] {\n const rows = asListItems<EdgeLike>(data, \"edges\");\n if (rows.length > 0) {\n return rows.filter(\n (value): value is EdgeLike => Boolean(value) && typeof value === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as EdgeLike];\n }\n return [];\n}\n\nfunction normalizeBeliefStatus(status: string | undefined): string {\n if (!status) {\n return \"unscored\";\n }\n if (status === \"unscored\" || status === \"scored\" || status === \"archived\") {\n return status;\n }\n if (status === \"active\" || status === \"in_evaluation\") {\n return \"unscored\";\n }\n if (status === \"challenged\" || status === \"validated\") {\n return \"scored\";\n }\n return \"unscored\";\n}\n\nfunction confidenceFromNode(node: NodeLike): number {\n if (typeof node.confidence === \"number\") {\n return node.confidence;\n }\n if (typeof node.metadata?.confidence === \"number\") {\n return node.metadata.confidence;\n }\n return 0;\n}\n\nfunction toGatewayConfig(config: LucernClientConfig): GatewayClientConfig {\n return {\n baseUrl: config.baseUrl,\n fetchImpl: config.fetchImpl,\n maxRetries: config.maxRetries,\n timeoutMs: config.timeoutMs,\n timeoutMsByMethod: config.timeoutMsByMethod,\n requestIdFactory: config.requestIdFactory,\n onRequest: config.onRequest,\n onResponse: config.onResponse,\n getAuthHeaders: async () => {\n const base = (\n config.getAuthHeaders ? await config.getAuthHeaders() : {}\n ) as Record<string, string>;\n if (config.apiKey && !base[\"x-lucern-key\"] && !base.Authorization) {\n base[\"x-lucern-key\"] = config.apiKey;\n }\n if (config.userToken && !base[\"x-lucern-user-token\"]) {\n base[\"x-lucern-user-token\"] = config.userToken;\n }\n if (config.environment && !base[\"x-lucern-environment\"]) {\n base[\"x-lucern-environment\"] = config.environment;\n }\n return base;\n },\n };\n}\n\nfunction requireTopicId(args: { topicId?: string }): string {\n const topicId = resolveTopicId(args);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nconst AUDIT_NODE_REFERENCE_KEY_PATTERN =\n /(^|_)(id|nodeid|beliefid|resourceid|targetid|sourceid|subjectid|globalid|entityid|recordid|fromnodeid|tonodeid|linkednodeid|linkedbeliefid|nodeids|beliefids|resourceids)$/i;\n\nfunction matchesAuditNodeReference(value: unknown, nodeId: string): boolean {\n if (Array.isArray(value)) {\n return value.some((entry) => matchesAuditNodeReference(entry, nodeId));\n }\n\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n return Object.entries(value as Record<string, unknown>).some(([key, entry]) => {\n if (\n typeof entry === \"string\" &&\n entry === nodeId &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key)\n ) {\n return true;\n }\n\n if (\n Array.isArray(entry) &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key) &&\n entry.some((item) => item === nodeId)\n ) {\n return true;\n }\n\n return matchesAuditNodeReference(entry, nodeId);\n });\n}\n\nfunction requireText(args: {\n text?: string;\n canonicalText?: string;\n formulation?: string;\n newFormulation?: string;\n}): string {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n return text;\n}\n\nfunction requireBaseRate(args: { baseRate?: number }): number {\n const baseRate =\n typeof args.baseRate === \"number\" && Number.isFinite(args.baseRate)\n ? args.baseRate\n : 0.5;\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return baseRate;\n}\n\nfunction exposeGatewayData<T extends Record<string, unknown>>(\n response: PlatformGatewaySuccess<T>\n): GatewayDataEnvelope<T> {\n return Object.assign({}, response, response.data);\n}\n\n/**\n * Configuration for the high-level Lucern SDK client.\n *\n * At minimum, provide `apiKey` and `baseUrl`. The SDK handles\n * authentication, retries, and idempotency automatically.\n */\nexport type LucernClientConfig = ClientConfig & {\n /** API key for authenticating with the Lucern platform. */\n apiKey?: string;\n /**\n * Optional Clerk JWT for per-user identity and RBAC.\n * When present, the SDK operates in user-scoped mode with\n * pack-aware tool filtering. When absent, operates in agent mode.\n */\n userToken?: string;\n /**\n * Optional pack key for auto-install convenience.\n * When set, the SDK will call `packs.install()` on first use\n * to ensure the pack is available in the workspace.\n */\n packKey?: string;\n /** Target environment. Defaults to production if not specified. */\n environment?: \"sandbox\" | \"production\";\n};\n\n/**\n * Create the high-level Lucern SDK client with all domain namespaces.\n *\n * @param config - Client configuration with API key, base URL, and optional settings.\n * @returns The Lucern client with namespaced methods for beliefs, topics, evidence, decisions, and more.\n */\nexport function createLucernClient(config: LucernClientConfig = {}) {\n const gatewayConfig = toGatewayConfig(config);\n const beliefsClient = createBeliefsClient(gatewayConfig);\n const sourcesClient = createSourcesClient(gatewayConfig);\n const beliefsFacade = createBeliefsFacade(gatewayConfig);\n const evidenceClient = createEvidenceClient(gatewayConfig);\n const graphClient = createGraphClient(gatewayConfig);\n const graphFacade = createGraphFacade(gatewayConfig);\n const decisionsClient = createDecisionsClient(gatewayConfig);\n const contextClient = createContextClient(gatewayConfig);\n const workflowClient = createWorkflowClient(gatewayConfig);\n const auditClient = createAuditClient(gatewayConfig);\n const adminClient = createAdminClient(gatewayConfig);\n const answersClient = createAnswersClient(gatewayConfig);\n const contradictionsFacade = createContradictionsFacade(gatewayConfig);\n const edgesFacade = createEdgesFacade(gatewayConfig);\n const evidenceFacade = createEvidenceFacade(gatewayConfig);\n const eventsFacade = createEventsFacade(gatewayConfig);\n const identityClient = createIdentityClient(gatewayConfig);\n const identityFacade = createIdentityFacade(gatewayConfig);\n const ontologiesFacade = createOntologiesFacade(gatewayConfig);\n const questionsFacade = createQuestionsFacade(gatewayConfig);\n const searchFacade = createSearchFacade(gatewayConfig);\n const tasksFacade = createTasksFacade(gatewayConfig);\n const topicsFacade = createTopicsFacade(gatewayConfig);\n const webhooksFacade = createWebhooksFacade(gatewayConfig);\n const worktreesFacade = createWorktreesFacade(gatewayConfig);\n const policyClient = createPolicyClient(gatewayConfig);\n const ontologyClient = createOntologyClient(gatewayConfig);\n const functionSurfaceClient = createFunctionSurfaceClient(gatewayConfig);\n const packsClient = createPacksClient(gatewayConfig);\n const reportsClient = createReportsClient(gatewayConfig);\n const learningClient = createLearningClient(gatewayConfig);\n const harnessClient = createHarnessClient(gatewayConfig);\n const schemaClient = createSchemaClient(gatewayConfig);\n const audiencesClient = createAudiencesClient(gatewayConfig);\n const topicsClient = createTopicsClient(gatewayConfig);\n const gateway = createGatewayRequestClient(gatewayConfig);\n const customNamespaceCache = new Map<string, CustomToolNamespace>();\n\n // Pack auto-install: tracks whether the configured packKey has been installed.\n // Install is lazy — triggered on first API call or explicit ensurePack().\n let _packInstalled = !config.packKey; // true if no packKey configured\n let _packInstallPromise: Promise<void> | null = null;\n\n async function ensurePack(): Promise<void> {\n if (_packInstalled) {\n return;\n }\n if (_packInstallPromise) {\n return _packInstallPromise;\n }\n\n const installPromise = (async () => {\n try {\n await packsClient.install({\n packKey: config.packKey!,\n autoEnable: true,\n });\n _packInstalled = true;\n } catch (err) {\n // If the pack is already installed, treat as success\n if (err instanceof LucernApiError && err.code === \"ALREADY_EXISTS\") {\n _packInstalled = true;\n return;\n }\n // Re-throw — caller decides whether to proceed without the pack\n throw err;\n }\n })();\n\n _packInstallPromise = installPromise;\n\n try {\n await installPromise;\n } catch (error) {\n if (_packInstallPromise === installPromise) {\n _packInstallPromise = null;\n }\n throw error;\n }\n }\n\n const invokeCustomTool = async (\n fullName: string,\n input: CustomToolInput = {}\n ): Promise<unknown> => {\n const payload =\n input && typeof input === \"object\" && !Array.isArray(input) ? input : {};\n return invokeRegisteredCustomTool(fullName, payload, { source: \"sdk\" });\n };\n\n const getCustomNamespace = (namespace: string): CustomToolNamespace => {\n const normalized = namespace.trim() || \"custom\";\n const cached = customNamespaceCache.get(normalized);\n if (cached) {\n return cached;\n }\n\n const proxy = new Proxy(\n {},\n {\n get(_target, property): unknown {\n if (typeof property !== \"string\" || property === \"then\") {\n return;\n }\n return async (input: CustomToolInput = {}) =>\n invokeCustomTool(`${normalized}.${property}`, input);\n },\n }\n ) as CustomToolNamespace;\n\n customNamespaceCache.set(normalized, proxy);\n return proxy;\n };\n\n const extensionNamespaces = new Proxy(\n {},\n {\n get(_target, namespace): unknown {\n if (typeof namespace !== \"string\" || namespace === \"then\") {\n return;\n }\n return getCustomNamespace(namespace);\n },\n }\n ) as Record<string, CustomToolNamespace>;\n\n async function createEvidenceCompat(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n rationale?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n const rationale = args.rationale ?? args.supports?.reasoning;\n if (!rationale) {\n throw new Error(\"rationale is required\");\n }\n const metadata = {\n ...(args.metadata ?? {}),\n rationale,\n } as JsonObject;\n\n return evidenceFacade.create({\n topicId: resolveTopicId(args),\n text,\n source: args.source ?? args.sourceUrl,\n targetId: args.targetId ?? args.supports?.nodeId,\n weight: args.weight ?? args.supports?.weight,\n rationale,\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n title: args.title,\n content: args.content,\n contentType: args.contentType,\n kind: args.kind,\n });\n }\n\n async function addEvidence(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n rationale?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n const created = await createEvidenceCompat({\n ...args,\n targetId: args.supports ? undefined : args.targetId,\n weight: args.supports ? undefined : args.weight,\n });\n\n if (!args.supports) {\n return created.data;\n }\n\n const evidenceId = created.data.id;\n if (typeof evidenceId !== \"string\" || evidenceId.length === 0) {\n throw new Error(\"evidence create did not return an id\");\n }\n\n const linked = await evidenceFacade.link({\n evidenceId,\n targetId: args.supports.nodeId,\n weight: args.supports.weight,\n rationale: args.supports.reasoning,\n });\n\n return {\n ...created.data,\n edgeId: linked.data.edgeId,\n };\n }\n\n async function listBeliefs(args: {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }) {\n const response = await beliefsFacade.list({\n topicId: requireTopicId(args),\n status: args.status,\n worktreeId: args.worktreeId,\n minConfidence: args.minConfidence,\n limit: args.limit,\n cursor: args.cursor,\n });\n return Array.isArray(response.data.beliefs) ? response.data.beliefs : [];\n }\n\n async function searchBeliefs(args: {\n query: string;\n topicId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n }) {\n const topicId = resolveTopicId(args);\n if (!topicId) {\n return { results: [] };\n }\n const response = await searchFacade.query({\n q: args.query,\n topicId,\n types: [\"belief\"],\n status: args.status,\n minConfidence: args.minConfidence,\n limit: args.limit,\n });\n const data = exposeGatewayData(response);\n const groupedBeliefs = Array.isArray(data.beliefs)\n ? (data.beliefs as Record<string, unknown>[])\n : [];\n const mergedResults = Array.isArray(data.results)\n ? (data.results as Record<string, unknown>[])\n : [];\n const results =\n groupedBeliefs.length > 0\n ? groupedBeliefs\n : mergedResults.filter((result) => result.type === \"belief\");\n return { results };\n }\n\n async function searchResources(\n query: string,\n options: {\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n const topicId = resolveTopicId(options);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n\n return searchFacade\n .query({\n q: query,\n topicId,\n types: options.types as Array<\"belief\" | \"evidence\" | \"question\"> | undefined,\n status: options.status,\n minConfidence: options.minConfidence,\n limit: options.limit,\n cursor: options.cursor,\n })\n .then(exposeGatewayData);\n }\n\n async function findContradictions(args: {\n topicId?: string;\n nodeId?: string;\n status?: string;\n }) {\n const topicId = resolveTopicId(args);\n const response = topicId\n ? await graphClient.listNodes({\n topicId,\n nodeType: \"contradiction\",\n limit: 500,\n })\n : args.nodeId\n ? await graphClient.queryNodes({ nodeId: args.nodeId })\n : { data: [] };\n const contradictions = asNodeArray(response.data)\n .filter((node) => {\n const status =\n typeof node.metadata?.status === \"string\"\n ? node.metadata.status\n : typeof node.status === \"string\"\n ? node.status\n : \"unresolved\";\n if (args.status && status !== args.status) {\n return false;\n }\n return true;\n })\n .map((node) => ({\n beliefA:\n typeof node.metadata?.beliefA === \"string\"\n ? node.metadata.beliefA\n : \"\",\n beliefB:\n typeof node.metadata?.beliefB === \"string\"\n ? node.metadata.beliefB\n : \"\",\n description: node.canonicalText ?? \"\",\n severity:\n typeof node.metadata?.severity === \"string\"\n ? node.metadata.severity\n : \"medium\",\n status:\n typeof node.metadata?.status === \"string\"\n ? node.metadata.status\n : \"unresolved\",\n defeatType:\n typeof node.metadata?.defeatType === \"string\"\n ? node.metadata.defeatType\n : \"rebuts\",\n }));\n return { contradictions };\n }\n\n async function queryLineage(nodeId: string, depth = 5) {\n const response = await beliefsFacade.lineage(nodeId);\n const lineage = Array.isArray(response.data.lineage)\n ? response.data.lineage\n : [];\n const chain =\n lineage.length > 0\n ? lineage\n .slice(0, depth + 1)\n .map((entry, index) => ({\n nodeId: entry.nodeId ?? entry.beliefId ?? \"\",\n relation: index === 0 ? \"self\" : \"ancestor\",\n }))\n : [{ nodeId, relation: \"self\" }];\n return {\n chain,\n forkTree: {\n nodeId,\n parentCount: Math.max(0, lineage.length - 1),\n childCount: 0,\n children: [],\n },\n depth,\n beliefId: response.data.beliefId,\n lineage,\n };\n }\n\n async function getConfidenceHistory(nodeId: string) {\n return beliefsFacade.confidenceHistory(nodeId).then(exposeGatewayData);\n }\n\n async function getOpinionHistory(nodeId: string): Promise<OpinionHistoryEntry[]> {\n const response = await beliefsFacade.opinionHistory(nodeId);\n return mapOpinionHistoryEntriesFromGatewayData(response.data);\n }\n\n async function getAuditTrail(nodeId: string, limit = 50) {\n const events = await auditClient.listEvents({ limit });\n const entries = asListItems<JsonObject>(events.data, \"events\")\n .filter((event) => matchesAuditNodeReference(event, nodeId))\n .slice(0, limit)\n .map((event) => {\n const row = event as JsonObject;\n return {\n action: typeof row.action === \"string\" ? row.action : \"unknown\",\n actor: typeof row.actor === \"string\" ? row.actor : \"unknown\",\n timestamp:\n typeof row.timestamp === \"number\" ? row.timestamp : Date.now(),\n rationale:\n typeof row.rationale === \"string\"\n ? row.rationale\n : \"No rationale recorded.\",\n before: row.before ?? null,\n after: row.after ?? null,\n };\n });\n return { entries };\n }\n\n async function bisectConfidence(\n nodeId: string,\n args: { expectedDirection: \"overconfident\" | \"underconfident\" }\n ) {\n return beliefsFacade.bisect(nodeId, args).then(exposeGatewayData);\n }\n\n async function discoverTopics(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/discover\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function discoverEntityConnections(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/entity-connections\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function triggerBeliefReview(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/belief-review\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function createContractCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function evaluateContractCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts/evaluate\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function getContractStatusCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts/status\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function listContractsCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/contracts${toQueryString({\n beliefNodeId:\n typeof input.beliefNodeId === \"string\"\n ? input.beliefNodeId\n : undefined,\n contractId:\n typeof input.contractId === \"string\" ? input.contractId : undefined,\n status: typeof input.status === \"string\" ? input.status : undefined,\n })}`,\n })\n .then(exposeGatewayData);\n }\n\n async function createOntologyCompat(input: JsonObject = {}) {\n const response = await ontologyClient.createDefinition(\n input as Parameters<typeof ontologyClient.createDefinition>[0]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function updateOntologyCompat(input: JsonObject = {}) {\n const id = typeof input.id === \"string\" ? input.id : \"\";\n const { id: _id, ...rest } = input;\n const response = await ontologyClient.updateDefinition(\n id,\n rest as Parameters<typeof ontologyClient.updateDefinition>[1]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function archiveOntologyCompat(input: JsonObject = {}) {\n const id = typeof input.id === \"string\" ? input.id : \"\";\n const response = await ontologyClient.archiveDefinition(id);\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function createOntologyVersionCompat(input: JsonObject = {}) {\n const ontologyId =\n typeof input.ontologyId === \"string\" ? input.ontologyId : \"\";\n const { ontologyId: _ontologyId, ...rest } = input;\n const response = await ontologyClient.createVersion(\n ontologyId,\n rest as Parameters<typeof ontologyClient.createVersion>[1]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function publishOntologyVersionCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/versions/publish\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function deprecateOntologyVersionCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/versions/deprecate\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function resolveEffectiveOntologyCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/effective\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function traceEntityImpactCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/trace-entity-impact\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n const nodesNamespace = {\n list(query: Parameters<typeof graphClient.listNodes>[0]) {\n return graphClient.listNodes(query);\n },\n get(input: string | Parameters<typeof graphClient.getNode>[0]) {\n return graphClient.getNode(\n typeof input === \"string\" ? { nodeId: input } : input\n );\n },\n create(\n input: Parameters<typeof graphClient.createNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.createNode(input, idempotencyKey);\n },\n update(\n input: Parameters<typeof graphClient.updateNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.updateNode(input, idempotencyKey);\n },\n batchCreate(\n input: Parameters<typeof graphClient.batchCreateNodes>[0],\n idempotencyKey?: string\n ) {\n return graphClient.batchCreateNodes(input, idempotencyKey);\n },\n supersede(\n input: Parameters<typeof graphClient.supersedeNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.supersedeNode(input, idempotencyKey);\n },\n verify(\n input: Parameters<typeof graphClient.verifyNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.verifyNode(input, idempotencyKey);\n },\n hardDelete(\n input: Parameters<typeof graphClient.hardDeleteNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.hardDeleteNode(input, idempotencyKey);\n },\n };\n\n return {\n config,\n version: LUCERN_SDK_VERSION,\n search(\n query: string,\n options?: {\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }\n ) {\n return searchResources(query, options);\n },\n events: {\n list(query: Parameters<typeof eventsFacade.list>[0] = {}) {\n return eventsFacade.list(query).then(exposeGatewayData);\n },\n replay(\n input: Parameters<typeof eventsFacade.replay>[0]\n ) {\n return eventsFacade.replay(input).then(exposeGatewayData);\n },\n },\n beliefs: {\n create(input: BeliefsCompatCreateInput) {\n return beliefsFacade\n .create({\n topicId: resolveTopicId(input),\n text: requireText(input),\n rationale: input.rationale,\n worktreeId: input.worktreeId,\n pillar: input.pillar,\n baseRate: requireBaseRate(input),\n sourceBeliefIds: input.sourceBeliefIds,\n sourceType: input.sourceType,\n beliefType: input.beliefType,\n reversibility: input.reversibility,\n predictionMeta: input.predictionMeta,\n metadata: input.metadata,\n })\n .then(exposeGatewayData);\n },\n get(nodeId: string) {\n return beliefsFacade.get(nodeId).then(exposeGatewayData);\n },\n refine(\n nodeId: string,\n textOrInput: string | { text: string; rationale?: string },\n rationale?: string\n ) {\n const payload =\n typeof textOrInput === \"string\"\n ? { text: textOrInput, rationale }\n : {\n text: textOrInput.text,\n rationale: textOrInput.rationale,\n };\n return beliefsFacade.refine(nodeId, payload).then(exposeGatewayData);\n },\n updateConfidence(\n nodeId: string,\n input: BeliefsCompatUpdateConfidenceInput\n ) {\n return beliefsFacade.updateConfidence(nodeId, input).then(exposeGatewayData);\n },\n modulateConfidence(\n nodeId: string,\n input: BeliefsCompatUpdateConfidenceInput\n ) {\n return beliefsFacade.updateConfidence(nodeId, input).then(exposeGatewayData);\n },\n updateStatus(\n input: Parameters<typeof beliefsFacade.updateStatus>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateRationale(\n input: Parameters<typeof beliefsFacade.updateRationale>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateRationale(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n linkBeliefs(\n input: Parameters<typeof beliefsFacade.linkBeliefs>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .linkBeliefs(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n unlinkEvidence(\n input: Parameters<typeof beliefsFacade.unlinkEvidence>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .unlinkEvidence(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateCriticality(\n input: Parameters<typeof beliefsFacade.updateCriticality>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateCriticality(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchUpdateCriticality(\n input: Parameters<typeof beliefsFacade.batchUpdateCriticality>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .batchUpdateCriticality(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n reassignTopic(\n input: Parameters<typeof beliefsFacade.reassignTopic>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .reassignTopic(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n fork(nodeId: string, input: BeliefsCompatForkInput) {\n return beliefsFacade\n .fork(nodeId, {\n text: requireText(input),\n forkReason: input.forkReason,\n rationale: input.rationale,\n })\n .then(exposeGatewayData);\n },\n archive(\n nodeId: string,\n input?: string | { reason?: string; rationale?: string }\n ) {\n const payload =\n typeof input === \"string\"\n ? { reason: input }\n : input\n ? { reason: input.reason ?? input.rationale }\n : undefined;\n return beliefsFacade.archive(nodeId, payload).then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }) {\n return beliefsFacade\n .list({\n topicId: requireTopicId(args),\n worktreeId: args.worktreeId,\n status: args.status,\n minConfidence: args.minConfidence,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n search: searchBeliefs,\n lineage(nodeId: string) {\n return beliefsFacade.lineage(nodeId).then(exposeGatewayData);\n },\n confidenceHistory(nodeId: string) {\n return beliefsFacade.confidenceHistory(nodeId).then(exposeGatewayData);\n },\n opinionHistory(nodeId: string) {\n return getOpinionHistory(nodeId);\n },\n createContract(\n nodeId: string,\n input: Parameters<typeof beliefsFacade.createContract>[1]\n ) {\n return beliefsFacade\n .createContract(nodeId, input)\n .then(exposeGatewayData);\n },\n bisect(\n nodeId: string,\n input: Parameters<typeof beliefsFacade.bisect>[1]\n ) {\n return beliefsFacade.bisect(nodeId, input).then(exposeGatewayData);\n },\n },\n webhooks: {\n create(input: Parameters<typeof webhooksFacade.create>[0]) {\n return webhooksFacade.create(input).then(exposeGatewayData);\n },\n list(query?: Parameters<typeof webhooksFacade.list>[0]) {\n return webhooksFacade.list(query).then(exposeGatewayData);\n },\n get(id: string) {\n return webhooksFacade.get(id).then(exposeGatewayData);\n },\n update(\n id: string,\n input: Parameters<typeof webhooksFacade.update>[1]\n ) {\n return webhooksFacade.update(id, input).then(exposeGatewayData);\n },\n delete(id: string) {\n return webhooksFacade.delete(id).then(exposeGatewayData);\n },\n test(id: string, input?: Parameters<typeof webhooksFacade.test>[1]) {\n return webhooksFacade.test(id, input).then(exposeGatewayData);\n },\n deliveries(\n id: string,\n query?: Parameters<typeof webhooksFacade.deliveries>[1]\n ) {\n return webhooksFacade.deliveries(id, query).then(exposeGatewayData);\n },\n health(id: string) {\n return webhooksFacade.health(id).then(exposeGatewayData);\n },\n },\n edges: {\n create(args: {\n sourceId: string;\n targetId: string;\n edgeType: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n reasoning?: string;\n }) {\n return edgesFacade\n .create({\n sourceId: args.sourceId,\n targetId: args.targetId,\n edgeType: args.edgeType,\n topicId: args.topicId,\n confidence: args.confidence,\n weight: args.weight,\n context: args.context ?? args.reasoning,\n })\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof edgesFacade.update>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n remove(\n input: Parameters<typeof edgesFacade.remove>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.remove(input, idempotencyKey).then(exposeGatewayData);\n },\n removeBetween(\n input: Parameters<typeof edgesFacade.removeBetween>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade\n .removeBetween(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreate(\n input: Parameters<typeof edgesFacade.batchCreate>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade\n .batchCreate(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n delete(\n input: Parameters<typeof edgesFacade.delete>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.delete(input, idempotencyKey).then(exposeGatewayData);\n },\n list(args: {\n sourceId: string;\n edgeType?: string;\n limit?: number;\n cursor?: string;\n }) {\n return edgesFacade\n .list({\n sourceId: args.sourceId,\n edgeType: args.edgeType,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n traverse(args: {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n }) {\n return edgesFacade\n .traverse({\n startNode: args.startNode,\n direction: args.direction,\n maxDepth: args.maxDepth,\n topicId: args.topicId,\n })\n .then(exposeGatewayData);\n },\n },\n evidence: {\n create(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n return createEvidenceCompat(args).then(exposeGatewayData);\n },\n add: addEvidence,\n get(evidenceId: string) {\n return evidenceFacade.get(evidenceId).then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n targetId?: string;\n limit?: number;\n cursor?: string;\n }) {\n return evidenceFacade\n .list({\n topicId: args.topicId,\n targetId: args.targetId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n search(args: {\n q?: string;\n query?: string;\n topicId?: string;\n targetId?: string;\n methodology?: string;\n limit?: number;\n cursor?: string;\n }) {\n const q = args.q ?? args.query;\n if (!q) {\n throw new Error(\"q is required\");\n }\n return evidenceFacade\n .search({\n q,\n topicId: args.topicId,\n targetId: args.targetId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n link(args: {\n evidenceId: string;\n targetId?: string;\n beliefId?: string;\n questionId?: string;\n targetType?: \"belief\" | \"question\" | string;\n weight?: number;\n rationale?: string;\n }) {\n const targetId = args.targetId ?? args.questionId ?? args.beliefId;\n if (!targetId) {\n throw new Error(\"targetId is required\");\n }\n const targetType =\n typeof args.targetType === \"string\"\n ? args.targetType\n : args.questionId\n ? \"question\"\n : args.beliefId\n ? \"belief\"\n : undefined;\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId,\n targetType: targetType as \"belief\" | \"question\" | undefined,\n weight: args.weight,\n rationale: args.rationale,\n })\n .then(exposeGatewayData);\n },\n linkToBelief(args: {\n evidenceId: string;\n beliefId: string;\n weight: number;\n rationale?: string;\n }) {\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId: args.beliefId,\n weight: args.weight,\n rationale: args.rationale,\n })\n .then((response) => ({\n ...response.data,\n beliefId: args.beliefId,\n }));\n },\n classifyEvidence(\n beliefId: string,\n evidenceId: string,\n config?: Parameters<typeof evidenceClient.classifyEvidence>[2],\n idempotencyKey?: string\n ) {\n return evidenceClient\n .classifyEvidence(beliefId, evidenceId, config, idempotencyKey)\n .then(exposeGatewayData);\n },\n classifyEvidenceBatch(\n beliefId: string,\n evidence: Parameters<typeof evidenceClient.classifyEvidenceBatch>[1],\n config?: Parameters<typeof evidenceClient.classifyEvidenceBatch>[2],\n idempotencyKey?: string\n ) {\n return evidenceClient\n .classifyEvidenceBatch(beliefId, evidence, config, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateStatus(\n input: Parameters<typeof evidenceFacade.updateStatus>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .updateStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof evidenceFacade.update>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n flagIncorrect(\n input: Parameters<typeof evidenceFacade.flagIncorrect>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .flagIncorrect(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n remove(\n input: Parameters<typeof evidenceFacade.remove>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade.remove(input, idempotencyKey).then(exposeGatewayData);\n },\n updateVerificationStatus(\n input: Parameters<typeof evidenceFacade.updateVerificationStatus>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .updateVerificationStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n },\n sources: {\n upsert(\n input: Parameters<typeof sourcesClient.upsert>[0],\n idempotencyKey?: Parameters<typeof sourcesClient.upsert>[1]\n ) {\n return sourcesClient.upsert(input, idempotencyKey).then(exposeGatewayData);\n },\n get(sourceId: string) {\n return sourcesClient.get(sourceId).then(exposeGatewayData);\n },\n },\n questions: {\n create(args: {\n text: string;\n topicId?: string;\n priority?: string;\n linkedBeliefId?: string;\n metadata?: JsonObject;\n }) {\n return questionsFacade\n .create({\n topicId: resolveTopicId(args),\n text: args.text,\n priority: args.priority,\n linkedBeliefId: args.linkedBeliefId,\n metadata: args.metadata,\n })\n .then(exposeGatewayData);\n },\n get(questionId: string) {\n return questionsFacade.get(questionId).then(exposeGatewayData);\n },\n refine(\n questionId: string,\n text: string,\n refinementReason?: string\n ) {\n return questionsFacade\n .refine(questionId, {\n text,\n rationale: refinementReason,\n })\n .then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n status?: string;\n priority?: string;\n worktreeId?: string;\n limit?: number;\n cursor?: string;\n }) {\n return questionsFacade\n .list({\n topicId: requireTopicId(args),\n status: args.status,\n priority: args.priority,\n worktreeId: args.worktreeId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n updateStatus(questionId: string, status: string, rationale?: string) {\n return questionsFacade\n .updateStatus(questionId, {\n status,\n rationale,\n })\n .then(exposeGatewayData);\n },\n batchCreate(\n input: Parameters<typeof questionsFacade.batchCreate>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .batchCreate(\n {\n ...input,\n topicId: resolveTopicId(input),\n },\n idempotencyKey\n )\n .then(exposeGatewayData);\n },\n add(\n input: Parameters<typeof questionsFacade.add>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .add(\n {\n ...input,\n topicId: resolveTopicId(input),\n },\n idempotencyKey\n )\n .then(exposeGatewayData);\n },\n updatePriority(\n input: Parameters<typeof questionsFacade.updatePriority>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .updatePriority(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n advanceToConviction(\n input: Parameters<typeof questionsFacade.advanceToConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .advanceToConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateConviction(\n input: Parameters<typeof questionsFacade.updateConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .updateConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n finalizeConviction(\n input: Parameters<typeof questionsFacade.finalizeConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .finalizeConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof questionsFacade.update>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n delete(\n input: Parameters<typeof questionsFacade.delete>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade.delete(input, idempotencyKey).then(exposeGatewayData);\n },\n answer(\n questionId: string,\n input: {\n text: string;\n confidence?: string;\n evidenceIds?: string[];\n rationale?: string;\n }\n ) {\n return questionsFacade\n .answer(questionId, input)\n .then(exposeGatewayData);\n },\n archive(questionId: string, reason?: string) {\n return questionsFacade\n .archive(questionId, { reason })\n .then(exposeGatewayData);\n },\n linkEvidence(args: {\n evidenceId: string;\n questionId: string;\n relevance?: number;\n weight?: number;\n rationale?: string;\n }) {\n const weight = args.weight ?? args.relevance;\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId: args.questionId,\n targetType: \"question\",\n weight,\n rationale: args.rationale,\n })\n .then((response) => ({\n ...response.data,\n questionId: args.questionId,\n relevance: weight,\n }));\n },\n getHighPriority(args: {\n topicId?: string;\n limit?: number;\n includeAnswered?: boolean;\n }) {\n return this.list({\n topicId: requireTopicId(args),\n status: args.includeAnswered ? undefined : \"open\",\n }).then((data) => {\n const questions = (\n Array.isArray(data.questions) ? data.questions : []\n ) as Array<{ priority?: string } & Record<string, unknown>>;\n const rank = (priority: string | undefined): number => {\n switch (priority) {\n case \"urgent\":\n return 4;\n case \"high\":\n return 3;\n case \"medium\":\n return 2;\n case \"low\":\n return 1;\n default:\n return 0;\n }\n };\n\n return {\n questions: [...questions]\n .sort((a, b) => rank(b.priority) - rank(a.priority))\n .slice(0, args.limit ?? 20),\n };\n });\n },\n async findMissing(args: {\n topicId?: string;\n minConfidence?: number;\n }) {\n return graphFacade\n .gaps({\n topicId: requireTopicId(args),\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n },\n graph: {\n nodes: nodesNamespace,\n createEdge(input: Parameters<typeof graphClient.createEdge>[0]) {\n return graphClient.createEdge(input);\n },\n neighborhood(args: Parameters<typeof graphClient.neighborhood>[0]) {\n return graphFacade\n .neighborhood({\n globalId: args.globalId,\n globalIds:\n typeof args.globalIds === \"string\"\n ? args.globalIds\n .split(\",\")\n .map((value) => value.trim())\n .filter((value) => value.length > 0)\n : undefined,\n maxDepth: args.maxDepth,\n })\n .then(exposeGatewayData);\n },\n queryLineage,\n getConfidenceHistory,\n getOpinionHistory,\n getAuditTrail,\n traverse(args: {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n }) {\n return graphFacade\n .traverse({\n startNode: args.startNode,\n direction: args.direction,\n maxDepth: args.maxDepth ?? 3,\n topicId: args.topicId,\n })\n .then(exposeGatewayData);\n },\n analyze(args: {\n topicId?: string;\n limit?: number;\n metric?: string;\n }) {\n return graphFacade\n .analyze({\n topicId: requireTopicId(args),\n limit: args.limit,\n metric: args.metric as never,\n })\n .then(exposeGatewayData);\n },\n bias(args: {\n topicId?: string;\n threshold?: number;\n limit?: number;\n }) {\n return graphFacade\n .bias({\n topicId: requireTopicId(args),\n threshold: args.threshold,\n limit: args.limit,\n })\n .then(exposeGatewayData);\n },\n gaps(args: {\n topicId?: string;\n minConfidence?: number;\n }) {\n return graphFacade\n .gaps({\n topicId: requireTopicId(args),\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n falsify(args: {\n topicId?: string;\n beliefId?: string;\n beliefIds?: string[];\n minConfidence?: number;\n }) {\n return graphFacade\n .falsify({\n topicId: args.topicId,\n beliefId: args.beliefId,\n beliefIds: args.beliefIds,\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n traceEntityImpact(args: { nodeId: string; topicId?: string }) {\n return traceEntityImpactCompat({\n nodeId: args.nodeId,\n topicId: args.topicId,\n });\n },\n searchBeliefs,\n findContradictions,\n bisectConfidence,\n listBeliefs,\n detectConfirmationBias(\n topicId: string,\n threshold?: number\n ) {\n return this.bias({\n topicId,\n threshold,\n limit: 200,\n }).then((response) => ({\n ...response,\n topicId,\n threshold: threshold ?? 0.7,\n }));\n },\n getStructureAnalysis(topicId: string) {\n return this.analyze({\n topicId,\n limit: 200,\n }).then((response) => ({\n ...response,\n topicId,\n }));\n },\n getFalsificationQuestions(\n topicId: string,\n beliefIds?: string[]\n ) {\n return graphFacade\n .falsify({\n topicId,\n beliefIds,\n })\n .then(exposeGatewayData)\n .then((response) => ({\n topicId,\n questions: response.questions,\n }));\n },\n },\n judgments: {\n create(input: RecordJudgmentInput) {\n return decisionsClient.createJudgment(input);\n },\n record(input: RecordJudgmentInput) {\n return decisionsClient.recordJudgment(input);\n },\n list(query: Parameters<typeof decisionsClient.listJudgments>[0]) {\n return decisionsClient.listJudgments(query);\n },\n get(judgmentId: string) {\n return decisionsClient.getJudgment(judgmentId);\n },\n recordOutcome(\n judgmentId: string,\n input: Parameters<typeof decisionsClient.recordJudgmentOutcome>[1]\n ) {\n return decisionsClient.recordJudgmentOutcome(judgmentId, input);\n },\n updateOutcome(\n judgmentId: string,\n input: Parameters<typeof decisionsClient.updateJudgmentOutcome>[1]\n ) {\n return decisionsClient.updateJudgmentOutcome(judgmentId, input);\n },\n readiness(topicId: string) {\n return decisionsClient.getJudgmentReadiness({\n topicId,\n });\n },\n calibration(topicId: string) {\n return decisionsClient.getJudgmentCalibration({\n topicId,\n });\n },\n pendingOutcomeReview(topicId: string) {\n return decisionsClient.listPendingJudgmentOutcomeReview({\n topicId,\n });\n },\n transitionAuditIntegrity(args: {\n topicId?: string;\n judgmentId?: string;\n includePassing?: boolean;\n }) {\n return decisionsClient.getJudgmentTransitionAuditIntegrity({\n ...args,\n topicId: requireTopicId(args),\n });\n },\n },\n worktrees: {\n createBranch(input: Parameters<typeof workflowClient.createBranch>[0]) {\n return workflowClient.createBranch(input);\n },\n createLens(input: Parameters<typeof workflowClient.createLens>[0]) {\n return workflowClient.createLens(input);\n },\n listLenses(query: Parameters<typeof workflowClient.listLenses>[0]) {\n return workflowClient.listLenses(query);\n },\n applyLensToTopic(\n input: Parameters<typeof workflowClient.applyLensToTopic>[0]\n ) {\n return workflowClient.applyLensToTopic(input);\n },\n removeLensFromTopic(\n input: Parameters<typeof workflowClient.removeLensFromTopic>[0]\n ) {\n return workflowClient.removeLensFromTopic(input);\n },\n create(input: AddWorktreeInput) {\n return worktreesFacade.create({\n title: input.title,\n topicId: requireTopicId(input),\n objective: input.objective,\n hypothesis: input.hypothesis,\n beliefIds: input.beliefIds,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n });\n },\n add(input: AddWorktreeInput) {\n return worktreesFacade.create({\n title: input.title,\n topicId: requireTopicId(input),\n objective: input.objective,\n hypothesis: input.hypothesis,\n beliefIds: input.beliefIds,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n });\n },\n list(query: Parameters<typeof workflowClient.listWorktrees>[0]) {\n return worktreesFacade.list({\n topicId: requireTopicId(query),\n status: query.status,\n limit: query.limit,\n });\n },\n activate(worktreeId: string) {\n return worktreesFacade.activate({ id: worktreeId });\n },\n updateMetadata(\n input: FunctionSurfaceInput\n ) {\n const dependsOn = Array.isArray(input.dependsOn)\n ? input.dependsOn.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined;\n const blocks = Array.isArray(input.blocks)\n ? input.blocks.filter((value): value is string => typeof value === \"string\")\n : undefined;\n return worktreesFacade.update({\n id: typeof input.worktreeId === \"string\" ? input.worktreeId : \"\",\n hypothesis: typeof input.hypothesis === \"string\" ? input.hypothesis : undefined,\n campaign:\n typeof input.campaign === \"number\" ? input.campaign : undefined,\n lane: typeof input.lane === \"string\" ? input.lane : undefined,\n laneOrderInCampaign:\n typeof input.laneOrderInCampaign === \"number\"\n ? input.laneOrderInCampaign\n : undefined,\n orderInLane:\n typeof input.orderInLane === \"number\" ? input.orderInLane : undefined,\n dependsOn,\n blocks,\n gate: typeof input.gate === \"string\" ? input.gate : undefined,\n });\n },\n update(\n input: FunctionSurfaceInput\n ) {\n return this.updateMetadata(input);\n },\n updateTargets(\n input: Parameters<typeof workflowClient.updateWorktreeTargets>[0]\n ) {\n return worktreesFacade.updateTargets({\n id: input.worktreeId,\n addBeliefIds: input.addBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeBeliefIds: input.removeBeliefIds,\n removeQuestionIds: input.removeQuestionIds,\n });\n },\n listAll(\n query: Parameters<typeof workflowClient.listAllWorktrees>[0] = {}\n ) {\n return workflowClient.listAllWorktrees(query);\n },\n merge(worktreeId: string, input: MergeInput) {\n return worktreesFacade.merge({\n id: worktreeId,\n outcomes: input.outcomes,\n summary: input.summary,\n });\n },\n push(\n worktreeId: string,\n input: Parameters<typeof workflowClient.push>[1]\n ) {\n return workflowClient.push(worktreeId, input);\n },\n openPullRequest(\n worktreeId: string,\n input: Parameters<typeof workflowClient.openPullRequest>[1]\n ) {\n return workflowClient.openPullRequest(worktreeId, input);\n },\n pipelineSnapshot(topicId: string) {\n return functionSurfaceClient.pipelineSnapshot({ topicId });\n },\n complete(\n input: Parameters<typeof worktreesFacade.complete>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.complete(input, idempotencyKey);\n },\n advancePhase(\n worktreeId: string,\n idempotencyKey?: string\n ) {\n return worktreesFacade.advancePhase(\n { worktreeId },\n idempotencyKey\n );\n },\n setPhase(\n worktreeId: string,\n phase: string,\n idempotencyKey?: string\n ) {\n return worktreesFacade.setPhase(\n { worktreeId, phase },\n idempotencyKey\n );\n },\n patchState(\n input: Parameters<typeof worktreesFacade.patchState>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.patchState(input, idempotencyKey);\n },\n bulkCreate(\n input: Parameters<typeof worktreesFacade.bulkCreate>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.bulkCreate(input, idempotencyKey);\n },\n },\n context: {\n listTopics(query: Parameters<typeof topicsClient.list>[0] = {}) {\n return topicsFacade.list({\n ontologyId: query.ontologyId,\n parentTopicId: query.parentTopicId,\n status: query.status as\n | \"active\"\n | \"archived\"\n | \"watching\"\n | undefined,\n type: query.type,\n });\n },\n compile(\n topicId: string,\n input: Parameters<typeof contextClient.compile>[1] = {}\n ) {\n return contextClient.compile(topicId, input);\n },\n recordScopeLearning(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.recordScopeLearning(input, idempotencyKey);\n },\n discover(input: FunctionSurfaceInput) {\n return discoverTopics(input as JsonObject);\n },\n analyzeTopicDensity(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.analyzeTopicDensity(input);\n },\n applyAutoBranching(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.applyAutoBranching(input, idempotencyKey);\n },\n seedBeliefLattice(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.seedBeliefLattice(input, idempotencyKey);\n },\n getLatticeCoverage(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.getLatticeCoverage(input);\n },\n matchEntityType(\n input: FunctionSurfaceInput\n ) {\n return ontologiesFacade\n .match(input as Parameters<typeof ontologiesFacade.match>[0])\n .then(exposeGatewayData);\n },\n discoverEntityConnections(\n input: FunctionSurfaceInput\n ) {\n return discoverEntityConnections(input as JsonObject);\n },\n triggerBeliefReview(\n input: FunctionSurfaceInput\n ) {\n return triggerBeliefReview(input as JsonObject);\n },\n },\n tasks: {\n create(input: CreateTaskInput) {\n return tasksFacade.create({\n topicId: resolveTopicId(input),\n title: input.title,\n description: input.description,\n taskType: input.taskType,\n priority: input.priority,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n });\n },\n complete(taskId: string, input: CompleteTaskInput) {\n return tasksFacade.complete({\n id: taskId,\n outputSummary: input.outputSummary,\n });\n },\n update(taskId: string, input: UpdateTaskInput) {\n return tasksFacade.update({\n id: taskId,\n title: input.title,\n description: input.description,\n priority: input.priority,\n status: input.status,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n });\n },\n list(input: FunctionSurfaceInput) {\n return tasksFacade.list({\n topicId: resolveTopicId(input),\n worktreeId:\n typeof input.worktreeId === \"string\"\n ? input.worktreeId\n : typeof input.linkedWorktreeId === \"string\"\n ? input.linkedWorktreeId\n : undefined,\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n },\n topics: {\n list(input: Parameters<typeof topicsClient.list>[0] = {}) {\n return topicsFacade.list({\n ontologyId: input.ontologyId,\n parentTopicId: input.parentTopicId,\n status: input.status as \"active\" | \"archived\" | \"watching\" | undefined,\n type: input.type,\n });\n },\n get(topicId: string) {\n return topicsFacade.get(topicId);\n },\n create(input: Parameters<typeof topicsClient.create>[0]) {\n return topicsFacade.create({\n name: input.name,\n description: input.description,\n type: input.type,\n parentTopicId: input.parentTopicId,\n ontologyId: input.ontologyId,\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n visibility: input.visibility,\n createdBy: input.createdBy,\n });\n },\n update(\n topicId: string,\n input: Parameters<typeof topicsClient.update>[1]\n ) {\n return topicsFacade.update({\n id: topicId,\n name: input.name,\n description: input.description,\n type: input.type,\n ontologyId: input.ontologyId,\n clearOntologyId: input.clearOntologyId,\n status: input.status,\n visibility: input.visibility,\n });\n },\n tree(\n topicId: string,\n query: Parameters<typeof topicsClient.getTree>[1] = {}\n ) {\n return topicsFacade.tree({\n id: topicId,\n maxDepth: query.maxDepth,\n });\n },\n getTree(input: { rootId: string; maxDepth?: number }) {\n return topicsFacade.tree({\n id: input.rootId,\n maxDepth: input.maxDepth,\n });\n },\n coverage(\n topicId: string,\n query: Parameters<typeof topicsClient.getCoverage>[1] = {}\n ) {\n return topicsFacade.coverage({\n id: topicId,\n includeDescendants: query.includeDescendants,\n maxDepth: query.maxDepth,\n });\n },\n remove(topicId: string, idempotencyKey?: string) {\n return topicsFacade.remove(topicId, idempotencyKey);\n },\n bulkCreate(\n input: Parameters<typeof topicsFacade.bulkCreate>[0],\n idempotencyKey?: string\n ) {\n return topicsFacade.bulkCreate(input, idempotencyKey);\n },\n },\n answers: {\n create(input: FunctionSurfaceInput) {\n const questionId =\n typeof input.questionNodeId === \"string\" ? input.questionNodeId : \"\";\n if (!questionId) {\n throw new Error(\"questionNodeId is required\");\n }\n const text =\n typeof input.answerText === \"string\" ? input.answerText : \"\";\n if (!text) {\n throw new Error(\"answerText is required\");\n }\n const confidence =\n input.confidence === \"moderate\" ? \"medium\" : input.confidence;\n\n return questionsFacade.answer(questionId, {\n text,\n confidence:\n typeof confidence === \"string\" ? confidence : undefined,\n evidenceIds: Array.isArray(input.evidenceNodeIds)\n ? input.evidenceNodeIds.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined,\n });\n },\n get(input: FunctionSurfaceInput) {\n const questionId =\n typeof input.questionNodeId === \"string\" ? input.questionNodeId : \"\";\n if (!questionId) {\n throw new Error(\"questionNodeId is required\");\n }\n return answersClient.get(questionId);\n },\n },\n contradictions: {\n flag(args: {\n beliefA: string;\n beliefB: string;\n description: string;\n topicId?: string;\n severity?: string;\n defeatType?: string;\n }) {\n return contradictionsFacade\n .flag({\n beliefA: args.beliefA,\n beliefB: args.beliefB,\n description: args.description,\n topicId: resolveTopicId(args),\n severity: args.severity,\n defeatType: args.defeatType,\n })\n .then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n }) {\n return contradictionsFacade\n .list({\n topicId: requireTopicId(args),\n status: args.status,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n get(contradictionId: string) {\n return contradictionsFacade.get(contradictionId).then(exposeGatewayData);\n },\n find: findContradictions,\n },\n ontologies: {\n list(\n input: {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return ontologiesFacade.list(input).then(exposeGatewayData);\n },\n get(ontologyId: string) {\n return ontologiesFacade\n .get(ontologyId)\n .then((response) => exposeGatewayData(response));\n },\n bind(\n input: Parameters<typeof ontologiesFacade.bind>[0],\n idempotencyKey?: Parameters<typeof ontologiesFacade.bind>[1]\n ) {\n return ontologiesFacade\n .bind(input, idempotencyKey)\n .then((response) => exposeGatewayData(response));\n },\n match(\n input: Parameters<typeof ontologiesFacade.match>[0],\n idempotencyKey?: Parameters<typeof ontologiesFacade.match>[1]\n ) {\n return ontologiesFacade.match(input, idempotencyKey).then(exposeGatewayData);\n },\n create(input: FunctionSurfaceInput) {\n return createOntologyCompat(input as JsonObject);\n },\n update(input: FunctionSurfaceInput) {\n return updateOntologyCompat(input as JsonObject);\n },\n archive(input: FunctionSurfaceInput) {\n return archiveOntologyCompat(input as JsonObject);\n },\n createVersion(\n input: FunctionSurfaceInput\n ) {\n return createOntologyVersionCompat(input as JsonObject);\n },\n publishVersion(\n input: FunctionSurfaceInput\n ) {\n return publishOntologyVersionCompat(input as JsonObject);\n },\n publishOntologyVersion(input: FunctionSurfaceInput) {\n return publishOntologyVersionCompat(input as JsonObject);\n },\n deprecateVersion(\n input: FunctionSurfaceInput\n ) {\n return deprecateOntologyVersionCompat(input as JsonObject);\n },\n deprecateOntologyVersion(input: FunctionSurfaceInput) {\n return deprecateOntologyVersionCompat(input as JsonObject);\n },\n resolveEffective(\n input: FunctionSurfaceInput\n ) {\n return resolveEffectiveOntologyCompat(input as JsonObject);\n },\n resolveEffectiveOntology(input: FunctionSurfaceInput) {\n return resolveEffectiveOntologyCompat(input as JsonObject);\n },\n raw: ontologyClient,\n },\n coordination: {\n registerSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.registerSession(input, idempotencyKey);\n },\n heartbeatSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.heartbeatSession(input, idempotencyKey);\n },\n endSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.endSession(input, idempotencyKey);\n },\n listActiveSessions(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.listActiveSessions(input);\n },\n sendAgentMessage(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.sendAgentMessage(input, idempotencyKey);\n },\n broadcastMessage(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.broadcastMessage(input, idempotencyKey);\n },\n getInbox(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.getAgentInbox(input);\n },\n getAgentInbox(input: FunctionSurfaceInput = {}) {\n return functionSurfaceClient.getAgentInbox(input);\n },\n claimFiles(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.claimFiles(input, idempotencyKey);\n },\n },\n policy: {\n checkPermission(\n input: FunctionSurfaceInput\n ) {\n return policyClient.checkPermission({\n topicId: typeof input.topicId === \"string\" ? input.topicId : undefined,\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n beliefClusterId:\n typeof input.beliefClusterId === \"string\"\n ? input.beliefClusterId\n : undefined,\n });\n },\n listAccessibleTopics(\n input: Parameters<typeof policyClient.listAccessibleTopics>[0] = {}\n ) {\n return policyClient.listAccessibleTopics({\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n includeShared:\n typeof input.includeShared === \"boolean\"\n ? input.includeShared\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n filterByPermission(\n input: FunctionSurfaceInput\n ) {\n return policyClient.filterByPermission({\n topicIds: Array.isArray(input.topicIds)\n ? input.topicIds.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined,\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n });\n },\n manageWritePolicy(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.manageWritePolicy(input, idempotencyKey);\n },\n raw: policyClient,\n },\n observations: {\n ingest(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.ingestObservation(input, idempotencyKey);\n },\n ingestObservation(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.ingestObservation(input, idempotencyKey);\n },\n getContext(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.getObservationContext(input);\n },\n getObservationContext(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getObservationContext(input);\n },\n },\n coding: {\n getCodeContext(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getCodeContext(input);\n },\n getChangeHistory(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.getChangeHistory(input);\n },\n recordAttempt(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.recordAttempt(input, idempotencyKey);\n },\n getFailureLog(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getFailureLog(input);\n },\n },\n contracts: {\n create(\n input: FunctionSurfaceInput\n ) {\n return createContractCompat(input as JsonObject);\n },\n createEpistemicContract(input: FunctionSurfaceInput) {\n return createContractCompat(input as JsonObject);\n },\n list(\n input: {\n beliefNodeId?: string;\n contractId?: string;\n status?: string;\n } = {}\n ) {\n return listContractsCompat(input as JsonObject);\n },\n evaluate(input: FunctionSurfaceInput) {\n return evaluateContractCompat(input as JsonObject);\n },\n evaluateContract(input: FunctionSurfaceInput) {\n return evaluateContractCompat(input as JsonObject);\n },\n getStatus(input: FunctionSurfaceInput) {\n return getContractStatusCompat(input as JsonObject);\n },\n getContractStatus(input: FunctionSurfaceInput) {\n return getContractStatusCompat(input as JsonObject);\n },\n },\n bootstrap: {\n generateSessionHandoff(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.generateSessionHandoff(input);\n },\n },\n tools: {\n register(registration: CustomToolRegistration) {\n return registerCustomTool(registration);\n },\n unregister(fullName: string) {\n return unregisterCustomTool(fullName);\n },\n list() {\n return listRegisteredCustomTools();\n },\n clear() {\n clearRegisteredCustomTools();\n },\n invoke(name: string, input: CustomToolInput = {}) {\n const fullName = name.includes(\".\") ? name : `custom.${name}`;\n return invokeCustomTool(fullName, input);\n },\n namespace(namespace: string) {\n return getCustomNamespace(namespace);\n },\n },\n packs: {\n /**\n * Ensure the configured packKey is installed.\n * No-op if no packKey was provided or if the pack is already installed.\n * Called automatically on first API use when packKey is set.\n */\n ensurePack,\n /**\n * Check if the configured pack has been installed in this session.\n */\n get isInstalled() {\n return _packInstalled;\n },\n listCatalog() {\n return packsClient.listCatalog();\n },\n catalog() {\n return packsClient.getCatalog();\n },\n listStates(scope?: Parameters<typeof packsClient.listStates>[0]) {\n return packsClient.listStates(scope);\n },\n states(scope?: Parameters<typeof packsClient.getStates>[0]) {\n return packsClient.getStates(scope);\n },\n install(input: Parameters<typeof packsClient.install>[0]) {\n return packsClient.install(input);\n },\n enable(input: Parameters<typeof packsClient.enable>[0]) {\n return packsClient.enable(input);\n },\n disable(input: Parameters<typeof packsClient.disable>[0]) {\n return packsClient.disable(input);\n },\n },\n nodes: nodesNamespace,\n identity: identityFacade,\n custom: getCustomNamespace(\"custom\"),\n extensions: extensionNamespaces,\n raw: {\n beliefs: beliefsClient,\n sources: sourcesClient,\n evidence: evidenceClient,\n graph: graphClient,\n decisions: decisionsClient,\n workflow: workflowClient,\n audit: auditClient,\n admin: adminClient,\n identity: identityClient,\n policy: policyClient,\n answers: answersClient,\n ontology: ontologyClient,\n functionSurface: functionSurfaceClient,\n packs: packsClient,\n reports: reportsClient,\n learning: learningClient,\n harness: harnessClient,\n schema: schemaClient,\n audiences: audiencesClient,\n topics: topicsClient,\n },\n };\n}\n","/** All recognized control object kinds in the ownership model. */\nexport const CONTROL_OBJECT_KINDS = [\n \"tenant\",\n \"workspace\",\n \"principal\",\n \"tool\",\n \"pack\",\n \"ontology\",\n \"belief\",\n \"policy_rule\",\n] as const;\n/** A kind of control object (tenant, workspace, principal, tool, etc.). */\nexport type ControlObjectKind = (typeof CONTROL_OBJECT_KINDS)[number];\n\n/** Canonical ownership scopes: platform, tenant, workspace, or resource. */\nexport const CONTROL_OBJECT_OWNER_SCOPES = [\n \"platform\",\n \"tenant\",\n \"workspace\",\n \"resource\",\n] as const;\n/** The scope level that canonically owns a control object. */\nexport type ControlObjectOwnerScope =\n (typeof CONTROL_OBJECT_OWNER_SCOPES)[number];\n\n/** UI surfaces authorized to edit control objects. */\nexport const CONTROL_OBJECT_EDIT_SURFACES = [\n \"platform_admin\",\n \"tenant_admin\",\n \"workspace_admin\",\n \"graph_worktree\",\n] as const;\n/** A UI surface authorized to mutate a control object (platform admin, tenant admin, etc.). */\nexport type ControlObjectEditSurface =\n (typeof CONTROL_OBJECT_EDIT_SURFACES)[number];\n\n/** Rules governing how control object configuration flows through the scope hierarchy. */\nexport const CONTROL_OBJECT_INHERITANCE_RULES = [\n \"none\",\n \"platform_seed_to_tenant\",\n \"tenant_default_to_workspace\",\n \"workspace_narrowing_only\",\n \"pack_overlay_to_tenant\",\n \"topic_lineage_to_resource\",\n] as const;\n/** How a control object's configuration propagates through scope hierarchy. */\nexport type ControlObjectInheritanceRule =\n (typeof CONTROL_OBJECT_INHERITANCE_RULES)[number];\n\n/** Scope of impact when a control object is modified. */\nexport const CONTROL_OBJECT_BLAST_RADII = [\n \"platform\",\n \"tenant\",\n \"workspace\",\n \"resource\",\n] as const;\n/** The furthest scope impacted by a mutation to a control object. */\nexport type ControlObjectBlastRadius = (typeof CONTROL_OBJECT_BLAST_RADII)[number];\n\n/** A single row in the ownership matrix describing who owns, edits, and inherits a control object. */\nexport type ControlObjectOwnershipCase = {\n caseKey: string;\n caseLabel: string;\n kind: ControlObjectKind;\n canonicalOwnerScope: ControlObjectOwnerScope;\n editSurface: ControlObjectEditSurface;\n inheritanceRule: ControlObjectInheritanceRule;\n blastRadius: ControlObjectBlastRadius;\n};\n\n/** Full ownership matrix keyed by control object kind. */\nexport type ControlObjectOwnershipMatrix = Record<\n ControlObjectKind,\n readonly ControlObjectOwnershipCase[]\n>;\n\n/** Versioned ownership contract bundling all enums, the matrix, and flattened rows. */\nexport type ControlObjectOwnershipContract = {\n version: \"1.0.0\";\n kinds: readonly ControlObjectKind[];\n ownerScopes: readonly ControlObjectOwnerScope[];\n editSurfaces: readonly ControlObjectEditSurface[];\n inheritanceRules: readonly ControlObjectInheritanceRule[];\n blastRadii: readonly ControlObjectBlastRadius[];\n matrix: ControlObjectOwnershipMatrix;\n rows: readonly ControlObjectOwnershipCase[];\n};\n\nfunction defineCases<const T extends readonly ControlObjectOwnershipCase[]>(\n cases: T\n): T {\n return cases;\n}\n\n/** Static ownership matrix mapping each control object kind to its ownership cases. */\nexport const CONTROL_OBJECT_OWNERSHIP_MATRIX = {\n tenant: defineCases([\n {\n caseKey: \"platform-record\",\n caseLabel: \"Platform Record\",\n kind: \"tenant\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"none\",\n blastRadius: \"tenant\",\n },\n ]),\n workspace: defineCases([\n {\n caseKey: \"tenant-workspace\",\n caseLabel: \"Tenant Workspace\",\n kind: \"workspace\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"tenant_default_to_workspace\",\n blastRadius: \"workspace\",\n },\n ]),\n principal: defineCases([\n {\n caseKey: \"tenant-principal\",\n caseLabel: \"Tenant Principal\",\n kind: \"principal\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"workspace_narrowing_only\",\n blastRadius: \"resource\",\n },\n ]),\n tool: defineCases([\n {\n caseKey: \"platform-core\",\n caseLabel: \"Platform Core\",\n kind: \"tool\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"tenant-custom\",\n caseLabel: \"Tenant Custom\",\n kind: \"tool\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"tenant_default_to_workspace\",\n blastRadius: \"tenant\",\n },\n ]),\n pack: defineCases([\n {\n caseKey: \"platform-definition\",\n caseLabel: \"Platform Definition\",\n kind: \"pack\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"tenant-installation\",\n caseLabel: \"Tenant Installation\",\n kind: \"pack\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"tenant\",\n },\n ]),\n ontology: defineCases([\n {\n caseKey: \"platform-base\",\n caseLabel: \"Platform Base\",\n kind: \"ontology\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"pack-overlay\",\n caseLabel: \"Pack Overlay\",\n kind: \"ontology\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"pack_overlay_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"tenant-extension\",\n caseLabel: \"Tenant Extension\",\n kind: \"ontology\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"topic_lineage_to_resource\",\n blastRadius: \"tenant\",\n },\n ]),\n belief: defineCases([\n {\n caseKey: \"topic-resource\",\n caseLabel: \"Topic Resource\",\n kind: \"belief\",\n canonicalOwnerScope: \"resource\",\n editSurface: \"graph_worktree\",\n inheritanceRule: \"topic_lineage_to_resource\",\n blastRadius: \"resource\",\n },\n ]),\n policy_rule: defineCases([\n {\n caseKey: \"platform-baseline\",\n caseLabel: \"Platform Baseline\",\n kind: \"policy_rule\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"tenant-bundle\",\n caseLabel: \"Tenant Bundle\",\n kind: \"policy_rule\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"tenant_default_to_workspace\",\n blastRadius: \"tenant\",\n },\n {\n caseKey: \"workspace-override\",\n caseLabel: \"Workspace Override\",\n kind: \"policy_rule\",\n canonicalOwnerScope: \"workspace\",\n editSurface: \"workspace_admin\",\n inheritanceRule: \"none\",\n blastRadius: \"workspace\",\n },\n ]),\n} as const satisfies ControlObjectOwnershipMatrix;\n\nfunction flattenOwnershipMatrix(\n matrix: ControlObjectOwnershipMatrix\n): ControlObjectOwnershipCase[] {\n return CONTROL_OBJECT_KINDS.flatMap((kind) => [...matrix[kind]]);\n}\n\n/** Flattened array of all ownership cases across all control object kinds. */\nexport const CONTROL_OBJECT_OWNERSHIP_ROWS = Object.freeze(\n flattenOwnershipMatrix(CONTROL_OBJECT_OWNERSHIP_MATRIX)\n);\n\n/** The canonical ownership contract exposed by the SDK. */\nexport const CONTROL_OBJECT_OWNERSHIP_CONTRACT = {\n version: \"1.0.0\",\n kinds: CONTROL_OBJECT_KINDS,\n ownerScopes: CONTROL_OBJECT_OWNER_SCOPES,\n editSurfaces: CONTROL_OBJECT_EDIT_SURFACES,\n inheritanceRules: CONTROL_OBJECT_INHERITANCE_RULES,\n blastRadii: CONTROL_OBJECT_BLAST_RADII,\n matrix: CONTROL_OBJECT_OWNERSHIP_MATRIX,\n rows: CONTROL_OBJECT_OWNERSHIP_ROWS,\n} as const satisfies ControlObjectOwnershipContract;\n\n/**\n * List ownership cases for one control-object kind or the full matrix.\n */\nexport function listControlObjectOwnershipCases(\n kind?: ControlObjectKind\n): readonly ControlObjectOwnershipCase[] {\n if (!kind) {\n return CONTROL_OBJECT_OWNERSHIP_ROWS;\n }\n return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind];\n}\n\n/**\n * Get a specific ownership case by kind and case key.\n */\nexport function getControlObjectOwnershipCase(\n kind: ControlObjectKind,\n caseKey: string\n): ControlObjectOwnershipCase | undefined {\n return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind].find(\n (ownershipCase) => ownershipCase.caseKey === caseKey\n );\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, baseRate)\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 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 \"Prior probability used to seed the vacuous opinion `(0, 0, 1, a)` at creation time. Defaults to 0.5 when omitted.\",\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\"],\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 \"Every modulation must cite a truth-bearing artifact: triggeringEvidenceId, triggeringQuestionId, triggeringAnswerId, triggeringContradictionId, or triggeringWorktreeId. \" +\n \"Triggers: evidence_added, evidence_removed, contradiction_detected, contradiction_resolved, agent_assessment, worktree_outcome, worktree_completed, fusion, discount, deduction.\",\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 worktreeId: {\n type: \"string\",\n description:\n \"Completed worktree that tested this belief when confidence policy requires merge-backed scoring.\",\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 ],\n },\n triggeringEvidenceId: {\n type: \"string\",\n description: \"Evidence node that caused an evidence-triggered modulation\",\n },\n triggeringQuestionId: {\n type: \"string\",\n description: \"Answered question whose resolution supports this modulation\",\n },\n triggeringAnswerId: {\n type: \"string\",\n description: \"Answer node whose content supports this modulation\",\n },\n triggeringContradictionId: {\n type: \"string\",\n description:\n \"Contradiction record that caused a contradiction-triggered modulation\",\n },\n triggeringWorktreeId: {\n type: \"string\",\n description:\n \"Completed worktree whose outcome caused a worktree-triggered modulation\",\n },\n rationale: {\n type: \"string\",\n description: \"Human-readable explanation of why confidence changed\",\n },\n },\n required: [\n \"nodeId\",\n \"belief\",\n \"disbelief\",\n \"uncertainty\",\n \"baseRate\",\n \"trigger\",\n \"rationale\",\n ],\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\", \"reasoning\"],\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 campaign: {\n type: \"number\",\n description:\n \"Top-level pipeline campaign number. Campaigns define the outer execution slice.\",\n },\n lane: {\n type: \"string\",\n description:\n \"GitButler-aligned workstream lane name inside the campaign.\",\n },\n laneOrderInCampaign: {\n type: \"number\",\n description:\n \"Ordering for this lane within its campaign.\",\n },\n orderInLane: {\n type: \"number\",\n description:\n \"Position of this worktree inside its lane.\",\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 rationale: {\n type: \"string\",\n description: \"Why this evidence should enter the reasoning graph\",\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\", \"rationale\"],\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: [\"topicId\"],\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 topicId: { type: \"string\", description: \"Topic scope for the answer\" },\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\", \"topicId\", \"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 limit: {\n type: \"number\",\n description: \"Maximum results\",\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 lifecycle phase, pipeline campaign/lane, 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 groupBy: {\n type: \"string\",\n description: \"Optional grouping mode for the response.\",\n enum: [\"campaign\", \"lane\", \"flat\"],\n },\n lane: {\n type: \"string\",\n description: \"Filter by GitButler-aligned lane name.\",\n },\n campaign: {\n type: \"number\",\n description: \"Filter by top-level pipeline campaign number.\",\n },\n limit: {\n type: \"number\",\n description: \"Maximum results to return.\",\n },\n },\n required: [\"topicId\"],\n response: {\n description:\n \"Worktrees with lifecycle phase, campaign, lane, status, belief count, and creation time\",\n fields: {\n worktrees:\n \"array — { worktreeId, title, phase, campaign, lane, laneOrderInCampaign, orderInLane, 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 \"campaign, lane, lane order, dependencies, and status. \" +\n \"Supports filtering by status, lane, and campaign. \" +\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 lane: {\n type: \"string\",\n description:\n \"Filter by lane name (e.g., 'ontology', 'tc-scope', 'control-plane', 'dev-portal', 'mcp-sdk-parity')\",\n },\n campaign: {\n type: \"number\",\n description:\n \"Filter by campaign number (e.g., 1, 2, 3). Returns only worktrees in that campaign.\",\n },\n groupBy: {\n type: \"string\",\n description: \"Optional grouping mode for the response.\",\n enum: [\"campaign\", \"lane\", \"flat\"],\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, campaign, lane, laneOrderInCampaign, orderInLane, dependsOn, blocks, gate, createdAt }\",\n total: \"number — total count after filtering\",\n lanes: \"object — { laneName: count } summary of worktrees per lane\",\n campaigns:\n \"object — { campaignNumber: count } summary of worktrees per campaign\",\n },\n },\n ownerModule: \"workflow-engine\",\n ontologyPrimitive: \"worktree\",\n tier: \"showcase\",\n};\n\nexport const LIST_CAMPAIGNS: McpToolContract = {\n name: \"list_campaigns\",\n description:\n \"List compact pipeline campaigns with their nested lanes. \" +\n \"Use this to see the top-level campaign > lane > worktree shape without pulling the full worktree inventory.\",\n parameters: {\n topicId: {\n type: \"string\",\n description: \"Optional topic scope.\",\n },\n status: {\n type: \"string\",\n description:\n \"Optional worktree status filter before grouping campaigns and lanes.\",\n },\n limit: {\n type: \"number\",\n description: \"Maximum worktrees to scan before grouping.\",\n },\n },\n required: [],\n response: {\n description: \"Pipeline campaigns with nested lane summaries.\",\n fields: {\n campaigns:\n \"array — { campaign, lanes: [{ lane, laneOrderInCampaign, worktreeCount, activeCount, readyCount, blockedCount, completedCount, nextWorktree }] }\",\n totalWorktrees: \"number — total worktrees scanned after filtering\",\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 — campaign, lane, 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 campaign: {\n type: \"number\",\n description: \"Top-level pipeline campaign number.\",\n },\n lane: {\n type: \"string\",\n description:\n \"GitButler-aligned workstream lane name inside the campaign.\",\n },\n laneOrderInCampaign: {\n type: \"number\",\n description: \"Ordering for this lane within the campaign.\",\n },\n orderInLane: {\n type: \"number\",\n description: \"Position of this worktree inside its lane.\",\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 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 worktreeId: {\n type: \"string\",\n description: \"Alias for linkedWorktreeId\",\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: [\"topicId\"],\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: [\"id\"],\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\", \"ontologyId\"],\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 campaign-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 currentCampaign: \"number | null\",\n nextCampaign: \"number | null\",\n activeWorktrees: \"array — current hinge worktree(s)\",\n nextWave: \"array — worktrees in the next planned campaign\",\n readyNow: \"array — planning worktrees with dependencies completed\",\n blockedBy: \"array — grouped blockers\",\n criticalPath: \"array — ordered incomplete worktree chain\",\n campaigns: \"array — incomplete worktrees grouped by campaign\",\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 list_campaigns: LIST_CAMPAIGNS,\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","export const DOMAIN_EVENT_VERSION = \"1.0\" as const;\nexport const EVENT_RETENTION_DEFAULT_DAYS = 30;\nexport const WEBHOOK_MAX_ATTEMPTS = 5;\nexport const WEBHOOK_RETRY_DELAYS_MS = [1_000, 5_000, 30_000, 300_000] as const;\n\nexport const DOMAIN_EVENT_TYPES = [\n \"belief.created\",\n \"belief.forked\",\n \"belief.confidence_updated\",\n \"belief.archived\",\n \"belief.refined\",\n \"belief.contract_created\",\n \"belief.contract_evaluated\",\n \"belief.lineage_queried\",\n \"evidence.created\",\n \"evidence.linked\",\n \"evidence.search_executed\",\n \"question.created\",\n \"question.answered\",\n \"question.refined\",\n \"question.status_updated\",\n \"question.archived\",\n \"edge.created\",\n \"contradiction.flagged\",\n \"worktree.created\",\n \"worktree.activated\",\n \"worktree.merged\",\n \"worktree.targets_updated\",\n \"worktree.metadata_updated\",\n \"topic.created\",\n \"topic.updated\",\n \"topic.archived\",\n \"task.created\",\n \"task.completed\",\n \"task.updated\",\n \"ontology.bound\",\n \"context.compiled\",\n \"identity.key_created\",\n \"identity.key_rotated\",\n \"identity.key_revoked\",\n \"webhook.test\",\n] as const;\n\nexport type DomainEventType = (typeof DOMAIN_EVENT_TYPES)[number];\n\nexport type DomainResourceType =\n | \"belief\"\n | \"evidence\"\n | \"question\"\n | \"edge\"\n | \"contradiction\"\n | \"worktree\"\n | \"topic\"\n | \"task\"\n | \"ontology\"\n | \"context\"\n | \"identity\"\n | \"webhook\";\n\nexport type DomainActorType = \"human\" | \"agent\" | \"service\";\nexport type DomainEventData = Record<string, unknown>;\n\nexport type DomainEvent = {\n eventId: string;\n type: DomainEventType | string;\n version: typeof DOMAIN_EVENT_VERSION;\n timestamp: number;\n tenantId?: string;\n workspaceId?: string;\n topicId: string;\n resourceId: string;\n resourceType: DomainResourceType | string;\n actorId: string;\n actorType: DomainActorType;\n data: DomainEventData;\n correlationId?: string;\n expiresAt: number;\n};\n\nexport type CreateDomainEventInput = {\n eventId?: string;\n timestamp?: number;\n tenantId?: string;\n workspaceId?: string;\n topicId: string;\n type: DomainEventType | string;\n resourceId: string;\n resourceType: DomainResourceType | string;\n actorId: string;\n actorType: DomainActorType;\n data?: DomainEventData;\n correlationId?: string;\n retentionDays?: number;\n};\n\nexport type EventCursor = {\n timestamp: number;\n eventId: string;\n};\n\ntype RuntimeBufferLike = {\n from(value: string, encoding: \"utf8\" | \"base64url\"): {\n toString(encoding: \"utf8\" | \"base64url\"): string;\n };\n};\n\nconst RUNTIME_BUFFER = (globalThis as typeof globalThis & {\n Buffer?: RuntimeBufferLike;\n}).Buffer;\n\nconst RUNTIME_ENV = (globalThis as typeof globalThis & {\n process?: {\n env?: Record<string, string | undefined>;\n };\n}).process?.env;\n\nexport type EventListQuery = {\n topicId?: string;\n after?: string;\n types?: string[];\n startTime?: number;\n endTime?: number;\n limit?: number;\n};\n\nexport type EventListResult = {\n events: DomainEvent[];\n nextCursor: string | null;\n};\n\nexport type WebhookSecretMode = \"configured\";\n\nexport type WebhookRecord = {\n id: string;\n webhookId: string;\n tenantId?: string;\n workspaceId?: string;\n topicId?: string;\n url: string;\n events: string[];\n active: boolean;\n secretConfigured: boolean;\n createdAt: number;\n updatedAt: number;\n createdBy: string;\n updatedBy: string;\n lastDeliveryAt?: number;\n lastSuccessfulDeliveryAt?: number;\n};\n\nexport type WebhookCreateInput = {\n url: string;\n events: string[];\n secret: string;\n topicId?: string;\n active?: boolean;\n};\n\nexport type WebhookUpdateInput = {\n url?: string;\n events?: string[];\n secret?: string;\n topicId?: string | null;\n active?: boolean;\n};\n\nexport type WebhookDeliveryStatus =\n | \"pending\"\n | \"delivering\"\n | \"succeeded\"\n | \"failed\"\n | \"dead_letter\";\n\nexport type WebhookDeliveryRecord = {\n id: string;\n deliveryId: string;\n webhookId: string;\n eventId: string;\n eventType: string;\n topicId: string;\n status: WebhookDeliveryStatus;\n attemptCount: number;\n maxAttempts: number;\n nextAttemptAt?: number;\n lastAttemptAt?: number;\n lastStatusCode?: number;\n lastError?: string;\n deliveredAt?: number;\n createdAt: number;\n updatedAt: number;\n};\n\nexport type WebhookDeliveryAttemptRecord = {\n id: string;\n attemptId: string;\n deliveryId: string;\n webhookId: string;\n eventId: string;\n eventType: string;\n attemptNumber: number;\n status: \"succeeded\" | \"failed\";\n statusCode?: number;\n error?: string;\n responseBody?: string;\n durationMs?: number;\n createdAt: number;\n};\n\nexport type WebhookDeliveriesResult = {\n deliveries: Array<\n WebhookDeliveryRecord & {\n attempts?: WebhookDeliveryAttemptRecord[];\n }\n >;\n};\n\nexport type WebhookHealthResult = {\n webhookId: string;\n totalAttempts: number;\n successfulAttempts: number;\n failedAttempts: number;\n successRate: number;\n pendingDeliveries: number;\n deadLetterDeliveries: number;\n lastDeliveryAt?: number;\n lastSuccessfulDeliveryAt?: number;\n};\n\nexport type WebhookTestResult = {\n webhookId: string;\n deliveryId: string;\n status: WebhookDeliveryStatus;\n attempts: number;\n};\n\nexport type ReplayEventsInput = EventListQuery & {\n webhookId?: string;\n};\n\nexport type ReplayEventsResult = EventListResult & {\n replayedDeliveries?: number;\n replayedWebhookId?: string;\n};\n\nfunction escapeRegex(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nexport function eventPatternToRegExp(pattern: string): RegExp {\n const normalized = pattern.trim();\n if (!normalized) {\n return /^$/;\n }\n if (normalized === \"*\") {\n return /^.*$/;\n }\n const source = escapeRegex(normalized).replace(/\\\\\\*/g, \".*\");\n return new RegExp(`^${source}$`);\n}\n\nexport function matchesEventPattern(\n eventType: string,\n pattern: string\n): boolean {\n return eventPatternToRegExp(pattern).test(eventType.trim());\n}\n\nexport function matchesAnyEventPattern(\n eventType: string,\n patterns: readonly string[]\n): boolean {\n if (patterns.length === 0) {\n return true;\n }\n return patterns.some((pattern) => matchesEventPattern(eventType, pattern));\n}\n\nfunction toBase64(value: string): string {\n if (RUNTIME_BUFFER) {\n return RUNTIME_BUFFER.from(value, \"utf8\").toString(\"base64url\");\n }\n return btoa(unescape(encodeURIComponent(value)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/g, \"\");\n}\n\nfunction fromBase64(value: string): string {\n if (RUNTIME_BUFFER) {\n return RUNTIME_BUFFER.from(value, \"base64url\").toString(\"utf8\");\n }\n const normalized = value.replace(/-/g, \"+\").replace(/_/g, \"/\");\n return decodeURIComponent(escape(atob(normalized)));\n}\n\nexport function createEventId(): string {\n const random =\n typeof globalThis.crypto?.randomUUID === \"function\"\n ? globalThis.crypto.randomUUID().replace(/-/g, \"\")\n : Array.from(\n typeof globalThis.crypto?.getRandomValues === \"function\"\n ? globalThis.crypto.getRandomValues(new Uint8Array(16))\n : Array.from({ length: 16 }, () => Math.floor(Math.random() * 256)),\n (value) => value.toString(16).padStart(2, \"0\")\n ).join(\"\");\n return `evt_${random}`;\n}\n\nexport function normalizeRetentionDays(value: number | undefined): number {\n if (!Number.isFinite(value) || typeof value !== \"number\" || value <= 0) {\n return EVENT_RETENTION_DEFAULT_DAYS;\n }\n return Math.max(1, Math.trunc(value));\n}\n\nexport function buildDomainEvent(input: CreateDomainEventInput): DomainEvent {\n const timestamp = input.timestamp ?? Date.now();\n const retentionDays = normalizeRetentionDays(input.retentionDays);\n return {\n eventId: input.eventId?.trim() || createEventId(),\n type: input.type.trim(),\n version: DOMAIN_EVENT_VERSION,\n timestamp,\n tenantId: input.tenantId?.trim() || undefined,\n workspaceId: input.workspaceId?.trim() || undefined,\n topicId: input.topicId.trim(),\n resourceId: input.resourceId.trim(),\n resourceType: input.resourceType.trim(),\n actorId: input.actorId.trim(),\n actorType: input.actorType,\n data: input.data ?? {},\n correlationId: input.correlationId?.trim() || undefined,\n expiresAt: timestamp + retentionDays * 24 * 60 * 60 * 1000,\n };\n}\n\nexport function compareEventCursor(left: EventCursor, right: EventCursor): number {\n if (left.timestamp !== right.timestamp) {\n return left.timestamp - right.timestamp;\n }\n return left.eventId.localeCompare(right.eventId);\n}\n\nexport function encodeEventCursor(cursor: EventCursor): string {\n return toBase64(JSON.stringify(cursor));\n}\n\nexport function decodeEventCursor(cursor: string | undefined): EventCursor | null {\n if (!cursor || cursor.trim().length === 0) {\n return null;\n }\n try {\n const parsed = JSON.parse(fromBase64(cursor.trim())) as Partial<EventCursor>;\n if (\n typeof parsed.timestamp !== \"number\" ||\n !Number.isFinite(parsed.timestamp) ||\n typeof parsed.eventId !== \"string\" ||\n parsed.eventId.trim().length === 0\n ) {\n return null;\n }\n return {\n timestamp: parsed.timestamp,\n eventId: parsed.eventId.trim(),\n };\n } catch {\n return null;\n }\n}\n\nexport function isAfterCursor(\n event: Pick<DomainEvent, \"timestamp\" | \"eventId\">,\n cursor: EventCursor | null\n): boolean {\n if (!cursor) {\n return true;\n }\n return compareEventCursor(event, cursor) > 0;\n}\n\nexport function sortEventsByCursor<T extends Pick<DomainEvent, \"timestamp\" | \"eventId\">>(\n events: readonly T[]\n): T[] {\n return [...events].sort((left, right) => compareEventCursor(left, right));\n}\n\nexport function inferActorType(args: {\n sessionType?: \"agent\" | \"user\";\n authMode?: string;\n principalType?: string;\n}): DomainActorType {\n if (args.sessionType === \"agent\") {\n return \"agent\";\n }\n if (\n args.authMode === \"service_principal\" ||\n args.authMode === \"tenant_api_key\" ||\n args.principalType === \"service\"\n ) {\n return \"service\";\n }\n return \"human\";\n}\n\nexport async function emitDomainEvent(\n invokeMutation: (reference: any, args: CreateDomainEventInput) => Promise<unknown>,\n input: CreateDomainEventInput\n): Promise<unknown> {\n return await invokeMutation(\"events:recordEvent\" as any, input);\n}\n\nconst LOCALHOST_HOSTS = new Set([\"localhost\", \"127.0.0.1\", \"::1\"]);\n\nfunction normalizeUrl(url: string): URL {\n try {\n return new URL(url.trim());\n } catch {\n throw new Error(\"Webhook URL must be a valid absolute URL.\");\n }\n}\n\nexport function assertValidWebhookUrl(url: string): string {\n const parsed = normalizeUrl(url);\n const hostname = parsed.hostname.trim().toLowerCase();\n const nodeEnv = RUNTIME_ENV?.NODE_ENV;\n const allowLocalHttp =\n nodeEnv === \"test\" || LOCALHOST_HOSTS.has(hostname);\n\n if (parsed.protocol !== \"https:\" && !(allowLocalHttp && parsed.protocol === \"http:\")) {\n throw new Error(\"Webhook URL must use HTTPS.\");\n }\n\n return parsed.toString();\n}\n\nexport function normalizeWebhookPatterns(patterns: readonly string[]): string[] {\n const normalized = Array.from(\n new Set(\n patterns\n .map((pattern) => pattern.trim())\n .filter((pattern) => pattern.length > 0)\n )\n );\n\n if (normalized.length === 0) {\n throw new Error(\"At least one webhook event pattern is required.\");\n }\n\n return normalized;\n}\n\nexport function assertValidWebhookSecret(secret: string): string {\n const normalized = secret.trim();\n if (normalized.length < 8) {\n throw new Error(\"Webhook secret must be at least 8 characters.\");\n }\n return normalized;\n}\n\nexport async function computeWebhookSignature(\n payload: string,\n secret: string\n): Promise<string> {\n const encoder = new TextEncoder();\n const key = await crypto.subtle.importKey(\n \"raw\",\n encoder.encode(secret),\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n [\"sign\"]\n );\n const signature = await crypto.subtle.sign(\"HMAC\", key, encoder.encode(payload));\n return Array.from(new Uint8Array(signature))\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\nexport function nextDeliveryAttemptAt(\n currentAttemptCount: number,\n now = Date.now()\n): number | undefined {\n if (currentAttemptCount >= WEBHOOK_MAX_ATTEMPTS) {\n return undefined;\n }\n const retryIndex = currentAttemptCount - 1;\n const delay = WEBHOOK_RETRY_DELAYS_MS[retryIndex];\n return typeof delay === \"number\" ? now + delay : undefined;\n}\n\nexport function resolveDeliveryFailureStatus(\n attemptCount: number\n): WebhookDeliveryStatus {\n return attemptCount >= WEBHOOK_MAX_ATTEMPTS ? \"dead_letter\" : \"failed\";\n}\n\nexport function sanitizeWebhookRecord(\n value: Record<string, unknown>\n): WebhookRecord {\n return {\n id: String(value.id ?? value.webhookId ?? value._id ?? \"\"),\n webhookId: String(value.webhookId ?? value.id ?? value._id ?? \"\"),\n tenantId:\n typeof value.tenantId === \"string\" && value.tenantId.trim().length > 0\n ? value.tenantId\n : undefined,\n workspaceId:\n typeof value.workspaceId === \"string\" && value.workspaceId.trim().length > 0\n ? value.workspaceId\n : undefined,\n topicId:\n typeof value.topicId === \"string\" && value.topicId.trim().length > 0\n ? value.topicId\n : undefined,\n url: String(value.url ?? \"\"),\n events: Array.isArray(value.events)\n ? value.events\n .map((entry) => (typeof entry === \"string\" ? entry.trim() : \"\"))\n .filter(Boolean)\n : [],\n active: value.active !== false,\n secretConfigured: true,\n createdAt: Number(value.createdAt ?? Date.now()),\n updatedAt: Number(value.updatedAt ?? value.createdAt ?? Date.now()),\n createdBy: String(value.createdBy ?? \"\"),\n updatedBy: String(value.updatedBy ?? value.createdBy ?? \"\"),\n lastDeliveryAt:\n typeof value.lastDeliveryAt === \"number\" ? value.lastDeliveryAt : undefined,\n lastSuccessfulDeliveryAt:\n typeof value.lastSuccessfulDeliveryAt === \"number\"\n ? value.lastSuccessfulDeliveryAt\n : undefined,\n };\n}\n\nexport function truncateWebhookResponseBody(\n responseBody: string | undefined,\n maxLength = 2_000\n): string | undefined {\n if (!responseBody) {\n return undefined;\n }\n if (responseBody.length <= maxLength) {\n return responseBody;\n }\n return `${responseBody.slice(0, maxLength - 3)}...`;\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 \"list_campaigns\",\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 type { McpToolContract } from \"@lucern/sdk\";\nimport type { McpToolResult } from \"./types\";\n\nexport type ToolExecutionTransportKind =\n | \"stdio\"\n | \"hosted\"\n | \"remote\"\n | \"chat\"\n | (string & {});\n\nexport type ToolExecutionAuthMode =\n | \"interactive_user\"\n | \"service_principal\"\n | \"tenant_api_key\"\n | \"session_token\"\n | \"unknown\";\n\nexport type ToolExecutionEnvelope = {\n toolName: string;\n params: Record<string, unknown>;\n contract: McpToolContract;\n transport: {\n kind: ToolExecutionTransportKind;\n surface: \"mcp\" | \"chat\";\n normalizedAt: \"handler_boundary\";\n };\n auth: {\n mode: ToolExecutionAuthMode;\n };\n policy: {\n requiredScopes: readonly string[];\n enforcement: \"gateway\";\n };\n audit: {\n source: \"gateway_envelope\";\n structuralFields: readonly [\n \"toolName\",\n \"code\",\n \"status\",\n \"correlationId\",\n \"policyTraceId\",\n \"invariant\",\n ];\n };\n};\n\nexport type ToolExecutionAuditEvent = {\n toolName: string;\n contractName: string;\n transportKind: ToolExecutionTransportKind;\n authMode: ToolExecutionAuthMode;\n requiredScopes: readonly string[];\n source: \"gateway_envelope\";\n isError: boolean;\n code?: string;\n status?: number;\n correlationId?: string | null;\n policyTraceId?: string | null;\n invariant?: string | null;\n};\n\nexport type ToolExecutionHookSet = {\n onEnvelope?: (envelope: ToolExecutionEnvelope) => Promise<void> | void;\n onAuditEvent?: (event: ToolExecutionAuditEvent) => Promise<void> | void;\n};\n\nexport type TransportParityDriftKind =\n | \"missing_tool\"\n | \"degraded_behavior\"\n | \"audit_drift\"\n | \"policy_drift\";\n\nconst SCOPE_ALIAS_GROUPS: readonly (readonly string[])[] = [];\n\nexport function classifyTransportParityDrift(\n kind: TransportParityDriftKind\n): \"critical\" | \"high\" | \"medium\" {\n switch (kind) {\n case \"missing_tool\":\n return \"critical\";\n case \"degraded_behavior\":\n return \"high\";\n case \"audit_drift\":\n case \"policy_drift\":\n return \"medium\";\n }\n}\n\nexport function createToolExecutionEnvelope(args: {\n toolName: string;\n params: Record<string, unknown>;\n contract: McpToolContract;\n transportKind: ToolExecutionTransportKind;\n authMode: ToolExecutionAuthMode;\n requiredScopes: readonly string[];\n}): ToolExecutionEnvelope {\n return {\n toolName: args.toolName,\n params: args.params,\n contract: args.contract,\n transport: {\n kind: args.transportKind,\n surface: args.transportKind === \"chat\" ? \"chat\" : \"mcp\",\n normalizedAt: \"handler_boundary\",\n },\n auth: {\n mode: args.authMode,\n },\n policy: {\n requiredScopes: args.requiredScopes,\n enforcement: \"gateway\",\n },\n audit: {\n source: \"gateway_envelope\",\n structuralFields: [\n \"toolName\",\n \"code\",\n \"status\",\n \"correlationId\",\n \"policyTraceId\",\n \"invariant\",\n ],\n },\n };\n}\n\nfunction hasValue(value: unknown): boolean {\n if (value === undefined || value === null) {\n return false;\n }\n if (typeof value === \"string\") {\n return value.trim().length > 0;\n }\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n return true;\n}\n\nexport function normalizeToolExecutionParams(\n params: Record<string, unknown>\n): Record<string, unknown> {\n const normalized = { ...params };\n\n for (const aliases of SCOPE_ALIAS_GROUPS) {\n const sourceKey = aliases.find((key) => hasValue(normalized[key]));\n if (!sourceKey) {\n continue;\n }\n\n for (const key of aliases) {\n if (!hasValue(normalized[key])) {\n normalized[key] = normalized[sourceKey];\n }\n }\n }\n\n return normalized;\n}\n\nexport function parseToolExecutionMetadata(result: McpToolResult): {\n isError: boolean;\n code?: string;\n status?: number;\n correlationId?: string | null;\n policyTraceId?: string | null;\n invariant?: string | null;\n} {\n const raw = result.content[0]?.text;\n if (!raw) {\n return { isError: Boolean(result.isError) };\n }\n\n try {\n const payload = JSON.parse(raw) as Record<string, unknown>;\n return {\n isError: Boolean(result.isError),\n code: typeof payload.code === \"string\" ? payload.code : undefined,\n status: typeof payload.status === \"number\" ? payload.status : undefined,\n correlationId:\n typeof payload.correlationId === \"string\" ||\n payload.correlationId === null\n ? (payload.correlationId as string | null)\n : undefined,\n policyTraceId:\n typeof payload.policyTraceId === \"string\" ||\n payload.policyTraceId === null\n ? (payload.policyTraceId as string | null)\n : undefined,\n invariant:\n typeof payload.invariant === \"string\" || payload.invariant === null\n ? (payload.invariant as string | null)\n : undefined,\n };\n } catch {\n return { isError: Boolean(result.isError) };\n }\n}\n\nexport async function executeToolWithEnvelope(args: {\n envelope: ToolExecutionEnvelope;\n execute: () => Promise<McpToolResult>;\n hooks?: ToolExecutionHookSet;\n}): Promise<McpToolResult> {\n await args.hooks?.onEnvelope?.(args.envelope);\n\n const result = await args.execute();\n const metadata = parseToolExecutionMetadata(result);\n\n await args.hooks?.onAuditEvent?.({\n toolName: args.envelope.toolName,\n contractName: args.envelope.contract.name,\n transportKind: args.envelope.transport.kind,\n authMode: args.envelope.auth.mode,\n requiredScopes: args.envelope.policy.requiredScopes,\n source: args.envelope.audit.source,\n ...metadata,\n });\n\n return result;\n}\n","import type { GatewayClientConfig, McpToolContract } from \"@lucern/sdk\";\nimport type { McpObservationStore } from \"./observation-store\";\n\nexport type McpToolName =\n keyof typeof import(\"@lucern/sdk\").MCP_TOOL_CONTRACTS;\n\nexport type McpTextContent = {\n type: \"text\";\n text: string;\n};\n\nexport type McpToolResult = {\n content: McpTextContent[];\n isError?: boolean;\n};\n\nexport type McpToolHandler = (\n params: Record<string, unknown>,\n contract: McpToolContract\n) => Promise<McpToolResult>;\n\nexport type McpHandlerContext = {\n sdkConfig: GatewayClientConfig;\n observationStore?: McpObservationStore;\n onObservationIngested?: (topicId: string) => Promise<void> | void;\n};\n\nexport class McpHandlerError extends Error {\n readonly code: string;\n readonly status: number;\n readonly suggestion?: string;\n\n constructor(\n message: string,\n code = \"INVALID_REQUEST\",\n status = 400,\n suggestion?: string\n ) {\n super(message);\n this.name = \"McpHandlerError\";\n this.code = code;\n this.status = status;\n this.suggestion = suggestion;\n }\n}\n","import type { McpToolContract } from \"@lucern/sdk\";\nimport { LucernApiError } from \"@lucern/sdk\";\nimport {\n McpHandlerError,\n type McpToolHandler,\n type McpToolResult,\n} from \"./types\";\n\nfunction isMissing(value: unknown): boolean {\n if (value === undefined || value === null) {\n return true;\n }\n if (typeof value === \"string\") {\n return value.trim().length === 0;\n }\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n return false;\n}\n\nexport function readString(\n params: Record<string, unknown>,\n key: string,\n options: { required: true }\n): string;\nexport function readString(\n params: Record<string, unknown>,\n key: string,\n options?: { required?: boolean }\n): string | undefined;\nexport function readString(\n params: Record<string, unknown>,\n key: string,\n options: { required?: boolean } = {}\n): string | undefined {\n const value = params[key];\n if (value === undefined || value === null) {\n if (options.required) {\n throw new McpHandlerError(`Missing required parameter: ${key}`);\n }\n return;\n }\n if (typeof value !== \"string\") {\n throw new McpHandlerError(`Expected string parameter: ${key}`);\n }\n const trimmed = value.trim();\n if (!trimmed && options.required) {\n throw new McpHandlerError(`Missing required parameter: ${key}`);\n }\n return trimmed || undefined;\n}\n\nexport function readNumber(\n params: Record<string, unknown>,\n key: string,\n options: { required: true }\n): number;\nexport function readNumber(\n params: Record<string, unknown>,\n key: string,\n options?: { required?: boolean }\n): number | undefined;\nexport function readNumber(\n params: Record<string, unknown>,\n key: string,\n options: { required?: boolean } = {}\n): number | undefined {\n const value = params[key];\n if (value === undefined || value === null) {\n if (options.required) {\n throw new McpHandlerError(`Missing required parameter: ${key}`);\n }\n return;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n throw new McpHandlerError(`Expected numeric parameter: ${key}`);\n }\n return value;\n}\n\nexport function readBoolean(\n params: Record<string, unknown>,\n key: string,\n options: { required?: boolean } = {}\n): boolean | undefined {\n const value = params[key];\n if (value === undefined || value === null) {\n if (options.required) {\n throw new McpHandlerError(`Missing required parameter: ${key}`);\n }\n return;\n }\n if (typeof value !== \"boolean\") {\n throw new McpHandlerError(`Expected boolean parameter: ${key}`);\n }\n return value;\n}\n\nexport function readStringArray(\n params: Record<string, unknown>,\n key: string\n): string[] | undefined {\n const value = params[key];\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n throw new McpHandlerError(`Expected array parameter: ${key}`);\n }\n const values = value\n .map((entry) => (typeof entry === \"string\" ? entry.trim() : \"\"))\n .filter((entry) => entry.length > 0);\n return values.length > 0 ? values : undefined;\n}\n\nexport function readTopicId(\n params: Record<string, unknown>,\n options: { required: true }\n): string;\nexport function readTopicId(\n params: Record<string, unknown>,\n options?: { required?: boolean }\n): string | undefined;\nexport function readTopicId(\n params: Record<string, unknown>,\n options: { required?: boolean } = {}\n): string | undefined {\n const value = params.topicId;\n if (value === undefined || value === null) {\n if (options.required) {\n throw new McpHandlerError(\"Missing required parameter: topicId\");\n }\n return;\n }\n if (typeof value !== \"string\") {\n throw new McpHandlerError(\"Expected string parameter: topicId\");\n }\n const trimmed = value.trim();\n if (!trimmed && options.required) {\n throw new McpHandlerError(\"Missing required parameter: topicId\");\n }\n return trimmed || undefined;\n}\n\nexport function toMcpResult(payload: unknown): McpToolResult {\n return {\n content: [{ type: \"text\", text: JSON.stringify(payload) }],\n };\n}\n\nexport function toMcpError(error: unknown): McpToolResult {\n if (error instanceof McpHandlerError) {\n return {\n isError: true,\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n code: error.code,\n status: error.status,\n message: error.message,\n suggestion: error.suggestion ?? null,\n }),\n },\n ],\n };\n }\n\n if (error instanceof LucernApiError) {\n return {\n isError: true,\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n code: error.code,\n status: error.status,\n message: error.message,\n invariant: error.invariant ?? null,\n suggestion: error.suggestion ?? null,\n correlationId: error.correlationId,\n policyTraceId: error.policyTraceId,\n }),\n },\n ],\n };\n }\n\n const message =\n error instanceof Error ? error.message : \"Tool execution failed.\";\n return {\n isError: true,\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n code: \"INTERNAL_ERROR\",\n status: 500,\n message,\n }),\n },\n ],\n };\n}\n\nexport function createNotImplementedHandler(name: string): McpToolHandler {\n return async () =>\n toMcpError(\n new McpHandlerError(\n `Tool not implemented yet: ${name}`,\n \"NOT_IMPLEMENTED\",\n 501\n )\n );\n}\n\nfunction validateRequired(\n params: Record<string, unknown>,\n contract: McpToolContract\n): void {\n for (const key of contract.required) {\n if (isMissing(params[key])) {\n throw new McpHandlerError(`Missing required parameter: ${key}`);\n }\n }\n}\n\nexport function contractToHandler(\n contract: McpToolContract,\n executor: (params: Record<string, unknown>) => Promise<unknown>\n): McpToolHandler {\n return async (params) => {\n try {\n validateRequired(params, contract);\n const payload = await executor(params);\n return toMcpResult(payload);\n } catch (error) {\n return toMcpError(error);\n }\n };\n}\n","import {\n createBeliefsClient,\n createGraphClient,\n MCP_TOOL_CONTRACTS,\n} from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readNumber,\n readString,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\nimport { McpHandlerError } from \"../types\";\n\nconst AMBIGUOUS_SCALAR_SUGGESTION =\n \"Use opinion tuple (b, d, u, a) or an @lucern/sdk opinionFromBaseRate/opinionFromDogmatic/opinionFromProjected helper.\";\n\nfunction readOpinionTuple(params: Record<string, unknown>) {\n const belief = readNumber(params, \"belief\");\n const disbelief = readNumber(params, \"disbelief\");\n const uncertainty = readNumber(params, \"uncertainty\");\n const baseRate = readNumber(params, \"baseRate\");\n const tupleValues = [belief, disbelief, uncertainty, baseRate];\n const providedCount = tupleValues.filter(\n (value) => value !== undefined\n ).length;\n\n if (providedCount === 0) {\n if (readNumber(params, \"confidence\") !== undefined) {\n throw new McpHandlerError(\n \"Scalar confidence input is ambiguous without an explicit subjective-logic interpretation.\",\n \"AMBIGUOUS_SCALAR\",\n 400,\n AMBIGUOUS_SCALAR_SUGGESTION\n );\n }\n throw new McpHandlerError(\n \"Missing required opinion tuple: belief, disbelief, uncertainty, and baseRate are required.\",\n \"INVALID_REQUEST\",\n 400\n );\n }\n\n if (providedCount !== tupleValues.length) {\n throw new McpHandlerError(\n \"Incomplete opinion tuple: belief, disbelief, uncertainty, and baseRate must all be provided together.\",\n \"INVALID_REQUEST\",\n 400\n );\n }\n\n return {\n b: belief!,\n d: disbelief!,\n u: uncertainty!,\n a: baseRate!,\n };\n}\n\nexport function createBeliefHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const beliefs = createBeliefsClient(context.sdkConfig);\n const graph = createGraphClient(context.sdkConfig);\n\n return {\n create_belief: contractToHandler(\n MCP_TOOL_CONTRACTS.create_belief,\n async (params) => {\n const result = await beliefs.createBelief({\n canonicalText: readString(params, \"canonicalText\", {\n required: true,\n })!,\n topicId: readTopicId(params, { required: true })!,\n layer: readString(params, \"layer\") as\n | \"L1\"\n | \"L2\"\n | \"L3\"\n | \"L4\"\n | undefined,\n domain: readString(params, \"domain\"),\n subtype: readString(params, \"nodeType\"),\n baseRate: readNumber(params, \"baseRate\", { required: true }),\n });\n return {\n nodeId: result.data.nodeId,\n globalId: result.data.globalId,\n status: result.data.status ?? \"unscored\",\n };\n }\n ),\n\n refine_belief: contractToHandler(\n MCP_TOOL_CONTRACTS.refine_belief,\n async (params) => {\n const nodeId = readString(params, \"nodeId\", { required: true })!;\n const canonicalText = readString(params, \"canonicalText\", {\n required: true,\n })!;\n const rationale = readString(params, \"rationale\");\n const result = await beliefs.refineBelief(nodeId, {\n canonicalText,\n rationale,\n });\n return {\n nodeId: result.data.nodeId ?? nodeId,\n canonicalText: result.data.canonicalText ?? canonicalText,\n updatedAt:\n (result.data as { updatedAt?: number }).updatedAt ?? Date.now(),\n };\n }\n ),\n\n modulate_confidence: contractToHandler(\n MCP_TOOL_CONTRACTS.modulate_confidence,\n async (params) => {\n const nodeId = readString(params, \"nodeId\", { required: true })!;\n const opinion = readOpinionTuple(params);\n const result = await beliefs.modulateConfidence(nodeId, {\n opinion,\n trigger: readString(params, \"trigger\", { required: true }) as\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 rationale: readString(params, \"rationale\", { required: true })!,\n triggeringEvidenceId: readString(params, \"triggeringEvidenceId\"),\n triggeringQuestionId: readString(params, \"triggeringQuestionId\"),\n triggeringAnswerId: readString(params, \"triggeringAnswerId\"),\n triggeringContradictionId: readString(\n params,\n \"triggeringContradictionId\"\n ),\n triggeringWorktreeId: readString(params, \"triggeringWorktreeId\"),\n });\n return {\n nodeId,\n newConfidence:\n (result.data as { newConfidence?: number; confidence?: number })\n .newConfidence ??\n (result.data as { confidence?: number }).confidence ??\n opinion.b + opinion.a * opinion.u,\n previousConfidence:\n (result.data as { previousConfidence?: number | null })\n .previousConfidence ?? null,\n trigger: readString(params, \"trigger\", { required: true }),\n };\n }\n ),\n\n fork_belief: contractToHandler(\n MCP_TOOL_CONTRACTS.fork_belief,\n async (params) => {\n const nodeId = readString(params, \"nodeId\", { required: true })!;\n const forkReason = readString(params, \"forkReason\", {\n required: true,\n }) as\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n const result = await beliefs.forkBelief(nodeId, {\n newFormulation: readString(params, \"newFormulation\", {\n required: true,\n })!,\n forkReason,\n });\n return {\n nodeId: result.data.nodeId,\n parentNodeId: result.data.parentNodeId ?? nodeId,\n forkReason: result.data.forkReason ?? forkReason,\n };\n }\n ),\n\n archive_belief: contractToHandler(\n MCP_TOOL_CONTRACTS.archive_belief,\n async (params) => {\n const nodeId = readString(params, \"nodeId\", { required: true })!;\n const rationale = readString(params, \"rationale\");\n const result = await graph.updateNode({\n nodeId,\n status: \"archived\",\n metadata: rationale\n ? {\n archiveRationale: rationale,\n }\n : undefined,\n });\n return {\n nodeId: (result.data as { nodeId?: string }).nodeId ?? nodeId,\n status: \"archived\",\n };\n }\n ),\n };\n}\n","import { createContextClient, MCP_TOOL_CONTRACTS } from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readBoolean,\n readNumber,\n readString,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nexport function createContextHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const compiler = createContextClient(context.sdkConfig);\n\n return {\n compile_context: contractToHandler(\n MCP_TOOL_CONTRACTS.compile_context,\n async (params) => {\n const response = await compiler.compile(\n readTopicId(params, { required: true })!,\n {\n ...(readString(params, \"query\")\n ? { query: readString(params, \"query\") }\n : {}),\n ...(readNumber(params, \"budget\") !== undefined\n ? { budget: readNumber(params, \"budget\") }\n : {}),\n ...(readString(params, \"ranking\")\n ? {\n ranking: readString(params, \"ranking\") as\n | \"hybrid_v1\"\n | \"weighted_v1\"\n | undefined,\n }\n : {}),\n ...(readNumber(params, \"limit\") !== undefined\n ? { limit: readNumber(params, \"limit\") }\n : {}),\n ...(readNumber(params, \"maxDepth\") !== undefined\n ? { maxDepth: readNumber(params, \"maxDepth\") }\n : {}),\n ...(readBoolean(params, \"includeEntities\") !== undefined\n ? { includeEntities: readBoolean(params, \"includeEntities\") }\n : {}),\n }\n );\n\n return response.data;\n }\n ),\n };\n}\n","import { createLucernClient, MCP_TOOL_CONTRACTS } from \"@lucern/sdk\";\nimport { contractToHandler, readString, readTopicId } from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nexport function createContradictionHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const lucern = createLucernClient(context.sdkConfig);\n\n return {\n flag_contradiction: contractToHandler(\n MCP_TOOL_CONTRACTS.flag_contradiction,\n async (params) => {\n const beliefA = readString(params, \"beliefA\", { required: true })!;\n const beliefB = readString(params, \"beliefB\", { required: true })!;\n const description = readString(params, \"description\", {\n required: true,\n })!;\n const topicId = readTopicId(params, { required: true })!;\n const severity = readString(params, \"severity\") ?? \"medium\";\n const defeatType = readString(params, \"defeatType\") ?? \"rebuts\";\n\n const contradiction = await lucern.contradictions.flag({\n beliefA,\n beliefB,\n description,\n topicId,\n severity,\n defeatType,\n });\n\n return {\n contradictionId: contradiction.contradictionId,\n status: contradiction.status,\n beliefA: contradiction.beliefA,\n beliefB: contradiction.beliefB,\n };\n }\n ),\n };\n}\n","import { createLucernClient, MCP_TOOL_CONTRACTS } from \"@lucern/sdk\";\nimport { contractToHandler, readNumber, readString } from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nexport function createEdgeHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const lucern = createLucernClient(context.sdkConfig);\n\n return {\n create_edge: contractToHandler(\n MCP_TOOL_CONTRACTS.create_edge,\n async (params) => {\n const sourceId = readString(params, \"sourceId\", { required: true })!;\n const targetId = readString(params, \"targetId\", { required: true })!;\n const edgeType = readString(params, \"edgeType\", { required: true })!;\n const confidence = readNumber(params, \"confidence\");\n const weight = readNumber(params, \"weight\");\n const contextText =\n readString(params, \"context\") ?? readString(params, \"reasoning\");\n\n const edge = await lucern.edges.create({\n sourceId,\n targetId,\n edgeType,\n confidence,\n weight,\n context: contextText,\n });\n\n return {\n globalId: edge.globalId ?? edge.edgeId ?? \"\",\n edgeType: edge.edgeType ?? edgeType,\n fromLayer: edge.fromLayer ?? \"unknown\",\n toLayer: edge.toLayer ?? \"unknown\",\n };\n }\n ),\n };\n}\n","import {\n createLucernClient,\n MCP_TOOL_CONTRACTS,\n type JsonObject,\n} from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readNumber,\n readString,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nfunction readMetadata(\n params: Record<string, unknown>\n): JsonObject | undefined {\n const metadata = params.metadata;\n return metadata && typeof metadata === \"object\" && !Array.isArray(metadata)\n ? (metadata as JsonObject)\n : undefined;\n}\n\nexport function createEvidenceHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const lucern = createLucernClient(context.sdkConfig);\n\n return {\n create_evidence: contractToHandler(\n MCP_TOOL_CONTRACTS.create_evidence,\n async (params) => {\n const response = await lucern.evidence.create({\n topicId: readTopicId(params, { required: true }),\n text: readString(params, \"text\", { required: true }),\n source: readString(params, \"source\"),\n targetId: readString(params, \"targetId\"),\n weight: readNumber(params, \"weight\"),\n metadata: readMetadata(params),\n title: readString(params, \"title\"),\n content: readString(params, \"content\"),\n contentType: readString(params, \"contentType\"),\n kind: readString(params, \"kind\"),\n });\n return response.data;\n }\n ),\n\n get_evidence: contractToHandler(\n MCP_TOOL_CONTRACTS.get_evidence,\n async (params) => {\n const response = await lucern.evidence.get(\n readString(params, \"id\", { required: true })\n );\n return response.data;\n }\n ),\n\n list_evidence: contractToHandler(\n MCP_TOOL_CONTRACTS.list_evidence,\n async (params) => {\n const response = await lucern.evidence.list({\n topicId: readTopicId(params),\n targetId: readString(params, \"targetId\"),\n limit: readNumber(params, \"limit\"),\n cursor: readString(params, \"cursor\"),\n });\n return response.data;\n }\n ),\n\n link_evidence: contractToHandler(\n MCP_TOOL_CONTRACTS.link_evidence,\n async (params) => {\n const response = await lucern.evidence.link({\n evidenceId: readString(params, \"evidenceId\", { required: true }),\n targetId: readString(params, \"targetId\", { required: true }),\n weight: readNumber(params, \"weight\"),\n rationale: readString(params, \"rationale\"),\n });\n return response.data;\n }\n ),\n\n search_evidence: contractToHandler(\n MCP_TOOL_CONTRACTS.search_evidence,\n async (params) => {\n const response = await lucern.evidence.search({\n q:\n readString(params, \"q\") ??\n readString(params, \"query\", { required: true }),\n topicId: readTopicId(params),\n targetId: readString(params, \"targetId\"),\n limit: readNumber(params, \"limit\"),\n cursor: readString(params, \"cursor\"),\n });\n return response.data;\n }\n ),\n\n add_evidence: contractToHandler(\n MCP_TOOL_CONTRACTS.add_evidence,\n async (params) => {\n return lucern.evidence.add({\n canonicalText: readString(params, \"canonicalText\", { required: true }),\n topicId: readTopicId(params, { required: true }),\n sourceUrl: readString(params, \"sourceUrl\"),\n supports: {\n nodeId: readString(params, \"targetNodeId\", { required: true }),\n weight: readNumber(params, \"weight\") ?? 1,\n reasoning: readString(params, \"reasoning\"),\n },\n title: readString(params, \"title\"),\n content: readString(params, \"content\"),\n contentType: readString(params, \"contentType\"),\n metadata: readMetadata(params),\n });\n }\n ),\n\n link_evidence_to_belief: contractToHandler(\n MCP_TOOL_CONTRACTS.link_evidence_to_belief,\n async (params) => {\n return lucern.evidence.linkToBelief({\n evidenceId: readString(params, \"evidenceId\", { required: true }),\n beliefId: readString(params, \"beliefId\", { required: true }),\n weight: readNumber(params, \"weight\", { required: true }),\n rationale: readString(params, \"rationale\"),\n });\n }\n ),\n };\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 neo4jSyncQueue = defineTable({\n name: \"neo4jSyncQueue\",\n component: \"kernel\",\n category: \"infra\",\n shape: z.object({\n \"entityType\": z.enum([\"node\", \"edge\"]),\n \"entityId\": z.string(),\n \"operation\": z.enum([\"upsert\", \"delete\"]),\n \"attempts\": z.number(),\n \"maxAttempts\": z.number(),\n \"lastAttemptAt\": z.number().optional(),\n \"lastError\": z.string().optional(),\n \"status\": z.enum([\"pending\", \"in_progress\", \"failed\", \"succeeded\"]),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_entity\", columns: [\"entityType\", \"entityId\"] },\n { kind: 'index', name: \"by_status_attempts\", columns: [\"status\", \"attempts\"] }\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(),\n \"disbelief\": z.number(),\n \"uncertainty\": z.number(),\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\", \"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 \"triggeringQuestionId\": z.string().optional(),\n \"triggeringAnswerId\": 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\", \"staging\", \"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 \"dependsOn\": z.array(idOf(\"worktrees\")).optional(),\n \"blocks\": z.array(idOf(\"worktrees\")).optional(),\n \"gate\": z.string().optional(),\n \"campaign\": z.number().optional(),\n \"lane\": z.string().optional(),\n \"laneOrderInCampaign\": z.number().optional(),\n \"orderInLane\": 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_campaign_lane_order\", columns: [\"topicId\", \"campaign\", \"laneOrderInCampaign\", \"orderInLane\"] },\n { kind: 'index', name: \"by_topicId_lane_order\", columns: [\"topicId\", \"lane\", \"orderInLane\"] },\n { kind: 'index', name: \"by_topicId_branch\", columns: [\"topicId\", \"targetBranch\"] },\n { kind: 'index', name: \"by_topicId_scope\", columns: [\"topicId\", \"worktreeScope\"] }\n ],\n});\n","import { z } from \"zod\";\n\nexport const ComponentTableManifestSchema = z.object({\n manifestVersion: z.string(),\n componentName: z.enum([\"kernel\", \"identity\"]),\n tier: z.enum([\"K\", \"I\"]),\n packageVersion: z.string(),\n tables: z.array(\n z.object({\n name: z.string(),\n fields: z.array(\n z.object({\n name: z.string(),\n type: z.string(),\n optional: z.boolean(),\n validator: z.string().optional(),\n })\n ),\n })\n ),\n});\n\nexport type ComponentTableManifest = z.infer<\n typeof ComponentTableManifestSchema\n>;\n","import { z } from \"zod\";\n\nconst SL_EPSILON = 1e-9;\n\nexport const SLOpinionInputSchema = z\n .object({\n belief: z.number(),\n disbelief: z.number(),\n uncertainty: z.number(),\n baseRate: z.number(),\n })\n .refine(\n (o) => Math.abs(o.belief + o.disbelief + o.uncertainty - 1) < SL_EPSILON,\n {\n message: \"SL invariant b+d+u=1 violated at API boundary\",\n }\n );\n\nexport type SLOpinionInput = z.infer<typeof SLOpinionInputSchema>;\n","import { z } from \"zod\";\n\nexport const EpistemicNodeTypeSchema = z.enum([\n \"belief\",\n \"evidence\",\n \"question\",\n \"answer\",\n \"topic\",\n \"edge\",\n \"ontology\",\n \"lens\",\n \"contradiction\",\n]);\n\nexport type EpistemicNodeType = z.infer<typeof EpistemicNodeTypeSchema>;\n\nexport type GraphRef =\n | { kind: \"epistemic_node\"; nodeId: string; nodeType: EpistemicNodeType }\n | { kind: \"external_belief\"; ref: { tenantId: string; beliefId: string } };\n\nexport const GraphRefSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"epistemic_node\"),\n nodeId: z.string(),\n nodeType: EpistemicNodeTypeSchema,\n }),\n z.object({\n kind: z.literal(\"external_belief\"),\n ref: z.object({\n tenantId: z.string(),\n beliefId: z.string(),\n }),\n }),\n]);\n","import { z } from \"zod\";\nimport {\n EpistemicNodeTypeSchema,\n type EpistemicNodeType,\n type GraphRef,\n} from \"../types/graph-ref.js\";\n\nconst graphRefKind = z.enum([\"epistemic_node\", \"external_belief\"]);\n\nexport const EdgePolicyEntrySchema = z.object({\n edgeType: z.string(),\n fromKinds: z.array(graphRefKind),\n fromNodeTypes: z.array(EpistemicNodeTypeSchema).optional(),\n toKinds: z.array(graphRefKind),\n toNodeTypes: z.array(EpistemicNodeTypeSchema).optional(),\n description: z.string(),\n});\n\nexport const EdgePolicyManifestSchema = z.object({\n manifestVersion: z.literal(\"1.0.0\"),\n policies: z.array(EdgePolicyEntrySchema),\n});\n\nexport type EdgePolicyEntry = z.infer<typeof EdgePolicyEntrySchema>;\nexport type EdgePolicyManifest = z.infer<typeof EdgePolicyManifestSchema>;\n\nexport type EdgePolicyViolation = {\n code: \"POLICY_VIOLATION\";\n edgeType: string;\n from: GraphRef;\n to: GraphRef;\n};\n\nexport function findEdgePolicy(\n manifest: EdgePolicyManifest,\n edgeType: string\n): EdgePolicyEntry | undefined {\n return manifest.policies.find((policy) => policy.edgeType === edgeType);\n}\n\nfunction nodeTypeAllowed(\n allowed: EpistemicNodeType[] | undefined,\n ref: GraphRef\n): boolean {\n return (\n ref.kind !== \"epistemic_node\" ||\n !allowed ||\n allowed.includes(ref.nodeType)\n );\n}\n\nexport function assertEdgePolicyAllowed(\n manifest: EdgePolicyManifest,\n edgeType: string,\n from: GraphRef,\n to: GraphRef\n): void {\n const policy = findEdgePolicy(manifest, edgeType);\n const allowed =\n Boolean(policy) &&\n policy!.fromKinds.includes(from.kind) &&\n policy!.toKinds.includes(to.kind) &&\n nodeTypeAllowed(policy!.fromNodeTypes, from) &&\n nodeTypeAllowed(policy!.toNodeTypes, to);\n\n if (!allowed) {\n const error = new Error(\n `Edge policy violation for ${edgeType}: ${from.kind} -> ${to.kind}`\n ) as Error & { code: \"POLICY_VIOLATION\"; details: EdgePolicyViolation };\n error.code = \"POLICY_VIOLATION\";\n error.details = { code: \"POLICY_VIOLATION\", edgeType, from, to };\n throw error;\n }\n}\n","import type { EdgePolicyManifest } from \"./edge-policy-manifest.js\";\n\nexport const edgePolicyManifest = {\n manifestVersion: \"1.0.0\",\n policies: [\n {\n edgeType: \"evidence_derived_from_evidence\",\n fromKinds: [\"epistemic_node\"],\n fromNodeTypes: [\"evidence\"],\n toKinds: [\"epistemic_node\"],\n toNodeTypes: [\"evidence\"],\n description:\n \"Evidence E2 was synthesized from evidence E1 by a transformation. Provides chain-of-evidence lineage.\",\n },\n {\n edgeType: \"evidence_supports_belief\",\n fromKinds: [\"epistemic_node\"],\n fromNodeTypes: [\"evidence\"],\n toKinds: [\"epistemic_node\"],\n toNodeTypes: [\"belief\"],\n description:\n \"Existing link_evidence_to_belief semantics promoted to the create_edge policy source.\",\n },\n {\n edgeType: \"evidence_supports_question\",\n fromKinds: [\"epistemic_node\"],\n fromNodeTypes: [\"evidence\"],\n toKinds: [\"epistemic_node\"],\n toNodeTypes: [\"question\"],\n description:\n \"Existing link_evidence_to_question semantics promoted to the create_edge policy source.\",\n },\n ],\n} satisfies EdgePolicyManifest;\n","import { z } from \"zod\";\nimport type { ProjectionRegistry } from \"../projections/index.js\";\n\nexport type InvariantId = string;\nexport type CheckerKind = \"ast\" | \"manifest\" | \"runtime\";\nexport type InvariantSeverity = \"block_publish\" | \"block_pr\" | \"warn\";\n\nexport interface CheckContext {\n repoRoot: string;\n projections: ProjectionRegistry;\n}\n\nexport interface InvariantResult {\n status: \"passed\" | \"failed\" | \"skipped\";\n evidenceRefs: string[];\n reason?: string;\n}\n\nexport interface InvariantRule {\n invariant: InvariantId;\n description: string;\n checker: CheckerKind;\n severity: InvariantSeverity;\n evaluate: (ctx: CheckContext) => Promise<InvariantResult>;\n}\n\nexport const InvariantManifestSchema = z.object({\n manifestVersion: z.literal(\"1.0.0\"),\n rules: z.array(\n z.object({\n invariant: z.string(),\n description: z.string(),\n checker: z.enum([\"ast\", \"manifest\", \"runtime\"]),\n severity: z.enum([\"block_publish\", \"block_pr\", \"warn\"]),\n })\n ),\n});\n\nexport type InvariantManifest = z.infer<typeof InvariantManifestSchema>;\n","import type { z } from \"zod\";\n\nexport interface ProjectionDef<TInput, TConvexArgs> {\n contractName: string;\n inputSchema: z.ZodSchema<TInput>;\n project: (input: TInput) => TConvexArgs;\n convexArgsValidator: unknown;\n}\n\nexport function defineProjection<I, C>(\n def: ProjectionDef<I, C>\n): ProjectionDef<I, C> {\n return def;\n}\n","import { v } from \"convex/values\";\nimport { z } from \"zod\";\nimport { defineProjection } from \"./projection-dsl.js\";\n\nconst jsonRecordSchema = z.record(z.unknown());\n\nconst createEvidenceInputSchemaBase = z\n .object({\n projectId: z.string().optional(),\n topicId: z.string().optional(),\n text: z.string().optional(),\n canonicalText: z.string().optional(),\n title: z.string().optional(),\n content: z.string().optional(),\n contentType: z.string().optional(),\n kind: z.string().optional(),\n tags: z.array(z.string()).optional(),\n source: z.string().optional(),\n sourceUrl: z.string().optional(),\n sourceType: z.string().optional(),\n externalSourceType: z.string().optional(),\n sourceQuestionId: z.string().optional(),\n methodology: z.string().optional(),\n informationAsymmetry: z.string().optional(),\n sourceDescription: z.string().optional(),\n targetId: z.string().optional(),\n targetNodeId: z.string().optional(),\n linkedBeliefNodeId: z.string().optional(),\n evidenceRelation: z.enum([\"supports\", \"contradicts\", \"neutral\"]).optional(),\n confidence: z.number().optional(),\n weight: z.number().optional(),\n reasoning: z.string().optional(),\n rationale: z.string(),\n metadata: jsonRecordSchema.optional(),\n trustedBypassAccessCheck: z.boolean().optional(),\n })\n .passthrough();\n\nexport const createEvidenceInputSchema = createEvidenceInputSchemaBase.refine(\n (input) => Boolean(input.text ?? input.canonicalText),\n {\n message: \"create_evidence requires text\",\n path: [\"text\"],\n },\n);\n\nexport type CreateEvidenceProjectionInput = z.infer<\n typeof createEvidenceInputSchema\n>;\n\nfunction compactRecord(\n input: Record<string, unknown>,\n): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(input).filter(([, value]) => value !== undefined),\n );\n}\n\nfunction recordValue(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {};\n}\n\nexport const createEvidenceProjection = defineProjection({\n contractName: \"create_evidence\",\n inputSchema: createEvidenceInputSchema,\n project: (input: CreateEvidenceProjectionInput) => {\n const text = input.text ?? input.canonicalText;\n const weight = typeof input.weight === \"number\" ? input.weight : undefined;\n\n return compactRecord({\n projectId: input.projectId,\n topicId: input.topicId,\n text,\n title: input.title ?? text,\n content: input.content ?? text,\n contentType: input.contentType,\n kind: input.kind,\n tags: input.tags,\n sourceType: input.sourceType,\n externalSourceType: input.externalSourceType,\n sourceUrl: input.sourceUrl ?? input.source,\n sourceQuestionId: input.sourceQuestionId,\n methodology: input.methodology,\n informationAsymmetry: input.informationAsymmetry,\n sourceDescription: input.sourceDescription,\n metadata: compactRecord({\n ...recordValue(input.metadata),\n source: input.source,\n targetId: input.targetId,\n targetNodeId: input.targetNodeId,\n weight,\n reasoning: input.reasoning,\n rationale: input.rationale,\n }),\n linkedBeliefNodeId:\n input.linkedBeliefNodeId ?? input.targetNodeId ?? input.targetId,\n evidenceRelation:\n input.evidenceRelation ??\n (weight === undefined\n ? undefined\n : weight < 0\n ? \"contradicts\"\n : \"supports\"),\n confidence:\n input.confidence ??\n (weight === undefined\n ? undefined\n : Math.min(1, Math.max(0, Math.abs(weight)))),\n rationale: input.rationale,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n });\n },\n convexArgsValidator: v.object({\n projectId: v.optional(v.string()),\n topicId: v.optional(v.string()),\n text: v.string(),\n title: v.optional(v.string()),\n content: v.optional(v.string()),\n contentType: v.optional(v.string()),\n kind: v.optional(v.string()),\n tags: v.optional(v.array(v.string())),\n sourceType: v.optional(v.string()),\n externalSourceType: v.optional(v.string()),\n sourceUrl: v.optional(v.string()),\n sourceQuestionId: v.optional(v.string()),\n methodology: v.optional(v.string()),\n informationAsymmetry: v.optional(v.string()),\n sourceDescription: v.optional(v.string()),\n metadata: v.optional(v.record(v.string(), v.any())),\n linkedBeliefNodeId: v.optional(v.string()),\n evidenceRelation: v.optional(\n v.union(\n v.literal(\"supports\"),\n v.literal(\"contradicts\"),\n v.literal(\"neutral\"),\n ),\n ),\n confidence: v.optional(v.number()),\n rationale: v.string(),\n trustedBypassAccessCheck: v.optional(v.boolean()),\n }),\n});\n","import { v } from \"convex/values\";\nimport { z } from \"zod\";\nimport { defineProjection } from \"./projection-dsl.js\";\n\nconst beliefStatusSchema = z\n .enum([\"active\", \"superseded\", \"archived\", \"unscored\", \"scored\"])\n .optional()\n .describe(\"Filter by belief lifecycle or scoring status\");\n\nexport const listBeliefsInputSchema = z.object({\n topicId: z.string().describe(\"Topic scope\"),\n worktreeId: z.string().optional().describe(\"Filter to worktree scope\"),\n status: beliefStatusSchema,\n minConfidence: z\n .number()\n .optional()\n .describe(\"Minimum confidence threshold\"),\n limit: z.number().optional().describe(\"Maximum results\"),\n includeEdgeAssociated: z\n .boolean()\n .optional()\n .describe(\"Include beliefs associated to the topic through edges\"),\n});\n\nexport type ListBeliefsProjectionInput = z.infer<\n typeof listBeliefsInputSchema\n>;\n\nfunction kernelStatus(status: ListBeliefsProjectionInput[\"status\"]) {\n return status === \"active\" ||\n status === \"superseded\" ||\n status === \"archived\"\n ? status\n : undefined;\n}\n\nfunction compactRecord(\n input: Record<string, unknown>,\n): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(input).filter(([, value]) => value !== undefined),\n );\n}\n\nexport const listBeliefsProjection = defineProjection({\n contractName: \"list_beliefs\",\n inputSchema: listBeliefsInputSchema,\n project: (input: ListBeliefsProjectionInput) =>\n compactRecord({\n topicId: input.topicId,\n status: kernelStatus(input.status),\n limit: input.limit,\n includeEdgeAssociated: input.includeEdgeAssociated,\n }),\n convexArgsValidator: v.object({\n topicId: v.string(),\n status: v.optional(\n v.union(\n v.literal(\"active\"),\n v.literal(\"superseded\"),\n v.literal(\"archived\"),\n ),\n ),\n limit: v.optional(v.number()),\n includeEdgeAssociated: v.optional(v.boolean()),\n }),\n});\n","import { v } from \"convex/values\";\nimport { z } from \"zod\";\nimport { defineProjection } from \"./projection-dsl.js\";\n\nconst taskStatusSchema = z\n .enum([\"todo\", \"in_progress\", \"blocked\", \"done\"])\n .optional()\n .describe(\"Filter by task status\");\n\nexport const listTasksInputSchema = z.object({\n topicId: z.string().describe(\"Topic scope\"),\n worktreeId: z\n .string()\n .optional()\n .describe(\"Alias for linkedWorktreeId\"),\n linkedWorktreeId: z\n .string()\n .optional()\n .describe(\"Filter to tasks linked to this worktree\"),\n status: taskStatusSchema,\n limit: z.number().optional().describe(\"Maximum results\"),\n});\n\nexport type ListTasksProjectionInput = z.infer<typeof listTasksInputSchema>;\n\nfunction compactRecord(\n input: Record<string, unknown>,\n): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(input).filter(([, value]) => value !== undefined),\n );\n}\n\nexport const listTasksProjection = defineProjection({\n contractName: \"list_tasks\",\n inputSchema: listTasksInputSchema,\n project: (input: ListTasksProjectionInput) =>\n compactRecord({\n topicId: input.topicId,\n status: input.status,\n userId: undefined,\n limit: input.limit,\n linkedWorktreeId: input.linkedWorktreeId ?? input.worktreeId,\n }),\n convexArgsValidator: v.object({\n topicId: v.string(),\n status: v.optional(\n v.union(\n v.literal(\"todo\"),\n v.literal(\"in_progress\"),\n v.literal(\"blocked\"),\n v.literal(\"done\"),\n ),\n ),\n limit: v.optional(v.number()),\n linkedWorktreeId: v.optional(v.string()),\n }),\n});\n","import { v } from \"convex/values\";\nimport { z } from \"zod\";\nimport { defineProjection } from \"./projection-dsl.js\";\n\nconst confidenceTriggerSchema = z.enum([\n \"evidence_added\",\n \"evidence_removed\",\n \"contradiction_resolved\",\n \"agent_assessment\",\n \"worktree_outcome\",\n \"worktree_completed\",\n \"contradiction_detected\",\n \"answer_recorded\",\n \"fusion\",\n \"discount\",\n \"deduction\",\n \"backfill_synthetic\",\n]);\n\nconst provenanceSchema = z.object({\n evidence: z.string().optional(),\n question: z.string().optional(),\n answer: z.string().optional(),\n contradiction: z.string().optional(),\n worktree: z.string().optional(),\n});\n\nconst slOpinionProjectionSchema = z.object({\n belief: z.number(),\n disbelief: z.number(),\n uncertainty: z.number(),\n baseRate: z.number(),\n});\n\nconst modulateConfidenceInputObjectSchema = z.object({\n nodeId: z.string().optional(),\n beliefNodeId: z.string().optional(),\n worktreeId: z.string().optional(),\n opinion: slOpinionProjectionSchema.optional(),\n belief: z.number().optional(),\n disbelief: z.number().optional(),\n uncertainty: z.number().optional(),\n baseRate: z.number().optional(),\n trigger: confidenceTriggerSchema,\n provenance: provenanceSchema.optional(),\n triggeringEvidenceId: z.string().optional(),\n triggeringQuestionId: z.string().optional(),\n triggeringAnswerId: z.string().optional(),\n triggeringContradictionId: z.string().optional(),\n triggeringWorktreeId: z.string().optional(),\n rationale: z.string(),\n trustedBypassAccessCheck: z.boolean().optional(),\n});\n\nexport const modulateConfidenceInputSchema =\n modulateConfidenceInputObjectSchema.superRefine((input, ctx) => {\n if (hasProvenance(input)) {\n return;\n }\n\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n \"modulate_confidence requires evidence, question, answer, contradiction, or worktree provenance\",\n path: [\"provenance\"],\n });\n });\n\nexport type ModulateConfidenceProjectionInput = z.infer<\n typeof modulateConfidenceInputSchema\n>;\n\nexport const modulateConfidenceProjection = defineProjection({\n contractName: \"modulate_confidence\",\n inputSchema: modulateConfidenceInputSchema,\n project: (input: ModulateConfidenceProjectionInput) => {\n const nodeId = input.beliefNodeId ?? input.nodeId;\n if (!nodeId) {\n throw new Error(\"modulate_confidence requires beliefNodeId or nodeId\");\n }\n\n const opinion = input.opinion ?? {\n belief: requireNumber(input.belief, \"belief\"),\n disbelief: requireNumber(input.disbelief, \"disbelief\"),\n uncertainty: requireNumber(input.uncertainty, \"uncertainty\"),\n baseRate: requireNumber(input.baseRate, \"baseRate\"),\n };\n assertProvenance(input);\n\n return {\n nodeId,\n worktreeId: input.worktreeId,\n belief: opinion.belief,\n disbelief: opinion.disbelief,\n uncertainty: opinion.uncertainty,\n baseRate: opinion.baseRate,\n trigger:\n input.trigger === \"answer_recorded\"\n ? \"agent_assessment\"\n : input.trigger,\n triggeringEvidenceId:\n input.provenance?.evidence ?? input.triggeringEvidenceId,\n triggeringQuestionId:\n input.provenance?.question ?? input.triggeringQuestionId,\n triggeringAnswerId: input.provenance?.answer ?? input.triggeringAnswerId,\n triggeringContradictionId:\n input.provenance?.contradiction ?? input.triggeringContradictionId,\n triggeringWorktreeId:\n input.provenance?.worktree ?? input.triggeringWorktreeId,\n rationale: input.rationale,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n };\n },\n convexArgsValidator: v.object({\n nodeId: v.string(),\n worktreeId: v.optional(v.string()),\n belief: v.number(),\n disbelief: v.number(),\n uncertainty: v.number(),\n baseRate: v.number(),\n trigger: v.union(\n v.literal(\"evidence_added\"),\n v.literal(\"evidence_removed\"),\n v.literal(\"worktree_completed\"),\n v.literal(\"contradiction_detected\"),\n v.literal(\"contradiction_resolved\"),\n v.literal(\"agent_assessment\"),\n v.literal(\"worktree_outcome\"),\n v.literal(\"fusion\"),\n v.literal(\"discount\"),\n v.literal(\"deduction\"),\n v.literal(\"backfill_synthetic\"),\n ),\n triggeringEvidenceId: v.optional(v.string()),\n triggeringQuestionId: v.optional(v.string()),\n triggeringAnswerId: v.optional(v.string()),\n triggeringContradictionId: v.optional(v.string()),\n triggeringWorktreeId: v.optional(v.string()),\n rationale: v.string(),\n trustedBypassAccessCheck: v.optional(v.boolean()),\n }),\n});\n\nfunction requireNumber(value: number | undefined, field: string): number {\n if (value === undefined) {\n throw new Error(`modulate_confidence requires ${field}`);\n }\n return value;\n}\n\nfunction assertProvenance(input: ModulateConfidenceProjectionInput): void {\n if (!hasProvenance(input)) {\n throw new Error(\n \"modulate_confidence requires evidence, question, answer, contradiction, or worktree provenance\",\n );\n }\n}\n\nfunction hasProvenance(input: ModulateConfidenceProjectionInput): boolean {\n return (\n input.trigger === \"backfill_synthetic\" ||\n Boolean(input.provenance && Object.values(input.provenance).some(Boolean)) ||\n Boolean(input.triggeringEvidenceId) ||\n Boolean(input.triggeringQuestionId) ||\n Boolean(input.triggeringAnswerId) ||\n Boolean(input.triggeringContradictionId) ||\n Boolean(input.triggeringWorktreeId)\n );\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());\nconst sdkSessionIdSchema = z.string().optional();\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 withInternalSurfaceFields(argsSchemaFromMcpContract(contract));\n}\n\nfunction withInternalSurfaceFields(\n schema: z.ZodObject<z.ZodRawShape>\n): z.ZodObject<z.ZodRawShape> {\n return schema.extend({ __sdkSessionId: sdkSessionIdSchema }).strict();\n}\n\nfunction normalizeInputSchema(schema: z.ZodTypeAny): z.ZodTypeAny {\n if (schema instanceof z.ZodObject) {\n return withInternalSurfaceFields(schema);\n }\n return schema;\n}\n\nfunction unwrapObjectSchema(\n schema: z.ZodTypeAny\n): z.ZodObject<z.ZodRawShape> | undefined {\n let current = schema;\n while (true) {\n switch (current._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodEffects:\n current = current._def.schema;\n continue;\n case z.ZodFirstPartyTypeKind.ZodBranded:\n current = current._def.type;\n continue;\n default:\n return current instanceof z.ZodObject ? current : undefined;\n }\n }\n}\n\nfunction getObjectShape(schema: z.ZodTypeAny) {\n const objectSchema = unwrapObjectSchema(schema);\n if (!objectSchema) {\n throw new Error(\n `Expected a Zod object schema, received ${schema._def.typeName}.`\n );\n }\n const shape =\n typeof objectSchema._def.shape === \"function\"\n ? objectSchema._def.shape()\n : objectSchema._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 case z.ZodFirstPartyTypeKind.ZodEffects:\n current = current._def.schema;\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 case z.ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\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.ZodTypeAny,\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 compactRecord(\n input: Record<string, unknown>\n): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(input).filter(([, value]) => value !== undefined)\n );\n}\n\nexport function recordValue(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 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.ZodTypeAny;\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 = normalizeInputSchema(\n args.input ?? inputSchemaFromMcpContract(mcp)\n );\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 {\n compactRecord,\n recordValue,\n surfaceContract,\n withUserId,\n} 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 compactRecord({\n projectId: input.projectId,\n topicId: input.topicId,\n text: input.text ?? input.summary,\n title: input.title ?? input.summary,\n content: input.content ?? input.summary,\n contentType: input.contentType,\n kind: input.kind ?? input.observationType ?? \"observation\",\n tags: input.tags,\n sourceType: input.sourceType,\n externalSourceType: input.externalSourceType,\n sourceUrl: input.sourceUrl,\n metadata: compactRecord({\n ...recordValue(input.metadata),\n observationType: input.observationType,\n source: input.source,\n }),\n rationale:\n input.rationale ??\n input.reasoning ??\n input.summary ??\n input.text ??\n \"Recorded observation\",\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 inputProjection: (input) =>\n compactRecord({\n topicId: input.topicId,\n limit: input.limit,\n status: input.status,\n userId: input.userId,\n }),\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 { compactRecord, surfaceContract, withUserId } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\nimport {\n listBeliefsInputSchema,\n listBeliefsProjection,\n} from \"../projections/list-beliefs.projection.js\";\nimport {\n modulateConfidenceInputSchema,\n modulateConfidenceProjection,\n} from \"../projections/modulate-confidence.projection.js\";\n\nconst beliefLookupInput = (input: Record<string, unknown>) =>\n compactRecord({\n nodeId: input.nodeId ?? input.id ?? input.beliefId,\n beliefId: input.beliefId,\n });\n\nconst beliefNodeInput = (input: Record<string, unknown>) =>\n compactRecord({\n nodeId: input.nodeId ?? input.id ?? input.beliefId,\n });\n\nconst beliefTopicInput = (input: Record<string, unknown>) => {\n const parsed = listBeliefsProjection.inputSchema.safeParse(input);\n if (!parsed.success) {\n throw new Error(\n `list_beliefs projection input rejected: ${parsed.error.message}`,\n );\n }\n return compactRecord(listBeliefsProjection.project(parsed.data));\n};\n\nconst createBeliefInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) => {\n return withUserId(\n compactRecord({\n projectId: input.projectId,\n topicId: input.topicId,\n formulation: input.formulation ?? input.canonicalText,\n beliefType: input.beliefType,\n rationale: input.rationale,\n pillar: input.pillar,\n worktreeId: input.worktreeId,\n sourceBeliefIds: input.sourceBeliefIds,\n sourceType: input.sourceType,\n reversibility: input.reversibility,\n predictionMeta: input.predictionMeta,\n baseRate: input.baseRate ?? 0.5,\n metadata: input.metadata,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n }),\n context\n );\n};\n\nconst forkBeliefInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n compactRecord({\n parentNodeId: input.parentNodeId ?? input.nodeId ?? input.id,\n newFormulation: input.newFormulation,\n forkReason: input.forkReason,\n rationale: input.rationale,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n }),\n context\n );\n\nconst confidenceInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) => {\n const parsed = modulateConfidenceProjection.inputSchema.safeParse(input);\n if (!parsed.success) {\n throw new Error(\n `modulate_confidence projection input rejected: ${parsed.error.message}`\n );\n }\n\n return withUserId(\n compactRecord(modulateConfidenceProjection.project(parsed.data)),\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: beliefLookupInput,\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 inputProjection: beliefTopicInput,\n },\n args: listBeliefsInputSchema,\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 ...beliefLookupInput(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 args: modulateConfidenceInputSchema,\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 compactRecord({\n ...beliefNodeInput(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 compactRecord({\n searchQuery: input.searchQuery ?? input.query,\n projectId: input.projectId,\n topicId: input.topicId,\n nodeType: \"belief\",\n limit: input.limit,\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: beliefNodeInput,\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: beliefNodeInput,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import {\n compactRecord,\n recordValue,\n surfaceContract,\n withCreatedBy,\n withUserId,\n} from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\nimport { createEvidenceProjection } from \"../projections/create-evidence.projection.js\";\n\nconst evidenceIdInput = (input: Record<string, unknown>) =>\n compactRecord({\n evidenceId: input.evidenceId,\n insightId: input.insightId,\n nodeId: input.nodeId ?? input.id ?? input.evidenceId,\n });\n\nconst evidenceTopicInput = (input: Record<string, unknown>) =>\n compactRecord({\n topicId: input.topicId,\n status: input.status,\n userId: input.userId,\n limit: input.limit,\n });\n\nconst createEvidenceInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext,\n) => {\n const parsed = createEvidenceProjection.inputSchema.safeParse(input);\n if (!parsed.success) {\n throw new Error(\n `create_evidence projection input rejected: ${parsed.error.message}`,\n );\n }\n\n return withUserId(\n compactRecord(createEvidenceProjection.project(parsed.data)),\n context,\n );\n};\n\nconst linkEvidenceToBeliefEdgeInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext,\n) =>\n withCreatedBy(\n compactRecord({\n fromNodeId: input.insightId ?? input.evidenceNodeId ?? input.evidenceId,\n toNodeId: input.beliefNodeId ?? input.beliefId ?? input.targetId,\n edgeType: \"evidence_supports_belief\",\n globalId:\n input.globalId ??\n `edge:${String(\n input.insightId ?? input.evidenceNodeId ?? input.evidenceId,\n )}:${String(\n input.beliefNodeId ?? input.beliefId ?? input.targetId,\n )}:evidence_supports_belief`,\n weight:\n typeof input.weight === \"number\"\n ? input.weight\n : input.type === \"contradicting\"\n ? -1\n : 1,\n context: input.rationale ?? input.context,\n skipLayerValidation: true,\n topicId: input.topicId,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n }),\n context,\n );\n\nconst linkEvidenceToQuestionEdgeInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext,\n) =>\n withCreatedBy(\n compactRecord({\n fromNodeId: input.insightId ?? input.evidenceNodeId ?? input.evidenceId,\n toNodeId: input.questionId ?? input.questionNodeId ?? input.targetId,\n edgeType: \"evidence_supports_question\",\n globalId:\n input.globalId ??\n `edge:${String(\n input.insightId ?? input.evidenceNodeId ?? input.evidenceId,\n )}:${String(\n input.questionId ?? input.questionNodeId ?? input.targetId,\n )}:evidence_supports_question`,\n weight: input.impactScore ?? input.weight,\n context: input.rationale ?? input.context,\n skipLayerValidation: true,\n topicId: input.topicId,\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:\n \"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 rationale: input.reasoning,\n metadata: {\n ...recordValue(input.metadata),\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 inputProjection: evidenceTopicInput,\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 compactRecord({\n searchQuery: input.searchQuery ?? input.q ?? input.query,\n projectId: input.projectId,\n topicId: input.topicId,\n nodeType: \"evidence\",\n limit: input.limit,\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: \"edges\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: linkEvidenceToBeliefEdgeInput,\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: \"edges\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: linkEvidenceToQuestionEdgeInput,\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: \"edges\",\n functionName: \"create\",\n kind: \"mutation\",\n inputProjection: linkEvidenceToBeliefEdgeInput,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { compactRecord, surfaceContract, withUserId } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst questionIdInput = (input: Record<string, unknown>) =>\n compactRecord({\n questionId: input.questionId ?? input.id ?? input.nodeId,\n nodeId: input.nodeId,\n });\n\nconst questionNodeInput = (input: Record<string, unknown>) =>\n compactRecord({\n nodeId: input.nodeId ?? input.id ?? input.questionId,\n questionId: input.questionId,\n });\n\nconst questionTopicInput = (input: Record<string, unknown>) =>\n compactRecord({\n topicId: input.topicId,\n status: input.status,\n userId: input.userId,\n limit: input.limit,\n });\n\nconst createQuestionInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) => {\n const priority = input.priority === \"urgent\" ? \"high\" : input.priority;\n return withUserId(\n compactRecord({\n topicId: input.topicId,\n question: input.question ?? input.text,\n category: input.category,\n priority,\n source: input.source,\n linkedBeliefNodeId: input.linkedBeliefNodeId ?? input.linkedBeliefId,\n testType: input.testType,\n importance: input.importance,\n epistemicUnlock: input.epistemicUnlock,\n sourceQuestionIds: input.sourceQuestionIds,\n linkedWorktreeId: input.linkedWorktreeId,\n questionType: input.questionType,\n questionPriority: input.questionPriority,\n }),\n context\n );\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: questionNodeInput,\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 inputProjection: questionTopicInput,\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) =>\n compactRecord({\n questionId: input.questionId ?? input.id ?? input.nodeId,\n question: input.question ?? input.text,\n category: input.category,\n priority: input.priority,\n }),\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(\n compactRecord({\n questionId: input.questionId ?? input.id,\n nodeId: input.nodeId,\n status: input.status,\n answer: input.answer,\n answerStatus: input.answerStatus,\n }),\n context\n ),\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: (input, context) =>\n withUserId(\n compactRecord({\n questionId: input.questionId ?? input.id ?? input.nodeId,\n }),\n context\n ),\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 compactRecord({\n topicId: input.topicId,\n questionNodeId: input.questionNodeId ?? input.questionId,\n answerText: input.answerText,\n confidence: input.confidence,\n evidenceNodeIds: input.evidenceNodeIds,\n answerSource: input.answerSource,\n worktreeId: input.worktreeId,\n sprintId: input.sprintId,\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 compactRecord({\n topicId: input.topicId,\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 confidence: input.confidence,\n worktreeId: input.worktreeId,\n sprintId: input.sprintId,\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 inputProjection: questionTopicInput,\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 inputProjection: (input) =>\n compactRecord({\n ...questionTopicInput(input),\n status: input.includeAnswered === true ? undefined : \"open\",\n }),\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 inputProjection: questionTopicInput,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { compactRecord, surfaceContract, withCreatedBy } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nconst topicIdInput = (input: Record<string, unknown>) =>\n compactRecord({\n id: input.id ?? input.topicId,\n });\n\nconst updateTopicInput = (input: Record<string, unknown>) =>\n compactRecord({\n id: input.id ?? input.topicId,\n name: input.name,\n description: input.description,\n type: input.type,\n status: input.status,\n visibility: input.visibility,\n ontologyId: input.ontologyId,\n clearOntologyId: input.clearOntologyId,\n graphScopeProjectId: input.graphScopeProjectId,\n metadata: input.metadata,\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: updateTopicInput,\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 { authUserId, compactRecord, surfaceContract } from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst createLensInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n compactRecord({\n name: input.name,\n description: input.description,\n workspaceId: input.workspaceId,\n topicId: input.topicId,\n perspectiveType: input.perspectiveType,\n promptTemplates: input.promptTemplates,\n workflowTemplates: input.workflowTemplates,\n taskTemplates: input.taskTemplates,\n questionTemplates: input.questionTemplates,\n filterCriteria: input.filterCriteria,\n metadata: input.metadata,\n createdBy: authUserId(context),\n });\n\nconst lensListInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n compactRecord({\n actorId: input.actorId ?? authUserId(context),\n workspaceId: input.workspaceId,\n topicId: input.topicId,\n status: input.status,\n perspectiveType: input.perspectiveType,\n });\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 inputProjection: createLensInput,\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 inputProjection: lensListInput,\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 inputProjection: (input, context) =>\n compactRecord({\n lensId: input.lensId,\n topicId: input.topicId,\n metadata: input.metadata,\n appliedBy: authUserId(context),\n }),\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 inputProjection: (input, context) =>\n compactRecord({\n lensId: input.lensId,\n topicId: input.topicId,\n removedBy: authUserId(context),\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { compactRecord, surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\n\nconst ontologyIdInput = (input: Record<string, unknown>) =>\n compactRecord({\n id: input.id ?? input.ontologyId,\n });\n\nconst ontologyVersionIdInput = (input: Record<string, unknown>) =>\n compactRecord({\n id: input.id ?? input.versionId,\n ontologyId: input.ontologyId,\n actorId: input.actorId,\n });\n\nconst effectiveOntologyInput = (input: Record<string, unknown>) =>\n compactRecord({\n ontologyId: input.ontologyId ?? input.id,\n });\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: ontologyIdInput,\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 compactRecord({\n id: input.id ?? input.ontologyId,\n name: input.name,\n description: input.description,\n parentOntologyId: input.parentOntologyId,\n status: input.status,\n actorId: input.actorId,\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: ontologyIdInput,\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 compactRecord({\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 inputProjection: effectiveOntologyInput,\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: ontologyVersionIdInput,\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: ontologyVersionIdInput,\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 inputProjection: effectiveOntologyInput,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import {\n compactRecord,\n surfaceContract,\n withCreatedBy,\n withUserId,\n} from \"./helpers.js\";\nimport type { ContractProjectionContext, FunctionContract } from \"./types.js\";\n\nconst worktreeIdInput = (input: Record<string, unknown>) =>\n compactRecord({\n worktreeId: input.worktreeId ?? input.id,\n });\n\nconst activateWorktreeInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) => withUserId(worktreeIdInput(input), context);\n\nconst worktreeTargetsInput = (input: Record<string, unknown>) =>\n compactRecord({\n worktreeId: input.worktreeId ?? input.id,\n addBeliefIds: input.addBeliefIds,\n removeBeliefIds: input.removeBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeQuestionIds: input.removeQuestionIds,\n });\n\nconst worktreeMetadataInput = (input: Record<string, unknown>) =>\n compactRecord({\n worktreeId: input.worktreeId ?? input.id,\n topicId: input.topicId,\n additionalTopicIds: input.additionalTopicIds,\n status: input.status,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n gate: input.gate,\n hypothesis: input.hypothesis,\n objective: input.objective,\n rationale: input.rationale,\n proofArtifacts: input.proofArtifacts,\n staffingHint: input.staffingHint,\n blocks: input.blocks,\n dependsOn: input.dependsOn,\n lensId: input.lensId,\n autoFixPolicy: input.autoFixPolicy,\n lastReconciledAt: input.lastReconciledAt,\n });\n\nconst listAllWorktreesInput = (input: Record<string, unknown>) =>\n compactRecord({\n status: input.status,\n lane: input.lane,\n campaign: input.campaign,\n limit: input.limit,\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 compactRecord({\n name: input.name ?? input.title,\n topicId: input.topicId,\n worktreeType: input.worktreeType,\n objective: input.objective,\n gate: input.gate,\n hypothesis: input.hypothesis,\n rationale: input.rationale,\n signal: input.signal,\n startDate: input.startDate,\n endDate: input.endDate,\n durationWeeks: input.durationWeeks,\n confidenceImpact: input.confidenceImpact,\n autoShape: input.autoShape,\n autoFixPolicy: input.autoFixPolicy,\n beliefFocus: input.beliefFocus,\n targetQuestionIds: input.targetQuestionIds,\n targetBeliefIds: input.targetBeliefIds ?? input.beliefIds,\n keyQuestions: input.keyQuestions,\n proofArtifacts: input.proofArtifacts,\n decisionGate:\n input.decisionGate ??\n (input.goCriteria || input.noGoSignals\n ? compactRecord({\n goCriteria: input.goCriteria,\n noGoSignals: input.noGoSignals,\n })\n : undefined),\n evidenceSignals: input.evidenceSignals,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n staffingHint: input.staffingHint,\n domainPackId: input.domainPackId,\n lensId: input.lensId,\n linkedQuestionId: input.linkedQuestionId,\n lastReconciledAt: input.lastReconciledAt,\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: activateWorktreeInput,\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 inputProjection: (input) =>\n compactRecord({\n topicId: input.topicId,\n status: input.status,\n groupBy: input.groupBy,\n lane: input.lane,\n campaign: input.campaign,\n limit: input.limit,\n }),\n },\n }),\n surfaceContract({\n name: \"list_campaigns\",\n kind: \"query\",\n domain: \"worktrees\",\n surfaceClass: \"platform_public\",\n method: \"GET\",\n path: \"/worktrees/campaigns\",\n sdkNamespace: \"worktrees\",\n sdkMethod: \"listCampaigns\",\n summary: \"List compact pipeline campaigns with nested lanes.\",\n convex: {\n module: \"worktrees\",\n functionName: \"listCampaigns\",\n kind: \"query\",\n inputProjection: (input) =>\n compactRecord({\n topicId: input.topicId,\n status: input.status,\n limit: input.limit,\n }),\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 inputProjection: listAllWorktreesInput,\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: worktreeTargetsInput,\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: worktreeMetadataInput,\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, context) =>\n withUserId(\n {\n ...worktreeIdInput(input),\n keyFindings: input.keyFindings ?? [\n input.summary ?? \"Merged worktree\",\n ],\n decisionsReached: input.decisionsReached ?? [],\n nextSteps: input.nextSteps ?? [],\n },\n context\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: worktreeMetadataInput,\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: worktreeMetadataInput,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { compactRecord, surfaceContract } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\nimport {\n listTasksInputSchema,\n listTasksProjection,\n} from \"../projections/list-tasks.projection.js\";\n\nconst taskInput = (input: Record<string, unknown>) =>\n compactRecord({\n ...input,\n taskId: input.taskId ?? input.id,\n });\n\nconst taskTopicInput = (input: Record<string, unknown>) => {\n const parsed = listTasksProjection.inputSchema.safeParse(input);\n if (!parsed.success) {\n throw new Error(\n `list_tasks projection input rejected: ${parsed.error.message}`,\n );\n }\n return compactRecord(listTasksProjection.project(parsed.data));\n};\n\nconst completeTaskInput = (input: Record<string, unknown>) =>\n compactRecord({\n taskId: input.taskId ?? input.id,\n outputSummary: input.outputSummary ?? input.summary,\n userId: input.userId,\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 inputProjection: taskTopicInput,\n },\n args: listTasksInputSchema,\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: completeTaskInput,\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { z } from \"zod\";\nimport { compactRecord, surfaceContract, withCreatedBy } from \"./helpers.js\";\nimport type { FunctionContract } from \"./types.js\";\nimport {\n assertEdgePolicyAllowed,\n} from \"../manifests/edge-policy-manifest.js\";\nimport { edgePolicyManifest } from \"../manifests/edge-policy-manifest.data.js\";\nimport { GraphRefSchema, type GraphRef } from \"../types/graph-ref.js\";\n\nconst createEdgeArgs = z.object({\n from: GraphRefSchema,\n to: GraphRefSchema,\n edgeType: z.string(),\n globalId: z.string().optional(),\n weight: z.number().optional(),\n confidence: z.number().optional(),\n context: z.string().optional(),\n reasoning: z.string().optional(),\n derivationType: z.string().optional(),\n topicId: z.string().optional(),\n trustedBypassAccessCheck: z.boolean().optional(),\n});\n\nfunction graphRefNodeId(ref: GraphRef): string {\n if (ref.kind === \"epistemic_node\") {\n return ref.nodeId;\n }\n return `external_belief:${ref.ref.tenantId}:${ref.ref.beliefId}`;\n}\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 const parsed = createEdgeArgs.parse(input);\n assertEdgePolicyAllowed(\n edgePolicyManifest,\n parsed.edgeType,\n parsed.from,\n parsed.to\n );\n const fromNodeId = graphRefNodeId(parsed.from);\n const toNodeId = graphRefNodeId(parsed.to);\n\n return withCreatedBy(\n compactRecord({\n fromNodeId,\n toNodeId,\n edgeType: parsed.edgeType,\n globalId:\n parsed.globalId ??\n `edge:${fromNodeId}:${toNodeId}:${parsed.edgeType}`,\n weight: parsed.weight,\n confidence: parsed.confidence,\n context: parsed.context ?? parsed.reasoning,\n derivationType: parsed.derivationType,\n skipLayerValidation: true,\n topicId: parsed.topicId,\n trustedBypassAccessCheck: parsed.trustedBypassAccessCheck,\n }),\n context\n );\n },\n },\n args: createEdgeArgs,\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 compactRecord({\n nodeId: input.nodeId ?? input.startNode,\n maxDepth: input.maxDepth ?? input.depth,\n mode: input.mode,\n minLayer: input.minLayer,\n maxLayer: input.maxLayer,\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { authUserId, compactRecord, 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 compactRecord({\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\nconst lineageInput = (input: Record<string, unknown>) =>\n compactRecord({\n nodeId: input.nodeId ?? input.startNode ?? input.entityId,\n maxDepth: input.maxDepth ?? input.depth,\n mode: input.mode,\n minLayer: input.minLayer,\n maxLayer: input.maxLayer,\n });\n\nconst topicEdgesInput = (input: Record<string, unknown>) =>\n compactRecord({\n topicId: input.topicId,\n userId: input.userId,\n limit: input.limit,\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 inputProjection: lineageInput,\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 inputProjection: topicEdgesInput,\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 inputProjection: (input) =>\n compactRecord({\n nodeId: input.nodeId ?? input.beliefId,\n }),\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: \"getLineage\",\n kind: \"query\",\n inputProjection: lineageInput,\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: lineageInput,\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 { compactRecord, 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 compactRecord({\n projectId: input.projectId,\n topicId: input.topicId,\n text: input.rationale,\n title: input.title,\n content: input.rationale,\n kind: \"judgment\",\n sourceType: \"ai_generated\",\n metadata: compactRecord({\n confidence: input.confidence,\n beliefIds: input.beliefIds,\n }),\n rationale:\n input.rationale ??\n input.reasoning ??\n \"Recorded judgment evidence\",\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 compactRecord({\n nodeId: input.nodeId ?? input.id,\n maxDepth: input.maxDepth ?? input.depth,\n mode: input.mode,\n minLayer: input.minLayer,\n maxLayer: input.maxLayer,\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { compactRecord, 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 inputProjection: (input) =>\n compactRecord({\n limit: input.limit,\n }),\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 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 inputProjection: (input) =>\n compactRecord({\n worktreeId: input.worktreeId ?? input.id,\n }),\n },\n }),\n] as const satisfies readonly FunctionContract[];\n","import { compactRecord, 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 inputProjection: (input) =>\n compactRecord({\n status: input.status,\n lane: input.lane,\n campaign: input.campaign,\n limit: input.limit,\n }),\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 {\n compactRecord,\n recordValue,\n surfaceContract,\n withUserId,\n} 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 rationale: z\n .string()\n .optional()\n .describe(\"Why this learning should enter the reasoning graph\"),\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 const sourceKind = input.sourceKind ?? input.externalSourceType;\n return withUserId(\n compactRecord({\n projectId: input.projectId,\n topicId: input.topicId,\n text: input.summary ?? input.text,\n title: input.title ?? input.summary ?? \"Scope learning\",\n content: input.body ?? input.content ?? input.summary,\n contentType: input.contentType,\n kind: input.kind ?? \"learning\",\n tags: input.tags ?? [],\n sourceType: input.sourceType,\n externalSourceType: input.externalSourceType ?? input.sourceKind,\n sourceUrl: input.sourceUrl,\n metadata: compactRecord({\n ...recordValue(input.metadata),\n sourceRef: input.sourceRef,\n sourceKind,\n touchedPaths: input.touchedPaths,\n createQuestionText: input.createQuestionText,\n createBeliefText: input.createBeliefText,\n beliefType: input.beliefType,\n }),\n linkedBeliefNodeId: input.linkedBeliefNodeId,\n evidenceRelation: input.evidenceRelation,\n confidence: input.confidence,\n rationale:\n input.rationale ??\n input.reasoning ??\n input.summary ??\n input.text ??\n \"Recorded scope learning\",\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n }),\n context\n );\n};\n\nconst attemptInput = (\n input: Record<string, unknown>,\n context: ContractProjectionContext\n) =>\n withUserId(\n compactRecord({\n projectId: input.projectId,\n topicId: input.topicId,\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: compactRecord({\n ...recordValue(input.metadata),\n filePaths: input.filePaths,\n filePath: input.filePath,\n errorMessage: input.errorMessage,\n linkedBeliefId: input.linkedBeliefId,\n }),\n rationale:\n input.rationale ??\n input.reasoning ??\n input.errorMessage ??\n input.description ??\n \"Recorded implementation attempt\",\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 inputProjection: (input) =>\n compactRecord({\n topicId: input.topicId,\n limit: input.limit,\n status: input.status,\n userId: input.userId,\n }),\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 inputProjection: (input) =>\n compactRecord({\n topicId: input.topicId,\n limit: input.limit,\n status: input.status,\n userId: input.userId,\n }),\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 compactRecord({\n topicId: input.topicId ?? input.query,\n limit: input.limit,\n status: input.status,\n userId: input.userId,\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","import { FUNCTION_SURFACE_CONTRACTS } from \"@lucern/contracts\";\nimport { createFunctionSurfaceClient, type JsonObject } from \"@lucern/sdk\";\nimport { contractToHandler } from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nfunction camelCaseToolName(name: string) {\n return name.replace(/_([a-z])/g, (_, value: string) => value.toUpperCase());\n}\n\nexport function createFunctionSurfaceHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const functionSurface = createFunctionSurfaceClient(context.sdkConfig);\n\n return Object.fromEntries(\n FUNCTION_SURFACE_CONTRACTS.map((contract) => [\n contract.mcp.toolName,\n contractToHandler(contract.mcp, async (params) => {\n const methodName = camelCaseToolName(contract.name);\n const method = (functionSurface as Record<string, unknown>)[methodName];\n if (typeof method !== \"function\") {\n throw new Error(\n `Generated function surface client is missing ${methodName}.`\n );\n }\n const response = await (\n method as (input: JsonObject) => Promise<{ data: unknown }>\n )(params as JsonObject);\n return response.data;\n }),\n ])\n );\n}\n","import {\n createAuditClient,\n createGraphClient,\n createLucernClient,\n createPolicyClient,\n MCP_TOOL_CONTRACTS,\n} from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readNumber,\n readString,\n readStringArray,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\ntype NodeLike = {\n nodeId?: string;\n canonicalText?: string;\n status?: string;\n confidence?: number | null;\n contradictionCount?: number;\n metadata?: Record<string, unknown> | null;\n [key: string]: unknown;\n};\n\ntype EdgeLike = {\n edgeId?: string;\n fromNodeId?: string;\n toNodeId?: string;\n edgeType?: string;\n [key: string]: unknown;\n};\n\ntype AuditEntry = {\n action?: string;\n actor?: string;\n timestamp?: number;\n before?: unknown;\n after?: unknown;\n rationale?: string;\n details?: unknown;\n [key: string]: unknown;\n};\n\nfunction asNodeArray(data: unknown): NodeLike[] {\n if (Array.isArray(data)) {\n return data.filter(\n (entry): entry is NodeLike => Boolean(entry) && typeof entry === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as NodeLike];\n }\n return [];\n}\n\nfunction asEdgeArray(data: unknown): EdgeLike[] {\n if (Array.isArray(data)) {\n return data.filter(\n (entry): entry is EdgeLike => Boolean(entry) && typeof entry === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as EdgeLike];\n }\n return [];\n}\n\nfunction asAuditArray(data: unknown): AuditEntry[] {\n if (Array.isArray(data)) {\n return data.filter(\n (entry): entry is AuditEntry =>\n Boolean(entry) && typeof entry === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as AuditEntry];\n }\n return [];\n}\n\nconst AUDIT_NODE_REFERENCE_KEY_PATTERN =\n /(^|_)(id|nodeid|beliefid|resourceid|targetid|sourceid|subjectid|globalid|entityid|recordid|fromnodeid|tonodeid|linkednodeid|linkedbeliefid|nodeids|beliefids|resourceids)$/i;\n\nfunction matchesAuditNodeReference(value: unknown, nodeId: string): boolean {\n if (Array.isArray(value)) {\n return value.some((entry) => matchesAuditNodeReference(entry, nodeId));\n }\n\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n return Object.entries(value as Record<string, unknown>).some(([key, entry]) => {\n if (\n typeof entry === \"string\" &&\n entry === nodeId &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key)\n ) {\n return true;\n }\n\n if (\n Array.isArray(entry) &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key) &&\n entry.some((item) => item === nodeId)\n ) {\n return true;\n }\n\n return matchesAuditNodeReference(entry, nodeId);\n });\n}\n\nfunction normalizeBeliefStatus(status: string | undefined): string {\n if (!status) {\n return \"unscored\";\n }\n if (status === \"unscored\" || status === \"scored\" || status === \"archived\") {\n return status;\n }\n if (status === \"active\" || status === \"in_evaluation\") {\n return \"unscored\";\n }\n if (status === \"challenged\" || status === \"validated\") {\n return \"scored\";\n }\n return \"unscored\";\n}\n\nfunction confidenceFromNode(node: NodeLike): number {\n if (typeof node.confidence === \"number\") {\n return node.confidence;\n }\n if (typeof node.metadata?.confidence === \"number\") {\n return node.metadata.confidence;\n }\n return 0;\n}\n\nexport function createGraphHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const graph = createGraphClient(context.sdkConfig);\n const lucern = createLucernClient(context.sdkConfig);\n const audit = createAuditClient(context.sdkConfig);\n const policy = createPolicyClient(context.sdkConfig);\n\n const isTopicReadable = async (topicId: string): Promise<boolean> => {\n const check = await policy.checkPermission({\n topicId,\n permission: \"read\",\n });\n return check.data?.allowed === true;\n };\n\n const getConfidenceEntries = async (nodeId: string) => {\n const events = await audit.listEvents({\n action: \"modulate_confidence\",\n limit: 500,\n });\n const entries = asAuditArray(events.data).filter((entry) => {\n return matchesAuditNodeReference(entry, nodeId);\n });\n return entries.map((entry) => ({\n confidence:\n typeof (entry.after as { confidence?: unknown })?.confidence ===\n \"number\"\n ? ((entry.after as { confidence: number }).confidence as number)\n : null,\n trigger:\n typeof (entry.details as { trigger?: unknown })?.trigger === \"string\"\n ? ((entry.details as { trigger: string }).trigger as string)\n : \"manual\",\n rationale:\n typeof entry.rationale === \"string\"\n ? entry.rationale\n : \"No rationale recorded.\",\n timestamp:\n typeof entry.timestamp === \"number\" ? entry.timestamp : Date.now(),\n userId: typeof entry.actor === \"string\" ? entry.actor : \"unknown\",\n }));\n };\n\n return {\n query_lineage: contractToHandler(\n MCP_TOOL_CONTRACTS.query_lineage,\n async (params) => {\n const nodeId = readString(params, \"nodeId\", { required: true })!;\n const depth = readNumber(params, \"depth\") ?? 5;\n const [parentEdgesResponse, childEdgesResponse] = await Promise.all([\n graph.queryEdges({\n toNodeId: nodeId,\n edgeType: \"supersedes\",\n limit: depth * 4,\n }),\n graph.queryEdges({\n fromNodeId: nodeId,\n edgeType: \"supersedes\",\n limit: depth * 4,\n }),\n ]);\n const parentEdges = asEdgeArray(parentEdgesResponse.data);\n const childEdges = asEdgeArray(childEdgesResponse.data);\n const chain = [\n { nodeId, relation: \"self\" },\n ...parentEdges.map((edge) => ({\n nodeId: edge.fromNodeId ?? \"\",\n relation: \"ancestor\",\n })),\n ];\n return {\n chain: chain.slice(0, depth + 1),\n forkTree: {\n nodeId,\n parentCount: parentEdges.length,\n childCount: childEdges.length,\n children: childEdges.map((edge) => edge.toNodeId ?? \"\"),\n },\n depth,\n };\n }\n ),\n\n get_confidence_history: contractToHandler(\n MCP_TOOL_CONTRACTS.get_confidence_history,\n async (params) => {\n const nodeId = readString(params, \"nodeId\", { required: true })!;\n const entries = await getConfidenceEntries(nodeId);\n return { entries };\n }\n ),\n\n get_audit_trail: contractToHandler(\n MCP_TOOL_CONTRACTS.get_audit_trail,\n async (params) => {\n const nodeId = readString(params, \"nodeId\", { required: true })!;\n const limit = readNumber(params, \"limit\") ?? 50;\n const events = await audit.listEvents({ limit: Math.max(1, limit) });\n const entries = asAuditArray(events.data)\n .filter((entry) => matchesAuditNodeReference(entry, nodeId))\n .slice(0, limit)\n .map((entry) => ({\n action: entry.action ?? \"unknown\",\n actor: entry.actor ?? \"unknown\",\n timestamp:\n typeof entry.timestamp === \"number\"\n ? entry.timestamp\n : Date.now(),\n before: entry.before ?? null,\n after: entry.after ?? null,\n rationale:\n typeof entry.rationale === \"string\"\n ? entry.rationale\n : \"No rationale recorded.\",\n }));\n return { entries };\n }\n ),\n\n traverse_graph: contractToHandler(\n MCP_TOOL_CONTRACTS.traverse_graph,\n async (params) => {\n const response = await graph.traverse({\n startNode: readString(params, \"startNode\", { required: true })!,\n direction: readString(params, \"direction\"),\n maxDepth: readNumber(params, \"maxDepth\"),\n topicId: readTopicId(params),\n });\n return response.data;\n }\n ),\n\n get_graph_neighborhood: contractToHandler(\n MCP_TOOL_CONTRACTS.get_graph_neighborhood,\n async (params) => {\n const globalIds = readStringArray(params, \"globalIds\");\n const response = await graph.neighborhood({\n globalId: readString(params, \"globalId\"),\n globalIds: globalIds ? globalIds.join(\",\") : undefined,\n maxDepth: readNumber(params, \"maxDepth\"),\n });\n return response.data;\n }\n ),\n\n search_beliefs: contractToHandler(\n MCP_TOOL_CONTRACTS.search_beliefs,\n async (params) => {\n const query = readString(params, \"query\", { required: true })!;\n const topicId = readTopicId(params);\n const status = readString(params, \"status\");\n const minConfidence = readNumber(params, \"minConfidence\");\n const limit = readNumber(params, \"limit\") ?? 10;\n if (!topicId) {\n return { results: [] };\n }\n if (!(await isTopicReadable(topicId))) {\n return { results: [] };\n }\n\n const response = await graph.search({\n q: query,\n topicId,\n types: [\"belief\"],\n status,\n minConfidence,\n limit,\n });\n const data = response.data;\n const groupedBeliefs = Array.isArray(data.beliefs)\n ? (data.beliefs as Record<string, unknown>[])\n : [];\n const mergedResults = Array.isArray(data.results)\n ? (data.results as Record<string, unknown>[])\n : [];\n const results =\n groupedBeliefs.length > 0\n ? groupedBeliefs\n : mergedResults.filter((result) => result.type === \"belief\");\n return { results };\n }\n ),\n\n find_contradictions: contractToHandler(\n MCP_TOOL_CONTRACTS.find_contradictions,\n async (params) => {\n const topicId = readTopicId(params);\n const nodeId = readString(params, \"nodeId\");\n const status = readString(params, \"status\");\n if (!topicId && !nodeId) {\n return { contradictions: [] };\n }\n if (topicId && !(await isTopicReadable(topicId))) {\n return { contradictions: [] };\n }\n\n if (!topicId) {\n return { contradictions: [] };\n }\n\n const payload = await lucern.contradictions.list({\n topicId,\n status: status ?? undefined,\n });\n const contradictions = payload.contradictions ?? [];\n\n if (!nodeId) {\n return {\n ...payload,\n contradictions,\n };\n }\n\n return {\n ...payload,\n contradictions: contradictions.filter(\n (entry) => entry.beliefA === nodeId || entry.beliefB === nodeId\n ),\n };\n }\n ),\n\n bisect_confidence: contractToHandler(\n MCP_TOOL_CONTRACTS.bisect_confidence,\n async (params) => {\n const nodeId = readString(params, \"nodeId\", { required: true })!;\n const expectedDirection = readString(params, \"expectedDirection\", {\n required: true,\n })!;\n const entries = await getConfidenceEntries(nodeId);\n const sorted = [...entries].sort((a, b) => a.timestamp - b.timestamp);\n const index =\n sorted.length === 0\n ? -1\n : Math.max(0, Math.floor(sorted.length / 2) - 1);\n const inflection = index >= 0 ? sorted[index] : null;\n return {\n inflectionEntry: inflection,\n triggerEvent: inflection?.trigger ?? \"unknown\",\n confidenceBefore:\n index > 0 &&\n sorted[index - 1] &&\n sorted[index - 1].confidence != null\n ? sorted[index - 1].confidence\n : null,\n confidenceAfter: inflection?.confidence ?? null,\n expectedDirection,\n };\n }\n ),\n\n detect_confirmation_bias: contractToHandler(\n MCP_TOOL_CONTRACTS.detect_confirmation_bias,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n if (!(await isTopicReadable(topicId))) {\n return { topicId, beliefs: [] };\n }\n const threshold = readNumber(params, \"threshold\") ?? 0.7;\n const analytics = await graph.bias({\n topicId,\n threshold,\n limit: 200,\n });\n const payload = analytics.data.payload;\n const candidates =\n Array.isArray(analytics.data.beliefs)\n ? (analytics.data.beliefs as Record<string, unknown>[])\n : payload &&\n typeof payload === \"object\" &&\n Array.isArray((payload as { beliefs?: unknown[] }).beliefs)\n ? ((payload as { beliefs: unknown[] }).beliefs as Record<\n string,\n unknown\n >[])\n : [];\n const beliefs = candidates.map((belief) => ({\n nodeId: typeof belief.nodeId === \"string\" ? belief.nodeId : \"\",\n biasScore:\n typeof belief.biasScore === \"number\" ? belief.biasScore : threshold,\n riskLevel:\n typeof belief.riskLevel === \"string\"\n ? belief.riskLevel\n : \"moderate\",\n supportingCount:\n typeof belief.supportingCount === \"number\"\n ? belief.supportingCount\n : 0,\n challengingCount:\n typeof belief.challengingCount === \"number\"\n ? belief.challengingCount\n : 0,\n }));\n return { topicId, beliefs };\n }\n ),\n\n get_graph_structure_analysis: contractToHandler(\n MCP_TOOL_CONTRACTS.get_graph_structure_analysis,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n if (!(await isTopicReadable(topicId))) {\n return {\n topicId,\n metric: \"structure_analysis\",\n payload: {},\n };\n }\n const analytics = await graph.analyze({\n topicId,\n limit: 200,\n });\n return analytics.data;\n }\n ),\n\n get_falsification_questions: contractToHandler(\n MCP_TOOL_CONTRACTS.get_falsification_questions,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n if (!(await isTopicReadable(topicId))) {\n return { questions: [] };\n }\n const beliefIds = new Set(\n Array.isArray(params.beliefIds)\n ? params.beliefIds\n .filter((value): value is string => typeof value === \"string\")\n .map((value) => value.trim())\n : []\n );\n const gaps = await lucern.graph.gaps({\n topicId,\n });\n const questions = (Array.isArray(gaps.gaps)\n ? (gaps.gaps as Record<string, unknown>[])\n : [])\n .filter((gap) => {\n if (beliefIds.size === 0) {\n return true;\n }\n return beliefIds.has(String(gap.beliefId ?? \"\"));\n })\n .flatMap((gap) =>\n (Array.isArray(gap.suggestedQuestions)\n ? gap.suggestedQuestions\n : []\n ).map((questionText) => ({\n questionText: String(questionText),\n falsificationPotential: 0.5,\n targetBeliefId: String(gap.beliefId ?? \"\"),\n targetBeliefText: String(gap.canonicalText ?? \"\"),\n }))\n )\n .slice(0, 20);\n return { questions };\n }\n ),\n\n get_graph_gaps: contractToHandler(\n MCP_TOOL_CONTRACTS.get_graph_gaps,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n if (!(await isTopicReadable(topicId))) {\n return { topicId, gaps: [], totalGaps: 0 };\n }\n return lucern.graph.gaps({\n topicId,\n minConfidence: readNumber(params, \"minConfidence\"),\n });\n }\n ),\n\n list_beliefs: contractToHandler(\n MCP_TOOL_CONTRACTS.list_beliefs,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n if (!(await isTopicReadable(topicId))) {\n return { beliefs: [] };\n }\n const status = readString(params, \"status\");\n const minConfidence = readNumber(params, \"minConfidence\");\n const worktreeId = readString(params, \"worktreeId\");\n const response = await graph.queryNodes({\n topicId,\n nodeType: \"belief\",\n limit: 500,\n });\n const beliefs = asNodeArray(response.data)\n .filter((belief) => {\n const normalizedStatus = normalizeBeliefStatus(\n typeof belief.status === \"string\" ? belief.status : undefined\n );\n if (status && normalizedStatus !== status) {\n return false;\n }\n if (\n typeof minConfidence === \"number\" &&\n Number.isFinite(minConfidence) &&\n confidenceFromNode(belief) < minConfidence\n ) {\n return false;\n }\n if (worktreeId) {\n const linkedWorktreeId =\n typeof belief.metadata?.worktreeId === \"string\"\n ? belief.metadata.worktreeId\n : undefined;\n if (linkedWorktreeId !== worktreeId) {\n return false;\n }\n }\n return true;\n })\n .map((belief) => ({\n nodeId: belief.nodeId ?? \"\",\n canonicalText: belief.canonicalText ?? \"\",\n confidence: confidenceFromNode(belief),\n status: normalizeBeliefStatus(\n typeof belief.status === \"string\" ? belief.status : undefined\n ),\n scoringState:\n normalizeBeliefStatus(\n typeof belief.status === \"string\" ? belief.status : undefined\n ) === \"scored\"\n ? \"scored\"\n : \"unscored\",\n }));\n return { beliefs };\n }\n ),\n };\n}\n","import { createDecisionsClient, MCP_TOOL_CONTRACTS } from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readNumber,\n readString,\n readStringArray,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nexport function createJudgmentHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const decisions = createDecisionsClient(context.sdkConfig);\n\n return {\n record_judgment: contractToHandler(\n MCP_TOOL_CONTRACTS.record_judgment,\n async (params) => {\n const title = readString(params, \"title\", { required: true })!;\n const rationale = readString(params, \"rationale\", { required: true })!;\n const topicId = readTopicId(params, { required: true })!;\n const confidence = readNumber(params, \"confidence\");\n const beliefIds = readStringArray(params, \"beliefIds\");\n\n const result = await decisions.recordJudgment({\n title,\n summary: title,\n rationale,\n topicId,\n confidence: confidence ?? 0.5,\n beliefIds,\n });\n\n return {\n judgmentId:\n result.data.judgmentId ??\n result.data.nodeId ??\n result.data.globalId ??\n \"\",\n title,\n status: \"issued\",\n };\n }\n ),\n };\n}\n","import { GET_OBSERVATION_CONTEXT, INGEST_OBSERVATION } from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readNumber,\n readString,\n readStringArray,\n readTopicId,\n} from \"../handler-factory\";\nimport {\n type McpHandlerContext,\n McpHandlerError,\n type McpToolHandler,\n} from \"../types\";\n\nfunction readObject(\n params: Record<string, unknown>,\n key: string\n): Record<string, unknown> | undefined {\n const value = params[key];\n if (value === undefined || value === null) {\n return;\n }\n if (typeof value !== \"object\" || Array.isArray(value)) {\n throw new McpHandlerError(`Expected object parameter: ${key}`);\n }\n return value as Record<string, unknown>;\n}\n\nexport function createObservationHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const observationStore = context.observationStore;\n\n return {\n ingest_observation: contractToHandler(\n INGEST_OBSERVATION,\n async (params) => {\n if (!observationStore) {\n throw new McpHandlerError(\n \"Observation store not configured.\",\n \"INTERNAL_ERROR\",\n 500\n );\n }\n\n const topicId = readTopicId(params, {\n required: true,\n }) as string;\n const observationType = readString(params, \"observationType\", {\n required: true,\n }) as string;\n const summary = readString(params, \"summary\", {\n required: true,\n }) as string;\n const source = readString(params, \"source\");\n const confidence = readNumber(params, \"confidence\");\n const tags = readStringArray(params, \"tags\");\n const metadata = readObject(params, \"metadata\");\n\n const allowedTypes = [\n \"claim\",\n \"evidence\",\n \"question\",\n \"contradiction\",\n \"judgment\",\n \"note\",\n ] as const;\n if (\n !allowedTypes.includes(\n observationType as (typeof allowedTypes)[number]\n )\n ) {\n throw new McpHandlerError(\n `Invalid observationType: ${observationType}`,\n \"INVALID_REQUEST\",\n 400\n );\n }\n\n if (confidence !== undefined && (confidence < 0 || confidence > 1)) {\n throw new McpHandlerError(\n \"confidence must be in [0,1]\",\n \"INVALID_REQUEST\",\n 400\n );\n }\n\n const record = observationStore.ingest({\n topicId,\n observationType: observationType as (typeof allowedTypes)[number],\n summary,\n source,\n confidence,\n tags,\n metadata,\n });\n\n await context.onObservationIngested?.(topicId);\n\n return {\n observationId: record.observationId,\n topicId: record.topicId,\n observationType: record.observationType,\n createdAt: record.createdAt,\n contextResourceUri: `lucern://context/topic/${encodeURIComponent(topicId)}`,\n };\n }\n ),\n\n get_observation_context: contractToHandler(\n GET_OBSERVATION_CONTEXT,\n async (params) => {\n if (!observationStore) {\n throw new McpHandlerError(\n \"Observation store not configured.\",\n \"INTERNAL_ERROR\",\n 500\n );\n }\n\n const topicId = readTopicId(params, {\n required: true,\n }) as string;\n const query = readString(params, \"query\");\n const limit = readNumber(params, \"limit\");\n\n return observationStore.getContext({\n topicId,\n query,\n limit,\n });\n }\n ),\n };\n}\n","import { createPolicyClient, MCP_TOOL_CONTRACTS } from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readBoolean,\n readString,\n readStringArray,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\ntype TopicLike = {\n topicId?: string;\n name?: string;\n type?: string;\n isOwner?: boolean;\n [key: string]: unknown;\n};\n\nfunction asTopicArray(data: unknown): TopicLike[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data.filter(\n (row): row is TopicLike => Boolean(row) && typeof row === \"object\"\n );\n}\n\nexport function createPolicyHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const policy = createPolicyClient(context.sdkConfig);\n\n return {\n check_permission: contractToHandler(\n MCP_TOOL_CONTRACTS.check_permission,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n const permission =\n (readString(params, \"permission\", { required: true }) as\n | \"read\"\n | \"write\"\n | undefined) ?? \"read\";\n const principal = readString(params, \"principal\");\n const beliefClusterId = readString(params, \"beliefClusterId\");\n\n const result = await policy.checkPermission({\n topicId,\n permission,\n principal,\n beliefClusterId,\n });\n\n return {\n allowed: result.data?.allowed === true,\n decision:\n typeof result.data?.decision === \"string\"\n ? result.data.decision\n : result.data?.allowed\n ? \"allow\"\n : \"deny\",\n reasonCode:\n typeof result.data?.reasonCode === \"string\"\n ? result.data.reasonCode\n : \"ACCESS_NOT_GRANTED\",\n principalId:\n typeof result.data?.principalId === \"string\"\n ? result.data.principalId\n : (principal ?? \"\"),\n topicId:\n typeof result.data?.topicId === \"string\"\n ? result.data.topicId\n : topicId,\n permission:\n typeof result.data?.permission === \"string\"\n ? result.data.permission\n : permission,\n explanation:\n result.data?.explanation && typeof result.data.explanation === \"object\"\n ? result.data.explanation\n : undefined,\n };\n }\n ),\n filter_by_permission: contractToHandler(\n MCP_TOOL_CONTRACTS.filter_by_permission,\n async (params) => {\n const topicIds = readStringArray(params, \"topicIds\") ?? [];\n const permission =\n (readString(params, \"permission\", {\n required: true,\n }) as \"read\" | \"write\" | undefined) ?? \"read\";\n const principal = readString(params, \"principal\");\n\n const result = await policy.filterByPermission({\n topicIds,\n permission,\n principal,\n });\n\n const allowedTopicIds = Array.isArray(result.data?.allowedTopicIds)\n ? (result.data.allowedTopicIds as string[])\n : [];\n const deniedTopics = Array.isArray(result.data?.deniedTopics)\n ? result.data.deniedTopics\n : [];\n\n return {\n permission,\n allowedTopicIds,\n deniedTopics,\n count:\n typeof result.data?.count === \"number\"\n ? result.data.count\n : allowedTopicIds.length,\n };\n }\n ),\n };\n}\n","import {\n createLucernClient,\n MCP_TOOL_CONTRACTS,\n type JsonObject,\n} from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readBoolean,\n readNumber,\n readString,\n readStringArray,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nfunction readMetadata(\n params: Record<string, unknown>\n): JsonObject | undefined {\n const metadata = params.metadata;\n return metadata && typeof metadata === \"object\" && !Array.isArray(metadata)\n ? (metadata as JsonObject)\n : undefined;\n}\n\nexport function createQuestionHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const lucern = createLucernClient(context.sdkConfig);\n\n return {\n create_question: contractToHandler(\n MCP_TOOL_CONTRACTS.create_question,\n async (params) => {\n const response = await lucern.questions.create({\n text: readString(params, \"text\", { required: true }),\n topicId: readTopicId(params, { required: true }),\n priority: readString(params, \"priority\"),\n linkedBeliefId: readString(params, \"linkedBeliefId\"),\n metadata: readMetadata(params),\n });\n return response.data;\n }\n ),\n\n get_question: contractToHandler(\n MCP_TOOL_CONTRACTS.get_question,\n async (params) => {\n const response = await lucern.questions.get(\n readString(params, \"id\", { required: true })\n );\n return response.data;\n }\n ),\n\n list_questions: contractToHandler(\n MCP_TOOL_CONTRACTS.list_questions,\n async (params) => {\n const response = await lucern.questions.list({\n topicId: readTopicId(params, { required: true }),\n status: readString(params, \"status\"),\n priority: readString(params, \"priority\"),\n worktreeId: readString(params, \"worktreeId\"),\n limit: readNumber(params, \"limit\"),\n cursor: readString(params, \"cursor\"),\n });\n return response.data;\n }\n ),\n\n answer_question: contractToHandler(\n MCP_TOOL_CONTRACTS.answer_question,\n async (params) => {\n const response = await lucern.questions.answer(\n readString(params, \"id\", { required: true }),\n {\n text: readString(params, \"text\", { required: true }),\n confidence: readString(params, \"confidence\"),\n evidenceIds: readStringArray(params, \"evidenceIds\"),\n rationale: readString(params, \"rationale\"),\n }\n );\n return response.data;\n }\n ),\n\n refine_question: contractToHandler(\n MCP_TOOL_CONTRACTS.refine_question,\n async (params) => {\n const response = await lucern.questions.refine(\n readString(params, \"id\") ??\n readString(params, \"questionId\", { required: true }),\n readString(params, \"text\", { required: true }),\n readString(params, \"rationale\") ?? readString(params, \"refinementReason\")\n );\n return response.data;\n }\n ),\n\n update_question_status: contractToHandler(\n MCP_TOOL_CONTRACTS.update_question_status,\n async (params) => {\n const response = await lucern.questions.updateStatus(\n readString(params, \"id\") ??\n readString(params, \"questionId\", { required: true }),\n readString(params, \"status\", { required: true }),\n readString(params, \"rationale\")\n );\n return response.data;\n }\n ),\n\n archive_question: contractToHandler(\n MCP_TOOL_CONTRACTS.archive_question,\n async (params) => {\n return lucern.questions.archive(\n readString(params, \"questionId\", { required: true }),\n readString(params, \"reason\")\n );\n }\n ),\n\n link_evidence_to_question: contractToHandler(\n MCP_TOOL_CONTRACTS.link_evidence_to_question,\n async (params) => {\n return lucern.questions.linkEvidence({\n evidenceId: readString(params, \"evidenceId\", { required: true }),\n questionId: readString(params, \"questionId\", { required: true }),\n relevance: readNumber(params, \"relevance\") ?? 1,\n rationale: readString(params, \"rationale\"),\n });\n }\n ),\n\n get_high_priority_questions: contractToHandler(\n MCP_TOOL_CONTRACTS.get_high_priority_questions,\n async (params) => {\n return lucern.questions.getHighPriority({\n topicId: readTopicId(params, { required: true }),\n limit: readNumber(params, \"limit\"),\n includeAnswered: readBoolean(params, \"includeAnswered\"),\n });\n }\n ),\n\n find_missing_questions: contractToHandler(\n MCP_TOOL_CONTRACTS.find_missing_questions,\n async (params) => {\n return lucern.questions.findMissing({\n topicId: readTopicId(params, { required: true }),\n minConfidence: readNumber(params, \"minConfidence\"),\n });\n }\n ),\n };\n}\n","import { createWorkflowClient, MCP_TOOL_CONTRACTS } from \"@lucern/sdk\";\nimport {\n contractToHandler,\n readBoolean,\n readString,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nexport function createTaskHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const workflow = createWorkflowClient(context.sdkConfig);\n\n return {\n create_task: contractToHandler(\n MCP_TOOL_CONTRACTS.create_task,\n async (params) => {\n const title = readString(params, \"title\", { required: true })!;\n const topicId = readTopicId(params, { required: true })!;\n const taskType = readString(params, \"taskType\");\n const linkedQuestionId = readString(params, \"linkedQuestionId\");\n const linkedWorktreeId = readString(params, \"linkedWorktreeId\");\n\n const result = await workflow.createTask({\n title,\n topicId,\n taskType:\n taskType === \"research\" ||\n taskType === \"interview\" ||\n taskType === \"analysis\" ||\n taskType === \"data_collection\"\n ? taskType\n : undefined,\n linkedQuestionId,\n linkedWorktreeId,\n });\n\n return {\n taskId: result.data.taskId,\n status: result.data.status ?? \"pending\",\n createdAt: result.data.createdAt ?? Date.now(),\n };\n }\n ),\n\n complete_task: contractToHandler(\n MCP_TOOL_CONTRACTS.complete_task,\n async (params) => {\n const taskId = readString(params, \"taskId\", { required: true })!;\n const outputSummary = readString(params, \"outputSummary\", {\n required: true,\n })!;\n const evidenceCreated = readBoolean(params, \"evidenceCreated\");\n\n const result = await workflow.completeTask(taskId, {\n outputSummary,\n evidenceCreated,\n });\n\n return {\n taskId: result.data.taskId ?? taskId,\n completedAt: result.data.completedAt ?? Date.now(),\n outputSummary: result.data.outputSummary ?? outputSummary,\n };\n }\n ),\n\n update_task: contractToHandler(\n MCP_TOOL_CONTRACTS.update_task,\n async (params) => {\n const taskId = readString(params, \"taskId\", { required: true })!;\n const title = readString(params, \"title\");\n const description = readString(params, \"description\");\n const linkedBeliefId = readString(params, \"linkedBeliefId\");\n const linkedQuestionId = readString(params, \"linkedQuestionId\");\n const linkedWorktreeId = readString(params, \"linkedWorktreeId\");\n const rawPriority = readString(params, \"priority\");\n const priority =\n rawPriority === \"critical\" ||\n rawPriority === \"high\" ||\n rawPriority === \"medium\" ||\n rawPriority === \"low\"\n ? rawPriority\n : undefined;\n const rawStatus = readString(params, \"status\");\n const status =\n rawStatus === \"todo\" ||\n rawStatus === \"in_progress\" ||\n rawStatus === \"blocked\" ||\n rawStatus === \"done\"\n ? rawStatus\n : undefined;\n\n const result = await workflow.updateTask(taskId, {\n title,\n description,\n linkedBeliefId,\n linkedQuestionId,\n linkedWorktreeId,\n priority,\n status,\n });\n\n return {\n taskId: result.data.taskId ?? taskId,\n updatedAt: result.data.updatedAt ?? Date.now(),\n };\n }\n ),\n };\n}\n","import {\n createWorkflowClient,\n MCP_TOOL_CONTRACTS,\n type JsonObject,\n} from \"@lucern/sdk\";\nimport type {\n LensPerspectiveType,\n LensPromptTemplateReference,\n LensTaskTemplate,\n LensWorkflowTemplate,\n} from \"@lucern/sdk/contracts/lensWorkflow\";\nimport {\n contractToHandler,\n readBoolean,\n readString,\n readStringArray,\n readTopicId,\n} from \"../handler-factory\";\nimport type { McpHandlerContext, McpToolHandler } from \"../types\";\n\nfunction mapWorktreeStatus(\n status?: string\n):\n | \"planning\"\n | \"active\"\n | \"paused\"\n | \"completed\"\n | \"merged\"\n | \"failed\"\n | \"archived\"\n | undefined {\n if (!status) {\n return;\n }\n if (status === \"abandoned\") {\n return \"archived\";\n }\n if (\n status === \"planning\" ||\n status === \"active\" ||\n status === \"paused\" ||\n status === \"completed\" ||\n status === \"merged\" ||\n status === \"failed\" ||\n status === \"archived\"\n ) {\n return status;\n }\n return;\n}\n\nexport function createWorktreeHandlers(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n const workflow = createWorkflowClient(context.sdkConfig);\n\n return {\n create_lens: contractToHandler(MCP_TOOL_CONTRACTS.create_lens, async (params) => {\n const result = await workflow.createLens({\n name: readString(params, \"name\", { required: true })!,\n workspaceId: readString(params, \"workspaceId\"),\n topicId: readTopicId(params),\n description: readString(params, \"description\"),\n perspectiveType: readString(params, \"perspectiveType\", {\n required: true,\n }) as LensPerspectiveType,\n promptTemplates: Array.isArray(params.promptTemplates)\n ? (params.promptTemplates as LensPromptTemplateReference[])\n : undefined,\n workflowTemplates: Array.isArray(params.workflowTemplates)\n ? (params.workflowTemplates as LensWorkflowTemplate[])\n : undefined,\n taskTemplates: Array.isArray(params.taskTemplates)\n ? (params.taskTemplates as LensTaskTemplate[])\n : undefined,\n filterCriteria:\n params.filterCriteria && typeof params.filterCriteria === \"object\"\n ? (params.filterCriteria as JsonObject)\n : undefined,\n });\n return {\n lensId: result.data.lensId ?? \"\",\n name:\n result.data.name ?? readString(params, \"name\", { required: true }),\n workspaceId:\n result.data.workspaceId ??\n readString(params, \"workspaceId\") ??\n null,\n status: result.data.status ?? \"active\",\n };\n }),\n\n list_lenses: contractToHandler(MCP_TOOL_CONTRACTS.list_lenses, async (params) => {\n const result = await workflow.listLenses({\n workspaceId: readString(params, \"workspaceId\"),\n topicId: readTopicId(params),\n status: readString(params, \"status\") as\n | \"draft\"\n | \"active\"\n | \"archived\"\n | undefined,\n perspectiveType: readString(params, \"perspectiveType\") as\n | LensPerspectiveType\n | undefined,\n });\n return {\n lenses:\n result.data.items ??\n (\"lenses\" in result.data && Array.isArray(result.data.lenses)\n ? result.data.lenses\n : []),\n };\n }),\n\n apply_lens_to_topic: contractToHandler(\n MCP_TOOL_CONTRACTS.apply_lens_to_topic,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n const lensId = readString(params, \"lensId\", { required: true })!;\n const result = await workflow.applyLensToTopic({\n lensId,\n topicId,\n metadata:\n params.metadata && typeof params.metadata === \"object\"\n ? (params.metadata as JsonObject)\n : undefined,\n });\n return {\n bindingId: result.data.bindingId ?? \"\",\n lensId: result.data.lensId ?? lensId,\n topicId: result.data.topicId ?? topicId,\n status: result.data.status ?? \"active\",\n };\n }\n ),\n\n remove_lens_from_topic: contractToHandler(\n MCP_TOOL_CONTRACTS.remove_lens_from_topic,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n const lensId = readString(params, \"lensId\", { required: true })!;\n const result = await workflow.removeLensFromTopic({\n lensId,\n topicId,\n });\n return {\n bindingId: result.data.bindingId ?? \"\",\n lensId: result.data.lensId ?? lensId,\n topicId: result.data.topicId ?? topicId,\n status: result.data.status ?? \"removed\",\n };\n }\n ),\n\n add_worktree: contractToHandler(\n MCP_TOOL_CONTRACTS.add_worktree,\n async (params) => {\n const topicId = readTopicId(params);\n if (!topicId) {\n throw new Error(\"add_worktree requires topicId\");\n }\n\n const result = await workflow.addWorktree({\n title: readString(params, \"title\", { required: true })!,\n topicId,\n branchId: readString(params, \"branchId\"),\n objective: readString(params, \"objective\"),\n hypothesis: readString(params, \"hypothesis\"),\n beliefIds: readStringArray(params, \"beliefIds\"),\n autoShape: readBoolean(params, \"autoShape\"),\n domainPackId: readString(params, \"domainPackId\"),\n campaign:\n typeof params.campaign === \"number\" ? params.campaign : undefined,\n lane: readString(params, \"lane\"),\n laneOrderInCampaign:\n typeof params.laneOrderInCampaign === \"number\"\n ? params.laneOrderInCampaign\n : undefined,\n orderInLane:\n typeof params.orderInLane === \"number\"\n ? params.orderInLane\n : undefined,\n dependsOn: readStringArray(params, \"dependsOn\"),\n blocks: readStringArray(params, \"blocks\"),\n gate: readString(params, \"gate\"),\n });\n return {\n worktreeId: result.data.worktreeId,\n branchId: result.data.branchId ?? null,\n status: result.data.status ?? \"planning\",\n title: result.data.title,\n hypothesis: result.data.hypothesis ?? null,\n questionCount: result.data.questionCount ?? 0,\n taskCount: result.data.taskCount ?? 0,\n autoShapeApplied: result.data.autoShapeApplied ?? false,\n frameworkSuggestions: result.data.frameworkSuggestions ?? [],\n dependencySuggestions: result.data.dependencySuggestions ?? [],\n };\n }\n ),\n\n merge: contractToHandler(MCP_TOOL_CONTRACTS.merge, async (params) => {\n const worktreeId = readString(params, \"worktreeId\", { required: true })!;\n const outcomes = Array.isArray(params.outcomes)\n ? (params.outcomes as Array<{\n beliefId: string;\n confidence: number;\n rationale: string;\n }>)\n : [];\n const result = await workflow.merge(worktreeId, {\n outcomes,\n summary: readString(params, \"summary\"),\n });\n return {\n worktreeId: result.data.worktreeId ?? worktreeId,\n status: result.data.status ?? \"merged\",\n beliefsScored: result.data.beliefsScored ?? outcomes.length,\n };\n }),\n\n push: contractToHandler(MCP_TOOL_CONTRACTS.push, async (params) => {\n const worktreeId = readString(params, \"worktreeId\", { required: true })!;\n const targetContext = readString(params, \"targetContext\", {\n required: true,\n })!;\n const result = await workflow.push(worktreeId, {\n targetContext,\n beliefIds: readStringArray(params, \"beliefIds\"),\n });\n return {\n pushedCount: result.data.pushedCount ?? 0,\n targetContext: result.data.targetContext ?? targetContext,\n pushedAt: Date.now(),\n };\n }),\n\n open_pull_request: contractToHandler(\n MCP_TOOL_CONTRACTS.open_pull_request,\n async (params) => {\n const worktreeId = readString(params, \"worktreeId\", {\n required: true,\n })!;\n const summary = readString(params, \"summary\", { required: true })!;\n const reviewers = readStringArray(params, \"reviewers\");\n const result = await workflow.openPullRequest(worktreeId, {\n summary,\n reviewers,\n });\n return {\n pullRequestId: result.data.pullRequestId,\n worktreeId: result.data.worktreeId ?? worktreeId,\n status: result.data.status ?? \"pending_review\",\n };\n }\n ),\n\n list_worktrees: contractToHandler(\n MCP_TOOL_CONTRACTS.list_worktrees,\n async (params) => {\n const topicId = readTopicId(params, { required: true })!;\n const status = mapWorktreeStatus(readString(params, \"status\"));\n const result = await workflow.listWorktrees({\n topicId,\n status,\n });\n const worktrees = Array.isArray(result.data)\n ? result.data\n : result.data == null\n ? []\n : [result.data];\n\n return {\n worktrees: worktrees.map((worktree) => ({\n worktreeId: worktree.worktreeId,\n title: worktree.title,\n phase: (worktree as { phase?: string }).phase ?? null,\n status: worktree.status,\n beliefCount:\n (worktree as { beliefCount?: number }).beliefCount ?? 0,\n createdAt: (worktree as { createdAt?: number }).createdAt ?? null,\n })),\n };\n }\n ),\n };\n}\n","import type { McpHandlerContext, McpToolHandler } from \"../types\";\nimport { createBeliefHandlers } from \"./beliefs\";\nimport { createContextHandlers } from \"./context\";\nimport { createContradictionHandlers } from \"./contradictions\";\nimport { createEdgeHandlers } from \"./edges\";\nimport { createEvidenceHandlers } from \"./evidence\";\nimport { createFunctionSurfaceHandlers } from \"./functionSurface\";\nimport { createGraphHandlers } from \"./graph\";\nimport { createJudgmentHandlers } from \"./judgments\";\nimport { createObservationHandlers } from \"./observations\";\nimport { createPolicyHandlers } from \"./policy\";\nimport { createQuestionHandlers } from \"./questions\";\nimport { createTaskHandlers } from \"./tasks\";\nimport { createWorktreeHandlers } from \"./worktrees\";\n\nexport function createMcpHandlerRegistry(\n context: McpHandlerContext\n): Record<string, McpToolHandler> {\n return {\n ...createBeliefHandlers(context),\n ...createEvidenceHandlers(context),\n ...createContradictionHandlers(context),\n ...createEdgeHandlers(context),\n ...createContextHandlers(context),\n ...createWorktreeHandlers(context),\n\n // Placeholder families wired in Block 6.\n ...createQuestionHandlers(context),\n ...createJudgmentHandlers(context),\n ...createGraphHandlers(context),\n ...createObservationHandlers(context),\n ...createTaskHandlers(context),\n ...createPolicyHandlers(context),\n ...createFunctionSurfaceHandlers(context),\n };\n}\n","import {\n invokeRegisteredCustomTool,\n listRegisteredCustomTools,\n MCP_TOOL_CONTRACTS,\n type JsonObject,\n type McpToolContract,\n type RegisteredCustomTool,\n} from \"@lucern/sdk\";\nimport { LUCERN_OPERATION_MANIFEST } from \"@lucern/contracts/function-registry/manifest\";\nimport {\n createToolExecutionEnvelope,\n executeToolWithEnvelope,\n normalizeToolExecutionParams,\n type ToolExecutionAuditEvent,\n type ToolExecutionAuthMode,\n type ToolExecutionEnvelope,\n type ToolExecutionTransportKind,\n} from \"./execution\";\nimport {\n contractToHandler,\n createNotImplementedHandler,\n toMcpResult,\n toMcpError,\n} from \"./handler-factory\";\nimport { isServicePrincipalKey, isTenantApiKey } from \"./credentials\";\nimport { createMcpHandlerRegistry } from \"./handlers/index\";\nimport { McpObservationStore } from \"./observation-store\";\nimport type { McpHandlerContext, McpToolHandler, McpToolResult } from \"./types\";\n\ntype ResourceUri = (typeof LUCERN_MCP_RESOURCE_URIS)[number];\ntype BuiltinToolName = keyof typeof MCP_TOOL_CONTRACTS;\ntype ToolName = string;\n\ntype McpToolExecutor = (\n toolName: ToolName,\n params: Record<string, unknown>,\n contract: McpToolContract\n) => Promise<unknown>;\n\ntype McpServerRuntime = {\n registerResource?: (\n uri: string,\n handler: (params: Record<string, unknown>) => Promise<unknown>\n ) => void;\n registerTool?: (\n name: string,\n handler: (params: Record<string, unknown>) => Promise<unknown>\n ) => void;\n};\n\ntype McpResourceDescriptor = {\n uri: ResourceUri;\n requiredScopes: readonly string[];\n};\n\ntype McpToolDescriptor = {\n name: ToolName;\n requiredScopes: readonly string[];\n contract: McpToolContract;\n implemented: boolean;\n source: \"platform\" | \"custom\";\n};\n\nexport type AdditionalMcpTool = {\n name: ToolName;\n requiredScopes: readonly string[];\n contract: McpToolContract;\n handler: McpToolHandler;\n implemented?: boolean;\n source?: \"platform\" | \"custom\";\n};\n\nfunction loadMcpSdk(): Record<string, unknown> {\n try {\n const dynamicRequire = eval(\"require\") as (moduleName: string) => unknown;\n return (dynamicRequire(\"@modelcontextprotocol/sdk\") ?? {}) as Record<\n string,\n unknown\n >;\n } catch {\n return {};\n }\n}\n\nexport const LUCERN_MCP_RESOURCE_URIS = [\n \"lucern://schema/kernel\",\n \"lucern://schema/packs/{packId}\",\n \"lucern://schema/extensions\",\n \"lucern://graph/sample\",\n \"lucern://api/openapi\",\n \"lucern://sdk/examples\",\n \"lucern://docs/invariants\",\n] as const;\n\nexport const MCP_AUTH_ERROR_CODES = [\n \"AUTHENTICATION_REQUIRED\",\n \"SCOPE_INSUFFICIENT\",\n \"ENVIRONMENT_MISMATCH\",\n] as const;\n\nexport const MCP_RATE_LIMIT_SIGNALS = [\n \"RATE_LIMIT_EXCEEDED\",\n \"Retry-After\",\n] as const;\n\ntype OperationManifestEntry =\n (typeof LUCERN_OPERATION_MANIFEST)[keyof typeof LUCERN_OPERATION_MANIFEST];\n\nconst OPERATION_MANIFEST = LUCERN_OPERATION_MANIFEST as Record<\n string,\n OperationManifestEntry | undefined\n>;\n\nfunction mcpExposureFor(toolName: string): \"public\" | \"internal\" | \"none\" {\n return OPERATION_MANIFEST[toolName]?.surfaces.mcp ?? \"none\";\n}\n\nfunction withManifestVisibility(\n toolName: string,\n contract: McpToolContract\n): McpToolContract {\n return mcpExposureFor(toolName) === \"internal\" || contract.internal\n ? { ...contract, internal: true }\n : contract;\n}\n\nexport const LUCERN_MCP_TOOL_NAMES = Object.keys(MCP_TOOL_CONTRACTS).filter(\n (toolName) => mcpExposureFor(toolName) !== \"none\"\n) as BuiltinToolName[];\n\nexport const LUCERN_PUBLIC_MCP_TOOL_NAMES = LUCERN_MCP_TOOL_NAMES.filter(\n (toolName) => mcpExposureFor(toolName) === \"public\"\n);\n\nconst MCP_RESOURCE_SCOPES: readonly McpResourceDescriptor[] = [\n { uri: \"lucern://schema/kernel\", requiredScopes: [\"schema:read\"] },\n { uri: \"lucern://schema/packs/{packId}\", requiredScopes: [\"schema:read\"] },\n { uri: \"lucern://schema/extensions\", requiredScopes: [\"schema:read\"] },\n { uri: \"lucern://graph/sample\", requiredScopes: [\"graph:read\"] },\n { uri: \"lucern://api/openapi\", requiredScopes: [\"schema:read\"] },\n { uri: \"lucern://sdk/examples\", requiredScopes: [\"schema:read\"] },\n { uri: \"lucern://docs/invariants\", requiredScopes: [\"schema:read\"] },\n];\n\nconst SCOPE_BY_PRIMITIVE: Record<\n McpToolContract[\"ontologyPrimitive\"],\n readonly string[]\n> = {\n belief: [\"graph:read\", \"graph:write\"],\n evidence: [\"graph:read\", \"graph:write\"],\n source: [\"graph:read\", \"graph:write\", \"source:read\"],\n question: [\"graph:read\", \"graph:write\"],\n judgment: [\"decision:write\", \"graph:read\"],\n worktree: [\"workflow:write\", \"graph:read\"],\n branch: [\"workflow:write\"],\n lens: [\"workflow:write\"],\n edge: [\"graph:write\"],\n graph: [\"graph:read\"],\n task: [\"task:write\", \"task:read\"],\n policy: [\"policy:read\"],\n ontology: [\"graph:read\", \"graph:write\"],\n identity: [\"identity:read\"],\n};\n\nconst TOOL_SCOPE_OVERRIDES: Partial<\n Record<BuiltinToolName, readonly string[]>\n> = {\n merge: [\"workflow:write\", \"graph:write\", \"decision:write\"],\n open_pull_request: [\"workflow:write\", \"review:write\"],\n push: [\"workflow:write\", \"publish:write\"],\n compile_context: [\"graph:read\"],\n check_permission: [\"policy:read\"],\n filter_by_permission: [\"policy:read\"],\n ingest_observation: [\"graph:write\", \"graph:read\"],\n get_observation_context: [\"graph:read\"],\n detect_confirmation_bias: [\"intelligence:read\", \"graph:read\"],\n get_graph_structure_analysis: [\"intelligence:read\", \"graph:read\"],\n get_falsification_questions: [\"intelligence:read\", \"graph:read\"],\n get_high_priority_questions: [\"graph:read\"],\n find_missing_questions: [\"graph:read\"],\n};\n\nfunction uniqueScopes(scopes: readonly string[]): readonly string[] {\n return [...new Set(scopes)];\n}\n\nfunction deriveToolScopes(contract: McpToolContract): readonly string[] {\n const override = TOOL_SCOPE_OVERRIDES[contract.name as BuiltinToolName];\n if (override) {\n return uniqueScopes(override);\n }\n return uniqueScopes(SCOPE_BY_PRIMITIVE[contract.ontologyPrimitive]);\n}\n\nfunction deriveCustomToolScopes(\n customTool: RegisteredCustomTool\n): readonly string[] {\n return uniqueScopes(customTool.metadata.requiredScopes ?? [\"custom:execute\"]);\n}\n\nfunction createFallbackRuntime(): McpServerRuntime {\n return {\n registerResource: () => {},\n registerTool: () => {},\n };\n}\n\nfunction createMcpRuntime(): McpServerRuntime {\n const sdk = loadMcpSdk();\n const Server = (sdk as Record<string, unknown>).Server as\n | (new (\n ...args: unknown[]\n ) => McpServerRuntime)\n | undefined;\n if (!Server) {\n return createFallbackRuntime();\n }\n try {\n return new Server(\n { name: \"lucern-platform-mcp\", version: \"1.2.0\" },\n { capabilities: { resources: {}, tools: {} } }\n );\n } catch {\n return createFallbackRuntime();\n }\n}\n\nfunction createSdkConfig(options?: {\n apiKey?: string;\n sessionToken?: string;\n baseUrl?: string;\n fetchImpl?: typeof fetch;\n}) {\n const sessionHeaders = (\n token: string\n ): Record<string, string> => ({\n Authorization: `Bearer ${token}`,\n });\n const apiKeyHeaders = (\n apiKey: string\n ): Record<string, string> =>\n apiKey.startsWith(\"luc_\") || apiKey.startsWith(\"stk_\")\n ? { \"x-lucern-key\": apiKey }\n : { Authorization: `Bearer ${apiKey}` };\n const getAuthHeaders = options?.sessionToken\n ? async () => sessionHeaders(options.sessionToken as string)\n : options?.apiKey\n ? async () => apiKeyHeaders(options.apiKey as string)\n : undefined;\n return {\n baseUrl: options?.baseUrl,\n fetchImpl: options?.fetchImpl,\n getAuthHeaders,\n };\n}\n\nfunction executeWithHandler(\n _name: ToolName,\n handler: McpToolHandler,\n contract: McpToolContract,\n params: Record<string, unknown>\n): Promise<McpToolResult> {\n try {\n return handler(params, contract);\n } catch (error) {\n return Promise.resolve(toMcpError(error));\n }\n}\n\nfunction isMcpToolResult(value: unknown): value is McpToolResult {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const candidate = value as Record<string, unknown>;\n if (!Array.isArray(candidate.content)) {\n return false;\n }\n return candidate.content.every((entry) => {\n if (!entry || typeof entry !== \"object\") {\n return false;\n }\n return typeof (entry as Record<string, unknown>).text === \"string\";\n });\n}\n\nfunction normalizeExecutorResult(value: unknown): McpToolResult {\n return isMcpToolResult(value) ? value : toMcpResult(value);\n}\n\nfunction detectAuthMode(options?: {\n apiKey?: string;\n sessionToken?: string;\n authMode?: ToolExecutionAuthMode;\n}): ToolExecutionAuthMode {\n if (options?.authMode) {\n return options.authMode;\n }\n if (options?.sessionToken) {\n return \"session_token\";\n }\n if (!options?.apiKey) {\n return \"unknown\";\n }\n if (isTenantApiKey(options.apiKey)) {\n return \"tenant_api_key\";\n }\n if (isServicePrincipalKey(options.apiKey)) {\n return \"service_principal\";\n }\n return \"unknown\";\n}\n\nfunction createCustomMcpHandlerRegistry(\n customTools: readonly RegisteredCustomTool[]\n): Record<string, McpToolHandler> {\n const handlers: Record<string, McpToolHandler> = {};\n for (const customTool of customTools) {\n handlers[customTool.fullName] = contractToHandler(\n customTool.contract,\n async (params) =>\n invokeRegisteredCustomTool(customTool.fullName, params as JsonObject, {\n source: \"mcp\",\n })\n );\n }\n return handlers;\n}\n\nexport function createLucernMcpServer(options?: {\n apiKey?: string;\n sessionToken?: string;\n baseUrl?: string;\n fetchImpl?: typeof fetch;\n toolExecutor?: McpToolExecutor;\n observationStore?: McpObservationStore;\n onObservationIngested?: (topicId: string) => Promise<void> | void;\n transportKind?: ToolExecutionTransportKind;\n authMode?: ToolExecutionAuthMode;\n onEnvelope?: (envelope: ToolExecutionEnvelope) => Promise<void> | void;\n onAuditEvent?: (\n event: ToolExecutionAuditEvent\n ) => Promise<void> | void;\n additionalTools?: readonly AdditionalMcpTool[];\n includeInternalTools?: boolean;\n}): {\n server: McpServerRuntime;\n resources: readonly McpResourceDescriptor[];\n tools: readonly McpToolDescriptor[];\n authErrorCodes: readonly string[];\n rateLimitSignals: readonly string[];\n handlers: Record<string, McpToolHandler>;\n implementedToolNames: ToolName[];\n unimplementedToolNames: ToolName[];\n} {\n const server = createMcpRuntime();\n const handlerContext: McpHandlerContext = {\n sdkConfig: createSdkConfig(options),\n observationStore: options?.observationStore ?? new McpObservationStore(),\n onObservationIngested: options?.onObservationIngested,\n };\n\n const platformHandlers = createMcpHandlerRegistry(handlerContext);\n const registeredCustomTools = listRegisteredCustomTools();\n const customHandlers = createCustomMcpHandlerRegistry(registeredCustomTools);\n const additionalTools = options?.additionalTools ?? [];\n const additionalHandlers = Object.fromEntries(\n additionalTools.map((tool) => [tool.name, tool.handler])\n );\n const baseHandlers = {\n ...platformHandlers,\n ...customHandlers,\n ...additionalHandlers,\n };\n\n const platformToolNames = LUCERN_MCP_TOOL_NAMES.filter(\n (toolName) =>\n options?.includeInternalTools === true ||\n mcpExposureFor(toolName) === \"public\"\n );\n\n const platformTools: McpToolDescriptor[] = platformToolNames.map(\n (toolName) => {\n const contract = withManifestVisibility(\n toolName,\n MCP_TOOL_CONTRACTS[toolName]\n );\n return {\n name: toolName,\n requiredScopes: deriveToolScopes(contract),\n contract,\n implemented: Boolean(platformHandlers[toolName]),\n source: \"platform\",\n };\n }\n );\n\n const customTools: McpToolDescriptor[] = registeredCustomTools.map(\n (customTool) => ({\n name: customTool.fullName,\n requiredScopes: deriveCustomToolScopes(customTool),\n contract: customTool.contract,\n implemented: true,\n source: \"custom\",\n })\n );\n\n const injectedTools: McpToolDescriptor[] = additionalTools\n .filter(\n (tool) =>\n options?.includeInternalTools === true || tool.contract.internal !== true\n )\n .map((tool) => ({\n name: tool.name,\n requiredScopes: tool.requiredScopes,\n contract: tool.contract,\n implemented: tool.implemented ?? true,\n source: tool.source ?? \"custom\",\n }));\n\n const toolMap = new Map<ToolName, McpToolDescriptor>();\n for (const tool of [...platformTools, ...customTools, ...injectedTools]) {\n toolMap.set(tool.name, tool);\n }\n const tools = [...toolMap.values()];\n const transportKind = options?.transportKind ?? \"stdio\";\n const authMode = detectAuthMode(options);\n const handlers = Object.fromEntries(\n tools.map((tool) => {\n const baseHandler =\n baseHandlers[tool.name] ?? createNotImplementedHandler(tool.name);\n\n const wrappedHandler: McpToolHandler = async (params, contract) => {\n const normalizedParams = normalizeToolExecutionParams(params);\n const envelope = createToolExecutionEnvelope({\n toolName: tool.name,\n params: normalizedParams,\n contract,\n transportKind,\n authMode,\n requiredScopes: tool.requiredScopes,\n });\n\n return executeToolWithEnvelope({\n envelope,\n execute: async () => {\n if (options?.toolExecutor) {\n try {\n const execution = await options.toolExecutor(\n tool.name,\n normalizedParams,\n contract\n );\n return normalizeExecutorResult(execution);\n } catch (error) {\n return toMcpError(error);\n }\n }\n\n return executeWithHandler(\n tool.name,\n baseHandler,\n contract,\n normalizedParams\n );\n },\n hooks: {\n onEnvelope: options?.onEnvelope,\n onAuditEvent: options?.onAuditEvent,\n },\n });\n };\n\n return [tool.name, wrappedHandler];\n })\n ) as Record<string, McpToolHandler>;\n\n const implementedToolNames = tools\n .filter((tool) => tool.implemented)\n .map((tool) => tool.name);\n const unimplementedToolNames = tools\n .filter((tool) => !tool.implemented)\n .map((tool) => tool.name);\n\n for (const resource of MCP_RESOURCE_SCOPES) {\n server.registerResource?.(resource.uri, async () => ({\n uri: resource.uri,\n requiredScopes: resource.requiredScopes,\n errors: MCP_AUTH_ERROR_CODES,\n }));\n }\n\n for (const tool of tools) {\n const handler = handlers[tool.name] ?? createNotImplementedHandler(tool.name);\n server.registerTool?.(tool.name, async (params) => {\n return handler(params, tool.contract);\n });\n }\n\n return {\n server,\n resources: MCP_RESOURCE_SCOPES,\n tools,\n authErrorCodes: MCP_AUTH_ERROR_CODES,\n rateLimitSignals: MCP_RATE_LIMIT_SIGNALS,\n handlers,\n implementedToolNames,\n unimplementedToolNames,\n };\n}\n","import type { McpParameterDef, McpToolContract } from \"@lucern/sdk\";\nimport {\n McpServer,\n ResourceTemplate,\n} from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\nimport {\n buildLucernObserverPrompt,\n LUCERN_AGENT_MD,\n LUCERN_OBSERVER_PROMPT_NAME,\n} from \"./agentInstructions\";\nimport type {\n ToolExecutionAuditEvent,\n ToolExecutionAuthMode,\n ToolExecutionEnvelope,\n ToolExecutionTransportKind,\n} from \"./execution\";\nimport { McpObservationStore } from \"./observation-store\";\nimport {\n type AdditionalMcpTool,\n createLucernMcpServer,\n type LUCERN_MCP_RESOURCE_URIS,\n} from \"./server\";\n\ntype ResourceUri = (typeof LUCERN_MCP_RESOURCE_URIS)[number];\ntype StandaloneRuntime = ReturnType<typeof createLucernMcpServer>;\n\nconst OBSERVATION_RESOURCE_TEMPLATE =\n \"lucern://observations/topic/{topicId}\";\nconst OBSERVATION_SEARCH_RESOURCE_TEMPLATE =\n \"lucern://observations/search/{topicId}/{query}\";\nconst OBSERVATION_CONTEXT_RESOURCE_TEMPLATE =\n \"lucern://context/topic/{topicId}\";\nconst OBSERVATION_CONTEXT_SEARCH_RESOURCE_TEMPLATE =\n \"lucern://context/search/{topicId}/{query}\";\n\nexport type StandaloneMcpServerOptions = {\n apiKey?: string;\n sessionToken?: string;\n baseUrl?: string;\n fetchImpl?: typeof fetch;\n transportKind?: ToolExecutionTransportKind;\n authMode?: ToolExecutionAuthMode;\n onEnvelope?: (envelope: ToolExecutionEnvelope) => Promise<void> | void;\n onAuditEvent?: (\n event: ToolExecutionAuditEvent\n ) => Promise<void> | void;\n additionalTools?: readonly AdditionalMcpTool[];\n includeInternalTools?: boolean;\n};\n\nfunction buildToolInputShape(\n contract: McpToolContract\n): Record<string, z.ZodTypeAny> {\n const required = new Set(contract.required);\n const shape: Record<string, z.ZodTypeAny> = {};\n\n for (const [key, definition] of Object.entries(contract.parameters)) {\n const isRequired = required.has(key);\n let schema: z.ZodTypeAny = toZodSchema(definition);\n if (!isRequired) {\n schema = schema.optional();\n }\n shape[key] = schema;\n }\n\n return shape;\n}\n\nfunction toZodSchema(parameter: McpParameterDef): z.ZodTypeAny {\n if (parameter.type === \"string\") {\n if (parameter.enum && parameter.enum.length > 0) {\n return z.enum(parameter.enum as [string, ...string[]]);\n }\n return z.string();\n }\n if (parameter.type === \"number\") {\n return z.number();\n }\n if (parameter.type === \"boolean\") {\n return z.boolean();\n }\n if (parameter.type === \"array\") {\n return z.array(z.unknown());\n }\n return z.record(z.string(), z.unknown());\n}\n\nfunction resourceName(uri: string): string {\n return uri\n .replace(\"lucern://\", \"lucern-\")\n .replace(/[{}]/g, \"\")\n .replace(/[^a-zA-Z0-9]+/g, \"-\")\n .replace(/-+/g, \"-\")\n .replace(/^-|-$/g, \"\");\n}\n\nfunction readTemplateVar(\n variables: Record<string, unknown>,\n key: string\n): string | undefined {\n const value = variables[key];\n if (typeof value === \"string\") {\n return value;\n }\n if (Array.isArray(value) && typeof value[0] === \"string\") {\n return value[0];\n }\n return;\n}\n\nasync function notifyResourceUpdated(\n server: McpServer,\n uri: string\n): Promise<void> {\n try {\n await server.server.sendResourceUpdated({ uri });\n } catch {\n // Notification is best-effort for disconnected clients.\n }\n}\n\nfunction registerResources(\n server: McpServer,\n runtime: StandaloneRuntime,\n observationStore: McpObservationStore\n): {\n resourceUris: string[];\n notifyObservationChanged: (topicId: string) => Promise<void>;\n} {\n const resourceUris: string[] = [];\n\n for (const resource of runtime.resources) {\n resourceUris.push(resource.uri);\n server.registerResource(\n resourceName(resource.uri),\n resource.uri as ResourceUri,\n {\n description: `Lucern resource: ${resource.uri}`,\n mimeType: \"application/json\",\n },\n async () => ({\n contents: [\n {\n uri: resource.uri,\n mimeType: \"application/json\",\n text: JSON.stringify(\n {\n uri: resource.uri,\n requiredScopes: resource.requiredScopes,\n authErrorCodes: runtime.authErrorCodes,\n rateLimitSignals: runtime.rateLimitSignals,\n },\n null,\n 2\n ),\n },\n ],\n })\n );\n }\n\n resourceUris.push(\"lucern://instructions\");\n server.registerResource(\n \"lucern-instructions\",\n \"lucern://instructions\",\n {\n description: \"Lucern MCP behavioral instructions\",\n mimeType: \"text/markdown\",\n },\n async () => ({\n contents: [\n {\n uri: \"lucern://instructions\",\n mimeType: \"text/markdown\",\n text: LUCERN_AGENT_MD,\n },\n ],\n })\n );\n\n resourceUris.push(OBSERVATION_RESOURCE_TEMPLATE);\n server.registerResource(\n \"lucern-observations-topic\",\n new ResourceTemplate(OBSERVATION_RESOURCE_TEMPLATE, { list: undefined }),\n {\n description: \"Observation stream for a topic, sorted by recency.\",\n mimeType: \"application/json\",\n },\n async (_uri, variables) => {\n const topicId = readTemplateVar(\n variables as Record<string, unknown>,\n \"topicId\"\n );\n const records = topicId ? observationStore.list(topicId, 25) : [];\n return {\n contents: [\n {\n uri: `lucern://observations/topic/${topicId ?? \"unknown\"}`,\n mimeType: \"application/json\",\n text: JSON.stringify(\n {\n topicId: topicId ?? null,\n observations: records,\n total: records.length,\n requiredScopes: [\"graph:read\"],\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n );\n\n resourceUris.push(OBSERVATION_SEARCH_RESOURCE_TEMPLATE);\n server.registerResource(\n \"lucern-observations-search\",\n new ResourceTemplate(OBSERVATION_SEARCH_RESOURCE_TEMPLATE, {\n list: undefined,\n }),\n {\n description:\n \"Semantic-style search over observation stream for topic context recovery.\",\n mimeType: \"application/json\",\n },\n async (_uri, variables) => {\n const values = variables as Record<string, unknown>;\n const topicId = readTemplateVar(values, \"topicId\");\n const query = readTemplateVar(values, \"query\");\n const matches =\n topicId && query ? observationStore.search(topicId, query, 25) : [];\n return {\n contents: [\n {\n uri: `lucern://observations/search/${topicId ?? \"unknown\"}/${query ?? \"none\"}`,\n mimeType: \"application/json\",\n text: JSON.stringify(\n {\n topicId: topicId ?? null,\n query: query ?? null,\n matches,\n requiredScopes: [\"graph:read\"],\n },\n null,\n 2\n ),\n },\n ],\n };\n }\n );\n\n resourceUris.push(OBSERVATION_CONTEXT_RESOURCE_TEMPLATE);\n server.registerResource(\n \"lucern-context-topic\",\n new ResourceTemplate(OBSERVATION_CONTEXT_RESOURCE_TEMPLATE, {\n list: undefined,\n }),\n {\n description:\n \"Context injection payload for a topic using recent observations.\",\n mimeType: \"application/json\",\n },\n async (_uri, variables) => {\n const topicId = readTemplateVar(\n variables as Record<string, unknown>,\n \"topicId\"\n );\n const context = topicId\n ? observationStore.getContext({ topicId, limit: 12 })\n : observationStore.getContext({ topicId: \"unknown\", limit: 12 });\n return {\n contents: [\n {\n uri: `lucern://context/topic/${topicId ?? \"unknown\"}`,\n mimeType: \"application/json\",\n text: JSON.stringify(context, null, 2),\n },\n ],\n };\n }\n );\n\n resourceUris.push(OBSERVATION_CONTEXT_SEARCH_RESOURCE_TEMPLATE);\n server.registerResource(\n \"lucern-context-search\",\n new ResourceTemplate(OBSERVATION_CONTEXT_SEARCH_RESOURCE_TEMPLATE, {\n list: undefined,\n }),\n {\n description:\n \"Context injection payload with semantic matches for a query.\",\n mimeType: \"application/json\",\n },\n async (_uri, variables) => {\n const values = variables as Record<string, unknown>;\n const topicId = readTemplateVar(values, \"topicId\");\n const query = readTemplateVar(values, \"query\");\n const context = observationStore.getContext({\n topicId: topicId ?? \"unknown\",\n query,\n limit: 12,\n });\n return {\n contents: [\n {\n uri: `lucern://context/search/${topicId ?? \"unknown\"}/${query ?? \"none\"}`,\n mimeType: \"application/json\",\n text: JSON.stringify(context, null, 2),\n },\n ],\n };\n }\n );\n\n const notifyObservationChanged = async (topicId: string): Promise<void> => {\n const encoded = encodeURIComponent(topicId);\n await notifyResourceUpdated(\n server,\n `lucern://observations/topic/${encoded}`\n );\n await notifyResourceUpdated(server, `lucern://context/topic/${encoded}`);\n try {\n await server.server.sendResourceListChanged();\n } catch {\n // Best-effort only.\n }\n };\n\n return { resourceUris, notifyObservationChanged };\n}\n\nfunction registerPrompts(server: McpServer): string[] {\n server.registerPrompt(\n LUCERN_OBSERVER_PROMPT_NAME,\n {\n description:\n \"Observer instructions for identifying and proposing epistemic graph updates.\",\n argsSchema: {\n topicId: z.string().optional(),\n },\n },\n async (args) => ({\n description:\n \"Guidance prompt for reasoning-trace observation and confirmation-first mutations.\",\n messages: [\n {\n role: \"assistant\",\n content: {\n type: \"text\",\n text: buildLucernObserverPrompt(args.topicId),\n },\n },\n ],\n })\n );\n\n return [LUCERN_OBSERVER_PROMPT_NAME];\n}\n\nfunction registerTools(server: McpServer, runtime: StandaloneRuntime): void {\n for (const tool of runtime.tools) {\n const shape = buildToolInputShape(tool.contract);\n const handler = runtime.handlers[tool.name];\n\n server.registerTool(\n tool.name,\n {\n description: tool.contract.description,\n inputSchema: shape,\n },\n async (args) => {\n return handler(args as Record<string, unknown>, tool.contract);\n }\n );\n }\n}\n\nexport function createLucernStandaloneMcpServer(\n options?: StandaloneMcpServerOptions\n): {\n server: McpServer;\n runtime: StandaloneRuntime;\n resourceUris: string[];\n promptNames: string[];\n} {\n const observationStore = new McpObservationStore();\n let notifyObservationChanged: (topicId: string) => Promise<void> =\n async () => {};\n const runtime = createLucernMcpServer({\n ...options,\n observationStore,\n onObservationIngested: async (topicId) => {\n await notifyObservationChanged(topicId);\n },\n });\n const server = new McpServer({\n name: \"lucern-mcp\",\n version: \"0.2.0-alpha.2\",\n });\n\n registerTools(server, runtime);\n const resources = registerResources(server, runtime, observationStore);\n notifyObservationChanged = resources.notifyObservationChanged;\n const resourceUris = resources.resourceUris;\n const promptNames = registerPrompts(server);\n\n return {\n server,\n runtime,\n resourceUris,\n promptNames,\n };\n}\n\nexport async function startLucernMcpStdioServer(\n options?: StandaloneMcpServerOptions\n): Promise<{\n server: McpServer;\n runtime: StandaloneRuntime;\n resourceUris: string[];\n promptNames: string[];\n}> {\n const packageServer = createLucernStandaloneMcpServer({\n ...options,\n transportKind: options?.transportKind ?? \"stdio\",\n });\n const transport = new StdioServerTransport();\n await packageServer.server.connect(transport);\n return packageServer;\n}\n","import { WebStandardStreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js\";\nimport { isServicePrincipalKey, isTenantApiKey } from \"./credentials\";\nimport { createLucernStandaloneMcpServer } from \"./standalone\";\nimport type { ToolExecutionAuthMode } from \"./execution\";\n\nconst ALLOW_METHODS = \"GET, POST, DELETE, OPTIONS\";\nconst ALLOW_HEADERS = [\n \"Authorization\",\n \"Content-Type\",\n \"Mcp-Session-Id\",\n \"MCP-Protocol-Version\",\n \"x-lucern-environment\",\n \"x-lucern-key\",\n \"x-lucern-session-token\",\n].join(\", \");\n\ntype HostedCredential = {\n apiKey?: string;\n sessionToken?: string;\n authMode: ToolExecutionAuthMode;\n};\n\nfunction withCorsHeaders(response: Response): Response {\n const headers = new Headers(response.headers);\n headers.set(\"Access-Control-Allow-Origin\", \"*\");\n headers.set(\"Access-Control-Allow-Methods\", ALLOW_METHODS);\n headers.set(\"Access-Control-Allow-Headers\", ALLOW_HEADERS);\n headers.set(\"Access-Control-Expose-Headers\", \"Mcp-Session-Id\");\n headers.set(\"Access-Control-Max-Age\", \"86400\");\n headers.set(\"Allow\", ALLOW_METHODS);\n headers.append(\"Vary\", \"Origin\");\n\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n}\n\nfunction jsonRpcErrorResponse(args: {\n status: number;\n code: number;\n message: string;\n}): Response {\n return withCorsHeaders(\n Response.json(\n {\n jsonrpc: \"2.0\",\n error: {\n code: args.code,\n message: args.message,\n },\n id: null,\n },\n { status: args.status }\n )\n );\n}\n\nfunction readBearerToken(request: Request): string | undefined {\n const authorization = request.headers.get(\"authorization\");\n if (!authorization) {\n return;\n }\n const [scheme, token] = authorization.split(/\\s+/, 2);\n if (!scheme || !token || scheme.toLowerCase() !== \"bearer\") {\n return;\n }\n return token.trim();\n}\n\nfunction normalizeBaseUrl(value: string): string {\n return value.replace(/\\/+$/u, \"\");\n}\n\nfunction resolveHostedPlatformBaseUrl(request: Request): string | undefined {\n const explicit =\n process.env.LUCERN_BASE_URL?.trim() ||\n process.env.NEXT_PUBLIC_APP_URL?.trim() ||\n process.env.LUCERN_API_BASE_URL?.trim();\n if (explicit) {\n return normalizeBaseUrl(explicit);\n }\n return normalizeBaseUrl(new URL(request.url).origin);\n}\n\nfunction resolveAuthMode(apiKey: string | undefined): ToolExecutionAuthMode {\n if (!apiKey) {\n return \"unknown\";\n }\n if (isTenantApiKey(apiKey)) {\n return \"tenant_api_key\";\n }\n if (isServicePrincipalKey(apiKey)) {\n return \"service_principal\";\n }\n return \"unknown\";\n}\n\nfunction resolveHostedCredential(request: Request): HostedCredential {\n const sessionToken = request.headers.get(\"x-lucern-session-token\")?.trim();\n if (sessionToken) {\n return {\n sessionToken,\n authMode: \"session_token\",\n };\n }\n\n const directKey = request.headers.get(\"x-lucern-key\")?.trim();\n const bearer = readBearerToken(request);\n const apiKey = directKey || (bearer?.startsWith(\"luc_\") ? bearer : undefined);\n\n return {\n apiKey,\n authMode: resolveAuthMode(apiKey),\n };\n}\n\nexport async function handleHostedMcpRequest(\n request: Request\n): Promise<Response> {\n if (request.method === \"OPTIONS\") {\n return withCorsHeaders(new Response(null, { status: 204 }));\n }\n\n const credential = resolveHostedCredential(request);\n if (!credential.apiKey && !credential.sessionToken) {\n return jsonRpcErrorResponse({\n status: 401,\n code: -32_001,\n message:\n \"Missing Lucern credential. Provide x-lucern-key, x-lucern-session-token, or Bearer luc_ token.\",\n });\n }\n\n const server = createLucernStandaloneMcpServer({\n apiKey: credential.apiKey,\n sessionToken: credential.sessionToken,\n baseUrl: resolveHostedPlatformBaseUrl(request),\n transportKind: \"hosted\",\n authMode: credential.authMode,\n });\n const transport = new WebStandardStreamableHTTPServerTransport({\n sessionIdGenerator: undefined,\n enableJsonResponse: true,\n });\n\n try {\n await server.server.connect(transport);\n const response = await transport.handleRequest(request);\n return withCorsHeaders(response);\n } catch (error) {\n return jsonRpcErrorResponse({\n status: 500,\n code: -32_603,\n message:\n error instanceof Error ? error.message : \"Internal server error.\",\n });\n } finally {\n await transport.close().catch(() => {});\n await server.server.close().catch(() => {});\n }\n}\n"]}
|