@lucern/sdk 1.0.8 → 1.0.10
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/CHANGELOG.md +6 -0
- package/dist/beliefs/index.js +3 -1
- package/dist/beliefs/index.js.map +1 -1
- package/dist/client.js +3 -1
- package/dist/client.js.map +1 -1
- package/dist/contradictions/index.js +3 -1
- package/dist/contradictions/index.js.map +1 -1
- package/dist/decisions/index.js +3 -1
- package/dist/decisions/index.js.map +1 -1
- package/dist/edges/index.js +3 -1
- package/dist/edges/index.js.map +1 -1
- package/dist/embeddingsClient.d.ts +2 -1
- package/dist/embeddingsClient.js +2 -0
- package/dist/embeddingsClient.js.map +1 -1
- package/dist/evidence/index.js +3 -1
- package/dist/evidence/index.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lenses/index.js +3 -1
- package/dist/lenses/index.js.map +1 -1
- package/dist/nodes/index.js +3 -1
- package/dist/nodes/index.js.map +1 -1
- package/dist/ontologies/index.js +3 -1
- package/dist/ontologies/index.js.map +1 -1
- package/dist/proof-attestation.json +1 -1
- package/dist/questions/index.js +3 -1
- package/dist/questions/index.js.map +1 -1
- package/dist/topics/index.js +3 -1
- package/dist/topics/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/worktrees/index.js +3 -1
- package/dist/worktrees/index.js.map +1 -1
- package/package.json +5 -5
package/dist/nodes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/authContext.ts","../../src/coreClient.ts","../../src/sdkSurface.ts","../../src/adminClient.ts","../../src/boundaryClientSurface.ts","../../src/control-plane.ts","../../src/identityClient.ts","../../src/accessControl.ts","../../src/answersClient.ts","../../src/audiencesClient.ts","../../src/auditClient.ts","../../src/authDeviceClient.ts","../../src/beliefsClient.ts","../../src/clientGraphNamespaces.ts","../../src/clientKnowledgeNamespaces.ts","../../src/clientEvidenceCompat.ts","../../src/clientHelpers.ts","../../src/customTools.ts","../../src/clientLocalHelpers.ts","../../src/clientPlatformNamespaces.ts","../../src/clientWorkflowNamespaces.ts","../../src/clientRuntime.ts","../../src/sourcesClient.ts","../../src/topicsClient.ts","../../src/graphClient.ts","../../src/ontologyClient.ts","../../src/gatewayFacades.factories.ts","../../src/gatewayFacades.ts","../../src/decisionsClient.ts","../../src/embeddingsClient.ts","../../src/contextClient.ts","../../src/eventingClient.ts","../../src/evidenceClient.ts","../../src/generated/functionSurface.ts","../../src/graphAnalysisClient.ts","../../src/graphRecommendationsClient.ts","../../src/graphStateClassifierClient.ts","../../src/harnessClient.ts","../../src/jobsClient.ts","../../src/learningClient.ts","../../src/mcpClient.ts","../../src/modelRuntimeClient.ts","../../src/ontologyLinksClient.ts","../../src/orgGraphSearchClient.ts","../../src/packsClient.ts","../../src/policyClient.ts","../../src/reportsClient.ts","../../src/schemaClient.ts","../../src/telemetryClient.ts","../../src/toolRegistryClient.ts","../../src/version.ts","../../src/workflowClient.ts","../../src/client.ts","../../src/nodes/index.ts"],"names":["principalType","responseContext","isRecord","cleanString","query","cleanStringList","requireString","body","asRecord","readString","buildBeliefsArchivePayload","buildBeliefsRefinePayload","clearRegisteredCustomTools","exposeGatewayData","listRegisteredCustomTools","randomIdempotencyKey","registerCustomTool","requireBaseRate","requireText","requireTopicId","requireTopicOrProjectId","resolveCustomToolFullName","resolveTopicId","sdkQueryString","unregisterCustomTool","config","serialized","readTopicId","assertKnownKeys","listQuery"],"mappings":"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","file":"index.js","sourcesContent":["import type {\n SessionAuthMode,\n SessionDelegationHop,\n SessionPrincipalType,\n} from \"./contracts/auth-session.contract\";\nimport type { JsonObject } from \"./types\";\n\nexport type LucernSdkAuthFailureReason =\n | \"principal_missing\"\n | \"tenant_missing\"\n | \"membership_missing\"\n | \"workspace_missing\"\n | \"clerk_alias_missing\"\n | \"clerk_alias_unrecognized\"\n | \"policy_denied\"\n | \"policy_unavailable\"\n | \"policy_unknown\";\n\nexport type PermitReadyAuthContext = {\n subject: string;\n tenant: string;\n workspace: string;\n resource?: string;\n action?: string;\n relation?: string;\n context?: JsonObject;\n};\n\nexport type LucernSdkAuthPolicyDecision = \"allow\" | \"deny\" | \"unknown\";\n\nexport type LucernSdkAuthContextInput = {\n clerkId?: string;\n principalId?: string;\n tenantId?: string;\n workspaceId?: string | null;\n principalType?: SessionPrincipalType;\n authMode?: SessionAuthMode;\n roles?: readonly string[];\n scopes?: readonly string[];\n delegationChain?: readonly SessionDelegationHop[];\n policyTraceId?: string;\n correlationId?: string;\n membershipId?: string;\n policyDecision?: LucernSdkAuthPolicyDecision;\n permit?: Partial<PermitReadyAuthContext>;\n};\n\nexport type CanonicalLucernSdkAuthContext = {\n clerkId?: string;\n principalId: string;\n tenantId: string;\n workspaceId: string;\n principalType: SessionPrincipalType;\n authMode: SessionAuthMode;\n roles: string[];\n scopes: string[];\n delegationChain: SessionDelegationHop[];\n policyTraceId?: string;\n correlationId?: string;\n membershipId?: string;\n permit: PermitReadyAuthContext;\n};\n\nexport class LucernSdkAuthContextError extends Error {\n readonly reason: LucernSdkAuthFailureReason;\n\n constructor(reason: LucernSdkAuthFailureReason, message: string) {\n super(message);\n this.name = \"LucernSdkAuthContextError\";\n this.reason = reason;\n }\n}\n\nfunction cleanString(value: string | null | undefined): string | undefined {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction cleanStringList(values: readonly string[] | undefined): string[] {\n if (!values) {\n return [];\n }\n return values\n .map((value) => value.trim())\n .filter(\n (value, index, list) =>\n value.length > 0 && list.indexOf(value) === index\n );\n}\n\nfunction requireString(\n value: string | null | undefined,\n reason: LucernSdkAuthFailureReason,\n label: string\n): string {\n const normalized = cleanString(value);\n if (!normalized) {\n throw new LucernSdkAuthContextError(\n reason,\n `Canonical Lucern SDK auth context is missing ${label}.`\n );\n }\n return normalized;\n}\n\nfunction requirePrincipalType(\n principalType: SessionPrincipalType | undefined\n): SessionPrincipalType {\n if (!principalType) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is missing principalType.\"\n );\n }\n return principalType;\n}\n\nfunction requireAuthMode(authMode: SessionAuthMode | undefined): SessionAuthMode {\n if (!authMode) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is missing authMode.\"\n );\n }\n return authMode;\n}\n\nfunction ensurePermitMatch(args: {\n field: keyof PermitReadyAuthContext;\n expected: string;\n actual?: string;\n}) {\n const actual = cleanString(args.actual);\n if (actual && actual !== args.expected) {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n `Canonical Lucern SDK auth context has conflicting Permit ${args.field}.`\n );\n }\n}\n\nexport function normalizeCanonicalLucernAuthContext(\n input: LucernSdkAuthContextInput | undefined\n): CanonicalLucernSdkAuthContext {\n if (!input) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is required.\"\n );\n }\n\n if (input.policyDecision === \"deny\") {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n \"Canonical Lucern SDK auth context carries a denied policy decision.\"\n );\n }\n\n const principalId = requireString(\n input.principalId,\n \"principal_missing\",\n \"principalId\"\n );\n const tenantId = requireString(input.tenantId, \"tenant_missing\", \"tenantId\");\n const workspaceId = requireString(\n input.workspaceId,\n \"workspace_missing\",\n \"workspaceId\"\n );\n const roles = cleanStringList(input.roles);\n const scopes = cleanStringList(input.scopes);\n const principalType = requirePrincipalType(input.principalType);\n const authMode = requireAuthMode(input.authMode);\n const roleBasedInteractiveAuth =\n authMode === \"interactive_user\" && roles.length > 0;\n if (\n roles.length === 0 ||\n (scopes.length === 0 && !roleBasedInteractiveAuth)\n ) {\n throw new LucernSdkAuthContextError(\n \"membership_missing\",\n \"Canonical Lucern SDK auth context requires non-empty roles and scopes.\"\n );\n }\n\n const subject = cleanString(input.permit?.subject) ?? principalId;\n const tenant = cleanString(input.permit?.tenant) ?? tenantId;\n const workspace = cleanString(input.permit?.workspace) ?? workspaceId;\n\n ensurePermitMatch({\n field: \"subject\",\n expected: principalId,\n actual: subject,\n });\n ensurePermitMatch({ field: \"tenant\", expected: tenantId, actual: tenant });\n ensurePermitMatch({\n field: \"workspace\",\n expected: workspaceId,\n actual: workspace,\n });\n\n const context = input.permit?.context\n ? ({ ...input.permit.context } as JsonObject)\n : undefined;\n\n return {\n clerkId: cleanString(input.clerkId),\n principalId,\n tenantId,\n workspaceId,\n principalType,\n authMode,\n roles,\n scopes,\n delegationChain: input.delegationChain ? [...input.delegationChain] : [],\n policyTraceId: cleanString(input.policyTraceId),\n correlationId: cleanString(input.correlationId),\n membershipId: cleanString(input.membershipId),\n permit: {\n subject,\n tenant,\n workspace,\n resource: cleanString(input.permit?.resource),\n action: cleanString(input.permit?.action),\n relation: cleanString(input.permit?.relation),\n context,\n },\n };\n}\n\nexport function createCanonicalAuthHeaders(\n authContext: CanonicalLucernSdkAuthContext\n): Record<string, string> {\n const headers: Record<string, string> = {\n \"x-lucern-principal-id\": authContext.principalId,\n \"x-lucern-principal-type\": authContext.principalType,\n \"x-lucern-tenant\": authContext.tenantId,\n \"x-lucern-tenant-id\": authContext.tenantId,\n \"x-lucern-workspace\": authContext.workspaceId,\n \"x-lucern-workspace-id\": authContext.workspaceId,\n \"x-lucern-auth-mode\": authContext.authMode,\n \"x-lucern-roles\": authContext.roles.join(\",\"),\n \"x-lucern-scopes\": authContext.scopes.join(\",\"),\n \"x-lucern-permit-context\": JSON.stringify(authContext.permit),\n };\n\n if (authContext.clerkId) {\n headers[\"x-lucern-clerk-id\"] = authContext.clerkId;\n headers[\"x-lucern-user-id\"] = authContext.clerkId;\n }\n if (authContext.delegationChain.length > 0) {\n headers[\"x-lucern-delegation-chain\"] = JSON.stringify(\n authContext.delegationChain\n );\n }\n if (authContext.policyTraceId) {\n headers[\"x-lucern-policy-trace-id\"] = authContext.policyTraceId;\n }\n if (authContext.correlationId) {\n headers[\"x-correlation-id\"] = authContext.correlationId;\n headers[\"x-lucern-correlation-id\"] = authContext.correlationId;\n }\n if (authContext.membershipId) {\n headers[\"x-lucern-membership-id\"] = authContext.membershipId;\n }\n\n return headers;\n}\n","import {\n createTelemetryExporterFromEnv,\n emitTelemetrySignal,\n type LucernTelemetryExporter,\n} from \"@lucern/transport-core\";\nimport { redactDiagnosticValue } from \"@lucern/transport-core/redaction\";\nimport { classifyRetry } from \"@lucern/transport-core/transport\";\nimport { Cause, Effect, Exit } from \"effect\";\n\nimport {\n createCanonicalAuthHeaders,\n LucernSdkAuthContextError,\n normalizeCanonicalLucernAuthContext,\n type LucernSdkAuthContextInput,\n} from \"./authContext\";\nimport 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\ntype GatewayEnvironment = {\n get: (name: string) => string | undefined;\n};\n\ntype GatewayRequestProfile = {\n readonly maxRetries: number;\n readonly timeoutMs: number;\n readonly timeoutMsByMethod?: Partial<Record<GatewayHttpMethod, number>>;\n readonly requestIdFactory: () => string;\n};\n\ntype GatewayRuntimeServices = {\n fetch: FetchLike;\n now: () => number;\n sleep: (ms: number) => Promise<void>;\n env: GatewayEnvironment;\n redaction: <T>(value: T) => T;\n profile: GatewayRequestProfile;\n};\n\nconst DEFAULT_GATEWAY_TIMEOUT_MS = 15_000;\nconst DEFAULT_GATEWAY_MAX_RETRIES = 2;\nconst DEFAULT_ENV_TIMEOUT_MS = \"LUCERN_REQUEST_TIMEOUT_MS\";\nconst DEFAULT_ENV_MAX_RETRIES = \"LUCERN_GATEWAY_MAX_RETRIES\";\nconst ENV_TIMEOUT_BY_METHOD_PREFIX = \"LUCERN_REQUEST_TIMEOUT_MS_\";\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\nexport class GatewayTimeoutError extends Error {\n public readonly retryable = true;\n public readonly timeoutMs: number;\n\n constructor(timeoutMs: number) {\n super(`Request timed out after ${timeoutMs}ms`);\n this.name = \"AbortError\";\n this.timeoutMs = timeoutMs;\n }\n}\n\nexport class GatewayTransportError extends Error {\n public readonly retryable: boolean;\n public readonly cause?: unknown;\n\n constructor(message: string, options?: { cause?: unknown; retryable?: boolean }) {\n super(message);\n this.name = \"GatewayTransportError\";\n this.retryable = options?.retryable ?? true;\n this.cause = options?.cause;\n }\n}\n\nexport type GatewayRecoverableError =\n | GatewayTimeoutError\n | GatewayTransportError;\n\nexport function isGatewayRecoverableError(\n error: unknown,\n): error is GatewayRecoverableError {\n return error instanceof GatewayTimeoutError || error instanceof GatewayTransportError;\n}\n\nexport function isGatewayRetryableError(error: unknown): boolean {\n return (\n (error instanceof GatewayTimeoutError && error.retryable) ||\n (error instanceof GatewayTransportError && error.retryable) ||\n false\n );\n}\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\ntype JsonParseAttempt =\n | { ok: true; value: unknown }\n | { ok: false; reason: \"non-json\" | \"invalid-json\"; error?: SyntaxError };\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\nexport type GatewayClientEnvironment = \"sandbox\" | \"production\";\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 /** Lucern tenant API key or service API key. Sent as `x-lucern-key`. */\n apiKey?: string;\n /**\n * Lucern platform session token. This is not a Clerk JWT.\n * Server-side tenant proxies should normally send `apiKey` plus `clerkId`.\n */\n userToken?: string;\n /** Gateway environment label for legacy sandbox/production routing. */\n environment?: GatewayClientEnvironment;\n /** Clerk subject for the current end user. */\n clerkId?: string;\n /** Optional explicit user subject. Defaults to `clerkId` when omitted. */\n userId?: string;\n /** Optional deployment host hint for front-door routing. */\n deploymentHost?: string;\n getAuthHeaders?:\n | (() => Promise<Record<string, string>>)\n | (() => Record<string, string>);\n /**\n * Canonical Master Control identity tuple applied to every SDK request.\n * Use this for tenant/workspace-scoped graph and identity operations.\n */\n authContext?:\n | LucernSdkAuthContextInput\n | (() => Promise<LucernSdkAuthContextInput | undefined>)\n | (() => LucernSdkAuthContextInput | undefined);\n /** When true, requests fail before fetch if `authContext` is absent. */\n requireCanonicalAuthContext?: boolean;\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 /**\n * Optional operational telemetry sink. When omitted, the SDK resolves an\n * Axiom exporter from Infisical-injected environment variables if present.\n */\n telemetryExporter?: LucernTelemetryExporter | null;\n /** Set false to disable SDK operational telemetry even when env is present. */\n telemetryEnabled?: boolean;\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\nfunction resolveEnvironment(): GatewayEnvironment {\n const processEnv =\n typeof globalThis === \"object\" &&\n globalThis !== null &&\n \"process\" in globalThis\n ? (globalThis as { process?: { env?: Record<string, string> } }).process\n : undefined;\n const env =\n processEnv !== undefined &&\n typeof processEnv === \"object\" &&\n processEnv !== null &&\n typeof processEnv.env === \"object\"\n ? processEnv.env\n : undefined;\n\n return {\n get: (name) => {\n const value = env?.[name];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n },\n };\n}\n\nfunction telemetryEnvironmentRecord(\n environment: GatewayEnvironment,\n): Record<string, string | undefined> {\n const names = [\n \"LUCERN_TELEMETRY_ENABLED\",\n \"AXIOM_TELEMETRY_ENABLED\",\n \"LUCERN_AXIOM_TOKEN\",\n \"AXIOM_TOKEN\",\n \"LUCERN_AXIOM_EVENTS_DATASET\",\n \"LUCERN_AXIOM_DATASET\",\n \"AXIOM_EVENTS_DATASET\",\n \"AXIOM_DATASET\",\n \"LUCERN_AXIOM_API_URL\",\n \"AXIOM_URL\",\n \"LUCERN_ENVIRONMENT\",\n \"NODE_ENV\",\n \"LUCERN_RELEASE\",\n \"SENTRY_RELEASE\",\n \"VERCEL_GIT_COMMIT_SHA\",\n ];\n return Object.fromEntries(\n names.map((name) => [name, environment.get(name)]),\n );\n}\n\nfunction resolveRequestProfile(\n config: Pick<\n GatewayClientConfig,\n \"maxRetries\" | \"timeoutMs\" | \"timeoutMsByMethod\" | \"requestIdFactory\"\n >,\n environment: GatewayEnvironment,\n): GatewayRequestProfile {\n const requestIdFactory = config.requestIdFactory ?? (() => generatePortableRequestId());\n const parsedMaxRetries = parseIntegerFromString(\n config.maxRetries,\n environment.get(DEFAULT_ENV_MAX_RETRIES),\n );\n const parsedTimeoutMs = parseIntegerFromString(\n config.timeoutMs,\n environment.get(DEFAULT_ENV_TIMEOUT_MS),\n );\n\n const methodTimeouts: Partial<Record<GatewayHttpMethod, number>> = {\n ...config.timeoutMsByMethod,\n };\n for (const method of [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"] as const) {\n const envKey = `${ENV_TIMEOUT_BY_METHOD_PREFIX}${method}`;\n const raw = environment.get(envKey);\n if (!raw || methodTimeouts[method] !== undefined) {\n continue;\n }\n const parsed = parseIntegerFromString(undefined, raw);\n if (typeof parsed === \"number\") {\n methodTimeouts[method] = parsed;\n }\n }\n\n return {\n maxRetries: parsedMaxRetries ?? DEFAULT_GATEWAY_MAX_RETRIES,\n timeoutMs: parsedTimeoutMs ?? DEFAULT_GATEWAY_TIMEOUT_MS,\n timeoutMsByMethod: methodTimeouts,\n requestIdFactory,\n };\n}\n\nfunction createGatewayRuntime(\n config: GatewayClientConfig,\n environment: GatewayEnvironment,\n): GatewayRuntimeServices {\n return {\n fetch: config.fetchImpl ?? fetch,\n now: () => Date.now(),\n sleep: (ms) => delay(ms),\n env: environment,\n redaction: resolveRequestRedactionValue,\n profile: resolveRequestProfile(config, environment),\n };\n}\n\nfunction parseIntegerFromString(\n value?: number,\n rawValue?: string,\n): number | undefined {\n if (typeof value === \"number\" && Number.isInteger(value) && value >= 0) {\n return value;\n }\n\n if (typeof rawValue !== \"string\" || !rawValue.trim()) {\n return undefined;\n }\n\n const parsed = Number.parseInt(rawValue, 10);\n return Number.isInteger(parsed) && parsed >= 0 ? parsed : undefined;\n}\n\nfunction resolveRequestRedactionValue<T>(value: T): T {\n return redactDiagnosticValue(value) as T;\n}\n\nfunction resolveGatewayBaseUrl(\n configBaseUrl: string | undefined,\n environment: GatewayEnvironment,\n): string {\n const envBaseUrl =\n environment.get(\"LUCERN_API_URL\") ??\n environment.get(\"LUCERN_BASE_URL\") ??\n environment.get(\"LUCERN_GATEWAY_BASE_URL\");\n\n return (configBaseUrl ?? envBaseUrl ?? \"\").replace(/\\/+$/, \"\");\n}\n\nfunction normalizeGatewayEnvironment(value: GatewayClientEnvironment | undefined):\n | GatewayClientEnvironment\n | undefined {\n return value === \"sandbox\" || value === \"production\" ? value : undefined;\n}\n\n/**\n * Generate a random idempotency key for retry-safe writes.\n */\nexport const randomIdempotencyKey = generatePortableRequestId;\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 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 classifyGatewayErrorForRetry(error: unknown): boolean {\n return isGatewayRetryableError(error) || classifyRetry({ error }).retryable;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction readPolicySummaryFromDetails(details?: JsonValue): string | null {\n if (!isRecord(details)) {\n return null;\n }\n\n const directSummary = details.summary;\n if (typeof directSummary === \"string\" && directSummary.trim().length > 0) {\n return directSummary.trim();\n }\n\n const policy = details.policy;\n if (!isRecord(policy)) {\n return null;\n }\n\n const explanation = policy.explanation;\n if (!isRecord(explanation)) {\n return null;\n }\n\n const nestedSummary = explanation.summary;\n if (typeof nestedSummary === \"string\" && nestedSummary.trim().length > 0) {\n return nestedSummary.trim();\n }\n\n return null;\n}\n\nfunction redactJsonDiagnosticValue(value: JsonValue | undefined): JsonValue | undefined {\n return value === undefined\n ? undefined\n : (redactDiagnosticValue(value) as JsonValue);\n}\n\nasync function resolveConfiguredAuthContext(\n authContext: GatewayClientConfig[\"authContext\"]\n): Promise<LucernSdkAuthContextInput | undefined> {\n if (typeof authContext === \"function\") {\n return await authContext();\n }\n return authContext;\n}\n\nfunction mergeHeaderRecord(\n base: Record<string, string>,\n addition: Record<string, string>\n): Record<string, string> {\n const headers = new Headers(base);\n for (const [key, value] of Object.entries(addition)) {\n const existing = headers.get(key);\n if (existing !== null && existing !== value) {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n `Canonical Lucern SDK auth context conflicts with existing ${key} header.`\n );\n }\n headers.set(key, value);\n }\n return Object.fromEntries(headers.entries());\n}\n\nfunction cleanHeaderValue(value: string | null | undefined): string | undefined {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\n/**\n * Create the transport client used by all SDK modules.\n */\nexport function createGatewayRequestClient(config: GatewayClientConfig = {}) {\n const env = resolveEnvironment();\n const runtime = createGatewayRuntime(config, env);\n const baseUrl = resolveGatewayBaseUrl(config.baseUrl, env);\n const maxRetries = runtime.profile.maxRetries;\n const requestIdFactory = runtime.profile.requestIdFactory;\n const requestTimeoutByMethod = runtime.profile.timeoutMsByMethod;\n const defaultRequestTimeoutMs = runtime.profile.timeoutMs;\n const normalizedEnvironment = normalizeGatewayEnvironment(config.environment);\n const telemetryExporter =\n config.telemetryEnabled === false\n ? null\n : (config.telemetryExporter ??\n createTelemetryExporterFromEnv(telemetryEnvironmentRecord(env), {\n service: \"lucern-sdk\",\n environment: normalizedEnvironment,\n }));\n\n async function resolveAuthHeaders(): Promise<Record<string, string>> {\n const provided = config.getAuthHeaders ? await config.getAuthHeaders() : {};\n const headers = new Headers(provided);\n const setIfAbsent = (name: string, value: string | undefined) => {\n const normalized = cleanHeaderValue(value);\n if (normalized && !headers.has(name)) {\n headers.set(name, normalized);\n }\n };\n\n setIfAbsent(\"x-lucern-key\", config.apiKey);\n setIfAbsent(\"x-lucern-session-token\", config.userToken);\n setIfAbsent(\"x-lucern-environment\", normalizedEnvironment);\n setIfAbsent(\"x-lucern-clerk-id\", config.clerkId);\n setIfAbsent(\"x-lucern-user-id\", config.userId ?? config.clerkId);\n setIfAbsent(\"x-lucern-deployment-host\", config.deploymentHost);\n\n const base = Object.fromEntries(headers.entries());\n const authContextInput = await resolveConfiguredAuthContext(\n config.authContext\n );\n if (!authContextInput && !config.requireCanonicalAuthContext) {\n return base;\n }\n const authContext = normalizeCanonicalLucernAuthContext(authContextInput);\n return mergeHeaderRecord(base, createCanonicalAuthHeaders(authContext));\n }\n\n async function fetchWithTimeout(\n url: string,\n init: RequestInit,\n timeoutMs: number\n ): Promise<Response> {\n const normalizeTransportError = (\n error: unknown,\n isTimeout: boolean,\n ): GatewayRecoverableError => {\n if (isTimeout) {\n return new GatewayTimeoutError(timeoutMs);\n }\n return error instanceof GatewayTimeoutError ||\n error instanceof GatewayTransportError\n ? error\n : new GatewayTransportError(\n error instanceof Error ? error.message : \"Gateway transport error\",\n {\n cause: error,\n retryable: classifyGatewayErrorForRetry(error),\n }\n );\n };\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n const requestEffect = Effect.tryPromise({\n try: () => runtime.fetch(url, { ...init, signal: controller.signal }),\n catch: (error) => normalizeTransportError(error, controller.signal.aborted),\n });\n try {\n const exit = await Effect.runPromiseExit(requestEffect);\n if (Exit.isSuccess(exit)) {\n return exit.value;\n }\n const failure = Array.from(Cause.failures(exit.cause))[0];\n if (failure !== undefined) {\n throw failure;\n }\n throw Cause.squash(exit.cause);\n } finally {\n clearTimeout(timer);\n }\n }\n\n async function emitSdkResponseTelemetry(\n context: GatewayResponseHookContext,\n ): Promise<void> {\n const retry = classifyRetry({\n status: context.status,\n error: context.error,\n retryAfter:\n context.retryAfterMs !== null && context.retryAfterMs !== undefined\n ? String(context.retryAfterMs / 1000)\n : undefined,\n });\n await emitTelemetrySignal(telemetryExporter, {\n signalType: \"trace\",\n surface: \"sdk-retry\",\n eventName: context.willRetry\n ? \"sdk.retry\"\n : context.error\n ? \"sdk.request.error\"\n : \"sdk.request.complete\",\n severity: context.error ? (context.willRetry ? \"warn\" : \"error\") : \"info\",\n durationMs: context.durationMs,\n metricName: \"sdk.request.duration_ms\",\n metricValue: context.durationMs,\n correlationId: context.correlationId ?? context.requestId,\n policyTraceId: context.policyTraceId ?? null,\n tenantId:\n context.headers.get(\"x-lucern-tenant-id\") ??\n context.headers.get(\"x-lucern-tenant\") ??\n undefined,\n workspaceId:\n context.headers.get(\"x-lucern-workspace-id\") ??\n context.headers.get(\"x-lucern-workspace\") ??\n undefined,\n attributes: {\n service: \"lucern-sdk\",\n operation: \"gateway.request\",\n path: context.path,\n httpMethod: context.method,\n httpStatus: context.status,\n attempt: context.attempt,\n maxRetries: context.maxRetries,\n retryReason: retry.reason,\n retryAfterMs: context.retryAfterMs ?? retry.retryAfterMs,\n willRetry: context.willRetry,\n retryable: retry.retryable,\n errorName:\n context.error instanceof Error ? context.error.name : undefined,\n errorMessage:\n context.error instanceof Error ? context.error.message : undefined,\n },\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 const parsed = tryParseGatewayEnvelopeJson(text);\n if (!parsed.ok) {\n return null;\n }\n return isRecord(parsed.value)\n ? (parsed.value as PlatformGatewayEnvelope<T>)\n : null;\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 = requestTimeoutByMethod?.[method];\n if (typeof methodTimeoutMs === \"number\") {\n return methodTimeoutMs;\n }\n return defaultRequestTimeoutMs;\n }\n\n function tryParseGatewayEnvelopeJson(text: string): JsonParseAttempt {\n const trimmed = text.trim();\n if (!trimmed.startsWith(\"{\") && !trimmed.startsWith(\"[\")) {\n return { ok: false, reason: \"non-json\" };\n }\n try {\n return { ok: true, value: JSON.parse(trimmed) };\n } catch (error) {\n if (error instanceof SyntaxError) {\n return { ok: false, reason: \"invalid-json\", error };\n }\n throw error;\n }\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 && isRecord(failure.error) ? failure.error : 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 = runtime.redaction(\n redactJsonDiagnosticValue(failure?.details ?? legacyError?.details)\n );\n const policySummary = readPolicySummaryFromDetails(details);\n const failureMessage =\n typeof failure?.error === \"string\"\n ? failure.error\n : legacyError?.message;\n\n return new LucernApiError({\n code:\n failure?.code ??\n legacyError?.code ??\n fallbackErrorCode(args.response.status),\n message:\n policySummary ??\n failureMessage ??\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 retry = classifyRetry({\n status: response.status,\n retryAfter: response.headers.get(\"Retry-After\"),\n });\n const retryAfterMs = retry.retryAfterMs ?? null;\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 && retry.retryable;\n const responseContext: GatewayResponseHookContext = {\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 await config.onResponse?.(responseContext);\n await emitSdkResponseTelemetry(responseContext);\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 const responseContext: GatewayResponseHookContext = {\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 await config.onResponse?.(responseContext);\n await emitSdkResponseTelemetry(responseContext);\n\n return successPayload;\n } catch (fetchError) {\n if (fetchError instanceof LucernApiError) {\n throw fetchError;\n }\n const willRetry =\n attempt < maxRetries && classifyGatewayErrorForRetry(fetchError);\n const responseContext: GatewayResponseHookContext = {\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n error: fetchError,\n correlationId: requestId,\n policyTraceId: null,\n willRetry,\n };\n await config.onResponse?.(responseContext);\n await emitSdkResponseTelemetry(responseContext);\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\nexport function isRecord(value: unknown): value is AnyRecord {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function asRecord(value: unknown): AnyRecord {\n return isRecord(value) ? value : {};\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 const normalizeNodeVerificationStatus = normalizeVerificationStatus;\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;\n }\n\n const record = asRecord(data);\n if (Array.isArray(record.items)) {\n return record.items;\n }\n if (legacyKey && Array.isArray(record[legacyKey])) {\n return record[legacyKey];\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 return {\n ...result,\n [legacyKey]: items,\n } as ListResult<T, LegacyKey>;\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 const getControlObjectOwnership = async () =>\n gateway.request<ControlObjectOwnershipContract>({\n path: \"/api/platform/v1/admin/control-ownership\",\n });\n\n const createMembership = async (\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 gateway.request<unknown>({\n path: \"/api/platform/v1/memberships\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n const updateMembership = createMembership;\n const upsertMembership = createMembership;\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 getControlObjectOwnership,\n\n /**\n * @deprecated Use getControlObjectOwnership.\n */\n getControlObjectOwnershipContract: getControlObjectOwnership,\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 createMembership,\n\n /**\n * Update a membership.\n */\n updateMembership,\n\n /**\n * @deprecated Use createMembership or updateMembership.\n */\n upsertMembership,\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 { createListResult } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport function cleanOptionalString(value: string | undefined) {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function cleanRequiredString(\n value: string | undefined,\n label: string\n) {\n const normalized = cleanOptionalString(value);\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nexport function readTopicId(input: TopicProjectAliasInput) {\n return cleanOptionalString(input.topicId) ?? cleanOptionalString(input.projectId);\n}\n\nexport function requireTopicId(input: TopicProjectAliasInput) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nexport function assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nexport function knownPayload<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return { ...input } as JsonObject;\n}\n\nexport function topicPayload<T extends string>(\n input: TopicProjectAliasInput & Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject;\n}\n\nexport function listResultFromEnvelope<T, LegacyKey extends string>(\n data: unknown,\n legacyKey: LegacyKey\n): ListResult<T, LegacyKey> {\n const record = isRecord(data) ? data : {};\n const legacyItems = record[legacyKey];\n return createListResult(\n Array.isArray(legacyItems)\n ? legacyItems\n : Array.isArray(data)\n ? data\n : [],\n legacyKey\n );\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, SdkPrincipalContext } from \"./types\";\n\nexport type ControlPlanePrincipalType =\n | \"human\"\n | \"service\"\n | \"agent\"\n | \"group\"\n | \"external_viewer\";\n\nexport type ControlPlanePrincipalStatus =\n | \"active\"\n | \"invited\"\n | \"suspended\"\n | \"disabled\"\n | \"revoked\"\n | \"missing\";\n\nexport type ResolveInteractivePrincipalInput = {\n clerkId: string;\n tenantId?: string;\n workspaceId?: string;\n providerProjectId?: string;\n};\n\nexport type ControlPlanePermitSubject = {\n subject: string;\n tenant: string;\n workspace?: string;\n};\n\nexport type ResolvedInteractivePrincipalContext = SdkPrincipalContext & {\n principalType: ControlPlanePrincipalType;\n authMode: \"interactive_user\";\n clerkId: string;\n tenantId: string;\n workspaceId: string | null;\n groupIds: string[];\n permittedToolNames: string[];\n permittedPackKeys: string[];\n principalStatus: ControlPlanePrincipalStatus;\n tenantStatus: string;\n workspaceStatus: string;\n permit: ControlPlanePermitSubject;\n};\n\nexport type ResolveInteractivePrincipalFailureReason =\n | \"principal_missing\"\n | \"tenant_missing\"\n | \"workspace_missing\"\n | \"membership_missing\"\n | \"ambiguous_principal\"\n | \"ambiguous_workspace\"\n | \"alias_invited\"\n | \"alias_suspended\"\n | \"alias_disabled\"\n | \"alias_revoked\"\n | \"principal_invited\"\n | \"principal_suspended\"\n | \"principal_disabled\"\n | \"principal_revoked\"\n | \"tenant_disabled\"\n | \"workspace_disabled\"\n | \"resolver_unavailable\";\n\nexport type ResolveInteractivePrincipalFailure = {\n ok: false;\n reason: ResolveInteractivePrincipalFailureReason | (string & {});\n message: string;\n principalStatus?: ControlPlanePrincipalStatus | string;\n tenantStatus?: string;\n workspaceStatus?: string;\n details?: JsonObject;\n};\n\ntype ResolveInteractivePrincipalPayload =\n | (ResolvedInteractivePrincipalContext & { ok?: true })\n | ResolveInteractivePrincipalFailure;\n\nexport class LucernControlPlaneIdentityError extends Error {\n readonly reason: ResolveInteractivePrincipalFailure[\"reason\"];\n readonly principalStatus?: string;\n readonly tenantStatus?: string;\n readonly workspaceStatus?: string;\n readonly details?: JsonObject;\n\n constructor(failure: ResolveInteractivePrincipalFailure) {\n super(failure.message);\n this.name = \"LucernControlPlaneIdentityError\";\n this.reason = failure.reason;\n this.principalStatus = failure.principalStatus;\n this.tenantStatus = failure.tenantStatus;\n this.workspaceStatus = failure.workspaceStatus;\n this.details = failure.details;\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 stringList(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return [\n ...new Set(\n value\n .filter((entry): entry is string => typeof entry === \"string\")\n .map((entry) => entry.trim())\n .filter(Boolean)\n ),\n ];\n}\n\nfunction principalType(value: unknown): ControlPlanePrincipalType {\n switch (value) {\n case \"service\":\n case \"service_principal\":\n return \"service\";\n case \"agent\":\n return \"agent\";\n case \"group\":\n return \"group\";\n case \"external_viewer\":\n case \"external_stakeholder\":\n return \"external_viewer\";\n default:\n return \"human\";\n }\n}\n\nfunction adminFlags(roles: string[]) {\n const normalized = roles.map((role) => role.toLowerCase());\n const isPlatformAdmin = normalized.includes(\"platform_admin\");\n const isTenantAdmin = isPlatformAdmin || normalized.includes(\"tenant_admin\");\n const isWorkspaceAdmin =\n isTenantAdmin ||\n normalized.includes(\"workspace_admin\") ||\n normalized.includes(\"workspace_owner\");\n return { isPlatformAdmin, isTenantAdmin, isWorkspaceAdmin };\n}\n\nexport function normalizeResolvedInteractivePrincipal(\n payload: ResolveInteractivePrincipalPayload\n): ResolvedInteractivePrincipalContext {\n if (\"ok\" in payload && payload.ok === false) {\n throw new LucernControlPlaneIdentityError(payload);\n }\n\n const principalId = cleanString(payload.principalId);\n const clerkId = cleanString(payload.clerkId);\n const tenantId = cleanString(payload.tenantId);\n if (!principalId || !clerkId || !tenantId) {\n throw new LucernControlPlaneIdentityError({\n ok: false,\n reason: \"resolver_unavailable\",\n message:\n \"Control-plane principal resolver returned an incomplete principal context.\",\n principalStatus: payload.principalStatus ?? \"missing\",\n tenantStatus: payload.tenantStatus,\n workspaceStatus: payload.workspaceStatus,\n });\n }\n\n const roles = stringList(payload.roles);\n const scopes = stringList(payload.scopes);\n const workspaceId = cleanString(payload.workspaceId) ?? null;\n const flags = adminFlags(roles);\n\n return {\n principalId,\n principalType: principalType(payload.principalType),\n clerkId,\n tenantId,\n workspaceId,\n roles,\n scopes,\n groupIds: stringList(payload.groupIds),\n permittedToolNames: stringList(payload.permittedToolNames),\n permittedPackKeys: stringList(payload.permittedPackKeys),\n principalStatus:\n (cleanString(payload.principalStatus) as ControlPlanePrincipalStatus) ??\n \"active\",\n tenantStatus: cleanString(payload.tenantStatus) ?? \"active\",\n workspaceStatus:\n cleanString(payload.workspaceStatus) ?? (workspaceId ? \"active\" : \"none\"),\n isPlatformAdmin:\n typeof payload.isPlatformAdmin === \"boolean\"\n ? payload.isPlatformAdmin\n : flags.isPlatformAdmin,\n isTenantAdmin:\n typeof payload.isTenantAdmin === \"boolean\"\n ? payload.isTenantAdmin\n : flags.isTenantAdmin,\n isWorkspaceAdmin:\n typeof payload.isWorkspaceAdmin === \"boolean\"\n ? payload.isWorkspaceAdmin\n : flags.isWorkspaceAdmin,\n permit: {\n subject: cleanString(payload.permit?.subject) ?? principalId,\n tenant: cleanString(payload.permit?.tenant) ?? tenantId,\n ...(workspaceId\n ? { workspace: cleanString(payload.permit?.workspace) ?? workspaceId }\n : {}),\n },\n authMode: \"interactive_user\",\n sessionId: payload.sessionId,\n delegatedBy: payload.delegatedBy,\n expiresAt: payload.expiresAt,\n };\n}\n\nexport type ResolveInteractivePrincipalResponse =\n PlatformGatewaySuccess<ResolvedInteractivePrincipalContext>;\n\nexport type ControlPlaneIdentityClientConfig = GatewayClientConfig;\n\nexport function createControlPlaneIdentityClient(\n config: ControlPlaneIdentityClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n return {\n async resolveInteractivePrincipal(\n input: ResolveInteractivePrincipalInput\n ): Promise<ResolveInteractivePrincipalResponse> {\n return gateway\n .request<ResolveInteractivePrincipalPayload>({\n path: \"/api/platform/v1/control-plane/identity/resolve-interactive-principal\",\n method: \"POST\",\n body: input,\n })\n .then((response) =>\n mapGatewayData(response, normalizeResolvedInteractivePrincipal)\n );\n },\n };\n}\n\nexport function createControlPlaneClient(\n config: ControlPlaneIdentityClientConfig = {}\n) {\n return {\n identity: createControlPlaneIdentityClient(config),\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 {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult, SdkPrincipalContext } from \"./types\";\nimport {\n normalizeResolvedInteractivePrincipal,\n type ResolveInteractivePrincipalFailure,\n type ResolveInteractivePrincipalInput,\n type ResolvedInteractivePrincipalContext,\n} from \"./control-plane\";\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\nexport const TENANT_IDENTITY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"integrationKey\",\n \"secretRef\",\n \"policySubject\",\n \"policyAction\",\n \"policyResource\",\n \"decision\",\n \"config\",\n \"configKey\",\n \"configValue\",\n \"provider\",\n \"status\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type TenantIdentityConfigRecord = {\n tenantId: string;\n workspaceId?: string;\n config?: JsonObject | null;\n metadata?: JsonObject | null;\n updatedAt?: number;\n updatedBy?: string;\n};\n\nexport type TenantIntegrationRecord = {\n tenantId: string;\n workspaceId?: string;\n integrationKey: string;\n provider?: string;\n status?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantSecretReference = {\n tenantId: string;\n workspaceId?: string;\n integrationKey?: string;\n secretRef: string;\n status?: string;\n metadata?: JsonObject | null;\n updatedAt?: number;\n};\n\nexport type PolicyDecisionRecord = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n policySubject: string;\n policyAction: string;\n policyResource: string;\n decision: \"allow\" | \"deny\" | string;\n reason?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type TenantIdentityScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpdateTenantConfigInput = TenantIdentityScope & {\n config?: JsonObject;\n configKey?: string;\n configValue?: JsonObject | string | number | boolean | null;\n metadata?: JsonObject;\n};\n\nexport type UpsertTenantIntegrationInput = TenantIdentityScope & {\n integrationKey: string;\n provider?: string;\n status?: string;\n metadata?: JsonObject;\n};\n\nexport type PutTenantSecretReferenceInput = TenantIdentityScope & {\n integrationKey?: string;\n secretRef: string;\n status?: string;\n metadata?: JsonObject;\n};\n\nexport type PolicyEvaluationInput = TenantIdentityScope & {\n policySubject: string;\n policyAction: string;\n policyResource: string;\n metadata?: JsonObject;\n};\n\nexport type RecordPolicyDecisionInput = PolicyEvaluationInput & {\n decision: \"allow\" | \"deny\" | string;\n};\n\nexport type TenantIntegrationsResponse = ListResult<\n TenantIntegrationRecord,\n \"integrations\"\n>;\nexport type TenantSecretsResponse = ListResult<TenantSecretReference, \"secrets\">;\n\nfunction tenantIdentityQuery(input: TenantIdentityScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction tenantIdentityBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TENANT_IDENTITY_FIELDS, operation);\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 const 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 ) => requestPrincipalWrite(\"PATCH\", input, idempotencyKey);\n\n const deleteKey = (\n keyId: string,\n input: { reason?: string } = {},\n idempotencyKey?: string\n ) =>\n 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 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 clerkId: data.clerkId,\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 groupIds: Array.isArray(data.groupIds) ? data.groupIds : [],\n permittedToolNames: Array.isArray(data.permittedToolNames)\n ? data.permittedToolNames\n : [],\n permittedPackKeys: Array.isArray(data.permittedPackKeys)\n ? data.permittedPackKeys\n : [],\n principalStatus: data.principalStatus,\n tenantStatus: data.tenantStatus,\n workspaceStatus: data.workspaceStatus,\n isPlatformAdmin: data.isPlatformAdmin === true,\n isTenantAdmin: data.isTenantAdmin === true,\n isWorkspaceAdmin: data.isWorkspaceAdmin === true,\n permit:\n data.permit ??\n (data.tenantId\n ? {\n subject: data.principalId,\n tenant: data.tenantId,\n ...(data.workspaceId ? { workspace: data.workspaceId } : {}),\n }\n : undefined),\n authMode: data.authMode,\n sessionId: data.sessionId,\n delegatedBy: data.delegatedBy,\n expiresAt: data.expiresAt,\n }))\n );\n },\n\n /**\n * Resolve a Clerk subject through the tenant control-plane Permit projection.\n * @deprecated Prefer lucern.controlPlane.identity.resolveInteractivePrincipal().\n */\n async resolveInteractivePrincipal(input: ResolveInteractivePrincipalInput) {\n return gateway\n .request<\n | (ResolvedInteractivePrincipalContext & { ok?: true })\n | ResolveInteractivePrincipalFailure\n >({\n path: \"/api/platform/v1/control-plane/identity/resolve-interactive-principal\",\n method: \"POST\",\n body: input,\n })\n .then((response) =>\n mapGatewayData(response, normalizeResolvedInteractivePrincipal)\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 updatePrincipal,\n\n /**\n * @deprecated Use createPrincipal or updatePrincipal.\n */\n upsertPrincipal: updatePrincipal,\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 deleteKey,\n\n /**\n * @deprecated Use deleteKey.\n */\n revokeKey: deleteKey,\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 async getTenantConfig(input: TenantIdentityScope) {\n return gateway.request<TenantIdentityConfigRecord>({\n path: `/api/platform/v1/identity/tenant-config${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n });\n },\n\n async updateTenantConfig(\n input: UpdateTenantConfigInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<TenantIdentityConfigRecord>({\n path: \"/api/platform/v1/identity/tenant-config\",\n method: \"PATCH\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.updateTenantConfig\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async listIntegrations(input: TenantIdentityScope) {\n return gateway.request<TenantIntegrationsResponse>({\n path: `/api/platform/v1/identity/integrations${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TenantIntegrationRecord, \"integrations\">(\n data,\n \"integrations\"\n )\n )\n );\n },\n\n async upsertIntegration(\n input: UpsertTenantIntegrationInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.integrationKey, \"integrationKey\");\n return gateway.request<TenantIntegrationRecord>({\n path: \"/api/platform/v1/identity/integrations\",\n method: \"PUT\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.upsertIntegration\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async listSecrets(input: TenantIdentityScope) {\n return gateway.request<TenantSecretsResponse>({\n path: `/api/platform/v1/identity/secrets${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TenantSecretReference, \"secrets\">(\n data,\n \"secrets\"\n )\n )\n );\n },\n\n async putSecretReference(\n input: PutTenantSecretReferenceInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.secretRef, \"secretRef\");\n return gateway.request<TenantSecretReference>({\n path: \"/api/platform/v1/identity/secrets\",\n method: \"PUT\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.putSecretReference\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async evaluatePolicy(\n input: PolicyEvaluationInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.policySubject, \"policySubject\");\n cleanRequiredString(input.policyAction, \"policyAction\");\n cleanRequiredString(input.policyResource, \"policyResource\");\n return gateway.request<PolicyDecisionRecord>({\n path: \"/api/platform/v1/identity/policy/evaluate\",\n method: \"POST\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.evaluatePolicy\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async recordPolicyDecision(\n input: RecordPolicyDecisionInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.decision, \"decision\");\n return gateway.request<PolicyDecisionRecord>({\n path: \"/api/platform/v1/identity/policy/decisions\",\n method: \"POST\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.recordPolicyDecision\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n LucernSdkAuthContextError,\n normalizeCanonicalLucernAuthContext,\n type LucernSdkAuthContextInput,\n type LucernSdkAuthFailureReason,\n} from \"./authContext\";\nimport { type GatewayClientConfig } from \"./coreClient\";\nimport {\n createIdentityClient,\n type PolicyDecisionRecord,\n type PolicyEvaluationInput,\n} from \"./identityClient\";\nimport type { SessionPrincipalType } from \"./contracts/auth-session.contract\";\nimport type { JsonObject } from \"./types\";\n\nexport type ClerkIdentityAliasInput = {\n provider?: \"clerk\" | string;\n providerProjectId?: string | null;\n externalSubjectId: string;\n status?: \"active\" | \"pending\" | \"revoked\" | string;\n};\n\nexport type CanonicalPrincipalIdentityInput = {\n principalId?: string | null;\n principalType?: SessionPrincipalType | \"user\" | \"external_viewer\" | null;\n canonicalClerkUserId?: string | null;\n clerkId?: string | null;\n clerkIdentityAliases?: readonly ClerkIdentityAliasInput[];\n tenantId?: string | null;\n workspaceId?: string | null;\n roles?: readonly string[];\n scopes?: readonly string[];\n};\n\nexport type CanonicalPrincipalIdentityAlias = {\n provider: string;\n providerProjectId?: string;\n externalSubjectId: string;\n status?: string;\n};\n\nexport type CanonicalPrincipalIdentity = {\n principalId: string;\n principalType: SessionPrincipalType;\n canonicalClerkUserId?: string;\n clerkIdentityAliases: CanonicalPrincipalIdentityAlias[];\n tenantId?: string;\n workspaceId?: string;\n roles: string[];\n scopes: string[];\n};\n\nexport type AccessResourceType =\n | \"tenant\"\n | \"workspace\"\n | \"deployment\"\n | \"convex_table\"\n | \"secret_scope\"\n | \"agent_session\"\n | (string & {});\n\nexport type AccessResourceDescriptor = {\n type: AccessResourceType;\n key: string;\n};\n\nexport type RequireAccessInput = {\n identity?: CanonicalPrincipalIdentityInput | LucernSdkAuthContextInput;\n observedClerkId?: string;\n tenantId?: string;\n workspaceId?: string;\n action: string;\n resource: AccessResourceDescriptor | string;\n context?: JsonObject;\n};\n\nexport type AccessCheckResult = {\n identity: CanonicalPrincipalIdentity;\n policyInput: PolicyEvaluationInput;\n decision: PolicyDecisionRecord;\n};\n\nexport class LucernAccessControlError extends LucernSdkAuthContextError {\n readonly policyDecision?: PolicyDecisionRecord;\n\n constructor(\n reason: LucernSdkAuthFailureReason,\n message: string,\n policyDecision?: PolicyDecisionRecord\n ) {\n super(reason, message);\n this.name = \"LucernAccessControlError\";\n this.policyDecision = policyDecision;\n }\n}\n\nfunction cleanString(value: string | null | undefined): string | undefined {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction cleanStringList(values: readonly string[] | undefined): string[] {\n if (!values) {\n return [];\n }\n return [\n ...new Set(\n values.map((value) => value.trim()).filter((value) => value.length > 0)\n ),\n ];\n}\n\nfunction requireString(\n value: string | null | undefined,\n reason: LucernSdkAuthFailureReason,\n label: string\n): string {\n const normalized = cleanString(value);\n if (!normalized) {\n throw new LucernAccessControlError(\n reason,\n `Lucern SDK access control requires ${label}.`\n );\n }\n return normalized;\n}\n\nfunction normalizePrincipalType(\n principalType: CanonicalPrincipalIdentityInput[\"principalType\"]\n): SessionPrincipalType {\n if (principalType === \"agent\") {\n return \"agent\";\n }\n if (principalType === \"service\") {\n return \"service\";\n }\n if (principalType === \"group\") {\n return \"group\";\n }\n if (principalType === \"external_viewer\") {\n return \"external_viewer\";\n }\n return \"human\";\n}\n\nfunction aliasKey(alias: CanonicalPrincipalIdentityAlias): string {\n return `${alias.provider}:${alias.providerProjectId ?? \"\"}:${\n alias.externalSubjectId\n }`;\n}\n\nfunction normalizeAliases(\n input: readonly ClerkIdentityAliasInput[] | undefined,\n canonicalClerkUserId: string | undefined\n): CanonicalPrincipalIdentityAlias[] {\n const aliases = new Map<string, CanonicalPrincipalIdentityAlias>();\n for (const alias of input ?? []) {\n const externalSubjectId = cleanString(alias.externalSubjectId);\n if (!externalSubjectId) {\n continue;\n }\n const normalized: CanonicalPrincipalIdentityAlias = {\n provider: cleanString(alias.provider) ?? \"clerk\",\n providerProjectId: cleanString(alias.providerProjectId),\n externalSubjectId,\n status: cleanString(alias.status),\n };\n aliases.set(aliasKey(normalized), normalized);\n }\n if (canonicalClerkUserId) {\n const canonicalAlias: CanonicalPrincipalIdentityAlias = {\n provider: \"clerk\",\n externalSubjectId: canonicalClerkUserId,\n status: \"active\",\n };\n aliases.set(aliasKey(canonicalAlias), canonicalAlias);\n }\n return [...aliases.values()];\n}\n\nfunction isKnownClerkSubject(args: {\n clerkId: string;\n canonicalClerkUserId?: string;\n aliases: readonly CanonicalPrincipalIdentityAlias[];\n}): boolean {\n if (args.clerkId === args.canonicalClerkUserId) {\n return true;\n }\n return args.aliases.some(\n (alias) =>\n alias.provider === \"clerk\" && alias.externalSubjectId === args.clerkId\n );\n}\n\nfunction authContextToPrincipalInput(\n input: LucernSdkAuthContextInput\n): CanonicalPrincipalIdentityInput {\n const normalized = normalizeCanonicalLucernAuthContext(input);\n return {\n principalId: normalized.principalId,\n principalType: normalized.principalType,\n canonicalClerkUserId: normalized.clerkId,\n clerkId: normalized.clerkId,\n tenantId: normalized.tenantId,\n workspaceId: normalized.workspaceId,\n roles: normalized.roles,\n scopes: normalized.scopes,\n };\n}\n\nfunction isAuthContextInput(\n input: CanonicalPrincipalIdentityInput | LucernSdkAuthContextInput\n): input is LucernSdkAuthContextInput {\n return \"authMode\" in input || \"permit\" in input || \"delegationChain\" in input;\n}\n\nexport function normalizeCanonicalPrincipalIdentity(\n input: CanonicalPrincipalIdentityInput | LucernSdkAuthContextInput,\n options: { observedClerkId?: string } = {}\n): CanonicalPrincipalIdentity {\n const principalInput = isAuthContextInput(input)\n ? authContextToPrincipalInput(input)\n : input;\n const principalId = requireString(\n principalInput.principalId,\n \"principal_missing\",\n \"principalId\"\n );\n const principalType = normalizePrincipalType(principalInput.principalType);\n const observedClerkId = cleanString(options.observedClerkId);\n const canonicalClerkUserId =\n cleanString(principalInput.canonicalClerkUserId) ??\n cleanString(principalInput.clerkId);\n\n if (principalType === \"human\" && !canonicalClerkUserId) {\n throw new LucernAccessControlError(\n \"clerk_alias_missing\",\n \"Human principals require one canonical Clerk user id.\"\n );\n }\n\n const aliases = normalizeAliases(\n principalInput.clerkIdentityAliases,\n canonicalClerkUserId\n );\n if (\n observedClerkId &&\n !isKnownClerkSubject({\n clerkId: observedClerkId,\n canonicalClerkUserId,\n aliases,\n })\n ) {\n throw new LucernAccessControlError(\n \"clerk_alias_unrecognized\",\n \"Observed Clerk user id does not match the canonical human principal id.\"\n );\n }\n\n return {\n principalId,\n principalType,\n canonicalClerkUserId,\n clerkIdentityAliases: aliases,\n tenantId: cleanString(principalInput.tenantId),\n workspaceId: cleanString(principalInput.workspaceId),\n roles: cleanStringList(principalInput.roles),\n scopes: cleanStringList(principalInput.scopes),\n };\n}\n\nexport function formatPermitResource(\n resource: AccessResourceDescriptor | string\n) {\n if (typeof resource === \"string\") {\n return requireString(resource, \"policy_denied\", \"policyResource\");\n }\n const type = requireString(resource.type, \"policy_denied\", \"resource.type\");\n const key = requireString(resource.key, \"policy_denied\", \"resource.key\");\n return key.startsWith(`${type}:`) ? key : `${type}:${key}`;\n}\n\nfunction resourceRequiresWorkspace(resource: AccessResourceDescriptor | string) {\n if (typeof resource === \"string\") {\n return !resource.startsWith(\"tenant:\");\n }\n return resource.type !== \"tenant\";\n}\n\nfunction rejectConflictingScopeOverride(args: {\n field: \"tenantId\" | \"workspaceId\";\n identityValue?: string;\n requestedValue?: string;\n}) {\n if (\n args.identityValue &&\n args.requestedValue &&\n args.identityValue !== args.requestedValue\n ) {\n throw new LucernAccessControlError(\n \"policy_denied\",\n `Lucern SDK access control rejects conflicting ${args.field} scope.`\n );\n }\n}\n\nfunction buildPolicyInput(\n identity: CanonicalPrincipalIdentity,\n input: RequireAccessInput\n): PolicyEvaluationInput {\n rejectConflictingScopeOverride({\n field: \"tenantId\",\n identityValue: identity.tenantId,\n requestedValue: cleanString(input.tenantId),\n });\n rejectConflictingScopeOverride({\n field: \"workspaceId\",\n identityValue: identity.workspaceId,\n requestedValue: cleanString(input.workspaceId),\n });\n const tenantId = requireString(\n input.tenantId ?? identity.tenantId,\n \"tenant_missing\",\n \"tenantId\"\n );\n const workspaceId = cleanString(input.workspaceId ?? identity.workspaceId);\n if (resourceRequiresWorkspace(input.resource) && !workspaceId) {\n throw new LucernAccessControlError(\n \"workspace_missing\",\n \"Workspace-scoped Permit checks require workspaceId.\"\n );\n }\n\n return {\n tenantId,\n workspaceId,\n principalId: identity.principalId,\n policySubject: identity.principalId,\n policyAction: requireString(input.action, \"policy_denied\", \"policyAction\"),\n policyResource: formatPermitResource(input.resource),\n metadata: input.context,\n };\n}\n\nasync function resolveConfiguredPrincipalInput(\n authContext: GatewayClientConfig[\"authContext\"]\n): Promise<LucernSdkAuthContextInput | undefined> {\n if (typeof authContext === \"function\") {\n return await authContext();\n }\n return authContext;\n}\n\nexport function assertPermitAllowed(decision: PolicyDecisionRecord) {\n if (decision.decision !== \"allow\") {\n throw new LucernAccessControlError(\n decision.decision === \"deny\" ? \"policy_denied\" : \"policy_unknown\",\n `Permit denied ${decision.policyAction} on ${decision.policyResource}.`,\n decision\n );\n }\n}\n\nexport function createAccessControlClient(config: GatewayClientConfig = {}) {\n const identityClient = createIdentityClient(config);\n\n async function resolveIdentity(\n input?: RequireAccessInput[\"identity\"],\n observedClerkId?: string\n ) {\n const identityInput =\n input ?? (await resolveConfiguredPrincipalInput(config.authContext));\n if (!identityInput) {\n throw new LucernAccessControlError(\n \"principal_missing\",\n \"Lucern SDK access control requires a canonical principal identity.\"\n );\n }\n return normalizeCanonicalPrincipalIdentity(identityInput, {\n observedClerkId,\n });\n }\n\n async function checkAccess(\n input: RequireAccessInput,\n idempotencyKey?: string\n ): Promise<AccessCheckResult> {\n const identity = await resolveIdentity(input.identity, input.observedClerkId);\n const policyInput = buildPolicyInput(identity, input);\n try {\n const response = await identityClient.evaluatePolicy(\n policyInput,\n idempotencyKey\n );\n return {\n identity,\n policyInput,\n decision: response.data,\n };\n } catch (error) {\n if (error instanceof LucernSdkAuthContextError) {\n throw error;\n }\n throw new LucernAccessControlError(\n \"policy_unavailable\",\n \"Permit policy check failed closed before an allow decision was returned.\"\n );\n }\n }\n\n async function requireAccess(input: RequireAccessInput, idempotencyKey?: string) {\n const result = await checkAccess(input, idempotencyKey);\n assertPermitAllowed(result.decision);\n return result;\n }\n\n async function canAccess(input: RequireAccessInput, idempotencyKey?: string) {\n try {\n await requireAccess(input, idempotencyKey);\n return true;\n } catch {\n return false;\n }\n }\n\n return {\n normalizePrincipal: normalizeCanonicalPrincipalIdentity,\n checkAccess,\n requireAccess,\n canAccess,\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 const listRegistry = async (\n query: GatewayScope & {\n effective?: boolean;\n status?: \"active\" | \"disabled\" | \"archived\";\n } = {},\n ) => {\n return gateway\n .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 })\n .then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"registryEntries\"),\n ),\n );\n };\n\n const createRegistryEntry = async (\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 const updateRegistryEntry = createRegistryEntry;\n const upsertRegistry = createRegistryEntry;\n const getRegistry = listRegistry;\n\n const listGrants = async (\n query: GatewayScope & {\n audienceKey?: string;\n principalId?: string;\n groupId?: string;\n status?: \"active\" | \"revoked\" | \"expired\";\n } = {},\n ) => {\n return gateway\n .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 })\n .then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"grants\"),\n ),\n );\n };\n\n const createGrant = async (\n input: AudienceGrantInput,\n idempotencyKey?: string,\n ) => {\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 const getGrants = listGrants;\n const grant = createGrant;\n const deleteGrant = async (\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 const revokeGrant = deleteGrant;\n\n return {\n /**\n * List audience registry entries.\n */\n listRegistry,\n\n /**\n * @deprecated Use listRegistry.\n */\n getRegistry,\n\n /**\n * Create an audience registry entry.\n */\n createRegistryEntry,\n\n /**\n * Update an audience registry entry.\n */\n updateRegistryEntry,\n\n /**\n * @deprecated Use createRegistryEntry or updateRegistryEntry.\n */\n upsertRegistry,\n\n /**\n * List audience grants.\n */\n listGrants,\n\n /**\n * @deprecated Use listGrants.\n */\n getGrants,\n\n /**\n * Create an audience grant.\n */\n createGrant,\n\n /**\n * @deprecated Use createGrant.\n */\n grant,\n\n /**\n * Delete an audience grant by revoking it.\n */\n deleteGrant,\n\n /**\n * @deprecated Use deleteGrant.\n */\n revokeGrant,\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { TopicIdentifierInput } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the audit client. */\nexport type AuditClientConfig = GatewayClientConfig;\n\n/**\n * Create the audit client for transport-level audit event reads.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list audit events.\n */\nexport function createAuditClient(config: AuditClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List audit events for the current scope.\n */\n async listEvents(\n query: GatewayScope & {\n action?: string;\n decision?: string;\n traceId?: string;\n principalId?: string;\n topicId?: string;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audit/events${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"events\")\n )\n );\n },\n };\n}\n","import type { GatewayClientConfig } from \"./coreClient\";\n\nexport type DeviceCodeInput = {\n clientId?: string;\n scope?: string;\n};\n\nexport type DeviceCodeResponse = {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete: string;\n expires_in: number;\n interval: number;\n};\n\nexport type DeviceTokenResponse = {\n access_token: string;\n token_type: \"Bearer\";\n expires_in: number;\n scope: string;\n tenant_id: string;\n workspace_id?: string;\n principal_id: string;\n user?: {\n id: string;\n principalId: string;\n };\n};\n\nexport type DeviceTokenErrorCode =\n | \"authorization_pending\"\n | \"slow_down\"\n | \"access_denied\"\n | \"expired_token\"\n | \"invalid_grant\"\n | \"invalid_request\";\n\nexport class DeviceAuthorizationError extends Error {\n readonly error: DeviceTokenErrorCode;\n readonly interval?: number;\n\n constructor(args: {\n error: DeviceTokenErrorCode;\n description?: string;\n interval?: number;\n }) {\n super(args.description ?? args.error);\n this.name = \"DeviceAuthorizationError\";\n this.error = args.error;\n this.interval = args.interval;\n }\n}\n\nfunction authBaseUrl(config: GatewayClientConfig): string {\n return config.baseUrl?.replace(/\\/+$/, \"\") ?? \"\";\n}\n\nasync function readJson(response: Response): Promise<Record<string, unknown>> {\n try {\n const payload = (await response.json()) as unknown;\n return isRecord(payload) ? payload : {};\n } catch (error) {\n return unreadableJsonBodyFallback(error);\n }\n}\n\nfunction unreadableJsonBodyFallback(_error: unknown): Record<string, unknown> {\n return {};\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction readString(value: unknown): string | undefined {\n const normalized = typeof value === \"string\" ? value.trim() : \"\";\n return normalized || undefined;\n}\n\nfunction assertDeviceCodeResponse(payload: Record<string, unknown>): DeviceCodeResponse {\n const deviceCode = readString(payload.device_code);\n const userCode = readString(payload.user_code);\n const verificationUri = readString(payload.verification_uri);\n const verificationUriComplete = readString(payload.verification_uri_complete);\n const expiresIn = payload.expires_in;\n const interval = payload.interval;\n if (\n !deviceCode ||\n !userCode ||\n !verificationUri ||\n !verificationUriComplete ||\n typeof expiresIn !== \"number\" ||\n typeof interval !== \"number\"\n ) {\n throw new Error(\"Gateway returned an invalid device-code response.\");\n }\n return {\n device_code: deviceCode,\n user_code: userCode,\n verification_uri: verificationUri,\n verification_uri_complete: verificationUriComplete,\n expires_in: expiresIn,\n interval,\n };\n}\n\nfunction assertDeviceTokenResponse(\n payload: Record<string, unknown>\n): DeviceTokenResponse {\n const accessToken = readString(payload.access_token);\n const tokenType = readString(payload.token_type);\n const scope = readString(payload.scope);\n const tenantId = readString(payload.tenant_id);\n const principalId = readString(payload.principal_id);\n if (\n !accessToken ||\n tokenType !== \"Bearer\" ||\n typeof payload.expires_in !== \"number\" ||\n !scope ||\n !tenantId ||\n !principalId\n ) {\n throw new Error(\"Gateway returned an invalid device token response.\");\n }\n return {\n access_token: accessToken,\n token_type: \"Bearer\",\n expires_in: payload.expires_in,\n scope,\n tenant_id: tenantId,\n workspace_id: readString(payload.workspace_id),\n principal_id: principalId,\n user:\n isRecord(payload.user) &&\n typeof payload.user.id === \"string\" &&\n typeof payload.user.principalId === \"string\"\n ? {\n id: payload.user.id,\n principalId: payload.user.principalId,\n }\n : undefined,\n };\n}\n\nfunction maybeThrowDeviceError(payload: Record<string, unknown>): never {\n const error = readString(payload.error) as DeviceTokenErrorCode | undefined;\n throw new DeviceAuthorizationError({\n error: error ?? \"invalid_request\",\n description: readString(payload.error_description),\n interval:\n typeof payload.interval === \"number\" ? payload.interval : undefined,\n });\n}\n\nexport function createAuthDeviceClient(config: GatewayClientConfig = {}) {\n const fetchImpl = config.fetchImpl ?? fetch;\n const baseUrl = authBaseUrl(config);\n\n async function post(path: string, body: Record<string, unknown>) {\n return fetchImpl(`${baseUrl}${path}`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n }\n\n return {\n async createDeviceCode(input: DeviceCodeInput = {}) {\n const response = await post(\"/api/platform/v1/auth/device/code\", {\n client_id: input.clientId ?? \"lucern-cli\",\n scope: input.scope ?? \"graph.read graph.write\",\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceCodeResponse(payload);\n },\n async pollDeviceToken(deviceCode: string) {\n const response = await post(\"/api/platform/v1/auth/device/token\", {\n grant_type: \"urn:ietf:params:oauth:grant-type:device_code\",\n device_code: deviceCode,\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceTokenResponse(payload);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport {\n type Opinion,\n} from \"./opinion\";\nimport { normalizeNodeWriteInput } from \"./sdkSurface\";\nimport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n JsonObject,\n ModulateConfidenceResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n ModulateConfidenceResponse,\n} from \"./types\";\nexport type { Opinion } from \"./opinion\";\n\n/** Configuration for the beliefs client. Inherits gateway transport settings. */\nexport type BeliefsClientConfig = GatewayClientConfig;\n\nexport type OpinionHistoryEntry = {\n t: number;\n b: number;\n d: number;\n u: number;\n a: number;\n P: number;\n trigger: string;\n triggeringRef?: {\n kind: \"evidence\" | \"question\" | \"answer\" | \"contradiction\" | \"worktree\";\n id: string;\n };\n rationale?: string;\n userId?: string;\n slOperator?: string;\n};\n\ntype GatewayRecord = Record<string, unknown>;\n\nfunction asRecord(value: unknown): GatewayRecord {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as GatewayRecord)\n : {};\n}\n\nfunction readString(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : undefined;\n}\n\nfunction readNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction clamp01(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction normalizeOpinionTuple(record: GatewayRecord): {\n b: number;\n d: number;\n u: number;\n a: number;\n} {\n const opinion = asRecord(record.opinion);\n const rawBelief = readNumber(opinion.b) ?? readNumber(record.belief);\n const rawDisbelief = readNumber(opinion.d) ?? readNumber(record.disbelief);\n const rawUncertainty = readNumber(opinion.u) ?? readNumber(record.uncertainty);\n const rawBaseRate = readNumber(opinion.a) ?? readNumber(record.baseRate);\n\n if (\n rawBelief === undefined ||\n rawDisbelief === undefined ||\n rawUncertainty === undefined ||\n rawBaseRate === undefined\n ) {\n throw new Error(\n \"Gateway opinion history entries must include belief, disbelief, uncertainty, and baseRate.\"\n );\n }\n\n return {\n b: clamp01(rawBelief),\n d: clamp01(rawDisbelief),\n u: clamp01(rawUncertainty),\n a: clamp01(rawBaseRate),\n };\n}\n\nexport function mapOpinionHistoryEntriesFromGatewayData(\n payload: GatewayRecord\n): OpinionHistoryEntry[] {\n const entries = Array.isArray(payload.entries) ? payload.entries : [];\n return entries\n .map((value) => {\n const record = asRecord(value);\n const tuple = normalizeOpinionTuple(record);\n const projected =\n readNumber(record.confidence) ?? clamp01(tuple.b + tuple.a * tuple.u);\n const triggeringEvidenceId = readString(record.triggeringEvidenceId);\n const triggeringQuestionId = readString(record.triggeringQuestionId);\n const triggeringAnswerId = readString(record.triggeringAnswerId);\n const triggeringContradictionId = readString(\n record.triggeringContradictionId\n );\n const triggeringWorktreeId = readString(record.triggeringWorktreeId);\n const triggeringRef = triggeringEvidenceId\n ? ({ kind: \"evidence\", id: triggeringEvidenceId } as const)\n : triggeringQuestionId\n ? ({ kind: \"question\", id: triggeringQuestionId } as const)\n : triggeringAnswerId\n ? ({ kind: \"answer\", id: triggeringAnswerId } as const)\n : triggeringContradictionId\n ? ({ kind: \"contradiction\", id: triggeringContradictionId } as const)\n : triggeringWorktreeId\n ? ({ kind: \"worktree\", id: triggeringWorktreeId } as const)\n : undefined;\n const trigger = readString(record.trigger);\n if (!trigger) {\n throw new Error(\"Gateway opinion history entries must include trigger.\");\n }\n\n return {\n t: readNumber(record.timestamp) ?? readNumber(record.assessedAt) ?? 0,\n b: tuple.b,\n d: tuple.d,\n u: tuple.u,\n a: tuple.a,\n P: clamp01(projected),\n trigger,\n ...(triggeringRef ? { triggeringRef } : {}),\n ...(readString(record.rationale)\n ? { rationale: readString(record.rationale)! }\n : {}),\n ...(readString(record.userId) ? { userId: readString(record.userId)! } : {}),\n ...(readString(record.slOperator)\n ? { slOperator: readString(record.slOperator)! }\n : {}),\n };\n })\n .sort((left, right) => left.t - right.t);\n}\n\n/**\n * Input for creating a new belief within a topic scope.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n * Beliefs start as drafts with a vacuous prior `(0, 0, 1, a)`. When omitted,\n * `baseRate` defaults to the canonical neutral prior `0.5`.\n */\nexport type CreateBeliefInput = {\n topicId?: string;\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n layer?: \"L1\" | \"L2\" | \"L3\" | \"L4\";\n domain?: string;\n sourceType?: \"human\" | \"ai\" | \"agent\" | \"imported\";\n content?: string;\n contentHash?: string;\n globalId?: string;\n title?: string;\n subtype?: string;\n confidence?: number;\n baseRate?: number;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: \"unverified\" | \"verified\" | \"rejected\";\n};\n\n/**\n * Input for refining an existing draft belief.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n */\nexport type RefineBeliefInput = {\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n rationale?: string;\n title?: string;\n};\n\ntype BeliefConfidenceTrigger =\n | \"evidence_added\"\n | \"evidence_removed\"\n | \"contradiction_detected\"\n | \"contradiction_resolved\"\n | \"agent_assessment\"\n | \"worktree_outcome\"\n | \"worktree_completed\"\n | \"fusion\"\n | \"discount\"\n | \"deduction\";\n\ntype ModulateConfidenceInputBase = {\n trigger: BeliefConfidenceTrigger;\n rationale: string;\n triggeringEvidenceId?: string;\n triggeringQuestionId?: string;\n triggeringAnswerId?: string;\n triggeringContradictionId?: string;\n triggeringWorktreeId?: string;\n maxInlinePropagationTargets?: number;\n};\n\n/**\n * Record an append-only confidence change using an explicit subjective-logic\n * opinion tuple.\n */\nexport type ModulateConfidenceOpinionInput = ModulateConfidenceInputBase & {\n opinion: Opinion;\n};\n\nexport type ModulateConfidenceInput = ModulateConfidenceOpinionInput;\n\nfunction normalizeModulateConfidenceInput(\n input: ModulateConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\n/**\n * Input for forking a scored belief into a new formulation.\n * Scored beliefs are immutable — fork to evolve understanding.\n */\nexport type ForkBeliefInput = {\n newFormulation: string;\n forkReason?:\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n rationale?: string;\n};\n\n/** Input for changing a belief's lifecycle status. */\nexport type UpdateBeliefStatusInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n status: \"active\" | \"superseded\" | \"archived\";\n reason?: string;\n};\n\n/** Input for updating a belief's rationale without refining its text. */\nexport type UpdateBeliefRationaleInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n rationale?: string;\n};\n\n/** Input for creating a belief-to-belief reasoning edge. */\nexport type LinkBeliefsInput = {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n weight?: number;\n context?: string;\n};\n\n/** Input for unlinking a belief from an attached evidence item. */\nexport type UnlinkBeliefEvidenceInput = {\n beliefNodeId?: string;\n beliefId?: string;\n nodeId?: string;\n insightId?: string;\n evidenceId?: string;\n};\n\n/** Input for updating a belief's criticality classification. */\nexport type UpdateBeliefCriticalityInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n};\n\n/** Input for bulk-updating multiple beliefs' criticality. */\nexport type BatchUpdateBeliefCriticalityInput = {\n updates: Array<{\n beliefId: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n ifFalseImpact?: string;\n triagePriority?: number;\n reasoning?: string;\n dependentBeliefIds?: string[];\n blockedByBeliefIds?: string[];\n }>;\n};\n\n/** Input for moving beliefs into a different topic scope. */\nexport type ReassignBeliefsTopicInput = {\n beliefNodeIds?: string[];\n beliefIds?: string[];\n targetTopicId: string;\n reason?: string;\n};\n\n/**\n * Create the beliefs client for belief lifecycle operations.\n *\n * @param config - Gateway transport configuration.\n * @returns An object with `createBelief`, `refineBelief`, `modulateConfidence`, and `forkBelief` methods.\n */\nexport function createBeliefsClient(config: BeliefsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n function normalizeBaseRate(value: unknown): number {\n const baseRate = readNumber(value);\n const normalized = baseRate ?? 0.5;\n if (normalized < 0 || normalized > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return normalized;\n }\n const modulateConfidence: {\n (\n beliefId: string,\n input: ModulateConfidenceOpinionInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<ModulateConfidenceResponse>>;\n } = async (\n beliefId: string,\n input: ModulateConfidenceInput,\n idempotencyKey?: string\n ) =>\n gateway.request<ModulateConfidenceResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence`,\n method: \"POST\",\n body: normalizeModulateConfidenceInput(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n const getOpinionHistory = async (\n beliefId: string\n ): Promise<OpinionHistoryEntry[]> => {\n const response = await gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence-history`,\n });\n return mapOpinionHistoryEntriesFromGatewayData(response.data);\n };\n\n return {\n /**\n * Create a belief within a topic scope.\n */\n async createBelief(input: CreateBeliefInput, idempotencyKey?: string) {\n const baseRate = normalizeBaseRate(input.baseRate);\n return gateway.request<CreateBeliefResponse>({\n path: \"/api/platform/v1/beliefs\",\n method: \"POST\",\n body: {\n ...(normalizeNodeWriteInput(input) as JsonObject),\n baseRate,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Refine a draft belief in place.\n */\n async refineBelief(\n beliefId: string,\n input: RefineBeliefInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBeliefResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}`,\n method: \"PATCH\",\n body: normalizeNodeWriteInput(input as JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Record a confidence change for an existing belief.\n */\n modulateConfidence,\n\n /**\n * Returns the belief's confidence trajectory as a chronological array.\n *\n * Canonical UI trend shape (what every trend component consumes):\n * { t: number, b: number, d: number, u: number, a: number, P: number, trigger: string, triggeringRef?: { kind: \"evidence\" | \"worktree\"; id: string } }[]\n *\n * Where:\n * t = assessedAt (epoch ms)\n * b, d, u, a = Opinion 4-tuple components\n * P = projected probability = b + a*u (precomputed for UI convenience)\n * trigger = cause of the score change\n * triggeringRef = optional pointer to the evidence or worktree that drove the change\n */\n getOpinionHistory,\n\n /** @deprecated Use getOpinionHistory(). */\n getConfidenceHistory: getOpinionHistory,\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 type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport type { JsonObject } from \"./types\";\nimport type { AddWorktreeInput, CompleteTaskInput, MergeInput, UpdateTaskInput } from \"./workflowClient\";\n\nexport function createClientGraphNamespaces(ctx: ClientNamespaceContext) {\n const {\n accessControlClient,\n addEvidence,\n adminClient,\n answersClient,\n archiveOntologyCompat,\n auditClient,\n authDeviceClient,\n beliefsClient,\n beliefsFacade,\n bisectConfidence,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n decisionsClient,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n evaluateContractCompat,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n extensionNamespaces,\n findContradictions,\n functionSurfaceClient,\n gateway,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n getPackInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n invokeCustomTool,\n jobsClient,\n learningClient,\n listBeliefs,\n listContractsCompat,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n nodesNamespace,\n ontologiesFacade,\n ontologyClient,\n ontologyLinksClient,\n ontologyLinksNamespace,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n publicationNamespace,\n publishOntologyVersionCompat,\n questionsFacade,\n queryLineage,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveEffectiveOntologyCompat,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n searchBeliefs,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n traceEntityImpactCompat,\n triggerBeliefReview,\n unregisterCustomTool,\n updateOntologyCompat,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n } = ctx;\n\n return {\n graph: {\n nodes: nodesNamespace,\n createEdge: graphClient.createEdge,\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: any) => value.trim())\n .filter((value: any) => 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 graphFacade.bias({\n topicId,\n threshold,\n limit: 200,\n }).then((response: any) => ({\n ...response,\n topicId,\n threshold: threshold ?? 0.7,\n }));\n },\n getStructureAnalysis(topicId: string) {\n return graphFacade.analyze({\n topicId,\n limit: 200,\n }).then((response: any) => ({\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: any) => ({\n topicId,\n questions: response.questions,\n }));\n },\n },\n themes: {\n listByTopic(input: {\n topicId?: string;\n projectId?: string;\n query?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/themes${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n query: input.query,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n graphSearch: {\n keywordSearchNodes(input: {\n topicId?: string;\n projectId?: string;\n query?: string;\n sourceText?: string;\n nodeType?: string;\n nodeTypes?: string[];\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph-search/keyword-nodes\",\n method: \"POST\",\n body: {\n ...input,\n topicId: requireTopicOrProjectId(input),\n projectId: undefined,\n },\n })\n .then(exposeGatewayData);\n },\n },\n classifiers: {\n listBeliefCandidates(input: {\n topicId?: string;\n projectId?: string;\n classifierKey?: string;\n query?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/classifiers/belief-candidates${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n classifierKey: input.classifierKey,\n query: input.query,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n archetypes: {\n getJudgmentSignature(input: {\n topicId?: string;\n projectId?: string;\n principalId?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/archetypes/judgment-signature${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n principalId: input.principalId,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n };\n}\n","import type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type {\n BeliefsCompatCreateInput,\n BeliefsCompatForkInput,\n BeliefsCompatUpdateConfidenceInput,\n} from \"./clientConfig\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport type { JsonObject } from \"./types\";\nimport type { AddWorktreeInput, CompleteTaskInput, MergeInput, UpdateTaskInput } from \"./workflowClient\";\n\nexport function createClientKnowledgeNamespaces(ctx: ClientNamespaceContext) {\n const {\n accessControlClient,\n addEvidence,\n adminClient,\n answersClient,\n archiveOntologyCompat,\n auditClient,\n authDeviceClient,\n beliefsClient,\n beliefsFacade,\n bisectConfidence,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n decisionsClient,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n evaluateContractCompat,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n extensionNamespaces,\n findContradictions,\n functionSurfaceClient,\n gateway,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n getPackInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n invokeCustomTool,\n jobsClient,\n learningClient,\n listBeliefs,\n listContractsCompat,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n nodesNamespace,\n ontologiesFacade,\n ontologyClient,\n ontologyLinksClient,\n ontologyLinksNamespace,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n publicationNamespace,\n publishOntologyVersionCompat,\n questionsFacade,\n queryLineage,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveEffectiveOntologyCompat,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n searchBeliefs,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n traceEntityImpactCompat,\n triggerBeliefReview,\n unregisterCustomTool,\n updateOntologyCompat,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n } = ctx;\n\n return {\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 recordEvent: eventingClient.recordEvent,\n listEvents: eventingClient.listEvents,\n listWebhooks: eventingClient.listWebhooks,\n enqueueDelivery: eventingClient.enqueueDelivery,\n recordDeliveryAttempt: eventingClient.recordDeliveryAttempt,\n updateDeliveryStatus: eventingClient.updateDeliveryStatus,\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 = buildBeliefsRefinePayload(textOrInput, rationale);\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 = buildBeliefsArchivePayload(input);\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: getOpinionHistory,\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: FunctionSurfaceInput & {\n from?: unknown;\n to?: unknown;\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 }, idempotencyKey?: string) {\n if (args.from && args.to) {\n return functionSurfaceClient\n .createEdge(args, idempotencyKey)\n .then(exposeGatewayData);\n }\n if (!args.sourceId || !args.targetId) {\n throw new Error(\"from/to graph refs or sourceId/targetId are required\");\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 createEdge(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .createEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient\n .updateEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateEdge(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .updateEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n remove(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient\n .removeEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n removeEdge(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .removeEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n removeBetween(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient\n .removeEdgesBetween(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n removeEdgesBetween(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .removeEdgesBetween(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreate(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient\n .batchCreateEdges(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreateEdges(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .batchCreateEdges(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 createEvidence(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: any) => ({\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: any) => ({\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 questionsFacade\n .list({\n topicId: requireTopicId(args),\n status: args.includeAnswered ? undefined : \"open\",\n })\n .then(exposeGatewayData)\n .then((data: any) => {\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 };\n}\n","import type { PlatformGatewaySuccess } from \"./coreClient\";\nimport { resolveText, resolveTopicId } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport type EvidenceCompatInput = {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n rationale?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n};\n\ntype EvidenceFacadeLike = {\n create(args: {\n topicId?: string;\n text: string;\n source?: string;\n targetId?: string;\n weight?: number;\n rationale: string;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n }): Promise<PlatformGatewaySuccess<Record<string, unknown>>>;\n link(args: {\n evidenceId: string;\n targetId: string;\n weight: number;\n rationale?: string;\n }): Promise<PlatformGatewaySuccess<{ edgeId?: string }>>;\n};\n\nexport async function createEvidenceCompat(\n evidenceFacade: EvidenceFacadeLike,\n args: EvidenceCompatInput,\n) {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n const rationale = args.rationale ?? args.supports?.reasoning;\n if (!rationale) {\n throw new Error(\"rationale is required\");\n }\n const metadata = {\n ...(args.metadata ?? {}),\n rationale,\n } as JsonObject;\n\n return evidenceFacade.create({\n topicId: resolveTopicId(args),\n text,\n source: args.source ?? args.sourceUrl,\n targetId: args.targetId ?? args.supports?.nodeId,\n weight: args.weight ?? args.supports?.weight,\n rationale,\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n title: args.title,\n content: args.content,\n contentType: args.contentType,\n kind: args.kind,\n });\n}\n\nexport async function addEvidenceCompat(\n evidenceFacade: EvidenceFacadeLike,\n args: EvidenceCompatInput,\n) {\n const created = await createEvidenceCompat(evidenceFacade, {\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","import { asListItems, resolveText, resolveTopicId } from \"./sdkSurface\";\nimport type { JsonObject, PlatformGraphEdge, PlatformGraphNode } from \"./types\";\n\nexport type NodeLike = PlatformGraphNode;\nexport type EdgeLike = PlatformGraphEdge;\nexport type CustomToolInput = JsonObject;\nexport type BeliefsRefineInput =\n | string\n | { text: string; rationale?: string };\nexport type BeliefsArchiveInput = { reason?: string; rationale?: string } | string;\n\nexport function normalizeCustomNamespace(namespace: string): string {\n return namespace.trim() || \"custom\";\n}\n\nexport function normalizeCustomToolPayload(input: unknown): CustomToolInput {\n return input && typeof input === \"object\" && !Array.isArray(input)\n ? (input as CustomToolInput)\n : {};\n}\n\nexport function resolveCustomToolFullName(name: string): string {\n return name.includes(\".\") ? name : `custom.${name}`;\n}\n\nexport function buildBeliefsRefinePayload(\n textOrInput: BeliefsRefineInput,\n rationale?: string\n): { text: string; rationale?: string } {\n return typeof textOrInput === \"string\"\n ? { text: textOrInput, rationale }\n : { text: textOrInput.text, rationale: textOrInput.rationale };\n}\n\nexport function buildBeliefsArchivePayload(\n input?: BeliefsArchiveInput\n): { reason?: string } | undefined {\n return typeof input === \"string\"\n ? { reason: input }\n : input\n ? { reason: input.reason ?? input.rationale }\n : undefined;\n}\n\nexport function 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\nexport function 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\nexport function 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\nexport function requireTopicOrProjectId(args: {\n topicId?: string;\n projectId?: string;\n}): string {\n const topicId =\n args.topicId?.trim() || args.projectId?.trim() || undefined;\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\nexport function matchesAuditNodeReference(\n value: unknown,\n nodeId: string\n): 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\nexport function 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\nexport function requireBaseRate(args: { baseRate?: number }): number {\n const baseRate =\n typeof args.baseRate === \"number\" && Number.isFinite(args.baseRate)\n ? args.baseRate\n : 0.5;\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return baseRate;\n}\n\nexport function sdkQueryString(input: Record<string, unknown>): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n if (value.length > 0) {\n params.set(key, value.join(\",\"));\n }\n continue;\n }\n params.set(key, String(value));\n }\n const serialized = params.toString();\n return serialized ? `?${serialized}` : \"\";\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 { mapOpinionHistoryEntriesFromGatewayData, type OpinionHistoryEntry } from \"./beliefsClient\";\nimport {\n addEvidenceCompat,\n createEvidenceCompat,\n type EvidenceCompatInput,\n} from \"./clientEvidenceCompat\";\nimport {\n asNodeArray,\n matchesAuditNodeReference,\n normalizeCustomNamespace,\n normalizeCustomToolPayload,\n requireTopicId,\n requireTopicOrProjectId,\n sdkQueryString,\n} from \"./clientHelpers\";\nimport type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type { CustomToolInput, CustomToolNamespace } from \"./clientConfig\";\nimport {\n randomIdempotencyKey,\n toQueryString,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport {\n clearRegisteredCustomTools,\n invokeRegisteredCustomTool,\n listRegisteredCustomTools,\n registerCustomTool,\n unregisterCustomTool,\n} from \"./customTools\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport { asListItems, resolveTopicId } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport function createClientLocalHelpers(ctx: ClientNamespaceContext) {\n const {\n auditClient,\n beliefsFacade,\n customNamespaceCache,\n evidenceFacade,\n exposeGatewayData,\n graphClient,\n graphFacade,\n gateway,\n functionSurfaceClient,\n ontologyClient,\n ontologyLinksClient,\n searchFacade,\n } = ctx;\n\n const invokeCustomTool = async (\n fullName: string,\n input: CustomToolInput = {}\n ): Promise<unknown> => {\n const payload = normalizeCustomToolPayload(input);\n return invokeRegisteredCustomTool(fullName, payload, { source: \"sdk\" });\n };\n\n const getCustomNamespace = (namespace: string): CustomToolNamespace => {\n const normalized = normalizeCustomNamespace(namespace);\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 const createEvidence = (args: EvidenceCompatInput) =>\n createEvidenceCompat(evidenceFacade, args);\n\n const addEvidence = (args: EvidenceCompatInput) =>\n addEvidenceCompat(evidenceFacade, args);\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.listNodes({ 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: any, index: number) => ({\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: graphClient.listNodes,\n get(input: string | Parameters<typeof graphClient.getNode>[0]) {\n return graphClient.getNode(\n typeof input === \"string\" ? { nodeId: input } : input\n );\n },\n create(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .createEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n createEpistemicNode(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .createEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .updateEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateEpistemicNode(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .updateEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreate(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .batchCreateEpistemicNodes(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreateEpistemicNodes(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .batchCreateEpistemicNodes(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n listByTopicAndType(input: {\n topicId?: string;\n projectId?: string;\n nodeType?: string;\n nodeTypes?: string[];\n query?: string;\n sourceText?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/nodes${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n nodeType: input.nodeType,\n nodeTypes: input.nodeTypes,\n query: input.query,\n sourceText: input.sourceText,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n countByTopicAndType(input: {\n topicId?: string;\n projectId?: string;\n nodeType?: string;\n nodeTypes?: string[];\n query?: string;\n limit?: number;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/nodes/count${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n nodeType: input.nodeType,\n nodeTypes: input.nodeTypes,\n query: input.query,\n limit: input.limit,\n })}`,\n })\n .then(exposeGatewayData);\n },\n supersede(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .supersedeEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n verify(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .verifyEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n archive(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .archiveEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n hardDelete: graphClient.hardDeleteNode,\n };\n\n const publicationNamespace = {\n create(input: JsonObject, idempotencyKey?: string) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/publication\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n update(\n publicationId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n list(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication${sdkQueryString(input)}`,\n })\n .then(exposeGatewayData);\n },\n getByTopic(input: string | { topicId: string; workspaceId?: string }) {\n const topicId = typeof input === \"string\" ? input : input.topicId;\n const workspaceId = typeof input === \"string\" ? undefined : input.workspaceId;\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/by-topic/${encodeURIComponent(\n topicId\n )}${sdkQueryString({ workspaceId })}`,\n })\n .then(exposeGatewayData);\n },\n publish(\n publicationId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}/publish`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n unpublish(\n publicationId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}/unpublish`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n remove(publicationId: string, input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}${sdkQueryString(input)}`,\n method: \"DELETE\",\n })\n .then(exposeGatewayData);\n },\n };\n\n const ontologyLinksNamespace = {\n ...ontologyLinksClient,\n resolveThemeSource(input: JsonObject) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontology-links/theme-source\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n },\n };\n\n return {\n addEvidence,\n archiveOntologyCompat,\n bisectConfidence,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n evaluateContractCompat,\n extensionNamespaces,\n findContradictions,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n invokeCustomTool,\n listBeliefs,\n listContractsCompat,\n nodesNamespace,\n ontologyLinksNamespace,\n publicationNamespace,\n publishOntologyVersionCompat,\n queryLineage,\n resolveEffectiveOntologyCompat,\n searchBeliefs,\n searchResources,\n traceEntityImpactCompat,\n triggerBeliefReview,\n updateOntologyCompat,\n };\n}\n","import type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type { CustomToolInput } from \"./clientConfig\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport type { JsonObject } from \"./types\";\nimport type { AddWorktreeInput, CompleteTaskInput, MergeInput, UpdateTaskInput } from \"./workflowClient\";\n\nexport function createClientPlatformNamespaces(ctx: ClientNamespaceContext) {\n const {\n accessControlClient,\n addEvidence,\n adminClient,\n answersClient,\n archiveOntologyCompat,\n auditClient,\n authDeviceClient,\n audiencesClient,\n beliefsClient,\n beliefsFacade,\n bisectConfidence,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n decisionsClient,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n evaluateContractCompat,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n extensionNamespaces,\n findContradictions,\n functionSurfaceClient,\n gateway,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n getPackInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n invokeCustomTool,\n jobsClient,\n learningClient,\n listBeliefs,\n listContractsCompat,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n nodesNamespace,\n ontologiesFacade,\n ontologyClient,\n ontologyLinksClient,\n ontologyLinksNamespace,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n publicationNamespace,\n publishOntologyVersionCompat,\n questionsFacade,\n queryLineage,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveEffectiveOntologyCompat,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n searchBeliefs,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n traceEntityImpactCompat,\n triggerBeliefReview,\n unregisterCustomTool,\n updateOntologyCompat,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n } = ctx;\n\n return {\n coordination: {\n registerSession: functionSurfaceClient.registerSession,\n heartbeatSession: functionSurfaceClient.heartbeatSession,\n endSession: functionSurfaceClient.endSession,\n listActiveSessions: functionSurfaceClient.listActiveSessions,\n sendAgentMessage: functionSurfaceClient.sendAgentMessage,\n broadcastMessage: functionSurfaceClient.broadcastMessage,\n getInbox: functionSurfaceClient.getAgentInbox,\n getAgentInbox: functionSurfaceClient.getAgentInbox,\n claimFiles: functionSurfaceClient.claimFiles,\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 // Backward compatibility shim: keep the policy namespace exposing the\n // historical manageWritePolicy entry point.\n manageWritePolicy(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.manageWritePolicy(input, idempotencyKey);\n },\n raw: policyClient,\n },\n observations: {\n ingest: functionSurfaceClient.ingestObservation,\n ingestObservation: functionSurfaceClient.ingestObservation,\n getContext: functionSurfaceClient.getObservationContext,\n getObservationContext: functionSurfaceClient.getObservationContext,\n },\n coding: {\n getCodeContext: functionSurfaceClient.getCodeContext,\n getChangeHistory: functionSurfaceClient.getChangeHistory,\n recordAttempt: functionSurfaceClient.recordAttempt,\n getFailureLog: functionSurfaceClient.getFailureLog,\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: functionSurfaceClient.generateSessionHandoff,\n },\n embeddings: embeddingsClient,\n graphAnalysis: graphAnalysisClient,\n graphRecommendations: graphRecommendationsClient,\n orgGraphSearch: orgGraphSearchClient,\n ontologyLinks: ontologyLinksNamespace,\n graphStateClassifier: graphStateClassifierClient,\n modelRuntime: modelRuntimeClient,\n jobs: jobsClient,\n telemetry: telemetryClient,\n publication: publicationNamespace,\n contentPublication: publicationNamespace,\n tools: {\n listCatalog: toolRegistryClient.listCatalog,\n listExecutable: toolRegistryClient.listExecutable,\n listEffectiveTools: toolRegistryClient.listEffectiveTools,\n upsertCoreTools: toolRegistryClient.upsertCoreTools,\n setPackToolsStatus: toolRegistryClient.setPackToolsStatus,\n createAcl: toolRegistryClient.createAcl,\n deleteAcl: toolRegistryClient.deleteAcl,\n registerCustomTool: toolRegistryClient.registerCustomTool,\n register: registerCustomTool,\n unregister: unregisterCustomTool,\n list: listRegisteredCustomTools,\n clear: clearRegisteredCustomTools,\n invoke(name: string, input: CustomToolInput = {}) {\n const fullName = resolveCustomToolFullName(name);\n return invokeCustomTool(fullName, input);\n },\n namespace: getCustomNamespace,\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 getPackInstalled();\n },\n listCatalog: packsClient.listCatalog,\n catalog: packsClient.listCatalog,\n listStates: packsClient.listStates,\n states: packsClient.getStates,\n install: packsClient.install,\n enable: packsClient.enable,\n disable: packsClient.disable,\n },\n nodes: nodesNamespace,\n controlPlane: {\n identity: {\n resolveInteractivePrincipal:\n controlPlaneClient.identity.resolveInteractivePrincipal,\n },\n raw: controlPlaneClient,\n },\n identity: {\n whoami: identityFacade.whoami,\n ...identityFacade,\n access: accessControlClient,\n resolveInteractivePrincipal: identityClient.resolveInteractivePrincipal,\n evaluatePolicy: identityClient.evaluatePolicy,\n recordPolicyDecision: identityClient.recordPolicyDecision,\n putSecretReference: identityClient.putSecretReference,\n createPrincipal: identityClient.createPrincipal,\n updatePrincipal: identityClient.updatePrincipal,\n raw: identityClient,\n },\n mcp: {\n bootstrapSession: mcpClient.bootstrapSession,\n checkWritePolicy: mcpClient.checkWritePolicy,\n beginBuildSession: mcpClient.beginBuildSession,\n evaluateEngineeringContract: mcpClient.evaluateEngineeringContract,\n evaluateResearchContract: mcpClient.evaluateResearchContract,\n },\n auth: {\n device: {\n createCode: authDeviceClient.createDeviceCode,\n pollToken: authDeviceClient.pollDeviceToken,\n },\n },\n custom: getCustomNamespace(\"custom\"),\n extensions: extensionNamespaces,\n raw: {\n beliefs: beliefsClient,\n sources: sourcesClient,\n evidence: evidenceClient,\n embeddings: embeddingsClient,\n eventing: eventingClient,\n graph: graphClient,\n graphAnalysis: graphAnalysisClient,\n graphRecommendations: graphRecommendationsClient,\n graphStateClassifier: graphStateClassifierClient,\n decisions: decisionsClient,\n workflow: workflowClient,\n audit: auditClient,\n authDevice: authDeviceClient,\n admin: adminClient,\n identity: identityClient,\n policy: policyClient,\n answers: answersClient,\n ontology: ontologyClient,\n ontologyLinks: ontologyLinksClient,\n orgGraphSearch: orgGraphSearchClient,\n functionSurface: functionSurfaceClient,\n controlPlane: controlPlaneClient,\n toolRegistry: toolRegistryClient,\n modelRuntime: modelRuntimeClient,\n packs: packsClient,\n reports: reportsClient,\n learning: learningClient,\n mcp: mcpClient,\n jobs: jobsClient,\n telemetry: telemetryClient,\n harness: harnessClient,\n schema: schemaClient,\n audiences: audiencesClient,\n topics: topicsClient,\n },\n };\n}\n","import type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport type { JsonObject } from \"./types\";\nimport type {\n AddWorktreeInput,\n CompleteTaskInput,\n CreateTaskInput,\n MergeInput,\n UpdateTaskInput,\n} from \"./workflowClient\";\n\nexport function createClientWorkflowNamespaces(ctx: ClientNamespaceContext) {\n const {\n accessControlClient,\n addEvidence,\n adminClient,\n answersClient,\n archiveOntologyCompat,\n auditClient,\n authDeviceClient,\n beliefsClient,\n beliefsFacade,\n bisectConfidence,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n decisionsClient,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n evaluateContractCompat,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n extensionNamespaces,\n findContradictions,\n functionSurfaceClient,\n gateway,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n getPackInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n invokeCustomTool,\n jobsClient,\n learningClient,\n listBeliefs,\n listContractsCompat,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n nodesNamespace,\n ontologiesFacade,\n ontologyClient,\n ontologyLinksClient,\n ontologyLinksNamespace,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n publicationNamespace,\n publishOntologyVersionCompat,\n questionsFacade,\n queryLineage,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveEffectiveOntologyCompat,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n searchBeliefs,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n traceEntityImpactCompat,\n triggerBeliefReview,\n unregisterCustomTool,\n updateOntologyCompat,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n } = ctx;\n\n return {\n judgments: {\n create: decisionsClient.createJudgment,\n record: decisionsClient.recordJudgment,\n list: decisionsClient.listJudgments,\n get: decisionsClient.getJudgment,\n recordOutcome: decisionsClient.recordJudgmentOutcome,\n updateOutcome: decisionsClient.updateJudgmentOutcome,\n readiness(topicId: string) {\n return decisionsClient.getJudgmentReadiness({ topicId });\n },\n calibration(topicId: string) {\n return decisionsClient.getJudgmentCalibration({ topicId });\n },\n pendingOutcomeReview(topicId: string) {\n return decisionsClient.listPendingJudgmentOutcomeReview({ topicId });\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 decisions: {\n create: decisionsClient.createJudgment,\n record: decisionsClient.recordJudgment,\n list: decisionsClient.listJudgments,\n get: decisionsClient.getJudgment,\n recordOutcome: decisionsClient.recordJudgmentOutcome,\n lessons(\n decisionId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/decisions/${encodeURIComponent(\n decisionId\n )}/lessons`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n archive(\n decisionId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/decisions/${encodeURIComponent(\n decisionId\n )}/archive`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n readiness(topicId: string) {\n return decisionsClient.getJudgmentReadiness({ topicId });\n },\n calibration(topicId: string) {\n return decisionsClient.getJudgmentCalibration({ topicId });\n },\n pendingOutcomeReview(topicId: string) {\n return decisionsClient.listPendingJudgmentOutcomeReview({ topicId });\n },\n },\n worktrees: {\n createBranch: workflowClient.createBranch,\n createLens: workflowClient.createLens,\n listLenses: workflowClient.listLenses,\n applyLensToTopic: workflowClient.applyLensToTopic,\n removeLensFromTopic: workflowClient.removeLensFromTopic,\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 rationale: input.rationale,\n worktreeType: input.worktreeType,\n startDate: input.startDate,\n endDate: input.endDate,\n durationWeeks: input.durationWeeks,\n confidenceImpact: input.confidenceImpact,\n beliefFocus: input.beliefFocus,\n beliefIds: input.beliefIds,\n targetBeliefIds: input.targetBeliefIds,\n targetQuestionIds: input.targetQuestionIds,\n keyQuestions: input.keyQuestions,\n evidenceSignals: input.evidenceSignals,\n decisionGate: input.decisionGate,\n goCriteria: input.goCriteria,\n noGoSignals: input.noGoSignals,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\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 rationale: input.rationale,\n worktreeType: input.worktreeType,\n startDate: input.startDate,\n endDate: input.endDate,\n durationWeeks: input.durationWeeks,\n confidenceImpact: input.confidenceImpact,\n beliefFocus: input.beliefFocus,\n beliefIds: input.beliefIds,\n targetBeliefIds: input.targetBeliefIds,\n targetQuestionIds: input.targetQuestionIds,\n keyQuestions: input.keyQuestions,\n evidenceSignals: input.evidenceSignals,\n decisionGate: input.decisionGate,\n goCriteria: input.goCriteria,\n noGoSignals: input.noGoSignals,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\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 listByTopic(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 findByPairedSprint(input: {\n sprintId: string;\n topicId?: string;\n projectId?: string;\n limit?: number;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/worktrees/paired-sprint${sdkQueryString({\n sprintId: input.sprintId,\n topicId: input.topicId ?? input.projectId,\n limit: input.limit,\n })}`,\n })\n .then(exposeGatewayData);\n },\n activate(worktreeId: string) {\n return worktreesFacade.activate({ id: worktreeId });\n },\n updateMetadata(input: FunctionSurfaceInput) {\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(\n (value): value is string => typeof value === \"string\"\n )\n : undefined;\n return worktreesFacade.update({\n id: typeof input.worktreeId === \"string\" ? input.worktreeId : \"\",\n hypothesis:\n typeof input.hypothesis === \"string\"\n ? input.hypothesis\n : undefined,\n campaign:\n typeof input.campaign === \"number\" ? input.campaign : undefined,\n lane: typeof input.lane === \"string\" ? input.lane : undefined,\n laneOrderInCampaign:\n typeof input.laneOrderInCampaign === \"number\"\n ? input.laneOrderInCampaign\n : undefined,\n orderInLane:\n typeof input.orderInLane === \"number\"\n ? input.orderInLane\n : undefined,\n dependsOn,\n blocks,\n gate: typeof input.gate === \"string\" ? input.gate : undefined,\n });\n },\n update(input: FunctionSurfaceInput) {\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(\n (value): value is string => typeof value === \"string\"\n )\n : undefined;\n return worktreesFacade.update({\n id: typeof input.worktreeId === \"string\" ? input.worktreeId : \"\",\n hypothesis:\n typeof input.hypothesis === \"string\"\n ? input.hypothesis\n : undefined,\n campaign:\n typeof input.campaign === \"number\" ? input.campaign : undefined,\n lane: typeof input.lane === \"string\" ? input.lane : undefined,\n laneOrderInCampaign:\n typeof input.laneOrderInCampaign === \"number\"\n ? input.laneOrderInCampaign\n : undefined,\n orderInLane:\n typeof input.orderInLane === \"number\"\n ? input.orderInLane\n : undefined,\n dependsOn,\n blocks,\n gate: typeof input.gate === \"string\" ? input.gate : undefined,\n });\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: workflowClient.listAllWorktrees,\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: workflowClient.push,\n openPullRequest: workflowClient.openPullRequest,\n pipelineSnapshot(topicId: string) {\n return functionSurfaceClient.pipelineSnapshot({ topicId });\n },\n complete: worktreesFacade.complete,\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: worktreesFacade.patchState,\n bulkCreate: worktreesFacade.bulkCreate,\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: contextClient.compile,\n recordScopeLearning: functionSurfaceClient.recordScopeLearning,\n discover(input: FunctionSurfaceInput) {\n return discoverTopics(input as JsonObject);\n },\n analyzeTopicDensity: functionSurfaceClient.analyzeTopicDensity,\n applyAutoBranching: functionSurfaceClient.applyAutoBranching,\n seedBeliefLattice: functionSurfaceClient.seedBeliefLattice,\n getLatticeCoverage: functionSurfaceClient.getLatticeCoverage,\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 listByTopic(input: FunctionSurfaceInput & { topicId?: string }) {\n return tasksFacade.list({\n topicId: requireTopicId(input),\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n listByWorktree(input: FunctionSurfaceInput & { worktreeId: string }) {\n return tasksFacade.list({\n topicId:\n typeof input.topicId === \"string\" ? input.topicId : undefined,\n worktreeId: input.worktreeId,\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n linkChat(\n taskId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(\n taskId\n )}/link-chat`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\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: topicsFacade.get,\n create(input: Parameters<typeof topicsClient.create>[0]) {\n return functionSurfaceClient\n .createTopic(input as FunctionSurfaceInput)\n .then(exposeGatewayData);\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: topicsFacade.remove,\n bulkCreate: topicsFacade.bulkCreate,\n materializeGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return functionSurfaceClient\n .materializeTopicGraph(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n materializeTopicGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return functionSurfaceClient\n .materializeTopicGraph(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n graphSpine(input: FunctionSurfaceInput = {}) {\n return functionSurfaceClient\n .getTopicGraphSpine(input)\n .then(exposeGatewayData);\n },\n getTopicGraphSpine(input: FunctionSurfaceInput = {}) {\n return functionSurfaceClient\n .getTopicGraphSpine(input)\n .then(exposeGatewayData);\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: any) => 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: any) => 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 };\n}\n","import type { GatewayClientConfig, PlatformGatewaySuccess } from \"./coreClient\";\nimport type { GatewayDataEnvelope, LucernClientConfig } from \"./clientConfig\";\n\nexport function toGatewayConfig(config: LucernClientConfig): GatewayClientConfig {\n return {\n baseUrl: config.baseUrl,\n fetchImpl: config.fetchImpl,\n apiKey: config.apiKey,\n userToken: config.userToken,\n environment: config.environment,\n clerkId: config.clerkId,\n userId: config.userId,\n deploymentHost: config.deploymentHost,\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 authContext: config.authContext,\n requireCanonicalAuthContext: config.requireCanonicalAuthContext,\n getAuthHeaders: config.getAuthHeaders,\n };\n}\n\nexport function exposeGatewayData<T>(\n response: PlatformGatewaySuccess<T>\n): GatewayDataEnvelope<T> {\n const data = response.data;\n if (data !== null && typeof data === \"object\" && !Array.isArray(data)) {\n return Object.assign({}, response, data) as GatewayDataEnvelope<T>;\n }\n return { ...response } as GatewayDataEnvelope<T>;\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 toQueryString,\n} from \"./coreClient\";\nimport {\n asRecord,\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 globalId?: string;\n name: string;\n description?: string;\n type?: string;\n parentTopicId?: string;\n parentTopicGlobalId?: 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 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 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 reasoningMethod?: 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 const client = {\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 * 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 * 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 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 return Object.assign(client, {\n queryNodes: client.listNodes,\n queryEdges: client.listEdges,\n getNeighborhood: client.neighborhood,\n });\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { asListItems, asRecord, 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 const client = {\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 = asRecord(data);\n const ontologies = asListItems(data, \"ontologies\");\n const definitions =\n ontologies.length > 0 ? ontologies : asListItems(data, \"definitions\");\n const total =\n typeof record.total === \"number\" && Number.isFinite(record.total)\n ? record.total\n : definitions.length;\n return {\n ...record,\n ...createListResult(definitions, \"definitions\"),\n ontologies: definitions,\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 * 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(asListItems(data, \"versions\"), \"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 return Object.assign(client, {\n listDefinitions: client.list,\n getDefinition: client.get,\n listTopicsByOntology: client.listTopics,\n });\n}\n","import {\n createGatewayRequestClient,\n randomIdempotencyKey,\n toQueryString,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport { createGraphClient } from \"./graphClient\";\nimport { createIdentityClient } from \"./identityClient\";\nimport { createOntologyClient, type OntologyBindingInput } from \"./ontologyClient\";\nimport type {\n BeliefArchiveInput,\n BeliefBisectInput,\n BeliefConfidenceInput,\n BeliefContractInput,\n BeliefCreateInput,\n BeliefForkInput,\n BeliefRecord,\n BeliefsLineageResult,\n BeliefsListQuery,\n BeliefsListResult,\n BeliefRefineInput,\n ContradictionsListResult,\n EdgeCreateInput,\n EdgeListQuery,\n EdgeTraverseInput,\n EvidenceCreateInput,\n EvidenceCreateResult,\n EvidenceListQuery,\n EvidenceLinkInput,\n EvidenceLinkResult,\n EvidenceSearchInput,\n EventsListQuery,\n EventsListResult,\n GatewayList,\n GatewayRecord,\n GraphAnalyzeInput,\n GraphBiasInput,\n GraphFalsifyInput,\n GraphNeighborhoodInput,\n GraphTraverseInput,\n OntologyListInput,\n OntologyMatchInput,\n QuestionAnswerInput,\n QuestionArchiveInput,\n QuestionCreateInput,\n QuestionRefineInput,\n QuestionStatusInput,\n QuestionsListQuery,\n QuestionsListResult,\n SearchQueryInput,\n ReplayEventsInput,\n WebhookCreateInput,\n WebhookDeliveriesQuery,\n WebhookListQuery,\n WebhookTestInput,\n WebhookUpdateInput,\n WebhooksListResult\n} from \"./gatewayFacades\";\nimport type { JsonObject } from \"./types\";\n\nfunction normalizeBeliefConfidenceInput(\n input: BeliefConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\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 const graphFacade = {\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 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 return Object.assign(graphFacade, {\n traverse: graphClient.traverse,\n analyze: graphClient.analyze,\n bias: graphClient.bias,\n gaps: graphClient.gaps,\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 const ontologyFacade = {\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 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 return Object.assign(ontologyFacade, {\n list: ontologyClient.list,\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","import {\n createGatewayRequestClient,\n randomIdempotencyKey,\n toQueryString,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport type { ModulateConfidenceInput } from \"./beliefsClient\";\nimport {\n createTopicsClient,\n type TopicCoverageQuery,\n type TopicTreeQuery,\n type TopicUpdateInput,\n} from \"./topicsClient\";\nimport type { GraphAnalyticsMetric, JsonObject } from \"./types\";\n\nexport type GatewayRecord = Record<string, unknown>;\nexport type GatewayList = GatewayRecord & { cursor?: string; total?: number };\n\nexport type BeliefRecord = GatewayRecord & {\n id?: string;\n beliefId?: string;\n nodeId?: string;\n};\n\nexport type BeliefsListResult = GatewayList & {\n beliefs?: BeliefRecord[];\n};\n\nexport type BeliefsLineageResult = GatewayRecord & {\n beliefId?: string;\n lineage?: GatewayRecord[];\n};\n\nexport type SearchResult = GatewayList & {\n beliefs?: GatewayRecord[];\n results?: GatewayRecord[];\n};\n\nexport type GraphNeighborhoodInput = {\n globalId?: string;\n globalIds?: string | string[];\n maxDepth?: number;\n};\n\nexport type GraphTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\nexport type GraphAnalyzeInput = {\n topicId?: string;\n metric?: GraphAnalyticsMetric;\n limit?: number;\n};\n\nexport type GraphBiasInput = {\n topicId?: string;\n threshold?: number;\n limit?: number;\n};\n\nexport type GraphGapsInput = {\n topicId?: string;\n minConfidence?: number;\n};\n\nexport type GraphFalsifyInput = {\n topicId?: string;\n beliefId?: string;\n beliefIds?: string[];\n minConfidence?: number;\n};\n\nexport type EventsListResult = GatewayList & {\n events?: GatewayRecord[];\n};\n\nexport type WebhooksListResult = GatewayList & {\n webhooks?: GatewayRecord[];\n};\n\nexport type QuestionsListResult = GatewayList & {\n questions?: Array<GatewayRecord & { priority?: string }>;\n};\n\nexport type ContradictionsListResult = GatewayList & {\n contradictions?: GatewayRecord[];\n};\n\nexport type WorktreesListResult = GatewayList & {\n worktrees?: GatewayRecord[];\n};\n\nexport type TaskListResult = GatewayList & {\n tasks?: GatewayRecord[];\n};\n\nexport type EvidenceCreateResult = GatewayRecord & {\n id?: string;\n};\n\nexport type EvidenceLinkResult = GatewayRecord & {\n edgeId?: string;\n};\n\nexport type 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\nexport type BeliefsListQuery = {\n topicId?: string;\n status?: string;\n worktreeId?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type BeliefRefineInput = {\n text: string;\n rationale?: string;\n};\n\nexport type BeliefForkInput = {\n text: string;\n forkReason?: string;\n rationale?: string;\n};\n\nexport type BeliefConfidenceInput = ModulateConfidenceInput;\n\nexport type BeliefArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\nfunction normalizeBeliefConfidenceInput(\n input: BeliefConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\nexport type BeliefContractInput = GatewayRecord;\n\nexport type BeliefBisectInput = {\n expectedDirection: \"overconfident\" | \"underconfident\";\n timeRange?: {\n start: number;\n end: number;\n };\n};\n\nexport type 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 reasoningMethod?: string;\n};\n\nexport type EdgeListQuery = {\n sourceId?: string;\n edgeType?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EdgeTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\nexport type EvidenceCreateInput = {\n topicId?: string;\n text: string;\n source?: string;\n targetId?: string;\n weight?: number;\n rationale: string;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n};\n\nexport type EvidenceListQuery = {\n topicId?: string;\n targetId?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EvidenceSearchInput = {\n q: string;\n topicId?: string;\n targetId?: string;\n methodology?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EvidenceLinkInput = {\n evidenceId: string;\n targetId: string;\n targetType?: \"belief\" | \"question\";\n weight?: number;\n rationale?: string;\n};\n\nexport type QuestionsListQuery = {\n topicId?: string;\n status?: string;\n priority?: string;\n worktreeId?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type QuestionCreateInput = {\n topicId?: string;\n text: string;\n priority?: string;\n linkedBeliefId?: string;\n metadata?: JsonObject;\n};\n\nexport type QuestionAnswerInput = {\n text: string;\n confidence?: string;\n evidenceIds?: string[];\n rationale?: string;\n};\n\nexport type QuestionRefineInput = {\n text: string;\n rationale?: string;\n};\n\nexport type QuestionArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\nexport type QuestionStatusInput = {\n status: string;\n rationale?: string;\n};\n\nexport type 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\nexport type 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\nexport type TaskUpdateInput = {\n id: string;\n title?: string;\n description?: string;\n priority?: string;\n status?: string;\n assigneeId?: string;\n blockedReason?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n metadata?: JsonObject;\n};\n\nexport type TaskCompleteInput = {\n id: string;\n outputSummary: string;\n};\n\nexport type TaskListQuery = {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n limit?: number;\n};\n\nexport type WorktreeCreateInput = {\n title: string;\n topicId?: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n worktreeType?: string;\n startDate?: number;\n endDate?: number;\n durationWeeks?: number;\n confidenceImpact?: \"high\" | \"medium\" | \"low\";\n beliefFocus?: string;\n beliefIds?: string[];\n targetBeliefIds?: string[];\n targetQuestionIds?: string[];\n keyQuestions?: Array<{\n question: string;\n status?: \"open\" | \"answered\" | \"forked\";\n answer?: string;\n answerConfidence?: \"high\" | \"medium\" | \"low\";\n linkedQuestionId?: string;\n }>;\n evidenceSignals?: Array<{\n signal: string;\n collected?: boolean;\n progress?: string;\n notes?: string;\n }>;\n decisionGate?: {\n goCriteria: string[];\n noGoSignals: string[];\n verdict?: \"go\" | \"no_go\" | \"pivot\" | \"pending\";\n verdictRationale?: string;\n decidedAt?: number;\n decidedBy?: string;\n };\n goCriteria?: string[];\n noGoSignals?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n lensId?: string;\n};\n\nexport type WorktreeListQuery = {\n topicId?: string;\n status?: string;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n};\n\nexport type WorktreeActivateInput = {\n id: string;\n};\n\nexport type WorktreeUpdateInput = {\n id: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n status?: string;\n topicId?: string;\n additionalTopicIds?: string[];\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n lensId?: string;\n};\n\nexport type WorktreeMergeInput = {\n id: string;\n summary?: string;\n outcomes: Array<\n | string\n | {\n beliefId: string;\n confidence: number;\n rationale: string;\n }\n >;\n};\n\nexport type WorktreeTargetsInput = {\n id: string;\n addBeliefIds?: string[];\n addQuestionIds?: string[];\n removeBeliefIds?: string[];\n removeQuestionIds?: string[];\n};\n\nexport type OntologyListInput = {\n tenantId?: string;\n tier?: string;\n status?: string;\n};\n\nexport type OntologyMatchInput = GatewayRecord;\n\nexport type WebhookCreateInput = GatewayRecord;\nexport type WebhookUpdateInput = GatewayRecord;\nexport type WebhookListQuery = {\n topicId?: string;\n};\nexport type WebhookTestInput = {\n topicId?: string;\n};\nexport type WebhookDeliveriesQuery = {\n limit?: number;\n};\n\nexport type EventsListQuery = {\n topicId?: string;\n after?: string;\n types?: string[];\n startTime?: number;\n endTime?: number;\n limit?: number;\n};\n\nexport type ReplayEventsInput = GatewayRecord;\n\nfunction serializeTypes(types: string[] | undefined) {\n return Array.isArray(types) && types.length > 0 ? types.join(\",\") : undefined;\n}\nexport { createBeliefsFacade, createContradictionsFacade, createEdgesFacade, createEvidenceFacade, createEventsFacade, createGraphFacade, createIdentityFacade, createOntologiesFacade, createQuestionsFacade } from \"./gatewayFacades.factories\";\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 assigneeId: input.assigneeId,\n blockedReason: input.blockedReason,\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 create: topicsClient.create,\n get: topicsClient.get,\n list: topicsClient.list,\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 remove: topicsClient.remove,\n bulkCreate: topicsClient.bulkCreate,\n };\n}\n\nexport function createWebhooksFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WebhookCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/webhooks\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WebhookListQuery = {}\n ): Promise<PlatformGatewaySuccess<WebhooksListResult>> {\n return gateway.request<WebhooksListResult>({\n path: `/api/platform/v1/webhooks${toQueryString({\n topicId: query.topicId,\n })}`,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n });\n },\n\n async update(\n id: string,\n input: WebhookUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n id: string,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n idempotencyKey,\n });\n },\n\n async test(\n id: string,\n input: WebhookTestInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/test`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async deliveries(\n id: string,\n query: WebhookDeliveriesQuery = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/deliveries${toQueryString({\n limit: query.limit,\n })}`,\n });\n },\n\n async health(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/health`,\n });\n },\n };\n}\n\nexport function createWorktreesFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WorktreeCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WorktreeListQuery\n ): Promise<PlatformGatewaySuccess<WorktreesListResult>> {\n return gateway.request<WorktreesListResult>({\n path: `/api/platform/v1/worktrees${toQueryString({\n topicId: query.topicId,\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n });\n },\n\n async listCampaigns(\n query: {\n topicId?: string;\n status?: string;\n limit?: number;\n } = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString({\n topicId: query.topicId,\n status: query.status,\n limit: query.limit,\n })}`,\n });\n },\n\n async activate(\n input: WorktreeActivateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/activate`,\n method: \"POST\",\n body: {} as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: WorktreeUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}`,\n method: \"PATCH\",\n body: {\n objective: input.objective,\n hypothesis: input.hypothesis,\n rationale: input.rationale,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n status: input.status,\n topicId: input.topicId,\n additionalTopicIds: input.additionalTopicIds,\n proofArtifacts: input.proofArtifacts,\n staffingHint: input.staffingHint,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async merge(\n input: WorktreeMergeInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/merge`,\n method: \"POST\",\n body: {\n summary: input.summary,\n outcomes: input.outcomes,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateTargets(\n input: WorktreeTargetsInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/targets`,\n method: \"POST\",\n body: {\n addBeliefIds: input.addBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeBeliefIds: input.removeBeliefIds,\n removeQuestionIds: input.removeQuestionIds,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async complete(\n input: {\n worktreeId: string;\n keyFindings?: string[];\n decisionsReached?: string[];\n nextSteps?: string[];\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/complete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async advancePhase(\n input: { worktreeId: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/advance-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async setPhase(\n input: { worktreeId: string; phase: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/set-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async patchState(\n input: { worktreeId: string; patch: GatewayRecord },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/patch-state\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async bulkCreate(\n input: { worktrees: unknown[] },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/bulk\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n createListResult,\n mapGatewayData,\n normalizeTopicQuery,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentRecord,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n PendingJudgmentOutcomeRecord,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n TopicIdentifierInput,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n} from \"./types\";\n\n/** Configuration for the decisions client. */\nexport type DecisionsClientConfig = GatewayClientConfig;\n\n/** Input for recording a new judgment (irreversible decision commitment). */\nexport type RecordJudgmentInput = {\n title: string;\n summary?: string;\n rationale: string;\n topicId?: string;\n confidence?: number;\n decisionConfidence?: number;\n judgmentType?: string;\n decisionType?: string;\n beliefIds?: string[];\n keyUncertainties?: string[];\n alternativesConsidered?: string[];\n decisionMakers?: string[];\n companyId?: string;\n amount?: number;\n valuation?: number;\n terms?: string;\n themeIds?: string[];\n} & TopicIdentifierInput;\n\n/** Filter parameters for listing judgments within a topic scope. */\nexport type ListJudgmentsInput = {\n topicId?: string;\n includeArchived?: boolean;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for recording the real-world outcome of a judgment. */\nexport type RecordJudgmentOutcomeInput = {\n outcome:\n | \"pending\"\n | \"successful\"\n | \"unsuccessful\"\n | \"mixed\"\n | \"unknown\"\n | \"too_early\";\n outcomeNotes?: string;\n notes?: string;\n};\n\n/** Input for retrieving judgment calibration analytics. */\nexport type GetJudgmentCalibrationInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for listing judgments still awaiting outcome review. */\nexport type ListPendingJudgmentOutcomeReviewInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for checking audit integrity of judgment state transitions. */\nexport type GetJudgmentTransitionAuditIntegrityInput = {\n topicId?: string;\n judgmentId?: string;\n includePassing?: boolean;\n} & TopicIdentifierInput;\n\n/**\n * Create the judgments client for decision lifecycle operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage judgments, outcomes, readiness, and calibration.\n */\nexport function createDecisionsClient(config: DecisionsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n const client = {\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 * 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 * 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\n return Object.assign(client, {\n listPendingJudgmentOutcomeReview: client.listPendingOutcomeReviews,\n recordJudgment: client.createJudgment,\n recordJudgmentOutcome: client.updateJudgmentOutcome,\n });\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n listResultFromEnvelope,\n requireTopicId,\n topicPayload,\n type TopicProjectAliasInput,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type EmbeddingsClientConfig = GatewayClientConfig;\n\nexport const EMBEDDINGS_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"nodeIds\",\n \"nodeType\",\n \"embeddingModel\",\n \"queryText\",\n \"queryVector\",\n \"minScore\",\n \"limit\",\n \"cursor\",\n \"metadata\",\n] as const;\n\nexport type EmbeddingProvenance = {\n sourceNodeId?: string;\n sourceGlobalId?: string;\n embeddingModel?: string;\n embeddedAt?: number;\n contentHash?: string;\n metadata?: JsonObject | null;\n};\n\nexport type EmbeddingRecord = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n embeddingModel?: string;\n vectorDimensions?: number;\n hasEmbedding?: boolean;\n provenance?: EmbeddingProvenance;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type MissingEmbeddingCandidate = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n embeddingModel?: string;\n reason?: string;\n contentHash?: string;\n metadata?: JsonObject | null;\n};\n\nexport type VectorSearchMatch = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n score: number;\n text?: string;\n title?: string;\n embeddingModel?: string;\n provenance?: EmbeddingProvenance;\n metadata?: JsonObject | null;\n};\n\nexport type GetEmbeddingsByNodeIdsInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeIds: string[];\n nodeType?: string;\n embeddingModel?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListMissingEmbeddingsInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeType?: string;\n embeddingModel?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type VectorSearchByTopicInput = TopicProjectAliasInput & {\n workspaceId: string;\n queryText?: string;\n queryVector?: number[];\n nodeType?: string;\n embeddingModel?: string;\n minScore?: number;\n limit?: number;\n cursor?: string;\n metadata?: JsonObject;\n};\n\nexport type MarkEmbeddingBackfillQueuedInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeIds: string[];\n nodeType?: string;\n embeddingModel?: string;\n metadata?: JsonObject;\n};\n\nexport type EmbeddingsLookupResponse = ListResult<EmbeddingRecord, \"embeddings\">;\nexport type MissingEmbeddingsResponse = ListResult<\n MissingEmbeddingCandidate,\n \"nodes\"\n>;\nexport type VectorSearchResponse = ListResult<VectorSearchMatch, \"results\">;\n\nfunction assertNodeIds(nodeIds: string[]) {\n if (!Array.isArray(nodeIds) || nodeIds.length === 0) {\n throw new Error(\"nodeIds is required\");\n }\n}\n\nfunction missingQuery(input: ListMissingEmbeddingsInput) {\n return {\n topicId: requireTopicId(input),\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n nodeType: input.nodeType,\n embeddingModel: input.embeddingModel,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nexport function createEmbeddingsClient(config: EmbeddingsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n getByNodeIds(input: GetEmbeddingsByNodeIdsInput) {\n assertNodeIds(input.nodeIds);\n return gateway.request<EmbeddingsLookupResponse>({\n path: \"/api/platform/v1/embeddings/by-node-ids\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.getByNodeIds\"\n ),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EmbeddingRecord, \"embeddings\">(\n data,\n \"embeddings\"\n )\n )\n );\n },\n\n listMissingForTopic(input: ListMissingEmbeddingsInput) {\n return gateway.request<MissingEmbeddingsResponse>({\n path: `/api/platform/v1/embeddings/missing${toQueryString(\n missingQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<MissingEmbeddingCandidate, \"nodes\">(\n data,\n \"nodes\"\n )\n )\n );\n },\n\n vectorSearchByTopic(input: VectorSearchByTopicInput) {\n if (!input.queryText && !input.queryVector) {\n throw new Error(\"queryText or queryVector is required\");\n }\n return gateway.request<VectorSearchResponse>({\n path: \"/api/platform/v1/embeddings/vector-search\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.vectorSearchByTopic\"\n ),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<VectorSearchMatch, \"results\">(data, \"results\")\n )\n );\n },\n\n markEmbeddingBackfillQueued(\n input: MarkEmbeddingBackfillQueuedInput,\n idempotencyKey?: string\n ) {\n assertNodeIds(input.nodeIds);\n return gateway.request<{\n queued: number;\n topicId: string;\n workspaceId: string;\n nodeIds: string[];\n }>({\n path: \"/api/platform/v1/embeddings/backfill-queued\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.markEmbeddingBackfillQueued\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\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 topicIdOrInput: string | CompileContextInput = {},\n input: CompileContextInput = {}\n): ContextClientRequest {\n const effectiveInput =\n typeof topicIdOrInput === \"string\" ? input : topicIdOrInput;\n const payload: Record<string, unknown> = {};\n\n const topicId =\n typeof topicIdOrInput === \"string\"\n ? cleanString(topicIdOrInput)\n : cleanString(effectiveInput.topicId);\n if (topicId) {\n payload.topicId = topicId;\n }\n\n const query = cleanString(effectiveInput.query);\n if (query) {\n payload.query = query;\n }\n\n const budget =\n cleanNumber(effectiveInput.budget) ?? cleanNumber(effectiveInput.tokenBudget);\n if (budget !== undefined) {\n payload.budget = budget;\n }\n\n const ranking =\n cleanString(effectiveInput.ranking) ?? cleanString(effectiveInput.rankingProfile);\n if (ranking) {\n payload.ranking = ranking;\n }\n\n const limit = cleanNumber(effectiveInput.limit);\n if (limit !== undefined) {\n payload.limit = limit;\n }\n\n const maxDepth = cleanNumber(effectiveInput.maxDepth);\n if (maxDepth !== undefined) {\n payload.maxDepth = maxDepth;\n }\n\n const includeEntities = cleanBoolean(effectiveInput.includeEntities);\n if (includeEntities !== undefined) {\n payload.includeEntities = includeEntities;\n }\n\n const mode = cleanString(effectiveInput.mode);\n if (mode) {\n payload.mode = mode;\n }\n\n const includeFailures = cleanBoolean(effectiveInput.includeFailures);\n if (includeFailures !== undefined) {\n payload.includeFailures = includeFailures;\n }\n\n const worktreeId = cleanString(effectiveInput.worktreeId);\n if (worktreeId) {\n payload.worktreeId = worktreeId;\n }\n\n const sessionId = cleanString(effectiveInput.sessionId);\n if (sessionId) {\n payload.sessionId = sessionId;\n }\n\n if (\n Array.isArray(effectiveInput.packWeightOverrides) &&\n effectiveInput.packWeightOverrides.length > 0\n ) {\n payload.packWeightOverrides = effectiveInput.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.\n * @param topicIdOrInput - Optional topic ID, or compile input for query-first resolution.\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(\n topicIdOrInput: string | CompileContextInput = {},\n input: CompileContextInput = {}\n ) {\n const request = buildCompileContextRequest(topicIdOrInput, input);\n return gateway.request<CompileContextResponse>({\n ...request,\n body: request.body as JsonObject,\n });\n },\n async compileByQuery(input: CompileContextInput = {}) {\n const request = buildCompileContextRequest(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 randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type EventingClientConfig = GatewayClientConfig;\n\nexport const EVENTING_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"eventId\",\n \"eventType\",\n \"eventPayload\",\n \"webhookId\",\n \"deliveryId\",\n \"status\",\n \"attempt\",\n \"statusCode\",\n \"error\",\n \"responseBody\",\n \"durationMs\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type EventingStatus =\n | \"pending\"\n | \"delivering\"\n | \"succeeded\"\n | \"failed\"\n | \"dead_letter\";\n\nexport type EventingRecord = {\n eventId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n eventType: string;\n eventPayload?: JsonObject | null;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type EventingWebhookRecord = {\n webhookId: string;\n tenantId: string;\n workspaceId?: string;\n topicId?: string;\n url?: string;\n events?: string[];\n status?: string;\n metadata?: JsonObject | null;\n};\n\nexport type EventingDeliveryRecord = {\n deliveryId: string;\n eventId?: string;\n webhookId: string;\n tenantId: string;\n workspaceId?: string;\n status: EventingStatus | string;\n attempt?: number;\n metadata?: JsonObject | null;\n updatedAt?: number;\n};\n\nexport type EventingScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n eventType?: string;\n webhookId?: string;\n status?: EventingStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type RecordEventInput = EventingScope & {\n eventId?: string;\n eventType: string;\n eventPayload?: JsonObject;\n metadata?: JsonObject;\n};\n\nexport type EnqueueDeliveryInput = EventingScope & {\n eventId: string;\n webhookId: string;\n deliveryId?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordDeliveryAttemptInput = EventingScope & {\n deliveryId: string;\n webhookId: string;\n attempt: number;\n status: EventingStatus;\n statusCode?: number;\n error?: string;\n responseBody?: string;\n durationMs?: number;\n metadata?: JsonObject;\n};\n\nexport type UpdateDeliveryStatusInput = EventingScope & {\n deliveryId: string;\n webhookId?: string;\n status: EventingStatus;\n attempt?: number;\n metadata?: JsonObject;\n};\n\nexport type EventingEventsResponse = ListResult<EventingRecord, \"events\">;\nexport type EventingWebhooksResponse = ListResult<\n EventingWebhookRecord,\n \"webhooks\"\n>;\n\nfunction query(input: EventingScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n eventType: input.eventType,\n webhookId: input.webhookId,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, EVENTING_FIELDS, operation);\n}\n\nexport function createEventingClient(config: EventingClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n recordEvent(input: RecordEventInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n return gateway.request<EventingRecord>({\n path: \"/api/platform/v1/events\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.recordEvent\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listEvents(input: EventingScope) {\n return gateway.request<EventingEventsResponse>({\n path: `/api/platform/v1/events${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EventingRecord, \"events\">(data, \"events\")\n )\n );\n },\n\n listWebhooks(input: EventingScope) {\n return gateway.request<EventingWebhooksResponse>({\n path: `/api/platform/v1/webhooks${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EventingWebhookRecord, \"webhooks\">(\n data,\n \"webhooks\"\n )\n )\n );\n },\n\n enqueueDelivery(input: EnqueueDeliveryInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventId, \"eventId\");\n cleanRequiredString(input.webhookId, \"webhookId\");\n return gateway.request<EventingDeliveryRecord>({\n path: \"/api/platform/v1/events/deliveries\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.enqueueDelivery\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordDeliveryAttempt(\n input: RecordDeliveryAttemptInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.deliveryId, \"deliveryId\");\n return gateway.request<EventingDeliveryRecord>({\n path: `/api/platform/v1/events/deliveries/${encodeURIComponent(\n input.deliveryId\n )}/attempts`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.recordDeliveryAttempt\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateDeliveryStatus(\n input: UpdateDeliveryStatusInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.deliveryId, \"deliveryId\");\n return gateway.request<EventingDeliveryRecord>({\n path: `/api/platform/v1/events/deliveries/${encodeURIComponent(\n input.deliveryId\n )}/status`,\n method: \"PATCH\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.updateDeliveryStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\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","/* 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 \"controlPlane.identity.resolveInteractivePrincipal\",\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.batchCreateEdges\",\n \"edges.createEdge\",\n \"edges.queryLineage\",\n \"edges.removeEdge\",\n \"edges.removeEdgesBetween\",\n \"edges.updateEdge\",\n \"embeddings.getByNodeIds\",\n \"embeddings.listMissingForTopic\",\n \"embeddings.markEmbeddingBackfillQueued\",\n \"embeddings.vectorSearchByTopic\",\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 \"graphAnalysis.listGraphIntelligenceQueries\",\n \"graphAnalysis.runGraphIntelligenceQuery\",\n \"hybrid.analyzeGraphImpact\",\n \"hybrid.detectGraphDrift\",\n \"hybrid.expandGraphNeighborhood\",\n \"hybrid.findRelatedNodes\",\n \"hybrid.hybridDiscover\",\n \"hybrid.resolveTopicSemantic\",\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 \"nodes.archiveEpistemicNode\",\n \"nodes.batchCreateEpistemicNodes\",\n \"nodes.createEpistemicNode\",\n \"nodes.getEpistemicNode\",\n \"nodes.listEpistemicNodes\",\n \"nodes.supersedeEpistemicNode\",\n \"nodes.updateEpistemicNode\",\n \"nodes.verifyEpistemicNode\",\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.getTopicGraphSpine\",\n \"topics.getTopicTree\",\n \"topics.listTopics\",\n \"topics.materializeTopicGraph\",\n \"topics.updateTopic\",\n \"worktrees.activateWorktree\",\n \"worktrees.addWorktree\",\n \"worktrees.beginBuildSession\",\n \"worktrees.getWorktree\",\n \"worktrees.listAllWorktrees\",\n \"worktrees.listCampaigns\",\n \"worktrees.listWorktrees\",\n \"worktrees.merge\",\n \"worktrees.openPullRequest\",\n \"worktrees.pipelineSnapshot\",\n \"worktrees.push\",\n \"worktrees.updateWorktreeMetadata\",\n \"worktrees.updateWorktreeTargets\"\n] as const;\n\nconst CONTRACTS = {\n \"activate_worktree\": { method: \"POST\", path: \"/worktrees/activate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"add_evidence\": { method: \"POST\", path: \"/evidence/add\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"add_worktree\": { method: \"POST\", path: \"/worktrees\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"analyze_graph_impact\": { method: \"POST\", path: \"/hybrid/impact\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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_epistemic_node\": { method: \"POST\", path: \"/nodes/archive\", 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 \"batch_create_edges\": { method: \"POST\", path: \"/edges/batch\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"batch_create_epistemic_nodes\": { method: \"POST\", path: \"/nodes/batch\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"begin_build_session\": { method: \"POST\", path: \"/mcp/build-session/begin\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\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_epistemic_node\": { method: \"POST\", path: \"/nodes\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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 \"detect_graph_drift\": { method: \"POST\", path: \"/hybrid/drift\", kind: \"action\", 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 \"expand_graph_neighborhood\": { method: \"POST\", path: \"/hybrid/neighborhood\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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 \"find_related_nodes\": { method: \"POST\", path: \"/hybrid/related-nodes\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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_embeddings_by_node_ids\": { method: \"POST\", path: \"/embeddings/by-node-ids\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_epistemic_node\": { method: \"GET\", path: \"/nodes/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\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_graph_spine\": { method: \"GET\", path: \"/topics/graph-spine\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_topic_tree\": { method: \"GET\", path: \"/topics/tree\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_worktree\": { method: \"GET\", path: \"/worktrees/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"heartbeat_session\": { method: \"POST\", path: \"/coordination/heartbeat-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"hybrid_discover\": { method: \"POST\", path: \"/hybrid/discover\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"identity_whoami\": { method: \"GET\", path: \"/identity/whoami\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"ingest_observation\": { method: \"POST\", path: \"/observations/ingest\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"link_evidence\": { method: \"POST\", path: \"/evidence/link\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"link_evidence_to_belief\": { method: \"POST\", path: \"/evidence/link-belief\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"link_evidence_to_question\": { method: \"POST\", path: \"/evidence/link-question\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"list_active_sessions\": { method: \"POST\", path: \"/coordination/active-sessions\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"list_all_worktrees\": { method: \"GET\", path: \"/worktrees/all\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_beliefs\": { method: \"GET\", path: \"/beliefs\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_campaigns\": { method: \"GET\", path: \"/worktrees/campaigns\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_epistemic_nodes\": { method: \"GET\", path: \"/nodes\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_evidence\": { method: \"GET\", path: \"/evidence\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_graph_intelligence_queries\": { method: \"POST\", path: \"/graph-intelligence/queries\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"list_lenses\": { method: \"GET\", path: \"/lenses\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_missing_embeddings\": { method: \"GET\", path: \"/embeddings/missing\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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 \"materialize_topic_graph\": { method: \"POST\", path: \"/topics/materialize-graph\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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 \"queue_embedding_backfill\": { method: \"POST\", path: \"/embeddings/backfill-queued\", kind: \"mutation\", idempotent: true, 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_edge\": { method: \"DELETE\", path: \"/edges\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"remove_edges_between\": { method: \"DELETE\", path: \"/edges/between\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\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 \"resolve_interactive_principal\": { method: \"POST\", path: \"/control-plane/identity/resolve-interactive-principal\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"resolve_topic_semantic\": { method: \"POST\", path: \"/hybrid/topics/resolve\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"run_graph_intelligence_query\": { method: \"POST\", path: \"/graph-intelligence/run\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"search_beliefs\": { method: \"POST\", path: \"/beliefs/search\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"search_embeddings\": { method: \"POST\", path: \"/embeddings/vector-search\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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 \"supersede_epistemic_node\": { method: \"POST\", path: \"/nodes/supersede\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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_edge\": { method: \"PATCH\", path: \"/edges\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"update_epistemic_node\": { method: \"PATCH\", path: \"/nodes\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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 \"verify_epistemic_node\": { method: \"POST\", path: \"/nodes/verify\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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 analyzeGraphImpact(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"analyze_graph_impact\", 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 archiveEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_epistemic_node\", 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 batchCreateEdges(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"batch_create_edges\", input, idempotencyKey);\n },\n batchCreateEpistemicNodes(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"batch_create_epistemic_nodes\", input, idempotencyKey);\n },\n beginBuildSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"begin_build_session\", 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 createEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_epistemic_node\", 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 detectGraphDrift(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"detect_graph_drift\", 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 expandGraphNeighborhood(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"expand_graph_neighborhood\", 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 findRelatedNodes(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"find_related_nodes\", 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 getByNodeIds(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_embeddings_by_node_ids\", input, idempotencyKey);\n },\n getEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_epistemic_node\", 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 getTopicGraphSpine(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_graph_spine\", input, idempotencyKey);\n },\n getTopicTree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_tree\", input, idempotencyKey);\n },\n getWorktree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_worktree\", input, idempotencyKey);\n },\n heartbeatSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"heartbeat_session\", input, idempotencyKey);\n },\n hybridDiscover(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"hybrid_discover\", input, idempotencyKey);\n },\n whoami(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"identity_whoami\", input, idempotencyKey);\n },\n ingestObservation(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"ingest_observation\", input, idempotencyKey);\n },\n linkEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence\", input, idempotencyKey);\n },\n linkEvidenceToBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_belief\", input, idempotencyKey);\n },\n linkEvidenceToQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_question\", input, idempotencyKey);\n },\n listActiveSessions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_active_sessions\", input, idempotencyKey);\n },\n listAllWorktrees(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_all_worktrees\", input, idempotencyKey);\n },\n listBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_beliefs\", input, idempotencyKey);\n },\n listCampaigns(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_campaigns\", input, idempotencyKey);\n },\n listEpistemicNodes(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_epistemic_nodes\", input, idempotencyKey);\n },\n listEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_evidence\", input, idempotencyKey);\n },\n listGraphIntelligenceQueries(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_graph_intelligence_queries\", input, idempotencyKey);\n },\n listLenses(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_lenses\", input, idempotencyKey);\n },\n listMissingForTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_missing_embeddings\", 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 materializeTopicGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"materialize_topic_graph\", 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 markEmbeddingBackfillQueued(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"queue_embedding_backfill\", 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 removeEdge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"remove_edge\", input, idempotencyKey);\n },\n removeEdgesBetween(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"remove_edges_between\", 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 resolveInteractivePrincipal(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"resolve_interactive_principal\", input, idempotencyKey);\n },\n resolveTopicSemantic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"resolve_topic_semantic\", input, idempotencyKey);\n },\n runGraphIntelligenceQuery(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"run_graph_intelligence_query\", input, idempotencyKey);\n },\n searchBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_beliefs\", input, idempotencyKey);\n },\n vectorSearchByTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_embeddings\", 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 supersedeEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"supersede_epistemic_node\", 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 updateEdge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_edge\", input, idempotencyKey);\n },\n updateEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_epistemic_node\", 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 verifyEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"verify_epistemic_node\", input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\nimport type {\n GraphIntelligenceQueryMode,\n GraphIntelligenceQueryWithTools,\n} from \"@lucern/contracts\";\n\nexport type GraphAnalysisClientConfig = GatewayClientConfig;\n\nexport const GRAPH_ANALYSIS_ANALYSIS_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisType\",\n \"healthScore\",\n \"findings\",\n \"suggestions\",\n \"sourceNodeIds\",\n \"sourceEdgeIds\",\n \"detectorVersions\",\n \"metadata\",\n] as const;\n\nexport const GRAPH_ANALYSIS_SUGGESTION_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisId\",\n \"suggestions\",\n \"metadata\",\n] as const;\n\nexport const GRAPH_ANALYSIS_COMPUTE_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisType\",\n \"sourceNodeIds\",\n \"sourceEdgeIds\",\n \"detectorVersions\",\n \"metadata\",\n] as const;\n\ntype AnalysisPayloadField = (typeof GRAPH_ANALYSIS_ANALYSIS_FIELDS)[number];\ntype SuggestionPayloadField = (typeof GRAPH_ANALYSIS_SUGGESTION_FIELDS)[number];\ntype ComputePayloadField = (typeof GRAPH_ANALYSIS_COMPUTE_FIELDS)[number];\n\nexport type GraphAnalysisFinding = {\n id?: string;\n severity?: \"critical\" | \"warning\" | \"info\" | string;\n category?: string;\n title: string;\n description?: string;\n nodeIds?: string[];\n nodeLabels?: string[];\n detector?: string;\n importance?: number;\n totalCount?: number;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisSuggestion = {\n suggestionId?: string;\n findingId?: string;\n actionType: string;\n targetNodeIds?: string[];\n priority?: \"P0\" | \"P1\" | \"P2\" | \"P3\" | string;\n rationale?: string;\n status?: GraphAnalysisSuggestionStatus;\n healthScore?: number;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisSuggestionStatus =\n | \"open\"\n | \"accepted\"\n | \"dismissed\"\n | \"applied\"\n | \"superseded\";\n\nexport type GraphAnalysisRecord = {\n analysisId?: string;\n topicId: string;\n workspaceId: string;\n analysisType: string;\n healthScore?: number;\n findings?: GraphAnalysisFinding[];\n suggestions?: GraphAnalysisSuggestion[];\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type GraphAnalysisChangeRecord = {\n changeId?: string;\n analysisId?: string;\n topicId?: string;\n workspaceId?: string;\n changeType?: string;\n nodeIds?: string[];\n edgeIds?: string[];\n summary?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport type SaveGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisType: string;\n healthScore: number;\n findings: GraphAnalysisFinding[];\n suggestions?: GraphAnalysisSuggestion[];\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject;\n};\n\nexport type ListGraphAnalysesInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisType?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type GetLatestGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisType?: string;\n};\n\nexport type SaveGraphSuggestionsInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisId?: string;\n suggestions: GraphAnalysisSuggestion[];\n metadata?: JsonObject;\n};\n\nexport type UpdateGraphSuggestionStatusInput = {\n suggestionId: string;\n status: GraphAnalysisSuggestionStatus;\n rationale?: string;\n metadata?: JsonObject;\n};\n\nexport type ListGraphSuggestionsInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisId?: string;\n findingId?: string;\n status?: GraphAnalysisSuggestionStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListGraphChangesInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisId?: string;\n minimumCreatedAt?: number;\n since?: number;\n createdAt?: number;\n analysisCreatedAt?: number;\n nodeId?: string;\n edgeId?: string;\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n limit?: number;\n cursor?: string;\n};\n\nexport type ComputeOrRequestGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisType?: string;\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisListResponse = ListResult<\n GraphAnalysisRecord,\n \"analyses\"\n>;\nexport type GraphAnalysisSuggestionsResponse = ListResult<\n GraphAnalysisSuggestion,\n \"suggestions\"\n>;\nexport type GraphAnalysisChangesResponse = ListResult<\n GraphAnalysisChangeRecord,\n \"changes\"\n>;\n\nexport type ListGraphIntelligenceQueriesInput = {\n categoryId?: string;\n mode?: GraphIntelligenceQueryMode;\n};\n\nexport type RunGraphIntelligenceQueryInput = TopicProjectAliasInput & {\n queryId?: string;\n prompt?: string;\n input?: string;\n mode?: GraphIntelligenceQueryMode;\n limit?: number;\n nodeId?: string;\n startNode?: string;\n maxDepth?: number;\n beliefIds?: string[];\n};\n\nexport type GraphIntelligenceQueryCatalogResponse = {\n schemaVersion: string;\n catalogVersion: string;\n categories: unknown[];\n modes: readonly GraphIntelligenceQueryMode[];\n queries: GraphIntelligenceQueryWithTools[];\n quickQueries: unknown[];\n publicToolNamesByMode: Record<string, readonly string[]>;\n totalQueries: number;\n};\n\nexport type GraphIntelligenceQueryRunResponse = {\n schemaVersion: string;\n catalogVersion: string;\n topicId: string;\n requestedTopicId?: string;\n query: GraphIntelligenceQueryWithTools | JsonObject;\n mode: GraphIntelligenceQueryMode;\n prompt: string;\n input: string | null;\n toolPlan: Array<{ toolName: string; args: JsonObject }>;\n analysis: JsonObject;\n context: JsonObject;\n guidance: JsonObject;\n};\n\nfunction readTopicId(input: TopicProjectAliasInput): string | undefined {\n return input.topicId?.trim() || input.projectId?.trim() || undefined;\n}\n\nfunction requireTopicId(input: TopicProjectAliasInput): string {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction normalizeAnalysisPayload(input: SaveGraphAnalysisInput): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_ANALYSIS_FIELDS,\n \"graphAnalysis.saveAnalysis\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<AnalysisPayloadField, unknown>;\n}\n\nfunction normalizeSuggestionPayload(input: SaveGraphSuggestionsInput): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_SUGGESTION_FIELDS,\n \"graphAnalysis.saveSuggestions\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<SuggestionPayloadField, unknown>;\n}\n\nfunction normalizeComputePayload(\n input: ComputeOrRequestGraphAnalysisInput\n): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_COMPUTE_FIELDS,\n \"graphAnalysis.computeOrRequestAnalysis\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<ComputePayloadField, unknown>;\n}\n\nfunction graphAnalysisQuery(input: ListGraphAnalysesInput) {\n return {\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisType: input.analysisType,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction normalizeRunQueryPayload(input: RunGraphIntelligenceQueryInput): JsonObject {\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject;\n}\n\nexport function createGraphAnalysisClient(\n config: GraphAnalysisClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listGraphIntelligenceQueries(input: ListGraphIntelligenceQueriesInput = {}) {\n return gateway.request<GraphIntelligenceQueryCatalogResponse>({\n path: \"/api/platform/v1/graph-intelligence/queries\",\n method: \"POST\",\n body: {\n categoryId: input.categoryId,\n mode: input.mode,\n },\n });\n },\n\n runGraphIntelligenceQuery(input: RunGraphIntelligenceQueryInput) {\n return gateway.request<GraphIntelligenceQueryRunResponse>({\n path: \"/api/platform/v1/graph-intelligence/run\",\n method: \"POST\",\n body: normalizeRunQueryPayload(input),\n });\n },\n\n saveAnalysis(input: SaveGraphAnalysisInput, idempotencyKey?: string) {\n return gateway.request<GraphAnalysisRecord>({\n path: \"/api/platform/v1/graph-analysis/analyses\",\n method: \"POST\",\n body: normalizeAnalysisPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listAnalyses(input: ListGraphAnalysesInput) {\n return gateway.request<GraphAnalysisListResponse>({\n path: `/api/platform/v1/graph-analysis/analyses${toQueryString(\n graphAnalysisQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { analyses?: unknown[] }).analyses)\n ? ((data as { analyses: GraphAnalysisRecord[] }).analyses)\n : Array.isArray(data)\n ? data\n : [],\n \"analyses\"\n )\n )\n );\n },\n\n getLatestAnalysis(input: GetLatestGraphAnalysisInput) {\n return gateway.request<GraphAnalysisRecord>({\n path: `/api/platform/v1/graph-analysis/analyses/latest${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisType: input.analysisType,\n })}`,\n });\n },\n\n saveSuggestions(input: SaveGraphSuggestionsInput, idempotencyKey?: string) {\n return gateway.request<GraphAnalysisSuggestionsResponse>({\n path: \"/api/platform/v1/graph-analysis/suggestions\",\n method: \"POST\",\n body: normalizeSuggestionPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateSuggestionStatus(\n input: UpdateGraphSuggestionStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphAnalysisSuggestion>({\n path: `/api/platform/v1/graph-analysis/suggestions/${encodeURIComponent(\n input.suggestionId\n )}`,\n method: \"PATCH\",\n body: {\n status: input.status,\n rationale: input.rationale,\n metadata: input.metadata,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listSuggestions(input: ListGraphSuggestionsInput) {\n return gateway.request<GraphAnalysisSuggestionsResponse>({\n path: `/api/platform/v1/graph-analysis/suggestions${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisId: input.analysisId,\n findingId: input.findingId,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { suggestions?: unknown[] }).suggestions)\n ? ((data as { suggestions: GraphAnalysisSuggestion[] }).suggestions)\n : Array.isArray(data)\n ? data\n : [],\n \"suggestions\"\n )\n )\n );\n },\n\n listGraphChanges(input: ListGraphChangesInput) {\n return gateway.request<GraphAnalysisChangesResponse>({\n path: `/api/platform/v1/graph-analysis/changes${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisId: input.analysisId,\n minimumCreatedAt:\n input.minimumCreatedAt ??\n input.since ??\n input.createdAt ??\n input.analysisCreatedAt,\n sourceNodeIds:\n input.sourceNodeIds?.join(\",\") ??\n (input.nodeId ? input.nodeId : undefined),\n sourceEdgeIds:\n input.sourceEdgeIds?.join(\",\") ??\n (input.edgeId ? input.edgeId : undefined),\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { changes?: unknown[] }).changes)\n ? ((data as { changes: GraphAnalysisChangeRecord[] }).changes)\n : Array.isArray(data)\n ? data\n : [],\n \"changes\"\n )\n )\n );\n },\n\n computeOrRequestAnalysis(\n input: ComputeOrRequestGraphAnalysisInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphAnalysisRecord>({\n path: \"/api/platform/v1/graph-analysis/compute\",\n method: \"POST\",\n body: normalizeComputePayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphRecommendationsClientConfig = GatewayClientConfig;\n\nexport const GRAPH_RECOMMENDATION_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"limit\",\n \"cursor\",\n \"status\",\n \"findingId\",\n \"actionType\",\n \"targetNodeIds\",\n \"priority\",\n \"rationale\",\n \"healthScore\",\n \"metadata\",\n] as const;\n\nexport type GraphRecommendationStatus =\n | \"open\"\n | \"accepted\"\n | \"dismissed\"\n | \"applied\"\n | \"superseded\";\n\nexport type GraphRecommendationPriority =\n | \"P0\"\n | \"P1\"\n | \"P2\"\n | \"P3\"\n | \"critical\"\n | \"high\"\n | \"medium\"\n | \"low\";\n\nexport type GraphRecommendationRecord = {\n recommendationId: string;\n topicId?: string;\n workspaceId?: string;\n findingId?: string;\n actionType: string;\n targetNodeIds?: string[];\n priority?: GraphRecommendationPriority | string;\n rationale?: string;\n healthScore?: number;\n status?: GraphRecommendationStatus;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type GraphRecommendationListInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n workspaceId?: string;\n limit?: number;\n cursor?: string;\n status?: GraphRecommendationStatus;\n findingId?: string;\n actionType?: string;\n priority?: GraphRecommendationPriority | string;\n targetNodeIds?: string[];\n healthScore?: number;\n metadata?: JsonObject;\n};\n\nexport type MarkGraphRecommendationStatusInput = {\n recommendationId: string;\n status: GraphRecommendationStatus;\n rationale?: string;\n metadata?: JsonObject;\n};\n\nexport type GraphRecommendationListResponse = ListResult<\n GraphRecommendationRecord,\n \"recommendations\"\n>;\n\nfunction readTopicId(input: { topicId?: string; projectId?: string }) {\n return input.topicId?.trim() || input.projectId?.trim() || undefined;\n}\n\nfunction requireTopicId(input: { topicId?: string; projectId?: string }) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction assertKnownKeys(\n input: Record<string, unknown>,\n operation: string\n) {\n const allowed = new Set<string>(GRAPH_RECOMMENDATION_FIELDS);\n const unknownKeys = Object.keys(input).filter((key) => !allowed.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction listQuery(input: GraphRecommendationListInput) {\n assertKnownKeys(\n input as Record<string, unknown>,\n \"graphRecommendations.listForTopic\"\n );\n return {\n workspaceId: input.workspaceId,\n topicId: requireTopicId(input),\n limit: input.limit,\n cursor: input.cursor,\n status: input.status,\n findingId: input.findingId,\n actionType: input.actionType,\n priority: input.priority,\n targetNodeIds: input.targetNodeIds?.join(\",\"),\n healthScore: input.healthScore,\n };\n}\n\nexport function createGraphRecommendationsClient(\n config: GraphRecommendationsClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listForTopic(input: GraphRecommendationListInput) {\n return gateway.request<GraphRecommendationListResponse>({\n path: `/api/platform/v1/graph-recommendations${toQueryString(\n listQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(\n (data as { recommendations?: unknown[] }).recommendations\n )\n ? (data as { recommendations: GraphRecommendationRecord[] })\n .recommendations\n : Array.isArray(data)\n ? data\n : [],\n \"recommendations\"\n )\n )\n );\n },\n\n getRecommendation(recommendationId: string) {\n return gateway.request<GraphRecommendationRecord>({\n path: `/api/platform/v1/graph-recommendations/${encodeURIComponent(\n recommendationId\n )}`,\n });\n },\n\n markRecommendationStatus(\n input: MarkGraphRecommendationStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphRecommendationRecord>({\n path: `/api/platform/v1/graph-recommendations/${encodeURIComponent(\n input.recommendationId\n )}/status`,\n method: \"PATCH\",\n body: {\n status: input.status,\n rationale: input.rationale,\n metadata: input.metadata,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n requireTopicId,\n topicPayload,\n type TopicProjectAliasInput,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphStateClassifierClientConfig = GatewayClientConfig;\n\nexport const GRAPH_STATE_CLASSIFIER_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"nodeId\",\n \"epistemicStatus\",\n \"beliefMaturity\",\n \"answerQuality\",\n \"evidenceNetwork\",\n \"logicalRole\",\n \"questionPriority\",\n \"layer\",\n \"modelVersion\",\n \"limit\",\n \"cursor\",\n \"metadata\",\n] as const;\n\nexport type GraphStateClassification = {\n classificationId?: string;\n topicId: string;\n workspaceId?: string;\n nodeId?: string;\n epistemicStatus?: string;\n beliefMaturity?: string;\n answerQuality?: string;\n evidenceNetwork?: string;\n logicalRole?: string;\n questionPriority?: string;\n layer?: string;\n modelVersion?: string;\n confidence?: number;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ClassifyNodeInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeId: string;\n modelVersion?: string;\n metadata?: JsonObject;\n};\n\nexport type ClassifyTopicInput = TopicProjectAliasInput & {\n workspaceId: string;\n modelVersion?: string;\n limit?: number;\n cursor?: string;\n metadata?: JsonObject;\n};\n\nexport type ListGraphStateClassificationsInput = TopicProjectAliasInput & {\n workspaceId?: string;\n nodeId?: string;\n modelVersion?: string;\n layer?: string;\n epistemicStatus?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type RecordGraphStateClassificationInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeId: string;\n epistemicStatus?: string;\n beliefMaturity?: string;\n answerQuality?: string;\n evidenceNetwork?: string;\n logicalRole?: string;\n questionPriority?: string;\n layer?: string;\n modelVersion?: string;\n metadata?: JsonObject;\n};\n\nexport type GraphStateClassificationsResponse = ListResult<\n GraphStateClassification,\n \"classifications\"\n>;\n\nfunction normalizeRecordPayload(input: RecordGraphStateClassificationInput) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n cleanRequiredString(input.nodeId, \"nodeId\");\n return topicPayload(\n input as RecordGraphStateClassificationInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.recordClassification\"\n );\n}\n\nexport function createGraphStateClassifierClient(\n config: GraphStateClassifierClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n classifyNode(input: ClassifyNodeInput, idempotencyKey?: string) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n cleanRequiredString(input.nodeId, \"nodeId\");\n return gateway.request<GraphStateClassification>({\n path: \"/api/platform/v1/graph-state-classifier/classify-node\",\n method: \"POST\",\n body: topicPayload(\n input as ClassifyNodeInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.classifyNode\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n classifyTopic(input: ClassifyTopicInput, idempotencyKey?: string) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n return gateway.request<GraphStateClassificationsResponse>({\n path: \"/api/platform/v1/graph-state-classifier/classify-topic\",\n method: \"POST\",\n body: topicPayload(\n input as ClassifyTopicInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.classifyTopic\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<GraphStateClassification, \"classifications\">(\n data,\n \"classifications\"\n )\n )\n );\n },\n\n listClassifications(input: ListGraphStateClassificationsInput) {\n return gateway.request<GraphStateClassificationsResponse>({\n path: `/api/platform/v1/graph-state-classifier/classifications${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n nodeId: input.nodeId,\n modelVersion: input.modelVersion,\n layer: input.layer,\n epistemicStatus: input.epistemicStatus,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<GraphStateClassification, \"classifications\">(\n data,\n \"classifications\"\n )\n )\n );\n },\n\n recordClassification(\n input: RecordGraphStateClassificationInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphStateClassification>({\n path: \"/api/platform/v1/graph-state-classifier/classifications\",\n method: \"POST\",\n body: normalizeRecordPayload(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, 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 const client = {\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 * 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 * 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 * 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 * 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 return Object.assign(client, {\n registerAgentDefinition: client.createAgentDefinition,\n listRunsForAgent: client.listAgentRuns,\n registerToolDefinition: client.createToolDefinition,\n listRunLedgerEntries: client.listRunEntries,\n });\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type JobsClientConfig = GatewayClientConfig;\n\nexport const JOBS_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"worktreeId\",\n \"jobId\",\n \"jobType\",\n \"payload\",\n \"status\",\n \"attempt\",\n \"runId\",\n \"queue\",\n \"priority\",\n \"error\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type JobStatus =\n | \"queued\"\n | \"claimed\"\n | \"running\"\n | \"succeeded\"\n | \"failed\"\n | \"cancelled\";\n\nexport type JobRecord = {\n jobId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n jobType: string;\n payload?: JsonObject | null;\n status: JobStatus | string;\n attempt?: number;\n runId?: string;\n queue?: string;\n priority?: string;\n error?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type JobRunRecord = {\n runId: string;\n jobId?: string;\n tenantId: string;\n workspaceId?: string;\n status: JobStatus | string;\n startedAt?: number;\n finishedAt?: number;\n metadata?: JsonObject | null;\n};\n\nexport type JobsScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n jobType?: string;\n status?: JobStatus;\n queue?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EnqueueJobInput = JobsScope & {\n jobType: string;\n payload?: JsonObject;\n priority?: string;\n metadata?: JsonObject;\n};\n\nexport type ClaimJobInput = JobsScope & {\n jobType?: string;\n};\n\nexport type UpdateJobStatusInput = JobsScope & {\n jobId: string;\n status: JobStatus;\n attempt?: number;\n runId?: string;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type RetryJobInput = JobsScope & {\n jobId: string;\n metadata?: JsonObject;\n};\n\nexport type RecordJobRunStartInput = JobsScope & {\n jobId?: string;\n runId?: string;\n jobType?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordJobRunFinishInput = JobsScope & {\n runId: string;\n jobId?: string;\n status: JobStatus;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type JobsResponse = ListResult<JobRecord, \"jobs\">;\n\nfunction query(input: JobsScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n worktreeId: input.worktreeId,\n jobType: input.jobType,\n status: input.status,\n queue: input.queue,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, JOBS_FIELDS, operation);\n}\n\nexport function createJobsClient(config: JobsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n enqueue(input: EnqueueJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobType, \"jobType\");\n return gateway.request<JobRecord>({\n path: \"/api/platform/v1/jobs\",\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.enqueue\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n list(input: JobsScope) {\n return gateway.request<JobsResponse>({\n path: `/api/platform/v1/jobs${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<JobRecord, \"jobs\">(data, \"jobs\")\n )\n );\n },\n\n claim(input: ClaimJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<JobRecord>({\n path: \"/api/platform/v1/jobs/claim\",\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.claim\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateStatus(input: UpdateJobStatusInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobId, \"jobId\");\n return gateway.request<JobRecord>({\n path: `/api/platform/v1/jobs/${encodeURIComponent(input.jobId)}/status`,\n method: \"PATCH\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.updateStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n retry(input: RetryJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobId, \"jobId\");\n return gateway.request<JobRecord>({\n path: `/api/platform/v1/jobs/${encodeURIComponent(input.jobId)}/retry`,\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.retry\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordRunStart(input: RecordJobRunStartInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<JobRunRecord>({\n path: \"/api/platform/v1/jobs/runs/start\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.recordRunStart\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordRunFinish(input: RecordJobRunFinishInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runId, \"runId\");\n return gateway.request<JobRunRecord>({\n path: `/api/platform/v1/jobs/runs/${encodeURIComponent(\n input.runId\n )}/finish`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.recordRunFinish\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\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 const listRecentExecutions = async (\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n success?: boolean;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) =>\n 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 const getExecutionStats = async (\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n hours?: number;\n } & TopicIdentifierInput = {}\n ) =>\n 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 return {\n /**\n * List recent execution records.\n */\n listRecentExecutions,\n\n /**\n * @deprecated Use listRecentExecutions.\n */\n getRecentExecutions: listRecentExecutions,\n\n /**\n * Get aggregate execution statistics.\n */\n getExecutionStats,\n };\n}\n","import type {\n McpGatewayBootstrapRequest,\n McpGatewayBootstrapResponse,\n McpGatewayBeginBuildSessionRequest,\n McpGatewayBeginBuildSessionResponse,\n McpGatewayContractEvaluationResponse,\n McpGatewayEvaluateEngineeringContractRequest,\n McpGatewayEvaluateResearchContractRequest,\n McpGatewayWritePolicyCheckRequest,\n McpGatewayWritePolicyCheckResponse,\n} from \"@lucern/contracts/mcp-gateway-boundary.contract\";\nimport {\n MCP_GATEWAY_BEGIN_BUILD_SESSION_ENDPOINT,\n MCP_GATEWAY_BOOTSTRAP_ENDPOINT,\n MCP_GATEWAY_EVALUATE_ENGINEERING_CONTRACT_ENDPOINT,\n MCP_GATEWAY_EVALUATE_RESEARCH_CONTRACT_ENDPOINT,\n MCP_GATEWAY_WRITE_POLICY_CHECK_ENDPOINT,\n} from \"@lucern/contracts/mcp-gateway-boundary.contract\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n type PlatformGatewaySuccess,\n toQueryString,\n} from \"./coreClient\";\nimport type { JsonValue } from \"./types\";\n\nexport type McpClientConfig = GatewayClientConfig;\n\nexport type McpBootstrapSessionInput = GatewayScope &\n McpGatewayBootstrapRequest;\n\nexport type McpBootstrapSessionResponse =\n PlatformGatewaySuccess<McpGatewayBootstrapResponse>;\n\nexport type McpCheckWritePolicyInput = GatewayScope &\n McpGatewayWritePolicyCheckRequest;\n\nexport type McpCheckWritePolicyResponse =\n PlatformGatewaySuccess<McpGatewayWritePolicyCheckResponse>;\n\nexport type McpBeginBuildSessionInput = GatewayScope &\n McpGatewayBeginBuildSessionRequest;\n\nexport type McpBeginBuildSessionResponse =\n PlatformGatewaySuccess<McpGatewayBeginBuildSessionResponse>;\n\nexport type McpEvaluateEngineeringContractInput = GatewayScope &\n McpGatewayEvaluateEngineeringContractRequest;\n\nexport type McpEvaluateResearchContractInput = GatewayScope &\n McpGatewayEvaluateResearchContractRequest;\n\nexport type McpContractEvaluationResponse =\n PlatformGatewaySuccess<McpGatewayContractEvaluationResponse>;\n\nfunction toJsonValue(value: unknown): JsonValue | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n const seen = new WeakSet<object>();\n const json = JSON.stringify(value, (_key, candidate) => {\n if (typeof candidate === \"bigint\") {\n return candidate.toString();\n }\n\n if (\n typeof candidate === \"function\" ||\n typeof candidate === \"symbol\" ||\n typeof candidate === \"undefined\"\n ) {\n return undefined;\n }\n\n if (candidate && typeof candidate === \"object\") {\n if (seen.has(candidate)) {\n return \"[Circular]\";\n }\n seen.add(candidate);\n }\n\n return candidate;\n });\n\n if (json === undefined) {\n return undefined;\n }\n\n return JSON.parse(json) as JsonValue;\n}\n\nexport function createMcpClient(config: McpClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n bootstrapSession(\n input: McpBootstrapSessionInput = {}\n ): Promise<McpBootstrapSessionResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n const body: McpGatewayBootstrapRequest = {\n transportKind: input.transportKind,\n sessionId: input.sessionId,\n agentIdentity: input.agentIdentity,\n workspaceId: input.workspaceId,\n worktreeId: input.worktreeId,\n };\n\n return gateway.request<McpGatewayBootstrapResponse>({\n path: `${MCP_GATEWAY_BOOTSTRAP_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body,\n });\n },\n\n checkWritePolicy(\n input: McpCheckWritePolicyInput\n ): Promise<McpCheckWritePolicyResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayWritePolicyCheckResponse>({\n path: `${MCP_GATEWAY_WRITE_POLICY_CHECK_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n role: input.role,\n toolName: input.toolName,\n },\n });\n },\n\n beginBuildSession(\n input: McpBeginBuildSessionInput\n ): Promise<McpBeginBuildSessionResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayBeginBuildSessionResponse>({\n path: `${MCP_GATEWAY_BEGIN_BUILD_SESSION_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n worktreeId: input.worktreeId,\n branch: input.branch,\n branchBase: input.branchBase,\n prBase: input.prBase,\n sessionMode: input.sessionMode,\n activateIfPlanning: input.activateIfPlanning,\n },\n });\n },\n\n evaluateEngineeringContract(\n input: McpEvaluateEngineeringContractInput\n ): Promise<McpContractEvaluationResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayContractEvaluationResponse>({\n path: `${MCP_GATEWAY_EVALUATE_ENGINEERING_CONTRACT_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n beliefNodeId: toJsonValue(input.beliefNodeId),\n trigger: toJsonValue(input.trigger),\n testOutput: toJsonValue(input.testOutput),\n tscOutput: toJsonValue(input.tscOutput),\n lintOutput: toJsonValue(input.lintOutput),\n sentryData: toJsonValue(input.sentryData),\n },\n });\n },\n\n evaluateResearchContract(\n input: McpEvaluateResearchContractInput\n ): Promise<McpContractEvaluationResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayContractEvaluationResponse>({\n path: `${MCP_GATEWAY_EVALUATE_RESEARCH_CONTRACT_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n beliefNodeId: toJsonValue(input.beliefNodeId),\n trigger: toJsonValue(input.trigger),\n metricData: toJsonValue(input.metricData),\n referenceCheckData: toJsonValue(input.referenceCheckData),\n marketIndexData: toJsonValue(input.marketIndexData),\n temporalData: toJsonValue(input.temporalData),\n },\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type ModelRuntimeClientConfig = GatewayClientConfig;\n\nexport const MODEL_RUNTIME_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"functionName\",\n \"slotKey\",\n \"modelId\",\n \"provider\",\n \"routingPolicy\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type ModelRegistryRecord = {\n modelId: string;\n provider: string;\n displayName?: string;\n status?: string;\n capabilities?: string[];\n contextWindow?: number;\n routingPolicy?: JsonObject | null;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ModelFunctionSlot = {\n functionName: string;\n slotKey: string;\n modelId?: string;\n provider?: string;\n routingPolicy?: JsonObject | null;\n metadata?: JsonObject | null;\n};\n\nexport type ModelRuntimeScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n provider?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type ResolveModelSlotInput = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n functionName: string;\n slotKey?: string;\n metadata?: JsonObject;\n};\n\nexport type UpdateModelSlotConfigInput = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n functionName: string;\n slotKey: string;\n modelId: string;\n provider?: string;\n routingPolicy?: JsonObject;\n metadata?: JsonObject;\n};\n\nexport type ModelsResponse = ListResult<ModelRegistryRecord, \"models\">;\nexport type ModelSlotsResponse = ListResult<ModelFunctionSlot, \"slots\">;\n\nfunction scopeQuery(input: ModelRuntimeScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n provider: input.provider,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction modelRuntimeBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, MODEL_RUNTIME_FIELDS, operation);\n}\n\nexport function createModelRuntimeClient(\n config: ModelRuntimeClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listModels(input: ModelRuntimeScope) {\n return gateway.request<ModelsResponse>({\n path: `/api/platform/v1/model-runtime/models${toQueryString(\n scopeQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ModelRegistryRecord, \"models\">(data, \"models\")\n )\n );\n },\n\n getModel(input: ModelRuntimeScope & { modelId: string }) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.modelId, \"modelId\");\n return gateway.request<ModelRegistryRecord>({\n path: `/api/platform/v1/model-runtime/models/${encodeURIComponent(\n input.modelId\n )}${toQueryString({\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n })}`,\n });\n },\n\n listFunctionSlots(input: ModelRuntimeScope & { functionName?: string }) {\n return gateway.request<ModelSlotsResponse>({\n path: `/api/platform/v1/model-runtime/function-slots${toQueryString({\n ...scopeQuery(input),\n functionName: input.functionName,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ModelFunctionSlot, \"slots\">(data, \"slots\")\n )\n );\n },\n\n resolveSlot(input: ResolveModelSlotInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.functionName, \"functionName\");\n return gateway.request<ModelFunctionSlot>({\n path: \"/api/platform/v1/model-runtime/function-slots/resolve\",\n method: \"POST\",\n body: modelRuntimeBody(\n input as unknown as Record<string, unknown>,\n \"modelRuntime.resolveSlot\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateSlotConfig(\n input: UpdateModelSlotConfigInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.functionName, \"functionName\");\n cleanRequiredString(input.slotKey, \"slotKey\");\n cleanRequiredString(input.modelId, \"modelId\");\n return gateway.request<ModelFunctionSlot>({\n path: \"/api/platform/v1/model-runtime/slot-configs\",\n method: \"PUT\",\n body: modelRuntimeBody(\n input as unknown as Record<string, unknown>,\n \"modelRuntime.updateSlotConfig\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanOptionalString,\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type OntologyLinksClientConfig = GatewayClientConfig;\n\nexport const ONTOLOGY_LINK_FIELDS = [\n \"topicId\",\n \"workspaceId\",\n \"linkId\",\n \"sourceNodeId\",\n \"sourceGlobalId\",\n \"targetNodeId\",\n \"targetGlobalId\",\n \"ontologyId\",\n \"ontologyType\",\n \"edgeType\",\n \"weight\",\n \"confidence\",\n \"status\",\n \"metadata\",\n] as const;\n\nexport type OntologyLinkStatus =\n | \"active\"\n | \"candidate\"\n | \"dismissed\"\n | \"superseded\"\n | \"archived\";\n\nexport type OntologyLinkRecord = {\n linkId?: string;\n edgeId?: string;\n topicId?: string;\n workspaceId?: string;\n sourceNodeId?: string;\n sourceGlobalId?: string;\n targetNodeId?: string;\n targetGlobalId?: string;\n ontologyId: string;\n ontologyType?: string;\n edgeType: string;\n weight?: number;\n confidence?: number;\n status?: OntologyLinkStatus | string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type OntologyLinkWriteInput = {\n topicId?: string;\n workspaceId?: string;\n sourceNodeId?: string;\n sourceGlobalId?: string;\n targetNodeId?: string;\n targetGlobalId?: string;\n ontologyId: string;\n ontologyType?: string;\n edgeType: string;\n weight?: number;\n confidence?: number;\n status?: OntologyLinkStatus;\n metadata?: JsonObject;\n};\n\nexport type ListOntologyLinksForNodeInput = {\n nodeId?: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n ontologyId?: string;\n ontologyType?: string;\n edgeType?: string;\n status?: OntologyLinkStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpdateOntologyLinkStatusInput = {\n linkId: string;\n status: OntologyLinkStatus;\n metadata?: JsonObject;\n};\n\nexport type OntologyLinksResponse = ListResult<OntologyLinkRecord, \"links\">;\n\nfunction assertEndpoints(input: OntologyLinkWriteInput) {\n if (!input.sourceNodeId && !input.sourceGlobalId) {\n throw new Error(\"sourceNodeId or sourceGlobalId is required\");\n }\n if (!input.targetNodeId && !input.targetGlobalId) {\n throw new Error(\"targetNodeId or targetGlobalId is required\");\n }\n}\n\nfunction normalizeLinkPayload(\n input: OntologyLinkWriteInput,\n operation: string\n) {\n assertEndpoints(input);\n cleanRequiredString(input.ontologyId, \"ontologyId\");\n cleanRequiredString(input.edgeType, \"edgeType\");\n return knownPayload(input as Record<string, unknown>, ONTOLOGY_LINK_FIELDS, operation);\n}\n\nexport function createOntologyLinksClient(\n config: OntologyLinksClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n createLink(input: OntologyLinkWriteInput, idempotencyKey?: string) {\n return gateway.request<OntologyLinkRecord>({\n path: \"/api/platform/v1/ontology-links\",\n method: \"POST\",\n body: normalizeLinkPayload(input, \"ontologyLinks.createLink\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n upsertLink(input: OntologyLinkWriteInput, idempotencyKey?: string) {\n return gateway.request<OntologyLinkRecord>({\n path: \"/api/platform/v1/ontology-links\",\n method: \"PUT\",\n body: normalizeLinkPayload(input, \"ontologyLinks.upsertLink\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listLinksForNode(input: ListOntologyLinksForNodeInput) {\n const nodeId = cleanOptionalString(input.nodeId);\n const globalId = cleanOptionalString(input.globalId);\n if (!nodeId && !globalId) {\n throw new Error(\"nodeId or globalId is required\");\n }\n const pathId = encodeURIComponent(nodeId ?? globalId ?? \"\");\n return gateway.request<OntologyLinksResponse>({\n path: `/api/platform/v1/ontology-links/nodes/${pathId}${toQueryString({\n topicId: input.topicId,\n workspaceId: input.workspaceId,\n globalId: nodeId ? undefined : globalId,\n ontologyId: input.ontologyId,\n ontologyType: input.ontologyType,\n edgeType: input.edgeType,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<OntologyLinkRecord, \"links\">(data, \"links\")\n )\n );\n },\n\n updateLinkStatus(\n input: UpdateOntologyLinkStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<OntologyLinkRecord>({\n path: `/api/platform/v1/ontology-links/${encodeURIComponent(\n input.linkId\n )}/status`,\n method: \"PATCH\",\n body: knownPayload(\n input as unknown as Record<string, unknown>,\n ONTOLOGY_LINK_FIELDS,\n \"ontologyLinks.updateLinkStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type OrgGraphSearchClientConfig = GatewayClientConfig;\n\nexport const ORG_GRAPH_SEARCH_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"query\",\n \"nodeTypes\",\n \"minConfidence\",\n \"limit\",\n \"cursor\",\n \"provenanceScope\",\n] as const;\n\nexport type OrgGraphProvenanceScope =\n | \"canonical\"\n | \"published\"\n | \"own_workspace\"\n | \"cross_workspace\";\n\nexport type OrgGraphVisibility =\n | \"private\"\n | \"workspace\"\n | \"tenant\"\n | \"public\";\n\nexport type OrgGraphSearchProvenance = {\n scope?: OrgGraphProvenanceScope | string;\n source?: string;\n sourceNodeId?: string;\n sourceWorkspaceId?: string;\n publishedAt?: number;\n publishedByPrincipalId?: string;\n metadata?: JsonObject | null;\n};\n\nexport type OrgGraphSearchResult = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n sourceWorkspaceId?: string;\n publishedAt?: number;\n publishedByPrincipalId?: string;\n visibility?: OrgGraphVisibility | string;\n confidence?: number | null;\n confidenceHistory?: Array<{\n confidence?: number;\n timestamp?: number;\n rationale?: string;\n trigger?: string;\n }>;\n provenance?: OrgGraphSearchProvenance;\n nodeType?: string;\n text?: string;\n title?: string;\n metadata?: JsonObject | null;\n};\n\nexport type OrgGraphSearchInput = {\n tenantId: string;\n workspaceId: string;\n query: string;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n provenanceScope?: OrgGraphProvenanceScope;\n};\n\nexport type GetOrgGraphNodeInput = {\n tenantId: string;\n workspaceId: string;\n nodeId?: string;\n globalId?: string;\n};\n\nexport type ListOrgGraphByProvenanceInput = {\n tenantId: string;\n workspaceId: string;\n provenanceScope: OrgGraphProvenanceScope;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListPublishedFromWorkspaceInput = {\n tenantId: string;\n workspaceId: string;\n sourceWorkspaceId?: string;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type OrgGraphSearchResponse = ListResult<\n OrgGraphSearchResult,\n \"results\"\n>;\n\nfunction cleanString(value: string | undefined, label: string) {\n const normalized = value?.trim();\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nfunction assertKnownSearchKeys(input: Record<string, unknown>, operation: string) {\n const allowed = new Set<string>(ORG_GRAPH_SEARCH_FIELDS);\n const unknownKeys = Object.keys(input).filter((key) => !allowed.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction searchBody(input: OrgGraphSearchInput): JsonObject {\n assertKnownSearchKeys(\n input as Record<string, unknown>,\n \"orgGraphSearch.search\"\n );\n return {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n query: cleanString(input.query, \"query\"),\n nodeTypes: input.nodeTypes,\n minConfidence: input.minConfidence,\n limit: input.limit,\n cursor: input.cursor,\n provenanceScope: input.provenanceScope,\n };\n}\n\nfunction listQuery(\n input: ListOrgGraphByProvenanceInput | ListPublishedFromWorkspaceInput\n) {\n return {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n nodeTypes: input.nodeTypes?.join(\",\"),\n minConfidence: input.minConfidence,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction mapResults(data: unknown): OrgGraphSearchResponse {\n const record = data && typeof data === \"object\" ? data : {};\n return createListResult(\n Array.isArray((record as { results?: unknown[] }).results)\n ? (record as { results: OrgGraphSearchResult[] }).results\n : Array.isArray(data)\n ? data\n : [],\n \"results\"\n );\n}\n\nexport function createOrgGraphSearchClient(\n config: OrgGraphSearchClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n search(input: OrgGraphSearchInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: \"/api/platform/v1/org-graph-search/search\",\n method: \"POST\",\n body: searchBody(input),\n }).then((response) => mapGatewayData(response, mapResults));\n },\n\n getNode(input: GetOrgGraphNodeInput) {\n const nodeId = input.nodeId?.trim();\n const globalId = input.globalId?.trim();\n if (!nodeId && !globalId) {\n throw new Error(\"nodeId or globalId is required\");\n }\n const nodePath = encodeURIComponent(nodeId ?? globalId ?? \"\");\n return gateway.request<OrgGraphSearchResult>({\n path: `/api/platform/v1/org-graph-search/nodes/${nodePath}${toQueryString(\n {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n globalId: nodeId ? undefined : globalId,\n }\n )}`,\n });\n },\n\n listByProvenance(input: ListOrgGraphByProvenanceInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: `/api/platform/v1/org-graph-search/provenance${toQueryString({\n ...listQuery(input),\n provenanceScope: input.provenanceScope,\n })}`,\n }).then((response) => mapGatewayData(response, mapResults));\n },\n\n listPublishedFromWorkspace(input: ListPublishedFromWorkspaceInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: `/api/platform/v1/org-graph-search/published${toQueryString({\n ...listQuery(input),\n sourceWorkspaceId: input.sourceWorkspaceId,\n })}`,\n }).then((response) => mapGatewayData(response, mapResults));\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 const client = {\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 * 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 * 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 * 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 * 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 return Object.assign(client, {\n getCatalog: client.listCatalog,\n getStates: client.listStates,\n getTelemetry: client.listTelemetry,\n updateEntitlement: client.createEntitlement,\n upsertEntitlement: client.createEntitlement,\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\nfunction buildFilterByPermissionResponse(\n permission: PermissionKind,\n allowedTopicIds: string[],\n deniedTopics: Array<{\n topicId: string;\n reasonCode: string;\n }>,\n count: number,\n): FilterByPermissionResponse {\n const result = {} as FilterByPermissionResponse;\n result.permission = permission;\n result.allowedTopicIds = allowedTopicIds;\n result.deniedTopics = deniedTopics;\n result.count = count;\n return result;\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 const result = {} as {\n success: true;\n data: FilterByPermissionResponse;\n };\n result.success = true;\n result.data = buildFilterByPermissionResponse(\n permission,\n allowedTopicIds,\n deniedTopics,\n typeof response.data?.count === \"number\"\n ? response.data.count\n : allowedTopicIds.length,\n );\n return result;\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { asListItems, 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 const listTemplates = async (args: { slug?: string } = {}) =>\n 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 rows = asListItems(data, \"templates\");\n return createListResult(rows, \"templates\") as ReportTemplatesResponse;\n })\n );\n\n const listReports = async (\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 const getReport = async (reportId: string) =>\n gateway.request<ReportWithSectionsResponse>({\n path: `/api/platform/v1/reports/${encodeURIComponent(reportId)}`,\n });\n\n return {\n /**\n * List report templates.\n */\n listTemplates,\n\n /**\n * @deprecated Use listTemplates.\n */\n getTemplates: listTemplates,\n\n /**\n * List reports for a topic scope.\n */\n listReports,\n\n /**\n * Get a generated report.\n */\n getReport,\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 const createEntitlement = (\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) =>\n gateway.request<unknown>({\n path: \"/api/platform/v1/schema/entitlements\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\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 createEntitlement,\n\n /**\n * Update a schema entitlement.\n */\n updateEntitlement: createEntitlement,\n\n /**\n * @deprecated Use createEntitlement or updateEntitlement.\n */\n upsertEntitlement: createEntitlement,\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TelemetryClientConfig = GatewayClientConfig;\n\nexport const TELEMETRY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"worktreeId\",\n \"eventLevel\",\n \"eventType\",\n \"message\",\n \"toolName\",\n \"toolCalls\",\n \"decision\",\n \"policySubject\",\n \"policyAction\",\n \"policyResource\",\n \"runId\",\n \"runType\",\n \"status\",\n \"durationMs\",\n \"error\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type TelemetryRunRecord = {\n runId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n runType?: string;\n status?: string;\n metadata?: JsonObject | null;\n startedAt?: number;\n finishedAt?: number;\n};\n\nexport type TelemetryScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n runType?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type LogSystemEventInput = TelemetryScope & {\n eventLevel: \"debug\" | \"info\" | \"warn\" | \"error\" | string;\n eventType: string;\n message: string;\n metadata?: JsonObject;\n};\n\nexport type LogToolCallsBatchInput = TelemetryScope & {\n toolCalls: Array<{\n toolName: string;\n status?: string;\n durationMs?: number;\n metadata?: JsonObject;\n }>;\n metadata?: JsonObject;\n};\n\nexport type RecordEpistemicAuditInput = TelemetryScope & {\n eventType: string;\n message?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordTelemetryPolicyDecisionInput = TelemetryScope & {\n policySubject?: string;\n policyAction?: string;\n policyResource?: string;\n decision: \"allow\" | \"deny\" | string;\n metadata?: JsonObject;\n};\n\nexport type StartTelemetryRunInput = TelemetryScope & {\n runId?: string;\n runType: string;\n metadata?: JsonObject;\n};\n\nexport type FinishTelemetryRunInput = TelemetryScope & {\n runId: string;\n status: string;\n durationMs?: number;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type TelemetryRunsResponse = ListResult<TelemetryRunRecord, \"runs\">;\n\nfunction query(input: TelemetryScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n worktreeId: input.worktreeId,\n runType: input.runType,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TELEMETRY_FIELDS, operation);\n}\n\nexport function createTelemetryClient(config: TelemetryClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n logSystemEvent(input: LogSystemEventInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n cleanRequiredString(input.message, \"message\");\n return gateway.request<{ eventId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/system-events\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.logSystemEvent\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n logToolCallsBatch(\n input: LogToolCallsBatchInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<{ recorded: number }>({\n path: \"/api/platform/v1/telemetry/tool-calls/batch\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.logToolCallsBatch\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordEpistemicAudit(\n input: RecordEpistemicAuditInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n return gateway.request<{ auditId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/epistemic-audits\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.recordEpistemicAudit\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordPolicyDecision(\n input: RecordTelemetryPolicyDecisionInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.decision, \"decision\");\n return gateway.request<{ decisionId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/policy-decisions\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.recordPolicyDecision\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n startRun(input: StartTelemetryRunInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runType, \"runType\");\n return gateway.request<TelemetryRunRecord>({\n path: \"/api/platform/v1/telemetry/runs/start\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.startRun\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n finishRun(input: FinishTelemetryRunInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runId, \"runId\");\n return gateway.request<TelemetryRunRecord>({\n path: `/api/platform/v1/telemetry/runs/${encodeURIComponent(\n input.runId\n )}/finish`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.finishRun\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listRuns(input: TelemetryScope) {\n return gateway.request<TelemetryRunsResponse>({\n path: `/api/platform/v1/telemetry/runs${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TelemetryRunRecord, \"runs\">(data, \"runs\")\n )\n );\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, JsonValue, ListResult } from \"./types\";\n\nexport type ToolRegistryClientConfig = GatewayClientConfig;\n\nexport const TOOL_REGISTRY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"toolName\",\n \"packKey\",\n \"packVersion\",\n \"status\",\n \"permissions\",\n \"role\",\n \"surface\",\n \"parameterSchema\",\n \"returnSchema\",\n \"handlerRef\",\n \"executionAdapter\",\n \"safetyMetadata\",\n \"aclId\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type ToolRegistryStatus =\n | \"enabled\"\n | \"disabled\"\n | \"deprecated\"\n | \"blocked\";\n\nexport type ToolCatalogEntry = {\n toolName: string;\n packKey?: string;\n packVersion?: string;\n status?: ToolRegistryStatus | string;\n permissions?: string[];\n role?: string;\n surface?: string;\n parameterSchema?: JsonObject | null;\n returnSchema?: JsonObject | null;\n handlerRef?: string;\n executionAdapter?: string;\n safetyMetadata?: JsonObject | null;\n metadata?: JsonObject | null;\n};\n\nexport type ToolAclRecord = {\n aclId?: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n toolName: string;\n packKey?: string;\n permissions?: string[];\n status?: ToolRegistryStatus | string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ToolRegistryQuery = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n packKey?: string;\n status?: ToolRegistryStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type EffectiveToolsSessionType = \"agent\" | \"user\";\n\nexport type EffectiveToolsQuery = ToolRegistryQuery & {\n callerRole?: string;\n surface?: string;\n sessionType?: EffectiveToolsSessionType;\n permittedToolNames?: string[];\n executableOnly?: boolean;\n};\n\nexport type UpsertCoreToolsInput = {\n tenantId: string;\n workspaceId?: string;\n tools: ToolCatalogEntry[];\n metadata?: JsonObject;\n};\n\nexport type SetPackToolsStatusInput = {\n tenantId: string;\n workspaceId?: string;\n packKey: string;\n status: ToolRegistryStatus;\n metadata?: JsonObject;\n};\n\nexport type CreateToolAclInput = {\n tenantId: string;\n workspaceId?: string;\n principalId: string;\n toolName: string;\n packKey?: string;\n permissions?: string[];\n status?: ToolRegistryStatus;\n metadata?: JsonObject;\n};\n\nexport type DeleteToolAclInput = {\n tenantId: string;\n workspaceId?: string;\n aclId: string;\n metadata?: JsonObject;\n};\n\nexport type RegisterCustomToolInput = {\n tenantId: string;\n workspaceId?: string;\n toolName: string;\n packKey?: string;\n parameterSchema?: JsonObject;\n returnSchema?: JsonObject;\n handlerRef?: string;\n executionAdapter?: string;\n safetyMetadata?: JsonObject;\n permissions?: string[];\n metadata?: JsonObject;\n};\n\nexport type ToolCatalogResponse = ListResult<ToolCatalogEntry, \"tools\">;\nexport type ToolAclResponse = ListResult<ToolAclRecord, \"acls\">;\n\nfunction query(input: ToolRegistryQuery) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n packKey: input.packKey,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction effectiveToolsQuery(input: EffectiveToolsQuery) {\n return {\n ...query(input),\n callerRole: input.callerRole,\n surface: input.surface,\n sessionType: input.sessionType,\n permittedToolNames: input.permittedToolNames\n ? JSON.stringify(input.permittedToolNames)\n : undefined,\n executableOnly: input.executableOnly,\n };\n}\n\nfunction writeBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TOOL_REGISTRY_FIELDS, operation);\n}\n\nexport function createToolRegistryClient(\n config: ToolRegistryClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listCatalog(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/catalog${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n listExecutable(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/executable${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n listEffectiveTools(input: EffectiveToolsQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/effective${toQueryString(\n effectiveToolsQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n upsertCoreTools(input: UpsertCoreToolsInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<ToolCatalogResponse>({\n path: \"/api/platform/v1/tools/core\",\n method: \"PUT\",\n body: {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n metadata: input.metadata,\n tools: input.tools as unknown as JsonValue,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n setPackToolsStatus(\n input: SetPackToolsStatusInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.packKey, \"packKey\");\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/packs/${encodeURIComponent(\n input.packKey\n )}/status`,\n method: \"PATCH\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.setPackToolsStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n createAcl(input: CreateToolAclInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.principalId, \"principalId\");\n cleanRequiredString(input.toolName, \"toolName\");\n return gateway.request<ToolAclRecord>({\n path: \"/api/platform/v1/tools/acls\",\n method: \"POST\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.createAcl\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n deleteAcl(input: DeleteToolAclInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.aclId, \"aclId\");\n return gateway.request<{ aclId: string; deleted: boolean }>({\n path: `/api/platform/v1/tools/acls/${encodeURIComponent(input.aclId)}`,\n method: \"DELETE\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.deleteAcl\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n registerCustomTool(\n input: RegisterCustomToolInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.toolName, \"toolName\");\n return gateway.request<ToolCatalogEntry>({\n path: \"/api/platform/v1/tools/custom\",\n method: \"POST\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.registerCustomTool\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","/** Current SDK package version. */\nexport const LUCERN_SDK_VERSION = \"1.0.6\";\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 topicHint?: string;\n branchId?: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n worktreeType?: string;\n startDate?: number;\n endDate?: number;\n durationWeeks?: number;\n confidenceImpact?: \"high\" | \"medium\" | \"low\";\n beliefFocus?: string;\n beliefIds?: string[];\n targetBeliefIds?: string[];\n targetQuestionIds?: string[];\n keyQuestions?: Array<{\n question: string;\n status?: \"open\" | \"answered\" | \"forked\";\n answer?: string;\n answerConfidence?: \"high\" | \"medium\" | \"low\";\n linkedQuestionId?: string;\n }>;\n evidenceSignals?: Array<{\n signal: string;\n collected?: boolean;\n progress?: string;\n notes?: string;\n }>;\n decisionGate?: {\n goCriteria: string[];\n noGoSignals: string[];\n verdict?: \"go\" | \"no_go\" | \"pivot\" | \"pending\";\n verdictRationale?: string;\n decidedAt?: number;\n decidedBy?: string;\n };\n goCriteria?: string[];\n noGoSignals?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n tags?: string[];\n touchedPaths?: string[];\n sourceRef?: string;\n sourceKind?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: WorkflowProofArtifact[];\n staffingHint?: WorkflowStaffingHint | string;\n lastReconciledAt?: number;\n autoFixPolicy?: WorkflowAutoFixPolicy;\n lensId?: string;\n} & TopicIdentifierInput;\n\nexport type WorkflowMergeInputOutcome =\n | string\n | {\n beliefId: string;\n confidence: number;\n rationale: string;\n };\n\n/** Input for merging worktree findings with optional belief confidence outcomes. */\nexport type MergeInput = {\n outcomes: WorkflowMergeInputOutcome[];\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 assigneeId?: string;\n blockedReason?: string;\n};\n\nfunction normalizeLensQuery<T extends { topicId?: string }>(\n value: T\n) {\n const topicId = resolveTopicId(value);\n return {\n ...value,\n ...(topicId ? { topicId } : {}),\n };\n}\n\n/**\n * Create the workflow client for lenses, legacy branches, worktrees, context,\n * and tasks.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage branches, lenses, worktrees, topics, and tasks.\n */\nexport function createWorkflowClient(config: WorkflowClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const client = {\n /**\n * List workflow branches for a topic scope.\n */\n async listBranches(query: {\n topicId?: string;\n status?: WorkflowBranchStatus;\n limit?: number;\n } & TopicIdentifierInput) {\n return gateway.request<ListBranchesResponse>({\n path: `/api/platform/v1/workflow/branches${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowBranchRecord, \"branches\">(data, \"branches\")\n )\n );\n },\n\n /**\n * Create a workflow branch.\n */\n async createBranch(\n input: {\n name: string;\n topicId?: string;\n description?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBranchResponse>({\n path: \"/api/platform/v1/workflow/branches\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateBranchResponse\n )\n );\n },\n\n /**\n * List reusable lenses for a workspace or topic scope.\n */\n async listLenses(query: {\n workspaceId?: string;\n topicId?: string;\n status?: WorkflowLensStatus;\n perspectiveType?: WorkflowLensPerspectiveType;\n } & TopicIdentifierInput) {\n return gateway.request<ListLensesResponse>({\n path: `/api/platform/v1/workflow/lenses${toQueryString(\n normalizeLensQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowLensRecord, \"lenses\">(data, \"lenses\")\n )\n );\n },\n\n /**\n * Create a reusable workflow lens.\n */\n async createLens(\n input: {\n name: string;\n workspaceId?: string;\n topicId?: string;\n description?: string;\n perspectiveType: WorkflowLensPerspectiveType;\n promptTemplates?: LensPromptTemplateReference[];\n workflowTemplates?: LensWorkflowTemplate[];\n taskTemplates?: LensTaskTemplate[];\n filterCriteria?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<CreateLensResponse>({\n path: \"/api/platform/v1/workflow/lenses\",\n method: \"POST\",\n body: payload as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateLensResponse\n )\n );\n },\n\n /**\n * Apply an existing lens to a topic.\n */\n async applyLensToTopic(\n input: {\n lensId: string;\n topicId?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<LensTopicBindingResponse>({\n path: \"/api/platform/v1/workflow/lens-bindings\",\n method: \"POST\",\n body: payload,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * Remove an applied lens from a topic.\n */\n async removeLensFromTopic(\n input: {\n lensId: string;\n topicId?: string;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const topicId = resolveTopicId(input);\n if (!topicId) {\n throw new LucernApiError({\n code: \"INVALID_REQUEST\",\n message: \"topicId is required\",\n status: 400,\n });\n }\n\n return gateway.request<LensTopicBindingResponse>({\n path: `/api/platform/v1/workflow/lens-bindings${toQueryString({\n lensId: input.lensId,\n topicId,\n })}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * List worktrees for a topic scope.\n */\n async listWorktrees(query: {\n topicId?: string;\n branchId?: string;\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } & TopicIdentifierInput) {\n const normalized = normalizeTopicQuery(query);\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees${toQueryString({\n ...normalized,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n )\n )\n );\n },\n\n /**\n * List all worktrees across accessible topics.\n */\n async listAllWorktrees(query: {\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } = {}) {\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees/all${toQueryString({\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\" && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {};\n const list = mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n );\n return {\n ...list,\n ...(record.lanes &&\n typeof record.lanes === \"object\" &&\n !Array.isArray(record.lanes)\n ? { lanes: record.lanes as Record<string, number> }\n : {}),\n ...(record.campaigns &&\n typeof record.campaigns === \"object\" &&\n !Array.isArray(record.campaigns)\n ? { campaigns: record.campaigns as Record<string, number> }\n : {}),\n } as ListWorktreesResponse;\n })\n );\n },\n\n /**\n * List compact pipeline campaigns with nested lanes.\n */\n async listCampaigns(query: {\n topicId?: string;\n status?: WorkflowWorktreeStatus;\n limit?: number;\n } & TopicIdentifierInput = {}) {\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * Create a workflow worktree.\n */\n async createWorktree(input: AddWorktreeInput, idempotencyKey?: string) {\n return gateway.request<AddWorktreeResponse>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * 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\n return Object.assign(client, {\n addWorktree: client.createWorktree,\n createPillar: client.createBranch,\n createSprint: client.createWorktree,\n completeSprint: client.merge,\n requestReview: client.openPullRequest,\n publishFindings: client.push,\n });\n}\n","import { type AdminClientConfig, createAdminClient } from \"./adminClient\";\nimport { createAccessControlClient } from \"./accessControl\";\nimport { type AnswersClientConfig, createAnswersClient } from \"./answersClient\";\nimport {\n type AudiencesClientConfig,\n createAudiencesClient,\n} from \"./audiencesClient\";\nimport { type AuditClientConfig, createAuditClient } from \"./auditClient\";\nimport { createAuthDeviceClient } from \"./authDeviceClient\";\nimport {\n type BeliefsClientConfig,\n createBeliefsClient,\n} from \"./beliefsClient\";\nimport { createClientGraphNamespaces } from \"./clientGraphNamespaces\";\nimport { createClientKnowledgeNamespaces } from \"./clientKnowledgeNamespaces\";\nimport { createClientLocalHelpers } from \"./clientLocalHelpers\";\nimport { createClientPlatformNamespaces } from \"./clientPlatformNamespaces\";\nimport { createClientWorkflowNamespaces } from \"./clientWorkflowNamespaces\";\nimport type { CustomToolNamespace, LucernClientConfig } from \"./clientConfig\";\nimport { exposeGatewayData, toGatewayConfig } from \"./clientRuntime\";\nimport { type SourcesClientConfig, createSourcesClient } from \"./sourcesClient\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport {\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n sdkQueryString,\n} from \"./clientHelpers\";\nimport {\n createControlPlaneClient,\n type ControlPlaneIdentityClientConfig,\n} from \"./control-plane\";\nimport {\n clearRegisteredCustomTools,\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} from \"./decisionsClient\";\nimport {\n createEmbeddingsClient,\n type EmbeddingsClientConfig,\n} from \"./embeddingsClient\";\nimport {\n createContextClient,\n type ContextClientConfig,\n} from \"./contextClient\";\nimport {\n createEventingClient,\n type EventingClientConfig,\n} from \"./eventingClient\";\nimport { createEvidenceClient, type EvidenceClientConfig } from \"./evidenceClient\";\nimport {\n createFunctionSurfaceClient,\n type FunctionSurfaceClientConfig,\n} from \"./generated/functionSurface\";\nimport {\n createGraphAnalysisClient,\n type GraphAnalysisClientConfig,\n} from \"./graphAnalysisClient\";\nimport { createGraphClient, type GraphClientConfig } from \"./graphClient\";\nimport {\n createGraphRecommendationsClient,\n type GraphRecommendationsClientConfig,\n} from \"./graphRecommendationsClient\";\nimport {\n createGraphStateClassifierClient,\n type GraphStateClassifierClientConfig,\n} from \"./graphStateClassifierClient\";\nimport { createHarnessClient, type HarnessClientConfig } from \"./harnessClient\";\nimport {\n createIdentityClient,\n type IdentityClientConfig,\n} from \"./identityClient\";\nimport { createJobsClient, type JobsClientConfig } from \"./jobsClient\";\nimport {\n createLearningClient,\n type LearningClientConfig,\n} from \"./learningClient\";\nimport { createMcpClient } from \"./mcpClient\";\nimport {\n createModelRuntimeClient,\n type ModelRuntimeClientConfig,\n} from \"./modelRuntimeClient\";\nimport {\n createOntologyClient,\n type OntologyClientConfig,\n} from \"./ontologyClient\";\nimport {\n createOntologyLinksClient,\n type OntologyLinksClientConfig,\n} from \"./ontologyLinksClient\";\nimport {\n createOrgGraphSearchClient,\n type OrgGraphSearchClientConfig,\n} from \"./orgGraphSearchClient\";\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 { resolveTopicId } from \"./sdkSurface\";\nimport {\n createTelemetryClient,\n type TelemetryClientConfig,\n} from \"./telemetryClient\";\nimport { createTopicsClient, type TopicsClientConfig } from \"./topicsClient\";\nimport {\n createToolRegistryClient,\n type ToolRegistryClientConfig,\n} from \"./toolRegistryClient\";\nimport { LUCERN_SDK_VERSION } from \"./version\";\nimport {\n createWorkflowClient,\n type WorkflowClientConfig,\n} from \"./workflowClient\";\n\nexport type { LucernClientConfig } from \"./clientConfig\";\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 embeddingsClient = createEmbeddingsClient(gatewayConfig);\n const eventingClient = createEventingClient(gatewayConfig);\n const graphClient = createGraphClient(gatewayConfig);\n const graphAnalysisClient = createGraphAnalysisClient(gatewayConfig);\n const graphRecommendationsClient =\n createGraphRecommendationsClient(gatewayConfig);\n const graphStateClassifierClient =\n createGraphStateClassifierClient(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 authDeviceClient = createAuthDeviceClient(gatewayConfig);\n const adminClient = createAdminClient(gatewayConfig);\n const accessControlClient = createAccessControlClient(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 ontologyLinksClient = createOntologyLinksClient(gatewayConfig);\n const orgGraphSearchClient = createOrgGraphSearchClient(gatewayConfig);\n const functionSurfaceClient = createFunctionSurfaceClient(gatewayConfig);\n const controlPlaneClient = createControlPlaneClient(gatewayConfig);\n const toolRegistryClient = createToolRegistryClient(gatewayConfig);\n const modelRuntimeClient = createModelRuntimeClient(gatewayConfig);\n const packsClient = createPacksClient(gatewayConfig);\n const reportsClient = createReportsClient(gatewayConfig);\n const learningClient = createLearningClient(gatewayConfig);\n const mcpClient = createMcpClient(gatewayConfig);\n const jobsClient = createJobsClient(gatewayConfig);\n const telemetryClient = createTelemetryClient(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 let packInstalled = !config.packKey;\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 (err instanceof LucernApiError && err.code === \"ALREADY_EXISTS\") {\n packInstalled = true;\n return;\n }\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 localHelpers = createClientLocalHelpers({\n auditClient,\n beliefsFacade,\n customNamespaceCache,\n evidenceFacade,\n exposeGatewayData,\n functionSurfaceClient,\n gateway,\n graphClient,\n graphFacade,\n ontologyClient,\n ontologyLinksClient,\n searchFacade,\n } as any);\n\n const namespaceContext = {\n ...localHelpers,\n accessControlClient,\n adminClient,\n answersClient,\n auditClient,\n authDeviceClient,\n audiencesClient,\n beliefsClient,\n beliefsFacade,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n decisionsClient,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n functionSurfaceClient,\n gateway,\n getPackInstalled: () => packInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n jobsClient,\n learningClient,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n ontologyClient,\n ontologyLinksClient,\n ontologiesFacade,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n questionsFacade,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n unregisterCustomTool,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n };\n\n return {\n config,\n version: LUCERN_SDK_VERSION,\n search: localHelpers.searchResources,\n ...createClientKnowledgeNamespaces(namespaceContext as any),\n ...createClientGraphNamespaces(namespaceContext as any),\n ...createClientWorkflowNamespaces(namespaceContext as any),\n ...createClientPlatformNamespaces(namespaceContext as any),\n };\n}\n","import { createLucernClient, type LucernClientConfig } from \"../client\";\n\nexport * as graphContracts from \"@lucern/contracts/graph/v1\";\nexport * as methodSchemas from \"@lucern/contracts/sdk-methods.contract\";\n\nexport type NodesClientConfig = LucernClientConfig;\nexport type NodesClient = ReturnType<typeof createNodesClient>;\n\nexport function createNodesClient(config: NodesClientConfig = {}) {\n const nodes = createLucernClient(config).nodes;\n\n return {\n createNode: nodes.create,\n getNode: nodes.get,\n listNodes: nodes.list,\n updateNode: nodes.update,\n batchCreateNodes: nodes.batchCreate,\n supersedeNode: nodes.supersede,\n verifyNode: nodes.verify,\n hardDeleteNode: nodes.hardDelete,\n raw: nodes,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/authContext.ts","../../src/coreClient.ts","../../src/sdkSurface.ts","../../src/adminClient.ts","../../src/boundaryClientSurface.ts","../../src/control-plane.ts","../../src/identityClient.ts","../../src/accessControl.ts","../../src/answersClient.ts","../../src/audiencesClient.ts","../../src/auditClient.ts","../../src/authDeviceClient.ts","../../src/beliefsClient.ts","../../src/clientGraphNamespaces.ts","../../src/clientKnowledgeNamespaces.ts","../../src/clientEvidenceCompat.ts","../../src/clientHelpers.ts","../../src/customTools.ts","../../src/clientLocalHelpers.ts","../../src/clientPlatformNamespaces.ts","../../src/clientWorkflowNamespaces.ts","../../src/clientRuntime.ts","../../src/sourcesClient.ts","../../src/topicsClient.ts","../../src/graphClient.ts","../../src/ontologyClient.ts","../../src/gatewayFacades.factories.ts","../../src/gatewayFacades.ts","../../src/decisionsClient.ts","../../src/embeddingsClient.ts","../../src/contextClient.ts","../../src/eventingClient.ts","../../src/evidenceClient.ts","../../src/generated/functionSurface.ts","../../src/graphAnalysisClient.ts","../../src/graphRecommendationsClient.ts","../../src/graphStateClassifierClient.ts","../../src/harnessClient.ts","../../src/jobsClient.ts","../../src/learningClient.ts","../../src/mcpClient.ts","../../src/modelRuntimeClient.ts","../../src/ontologyLinksClient.ts","../../src/orgGraphSearchClient.ts","../../src/packsClient.ts","../../src/policyClient.ts","../../src/reportsClient.ts","../../src/schemaClient.ts","../../src/telemetryClient.ts","../../src/toolRegistryClient.ts","../../src/version.ts","../../src/workflowClient.ts","../../src/client.ts","../../src/nodes/index.ts"],"names":["principalType","responseContext","isRecord","cleanString","query","cleanStringList","requireString","body","asRecord","readString","buildBeliefsArchivePayload","buildBeliefsRefinePayload","clearRegisteredCustomTools","exposeGatewayData","listRegisteredCustomTools","randomIdempotencyKey","registerCustomTool","requireBaseRate","requireText","requireTopicId","requireTopicOrProjectId","resolveCustomToolFullName","resolveTopicId","sdkQueryString","unregisterCustomTool","config","serialized","readTopicId","assertKnownKeys","listQuery"],"mappings":"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","file":"index.js","sourcesContent":["import type {\n SessionAuthMode,\n SessionDelegationHop,\n SessionPrincipalType,\n} from \"./contracts/auth-session.contract\";\nimport type { JsonObject } from \"./types\";\n\nexport type LucernSdkAuthFailureReason =\n | \"principal_missing\"\n | \"tenant_missing\"\n | \"membership_missing\"\n | \"workspace_missing\"\n | \"clerk_alias_missing\"\n | \"clerk_alias_unrecognized\"\n | \"policy_denied\"\n | \"policy_unavailable\"\n | \"policy_unknown\";\n\nexport type PermitReadyAuthContext = {\n subject: string;\n tenant: string;\n workspace: string;\n resource?: string;\n action?: string;\n relation?: string;\n context?: JsonObject;\n};\n\nexport type LucernSdkAuthPolicyDecision = \"allow\" | \"deny\" | \"unknown\";\n\nexport type LucernSdkAuthContextInput = {\n clerkId?: string;\n principalId?: string;\n tenantId?: string;\n workspaceId?: string | null;\n principalType?: SessionPrincipalType;\n authMode?: SessionAuthMode;\n roles?: readonly string[];\n scopes?: readonly string[];\n delegationChain?: readonly SessionDelegationHop[];\n policyTraceId?: string;\n correlationId?: string;\n membershipId?: string;\n policyDecision?: LucernSdkAuthPolicyDecision;\n permit?: Partial<PermitReadyAuthContext>;\n};\n\nexport type CanonicalLucernSdkAuthContext = {\n clerkId?: string;\n principalId: string;\n tenantId: string;\n workspaceId: string;\n principalType: SessionPrincipalType;\n authMode: SessionAuthMode;\n roles: string[];\n scopes: string[];\n delegationChain: SessionDelegationHop[];\n policyTraceId?: string;\n correlationId?: string;\n membershipId?: string;\n permit: PermitReadyAuthContext;\n};\n\nexport class LucernSdkAuthContextError extends Error {\n readonly reason: LucernSdkAuthFailureReason;\n\n constructor(reason: LucernSdkAuthFailureReason, message: string) {\n super(message);\n this.name = \"LucernSdkAuthContextError\";\n this.reason = reason;\n }\n}\n\nfunction cleanString(value: string | null | undefined): string | undefined {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction cleanStringList(values: readonly string[] | undefined): string[] {\n if (!values) {\n return [];\n }\n return values\n .map((value) => value.trim())\n .filter(\n (value, index, list) =>\n value.length > 0 && list.indexOf(value) === index\n );\n}\n\nfunction requireString(\n value: string | null | undefined,\n reason: LucernSdkAuthFailureReason,\n label: string\n): string {\n const normalized = cleanString(value);\n if (!normalized) {\n throw new LucernSdkAuthContextError(\n reason,\n `Canonical Lucern SDK auth context is missing ${label}.`\n );\n }\n return normalized;\n}\n\nfunction requirePrincipalType(\n principalType: SessionPrincipalType | undefined\n): SessionPrincipalType {\n if (!principalType) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is missing principalType.\"\n );\n }\n return principalType;\n}\n\nfunction requireAuthMode(authMode: SessionAuthMode | undefined): SessionAuthMode {\n if (!authMode) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is missing authMode.\"\n );\n }\n return authMode;\n}\n\nfunction ensurePermitMatch(args: {\n field: keyof PermitReadyAuthContext;\n expected: string;\n actual?: string;\n}) {\n const actual = cleanString(args.actual);\n if (actual && actual !== args.expected) {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n `Canonical Lucern SDK auth context has conflicting Permit ${args.field}.`\n );\n }\n}\n\nexport function normalizeCanonicalLucernAuthContext(\n input: LucernSdkAuthContextInput | undefined\n): CanonicalLucernSdkAuthContext {\n if (!input) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is required.\"\n );\n }\n\n if (input.policyDecision === \"deny\") {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n \"Canonical Lucern SDK auth context carries a denied policy decision.\"\n );\n }\n\n const principalId = requireString(\n input.principalId,\n \"principal_missing\",\n \"principalId\"\n );\n const tenantId = requireString(input.tenantId, \"tenant_missing\", \"tenantId\");\n const workspaceId = requireString(\n input.workspaceId,\n \"workspace_missing\",\n \"workspaceId\"\n );\n const roles = cleanStringList(input.roles);\n const scopes = cleanStringList(input.scopes);\n const principalType = requirePrincipalType(input.principalType);\n const authMode = requireAuthMode(input.authMode);\n const roleBasedInteractiveAuth =\n authMode === \"interactive_user\" && roles.length > 0;\n if (\n roles.length === 0 ||\n (scopes.length === 0 && !roleBasedInteractiveAuth)\n ) {\n throw new LucernSdkAuthContextError(\n \"membership_missing\",\n \"Canonical Lucern SDK auth context requires non-empty roles and scopes.\"\n );\n }\n\n const subject = cleanString(input.permit?.subject) ?? principalId;\n const tenant = cleanString(input.permit?.tenant) ?? tenantId;\n const workspace = cleanString(input.permit?.workspace) ?? workspaceId;\n\n ensurePermitMatch({\n field: \"subject\",\n expected: principalId,\n actual: subject,\n });\n ensurePermitMatch({ field: \"tenant\", expected: tenantId, actual: tenant });\n ensurePermitMatch({\n field: \"workspace\",\n expected: workspaceId,\n actual: workspace,\n });\n\n const context = input.permit?.context\n ? ({ ...input.permit.context } as JsonObject)\n : undefined;\n\n return {\n clerkId: cleanString(input.clerkId),\n principalId,\n tenantId,\n workspaceId,\n principalType,\n authMode,\n roles,\n scopes,\n delegationChain: input.delegationChain ? [...input.delegationChain] : [],\n policyTraceId: cleanString(input.policyTraceId),\n correlationId: cleanString(input.correlationId),\n membershipId: cleanString(input.membershipId),\n permit: {\n subject,\n tenant,\n workspace,\n resource: cleanString(input.permit?.resource),\n action: cleanString(input.permit?.action),\n relation: cleanString(input.permit?.relation),\n context,\n },\n };\n}\n\nexport function createCanonicalAuthHeaders(\n authContext: CanonicalLucernSdkAuthContext\n): Record<string, string> {\n const headers: Record<string, string> = {\n \"x-lucern-principal-id\": authContext.principalId,\n \"x-lucern-principal-type\": authContext.principalType,\n \"x-lucern-tenant\": authContext.tenantId,\n \"x-lucern-tenant-id\": authContext.tenantId,\n \"x-lucern-workspace\": authContext.workspaceId,\n \"x-lucern-workspace-id\": authContext.workspaceId,\n \"x-lucern-auth-mode\": authContext.authMode,\n \"x-lucern-roles\": authContext.roles.join(\",\"),\n \"x-lucern-scopes\": authContext.scopes.join(\",\"),\n \"x-lucern-permit-context\": JSON.stringify(authContext.permit),\n };\n\n if (authContext.clerkId) {\n headers[\"x-lucern-clerk-id\"] = authContext.clerkId;\n headers[\"x-lucern-user-id\"] = authContext.clerkId;\n }\n if (authContext.delegationChain.length > 0) {\n headers[\"x-lucern-delegation-chain\"] = JSON.stringify(\n authContext.delegationChain\n );\n }\n if (authContext.policyTraceId) {\n headers[\"x-lucern-policy-trace-id\"] = authContext.policyTraceId;\n }\n if (authContext.correlationId) {\n headers[\"x-correlation-id\"] = authContext.correlationId;\n headers[\"x-lucern-correlation-id\"] = authContext.correlationId;\n }\n if (authContext.membershipId) {\n headers[\"x-lucern-membership-id\"] = authContext.membershipId;\n }\n\n return headers;\n}\n","import {\n createTelemetryExporterFromEnv,\n emitTelemetrySignal,\n type LucernTelemetryExporter,\n} from \"@lucern/transport-core\";\nimport { redactDiagnosticValue } from \"@lucern/transport-core/redaction\";\nimport { classifyRetry } from \"@lucern/transport-core/transport\";\nimport { Cause, Effect, Exit } from \"effect\";\n\nimport {\n createCanonicalAuthHeaders,\n LucernSdkAuthContextError,\n normalizeCanonicalLucernAuthContext,\n type LucernSdkAuthContextInput,\n} from \"./authContext\";\nimport 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\ntype GatewayEnvironment = {\n get: (name: string) => string | undefined;\n};\n\ntype GatewayRequestProfile = {\n readonly maxRetries: number;\n readonly timeoutMs: number;\n readonly timeoutMsByMethod?: Partial<Record<GatewayHttpMethod, number>>;\n readonly requestIdFactory: () => string;\n};\n\ntype GatewayRuntimeServices = {\n fetch: FetchLike;\n now: () => number;\n sleep: (ms: number) => Promise<void>;\n env: GatewayEnvironment;\n redaction: <T>(value: T) => T;\n profile: GatewayRequestProfile;\n};\n\nconst DEFAULT_GATEWAY_TIMEOUT_MS = 15_000;\nconst DEFAULT_GATEWAY_MAX_RETRIES = 2;\nconst DEFAULT_ENV_TIMEOUT_MS = \"LUCERN_REQUEST_TIMEOUT_MS\";\nconst DEFAULT_ENV_MAX_RETRIES = \"LUCERN_GATEWAY_MAX_RETRIES\";\nconst ENV_TIMEOUT_BY_METHOD_PREFIX = \"LUCERN_REQUEST_TIMEOUT_MS_\";\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\nexport class GatewayTimeoutError extends Error {\n public readonly retryable = true;\n public readonly timeoutMs: number;\n\n constructor(timeoutMs: number) {\n super(`Request timed out after ${timeoutMs}ms`);\n this.name = \"AbortError\";\n this.timeoutMs = timeoutMs;\n }\n}\n\nexport class GatewayTransportError extends Error {\n public readonly retryable: boolean;\n public readonly cause?: unknown;\n\n constructor(message: string, options?: { cause?: unknown; retryable?: boolean }) {\n super(message);\n this.name = \"GatewayTransportError\";\n this.retryable = options?.retryable ?? true;\n this.cause = options?.cause;\n }\n}\n\nexport type GatewayRecoverableError =\n | GatewayTimeoutError\n | GatewayTransportError;\n\nexport function isGatewayRecoverableError(\n error: unknown,\n): error is GatewayRecoverableError {\n return error instanceof GatewayTimeoutError || error instanceof GatewayTransportError;\n}\n\nexport function isGatewayRetryableError(error: unknown): boolean {\n return (\n (error instanceof GatewayTimeoutError && error.retryable) ||\n (error instanceof GatewayTransportError && error.retryable) ||\n false\n );\n}\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\ntype JsonParseAttempt =\n | { ok: true; value: unknown }\n | { ok: false; reason: \"non-json\" | \"invalid-json\"; error?: SyntaxError };\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\nexport type GatewayClientEnvironment = \"sandbox\" | \"production\";\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 /** Lucern tenant API key or service API key. Sent as `x-lucern-key`. */\n apiKey?: string;\n /**\n * Lucern platform session token. This is not a Clerk JWT.\n * Server-side tenant proxies should normally send `apiKey` plus `clerkId`.\n */\n userToken?: string;\n /** Gateway environment label for legacy sandbox/production routing. */\n environment?: GatewayClientEnvironment;\n /** Clerk subject for the current end user. */\n clerkId?: string;\n /** Optional explicit user subject. Defaults to `clerkId` when omitted. */\n userId?: string;\n /** Optional deployment host hint for front-door routing. */\n deploymentHost?: string;\n getAuthHeaders?:\n | (() => Promise<Record<string, string>>)\n | (() => Record<string, string>);\n /**\n * Canonical Master Control identity tuple applied to every SDK request.\n * Use this for tenant/workspace-scoped graph and identity operations.\n */\n authContext?:\n | LucernSdkAuthContextInput\n | (() => Promise<LucernSdkAuthContextInput | undefined>)\n | (() => LucernSdkAuthContextInput | undefined);\n /** When true, requests fail before fetch if `authContext` is absent. */\n requireCanonicalAuthContext?: boolean;\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 /**\n * Optional operational telemetry sink. When omitted, the SDK resolves an\n * Axiom exporter from Infisical-injected environment variables if present.\n */\n telemetryExporter?: LucernTelemetryExporter | null;\n /** Set false to disable SDK operational telemetry even when env is present. */\n telemetryEnabled?: boolean;\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\nfunction resolveEnvironment(): GatewayEnvironment {\n const processEnv =\n typeof globalThis === \"object\" &&\n globalThis !== null &&\n \"process\" in globalThis\n ? (globalThis as { process?: { env?: Record<string, string> } }).process\n : undefined;\n const env =\n processEnv !== undefined &&\n typeof processEnv === \"object\" &&\n processEnv !== null &&\n typeof processEnv.env === \"object\"\n ? processEnv.env\n : undefined;\n\n return {\n get: (name) => {\n const value = env?.[name];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n },\n };\n}\n\nfunction telemetryEnvironmentRecord(\n environment: GatewayEnvironment,\n): Record<string, string | undefined> {\n const names = [\n \"LUCERN_TELEMETRY_ENABLED\",\n \"AXIOM_TELEMETRY_ENABLED\",\n \"LUCERN_AXIOM_TOKEN\",\n \"AXIOM_TOKEN\",\n \"LUCERN_AXIOM_EVENTS_DATASET\",\n \"LUCERN_AXIOM_DATASET\",\n \"AXIOM_EVENTS_DATASET\",\n \"AXIOM_DATASET\",\n \"LUCERN_AXIOM_API_URL\",\n \"AXIOM_URL\",\n \"LUCERN_ENVIRONMENT\",\n \"NODE_ENV\",\n \"LUCERN_RELEASE\",\n \"SENTRY_RELEASE\",\n \"VERCEL_GIT_COMMIT_SHA\",\n ];\n return Object.fromEntries(\n names.map((name) => [name, environment.get(name)]),\n );\n}\n\nfunction resolveRequestProfile(\n config: Pick<\n GatewayClientConfig,\n \"maxRetries\" | \"timeoutMs\" | \"timeoutMsByMethod\" | \"requestIdFactory\"\n >,\n environment: GatewayEnvironment,\n): GatewayRequestProfile {\n const requestIdFactory = config.requestIdFactory ?? (() => generatePortableRequestId());\n const parsedMaxRetries = parseIntegerFromString(\n config.maxRetries,\n environment.get(DEFAULT_ENV_MAX_RETRIES),\n );\n const parsedTimeoutMs = parseIntegerFromString(\n config.timeoutMs,\n environment.get(DEFAULT_ENV_TIMEOUT_MS),\n );\n\n const methodTimeouts: Partial<Record<GatewayHttpMethod, number>> = {\n ...config.timeoutMsByMethod,\n };\n for (const method of [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"] as const) {\n const envKey = `${ENV_TIMEOUT_BY_METHOD_PREFIX}${method}`;\n const raw = environment.get(envKey);\n if (!raw || methodTimeouts[method] !== undefined) {\n continue;\n }\n const parsed = parseIntegerFromString(undefined, raw);\n if (typeof parsed === \"number\") {\n methodTimeouts[method] = parsed;\n }\n }\n\n return {\n maxRetries: parsedMaxRetries ?? DEFAULT_GATEWAY_MAX_RETRIES,\n timeoutMs: parsedTimeoutMs ?? DEFAULT_GATEWAY_TIMEOUT_MS,\n timeoutMsByMethod: methodTimeouts,\n requestIdFactory,\n };\n}\n\nfunction createGatewayRuntime(\n config: GatewayClientConfig,\n environment: GatewayEnvironment,\n): GatewayRuntimeServices {\n return {\n fetch: config.fetchImpl ?? fetch,\n now: () => Date.now(),\n sleep: (ms) => delay(ms),\n env: environment,\n redaction: resolveRequestRedactionValue,\n profile: resolveRequestProfile(config, environment),\n };\n}\n\nfunction parseIntegerFromString(\n value?: number,\n rawValue?: string,\n): number | undefined {\n if (typeof value === \"number\" && Number.isInteger(value) && value >= 0) {\n return value;\n }\n\n if (typeof rawValue !== \"string\" || !rawValue.trim()) {\n return undefined;\n }\n\n const parsed = Number.parseInt(rawValue, 10);\n return Number.isInteger(parsed) && parsed >= 0 ? parsed : undefined;\n}\n\nfunction resolveRequestRedactionValue<T>(value: T): T {\n return redactDiagnosticValue(value) as T;\n}\n\nfunction resolveGatewayBaseUrl(\n configBaseUrl: string | undefined,\n environment: GatewayEnvironment,\n): string {\n const envBaseUrl =\n environment.get(\"LUCERN_API_URL\") ??\n environment.get(\"LUCERN_BASE_URL\") ??\n environment.get(\"LUCERN_GATEWAY_BASE_URL\");\n\n return (configBaseUrl ?? envBaseUrl ?? \"\").replace(/\\/+$/, \"\");\n}\n\nfunction normalizeGatewayEnvironment(value: GatewayClientEnvironment | undefined):\n | GatewayClientEnvironment\n | undefined {\n return value === \"sandbox\" || value === \"production\" ? value : undefined;\n}\n\n/**\n * Generate a random idempotency key for retry-safe writes.\n */\nexport const randomIdempotencyKey = generatePortableRequestId;\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 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 classifyGatewayErrorForRetry(error: unknown): boolean {\n return isGatewayRetryableError(error) || classifyRetry({ error }).retryable;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction readPolicySummaryFromDetails(details?: JsonValue): string | null {\n if (!isRecord(details)) {\n return null;\n }\n\n const directSummary = details.summary;\n if (typeof directSummary === \"string\" && directSummary.trim().length > 0) {\n return directSummary.trim();\n }\n\n const policy = details.policy;\n if (!isRecord(policy)) {\n return null;\n }\n\n const explanation = policy.explanation;\n if (!isRecord(explanation)) {\n return null;\n }\n\n const nestedSummary = explanation.summary;\n if (typeof nestedSummary === \"string\" && nestedSummary.trim().length > 0) {\n return nestedSummary.trim();\n }\n\n return null;\n}\n\nfunction redactJsonDiagnosticValue(value: JsonValue | undefined): JsonValue | undefined {\n return value === undefined\n ? undefined\n : (redactDiagnosticValue(value) as JsonValue);\n}\n\nasync function resolveConfiguredAuthContext(\n authContext: GatewayClientConfig[\"authContext\"]\n): Promise<LucernSdkAuthContextInput | undefined> {\n if (typeof authContext === \"function\") {\n return await authContext();\n }\n return authContext;\n}\n\nfunction mergeHeaderRecord(\n base: Record<string, string>,\n addition: Record<string, string>\n): Record<string, string> {\n const headers = new Headers(base);\n for (const [key, value] of Object.entries(addition)) {\n const existing = headers.get(key);\n if (existing !== null && existing !== value) {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n `Canonical Lucern SDK auth context conflicts with existing ${key} header.`\n );\n }\n headers.set(key, value);\n }\n return Object.fromEntries(headers.entries());\n}\n\nfunction cleanHeaderValue(value: string | null | undefined): string | undefined {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\n/**\n * Create the transport client used by all SDK modules.\n */\nexport function createGatewayRequestClient(config: GatewayClientConfig = {}) {\n const env = resolveEnvironment();\n const runtime = createGatewayRuntime(config, env);\n const baseUrl = resolveGatewayBaseUrl(config.baseUrl, env);\n const maxRetries = runtime.profile.maxRetries;\n const requestIdFactory = runtime.profile.requestIdFactory;\n const requestTimeoutByMethod = runtime.profile.timeoutMsByMethod;\n const defaultRequestTimeoutMs = runtime.profile.timeoutMs;\n const normalizedEnvironment = normalizeGatewayEnvironment(config.environment);\n const telemetryExporter =\n config.telemetryEnabled === false\n ? null\n : (config.telemetryExporter ??\n createTelemetryExporterFromEnv(telemetryEnvironmentRecord(env), {\n service: \"lucern-sdk\",\n environment: normalizedEnvironment,\n }));\n\n async function resolveAuthHeaders(): Promise<Record<string, string>> {\n const provided = config.getAuthHeaders ? await config.getAuthHeaders() : {};\n const headers = new Headers(provided);\n const setIfAbsent = (name: string, value: string | undefined) => {\n const normalized = cleanHeaderValue(value);\n if (normalized && !headers.has(name)) {\n headers.set(name, normalized);\n }\n };\n\n setIfAbsent(\"x-lucern-key\", config.apiKey);\n setIfAbsent(\"x-lucern-session-token\", config.userToken);\n setIfAbsent(\"x-lucern-environment\", normalizedEnvironment);\n setIfAbsent(\"x-lucern-clerk-id\", config.clerkId);\n setIfAbsent(\"x-lucern-user-id\", config.userId ?? config.clerkId);\n setIfAbsent(\"x-lucern-deployment-host\", config.deploymentHost);\n\n const base = Object.fromEntries(headers.entries());\n const authContextInput = await resolveConfiguredAuthContext(\n config.authContext\n );\n if (!authContextInput && !config.requireCanonicalAuthContext) {\n return base;\n }\n const authContext = normalizeCanonicalLucernAuthContext(authContextInput);\n return mergeHeaderRecord(base, createCanonicalAuthHeaders(authContext));\n }\n\n async function fetchWithTimeout(\n url: string,\n init: RequestInit,\n timeoutMs: number\n ): Promise<Response> {\n const normalizeTransportError = (\n error: unknown,\n isTimeout: boolean,\n ): GatewayRecoverableError => {\n if (isTimeout) {\n return new GatewayTimeoutError(timeoutMs);\n }\n return error instanceof GatewayTimeoutError ||\n error instanceof GatewayTransportError\n ? error\n : new GatewayTransportError(\n error instanceof Error ? error.message : \"Gateway transport error\",\n {\n cause: error,\n retryable: classifyGatewayErrorForRetry(error),\n }\n );\n };\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n const requestEffect = Effect.tryPromise({\n try: () => runtime.fetch(url, { ...init, signal: controller.signal }),\n catch: (error) => normalizeTransportError(error, controller.signal.aborted),\n });\n try {\n const exit = await Effect.runPromiseExit(requestEffect);\n if (Exit.isSuccess(exit)) {\n return exit.value;\n }\n const failure = Array.from(Cause.failures(exit.cause))[0];\n if (failure !== undefined) {\n throw failure;\n }\n throw Cause.squash(exit.cause);\n } finally {\n clearTimeout(timer);\n }\n }\n\n async function emitSdkResponseTelemetry(\n context: GatewayResponseHookContext,\n ): Promise<void> {\n const retry = classifyRetry({\n status: context.status,\n error: context.error,\n retryAfter:\n context.retryAfterMs !== null && context.retryAfterMs !== undefined\n ? String(context.retryAfterMs / 1000)\n : undefined,\n });\n await emitTelemetrySignal(telemetryExporter, {\n signalType: \"trace\",\n surface: \"sdk-retry\",\n eventName: context.willRetry\n ? \"sdk.retry\"\n : context.error\n ? \"sdk.request.error\"\n : \"sdk.request.complete\",\n severity: context.error ? (context.willRetry ? \"warn\" : \"error\") : \"info\",\n durationMs: context.durationMs,\n metricName: \"sdk.request.duration_ms\",\n metricValue: context.durationMs,\n correlationId: context.correlationId ?? context.requestId,\n policyTraceId: context.policyTraceId ?? null,\n tenantId:\n context.headers.get(\"x-lucern-tenant-id\") ??\n context.headers.get(\"x-lucern-tenant\") ??\n undefined,\n workspaceId:\n context.headers.get(\"x-lucern-workspace-id\") ??\n context.headers.get(\"x-lucern-workspace\") ??\n undefined,\n attributes: {\n service: \"lucern-sdk\",\n operation: \"gateway.request\",\n path: context.path,\n httpMethod: context.method,\n httpStatus: context.status,\n attempt: context.attempt,\n maxRetries: context.maxRetries,\n retryReason: retry.reason,\n retryAfterMs: context.retryAfterMs ?? retry.retryAfterMs,\n willRetry: context.willRetry,\n retryable: retry.retryable,\n errorName:\n context.error instanceof Error ? context.error.name : undefined,\n errorMessage:\n context.error instanceof Error ? context.error.message : undefined,\n },\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 const parsed = tryParseGatewayEnvelopeJson(text);\n if (!parsed.ok) {\n return null;\n }\n return isRecord(parsed.value)\n ? (parsed.value as PlatformGatewayEnvelope<T>)\n : null;\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 = requestTimeoutByMethod?.[method];\n if (typeof methodTimeoutMs === \"number\") {\n return methodTimeoutMs;\n }\n return defaultRequestTimeoutMs;\n }\n\n function tryParseGatewayEnvelopeJson(text: string): JsonParseAttempt {\n const trimmed = text.trim();\n if (!trimmed.startsWith(\"{\") && !trimmed.startsWith(\"[\")) {\n return { ok: false, reason: \"non-json\" };\n }\n try {\n return { ok: true, value: JSON.parse(trimmed) };\n } catch (error) {\n if (error instanceof SyntaxError) {\n return { ok: false, reason: \"invalid-json\", error };\n }\n throw error;\n }\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 && isRecord(failure.error) ? failure.error : 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 = runtime.redaction(\n redactJsonDiagnosticValue(failure?.details ?? legacyError?.details)\n );\n const policySummary = readPolicySummaryFromDetails(details);\n const failureMessage =\n typeof failure?.error === \"string\"\n ? failure.error\n : legacyError?.message;\n\n return new LucernApiError({\n code:\n failure?.code ??\n legacyError?.code ??\n fallbackErrorCode(args.response.status),\n message:\n policySummary ??\n failureMessage ??\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 retry = classifyRetry({\n status: response.status,\n retryAfter: response.headers.get(\"Retry-After\"),\n });\n const retryAfterMs = retry.retryAfterMs ?? null;\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 && retry.retryable;\n const responseContext: GatewayResponseHookContext = {\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 await config.onResponse?.(responseContext);\n await emitSdkResponseTelemetry(responseContext);\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 const responseContext: GatewayResponseHookContext = {\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 await config.onResponse?.(responseContext);\n await emitSdkResponseTelemetry(responseContext);\n\n return successPayload;\n } catch (fetchError) {\n if (fetchError instanceof LucernApiError) {\n throw fetchError;\n }\n const willRetry =\n attempt < maxRetries && classifyGatewayErrorForRetry(fetchError);\n const responseContext: GatewayResponseHookContext = {\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n error: fetchError,\n correlationId: requestId,\n policyTraceId: null,\n willRetry,\n };\n await config.onResponse?.(responseContext);\n await emitSdkResponseTelemetry(responseContext);\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\nexport function isRecord(value: unknown): value is AnyRecord {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function asRecord(value: unknown): AnyRecord {\n return isRecord(value) ? value : {};\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 const normalizeNodeVerificationStatus = normalizeVerificationStatus;\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;\n }\n\n const record = asRecord(data);\n if (Array.isArray(record.items)) {\n return record.items;\n }\n if (legacyKey && Array.isArray(record[legacyKey])) {\n return record[legacyKey];\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 return {\n ...result,\n [legacyKey]: items,\n } as ListResult<T, LegacyKey>;\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 const getControlObjectOwnership = async () =>\n gateway.request<ControlObjectOwnershipContract>({\n path: \"/api/platform/v1/admin/control-ownership\",\n });\n\n const createMembership = async (\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 gateway.request<unknown>({\n path: \"/api/platform/v1/memberships\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n const updateMembership = createMembership;\n const upsertMembership = createMembership;\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 getControlObjectOwnership,\n\n /**\n * @deprecated Use getControlObjectOwnership.\n */\n getControlObjectOwnershipContract: getControlObjectOwnership,\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 createMembership,\n\n /**\n * Update a membership.\n */\n updateMembership,\n\n /**\n * @deprecated Use createMembership or updateMembership.\n */\n upsertMembership,\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 { createListResult } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport function cleanOptionalString(value: string | undefined) {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function cleanRequiredString(\n value: string | undefined,\n label: string\n) {\n const normalized = cleanOptionalString(value);\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nexport function readTopicId(input: TopicProjectAliasInput) {\n return cleanOptionalString(input.topicId) ?? cleanOptionalString(input.projectId);\n}\n\nexport function requireTopicId(input: TopicProjectAliasInput) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nexport function assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nexport function knownPayload<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return { ...input } as JsonObject;\n}\n\nexport function topicPayload<T extends string>(\n input: TopicProjectAliasInput & Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject;\n}\n\nexport function listResultFromEnvelope<T, LegacyKey extends string>(\n data: unknown,\n legacyKey: LegacyKey\n): ListResult<T, LegacyKey> {\n const record = isRecord(data) ? data : {};\n const legacyItems = record[legacyKey];\n return createListResult(\n Array.isArray(legacyItems)\n ? legacyItems\n : Array.isArray(data)\n ? data\n : [],\n legacyKey\n );\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, SdkPrincipalContext } from \"./types\";\n\nexport type ControlPlanePrincipalType =\n | \"human\"\n | \"service\"\n | \"agent\"\n | \"group\"\n | \"external_viewer\";\n\nexport type ControlPlanePrincipalStatus =\n | \"active\"\n | \"invited\"\n | \"suspended\"\n | \"disabled\"\n | \"revoked\"\n | \"missing\";\n\nexport type ResolveInteractivePrincipalInput = {\n clerkId: string;\n tenantId?: string;\n workspaceId?: string;\n providerProjectId?: string;\n};\n\nexport type ControlPlanePermitSubject = {\n subject: string;\n tenant: string;\n workspace?: string;\n};\n\nexport type ResolvedInteractivePrincipalContext = SdkPrincipalContext & {\n principalType: ControlPlanePrincipalType;\n authMode: \"interactive_user\";\n clerkId: string;\n tenantId: string;\n workspaceId: string | null;\n groupIds: string[];\n permittedToolNames: string[];\n permittedPackKeys: string[];\n principalStatus: ControlPlanePrincipalStatus;\n tenantStatus: string;\n workspaceStatus: string;\n permit: ControlPlanePermitSubject;\n};\n\nexport type ResolveInteractivePrincipalFailureReason =\n | \"principal_missing\"\n | \"tenant_missing\"\n | \"workspace_missing\"\n | \"membership_missing\"\n | \"ambiguous_principal\"\n | \"ambiguous_workspace\"\n | \"alias_invited\"\n | \"alias_suspended\"\n | \"alias_disabled\"\n | \"alias_revoked\"\n | \"principal_invited\"\n | \"principal_suspended\"\n | \"principal_disabled\"\n | \"principal_revoked\"\n | \"tenant_disabled\"\n | \"workspace_disabled\"\n | \"resolver_unavailable\";\n\nexport type ResolveInteractivePrincipalFailure = {\n ok: false;\n reason: ResolveInteractivePrincipalFailureReason | (string & {});\n message: string;\n principalStatus?: ControlPlanePrincipalStatus | string;\n tenantStatus?: string;\n workspaceStatus?: string;\n details?: JsonObject;\n};\n\ntype ResolveInteractivePrincipalPayload =\n | (ResolvedInteractivePrincipalContext & { ok?: true })\n | ResolveInteractivePrincipalFailure;\n\nexport class LucernControlPlaneIdentityError extends Error {\n readonly reason: ResolveInteractivePrincipalFailure[\"reason\"];\n readonly principalStatus?: string;\n readonly tenantStatus?: string;\n readonly workspaceStatus?: string;\n readonly details?: JsonObject;\n\n constructor(failure: ResolveInteractivePrincipalFailure) {\n super(failure.message);\n this.name = \"LucernControlPlaneIdentityError\";\n this.reason = failure.reason;\n this.principalStatus = failure.principalStatus;\n this.tenantStatus = failure.tenantStatus;\n this.workspaceStatus = failure.workspaceStatus;\n this.details = failure.details;\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 stringList(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return [\n ...new Set(\n value\n .filter((entry): entry is string => typeof entry === \"string\")\n .map((entry) => entry.trim())\n .filter(Boolean)\n ),\n ];\n}\n\nfunction principalType(value: unknown): ControlPlanePrincipalType {\n switch (value) {\n case \"service\":\n case \"service_principal\":\n return \"service\";\n case \"agent\":\n return \"agent\";\n case \"group\":\n return \"group\";\n case \"external_viewer\":\n case \"external_stakeholder\":\n return \"external_viewer\";\n default:\n return \"human\";\n }\n}\n\nfunction adminFlags(roles: string[]) {\n const normalized = roles.map((role) => role.toLowerCase());\n const isPlatformAdmin = normalized.includes(\"platform_admin\");\n const isTenantAdmin = isPlatformAdmin || normalized.includes(\"tenant_admin\");\n const isWorkspaceAdmin =\n isTenantAdmin ||\n normalized.includes(\"workspace_admin\") ||\n normalized.includes(\"workspace_owner\");\n return { isPlatformAdmin, isTenantAdmin, isWorkspaceAdmin };\n}\n\nexport function normalizeResolvedInteractivePrincipal(\n payload: ResolveInteractivePrincipalPayload\n): ResolvedInteractivePrincipalContext {\n if (\"ok\" in payload && payload.ok === false) {\n throw new LucernControlPlaneIdentityError(payload);\n }\n\n const principalId = cleanString(payload.principalId);\n const clerkId = cleanString(payload.clerkId);\n const tenantId = cleanString(payload.tenantId);\n if (!principalId || !clerkId || !tenantId) {\n throw new LucernControlPlaneIdentityError({\n ok: false,\n reason: \"resolver_unavailable\",\n message:\n \"Control-plane principal resolver returned an incomplete principal context.\",\n principalStatus: payload.principalStatus ?? \"missing\",\n tenantStatus: payload.tenantStatus,\n workspaceStatus: payload.workspaceStatus,\n });\n }\n\n const roles = stringList(payload.roles);\n const scopes = stringList(payload.scopes);\n const workspaceId = cleanString(payload.workspaceId) ?? null;\n const flags = adminFlags(roles);\n\n return {\n principalId,\n principalType: principalType(payload.principalType),\n clerkId,\n tenantId,\n workspaceId,\n roles,\n scopes,\n groupIds: stringList(payload.groupIds),\n permittedToolNames: stringList(payload.permittedToolNames),\n permittedPackKeys: stringList(payload.permittedPackKeys),\n principalStatus:\n (cleanString(payload.principalStatus) as ControlPlanePrincipalStatus) ??\n \"active\",\n tenantStatus: cleanString(payload.tenantStatus) ?? \"active\",\n workspaceStatus:\n cleanString(payload.workspaceStatus) ?? (workspaceId ? \"active\" : \"none\"),\n isPlatformAdmin:\n typeof payload.isPlatformAdmin === \"boolean\"\n ? payload.isPlatformAdmin\n : flags.isPlatformAdmin,\n isTenantAdmin:\n typeof payload.isTenantAdmin === \"boolean\"\n ? payload.isTenantAdmin\n : flags.isTenantAdmin,\n isWorkspaceAdmin:\n typeof payload.isWorkspaceAdmin === \"boolean\"\n ? payload.isWorkspaceAdmin\n : flags.isWorkspaceAdmin,\n permit: {\n subject: cleanString(payload.permit?.subject) ?? principalId,\n tenant: cleanString(payload.permit?.tenant) ?? tenantId,\n ...(workspaceId\n ? { workspace: cleanString(payload.permit?.workspace) ?? workspaceId }\n : {}),\n },\n authMode: \"interactive_user\",\n sessionId: payload.sessionId,\n delegatedBy: payload.delegatedBy,\n expiresAt: payload.expiresAt,\n };\n}\n\nexport type ResolveInteractivePrincipalResponse =\n PlatformGatewaySuccess<ResolvedInteractivePrincipalContext>;\n\nexport type ControlPlaneIdentityClientConfig = GatewayClientConfig;\n\nexport function createControlPlaneIdentityClient(\n config: ControlPlaneIdentityClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n return {\n async resolveInteractivePrincipal(\n input: ResolveInteractivePrincipalInput\n ): Promise<ResolveInteractivePrincipalResponse> {\n return gateway\n .request<ResolveInteractivePrincipalPayload>({\n path: \"/api/platform/v1/control-plane/identity/resolve-interactive-principal\",\n method: \"POST\",\n body: input,\n })\n .then((response) =>\n mapGatewayData(response, normalizeResolvedInteractivePrincipal)\n );\n },\n };\n}\n\nexport function createControlPlaneClient(\n config: ControlPlaneIdentityClientConfig = {}\n) {\n return {\n identity: createControlPlaneIdentityClient(config),\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 {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult, SdkPrincipalContext } from \"./types\";\nimport {\n normalizeResolvedInteractivePrincipal,\n type ResolveInteractivePrincipalFailure,\n type ResolveInteractivePrincipalInput,\n type ResolvedInteractivePrincipalContext,\n} from \"./control-plane\";\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\nexport const TENANT_IDENTITY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"integrationKey\",\n \"secretRef\",\n \"policySubject\",\n \"policyAction\",\n \"policyResource\",\n \"decision\",\n \"config\",\n \"configKey\",\n \"configValue\",\n \"provider\",\n \"status\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type TenantIdentityConfigRecord = {\n tenantId: string;\n workspaceId?: string;\n config?: JsonObject | null;\n metadata?: JsonObject | null;\n updatedAt?: number;\n updatedBy?: string;\n};\n\nexport type TenantIntegrationRecord = {\n tenantId: string;\n workspaceId?: string;\n integrationKey: string;\n provider?: string;\n status?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantSecretReference = {\n tenantId: string;\n workspaceId?: string;\n integrationKey?: string;\n secretRef: string;\n status?: string;\n metadata?: JsonObject | null;\n updatedAt?: number;\n};\n\nexport type PolicyDecisionRecord = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n policySubject: string;\n policyAction: string;\n policyResource: string;\n decision: \"allow\" | \"deny\" | string;\n reason?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type TenantIdentityScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpdateTenantConfigInput = TenantIdentityScope & {\n config?: JsonObject;\n configKey?: string;\n configValue?: JsonObject | string | number | boolean | null;\n metadata?: JsonObject;\n};\n\nexport type UpsertTenantIntegrationInput = TenantIdentityScope & {\n integrationKey: string;\n provider?: string;\n status?: string;\n metadata?: JsonObject;\n};\n\nexport type PutTenantSecretReferenceInput = TenantIdentityScope & {\n integrationKey?: string;\n secretRef: string;\n status?: string;\n metadata?: JsonObject;\n};\n\nexport type PolicyEvaluationInput = TenantIdentityScope & {\n policySubject: string;\n policyAction: string;\n policyResource: string;\n metadata?: JsonObject;\n};\n\nexport type RecordPolicyDecisionInput = PolicyEvaluationInput & {\n decision: \"allow\" | \"deny\" | string;\n};\n\nexport type TenantIntegrationsResponse = ListResult<\n TenantIntegrationRecord,\n \"integrations\"\n>;\nexport type TenantSecretsResponse = ListResult<TenantSecretReference, \"secrets\">;\n\nfunction tenantIdentityQuery(input: TenantIdentityScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction tenantIdentityBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TENANT_IDENTITY_FIELDS, operation);\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 const 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 ) => requestPrincipalWrite(\"PATCH\", input, idempotencyKey);\n\n const deleteKey = (\n keyId: string,\n input: { reason?: string } = {},\n idempotencyKey?: string\n ) =>\n 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 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 clerkId: data.clerkId,\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 groupIds: Array.isArray(data.groupIds) ? data.groupIds : [],\n permittedToolNames: Array.isArray(data.permittedToolNames)\n ? data.permittedToolNames\n : [],\n permittedPackKeys: Array.isArray(data.permittedPackKeys)\n ? data.permittedPackKeys\n : [],\n principalStatus: data.principalStatus,\n tenantStatus: data.tenantStatus,\n workspaceStatus: data.workspaceStatus,\n isPlatformAdmin: data.isPlatformAdmin === true,\n isTenantAdmin: data.isTenantAdmin === true,\n isWorkspaceAdmin: data.isWorkspaceAdmin === true,\n permit:\n data.permit ??\n (data.tenantId\n ? {\n subject: data.principalId,\n tenant: data.tenantId,\n ...(data.workspaceId ? { workspace: data.workspaceId } : {}),\n }\n : undefined),\n authMode: data.authMode,\n sessionId: data.sessionId,\n delegatedBy: data.delegatedBy,\n expiresAt: data.expiresAt,\n }))\n );\n },\n\n /**\n * Resolve a Clerk subject through the tenant control-plane Permit projection.\n * @deprecated Prefer lucern.controlPlane.identity.resolveInteractivePrincipal().\n */\n async resolveInteractivePrincipal(input: ResolveInteractivePrincipalInput) {\n return gateway\n .request<\n | (ResolvedInteractivePrincipalContext & { ok?: true })\n | ResolveInteractivePrincipalFailure\n >({\n path: \"/api/platform/v1/control-plane/identity/resolve-interactive-principal\",\n method: \"POST\",\n body: input,\n })\n .then((response) =>\n mapGatewayData(response, normalizeResolvedInteractivePrincipal)\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 updatePrincipal,\n\n /**\n * @deprecated Use createPrincipal or updatePrincipal.\n */\n upsertPrincipal: updatePrincipal,\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 deleteKey,\n\n /**\n * @deprecated Use deleteKey.\n */\n revokeKey: deleteKey,\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 async getTenantConfig(input: TenantIdentityScope) {\n return gateway.request<TenantIdentityConfigRecord>({\n path: `/api/platform/v1/identity/tenant-config${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n });\n },\n\n async updateTenantConfig(\n input: UpdateTenantConfigInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<TenantIdentityConfigRecord>({\n path: \"/api/platform/v1/identity/tenant-config\",\n method: \"PATCH\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.updateTenantConfig\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async listIntegrations(input: TenantIdentityScope) {\n return gateway.request<TenantIntegrationsResponse>({\n path: `/api/platform/v1/identity/integrations${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TenantIntegrationRecord, \"integrations\">(\n data,\n \"integrations\"\n )\n )\n );\n },\n\n async upsertIntegration(\n input: UpsertTenantIntegrationInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.integrationKey, \"integrationKey\");\n return gateway.request<TenantIntegrationRecord>({\n path: \"/api/platform/v1/identity/integrations\",\n method: \"PUT\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.upsertIntegration\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async listSecrets(input: TenantIdentityScope) {\n return gateway.request<TenantSecretsResponse>({\n path: `/api/platform/v1/identity/secrets${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TenantSecretReference, \"secrets\">(\n data,\n \"secrets\"\n )\n )\n );\n },\n\n async putSecretReference(\n input: PutTenantSecretReferenceInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.secretRef, \"secretRef\");\n return gateway.request<TenantSecretReference>({\n path: \"/api/platform/v1/identity/secrets\",\n method: \"PUT\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.putSecretReference\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async evaluatePolicy(\n input: PolicyEvaluationInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.policySubject, \"policySubject\");\n cleanRequiredString(input.policyAction, \"policyAction\");\n cleanRequiredString(input.policyResource, \"policyResource\");\n return gateway.request<PolicyDecisionRecord>({\n path: \"/api/platform/v1/identity/policy/evaluate\",\n method: \"POST\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.evaluatePolicy\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async recordPolicyDecision(\n input: RecordPolicyDecisionInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.decision, \"decision\");\n return gateway.request<PolicyDecisionRecord>({\n path: \"/api/platform/v1/identity/policy/decisions\",\n method: \"POST\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.recordPolicyDecision\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n LucernSdkAuthContextError,\n normalizeCanonicalLucernAuthContext,\n type LucernSdkAuthContextInput,\n type LucernSdkAuthFailureReason,\n} from \"./authContext\";\nimport { type GatewayClientConfig } from \"./coreClient\";\nimport {\n createIdentityClient,\n type PolicyDecisionRecord,\n type PolicyEvaluationInput,\n} from \"./identityClient\";\nimport type { SessionPrincipalType } from \"./contracts/auth-session.contract\";\nimport type { JsonObject } from \"./types\";\n\nexport type ClerkIdentityAliasInput = {\n provider?: \"clerk\" | string;\n providerProjectId?: string | null;\n externalSubjectId: string;\n status?: \"active\" | \"pending\" | \"revoked\" | string;\n};\n\nexport type CanonicalPrincipalIdentityInput = {\n principalId?: string | null;\n principalType?: SessionPrincipalType | \"user\" | \"external_viewer\" | null;\n canonicalClerkUserId?: string | null;\n clerkId?: string | null;\n clerkIdentityAliases?: readonly ClerkIdentityAliasInput[];\n tenantId?: string | null;\n workspaceId?: string | null;\n roles?: readonly string[];\n scopes?: readonly string[];\n};\n\nexport type CanonicalPrincipalIdentityAlias = {\n provider: string;\n providerProjectId?: string;\n externalSubjectId: string;\n status?: string;\n};\n\nexport type CanonicalPrincipalIdentity = {\n principalId: string;\n principalType: SessionPrincipalType;\n canonicalClerkUserId?: string;\n clerkIdentityAliases: CanonicalPrincipalIdentityAlias[];\n tenantId?: string;\n workspaceId?: string;\n roles: string[];\n scopes: string[];\n};\n\nexport type AccessResourceType =\n | \"tenant\"\n | \"workspace\"\n | \"deployment\"\n | \"convex_table\"\n | \"secret_scope\"\n | \"agent_session\"\n | (string & {});\n\nexport type AccessResourceDescriptor = {\n type: AccessResourceType;\n key: string;\n};\n\nexport type RequireAccessInput = {\n identity?: CanonicalPrincipalIdentityInput | LucernSdkAuthContextInput;\n observedClerkId?: string;\n tenantId?: string;\n workspaceId?: string;\n action: string;\n resource: AccessResourceDescriptor | string;\n context?: JsonObject;\n};\n\nexport type AccessCheckResult = {\n identity: CanonicalPrincipalIdentity;\n policyInput: PolicyEvaluationInput;\n decision: PolicyDecisionRecord;\n};\n\nexport class LucernAccessControlError extends LucernSdkAuthContextError {\n readonly policyDecision?: PolicyDecisionRecord;\n\n constructor(\n reason: LucernSdkAuthFailureReason,\n message: string,\n policyDecision?: PolicyDecisionRecord\n ) {\n super(reason, message);\n this.name = \"LucernAccessControlError\";\n this.policyDecision = policyDecision;\n }\n}\n\nfunction cleanString(value: string | null | undefined): string | undefined {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction cleanStringList(values: readonly string[] | undefined): string[] {\n if (!values) {\n return [];\n }\n return [\n ...new Set(\n values.map((value) => value.trim()).filter((value) => value.length > 0)\n ),\n ];\n}\n\nfunction requireString(\n value: string | null | undefined,\n reason: LucernSdkAuthFailureReason,\n label: string\n): string {\n const normalized = cleanString(value);\n if (!normalized) {\n throw new LucernAccessControlError(\n reason,\n `Lucern SDK access control requires ${label}.`\n );\n }\n return normalized;\n}\n\nfunction normalizePrincipalType(\n principalType: CanonicalPrincipalIdentityInput[\"principalType\"]\n): SessionPrincipalType {\n if (principalType === \"agent\") {\n return \"agent\";\n }\n if (principalType === \"service\") {\n return \"service\";\n }\n if (principalType === \"group\") {\n return \"group\";\n }\n if (principalType === \"external_viewer\") {\n return \"external_viewer\";\n }\n return \"human\";\n}\n\nfunction aliasKey(alias: CanonicalPrincipalIdentityAlias): string {\n return `${alias.provider}:${alias.providerProjectId ?? \"\"}:${\n alias.externalSubjectId\n }`;\n}\n\nfunction normalizeAliases(\n input: readonly ClerkIdentityAliasInput[] | undefined,\n canonicalClerkUserId: string | undefined\n): CanonicalPrincipalIdentityAlias[] {\n const aliases = new Map<string, CanonicalPrincipalIdentityAlias>();\n for (const alias of input ?? []) {\n const externalSubjectId = cleanString(alias.externalSubjectId);\n if (!externalSubjectId) {\n continue;\n }\n const normalized: CanonicalPrincipalIdentityAlias = {\n provider: cleanString(alias.provider) ?? \"clerk\",\n providerProjectId: cleanString(alias.providerProjectId),\n externalSubjectId,\n status: cleanString(alias.status),\n };\n aliases.set(aliasKey(normalized), normalized);\n }\n if (canonicalClerkUserId) {\n const canonicalAlias: CanonicalPrincipalIdentityAlias = {\n provider: \"clerk\",\n externalSubjectId: canonicalClerkUserId,\n status: \"active\",\n };\n aliases.set(aliasKey(canonicalAlias), canonicalAlias);\n }\n return [...aliases.values()];\n}\n\nfunction isKnownClerkSubject(args: {\n clerkId: string;\n canonicalClerkUserId?: string;\n aliases: readonly CanonicalPrincipalIdentityAlias[];\n}): boolean {\n if (args.clerkId === args.canonicalClerkUserId) {\n return true;\n }\n return args.aliases.some(\n (alias) =>\n alias.provider === \"clerk\" && alias.externalSubjectId === args.clerkId\n );\n}\n\nfunction authContextToPrincipalInput(\n input: LucernSdkAuthContextInput\n): CanonicalPrincipalIdentityInput {\n const normalized = normalizeCanonicalLucernAuthContext(input);\n return {\n principalId: normalized.principalId,\n principalType: normalized.principalType,\n canonicalClerkUserId: normalized.clerkId,\n clerkId: normalized.clerkId,\n tenantId: normalized.tenantId,\n workspaceId: normalized.workspaceId,\n roles: normalized.roles,\n scopes: normalized.scopes,\n };\n}\n\nfunction isAuthContextInput(\n input: CanonicalPrincipalIdentityInput | LucernSdkAuthContextInput\n): input is LucernSdkAuthContextInput {\n return \"authMode\" in input || \"permit\" in input || \"delegationChain\" in input;\n}\n\nexport function normalizeCanonicalPrincipalIdentity(\n input: CanonicalPrincipalIdentityInput | LucernSdkAuthContextInput,\n options: { observedClerkId?: string } = {}\n): CanonicalPrincipalIdentity {\n const principalInput = isAuthContextInput(input)\n ? authContextToPrincipalInput(input)\n : input;\n const principalId = requireString(\n principalInput.principalId,\n \"principal_missing\",\n \"principalId\"\n );\n const principalType = normalizePrincipalType(principalInput.principalType);\n const observedClerkId = cleanString(options.observedClerkId);\n const canonicalClerkUserId =\n cleanString(principalInput.canonicalClerkUserId) ??\n cleanString(principalInput.clerkId);\n\n if (principalType === \"human\" && !canonicalClerkUserId) {\n throw new LucernAccessControlError(\n \"clerk_alias_missing\",\n \"Human principals require one canonical Clerk user id.\"\n );\n }\n\n const aliases = normalizeAliases(\n principalInput.clerkIdentityAliases,\n canonicalClerkUserId\n );\n if (\n observedClerkId &&\n !isKnownClerkSubject({\n clerkId: observedClerkId,\n canonicalClerkUserId,\n aliases,\n })\n ) {\n throw new LucernAccessControlError(\n \"clerk_alias_unrecognized\",\n \"Observed Clerk user id does not match the canonical human principal id.\"\n );\n }\n\n return {\n principalId,\n principalType,\n canonicalClerkUserId,\n clerkIdentityAliases: aliases,\n tenantId: cleanString(principalInput.tenantId),\n workspaceId: cleanString(principalInput.workspaceId),\n roles: cleanStringList(principalInput.roles),\n scopes: cleanStringList(principalInput.scopes),\n };\n}\n\nexport function formatPermitResource(\n resource: AccessResourceDescriptor | string\n) {\n if (typeof resource === \"string\") {\n return requireString(resource, \"policy_denied\", \"policyResource\");\n }\n const type = requireString(resource.type, \"policy_denied\", \"resource.type\");\n const key = requireString(resource.key, \"policy_denied\", \"resource.key\");\n return key.startsWith(`${type}:`) ? key : `${type}:${key}`;\n}\n\nfunction resourceRequiresWorkspace(resource: AccessResourceDescriptor | string) {\n if (typeof resource === \"string\") {\n return !resource.startsWith(\"tenant:\");\n }\n return resource.type !== \"tenant\";\n}\n\nfunction rejectConflictingScopeOverride(args: {\n field: \"tenantId\" | \"workspaceId\";\n identityValue?: string;\n requestedValue?: string;\n}) {\n if (\n args.identityValue &&\n args.requestedValue &&\n args.identityValue !== args.requestedValue\n ) {\n throw new LucernAccessControlError(\n \"policy_denied\",\n `Lucern SDK access control rejects conflicting ${args.field} scope.`\n );\n }\n}\n\nfunction buildPolicyInput(\n identity: CanonicalPrincipalIdentity,\n input: RequireAccessInput\n): PolicyEvaluationInput {\n rejectConflictingScopeOverride({\n field: \"tenantId\",\n identityValue: identity.tenantId,\n requestedValue: cleanString(input.tenantId),\n });\n rejectConflictingScopeOverride({\n field: \"workspaceId\",\n identityValue: identity.workspaceId,\n requestedValue: cleanString(input.workspaceId),\n });\n const tenantId = requireString(\n input.tenantId ?? identity.tenantId,\n \"tenant_missing\",\n \"tenantId\"\n );\n const workspaceId = cleanString(input.workspaceId ?? identity.workspaceId);\n if (resourceRequiresWorkspace(input.resource) && !workspaceId) {\n throw new LucernAccessControlError(\n \"workspace_missing\",\n \"Workspace-scoped Permit checks require workspaceId.\"\n );\n }\n\n return {\n tenantId,\n workspaceId,\n principalId: identity.principalId,\n policySubject: identity.principalId,\n policyAction: requireString(input.action, \"policy_denied\", \"policyAction\"),\n policyResource: formatPermitResource(input.resource),\n metadata: input.context,\n };\n}\n\nasync function resolveConfiguredPrincipalInput(\n authContext: GatewayClientConfig[\"authContext\"]\n): Promise<LucernSdkAuthContextInput | undefined> {\n if (typeof authContext === \"function\") {\n return await authContext();\n }\n return authContext;\n}\n\nexport function assertPermitAllowed(decision: PolicyDecisionRecord) {\n if (decision.decision !== \"allow\") {\n throw new LucernAccessControlError(\n decision.decision === \"deny\" ? \"policy_denied\" : \"policy_unknown\",\n `Permit denied ${decision.policyAction} on ${decision.policyResource}.`,\n decision\n );\n }\n}\n\nexport function createAccessControlClient(config: GatewayClientConfig = {}) {\n const identityClient = createIdentityClient(config);\n\n async function resolveIdentity(\n input?: RequireAccessInput[\"identity\"],\n observedClerkId?: string\n ) {\n const identityInput =\n input ?? (await resolveConfiguredPrincipalInput(config.authContext));\n if (!identityInput) {\n throw new LucernAccessControlError(\n \"principal_missing\",\n \"Lucern SDK access control requires a canonical principal identity.\"\n );\n }\n return normalizeCanonicalPrincipalIdentity(identityInput, {\n observedClerkId,\n });\n }\n\n async function checkAccess(\n input: RequireAccessInput,\n idempotencyKey?: string\n ): Promise<AccessCheckResult> {\n const identity = await resolveIdentity(input.identity, input.observedClerkId);\n const policyInput = buildPolicyInput(identity, input);\n try {\n const response = await identityClient.evaluatePolicy(\n policyInput,\n idempotencyKey\n );\n return {\n identity,\n policyInput,\n decision: response.data,\n };\n } catch (error) {\n if (error instanceof LucernSdkAuthContextError) {\n throw error;\n }\n throw new LucernAccessControlError(\n \"policy_unavailable\",\n \"Permit policy check failed closed before an allow decision was returned.\"\n );\n }\n }\n\n async function requireAccess(input: RequireAccessInput, idempotencyKey?: string) {\n const result = await checkAccess(input, idempotencyKey);\n assertPermitAllowed(result.decision);\n return result;\n }\n\n async function canAccess(input: RequireAccessInput, idempotencyKey?: string) {\n try {\n await requireAccess(input, idempotencyKey);\n return true;\n } catch {\n return false;\n }\n }\n\n return {\n normalizePrincipal: normalizeCanonicalPrincipalIdentity,\n checkAccess,\n requireAccess,\n canAccess,\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 const listRegistry = async (\n query: GatewayScope & {\n effective?: boolean;\n status?: \"active\" | \"disabled\" | \"archived\";\n } = {},\n ) => {\n return gateway\n .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 })\n .then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"registryEntries\"),\n ),\n );\n };\n\n const createRegistryEntry = async (\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 const updateRegistryEntry = createRegistryEntry;\n const upsertRegistry = createRegistryEntry;\n const getRegistry = listRegistry;\n\n const listGrants = async (\n query: GatewayScope & {\n audienceKey?: string;\n principalId?: string;\n groupId?: string;\n status?: \"active\" | \"revoked\" | \"expired\";\n } = {},\n ) => {\n return gateway\n .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 })\n .then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"grants\"),\n ),\n );\n };\n\n const createGrant = async (\n input: AudienceGrantInput,\n idempotencyKey?: string,\n ) => {\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 const getGrants = listGrants;\n const grant = createGrant;\n const deleteGrant = async (\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 const revokeGrant = deleteGrant;\n\n return {\n /**\n * List audience registry entries.\n */\n listRegistry,\n\n /**\n * @deprecated Use listRegistry.\n */\n getRegistry,\n\n /**\n * Create an audience registry entry.\n */\n createRegistryEntry,\n\n /**\n * Update an audience registry entry.\n */\n updateRegistryEntry,\n\n /**\n * @deprecated Use createRegistryEntry or updateRegistryEntry.\n */\n upsertRegistry,\n\n /**\n * List audience grants.\n */\n listGrants,\n\n /**\n * @deprecated Use listGrants.\n */\n getGrants,\n\n /**\n * Create an audience grant.\n */\n createGrant,\n\n /**\n * @deprecated Use createGrant.\n */\n grant,\n\n /**\n * Delete an audience grant by revoking it.\n */\n deleteGrant,\n\n /**\n * @deprecated Use deleteGrant.\n */\n revokeGrant,\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { TopicIdentifierInput } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the audit client. */\nexport type AuditClientConfig = GatewayClientConfig;\n\n/**\n * Create the audit client for transport-level audit event reads.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list audit events.\n */\nexport function createAuditClient(config: AuditClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List audit events for the current scope.\n */\n async listEvents(\n query: GatewayScope & {\n action?: string;\n decision?: string;\n traceId?: string;\n principalId?: string;\n topicId?: string;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audit/events${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"events\")\n )\n );\n },\n };\n}\n","import type { GatewayClientConfig } from \"./coreClient\";\n\nexport type DeviceCodeInput = {\n clientId?: string;\n scope?: string;\n};\n\nexport type DeviceCodeResponse = {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete: string;\n expires_in: number;\n interval: number;\n};\n\nexport type DeviceTokenResponse = {\n access_token: string;\n token_type: \"Bearer\";\n expires_in: number;\n scope: string;\n tenant_id: string;\n workspace_id?: string;\n principal_id: string;\n user?: {\n id: string;\n principalId: string;\n };\n};\n\nexport type DeviceTokenErrorCode =\n | \"authorization_pending\"\n | \"slow_down\"\n | \"access_denied\"\n | \"expired_token\"\n | \"invalid_grant\"\n | \"invalid_request\";\n\nexport class DeviceAuthorizationError extends Error {\n readonly error: DeviceTokenErrorCode;\n readonly interval?: number;\n\n constructor(args: {\n error: DeviceTokenErrorCode;\n description?: string;\n interval?: number;\n }) {\n super(args.description ?? args.error);\n this.name = \"DeviceAuthorizationError\";\n this.error = args.error;\n this.interval = args.interval;\n }\n}\n\nfunction authBaseUrl(config: GatewayClientConfig): string {\n return config.baseUrl?.replace(/\\/+$/, \"\") ?? \"\";\n}\n\nasync function readJson(response: Response): Promise<Record<string, unknown>> {\n try {\n const payload = (await response.json()) as unknown;\n return isRecord(payload) ? payload : {};\n } catch (error) {\n return unreadableJsonBodyFallback(error);\n }\n}\n\nfunction unreadableJsonBodyFallback(_error: unknown): Record<string, unknown> {\n return {};\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction readString(value: unknown): string | undefined {\n const normalized = typeof value === \"string\" ? value.trim() : \"\";\n return normalized || undefined;\n}\n\nfunction assertDeviceCodeResponse(payload: Record<string, unknown>): DeviceCodeResponse {\n const deviceCode = readString(payload.device_code);\n const userCode = readString(payload.user_code);\n const verificationUri = readString(payload.verification_uri);\n const verificationUriComplete = readString(payload.verification_uri_complete);\n const expiresIn = payload.expires_in;\n const interval = payload.interval;\n if (\n !deviceCode ||\n !userCode ||\n !verificationUri ||\n !verificationUriComplete ||\n typeof expiresIn !== \"number\" ||\n typeof interval !== \"number\"\n ) {\n throw new Error(\"Gateway returned an invalid device-code response.\");\n }\n return {\n device_code: deviceCode,\n user_code: userCode,\n verification_uri: verificationUri,\n verification_uri_complete: verificationUriComplete,\n expires_in: expiresIn,\n interval,\n };\n}\n\nfunction assertDeviceTokenResponse(\n payload: Record<string, unknown>\n): DeviceTokenResponse {\n const accessToken = readString(payload.access_token);\n const tokenType = readString(payload.token_type);\n const scope = readString(payload.scope);\n const tenantId = readString(payload.tenant_id);\n const principalId = readString(payload.principal_id);\n if (\n !accessToken ||\n tokenType !== \"Bearer\" ||\n typeof payload.expires_in !== \"number\" ||\n !scope ||\n !tenantId ||\n !principalId\n ) {\n throw new Error(\"Gateway returned an invalid device token response.\");\n }\n return {\n access_token: accessToken,\n token_type: \"Bearer\",\n expires_in: payload.expires_in,\n scope,\n tenant_id: tenantId,\n workspace_id: readString(payload.workspace_id),\n principal_id: principalId,\n user:\n isRecord(payload.user) &&\n typeof payload.user.id === \"string\" &&\n typeof payload.user.principalId === \"string\"\n ? {\n id: payload.user.id,\n principalId: payload.user.principalId,\n }\n : undefined,\n };\n}\n\nfunction maybeThrowDeviceError(payload: Record<string, unknown>): never {\n const error = readString(payload.error) as DeviceTokenErrorCode | undefined;\n throw new DeviceAuthorizationError({\n error: error ?? \"invalid_request\",\n description: readString(payload.error_description),\n interval:\n typeof payload.interval === \"number\" ? payload.interval : undefined,\n });\n}\n\nexport function createAuthDeviceClient(config: GatewayClientConfig = {}) {\n const fetchImpl = config.fetchImpl ?? fetch;\n const baseUrl = authBaseUrl(config);\n\n async function post(path: string, body: Record<string, unknown>) {\n return fetchImpl(`${baseUrl}${path}`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n }\n\n return {\n async createDeviceCode(input: DeviceCodeInput = {}) {\n const response = await post(\"/api/platform/v1/auth/device/code\", {\n client_id: input.clientId ?? \"lucern-cli\",\n scope: input.scope ?? \"graph.read graph.write\",\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceCodeResponse(payload);\n },\n async pollDeviceToken(deviceCode: string) {\n const response = await post(\"/api/platform/v1/auth/device/token\", {\n grant_type: \"urn:ietf:params:oauth:grant-type:device_code\",\n device_code: deviceCode,\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceTokenResponse(payload);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport {\n type Opinion,\n} from \"./opinion\";\nimport { normalizeNodeWriteInput } from \"./sdkSurface\";\nimport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n JsonObject,\n ModulateConfidenceResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n ModulateConfidenceResponse,\n} from \"./types\";\nexport type { Opinion } from \"./opinion\";\n\n/** Configuration for the beliefs client. Inherits gateway transport settings. */\nexport type BeliefsClientConfig = GatewayClientConfig;\n\nexport type OpinionHistoryEntry = {\n t: number;\n b: number;\n d: number;\n u: number;\n a: number;\n P: number;\n trigger: string;\n triggeringRef?: {\n kind: \"evidence\" | \"question\" | \"answer\" | \"contradiction\" | \"worktree\";\n id: string;\n };\n rationale?: string;\n userId?: string;\n slOperator?: string;\n};\n\ntype GatewayRecord = Record<string, unknown>;\n\nfunction asRecord(value: unknown): GatewayRecord {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as GatewayRecord)\n : {};\n}\n\nfunction readString(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : undefined;\n}\n\nfunction readNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction clamp01(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction normalizeOpinionTuple(record: GatewayRecord): {\n b: number;\n d: number;\n u: number;\n a: number;\n} {\n const opinion = asRecord(record.opinion);\n const rawBelief = readNumber(opinion.b) ?? readNumber(record.belief);\n const rawDisbelief = readNumber(opinion.d) ?? readNumber(record.disbelief);\n const rawUncertainty = readNumber(opinion.u) ?? readNumber(record.uncertainty);\n const rawBaseRate = readNumber(opinion.a) ?? readNumber(record.baseRate);\n\n if (\n rawBelief === undefined ||\n rawDisbelief === undefined ||\n rawUncertainty === undefined ||\n rawBaseRate === undefined\n ) {\n throw new Error(\n \"Gateway opinion history entries must include belief, disbelief, uncertainty, and baseRate.\"\n );\n }\n\n return {\n b: clamp01(rawBelief),\n d: clamp01(rawDisbelief),\n u: clamp01(rawUncertainty),\n a: clamp01(rawBaseRate),\n };\n}\n\nexport function mapOpinionHistoryEntriesFromGatewayData(\n payload: GatewayRecord\n): OpinionHistoryEntry[] {\n const entries = Array.isArray(payload.entries) ? payload.entries : [];\n return entries\n .map((value) => {\n const record = asRecord(value);\n const tuple = normalizeOpinionTuple(record);\n const projected =\n readNumber(record.confidence) ?? clamp01(tuple.b + tuple.a * tuple.u);\n const triggeringEvidenceId = readString(record.triggeringEvidenceId);\n const triggeringQuestionId = readString(record.triggeringQuestionId);\n const triggeringAnswerId = readString(record.triggeringAnswerId);\n const triggeringContradictionId = readString(\n record.triggeringContradictionId\n );\n const triggeringWorktreeId = readString(record.triggeringWorktreeId);\n const triggeringRef = triggeringEvidenceId\n ? ({ kind: \"evidence\", id: triggeringEvidenceId } as const)\n : triggeringQuestionId\n ? ({ kind: \"question\", id: triggeringQuestionId } as const)\n : triggeringAnswerId\n ? ({ kind: \"answer\", id: triggeringAnswerId } as const)\n : triggeringContradictionId\n ? ({ kind: \"contradiction\", id: triggeringContradictionId } as const)\n : triggeringWorktreeId\n ? ({ kind: \"worktree\", id: triggeringWorktreeId } as const)\n : undefined;\n const trigger = readString(record.trigger);\n if (!trigger) {\n throw new Error(\"Gateway opinion history entries must include trigger.\");\n }\n\n return {\n t: readNumber(record.timestamp) ?? readNumber(record.assessedAt) ?? 0,\n b: tuple.b,\n d: tuple.d,\n u: tuple.u,\n a: tuple.a,\n P: clamp01(projected),\n trigger,\n ...(triggeringRef ? { triggeringRef } : {}),\n ...(readString(record.rationale)\n ? { rationale: readString(record.rationale)! }\n : {}),\n ...(readString(record.userId) ? { userId: readString(record.userId)! } : {}),\n ...(readString(record.slOperator)\n ? { slOperator: readString(record.slOperator)! }\n : {}),\n };\n })\n .sort((left, right) => left.t - right.t);\n}\n\n/**\n * Input for creating a new belief within a topic scope.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n * Beliefs start as drafts with a vacuous prior `(0, 0, 1, a)`. When omitted,\n * `baseRate` defaults to the canonical neutral prior `0.5`.\n */\nexport type CreateBeliefInput = {\n topicId?: string;\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n layer?: \"L1\" | \"L2\" | \"L3\" | \"L4\";\n domain?: string;\n sourceType?: \"human\" | \"ai\" | \"agent\" | \"imported\";\n content?: string;\n contentHash?: string;\n globalId?: string;\n title?: string;\n subtype?: string;\n confidence?: number;\n baseRate?: number;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: \"unverified\" | \"verified\" | \"rejected\";\n};\n\n/**\n * Input for refining an existing draft belief.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n */\nexport type RefineBeliefInput = {\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n rationale?: string;\n title?: string;\n};\n\ntype BeliefConfidenceTrigger =\n | \"evidence_added\"\n | \"evidence_removed\"\n | \"contradiction_detected\"\n | \"contradiction_resolved\"\n | \"agent_assessment\"\n | \"worktree_outcome\"\n | \"worktree_completed\"\n | \"fusion\"\n | \"discount\"\n | \"deduction\";\n\ntype ModulateConfidenceInputBase = {\n trigger: BeliefConfidenceTrigger;\n rationale: string;\n triggeringEvidenceId?: string;\n triggeringQuestionId?: string;\n triggeringAnswerId?: string;\n triggeringContradictionId?: string;\n triggeringWorktreeId?: string;\n maxInlinePropagationTargets?: number;\n};\n\n/**\n * Record an append-only confidence change using an explicit subjective-logic\n * opinion tuple.\n */\nexport type ModulateConfidenceOpinionInput = ModulateConfidenceInputBase & {\n opinion: Opinion;\n};\n\nexport type ModulateConfidenceInput = ModulateConfidenceOpinionInput;\n\nfunction normalizeModulateConfidenceInput(\n input: ModulateConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\n/**\n * Input for forking a scored belief into a new formulation.\n * Scored beliefs are immutable — fork to evolve understanding.\n */\nexport type ForkBeliefInput = {\n newFormulation: string;\n forkReason?:\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n rationale?: string;\n};\n\n/** Input for changing a belief's lifecycle status. */\nexport type UpdateBeliefStatusInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n status: \"active\" | \"superseded\" | \"archived\";\n reason?: string;\n};\n\n/** Input for updating a belief's rationale without refining its text. */\nexport type UpdateBeliefRationaleInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n rationale?: string;\n};\n\n/** Input for creating a belief-to-belief reasoning edge. */\nexport type LinkBeliefsInput = {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n weight?: number;\n context?: string;\n};\n\n/** Input for unlinking a belief from an attached evidence item. */\nexport type UnlinkBeliefEvidenceInput = {\n beliefNodeId?: string;\n beliefId?: string;\n nodeId?: string;\n insightId?: string;\n evidenceId?: string;\n};\n\n/** Input for updating a belief's criticality classification. */\nexport type UpdateBeliefCriticalityInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n};\n\n/** Input for bulk-updating multiple beliefs' criticality. */\nexport type BatchUpdateBeliefCriticalityInput = {\n updates: Array<{\n beliefId: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n ifFalseImpact?: string;\n triagePriority?: number;\n reasoning?: string;\n dependentBeliefIds?: string[];\n blockedByBeliefIds?: string[];\n }>;\n};\n\n/** Input for moving beliefs into a different topic scope. */\nexport type ReassignBeliefsTopicInput = {\n beliefNodeIds?: string[];\n beliefIds?: string[];\n targetTopicId: string;\n reason?: string;\n};\n\n/**\n * Create the beliefs client for belief lifecycle operations.\n *\n * @param config - Gateway transport configuration.\n * @returns An object with `createBelief`, `refineBelief`, `modulateConfidence`, and `forkBelief` methods.\n */\nexport function createBeliefsClient(config: BeliefsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n function normalizeBaseRate(value: unknown): number {\n const baseRate = readNumber(value);\n const normalized = baseRate ?? 0.5;\n if (normalized < 0 || normalized > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return normalized;\n }\n const modulateConfidence: {\n (\n beliefId: string,\n input: ModulateConfidenceOpinionInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<ModulateConfidenceResponse>>;\n } = async (\n beliefId: string,\n input: ModulateConfidenceInput,\n idempotencyKey?: string\n ) =>\n gateway.request<ModulateConfidenceResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence`,\n method: \"POST\",\n body: normalizeModulateConfidenceInput(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n const getOpinionHistory = async (\n beliefId: string\n ): Promise<OpinionHistoryEntry[]> => {\n const response = await gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence-history`,\n });\n return mapOpinionHistoryEntriesFromGatewayData(response.data);\n };\n\n return {\n /**\n * Create a belief within a topic scope.\n */\n async createBelief(input: CreateBeliefInput, idempotencyKey?: string) {\n const baseRate = normalizeBaseRate(input.baseRate);\n return gateway.request<CreateBeliefResponse>({\n path: \"/api/platform/v1/beliefs\",\n method: \"POST\",\n body: {\n ...(normalizeNodeWriteInput(input) as JsonObject),\n baseRate,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Refine a draft belief in place.\n */\n async refineBelief(\n beliefId: string,\n input: RefineBeliefInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBeliefResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}`,\n method: \"PATCH\",\n body: normalizeNodeWriteInput(input as JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Record a confidence change for an existing belief.\n */\n modulateConfidence,\n\n /**\n * Returns the belief's confidence trajectory as a chronological array.\n *\n * Canonical UI trend shape (what every trend component consumes):\n * { t: number, b: number, d: number, u: number, a: number, P: number, trigger: string, triggeringRef?: { kind: \"evidence\" | \"worktree\"; id: string } }[]\n *\n * Where:\n * t = assessedAt (epoch ms)\n * b, d, u, a = Opinion 4-tuple components\n * P = projected probability = b + a*u (precomputed for UI convenience)\n * trigger = cause of the score change\n * triggeringRef = optional pointer to the evidence or worktree that drove the change\n */\n getOpinionHistory,\n\n /** @deprecated Use getOpinionHistory(). */\n getConfidenceHistory: getOpinionHistory,\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 type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport type { JsonObject } from \"./types\";\nimport type { AddWorktreeInput, CompleteTaskInput, MergeInput, UpdateTaskInput } from \"./workflowClient\";\n\nexport function createClientGraphNamespaces(ctx: ClientNamespaceContext) {\n const {\n accessControlClient,\n addEvidence,\n adminClient,\n answersClient,\n archiveOntologyCompat,\n auditClient,\n authDeviceClient,\n beliefsClient,\n beliefsFacade,\n bisectConfidence,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n decisionsClient,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n evaluateContractCompat,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n extensionNamespaces,\n findContradictions,\n functionSurfaceClient,\n gateway,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n getPackInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n invokeCustomTool,\n jobsClient,\n learningClient,\n listBeliefs,\n listContractsCompat,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n nodesNamespace,\n ontologiesFacade,\n ontologyClient,\n ontologyLinksClient,\n ontologyLinksNamespace,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n publicationNamespace,\n publishOntologyVersionCompat,\n questionsFacade,\n queryLineage,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveEffectiveOntologyCompat,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n searchBeliefs,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n traceEntityImpactCompat,\n triggerBeliefReview,\n unregisterCustomTool,\n updateOntologyCompat,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n } = ctx;\n\n return {\n graph: {\n nodes: nodesNamespace,\n createEdge: graphClient.createEdge,\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: any) => value.trim())\n .filter((value: any) => 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 graphFacade.bias({\n topicId,\n threshold,\n limit: 200,\n }).then((response: any) => ({\n ...response,\n topicId,\n threshold: threshold ?? 0.7,\n }));\n },\n getStructureAnalysis(topicId: string) {\n return graphFacade.analyze({\n topicId,\n limit: 200,\n }).then((response: any) => ({\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: any) => ({\n topicId,\n questions: response.questions,\n }));\n },\n },\n themes: {\n listByTopic(input: {\n topicId?: string;\n projectId?: string;\n query?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/themes${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n query: input.query,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n graphSearch: {\n keywordSearchNodes(input: {\n topicId?: string;\n projectId?: string;\n query?: string;\n sourceText?: string;\n nodeType?: string;\n nodeTypes?: string[];\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph-search/keyword-nodes\",\n method: \"POST\",\n body: {\n ...input,\n topicId: requireTopicOrProjectId(input),\n projectId: undefined,\n },\n })\n .then(exposeGatewayData);\n },\n },\n classifiers: {\n listBeliefCandidates(input: {\n topicId?: string;\n projectId?: string;\n classifierKey?: string;\n query?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/classifiers/belief-candidates${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n classifierKey: input.classifierKey,\n query: input.query,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n archetypes: {\n getJudgmentSignature(input: {\n topicId?: string;\n projectId?: string;\n principalId?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/archetypes/judgment-signature${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n principalId: input.principalId,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n };\n}\n","import type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type {\n BeliefsCompatCreateInput,\n BeliefsCompatForkInput,\n BeliefsCompatUpdateConfidenceInput,\n} from \"./clientConfig\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport type { JsonObject } from \"./types\";\nimport type { AddWorktreeInput, CompleteTaskInput, MergeInput, UpdateTaskInput } from \"./workflowClient\";\n\nexport function createClientKnowledgeNamespaces(ctx: ClientNamespaceContext) {\n const {\n accessControlClient,\n addEvidence,\n adminClient,\n answersClient,\n archiveOntologyCompat,\n auditClient,\n authDeviceClient,\n beliefsClient,\n beliefsFacade,\n bisectConfidence,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n decisionsClient,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n evaluateContractCompat,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n extensionNamespaces,\n findContradictions,\n functionSurfaceClient,\n gateway,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n getPackInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n invokeCustomTool,\n jobsClient,\n learningClient,\n listBeliefs,\n listContractsCompat,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n nodesNamespace,\n ontologiesFacade,\n ontologyClient,\n ontologyLinksClient,\n ontologyLinksNamespace,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n publicationNamespace,\n publishOntologyVersionCompat,\n questionsFacade,\n queryLineage,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveEffectiveOntologyCompat,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n searchBeliefs,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n traceEntityImpactCompat,\n triggerBeliefReview,\n unregisterCustomTool,\n updateOntologyCompat,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n } = ctx;\n\n return {\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 recordEvent: eventingClient.recordEvent,\n listEvents: eventingClient.listEvents,\n listWebhooks: eventingClient.listWebhooks,\n enqueueDelivery: eventingClient.enqueueDelivery,\n recordDeliveryAttempt: eventingClient.recordDeliveryAttempt,\n updateDeliveryStatus: eventingClient.updateDeliveryStatus,\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 = buildBeliefsRefinePayload(textOrInput, rationale);\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 = buildBeliefsArchivePayload(input);\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: getOpinionHistory,\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: FunctionSurfaceInput & {\n from?: unknown;\n to?: unknown;\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 }, idempotencyKey?: string) {\n if (args.from && args.to) {\n return functionSurfaceClient\n .createEdge(args, idempotencyKey)\n .then(exposeGatewayData);\n }\n if (!args.sourceId || !args.targetId) {\n throw new Error(\"from/to graph refs or sourceId/targetId are required\");\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 createEdge(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .createEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient\n .updateEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateEdge(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .updateEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n remove(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient\n .removeEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n removeEdge(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .removeEdge(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n removeBetween(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient\n .removeEdgesBetween(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n removeEdgesBetween(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .removeEdgesBetween(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreate(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient\n .batchCreateEdges(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreateEdges(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .batchCreateEdges(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 createEvidence(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: any) => ({\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: any) => ({\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 questionsFacade\n .list({\n topicId: requireTopicId(args),\n status: args.includeAnswered ? undefined : \"open\",\n })\n .then(exposeGatewayData)\n .then((data: any) => {\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 };\n}\n","import type { PlatformGatewaySuccess } from \"./coreClient\";\nimport { resolveText, resolveTopicId } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport type EvidenceCompatInput = {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n rationale?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n};\n\ntype EvidenceFacadeLike = {\n create(args: {\n topicId?: string;\n text: string;\n source?: string;\n targetId?: string;\n weight?: number;\n rationale: string;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n }): Promise<PlatformGatewaySuccess<Record<string, unknown>>>;\n link(args: {\n evidenceId: string;\n targetId: string;\n weight: number;\n rationale?: string;\n }): Promise<PlatformGatewaySuccess<{ edgeId?: string }>>;\n};\n\nexport async function createEvidenceCompat(\n evidenceFacade: EvidenceFacadeLike,\n args: EvidenceCompatInput,\n) {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n const rationale = args.rationale ?? args.supports?.reasoning;\n if (!rationale) {\n throw new Error(\"rationale is required\");\n }\n const metadata = {\n ...(args.metadata ?? {}),\n rationale,\n } as JsonObject;\n\n return evidenceFacade.create({\n topicId: resolveTopicId(args),\n text,\n source: args.source ?? args.sourceUrl,\n targetId: args.targetId ?? args.supports?.nodeId,\n weight: args.weight ?? args.supports?.weight,\n rationale,\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n title: args.title,\n content: args.content,\n contentType: args.contentType,\n kind: args.kind,\n });\n}\n\nexport async function addEvidenceCompat(\n evidenceFacade: EvidenceFacadeLike,\n args: EvidenceCompatInput,\n) {\n const created = await createEvidenceCompat(evidenceFacade, {\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","import { asListItems, resolveText, resolveTopicId } from \"./sdkSurface\";\nimport type { JsonObject, PlatformGraphEdge, PlatformGraphNode } from \"./types\";\n\nexport type NodeLike = PlatformGraphNode;\nexport type EdgeLike = PlatformGraphEdge;\nexport type CustomToolInput = JsonObject;\nexport type BeliefsRefineInput =\n | string\n | { text: string; rationale?: string };\nexport type BeliefsArchiveInput = { reason?: string; rationale?: string } | string;\n\nexport function normalizeCustomNamespace(namespace: string): string {\n return namespace.trim() || \"custom\";\n}\n\nexport function normalizeCustomToolPayload(input: unknown): CustomToolInput {\n return input && typeof input === \"object\" && !Array.isArray(input)\n ? (input as CustomToolInput)\n : {};\n}\n\nexport function resolveCustomToolFullName(name: string): string {\n return name.includes(\".\") ? name : `custom.${name}`;\n}\n\nexport function buildBeliefsRefinePayload(\n textOrInput: BeliefsRefineInput,\n rationale?: string\n): { text: string; rationale?: string } {\n return typeof textOrInput === \"string\"\n ? { text: textOrInput, rationale }\n : { text: textOrInput.text, rationale: textOrInput.rationale };\n}\n\nexport function buildBeliefsArchivePayload(\n input?: BeliefsArchiveInput\n): { reason?: string } | undefined {\n return typeof input === \"string\"\n ? { reason: input }\n : input\n ? { reason: input.reason ?? input.rationale }\n : undefined;\n}\n\nexport function 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\nexport function 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\nexport function 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\nexport function requireTopicOrProjectId(args: {\n topicId?: string;\n projectId?: string;\n}): string {\n const topicId =\n args.topicId?.trim() || args.projectId?.trim() || undefined;\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\nexport function matchesAuditNodeReference(\n value: unknown,\n nodeId: string\n): 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\nexport function 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\nexport function requireBaseRate(args: { baseRate?: number }): number {\n const baseRate =\n typeof args.baseRate === \"number\" && Number.isFinite(args.baseRate)\n ? args.baseRate\n : 0.5;\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return baseRate;\n}\n\nexport function sdkQueryString(input: Record<string, unknown>): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n if (value.length > 0) {\n params.set(key, value.join(\",\"));\n }\n continue;\n }\n params.set(key, String(value));\n }\n const serialized = params.toString();\n return serialized ? `?${serialized}` : \"\";\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 { mapOpinionHistoryEntriesFromGatewayData, type OpinionHistoryEntry } from \"./beliefsClient\";\nimport {\n addEvidenceCompat,\n createEvidenceCompat,\n type EvidenceCompatInput,\n} from \"./clientEvidenceCompat\";\nimport {\n asNodeArray,\n matchesAuditNodeReference,\n normalizeCustomNamespace,\n normalizeCustomToolPayload,\n requireTopicId,\n requireTopicOrProjectId,\n sdkQueryString,\n} from \"./clientHelpers\";\nimport type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type { CustomToolInput, CustomToolNamespace } from \"./clientConfig\";\nimport {\n randomIdempotencyKey,\n toQueryString,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport {\n clearRegisteredCustomTools,\n invokeRegisteredCustomTool,\n listRegisteredCustomTools,\n registerCustomTool,\n unregisterCustomTool,\n} from \"./customTools\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport { asListItems, resolveTopicId } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport function createClientLocalHelpers(ctx: ClientNamespaceContext) {\n const {\n auditClient,\n beliefsFacade,\n customNamespaceCache,\n evidenceFacade,\n exposeGatewayData,\n graphClient,\n graphFacade,\n gateway,\n functionSurfaceClient,\n ontologyClient,\n ontologyLinksClient,\n searchFacade,\n } = ctx;\n\n const invokeCustomTool = async (\n fullName: string,\n input: CustomToolInput = {}\n ): Promise<unknown> => {\n const payload = normalizeCustomToolPayload(input);\n return invokeRegisteredCustomTool(fullName, payload, { source: \"sdk\" });\n };\n\n const getCustomNamespace = (namespace: string): CustomToolNamespace => {\n const normalized = normalizeCustomNamespace(namespace);\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 const createEvidence = (args: EvidenceCompatInput) =>\n createEvidenceCompat(evidenceFacade, args);\n\n const addEvidence = (args: EvidenceCompatInput) =>\n addEvidenceCompat(evidenceFacade, args);\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.listNodes({ 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: any, index: number) => ({\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: graphClient.listNodes,\n get(input: string | Parameters<typeof graphClient.getNode>[0]) {\n return graphClient.getNode(\n typeof input === \"string\" ? { nodeId: input } : input\n );\n },\n create(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .createEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n createEpistemicNode(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .createEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .updateEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateEpistemicNode(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .updateEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreate(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .batchCreateEpistemicNodes(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreateEpistemicNodes(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .batchCreateEpistemicNodes(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n listByTopicAndType(input: {\n topicId?: string;\n projectId?: string;\n nodeType?: string;\n nodeTypes?: string[];\n query?: string;\n sourceText?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/nodes${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n nodeType: input.nodeType,\n nodeTypes: input.nodeTypes,\n query: input.query,\n sourceText: input.sourceText,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n countByTopicAndType(input: {\n topicId?: string;\n projectId?: string;\n nodeType?: string;\n nodeTypes?: string[];\n query?: string;\n limit?: number;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/nodes/count${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n nodeType: input.nodeType,\n nodeTypes: input.nodeTypes,\n query: input.query,\n limit: input.limit,\n })}`,\n })\n .then(exposeGatewayData);\n },\n supersede(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .supersedeEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n verify(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .verifyEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n archive(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient\n .archiveEpistemicNode(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n hardDelete: graphClient.hardDeleteNode,\n };\n\n const publicationNamespace = {\n create(input: JsonObject, idempotencyKey?: string) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/publication\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n update(\n publicationId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n list(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication${sdkQueryString(input)}`,\n })\n .then(exposeGatewayData);\n },\n getByTopic(input: string | { topicId: string; workspaceId?: string }) {\n const topicId = typeof input === \"string\" ? input : input.topicId;\n const workspaceId = typeof input === \"string\" ? undefined : input.workspaceId;\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/by-topic/${encodeURIComponent(\n topicId\n )}${sdkQueryString({ workspaceId })}`,\n })\n .then(exposeGatewayData);\n },\n publish(\n publicationId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}/publish`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n unpublish(\n publicationId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}/unpublish`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n remove(publicationId: string, input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}${sdkQueryString(input)}`,\n method: \"DELETE\",\n })\n .then(exposeGatewayData);\n },\n };\n\n const ontologyLinksNamespace = {\n ...ontologyLinksClient,\n resolveThemeSource(input: JsonObject) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontology-links/theme-source\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n },\n };\n\n return {\n addEvidence,\n archiveOntologyCompat,\n bisectConfidence,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n evaluateContractCompat,\n extensionNamespaces,\n findContradictions,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n invokeCustomTool,\n listBeliefs,\n listContractsCompat,\n nodesNamespace,\n ontologyLinksNamespace,\n publicationNamespace,\n publishOntologyVersionCompat,\n queryLineage,\n resolveEffectiveOntologyCompat,\n searchBeliefs,\n searchResources,\n traceEntityImpactCompat,\n triggerBeliefReview,\n updateOntologyCompat,\n };\n}\n","import type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type { CustomToolInput } from \"./clientConfig\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport type { JsonObject } from \"./types\";\nimport type { AddWorktreeInput, CompleteTaskInput, MergeInput, UpdateTaskInput } from \"./workflowClient\";\n\nexport function createClientPlatformNamespaces(ctx: ClientNamespaceContext) {\n const {\n accessControlClient,\n addEvidence,\n adminClient,\n answersClient,\n archiveOntologyCompat,\n auditClient,\n authDeviceClient,\n audiencesClient,\n beliefsClient,\n beliefsFacade,\n bisectConfidence,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n decisionsClient,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n evaluateContractCompat,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n extensionNamespaces,\n findContradictions,\n functionSurfaceClient,\n gateway,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n getPackInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n invokeCustomTool,\n jobsClient,\n learningClient,\n listBeliefs,\n listContractsCompat,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n nodesNamespace,\n ontologiesFacade,\n ontologyClient,\n ontologyLinksClient,\n ontologyLinksNamespace,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n publicationNamespace,\n publishOntologyVersionCompat,\n questionsFacade,\n queryLineage,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveEffectiveOntologyCompat,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n searchBeliefs,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n traceEntityImpactCompat,\n triggerBeliefReview,\n unregisterCustomTool,\n updateOntologyCompat,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n } = ctx;\n\n return {\n coordination: {\n registerSession: functionSurfaceClient.registerSession,\n heartbeatSession: functionSurfaceClient.heartbeatSession,\n endSession: functionSurfaceClient.endSession,\n listActiveSessions: functionSurfaceClient.listActiveSessions,\n sendAgentMessage: functionSurfaceClient.sendAgentMessage,\n broadcastMessage: functionSurfaceClient.broadcastMessage,\n getInbox: functionSurfaceClient.getAgentInbox,\n getAgentInbox: functionSurfaceClient.getAgentInbox,\n claimFiles: functionSurfaceClient.claimFiles,\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 // Backward compatibility shim: keep the policy namespace exposing the\n // historical manageWritePolicy entry point.\n manageWritePolicy(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.manageWritePolicy(input, idempotencyKey);\n },\n raw: policyClient,\n },\n observations: {\n ingest: functionSurfaceClient.ingestObservation,\n ingestObservation: functionSurfaceClient.ingestObservation,\n getContext: functionSurfaceClient.getObservationContext,\n getObservationContext: functionSurfaceClient.getObservationContext,\n },\n coding: {\n getCodeContext: functionSurfaceClient.getCodeContext,\n getChangeHistory: functionSurfaceClient.getChangeHistory,\n recordAttempt: functionSurfaceClient.recordAttempt,\n getFailureLog: functionSurfaceClient.getFailureLog,\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: functionSurfaceClient.generateSessionHandoff,\n },\n embeddings: embeddingsClient,\n graphAnalysis: graphAnalysisClient,\n graphRecommendations: graphRecommendationsClient,\n orgGraphSearch: orgGraphSearchClient,\n ontologyLinks: ontologyLinksNamespace,\n graphStateClassifier: graphStateClassifierClient,\n modelRuntime: modelRuntimeClient,\n jobs: jobsClient,\n telemetry: telemetryClient,\n publication: publicationNamespace,\n contentPublication: publicationNamespace,\n tools: {\n listCatalog: toolRegistryClient.listCatalog,\n listExecutable: toolRegistryClient.listExecutable,\n listEffectiveTools: toolRegistryClient.listEffectiveTools,\n upsertCoreTools: toolRegistryClient.upsertCoreTools,\n setPackToolsStatus: toolRegistryClient.setPackToolsStatus,\n createAcl: toolRegistryClient.createAcl,\n deleteAcl: toolRegistryClient.deleteAcl,\n registerCustomTool: toolRegistryClient.registerCustomTool,\n register: registerCustomTool,\n unregister: unregisterCustomTool,\n list: listRegisteredCustomTools,\n clear: clearRegisteredCustomTools,\n invoke(name: string, input: CustomToolInput = {}) {\n const fullName = resolveCustomToolFullName(name);\n return invokeCustomTool(fullName, input);\n },\n namespace: getCustomNamespace,\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 getPackInstalled();\n },\n listCatalog: packsClient.listCatalog,\n catalog: packsClient.listCatalog,\n listStates: packsClient.listStates,\n states: packsClient.getStates,\n install: packsClient.install,\n enable: packsClient.enable,\n disable: packsClient.disable,\n },\n nodes: nodesNamespace,\n controlPlane: {\n identity: {\n resolveInteractivePrincipal:\n controlPlaneClient.identity.resolveInteractivePrincipal,\n },\n raw: controlPlaneClient,\n },\n identity: {\n whoami: identityFacade.whoami,\n ...identityFacade,\n access: accessControlClient,\n resolveInteractivePrincipal: identityClient.resolveInteractivePrincipal,\n evaluatePolicy: identityClient.evaluatePolicy,\n recordPolicyDecision: identityClient.recordPolicyDecision,\n putSecretReference: identityClient.putSecretReference,\n createPrincipal: identityClient.createPrincipal,\n updatePrincipal: identityClient.updatePrincipal,\n raw: identityClient,\n },\n mcp: {\n bootstrapSession: mcpClient.bootstrapSession,\n checkWritePolicy: mcpClient.checkWritePolicy,\n beginBuildSession: mcpClient.beginBuildSession,\n evaluateEngineeringContract: mcpClient.evaluateEngineeringContract,\n evaluateResearchContract: mcpClient.evaluateResearchContract,\n },\n auth: {\n device: {\n createCode: authDeviceClient.createDeviceCode,\n pollToken: authDeviceClient.pollDeviceToken,\n },\n },\n custom: getCustomNamespace(\"custom\"),\n extensions: extensionNamespaces,\n raw: {\n beliefs: beliefsClient,\n sources: sourcesClient,\n evidence: evidenceClient,\n embeddings: embeddingsClient,\n eventing: eventingClient,\n graph: graphClient,\n graphAnalysis: graphAnalysisClient,\n graphRecommendations: graphRecommendationsClient,\n graphStateClassifier: graphStateClassifierClient,\n decisions: decisionsClient,\n workflow: workflowClient,\n audit: auditClient,\n authDevice: authDeviceClient,\n admin: adminClient,\n identity: identityClient,\n policy: policyClient,\n answers: answersClient,\n ontology: ontologyClient,\n ontologyLinks: ontologyLinksClient,\n orgGraphSearch: orgGraphSearchClient,\n functionSurface: functionSurfaceClient,\n controlPlane: controlPlaneClient,\n toolRegistry: toolRegistryClient,\n modelRuntime: modelRuntimeClient,\n packs: packsClient,\n reports: reportsClient,\n learning: learningClient,\n mcp: mcpClient,\n jobs: jobsClient,\n telemetry: telemetryClient,\n harness: harnessClient,\n schema: schemaClient,\n audiences: audiencesClient,\n topics: topicsClient,\n },\n };\n}\n","import type { ClientNamespaceContext } from \"./clientAssemblyTypes\";\nimport type { FunctionSurfaceInput } from \"./generated/functionSurface\";\nimport type { JsonObject } from \"./types\";\nimport type {\n AddWorktreeInput,\n CompleteTaskInput,\n CreateTaskInput,\n MergeInput,\n UpdateTaskInput,\n} from \"./workflowClient\";\n\nexport function createClientWorkflowNamespaces(ctx: ClientNamespaceContext) {\n const {\n accessControlClient,\n addEvidence,\n adminClient,\n answersClient,\n archiveOntologyCompat,\n auditClient,\n authDeviceClient,\n beliefsClient,\n beliefsFacade,\n bisectConfidence,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n createContractCompat,\n createEvidence,\n createOntologyCompat,\n createOntologyVersionCompat,\n decisionsClient,\n deprecateOntologyVersionCompat,\n discoverEntityConnections,\n discoverTopics,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n evaluateContractCompat,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n extensionNamespaces,\n findContradictions,\n functionSurfaceClient,\n gateway,\n getAuditTrail,\n getConfidenceHistory,\n getContractStatusCompat,\n getCustomNamespace,\n getOpinionHistory,\n getPackInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n invokeCustomTool,\n jobsClient,\n learningClient,\n listBeliefs,\n listContractsCompat,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n nodesNamespace,\n ontologiesFacade,\n ontologyClient,\n ontologyLinksClient,\n ontologyLinksNamespace,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n publicationNamespace,\n publishOntologyVersionCompat,\n questionsFacade,\n queryLineage,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveEffectiveOntologyCompat,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n searchBeliefs,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n traceEntityImpactCompat,\n triggerBeliefReview,\n unregisterCustomTool,\n updateOntologyCompat,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n } = ctx;\n\n return {\n judgments: {\n create: decisionsClient.createJudgment,\n record: decisionsClient.recordJudgment,\n list: decisionsClient.listJudgments,\n get: decisionsClient.getJudgment,\n recordOutcome: decisionsClient.recordJudgmentOutcome,\n updateOutcome: decisionsClient.updateJudgmentOutcome,\n readiness(topicId: string) {\n return decisionsClient.getJudgmentReadiness({ topicId });\n },\n calibration(topicId: string) {\n return decisionsClient.getJudgmentCalibration({ topicId });\n },\n pendingOutcomeReview(topicId: string) {\n return decisionsClient.listPendingJudgmentOutcomeReview({ topicId });\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 decisions: {\n create: decisionsClient.createJudgment,\n record: decisionsClient.recordJudgment,\n list: decisionsClient.listJudgments,\n get: decisionsClient.getJudgment,\n recordOutcome: decisionsClient.recordJudgmentOutcome,\n lessons(\n decisionId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/decisions/${encodeURIComponent(\n decisionId\n )}/lessons`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n archive(\n decisionId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/decisions/${encodeURIComponent(\n decisionId\n )}/archive`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n readiness(topicId: string) {\n return decisionsClient.getJudgmentReadiness({ topicId });\n },\n calibration(topicId: string) {\n return decisionsClient.getJudgmentCalibration({ topicId });\n },\n pendingOutcomeReview(topicId: string) {\n return decisionsClient.listPendingJudgmentOutcomeReview({ topicId });\n },\n },\n worktrees: {\n createBranch: workflowClient.createBranch,\n createLens: workflowClient.createLens,\n listLenses: workflowClient.listLenses,\n applyLensToTopic: workflowClient.applyLensToTopic,\n removeLensFromTopic: workflowClient.removeLensFromTopic,\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 rationale: input.rationale,\n worktreeType: input.worktreeType,\n startDate: input.startDate,\n endDate: input.endDate,\n durationWeeks: input.durationWeeks,\n confidenceImpact: input.confidenceImpact,\n beliefFocus: input.beliefFocus,\n beliefIds: input.beliefIds,\n targetBeliefIds: input.targetBeliefIds,\n targetQuestionIds: input.targetQuestionIds,\n keyQuestions: input.keyQuestions,\n evidenceSignals: input.evidenceSignals,\n decisionGate: input.decisionGate,\n goCriteria: input.goCriteria,\n noGoSignals: input.noGoSignals,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\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 rationale: input.rationale,\n worktreeType: input.worktreeType,\n startDate: input.startDate,\n endDate: input.endDate,\n durationWeeks: input.durationWeeks,\n confidenceImpact: input.confidenceImpact,\n beliefFocus: input.beliefFocus,\n beliefIds: input.beliefIds,\n targetBeliefIds: input.targetBeliefIds,\n targetQuestionIds: input.targetQuestionIds,\n keyQuestions: input.keyQuestions,\n evidenceSignals: input.evidenceSignals,\n decisionGate: input.decisionGate,\n goCriteria: input.goCriteria,\n noGoSignals: input.noGoSignals,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\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 listByTopic(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 findByPairedSprint(input: {\n sprintId: string;\n topicId?: string;\n projectId?: string;\n limit?: number;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/worktrees/paired-sprint${sdkQueryString({\n sprintId: input.sprintId,\n topicId: input.topicId ?? input.projectId,\n limit: input.limit,\n })}`,\n })\n .then(exposeGatewayData);\n },\n activate(worktreeId: string) {\n return worktreesFacade.activate({ id: worktreeId });\n },\n updateMetadata(input: FunctionSurfaceInput) {\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(\n (value): value is string => typeof value === \"string\"\n )\n : undefined;\n return worktreesFacade.update({\n id: typeof input.worktreeId === \"string\" ? input.worktreeId : \"\",\n hypothesis:\n typeof input.hypothesis === \"string\"\n ? input.hypothesis\n : undefined,\n campaign:\n typeof input.campaign === \"number\" ? input.campaign : undefined,\n lane: typeof input.lane === \"string\" ? input.lane : undefined,\n laneOrderInCampaign:\n typeof input.laneOrderInCampaign === \"number\"\n ? input.laneOrderInCampaign\n : undefined,\n orderInLane:\n typeof input.orderInLane === \"number\"\n ? input.orderInLane\n : undefined,\n dependsOn,\n blocks,\n gate: typeof input.gate === \"string\" ? input.gate : undefined,\n });\n },\n update(input: FunctionSurfaceInput) {\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(\n (value): value is string => typeof value === \"string\"\n )\n : undefined;\n return worktreesFacade.update({\n id: typeof input.worktreeId === \"string\" ? input.worktreeId : \"\",\n hypothesis:\n typeof input.hypothesis === \"string\"\n ? input.hypothesis\n : undefined,\n campaign:\n typeof input.campaign === \"number\" ? input.campaign : undefined,\n lane: typeof input.lane === \"string\" ? input.lane : undefined,\n laneOrderInCampaign:\n typeof input.laneOrderInCampaign === \"number\"\n ? input.laneOrderInCampaign\n : undefined,\n orderInLane:\n typeof input.orderInLane === \"number\"\n ? input.orderInLane\n : undefined,\n dependsOn,\n blocks,\n gate: typeof input.gate === \"string\" ? input.gate : undefined,\n });\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: workflowClient.listAllWorktrees,\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: workflowClient.push,\n openPullRequest: workflowClient.openPullRequest,\n pipelineSnapshot(topicId: string) {\n return functionSurfaceClient.pipelineSnapshot({ topicId });\n },\n complete: worktreesFacade.complete,\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: worktreesFacade.patchState,\n bulkCreate: worktreesFacade.bulkCreate,\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: contextClient.compile,\n recordScopeLearning: functionSurfaceClient.recordScopeLearning,\n discover(input: FunctionSurfaceInput) {\n return discoverTopics(input as JsonObject);\n },\n analyzeTopicDensity: functionSurfaceClient.analyzeTopicDensity,\n applyAutoBranching: functionSurfaceClient.applyAutoBranching,\n seedBeliefLattice: functionSurfaceClient.seedBeliefLattice,\n getLatticeCoverage: functionSurfaceClient.getLatticeCoverage,\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 listByTopic(input: FunctionSurfaceInput & { topicId?: string }) {\n return tasksFacade.list({\n topicId: requireTopicId(input),\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n listByWorktree(input: FunctionSurfaceInput & { worktreeId: string }) {\n return tasksFacade.list({\n topicId:\n typeof input.topicId === \"string\" ? input.topicId : undefined,\n worktreeId: input.worktreeId,\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n linkChat(\n taskId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(\n taskId\n )}/link-chat`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\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: topicsFacade.get,\n create(input: Parameters<typeof topicsClient.create>[0]) {\n return functionSurfaceClient\n .createTopic(input as FunctionSurfaceInput)\n .then(exposeGatewayData);\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: topicsFacade.remove,\n bulkCreate: topicsFacade.bulkCreate,\n materializeGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return functionSurfaceClient\n .materializeTopicGraph(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n materializeTopicGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return functionSurfaceClient\n .materializeTopicGraph(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n graphSpine(input: FunctionSurfaceInput = {}) {\n return functionSurfaceClient\n .getTopicGraphSpine(input)\n .then(exposeGatewayData);\n },\n getTopicGraphSpine(input: FunctionSurfaceInput = {}) {\n return functionSurfaceClient\n .getTopicGraphSpine(input)\n .then(exposeGatewayData);\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: any) => 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: any) => 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 };\n}\n","import type { GatewayClientConfig, PlatformGatewaySuccess } from \"./coreClient\";\nimport type { GatewayDataEnvelope, LucernClientConfig } from \"./clientConfig\";\n\nexport function toGatewayConfig(config: LucernClientConfig): GatewayClientConfig {\n return {\n baseUrl: config.baseUrl,\n fetchImpl: config.fetchImpl,\n apiKey: config.apiKey,\n userToken: config.userToken,\n environment: config.environment,\n clerkId: config.clerkId,\n userId: config.userId,\n deploymentHost: config.deploymentHost,\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 authContext: config.authContext,\n requireCanonicalAuthContext: config.requireCanonicalAuthContext,\n getAuthHeaders: config.getAuthHeaders,\n };\n}\n\nexport function exposeGatewayData<T>(\n response: PlatformGatewaySuccess<T>\n): GatewayDataEnvelope<T> {\n const data = response.data;\n if (data !== null && typeof data === \"object\" && !Array.isArray(data)) {\n return Object.assign({}, response, data) as GatewayDataEnvelope<T>;\n }\n return { ...response } as GatewayDataEnvelope<T>;\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 toQueryString,\n} from \"./coreClient\";\nimport {\n asRecord,\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 globalId?: string;\n name: string;\n description?: string;\n type?: string;\n parentTopicId?: string;\n parentTopicGlobalId?: 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 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 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 reasoningMethod?: 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 const client = {\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 * 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 * 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 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 return Object.assign(client, {\n queryNodes: client.listNodes,\n queryEdges: client.listEdges,\n getNeighborhood: client.neighborhood,\n });\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { asListItems, asRecord, 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 const client = {\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 = asRecord(data);\n const ontologies = asListItems(data, \"ontologies\");\n const definitions =\n ontologies.length > 0 ? ontologies : asListItems(data, \"definitions\");\n const total =\n typeof record.total === \"number\" && Number.isFinite(record.total)\n ? record.total\n : definitions.length;\n return {\n ...record,\n ...createListResult(definitions, \"definitions\"),\n ontologies: definitions,\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 * 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(asListItems(data, \"versions\"), \"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 return Object.assign(client, {\n listDefinitions: client.list,\n getDefinition: client.get,\n listTopicsByOntology: client.listTopics,\n });\n}\n","import {\n createGatewayRequestClient,\n randomIdempotencyKey,\n toQueryString,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport { createGraphClient } from \"./graphClient\";\nimport { createIdentityClient } from \"./identityClient\";\nimport { createOntologyClient, type OntologyBindingInput } from \"./ontologyClient\";\nimport type {\n BeliefArchiveInput,\n BeliefBisectInput,\n BeliefConfidenceInput,\n BeliefContractInput,\n BeliefCreateInput,\n BeliefForkInput,\n BeliefRecord,\n BeliefsLineageResult,\n BeliefsListQuery,\n BeliefsListResult,\n BeliefRefineInput,\n ContradictionsListResult,\n EdgeCreateInput,\n EdgeListQuery,\n EdgeTraverseInput,\n EvidenceCreateInput,\n EvidenceCreateResult,\n EvidenceListQuery,\n EvidenceLinkInput,\n EvidenceLinkResult,\n EvidenceSearchInput,\n EventsListQuery,\n EventsListResult,\n GatewayList,\n GatewayRecord,\n GraphAnalyzeInput,\n GraphBiasInput,\n GraphFalsifyInput,\n GraphNeighborhoodInput,\n GraphTraverseInput,\n OntologyListInput,\n OntologyMatchInput,\n QuestionAnswerInput,\n QuestionArchiveInput,\n QuestionCreateInput,\n QuestionRefineInput,\n QuestionStatusInput,\n QuestionsListQuery,\n QuestionsListResult,\n SearchQueryInput,\n ReplayEventsInput,\n WebhookCreateInput,\n WebhookDeliveriesQuery,\n WebhookListQuery,\n WebhookTestInput,\n WebhookUpdateInput,\n WebhooksListResult\n} from \"./gatewayFacades\";\nimport type { JsonObject } from \"./types\";\n\nfunction normalizeBeliefConfidenceInput(\n input: BeliefConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\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 const graphFacade = {\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 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 return Object.assign(graphFacade, {\n traverse: graphClient.traverse,\n analyze: graphClient.analyze,\n bias: graphClient.bias,\n gaps: graphClient.gaps,\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 const ontologyFacade = {\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 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 return Object.assign(ontologyFacade, {\n list: ontologyClient.list,\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","import {\n createGatewayRequestClient,\n randomIdempotencyKey,\n toQueryString,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport type { ModulateConfidenceInput } from \"./beliefsClient\";\nimport {\n createTopicsClient,\n type TopicCoverageQuery,\n type TopicTreeQuery,\n type TopicUpdateInput,\n} from \"./topicsClient\";\nimport type { GraphAnalyticsMetric, JsonObject } from \"./types\";\n\nexport type GatewayRecord = Record<string, unknown>;\nexport type GatewayList = GatewayRecord & { cursor?: string; total?: number };\n\nexport type BeliefRecord = GatewayRecord & {\n id?: string;\n beliefId?: string;\n nodeId?: string;\n};\n\nexport type BeliefsListResult = GatewayList & {\n beliefs?: BeliefRecord[];\n};\n\nexport type BeliefsLineageResult = GatewayRecord & {\n beliefId?: string;\n lineage?: GatewayRecord[];\n};\n\nexport type SearchResult = GatewayList & {\n beliefs?: GatewayRecord[];\n results?: GatewayRecord[];\n};\n\nexport type GraphNeighborhoodInput = {\n globalId?: string;\n globalIds?: string | string[];\n maxDepth?: number;\n};\n\nexport type GraphTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\nexport type GraphAnalyzeInput = {\n topicId?: string;\n metric?: GraphAnalyticsMetric;\n limit?: number;\n};\n\nexport type GraphBiasInput = {\n topicId?: string;\n threshold?: number;\n limit?: number;\n};\n\nexport type GraphGapsInput = {\n topicId?: string;\n minConfidence?: number;\n};\n\nexport type GraphFalsifyInput = {\n topicId?: string;\n beliefId?: string;\n beliefIds?: string[];\n minConfidence?: number;\n};\n\nexport type EventsListResult = GatewayList & {\n events?: GatewayRecord[];\n};\n\nexport type WebhooksListResult = GatewayList & {\n webhooks?: GatewayRecord[];\n};\n\nexport type QuestionsListResult = GatewayList & {\n questions?: Array<GatewayRecord & { priority?: string }>;\n};\n\nexport type ContradictionsListResult = GatewayList & {\n contradictions?: GatewayRecord[];\n};\n\nexport type WorktreesListResult = GatewayList & {\n worktrees?: GatewayRecord[];\n};\n\nexport type TaskListResult = GatewayList & {\n tasks?: GatewayRecord[];\n};\n\nexport type EvidenceCreateResult = GatewayRecord & {\n id?: string;\n};\n\nexport type EvidenceLinkResult = GatewayRecord & {\n edgeId?: string;\n};\n\nexport type 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\nexport type BeliefsListQuery = {\n topicId?: string;\n status?: string;\n worktreeId?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type BeliefRefineInput = {\n text: string;\n rationale?: string;\n};\n\nexport type BeliefForkInput = {\n text: string;\n forkReason?: string;\n rationale?: string;\n};\n\nexport type BeliefConfidenceInput = ModulateConfidenceInput;\n\nexport type BeliefArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\nfunction normalizeBeliefConfidenceInput(\n input: BeliefConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\nexport type BeliefContractInput = GatewayRecord;\n\nexport type BeliefBisectInput = {\n expectedDirection: \"overconfident\" | \"underconfident\";\n timeRange?: {\n start: number;\n end: number;\n };\n};\n\nexport type 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 reasoningMethod?: string;\n};\n\nexport type EdgeListQuery = {\n sourceId?: string;\n edgeType?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EdgeTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\nexport type EvidenceCreateInput = {\n topicId?: string;\n text: string;\n source?: string;\n targetId?: string;\n weight?: number;\n rationale: string;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n};\n\nexport type EvidenceListQuery = {\n topicId?: string;\n targetId?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EvidenceSearchInput = {\n q: string;\n topicId?: string;\n targetId?: string;\n methodology?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EvidenceLinkInput = {\n evidenceId: string;\n targetId: string;\n targetType?: \"belief\" | \"question\";\n weight?: number;\n rationale?: string;\n};\n\nexport type QuestionsListQuery = {\n topicId?: string;\n status?: string;\n priority?: string;\n worktreeId?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type QuestionCreateInput = {\n topicId?: string;\n text: string;\n priority?: string;\n linkedBeliefId?: string;\n metadata?: JsonObject;\n};\n\nexport type QuestionAnswerInput = {\n text: string;\n confidence?: string;\n evidenceIds?: string[];\n rationale?: string;\n};\n\nexport type QuestionRefineInput = {\n text: string;\n rationale?: string;\n};\n\nexport type QuestionArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\nexport type QuestionStatusInput = {\n status: string;\n rationale?: string;\n};\n\nexport type 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\nexport type 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\nexport type TaskUpdateInput = {\n id: string;\n title?: string;\n description?: string;\n priority?: string;\n status?: string;\n assigneeId?: string;\n blockedReason?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n metadata?: JsonObject;\n};\n\nexport type TaskCompleteInput = {\n id: string;\n outputSummary: string;\n};\n\nexport type TaskListQuery = {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n limit?: number;\n};\n\nexport type WorktreeCreateInput = {\n title: string;\n topicId?: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n worktreeType?: string;\n startDate?: number;\n endDate?: number;\n durationWeeks?: number;\n confidenceImpact?: \"high\" | \"medium\" | \"low\";\n beliefFocus?: string;\n beliefIds?: string[];\n targetBeliefIds?: string[];\n targetQuestionIds?: string[];\n keyQuestions?: Array<{\n question: string;\n status?: \"open\" | \"answered\" | \"forked\";\n answer?: string;\n answerConfidence?: \"high\" | \"medium\" | \"low\";\n linkedQuestionId?: string;\n }>;\n evidenceSignals?: Array<{\n signal: string;\n collected?: boolean;\n progress?: string;\n notes?: string;\n }>;\n decisionGate?: {\n goCriteria: string[];\n noGoSignals: string[];\n verdict?: \"go\" | \"no_go\" | \"pivot\" | \"pending\";\n verdictRationale?: string;\n decidedAt?: number;\n decidedBy?: string;\n };\n goCriteria?: string[];\n noGoSignals?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n lensId?: string;\n};\n\nexport type WorktreeListQuery = {\n topicId?: string;\n status?: string;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n};\n\nexport type WorktreeActivateInput = {\n id: string;\n};\n\nexport type WorktreeUpdateInput = {\n id: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n status?: string;\n topicId?: string;\n additionalTopicIds?: string[];\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n lensId?: string;\n};\n\nexport type WorktreeMergeInput = {\n id: string;\n summary?: string;\n outcomes: Array<\n | string\n | {\n beliefId: string;\n confidence: number;\n rationale: string;\n }\n >;\n};\n\nexport type WorktreeTargetsInput = {\n id: string;\n addBeliefIds?: string[];\n addQuestionIds?: string[];\n removeBeliefIds?: string[];\n removeQuestionIds?: string[];\n};\n\nexport type OntologyListInput = {\n tenantId?: string;\n tier?: string;\n status?: string;\n};\n\nexport type OntologyMatchInput = GatewayRecord;\n\nexport type WebhookCreateInput = GatewayRecord;\nexport type WebhookUpdateInput = GatewayRecord;\nexport type WebhookListQuery = {\n topicId?: string;\n};\nexport type WebhookTestInput = {\n topicId?: string;\n};\nexport type WebhookDeliveriesQuery = {\n limit?: number;\n};\n\nexport type EventsListQuery = {\n topicId?: string;\n after?: string;\n types?: string[];\n startTime?: number;\n endTime?: number;\n limit?: number;\n};\n\nexport type ReplayEventsInput = GatewayRecord;\n\nfunction serializeTypes(types: string[] | undefined) {\n return Array.isArray(types) && types.length > 0 ? types.join(\",\") : undefined;\n}\nexport { createBeliefsFacade, createContradictionsFacade, createEdgesFacade, createEvidenceFacade, createEventsFacade, createGraphFacade, createIdentityFacade, createOntologiesFacade, createQuestionsFacade } from \"./gatewayFacades.factories\";\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 assigneeId: input.assigneeId,\n blockedReason: input.blockedReason,\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 create: topicsClient.create,\n get: topicsClient.get,\n list: topicsClient.list,\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 remove: topicsClient.remove,\n bulkCreate: topicsClient.bulkCreate,\n };\n}\n\nexport function createWebhooksFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WebhookCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/webhooks\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WebhookListQuery = {}\n ): Promise<PlatformGatewaySuccess<WebhooksListResult>> {\n return gateway.request<WebhooksListResult>({\n path: `/api/platform/v1/webhooks${toQueryString({\n topicId: query.topicId,\n })}`,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n });\n },\n\n async update(\n id: string,\n input: WebhookUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n id: string,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n idempotencyKey,\n });\n },\n\n async test(\n id: string,\n input: WebhookTestInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/test`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async deliveries(\n id: string,\n query: WebhookDeliveriesQuery = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/deliveries${toQueryString({\n limit: query.limit,\n })}`,\n });\n },\n\n async health(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/health`,\n });\n },\n };\n}\n\nexport function createWorktreesFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WorktreeCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WorktreeListQuery\n ): Promise<PlatformGatewaySuccess<WorktreesListResult>> {\n return gateway.request<WorktreesListResult>({\n path: `/api/platform/v1/worktrees${toQueryString({\n topicId: query.topicId,\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n });\n },\n\n async listCampaigns(\n query: {\n topicId?: string;\n status?: string;\n limit?: number;\n } = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString({\n topicId: query.topicId,\n status: query.status,\n limit: query.limit,\n })}`,\n });\n },\n\n async activate(\n input: WorktreeActivateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/activate`,\n method: \"POST\",\n body: {} as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: WorktreeUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}`,\n method: \"PATCH\",\n body: {\n objective: input.objective,\n hypothesis: input.hypothesis,\n rationale: input.rationale,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n status: input.status,\n topicId: input.topicId,\n additionalTopicIds: input.additionalTopicIds,\n proofArtifacts: input.proofArtifacts,\n staffingHint: input.staffingHint,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async merge(\n input: WorktreeMergeInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/merge`,\n method: \"POST\",\n body: {\n summary: input.summary,\n outcomes: input.outcomes,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateTargets(\n input: WorktreeTargetsInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/targets`,\n method: \"POST\",\n body: {\n addBeliefIds: input.addBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeBeliefIds: input.removeBeliefIds,\n removeQuestionIds: input.removeQuestionIds,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async complete(\n input: {\n worktreeId: string;\n keyFindings?: string[];\n decisionsReached?: string[];\n nextSteps?: string[];\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/complete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async advancePhase(\n input: { worktreeId: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/advance-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async setPhase(\n input: { worktreeId: string; phase: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/set-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async patchState(\n input: { worktreeId: string; patch: GatewayRecord },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/patch-state\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async bulkCreate(\n input: { worktrees: unknown[] },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/bulk\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n createListResult,\n mapGatewayData,\n normalizeTopicQuery,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentRecord,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n PendingJudgmentOutcomeRecord,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n TopicIdentifierInput,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n} from \"./types\";\n\n/** Configuration for the decisions client. */\nexport type DecisionsClientConfig = GatewayClientConfig;\n\n/** Input for recording a new judgment (irreversible decision commitment). */\nexport type RecordJudgmentInput = {\n title: string;\n summary?: string;\n rationale: string;\n topicId?: string;\n confidence?: number;\n decisionConfidence?: number;\n judgmentType?: string;\n decisionType?: string;\n beliefIds?: string[];\n keyUncertainties?: string[];\n alternativesConsidered?: string[];\n decisionMakers?: string[];\n companyId?: string;\n amount?: number;\n valuation?: number;\n terms?: string;\n themeIds?: string[];\n} & TopicIdentifierInput;\n\n/** Filter parameters for listing judgments within a topic scope. */\nexport type ListJudgmentsInput = {\n topicId?: string;\n includeArchived?: boolean;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for recording the real-world outcome of a judgment. */\nexport type RecordJudgmentOutcomeInput = {\n outcome:\n | \"pending\"\n | \"successful\"\n | \"unsuccessful\"\n | \"mixed\"\n | \"unknown\"\n | \"too_early\";\n outcomeNotes?: string;\n notes?: string;\n};\n\n/** Input for retrieving judgment calibration analytics. */\nexport type GetJudgmentCalibrationInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for listing judgments still awaiting outcome review. */\nexport type ListPendingJudgmentOutcomeReviewInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for checking audit integrity of judgment state transitions. */\nexport type GetJudgmentTransitionAuditIntegrityInput = {\n topicId?: string;\n judgmentId?: string;\n includePassing?: boolean;\n} & TopicIdentifierInput;\n\n/**\n * Create the judgments client for decision lifecycle operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage judgments, outcomes, readiness, and calibration.\n */\nexport function createDecisionsClient(config: DecisionsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n const client = {\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 * 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 * 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\n return Object.assign(client, {\n listPendingJudgmentOutcomeReview: client.listPendingOutcomeReviews,\n recordJudgment: client.createJudgment,\n recordJudgmentOutcome: client.updateJudgmentOutcome,\n });\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n listResultFromEnvelope,\n requireTopicId,\n topicPayload,\n type TopicProjectAliasInput,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type EmbeddingsClientConfig = GatewayClientConfig;\n\nexport const EMBEDDINGS_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"nodeIds\",\n \"nodeType\",\n \"embeddingModel\",\n \"includeInactive\",\n \"queryText\",\n \"queryVector\",\n \"minScore\",\n \"limit\",\n \"cursor\",\n \"metadata\",\n] as const;\n\nexport type EmbeddingProvenance = {\n sourceNodeId?: string;\n sourceGlobalId?: string;\n embeddingModel?: string;\n embeddedAt?: number;\n contentHash?: string;\n metadata?: JsonObject | null;\n};\n\nexport type EmbeddingRecord = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n embeddingModel?: string;\n vectorDimensions?: number;\n hasEmbedding?: boolean;\n provenance?: EmbeddingProvenance;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type MissingEmbeddingCandidate = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n embeddingModel?: string;\n reason?: string;\n contentHash?: string;\n metadata?: JsonObject | null;\n};\n\nexport type VectorSearchMatch = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n score: number;\n text?: string;\n title?: string;\n embeddingModel?: string;\n provenance?: EmbeddingProvenance;\n metadata?: JsonObject | null;\n};\n\nexport type GetEmbeddingsByNodeIdsInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeIds: string[];\n nodeType?: string;\n embeddingModel?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListMissingEmbeddingsInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeType?: string;\n embeddingModel?: string;\n includeInactive?: boolean;\n limit?: number;\n cursor?: string;\n};\n\nexport type VectorSearchByTopicInput = TopicProjectAliasInput & {\n workspaceId: string;\n queryText?: string;\n queryVector?: number[];\n nodeType?: string;\n embeddingModel?: string;\n minScore?: number;\n limit?: number;\n cursor?: string;\n metadata?: JsonObject;\n};\n\nexport type MarkEmbeddingBackfillQueuedInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeIds: string[];\n nodeType?: string;\n embeddingModel?: string;\n metadata?: JsonObject;\n};\n\nexport type EmbeddingsLookupResponse = ListResult<EmbeddingRecord, \"embeddings\">;\nexport type MissingEmbeddingsResponse = ListResult<\n MissingEmbeddingCandidate,\n \"nodes\"\n>;\nexport type VectorSearchResponse = ListResult<VectorSearchMatch, \"results\">;\n\nfunction assertNodeIds(nodeIds: string[]) {\n if (!Array.isArray(nodeIds) || nodeIds.length === 0) {\n throw new Error(\"nodeIds is required\");\n }\n}\n\nfunction missingQuery(input: ListMissingEmbeddingsInput) {\n return {\n topicId: requireTopicId(input),\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n nodeType: input.nodeType,\n embeddingModel: input.embeddingModel,\n includeInactive: input.includeInactive,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nexport function createEmbeddingsClient(config: EmbeddingsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n getByNodeIds(input: GetEmbeddingsByNodeIdsInput) {\n assertNodeIds(input.nodeIds);\n return gateway.request<EmbeddingsLookupResponse>({\n path: \"/api/platform/v1/embeddings/by-node-ids\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.getByNodeIds\"\n ),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EmbeddingRecord, \"embeddings\">(\n data,\n \"embeddings\"\n )\n )\n );\n },\n\n listMissingForTopic(input: ListMissingEmbeddingsInput) {\n return gateway.request<MissingEmbeddingsResponse>({\n path: `/api/platform/v1/embeddings/missing${toQueryString(\n missingQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<MissingEmbeddingCandidate, \"nodes\">(\n data,\n \"nodes\"\n )\n )\n );\n },\n\n vectorSearchByTopic(input: VectorSearchByTopicInput) {\n if (!input.queryText && !input.queryVector) {\n throw new Error(\"queryText or queryVector is required\");\n }\n return gateway.request<VectorSearchResponse>({\n path: \"/api/platform/v1/embeddings/vector-search\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.vectorSearchByTopic\"\n ),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<VectorSearchMatch, \"results\">(data, \"results\")\n )\n );\n },\n\n markEmbeddingBackfillQueued(\n input: MarkEmbeddingBackfillQueuedInput,\n idempotencyKey?: string\n ) {\n assertNodeIds(input.nodeIds);\n return gateway.request<{\n queued: number;\n topicId: string;\n workspaceId: string;\n nodeIds: string[];\n }>({\n path: \"/api/platform/v1/embeddings/backfill-queued\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.markEmbeddingBackfillQueued\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\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 topicIdOrInput: string | CompileContextInput = {},\n input: CompileContextInput = {}\n): ContextClientRequest {\n const effectiveInput =\n typeof topicIdOrInput === \"string\" ? input : topicIdOrInput;\n const payload: Record<string, unknown> = {};\n\n const topicId =\n typeof topicIdOrInput === \"string\"\n ? cleanString(topicIdOrInput)\n : cleanString(effectiveInput.topicId);\n if (topicId) {\n payload.topicId = topicId;\n }\n\n const query = cleanString(effectiveInput.query);\n if (query) {\n payload.query = query;\n }\n\n const budget =\n cleanNumber(effectiveInput.budget) ?? cleanNumber(effectiveInput.tokenBudget);\n if (budget !== undefined) {\n payload.budget = budget;\n }\n\n const ranking =\n cleanString(effectiveInput.ranking) ?? cleanString(effectiveInput.rankingProfile);\n if (ranking) {\n payload.ranking = ranking;\n }\n\n const limit = cleanNumber(effectiveInput.limit);\n if (limit !== undefined) {\n payload.limit = limit;\n }\n\n const maxDepth = cleanNumber(effectiveInput.maxDepth);\n if (maxDepth !== undefined) {\n payload.maxDepth = maxDepth;\n }\n\n const includeEntities = cleanBoolean(effectiveInput.includeEntities);\n if (includeEntities !== undefined) {\n payload.includeEntities = includeEntities;\n }\n\n const mode = cleanString(effectiveInput.mode);\n if (mode) {\n payload.mode = mode;\n }\n\n const includeFailures = cleanBoolean(effectiveInput.includeFailures);\n if (includeFailures !== undefined) {\n payload.includeFailures = includeFailures;\n }\n\n const worktreeId = cleanString(effectiveInput.worktreeId);\n if (worktreeId) {\n payload.worktreeId = worktreeId;\n }\n\n const sessionId = cleanString(effectiveInput.sessionId);\n if (sessionId) {\n payload.sessionId = sessionId;\n }\n\n if (\n Array.isArray(effectiveInput.packWeightOverrides) &&\n effectiveInput.packWeightOverrides.length > 0\n ) {\n payload.packWeightOverrides = effectiveInput.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.\n * @param topicIdOrInput - Optional topic ID, or compile input for query-first resolution.\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(\n topicIdOrInput: string | CompileContextInput = {},\n input: CompileContextInput = {}\n ) {\n const request = buildCompileContextRequest(topicIdOrInput, input);\n return gateway.request<CompileContextResponse>({\n ...request,\n body: request.body as JsonObject,\n });\n },\n async compileByQuery(input: CompileContextInput = {}) {\n const request = buildCompileContextRequest(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 randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type EventingClientConfig = GatewayClientConfig;\n\nexport const EVENTING_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"eventId\",\n \"eventType\",\n \"eventPayload\",\n \"webhookId\",\n \"deliveryId\",\n \"status\",\n \"attempt\",\n \"statusCode\",\n \"error\",\n \"responseBody\",\n \"durationMs\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type EventingStatus =\n | \"pending\"\n | \"delivering\"\n | \"succeeded\"\n | \"failed\"\n | \"dead_letter\";\n\nexport type EventingRecord = {\n eventId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n eventType: string;\n eventPayload?: JsonObject | null;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type EventingWebhookRecord = {\n webhookId: string;\n tenantId: string;\n workspaceId?: string;\n topicId?: string;\n url?: string;\n events?: string[];\n status?: string;\n metadata?: JsonObject | null;\n};\n\nexport type EventingDeliveryRecord = {\n deliveryId: string;\n eventId?: string;\n webhookId: string;\n tenantId: string;\n workspaceId?: string;\n status: EventingStatus | string;\n attempt?: number;\n metadata?: JsonObject | null;\n updatedAt?: number;\n};\n\nexport type EventingScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n eventType?: string;\n webhookId?: string;\n status?: EventingStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type RecordEventInput = EventingScope & {\n eventId?: string;\n eventType: string;\n eventPayload?: JsonObject;\n metadata?: JsonObject;\n};\n\nexport type EnqueueDeliveryInput = EventingScope & {\n eventId: string;\n webhookId: string;\n deliveryId?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordDeliveryAttemptInput = EventingScope & {\n deliveryId: string;\n webhookId: string;\n attempt: number;\n status: EventingStatus;\n statusCode?: number;\n error?: string;\n responseBody?: string;\n durationMs?: number;\n metadata?: JsonObject;\n};\n\nexport type UpdateDeliveryStatusInput = EventingScope & {\n deliveryId: string;\n webhookId?: string;\n status: EventingStatus;\n attempt?: number;\n metadata?: JsonObject;\n};\n\nexport type EventingEventsResponse = ListResult<EventingRecord, \"events\">;\nexport type EventingWebhooksResponse = ListResult<\n EventingWebhookRecord,\n \"webhooks\"\n>;\n\nfunction query(input: EventingScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n eventType: input.eventType,\n webhookId: input.webhookId,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, EVENTING_FIELDS, operation);\n}\n\nexport function createEventingClient(config: EventingClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n recordEvent(input: RecordEventInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n return gateway.request<EventingRecord>({\n path: \"/api/platform/v1/events\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.recordEvent\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listEvents(input: EventingScope) {\n return gateway.request<EventingEventsResponse>({\n path: `/api/platform/v1/events${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EventingRecord, \"events\">(data, \"events\")\n )\n );\n },\n\n listWebhooks(input: EventingScope) {\n return gateway.request<EventingWebhooksResponse>({\n path: `/api/platform/v1/webhooks${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EventingWebhookRecord, \"webhooks\">(\n data,\n \"webhooks\"\n )\n )\n );\n },\n\n enqueueDelivery(input: EnqueueDeliveryInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventId, \"eventId\");\n cleanRequiredString(input.webhookId, \"webhookId\");\n return gateway.request<EventingDeliveryRecord>({\n path: \"/api/platform/v1/events/deliveries\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.enqueueDelivery\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordDeliveryAttempt(\n input: RecordDeliveryAttemptInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.deliveryId, \"deliveryId\");\n return gateway.request<EventingDeliveryRecord>({\n path: `/api/platform/v1/events/deliveries/${encodeURIComponent(\n input.deliveryId\n )}/attempts`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.recordDeliveryAttempt\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateDeliveryStatus(\n input: UpdateDeliveryStatusInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.deliveryId, \"deliveryId\");\n return gateway.request<EventingDeliveryRecord>({\n path: `/api/platform/v1/events/deliveries/${encodeURIComponent(\n input.deliveryId\n )}/status`,\n method: \"PATCH\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.updateDeliveryStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\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","/* 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 \"controlPlane.identity.resolveInteractivePrincipal\",\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.batchCreateEdges\",\n \"edges.createEdge\",\n \"edges.queryLineage\",\n \"edges.removeEdge\",\n \"edges.removeEdgesBetween\",\n \"edges.updateEdge\",\n \"embeddings.getByNodeIds\",\n \"embeddings.listMissingForTopic\",\n \"embeddings.markEmbeddingBackfillQueued\",\n \"embeddings.vectorSearchByTopic\",\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 \"graphAnalysis.listGraphIntelligenceQueries\",\n \"graphAnalysis.runGraphIntelligenceQuery\",\n \"hybrid.analyzeGraphImpact\",\n \"hybrid.detectGraphDrift\",\n \"hybrid.expandGraphNeighborhood\",\n \"hybrid.findRelatedNodes\",\n \"hybrid.hybridDiscover\",\n \"hybrid.resolveTopicSemantic\",\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 \"nodes.archiveEpistemicNode\",\n \"nodes.batchCreateEpistemicNodes\",\n \"nodes.createEpistemicNode\",\n \"nodes.getEpistemicNode\",\n \"nodes.listEpistemicNodes\",\n \"nodes.supersedeEpistemicNode\",\n \"nodes.updateEpistemicNode\",\n \"nodes.verifyEpistemicNode\",\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.getTopicGraphSpine\",\n \"topics.getTopicTree\",\n \"topics.listTopics\",\n \"topics.materializeTopicGraph\",\n \"topics.updateTopic\",\n \"worktrees.activateWorktree\",\n \"worktrees.addWorktree\",\n \"worktrees.beginBuildSession\",\n \"worktrees.getWorktree\",\n \"worktrees.listAllWorktrees\",\n \"worktrees.listCampaigns\",\n \"worktrees.listWorktrees\",\n \"worktrees.merge\",\n \"worktrees.openPullRequest\",\n \"worktrees.pipelineSnapshot\",\n \"worktrees.push\",\n \"worktrees.updateWorktreeMetadata\",\n \"worktrees.updateWorktreeTargets\"\n] as const;\n\nconst CONTRACTS = {\n \"activate_worktree\": { method: \"POST\", path: \"/worktrees/activate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"add_evidence\": { method: \"POST\", path: \"/evidence/add\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"add_worktree\": { method: \"POST\", path: \"/worktrees\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"analyze_graph_impact\": { method: \"POST\", path: \"/hybrid/impact\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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_epistemic_node\": { method: \"POST\", path: \"/nodes/archive\", 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 \"batch_create_edges\": { method: \"POST\", path: \"/edges/batch\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"batch_create_epistemic_nodes\": { method: \"POST\", path: \"/nodes/batch\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"begin_build_session\": { method: \"POST\", path: \"/mcp/build-session/begin\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\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_epistemic_node\": { method: \"POST\", path: \"/nodes\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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 \"detect_graph_drift\": { method: \"POST\", path: \"/hybrid/drift\", kind: \"action\", 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 \"expand_graph_neighborhood\": { method: \"POST\", path: \"/hybrid/neighborhood\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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 \"find_related_nodes\": { method: \"POST\", path: \"/hybrid/related-nodes\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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_embeddings_by_node_ids\": { method: \"POST\", path: \"/embeddings/by-node-ids\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_epistemic_node\": { method: \"GET\", path: \"/nodes/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\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_graph_spine\": { method: \"GET\", path: \"/topics/graph-spine\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_topic_tree\": { method: \"GET\", path: \"/topics/tree\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_worktree\": { method: \"GET\", path: \"/worktrees/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"heartbeat_session\": { method: \"POST\", path: \"/coordination/heartbeat-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"hybrid_discover\": { method: \"POST\", path: \"/hybrid/discover\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"identity_whoami\": { method: \"GET\", path: \"/identity/whoami\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"ingest_observation\": { method: \"POST\", path: \"/observations/ingest\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"link_evidence\": { method: \"POST\", path: \"/evidence/link\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"link_evidence_to_belief\": { method: \"POST\", path: \"/evidence/link-belief\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"link_evidence_to_question\": { method: \"POST\", path: \"/evidence/link-question\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"list_active_sessions\": { method: \"POST\", path: \"/coordination/active-sessions\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"list_all_worktrees\": { method: \"GET\", path: \"/worktrees/all\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_beliefs\": { method: \"GET\", path: \"/beliefs\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_campaigns\": { method: \"GET\", path: \"/worktrees/campaigns\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_epistemic_nodes\": { method: \"GET\", path: \"/nodes\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_evidence\": { method: \"GET\", path: \"/evidence\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_graph_intelligence_queries\": { method: \"POST\", path: \"/graph-intelligence/queries\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"list_lenses\": { method: \"GET\", path: \"/lenses\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_missing_embeddings\": { method: \"GET\", path: \"/embeddings/missing\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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 \"materialize_topic_graph\": { method: \"POST\", path: \"/topics/materialize-graph\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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 \"queue_embedding_backfill\": { method: \"POST\", path: \"/embeddings/backfill-queued\", kind: \"mutation\", idempotent: true, 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_edge\": { method: \"DELETE\", path: \"/edges\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"remove_edges_between\": { method: \"DELETE\", path: \"/edges/between\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\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 \"resolve_interactive_principal\": { method: \"POST\", path: \"/control-plane/identity/resolve-interactive-principal\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"resolve_topic_semantic\": { method: \"POST\", path: \"/hybrid/topics/resolve\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"run_graph_intelligence_query\": { method: \"POST\", path: \"/graph-intelligence/run\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"search_beliefs\": { method: \"POST\", path: \"/beliefs/search\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"search_embeddings\": { method: \"POST\", path: \"/embeddings/vector-search\", kind: \"action\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\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 \"supersede_epistemic_node\": { method: \"POST\", path: \"/nodes/supersede\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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_edge\": { method: \"PATCH\", path: \"/edges\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"update_epistemic_node\": { method: \"PATCH\", path: \"/nodes\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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 \"verify_epistemic_node\": { method: \"POST\", path: \"/nodes/verify\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\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 analyzeGraphImpact(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"analyze_graph_impact\", 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 archiveEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_epistemic_node\", 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 batchCreateEdges(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"batch_create_edges\", input, idempotencyKey);\n },\n batchCreateEpistemicNodes(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"batch_create_epistemic_nodes\", input, idempotencyKey);\n },\n beginBuildSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"begin_build_session\", 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 createEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_epistemic_node\", 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 detectGraphDrift(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"detect_graph_drift\", 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 expandGraphNeighborhood(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"expand_graph_neighborhood\", 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 findRelatedNodes(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"find_related_nodes\", 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 getByNodeIds(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_embeddings_by_node_ids\", input, idempotencyKey);\n },\n getEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_epistemic_node\", 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 getTopicGraphSpine(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_graph_spine\", input, idempotencyKey);\n },\n getTopicTree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_tree\", input, idempotencyKey);\n },\n getWorktree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_worktree\", input, idempotencyKey);\n },\n heartbeatSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"heartbeat_session\", input, idempotencyKey);\n },\n hybridDiscover(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"hybrid_discover\", input, idempotencyKey);\n },\n whoami(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"identity_whoami\", input, idempotencyKey);\n },\n ingestObservation(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"ingest_observation\", input, idempotencyKey);\n },\n linkEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence\", input, idempotencyKey);\n },\n linkEvidenceToBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_belief\", input, idempotencyKey);\n },\n linkEvidenceToQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_question\", input, idempotencyKey);\n },\n listActiveSessions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_active_sessions\", input, idempotencyKey);\n },\n listAllWorktrees(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_all_worktrees\", input, idempotencyKey);\n },\n listBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_beliefs\", input, idempotencyKey);\n },\n listCampaigns(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_campaigns\", input, idempotencyKey);\n },\n listEpistemicNodes(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_epistemic_nodes\", input, idempotencyKey);\n },\n listEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_evidence\", input, idempotencyKey);\n },\n listGraphIntelligenceQueries(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_graph_intelligence_queries\", input, idempotencyKey);\n },\n listLenses(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_lenses\", input, idempotencyKey);\n },\n listMissingForTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_missing_embeddings\", 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 materializeTopicGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"materialize_topic_graph\", 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 markEmbeddingBackfillQueued(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"queue_embedding_backfill\", 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 removeEdge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"remove_edge\", input, idempotencyKey);\n },\n removeEdgesBetween(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"remove_edges_between\", 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 resolveInteractivePrincipal(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"resolve_interactive_principal\", input, idempotencyKey);\n },\n resolveTopicSemantic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"resolve_topic_semantic\", input, idempotencyKey);\n },\n runGraphIntelligenceQuery(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"run_graph_intelligence_query\", input, idempotencyKey);\n },\n searchBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_beliefs\", input, idempotencyKey);\n },\n vectorSearchByTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_embeddings\", 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 supersedeEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"supersede_epistemic_node\", 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 updateEdge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_edge\", input, idempotencyKey);\n },\n updateEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_epistemic_node\", 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 verifyEpistemicNode(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"verify_epistemic_node\", input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\nimport type {\n GraphIntelligenceQueryMode,\n GraphIntelligenceQueryWithTools,\n} from \"@lucern/contracts\";\n\nexport type GraphAnalysisClientConfig = GatewayClientConfig;\n\nexport const GRAPH_ANALYSIS_ANALYSIS_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisType\",\n \"healthScore\",\n \"findings\",\n \"suggestions\",\n \"sourceNodeIds\",\n \"sourceEdgeIds\",\n \"detectorVersions\",\n \"metadata\",\n] as const;\n\nexport const GRAPH_ANALYSIS_SUGGESTION_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisId\",\n \"suggestions\",\n \"metadata\",\n] as const;\n\nexport const GRAPH_ANALYSIS_COMPUTE_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisType\",\n \"sourceNodeIds\",\n \"sourceEdgeIds\",\n \"detectorVersions\",\n \"metadata\",\n] as const;\n\ntype AnalysisPayloadField = (typeof GRAPH_ANALYSIS_ANALYSIS_FIELDS)[number];\ntype SuggestionPayloadField = (typeof GRAPH_ANALYSIS_SUGGESTION_FIELDS)[number];\ntype ComputePayloadField = (typeof GRAPH_ANALYSIS_COMPUTE_FIELDS)[number];\n\nexport type GraphAnalysisFinding = {\n id?: string;\n severity?: \"critical\" | \"warning\" | \"info\" | string;\n category?: string;\n title: string;\n description?: string;\n nodeIds?: string[];\n nodeLabels?: string[];\n detector?: string;\n importance?: number;\n totalCount?: number;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisSuggestion = {\n suggestionId?: string;\n findingId?: string;\n actionType: string;\n targetNodeIds?: string[];\n priority?: \"P0\" | \"P1\" | \"P2\" | \"P3\" | string;\n rationale?: string;\n status?: GraphAnalysisSuggestionStatus;\n healthScore?: number;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisSuggestionStatus =\n | \"open\"\n | \"accepted\"\n | \"dismissed\"\n | \"applied\"\n | \"superseded\";\n\nexport type GraphAnalysisRecord = {\n analysisId?: string;\n topicId: string;\n workspaceId: string;\n analysisType: string;\n healthScore?: number;\n findings?: GraphAnalysisFinding[];\n suggestions?: GraphAnalysisSuggestion[];\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type GraphAnalysisChangeRecord = {\n changeId?: string;\n analysisId?: string;\n topicId?: string;\n workspaceId?: string;\n changeType?: string;\n nodeIds?: string[];\n edgeIds?: string[];\n summary?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport type SaveGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisType: string;\n healthScore: number;\n findings: GraphAnalysisFinding[];\n suggestions?: GraphAnalysisSuggestion[];\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject;\n};\n\nexport type ListGraphAnalysesInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisType?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type GetLatestGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisType?: string;\n};\n\nexport type SaveGraphSuggestionsInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisId?: string;\n suggestions: GraphAnalysisSuggestion[];\n metadata?: JsonObject;\n};\n\nexport type UpdateGraphSuggestionStatusInput = {\n suggestionId: string;\n status: GraphAnalysisSuggestionStatus;\n rationale?: string;\n metadata?: JsonObject;\n};\n\nexport type ListGraphSuggestionsInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisId?: string;\n findingId?: string;\n status?: GraphAnalysisSuggestionStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListGraphChangesInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisId?: string;\n minimumCreatedAt?: number;\n since?: number;\n createdAt?: number;\n analysisCreatedAt?: number;\n nodeId?: string;\n edgeId?: string;\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n limit?: number;\n cursor?: string;\n};\n\nexport type ComputeOrRequestGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisType?: string;\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisListResponse = ListResult<\n GraphAnalysisRecord,\n \"analyses\"\n>;\nexport type GraphAnalysisSuggestionsResponse = ListResult<\n GraphAnalysisSuggestion,\n \"suggestions\"\n>;\nexport type GraphAnalysisChangesResponse = ListResult<\n GraphAnalysisChangeRecord,\n \"changes\"\n>;\n\nexport type ListGraphIntelligenceQueriesInput = {\n categoryId?: string;\n mode?: GraphIntelligenceQueryMode;\n};\n\nexport type RunGraphIntelligenceQueryInput = TopicProjectAliasInput & {\n queryId?: string;\n prompt?: string;\n input?: string;\n mode?: GraphIntelligenceQueryMode;\n limit?: number;\n nodeId?: string;\n startNode?: string;\n maxDepth?: number;\n beliefIds?: string[];\n};\n\nexport type GraphIntelligenceQueryCatalogResponse = {\n schemaVersion: string;\n catalogVersion: string;\n categories: unknown[];\n modes: readonly GraphIntelligenceQueryMode[];\n queries: GraphIntelligenceQueryWithTools[];\n quickQueries: unknown[];\n publicToolNamesByMode: Record<string, readonly string[]>;\n totalQueries: number;\n};\n\nexport type GraphIntelligenceQueryRunResponse = {\n schemaVersion: string;\n catalogVersion: string;\n topicId: string;\n requestedTopicId?: string;\n query: GraphIntelligenceQueryWithTools | JsonObject;\n mode: GraphIntelligenceQueryMode;\n prompt: string;\n input: string | null;\n toolPlan: Array<{ toolName: string; args: JsonObject }>;\n analysis: JsonObject;\n context: JsonObject;\n guidance: JsonObject;\n};\n\nfunction readTopicId(input: TopicProjectAliasInput): string | undefined {\n return input.topicId?.trim() || input.projectId?.trim() || undefined;\n}\n\nfunction requireTopicId(input: TopicProjectAliasInput): string {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction normalizeAnalysisPayload(input: SaveGraphAnalysisInput): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_ANALYSIS_FIELDS,\n \"graphAnalysis.saveAnalysis\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<AnalysisPayloadField, unknown>;\n}\n\nfunction normalizeSuggestionPayload(input: SaveGraphSuggestionsInput): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_SUGGESTION_FIELDS,\n \"graphAnalysis.saveSuggestions\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<SuggestionPayloadField, unknown>;\n}\n\nfunction normalizeComputePayload(\n input: ComputeOrRequestGraphAnalysisInput\n): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_COMPUTE_FIELDS,\n \"graphAnalysis.computeOrRequestAnalysis\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<ComputePayloadField, unknown>;\n}\n\nfunction graphAnalysisQuery(input: ListGraphAnalysesInput) {\n return {\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisType: input.analysisType,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction normalizeRunQueryPayload(input: RunGraphIntelligenceQueryInput): JsonObject {\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject;\n}\n\nexport function createGraphAnalysisClient(\n config: GraphAnalysisClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listGraphIntelligenceQueries(input: ListGraphIntelligenceQueriesInput = {}) {\n return gateway.request<GraphIntelligenceQueryCatalogResponse>({\n path: \"/api/platform/v1/graph-intelligence/queries\",\n method: \"POST\",\n body: {\n categoryId: input.categoryId,\n mode: input.mode,\n },\n });\n },\n\n runGraphIntelligenceQuery(input: RunGraphIntelligenceQueryInput) {\n return gateway.request<GraphIntelligenceQueryRunResponse>({\n path: \"/api/platform/v1/graph-intelligence/run\",\n method: \"POST\",\n body: normalizeRunQueryPayload(input),\n });\n },\n\n saveAnalysis(input: SaveGraphAnalysisInput, idempotencyKey?: string) {\n return gateway.request<GraphAnalysisRecord>({\n path: \"/api/platform/v1/graph-analysis/analyses\",\n method: \"POST\",\n body: normalizeAnalysisPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listAnalyses(input: ListGraphAnalysesInput) {\n return gateway.request<GraphAnalysisListResponse>({\n path: `/api/platform/v1/graph-analysis/analyses${toQueryString(\n graphAnalysisQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { analyses?: unknown[] }).analyses)\n ? ((data as { analyses: GraphAnalysisRecord[] }).analyses)\n : Array.isArray(data)\n ? data\n : [],\n \"analyses\"\n )\n )\n );\n },\n\n getLatestAnalysis(input: GetLatestGraphAnalysisInput) {\n return gateway.request<GraphAnalysisRecord>({\n path: `/api/platform/v1/graph-analysis/analyses/latest${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisType: input.analysisType,\n })}`,\n });\n },\n\n saveSuggestions(input: SaveGraphSuggestionsInput, idempotencyKey?: string) {\n return gateway.request<GraphAnalysisSuggestionsResponse>({\n path: \"/api/platform/v1/graph-analysis/suggestions\",\n method: \"POST\",\n body: normalizeSuggestionPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateSuggestionStatus(\n input: UpdateGraphSuggestionStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphAnalysisSuggestion>({\n path: `/api/platform/v1/graph-analysis/suggestions/${encodeURIComponent(\n input.suggestionId\n )}`,\n method: \"PATCH\",\n body: {\n status: input.status,\n rationale: input.rationale,\n metadata: input.metadata,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listSuggestions(input: ListGraphSuggestionsInput) {\n return gateway.request<GraphAnalysisSuggestionsResponse>({\n path: `/api/platform/v1/graph-analysis/suggestions${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisId: input.analysisId,\n findingId: input.findingId,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { suggestions?: unknown[] }).suggestions)\n ? ((data as { suggestions: GraphAnalysisSuggestion[] }).suggestions)\n : Array.isArray(data)\n ? data\n : [],\n \"suggestions\"\n )\n )\n );\n },\n\n listGraphChanges(input: ListGraphChangesInput) {\n return gateway.request<GraphAnalysisChangesResponse>({\n path: `/api/platform/v1/graph-analysis/changes${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisId: input.analysisId,\n minimumCreatedAt:\n input.minimumCreatedAt ??\n input.since ??\n input.createdAt ??\n input.analysisCreatedAt,\n sourceNodeIds:\n input.sourceNodeIds?.join(\",\") ??\n (input.nodeId ? input.nodeId : undefined),\n sourceEdgeIds:\n input.sourceEdgeIds?.join(\",\") ??\n (input.edgeId ? input.edgeId : undefined),\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { changes?: unknown[] }).changes)\n ? ((data as { changes: GraphAnalysisChangeRecord[] }).changes)\n : Array.isArray(data)\n ? data\n : [],\n \"changes\"\n )\n )\n );\n },\n\n computeOrRequestAnalysis(\n input: ComputeOrRequestGraphAnalysisInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphAnalysisRecord>({\n path: \"/api/platform/v1/graph-analysis/compute\",\n method: \"POST\",\n body: normalizeComputePayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphRecommendationsClientConfig = GatewayClientConfig;\n\nexport const GRAPH_RECOMMENDATION_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"limit\",\n \"cursor\",\n \"status\",\n \"findingId\",\n \"actionType\",\n \"targetNodeIds\",\n \"priority\",\n \"rationale\",\n \"healthScore\",\n \"metadata\",\n] as const;\n\nexport type GraphRecommendationStatus =\n | \"open\"\n | \"accepted\"\n | \"dismissed\"\n | \"applied\"\n | \"superseded\";\n\nexport type GraphRecommendationPriority =\n | \"P0\"\n | \"P1\"\n | \"P2\"\n | \"P3\"\n | \"critical\"\n | \"high\"\n | \"medium\"\n | \"low\";\n\nexport type GraphRecommendationRecord = {\n recommendationId: string;\n topicId?: string;\n workspaceId?: string;\n findingId?: string;\n actionType: string;\n targetNodeIds?: string[];\n priority?: GraphRecommendationPriority | string;\n rationale?: string;\n healthScore?: number;\n status?: GraphRecommendationStatus;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type GraphRecommendationListInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n workspaceId?: string;\n limit?: number;\n cursor?: string;\n status?: GraphRecommendationStatus;\n findingId?: string;\n actionType?: string;\n priority?: GraphRecommendationPriority | string;\n targetNodeIds?: string[];\n healthScore?: number;\n metadata?: JsonObject;\n};\n\nexport type MarkGraphRecommendationStatusInput = {\n recommendationId: string;\n status: GraphRecommendationStatus;\n rationale?: string;\n metadata?: JsonObject;\n};\n\nexport type GraphRecommendationListResponse = ListResult<\n GraphRecommendationRecord,\n \"recommendations\"\n>;\n\nfunction readTopicId(input: { topicId?: string; projectId?: string }) {\n return input.topicId?.trim() || input.projectId?.trim() || undefined;\n}\n\nfunction requireTopicId(input: { topicId?: string; projectId?: string }) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction assertKnownKeys(\n input: Record<string, unknown>,\n operation: string\n) {\n const allowed = new Set<string>(GRAPH_RECOMMENDATION_FIELDS);\n const unknownKeys = Object.keys(input).filter((key) => !allowed.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction listQuery(input: GraphRecommendationListInput) {\n assertKnownKeys(\n input as Record<string, unknown>,\n \"graphRecommendations.listForTopic\"\n );\n return {\n workspaceId: input.workspaceId,\n topicId: requireTopicId(input),\n limit: input.limit,\n cursor: input.cursor,\n status: input.status,\n findingId: input.findingId,\n actionType: input.actionType,\n priority: input.priority,\n targetNodeIds: input.targetNodeIds?.join(\",\"),\n healthScore: input.healthScore,\n };\n}\n\nexport function createGraphRecommendationsClient(\n config: GraphRecommendationsClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listForTopic(input: GraphRecommendationListInput) {\n return gateway.request<GraphRecommendationListResponse>({\n path: `/api/platform/v1/graph-recommendations${toQueryString(\n listQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(\n (data as { recommendations?: unknown[] }).recommendations\n )\n ? (data as { recommendations: GraphRecommendationRecord[] })\n .recommendations\n : Array.isArray(data)\n ? data\n : [],\n \"recommendations\"\n )\n )\n );\n },\n\n getRecommendation(recommendationId: string) {\n return gateway.request<GraphRecommendationRecord>({\n path: `/api/platform/v1/graph-recommendations/${encodeURIComponent(\n recommendationId\n )}`,\n });\n },\n\n markRecommendationStatus(\n input: MarkGraphRecommendationStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphRecommendationRecord>({\n path: `/api/platform/v1/graph-recommendations/${encodeURIComponent(\n input.recommendationId\n )}/status`,\n method: \"PATCH\",\n body: {\n status: input.status,\n rationale: input.rationale,\n metadata: input.metadata,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n requireTopicId,\n topicPayload,\n type TopicProjectAliasInput,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphStateClassifierClientConfig = GatewayClientConfig;\n\nexport const GRAPH_STATE_CLASSIFIER_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"nodeId\",\n \"epistemicStatus\",\n \"beliefMaturity\",\n \"answerQuality\",\n \"evidenceNetwork\",\n \"logicalRole\",\n \"questionPriority\",\n \"layer\",\n \"modelVersion\",\n \"limit\",\n \"cursor\",\n \"metadata\",\n] as const;\n\nexport type GraphStateClassification = {\n classificationId?: string;\n topicId: string;\n workspaceId?: string;\n nodeId?: string;\n epistemicStatus?: string;\n beliefMaturity?: string;\n answerQuality?: string;\n evidenceNetwork?: string;\n logicalRole?: string;\n questionPriority?: string;\n layer?: string;\n modelVersion?: string;\n confidence?: number;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ClassifyNodeInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeId: string;\n modelVersion?: string;\n metadata?: JsonObject;\n};\n\nexport type ClassifyTopicInput = TopicProjectAliasInput & {\n workspaceId: string;\n modelVersion?: string;\n limit?: number;\n cursor?: string;\n metadata?: JsonObject;\n};\n\nexport type ListGraphStateClassificationsInput = TopicProjectAliasInput & {\n workspaceId?: string;\n nodeId?: string;\n modelVersion?: string;\n layer?: string;\n epistemicStatus?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type RecordGraphStateClassificationInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeId: string;\n epistemicStatus?: string;\n beliefMaturity?: string;\n answerQuality?: string;\n evidenceNetwork?: string;\n logicalRole?: string;\n questionPriority?: string;\n layer?: string;\n modelVersion?: string;\n metadata?: JsonObject;\n};\n\nexport type GraphStateClassificationsResponse = ListResult<\n GraphStateClassification,\n \"classifications\"\n>;\n\nfunction normalizeRecordPayload(input: RecordGraphStateClassificationInput) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n cleanRequiredString(input.nodeId, \"nodeId\");\n return topicPayload(\n input as RecordGraphStateClassificationInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.recordClassification\"\n );\n}\n\nexport function createGraphStateClassifierClient(\n config: GraphStateClassifierClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n classifyNode(input: ClassifyNodeInput, idempotencyKey?: string) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n cleanRequiredString(input.nodeId, \"nodeId\");\n return gateway.request<GraphStateClassification>({\n path: \"/api/platform/v1/graph-state-classifier/classify-node\",\n method: \"POST\",\n body: topicPayload(\n input as ClassifyNodeInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.classifyNode\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n classifyTopic(input: ClassifyTopicInput, idempotencyKey?: string) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n return gateway.request<GraphStateClassificationsResponse>({\n path: \"/api/platform/v1/graph-state-classifier/classify-topic\",\n method: \"POST\",\n body: topicPayload(\n input as ClassifyTopicInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.classifyTopic\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<GraphStateClassification, \"classifications\">(\n data,\n \"classifications\"\n )\n )\n );\n },\n\n listClassifications(input: ListGraphStateClassificationsInput) {\n return gateway.request<GraphStateClassificationsResponse>({\n path: `/api/platform/v1/graph-state-classifier/classifications${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n nodeId: input.nodeId,\n modelVersion: input.modelVersion,\n layer: input.layer,\n epistemicStatus: input.epistemicStatus,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<GraphStateClassification, \"classifications\">(\n data,\n \"classifications\"\n )\n )\n );\n },\n\n recordClassification(\n input: RecordGraphStateClassificationInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphStateClassification>({\n path: \"/api/platform/v1/graph-state-classifier/classifications\",\n method: \"POST\",\n body: normalizeRecordPayload(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, 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 const client = {\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 * 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 * 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 * 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 * 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 return Object.assign(client, {\n registerAgentDefinition: client.createAgentDefinition,\n listRunsForAgent: client.listAgentRuns,\n registerToolDefinition: client.createToolDefinition,\n listRunLedgerEntries: client.listRunEntries,\n });\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type JobsClientConfig = GatewayClientConfig;\n\nexport const JOBS_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"worktreeId\",\n \"jobId\",\n \"jobType\",\n \"payload\",\n \"status\",\n \"attempt\",\n \"runId\",\n \"queue\",\n \"priority\",\n \"error\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type JobStatus =\n | \"queued\"\n | \"claimed\"\n | \"running\"\n | \"succeeded\"\n | \"failed\"\n | \"cancelled\";\n\nexport type JobRecord = {\n jobId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n jobType: string;\n payload?: JsonObject | null;\n status: JobStatus | string;\n attempt?: number;\n runId?: string;\n queue?: string;\n priority?: string;\n error?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type JobRunRecord = {\n runId: string;\n jobId?: string;\n tenantId: string;\n workspaceId?: string;\n status: JobStatus | string;\n startedAt?: number;\n finishedAt?: number;\n metadata?: JsonObject | null;\n};\n\nexport type JobsScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n jobType?: string;\n status?: JobStatus;\n queue?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EnqueueJobInput = JobsScope & {\n jobType: string;\n payload?: JsonObject;\n priority?: string;\n metadata?: JsonObject;\n};\n\nexport type ClaimJobInput = JobsScope & {\n jobType?: string;\n};\n\nexport type UpdateJobStatusInput = JobsScope & {\n jobId: string;\n status: JobStatus;\n attempt?: number;\n runId?: string;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type RetryJobInput = JobsScope & {\n jobId: string;\n metadata?: JsonObject;\n};\n\nexport type RecordJobRunStartInput = JobsScope & {\n jobId?: string;\n runId?: string;\n jobType?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordJobRunFinishInput = JobsScope & {\n runId: string;\n jobId?: string;\n status: JobStatus;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type JobsResponse = ListResult<JobRecord, \"jobs\">;\n\nfunction query(input: JobsScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n worktreeId: input.worktreeId,\n jobType: input.jobType,\n status: input.status,\n queue: input.queue,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, JOBS_FIELDS, operation);\n}\n\nexport function createJobsClient(config: JobsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n enqueue(input: EnqueueJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobType, \"jobType\");\n return gateway.request<JobRecord>({\n path: \"/api/platform/v1/jobs\",\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.enqueue\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n list(input: JobsScope) {\n return gateway.request<JobsResponse>({\n path: `/api/platform/v1/jobs${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<JobRecord, \"jobs\">(data, \"jobs\")\n )\n );\n },\n\n claim(input: ClaimJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<JobRecord>({\n path: \"/api/platform/v1/jobs/claim\",\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.claim\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateStatus(input: UpdateJobStatusInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobId, \"jobId\");\n return gateway.request<JobRecord>({\n path: `/api/platform/v1/jobs/${encodeURIComponent(input.jobId)}/status`,\n method: \"PATCH\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.updateStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n retry(input: RetryJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobId, \"jobId\");\n return gateway.request<JobRecord>({\n path: `/api/platform/v1/jobs/${encodeURIComponent(input.jobId)}/retry`,\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.retry\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordRunStart(input: RecordJobRunStartInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<JobRunRecord>({\n path: \"/api/platform/v1/jobs/runs/start\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.recordRunStart\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordRunFinish(input: RecordJobRunFinishInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runId, \"runId\");\n return gateway.request<JobRunRecord>({\n path: `/api/platform/v1/jobs/runs/${encodeURIComponent(\n input.runId\n )}/finish`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.recordRunFinish\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\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 const listRecentExecutions = async (\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n success?: boolean;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) =>\n 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 const getExecutionStats = async (\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n hours?: number;\n } & TopicIdentifierInput = {}\n ) =>\n 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 return {\n /**\n * List recent execution records.\n */\n listRecentExecutions,\n\n /**\n * @deprecated Use listRecentExecutions.\n */\n getRecentExecutions: listRecentExecutions,\n\n /**\n * Get aggregate execution statistics.\n */\n getExecutionStats,\n };\n}\n","import type {\n McpGatewayBootstrapRequest,\n McpGatewayBootstrapResponse,\n McpGatewayBeginBuildSessionRequest,\n McpGatewayBeginBuildSessionResponse,\n McpGatewayContractEvaluationResponse,\n McpGatewayEvaluateEngineeringContractRequest,\n McpGatewayEvaluateResearchContractRequest,\n McpGatewayWritePolicyCheckRequest,\n McpGatewayWritePolicyCheckResponse,\n} from \"@lucern/contracts/mcp-gateway-boundary.contract\";\nimport {\n MCP_GATEWAY_BEGIN_BUILD_SESSION_ENDPOINT,\n MCP_GATEWAY_BOOTSTRAP_ENDPOINT,\n MCP_GATEWAY_EVALUATE_ENGINEERING_CONTRACT_ENDPOINT,\n MCP_GATEWAY_EVALUATE_RESEARCH_CONTRACT_ENDPOINT,\n MCP_GATEWAY_WRITE_POLICY_CHECK_ENDPOINT,\n} from \"@lucern/contracts/mcp-gateway-boundary.contract\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n type PlatformGatewaySuccess,\n toQueryString,\n} from \"./coreClient\";\nimport type { JsonValue } from \"./types\";\n\nexport type McpClientConfig = GatewayClientConfig;\n\nexport type McpBootstrapSessionInput = GatewayScope &\n McpGatewayBootstrapRequest;\n\nexport type McpBootstrapSessionResponse =\n PlatformGatewaySuccess<McpGatewayBootstrapResponse>;\n\nexport type McpCheckWritePolicyInput = GatewayScope &\n McpGatewayWritePolicyCheckRequest;\n\nexport type McpCheckWritePolicyResponse =\n PlatformGatewaySuccess<McpGatewayWritePolicyCheckResponse>;\n\nexport type McpBeginBuildSessionInput = GatewayScope &\n McpGatewayBeginBuildSessionRequest;\n\nexport type McpBeginBuildSessionResponse =\n PlatformGatewaySuccess<McpGatewayBeginBuildSessionResponse>;\n\nexport type McpEvaluateEngineeringContractInput = GatewayScope &\n McpGatewayEvaluateEngineeringContractRequest;\n\nexport type McpEvaluateResearchContractInput = GatewayScope &\n McpGatewayEvaluateResearchContractRequest;\n\nexport type McpContractEvaluationResponse =\n PlatformGatewaySuccess<McpGatewayContractEvaluationResponse>;\n\nfunction toJsonValue(value: unknown): JsonValue | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n const seen = new WeakSet<object>();\n const json = JSON.stringify(value, (_key, candidate) => {\n if (typeof candidate === \"bigint\") {\n return candidate.toString();\n }\n\n if (\n typeof candidate === \"function\" ||\n typeof candidate === \"symbol\" ||\n typeof candidate === \"undefined\"\n ) {\n return undefined;\n }\n\n if (candidate && typeof candidate === \"object\") {\n if (seen.has(candidate)) {\n return \"[Circular]\";\n }\n seen.add(candidate);\n }\n\n return candidate;\n });\n\n if (json === undefined) {\n return undefined;\n }\n\n return JSON.parse(json) as JsonValue;\n}\n\nexport function createMcpClient(config: McpClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n bootstrapSession(\n input: McpBootstrapSessionInput = {}\n ): Promise<McpBootstrapSessionResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n const body: McpGatewayBootstrapRequest = {\n transportKind: input.transportKind,\n sessionId: input.sessionId,\n agentIdentity: input.agentIdentity,\n workspaceId: input.workspaceId,\n worktreeId: input.worktreeId,\n };\n\n return gateway.request<McpGatewayBootstrapResponse>({\n path: `${MCP_GATEWAY_BOOTSTRAP_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body,\n });\n },\n\n checkWritePolicy(\n input: McpCheckWritePolicyInput\n ): Promise<McpCheckWritePolicyResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayWritePolicyCheckResponse>({\n path: `${MCP_GATEWAY_WRITE_POLICY_CHECK_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n role: input.role,\n toolName: input.toolName,\n },\n });\n },\n\n beginBuildSession(\n input: McpBeginBuildSessionInput\n ): Promise<McpBeginBuildSessionResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayBeginBuildSessionResponse>({\n path: `${MCP_GATEWAY_BEGIN_BUILD_SESSION_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n worktreeId: input.worktreeId,\n branch: input.branch,\n branchBase: input.branchBase,\n prBase: input.prBase,\n sessionMode: input.sessionMode,\n activateIfPlanning: input.activateIfPlanning,\n },\n });\n },\n\n evaluateEngineeringContract(\n input: McpEvaluateEngineeringContractInput\n ): Promise<McpContractEvaluationResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayContractEvaluationResponse>({\n path: `${MCP_GATEWAY_EVALUATE_ENGINEERING_CONTRACT_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n beliefNodeId: toJsonValue(input.beliefNodeId),\n trigger: toJsonValue(input.trigger),\n testOutput: toJsonValue(input.testOutput),\n tscOutput: toJsonValue(input.tscOutput),\n lintOutput: toJsonValue(input.lintOutput),\n sentryData: toJsonValue(input.sentryData),\n },\n });\n },\n\n evaluateResearchContract(\n input: McpEvaluateResearchContractInput\n ): Promise<McpContractEvaluationResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayContractEvaluationResponse>({\n path: `${MCP_GATEWAY_EVALUATE_RESEARCH_CONTRACT_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n beliefNodeId: toJsonValue(input.beliefNodeId),\n trigger: toJsonValue(input.trigger),\n metricData: toJsonValue(input.metricData),\n referenceCheckData: toJsonValue(input.referenceCheckData),\n marketIndexData: toJsonValue(input.marketIndexData),\n temporalData: toJsonValue(input.temporalData),\n },\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type ModelRuntimeClientConfig = GatewayClientConfig;\n\nexport const MODEL_RUNTIME_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"functionName\",\n \"slotKey\",\n \"modelId\",\n \"provider\",\n \"routingPolicy\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type ModelRegistryRecord = {\n modelId: string;\n provider: string;\n displayName?: string;\n status?: string;\n capabilities?: string[];\n contextWindow?: number;\n routingPolicy?: JsonObject | null;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ModelFunctionSlot = {\n functionName: string;\n slotKey: string;\n modelId?: string;\n provider?: string;\n routingPolicy?: JsonObject | null;\n metadata?: JsonObject | null;\n};\n\nexport type ModelRuntimeScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n provider?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type ResolveModelSlotInput = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n functionName: string;\n slotKey?: string;\n metadata?: JsonObject;\n};\n\nexport type UpdateModelSlotConfigInput = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n functionName: string;\n slotKey: string;\n modelId: string;\n provider?: string;\n routingPolicy?: JsonObject;\n metadata?: JsonObject;\n};\n\nexport type ModelsResponse = ListResult<ModelRegistryRecord, \"models\">;\nexport type ModelSlotsResponse = ListResult<ModelFunctionSlot, \"slots\">;\n\nfunction scopeQuery(input: ModelRuntimeScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n provider: input.provider,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction modelRuntimeBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, MODEL_RUNTIME_FIELDS, operation);\n}\n\nexport function createModelRuntimeClient(\n config: ModelRuntimeClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listModels(input: ModelRuntimeScope) {\n return gateway.request<ModelsResponse>({\n path: `/api/platform/v1/model-runtime/models${toQueryString(\n scopeQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ModelRegistryRecord, \"models\">(data, \"models\")\n )\n );\n },\n\n getModel(input: ModelRuntimeScope & { modelId: string }) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.modelId, \"modelId\");\n return gateway.request<ModelRegistryRecord>({\n path: `/api/platform/v1/model-runtime/models/${encodeURIComponent(\n input.modelId\n )}${toQueryString({\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n })}`,\n });\n },\n\n listFunctionSlots(input: ModelRuntimeScope & { functionName?: string }) {\n return gateway.request<ModelSlotsResponse>({\n path: `/api/platform/v1/model-runtime/function-slots${toQueryString({\n ...scopeQuery(input),\n functionName: input.functionName,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ModelFunctionSlot, \"slots\">(data, \"slots\")\n )\n );\n },\n\n resolveSlot(input: ResolveModelSlotInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.functionName, \"functionName\");\n return gateway.request<ModelFunctionSlot>({\n path: \"/api/platform/v1/model-runtime/function-slots/resolve\",\n method: \"POST\",\n body: modelRuntimeBody(\n input as unknown as Record<string, unknown>,\n \"modelRuntime.resolveSlot\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateSlotConfig(\n input: UpdateModelSlotConfigInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.functionName, \"functionName\");\n cleanRequiredString(input.slotKey, \"slotKey\");\n cleanRequiredString(input.modelId, \"modelId\");\n return gateway.request<ModelFunctionSlot>({\n path: \"/api/platform/v1/model-runtime/slot-configs\",\n method: \"PUT\",\n body: modelRuntimeBody(\n input as unknown as Record<string, unknown>,\n \"modelRuntime.updateSlotConfig\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanOptionalString,\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type OntologyLinksClientConfig = GatewayClientConfig;\n\nexport const ONTOLOGY_LINK_FIELDS = [\n \"topicId\",\n \"workspaceId\",\n \"linkId\",\n \"sourceNodeId\",\n \"sourceGlobalId\",\n \"targetNodeId\",\n \"targetGlobalId\",\n \"ontologyId\",\n \"ontologyType\",\n \"edgeType\",\n \"weight\",\n \"confidence\",\n \"status\",\n \"metadata\",\n] as const;\n\nexport type OntologyLinkStatus =\n | \"active\"\n | \"candidate\"\n | \"dismissed\"\n | \"superseded\"\n | \"archived\";\n\nexport type OntologyLinkRecord = {\n linkId?: string;\n edgeId?: string;\n topicId?: string;\n workspaceId?: string;\n sourceNodeId?: string;\n sourceGlobalId?: string;\n targetNodeId?: string;\n targetGlobalId?: string;\n ontologyId: string;\n ontologyType?: string;\n edgeType: string;\n weight?: number;\n confidence?: number;\n status?: OntologyLinkStatus | string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type OntologyLinkWriteInput = {\n topicId?: string;\n workspaceId?: string;\n sourceNodeId?: string;\n sourceGlobalId?: string;\n targetNodeId?: string;\n targetGlobalId?: string;\n ontologyId: string;\n ontologyType?: string;\n edgeType: string;\n weight?: number;\n confidence?: number;\n status?: OntologyLinkStatus;\n metadata?: JsonObject;\n};\n\nexport type ListOntologyLinksForNodeInput = {\n nodeId?: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n ontologyId?: string;\n ontologyType?: string;\n edgeType?: string;\n status?: OntologyLinkStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpdateOntologyLinkStatusInput = {\n linkId: string;\n status: OntologyLinkStatus;\n metadata?: JsonObject;\n};\n\nexport type OntologyLinksResponse = ListResult<OntologyLinkRecord, \"links\">;\n\nfunction assertEndpoints(input: OntologyLinkWriteInput) {\n if (!input.sourceNodeId && !input.sourceGlobalId) {\n throw new Error(\"sourceNodeId or sourceGlobalId is required\");\n }\n if (!input.targetNodeId && !input.targetGlobalId) {\n throw new Error(\"targetNodeId or targetGlobalId is required\");\n }\n}\n\nfunction normalizeLinkPayload(\n input: OntologyLinkWriteInput,\n operation: string\n) {\n assertEndpoints(input);\n cleanRequiredString(input.ontologyId, \"ontologyId\");\n cleanRequiredString(input.edgeType, \"edgeType\");\n return knownPayload(input as Record<string, unknown>, ONTOLOGY_LINK_FIELDS, operation);\n}\n\nexport function createOntologyLinksClient(\n config: OntologyLinksClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n createLink(input: OntologyLinkWriteInput, idempotencyKey?: string) {\n return gateway.request<OntologyLinkRecord>({\n path: \"/api/platform/v1/ontology-links\",\n method: \"POST\",\n body: normalizeLinkPayload(input, \"ontologyLinks.createLink\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n upsertLink(input: OntologyLinkWriteInput, idempotencyKey?: string) {\n return gateway.request<OntologyLinkRecord>({\n path: \"/api/platform/v1/ontology-links\",\n method: \"PUT\",\n body: normalizeLinkPayload(input, \"ontologyLinks.upsertLink\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listLinksForNode(input: ListOntologyLinksForNodeInput) {\n const nodeId = cleanOptionalString(input.nodeId);\n const globalId = cleanOptionalString(input.globalId);\n if (!nodeId && !globalId) {\n throw new Error(\"nodeId or globalId is required\");\n }\n const pathId = encodeURIComponent(nodeId ?? globalId ?? \"\");\n return gateway.request<OntologyLinksResponse>({\n path: `/api/platform/v1/ontology-links/nodes/${pathId}${toQueryString({\n topicId: input.topicId,\n workspaceId: input.workspaceId,\n globalId: nodeId ? undefined : globalId,\n ontologyId: input.ontologyId,\n ontologyType: input.ontologyType,\n edgeType: input.edgeType,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<OntologyLinkRecord, \"links\">(data, \"links\")\n )\n );\n },\n\n updateLinkStatus(\n input: UpdateOntologyLinkStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<OntologyLinkRecord>({\n path: `/api/platform/v1/ontology-links/${encodeURIComponent(\n input.linkId\n )}/status`,\n method: \"PATCH\",\n body: knownPayload(\n input as unknown as Record<string, unknown>,\n ONTOLOGY_LINK_FIELDS,\n \"ontologyLinks.updateLinkStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type OrgGraphSearchClientConfig = GatewayClientConfig;\n\nexport const ORG_GRAPH_SEARCH_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"query\",\n \"nodeTypes\",\n \"minConfidence\",\n \"limit\",\n \"cursor\",\n \"provenanceScope\",\n] as const;\n\nexport type OrgGraphProvenanceScope =\n | \"canonical\"\n | \"published\"\n | \"own_workspace\"\n | \"cross_workspace\";\n\nexport type OrgGraphVisibility =\n | \"private\"\n | \"workspace\"\n | \"tenant\"\n | \"public\";\n\nexport type OrgGraphSearchProvenance = {\n scope?: OrgGraphProvenanceScope | string;\n source?: string;\n sourceNodeId?: string;\n sourceWorkspaceId?: string;\n publishedAt?: number;\n publishedByPrincipalId?: string;\n metadata?: JsonObject | null;\n};\n\nexport type OrgGraphSearchResult = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n sourceWorkspaceId?: string;\n publishedAt?: number;\n publishedByPrincipalId?: string;\n visibility?: OrgGraphVisibility | string;\n confidence?: number | null;\n confidenceHistory?: Array<{\n confidence?: number;\n timestamp?: number;\n rationale?: string;\n trigger?: string;\n }>;\n provenance?: OrgGraphSearchProvenance;\n nodeType?: string;\n text?: string;\n title?: string;\n metadata?: JsonObject | null;\n};\n\nexport type OrgGraphSearchInput = {\n tenantId: string;\n workspaceId: string;\n query: string;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n provenanceScope?: OrgGraphProvenanceScope;\n};\n\nexport type GetOrgGraphNodeInput = {\n tenantId: string;\n workspaceId: string;\n nodeId?: string;\n globalId?: string;\n};\n\nexport type ListOrgGraphByProvenanceInput = {\n tenantId: string;\n workspaceId: string;\n provenanceScope: OrgGraphProvenanceScope;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListPublishedFromWorkspaceInput = {\n tenantId: string;\n workspaceId: string;\n sourceWorkspaceId?: string;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type OrgGraphSearchResponse = ListResult<\n OrgGraphSearchResult,\n \"results\"\n>;\n\nfunction cleanString(value: string | undefined, label: string) {\n const normalized = value?.trim();\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nfunction assertKnownSearchKeys(input: Record<string, unknown>, operation: string) {\n const allowed = new Set<string>(ORG_GRAPH_SEARCH_FIELDS);\n const unknownKeys = Object.keys(input).filter((key) => !allowed.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction searchBody(input: OrgGraphSearchInput): JsonObject {\n assertKnownSearchKeys(\n input as Record<string, unknown>,\n \"orgGraphSearch.search\"\n );\n return {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n query: cleanString(input.query, \"query\"),\n nodeTypes: input.nodeTypes,\n minConfidence: input.minConfidence,\n limit: input.limit,\n cursor: input.cursor,\n provenanceScope: input.provenanceScope,\n };\n}\n\nfunction listQuery(\n input: ListOrgGraphByProvenanceInput | ListPublishedFromWorkspaceInput\n) {\n return {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n nodeTypes: input.nodeTypes?.join(\",\"),\n minConfidence: input.minConfidence,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction mapResults(data: unknown): OrgGraphSearchResponse {\n const record = data && typeof data === \"object\" ? data : {};\n return createListResult(\n Array.isArray((record as { results?: unknown[] }).results)\n ? (record as { results: OrgGraphSearchResult[] }).results\n : Array.isArray(data)\n ? data\n : [],\n \"results\"\n );\n}\n\nexport function createOrgGraphSearchClient(\n config: OrgGraphSearchClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n search(input: OrgGraphSearchInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: \"/api/platform/v1/org-graph-search/search\",\n method: \"POST\",\n body: searchBody(input),\n }).then((response) => mapGatewayData(response, mapResults));\n },\n\n getNode(input: GetOrgGraphNodeInput) {\n const nodeId = input.nodeId?.trim();\n const globalId = input.globalId?.trim();\n if (!nodeId && !globalId) {\n throw new Error(\"nodeId or globalId is required\");\n }\n const nodePath = encodeURIComponent(nodeId ?? globalId ?? \"\");\n return gateway.request<OrgGraphSearchResult>({\n path: `/api/platform/v1/org-graph-search/nodes/${nodePath}${toQueryString(\n {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n globalId: nodeId ? undefined : globalId,\n }\n )}`,\n });\n },\n\n listByProvenance(input: ListOrgGraphByProvenanceInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: `/api/platform/v1/org-graph-search/provenance${toQueryString({\n ...listQuery(input),\n provenanceScope: input.provenanceScope,\n })}`,\n }).then((response) => mapGatewayData(response, mapResults));\n },\n\n listPublishedFromWorkspace(input: ListPublishedFromWorkspaceInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: `/api/platform/v1/org-graph-search/published${toQueryString({\n ...listQuery(input),\n sourceWorkspaceId: input.sourceWorkspaceId,\n })}`,\n }).then((response) => mapGatewayData(response, mapResults));\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 const client = {\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 * 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 * 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 * 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 * 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 return Object.assign(client, {\n getCatalog: client.listCatalog,\n getStates: client.listStates,\n getTelemetry: client.listTelemetry,\n updateEntitlement: client.createEntitlement,\n upsertEntitlement: client.createEntitlement,\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\nfunction buildFilterByPermissionResponse(\n permission: PermissionKind,\n allowedTopicIds: string[],\n deniedTopics: Array<{\n topicId: string;\n reasonCode: string;\n }>,\n count: number,\n): FilterByPermissionResponse {\n const result = {} as FilterByPermissionResponse;\n result.permission = permission;\n result.allowedTopicIds = allowedTopicIds;\n result.deniedTopics = deniedTopics;\n result.count = count;\n return result;\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 const result = {} as {\n success: true;\n data: FilterByPermissionResponse;\n };\n result.success = true;\n result.data = buildFilterByPermissionResponse(\n permission,\n allowedTopicIds,\n deniedTopics,\n typeof response.data?.count === \"number\"\n ? response.data.count\n : allowedTopicIds.length,\n );\n return result;\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { asListItems, 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 const listTemplates = async (args: { slug?: string } = {}) =>\n 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 rows = asListItems(data, \"templates\");\n return createListResult(rows, \"templates\") as ReportTemplatesResponse;\n })\n );\n\n const listReports = async (\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 const getReport = async (reportId: string) =>\n gateway.request<ReportWithSectionsResponse>({\n path: `/api/platform/v1/reports/${encodeURIComponent(reportId)}`,\n });\n\n return {\n /**\n * List report templates.\n */\n listTemplates,\n\n /**\n * @deprecated Use listTemplates.\n */\n getTemplates: listTemplates,\n\n /**\n * List reports for a topic scope.\n */\n listReports,\n\n /**\n * Get a generated report.\n */\n getReport,\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 const createEntitlement = (\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) =>\n gateway.request<unknown>({\n path: \"/api/platform/v1/schema/entitlements\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\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 createEntitlement,\n\n /**\n * Update a schema entitlement.\n */\n updateEntitlement: createEntitlement,\n\n /**\n * @deprecated Use createEntitlement or updateEntitlement.\n */\n upsertEntitlement: createEntitlement,\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TelemetryClientConfig = GatewayClientConfig;\n\nexport const TELEMETRY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"worktreeId\",\n \"eventLevel\",\n \"eventType\",\n \"message\",\n \"toolName\",\n \"toolCalls\",\n \"decision\",\n \"policySubject\",\n \"policyAction\",\n \"policyResource\",\n \"runId\",\n \"runType\",\n \"status\",\n \"durationMs\",\n \"error\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type TelemetryRunRecord = {\n runId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n runType?: string;\n status?: string;\n metadata?: JsonObject | null;\n startedAt?: number;\n finishedAt?: number;\n};\n\nexport type TelemetryScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n runType?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type LogSystemEventInput = TelemetryScope & {\n eventLevel: \"debug\" | \"info\" | \"warn\" | \"error\" | string;\n eventType: string;\n message: string;\n metadata?: JsonObject;\n};\n\nexport type LogToolCallsBatchInput = TelemetryScope & {\n toolCalls: Array<{\n toolName: string;\n status?: string;\n durationMs?: number;\n metadata?: JsonObject;\n }>;\n metadata?: JsonObject;\n};\n\nexport type RecordEpistemicAuditInput = TelemetryScope & {\n eventType: string;\n message?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordTelemetryPolicyDecisionInput = TelemetryScope & {\n policySubject?: string;\n policyAction?: string;\n policyResource?: string;\n decision: \"allow\" | \"deny\" | string;\n metadata?: JsonObject;\n};\n\nexport type StartTelemetryRunInput = TelemetryScope & {\n runId?: string;\n runType: string;\n metadata?: JsonObject;\n};\n\nexport type FinishTelemetryRunInput = TelemetryScope & {\n runId: string;\n status: string;\n durationMs?: number;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type TelemetryRunsResponse = ListResult<TelemetryRunRecord, \"runs\">;\n\nfunction query(input: TelemetryScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n worktreeId: input.worktreeId,\n runType: input.runType,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TELEMETRY_FIELDS, operation);\n}\n\nexport function createTelemetryClient(config: TelemetryClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n logSystemEvent(input: LogSystemEventInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n cleanRequiredString(input.message, \"message\");\n return gateway.request<{ eventId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/system-events\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.logSystemEvent\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n logToolCallsBatch(\n input: LogToolCallsBatchInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<{ recorded: number }>({\n path: \"/api/platform/v1/telemetry/tool-calls/batch\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.logToolCallsBatch\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordEpistemicAudit(\n input: RecordEpistemicAuditInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n return gateway.request<{ auditId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/epistemic-audits\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.recordEpistemicAudit\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordPolicyDecision(\n input: RecordTelemetryPolicyDecisionInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.decision, \"decision\");\n return gateway.request<{ decisionId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/policy-decisions\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.recordPolicyDecision\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n startRun(input: StartTelemetryRunInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runType, \"runType\");\n return gateway.request<TelemetryRunRecord>({\n path: \"/api/platform/v1/telemetry/runs/start\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.startRun\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n finishRun(input: FinishTelemetryRunInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runId, \"runId\");\n return gateway.request<TelemetryRunRecord>({\n path: `/api/platform/v1/telemetry/runs/${encodeURIComponent(\n input.runId\n )}/finish`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.finishRun\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listRuns(input: TelemetryScope) {\n return gateway.request<TelemetryRunsResponse>({\n path: `/api/platform/v1/telemetry/runs${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TelemetryRunRecord, \"runs\">(data, \"runs\")\n )\n );\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, JsonValue, ListResult } from \"./types\";\n\nexport type ToolRegistryClientConfig = GatewayClientConfig;\n\nexport const TOOL_REGISTRY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"toolName\",\n \"packKey\",\n \"packVersion\",\n \"status\",\n \"permissions\",\n \"role\",\n \"surface\",\n \"parameterSchema\",\n \"returnSchema\",\n \"handlerRef\",\n \"executionAdapter\",\n \"safetyMetadata\",\n \"aclId\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type ToolRegistryStatus =\n | \"enabled\"\n | \"disabled\"\n | \"deprecated\"\n | \"blocked\";\n\nexport type ToolCatalogEntry = {\n toolName: string;\n packKey?: string;\n packVersion?: string;\n status?: ToolRegistryStatus | string;\n permissions?: string[];\n role?: string;\n surface?: string;\n parameterSchema?: JsonObject | null;\n returnSchema?: JsonObject | null;\n handlerRef?: string;\n executionAdapter?: string;\n safetyMetadata?: JsonObject | null;\n metadata?: JsonObject | null;\n};\n\nexport type ToolAclRecord = {\n aclId?: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n toolName: string;\n packKey?: string;\n permissions?: string[];\n status?: ToolRegistryStatus | string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ToolRegistryQuery = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n packKey?: string;\n status?: ToolRegistryStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type EffectiveToolsSessionType = \"agent\" | \"user\";\n\nexport type EffectiveToolsQuery = ToolRegistryQuery & {\n callerRole?: string;\n surface?: string;\n sessionType?: EffectiveToolsSessionType;\n permittedToolNames?: string[];\n executableOnly?: boolean;\n};\n\nexport type UpsertCoreToolsInput = {\n tenantId: string;\n workspaceId?: string;\n tools: ToolCatalogEntry[];\n metadata?: JsonObject;\n};\n\nexport type SetPackToolsStatusInput = {\n tenantId: string;\n workspaceId?: string;\n packKey: string;\n status: ToolRegistryStatus;\n metadata?: JsonObject;\n};\n\nexport type CreateToolAclInput = {\n tenantId: string;\n workspaceId?: string;\n principalId: string;\n toolName: string;\n packKey?: string;\n permissions?: string[];\n status?: ToolRegistryStatus;\n metadata?: JsonObject;\n};\n\nexport type DeleteToolAclInput = {\n tenantId: string;\n workspaceId?: string;\n aclId: string;\n metadata?: JsonObject;\n};\n\nexport type RegisterCustomToolInput = {\n tenantId: string;\n workspaceId?: string;\n toolName: string;\n packKey?: string;\n parameterSchema?: JsonObject;\n returnSchema?: JsonObject;\n handlerRef?: string;\n executionAdapter?: string;\n safetyMetadata?: JsonObject;\n permissions?: string[];\n metadata?: JsonObject;\n};\n\nexport type ToolCatalogResponse = ListResult<ToolCatalogEntry, \"tools\">;\nexport type ToolAclResponse = ListResult<ToolAclRecord, \"acls\">;\n\nfunction query(input: ToolRegistryQuery) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n packKey: input.packKey,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction effectiveToolsQuery(input: EffectiveToolsQuery) {\n return {\n ...query(input),\n callerRole: input.callerRole,\n surface: input.surface,\n sessionType: input.sessionType,\n permittedToolNames: input.permittedToolNames\n ? JSON.stringify(input.permittedToolNames)\n : undefined,\n executableOnly: input.executableOnly,\n };\n}\n\nfunction writeBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TOOL_REGISTRY_FIELDS, operation);\n}\n\nexport function createToolRegistryClient(\n config: ToolRegistryClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listCatalog(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/catalog${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n listExecutable(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/executable${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n listEffectiveTools(input: EffectiveToolsQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/effective${toQueryString(\n effectiveToolsQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n upsertCoreTools(input: UpsertCoreToolsInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<ToolCatalogResponse>({\n path: \"/api/platform/v1/tools/core\",\n method: \"PUT\",\n body: {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n metadata: input.metadata,\n tools: input.tools as unknown as JsonValue,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n setPackToolsStatus(\n input: SetPackToolsStatusInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.packKey, \"packKey\");\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/packs/${encodeURIComponent(\n input.packKey\n )}/status`,\n method: \"PATCH\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.setPackToolsStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n createAcl(input: CreateToolAclInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.principalId, \"principalId\");\n cleanRequiredString(input.toolName, \"toolName\");\n return gateway.request<ToolAclRecord>({\n path: \"/api/platform/v1/tools/acls\",\n method: \"POST\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.createAcl\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n deleteAcl(input: DeleteToolAclInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.aclId, \"aclId\");\n return gateway.request<{ aclId: string; deleted: boolean }>({\n path: `/api/platform/v1/tools/acls/${encodeURIComponent(input.aclId)}`,\n method: \"DELETE\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.deleteAcl\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n registerCustomTool(\n input: RegisterCustomToolInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.toolName, \"toolName\");\n return gateway.request<ToolCatalogEntry>({\n path: \"/api/platform/v1/tools/custom\",\n method: \"POST\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.registerCustomTool\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","/** Current SDK package version. */\nexport const LUCERN_SDK_VERSION = \"1.0.10\";\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 topicHint?: string;\n branchId?: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n worktreeType?: string;\n startDate?: number;\n endDate?: number;\n durationWeeks?: number;\n confidenceImpact?: \"high\" | \"medium\" | \"low\";\n beliefFocus?: string;\n beliefIds?: string[];\n targetBeliefIds?: string[];\n targetQuestionIds?: string[];\n keyQuestions?: Array<{\n question: string;\n status?: \"open\" | \"answered\" | \"forked\";\n answer?: string;\n answerConfidence?: \"high\" | \"medium\" | \"low\";\n linkedQuestionId?: string;\n }>;\n evidenceSignals?: Array<{\n signal: string;\n collected?: boolean;\n progress?: string;\n notes?: string;\n }>;\n decisionGate?: {\n goCriteria: string[];\n noGoSignals: string[];\n verdict?: \"go\" | \"no_go\" | \"pivot\" | \"pending\";\n verdictRationale?: string;\n decidedAt?: number;\n decidedBy?: string;\n };\n goCriteria?: string[];\n noGoSignals?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n tags?: string[];\n touchedPaths?: string[];\n sourceRef?: string;\n sourceKind?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: WorkflowProofArtifact[];\n staffingHint?: WorkflowStaffingHint | string;\n lastReconciledAt?: number;\n autoFixPolicy?: WorkflowAutoFixPolicy;\n lensId?: string;\n} & TopicIdentifierInput;\n\nexport type WorkflowMergeInputOutcome =\n | string\n | {\n beliefId: string;\n confidence: number;\n rationale: string;\n };\n\n/** Input for merging worktree findings with optional belief confidence outcomes. */\nexport type MergeInput = {\n outcomes: WorkflowMergeInputOutcome[];\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 assigneeId?: string;\n blockedReason?: string;\n};\n\nfunction normalizeLensQuery<T extends { topicId?: string }>(\n value: T\n) {\n const topicId = resolveTopicId(value);\n return {\n ...value,\n ...(topicId ? { topicId } : {}),\n };\n}\n\n/**\n * Create the workflow client for lenses, legacy branches, worktrees, context,\n * and tasks.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage branches, lenses, worktrees, topics, and tasks.\n */\nexport function createWorkflowClient(config: WorkflowClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const client = {\n /**\n * List workflow branches for a topic scope.\n */\n async listBranches(query: {\n topicId?: string;\n status?: WorkflowBranchStatus;\n limit?: number;\n } & TopicIdentifierInput) {\n return gateway.request<ListBranchesResponse>({\n path: `/api/platform/v1/workflow/branches${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowBranchRecord, \"branches\">(data, \"branches\")\n )\n );\n },\n\n /**\n * Create a workflow branch.\n */\n async createBranch(\n input: {\n name: string;\n topicId?: string;\n description?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBranchResponse>({\n path: \"/api/platform/v1/workflow/branches\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateBranchResponse\n )\n );\n },\n\n /**\n * List reusable lenses for a workspace or topic scope.\n */\n async listLenses(query: {\n workspaceId?: string;\n topicId?: string;\n status?: WorkflowLensStatus;\n perspectiveType?: WorkflowLensPerspectiveType;\n } & TopicIdentifierInput) {\n return gateway.request<ListLensesResponse>({\n path: `/api/platform/v1/workflow/lenses${toQueryString(\n normalizeLensQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowLensRecord, \"lenses\">(data, \"lenses\")\n )\n );\n },\n\n /**\n * Create a reusable workflow lens.\n */\n async createLens(\n input: {\n name: string;\n workspaceId?: string;\n topicId?: string;\n description?: string;\n perspectiveType: WorkflowLensPerspectiveType;\n promptTemplates?: LensPromptTemplateReference[];\n workflowTemplates?: LensWorkflowTemplate[];\n taskTemplates?: LensTaskTemplate[];\n filterCriteria?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<CreateLensResponse>({\n path: \"/api/platform/v1/workflow/lenses\",\n method: \"POST\",\n body: payload as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateLensResponse\n )\n );\n },\n\n /**\n * Apply an existing lens to a topic.\n */\n async applyLensToTopic(\n input: {\n lensId: string;\n topicId?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<LensTopicBindingResponse>({\n path: \"/api/platform/v1/workflow/lens-bindings\",\n method: \"POST\",\n body: payload,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * Remove an applied lens from a topic.\n */\n async removeLensFromTopic(\n input: {\n lensId: string;\n topicId?: string;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const topicId = resolveTopicId(input);\n if (!topicId) {\n throw new LucernApiError({\n code: \"INVALID_REQUEST\",\n message: \"topicId is required\",\n status: 400,\n });\n }\n\n return gateway.request<LensTopicBindingResponse>({\n path: `/api/platform/v1/workflow/lens-bindings${toQueryString({\n lensId: input.lensId,\n topicId,\n })}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * List worktrees for a topic scope.\n */\n async listWorktrees(query: {\n topicId?: string;\n branchId?: string;\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } & TopicIdentifierInput) {\n const normalized = normalizeTopicQuery(query);\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees${toQueryString({\n ...normalized,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n )\n )\n );\n },\n\n /**\n * List all worktrees across accessible topics.\n */\n async listAllWorktrees(query: {\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } = {}) {\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees/all${toQueryString({\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\" && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {};\n const list = mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n );\n return {\n ...list,\n ...(record.lanes &&\n typeof record.lanes === \"object\" &&\n !Array.isArray(record.lanes)\n ? { lanes: record.lanes as Record<string, number> }\n : {}),\n ...(record.campaigns &&\n typeof record.campaigns === \"object\" &&\n !Array.isArray(record.campaigns)\n ? { campaigns: record.campaigns as Record<string, number> }\n : {}),\n } as ListWorktreesResponse;\n })\n );\n },\n\n /**\n * List compact pipeline campaigns with nested lanes.\n */\n async listCampaigns(query: {\n topicId?: string;\n status?: WorkflowWorktreeStatus;\n limit?: number;\n } & TopicIdentifierInput = {}) {\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * Create a workflow worktree.\n */\n async createWorktree(input: AddWorktreeInput, idempotencyKey?: string) {\n return gateway.request<AddWorktreeResponse>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * 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\n return Object.assign(client, {\n addWorktree: client.createWorktree,\n createPillar: client.createBranch,\n createSprint: client.createWorktree,\n completeSprint: client.merge,\n requestReview: client.openPullRequest,\n publishFindings: client.push,\n });\n}\n","import { type AdminClientConfig, createAdminClient } from \"./adminClient\";\nimport { createAccessControlClient } from \"./accessControl\";\nimport { type AnswersClientConfig, createAnswersClient } from \"./answersClient\";\nimport {\n type AudiencesClientConfig,\n createAudiencesClient,\n} from \"./audiencesClient\";\nimport { type AuditClientConfig, createAuditClient } from \"./auditClient\";\nimport { createAuthDeviceClient } from \"./authDeviceClient\";\nimport {\n type BeliefsClientConfig,\n createBeliefsClient,\n} from \"./beliefsClient\";\nimport { createClientGraphNamespaces } from \"./clientGraphNamespaces\";\nimport { createClientKnowledgeNamespaces } from \"./clientKnowledgeNamespaces\";\nimport { createClientLocalHelpers } from \"./clientLocalHelpers\";\nimport { createClientPlatformNamespaces } from \"./clientPlatformNamespaces\";\nimport { createClientWorkflowNamespaces } from \"./clientWorkflowNamespaces\";\nimport type { CustomToolNamespace, LucernClientConfig } from \"./clientConfig\";\nimport { exposeGatewayData, toGatewayConfig } from \"./clientRuntime\";\nimport { type SourcesClientConfig, createSourcesClient } from \"./sourcesClient\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport {\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n sdkQueryString,\n} from \"./clientHelpers\";\nimport {\n createControlPlaneClient,\n type ControlPlaneIdentityClientConfig,\n} from \"./control-plane\";\nimport {\n clearRegisteredCustomTools,\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} from \"./decisionsClient\";\nimport {\n createEmbeddingsClient,\n type EmbeddingsClientConfig,\n} from \"./embeddingsClient\";\nimport {\n createContextClient,\n type ContextClientConfig,\n} from \"./contextClient\";\nimport {\n createEventingClient,\n type EventingClientConfig,\n} from \"./eventingClient\";\nimport { createEvidenceClient, type EvidenceClientConfig } from \"./evidenceClient\";\nimport {\n createFunctionSurfaceClient,\n type FunctionSurfaceClientConfig,\n} from \"./generated/functionSurface\";\nimport {\n createGraphAnalysisClient,\n type GraphAnalysisClientConfig,\n} from \"./graphAnalysisClient\";\nimport { createGraphClient, type GraphClientConfig } from \"./graphClient\";\nimport {\n createGraphRecommendationsClient,\n type GraphRecommendationsClientConfig,\n} from \"./graphRecommendationsClient\";\nimport {\n createGraphStateClassifierClient,\n type GraphStateClassifierClientConfig,\n} from \"./graphStateClassifierClient\";\nimport { createHarnessClient, type HarnessClientConfig } from \"./harnessClient\";\nimport {\n createIdentityClient,\n type IdentityClientConfig,\n} from \"./identityClient\";\nimport { createJobsClient, type JobsClientConfig } from \"./jobsClient\";\nimport {\n createLearningClient,\n type LearningClientConfig,\n} from \"./learningClient\";\nimport { createMcpClient } from \"./mcpClient\";\nimport {\n createModelRuntimeClient,\n type ModelRuntimeClientConfig,\n} from \"./modelRuntimeClient\";\nimport {\n createOntologyClient,\n type OntologyClientConfig,\n} from \"./ontologyClient\";\nimport {\n createOntologyLinksClient,\n type OntologyLinksClientConfig,\n} from \"./ontologyLinksClient\";\nimport {\n createOrgGraphSearchClient,\n type OrgGraphSearchClientConfig,\n} from \"./orgGraphSearchClient\";\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 { resolveTopicId } from \"./sdkSurface\";\nimport {\n createTelemetryClient,\n type TelemetryClientConfig,\n} from \"./telemetryClient\";\nimport { createTopicsClient, type TopicsClientConfig } from \"./topicsClient\";\nimport {\n createToolRegistryClient,\n type ToolRegistryClientConfig,\n} from \"./toolRegistryClient\";\nimport { LUCERN_SDK_VERSION } from \"./version\";\nimport {\n createWorkflowClient,\n type WorkflowClientConfig,\n} from \"./workflowClient\";\n\nexport type { LucernClientConfig } from \"./clientConfig\";\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 embeddingsClient = createEmbeddingsClient(gatewayConfig);\n const eventingClient = createEventingClient(gatewayConfig);\n const graphClient = createGraphClient(gatewayConfig);\n const graphAnalysisClient = createGraphAnalysisClient(gatewayConfig);\n const graphRecommendationsClient =\n createGraphRecommendationsClient(gatewayConfig);\n const graphStateClassifierClient =\n createGraphStateClassifierClient(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 authDeviceClient = createAuthDeviceClient(gatewayConfig);\n const adminClient = createAdminClient(gatewayConfig);\n const accessControlClient = createAccessControlClient(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 ontologyLinksClient = createOntologyLinksClient(gatewayConfig);\n const orgGraphSearchClient = createOrgGraphSearchClient(gatewayConfig);\n const functionSurfaceClient = createFunctionSurfaceClient(gatewayConfig);\n const controlPlaneClient = createControlPlaneClient(gatewayConfig);\n const toolRegistryClient = createToolRegistryClient(gatewayConfig);\n const modelRuntimeClient = createModelRuntimeClient(gatewayConfig);\n const packsClient = createPacksClient(gatewayConfig);\n const reportsClient = createReportsClient(gatewayConfig);\n const learningClient = createLearningClient(gatewayConfig);\n const mcpClient = createMcpClient(gatewayConfig);\n const jobsClient = createJobsClient(gatewayConfig);\n const telemetryClient = createTelemetryClient(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 let packInstalled = !config.packKey;\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 (err instanceof LucernApiError && err.code === \"ALREADY_EXISTS\") {\n packInstalled = true;\n return;\n }\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 localHelpers = createClientLocalHelpers({\n auditClient,\n beliefsFacade,\n customNamespaceCache,\n evidenceFacade,\n exposeGatewayData,\n functionSurfaceClient,\n gateway,\n graphClient,\n graphFacade,\n ontologyClient,\n ontologyLinksClient,\n searchFacade,\n } as any);\n\n const namespaceContext = {\n ...localHelpers,\n accessControlClient,\n adminClient,\n answersClient,\n auditClient,\n authDeviceClient,\n audiencesClient,\n beliefsClient,\n beliefsFacade,\n buildBeliefsArchivePayload,\n buildBeliefsRefinePayload,\n clearRegisteredCustomTools,\n config,\n contextClient,\n contradictionsFacade,\n controlPlaneClient,\n decisionsClient,\n edgesFacade,\n embeddingsClient,\n ensurePack,\n eventingClient,\n eventsFacade,\n evidenceClient,\n evidenceFacade,\n exposeGatewayData,\n functionSurfaceClient,\n gateway,\n getPackInstalled: () => packInstalled,\n graphAnalysisClient,\n graphClient,\n graphFacade,\n graphRecommendationsClient,\n graphStateClassifierClient,\n harnessClient,\n identityClient,\n identityFacade,\n jobsClient,\n learningClient,\n listRegisteredCustomTools,\n mcpClient,\n modelRuntimeClient,\n ontologyClient,\n ontologyLinksClient,\n ontologiesFacade,\n orgGraphSearchClient,\n packsClient,\n policyClient,\n questionsFacade,\n randomIdempotencyKey,\n registerCustomTool,\n reportsClient,\n requireBaseRate,\n requireText,\n requireTopicId,\n requireTopicOrProjectId,\n resolveCustomToolFullName,\n resolveTopicId,\n schemaClient,\n sdkQueryString,\n sourcesClient,\n tasksFacade,\n telemetryClient,\n toolRegistryClient,\n topicsClient,\n topicsFacade,\n unregisterCustomTool,\n webhooksFacade,\n workflowClient,\n worktreesFacade,\n };\n\n return {\n config,\n version: LUCERN_SDK_VERSION,\n search: localHelpers.searchResources,\n ...createClientKnowledgeNamespaces(namespaceContext as any),\n ...createClientGraphNamespaces(namespaceContext as any),\n ...createClientWorkflowNamespaces(namespaceContext as any),\n ...createClientPlatformNamespaces(namespaceContext as any),\n };\n}\n","import { createLucernClient, type LucernClientConfig } from \"../client\";\n\nexport * as graphContracts from \"@lucern/contracts/graph/v1\";\nexport * as methodSchemas from \"@lucern/contracts/sdk-methods.contract\";\n\nexport type NodesClientConfig = LucernClientConfig;\nexport type NodesClient = ReturnType<typeof createNodesClient>;\n\nexport function createNodesClient(config: NodesClientConfig = {}) {\n const nodes = createLucernClient(config).nodes;\n\n return {\n createNode: nodes.create,\n getNode: nodes.get,\n listNodes: nodes.list,\n updateNode: nodes.update,\n batchCreateNodes: nodes.batchCreate,\n supersedeNode: nodes.supersede,\n verifyNode: nodes.verify,\n hardDeleteNode: nodes.hardDelete,\n raw: nodes,\n };\n}\n"]}
|