@sixb/core 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/index.js +16 -13
- package/dist/actions/index.js.map +1 -1
- package/dist/agents/adapters.d.ts +11 -1
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/context.js +1 -1
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts +3 -0
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/index.d.ts +6 -3
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +33 -22
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/prompt.d.ts +8 -2
- package/dist/agents/prompt.d.ts.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/streams.js +2 -2
- package/dist/agents/thread-context-projection.d.ts +19 -0
- package/dist/agents/thread-context-projection.d.ts.map +1 -0
- package/dist/agents/tool-definition.d.ts.map +1 -1
- package/dist/agents/tool-result.d.ts +6 -0
- package/dist/agents/tool-result.d.ts.map +1 -0
- package/dist/agents/types.d.ts +37 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/auth/index.js +7 -5
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/index.js +1 -1
- package/dist/bootstrap/index.js +27 -24
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/{chunk-0mbx247x.js → chunk-177ed2mp.js} +241 -45
- package/dist/chunk-177ed2mp.js.map +46 -0
- package/dist/{chunk-sa4340y1.js → chunk-1ywq4hzk.js} +7 -7
- package/dist/{chunk-zg9yryhz.js → chunk-261ag4t4.js} +3 -3
- package/dist/{chunk-k9pts48t.js → chunk-3rsf30p4.js} +5 -5
- package/dist/{chunk-8ryen3p3.js → chunk-4aw0jwk0.js} +1 -1
- package/dist/{chunk-bh6k3nc6.js → chunk-4p9rh7jj.js} +1 -1
- package/dist/{chunk-34bqh420.js → chunk-4z3n1dzt.js} +59 -21
- package/dist/{chunk-34bqh420.js.map → chunk-4z3n1dzt.js.map} +4 -4
- package/dist/chunk-96swp2wd.js +47 -0
- package/dist/chunk-96swp2wd.js.map +10 -0
- package/dist/{chunk-n8herkry.js → chunk-bv41fmjn.js} +11 -11
- package/dist/{chunk-7pc8b818.js → chunk-c6cfqydk.js} +1 -1
- package/dist/{chunk-0k4avqr2.js → chunk-c8bw2b6c.js} +2 -2
- package/dist/{chunk-jaj13078.js → chunk-d2adj15j.js} +3 -33
- package/dist/{chunk-jaj13078.js.map → chunk-d2adj15j.js.map} +3 -4
- package/dist/{chunk-c6qd89g5.js → chunk-d6y2wsfg.js} +3 -3
- package/dist/chunk-dysw7nsm.js.map +1 -1
- package/dist/{chunk-st4xgxey.js → chunk-ettb0cy4.js} +150 -23
- package/dist/chunk-ettb0cy4.js.map +45 -0
- package/dist/{chunk-nnyp53zt.js → chunk-f1cyvnrk.js} +1 -1
- package/dist/chunk-fmx1sz2h.js.map +2 -2
- package/dist/{chunk-bct7hmfc.js → chunk-km4rkj4t.js} +3 -3
- package/dist/chunk-kqxgf6kv.js +898 -0
- package/dist/chunk-kqxgf6kv.js.map +15 -0
- package/dist/{chunk-qvybnnpe.js → chunk-n5x5y80a.js} +2 -2
- package/dist/{chunk-4x43bkbp.js → chunk-pxtrxm3p.js} +1 -1
- package/dist/chunk-qer6am8w.js +133 -0
- package/dist/chunk-qer6am8w.js.map +11 -0
- package/dist/{chunk-85j5ybfj.js → chunk-rdeagz6b.js} +2 -2
- package/dist/{chunk-85j5ybfj.js.map → chunk-rdeagz6b.js.map} +3 -3
- package/dist/chunk-rhrbz7d4.js +36 -0
- package/dist/chunk-rhrbz7d4.js.map +10 -0
- package/dist/{chunk-663csy96.js → chunk-t0jjkep3.js} +2 -1
- package/dist/chunk-t0jjkep3.js.map +10 -0
- package/dist/{chunk-5egfka8j.js → chunk-ttba8x6z.js} +2 -2
- package/dist/{chunk-nten49ta.js → chunk-wb4051cx.js} +3 -3
- package/dist/{chunk-nten49ta.js.map → chunk-wb4051cx.js.map} +1 -1
- package/dist/{chunk-57r1cpxx.js → chunk-xc7hq65b.js} +3 -2
- package/dist/{chunk-57r1cpxx.js.map → chunk-xc7hq65b.js.map} +3 -3
- package/dist/{chunk-ys1nse2v.js → chunk-xmggaxg4.js} +256 -231
- package/dist/{chunk-ys1nse2v.js.map → chunk-xmggaxg4.js.map} +8 -10
- package/dist/{chunk-g9t3kdtx.js → chunk-z8j83gzd.js} +1 -1
- package/dist/{chunk-57zpb99z.js → chunk-zpw39qhj.js} +1 -1
- package/dist/execution/agent.js +23 -20
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/primitive.js +23 -20
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +24 -21
- package/dist/execution/request.js.map +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -29
- package/dist/index.js.map +1 -1
- package/dist/materialization/model.d.ts +4 -0
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/edits/apply.d.ts +6 -1
- package/dist/materializer/edits/apply.d.ts.map +1 -1
- package/dist/materializer/edits/working-state.d.ts +2 -0
- package/dist/materializer/edits/working-state.d.ts.map +1 -1
- package/dist/materializer/effective/resolve.d.ts +3 -1
- package/dist/materializer/effective/resolve.d.ts.map +1 -1
- package/dist/materializer/execution/work-records.d.ts.map +1 -1
- package/dist/materializer/index.js +14 -11
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/objects/index.js +17 -14
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/index.js +2 -2
- package/dist/pipelines/index.js +14 -12
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/builders.d.ts +19 -6
- package/dist/projections/builders.d.ts.map +1 -1
- package/dist/projections/index.d.ts +2 -1
- package/dist/projections/index.d.ts.map +1 -1
- package/dist/projections/internal.d.ts +4 -1
- package/dist/projections/internal.d.ts.map +1 -1
- package/dist/projections/internal.js +17 -11
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/timestamp.d.ts +3 -0
- package/dist/projections/timestamp.d.ts.map +1 -0
- package/dist/projections/types.d.ts +9 -0
- package/dist/projections/types.d.ts.map +1 -1
- package/dist/projections/validation.d.ts.map +1 -1
- package/dist/queues/index.d.ts +1 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/types.d.ts +7 -0
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/ai-cost.d.ts +8 -0
- package/dist/runtime/ai-cost.d.ts.map +1 -0
- package/dist/storage/agents/in-memory.d.ts +18 -4
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/index.d.ts +1 -1
- package/dist/storage/agents/index.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts +31 -0
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +18 -7
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +70 -4
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/analytics.d.ts +61 -0
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -0
- package/dist/storage/ai-cost/codec.d.ts +14 -0
- package/dist/storage/ai-cost/codec.d.ts.map +1 -0
- package/dist/storage/ai-cost/errors.d.ts +7 -0
- package/dist/storage/ai-cost/errors.d.ts.map +1 -0
- package/dist/storage/ai-cost/in-memory.d.ts +32 -0
- package/dist/storage/ai-cost/in-memory.d.ts.map +1 -0
- package/dist/storage/ai-cost/index.d.ts +6 -0
- package/dist/storage/ai-cost/index.d.ts.map +1 -0
- package/dist/storage/ai-cost/provider.d.ts +7 -0
- package/dist/storage/ai-cost/provider.d.ts.map +1 -0
- package/dist/storage/ai-cost/provider.js +132 -0
- package/dist/storage/ai-cost/provider.js.map +10 -0
- package/dist/storage/ai-cost/types.d.ts +154 -0
- package/dist/storage/ai-cost/types.d.ts.map +1 -0
- package/dist/storage/ai-cost/validation.d.ts +7 -0
- package/dist/storage/ai-cost/validation.d.ts.map +1 -0
- package/dist/storage/in-memory/index.d.ts +5 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +3 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +22 -15
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/materializations.d.ts +3 -0
- package/dist/storage/ontology/materializations.d.ts.map +1 -1
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +6 -5
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +14 -12
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/agent-storage-contract.d.ts +3 -2
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-cost-storage-contract.d.ts +12 -0
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2098 -1468
- package/dist/testing/index.js.map +6 -5
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +12 -10
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +12 -2
- package/dist/workers/index.js.map +3 -3
- package/dist/workers/queue-worker.d.ts +2 -0
- package/dist/workers/queue-worker.d.ts.map +1 -1
- package/dist/workflows/execution.d.ts +3 -0
- package/dist/workflows/execution.d.ts.map +1 -1
- package/dist/workflows/index.js +24 -21
- package/dist/workflows/index.js.map +1 -1
- package/package.json +7 -1
- package/src/agents/adapters.ts +64 -23
- package/src/agents/errors.ts +2 -2
- package/src/agents/execution.ts +14 -2
- package/src/agents/index.ts +18 -1
- package/src/agents/prompt.ts +33 -5
- package/src/agents/request.ts +5 -0
- package/src/agents/thread-context-projection.ts +93 -0
- package/src/agents/tool-definition.ts +17 -2
- package/src/agents/tool-result.ts +61 -0
- package/src/agents/types.ts +47 -1
- package/src/agents/validation.ts +1 -1
- package/src/index.ts +13 -0
- package/src/materialization/model.ts +4 -0
- package/src/materializer/edits/apply.ts +55 -2
- package/src/materializer/edits/operations.ts +8 -1
- package/src/materializer/edits/working-state.ts +7 -0
- package/src/materializer/effective/resolve.ts +78 -9
- package/src/materializer/execution/work-records.ts +3 -1
- package/src/materializer/projections/entry-validator.ts +23 -1
- package/src/materializer/projections/replacement-plan.ts +2 -0
- package/src/materializer/shared/normalize.ts +16 -0
- package/src/projections/builders.ts +100 -35
- package/src/projections/index.ts +6 -0
- package/src/projections/internal.ts +4 -1
- package/src/projections/registry.ts +7 -0
- package/src/projections/revision.ts +4 -0
- package/src/projections/timestamp.ts +66 -0
- package/src/projections/types.ts +7 -0
- package/src/projections/validation.ts +24 -0
- package/src/queues/index.ts +1 -0
- package/src/queues/types.ts +8 -0
- package/src/runtime/ai-cost.ts +15 -0
- package/src/storage/agents/in-memory.ts +171 -4
- package/src/storage/agents/index.ts +5 -0
- package/src/storage/agents/provider.ts +225 -0
- package/src/storage/agents/types.ts +77 -3
- package/src/storage/ai-cost/analytics.ts +602 -0
- package/src/storage/ai-cost/codec.ts +136 -0
- package/src/storage/ai-cost/errors.ts +12 -0
- package/src/storage/ai-cost/in-memory.ts +164 -0
- package/src/storage/ai-cost/index.ts +35 -0
- package/src/storage/ai-cost/provider.ts +20 -0
- package/src/storage/ai-cost/types.ts +193 -0
- package/src/storage/ai-cost/validation.ts +337 -0
- package/src/storage/in-memory/index.ts +50 -0
- package/src/storage/index.ts +37 -0
- package/src/storage/ontology/in-memory/materializations.ts +1 -0
- package/src/storage/ontology/materializations.ts +3 -0
- package/src/storage/operation-scope.ts +1 -0
- package/src/storage/types.ts +2 -0
- package/src/testing/agent-storage-contract.ts +341 -2
- package/src/testing/ai-cost-storage-contract.ts +320 -0
- package/src/testing/index.ts +5 -0
- package/src/testing/materializer-storage-contract.ts +120 -2
- package/src/workers/queue-worker.ts +14 -1
- package/src/workflows/execution.ts +31 -10
- package/dist/chunk-0mbx247x.js.map +0 -43
- package/dist/chunk-663csy96.js.map +0 -10
- package/dist/chunk-st4xgxey.js.map +0 -45
- package/dist/chunk-vp1vc6ee.js +0 -35
- package/dist/chunk-vp1vc6ee.js.map +0 -11
- /package/dist/{chunk-sa4340y1.js.map → chunk-1ywq4hzk.js.map} +0 -0
- /package/dist/{chunk-zg9yryhz.js.map → chunk-261ag4t4.js.map} +0 -0
- /package/dist/{chunk-k9pts48t.js.map → chunk-3rsf30p4.js.map} +0 -0
- /package/dist/{chunk-8ryen3p3.js.map → chunk-4aw0jwk0.js.map} +0 -0
- /package/dist/{chunk-bh6k3nc6.js.map → chunk-4p9rh7jj.js.map} +0 -0
- /package/dist/{chunk-n8herkry.js.map → chunk-bv41fmjn.js.map} +0 -0
- /package/dist/{chunk-7pc8b818.js.map → chunk-c6cfqydk.js.map} +0 -0
- /package/dist/{chunk-0k4avqr2.js.map → chunk-c8bw2b6c.js.map} +0 -0
- /package/dist/{chunk-c6qd89g5.js.map → chunk-d6y2wsfg.js.map} +0 -0
- /package/dist/{chunk-nnyp53zt.js.map → chunk-f1cyvnrk.js.map} +0 -0
- /package/dist/{chunk-bct7hmfc.js.map → chunk-km4rkj4t.js.map} +0 -0
- /package/dist/{chunk-qvybnnpe.js.map → chunk-n5x5y80a.js.map} +0 -0
- /package/dist/{chunk-4x43bkbp.js.map → chunk-pxtrxm3p.js.map} +0 -0
- /package/dist/{chunk-5egfka8j.js.map → chunk-ttba8x6z.js.map} +0 -0
- /package/dist/{chunk-g9t3kdtx.js.map → chunk-z8j83gzd.js.map} +0 -0
- /package/dist/{chunk-57zpb99z.js.map → chunk-zpw39qhj.js.map} +0 -0
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
"import { createHash, randomUUID } from \"node:crypto\"\nimport { stableJsonStringify } from \"../../json\"\nimport {\n MaterializationConflictError,\n MaterializationValidationError,\n} from \"../../materialization/errors\"\nimport type {\n EffectiveLinkSnapshot,\n OntologyLinkRef,\n OntologyObjectRef,\n} from \"../../materialization/model\"\nimport { projectionEntityKey } from \"../../materialization/refs\"\nimport type { OntologyCommitOriginSelector, OntologyCommitWrite } from \"./commits\"\nimport type {\n FinalizeMaterializationInput,\n MaterializationEventWorkRecord,\n MaterializationLinkScopeState,\n MaterializationPlanChunk,\n MaterializationPlanHeader,\n MaterializationPlanWorkItem,\n MaterializationSession,\n MaterializationWorkRecord,\n SourceActivationWrite,\n StageMaterializationWorkInput,\n StoredLinkSlotOverride,\n StreamMaterializationWorkInput,\n} from \"./materializations\"\nimport { assertNonblank, assertTimestamp } from \"./provider-validation\"\nimport { assertWorkRecord, workUniquenessKey } from \"./provider-work\"\nimport type {\n AssertSourceMaterializationExecutionInput,\n BeginSourceMaterializationInput,\n OntologySourceRecord,\n StageSourceAssertion,\n} from \"./sources\"\n\n/**\n * Provider-neutral validation and ordering used by ontology storage implementations.\n *\n * @internal Repository storage providers only. Application code must use the capability contracts\n * from `@sixb/core/storage` instead.\n */\n\nexport { assertMaterializationHeader } from \"./provider-header-validation\"\nexport {\n assertNonblank,\n assertNonnegativeInteger,\n assertPositiveInteger,\n assertTimestamp,\n invalidCorrelation,\n} from \"./provider-validation\"\nexport {\n assertPageRows,\n assertPlanChunkCorrelations,\n assertWorkRecord,\n compareCardinalityWork,\n compareEventWork,\n comparePlanWork,\n materializationChunkRows,\n materializationPlanItems,\n workUniquenessKey,\n} from \"./provider-work\"\n\nexport interface LinkScopeAccumulator {\n readonly source: OntologyObjectRef\n readonly linkId: string\n readonly hash: ReturnType<typeof createHash>\n effectiveCount: number\n}\n\nexport function startScopeAccumulator(\n source: OntologyObjectRef,\n linkId: string\n): LinkScopeAccumulator {\n const hash = createHash(\"sha256\")\n hash.update(\"[\")\n return {\n source: structuredClone(source),\n linkId,\n hash,\n effectiveCount: 0,\n }\n}\n\nexport function appendScopeSnapshot(\n accumulator: LinkScopeAccumulator,\n snapshot: EffectiveLinkSnapshot\n): void {\n if (accumulator.effectiveCount > 0) accumulator.hash.update(\",\")\n accumulator.hash.update(\n stableJsonStringify({\n ref: snapshot.ref,\n properties: snapshot.properties ?? {},\n lastCommitId: snapshot.lastCommitId,\n })\n )\n accumulator.effectiveCount += 1\n}\n\nexport function finishScopeAccumulator(\n accumulator: LinkScopeAccumulator\n): Pick<MaterializationLinkScopeState, \"source\" | \"linkId\" | \"effectiveCount\" | \"fingerprint\"> {\n accumulator.hash.update(\"]\")\n return {\n source: accumulator.source,\n linkId: accumulator.linkId,\n effectiveCount: accumulator.effectiveCount,\n fingerprint: accumulator.hash.digest(\"hex\"),\n }\n}\n\nexport function linkSlotOverrideValue(\n value: unknown,\n scopeLabel: string\n): StoredLinkSlotOverride[\"value\"] {\n if (!isRecord(value) || typeof value.kind !== \"string\") {\n throw invalidLinkSlotOverride(scopeLabel)\n }\n if (value.kind === \"legacy-conflict\") {\n return { kind: \"legacy-conflict\" }\n }\n if (\n (value.kind !== \"set\" && value.kind !== \"clear\") ||\n !isRecord(value.target) ||\n typeof value.target.objectTypeId !== \"string\" ||\n value.target.objectTypeId.trim().length === 0 ||\n typeof value.target.primaryId !== \"string\" ||\n value.target.primaryId.trim().length === 0\n ) {\n throw invalidLinkSlotOverride(scopeLabel)\n }\n const target = {\n objectTypeId: value.target.objectTypeId,\n primaryId: value.target.primaryId,\n }\n if (value.kind === \"clear\") return { kind: \"clear\", target }\n if (value.properties === undefined) return { kind: \"set\", target }\n if (!isJsonObject(value.properties)) throw invalidLinkSlotOverride(scopeLabel)\n return { kind: \"set\", target, properties: structuredClone(value.properties) }\n}\n\nfunction invalidLinkSlotOverride(scopeLabel: string): MaterializationConflictError {\n return new MaterializationConflictError(\n \"effective-state\",\n `Cardinality-one link slot ${scopeLabel} contains an invalid stored override.`\n )\n}\n\nfunction isRecord(value: unknown): value is Readonly<Record<string, unknown>> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction isJsonObject(\n value: unknown\n): value is Readonly<Record<string, import(\"../../json\").JsonValue>> {\n return isRecord(value) && Object.values(value).every(isJsonValue)\n}\n\nfunction isJsonValue(value: unknown): value is import(\"../../json\").JsonValue {\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\") return true\n if (typeof value === \"number\") return Number.isFinite(value)\n if (Array.isArray(value)) return value.every(isJsonValue)\n return isRecord(value) && Object.values(value).every(isJsonValue)\n}\n\nexport interface ProviderReplacementSessionState {\n readonly sourceId: string\n readonly candidateMaterializationId: string\n readonly previousMaterializationId: string | null\n readonly projectionKind: \"object\" | \"link\"\n objectStreamStarted: boolean\n objectStreamCompleted: boolean\n linkStreamStarted: boolean\n linkStreamCompleted: boolean\n}\n\nexport interface ProviderMaterializationLaneState {\n started: boolean\n completed: boolean\n emittedCount: number\n}\n\nexport class ProviderMaterializationSessionState {\n readonly id = randomUUID()\n readonly providerToken = {}\n readonly workStreams: Record<\n StreamMaterializationWorkInput[\"order\"],\n ProviderMaterializationLaneState\n > = {\n apply: { started: false, completed: false, emittedCount: 0 },\n cardinality: { started: false, completed: false, emittedCount: 0 },\n event: { started: false, completed: false, emittedCount: 0 },\n }\n active = true\n workSealed = false\n appliedPlanCount = 0\n appliedOutboxCount = 0\n replacement: ProviderReplacementSessionState | null = null\n\n constructor(\n readonly header: MaterializationPlanHeader,\n readonly transactionId: object\n ) {}\n\n publicSession(): MaterializationSession {\n return { providerToken: this.providerToken }\n }\n}\n\n/**\n * Tracks the materialization sessions owned by one storage transaction.\n *\n * Applying a chunk mutates authoritative tables before `finalize()` inserts the commit ledger row.\n * The transaction must therefore fail closed while any materialization session remains unfinished.\n */\nexport class ProviderMaterializationTransactionLifecycle {\n private readonly openSessions = new Set<object>()\n private active = true\n\n register(sessionToken: object): void {\n if (!this.active) {\n throw new MaterializationValidationError(\n \"Cannot open a materialization session on an inactive storage transaction.\"\n )\n }\n this.openSessions.add(sessionToken)\n }\n\n complete(sessionToken: object): void {\n this.openSessions.delete(sessionToken)\n }\n\n assertCommittable(): void {\n if (this.openSessions.size === 0) return\n throw new MaterializationValidationError(\n `Storage transaction has ${this.openSessions.size} unfinished materialization session${\n this.openSessions.size === 1 ? \"\" : \"s\"\n }; every session returned by begin() must be finalized.`\n )\n }\n\n deactivate(): void {\n this.active = false\n this.openSessions.clear()\n }\n}\n\nexport interface PreparedMaterializationWork {\n readonly record: MaterializationWorkRecord\n readonly uniqueKey: string\n readonly columns: ReturnType<typeof materializationWorkColumns>\n}\n\nexport function prepareMaterializationWork(\n state: Pick<ProviderMaterializationSessionState, \"header\" | \"workSealed\" | \"replacement\">,\n input: StageMaterializationWorkInput\n): readonly PreparedMaterializationWork[] {\n if (state.workSealed) {\n throw new MaterializationConflictError(\n \"effective-state\",\n \"Materialization work cannot be staged after draining begins.\"\n )\n }\n const keys = new Set<string>()\n const uniqueKeys = new Set<string>()\n return input.records.map((record) => {\n assertWorkRecord(record, state.header)\n const uniqueKey = workUniquenessKey(record)\n if (keys.has(record.recordKey) || uniqueKeys.has(uniqueKey)) {\n throw duplicateMaterializationWork(record.recordKey)\n }\n if (\n record.kind === \"incident-object\" &&\n (!state.replacement || state.replacement.linkStreamStarted)\n ) {\n throw new MaterializationConflictError(\n \"effective-state\",\n \"Incident replacement work must be staged before link state is streamed.\"\n )\n }\n keys.add(record.recordKey)\n uniqueKeys.add(uniqueKey)\n return { record, uniqueKey, columns: materializationWorkColumns(record) }\n })\n}\n\nexport interface MaterializationChunkSequenceState {\n readonly workStreams: ProviderMaterializationSessionState[\"workStreams\"]\n readonly appliedPlanCount: number\n readonly appliedOutboxCount: number\n}\n\nexport function correlateMaterializationChunk(\n state: MaterializationChunkSequenceState,\n chunk: MaterializationPlanChunk,\n actualItems: readonly MaterializationPlanWorkItem[],\n expectedItems: readonly MaterializationPlanWorkItem[],\n expectedEvents: readonly MaterializationEventWorkRecord[]\n): { readonly appliedPlanCount: number; readonly appliedOutboxCount: number } {\n if (\n actualItems.length > 0 &&\n (!state.workStreams.apply.started ||\n state.appliedPlanCount + actualItems.length > state.workStreams.apply.emittedCount)\n ) {\n invalidMaterializationCorrelation(\n \"Materialization plan items cannot be applied before they are streamed.\"\n )\n }\n for (let index = 0; index < actualItems.length; index += 1) {\n if (stableJsonStringify(actualItems[index]) !== stableJsonStringify(expectedItems[index])) {\n invalidMaterializationCorrelation(\n \"Materialization plan items must be applied in exact streamed order.\"\n )\n }\n }\n\n if (\n chunk.outbox.length > 0 &&\n (!state.workStreams.event.started ||\n state.appliedOutboxCount + chunk.outbox.length > state.workStreams.event.emittedCount)\n ) {\n invalidMaterializationCorrelation(\n \"Materialization events cannot be applied before they are streamed.\"\n )\n }\n for (let index = 0; index < chunk.outbox.length; index += 1) {\n const expected = expectedEvents[index]\n const actual = chunk.outbox[index]?.envelope\n if (!expected || !actual) {\n invalidMaterializationCorrelation(\n \"Materialization outbox events must follow exact streamed order.\"\n )\n }\n const { id: _id, commitOrdinal, ...draft } = actual\n if (\n commitOrdinal !== state.appliedOutboxCount + index ||\n stableJsonStringify(draft) !== stableJsonStringify(expected.draft)\n ) {\n invalidMaterializationCorrelation(\n \"Materialization outbox events must follow exact streamed order.\"\n )\n }\n }\n return {\n appliedPlanCount: state.appliedPlanCount + actualItems.length,\n appliedOutboxCount: state.appliedOutboxCount + chunk.outbox.length,\n }\n}\n\nexport function assertMaterializationFinalizationCorrelation(\n state: Pick<ProviderMaterializationSessionState, \"header\" | \"appliedOutboxCount\">,\n input: FinalizeMaterializationInput\n): void {\n const { commit } = state.header\n const { result, sourceActivations } = input.finalization\n if (\n result.commitId !== commit.id ||\n result.kind !== commit.intent.kind ||\n result.committedAt !== commit.committedAt ||\n result.created !== true ||\n !Number.isSafeInteger(result.eventCount) ||\n result.eventCount < 0 ||\n result.eventCount !== state.appliedOutboxCount\n ) {\n invalidMaterializationCorrelation(\n \"Materialization result does not correlate with its commit intent.\"\n )\n }\n if (commit.intent.kind === \"edit\") {\n if (result.kind !== \"edit\" || result.outcomes.length !== commit.intent.operationCount) {\n invalidMaterializationCorrelation(\"Edit result does not correlate with its operation count.\")\n }\n if (sourceActivations.length !== 0) {\n invalidMaterializationCorrelation(\n \"Edit materialization cannot activate a source materialization.\"\n )\n }\n } else if (commit.intent.kind === \"projection\") {\n if (result.kind !== \"projection\" || sourceActivations.length !== 1) {\n invalidMaterializationCorrelation(\n \"Projection result requires exactly one correlated source activation.\"\n )\n }\n } else if (result.kind !== \"telemetry\" || sourceActivations.length !== 0) {\n invalidMaterializationCorrelation(\"Telemetry result does not correlate with its point intent.\")\n }\n}\n\nexport function assertMaterializationLaneCompletion(\n state: Pick<\n ProviderMaterializationSessionState,\n \"workStreams\" | \"appliedPlanCount\" | \"appliedOutboxCount\"\n >,\n counts: { readonly apply: number; readonly cardinality: number; readonly event: number }\n): void {\n if (counts.apply > 0 && !state.workStreams.apply.completed) {\n invalidMaterializationCorrelation(\"Materialization plan work was not fully streamed.\")\n }\n if (state.appliedPlanCount !== counts.apply) {\n invalidMaterializationCorrelation(\"Materialization plan work was not applied exactly once.\")\n }\n if (counts.cardinality > 0 && !state.workStreams.cardinality.completed) {\n invalidMaterializationCorrelation(\"Materialization cardinality work was not fully validated.\")\n }\n if (counts.event > 0 && !state.workStreams.event.completed) {\n invalidMaterializationCorrelation(\"Materialization event work was not fully drained.\")\n }\n if (counts.event !== state.appliedOutboxCount) {\n invalidMaterializationCorrelation(\n \"Materialization event work was not fully written to the outbox.\"\n )\n }\n}\n\nexport function assertSourceActivationCorrelation(\n state: Pick<ProviderMaterializationSessionState, \"header\" | \"replacement\">,\n activation: SourceActivationWrite\n): void {\n const { commit } = state.header\n if (\n commit.intent.kind !== \"projection\" ||\n commit.origin.kind !== \"projection\" ||\n activation.source.projectionId !== commit.intent.source.projectionId ||\n activation.source.projectionId !== commit.origin.projectionId ||\n activation.execution.projectionRunId !== commit.origin.projectionRunId ||\n activation.protocol !== \"replacement\" ||\n stableJsonStringify(activation.datasetVersion) !==\n stableJsonStringify(commit.intent.datasetVersion) ||\n activation.projectionRevision !== commit.projectionRevision ||\n activation.ownershipHash !== commit.ownershipHash ||\n activation.ontologyRevision !== commit.ontologyRevision ||\n activation.lastCommitId !== commit.id ||\n activation.updatedAt !== commit.committedAt ||\n !state.header.expected.sources.some(\n (expected) => stableJsonStringify(expected) === stableJsonStringify(activation.expected)\n )\n ) {\n invalidMaterializationCorrelation(\n \"Source activation does not correlate with its projection commit.\"\n )\n }\n const replacement = state.replacement\n if (\n !replacement ||\n replacement.sourceId !== activation.source.projectionId ||\n replacement.candidateMaterializationId !== activation.materializationId ||\n replacement.projectionKind !== activation.projectionKind ||\n (activation.projectionKind === \"object\" &&\n (!replacement.objectStreamCompleted || !replacement.linkStreamCompleted)) ||\n (activation.projectionKind === \"link\" && !replacement.linkStreamCompleted)\n ) {\n invalidMaterializationCorrelation(\n \"Source activation does not match fully streamed replacement state.\"\n )\n }\n}\n\nfunction invalidMaterializationCorrelation(message: string): never {\n throw new MaterializationValidationError(message)\n}\n\nexport function uniqueSorted<T>(\n values: readonly T[],\n identity: (value: T) => string,\n sortKey: (value: T) => string\n): T[] {\n return [...new Map(values.map((value) => [identity(value), value])).values()].sort(\n (left, right) => sortKey(left).localeCompare(sortKey(right))\n )\n}\n\nexport function sameNonnegativeCounts(actual: object, expected: object): boolean {\n const actualCounts = actual as Record<string, unknown>\n return Object.entries(expected).every(\n ([key, value]) =>\n typeof value === \"number\" &&\n Number.isSafeInteger(actualCounts[key]) &&\n actualCounts[key] === value &&\n value >= 0\n )\n}\n\nexport function effectiveConflict(message: string): MaterializationConflictError {\n return new MaterializationConflictError(\"effective-state\", message)\n}\n\nexport function materializationWorkColumns(record: MaterializationWorkRecord): {\n readonly lane: \"none\" | \"apply\" | \"cardinality\" | \"event\"\n readonly majorOrder: number\n readonly minorOrder: number\n readonly sortOne: string\n readonly sortTwo: string\n} {\n if (record.kind === \"plan\") {\n return {\n lane: \"apply\",\n majorOrder: record.applyPhase,\n minorOrder: materializationPlanKindRank(record.item.kind),\n sortOne: record.sortKey,\n sortTwo: \"\",\n }\n }\n if (record.kind === \"cardinality\") {\n return {\n lane: \"cardinality\",\n majorOrder: record.view === \"effective\" ? 0 : 1,\n minorOrder: 0,\n sortOne: record.scopeSortKey,\n sortTwo: record.linkSortKey,\n }\n }\n if (record.kind === \"event\") {\n return {\n lane: \"event\",\n majorOrder: record.eventKindRank,\n minorOrder: 0,\n sortOne: record.sortKey,\n sortTwo: \"\",\n }\n }\n return { lane: \"none\", majorOrder: 0, minorOrder: 0, sortOne: \"\", sortTwo: \"\" }\n}\n\nfunction materializationPlanKindRank(kind: MaterializationPlanWorkItem[\"kind\"]): number {\n switch (kind) {\n case \"object-override-upsert\":\n return 0\n case \"object-override-delete\":\n return 1\n case \"link-override-upsert\":\n return 2\n case \"link-override-delete\":\n return 3\n case \"link-slot-override-upsert\":\n return 4\n case \"link-slot-override-delete\":\n return 5\n case \"point-upsert\":\n return 6\n case \"link-delete\":\n return 7\n case \"object-delete\":\n return 8\n case \"object-upsert\":\n return 9\n case \"link-upsert\":\n return 10\n }\n}\n\nexport function duplicateMaterializationWork(key?: string): MaterializationConflictError {\n return new MaterializationConflictError(\n \"effective-state\",\n key === undefined\n ? \"Duplicate materialization work.\"\n : `Duplicate materialization work key '${key}'.`\n )\n}\n\nexport function canonicalJson(value: unknown): string {\n return stableJsonStringify(value)\n}\n\nexport function originColumns(origin: OntologyCommitWrite[\"origin\"]): {\n readonly kind: string\n readonly runId: string | null\n readonly batchOrdinal: number | null\n} {\n if (origin.kind === \"action\") {\n return { kind: \"action\", runId: origin.runId, batchOrdinal: null }\n }\n if (origin.kind === \"projection\") {\n return { kind: \"projection\", runId: origin.projectionRunId, batchOrdinal: null }\n }\n if (origin.kind === \"telemetry\" && origin.source.kind === \"projection\") {\n return {\n kind: \"telemetry\",\n runId: origin.source.projectionRunId,\n batchOrdinal: origin.source.batchOrdinal,\n }\n }\n return { kind: origin.kind, runId: null, batchOrdinal: null }\n}\n\nexport function originWhere(origin: OntologyCommitOriginSelector): {\n readonly kind: string\n readonly runId: string\n readonly batchOrdinal: number | null\n} {\n if (origin.kind === \"action\") {\n return { kind: origin.kind, runId: origin.actionRunId, batchOrdinal: null }\n }\n if (origin.kind === \"projection\") {\n return { kind: origin.kind, runId: origin.projectionRunId, batchOrdinal: null }\n }\n return {\n kind: origin.kind,\n runId: origin.projectionRunId,\n batchOrdinal: origin.batchOrdinal,\n }\n}\n\nexport function objectRefFromColumns(row: {\n readonly object_type_id: string\n readonly primary_id: string\n}): OntologyObjectRef {\n return { objectTypeId: row.object_type_id, primaryId: row.primary_id }\n}\n\nexport function linkRefFromColumns(row: {\n readonly source_type_id: string\n readonly source_id: string\n readonly link_id: string\n readonly target_type_id: string\n readonly target_id: string\n}): OntologyLinkRef {\n return {\n source: { objectTypeId: row.source_type_id, primaryId: row.source_id },\n linkId: row.link_id,\n target: { objectTypeId: row.target_type_id, primaryId: row.target_id },\n }\n}\n\nexport function sourceEntityKey(row: StageSourceAssertion): string {\n return projectionEntityKey(row.assertion)\n}\n\nexport interface SourceStageRow {\n readonly row: StageSourceAssertion\n readonly rootKey: string\n readonly entityKey: string\n}\n\nexport interface ReconciledSourceStageRows {\n readonly pending: readonly SourceStageRow[]\n readonly unchanged: number\n}\n\nexport function sourceStageRows(\n projectionKind: OntologySourceRecord[\"projectionKind\"],\n rows: readonly StageSourceAssertion[]\n): readonly SourceStageRow[] {\n return rows.map((row) => {\n assertSourceStagedRow(projectionKind, row)\n return sourceStageRow(row)\n })\n}\n\nexport function sourceStageRow(row: StageSourceAssertion): SourceStageRow {\n return {\n row,\n rootKey: projectionEntityKey(row.root),\n entityKey: sourceEntityKey(row),\n }\n}\n\nexport function reconcileSourceStageRows(\n rows: readonly SourceStageRow[],\n existingRows: readonly SourceStageRow[]\n): ReconciledSourceStageRows {\n const rootOrdinals = new Map(\n existingRows.map(({ rootKey, row }) => [rootKey, row.stagingOrdinal] as const)\n )\n const ordinalRoots = new Map(\n existingRows.map(({ rootKey, row }) => [row.stagingOrdinal, rootKey] as const)\n )\n const assertions = new Map(existingRows.map((row) => [row.entityKey, row.row] as const))\n const pending = new Map<string, SourceStageRow>()\n let unchanged = 0\n\n for (const staged of rows) {\n const { entityKey, rootKey, row } = staged\n const rootOrdinal = rootOrdinals.get(rootKey)\n if (rootOrdinal !== undefined && rootOrdinal !== row.stagingOrdinal) {\n throw new MaterializationValidationError(\n `Source materialization repeats root ${rootKey} at a different stream ordinal.`\n )\n }\n const ordinalRoot = ordinalRoots.get(row.stagingOrdinal)\n if (ordinalRoot !== undefined && ordinalRoot !== rootKey) {\n throw new MaterializationValidationError(\n `Source materialization repeats stream ordinal ${row.stagingOrdinal} for another root.`\n )\n }\n\n const existing = assertions.get(entityKey) ?? pending.get(entityKey)?.row\n if (existing) {\n if (canonicalJson(existing) === canonicalJson(row)) {\n unchanged += 1\n continue\n }\n throw new MaterializationValidationError(\n `Source materialization repeats asserted entity ${entityKey}.`\n )\n }\n\n rootOrdinals.set(rootKey, row.stagingOrdinal)\n ordinalRoots.set(row.stagingOrdinal, rootKey)\n pending.set(entityKey, { ...staged, row: structuredClone(row) })\n }\n\n return { pending: [...pending.values()], unchanged }\n}\n\nexport function sourceMaterializationIdentity(\n input: BeginSourceMaterializationInput\n): NonNullable<AssertSourceMaterializationExecutionInput[\"identity\"]> {\n return {\n projectionKind: input.projectionKind,\n protocol: input.protocol,\n datasetVersion: input.datasetVersion,\n projectionRevision: input.projectionRevision,\n ownershipHash: input.ownershipHash,\n ontologyRevision: input.ontologyRevision,\n }\n}\n\nexport function assertSourceBeginInput(input: BeginSourceMaterializationInput): void {\n assertSourceWriteIdentity(input)\n if (input.projectionKind !== \"object\" && input.projectionKind !== \"link\") {\n throw new MaterializationValidationError(\"Source projection kind must be 'object' or 'link'.\")\n }\n if (input.protocol !== \"replacement\") {\n throw new MaterializationValidationError(\n \"Source materialization protocol must be 'replacement'.\"\n )\n }\n assertNonblank(input.projectionRevision, \"Source projection revision\")\n assertNonblank(input.ownershipHash, \"Source ownership hash\")\n assertNonblank(input.ontologyRevision, \"Source ontology revision\")\n assertNonblank(input.datasetVersion.datasetId, \"Source dataset id\")\n assertNonblank(input.datasetVersion.versionId, \"Source dataset version id\")\n assertTimestamp(input.datasetVersion.createdAt, \"Source dataset version createdAt\", true)\n assertTimestamp(input.createdAt, \"Source createdAt\", true)\n}\n\nexport function assertSourceWriteIdentity(input: {\n readonly projectId: string\n readonly source: { readonly projectionId: string }\n readonly materializationId: string\n readonly execution: { readonly projectionRunId: string; readonly executionToken: string }\n}): void {\n assertSourceProject(input)\n assertNonblank(input.materializationId, \"Source materialization id\")\n assertSourceExecutionIdentity(input.execution.projectionRunId, input.execution.executionToken)\n}\n\nexport function assertSourceProject(input: {\n readonly projectId: string\n readonly source: { readonly projectionId: string }\n}): void {\n assertNonblank(input.projectId, \"Source project id\")\n assertNonblank(input.source.projectionId, \"Source projection id\")\n}\n\nexport function assertSourceExecutionIdentity(runId: string, token: string): void {\n assertNonblank(runId, \"Source projection run id\")\n assertNonblank(token, \"Source execution token\")\n}\n\nexport function assertSourceCandidateOwner(\n manifest: OntologySourceRecord,\n execution: { readonly projectionRunId: string; readonly executionToken: string }\n): void {\n if (\n manifest.projectionRunId !== execution.projectionRunId ||\n manifest.executionToken !== execution.executionToken\n ) {\n throw sourceConflict(\n `Source materialization '${manifest.materializationId}' is owned by another execution.`\n )\n }\n}\n\nexport function assertSourceStagedRow(\n projectionKind: OntologySourceRecord[\"projectionKind\"],\n row: StageSourceAssertion\n): void {\n if (!Number.isSafeInteger(row.stagingOrdinal) || row.stagingOrdinal < 0) {\n throw new MaterializationValidationError(\n \"Source staging ordinal must be a nonnegative safe integer.\"\n )\n }\n assertSourceEntity(row.root, \"Source root\")\n assertSourceEntity(row.assertion, \"Source assertion\")\n if (projectionKind === \"object\" && row.root.kind !== \"object\") {\n throw new MaterializationValidationError(\n \"Object projection source rows require an object root.\"\n )\n }\n if (projectionKind === \"link\" && (row.root.kind !== \"link\" || row.assertion.kind !== \"link\")) {\n throw new MaterializationValidationError(\n \"Link projection source rows require a link root and link assertion.\"\n )\n }\n}\n\nfunction assertSourceEntity(entity: StageSourceAssertion[\"root\"], label: string): void {\n if (entity.kind === \"object\") {\n assertNonblank(entity.ref.objectTypeId, `${label} object type id`)\n assertNonblank(entity.ref.primaryId, `${label} primary id`)\n return\n }\n assertNonblank(entity.ref.source.objectTypeId, `${label} source object type id`)\n assertNonblank(entity.ref.source.primaryId, `${label} source primary id`)\n assertNonblank(entity.ref.linkId, `${label} link id`)\n assertNonblank(entity.ref.target.objectTypeId, `${label} target object type id`)\n assertNonblank(entity.ref.target.primaryId, `${label} target primary id`)\n}\n\nexport function sourceEntityColumns(entity: StageSourceAssertion[\"root\"]): {\n readonly objectTypeId: string | null\n readonly primaryId: string | null\n readonly sourceTypeId: string | null\n readonly sourcePrimaryId: string | null\n readonly linkId: string | null\n readonly targetTypeId: string | null\n readonly targetPrimaryId: string | null\n} {\n if (entity.kind === \"object\") {\n return {\n objectTypeId: entity.ref.objectTypeId,\n primaryId: entity.ref.primaryId,\n sourceTypeId: null,\n sourcePrimaryId: null,\n linkId: null,\n targetTypeId: null,\n targetPrimaryId: null,\n }\n }\n return {\n objectTypeId: null,\n primaryId: null,\n sourceTypeId: entity.ref.source.objectTypeId,\n sourcePrimaryId: entity.ref.source.primaryId,\n linkId: entity.ref.linkId,\n targetTypeId: entity.ref.target.objectTypeId,\n targetPrimaryId: entity.ref.target.primaryId,\n }\n}\n\nexport function utf8SortKey(canonicalKey: string): string {\n let key = \"\"\n for (const byte of new TextEncoder().encode(canonicalKey)) {\n key += byte.toString(16).padStart(2, \"0\")\n }\n return key\n}\n\nexport function isExactStagingManifest(\n row: OntologySourceRecord,\n input: BeginSourceMaterializationInput\n): boolean {\n return (\n row.status === \"staging\" &&\n row.executionToken === input.execution.executionToken &&\n row.projectionRunId === input.execution.projectionRunId &&\n row.projectionKind === input.projectionKind &&\n row.protocol === input.protocol &&\n row.createdAt === input.createdAt &&\n row.datasetVersion.datasetId === input.datasetVersion.datasetId &&\n row.datasetVersion.versionId === input.datasetVersion.versionId &&\n row.datasetVersion.createdAt === input.datasetVersion.createdAt &&\n row.projectionRevision === input.projectionRevision &&\n row.ownershipHash === input.ownershipHash &&\n row.ontologyRevision === input.ontologyRevision\n )\n}\n\nexport function sourceConflict(message: string): MaterializationConflictError {\n return new MaterializationConflictError(\"source-materialization\", message)\n}\n",
|
|
6
6
|
"import { MaterializationValidationError } from \"../../materialization/errors\"\n\nexport function assertNonblank(value: string, label: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new MaterializationValidationError(`${label} must be nonblank.`)\n }\n}\n\nexport function assertPositiveInteger(value: number, label: string): void {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new MaterializationValidationError(`${label} must be a positive safe integer.`)\n }\n}\n\nexport function assertNonnegativeInteger(value: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new MaterializationValidationError(`${label} must be a nonnegative safe integer.`)\n }\n}\n\nexport function assertTimestamp(value: string, label: string, canonical = true): number {\n const milliseconds = Date.parse(value)\n if (\n !Number.isFinite(milliseconds) ||\n (canonical && new Date(milliseconds).toISOString() !== value)\n ) {\n throw new MaterializationValidationError(\n `${label} must be ${canonical ? \"a canonical UTC\" : \"a valid\"} timestamp.`\n )\n }\n return milliseconds\n}\n\nexport function invalidCorrelation(message: string): never {\n throw new MaterializationValidationError(message)\n}\n",
|
|
7
7
|
"import { createHash } from \"node:crypto\"\nimport { assertJsonValue, stableJsonStringify } from \"../json\"\n\nexport const ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER = Object.freeze([\n \"object.created\",\n \"object.updated\",\n \"object.deleted\",\n \"link.created\",\n \"link.updated\",\n \"link.deleted\",\n \"telemetry.appended\",\n] as const)\n\nexport type OntologyMaterializationEventKind =\n (typeof ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER)[number]\n\nexport function materializationEventKindOrdinal(kind: OntologyMaterializationEventKind): number {\n return ONTOLOGY_MATERIALIZATION_EVENT_KIND_ORDER.indexOf(kind)\n}\n\nexport function sha256Canonical(value: unknown): string {\n assertJsonValue(value, \"Canonical hash input\")\n return createHash(\"sha256\").update(stableJsonStringify(value)).digest(\"hex\")\n}\n\nexport function createRequestHash(normalizedCallerIntent: unknown): string {\n return sha256Canonical(normalizedCallerIntent)\n}\n\nexport function createCommitId(projectId: string, idempotencyKey: string): string {\n return sha256Canonical([projectId, idempotencyKey])\n}\n\nexport function createEventId(projectId: string, commitId: string, ordinal: number): string {\n return sha256Canonical([projectId, commitId, ordinal])\n}\n",
|
|
8
|
-
"import type { JsonValue } from \"../../json\"\nimport type {\n EditCommitResult,\n EffectiveLinkSnapshot,\n EffectiveObjectSnapshot,\n ExpectedLinkRevision,\n ExpectedLinkScopeRevision,\n ExpectedObjectRevision,\n LinkOverride,\n LinkSlotOverride,\n ObjectOverride,\n OntologyLinkRef,\n OntologyLinkScopeRef,\n OntologyObjectRef,\n PinnedDatasetVersion,\n ProjectionCommitResult,\n ProjectionExecution,\n ProjectionSourceRef,\n TelemetryCommitResult,\n TelemetrySeriesRef,\n} from \"../../materialization/model\"\nimport type { OntologyCommitRecord, OntologyCommitWrite } from \"./commits\"\nimport type { OntologyMaterializationEventDraft, OntologyOutboxWrite } from \"./outbox\"\nimport type { StoredSourceLinkAssertion, StoredSourceObjectAssertion } from \"./sources\"\n\nexport interface StoredObjectOverride {\n readonly ref: OntologyObjectRef\n readonly value: ObjectOverride\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface StoredLinkOverride {\n readonly ref: OntologyLinkRef\n readonly value: LinkOverride\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface StoredLinkSlotOverride {\n readonly ref: OntologyLinkScopeRef\n /** `legacy-conflict` is migration state and is rejected only when read as cardinality-one. */\n readonly value: LinkSlotOverride | { readonly kind: \"legacy-conflict\" }\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface StoredTelemetryPoint {\n readonly series: TelemetrySeriesRef\n readonly value: JsonValue\n readonly unit?: string\n readonly at: string\n readonly lastCommitId: string\n}\n\nexport interface ExpectedTimeseriesPointRevision {\n readonly series: TelemetrySeriesRef\n readonly at: string\n readonly lastCommitId: string | null\n}\n\nexport interface MaterializationObjectState {\n readonly ref: OntologyObjectRef\n readonly source: StoredSourceObjectAssertion | null\n readonly override: StoredObjectOverride | null\n readonly effective: EffectiveObjectSnapshot | null\n readonly latestTelemetry: readonly StoredTelemetryPoint[]\n}\n\nexport interface MaterializationLinkState {\n readonly ref: OntologyLinkRef\n readonly source: StoredSourceLinkAssertion | null\n readonly override: StoredLinkOverride | null\n readonly slotOverride: StoredLinkSlotOverride | null\n readonly effective: EffectiveLinkSnapshot | null\n}\n\nexport interface MaterializationLinkScopeState {\n readonly source: OntologyObjectRef\n readonly linkId: string\n /** Complete active source value for the link slot. */\n readonly sourceAssertion: StoredSourceLinkAssertion | null\n /** Managed slot authority; absence delegates to source authority. */\n readonly override: StoredLinkSlotOverride | null\n /** The single effective edge, if its endpoints are effective. */\n readonly effective: EffectiveLinkSnapshot | null\n readonly effectiveCount: number\n readonly fingerprint: string\n}\n\nexport interface MaterializationStatePage {\n readonly objects: readonly MaterializationObjectState[]\n readonly links: readonly MaterializationLinkState[]\n readonly linkScopes: readonly MaterializationLinkScopeState[]\n readonly points: readonly StoredTelemetryPoint[]\n}\n\nexport interface SourceReplacementObjectState extends Omit<MaterializationObjectState, \"source\"> {\n readonly candidateSource: StoredSourceObjectAssertion | null\n}\n\nexport interface SourceReplacementLinkState extends Omit<MaterializationLinkState, \"source\"> {\n readonly candidateSource: StoredSourceLinkAssertion | null\n /** False only for an unchanged existing member included to validate a complete link scope. */\n readonly diffRequired: boolean\n}\n\nexport interface SourceReplacementStatePage {\n readonly objects: readonly SourceReplacementObjectState[]\n readonly links: readonly SourceReplacementLinkState[]\n}\n\nexport interface MaterializationStateRequestChunk {\n readonly objects: readonly OntologyObjectRef[]\n readonly links: readonly OntologyLinkRef[]\n readonly linkScopes: readonly {\n readonly source: OntologyObjectRef\n readonly linkId: string\n }[]\n /** Provider work request for every effective link touching these objects in either direction. */\n readonly incidentObjects: readonly OntologyObjectRef[]\n readonly points: readonly {\n readonly series: TelemetrySeriesRef\n readonly at: string\n }[]\n}\n\n/**\n * Provider-local opaque handle valid only for its creating transaction until commit or rollback.\n * Providers own the token and validate its identity/liveness (for example, through a WeakMap).\n */\nexport interface MaterializationSession {\n readonly providerToken: object\n}\n\nexport interface ExpectedSourceRevision {\n readonly source: ProjectionSourceRef\n readonly activeMaterializationId: string | null\n readonly lastCommitId: string | null\n}\n\nexport interface MaterializationCasState {\n readonly sources: readonly ExpectedSourceRevision[]\n readonly objects: readonly ExpectedObjectRevision[]\n readonly links: readonly ExpectedLinkRevision[]\n readonly linkScopes: readonly ExpectedLinkScopeRevision[]\n readonly points: readonly ExpectedTimeseriesPointRevision[]\n}\n\nexport interface MaterializationPlanHeader {\n /**\n * Core must fence Action/projection execution through the matching run facade on this same\n * transaction before opening the exact-plan session. Replacement activation and telemetry\n * checkpoint writes recheck the token before commit.\n */\n readonly commit: OntologyCommitWrite\n readonly expected: MaterializationCasState\n}\n\nexport interface ExactObjectOverrideWrite {\n readonly ref: OntologyObjectRef\n readonly value: ObjectOverride\n readonly expectedLastCommitId: string | null\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface ExactLinkOverrideWrite {\n readonly ref: OntologyLinkRef\n readonly value: LinkOverride\n readonly expectedLastCommitId: string | null\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface ExactObjectOverrideDelete {\n readonly ref: OntologyObjectRef\n readonly expectedLastCommitId: string\n}\n\nexport interface ExactLinkOverrideDelete {\n readonly ref: OntologyLinkRef\n readonly expectedLastCommitId: string\n}\n\nexport interface ExactLinkSlotOverrideWrite {\n readonly ref: OntologyLinkScopeRef\n readonly value: LinkSlotOverride\n readonly expectedLastCommitId: string | null\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface ExactLinkSlotOverrideDelete {\n readonly ref: OntologyLinkScopeRef\n readonly expectedLastCommitId: string\n}\n\nexport interface ExactOverrideWrites {\n readonly objects: {\n readonly upserts: readonly ExactObjectOverrideWrite[]\n readonly deletes: readonly ExactObjectOverrideDelete[]\n }\n readonly links: {\n readonly edges: {\n readonly upserts: readonly ExactLinkOverrideWrite[]\n readonly deletes: readonly ExactLinkOverrideDelete[]\n }\n readonly slots: {\n readonly upserts: readonly ExactLinkSlotOverrideWrite[]\n readonly deletes: readonly ExactLinkSlotOverrideDelete[]\n }\n }\n}\n\nexport interface ExactEffectiveObjectWrite {\n readonly row: EffectiveObjectSnapshot\n readonly expected: ExpectedObjectRevision\n}\n\nexport interface ExactEffectiveLinkWrite {\n readonly row: EffectiveLinkSnapshot\n readonly expected: ExpectedLinkRevision\n}\n\nexport interface ExactEffectiveObjectDelete {\n readonly ref: OntologyObjectRef\n readonly expected: Extract<ExpectedObjectRevision, { readonly exists: true }>\n}\n\nexport interface ExactEffectiveLinkDelete {\n readonly ref: OntologyLinkRef\n readonly expected: Extract<ExpectedLinkRevision, { readonly exists: true }>\n}\n\nexport interface ExactEffectiveWrites {\n readonly objectUpserts: readonly ExactEffectiveObjectWrite[]\n readonly objectDeletes: readonly ExactEffectiveObjectDelete[]\n readonly linkUpserts: readonly ExactEffectiveLinkWrite[]\n readonly linkDeletes: readonly ExactEffectiveLinkDelete[]\n}\n\nexport interface ExactTimeseriesPointWrite {\n readonly point: StoredTelemetryPoint\n readonly expected: ExpectedTimeseriesPointRevision\n}\n\nexport interface ExactTimeseriesWrites {\n readonly pointUpserts: readonly ExactTimeseriesPointWrite[]\n}\n\nexport interface MaterializationPlanChunk {\n readonly overrides: ExactOverrideWrites\n readonly effective: ExactEffectiveWrites\n readonly timeseries: ExactTimeseriesWrites\n readonly outbox: readonly OntologyOutboxWrite[]\n}\n\nexport interface SourceActivationWrite {\n readonly source: ProjectionSourceRef\n readonly materializationId: string\n readonly execution: ProjectionExecution\n readonly projectionKind: \"object\" | \"link\"\n readonly protocol: \"replacement\"\n readonly datasetVersion: PinnedDatasetVersion\n readonly projectionRevision: string\n readonly ownershipHash: string\n readonly ontologyRevision: string\n readonly expected: ExpectedSourceRevision\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface MaterializationPlanFinalization {\n readonly sourceActivations: readonly SourceActivationWrite[]\n readonly result: EditCommitResult | ProjectionCommitResult | TelemetryCommitResult\n}\n\nexport interface ApplyMaterializationChunkInput {\n readonly session: MaterializationSession\n readonly chunk: MaterializationPlanChunk\n}\n\nexport interface FinalizeMaterializationInput {\n readonly session: MaterializationSession\n readonly finalization: MaterializationPlanFinalization\n}\n\nexport interface ApplyMaterializationResult {\n readonly commit: OntologyCommitRecord\n}\n\nexport interface StreamMaterializationStateInput {\n readonly session: MaterializationSession\n readonly requests: AsyncIterable<MaterializationStateRequestChunk>\n readonly pageRows: number\n}\n\nexport interface StreamSourceReplacementStateInput {\n readonly session: MaterializationSession\n readonly source: ProjectionSourceRef\n readonly candidateMaterializationId: string\n readonly entityKind: \"object\" | \"link\"\n readonly pageRows: number\n}\n\nexport type MaterializationWorkEntityKind = \"object\" | \"link\" | \"point\"\n\nexport interface MaterializationClassificationWorkRecord {\n readonly kind: \"classification\"\n readonly recordKey: string\n readonly entityKind: MaterializationWorkEntityKind\n readonly identityKey: string\n}\n\nexport interface MaterializationObjectExistenceWorkRecord {\n readonly kind: \"object-existence\"\n readonly recordKey: string\n readonly ref: OntologyObjectRef\n readonly exists: boolean\n}\n\nexport interface MaterializationIncidentObjectWorkRecord {\n readonly kind: \"incident-object\"\n readonly recordKey: string\n readonly ref: OntologyObjectRef\n}\n\nexport interface MaterializationCardinalityOccupantWorkRecord {\n readonly kind: \"cardinality\"\n readonly recordKey: string\n /** Projection candidates are validated independently from the final effective scope. */\n readonly view: \"candidate\" | \"effective\"\n readonly scopeSortKey: string\n readonly linkSortKey: string\n readonly ref: OntologyLinkRef\n readonly occupied: boolean\n}\n\nexport type MaterializationPlanWorkItem =\n | { readonly kind: \"object-override-upsert\"; readonly value: ExactObjectOverrideWrite }\n | { readonly kind: \"object-override-delete\"; readonly value: ExactObjectOverrideDelete }\n | { readonly kind: \"link-override-upsert\"; readonly value: ExactLinkOverrideWrite }\n | { readonly kind: \"link-override-delete\"; readonly value: ExactLinkOverrideDelete }\n | { readonly kind: \"link-slot-override-upsert\"; readonly value: ExactLinkSlotOverrideWrite }\n | { readonly kind: \"link-slot-override-delete\"; readonly value: ExactLinkSlotOverrideDelete }\n | { readonly kind: \"object-upsert\"; readonly value: ExactEffectiveObjectWrite }\n | { readonly kind: \"object-delete\"; readonly value: ExactEffectiveObjectDelete }\n | { readonly kind: \"link-upsert\"; readonly value: ExactEffectiveLinkWrite }\n | { readonly kind: \"link-delete\"; readonly value: ExactEffectiveLinkDelete }\n | { readonly kind: \"point-upsert\"; readonly value: ExactTimeseriesPointWrite }\n\n/**\n * Safe physical phases shared by the core planner and provider validation through\n * {@link materializationApplyPhase}.\n */\nexport type MaterializationApplyPhase = 0 | 1 | 2 | 3 | 4 | 5\n\nexport interface MaterializationPlanWorkRecord {\n readonly kind: \"plan\"\n readonly recordKey: string\n readonly applyPhase: MaterializationApplyPhase\n readonly sortKey: string\n readonly item: MaterializationPlanWorkItem\n}\n\n/**\n * Canonical physical apply phase for a plan work item kind. The application-layer work planner and\n * the provider's order validation both derive ordering from this single source so the two can never\n * drift apart. Kept in the neutral storage contract because storage must not import the materializer.\n */\nexport function materializationApplyPhase(\n kind: MaterializationPlanWorkItem[\"kind\"]\n): MaterializationApplyPhase {\n switch (kind) {\n case \"object-override-upsert\":\n case \"object-override-delete\":\n case \"link-override-upsert\":\n case \"link-override-delete\":\n case \"link-slot-override-upsert\":\n case \"link-slot-override-delete\":\n return 0\n case \"point-upsert\":\n return 1\n case \"link-delete\":\n return 2\n case \"object-delete\":\n return 3\n case \"object-upsert\":\n return 4\n case \"link-upsert\":\n return 5\n }\n}\n\nexport interface MaterializationEventWorkRecord {\n readonly kind: \"event\"\n readonly recordKey: string\n readonly eventKindRank: number\n readonly sortKey: string\n readonly draft: OntologyMaterializationEventDraft\n}\n\nexport type MaterializationWorkRecord =\n | MaterializationClassificationWorkRecord\n | MaterializationObjectExistenceWorkRecord\n | MaterializationIncidentObjectWorkRecord\n | MaterializationCardinalityOccupantWorkRecord\n | MaterializationPlanWorkRecord\n | MaterializationEventWorkRecord\n\nexport interface StageMaterializationWorkInput {\n readonly session: MaterializationSession\n /** Insert-only and batch-atomic. Staging closes when any work lane starts streaming. */\n readonly records: readonly MaterializationWorkRecord[]\n}\n\nexport interface StreamMaterializationWorkInput {\n readonly session: MaterializationSession\n /** Canonical provider-owned lanes: physical writes, cardinality occupants, then event drafts. */\n readonly order: \"apply\" | \"cardinality\" | \"event\"\n readonly pageRows: number\n}\n\nexport interface MaterializationWorkPage {\n readonly records: readonly (\n | MaterializationPlanWorkRecord\n | MaterializationCardinalityOccupantWorkRecord\n | MaterializationEventWorkRecord\n )[]\n}\n\nexport interface ReadMaterializationObjectExistenceInput {\n readonly session: MaterializationSession\n readonly refs: readonly OntologyObjectRef[]\n}\n\nexport interface MaterializationObjectExistence {\n readonly ref: OntologyObjectRef\n readonly exists: boolean\n}\n\nexport interface OntologyMaterializationStorage {\n begin(input: MaterializationPlanHeader): Promise<MaterializationSession>\n streamState(input: StreamMaterializationStateInput): AsyncIterable<MaterializationStatePage>\n streamSourceReplacementState(\n input: StreamSourceReplacementStateInput\n ): AsyncIterable<SourceReplacementStatePage>\n stageWork(input: StageMaterializationWorkInput): Promise<void>\n streamWork(input: StreamMaterializationWorkInput): AsyncIterable<MaterializationWorkPage>\n readObjectExistence(\n input: ReadMaterializationObjectExistenceInput\n ): Promise<readonly MaterializationObjectExistence[]>\n applyChunk(input: ApplyMaterializationChunkInput): Promise<void>\n /**\n * Finalizes ontology-owned state only. Execution checkpoints remain owned by their run stores\n * and are coordinated by the Materializer through the enclosing Storage transaction.\n */\n finalize(input: FinalizeMaterializationInput): Promise<ApplyMaterializationResult>\n}\n",
|
|
8
|
+
"import type { JsonValue } from \"../../json\"\nimport type {\n EditCommitResult,\n EffectiveLinkSnapshot,\n EffectiveObjectSnapshot,\n ExpectedLinkRevision,\n ExpectedLinkScopeRevision,\n ExpectedObjectRevision,\n LinkOverride,\n LinkSlotOverride,\n ObjectOverride,\n OntologyLinkRef,\n OntologyLinkScopeRef,\n OntologyObjectRef,\n PinnedDatasetVersion,\n ProjectionCommitResult,\n ProjectionExecution,\n ProjectionSourceRef,\n TelemetryCommitResult,\n TelemetrySeriesRef,\n} from \"../../materialization/model\"\nimport type { OntologyCommitRecord, OntologyCommitWrite } from \"./commits\"\nimport type { OntologyMaterializationEventDraft, OntologyOutboxWrite } from \"./outbox\"\nimport type { StoredSourceLinkAssertion, StoredSourceObjectAssertion } from \"./sources\"\n\nexport interface StoredObjectOverride {\n readonly ref: OntologyObjectRef\n readonly value: ObjectOverride\n /** Per-property Action/runtime edit time. Legacy rows fall back to `updatedAt`. */\n readonly editedAt?: Readonly<Record<string, string>>\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface StoredLinkOverride {\n readonly ref: OntologyLinkRef\n readonly value: LinkOverride\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface StoredLinkSlotOverride {\n readonly ref: OntologyLinkScopeRef\n /** `legacy-conflict` is migration state and is rejected only when read as cardinality-one. */\n readonly value: LinkSlotOverride | { readonly kind: \"legacy-conflict\" }\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface StoredTelemetryPoint {\n readonly series: TelemetrySeriesRef\n readonly value: JsonValue\n readonly unit?: string\n readonly at: string\n readonly lastCommitId: string\n}\n\nexport interface ExpectedTimeseriesPointRevision {\n readonly series: TelemetrySeriesRef\n readonly at: string\n readonly lastCommitId: string | null\n}\n\nexport interface MaterializationObjectState {\n readonly ref: OntologyObjectRef\n readonly source: StoredSourceObjectAssertion | null\n readonly override: StoredObjectOverride | null\n readonly effective: EffectiveObjectSnapshot | null\n readonly latestTelemetry: readonly StoredTelemetryPoint[]\n}\n\nexport interface MaterializationLinkState {\n readonly ref: OntologyLinkRef\n readonly source: StoredSourceLinkAssertion | null\n readonly override: StoredLinkOverride | null\n readonly slotOverride: StoredLinkSlotOverride | null\n readonly effective: EffectiveLinkSnapshot | null\n}\n\nexport interface MaterializationLinkScopeState {\n readonly source: OntologyObjectRef\n readonly linkId: string\n /** Complete active source value for the link slot. */\n readonly sourceAssertion: StoredSourceLinkAssertion | null\n /** Managed slot authority; absence delegates to source authority. */\n readonly override: StoredLinkSlotOverride | null\n /** The single effective edge, if its endpoints are effective. */\n readonly effective: EffectiveLinkSnapshot | null\n readonly effectiveCount: number\n readonly fingerprint: string\n}\n\nexport interface MaterializationStatePage {\n readonly objects: readonly MaterializationObjectState[]\n readonly links: readonly MaterializationLinkState[]\n readonly linkScopes: readonly MaterializationLinkScopeState[]\n readonly points: readonly StoredTelemetryPoint[]\n}\n\nexport interface SourceReplacementObjectState extends Omit<MaterializationObjectState, \"source\"> {\n readonly candidateSource: StoredSourceObjectAssertion | null\n}\n\nexport interface SourceReplacementLinkState extends Omit<MaterializationLinkState, \"source\"> {\n readonly candidateSource: StoredSourceLinkAssertion | null\n /** False only for an unchanged existing member included to validate a complete link scope. */\n readonly diffRequired: boolean\n}\n\nexport interface SourceReplacementStatePage {\n readonly objects: readonly SourceReplacementObjectState[]\n readonly links: readonly SourceReplacementLinkState[]\n}\n\nexport interface MaterializationStateRequestChunk {\n readonly objects: readonly OntologyObjectRef[]\n readonly links: readonly OntologyLinkRef[]\n readonly linkScopes: readonly {\n readonly source: OntologyObjectRef\n readonly linkId: string\n }[]\n /** Provider work request for every effective link touching these objects in either direction. */\n readonly incidentObjects: readonly OntologyObjectRef[]\n readonly points: readonly {\n readonly series: TelemetrySeriesRef\n readonly at: string\n }[]\n}\n\n/**\n * Provider-local opaque handle valid only for its creating transaction until commit or rollback.\n * Providers own the token and validate its identity/liveness (for example, through a WeakMap).\n */\nexport interface MaterializationSession {\n readonly providerToken: object\n}\n\nexport interface ExpectedSourceRevision {\n readonly source: ProjectionSourceRef\n readonly activeMaterializationId: string | null\n readonly lastCommitId: string | null\n}\n\nexport interface MaterializationCasState {\n readonly sources: readonly ExpectedSourceRevision[]\n readonly objects: readonly ExpectedObjectRevision[]\n readonly links: readonly ExpectedLinkRevision[]\n readonly linkScopes: readonly ExpectedLinkScopeRevision[]\n readonly points: readonly ExpectedTimeseriesPointRevision[]\n}\n\nexport interface MaterializationPlanHeader {\n /**\n * Core must fence Action/projection execution through the matching run facade on this same\n * transaction before opening the exact-plan session. Replacement activation and telemetry\n * checkpoint writes recheck the token before commit.\n */\n readonly commit: OntologyCommitWrite\n readonly expected: MaterializationCasState\n}\n\nexport interface ExactObjectOverrideWrite {\n readonly ref: OntologyObjectRef\n readonly value: ObjectOverride\n readonly editedAt: Readonly<Record<string, string>>\n readonly expectedLastCommitId: string | null\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface ExactLinkOverrideWrite {\n readonly ref: OntologyLinkRef\n readonly value: LinkOverride\n readonly expectedLastCommitId: string | null\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface ExactObjectOverrideDelete {\n readonly ref: OntologyObjectRef\n readonly expectedLastCommitId: string\n}\n\nexport interface ExactLinkOverrideDelete {\n readonly ref: OntologyLinkRef\n readonly expectedLastCommitId: string\n}\n\nexport interface ExactLinkSlotOverrideWrite {\n readonly ref: OntologyLinkScopeRef\n readonly value: LinkSlotOverride\n readonly expectedLastCommitId: string | null\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface ExactLinkSlotOverrideDelete {\n readonly ref: OntologyLinkScopeRef\n readonly expectedLastCommitId: string\n}\n\nexport interface ExactOverrideWrites {\n readonly objects: {\n readonly upserts: readonly ExactObjectOverrideWrite[]\n readonly deletes: readonly ExactObjectOverrideDelete[]\n }\n readonly links: {\n readonly edges: {\n readonly upserts: readonly ExactLinkOverrideWrite[]\n readonly deletes: readonly ExactLinkOverrideDelete[]\n }\n readonly slots: {\n readonly upserts: readonly ExactLinkSlotOverrideWrite[]\n readonly deletes: readonly ExactLinkSlotOverrideDelete[]\n }\n }\n}\n\nexport interface ExactEffectiveObjectWrite {\n readonly row: EffectiveObjectSnapshot\n readonly expected: ExpectedObjectRevision\n}\n\nexport interface ExactEffectiveLinkWrite {\n readonly row: EffectiveLinkSnapshot\n readonly expected: ExpectedLinkRevision\n}\n\nexport interface ExactEffectiveObjectDelete {\n readonly ref: OntologyObjectRef\n readonly expected: Extract<ExpectedObjectRevision, { readonly exists: true }>\n}\n\nexport interface ExactEffectiveLinkDelete {\n readonly ref: OntologyLinkRef\n readonly expected: Extract<ExpectedLinkRevision, { readonly exists: true }>\n}\n\nexport interface ExactEffectiveWrites {\n readonly objectUpserts: readonly ExactEffectiveObjectWrite[]\n readonly objectDeletes: readonly ExactEffectiveObjectDelete[]\n readonly linkUpserts: readonly ExactEffectiveLinkWrite[]\n readonly linkDeletes: readonly ExactEffectiveLinkDelete[]\n}\n\nexport interface ExactTimeseriesPointWrite {\n readonly point: StoredTelemetryPoint\n readonly expected: ExpectedTimeseriesPointRevision\n}\n\nexport interface ExactTimeseriesWrites {\n readonly pointUpserts: readonly ExactTimeseriesPointWrite[]\n}\n\nexport interface MaterializationPlanChunk {\n readonly overrides: ExactOverrideWrites\n readonly effective: ExactEffectiveWrites\n readonly timeseries: ExactTimeseriesWrites\n readonly outbox: readonly OntologyOutboxWrite[]\n}\n\nexport interface SourceActivationWrite {\n readonly source: ProjectionSourceRef\n readonly materializationId: string\n readonly execution: ProjectionExecution\n readonly projectionKind: \"object\" | \"link\"\n readonly protocol: \"replacement\"\n readonly datasetVersion: PinnedDatasetVersion\n readonly projectionRevision: string\n readonly ownershipHash: string\n readonly ontologyRevision: string\n readonly expected: ExpectedSourceRevision\n readonly lastCommitId: string\n readonly updatedAt: string\n}\n\nexport interface MaterializationPlanFinalization {\n readonly sourceActivations: readonly SourceActivationWrite[]\n readonly result: EditCommitResult | ProjectionCommitResult | TelemetryCommitResult\n}\n\nexport interface ApplyMaterializationChunkInput {\n readonly session: MaterializationSession\n readonly chunk: MaterializationPlanChunk\n}\n\nexport interface FinalizeMaterializationInput {\n readonly session: MaterializationSession\n readonly finalization: MaterializationPlanFinalization\n}\n\nexport interface ApplyMaterializationResult {\n readonly commit: OntologyCommitRecord\n}\n\nexport interface StreamMaterializationStateInput {\n readonly session: MaterializationSession\n readonly requests: AsyncIterable<MaterializationStateRequestChunk>\n readonly pageRows: number\n}\n\nexport interface StreamSourceReplacementStateInput {\n readonly session: MaterializationSession\n readonly source: ProjectionSourceRef\n readonly candidateMaterializationId: string\n readonly entityKind: \"object\" | \"link\"\n readonly pageRows: number\n}\n\nexport type MaterializationWorkEntityKind = \"object\" | \"link\" | \"point\"\n\nexport interface MaterializationClassificationWorkRecord {\n readonly kind: \"classification\"\n readonly recordKey: string\n readonly entityKind: MaterializationWorkEntityKind\n readonly identityKey: string\n}\n\nexport interface MaterializationObjectExistenceWorkRecord {\n readonly kind: \"object-existence\"\n readonly recordKey: string\n readonly ref: OntologyObjectRef\n readonly exists: boolean\n}\n\nexport interface MaterializationIncidentObjectWorkRecord {\n readonly kind: \"incident-object\"\n readonly recordKey: string\n readonly ref: OntologyObjectRef\n}\n\nexport interface MaterializationCardinalityOccupantWorkRecord {\n readonly kind: \"cardinality\"\n readonly recordKey: string\n /** Projection candidates are validated independently from the final effective scope. */\n readonly view: \"candidate\" | \"effective\"\n readonly scopeSortKey: string\n readonly linkSortKey: string\n readonly ref: OntologyLinkRef\n readonly occupied: boolean\n}\n\nexport type MaterializationPlanWorkItem =\n | { readonly kind: \"object-override-upsert\"; readonly value: ExactObjectOverrideWrite }\n | { readonly kind: \"object-override-delete\"; readonly value: ExactObjectOverrideDelete }\n | { readonly kind: \"link-override-upsert\"; readonly value: ExactLinkOverrideWrite }\n | { readonly kind: \"link-override-delete\"; readonly value: ExactLinkOverrideDelete }\n | { readonly kind: \"link-slot-override-upsert\"; readonly value: ExactLinkSlotOverrideWrite }\n | { readonly kind: \"link-slot-override-delete\"; readonly value: ExactLinkSlotOverrideDelete }\n | { readonly kind: \"object-upsert\"; readonly value: ExactEffectiveObjectWrite }\n | { readonly kind: \"object-delete\"; readonly value: ExactEffectiveObjectDelete }\n | { readonly kind: \"link-upsert\"; readonly value: ExactEffectiveLinkWrite }\n | { readonly kind: \"link-delete\"; readonly value: ExactEffectiveLinkDelete }\n | { readonly kind: \"point-upsert\"; readonly value: ExactTimeseriesPointWrite }\n\n/**\n * Safe physical phases shared by the core planner and provider validation through\n * {@link materializationApplyPhase}.\n */\nexport type MaterializationApplyPhase = 0 | 1 | 2 | 3 | 4 | 5\n\nexport interface MaterializationPlanWorkRecord {\n readonly kind: \"plan\"\n readonly recordKey: string\n readonly applyPhase: MaterializationApplyPhase\n readonly sortKey: string\n readonly item: MaterializationPlanWorkItem\n}\n\n/**\n * Canonical physical apply phase for a plan work item kind. The application-layer work planner and\n * the provider's order validation both derive ordering from this single source so the two can never\n * drift apart. Kept in the neutral storage contract because storage must not import the materializer.\n */\nexport function materializationApplyPhase(\n kind: MaterializationPlanWorkItem[\"kind\"]\n): MaterializationApplyPhase {\n switch (kind) {\n case \"object-override-upsert\":\n case \"object-override-delete\":\n case \"link-override-upsert\":\n case \"link-override-delete\":\n case \"link-slot-override-upsert\":\n case \"link-slot-override-delete\":\n return 0\n case \"point-upsert\":\n return 1\n case \"link-delete\":\n return 2\n case \"object-delete\":\n return 3\n case \"object-upsert\":\n return 4\n case \"link-upsert\":\n return 5\n }\n}\n\nexport interface MaterializationEventWorkRecord {\n readonly kind: \"event\"\n readonly recordKey: string\n readonly eventKindRank: number\n readonly sortKey: string\n readonly draft: OntologyMaterializationEventDraft\n}\n\nexport type MaterializationWorkRecord =\n | MaterializationClassificationWorkRecord\n | MaterializationObjectExistenceWorkRecord\n | MaterializationIncidentObjectWorkRecord\n | MaterializationCardinalityOccupantWorkRecord\n | MaterializationPlanWorkRecord\n | MaterializationEventWorkRecord\n\nexport interface StageMaterializationWorkInput {\n readonly session: MaterializationSession\n /** Insert-only and batch-atomic. Staging closes when any work lane starts streaming. */\n readonly records: readonly MaterializationWorkRecord[]\n}\n\nexport interface StreamMaterializationWorkInput {\n readonly session: MaterializationSession\n /** Canonical provider-owned lanes: physical writes, cardinality occupants, then event drafts. */\n readonly order: \"apply\" | \"cardinality\" | \"event\"\n readonly pageRows: number\n}\n\nexport interface MaterializationWorkPage {\n readonly records: readonly (\n | MaterializationPlanWorkRecord\n | MaterializationCardinalityOccupantWorkRecord\n | MaterializationEventWorkRecord\n )[]\n}\n\nexport interface ReadMaterializationObjectExistenceInput {\n readonly session: MaterializationSession\n readonly refs: readonly OntologyObjectRef[]\n}\n\nexport interface MaterializationObjectExistence {\n readonly ref: OntologyObjectRef\n readonly exists: boolean\n}\n\nexport interface OntologyMaterializationStorage {\n begin(input: MaterializationPlanHeader): Promise<MaterializationSession>\n streamState(input: StreamMaterializationStateInput): AsyncIterable<MaterializationStatePage>\n streamSourceReplacementState(\n input: StreamSourceReplacementStateInput\n ): AsyncIterable<SourceReplacementStatePage>\n stageWork(input: StageMaterializationWorkInput): Promise<void>\n streamWork(input: StreamMaterializationWorkInput): AsyncIterable<MaterializationWorkPage>\n readObjectExistence(\n input: ReadMaterializationObjectExistenceInput\n ): Promise<readonly MaterializationObjectExistence[]>\n applyChunk(input: ApplyMaterializationChunkInput): Promise<void>\n /**\n * Finalizes ontology-owned state only. Execution checkpoints remain owned by their run stores\n * and are coordinated by the Materializer through the enclosing Storage transaction.\n */\n finalize(input: FinalizeMaterializationInput): Promise<ApplyMaterializationResult>\n}\n",
|
|
9
9
|
"import { stableJsonStringify } from \"../../json\"\nimport { MaterializationValidationError } from \"../../materialization/errors\"\nimport { createEventId, materializationEventKindOrdinal } from \"../../materialization/identity\"\nimport type { OntologyLinkRef, OntologyObjectRef } from \"../../materialization/model\"\nimport {\n linkRefKey,\n linkRefSortKey,\n linkScopeSortKey,\n objectRefKey,\n telemetryPointKey,\n} from \"../../materialization/refs\"\nimport {\n type ExactTimeseriesPointWrite,\n type MaterializationCardinalityOccupantWorkRecord,\n type MaterializationEventWorkRecord,\n type MaterializationPlanChunk,\n type MaterializationPlanHeader,\n type MaterializationPlanWorkItem,\n type MaterializationPlanWorkRecord,\n type MaterializationWorkRecord,\n materializationApplyPhase,\n} from \"./materializations\"\nimport type { OntologyOutboxWrite } from \"./outbox\"\nimport { assertTimestamp, invalidCorrelation } from \"./provider-validation\"\n\nexport { invalidCorrelation } from \"./provider-validation\"\n\nexport function assertPageRows(value: number): void {\n if (!Number.isSafeInteger(value) || value <= 0)\n throw new MaterializationValidationError(\"Materialization page size must be positive.\")\n}\n\nexport function materializationChunkRows(chunk: MaterializationPlanChunk): number {\n return (\n chunk.overrides.objects.upserts.length +\n chunk.overrides.objects.deletes.length +\n chunk.overrides.links.edges.upserts.length +\n chunk.overrides.links.edges.deletes.length +\n chunk.overrides.links.slots.upserts.length +\n chunk.overrides.links.slots.deletes.length +\n chunk.effective.objectUpserts.length +\n chunk.effective.objectDeletes.length +\n chunk.effective.linkUpserts.length +\n chunk.effective.linkDeletes.length +\n chunk.timeseries.pointUpserts.length +\n chunk.outbox.length\n )\n}\n\nexport function materializationPlanItems(\n chunk: MaterializationPlanChunk\n): MaterializationPlanWorkItem[] {\n return [\n ...chunk.overrides.objects.upserts.map((value) => ({\n kind: \"object-override-upsert\" as const,\n value,\n })),\n ...chunk.overrides.objects.deletes.map((value) => ({\n kind: \"object-override-delete\" as const,\n value,\n })),\n ...chunk.overrides.links.edges.upserts.map((value) => ({\n kind: \"link-override-upsert\" as const,\n value,\n })),\n ...chunk.overrides.links.edges.deletes.map((value) => ({\n kind: \"link-override-delete\" as const,\n value,\n })),\n ...chunk.overrides.links.slots.upserts.map((value) => ({\n kind: \"link-slot-override-upsert\" as const,\n value,\n })),\n ...chunk.overrides.links.slots.deletes.map((value) => ({\n kind: \"link-slot-override-delete\" as const,\n value,\n })),\n ...chunk.effective.linkDeletes.map((value) => ({ kind: \"link-delete\" as const, value })),\n ...chunk.effective.objectDeletes.map((value) => ({ kind: \"object-delete\" as const, value })),\n ...chunk.effective.objectUpserts.map((value) => ({ kind: \"object-upsert\" as const, value })),\n ...chunk.effective.linkUpserts.map((value) => ({ kind: \"link-upsert\" as const, value })),\n ...chunk.timeseries.pointUpserts.map((value) => ({ kind: \"point-upsert\" as const, value })),\n ]\n}\n\nexport function assertWorkRecord(\n record: MaterializationWorkRecord,\n header: MaterializationPlanHeader\n): void {\n if (record.recordKey.trim().length === 0) {\n throw new MaterializationValidationError(\"Materialization work key must be nonblank.\")\n }\n if (record.kind === \"plan\") {\n if (!/^[0-9a-f]+$/.test(record.sortKey) || !planPhaseMatches(record)) {\n throw new MaterializationValidationError(\"Materialization plan work has an invalid order.\")\n }\n assertPlanItemCorrelation(record.item, header.commit)\n return\n }\n if (record.kind === \"event\") {\n if (\n !/^[0-9a-f]+$/.test(record.sortKey) ||\n !Number.isSafeInteger(record.eventKindRank) ||\n record.eventKindRank < 0 ||\n record.eventKindRank !== materializationEventKindOrdinal(record.draft.type) ||\n record.draft.projectId !== header.commit.projectId ||\n record.draft.commitId !== header.commit.id ||\n record.draft.occurredAt !== header.commit.committedAt ||\n stableJsonStringify(record.draft.origin) !== stableJsonStringify(header.commit.origin) ||\n stableJsonStringify(record.draft.actor ?? null) !==\n stableJsonStringify(header.commit.actor ?? null)\n ) {\n throw new MaterializationValidationError(\"Materialization event work is invalid.\")\n }\n return\n }\n if (record.kind === \"cardinality\") {\n if (\n record.scopeSortKey !== linkScopeSortKey(record.ref.source, record.ref.linkId) ||\n record.linkSortKey !== linkRefSortKey(record.ref)\n ) {\n throw new MaterializationValidationError(\n \"Materialization cardinality work has an invalid identity or order.\"\n )\n }\n return\n }\n if (record.kind === \"classification\" && record.identityKey.trim().length === 0) {\n throw new MaterializationValidationError(\"Materialization classification identity is invalid.\")\n }\n}\n\nexport function workUniquenessKey(record: MaterializationWorkRecord): string {\n switch (record.kind) {\n case \"classification\":\n return `classification:${record.entityKind}:${record.identityKey}`\n case \"object-existence\":\n return `object-existence:${objectRefKey(record.ref)}`\n case \"incident-object\":\n return `incident-object:${objectRefKey(record.ref)}`\n case \"cardinality\":\n return `cardinality:${record.view}:${record.scopeSortKey}:${record.linkSortKey}`\n case \"plan\":\n return `plan:${record.item.kind}:${record.sortKey}`\n case \"event\":\n return `event:${record.eventKindRank}:${record.sortKey}`\n }\n}\n\nexport function comparePlanWork(\n left: MaterializationPlanWorkRecord,\n right: MaterializationPlanWorkRecord\n): number {\n return (\n left.applyPhase - right.applyPhase ||\n planKindOrder(left.item.kind) - planKindOrder(right.item.kind) ||\n left.sortKey.localeCompare(right.sortKey) ||\n left.recordKey.localeCompare(right.recordKey)\n )\n}\n\nfunction planKindOrder(kind: MaterializationPlanWorkItem[\"kind\"]): number {\n switch (kind) {\n case \"object-override-upsert\":\n return 0\n case \"object-override-delete\":\n return 1\n case \"link-override-upsert\":\n return 2\n case \"link-override-delete\":\n return 3\n case \"link-slot-override-upsert\":\n return 4\n case \"link-slot-override-delete\":\n return 5\n case \"point-upsert\":\n return 6\n case \"link-delete\":\n return 7\n case \"object-delete\":\n return 8\n case \"object-upsert\":\n return 9\n case \"link-upsert\":\n return 10\n }\n}\n\nexport function compareCardinalityWork(\n left: MaterializationCardinalityOccupantWorkRecord,\n right: MaterializationCardinalityOccupantWorkRecord\n): number {\n return (\n cardinalityViewOrder(left.view) - cardinalityViewOrder(right.view) ||\n left.scopeSortKey.localeCompare(right.scopeSortKey) ||\n left.linkSortKey.localeCompare(right.linkSortKey) ||\n left.recordKey.localeCompare(right.recordKey)\n )\n}\n\nfunction cardinalityViewOrder(view: MaterializationCardinalityOccupantWorkRecord[\"view\"]): number {\n return view === \"effective\" ? 0 : 1\n}\n\nexport function compareEventWork(\n left: MaterializationEventWorkRecord,\n right: MaterializationEventWorkRecord\n): number {\n return (\n left.eventKindRank - right.eventKindRank ||\n left.sortKey.localeCompare(right.sortKey) ||\n left.recordKey.localeCompare(right.recordKey)\n )\n}\n\nfunction planPhaseMatches(record: MaterializationPlanWorkRecord): boolean {\n // Validate the submitted phase against the neutral contract's canonical mapping so a provider\n // still rejects a mis-ordered record without re-encoding the phase table here.\n return record.applyPhase === materializationApplyPhase(record.item.kind)\n}\n\nexport function assertPlanChunkCorrelations(\n chunk: MaterializationPlanChunk,\n commit: MaterializationPlanHeader[\"commit\"]\n): void {\n // Physical writes correlate through the same per-item rule the work stream validates, so the two\n // paths stay in lockstep. Outbox writes are not plan items and keep their dedicated correlation.\n for (const item of materializationPlanItems(chunk)) assertPlanItemCorrelation(item, commit)\n for (const value of chunk.outbox) assertOutboxCorrelation(value, commit)\n}\n\nfunction assertPlanItemCorrelation(\n item: MaterializationPlanWorkItem,\n commit: MaterializationPlanHeader[\"commit\"]\n): void {\n switch (item.kind) {\n case \"object-override-upsert\":\n assertCommitWriteCorrelation(\n item.value.lastCommitId,\n item.value.updatedAt,\n commit,\n \"Object override\"\n )\n return\n case \"object-override-delete\":\n return\n case \"link-override-upsert\":\n assertCommitWriteCorrelation(\n item.value.lastCommitId,\n item.value.updatedAt,\n commit,\n \"Link override\"\n )\n return\n case \"link-override-delete\":\n return\n case \"object-upsert\":\n assertObjectRefEqual(item.value.row.ref, item.value.expected.ref, \"Effective object upsert\")\n assertCommitWriteCorrelation(\n item.value.row.lastCommitId,\n item.value.row.updatedAt,\n commit,\n \"Effective object\"\n )\n return\n case \"object-delete\":\n assertObjectRefEqual(item.value.ref, item.value.expected.ref, \"Effective object delete\")\n return\n case \"link-upsert\":\n assertLinkRefEqual(item.value.row.ref, item.value.expected.ref, \"Effective link upsert\")\n assertCommitWriteCorrelation(\n item.value.row.lastCommitId,\n item.value.row.updatedAt,\n commit,\n \"Effective link\"\n )\n return\n case \"link-delete\":\n assertLinkRefEqual(item.value.ref, item.value.expected.ref, \"Effective link delete\")\n return\n case \"point-upsert\":\n assertPointWriteCorrelation(item.value, commit)\n return\n }\n}\n\nfunction assertPointWriteCorrelation(\n value: ExactTimeseriesPointWrite,\n commit: MaterializationPlanHeader[\"commit\"]\n): void {\n if (\n telemetryPointKey(value.point.series, value.point.at) !==\n telemetryPointKey(value.expected.series, value.expected.at)\n ) {\n invalidCorrelation(\"Timeseries point write does not match its expected identity.\")\n }\n assertTimestamp(value.point.at, \"Timeseries point timestamp\")\n if (value.point.lastCommitId !== commit.id) {\n invalidCorrelation(\"Timeseries point last commit id does not match its session commit.\")\n }\n}\n\nfunction assertOutboxCorrelation(\n value: OntologyOutboxWrite,\n commit: MaterializationPlanHeader[\"commit\"]\n): void {\n const { envelope } = value\n if (\n envelope.projectId !== commit.projectId ||\n envelope.commitId !== commit.id ||\n envelope.occurredAt !== commit.committedAt ||\n value.availableAt !== commit.committedAt ||\n value.createdAt !== commit.committedAt ||\n stableJsonStringify(envelope.origin) !== stableJsonStringify(commit.origin) ||\n stableJsonStringify(envelope.actor ?? null) !== stableJsonStringify(commit.actor ?? null) ||\n !Number.isSafeInteger(envelope.commitOrdinal) ||\n envelope.commitOrdinal < 0 ||\n envelope.id !== createEventId(commit.projectId, commit.id, envelope.commitOrdinal)\n ) {\n invalidCorrelation(\"Outbox event does not correlate with its materialization commit.\")\n }\n}\n\nfunction assertCommitWriteCorrelation(\n lastCommitId: string,\n updatedAt: string,\n commit: MaterializationPlanHeader[\"commit\"],\n label: string\n): void {\n if (lastCommitId !== commit.id || updatedAt !== commit.committedAt) {\n invalidCorrelation(`${label} provenance does not match its session commit.`)\n }\n}\n\nfunction assertObjectRefEqual(\n left: OntologyObjectRef,\n right: OntologyObjectRef,\n label: string\n): void {\n if (objectRefKey(left) !== objectRefKey(right)) {\n invalidCorrelation(`${label} row and expected references differ.`)\n }\n}\n\nfunction assertLinkRefEqual(left: OntologyLinkRef, right: OntologyLinkRef, label: string): void {\n if (linkRefKey(left) !== linkRefKey(right)) {\n invalidCorrelation(`${label} row and expected references differ.`)\n }\n}\n",
|
|
10
10
|
"import type {\n EditOntologyCommitIntent,\n OntologyCommitWrite,\n ProjectionOntologyCommitIntent,\n TelemetryOntologyCommitIntent,\n} from \"./commits\"\nimport type { MaterializationPlanHeader } from \"./materializations\"\nimport {\n assertNonblank,\n assertNonnegativeInteger,\n assertPositiveInteger,\n assertTimestamp,\n invalidCorrelation,\n} from \"./provider-validation\"\n\n/** Validates provider-neutral commit identity and intent/origin correlation. */\nexport function assertMaterializationHeader({ commit }: MaterializationPlanHeader): void {\n assertCommitEnvelope(commit)\n\n switch (commit.intent.kind) {\n case \"edit\":\n assertEditCommit(commit, commit.intent)\n break\n case \"projection\":\n assertProjectionCommit(commit, commit.intent)\n break\n case \"telemetry\":\n assertTelemetryCommit(commit, commit.intent)\n break\n }\n}\n\nfunction assertCommitEnvelope(commit: OntologyCommitWrite): void {\n assertNonblank(commit.projectId, \"Materialization project id\")\n assertNonblank(commit.id, \"Materialization commit id\")\n assertNonblank(commit.idempotencyKey, \"Materialization idempotency key\")\n assertNonblank(commit.requestHash, \"Materialization request hash\")\n assertNonblank(commit.executionId, \"Materialization execution id\")\n assertNonblank(commit.ontologyRevision, \"Materialization ontology revision\")\n assertTimestamp(commit.committedAt, \"Materialization commit time\")\n}\n\nfunction assertEditCommit(commit: OntologyCommitWrite, intent: EditOntologyCommitIntent): void {\n assertNonnegativeInteger(intent.operationCount, \"Edit commit operation count\")\n\n switch (commit.origin.kind) {\n case \"action\":\n assertNonblank(commit.origin.actionId, \"Action origin action id\")\n assertNonblank(commit.origin.runId, \"Action origin run id\")\n return\n case \"runtime\":\n assertNonblank(commit.origin.requestId, \"Runtime origin request id\")\n return\n default:\n invalidCorrelation(\"Edit commit origin does not correlate with its intent.\")\n }\n}\n\nfunction assertProjectionCommit(\n commit: OntologyCommitWrite,\n intent: ProjectionOntologyCommitIntent\n): void {\n if (commit.origin.kind !== \"projection\") {\n invalidCorrelation(\"Projection commit origin does not correlate with its intent.\")\n }\n\n assertProjectionSemanticMetadata(commit)\n assertNonblank(commit.origin.projectionRunId, \"Projection run id\")\n assertTimestamp(intent.datasetVersion.createdAt, \"Projection dataset version createdAt\")\n\n if (commit.origin.projectionId !== intent.source.projectionId) {\n invalidCorrelation(\"Projection commit origin does not match its projection.\")\n }\n if (\n commit.origin.datasetId !== intent.datasetVersion.datasetId ||\n commit.origin.datasetVersionId !== intent.datasetVersion.versionId\n ) {\n invalidCorrelation(\"Projection commit origin does not match its dataset version.\")\n }\n}\n\nfunction assertTelemetryCommit(\n commit: OntologyCommitWrite,\n intent: TelemetryOntologyCommitIntent\n): void {\n if (commit.origin.kind !== \"telemetry\") {\n invalidCorrelation(\"Telemetry commit origin does not correlate with its intent.\")\n }\n\n assertTelemetryPointCounts(intent)\n if (intent.source.kind === \"runtime\") {\n assertRuntimeTelemetryCommit(commit)\n return\n }\n assertProjectionTelemetryCommit(commit, intent.source, intent.inputPointCount)\n}\n\nfunction assertTelemetryPointCounts(intent: TelemetryOntologyCommitIntent): void {\n assertNonnegativeInteger(intent.pointCount, \"Telemetry commit point count\")\n assertNonnegativeInteger(intent.inputPointCount, \"Telemetry commit input point count\")\n if (intent.inputPointCount < intent.pointCount) {\n invalidCorrelation(\n \"Telemetry input point count cannot be lower than its canonical point count.\"\n )\n }\n}\n\nfunction assertRuntimeTelemetryCommit(commit: OntologyCommitWrite): void {\n if (commit.origin.kind !== \"telemetry\" || commit.origin.source.kind !== \"runtime\") {\n invalidCorrelation(\"Runtime telemetry origin does not correlate with its intent.\")\n }\n if (commit.projectionRevision !== undefined || commit.ownershipHash !== undefined) {\n invalidCorrelation(\"Runtime telemetry commit contains projection-only metadata.\")\n }\n assertNonblank(commit.origin.source.requestId, \"Runtime telemetry request id\")\n}\n\nfunction assertProjectionTelemetryCommit(\n commit: OntologyCommitWrite,\n source: Extract<TelemetryOntologyCommitIntent[\"source\"], { readonly kind: \"projection\" }>,\n inputPointCount: number\n): void {\n if (commit.origin.kind !== \"telemetry\" || commit.origin.source.kind !== \"projection\") {\n invalidCorrelation(\"Projection telemetry origin does not correlate with its intent.\")\n }\n\n const origin = commit.origin.source\n assertProjectionSemanticMetadata(commit)\n assertNonblank(origin.projectionRunId, \"Telemetry projection run id\")\n assertTimestamp(source.datasetVersion.createdAt, \"Telemetry dataset version createdAt\")\n assertProjectionTelemetryBatch(source, inputPointCount)\n\n if (origin.projectionId !== source.projection.projectionId) {\n invalidCorrelation(\"Projection telemetry origin does not match its projection.\")\n }\n if (\n origin.datasetId !== source.datasetVersion.datasetId ||\n origin.datasetVersionId !== source.datasetVersion.versionId\n ) {\n invalidCorrelation(\"Projection telemetry origin does not match its dataset version.\")\n }\n if (origin.batchOrdinal !== source.batchOrdinal) {\n invalidCorrelation(\"Projection telemetry origin does not match its batch ordinal.\")\n }\n}\n\nfunction assertProjectionTelemetryBatch(\n source: Extract<TelemetryOntologyCommitIntent[\"source\"], { readonly kind: \"projection\" }>,\n inputPointCount: number\n): void {\n assertNonnegativeInteger(source.batchOrdinal, \"Projection telemetry batch ordinal\")\n assertPositiveInteger(source.sourceRowCount, \"Projection telemetry source row count\")\n assertNonnegativeInteger(source.sourceRowsSkipped, \"Projection telemetry skipped row count\")\n\n if (source.sourceRowsSkipped > source.sourceRowCount) {\n invalidCorrelation(\"Projection telemetry skipped rows exceed its source row count.\")\n }\n if (source.sourceRowCount !== inputPointCount + source.sourceRowsSkipped) {\n invalidCorrelation(\n \"Projection telemetry source row count does not match input points plus skipped rows.\"\n )\n }\n if (typeof source.inputExhausted !== \"boolean\") {\n invalidCorrelation(\"Projection telemetry input exhaustion marker is invalid.\")\n }\n}\n\nfunction assertProjectionSemanticMetadata(commit: OntologyCommitWrite): void {\n if (commit.projectionRevision === undefined || commit.ownershipHash === undefined) {\n invalidCorrelation(\"Projection materialization is missing semantic identity metadata.\")\n }\n assertNonblank(commit.projectionRevision, \"Projection revision\")\n assertNonblank(commit.ownershipHash, \"Projection ownership hash\")\n}\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "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",
|
|
12
|
+
"mappings": "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",
|
|
13
13
|
"debugId": "6F6BF584C799DF4664756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
createPrimitiveExecutionRecord,
|
|
7
7
|
ensureExecutionRecord,
|
|
8
8
|
executionRecordInputFromRuntime
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4aw0jwk0.js";
|
|
10
10
|
import {
|
|
11
11
|
SYNC_RUN_FAILURE_CODES
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-xmggaxg4.js";
|
|
13
13
|
import {
|
|
14
14
|
SyncRunError
|
|
15
15
|
} from "./chunk-62c7t4jc.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
assertAuthorized,
|
|
25
25
|
assertProviderAccess,
|
|
26
26
|
resolveExecutionScopeAuthorization
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-4z3n1dzt.js";
|
|
28
28
|
import {
|
|
29
29
|
createSixbError,
|
|
30
30
|
isSixbError,
|