@lucern/sdk 0.2.0-alpha.9 → 0.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/adminClient.d.ts +15 -9
- package/dist/adminClient.js.map +1 -1
- package/dist/audience/index.d.ts +38 -0
- package/dist/audience/index.js +110 -0
- package/dist/audience/index.js.map +1 -0
- package/dist/beliefs/index.d.ts +463 -0
- package/dist/beliefs/index.js +6694 -0
- package/dist/beliefs/index.js.map +1 -0
- package/dist/beliefs/lifecycle.d.ts +24 -0
- package/dist/beliefs/lifecycle.js +98 -0
- package/dist/beliefs/lifecycle.js.map +1 -0
- package/dist/beliefsClient.d.ts +91 -12
- package/dist/beliefsClient.js +176 -7
- package/dist/beliefsClient.js.map +1 -1
- package/dist/client-DAuKnDlx.d.ts +2547 -0
- package/dist/client.d.ts +31 -2377
- package/dist/client.js +783 -245
- package/dist/client.js.map +1 -1
- package/dist/contracts/api-enums.contract.d.ts +1 -1
- package/dist/contracts/api-enums.contract.js +8 -2
- package/dist/contracts/api-enums.contract.js.map +1 -1
- package/dist/contracts/index.d.ts +4 -2
- package/dist/contracts/index.js +118 -4282
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/mcpTools.d.ts +2 -1
- package/dist/contracts/mcpTools.js +22 -2981
- package/dist/contracts/mcpTools.js.map +1 -1
- package/dist/contracts/sdk-tools.contract.d.ts +1 -2
- package/dist/contracts/sdk-tools.contract.js +1 -4132
- package/dist/contracts/sdk-tools.contract.js.map +1 -1
- package/dist/contracts/sdkTools.d.ts +1 -2
- package/dist/contracts/sdkTools.js +20 -4127
- package/dist/contracts/sdkTools.js.map +1 -1
- package/dist/contracts/tool-contracts.d.ts +1 -0
- package/dist/contracts/tool-contracts.js +3 -0
- package/dist/contracts/tool-contracts.js.map +1 -0
- package/dist/contradictions/index.d.ts +156 -0
- package/dist/contradictions/index.js +6688 -0
- package/dist/contradictions/index.js.map +1 -0
- package/dist/customTools.d.ts +1 -1
- package/dist/decisions/index.d.ts +66 -0
- package/dist/decisions/index.js +6690 -0
- package/dist/decisions/index.js.map +1 -0
- package/dist/edges/index.d.ts +202 -0
- package/dist/edges/index.js +6689 -0
- package/dist/edges/index.js.map +1 -0
- package/dist/events.js +7 -5
- package/dist/events.js.map +1 -1
- package/dist/evidence/index.d.ts +293 -0
- package/dist/evidence/index.js +6689 -0
- package/dist/evidence/index.js.map +1 -0
- package/dist/evidenceClient.d.ts +119 -0
- package/dist/evidenceClient.js +350 -0
- package/dist/evidenceClient.js.map +1 -0
- package/dist/gatewayFacades.d.ts +8 -10
- package/dist/gatewayFacades.js +54 -1
- package/dist/gatewayFacades.js.map +1 -1
- package/dist/identityClient.d.ts +3 -3
- package/dist/identityClient.js.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.js +1092 -3294
- package/dist/index.js.map +1 -1
- package/dist/lenses/index.d.ts +192 -0
- package/dist/lenses/index.js +6688 -0
- package/dist/lenses/index.js.map +1 -0
- package/dist/nodes/index.d.ts +61 -0
- package/dist/nodes/index.js +6690 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/ontologies/index.d.ts +179 -0
- package/dist/ontologies/index.js +6691 -0
- package/dist/ontologies/index.js.map +1 -0
- package/dist/opinion.d.ts +11 -0
- package/dist/opinion.js +35 -0
- package/dist/opinion.js.map +1 -0
- package/dist/questions/index.d.ts +295 -0
- package/dist/questions/index.js +6691 -0
- package/dist/questions/index.js.map +1 -0
- package/dist/sdk-tools.contract-B4c1Zr1o.d.ts +22 -0
- package/dist/sourcesClient.d.ts +24 -0
- package/dist/{mcpParityClient.js → sourcesClient.js} +15 -192
- package/dist/sourcesClient.js.map +1 -0
- package/dist/tool-contracts-BUiL9P6z.d.ts +22 -0
- package/dist/topics/index.d.ts +66 -0
- package/dist/topics/index.js +6689 -0
- package/dist/topics/index.js.map +1 -0
- package/dist/types.d.ts +20 -1
- package/dist/worktrees/index.d.ts +208 -0
- package/dist/worktrees/index.js +6691 -0
- package/dist/worktrees/index.js.map +1 -0
- package/package.json +55 -3
- package/dist/contracts/mcp-tools.contract.d.ts +0 -1
- package/dist/contracts/mcp-tools.contract.js +0 -2986
- package/dist/contracts/mcp-tools.contract.js.map +0 -1
- package/dist/mcpParityClient.d.ts +0 -74
- package/dist/mcpParityClient.js.map +0 -1
- package/dist/mcpParitySurface.d.ts +0 -12
- package/dist/mcpParitySurface.js +0 -65
- package/dist/mcpParitySurface.js.map +0 -1
- package/dist/mcpTools-DPZxowDX.d.ts +0 -254
- package/dist/sdkTools-CwXJDACb.d.ts +0 -150
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/coreClient.ts","../../src/sdkSurface.ts","../../src/adminClient.ts","../../src/answersClient.ts","../../src/audiencesClient.ts","../../src/auditClient.ts","../../src/opinion.ts","../../src/beliefsClient.ts","../../src/sourcesClient.ts","../../src/evidenceClient.ts","../../src/customTools.ts","../../src/ontologyClient.ts","../../src/graphClient.ts","../../src/identityClient.ts","../../src/topicsClient.ts","../../src/gatewayFacades.ts","../../src/decisionsClient.ts","../../src/contextClient.ts","../../src/harnessClient.ts","../../src/learningClient.ts","../../src/generated/functionSurface.ts","../../src/packsClient.ts","../../src/policyClient.ts","../../src/reportsClient.ts","../../src/schemaClient.ts","../../src/version.ts","../../src/workflowClient.ts","../../src/client.ts","../../src/decisions/index.ts"],"names":["asRecord","clamp01","requireBaseRate","cleanString","serialized","config","createDecisionsClient"],"mappings":"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","file":"index.js","sourcesContent":["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","export type Opinion = {\n b: number;\n d: number;\n u: number;\n a: number;\n};\n\nfunction clamp01(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n return Math.max(0, Math.min(1, value));\n}\n\nfunction vacuous(baseRate: number = 0.5): Opinion {\n return { b: 0, d: 0, u: 1, a: clamp01(baseRate) };\n}\n\nfunction dogmatic(probability: number, baseRate: number = 0.5): Opinion {\n const p = clamp01(probability);\n return { b: p, d: 1 - p, u: 0, a: clamp01(baseRate) };\n}\n\nexport function opinionFromBaseRate(probability: number): Opinion {\n return vacuous(clamp01(probability));\n}\n\nexport function opinionFromDogmatic(\n probability: number,\n baseRate: number = 0.5\n): Opinion {\n return dogmatic(clamp01(probability), clamp01(baseRate));\n}\n\nexport function opinionFromProjected(\n probability: number,\n uncertainty: number,\n baseRate: number = 0.5\n): Opinion {\n const p = clamp01(probability);\n const u = clamp01(uncertainty);\n const remainingMass = 1 - u;\n return {\n b: p * remainingMass,\n d: (1 - p) * remainingMass,\n u,\n a: clamp01(baseRate),\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport {\n opinionFromBaseRate,\n opinionFromDogmatic,\n opinionFromProjected,\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?: { kind: \"evidence\" | \"worktree\"; id: string };\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 ) {\n const projected = clamp01(readNumber(record.confidence) ?? 0);\n return {\n b: projected,\n d: 1 - projected,\n u: 0,\n a: 0.5,\n };\n }\n\n return {\n b: clamp01(rawBelief ?? 0),\n d: clamp01(rawDisbelief ?? 0),\n u: clamp01(rawUncertainty ?? 0),\n a: clamp01(rawBaseRate ?? 0.5),\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 triggeringWorktreeId = readString(record.triggeringWorktreeId);\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: readString(record.trigger) ?? \"manual\",\n ...(triggeringEvidenceId\n ? {\n triggeringRef: {\n kind: \"evidence\" as const,\n id: triggeringEvidenceId,\n },\n }\n : triggeringWorktreeId\n ? {\n triggeringRef: {\n kind: \"worktree\" as const,\n id: triggeringWorktreeId,\n },\n }\n : {}),\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 but must carry a prior via `baseRate`, which is\n * stored as the vacuous opinion `(0, 0, 1, a)` at creation time.\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 | \"manual\"\n | \"decay\"\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 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\n/**\n * @deprecated Prefer passing `opinion` directly or call an `opinionFrom*`\n * helper before invoking `modulateConfidence`.\n */\nexport type ModulateConfidenceScalarInput =\n | (ModulateConfidenceInputBase & {\n confidence: number;\n interpretation: \"base_rate\";\n })\n | (ModulateConfidenceInputBase & {\n confidence: number;\n interpretation: \"dogmatic\";\n baseRate?: number;\n })\n | (ModulateConfidenceInputBase & {\n confidence: number;\n interpretation: \"projected\";\n uncertainty: number;\n baseRate?: number;\n });\n\nexport type ModulateConfidenceInput =\n | ModulateConfidenceOpinionInput\n | ModulateConfidenceScalarInput;\n\nfunction normalizeModulateConfidenceInput(\n input: ModulateConfidenceInput\n): JsonObject {\n const opinion =\n \"opinion\" in input\n ? input.opinion\n : input.interpretation === \"base_rate\"\n ? opinionFromBaseRate(input.confidence)\n : input.interpretation === \"dogmatic\"\n ? opinionFromDogmatic(input.confidence, input.baseRate)\n : opinionFromProjected(\n input.confidence,\n input.uncertainty,\n input.baseRate\n );\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 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 requireBaseRate(value: unknown): number {\n const baseRate = readNumber(value);\n if (baseRate === undefined) {\n throw new Error(\"baseRate is required for belief creation.\");\n }\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return baseRate;\n }\n const modulateConfidence: {\n (\n beliefId: string,\n input: ModulateConfidenceOpinionInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<ModulateConfidenceResponse>>;\n (\n beliefId: string,\n input: ModulateConfidenceScalarInput,\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 = requireBaseRate(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 {\n opinionFromBaseRate,\n opinionFromDogmatic,\n opinionFromProjected,\n} from \"./opinion\";\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 =\n \"opinion\" in input\n ? input.opinion\n : input.interpretation === \"base_rate\"\n ? opinionFromBaseRate(input.confidence)\n : input.interpretation === \"dogmatic\"\n ? opinionFromDogmatic(input.confidence, input.baseRate)\n : opinionFromProjected(\n input.confidence,\n input.uncertainty,\n input.baseRate\n );\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 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 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 executionOrder?: 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 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 track?: string;\n trackPosition?: number;\n executionBand?: number;\n executionOrder?: 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 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 track: input.track,\n trackPosition: input.trackPosition,\n executionBand: input.executionBand,\n executionOrder: input.executionOrder,\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.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_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 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 executionOrder?: 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 track?: string;\n executionBand?: number;\n limit?: number;\n } & TopicIdentifierInput) {\n const normalized = normalizeTopicQuery(query);\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees${toQueryString({\n ...normalized,\n track: query.track,\n executionBand: query.executionBand,\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 track?: string;\n executionBand?: number;\n limit?: number;\n } = {}) {\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees${toQueryString({\n status: query.status,\n track: query.track,\n executionBand: query.executionBand,\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.tracks &&\n typeof record.tracks === \"object\" &&\n !Array.isArray(record.tracks)\n ? { tracks: record.tracks as Record<string, number> }\n : {}),\n ...(record.bands &&\n typeof record.bands === \"object\" &&\n !Array.isArray(record.bands)\n ? { bands: record.bands as Record<string, number> }\n : {}),\n } as ListWorktreesResponse;\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 if (typeof args.baseRate !== \"number\" || !Number.isFinite(args.baseRate)) {\n throw new Error(\"baseRate is required.\");\n }\n if (args.baseRate < 0 || args.baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return args.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 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 metadata = {\n ...(args.metadata ?? {}),\n ...(args.supports?.reasoning\n ? { rationale: args.supports.reasoning }\n : {}),\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 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 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 executionOrder: input.executionOrder,\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 executionOrder: input.executionOrder,\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 track: typeof input.track === \"string\" ? input.track : undefined,\n trackPosition:\n typeof input.trackPosition === \"number\" ? input.trackPosition : undefined,\n executionBand:\n typeof input.executionBand === \"number\" ? input.executionBand : undefined,\n executionOrder:\n typeof input.executionOrder === \"number\" ? input.executionOrder : 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","import { createLucernClient, type LucernClientConfig } from \"../client\";\n\nexport * as methodSchemas from \"@lucern/contracts/sdk-methods.contract\";\nexport * as toolSchemas from \"@lucern/contracts/tool-contracts\";\n\nexport type DecisionsClientConfig = LucernClientConfig;\nexport type DecisionsClient = ReturnType<typeof createDecisionsClient>;\n\nexport function createDecisionsClient(config: DecisionsClientConfig = {}) {\n const judgments = createLucernClient(config).judgments;\n\n return {\n createDecision: judgments.create,\n getDecision: judgments.get,\n listDecisions: judgments.list,\n recordDecisionOutcome: judgments.recordOutcome,\n updateDecisionOutcome: judgments.updateOutcome,\n getDecisionReadiness: judgments.readiness,\n getDecisionCalibration: judgments.calibration,\n listPendingDecisionOutcomeReviews: judgments.pendingOutcomeReview,\n raw: judgments,\n };\n}\n"]}
|