@lucern/sdk 1.0.11 → 1.0.12
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 +3 -0
- package/dist/.generated +2 -0
- package/dist/accessControl.d.ts +19 -26
- package/dist/accessControl.js +195 -1423
- package/dist/adminClient.d.ts +52 -59
- package/dist/adminClient.js +364 -1142
- package/dist/answersClient.d.ts +5 -14
- package/dist/answersClient.js +19 -737
- package/dist/audience/index.d.ts +18 -18
- package/dist/audience/index.js +87 -90
- package/dist/audiencesClient.d.ts +19 -27
- package/dist/audiencesClient.js +107 -868
- package/dist/auditClient.d.ts +8 -15
- package/dist/auditClient.js +18 -791
- package/dist/authContext.d.ts +11 -16
- package/dist/authContext.js +122 -154
- package/dist/authDeviceClient.d.ts +8 -17
- package/dist/authDeviceClient.js +113 -102
- package/dist/beliefs/index.d.ts +15 -67
- package/dist/beliefs/index.js +17 -10181
- package/dist/beliefs/lifecycle.d.ts +10 -11
- package/dist/beliefs/lifecycle.js +78 -80
- package/dist/beliefsClient.d.ts +26 -32
- package/dist/beliefsClient.js +250 -990
- package/dist/boundaryClientSurface.d.ts +11 -16
- package/dist/boundaryClientSurface.js +49 -68
- package/dist/client.d.ts +64 -112
- package/dist/client.js +232 -10155
- package/dist/clientAssemblyTypes.d.ts +3 -3
- package/dist/clientAssemblyTypes.js +1 -2
- package/dist/clientConfig.d.ts +45 -59
- package/dist/clientConfig.js +1 -2
- package/dist/clientEvidenceCompat.d.ts +7 -14
- package/dist/clientEvidenceCompat.js +50 -64
- package/dist/clientGraphNamespaces.d.ts +3 -5
- package/dist/clientGraphNamespaces.js +170 -245
- package/dist/clientHelpers.d.ts +20 -25
- package/dist/clientHelpers.js +104 -127
- package/dist/clientKnowledgeNamespaces.d.ts +6 -53
- package/dist/clientKnowledgeNamespaces.js +502 -506
- package/dist/clientLocalHelpers.d.ts +11 -56
- package/dist/clientLocalHelpers.js +503 -732
- package/dist/clientPlatformNamespaces.d.ts +5 -53
- package/dist/clientPlatformNamespaces.js +229 -323
- package/dist/clientRuntime.d.ts +5 -53
- package/dist/clientRuntime.js +26 -30
- package/dist/clientWorkflowNamespaces.d.ts +6 -15
- package/dist/clientWorkflowNamespaces.js +529 -596
- package/dist/contextClient.d.ts +9 -17
- package/dist/contextClient.js +92 -805
- package/dist/contextFacade.d.ts +11 -2
- package/dist/contextFacade.js +10 -81
- package/dist/contextPackCompiler.d.ts +10 -11
- package/dist/contextPackCompiler.js +494 -1040
- package/dist/contextPackPolicy.d.ts +14 -15
- package/dist/contextPackPolicy.js +227 -305
- package/dist/contextPackSchema.d.ts +3 -3
- package/dist/contextPackSchema.js +169 -176
- package/dist/contextTypes.d.ts +14 -15
- package/dist/contextTypes.js +1 -2
- package/dist/contracts/api-enums.contract.d.ts +29 -30
- package/dist/contracts/api-enums.contract.js +162 -88
- package/dist/contracts/auth-session.contract.d.ts +13 -14
- package/dist/contracts/auth-session.contract.js +55 -52
- package/dist/contracts/context-pack.contract.d.ts +54 -55
- package/dist/contracts/context-pack.contract.js +160 -88
- package/dist/contracts/contextPack.d.ts +2 -1
- package/dist/contracts/contextPack.js +1 -97
- package/dist/contracts/index.d.ts +11 -12
- package/dist/contracts/index.js +10 -854
- package/dist/contracts/lens-filter.contract.d.ts +9 -10
- package/dist/contracts/lens-filter.contract.js +82 -58
- package/dist/contracts/lens-workflow.contract.d.ts +21 -23
- package/dist/contracts/lens-workflow.contract.js +48 -117
- package/dist/contracts/lensFilter.d.ts +2 -1
- package/dist/contracts/lensFilter.js +1 -71
- package/dist/contracts/lensWorkflow.d.ts +2 -2
- package/dist/contracts/lensWorkflow.js +1 -123
- package/dist/contracts/mcpTools.d.ts +16 -18
- package/dist/contracts/mcpTools.js +89 -123
- package/dist/contracts/prompt.contract.d.ts +4 -5
- package/dist/contracts/prompt.contract.js +23 -10
- package/dist/contracts/prompt.d.ts +2 -1
- package/dist/contracts/prompt.js +1 -11
- package/dist/contracts/sdk-tools.contract.d.ts +2 -1
- package/dist/contracts/sdk-tools.contract.js +1 -2
- package/dist/contracts/sdkTools.d.ts +2 -1
- package/dist/contracts/sdkTools.js +1 -26
- package/dist/contracts/tool-contracts.d.ts +2 -1
- package/dist/contracts/tool-contracts.js +1 -2
- package/dist/contracts/workflow-runtime.contract.d.ts +45 -46
- package/dist/contracts/workflow-runtime.contract.js +241 -228
- package/dist/contracts/workflowRuntime.d.ts +2 -1
- package/dist/contracts/workflowRuntime.js +1 -244
- package/dist/contradictions/index.d.ts +8 -60
- package/dist/contradictions/index.js +11 -10175
- package/dist/control-plane.d.ts +17 -24
- package/dist/control-plane.js +124 -840
- package/dist/controlObjectOwnership.d.ts +19 -20
- package/dist/controlObjectOwnership.js +207 -201
- package/dist/coreClient.d.ts +23 -28
- package/dist/coreClient.js +567 -692
- package/dist/customTools.d.ts +17 -21
- package/dist/customTools.js +221 -221
- package/dist/decisions/index.d.ts +7 -58
- package/dist/decisions/index.js +14 -10177
- package/dist/decisionsClient.d.ts +25 -32
- package/dist/decisionsClient.js +113 -913
- package/dist/domainContext.d.ts +2 -1
- package/dist/domainContext.js +1 -2
- package/dist/edges/index.d.ts +21 -73
- package/dist/edges/index.js +12 -10176
- package/dist/embeddingsClient.d.ts +22 -30
- package/dist/embeddingsClient.js +73 -922
- package/dist/eventingClient.d.ts +23 -31
- package/dist/eventingClient.js +89 -918
- package/dist/events.d.ts +48 -49
- package/dist/events.js +257 -241
- package/dist/eventsCore.d.ts +20 -29
- package/dist/eventsCore.js +86 -830
- package/dist/evidence/index.d.ts +9 -60
- package/dist/evidence/index.js +13 -10176
- package/dist/evidenceClient.d.ts +13 -22
- package/dist/evidenceClient.js +34 -751
- package/dist/facade/context.d.ts +7 -8
- package/dist/facade/context.js +73 -72
- package/dist/functionSurface.d.ts +2 -156
- package/dist/functionSurface.js +1 -1460
- package/dist/functionSurfaceClient.d.ts +2 -9
- package/dist/functionSurfaceClient.js +1 -1460
- package/dist/gatewayFacades.d.ts +79 -296
- package/dist/gatewayFacades.factories.d.ts +209 -14
- package/dist/gatewayFacades.factories.js +561 -2227
- package/dist/gatewayFacades.js +284 -2627
- package/dist/generated/functionSurface.d.ts +149 -0
- package/dist/generated/functionSurface.js +749 -0
- package/dist/graphAnalysisClient.d.ts +41 -49
- package/dist/graphAnalysisClient.js +185 -974
- package/dist/graphClient.d.ts +53 -60
- package/dist/graphClient.js +219 -1090
- package/dist/graphIntel.d.ts +2 -4
- package/dist/graphIntel.js +1 -2
- package/dist/graphIntelligence.d.ts +4 -2
- package/dist/graphIntelligence.js +2 -46
- package/dist/graphRecommendationsClient.d.ts +15 -23
- package/dist/graphRecommendationsClient.js +70 -849
- package/dist/graphStateClassifierClient.d.ts +17 -25
- package/dist/graphStateClassifierClient.js +67 -908
- package/dist/harnessClient.d.ts +40 -47
- package/dist/harnessClient.js +198 -993
- package/dist/identityClient.d.ts +25 -33
- package/dist/identityClient.js +245 -1186
- package/dist/index.d.ts +73 -69
- package/dist/index.js +72 -13313
- package/dist/infisicalRuntime.d.ts +12 -14
- package/dist/infisicalRuntime.js +290 -297
- package/dist/jobsClient.d.ts +24 -32
- package/dist/jobsClient.js +101 -916
- package/dist/learningClient.d.ts +8 -16
- package/dist/learningClient.js +45 -809
- package/dist/lenses/index.d.ts +13 -65
- package/dist/lenses/index.js +11 -10175
- package/dist/mcpClient.d.ts +14 -23
- package/dist/mcpClient.js +115 -856
- package/dist/modelRuntimeClient.d.ts +18 -26
- package/dist/modelRuntimeClient.js +74 -894
- package/dist/nodes/index.d.ts +7 -58
- package/dist/nodes/index.js +14 -10177
- package/dist/ontologies/index.d.ts +21 -73
- package/dist/ontologies/index.js +14 -10178
- package/dist/ontologyClient.d.ts +23 -31
- package/dist/ontologyClient.js +138 -924
- package/dist/ontologyLinksClient.d.ts +16 -24
- package/dist/ontologyLinksClient.js +76 -886
- package/dist/opinion.d.ts +5 -6
- package/dist/opinion.js +21 -25
- package/dist/orgGraphSearchClient.d.ts +19 -27
- package/dist/orgGraphSearchClient.js +89 -857
- package/dist/packRuntime.d.ts +2 -2
- package/dist/packRuntime.js +1 -2
- package/dist/packsClient.d.ts +30 -37
- package/dist/packsClient.js +131 -906
- package/dist/policyClient.d.ts +21 -29
- package/dist/policyClient.js +267 -1026
- package/dist/proof-attestation.json +1 -1
- package/dist/questions/index.d.ts +9 -60
- package/dist/questions/index.js +15 -10178
- package/dist/realtime/index.d.ts +20 -16
- package/dist/realtime/index.js +30 -19
- package/dist/realtime/refs.d.ts +4 -6
- package/dist/realtime/refs.js +12 -7
- package/dist/realtime-refs.d.ts +1 -0
- package/dist/realtime-refs.js +1 -0
- package/dist/realtime.d.ts +1 -0
- package/dist/realtime.js +1 -0
- package/dist/reportsClient.d.ts +10 -19
- package/dist/reportsClient.js +48 -836
- package/dist/schemaClient.d.ts +16 -23
- package/dist/schemaClient.js +62 -832
- package/dist/sdkSurface.d.ts +18 -25
- package/dist/sdkSurface.js +135 -106
- package/dist/secrets.d.ts +2 -1
- package/dist/secrets.js +1 -2
- package/dist/sourcesClient.d.ts +11 -18
- package/dist/sourcesClient.js +18 -741
- package/dist/telemetryClient.d.ts +22 -30
- package/dist/telemetryClient.js +107 -931
- package/dist/toolRegistryClient.d.ts +27 -35
- package/dist/toolRegistryClient.js +116 -954
- package/dist/topics/index.d.ts +13 -64
- package/dist/topics/index.js +15 -10178
- package/dist/topicsClient.d.ts +19 -27
- package/dist/topicsClient.js +106 -894
- package/dist/types.d.ts +84 -87
- package/dist/types.js +1 -2
- package/dist/version.d.ts +2 -3
- package/dist/version.js +2 -5
- package/dist/workflowClient.d.ts +60 -65
- package/dist/workflowClient.js +343 -1219
- package/dist/worktrees/index.d.ts +16 -68
- package/dist/worktrees/index.js +14 -10178
- package/package.json +6 -6
- package/dist/accessControl.js.map +0 -1
- package/dist/adminClient.js.map +0 -1
- package/dist/answersClient.js.map +0 -1
- package/dist/audience/index.js.map +0 -1
- package/dist/audiencesClient.js.map +0 -1
- package/dist/auditClient.js.map +0 -1
- package/dist/authContext.js.map +0 -1
- package/dist/authDeviceClient.js.map +0 -1
- package/dist/beliefs/index.js.map +0 -1
- package/dist/beliefs/lifecycle.js.map +0 -1
- package/dist/beliefsClient.js.map +0 -1
- package/dist/boundaryClientSurface.js.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/clientAssemblyTypes.js.map +0 -1
- package/dist/clientConfig.js.map +0 -1
- package/dist/clientEvidenceCompat.js.map +0 -1
- package/dist/clientGraphNamespaces.js.map +0 -1
- package/dist/clientHelpers.js.map +0 -1
- package/dist/clientKnowledgeNamespaces.js.map +0 -1
- package/dist/clientLocalHelpers.js.map +0 -1
- package/dist/clientPlatformNamespaces.js.map +0 -1
- package/dist/clientRuntime.js.map +0 -1
- package/dist/clientWorkflowNamespaces.js.map +0 -1
- package/dist/contextClient.js.map +0 -1
- package/dist/contextFacade.js.map +0 -1
- package/dist/contextPackCompiler.js.map +0 -1
- package/dist/contextPackPolicy.js.map +0 -1
- package/dist/contextPackSchema.js.map +0 -1
- package/dist/contextTypes.js.map +0 -1
- package/dist/contracts/api-enums.contract.js.map +0 -1
- package/dist/contracts/auth-session.contract.js.map +0 -1
- package/dist/contracts/context-pack.contract.js.map +0 -1
- package/dist/contracts/contextPack.js.map +0 -1
- package/dist/contracts/index.js.map +0 -1
- package/dist/contracts/lens-filter.contract.js.map +0 -1
- package/dist/contracts/lens-workflow.contract.js.map +0 -1
- package/dist/contracts/lensFilter.js.map +0 -1
- package/dist/contracts/lensWorkflow.js.map +0 -1
- package/dist/contracts/mcpTools.js.map +0 -1
- package/dist/contracts/prompt.contract.js.map +0 -1
- package/dist/contracts/prompt.js.map +0 -1
- package/dist/contracts/sdk-tools.contract.js.map +0 -1
- package/dist/contracts/sdkTools.js.map +0 -1
- package/dist/contracts/tool-contracts.js.map +0 -1
- package/dist/contracts/workflow-runtime.contract.js.map +0 -1
- package/dist/contracts/workflowRuntime.js.map +0 -1
- package/dist/contradictions/index.js.map +0 -1
- package/dist/control-plane.js.map +0 -1
- package/dist/controlObjectOwnership.js.map +0 -1
- package/dist/coreClient.js.map +0 -1
- package/dist/customTools.js.map +0 -1
- package/dist/decisions/index.js.map +0 -1
- package/dist/decisionsClient.js.map +0 -1
- package/dist/domainContext.js.map +0 -1
- package/dist/edges/index.js.map +0 -1
- package/dist/embeddingsClient.js.map +0 -1
- package/dist/eventingClient.js.map +0 -1
- package/dist/events.js.map +0 -1
- package/dist/eventsCore.js.map +0 -1
- package/dist/evidence/index.js.map +0 -1
- package/dist/evidenceClient.js.map +0 -1
- package/dist/facade/context.js.map +0 -1
- package/dist/functionSurface.js.map +0 -1
- package/dist/functionSurfaceClient.js.map +0 -1
- package/dist/gatewayFacades.factories.js.map +0 -1
- package/dist/gatewayFacades.js.map +0 -1
- package/dist/graphAnalysisClient.js.map +0 -1
- package/dist/graphClient.js.map +0 -1
- package/dist/graphIntel.js.map +0 -1
- package/dist/graphIntelligence.js.map +0 -1
- package/dist/graphRecommendationsClient.js.map +0 -1
- package/dist/graphStateClassifierClient.js.map +0 -1
- package/dist/harnessClient.js.map +0 -1
- package/dist/identityClient.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/infisicalRuntime.js.map +0 -1
- package/dist/jobsClient.js.map +0 -1
- package/dist/learningClient.js.map +0 -1
- package/dist/lenses/index.js.map +0 -1
- package/dist/mcpClient.js.map +0 -1
- package/dist/modelRuntimeClient.js.map +0 -1
- package/dist/nodes/index.js.map +0 -1
- package/dist/ontologies/index.js.map +0 -1
- package/dist/ontologyClient.js.map +0 -1
- package/dist/ontologyLinksClient.js.map +0 -1
- package/dist/opinion.js.map +0 -1
- package/dist/orgGraphSearchClient.js.map +0 -1
- package/dist/packRuntime.js.map +0 -1
- package/dist/packsClient.js.map +0 -1
- package/dist/policyClient.js.map +0 -1
- package/dist/questions/index.js.map +0 -1
- package/dist/realtime/index.js.map +0 -1
- package/dist/realtime/refs.js.map +0 -1
- package/dist/reportsClient.js.map +0 -1
- package/dist/schemaClient.js.map +0 -1
- package/dist/sdk-tools.contract-B4c1Zr1o.d.ts +0 -22
- package/dist/sdkSurface.js.map +0 -1
- package/dist/secrets.js.map +0 -1
- package/dist/sourcesClient.js.map +0 -1
- package/dist/telemetryClient.js.map +0 -1
- package/dist/tool-contracts-BUiL9P6z.d.ts +0 -22
- package/dist/toolRegistryClient.js.map +0 -1
- package/dist/topics/index.js.map +0 -1
- package/dist/topicsClient.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/version.js.map +0 -1
- package/dist/workflowClient.js.map +0 -1
- package/dist/worktrees/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/clientWorkflowNamespaces.ts"],"names":[],"mappings":"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","file":"clientWorkflowNamespaces.js","sourcesContent":["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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/authContext.ts","../src/coreClient.ts","../src/contextClient.ts"],"names":["responseContext","cleanString"],"mappings":"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","file":"contextClient.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 {\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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/facade/context.ts"],"names":[],"mappings":"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","file":"contextFacade.js","sourcesContent":["import type { CompileContextInput, PublicCompiledContext } from \"../contextTypes\";\n\nexport type ContextClientRequest = {\n path: \"/api/platform/v1/context/compile\";\n method: \"POST\";\n body: Record<string, unknown>;\n};\n\nexport type ContextFacadeTransport = {\n request<T>(request: ContextClientRequest): Promise<T>;\n};\n\nexport type ContextFacadeConfig = {\n transport: ContextFacadeTransport;\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\nexport function createContextFacade(config: ContextFacadeConfig) {\n return {\n compile(\n topicIdOrInput: string | CompileContextInput = {},\n input: CompileContextInput = {}\n ) {\n const request = buildCompileContextRequest(topicIdOrInput, input);\n return config.transport.request<PublicCompiledContext>(request);\n },\n compileByQuery(input: CompileContextInput = {}) {\n const request = buildCompileContextRequest(input);\n return config.transport.request<PublicCompiledContext>(request);\n },\n };\n}\n\nexport type { CompileContextInput, PublicCompiledContext };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/contracts/context-pack.contract.ts","../src/contextPackPolicy.ts","../src/contextPackSchema.ts","../src/contextPackCompiler.ts"],"names":["CONTEXT_PACK_SCHEMA_VERSION"],"mappings":"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","file":"contextPackCompiler.js","sourcesContent":["/**\n * Context-Pack Contract v1\n *\n * Canonical TypeScript types and constants for the context-pack output schema.\n * This is the external contract consumed by:\n * - MCP tool `compile_context` (canonical compiler read)\n * - SDK/HTTP consumers that read compiled context packs programmatically\n * - Benchmark harnesses (context-pack-ab)\n *\n * BREAKING CHANGE RULES:\n * - Adding optional fields to ContextPackV1 is NON-breaking\n * - Removing fields or changing types is BREAKING (bump CONTEXT_PACK_SCHEMA_VERSION)\n * - Changing section budget ratios or ranking weights is NON-breaking (tuning)\n * - Changing the version string is BREAKING (consumers check it)\n */\n\n// =============================================================================\n// SCHEMA VERSION\n// =============================================================================\n\n/** Canonical version string. Consumers MUST check this field for compatibility. */\nexport const CONTEXT_PACK_SCHEMA_VERSION = \"1.0.0\" as const;\n\n// =============================================================================\n// RANKING PROFILES\n// =============================================================================\n\n/**\n * Available ranking profiles for context-pack assembly.\n *\n * - `baseline_v1`: Simple token-hit counting. Items with zero query hits are excluded.\n * - `weighted_v1`: Multi-signal scoring combining query relevance, recency, confidence,\n * belief type, priority, and severity with section-specific weight vectors.\n */\nexport type ContextRankingProfile = \"baseline_v1\" | \"weighted_v1\";\n\nexport const CONTEXT_RANKING_PROFILES: readonly ContextRankingProfile[] = [\n \"baseline_v1\",\n \"weighted_v1\",\n] as const;\n\nexport const DEFAULT_RANKING_PROFILE: ContextRankingProfile = \"weighted_v1\";\n\n// =============================================================================\n// COMPILATION MODE (RS-2)\n// =============================================================================\n\n/**\n * Context compilation mode.\n *\n * - `standard`: Default — ranked beliefs, questions, evidence, contradictions.\n * - `delta`: Diff-aware — adds failure context, verification obligations,\n * and worktree ledger analysis to the standard context pack.\n */\nexport type ContextCompilationMode = \"standard\" | \"delta\";\n\nexport const DEFAULT_COMPILATION_MODE: ContextCompilationMode = \"standard\";\n\n// =============================================================================\n// SECTION KEYS\n// =============================================================================\n\n/**\n * The five canonical sections of a context pack.\n * Order matters: invariants are injected first, contradictions last.\n */\nexport type ContextPackSectionKey =\n | \"invariants\"\n | \"activeBeliefs\"\n | \"openQuestions\"\n | \"recentEvidence\"\n | \"contradictions\";\n\nexport const CONTEXT_PACK_SECTION_KEYS: readonly ContextPackSectionKey[] = [\n \"invariants\",\n \"activeBeliefs\",\n \"openQuestions\",\n \"recentEvidence\",\n \"contradictions\",\n] as const;\n\n// =============================================================================\n// SECTION BUDGET RATIOS\n// =============================================================================\n\n/**\n * Token budget allocation ratios per section.\n * These sum to 1.0 and determine how the total tokenBudget is divided.\n *\n * Rationale:\n * - invariants (0.28): Highest-priority constraints, injected first\n * - activeBeliefs (0.30): Largest section, carries domain knowledge\n * - openQuestions (0.17): Unresolved work items guide agent behavior\n * - recentEvidence (0.17): Implementation context for grounding\n * - contradictions (0.08): Tension signals, smallest section\n */\nexport const SECTION_BUDGET_RATIOS: Readonly<\n Record<ContextPackSectionKey, number>\n> = {\n invariants: 0.28,\n activeBeliefs: 0.3,\n openQuestions: 0.17,\n recentEvidence: 0.17,\n contradictions: 0.08,\n} as const;\n\n// =============================================================================\n// TOKEN BUDGET CONSTRAINTS\n// =============================================================================\n\n/** Minimum allowed token budget. Below this, context packs lose utility. */\nexport const MIN_TOKEN_BUDGET = 400;\n\n/** Maximum allowed token budget. Above this, context packs bloat prompts. */\nexport const MAX_TOKEN_BUDGET = 8000;\n\n/** Default token budget when caller does not specify. */\nexport const DEFAULT_TOKEN_BUDGET = 1800;\n\n/** Default max items per section. */\nexport const DEFAULT_SECTION_LIMIT = 8;\n\n/** Hard ceiling on items per section. */\nexport const MAX_SECTION_LIMIT = 25;\n\n/** Minimum contradiction section budget floor (tokens). */\nexport const MIN_CONTRADICTION_BUDGET = 40;\n\n// =============================================================================\n// RANKING WEIGHT VECTORS\n// =============================================================================\n\n/**\n * Weight vectors for the weighted_v1 ranking profile.\n * Each section has a different signal mix:\n *\n * - query: How many query tokens appear in the candidate text\n * - recency: Exponential decay from updatedAt (half-life = 30 days)\n * - confidence: Belief confidence score [0,1]\n * - beliefType: Bonus for invariant > tenet > principle > other\n * - priority: Question priority (critical > high > medium > low)\n * - severity: Contradiction severity (critical > high > medium > low)\n */\nexport type RankingWeightVector = {\n query: number;\n recency: number;\n confidence?: number;\n beliefType?: number;\n priority?: number;\n severity?: number;\n};\n\nexport const RANKING_WEIGHTS: Readonly<\n Record<ContextPackSectionKey, RankingWeightVector>\n> = {\n invariants: {\n query: 0.35,\n recency: 0.1,\n confidence: 0.4,\n beliefType: 0.15,\n },\n activeBeliefs: {\n query: 0.5,\n recency: 0.2,\n confidence: 0.2,\n beliefType: 0.1,\n },\n openQuestions: {\n query: 0.55,\n recency: 0.2,\n priority: 0.25,\n },\n recentEvidence: {\n query: 0.6,\n recency: 0.4,\n },\n contradictions: {\n query: 0.4,\n recency: 0.2,\n severity: 0.4,\n },\n} as const;\n\n/** Recency decay half-life in days. After 30 days, recency score = 0.5. */\nexport const RECENCY_HALF_LIFE_DAYS = 30;\n\n/**\n * Ranking weight vector for the relatedEntities section.\n * Entities are ranked by query relevance and connectivity (bridge edge count).\n * Separate from RANKING_WEIGHTS because entities are not part of the\n * token-budgeted injection plan.\n */\nexport const ENTITY_RANKING_WEIGHTS = {\n query: 0.4,\n connectivity: 0.6,\n} as const;\n\n/** Default max entities to include in the context pack. */\nexport const DEFAULT_ENTITY_LIMIT = 10;\n\n/** Hard ceiling on entities per context pack. */\nexport const MAX_ENTITY_LIMIT = 50;\n\n// =============================================================================\n// BELIEF TYPE BONUS MAP\n// =============================================================================\n\n/**\n * Bonus multiplier for belief types in ranking.\n * Invariants get 1.0, unknown types get 0.4.\n */\nexport const BELIEF_TYPE_BONUS: Readonly<Record<string, number>> = {\n invariant: 1.0,\n tenet: 0.8,\n principle: 0.6,\n} as const;\n\nexport const DEFAULT_BELIEF_TYPE_BONUS = 0.4;\n\n// =============================================================================\n// PRIORITY / SEVERITY SCORE MAPS\n// =============================================================================\n\nexport const PRIORITY_SCORES: Readonly<Record<string, number>> = {\n critical: 1.0,\n high: 0.85,\n medium: 0.55,\n low: 0.35,\n} as const;\n\nexport const DEFAULT_PRIORITY_SCORE = 0.5;\n\nexport const SEVERITY_SCORES: Readonly<Record<string, number>> = {\n critical: 1.0,\n high: 0.85,\n medium: 0.6,\n low: 0.35,\n} as const;\n\nexport const DEFAULT_SEVERITY_SCORE = 0.5;\n\n// =============================================================================\n// SECTION ITEM TYPES\n// =============================================================================\n\n/** A ranked belief in the invariants or activeBeliefs section. */\nexport type ContextPackBelief = {\n nodeId: string;\n canonicalText: string;\n confidence: number | null;\n beliefType: string | null;\n score: number;\n /** Present in activeBeliefs, absent in invariants */\n status?: string;\n updatedAt?: number | null;\n /** Human-readable explanation of why this item was ranked here (RS-2). */\n justification?: string;\n};\n\n/** A ranked question in the openQuestions section. */\nexport type ContextPackQuestion = {\n questionId: string;\n text: string;\n status: string;\n priority: string;\n updatedAt?: number | null;\n score: number;\n /** Human-readable explanation of why this item was ranked here (RS-2). */\n justification?: string;\n};\n\n/** A ranked evidence item in the recentEvidence section. */\nexport type ContextPackEvidence = {\n nodeId: string;\n canonicalText: string;\n sourceUrl: string | null;\n kind: string;\n createdAt: number | null;\n score: number;\n /** Human-readable explanation of why this item was ranked here (RS-2). */\n justification?: string;\n};\n\n/** A ranked contradiction in the contradictions section. */\nexport type ContextPackContradiction = {\n contradictionId: string;\n severity: string;\n status: string;\n description: string;\n score: number;\n /** Human-readable explanation of why this item was ranked here (RS-2). */\n justification?: string;\n};\n\n/**\n * An entity from the ontological layer surfaced in the context pack.\n * Entities are domain objects (companies, people, functions, etc.) connected\n * to beliefs via bridge edges. They provide the \"reality anchor\" that makes\n * the reasoning graph domain-aware.\n */\nexport type ContextPackEntity = {\n /** Convex document ID of the entity node. */\n nodeId: string;\n /** Entity type (e.g., \"company\", \"person\", \"function\"). */\n entityType: string;\n /** Human-readable title/name of the entity. */\n title: string;\n /** Number of beliefs connected to this entity via bridge edges. */\n connectedBeliefCount: number;\n /** Number of evidence items referencing this entity. */\n connectedEvidenceCount: number;\n /** Relevance score from ranking algorithm. */\n score: number;\n /** Entity metadata (structured per ontology schema). */\n metadata?: Record<string, unknown>;\n};\n\n/**\n * A lattice seed entry representing a belief that was auto-generated\n * to cover an ontology entity type within a topic scope.\n */\nexport type BeliefLatticeSeed = {\n /** The belief node ID that was created or already existed. */\n beliefNodeId: string;\n /** The entity type this seed belief covers. */\n entityType: string;\n /** Whether this seed was newly created or already existed. */\n created: boolean;\n /** The canonical text of the seed belief. */\n canonicalText: string;\n};\n\n// =============================================================================\n// SUMMARY\n// =============================================================================\n\n/** Counts and scoped health signals for the context pack. */\nexport type ContextPackSummary = {\n totalBeliefs: number;\n invariants: number;\n openQuestions: number;\n evidenceItems: number;\n contradictions: number;\n /** Number of ontological entities in scope (optional, present when entity graph is active). */\n relatedEntities?: number;\n scopedTopics: number;\n descendantDepth: number;\n query: string | null;\n};\n\n// =============================================================================\n// FAILURE CONTEXT (RS-2)\n// =============================================================================\n\n/** A failed approach surfaced from the failure log for anti-repetition. */\nexport type ContextPackFailure = {\n /** Lucern attempt/evidence node ID. */\n attemptId: string;\n /** What was tried. */\n approach: string;\n /** Why it failed. */\n outcome: string;\n /** When the attempt was recorded (ms since epoch). */\n recordedAt: number;\n /** Relevance score from ranking algorithm. */\n score: number;\n};\n\n/** Failure context section appended to context packs in delta mode. */\nexport type ContextPackFailureContext = {\n /** Ranked failed approaches relevant to the current query. */\n failures: ContextPackFailure[];\n /** IDs of items suppressed from other sections due to anti-repetition. */\n suppressedIds: string[];\n};\n\n// =============================================================================\n// DELTA REPORT (RS-2)\n// =============================================================================\n\n/** A verification obligation surfaced by delta compilation. */\nexport type VerificationObligation = {\n /** What must be verified. */\n description: string;\n /** Source of the obligation (e.g., \"belief:xyz confidence drop\"). */\n source: string;\n /** Severity: how important it is to verify. */\n severity: \"critical\" | \"high\" | \"medium\" | \"low\";\n};\n\n/** Delta report appended to context packs when mode = \"delta\". */\nexport type ContextPackDeltaReport = {\n /** Items that changed since the reference point (new, updated, removed). */\n changedItems: Array<{\n id: string;\n section: ContextPackSectionKey;\n changeType: \"added\" | \"updated\" | \"removed\" | \"confidence_changed\";\n summary: string;\n }>;\n /** Obligations the consuming session must verify. */\n verificationObligations: VerificationObligation[];\n /** Reference point for the delta (worktree ID, timestamp, or commit SHA). */\n referencePoint: string;\n};\n\n// =============================================================================\n// PACK WEIGHT OVERRIDES (RS-2)\n// =============================================================================\n\n/**\n * Per-section weight overrides that domain packs can apply.\n * Overrides merge with RANKING_WEIGHTS — only specified fields replace defaults.\n */\nexport type PackWeightOverride = {\n /** Which section to override weights for. */\n section: ContextPackSectionKey;\n /** Partial weight vector — only specified fields replace defaults. */\n weights: Partial<RankingWeightVector>;\n};\n\n// =============================================================================\n// INJECTION POLICY\n// =============================================================================\n\n/** Token-budgeted section selections for prompt injection. */\nexport type ContextPackInjectionPolicy = {\n /** Total token budget for the entire context pack. */\n tokenBudget: number;\n /** Estimated tokens consumed across all sections. */\n estimatedTokens: number;\n /** Per-section token budgets derived from SECTION_BUDGET_RATIOS. */\n sectionBudgets: Record<ContextPackSectionKey, number>;\n /** Actual token usage per section after greedy fill. */\n sectionUsage: Record<ContextPackSectionKey, number>;\n /** Node/question IDs selected for injection, per section. */\n selected: Record<ContextPackSectionKey, string[]>;\n /** Items that were scored but excluded from injection, with reason (RS-2). */\n excludedItems?: Array<{\n id: string;\n section: ContextPackSectionKey;\n reason: \"budget_exceeded\" | \"anti_repetition\" | \"below_threshold\";\n score: number;\n }>;\n};\n\n// =============================================================================\n// DIAGNOSTICS\n// =============================================================================\n\n/** Telemetry for context pack assembly. */\nexport type ContextPackDiagnostics = {\n /** Total candidates scored across all sections. */\n itemsScored: number;\n /** Ratio of estimatedTokens / tokenBudget. Range [0, 1+]. */\n tokenBudgetUtilization: number;\n};\n\n// =============================================================================\n// PUBLIC COMPILED CONTEXT TYPES\n// =============================================================================\n\n/**\n * Public context surface returned by the SDK-facing context client.\n *\n * This preserves the existing external shape while the canonical compiler\n * contract evolves in parallel as ContextPackV1.\n */\nexport type PublicContextBelief = {\n beliefId: string;\n text: string;\n confidence: number | null;\n beliefType?: string | null;\n status?: string;\n updatedAt?: number | null;\n score: number;\n justification?: string;\n};\n\nexport type PublicContextQuestion = {\n questionId: string;\n text: string;\n status: string;\n priority: string;\n updatedAt?: number | null;\n score: number;\n justification?: string;\n};\n\nexport type PublicContextEvidence = {\n evidenceId: string;\n text: string;\n sourceUrl?: string | null;\n kind: string;\n createdAt?: number | null;\n score: number;\n justification?: string;\n};\n\nexport type PublicContextContradiction = {\n contradictionId: string;\n severity: string;\n status: string;\n description: string;\n score: number;\n justification?: string;\n};\n\nexport type PublicContextEntity = {\n entityId: string;\n entityType: string;\n title: string;\n text?: string;\n connectedBeliefCount: number;\n connectedEvidenceCount: number;\n score: number;\n metadata?: Record<string, unknown>;\n};\n\nexport type PublicContextInjectionPolicy = {\n tokenBudget: number;\n estimatedTokens: number;\n sectionBudgets: Record<string, number>;\n sectionUsage: Record<string, number>;\n selected: Record<string, string[]>;\n excludedItems?: Array<{\n id: string;\n section: string;\n reason: \"budget_exceeded\" | \"anti_repetition\" | \"below_threshold\";\n score: number;\n }>;\n};\n\nexport type PublicCompiledContext = {\n schemaVersion: string;\n topicId: string;\n topicName: string;\n scopedTopicIds: string[];\n generatedAt: number;\n ranking: ContextRankingProfile;\n summary: Record<string, unknown>;\n invariants: PublicContextBelief[];\n activeBeliefs: PublicContextBelief[];\n openQuestions: PublicContextQuestion[];\n recentEvidence: PublicContextEvidence[];\n contradictions: PublicContextContradiction[];\n relatedEntities?: PublicContextEntity[];\n contextNarrative: string[];\n injectionPolicy: PublicContextInjectionPolicy;\n diagnostics: Record<string, unknown>;\n compilationMode?: string;\n failureContext?: {\n failures: Array<{\n attemptId: string;\n approach: string;\n outcome: string;\n recordedAt: number;\n score: number;\n }>;\n suppressedIds: string[];\n };\n deltaReport?: {\n changedItems: Array<{\n id: string;\n section: string;\n changeType: string;\n summary: string;\n }>;\n verificationObligations: Array<{\n description: string;\n source: string;\n severity: \"critical\" | \"high\" | \"medium\" | \"low\";\n }>;\n referencePoint: string;\n };\n appliedWeightOverrides?: unknown[];\n};\n\n// =============================================================================\n// CONTEXT PACK V1 (TOP-LEVEL OUTPUT)\n// =============================================================================\n\n/**\n * The canonical output schema for context compilation responses.\n *\n * This is the contract that consumers depend on. All fields are required\n * in the output. Adding optional fields is non-breaking; removing or\n * changing types is breaking (requires version bump).\n */\nexport type ContextPackV1 = {\n /** Schema version for compatibility checking. */\n schemaVersion: typeof CONTEXT_PACK_SCHEMA_VERSION;\n /** Resolved topic ID after scope resolution. */\n topicId: string;\n /** Human-readable topic name. */\n topicName: string;\n /** All topic IDs included in the neighborhood expansion. */\n scopedTopicIds: string[];\n /** Deterministic freshness watermark for this pack (ms since epoch). */\n generatedAt: number;\n /** Which ranking profile was used. */\n rankingProfile: ContextRankingProfile;\n /** Aggregate counts and health signals. */\n summary: ContextPackSummary;\n /** High-confidence invariant beliefs (beliefType = \"invariant\"). */\n invariants: ContextPackBelief[];\n /** Active beliefs ranked by query relevance. */\n activeBeliefs: ContextPackBelief[];\n /** Open questions ranked by relevance and priority. */\n openQuestions: ContextPackQuestion[];\n /** Recent evidence ranked by relevance and recency. */\n recentEvidence: ContextPackEvidence[];\n /** Active contradictions ranked by severity. */\n contradictions: ContextPackContradiction[];\n /**\n * Ontological entities connected to beliefs in scope, ranked by connectivity.\n * Optional — present when entity graph substrate is active for this topic.\n * NON-BREAKING addition per contract rules.\n */\n relatedEntities?: ContextPackEntity[];\n /** Concise instructions for agent context injection. */\n contextNarrative: string[];\n /** Token-budgeted injection selections. */\n injectionPolicy: ContextPackInjectionPolicy;\n /** Assembly telemetry. */\n diagnostics: ContextPackDiagnostics;\n /** Compilation mode used to generate this pack (RS-2). Default: \"standard\". */\n compilationMode?: ContextCompilationMode;\n /** Failure context for anti-repetition (RS-2). Present when failures are relevant. */\n failureContext?: ContextPackFailureContext;\n /** Delta report (RS-2). Present only when compilationMode = \"delta\". */\n deltaReport?: ContextPackDeltaReport;\n /** Pack weight overrides applied during ranking (RS-2). */\n appliedWeightOverrides?: PackWeightOverride[];\n};\n\n// =============================================================================\n// CONTEXT PACK REQUEST V1 (INPUT)\n// =============================================================================\n\n/**\n * The canonical input schema for `compile_context`.\n * `topicId` is the only scope identifier.\n */\nexport type ContextPackRequestV1 = {\n /** Topic scope ID (required). */\n topicId: string;\n /** Focus query for relevance ranking. */\n query?: string;\n /** Max items per section. Default: DEFAULT_SECTION_LIMIT. */\n limit?: number;\n /** Ranking profile. Default: DEFAULT_RANKING_PROFILE. */\n rankingProfile?: ContextRankingProfile;\n /** Total token budget. Default: DEFAULT_TOKEN_BUDGET. */\n tokenBudget?: number;\n /** Descendant topic depth for neighborhood expansion. */\n maxDepth?: number;\n /** Include ontological entities connected to beliefs in scope. Default: true. */\n includeEntities?: boolean;\n /** Compilation mode (RS-2). Default: \"standard\". */\n mode?: ContextCompilationMode;\n /** Include failure log context for anti-repetition (RS-2). Default: false. */\n includeFailures?: boolean;\n /** Active worktree ID for delta mode reference point (RS-2). */\n worktreeId?: string;\n /** Session ID for anti-repetition dedup (RS-2). */\n sessionId?: string;\n /** Pack weight overrides from domain pack binding (RS-2). */\n packWeightOverrides?: PackWeightOverride[];\n};\n\n// =============================================================================\n// RESOLVED QUESTION STATUSES\n// =============================================================================\n\n/**\n * Question statuses that are considered \"resolved\" (not open).\n * Used to filter which questions appear in the openQuestions section.\n */\nexport const RESOLVED_QUESTION_STATUSES: readonly string[] = [\n \"answered\",\n \"archived\",\n \"closed\",\n \"resolved\",\n \"resolved_support\",\n \"resolved_contra\",\n \"belief_forked\",\n] as const;\n\n// =============================================================================\n// TOKEN ESTIMATION\n// =============================================================================\n\n/**\n * Tokens-per-word multiplier for rough token estimation.\n * Conservative estimate: ~1.35 tokens per whitespace-delimited word.\n */\nexport const TOKENS_PER_WORD = 1.35;\n\n/** Minimum token estimate for any non-empty string. */\nexport const MIN_TOKEN_ESTIMATE = 8;\n","import {\n BELIEF_TYPE_BONUS,\n DEFAULT_ENTITY_LIMIT,\n DEFAULT_BELIEF_TYPE_BONUS,\n DEFAULT_PRIORITY_SCORE,\n DEFAULT_SEVERITY_SCORE,\n DEFAULT_TOKEN_BUDGET,\n ENTITY_RANKING_WEIGHTS,\n MAX_TOKEN_BUDGET,\n MAX_ENTITY_LIMIT,\n MIN_CONTRADICTION_BUDGET,\n MIN_TOKEN_BUDGET,\n MIN_TOKEN_ESTIMATE,\n type PackWeightOverride,\n PRIORITY_SCORES,\n type RankingWeightVector,\n RANKING_WEIGHTS,\n RECENCY_HALF_LIFE_DAYS,\n SECTION_BUDGET_RATIOS,\n SEVERITY_SCORES,\n TOKENS_PER_WORD,\n type ContextPackSectionKey,\n type ContextRankingProfile,\n} from \"./contracts/context-pack.contract\";\n\nexport type SectionKey = ContextPackSectionKey;\n\nexport type RankCandidate = {\n id: string;\n text: string;\n updatedAt?: number | null;\n createdAt?: number | null;\n confidence?: number | null;\n beliefType?: string | null;\n priority?: string | null;\n severity?: string | null;\n};\n\nexport type RankedCandidate<T extends RankCandidate> = T & {\n score: number;\n justification?: string;\n};\n\ntype LexicalExclusion = {\n id: string;\n section: SectionKey;\n reason: \"budget_exceeded\" | \"anti_repetition\" | \"below_threshold\";\n score: number;\n};\n\nexport type InjectionPlan = {\n tokenBudget: number;\n estimatedTokens: number;\n sectionBudgets: Record<SectionKey, number>;\n sectionUsage: Record<SectionKey, number>;\n selected: Record<SectionKey, string[]>;\n excludedItems?: LexicalExclusion[];\n};\n\ntype RankContextOptions = {\n effectiveWeights?: Readonly<Record<ContextPackSectionKey, RankingWeightVector>>;\n includeJustifications?: boolean;\n referenceTimeMs?: number;\n};\n\nfunction tokenHits(text: string, tokens: string[]): number {\n if (tokens.length === 0) {\n return 1;\n }\n const haystack = text.trim().toLowerCase();\n let hits = 0;\n for (const token of tokens) {\n if (haystack.includes(token)) {\n hits += 1;\n }\n }\n return hits;\n}\n\nfunction clamp01(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n return Math.max(0, Math.min(1, value));\n}\n\nfunction recencyScore(\n updatedAt: number | null | undefined,\n referenceTimeMs = Date.now()\n): number {\n if (!updatedAt || !Number.isFinite(updatedAt)) {\n return 0.25;\n }\n const ageMs = Math.max(0, referenceTimeMs - updatedAt);\n const ageDays = ageMs / (1000 * 60 * 60 * 24);\n const decay = 0.5 ** (ageDays / RECENCY_HALF_LIFE_DAYS);\n return clamp01(decay);\n}\n\nfunction confidenceScore(confidence: number | null | undefined): number {\n if (typeof confidence !== \"number\" || !Number.isFinite(confidence)) {\n return 0.5;\n }\n return clamp01(confidence);\n}\n\nfunction priorityScore(priority: string | null | undefined): number {\n const value = (priority || \"\").trim().toLowerCase();\n return PRIORITY_SCORES[value] ?? DEFAULT_PRIORITY_SCORE;\n}\n\nfunction severityScore(severity: string | null | undefined): number {\n const value = (severity || \"\").trim().toLowerCase();\n return SEVERITY_SCORES[value] ?? DEFAULT_SEVERITY_SCORE;\n}\n\nfunction beliefTypeBonus(beliefType: string | null | undefined): number {\n const value = (beliefType || \"\").trim().toLowerCase();\n return BELIEF_TYPE_BONUS[value] ?? DEFAULT_BELIEF_TYPE_BONUS;\n}\n\nexport function resolveEffectiveWeights(\n overrides?: PackWeightOverride[]\n): Readonly<Record<ContextPackSectionKey, RankingWeightVector>> {\n if (!overrides || overrides.length === 0) {\n return RANKING_WEIGHTS;\n }\n const result = { ...RANKING_WEIGHTS } as Record<\n ContextPackSectionKey,\n RankingWeightVector\n >;\n for (const override of overrides) {\n const base = RANKING_WEIGHTS[override.section];\n if (base) {\n result[override.section] = { ...base, ...override.weights };\n }\n }\n return result;\n}\n\nfunction generateJustification(\n _section: SectionKey,\n candidate: RankCandidate,\n queryTokens: string[],\n weights: RankingWeightVector\n): string {\n const parts: string[] = [];\n\n const hits = tokenHits(candidate.text, queryTokens);\n if (queryTokens.length > 0 && hits > 0) {\n parts.push(`${hits}/${queryTokens.length} query terms matched`);\n } else if (queryTokens.length === 0) {\n parts.push(\"no query filter\");\n }\n\n const ts = candidate.updatedAt || candidate.createdAt || null;\n if (ts && Number.isFinite(ts)) {\n const ageDays = Math.max(0, Date.now() - ts) / (1000 * 60 * 60 * 24);\n if (ageDays < 1) {\n parts.push(\"updated today\");\n } else if (ageDays < 7) {\n parts.push(`updated ${Math.floor(ageDays)}d ago`);\n } else if (ageDays < 30) {\n parts.push(`updated ${Math.floor(ageDays / 7)}w ago`);\n } else {\n parts.push(`updated ${Math.floor(ageDays)}d ago (decayed)`);\n }\n }\n\n if (\n weights.confidence !== undefined &&\n candidate.confidence !== null &&\n candidate.confidence !== undefined\n ) {\n parts.push(`confidence=${candidate.confidence.toFixed(2)}`);\n }\n if (weights.beliefType !== undefined && candidate.beliefType) {\n parts.push(`type=${candidate.beliefType}`);\n }\n if (weights.priority !== undefined && candidate.priority) {\n parts.push(`priority=${candidate.priority}`);\n }\n if (weights.severity !== undefined && candidate.severity) {\n parts.push(`severity=${candidate.severity}`);\n }\n\n return parts.join(\", \");\n}\n\nfunction computeWeightedScore(\n section: SectionKey,\n candidate: RankCandidate,\n queryTokens: string[],\n effectiveWeights?: Readonly<Record<ContextPackSectionKey, RankingWeightVector>>,\n referenceTimeMs?: number\n): number {\n const weights = (effectiveWeights ?? RANKING_WEIGHTS)[section];\n const queryComponent =\n queryTokens.length === 0\n ? 0.4\n : clamp01(tokenHits(candidate.text, queryTokens) / queryTokens.length);\n const recencyComponent = recencyScore(\n candidate.updatedAt || candidate.createdAt || null,\n referenceTimeMs\n );\n\n let score =\n queryComponent * weights.query + recencyComponent * weights.recency;\n\n if (weights.confidence !== undefined) {\n score += confidenceScore(candidate.confidence) * weights.confidence;\n }\n if (weights.beliefType !== undefined) {\n score += beliefTypeBonus(candidate.beliefType) * weights.beliefType;\n }\n if (weights.priority !== undefined) {\n score += priorityScore(candidate.priority) * weights.priority;\n }\n if (weights.severity !== undefined) {\n score += severityScore(candidate.severity) * weights.severity;\n }\n\n return score;\n}\n\nexport function rankContextSection<T extends RankCandidate>(\n section: SectionKey,\n rows: T[],\n queryTokens: string[],\n limit: number,\n profile: ContextRankingProfile,\n options?: RankContextOptions\n): RankedCandidate<T>[] {\n const effectiveWeights = options?.effectiveWeights;\n const includeJustifications = options?.includeJustifications ?? false;\n const referenceTimeMs = options?.referenceTimeMs;\n\n const scored = rows.map((row) => {\n const score =\n profile === \"weighted_v1\"\n ? computeWeightedScore(\n section,\n row,\n queryTokens,\n effectiveWeights,\n referenceTimeMs\n )\n : queryTokens.length === 0\n ? 1\n : tokenHits(row.text, queryTokens);\n\n const result: RankedCandidate<T> = { ...row, score };\n\n if (includeJustifications && profile === \"weighted_v1\") {\n const weights = (effectiveWeights ?? RANKING_WEIGHTS)[section];\n result.justification = generateJustification(section, row, queryTokens, weights);\n }\n\n return result;\n });\n\n const filtered =\n queryTokens.length === 0 ? scored : scored.filter((row) => row.score > 0);\n\n filtered.sort((left, right) => {\n if (right.score !== left.score) {\n return right.score - left.score;\n }\n const rightTs = right.updatedAt || right.createdAt || 0;\n const leftTs = left.updatedAt || left.createdAt || 0;\n return rightTs - leftTs;\n });\n\n return filtered.slice(0, limit);\n}\n\nexport function parseTokenBudget(\n value: unknown,\n fallback = DEFAULT_TOKEN_BUDGET\n): number {\n const parsed =\n typeof value === \"number\" && Number.isFinite(value)\n ? Math.floor(value)\n : fallback;\n return Math.max(MIN_TOKEN_BUDGET, Math.min(MAX_TOKEN_BUDGET, parsed));\n}\n\nfunction estimateTokens(text: string): number {\n const words = text.trim().split(/\\s+/).filter(Boolean).length;\n return Math.max(MIN_TOKEN_ESTIMATE, Math.ceil(words * TOKENS_PER_WORD));\n}\n\nexport function buildInjectionPlan(args: {\n tokenBudget: number;\n invariants: Array<{ nodeId: string; canonicalText: string; score?: number }>;\n activeBeliefs: Array<{ nodeId: string; canonicalText: string; score?: number }>;\n openQuestions: Array<{ questionId: string; text: string; score?: number }>;\n recentEvidence: Array<{ nodeId: string; canonicalText: string; score?: number }>;\n contradictions: Array<{ contradictionId: string; description: string; score?: number }>;\n trackExclusions?: boolean;\n}): InjectionPlan {\n const tokenBudget = parseTokenBudget(args.tokenBudget);\n const trackExclusions = args.trackExclusions ?? false;\n\n const sectionBudgets: Record<SectionKey, number> = {\n invariants: Math.floor(tokenBudget * SECTION_BUDGET_RATIOS.invariants),\n activeBeliefs: Math.floor(\n tokenBudget * SECTION_BUDGET_RATIOS.activeBeliefs\n ),\n openQuestions: Math.floor(\n tokenBudget * SECTION_BUDGET_RATIOS.openQuestions\n ),\n recentEvidence: Math.floor(\n tokenBudget * SECTION_BUDGET_RATIOS.recentEvidence\n ),\n contradictions: Math.max(\n MIN_CONTRADICTION_BUDGET,\n Math.floor(tokenBudget * SECTION_BUDGET_RATIOS.contradictions)\n ),\n };\n\n const selected: Record<SectionKey, string[]> = {\n invariants: [],\n activeBeliefs: [],\n openQuestions: [],\n recentEvidence: [],\n contradictions: [],\n };\n\n const sectionUsage: Record<SectionKey, number> = {\n invariants: 0,\n activeBeliefs: 0,\n openQuestions: 0,\n recentEvidence: 0,\n contradictions: 0,\n };\n\n const excludedItems: LexicalExclusion[] = [];\n\n const pushItem = (section: SectionKey, id: string, text: string, score?: number) => {\n const itemTokens = estimateTokens(text);\n const nextUsage = sectionUsage[section] + itemTokens;\n if (nextUsage > sectionBudgets[section]) {\n if (trackExclusions) {\n excludedItems.push({\n id,\n section,\n reason: \"budget_exceeded\",\n score: score ?? 0,\n });\n }\n return;\n }\n selected[section].push(id);\n sectionUsage[section] = nextUsage;\n };\n\n for (const row of args.invariants) {\n pushItem(\"invariants\", row.nodeId, row.canonicalText, row.score);\n }\n for (const row of args.activeBeliefs) {\n pushItem(\"activeBeliefs\", row.nodeId, row.canonicalText, row.score);\n }\n for (const row of args.openQuestions) {\n pushItem(\"openQuestions\", row.questionId, row.text, row.score);\n }\n for (const row of args.recentEvidence) {\n pushItem(\"recentEvidence\", row.nodeId, row.canonicalText, row.score);\n }\n for (const row of args.contradictions) {\n pushItem(\"contradictions\", row.contradictionId, row.description, row.score);\n }\n\n const estimatedTokens =\n sectionUsage.invariants +\n sectionUsage.activeBeliefs +\n sectionUsage.openQuestions +\n sectionUsage.recentEvidence +\n sectionUsage.contradictions;\n\n return {\n tokenBudget,\n estimatedTokens,\n sectionBudgets,\n sectionUsage,\n selected,\n ...(trackExclusions ? { excludedItems } : {}),\n };\n}\n\nexport type EntityCandidate = {\n nodeId: string;\n entityType: string;\n title: string;\n canonicalText: string;\n connectedBeliefCount: number;\n connectedEvidenceCount: number;\n metadata: Record<string, unknown>;\n updatedAt?: number | null;\n};\n\nexport type RankedEntity = EntityCandidate & {\n score: number;\n};\n\nexport function rankEntities(\n candidates: EntityCandidate[],\n queryTokens: string[],\n limit?: number\n): RankedEntity[] {\n if (candidates.length === 0) {\n return [];\n }\n\n const effectiveLimit = Math.max(\n 1,\n Math.min(limit ?? DEFAULT_ENTITY_LIMIT, MAX_ENTITY_LIMIT)\n );\n\n const maxConnections = Math.max(\n 1,\n ...candidates.map(\n (candidate) =>\n candidate.connectedBeliefCount + candidate.connectedEvidenceCount\n )\n );\n\n const scored = candidates.map((candidate) => {\n const searchText = `${candidate.title} ${candidate.entityType} ${candidate.canonicalText}`;\n const queryScore =\n queryTokens.length === 0\n ? 0.4\n : clamp01(tokenHits(searchText, queryTokens) / queryTokens.length);\n\n const totalConnections =\n candidate.connectedBeliefCount + candidate.connectedEvidenceCount;\n const connectivityScore = clamp01(totalConnections / maxConnections);\n\n const score =\n queryScore * ENTITY_RANKING_WEIGHTS.query +\n connectivityScore * ENTITY_RANKING_WEIGHTS.connectivity;\n\n return { ...candidate, score };\n });\n\n scored.sort((left, right) => {\n if (right.score !== left.score) {\n return right.score - left.score;\n }\n const rightConn = right.connectedBeliefCount + right.connectedEvidenceCount;\n const leftConn = left.connectedBeliefCount + left.connectedEvidenceCount;\n return rightConn - leftConn;\n });\n\n return scored.slice(0, effectiveLimit);\n}\n","const CONTEXT_PACK_SCHEMA_VERSION = \"1.0.0\" as const;\n\ntype ValidationResult = {\n valid: boolean;\n errors: string[];\n};\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nfunction isNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value);\n}\n\nfunction isNullableNumber(value: unknown): boolean {\n return value === null || isNumber(value);\n}\n\nfunction isStringArray(value: unknown): value is string[] {\n return Array.isArray(value) && value.every((entry) => isString(entry));\n}\n\nfunction requireObject(\n parent: Record<string, unknown>,\n key: string,\n errors: string[]\n): Record<string, unknown> | null {\n const value = parent[key];\n if (!isObject(value)) {\n errors.push(`Expected '${key}' to be an object`);\n return null;\n }\n return value;\n}\n\nfunction validateBeliefArray(\n key: string,\n value: unknown,\n errors: string[]\n): void {\n if (!Array.isArray(value)) {\n errors.push(`Expected '${key}' to be an array`);\n return;\n }\n for (let index = 0; index < value.length; index += 1) {\n const row = value[index];\n if (!isObject(row)) {\n errors.push(`Expected '${key}[${index}]' to be an object`);\n continue;\n }\n if (!isString(row.nodeId)) {\n errors.push(`Expected '${key}[${index}].nodeId' to be a string`);\n }\n if (!isString(row.canonicalText)) {\n errors.push(`Expected '${key}[${index}].canonicalText' to be a string`);\n }\n if (!isNullableNumber(row.confidence)) {\n errors.push(`Expected '${key}[${index}].confidence' to be number|null`);\n }\n }\n}\n\nfunction validateQuestionArray(\n key: string,\n value: unknown,\n errors: string[]\n): void {\n if (!Array.isArray(value)) {\n errors.push(`Expected '${key}' to be an array`);\n return;\n }\n for (let index = 0; index < value.length; index += 1) {\n const row = value[index];\n if (!isObject(row)) {\n errors.push(`Expected '${key}[${index}]' to be an object`);\n continue;\n }\n if (!isString(row.questionId)) {\n errors.push(`Expected '${key}[${index}].questionId' to be a string`);\n }\n if (!isString(row.text)) {\n errors.push(`Expected '${key}[${index}].text' to be a string`);\n }\n if (!isString(row.status)) {\n errors.push(`Expected '${key}[${index}].status' to be a string`);\n }\n }\n}\n\nfunction validateEvidenceArray(\n key: string,\n value: unknown,\n errors: string[]\n): void {\n if (!Array.isArray(value)) {\n errors.push(`Expected '${key}' to be an array`);\n return;\n }\n for (let index = 0; index < value.length; index += 1) {\n const row = value[index];\n if (!isObject(row)) {\n errors.push(`Expected '${key}[${index}]' to be an object`);\n continue;\n }\n if (!isString(row.nodeId)) {\n errors.push(`Expected '${key}[${index}].nodeId' to be a string`);\n }\n if (!isString(row.canonicalText)) {\n errors.push(`Expected '${key}[${index}].canonicalText' to be a string`);\n }\n }\n}\n\nfunction validateEntityArray(\n key: string,\n value: unknown,\n errors: string[]\n): void {\n if (!Array.isArray(value)) {\n errors.push(`Expected '${key}' to be an array`);\n return;\n }\n for (let index = 0; index < value.length; index += 1) {\n const row = value[index];\n if (!isObject(row)) {\n errors.push(`Expected '${key}[${index}]' to be an object`);\n continue;\n }\n if (!isString(row.nodeId)) {\n errors.push(`Expected '${key}[${index}].nodeId' to be a string`);\n }\n if (!isString(row.entityType)) {\n errors.push(`Expected '${key}[${index}].entityType' to be a string`);\n }\n if (!isString(row.title)) {\n errors.push(`Expected '${key}[${index}].title' to be a string`);\n }\n if (!isNumber(row.connectedBeliefCount)) {\n errors.push(`Expected '${key}[${index}].connectedBeliefCount' to be a number`);\n }\n if (!isNumber(row.connectedEvidenceCount)) {\n errors.push(`Expected '${key}[${index}].connectedEvidenceCount' to be a number`);\n }\n if (!isNumber(row.score)) {\n errors.push(`Expected '${key}[${index}].score' to be a number`);\n }\n }\n}\n\nfunction validateContradictionArray(\n key: string,\n value: unknown,\n errors: string[]\n): void {\n if (!Array.isArray(value)) {\n errors.push(`Expected '${key}' to be an array`);\n return;\n }\n for (let index = 0; index < value.length; index += 1) {\n const row = value[index];\n if (!isObject(row)) {\n errors.push(`Expected '${key}[${index}]' to be an object`);\n continue;\n }\n if (!isString(row.contradictionId)) {\n errors.push(`Expected '${key}[${index}].contradictionId' to be a string`);\n }\n if (!isString(row.status)) {\n errors.push(`Expected '${key}[${index}].status' to be a string`);\n }\n }\n}\n\nexport function validateContextPackSchema(payload: unknown): ValidationResult {\n const errors: string[] = [];\n\n if (!isObject(payload)) {\n return {\n valid: false,\n errors: [\"Expected context pack payload to be an object\"],\n };\n }\n\n if (payload.schemaVersion !== CONTEXT_PACK_SCHEMA_VERSION) {\n errors.push(\n `Expected schemaVersion='${CONTEXT_PACK_SCHEMA_VERSION}', received '${String(\n payload.schemaVersion\n )}'`\n );\n }\n\n if (!isString(payload.topicId)) {\n errors.push(\"Expected 'topicId' to be a string\");\n }\n if (!isString(payload.topicName)) {\n errors.push(\"Expected 'topicName' to be a string\");\n }\n if (!isStringArray(payload.scopedTopicIds)) {\n errors.push(\"Expected 'scopedTopicIds' to be string[]\");\n }\n if (!isNumber(payload.generatedAt)) {\n errors.push(\"Expected 'generatedAt' to be a number\");\n }\n if (!isString(payload.ranking)) {\n errors.push(\"Expected 'ranking' to be a string\");\n }\n\n validateBeliefArray(\"invariants\", payload.invariants, errors);\n validateBeliefArray(\"activeBeliefs\", payload.activeBeliefs, errors);\n validateQuestionArray(\"openQuestions\", payload.openQuestions, errors);\n validateEvidenceArray(\"recentEvidence\", payload.recentEvidence, errors);\n validateContradictionArray(\"contradictions\", payload.contradictions, errors);\n\n if (\n payload.relatedEntities !== undefined &&\n payload.relatedEntities !== null\n ) {\n validateEntityArray(\"relatedEntities\", payload.relatedEntities, errors);\n }\n\n if (!Array.isArray(payload.contextNarrative)) {\n errors.push(\"Expected 'contextNarrative' to be an array\");\n }\n\n const injectionPolicy = requireObject(payload, \"injectionPolicy\", errors);\n if (injectionPolicy) {\n if (!isNumber(injectionPolicy.tokenBudget)) {\n errors.push(\"Expected 'injectionPolicy.tokenBudget' to be a number\");\n }\n if (!isNumber(injectionPolicy.estimatedTokens)) {\n errors.push(\"Expected 'injectionPolicy.estimatedTokens' to be a number\");\n }\n }\n\n if (!isObject(payload.summary)) {\n errors.push(\"Expected 'summary' to be an object\");\n }\n if (!isObject(payload.diagnostics)) {\n errors.push(\"Expected 'diagnostics' to be an object\");\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n}\n","import {\n type ContextCompilationMode,\n type ContextPackDeltaReport,\n type ContextPackV1,\n CONTEXT_PACK_SCHEMA_VERSION,\n DEFAULT_COMPILATION_MODE,\n DEFAULT_ENTITY_LIMIT,\n MAX_ENTITY_LIMIT,\n type PackWeightOverride,\n type ContextRankingProfile,\n} from \"./contracts/context-pack.contract\";\nimport {\n buildInjectionPlan,\n type EntityCandidate,\n parseTokenBudget,\n rankContextSection,\n rankEntities,\n resolveEffectiveWeights,\n} from \"./contextPackPolicy\";\nimport { validateContextPackSchema } from \"./contextPackSchema\";\n\nexport type ContextPackTopicRow = {\n _id: string;\n name?: string;\n parentTopicId?: string;\n depth?: number;\n status?: string;\n updatedAt?: number;\n createdAt?: number;\n generatedAt?: number;\n};\n\ntype ContextPackBeliefRow = {\n _id: string;\n canonicalText?: string;\n confidence?: number;\n beliefType?: string;\n status?: string;\n metadata?: Record<string, unknown>;\n updatedAt?: number;\n createdAt?: number;\n};\n\ntype ContextPackQuestionRow = {\n _id: string;\n canonicalText?: string;\n status?: string;\n metadata?: Record<string, unknown>;\n updatedAt?: number;\n createdAt?: number;\n};\n\ntype ContextPackEvidenceRow = {\n _id: string;\n canonicalText?: string;\n sourceUrl?: string;\n metadata?: Record<string, unknown>;\n updatedAt?: number;\n createdAt?: number;\n};\n\ntype ContextPackContradictionRow = {\n _id?: string;\n globalId?: string;\n weight?: number;\n context?: string;\n description?: string;\n summary?: string;\n updatedAt?: number;\n createdAt?: number;\n};\n\ntype ContextPackEntityRow = {\n _id: string;\n nodeType?: string;\n title?: string;\n canonicalText?: string;\n connectedBeliefCount?: number;\n connectedEvidenceCount?: number;\n metadata?: Record<string, unknown>;\n updatedAt?: number;\n};\n\ntype ContextPackFailureRow = {\n _id: string;\n canonicalText?: string;\n metadata?: Record<string, unknown>;\n updatedAt?: number;\n createdAt?: number;\n};\n\nexport type CompileContextPackPlan = {\n topicId: string;\n queryText?: string;\n tokens: string[];\n limit: number;\n rankingProfile: ContextRankingProfile;\n tokenBudget: number;\n descendantDepth: number;\n includeEntities: boolean;\n compilationMode: ContextCompilationMode;\n includeFailures: boolean;\n worktreeId?: string;\n sessionId?: string;\n packWeightOverrides?: PackWeightOverride[];\n effectiveWeights: ReturnType<typeof resolveEffectiveWeights>;\n scopedTopicIds: string[];\n};\n\nexport type CompileContextPackPlanInput = {\n args: Record<string, unknown> | undefined;\n topic: ContextPackTopicRow;\n allTopics: ContextPackTopicRow[];\n};\n\nexport type CompileContextPackSnapshot = {\n topic: ContextPackTopicRow;\n plan: CompileContextPackPlan;\n beliefs: ContextPackBeliefRow[];\n questions: ContextPackQuestionRow[];\n evidence: ContextPackEvidenceRow[];\n contradictions: ContextPackContradictionRow[];\n entities: ContextPackEntityRow[];\n failures?: ContextPackFailureRow[];\n};\n\nfunction assertContextPackSchema(payload: unknown): void {\n const result = validateContextPackSchema(payload);\n if (!result.valid) {\n throw new Error(\n `Invalid context pack payload: ${result.errors.join(\"; \")}`\n );\n }\n}\n\nfunction asStringArray(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value\n .map((entry) => (typeof entry === \"string\" ? entry.trim() : \"\"))\n .filter((entry) => entry.length > 0);\n}\n\nfunction toPositiveInt(value: unknown, fallback: number, max: number): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n return fallback;\n }\n const floored = Math.floor(value);\n return Math.max(1, Math.min(floored, max));\n}\n\nfunction normalizeQueryTokens(query: string | undefined): string[] {\n if (!query) {\n return [];\n }\n return query\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .map((token) => token.trim())\n .filter((token) => token.length >= 2);\n}\n\nfunction parseRankingProfile(value: unknown): ContextRankingProfile {\n return value === \"baseline_v1\" ? \"baseline_v1\" : \"weighted_v1\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction beliefTypeOf(node: ContextPackBeliefRow): string {\n if (typeof node.beliefType === \"string\") {\n return node.beliefType;\n }\n const metadata = isRecord(node.metadata) ? node.metadata : {};\n if (typeof metadata.beliefType === \"string\") {\n return metadata.beliefType;\n }\n return \"\";\n}\n\nfunction questionStatusOf(node: ContextPackQuestionRow): string {\n const metadata = isRecord(node.metadata) ? node.metadata : {};\n const direct = typeof node.status === \"string\" ? node.status : \"\";\n const questionStatus =\n typeof metadata.questionStatus === \"string\" ? metadata.questionStatus : \"\";\n return (questionStatus || direct || \"open\").toLowerCase();\n}\n\nfunction isOpenQuestion(status: string): boolean {\n return ![\n \"answered\",\n \"archived\",\n \"closed\",\n \"resolved\",\n \"resolved_support\",\n \"resolved_contra\",\n \"belief_forked\",\n ].includes(status);\n}\n\nfunction collectTopicNeighborhood(\n topics: ContextPackTopicRow[],\n rootTopicId: string,\n maxDescendantDepth = 2\n): string[] {\n const byId = new Map<string, ContextPackTopicRow>();\n const children = new Map<string, string[]>();\n for (const topic of topics) {\n const id = String(topic._id);\n byId.set(id, topic);\n if (!children.has(id)) {\n children.set(id, []);\n }\n }\n for (const topic of topics) {\n if (!topic.parentTopicId) {\n continue;\n }\n const parent = String(topic.parentTopicId);\n const id = String(topic._id);\n const list = children.get(parent) || [];\n list.push(id);\n children.set(parent, list);\n }\n\n const selected = new Set<string>([rootTopicId]);\n\n let cursor = byId.get(rootTopicId);\n while (cursor?.parentTopicId) {\n const parentId = String(cursor.parentTopicId);\n if (selected.has(parentId)) {\n break;\n }\n selected.add(parentId);\n cursor = byId.get(parentId);\n }\n\n const queue: Array<{ id: string; depth: number }> = [\n { id: rootTopicId, depth: 0 },\n ];\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current || current.depth >= maxDescendantDepth) {\n continue;\n }\n for (const childId of children.get(current.id) || []) {\n if (!selected.has(childId)) {\n selected.add(childId);\n }\n queue.push({ id: childId, depth: current.depth + 1 });\n }\n }\n\n return Array.from(selected);\n}\n\nfunction dedupeById<T extends { _id?: string }>(rows: T[]): T[] {\n const seen = new Set<string>();\n const output: T[] = [];\n for (const row of rows) {\n const id = row?._id ? String(row._id) : \"\";\n if (!id || seen.has(id)) {\n continue;\n }\n seen.add(id);\n output.push(row);\n }\n return output;\n}\n\nfunction candidateTimestamp(candidate: unknown): number {\n if (!isRecord(candidate)) {\n return 0;\n }\n const timestamps = [candidate.updatedAt, candidate.createdAt, candidate.generatedAt].filter(\n (value): value is number => typeof value === \"number\" && Number.isFinite(value)\n );\n return timestamps.length > 0 ? Math.max(...timestamps) : 0;\n}\n\nfunction resolveReferenceTimeMs(...collections: unknown[][]): number {\n let maxTimestamp = 0;\n for (const collection of collections) {\n for (const item of collection) {\n const timestamp = candidateTimestamp(item);\n if (timestamp > maxTimestamp) {\n maxTimestamp = timestamp;\n }\n }\n }\n return maxTimestamp;\n}\n\nexport function planContextPackCompilation(\n input: CompileContextPackPlanInput\n): CompileContextPackPlan {\n const args = input.args ?? {};\n const topicId = String(input.topic._id);\n const queryText =\n typeof args.query === \"string\" && args.query.trim().length > 0\n ? args.query.trim()\n : undefined;\n const tokens = normalizeQueryTokens(queryText);\n const limit = toPositiveInt(args.limit, 8, 25);\n const rankingProfile = parseRankingProfile(\n typeof args.ranking === \"string\" ? args.ranking : args.rankingProfile\n );\n const tokenBudget = parseTokenBudget(\n typeof args.budget === \"number\" ? args.budget : args.tokenBudget,\n 1800\n );\n const topicDepth =\n typeof input.topic.depth === \"number\" && Number.isFinite(input.topic.depth)\n ? input.topic.depth\n : 0;\n const requestedMaxDepth =\n typeof args.maxDepth === \"number\" && Number.isFinite(args.maxDepth)\n ? Math.max(1, Math.min(Math.floor(args.maxDepth), 6))\n : undefined;\n const descendantDepth = requestedMaxDepth ?? (topicDepth <= 1 ? 4 : 2);\n const includeEntities = args.includeEntities !== false;\n const compilationMode: ContextCompilationMode =\n args.mode === \"delta\" ? \"delta\" : DEFAULT_COMPILATION_MODE;\n const includeFailures =\n compilationMode === \"delta\" || args.includeFailures === true;\n const worktreeId =\n typeof args.worktreeId === \"string\" && args.worktreeId.trim().length > 0\n ? args.worktreeId.trim()\n : undefined;\n const sessionId =\n typeof args.sessionId === \"string\" && args.sessionId.trim().length > 0\n ? args.sessionId.trim()\n : undefined;\n const packWeightOverrides = Array.isArray(args.packWeightOverrides)\n ? (args.packWeightOverrides as PackWeightOverride[])\n : undefined;\n const effectiveWeights = resolveEffectiveWeights(packWeightOverrides);\n\n let scopedTopicIds = collectTopicNeighborhood(\n input.allTopics,\n topicId,\n descendantDepth\n );\n\n const allowedTopicIds = asStringArray(args.allowedTopicIds);\n if (allowedTopicIds.length > 0) {\n const allowedSet = new Set(allowedTopicIds);\n if (!allowedSet.has(topicId)) {\n throw new Error(`Access denied to compile context for topic ${topicId}.`);\n }\n scopedTopicIds = scopedTopicIds.filter((id) => allowedSet.has(id));\n }\n\n return {\n topicId,\n ...(queryText ? { queryText } : {}),\n tokens,\n limit,\n rankingProfile,\n tokenBudget,\n descendantDepth,\n includeEntities,\n compilationMode,\n includeFailures,\n ...(worktreeId ? { worktreeId } : {}),\n ...(sessionId ? { sessionId } : {}),\n ...(packWeightOverrides ? { packWeightOverrides } : {}),\n effectiveWeights,\n scopedTopicIds,\n };\n}\n\nexport function compileContextPackFromSnapshot(\n snapshot: CompileContextPackSnapshot\n): ContextPackV1 {\n const uniqueBeliefs = dedupeById(snapshot.beliefs);\n const uniqueQuestions = dedupeById(snapshot.questions);\n const uniqueEvidence = dedupeById(snapshot.evidence);\n const uniqueContradictions = dedupeById(snapshot.contradictions);\n const referenceTimeMs =\n resolveReferenceTimeMs(\n [snapshot.topic],\n uniqueBeliefs,\n uniqueQuestions,\n uniqueEvidence,\n uniqueContradictions,\n snapshot.entities\n ) || 0;\n\n const rankOptions = {\n effectiveWeights: snapshot.plan.effectiveWeights,\n includeJustifications: snapshot.plan.compilationMode === \"delta\",\n referenceTimeMs,\n };\n\n const invariantCandidates = uniqueBeliefs\n .filter((belief) => beliefTypeOf(belief).toLowerCase() === \"invariant\")\n .map((belief) => ({\n nodeId: String(belief._id),\n canonicalText: String(belief.canonicalText || \"\"),\n confidence:\n typeof belief.confidence === \"number\" ? belief.confidence : null,\n beliefType: beliefTypeOf(belief) || \"invariant\",\n updatedAt: belief.updatedAt || belief.createdAt || null,\n }));\n\n const invariants = rankContextSection(\n \"invariants\",\n invariantCandidates.map((candidate) => ({\n ...candidate,\n id: candidate.nodeId,\n text: `${candidate.canonicalText} ${candidate.beliefType}`,\n })),\n snapshot.plan.tokens,\n snapshot.plan.limit,\n snapshot.plan.rankingProfile,\n rankOptions\n ).map((row: any) => ({\n nodeId: row.nodeId,\n canonicalText: row.canonicalText,\n confidence: row.confidence,\n beliefType: row.beliefType,\n score: row.score,\n ...(row.justification ? { justification: row.justification } : {}),\n }));\n\n const activeBeliefCandidates = uniqueBeliefs\n .filter((belief) => (belief.status || \"active\") !== \"archived\")\n .map((belief) => ({\n nodeId: String(belief._id),\n canonicalText: String(belief.canonicalText || \"\"),\n confidence:\n typeof belief.confidence === \"number\" ? belief.confidence : null,\n beliefType: beliefTypeOf(belief) || null,\n status: belief.status || \"active\",\n updatedAt: belief.updatedAt || belief.createdAt || null,\n metadataText:\n belief.metadata && typeof belief.metadata === \"object\"\n ? JSON.stringify(belief.metadata).toLowerCase()\n : \"\",\n }));\n\n const activeBeliefs = rankContextSection(\n \"activeBeliefs\",\n activeBeliefCandidates.map((candidate) => ({\n ...candidate,\n id: candidate.nodeId,\n text: `${candidate.canonicalText} ${candidate.metadataText}`,\n })),\n snapshot.plan.tokens,\n snapshot.plan.limit,\n snapshot.plan.rankingProfile,\n rankOptions\n ).map((row: any) => ({\n nodeId: row.nodeId,\n canonicalText: row.canonicalText,\n confidence: row.confidence,\n beliefType: row.beliefType,\n status: row.status,\n updatedAt: row.updatedAt,\n score: row.score,\n ...(row.justification ? { justification: row.justification } : {}),\n }));\n\n const openQuestionCandidates = uniqueQuestions\n .map((question) => {\n const status = questionStatusOf(question);\n const metadata =\n question.metadata && typeof question.metadata === \"object\"\n ? question.metadata\n : {};\n return {\n questionId: String(question._id),\n text: String(question.canonicalText || \"\"),\n status,\n priority:\n typeof metadata.priority === \"string\" ? metadata.priority : \"medium\",\n updatedAt: question.updatedAt || question.createdAt || null,\n metadataText: JSON.stringify(metadata).toLowerCase(),\n };\n })\n .filter((row: any) => isOpenQuestion(row.status));\n\n const openQuestions = rankContextSection(\n \"openQuestions\",\n openQuestionCandidates.map((candidate) => ({\n ...candidate,\n id: candidate.questionId,\n text: `${candidate.text} ${candidate.metadataText}`,\n })),\n snapshot.plan.tokens,\n snapshot.plan.limit,\n snapshot.plan.rankingProfile,\n rankOptions\n ).map((row: any) => ({\n questionId: row.questionId,\n text: row.text,\n status: row.status,\n priority: row.priority,\n updatedAt: row.updatedAt,\n score: row.score,\n ...(row.justification ? { justification: row.justification } : {}),\n }));\n\n const evidenceCandidates = uniqueEvidence.map((item) => {\n const metadata =\n item.metadata && typeof item.metadata === \"object\" ? item.metadata : {};\n return {\n nodeId: String(item._id),\n canonicalText: String(item.canonicalText || \"\"),\n sourceUrl:\n (typeof metadata.sourceUrl === \"string\" && metadata.sourceUrl) ||\n (typeof item.sourceUrl === \"string\" && item.sourceUrl) ||\n null,\n kind:\n (typeof metadata.kind === \"string\" && metadata.kind) || \"observation\",\n createdAt: item.createdAt || null,\n updatedAt: item.updatedAt || item.createdAt || null,\n metadataText: JSON.stringify(metadata).toLowerCase(),\n };\n });\n\n const recentEvidence = rankContextSection(\n \"recentEvidence\",\n evidenceCandidates.map((candidate) => ({\n ...candidate,\n id: candidate.nodeId,\n text: `${candidate.canonicalText} ${candidate.metadataText}`,\n })),\n snapshot.plan.tokens,\n snapshot.plan.limit,\n snapshot.plan.rankingProfile,\n rankOptions\n ).map((row: any) => ({\n nodeId: row.nodeId,\n canonicalText: row.canonicalText,\n sourceUrl: row.sourceUrl,\n kind: row.kind,\n createdAt: row.createdAt,\n score: row.score,\n ...(row.justification ? { justification: row.justification } : {}),\n }));\n\n const contradictionCandidates = uniqueContradictions.map((row: any) => {\n const weight = typeof row.weight === \"number\" ? row.weight : 0;\n const severity =\n weight <= -0.9\n ? \"critical\"\n : weight <= -0.7\n ? \"high\"\n : weight <= -0.5\n ? \"medium\"\n : \"low\";\n return {\n contradictionId: String(row._id || row.globalId || \"\"),\n severity,\n status: \"active\",\n description: row.context || row.description || row.summary || \"\",\n updatedAt: row.updatedAt || row.createdAt || null,\n };\n });\n\n const contradictions = rankContextSection(\n \"contradictions\",\n contradictionCandidates.map((candidate) => ({\n ...candidate,\n id: candidate.contradictionId,\n text: `${candidate.description} ${candidate.severity}`,\n })),\n snapshot.plan.tokens,\n snapshot.plan.limit,\n snapshot.plan.rankingProfile,\n rankOptions\n ).map((row: any) => ({\n contradictionId: row.contradictionId,\n severity: row.severity,\n status: row.status,\n description: row.description,\n score: row.score,\n ...(row.justification ? { justification: row.justification } : {}),\n }));\n\n const entityCandidates: EntityCandidate[] = snapshot.entities.map((row: any) => ({\n nodeId: String(row._id),\n entityType: String(row.nodeType || \"\"),\n title: String(row.title || \"\"),\n canonicalText: String(row.canonicalText || \"\"),\n connectedBeliefCount:\n typeof row.connectedBeliefCount === \"number\" ? row.connectedBeliefCount : 0,\n connectedEvidenceCount:\n typeof row.connectedEvidenceCount === \"number\"\n ? row.connectedEvidenceCount\n : 0,\n metadata:\n row.metadata && typeof row.metadata === \"object\" ? row.metadata : {},\n updatedAt: row.updatedAt || null,\n }));\n\n const entityLimit = toPositiveInt(\n snapshot.plan.limit,\n DEFAULT_ENTITY_LIMIT,\n MAX_ENTITY_LIMIT\n );\n const rankedEntities = snapshot.plan.includeEntities\n ? rankEntities(entityCandidates, snapshot.plan.tokens, entityLimit).map(\n (row: any) => ({\n nodeId: row.nodeId,\n entityType: row.entityType,\n title: row.title,\n connectedBeliefCount: row.connectedBeliefCount,\n connectedEvidenceCount: row.connectedEvidenceCount,\n score: row.score,\n ...(Object.keys(row.metadata).length > 0\n ? { metadata: row.metadata }\n : {}),\n })\n )\n : undefined;\n\n let failureContext:\n | {\n failures: Array<{\n attemptId: string;\n approach: string;\n outcome: string;\n recordedAt: number;\n score: number;\n }>;\n suppressedIds: string[];\n }\n | undefined;\n\n if (snapshot.plan.includeFailures && snapshot.failures) {\n const allFailures = snapshot.failures.filter((node) => {\n const metadata = isRecord(node.metadata) ? node.metadata : {};\n return metadata.failedApproach === true || metadata.isFailedAttempt === true;\n });\n\n const rankedFailures = rankContextSection(\n \"recentEvidence\",\n allFailures.map((node) => ({\n id: String(node._id),\n text: String(node.canonicalText || \"\"),\n createdAt: node.createdAt || null,\n updatedAt: node.updatedAt || node.createdAt || null,\n })),\n snapshot.plan.tokens,\n 10,\n snapshot.plan.rankingProfile,\n rankOptions\n );\n\n const failures = rankedFailures.map((row: any) => {\n const original = allFailures.find((node) => String(node._id) === row.id);\n const metadata = isRecord(original?.metadata) ? original?.metadata : {};\n return {\n attemptId: row.id,\n approach: String(row.text || \"\"),\n outcome: String(metadata.errorMessage || \"Failed\"),\n recordedAt: (row.createdAt as number) || referenceTimeMs || 0,\n score: row.score,\n };\n });\n\n const failureTexts = new Set(\n failures.map((failure: any) => failure.approach.toLowerCase().slice(0, 100))\n );\n const suppressionIds = new Set<string>();\n\n if (snapshot.plan.sessionId && failureTexts.size > 0) {\n for (const evidenceRow of recentEvidence) {\n const evidenceText = evidenceRow.canonicalText.toLowerCase().slice(0, 100);\n for (const failureText of failureTexts) {\n if (\n evidenceText.includes(failureText) ||\n failureText.includes(evidenceText)\n ) {\n suppressionIds.add(evidenceRow.nodeId);\n break;\n }\n }\n }\n }\n\n if (failures.length > 0) {\n failureContext = {\n failures,\n suppressedIds: Array.from(suppressionIds),\n };\n }\n }\n\n const suppressionSet = new Set(failureContext?.suppressedIds || []);\n const effectiveEvidence =\n suppressionSet.size > 0\n ? recentEvidence.filter((row: any) => !suppressionSet.has(row.nodeId))\n : recentEvidence;\n const suppressedEvidenceIds =\n suppressionSet.size > 0\n ? recentEvidence\n .filter((row: any) => suppressionSet.has(row.nodeId))\n .map((row: any) => row.nodeId)\n : [];\n\n const summary = {\n totalBeliefs: uniqueBeliefs.length,\n invariants: invariants.length,\n openQuestions: openQuestions.length,\n evidenceItems: uniqueEvidence.length,\n contradictions: contradictions.length,\n ...(rankedEntities ? { relatedEntities: rankedEntities.length } : {}),\n scopedTopics: snapshot.plan.scopedTopicIds.length,\n descendantDepth: snapshot.plan.descendantDepth,\n query: snapshot.plan.queryText || null,\n };\n\n const injectionPolicy = buildInjectionPlan({\n tokenBudget: snapshot.plan.tokenBudget,\n invariants: invariants.map((row: any) => ({\n nodeId: row.nodeId,\n canonicalText: row.canonicalText,\n score: row.score,\n })),\n activeBeliefs: activeBeliefs.map((row: any) => ({\n nodeId: row.nodeId,\n canonicalText: row.canonicalText,\n score: row.score,\n })),\n openQuestions: openQuestions.map((row: any) => ({\n questionId: row.questionId,\n text: row.text,\n score: row.score,\n })),\n recentEvidence: effectiveEvidence.map((row: any) => ({\n nodeId: row.nodeId,\n canonicalText: row.canonicalText,\n score: row.score,\n })),\n contradictions: contradictions.map((row: any) => ({\n contradictionId: row.contradictionId,\n description: row.description,\n score: row.score,\n })),\n trackExclusions: snapshot.plan.compilationMode === \"delta\",\n });\n\n const contextNarrative = [\n \"Prefer invariant beliefs as hard constraints while reasoning over this scope.\",\n \"Treat open questions as unresolved work items and avoid claiming closure without evidence.\",\n \"Use recent evidence for implementation context before creating new beliefs.\",\n \"When contradictions exist, resolve explicitly (fork, lower confidence, or gather counter-evidence).\",\n `Apply injection token budget of ${injectionPolicy.tokenBudget} with section quotas before prompt assembly.`,\n ];\n\n const deltaReport: ContextPackDeltaReport | undefined =\n snapshot.plan.compilationMode === \"delta\" && snapshot.plan.worktreeId\n ? {\n changedItems: [] as ContextPackDeltaReport[\"changedItems\"],\n verificationObligations:\n [] as ContextPackDeltaReport[\"verificationObligations\"],\n referencePoint: snapshot.plan.worktreeId,\n }\n : undefined;\n\n const excludedItems = [\n ...(injectionPolicy.excludedItems || []),\n ...suppressedEvidenceIds.map((id: string) => ({\n id,\n section: \"recentEvidence\" as const,\n reason: \"anti_repetition\" as const,\n score: recentEvidence.find((row: any) => row.nodeId === id)?.score ?? 0,\n })),\n ];\n\n const result = {\n schemaVersion: CONTEXT_PACK_SCHEMA_VERSION,\n topicId: snapshot.plan.topicId,\n topicName: snapshot.topic.name || \"Untitled Topic\",\n scopedTopicIds: snapshot.plan.scopedTopicIds,\n generatedAt: referenceTimeMs,\n rankingProfile: snapshot.plan.rankingProfile,\n summary,\n invariants,\n activeBeliefs,\n openQuestions,\n recentEvidence: effectiveEvidence,\n contradictions,\n ...(rankedEntities ? { relatedEntities: rankedEntities } : {}),\n contextNarrative,\n injectionPolicy: {\n ...injectionPolicy,\n ...(excludedItems.length > 0 ? { excludedItems } : {}),\n },\n diagnostics: {\n itemsScored:\n invariantCandidates.length +\n activeBeliefCandidates.length +\n openQuestionCandidates.length +\n evidenceCandidates.length +\n contradictionCandidates.length +\n entityCandidates.length,\n tokenBudgetUtilization:\n injectionPolicy.tokenBudget === 0\n ? 0\n : Number(\n (\n injectionPolicy.estimatedTokens / injectionPolicy.tokenBudget\n ).toFixed(4)\n ),\n referenceTimeMs,\n },\n ...(snapshot.plan.compilationMode !== \"standard\"\n ? { compilationMode: snapshot.plan.compilationMode }\n : {}),\n ...(failureContext ? { failureContext } : {}),\n ...(deltaReport ? { deltaReport } : {}),\n ...(snapshot.plan.packWeightOverrides &&\n snapshot.plan.packWeightOverrides.length > 0\n ? { appliedWeightOverrides: snapshot.plan.packWeightOverrides }\n : {}),\n };\n\n assertContextPackSchema(result);\n return result as ContextPackV1;\n}\n"]}
|