@sixb/core 0.1.17 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/dist/actions/commit-edits.d.ts +7 -19
- package/dist/actions/commit-edits.d.ts.map +1 -1
- package/dist/actions/errors.d.ts +0 -3
- package/dist/actions/errors.d.ts.map +1 -1
- package/dist/actions/execution.d.ts +10 -3
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.d.ts +6 -9
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +56 -52
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +1 -1
- package/dist/actions/request.d.ts +14 -25
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run/context.d.ts +40 -0
- package/dist/actions/run/context.d.ts.map +1 -0
- package/dist/actions/run/edits-commit.d.ts +31 -0
- package/dist/actions/run/edits-commit.d.ts.map +1 -0
- package/dist/actions/run/effects.d.ts +23 -0
- package/dist/actions/run/effects.d.ts.map +1 -0
- package/dist/actions/run/execute.d.ts +30 -0
- package/dist/actions/run/execute.d.ts.map +1 -0
- package/dist/actions/run/executor.d.ts +95 -0
- package/dist/actions/run/executor.d.ts.map +1 -0
- package/dist/actions/run/normalize.d.ts +36 -0
- package/dist/actions/run/normalize.d.ts.map +1 -0
- package/dist/actions/run/phase-types.d.ts +18 -0
- package/dist/actions/run/phase-types.d.ts.map +1 -0
- package/dist/actions/run/phases.d.ts +20 -0
- package/dist/actions/run/phases.d.ts.map +1 -0
- package/dist/actions/run/run-action.d.ts +25 -0
- package/dist/actions/run/run-action.d.ts.map +1 -0
- package/dist/actions/run/signals.d.ts +67 -0
- package/dist/actions/run/signals.d.ts.map +1 -0
- package/dist/actions/run/state.d.ts +47 -0
- package/dist/actions/run/state.d.ts.map +1 -0
- package/dist/actions/run/types.d.ts +54 -0
- package/dist/actions/run/types.d.ts.map +1 -0
- package/dist/actions/run/writeback.d.ts +17 -0
- package/dist/actions/run/writeback.d.ts.map +1 -0
- package/dist/actions/run-authorization.d.ts +1 -1
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/actions/run-persistence.d.ts +53 -0
- package/dist/actions/run-persistence.d.ts.map +1 -0
- package/dist/actions/types/context.d.ts +10 -0
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/agents/adapters.d.ts +7 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +7 -0
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context/entries.d.ts +10 -1
- package/dist/agents/context/entries.d.ts.map +1 -1
- package/dist/agents/context/index.d.ts +1 -1
- package/dist/agents/context/index.d.ts.map +1 -1
- package/dist/agents/context/index.js +4 -2
- package/dist/agents/context/index.js.map +1 -1
- package/dist/agents/context-compaction.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/index.d.ts +6 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +63 -59
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +8 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/request.d.ts +19 -5
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts +41 -0
- package/dist/agents/skills.d.ts.map +1 -0
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/agents/types.d.ts +33 -4
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/auth/index.js +12 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/types.d.ts +6 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/event-visibility.d.ts.map +1 -1
- package/dist/authorization/index.js +6 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +1 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +7 -0
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/execution.d.ts.map +1 -1
- package/dist/blob-storage/file-content.d.ts +18 -0
- package/dist/blob-storage/file-content.d.ts.map +1 -0
- package/dist/blob-storage/index.d.ts +1 -1
- package/dist/blob-storage/index.d.ts.map +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +2 -0
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +16 -4
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +8 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -0
- package/dist/blob-storage/types.d.ts +12 -1
- package/dist/blob-storage/types.d.ts.map +1 -1
- package/dist/blob-storage/validation.d.ts +6 -0
- package/dist/blob-storage/validation.d.ts.map +1 -1
- package/dist/bootstrap/agent-context.d.ts +33 -0
- package/dist/bootstrap/agent-context.d.ts.map +1 -0
- package/dist/bootstrap/discovery.d.ts +23 -3
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +285 -77
- package/dist/bootstrap/index.js.map +4 -3
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-t9shqx3w.js → chunk-1f7wpmyp.js} +143 -7
- package/dist/chunk-1f7wpmyp.js.map +14 -0
- package/dist/{chunk-jjrn5v0p.js → chunk-1k89ecfr.js} +1 -1
- package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
- package/dist/chunk-1sr8ryzk.js.map +11 -0
- package/dist/{chunk-s7ftxrdr.js → chunk-29yx306f.js} +20 -3
- package/dist/{chunk-s7ftxrdr.js.map → chunk-29yx306f.js.map} +3 -3
- package/dist/{chunk-svabwqdq.js → chunk-3gnrh4ve.js} +44 -420
- package/dist/{chunk-svabwqdq.js.map → chunk-3gnrh4ve.js.map} +9 -13
- package/dist/{chunk-4ra628t7.js → chunk-3zxk45er.js} +70 -6
- package/dist/{chunk-4ra628t7.js.map → chunk-3zxk45er.js.map} +5 -4
- package/dist/{chunk-pja9jfz6.js → chunk-4tcx876c.js} +126 -64
- package/dist/chunk-4tcx876c.js.map +19 -0
- package/dist/{chunk-vre348sb.js → chunk-52bk93x8.js} +2 -2
- package/dist/{chunk-4gmng3vf.js → chunk-5e43w60z.js} +2 -2
- package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
- package/dist/chunk-6gmfggss.js.map +10 -0
- package/dist/{chunk-33saed7g.js → chunk-7kg3k1m9.js} +1 -1
- package/dist/{chunk-7ecp4v7a.js → chunk-7mbzgd9m.js} +10 -4
- package/dist/{chunk-7ecp4v7a.js.map → chunk-7mbzgd9m.js.map} +3 -3
- package/dist/{chunk-b9affek3.js → chunk-7n440zgt.js} +30 -30
- package/dist/{chunk-b9affek3.js.map → chunk-7n440zgt.js.map} +4 -4
- package/dist/{chunk-kkqwzy6h.js → chunk-7t429e3f.js} +1 -1
- package/dist/{chunk-xcy5ddha.js → chunk-80mc0971.js} +356 -301
- package/dist/chunk-80mc0971.js.map +15 -0
- package/dist/{chunk-gf7yht60.js → chunk-85yvv5n0.js} +27 -10
- package/dist/chunk-85yvv5n0.js.map +12 -0
- package/dist/{chunk-6fsr7y93.js → chunk-8mx7qw3y.js} +14 -13
- package/dist/{chunk-6fsr7y93.js.map → chunk-8mx7qw3y.js.map} +4 -4
- package/dist/{chunk-kpx7jrmn.js → chunk-91mg3nj9.js} +59 -59
- package/dist/{chunk-kpx7jrmn.js.map → chunk-91mg3nj9.js.map} +5 -5
- package/dist/{chunk-2am3db31.js → chunk-9gyp8hg1.js} +2 -2
- package/dist/{chunk-ewqa58h9.js → chunk-9k93ah50.js} +4 -4
- package/dist/{chunk-ewqa58h9.js.map → chunk-9k93ah50.js.map} +1 -1
- package/dist/{chunk-4wn7bxxa.js → chunk-9ybhtmg4.js} +1 -1
- package/dist/{chunk-fc5zfxy1.js → chunk-a40ad1ft.js} +5 -13
- package/dist/chunk-a40ad1ft.js.map +10 -0
- package/dist/{chunk-dam456ve.js → chunk-aff7cyea.js} +431 -70
- package/dist/{chunk-dam456ve.js.map → chunk-aff7cyea.js.map} +10 -7
- package/dist/{chunk-y2aq6ag9.js → chunk-b38szspf.js} +5 -14
- package/dist/chunk-b38szspf.js.map +11 -0
- package/dist/{chunk-r2y23egw.js → chunk-bkpke1sg.js} +1 -10
- package/dist/chunk-bkpke1sg.js.map +10 -0
- package/dist/{chunk-xyvy73tj.js → chunk-bpgy64fw.js} +8 -3
- package/dist/chunk-bpgy64fw.js.map +12 -0
- package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
- package/dist/{chunk-5thzcb8g.js → chunk-c85m1hyj.js} +2 -2
- package/dist/{chunk-e67ynxcr.js → chunk-d2ync1v3.js} +5 -5
- package/dist/{chunk-3rrezgyc.js → chunk-dnmadg9k.js} +2 -2
- package/dist/chunk-enpsx8k5.js +127 -0
- package/dist/chunk-enpsx8k5.js.map +10 -0
- package/dist/chunk-ey3pyej1.js +8807 -0
- package/dist/chunk-ey3pyej1.js.map +106 -0
- package/dist/{chunk-vjcd8d27.js → chunk-fa02jy15.js} +1 -1
- package/dist/{chunk-9se093qz.js → chunk-gc4ntf7d.js} +4 -4
- package/dist/{chunk-9se093qz.js.map → chunk-gc4ntf7d.js.map} +1 -1
- package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
- package/dist/chunk-hkc3jct7.js.map +10 -0
- package/dist/{chunk-rpxz486p.js → chunk-hvsb78a1.js} +24 -8
- package/dist/{chunk-rpxz486p.js.map → chunk-hvsb78a1.js.map} +3 -3
- package/dist/{chunk-5yd8cchh.js → chunk-j2bp5ryw.js} +55 -246
- package/dist/{chunk-5yd8cchh.js.map → chunk-j2bp5ryw.js.map} +4 -4
- package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
- package/dist/chunk-jhm3zsa7.js.map +12 -0
- package/dist/{chunk-w9yycd3t.js → chunk-kg5j6fct.js} +4 -8
- package/dist/{chunk-w9yycd3t.js.map → chunk-kg5j6fct.js.map} +3 -3
- package/dist/{chunk-vp3z1ckh.js → chunk-kyzq4wy9.js} +7 -7
- package/dist/{chunk-wr8qp979.js → chunk-m427qgq0.js} +9 -5
- package/dist/{chunk-wr8qp979.js.map → chunk-m427qgq0.js.map} +4 -3
- package/dist/{chunk-c2rga5cx.js → chunk-mfs23znk.js} +1 -1
- package/dist/{chunk-e1c18xjx.js → chunk-nq6gpjt7.js} +4 -45
- package/dist/{chunk-e1c18xjx.js.map → chunk-nq6gpjt7.js.map} +5 -5
- package/dist/{chunk-a7er86jd.js → chunk-nre82s12.js} +1 -1
- package/dist/{chunk-1hqwggsn.js → chunk-nzapm6p0.js} +1 -2
- package/dist/chunk-nzapm6p0.js.map +12 -0
- package/dist/{chunk-wt4szfec.js → chunk-pbcbn83d.js} +4 -4
- package/dist/{chunk-wt4szfec.js.map → chunk-pbcbn83d.js.map} +1 -1
- package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
- package/dist/chunk-pfp1txq2.js.map +11 -0
- package/dist/chunk-pqajwytd.js.map +2 -2
- package/dist/{chunk-f1xh7a32.js → chunk-q1vkr2ys.js} +4 -4
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-23xs4qp9.js → chunk-rhg02hxq.js} +4 -4
- package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
- package/dist/chunk-rz53yb4v.js.map +14 -0
- package/dist/{chunk-aq39q04r.js → chunk-s16apyk9.js} +104 -18
- package/dist/chunk-s16apyk9.js.map +16 -0
- package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
- package/dist/chunk-s54c868q.js.map +12 -0
- package/dist/{chunk-k4g51s47.js → chunk-t6vq7bff.js} +5 -5
- package/dist/{chunk-sk0hcjsz.js → chunk-tjb1mk5t.js} +3 -3
- package/dist/{chunk-cnb5kv05.js → chunk-tpn40322.js} +23 -8
- package/dist/chunk-tpn40322.js.map +19 -0
- package/dist/{chunk-rx7h5fdx.js → chunk-v9xd5wzd.js} +1 -1
- package/dist/{chunk-2vhg6ysa.js → chunk-vyf9kfqf.js} +1 -1
- package/dist/chunk-wwdfe68s.js +128 -0
- package/dist/chunk-wwdfe68s.js.map +11 -0
- package/dist/{chunk-jnfxmr3f.js → chunk-wz0xs816.js} +6 -6
- package/dist/{chunk-jnfxmr3f.js.map → chunk-wz0xs816.js.map} +1 -1
- package/dist/chunk-xt1zt7gv.js +471 -0
- package/dist/chunk-xt1zt7gv.js.map +13 -0
- package/dist/chunk-y0c4e6ex.js +16 -0
- package/dist/chunk-y0c4e6ex.js.map +10 -0
- package/dist/{chunk-5be2ath4.js → chunk-y7rqfrgg.js} +20 -138
- package/dist/{chunk-5be2ath4.js.map → chunk-y7rqfrgg.js.map} +8 -9
- package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
- package/dist/chunk-yw9pyg66.js.map +11 -0
- package/dist/{chunk-dfm066qg.js → chunk-yxd3nnqt.js} +2 -29
- package/dist/chunk-yxd3nnqt.js.map +11 -0
- package/dist/{chunk-70jmg2zx.js → chunk-yzwja0mj.js} +4 -19
- package/dist/{chunk-70jmg2zx.js.map → chunk-yzwja0mj.js.map} +3 -3
- package/dist/{chunk-fggq3d9k.js → chunk-zrmy8zvw.js} +66 -47
- package/dist/{chunk-fggq3d9k.js.map → chunk-zrmy8zvw.js.map} +4 -4
- package/dist/datasets/builders.d.ts +12 -1
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +27 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -1
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/types.d.ts +2 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +5 -0
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +10 -5
- package/dist/datasets/write.js.map +1 -1
- package/dist/deploy/index.d.ts +1 -1
- package/dist/deploy/index.d.ts.map +1 -1
- package/dist/deploy/internal.js +10 -8
- package/dist/deploy/internal.js.map +4 -4
- package/dist/deploy/services.d.ts +1 -2
- package/dist/deploy/services.d.ts.map +1 -1
- package/dist/deploy/types.d.ts +6 -5
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/validation.d.ts.map +1 -1
- package/dist/edits/index.js +3 -5
- package/dist/edits/index.js.map +1 -1
- package/dist/edits/properties.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +3 -3
- package/dist/error-reporting/types.d.ts +2 -9
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +12 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/definitions.d.ts +0 -5
- package/dist/events/definitions.d.ts.map +1 -1
- package/dist/events/execution.d.ts +2 -1
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.d.ts +3 -3
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +6 -8
- package/dist/events/index.js.map +1 -1
- package/dist/events/scope.d.ts +0 -1
- package/dist/events/scope.d.ts.map +1 -1
- package/dist/events/scope.js +1 -1
- package/dist/events/selectors/builder.d.ts +1 -8
- package/dist/events/selectors/builder.d.ts.map +1 -1
- package/dist/events/selectors/index.d.ts +2 -2
- package/dist/events/selectors/index.d.ts.map +1 -1
- package/dist/events/selectors/index.js +2 -2
- package/dist/events/selectors/predicate.d.ts.map +1 -1
- package/dist/events/selectors/types.d.ts +2 -33
- package/dist/events/selectors/types.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +1 -12
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/events/types/objects.d.ts +5 -0
- package/dist/events/types/objects.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +10 -0
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +50 -48
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +6 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +60 -88
- package/dist/execution/primitive.js.map +3 -4
- package/dist/execution/request.js +46 -46
- package/dist/execution/request.js.map +1 -1
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +12 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +120 -124
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/index.js +8 -5
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/materialization/index.js +3 -3
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/model.d.ts +19 -6
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/index.js +35 -32
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/catalog.d.ts +1 -1
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +6 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/index.js +26 -23
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +4 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/language-model.d.ts +6 -0
- package/dist/models/language-model.d.ts.map +1 -1
- package/dist/objects/action/errors.d.ts +0 -9
- package/dist/objects/action/errors.d.ts.map +1 -1
- package/dist/objects/action/index.d.ts +3 -3
- package/dist/objects/action/index.d.ts.map +1 -1
- package/dist/objects/action/request.d.ts +2 -8
- package/dist/objects/action/request.d.ts.map +1 -1
- package/dist/objects/context/index.d.ts +1 -1
- package/dist/objects/context/index.d.ts.map +1 -1
- package/dist/objects/context/types.d.ts +6 -0
- package/dist/objects/context/types.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +2 -3
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +49 -30
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/materializer-adapter.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +41 -0
- package/dist/objects/property-clearance.d.ts.map +1 -0
- package/dist/objects/query/executor.d.ts +3 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +34 -31
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/validate.d.ts +10 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/file-handle.d.ts +6 -0
- package/dist/objects/sdk/file-handle.d.ts.map +1 -0
- package/dist/objects/sdk/object-handle.d.ts +2 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -0
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/service/index.d.ts +0 -1
- package/dist/objects/service/index.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +12 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +35 -0
- package/dist/ontology/docs-markdown.d.ts.map +1 -0
- package/dist/ontology/docs.d.ts +50 -0
- package/dist/ontology/docs.d.ts.map +1 -0
- package/dist/ontology/index.js +7 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +19 -0
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +3 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +276 -3
- package/dist/ontology/internal.js.map +4 -3
- package/dist/ontology/tokens.d.ts +8 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +5 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +7 -0
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +34 -31
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +27 -24
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +1 -2
- package/dist/queues/in-memory.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/index.js +1 -1
- package/dist/queues/types.d.ts +0 -7
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +11 -2
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +3 -1
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +13 -2
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.js +30 -28
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/locale.d.ts +9 -0
- package/dist/runtime/locale.d.ts.map +1 -0
- package/dist/runtime/resolve-definitions.d.ts +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +46 -39
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +7 -6
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/runtime.d.ts +3 -0
- package/dist/scheduler/runtime.d.ts.map +1 -1
- package/dist/schedules/builders.d.ts.map +1 -1
- package/dist/schedules/index.js +3 -3
- package/dist/schedules/runtime.d.ts.map +1 -1
- package/dist/schedules/validation.d.ts +0 -1
- package/dist/schedules/validation.d.ts.map +1 -1
- package/dist/security/builders.d.ts +11 -2
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/every.d.ts +1 -1
- package/dist/security/index.d.ts +4 -4
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/markings.d.ts +19 -0
- package/dist/security/markings.d.ts.map +1 -0
- package/dist/security/redactions.d.ts +4 -0
- package/dist/security/redactions.d.ts.map +1 -0
- package/dist/security/registry.d.ts +7 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +25 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +4 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -21
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/idempotency.d.ts +3 -4
- package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
- package/dist/storage/action-runs/in-memory.d.ts +2 -9
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/index.d.ts +1 -3
- package/dist/storage/action-runs/index.d.ts.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/action-runs/record.d.ts +20 -0
- package/dist/storage/action-runs/record.d.ts.map +1 -0
- package/dist/storage/action-runs/types.d.ts +39 -68
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +5 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +15 -9
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/file-upload-sessions/provider.js +12 -9
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/index.d.ts +3 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +36 -34
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +1 -1
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +11 -13
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +1 -1
- package/dist/storage/objects/execution-limits.d.ts.map +1 -1
- package/dist/storage/objects/types.d.ts +7 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +2 -2
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +12 -9
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +35 -32
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-execution.d.ts +34 -4
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts +11 -0
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3213 -2869
- package/dist/testing/index.js.map +7 -6
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +29 -26
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +1 -1
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +55 -55
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +6 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +2 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +1 -7
- package/src/actions/commit-edits.ts +9 -37
- package/src/actions/errors.ts +0 -4
- package/src/actions/execution.ts +10 -10
- package/src/actions/index.ts +5 -24
- package/src/actions/read-facade.ts +2 -1
- package/src/actions/request.ts +157 -295
- package/src/actions/run/context.ts +193 -0
- package/src/actions/run/edits-commit.ts +102 -0
- package/src/actions/run/effects.ts +105 -0
- package/src/actions/run/execute.ts +113 -0
- package/src/actions/run/executor.ts +314 -0
- package/src/actions/run/normalize.ts +142 -0
- package/src/actions/run/phase-types.ts +20 -0
- package/src/actions/run/phases.ts +150 -0
- package/src/actions/run/run-action.ts +170 -0
- package/src/actions/run/signals.ts +118 -0
- package/src/actions/run/state.ts +95 -0
- package/src/actions/run/types.ts +61 -0
- package/src/actions/run/writeback.ts +79 -0
- package/src/actions/run-authorization.ts +1 -1
- package/src/actions/run-persistence.ts +105 -0
- package/src/actions/types/context.ts +10 -0
- package/src/actions/validation.ts +4 -1
- package/src/agents/adapters.ts +15 -0
- package/src/agents/authority.ts +15 -0
- package/src/agents/context/entries.ts +48 -4
- package/src/agents/context/index.ts +1 -0
- package/src/agents/context-compaction.ts +6 -0
- package/src/agents/errors.ts +3 -0
- package/src/agents/index.ts +13 -1
- package/src/agents/message.ts +9 -0
- package/src/agents/request.ts +178 -22
- package/src/agents/skills.ts +63 -0
- package/src/agents/types.ts +35 -5
- package/src/auth/runtime.ts +14 -0
- package/src/auth/types.ts +6 -0
- package/src/authorization/event-visibility.ts +0 -12
- package/src/authorization/resolve.ts +6 -1
- package/src/authorization/types.ts +7 -0
- package/src/blob-storage/execution.ts +12 -0
- package/src/blob-storage/file-content.ts +106 -0
- package/src/blob-storage/index.ts +1 -0
- package/src/blob-storage/internal.ts +7 -0
- package/src/blob-storage/media-type.ts +29 -0
- package/src/blob-storage/types.ts +13 -1
- package/src/blob-storage/validation.ts +13 -0
- package/src/bootstrap/agent-context.ts +356 -0
- package/src/bootstrap/discovery.ts +100 -33
- package/src/bootstrap/index.ts +1 -1
- package/src/bootstrap/ontology-type-manifest.ts +3 -38
- package/src/datasets/builders.ts +17 -1
- package/src/datasets/execution.ts +110 -2
- package/src/datasets/index.ts +7 -1
- package/src/datasets/types.ts +2 -0
- package/src/datasets/write.ts +21 -2
- package/src/deploy/index.ts +0 -1
- package/src/deploy/services.ts +2 -11
- package/src/deploy/types.ts +6 -6
- package/src/deploy/validation.ts +12 -6
- package/src/edits/properties.ts +3 -0
- package/src/error-reporting/types.ts +2 -10
- package/src/errors/catalog.ts +13 -0
- package/src/events/definitions.ts +0 -17
- package/src/events/execution.ts +15 -16
- package/src/events/index.ts +0 -14
- package/src/events/scope.ts +0 -12
- package/src/events/selectors/builder.ts +0 -51
- package/src/events/selectors/index.ts +0 -6
- package/src/events/selectors/predicate.ts +0 -2
- package/src/events/selectors/types.ts +7 -65
- package/src/events/types/index.ts +0 -11
- package/src/events/types/objects.ts +5 -0
- package/src/execution/agent.ts +27 -0
- package/src/execution/authorization.ts +1 -0
- package/src/execution/authorized-object-reader.ts +96 -34
- package/src/execution/scopes.ts +2 -6
- package/src/http/api-routes.ts +4 -3
- package/src/index.ts +28 -21
- package/src/materialization/model.ts +26 -9
- package/src/materializer/README.md +6 -1
- package/src/materializer/edits/commit.ts +42 -32
- package/src/materializer/shared/normalize.ts +25 -14
- package/src/models/catalog.ts +26 -2
- package/src/models/execution/README.md +4 -3
- package/src/models/execution/binding.ts +6 -0
- package/src/models/execution/model-call-recorder.ts +10 -0
- package/src/models/execution/session.ts +2 -2
- package/src/models/execution.ts +6 -2
- package/src/models/language-model.ts +6 -0
- package/src/objects/action/errors.ts +0 -12
- package/src/objects/action/index.ts +3 -3
- package/src/objects/action/request.ts +2 -29
- package/src/objects/context/index.ts +1 -0
- package/src/objects/context/types.ts +7 -0
- package/src/objects/execution.ts +6 -3
- package/src/objects/materializer-adapter.ts +3 -0
- package/src/objects/object/upsert-batch.ts +4 -1
- package/src/objects/object/upsert.ts +3 -1
- package/src/objects/property-clearance.ts +209 -0
- package/src/objects/query/executor.ts +43 -36
- package/src/objects/query/validate.ts +133 -14
- package/src/objects/sdk/file-handle.ts +77 -0
- package/src/objects/sdk/object-handle.ts +11 -33
- package/src/objects/sdk/object-set.ts +10 -32
- package/src/objects/service/index.ts +0 -1
- package/src/ontology/builders.ts +18 -2
- package/src/ontology/docs-markdown.ts +394 -0
- package/src/ontology/docs.ts +196 -0
- package/src/ontology/inference/index.ts +25 -0
- package/src/ontology/internal.ts +7 -0
- package/src/ontology/tokens.ts +13 -2
- package/src/ontology/types.ts +5 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/schema.ts +26 -1
- package/src/queues/in-memory.ts +0 -6
- package/src/queues/index.ts +0 -2
- package/src/queues/types.ts +0 -11
- package/src/runtime/create.ts +34 -4
- package/src/runtime/definitions.ts +3 -1
- package/src/runtime/host.ts +50 -1
- package/src/runtime/index.ts +3 -0
- package/src/runtime/locale.ts +26 -0
- package/src/runtime/resolve-definitions.ts +28 -2
- package/src/runtime/sixb.ts +1 -1
- package/src/runtime/types.ts +55 -48
- package/src/scheduler/runtime.ts +11 -2
- package/src/schedules/builders.ts +1 -4
- package/src/schedules/runtime.ts +0 -41
- package/src/schedules/validation.ts +2 -16
- package/src/security/builders.ts +49 -5
- package/src/security/every.ts +1 -1
- package/src/security/index.ts +6 -1
- package/src/security/markings.ts +313 -0
- package/src/security/redactions.ts +6 -0
- package/src/security/registry.ts +21 -1
- package/src/security/types.ts +26 -0
- package/src/security/validation.ts +59 -2
- package/src/storage/action-runs/idempotency.ts +13 -41
- package/src/storage/action-runs/in-memory.ts +20 -311
- package/src/storage/action-runs/index.ts +1 -16
- package/src/storage/action-runs/record.ts +130 -0
- package/src/storage/action-runs/types.ts +37 -92
- package/src/storage/agents/provider.ts +11 -0
- package/src/storage/agents/types.ts +15 -7
- package/src/storage/index.ts +2 -9
- package/src/storage/internal.ts +1 -7
- package/src/storage/objects/execution-limits.ts +3 -2
- package/src/storage/objects/types.ts +7 -0
- package/src/storage/types.ts +2 -4
- package/src/testing/action-execution.ts +73 -13
- package/src/testing/action-run-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -1
- package/src/testing/materializer-storage-contract.ts +174 -18
- package/src/testing/queues-contract.ts +0 -18
- package/src/workflows/builders.ts +24 -1
- package/src/workflows/request.ts +3 -0
- package/src/workflows/types.ts +6 -3
- package/src/workflows/validation.ts +32 -4
- package/dist/actions/run-dispatch.d.ts +0 -25
- package/dist/actions/run-dispatch.d.ts.map +0 -1
- package/dist/actions/worker.d.ts +0 -3
- package/dist/actions/worker.d.ts.map +0 -1
- package/dist/actions/worker.js +0 -321
- package/dist/actions/worker.js.map +0 -11
- package/dist/chunk-10styjgk.js +0 -1572
- package/dist/chunk-10styjgk.js.map +0 -20
- package/dist/chunk-1hqwggsn.js.map +0 -12
- package/dist/chunk-52c5zb0z.js +0 -81
- package/dist/chunk-52c5zb0z.js.map +0 -10
- package/dist/chunk-69266efg.js.map +0 -12
- package/dist/chunk-6wbm6ymz.js +0 -4399
- package/dist/chunk-6wbm6ymz.js.map +0 -48
- package/dist/chunk-85cd7e8c.js +0 -51
- package/dist/chunk-85cd7e8c.js.map +0 -10
- package/dist/chunk-91kcnbf0.js.map +0 -10
- package/dist/chunk-98cw09sw.js.map +0 -10
- package/dist/chunk-9g6jz9kk.js +0 -592
- package/dist/chunk-9g6jz9kk.js.map +0 -15
- package/dist/chunk-9vx5e9g1.js.map +0 -11
- package/dist/chunk-aq39q04r.js.map +0 -15
- package/dist/chunk-cd234ba4.js.map +0 -14
- package/dist/chunk-cnb5kv05.js.map +0 -19
- package/dist/chunk-dfm066qg.js.map +0 -11
- package/dist/chunk-dmn70ztd.js.map +0 -11
- package/dist/chunk-fc5zfxy1.js.map +0 -11
- package/dist/chunk-gf7yht60.js.map +0 -12
- package/dist/chunk-h3v76ams.js.map +0 -11
- package/dist/chunk-pja9jfz6.js.map +0 -19
- package/dist/chunk-r2y23egw.js.map +0 -10
- package/dist/chunk-t9shqx3w.js.map +0 -12
- package/dist/chunk-tjjgy3z4.js +0 -1277
- package/dist/chunk-tjjgy3z4.js.map +0 -35
- package/dist/chunk-xcy5ddha.js.map +0 -15
- package/dist/chunk-xyvy73tj.js.map +0 -12
- package/dist/chunk-y2aq6ag9.js.map +0 -11
- package/dist/chunk-z5rnrmz1.js.map +0 -11
- package/dist/chunk-zvx7h87b.js +0 -12
- package/dist/chunk-zvx7h87b.js.map +0 -10
- package/dist/events/types/actions.d.ts +0 -39
- package/dist/events/types/actions.d.ts.map +0 -1
- package/dist/objects/service/action-service.d.ts +0 -13
- package/dist/objects/service/action-service.d.ts.map +0 -1
- package/src/actions/run-dispatch.ts +0 -282
- package/src/actions/worker.ts +0 -2
- package/src/events/types/actions.ts +0 -42
- package/src/objects/service/action-service.ts +0 -43
- /package/dist/{chunk-jjrn5v0p.js.map → chunk-1k89ecfr.js.map} +0 -0
- /package/dist/{chunk-vre348sb.js.map → chunk-52bk93x8.js.map} +0 -0
- /package/dist/{chunk-4gmng3vf.js.map → chunk-5e43w60z.js.map} +0 -0
- /package/dist/{chunk-33saed7g.js.map → chunk-7kg3k1m9.js.map} +0 -0
- /package/dist/{chunk-kkqwzy6h.js.map → chunk-7t429e3f.js.map} +0 -0
- /package/dist/{chunk-2am3db31.js.map → chunk-9gyp8hg1.js.map} +0 -0
- /package/dist/{chunk-4wn7bxxa.js.map → chunk-9ybhtmg4.js.map} +0 -0
- /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
- /package/dist/{chunk-5thzcb8g.js.map → chunk-c85m1hyj.js.map} +0 -0
- /package/dist/{chunk-e67ynxcr.js.map → chunk-d2ync1v3.js.map} +0 -0
- /package/dist/{chunk-3rrezgyc.js.map → chunk-dnmadg9k.js.map} +0 -0
- /package/dist/{chunk-vjcd8d27.js.map → chunk-fa02jy15.js.map} +0 -0
- /package/dist/{chunk-vp3z1ckh.js.map → chunk-kyzq4wy9.js.map} +0 -0
- /package/dist/{chunk-c2rga5cx.js.map → chunk-mfs23znk.js.map} +0 -0
- /package/dist/{chunk-a7er86jd.js.map → chunk-nre82s12.js.map} +0 -0
- /package/dist/{chunk-f1xh7a32.js.map → chunk-q1vkr2ys.js.map} +0 -0
- /package/dist/{chunk-23xs4qp9.js.map → chunk-rhg02hxq.js.map} +0 -0
- /package/dist/{chunk-k4g51s47.js.map → chunk-t6vq7bff.js.map} +0 -0
- /package/dist/{chunk-sk0hcjsz.js.map → chunk-tjb1mk5t.js.map} +0 -0
- /package/dist/{chunk-rx7h5fdx.js.map → chunk-v9xd5wzd.js.map} +0 -0
- /package/dist/{chunk-2vhg6ysa.js.map → chunk-vyf9kfqf.js.map} +0 -0
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"export function throwIfAborted(signal?: AbortSignal): void {\n if (signal?.aborted) {\n throw signal.reason instanceof Error\n ? signal.reason\n : new DOMException(\"Projection replacement aborted\", \"AbortError\")\n }\n}\n",
|
|
15
15
|
"export async function* chunkBySize<T>(\n items: Iterable<T> | AsyncIterable<T>,\n input: {\n readonly maxRows: number\n readonly maxBytes: number\n readonly byteLength: (item: T) => number\n }\n): AsyncIterable<readonly T[]> {\n let chunk: T[] = []\n let bytes = 0\n for await (const item of items) {\n const itemBytes = input.byteLength(item)\n if (chunk.length > 0 && bytes + itemBytes > input.maxBytes) {\n yield chunk\n chunk = []\n bytes = 0\n }\n chunk.push(item)\n bytes += itemBytes\n if (chunk.length >= input.maxRows || bytes >= input.maxBytes) {\n yield chunk\n chunk = []\n bytes = 0\n }\n }\n if (chunk.length > 0) yield chunk\n}\n",
|
|
16
16
|
"import { utf8JsonByteLength } from \"../../materialization/refs\"\nimport type { Storage } from \"../../storage\"\nimport type {\n MaterializationSession,\n MaterializationWorkRecord,\n OntologyMaterializationStorage,\n} from \"../../storage/ontology\"\nimport type { MaterializerContext } from \"../context\"\nimport { scheduleVectorChanges } from \"../effective/vector-indexing\"\nimport { invalidateVectorChanges } from \"../effective/vectors\"\nimport { throwIfAborted } from \"../shared/abort\"\nimport { chunkBySize } from \"../shared/chunking\"\n\ntype BatchingContext = Pick<MaterializerContext, \"batching\">\n\nexport async function stageWorkBounded(\n context: BatchingContext,\n storage: OntologyMaterializationStorage,\n session: MaterializationSession,\n records: readonly MaterializationWorkRecord[]\n): Promise<void> {\n for await (const chunk of chunkBySize(records, {\n maxRows: context.batching.planChunkRows,\n maxBytes: context.batching.planChunkBytes,\n byteLength: utf8JsonByteLength,\n })) {\n await storage.stageWork({ session, records: chunk })\n }\n}\n\n/**\n * Hands the staged plan to storage, which applies it and writes its events. Vector profiles see\n * the object changes first, while the objects still hold their previous values.\n */\nexport async function applyStagedWork(\n context: Pick<MaterializerContext, \"batching\" | \"projectId\" | \"ontology\" | \"clock\">,\n transactionStorage: Storage,\n session: MaterializationSession,\n signal?: AbortSignal,\n projection = false\n): Promise<number> {\n const ontologyStorage = transactionStorage.ontology\n const storage = ontologyStorage.materializations\n if (ontologyStorage.vectorIndexing || ontologyStorage.vectors) {\n for await (const page of storage.streamVectorChanges({\n session,\n objectTypeIds: context.ontology\n .listObjectTypes()\n .filter((type) => Object.keys(type.search?.vectors ?? {}).length > 0)\n .map((type) => type.id),\n pageRows: context.batching.planChunkRows,\n })) {\n throwIfAborted(signal)\n await scheduleVectorChanges(context, transactionStorage, page.items, session, projection)\n await invalidateVectorChanges(context.projectId, ontologyStorage.vectors, page.items, session)\n }\n }\n throwIfAborted(signal)\n const { eventCount } = await storage.apply({ session })\n return eventCount\n}\n",
|
|
17
|
-
"import { assertJsonValue, cloneJsonValue, compareStrings, stableJsonStringify } from \"../../json\"\nimport { MaterializationValidationError } from \"../../materialization/errors\"\nimport type {\n ExpectedLinkRevision,\n ExpectedLinkScopeRevision,\n ExpectedObjectRevision,\n OntologyEditCommit,\n OntologyEditOperation,\n PinnedDatasetVersion,\n ProjectionEntityRef,\n ProjectionExecution,\n ProjectionSourceAssertion,\n ProjectionSourceEntry,\n ProjectionSourceRef,\n TelemetryAppend,\n TelemetryPointWrite,\n TelemetrySeriesRef,\n} from \"../../materialization/model\"\nimport {\n linkRefKey,\n linkScopeKey,\n normalizeLinkRef,\n normalizeObjectRef,\n objectRefKey,\n projectionEntityKey,\n telemetryPointKey,\n} from \"../../materialization/refs\"\nimport { parseDatasetTimestamp } from \"../../projections/timestamp\"\n\nexport function normalizeJsonProperties(\n properties: Readonly<Record<string, unknown>>,\n label = \"Properties\"\n): Readonly<Record<string, import(\"../../json\").JsonValue>> {\n if (typeof properties !== \"object\" || properties === null || Array.isArray(properties)) {\n throw new MaterializationValidationError(`${label} must be a JSON object.`)\n }\n\n const normalized: Record<string, import(\"../../json\").JsonValue> = {}\n for (const propertyId of Object.keys(properties).sort(compareStrings)) {\n if (propertyId.trim().length === 0) {\n throw new MaterializationValidationError(`${label} contains a blank property id.`)\n }\n const value = properties[propertyId]\n try {\n assertJsonValue(value, `${label}.${propertyId}`)\n } catch (error) {\n throw new MaterializationValidationError(\n error instanceof Error ? error.message : `${label}.${propertyId} must be JSON.`\n )\n }\n normalized[propertyId] = cloneJsonValue(value)\n }\n return Object.freeze(normalized)\n}\n\nfunction normalizeNonblank(value: string, label: string): string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new MaterializationValidationError(`${label} must be a nonblank string.`)\n }\n return value\n}\n\nfunction normalizeTimestamp(value: string, label: string): string {\n const milliseconds = Date.parse(value)\n if (!Number.isFinite(milliseconds)) {\n throw new MaterializationValidationError(`${label} must be a valid timestamp.`)\n }\n return new Date(milliseconds).toISOString()\n}\n\nfunction normalizeProjectionSourceTimestamp(value: string): string {\n const timestamp = parseDatasetTimestamp(value)\n if (!timestamp) {\n throw new MaterializationValidationError(\n \"Projection source update timestamp must be a valid timestamp.\"\n )\n }\n return timestamp.toISOString()\n}\n\nfunction normalizePropertyIds(values: readonly string[], label: string): readonly string[] {\n const seen = new Set<string>()\n const normalized: string[] = []\n for (const value of values) {\n normalizeNonblank(value, label)\n if (seen.has(value)) {\n throw new MaterializationValidationError(`${label} contains duplicate '${value}'.`)\n }\n seen.add(value)\n normalized.push(value)\n }\n return Object.freeze(normalized.sort(compareStrings))\n}\n\nfunction normalizeOperation(operation: OntologyEditOperation): OntologyEditOperation {\n normalizeNonblank(operation.id, \"Operation id\")\n if (operation.kind === \"object.create\" || operation.kind === \"object.upsert\") {\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeObjectRef(operation.ref),\n properties: normalizeJsonProperties(operation.properties),\n })\n }\n if (operation.kind === \"object.patch\") {\n const set = normalizeJsonProperties(operation.set, `Operation '${operation.id}' set`)\n const unset = normalizePropertyIds(operation.unset, `Operation '${operation.id}' unset`)\n const reset = normalizePropertyIds(operation.reset, `Operation '${operation.id}' reset`)\n const setIds = new Set(Object.keys(set))\n for (const propertyId of [...unset, ...reset]) {\n if (setIds.has(propertyId)) {\n throw new MaterializationValidationError(\n `Operation '${operation.id}' property '${propertyId}' appears in set and unset/reset.`\n )\n }\n }\n for (const propertyId of unset) {\n if (reset.includes(propertyId)) {\n throw new MaterializationValidationError(\n `Operation '${operation.id}' property '${propertyId}' appears in unset and reset.`\n )\n }\n }\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeObjectRef(operation.ref),\n set,\n unset,\n reset,\n })\n }\n if (operation.kind === \"object.delete\" || operation.kind === \"object.restore\") {\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeObjectRef(operation.ref),\n })\n }\n if (operation.kind === \"link.upsert\") {\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeLinkRef(operation.ref),\n ...(operation.properties !== undefined\n ? { properties: normalizeJsonProperties(operation.properties) }\n : {}),\n })\n }\n if (operation.kind === \"link.delete\" || operation.kind === \"link.reset\") {\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeLinkRef(operation.ref),\n })\n }\n throw new MaterializationValidationError(\"Unknown ontology edit operation kind.\")\n}\n\nfunction deduplicateExpectations<T>(\n values: readonly T[],\n keyOf: (value: T) => string,\n label: string\n): readonly T[] {\n const byKey = new Map<string, T>()\n for (const value of values) {\n const key = keyOf(value)\n const existing = byKey.get(key)\n if (existing && stableJsonStringify(existing) !== stableJsonStringify(value)) {\n throw new MaterializationValidationError(`${label} has contradictory values for ${key}.`)\n }\n byKey.set(key, value)\n }\n return Object.freeze(\n [...byKey.entries()]\n .sort(([left], [right]) => compareStrings(left, right))\n .map(([, value]) => value)\n )\n}\n\nfunction normalizeExpectedObject(value: ExpectedObjectRevision): ExpectedObjectRevision {\n const ref = normalizeObjectRef(value.ref)\n if (!value.exists) return Object.freeze({ ref, exists: false })\n if (!Number.isSafeInteger(value.version) || value.version < 1) {\n throw new MaterializationValidationError(\"Expected object version must be a positive integer.\")\n }\n return Object.freeze({\n ref,\n exists: true,\n version: value.version,\n lastCommitId: normalizeNonblank(value.lastCommitId, \"Expected object lastCommitId\"),\n })\n}\n\nfunction normalizeExpectedLink(value: ExpectedLinkRevision): ExpectedLinkRevision {\n const ref = normalizeLinkRef(value.ref)\n if (!value.exists) return Object.freeze({ ref, exists: false })\n return Object.freeze({\n ref,\n exists: true,\n lastCommitId: normalizeNonblank(value.lastCommitId, \"Expected link lastCommitId\"),\n })\n}\n\nfunction normalizeExpectedLinkScope(value: ExpectedLinkScopeRevision): ExpectedLinkScopeRevision {\n return Object.freeze({\n source: normalizeObjectRef(value.source),\n linkId: normalizeNonblank(value.linkId, \"Expected link scope link id\"),\n fingerprint: normalizeNonblank(value.fingerprint, \"Expected link scope fingerprint\"),\n })\n}\n\n/**\n * Validates that every grouped id exists exactly once across the declared groups.\n *\n * A group naming an unknown or repeated id would silently widen or split the unit a caller item\n * relies on, so both are rejected before any operation applies.\n */\nfunction normalizeOperationGroups(\n groups: readonly (readonly string[])[],\n operationIds: ReadonlyMap<string, number>\n): readonly (readonly string[])[] {\n const grouped = new Set<string>()\n const normalized = groups.map((group) => {\n if (group.length < 2) {\n throw new MaterializationValidationError(\n \"Operation groups must contain at least two operations.\"\n )\n }\n\n const positions = group.map((id) => {\n const position = operationIds.get(id)\n if (position === undefined) {\n throw new MaterializationValidationError(\n `Operation group references unknown operation id '${id}'.`\n )\n }\n if (grouped.has(id)) {\n throw new MaterializationValidationError(\n `Operation id '${id}' appears in more than one operation group.`\n )\n }\n grouped.add(id)\n return position\n })\n\n const first = positions[0]!\n if (positions.some((position, index) => position !== first + index)) {\n throw new MaterializationValidationError(\n \"Operation groups must list a contiguous run in operation order.\"\n )\n }\n return { first, ids: Object.freeze([...group]) }\n })\n\n normalized.sort((left, right) => left.first - right.first)\n return Object.freeze(normalized.map(({ ids }) => ids))\n}\n\nexport function normalizeOntologyEditCommit(input: OntologyEditCommit): OntologyEditCommit {\n const operationIds = new Map<string, number>()\n const operations = input.operations.map((operation, index) => {\n const normalized = normalizeOperation(operation)\n if (operationIds.has(normalized.id)) {\n throw new MaterializationValidationError(`Duplicate operation id '${normalized.id}'.`)\n }\n operationIds.set(normalized.id, index)\n return normalized\n })\n\n if (input.mode === \"continue\") {\n if (\"vectorWrites\" in input)\n throw new MaterializationValidationError(\"Vector writes require an atomic commit.\")\n return Object.freeze({\n mode: \"continue\",\n source: Object.freeze({\n kind: \"runtime\",\n requestId: normalizeNonblank(input.source.requestId, \"Runtime request id\"),\n }),\n operations: Object.freeze(operations),\n ...(input.operationGroups !== undefined\n ? { operationGroups: normalizeOperationGroups(input.operationGroups, operationIds) }\n : {}),\n })\n }\n\n const source =\n input.source.kind === \"action\"\n ? Object.freeze({\n kind: \"action\" as const,\n actionId: normalizeNonblank(input.source.actionId, \"Action id\"),\n runId: normalizeNonblank(input.source.runId, \"Action run id\"),\n })\n : Object.freeze({\n kind: \"runtime\" as const,\n requestId: normalizeNonblank(input.source.requestId, \"Runtime request id\"),\n })\n if (input.vectorWrites?.length && (operations.length || input.source.kind !== \"runtime\")) {\n throw new MaterializationValidationError(\n \"Vector writes require a dedicated atomic runtime commit.\"\n )\n }\n if (input.vectorWrites !== undefined) assertJsonValue(input.vectorWrites, \"Vector writes\")\n const expectedObjects = input.expectedObjects.map(normalizeExpectedObject)\n const expectedLinks = input.expectedLinks.map(normalizeExpectedLink)\n const expectedLinkScopes = input.expectedLinkScopes.map(normalizeExpectedLinkScope)\n\n return Object.freeze({\n mode: \"atomic\",\n ...(input.vectorWrites === undefined\n ? {}\n : { vectorWrites: structuredClone(input.vectorWrites) }),\n source,\n operations: Object.freeze(operations),\n expectedObjects: deduplicateExpectations(\n expectedObjects,\n (value) => objectRefKey(value.ref),\n \"Expected objects\"\n ),\n expectedLinks: deduplicateExpectations(\n expectedLinks,\n (value) => linkRefKey(value.ref),\n \"Expected links\"\n ),\n expectedLinkScopes: deduplicateExpectations(\n expectedLinkScopes,\n (value) => linkScopeKey(value.source, value.linkId),\n \"Expected link scopes\"\n ),\n })\n}\n\nexport function normalizeProjectionSourceRef(source: ProjectionSourceRef): ProjectionSourceRef {\n return Object.freeze({\n projectionId: normalizeNonblank(source.projectionId, \"Projection id\"),\n })\n}\n\nexport function normalizePinnedDatasetVersion(version: PinnedDatasetVersion): PinnedDatasetVersion {\n return Object.freeze({\n datasetId: normalizeNonblank(version.datasetId, \"Dataset id\"),\n versionId: normalizeNonblank(version.versionId, \"Dataset version id\"),\n createdAt: normalizeTimestamp(version.createdAt, \"Dataset version createdAt\"),\n })\n}\n\nexport function normalizeProjectionRunId(runId: string): string {\n return normalizeNonblank(runId, \"Projection run id\")\n}\n\nexport function normalizeProjectionExecution(input: ProjectionExecution): ProjectionExecution {\n return Object.freeze({\n projectionRunId: normalizeProjectionRunId(input.projectionRunId),\n executionToken: normalizeNonblank(input.executionToken, \"Projection execution token\"),\n })\n}\n\nexport function normalizeProjectionEntity(entity: ProjectionEntityRef): ProjectionEntityRef {\n return entity.kind === \"object\"\n ? Object.freeze({ kind: \"object\", ref: normalizeObjectRef(entity.ref) })\n : Object.freeze({ kind: \"link\", ref: normalizeLinkRef(entity.ref) })\n}\n\nfunction normalizeProjectionAssertion(\n assertion: ProjectionSourceAssertion\n): ProjectionSourceAssertion {\n return assertion.kind === \"object\"\n ? Object.freeze({\n kind: \"object\",\n ref: normalizeObjectRef(assertion.ref),\n properties: normalizeJsonProperties(assertion.properties),\n ...(assertion.sourceUpdatedAt !== undefined\n ? {\n sourceUpdatedAt: normalizeProjectionSourceTimestamp(assertion.sourceUpdatedAt),\n }\n : {}),\n })\n : Object.freeze({\n kind: \"link\",\n ref: normalizeLinkRef(assertion.ref),\n ...(assertion.properties !== undefined\n ? { properties: normalizeJsonProperties(assertion.properties) }\n : {}),\n })\n}\n\nexport function normalizeProjectionSourceEntry(\n input: ProjectionSourceEntry\n): ProjectionSourceEntry {\n const root = normalizeProjectionEntity(input.root)\n const seen = new Set<string>()\n const assertions = input.assertions.map((assertion) => {\n const normalized = normalizeProjectionAssertion(assertion)\n const key = projectionEntityKey(normalized)\n if (seen.has(key)) {\n throw new MaterializationValidationError(`Projection entry repeats asserted entity ${key}.`)\n }\n seen.add(key)\n return normalized\n })\n const rootKey = projectionEntityKey(root)\n if (!seen.has(rootKey)) {\n throw new MaterializationValidationError(\n `Projection entry must contain an assertion matching root ${rootKey}.`\n )\n }\n if (root.kind === \"object\") {\n const objectAssertions = assertions.filter((assertion) => assertion.kind === \"object\")\n if (objectAssertions.length !== 1 || projectionEntityKey(objectAssertions[0]) !== rootKey) {\n throw new MaterializationValidationError(\n \"An object projection root must contain exactly its matching object assertion plus links.\"\n )\n }\n for (const assertion of assertions) {\n if (\n assertion.kind === \"link\" &&\n objectRefKey(assertion.ref.source) !== objectRefKey(root.ref)\n ) {\n throw new MaterializationValidationError(\n \"An object projection root may contain only links sourced from that root.\"\n )\n }\n }\n } else if (\n assertions.length !== 1 ||\n assertions[0].kind !== \"link\" ||\n projectionEntityKey(assertions[0]) !== rootKey\n ) {\n throw new MaterializationValidationError(\n \"A link projection root must contain exactly its matching link assertion.\"\n )\n }\n return Object.freeze({\n root,\n assertions: Object.freeze(\n assertions.sort((left, right) =>\n compareStrings(projectionEntityKey(left), projectionEntityKey(right))\n )\n ),\n })\n}\n\nfunction normalizeTelemetrySeries(series: TelemetrySeriesRef): TelemetrySeriesRef {\n return Object.freeze({\n object: normalizeObjectRef(series.object),\n propertyId: normalizeNonblank(series.propertyId, \"Telemetry property id\"),\n })\n}\n\nfunction normalizeTelemetryPoint(point: TelemetryPointWrite): TelemetryPointWrite {\n try {\n assertJsonValue(point.value, \"Telemetry point value\")\n } catch (error) {\n throw new MaterializationValidationError(\n error instanceof Error ? error.message : \"Telemetry point value must be JSON.\"\n )\n }\n return Object.freeze({\n series: normalizeTelemetrySeries(point.series),\n value: cloneJsonValue(point.value),\n ...(point.unit !== undefined\n ? { unit: normalizeNonblank(point.unit, \"Telemetry point unit\") }\n : {}),\n at: normalizeTimestamp(point.at, \"Telemetry point timestamp\"),\n })\n}\n\nexport function normalizeTelemetryAppend(input: TelemetryAppend): TelemetryAppend {\n const pointsByKey = new Map<string, TelemetryPointWrite>()\n for (const point of input.points) {\n const normalized = normalizeTelemetryPoint(point)\n const key = telemetryPointKey(normalized.series, normalized.at)\n const existing = pointsByKey.get(key)\n if (\n input.source.kind === \"runtime\" &&\n existing &&\n stableJsonStringify(existing) !== stableJsonStringify(normalized)\n ) {\n throw new MaterializationValidationError(`Conflicting telemetry points for ${key}.`)\n }\n // Projection batches follow stable physical source order: the last occurrence wins. Runtime\n // callers remain strict because contradictory points usually indicate a request bug.\n pointsByKey.set(key, normalized)\n }\n const points = [...pointsByKey.entries()]\n .sort(([left], [right]) => compareStrings(left, right))\n .map(([, point]) => point)\n const source =\n input.source.kind === \"runtime\"\n ? Object.freeze({\n kind: \"runtime\" as const,\n requestId: normalizeNonblank(input.source.requestId, \"Runtime request id\"),\n })\n : Object.freeze({\n kind: \"projection\" as const,\n projection: normalizeProjectionSourceRef(input.source.projection),\n datasetVersion: normalizePinnedDatasetVersion(input.source.datasetVersion),\n execution: normalizeProjectionExecution(input.source.execution),\n batchOrdinal: input.source.batchOrdinal,\n sourceRowCount: input.source.sourceRowCount,\n sourceRowsSkipped: input.source.sourceRowsSkipped,\n inputExhausted: input.source.inputExhausted,\n })\n if (source.kind === \"projection\") {\n if (!Number.isSafeInteger(source.batchOrdinal) || source.batchOrdinal < 0) {\n throw new MaterializationValidationError(\n \"Telemetry projection batch ordinal must be a nonnegative safe integer.\"\n )\n }\n if (!Number.isSafeInteger(source.sourceRowCount) || source.sourceRowCount < 0) {\n throw new MaterializationValidationError(\n \"Telemetry projection sourceRowCount must be a nonnegative safe integer.\"\n )\n }\n if (!Number.isSafeInteger(source.sourceRowsSkipped) || source.sourceRowsSkipped < 0) {\n throw new MaterializationValidationError(\n \"Telemetry projection sourceRowsSkipped must be a nonnegative safe integer.\"\n )\n }\n if (source.sourceRowsSkipped > source.sourceRowCount) {\n throw new MaterializationValidationError(\n \"Telemetry projection sourceRowsSkipped cannot exceed sourceRowCount.\"\n )\n }\n if (typeof source.inputExhausted !== \"boolean\") {\n throw new MaterializationValidationError(\n \"Telemetry projection inputExhausted must be a boolean.\"\n )\n }\n }\n return Object.freeze({\n source,\n points: Object.freeze(points),\n })\n}\n",
|
|
17
|
+
"import { assertJsonValue, cloneJsonValue, compareStrings, stableJsonStringify } from \"../../json\"\nimport { MaterializationValidationError } from \"../../materialization/errors\"\nimport type {\n ExpectedLinkRevision,\n ExpectedLinkScopeRevision,\n ExpectedObjectRevision,\n OntologyEditCommit,\n OntologyEditOperation,\n PinnedDatasetVersion,\n ProjectionEntityRef,\n ProjectionExecution,\n ProjectionSourceAssertion,\n ProjectionSourceEntry,\n ProjectionSourceRef,\n TelemetryAppend,\n TelemetryPointWrite,\n TelemetrySeriesRef,\n} from \"../../materialization/model\"\nimport {\n linkRefKey,\n linkScopeKey,\n normalizeLinkRef,\n normalizeObjectRef,\n objectRefKey,\n projectionEntityKey,\n telemetryPointKey,\n} from \"../../materialization/refs\"\nimport { parseDatasetTimestamp } from \"../../projections/timestamp\"\n\nexport function normalizeJsonProperties(\n properties: Readonly<Record<string, unknown>>,\n label = \"Properties\"\n): Readonly<Record<string, import(\"../../json\").JsonValue>> {\n if (typeof properties !== \"object\" || properties === null || Array.isArray(properties)) {\n throw new MaterializationValidationError(`${label} must be a JSON object.`)\n }\n\n const normalized: Record<string, import(\"../../json\").JsonValue> = {}\n for (const propertyId of Object.keys(properties).sort(compareStrings)) {\n if (propertyId.trim().length === 0) {\n throw new MaterializationValidationError(`${label} contains a blank property id.`)\n }\n const value = properties[propertyId]\n try {\n assertJsonValue(value, `${label}.${propertyId}`)\n } catch (error) {\n throw new MaterializationValidationError(\n error instanceof Error ? error.message : `${label}.${propertyId} must be JSON.`\n )\n }\n normalized[propertyId] = cloneJsonValue(value)\n }\n return Object.freeze(normalized)\n}\n\nfunction normalizeNonblank(value: string, label: string): string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new MaterializationValidationError(`${label} must be a nonblank string.`)\n }\n return value\n}\n\nfunction normalizeTimestamp(value: string, label: string): string {\n const milliseconds = Date.parse(value)\n if (!Number.isFinite(milliseconds)) {\n throw new MaterializationValidationError(`${label} must be a valid timestamp.`)\n }\n return new Date(milliseconds).toISOString()\n}\n\nfunction normalizeProjectionSourceTimestamp(value: string): string {\n const timestamp = parseDatasetTimestamp(value)\n if (!timestamp) {\n throw new MaterializationValidationError(\n \"Projection source update timestamp must be a valid timestamp.\"\n )\n }\n return timestamp.toISOString()\n}\n\nfunction normalizePropertyIds(values: readonly string[], label: string): readonly string[] {\n const seen = new Set<string>()\n const normalized: string[] = []\n for (const value of values) {\n normalizeNonblank(value, label)\n if (seen.has(value)) {\n throw new MaterializationValidationError(`${label} contains duplicate '${value}'.`)\n }\n seen.add(value)\n normalized.push(value)\n }\n return Object.freeze(normalized.sort(compareStrings))\n}\n\nfunction normalizeOperation(operation: OntologyEditOperation): OntologyEditOperation {\n normalizeNonblank(operation.id, \"Operation id\")\n if (operation.kind === \"object.create\" || operation.kind === \"object.upsert\") {\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeObjectRef(operation.ref),\n properties: normalizeJsonProperties(operation.properties),\n })\n }\n if (operation.kind === \"object.patch\") {\n const set = normalizeJsonProperties(operation.set, `Operation '${operation.id}' set`)\n const unset = normalizePropertyIds(operation.unset, `Operation '${operation.id}' unset`)\n const reset = normalizePropertyIds(operation.reset, `Operation '${operation.id}' reset`)\n const setIds = new Set(Object.keys(set))\n for (const propertyId of [...unset, ...reset]) {\n if (setIds.has(propertyId)) {\n throw new MaterializationValidationError(\n `Operation '${operation.id}' property '${propertyId}' appears in set and unset/reset.`\n )\n }\n }\n for (const propertyId of unset) {\n if (reset.includes(propertyId)) {\n throw new MaterializationValidationError(\n `Operation '${operation.id}' property '${propertyId}' appears in unset and reset.`\n )\n }\n }\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeObjectRef(operation.ref),\n set,\n unset,\n reset,\n })\n }\n if (operation.kind === \"object.delete\" || operation.kind === \"object.restore\") {\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeObjectRef(operation.ref),\n })\n }\n if (operation.kind === \"link.upsert\") {\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeLinkRef(operation.ref),\n ...(operation.properties !== undefined\n ? { properties: normalizeJsonProperties(operation.properties) }\n : {}),\n })\n }\n if (operation.kind === \"link.delete\" || operation.kind === \"link.reset\") {\n return Object.freeze({\n id: operation.id,\n kind: operation.kind,\n ref: normalizeLinkRef(operation.ref),\n })\n }\n throw new MaterializationValidationError(\"Unknown ontology edit operation kind.\")\n}\n\nfunction deduplicateExpectations<T>(\n values: readonly T[],\n keyOf: (value: T) => string,\n label: string\n): readonly T[] {\n const byKey = new Map<string, T>()\n for (const value of values) {\n const key = keyOf(value)\n const existing = byKey.get(key)\n if (existing && stableJsonStringify(existing) !== stableJsonStringify(value)) {\n throw new MaterializationValidationError(`${label} has contradictory values for ${key}.`)\n }\n byKey.set(key, value)\n }\n return Object.freeze(\n [...byKey.entries()]\n .sort(([left], [right]) => compareStrings(left, right))\n .map(([, value]) => value)\n )\n}\n\nfunction normalizeExpectedObject(value: ExpectedObjectRevision): ExpectedObjectRevision {\n const ref = normalizeObjectRef(value.ref)\n if (!value.exists) return Object.freeze({ ref, exists: false })\n if (!Number.isSafeInteger(value.version) || value.version < 1) {\n throw new MaterializationValidationError(\"Expected object version must be a positive integer.\")\n }\n return Object.freeze({\n ref,\n exists: true,\n version: value.version,\n lastCommitId: normalizeNonblank(value.lastCommitId, \"Expected object lastCommitId\"),\n })\n}\n\nfunction normalizeExpectedLink(value: ExpectedLinkRevision): ExpectedLinkRevision {\n const ref = normalizeLinkRef(value.ref)\n if (!value.exists) return Object.freeze({ ref, exists: false })\n return Object.freeze({\n ref,\n exists: true,\n lastCommitId: normalizeNonblank(value.lastCommitId, \"Expected link lastCommitId\"),\n })\n}\n\nfunction normalizeExpectedLinkScope(value: ExpectedLinkScopeRevision): ExpectedLinkScopeRevision {\n return Object.freeze({\n source: normalizeObjectRef(value.source),\n linkId: normalizeNonblank(value.linkId, \"Expected link scope link id\"),\n fingerprint: normalizeNonblank(value.fingerprint, \"Expected link scope fingerprint\"),\n })\n}\n\n/**\n * Validates that every grouped id exists exactly once across the declared groups.\n *\n * A group naming an unknown or repeated id would silently widen or split the unit a caller item\n * relies on, so both are rejected before any operation applies.\n */\nfunction normalizeOperationGroups(\n groups: readonly (readonly string[])[],\n operationIds: ReadonlyMap<string, number>\n): readonly (readonly string[])[] {\n const grouped = new Set<string>()\n const normalized = groups.map((group) => {\n if (group.length < 2) {\n throw new MaterializationValidationError(\n \"Operation groups must contain at least two operations.\"\n )\n }\n\n const positions = group.map((id) => {\n const position = operationIds.get(id)\n if (position === undefined) {\n throw new MaterializationValidationError(\n `Operation group references unknown operation id '${id}'.`\n )\n }\n if (grouped.has(id)) {\n throw new MaterializationValidationError(\n `Operation id '${id}' appears in more than one operation group.`\n )\n }\n grouped.add(id)\n return position\n })\n\n const first = positions[0]!\n if (positions.some((position, index) => position !== first + index)) {\n throw new MaterializationValidationError(\n \"Operation groups must list a contiguous run in operation order.\"\n )\n }\n return { first, ids: Object.freeze([...group]) }\n })\n\n normalized.sort((left, right) => left.first - right.first)\n return Object.freeze(normalized.map(({ ids }) => ids))\n}\n\nexport function normalizeOntologyEditCommit(input: OntologyEditCommit): OntologyEditCommit {\n const operationIds = new Map<string, number>()\n const operations = input.operations.map((operation, index) => {\n const normalized = normalizeOperation(operation)\n if (operationIds.has(normalized.id)) {\n throw new MaterializationValidationError(`Duplicate operation id '${normalized.id}'.`)\n }\n operationIds.set(normalized.id, index)\n return normalized\n })\n\n if (input.mode === \"continue\") {\n if (\"vectorWrites\" in input)\n throw new MaterializationValidationError(\"Vector writes require an atomic commit.\")\n return Object.freeze({\n mode: \"continue\",\n source: Object.freeze({\n kind: \"runtime\",\n requestId: normalizeNonblank(input.source.requestId, \"Runtime request id\"),\n }),\n operations: Object.freeze(operations),\n ...(input.operationGroups !== undefined\n ? { operationGroups: normalizeOperationGroups(input.operationGroups, operationIds) }\n : {}),\n })\n }\n\n if (input.vectorWrites?.length && (operations.length || input.source.kind !== \"runtime\")) {\n throw new MaterializationValidationError(\n \"Vector writes require a dedicated atomic runtime commit.\"\n )\n }\n if (input.vectorWrites !== undefined) assertJsonValue(input.vectorWrites, \"Vector writes\")\n const expectedObjects = input.expectedObjects.map(normalizeExpectedObject)\n const expectedLinks = input.expectedLinks.map(normalizeExpectedLink)\n const expectedLinkScopes = input.expectedLinkScopes.map(normalizeExpectedLinkScope)\n\n const atomic = {\n mode: \"atomic\" as const,\n ...(input.vectorWrites === undefined\n ? {}\n : { vectorWrites: structuredClone(input.vectorWrites) }),\n operations: Object.freeze(operations),\n expectedObjects: deduplicateExpectations(\n expectedObjects,\n (value) => objectRefKey(value.ref),\n \"Expected objects\"\n ),\n expectedLinks: deduplicateExpectations(\n expectedLinks,\n (value) => linkRefKey(value.ref),\n \"Expected links\"\n ),\n expectedLinkScopes: deduplicateExpectations(\n expectedLinkScopes,\n (value) => linkScopeKey(value.source, value.linkId),\n \"Expected link scopes\"\n ),\n }\n\n if (input.source.kind === \"action\") {\n if (!(\"run\" in input) || input.run === undefined) {\n throw new MaterializationValidationError(\"An Action commit must carry its run's record.\")\n }\n return Object.freeze({\n ...atomic,\n source: Object.freeze({\n kind: \"action\" as const,\n actionId: normalizeNonblank(input.source.actionId, \"Action id\"),\n runId: normalizeNonblank(input.source.runId, \"Action run id\"),\n }),\n // Validated by the Action run storage when the commit inserts it.\n run: structuredClone(input.run),\n })\n }\n return Object.freeze({\n ...atomic,\n source: Object.freeze({\n kind: \"runtime\" as const,\n requestId: normalizeNonblank(input.source.requestId, \"Runtime request id\"),\n }),\n })\n}\n\nexport function normalizeProjectionSourceRef(source: ProjectionSourceRef): ProjectionSourceRef {\n return Object.freeze({\n projectionId: normalizeNonblank(source.projectionId, \"Projection id\"),\n })\n}\n\nexport function normalizePinnedDatasetVersion(version: PinnedDatasetVersion): PinnedDatasetVersion {\n return Object.freeze({\n datasetId: normalizeNonblank(version.datasetId, \"Dataset id\"),\n versionId: normalizeNonblank(version.versionId, \"Dataset version id\"),\n createdAt: normalizeTimestamp(version.createdAt, \"Dataset version createdAt\"),\n })\n}\n\nexport function normalizeProjectionRunId(runId: string): string {\n return normalizeNonblank(runId, \"Projection run id\")\n}\n\nexport function normalizeProjectionExecution(input: ProjectionExecution): ProjectionExecution {\n return Object.freeze({\n projectionRunId: normalizeProjectionRunId(input.projectionRunId),\n executionToken: normalizeNonblank(input.executionToken, \"Projection execution token\"),\n })\n}\n\nexport function normalizeProjectionEntity(entity: ProjectionEntityRef): ProjectionEntityRef {\n return entity.kind === \"object\"\n ? Object.freeze({ kind: \"object\", ref: normalizeObjectRef(entity.ref) })\n : Object.freeze({ kind: \"link\", ref: normalizeLinkRef(entity.ref) })\n}\n\nfunction normalizeProjectionAssertion(\n assertion: ProjectionSourceAssertion\n): ProjectionSourceAssertion {\n return assertion.kind === \"object\"\n ? Object.freeze({\n kind: \"object\",\n ref: normalizeObjectRef(assertion.ref),\n properties: normalizeJsonProperties(assertion.properties),\n ...(assertion.sourceUpdatedAt !== undefined\n ? {\n sourceUpdatedAt: normalizeProjectionSourceTimestamp(assertion.sourceUpdatedAt),\n }\n : {}),\n })\n : Object.freeze({\n kind: \"link\",\n ref: normalizeLinkRef(assertion.ref),\n ...(assertion.properties !== undefined\n ? { properties: normalizeJsonProperties(assertion.properties) }\n : {}),\n })\n}\n\nexport function normalizeProjectionSourceEntry(\n input: ProjectionSourceEntry\n): ProjectionSourceEntry {\n const root = normalizeProjectionEntity(input.root)\n const seen = new Set<string>()\n const assertions = input.assertions.map((assertion) => {\n const normalized = normalizeProjectionAssertion(assertion)\n const key = projectionEntityKey(normalized)\n if (seen.has(key)) {\n throw new MaterializationValidationError(`Projection entry repeats asserted entity ${key}.`)\n }\n seen.add(key)\n return normalized\n })\n const rootKey = projectionEntityKey(root)\n if (!seen.has(rootKey)) {\n throw new MaterializationValidationError(\n `Projection entry must contain an assertion matching root ${rootKey}.`\n )\n }\n if (root.kind === \"object\") {\n const objectAssertions = assertions.filter((assertion) => assertion.kind === \"object\")\n if (objectAssertions.length !== 1 || projectionEntityKey(objectAssertions[0]) !== rootKey) {\n throw new MaterializationValidationError(\n \"An object projection root must contain exactly its matching object assertion plus links.\"\n )\n }\n for (const assertion of assertions) {\n if (\n assertion.kind === \"link\" &&\n objectRefKey(assertion.ref.source) !== objectRefKey(root.ref)\n ) {\n throw new MaterializationValidationError(\n \"An object projection root may contain only links sourced from that root.\"\n )\n }\n }\n } else if (\n assertions.length !== 1 ||\n assertions[0].kind !== \"link\" ||\n projectionEntityKey(assertions[0]) !== rootKey\n ) {\n throw new MaterializationValidationError(\n \"A link projection root must contain exactly its matching link assertion.\"\n )\n }\n return Object.freeze({\n root,\n assertions: Object.freeze(\n assertions.sort((left, right) =>\n compareStrings(projectionEntityKey(left), projectionEntityKey(right))\n )\n ),\n })\n}\n\nfunction normalizeTelemetrySeries(series: TelemetrySeriesRef): TelemetrySeriesRef {\n return Object.freeze({\n object: normalizeObjectRef(series.object),\n propertyId: normalizeNonblank(series.propertyId, \"Telemetry property id\"),\n })\n}\n\nfunction normalizeTelemetryPoint(point: TelemetryPointWrite): TelemetryPointWrite {\n try {\n assertJsonValue(point.value, \"Telemetry point value\")\n } catch (error) {\n throw new MaterializationValidationError(\n error instanceof Error ? error.message : \"Telemetry point value must be JSON.\"\n )\n }\n return Object.freeze({\n series: normalizeTelemetrySeries(point.series),\n value: cloneJsonValue(point.value),\n ...(point.unit !== undefined\n ? { unit: normalizeNonblank(point.unit, \"Telemetry point unit\") }\n : {}),\n at: normalizeTimestamp(point.at, \"Telemetry point timestamp\"),\n })\n}\n\nexport function normalizeTelemetryAppend(input: TelemetryAppend): TelemetryAppend {\n const pointsByKey = new Map<string, TelemetryPointWrite>()\n for (const point of input.points) {\n const normalized = normalizeTelemetryPoint(point)\n const key = telemetryPointKey(normalized.series, normalized.at)\n const existing = pointsByKey.get(key)\n if (\n input.source.kind === \"runtime\" &&\n existing &&\n stableJsonStringify(existing) !== stableJsonStringify(normalized)\n ) {\n throw new MaterializationValidationError(`Conflicting telemetry points for ${key}.`)\n }\n // Projection batches follow stable physical source order: the last occurrence wins. Runtime\n // callers remain strict because contradictory points usually indicate a request bug.\n pointsByKey.set(key, normalized)\n }\n const points = [...pointsByKey.entries()]\n .sort(([left], [right]) => compareStrings(left, right))\n .map(([, point]) => point)\n const source =\n input.source.kind === \"runtime\"\n ? Object.freeze({\n kind: \"runtime\" as const,\n requestId: normalizeNonblank(input.source.requestId, \"Runtime request id\"),\n })\n : Object.freeze({\n kind: \"projection\" as const,\n projection: normalizeProjectionSourceRef(input.source.projection),\n datasetVersion: normalizePinnedDatasetVersion(input.source.datasetVersion),\n execution: normalizeProjectionExecution(input.source.execution),\n batchOrdinal: input.source.batchOrdinal,\n sourceRowCount: input.source.sourceRowCount,\n sourceRowsSkipped: input.source.sourceRowsSkipped,\n inputExhausted: input.source.inputExhausted,\n })\n if (source.kind === \"projection\") {\n if (!Number.isSafeInteger(source.batchOrdinal) || source.batchOrdinal < 0) {\n throw new MaterializationValidationError(\n \"Telemetry projection batch ordinal must be a nonnegative safe integer.\"\n )\n }\n if (!Number.isSafeInteger(source.sourceRowCount) || source.sourceRowCount < 0) {\n throw new MaterializationValidationError(\n \"Telemetry projection sourceRowCount must be a nonnegative safe integer.\"\n )\n }\n if (!Number.isSafeInteger(source.sourceRowsSkipped) || source.sourceRowsSkipped < 0) {\n throw new MaterializationValidationError(\n \"Telemetry projection sourceRowsSkipped must be a nonnegative safe integer.\"\n )\n }\n if (source.sourceRowsSkipped > source.sourceRowCount) {\n throw new MaterializationValidationError(\n \"Telemetry projection sourceRowsSkipped cannot exceed sourceRowCount.\"\n )\n }\n if (typeof source.inputExhausted !== \"boolean\") {\n throw new MaterializationValidationError(\n \"Telemetry projection inputExhausted must be a boolean.\"\n )\n }\n }\n return Object.freeze({\n source,\n points: Object.freeze(points),\n })\n}\n",
|
|
18
18
|
"import type { OntologyEditOperation } from \"../../materialization/model\"\n\nexport type EditExecutionUnit =\n | { readonly kind: \"single\"; readonly operation: OntologyEditOperation }\n | { readonly kind: \"atomic-group\"; readonly operations: readonly OntologyEditOperation[] }\n\n/** Compiles validated operation groups into the exact units the executor applies. */\nexport function compileEditExecutionUnits(input: {\n readonly operations: readonly OntologyEditOperation[]\n readonly operationGroups?: readonly (readonly string[])[]\n}): readonly EditExecutionUnit[] {\n const groupByFirstId = new Map(\n (input.operationGroups ?? []).map((ids) => [ids[0]!, new Set(ids)] as const)\n )\n const units: EditExecutionUnit[] = []\n\n for (let index = 0; index < input.operations.length; ) {\n const operation = input.operations[index]!\n const groupIds = groupByFirstId.get(operation.id)\n if (!groupIds) {\n units.push({ kind: \"single\", operation })\n index += 1\n continue\n }\n\n const operations = input.operations.slice(index, index + groupIds.size)\n units.push({ kind: \"atomic-group\", operations })\n index += operations.length\n }\n\n return units\n}\n",
|
|
19
19
|
"import type {\n MaterializationLinkScopeState,\n MaterializationLinkState,\n MaterializationObjectState,\n MaterializationSession,\n MaterializationStatePage,\n MaterializationStateRequestChunk,\n OntologyMaterializationStorage,\n StoredTelemetryPoint,\n} from \"../../storage/ontology\"\nimport type { MaterializerContext } from \"../context\"\n\ninterface MutableStatePage {\n objects: MaterializationObjectState[]\n links: MaterializationLinkState[]\n linkScopes: MaterializationLinkScopeState[]\n points: StoredTelemetryPoint[]\n}\n\nexport async function* oneStateRequest(\n request: MaterializationStateRequestChunk\n): AsyncIterable<MaterializationStateRequestChunk> {\n yield request\n}\n\nexport async function loadState(\n context: Pick<MaterializerContext, \"batching\">,\n storage: OntologyMaterializationStorage,\n session: MaterializationSession,\n request: MaterializationStateRequestChunk\n): Promise<MaterializationStatePage> {\n const result: MutableStatePage = { objects: [], links: [], linkScopes: [], points: [] }\n for await (const page of storage.streamState({\n session,\n requests: oneStateRequest(request),\n pageRows: context.batching.statePageRows,\n })) {\n result.objects.push(...page.objects)\n result.links.push(...page.links)\n result.linkScopes.push(...page.linkScopes)\n result.points.push(...page.points)\n }\n return result\n}\n",
|
|
20
20
|
"import type { JsonValue } from \"../../json\"\nimport { MaterializationConflictError } from \"../../materialization/errors\"\nimport type {\n LinkOverride,\n LinkSlotOverride,\n ObjectOverride,\n OntologyLinkRef,\n OntologyLinkScopeRef,\n OntologyObjectRef,\n} from \"../../materialization/model\"\nimport { linkRefKey } from \"../../materialization/refs\"\nimport type {\n StoredLinkSlotOverride,\n StoredObjectOverride,\n StoredSourceLinkAssertion,\n StoredSourceObjectAssertion,\n StoredTelemetryPoint,\n} from \"../../storage/ontology\"\n\nexport interface ResolvedObjectValue {\n readonly ref: OntologyObjectRef\n readonly properties: Readonly<Record<string, JsonValue>>\n}\n\nexport interface ResolvedLinkValue {\n readonly ref: OntologyLinkRef\n readonly properties?: Readonly<Record<string, JsonValue>>\n}\n\nexport function usableLinkSlotOverride(\n stored: StoredLinkSlotOverride | null\n): LinkSlotOverride | null {\n if (!stored) return null\n if (stored.value.kind !== \"legacy-conflict\") return stored.value\n const { source, linkId } = stored.ref\n const scopeLabel = JSON.stringify([source.objectTypeId, source.primaryId, linkId])\n throw new MaterializationConflictError(\n \"effective-state\",\n `Cardinality-one link slot ${scopeLabel} could not be migrated automatically because it ` +\n \"contains multiple legacy upsert overrides. Consolidate the stored overrides and clear \" +\n \"the migration conflict marker before materializing this scope.\"\n )\n}\n\nexport function resolveEffectiveObject(input: {\n readonly ref: OntologyObjectRef\n readonly primaryPropertyId: string\n readonly source: StoredSourceObjectAssertion | null\n readonly override: ObjectOverride | null\n readonly editedAt: Readonly<Record<string, string>>\n readonly latestTelemetry: readonly StoredTelemetryPoint[]\n}): ResolvedObjectValue | null {\n const properties = resolveObjectAuthority(input.source, input.override, input.editedAt)\n if (!properties) return null\n\n properties[input.primaryPropertyId] = input.ref.primaryId\n applyLatestTelemetry(properties, input.latestTelemetry)\n return { ref: input.ref, properties }\n}\n\nfunction resolveObjectAuthority(\n source: StoredSourceObjectAssertion | null,\n override: ObjectOverride | null,\n editedAt: Readonly<Record<string, string>>\n): Record<string, JsonValue> | null {\n switch (override?.kind) {\n case \"delete\":\n return null\n case \"create\":\n if (!source) return { ...override.properties }\n return resolveSourceAndEdits(source, override, editedAt)\n case \"patch\":\n if (!source) return null\n return resolveSourceAndEdits(source, override, editedAt)\n default:\n if (!source) return null\n return { ...source.assertion.properties }\n }\n}\n\nfunction resolveSourceAndEdits(\n source: StoredSourceObjectAssertion,\n override: Exclude<ObjectOverride, { readonly kind: \"delete\" }>,\n editedAt: Readonly<Record<string, string>>\n): Record<string, JsonValue> {\n const properties = { ...source.assertion.properties }\n const absentSourcePropertyIds = new Set(source.assertion.absentSourcePropertyIds ?? [])\n\n for (const propertyId of objectEditCandidateIds(override, editedAt)) {\n const edit = objectEditCandidate(override, propertyId)\n const editTimestamp = editedAt[propertyId]\n const hasSourceCandidate =\n Object.hasOwn(source.assertion.properties, propertyId) ||\n absentSourcePropertyIds.has(propertyId)\n const sourceWins =\n hasSourceCandidate &&\n source.assertion.sourceUpdatedAt !== undefined &&\n editTimestamp !== undefined &&\n source.assertion.sourceUpdatedAt.localeCompare(editTimestamp) >= 0\n\n if (!sourceWins) applyObjectEditCandidate(properties, propertyId, edit)\n }\n return properties\n}\n\ninterface ObjectPropertyCandidate {\n readonly present: boolean\n readonly value?: JsonValue\n}\n\nfunction objectEditCandidateIds(\n override: Exclude<ObjectOverride, { readonly kind: \"delete\" }>,\n editedAt: Readonly<Record<string, string>>\n): string[] {\n const ids = new Set(Object.keys(editedAt))\n if (override.kind === \"create\") {\n for (const propertyId of Object.keys(override.properties)) ids.add(propertyId)\n } else {\n for (const propertyId of Object.keys(override.set)) ids.add(propertyId)\n for (const propertyId of override.unset) ids.add(propertyId)\n }\n return [...ids]\n}\n\nfunction objectEditCandidate(\n override: Exclude<ObjectOverride, { readonly kind: \"delete\" }>,\n propertyId: string\n): ObjectPropertyCandidate {\n const values = override.kind === \"create\" ? override.properties : override.set\n return Object.hasOwn(values, propertyId)\n ? { present: true, value: values[propertyId] }\n : { present: false }\n}\n\nfunction applyObjectEditCandidate(\n properties: Record<string, JsonValue>,\n propertyId: string,\n candidate: ObjectPropertyCandidate\n): void {\n if (candidate.present) properties[propertyId] = candidate.value as JsonValue\n else delete properties[propertyId]\n}\n\nexport function storedObjectEditedAt(stored: StoredObjectOverride | null): Record<string, string> {\n if (!stored || stored.value.kind === \"delete\") return {}\n const editedAt = { ...(stored.editedAt ?? {}) }\n const candidateIds =\n stored.value.kind === \"create\"\n ? Object.keys(stored.value.properties)\n : [...Object.keys(stored.value.set), ...stored.value.unset]\n for (const propertyId of candidateIds) editedAt[propertyId] ??= stored.updatedAt\n return editedAt\n}\n\nfunction applyLatestTelemetry(\n properties: Record<string, JsonValue>,\n latestTelemetry: readonly StoredTelemetryPoint[]\n): void {\n for (const point of latestTelemetry) properties[point.series.propertyId] = point.value\n}\n\nexport function resolveEffectiveLink(input: {\n readonly ref: OntologyLinkRef\n readonly source: StoredSourceLinkAssertion | null\n readonly override: LinkOverride | null\n readonly sourceEndpointExists: boolean\n readonly targetEndpointExists: boolean\n}): ResolvedLinkValue | null {\n if (!input.sourceEndpointExists || !input.targetEndpointExists) return null\n if (input.override?.kind === \"delete\") return null\n\n if (input.override?.kind === \"upsert\") {\n return resolvedLink(input.ref, input.override.properties)\n }\n if (!input.source) return null\n return resolvedLink(input.ref, input.source.assertion.properties)\n}\n\n/** Resolves the effective edge selected by a cardinality-one link slot. */\nexport function resolveEffectiveLinkSlot(input: {\n readonly scope: OntologyLinkScopeRef\n readonly source: StoredSourceLinkAssertion | null\n readonly override: LinkSlotOverride | null\n readonly endpointExists: (ref: OntologyObjectRef) => boolean\n}): ResolvedLinkValue | null {\n if (!input.endpointExists(input.scope.source)) return null\n if (input.override?.kind === \"clear\") return null\n\n if (input.override?.kind === \"set\") {\n if (!input.endpointExists(input.override.target)) return null\n return resolvedLink(\n {\n source: input.scope.source,\n linkId: input.scope.linkId,\n target: input.override.target,\n },\n input.override.properties\n )\n }\n\n if (!input.source || !input.endpointExists(input.source.assertion.ref.target)) return null\n return resolvedLink(input.source.assertion.ref, input.source.assertion.properties)\n}\n\n/** Resolves one exact edge as a member of its cardinality-one link slot. */\nexport function resolveEffectiveLinkSlotMember(input: {\n readonly ref: OntologyLinkRef\n readonly source: StoredSourceLinkAssertion | null\n readonly override: LinkSlotOverride | null\n readonly endpointExists: (ref: OntologyObjectRef) => boolean\n}): ResolvedLinkValue | null {\n const resolved = resolveEffectiveLinkSlot({\n scope: { source: input.ref.source, linkId: input.ref.linkId },\n source: input.source,\n override: input.override,\n endpointExists: input.endpointExists,\n })\n return resolved && linkRefKey(resolved.ref) === linkRefKey(input.ref) ? resolved : null\n}\n\nfunction resolvedLink(\n ref: OntologyLinkRef,\n properties: Readonly<Record<string, JsonValue>> | undefined\n): ResolvedLinkValue {\n if (properties === undefined) return { ref }\n return { ref, properties }\n}\n",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"import type { EffectiveLinkChange, EffectiveObjectChange } from \"../../materialization/model\"\nimport {\n compareLinkRefs,\n compareObjectRefs,\n linkRefKey,\n linkRefSortKey,\n linkScopeKey,\n linkScopeSortKey,\n objectRefKey,\n objectRefSortKey,\n} from \"../../materialization/refs\"\nimport type {\n MaterializationPlanWorkItem,\n MaterializationSession,\n MaterializationWorkRecord,\n OntologyMaterializationStorage,\n} from \"../../storage/ontology\"\nimport type { MaterializerContext } from \"../context\"\nimport {\n buildLinkMaterializationEventDraft,\n buildObjectMaterializationEventDraft,\n} from \"../effective/build-events\"\nimport { diffEffectiveLink, diffEffectiveLinkSlot, diffEffectiveObject } from \"../effective/diff\"\nimport { validateEffectiveObject } from \"../effective/validate\"\nimport { stageWorkBounded } from \"../execution/work-executor\"\nimport {\n appendEffectiveLinkWork,\n appendEffectiveObjectWork,\n appendLinkEdgeOverrideWork,\n appendLinkSlotOverrideWork,\n appendObjectOverrideWork,\n classificationWork,\n eventWork,\n planWork,\n} from \"../execution/work-records\"\nimport type { TimedCommitIdentity } from \"../shared/identity\"\nimport {\n type EditWorkingState,\n resolveLinkEdge,\n resolveLinkSlot,\n resolveObject,\n validateWorkingCardinality,\n type WorkingLinkEdge,\n type WorkingLinkSlot,\n type WorkingObject,\n} from \"./working-state\"\n\nexport interface EditPlanChanges {\n readonly objects: readonly EffectiveObjectChange[]\n readonly links: readonly EffectiveLinkChange[]\n}\n\nexport async function stageEditPlan(\n context: MaterializerContext,\n storage: OntologyMaterializationStorage,\n session: MaterializationSession,\n state: EditWorkingState,\n identity: TimedCommitIdentity\n): Promise<EditPlanChanges> {\n validateWorkingCardinality(state.links.slots)\n\n const objectChanges: EffectiveObjectChange[] = []\n for (const working of sortedObjects(state.objects)) {\n const change = await stageObject(context, storage, session, working, identity)\n if (change) objectChanges.push(change)\n }\n\n const linkChanges: EffectiveLinkChange[] = []\n for (const working of sortedLinkEdges(state.links.edges)) {\n const change = await stageLinkEdge(context, storage, session, state.objects, working, identity)\n if (change) linkChanges.push(change)\n }\n for (const working of sortedLinkSlots(state.links.slots)) {\n linkChanges.push(\n ...(await stageLinkSlot(context, storage, session, state.objects, working, identity))\n )\n }\n\n return { objects: objectChanges, links: linkChanges }\n}\n\n/**\n * Stages one slot-level authority change and translates it back to physical edge writes/events.\n * Replacing the selected target therefore becomes an ordered delete of the old edge followed by a\n * create of the new edge, while the override itself remains keyed only by `(source, linkId)`.\n */\nasync function stageLinkSlot(\n context: MaterializerContext,\n storage: OntologyMaterializationStorage,\n session: MaterializationSession,\n objects: EditWorkingState[\"objects\"],\n working: WorkingLinkSlot,\n identity: TimedCommitIdentity\n): Promise<EffectiveLinkChange[]> {\n const overrideItems: MaterializationPlanWorkItem[] = []\n appendLinkSlotOverrideWork(overrideItems, working, identity)\n const resolved = resolveLinkSlot(context.ontology, working, objects)\n const changes = diffEffectiveLinkSlot({\n before: working.before,\n resolved,\n commitId: identity.commitId,\n committedAt: identity.committedAt,\n })\n\n const representative =\n resolved?.ref ??\n working.before?.ref ??\n (working.override\n ? {\n source: working.ref.source,\n linkId: working.ref.linkId,\n target: working.override.target,\n }\n : null)\n const scopeSortKey = linkScopeSortKey(working.ref.source, working.ref.linkId)\n const work: MaterializationWorkRecord[] = overrideItems.map((item) =>\n planWork(item, scopeSortKey)\n )\n if (representative) {\n work.push(\n classificationWork(\"link\", linkRefKey(representative), linkRefSortKey(representative))\n )\n }\n for (const change of changes) {\n const effectiveItems: MaterializationPlanWorkItem[] = []\n appendEffectiveLinkWork(effectiveItems, change)\n const sortKey = linkRefSortKey(change.ref)\n work.push(...effectiveItems.map((item) => planWork(item, sortKey)))\n work.push(eventWork(buildLinkMaterializationEventDraft(change)))\n }\n await stageWorkBounded(context, storage, session, work)\n return changes\n}\n\nasync function stageObject(\n context: MaterializerContext,\n storage: OntologyMaterializationStorage,\n session: MaterializationSession,\n working: WorkingObject,\n identity: TimedCommitIdentity\n): Promise<EffectiveObjectChange | null> {\n const items: MaterializationPlanWorkItem[] = []\n appendObjectOverrideWork(items, working, identity)\n\n const resolved = resolveObject(context.ontology, working)\n if (resolved) validateEffectiveObject(context.ontology, resolved.ref, resolved.properties)\n const change = diffEffectiveObject({\n before: working.before,\n resolved,\n commitId: identity.commitId,\n committedAt: identity.committedAt,\n })\n if (change) appendEffectiveObjectWork(items, change)\n\n const sortKey = objectRefSortKey(working.ref)\n const work: MaterializationWorkRecord[] = [\n classificationWork(\"object\", objectRefKey(working.ref), sortKey),\n ...items.map((item) => planWork(item, sortKey)),\n ]\n if (change) {\n work.push(eventWork(buildObjectMaterializationEventDraft(change)))\n }\n await stageWorkBounded(context, storage, session, work)\n return change\n}\n\nasync function stageLinkEdge(\n context: MaterializerContext,\n storage: OntologyMaterializationStorage,\n session: MaterializationSession,\n objects: EditWorkingState[\"objects\"],\n working: WorkingLinkEdge,\n identity: TimedCommitIdentity\n): Promise<EffectiveLinkChange | null> {\n const items: MaterializationPlanWorkItem[] = []\n appendLinkEdgeOverrideWork(items, working, identity)\n\n const resolved = resolveLinkEdge(context.ontology, working, objects)\n const change = diffEffectiveLink({\n before: working.before,\n resolved,\n commitId: identity.commitId,\n committedAt: identity.committedAt,\n })\n if (change) appendEffectiveLinkWork(items, change)\n\n const sortKey = linkRefSortKey(working.ref)\n const work: MaterializationWorkRecord[] = [\n classificationWork(\"link\", linkRefKey(working.ref), sortKey),\n ...items.map((item) => planWork(item, sortKey)),\n ]\n if (change) {\n work.push(eventWork(buildLinkMaterializationEventDraft(change)))\n }\n await stageWorkBounded(context, storage, session, work)\n return change\n}\n\nfunction sortedObjects(objects: EditWorkingState[\"objects\"]): WorkingObject[] {\n return [...objects.values()].sort((left, right) => compareObjectRefs(left.ref, right.ref))\n}\n\nfunction sortedLinkEdges(edges: EditWorkingState[\"links\"][\"edges\"]): WorkingLinkEdge[] {\n return [...edges.values()].sort((left, right) => compareLinkRefs(left.ref, right.ref))\n}\n\nfunction sortedLinkSlots(slots: EditWorkingState[\"links\"][\"slots\"]): WorkingLinkSlot[] {\n return [...slots.values()].sort((left, right) =>\n linkScopeKey(left.ref.source, left.ref.linkId).localeCompare(\n linkScopeKey(right.ref.source, right.ref.linkId)\n )\n )\n}\n",
|
|
32
32
|
"import {\n MaterializationConflictError,\n MaterializationValidationError,\n} from \"../../materialization/errors\"\nimport type { OntologyEditCommit } from \"../../materialization/model\"\nimport { objectRefKey } from \"../../materialization/refs\"\nimport type { ObjectVectorWrite } from \"../../materialization/vectors\"\nimport type { Storage } from \"../../storage\"\nimport type { VectorIndexingWork } from \"../../storage/ontology/vector-indexing\"\nimport type { MaterializerExecution } from \"../execution/scope\"\n\n/** Kernel indexing can publish only its persisted results, never change business data. */\nexport async function authorizeVectorIndexingCommit(\n storage: Storage,\n projectId: string,\n input: OntologyEditCommit,\n execution: MaterializerExecution\n): Promise<boolean> {\n const executor = execution.scope.execution.executor\n if (executor.type !== \"kernel\" || executor.operation.type !== \"ontology.indexVectors\")\n return false\n if (\n input.mode !== \"atomic\" ||\n input.source.kind !== \"runtime\" ||\n input.operations.length ||\n !input.vectorWrites?.length ||\n input.expectedLinks.length ||\n input.expectedLinkScopes.length\n ) {\n throw new MaterializationValidationError(\n \"Vector indexing authority only permits its persisted vector writes.\"\n )\n }\n const writes = input.vectorWrites!\n const refs = new Set(writes.map((write) => objectRefKey(write.input.ref)))\n if (\n input.expectedObjects.length !== refs.size ||\n input.expectedObjects.some((expected) => !refs.has(objectRefKey(expected.ref)))\n ) {\n throw new MaterializationValidationError(\n \"Vector indexing must fence exactly its written objects.\"\n )\n }\n\n const indexing = storage.ontology.vectorIndexing\n const indexingId = executor.operation.indexingId\n const single = await indexing?.get({ projectId, id: indexingId })\n if (single && writes.length !== 1) {\n throw new MaterializationValidationError(\n \"Individual indexing authority only permits one vector write.\"\n )\n }\n\n // Multi-object publication reads membership/results once, not once per object.\n let members: readonly VectorIndexingWork[]\n if (single) {\n members = [single]\n } else if (writes.length === 1) {\n const member = await indexing?.getBatchMember({\n projectId,\n batchId: indexingId,\n ref: writes[0]!.input.ref,\n profile: writes[0]!.input.profile,\n })\n members = member ? [member] : []\n } else {\n members = (await indexing?.getBatch({ projectId, batchId: indexingId })) ?? []\n }\n\n const byProfile = new Map(\n members.map((work) => [JSON.stringify([objectRefKey(work.ref), work.profile]), work])\n )\n const source = execution.scope.execution.source\n\n for (const write of writes) {\n const work = byProfile.get(JSON.stringify([objectRefKey(write.input.ref), write.input.profile]))\n if (!work || work.status !== \"ready\") {\n throw new MaterializationConflictError(\n \"effective-state\",\n \"Vector indexing work is no longer ready.\"\n )\n }\n if (\n source.type !== \"ontologyCommit\" ||\n source.commitId !== work.sourceCommitId ||\n !matchesStoredResult(write, work)\n ) {\n throw new MaterializationValidationError(\n \"Vector indexing authority only permits its current prepared representation.\"\n )\n }\n }\n return true\n}\n\nfunction matchesStoredResult(write: ObjectVectorWrite, work: VectorIndexingWork): boolean {\n const prepared = write.input\n return (\n prepared.ref.objectTypeId === work.ref.objectTypeId &&\n prepared.ref.primaryId === work.ref.primaryId &&\n prepared.profile === work.profile &&\n prepared.configuration === work.configuration &&\n prepared.sourceFingerprint === work.sourceFingerprint &&\n work.values !== undefined &&\n work.values.length === write.values.length &&\n work.values.every((value, index) => value === write.values[index])\n )\n}\n",
|
|
33
33
|
"import {\n MaterializationConflictError,\n MaterializationValidationError,\n} from \"../../materialization/errors\"\nimport type { OntologyEditCommit } from \"../../materialization/model\"\nimport { objectRefKey } from \"../../materialization/refs\"\nimport { normalizeVector, vectorConfiguration, vectorSources } from \"../../objects/vectors/profile\"\nimport type { Storage } from \"../../storage\"\nimport { objectBatchKey } from \"../../storage/objects/keys\"\nimport type { MaterializationSession, OntologyVectorStorage } from \"../../storage/ontology\"\nimport type { MaterializerContext } from \"../context\"\n\nexport async function commitVectorWrites(\n context: MaterializerContext,\n storage: Storage,\n input: OntologyEditCommit,\n commitId: string,\n session: MaterializationSession\n): Promise<void> {\n if (input.mode !== \"atomic\" || !input.vectorWrites?.length) return\n const vectors = storage.ontology.vectors\n if (!vectors)\n throw new MaterializationValidationError(\"Storage does not support vector profiles.\")\n const rows = await storage.objects.getByPrimaryIdBatch({\n projectId: context.projectId,\n items: input.vectorWrites.map((write) => write.input.ref),\n })\n const expectations = new Map(\n input.expectedObjects.map((expected) => [objectRefKey(expected.ref), expected])\n )\n const entries: Parameters<OntologyVectorStorage[\"writeBatch\"]>[0][\"entries\"][number][] = []\n const seen = new Set<string>()\n for (const write of input.vectorWrites) {\n const prepared = write.input\n const key = JSON.stringify([objectRefKey(prepared.ref), prepared.profile])\n if (seen.has(key)) throw new MaterializationValidationError(`Duplicate vector write: ${key}`)\n seen.add(key)\n const profileDefinition = context.ontology.resolveObjectType(prepared.ref.objectTypeId).search\n ?.vectors?.[prepared.profile]\n if (\n prepared.projectId !== context.projectId ||\n !profileDefinition ||\n vectorConfiguration(profileDefinition) !== prepared.configuration\n ) {\n throw new MaterializationConflictError(\n \"effective-state\",\n \"Vector profile configuration changed; index it again.\"\n )\n }\n const expected = expectations.get(objectRefKey(prepared.ref))\n if (\n !expected?.exists ||\n !prepared.expectedObject?.exists ||\n objectRefKey(prepared.expectedObject.ref) !== objectRefKey(prepared.ref) ||\n expected.version !== prepared.expectedObject.version ||\n expected.lastCommitId !== prepared.expectedObject.lastCommitId\n ) {\n throw new MaterializationValidationError(\n \"Vector writes must fence their prepared object revision.\"\n )\n }\n const row = rows.get(objectBatchKey(prepared.ref.objectTypeId, prepared.ref.primaryId))\n if (\n !row ||\n row.version !== expected.version ||\n row.lastCommitId !== expected.lastCommitId ||\n vectorSources(profileDefinition.source, row.properties).sourceFingerprint !==\n prepared.sourceFingerprint\n ) {\n throw new MaterializationConflictError(\n \"effective-state\",\n \"Vector sources changed; index the profile again.\"\n )\n }\n entries.push({\n expectedCommitId: prepared.expectedVectorCommitId,\n value: {\n ref: prepared.ref,\n profile: prepared.profile,\n configuration: prepared.configuration,\n source: profileDefinition.source,\n sourceFingerprint: prepared.sourceFingerprint,\n values: normalizeVector(write.values, profileDefinition.model.definition.dimensions),\n lastCommitId: commitId,\n },\n })\n }\n\n await vectors.writeBatch({ session, projectId: context.projectId, entries })\n await storage.ontology.vectorIndexing?.complete({\n session,\n projectId: context.projectId,\n entries: input.vectorWrites.map(({ input: prepared }) => ({\n ref: prepared.ref,\n profile: prepared.profile,\n configuration: prepared.configuration,\n sourceFingerprint: prepared.sourceFingerprint,\n })),\n })\n}\n",
|
|
34
|
-
"import {\n MaterializationConflictError,\n MaterializationValidationError,\n} from \"../../materialization/errors\"\nimport type {\n EditCommitResult,\n OntologyEditCommit,\n OntologyEditOperation,\n OntologyMaterializationOrigin,\n OntologyOperationOutcome,\n} from \"../../materialization/model\"\nimport type { Storage } from \"../../storage\"\nimport type { MaterializationSession, OntologyCommitWrite } from \"../../storage/ontology\"\nimport type { MaterializerContext, MaterializerStorage } from \"../context\"\nimport { replayCommit, withSerializationRetry } from \"../execution/commit-lifecycle\"\nimport {\n assertMaterializerRunExecution,\n assertRuntimeMutationExecution,\n assertTrustedPrimitiveMutationExecution,\n ensureMaterializerExecution,\n type MaterializerExecution,\n prepareMaterializerExecution,\n} from \"../execution/scope\"\nimport { applyStagedWork } from \"../execution/work-executor\"\nimport type { MaterializerCommand } from \"../materializer\"\nimport {\n createActionIdempotencyKey,\n createRuntimeIdempotencyKey,\n createTimedCommitIdentity,\n type TimedCommitIdentity,\n} from \"../shared/identity\"\nimport { normalizeOntologyEditCommit } from \"../shared/normalize\"\nimport { compileEditExecutionUnits, type EditExecutionUnit } from \"./execution-units\"\nimport { loadEditWorkingState } from \"./load-state\"\nimport { applyEditOperation, type EditUndoJournal, undoEditJournal } from \"./operations\"\nimport { stageEditPlan } from \"./plan\"\nimport { loadReferencedUsers, type ReferencedUsers } from \"./user-refs\"\nimport { authorizeVectorIndexingCommit } from \"./vector-authority\"\nimport { commitVectorWrites } from \"./vectors\"\nimport type { EditWorkingState } from \"./working-state\"\n\ntype NormalizedEditCommit = ReturnType<typeof normalizeOntologyEditCommit>\n\ninterface PreparedEditCommit {\n readonly input: NormalizedEditCommit\n readonly identity: TimedCommitIdentity\n readonly origin: OntologyMaterializationOrigin\n readonly execution: MaterializerExecution\n /** Read before the transaction opens; see `user-refs.ts`. */\n readonly users: ReferencedUsers\n}\n\nexport async function commitEdits(\n context: MaterializerContext,\n raw: MaterializerCommand<OntologyEditCommit>\n): Promise<EditCommitResult> {\n const command = await prepareEditCommit(context, raw)\n return executeEditCommit(context, command)\n}\n\nasync function prepareEditCommit(\n context: Pick<MaterializerContext, \"projectId\" | \"clock\" | \"ontology\" | \"storage\">,\n raw: MaterializerCommand<OntologyEditCommit>\n): Promise<PreparedEditCommit> {\n const input = normalizeOntologyEditCommit(raw.input)\n const idempotencyKey = editIdempotencyKey(input)\n const identity = createTimedCommitIdentity({\n projectId: context.projectId,\n idempotencyKey,\n normalizedCallerIntent: input,\n now: context.clock(),\n })\n return {\n input,\n identity,\n origin: input.source,\n execution: prepareMaterializerExecution(context.projectId, raw.scope),\n users: await loadReferencedUsers(context, input.operations),\n }\n}\n\nfunction editIdempotencyKey(input: NormalizedEditCommit): string {\n if (input.source.kind === \"action\") {\n return createActionIdempotencyKey(input.source.runId)\n }\n return createRuntimeIdempotencyKey(input.source.requestId)\n}\n\nasync function lockActionRunForMaterialization(\n storage: Storage,\n projectId: string,\n input: NormalizedEditCommit,\n execution: MaterializerExecution\n): Promise<void> {\n if (input.source.kind !== \"action\") return\n if (!storage.actionRuns) {\n throw new MaterializationValidationError(\n \"Storage does not provide Action run capabilities required by this commit.\"\n )\n }\n const run = await storage.actionRuns.lockForMaterialization({\n projectId,\n actionId: input.source.actionId,\n runId: input.source.runId,\n })\n assertMaterializerRunExecution(execution, run.executionId, `Action run '${run.id}'`)\n}\n\nasync function validateMutationExecution(\n storage: Storage,\n projectId: string,\n input: NormalizedEditCommit,\n execution: MaterializerExecution\n): Promise<void> {\n if (await authorizeVectorIndexingCommit(storage, projectId, input, execution)) return\n if (input.source.kind !== \"action\") {\n assertRuntimeMutationExecution(execution)\n return\n }\n assertTrustedPrimitiveMutationExecution(execution, {\n kind: \"action\",\n id: input.source.actionId,\n runId: input.source.runId,\n })\n if (!storage.actionRuns) {\n throw new MaterializationValidationError(\n \"Storage does not provide Action run capabilities required by this commit.\"\n )\n }\n const run = await storage.actionRuns.getById({ projectId, id: input.source.runId })\n if (!run) {\n throw new MaterializationValidationError(`Action run '${input.source.runId}' was not found.`)\n }\n if (run.actionId !== input.source.actionId) {\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Action run '${run.id}' does not belong to action '${input.source.actionId}'.`\n )\n }\n assertMaterializerRunExecution(execution, run.executionId, `Action run '${run.id}'`)\n}\n\nasync function executeEditCommit(\n context: MaterializerContext,\n command: PreparedEditCommit\n): Promise<EditCommitResult> {\n return withSerializationRetry(context, () =>\n context.storage.transaction((storage) => executeEditTransaction(context, storage, command), {\n isolation: \"serializable\",\n })\n )\n}\n\nasync function executeEditTransaction(\n context: MaterializerContext,\n storage: MaterializerStorage,\n command: PreparedEditCommit\n): Promise<EditCommitResult> {\n await ensureMaterializerExecution(storage.executions, command.execution)\n await validateMutationExecution(storage, context.projectId, command.input, command.execution)\n\n const replay = await replayCommit<EditCommitResult>(\n context,\n command.identity,\n command.execution.executionId,\n storage\n )\n if (replay) return replay\n\n await lockActionRunForMaterialization(\n storage,\n context.projectId,\n command.input,\n command.execution\n )\n\n const session = await beginEditMaterialization(context, storage, command)\n const workingState = await loadEditWorkingState(\n context,\n storage.ontology.materializations,\n session,\n command.input.operations\n )\n const outcomes = applyEditOperations(context, workingState, command)\n const changes = await stageEditPlan(\n context,\n storage.ontology.materializations,\n session,\n workingState,\n command.identity\n )\n const eventCount = await applyStagedWork(context, storage, session)\n await commitVectorWrites(context, storage, command.input, command.identity.commitId, session)\n\n const result: EditCommitResult = {\n kind: \"edit\",\n commitId: command.identity.commitId,\n created: true,\n eventCount,\n committedAt: command.identity.committedAt,\n outcomes,\n changes,\n }\n return finalizeEditMaterialization(storage, session, result)\n}\n\nasync function beginEditMaterialization(\n context: Pick<MaterializerContext, \"projectId\" | \"projectionRegistry\">,\n storage: MaterializerStorage,\n command: PreparedEditCommit\n): Promise<MaterializationSession> {\n const commit = buildEditCommit(context, command)\n return storage.ontology.materializations.begin({\n commit,\n expected: {\n sources: [],\n ...editExpectations(command.input),\n points: [],\n },\n })\n}\n\nfunction buildEditCommit(\n context: Pick<MaterializerContext, \"projectId\" | \"projectionRegistry\">,\n command: PreparedEditCommit\n): OntologyCommitWrite {\n return {\n projectId: context.projectId,\n id: command.identity.commitId,\n idempotencyKey: command.identity.idempotencyKey,\n requestHash: command.identity.requestHash,\n executionId: command.execution.executionId,\n origin: command.origin,\n ontologyRevision: context.projectionRegistry.ontologyRevision,\n intent: {\n kind: \"edit\",\n mode: command.input.mode,\n operationCount: command.input.operations.length,\n ...(command.input.mode === \"atomic\" && command.input.vectorWrites?.length\n ? { vectorWriteCount: command.input.vectorWrites.length }\n : {}),\n },\n committedAt: command.identity.committedAt,\n }\n}\n\nfunction editExpectations(input: NormalizedEditCommit) {\n if (input.mode === \"atomic\") {\n return {\n objects: input.expectedObjects,\n links: input.expectedLinks,\n linkScopes: input.expectedLinkScopes,\n }\n }\n return { objects: [], links: [], linkScopes: [] }\n}\n\nfunction applyEditOperations(\n context: MaterializerContext,\n state: EditWorkingState,\n command: PreparedEditCommit\n): OntologyOperationOutcome[] {\n const outcomes: OntologyOperationOutcome[] = []\n const units = compileEditExecutionUnits(command.input)\n for (const unit of units) {\n outcomes.push(...applyEditExecutionUnit(context, state, command, unit))\n }\n return outcomes\n}\n\nfunction applyEditExecutionUnit(\n context: MaterializerContext,\n state: EditWorkingState,\n command: PreparedEditCommit,\n unit: EditExecutionUnit\n): OntologyOperationOutcome[] {\n if (unit.kind === \"atomic-group\") {\n return applyEditOperationGroup(context, state, command, unit.operations)\n }\n return [applyOneEditOperation(context, state, unit.operation, command)]\n}\n\nfunction applyOneEditOperation(\n context: MaterializerContext,\n state: EditWorkingState,\n operation: OntologyEditOperation,\n command: PreparedEditCommit\n): OntologyOperationOutcome {\n try {\n return applyEditOperation(context, state, operation, command.identity, command.users)\n } catch (error) {\n if (!isRecoverableEditValidation(command.input, error)) throw error\n return { id: operation.id, ok: false, error: { code: \"validation\", message: error.message } }\n }\n}\n\n/**\n * Applies one grouped item, rolling the whole group back if any operation in it fails.\n *\n * Without this, continue mode would leave an item half-applied: a cardinality-one reassignment\n * whose `link.delete` succeeded and whose `link.upsert` failed would report an item error while the\n * original edge stayed deleted.\n */\nfunction applyEditOperationGroup(\n context: MaterializerContext,\n state: EditWorkingState,\n command: PreparedEditCommit,\n group: readonly OntologyEditOperation[]\n): OntologyOperationOutcome[] {\n const journal: EditUndoJournal = []\n const applied: OntologyOperationOutcome[] = []\n\n for (const operation of group) {\n let outcome: OntologyOperationOutcome\n try {\n outcome = applyEditOperation(\n context,\n state,\n operation,\n command.identity,\n command.users,\n journal\n )\n } catch (error) {\n if (!isRecoverableEditValidation(command.input, error)) throw error\n undoEditJournal(journal)\n return failedEditGroup(group, error.message)\n }\n if (!outcome.ok) {\n undoEditJournal(journal)\n return failedEditGroup(group, outcome.error.message)\n }\n applied.push(outcome)\n }\n return applied\n}\n\n/** Reports every id in a rolled-back group as failed, so no position looks applied. */\nfunction failedEditGroup(\n group: readonly OntologyEditOperation[],\n message: string\n): OntologyOperationOutcome[] {\n return group.map((operation) => ({\n id: operation.id,\n ok: false as const,\n error: { code: \"validation\" as const, message },\n }))\n}\n\nfunction isRecoverableEditValidation(\n input: NormalizedEditCommit,\n error: unknown\n): error is MaterializationValidationError {\n if (input.mode === \"atomic\") return false\n return error instanceof MaterializationValidationError\n}\n\nasync function finalizeEditMaterialization(\n storage: MaterializerStorage,\n session: MaterializationSession,\n result: EditCommitResult\n): Promise<EditCommitResult> {\n const applied = await storage.ontology.materializations.finalize({\n session,\n finalization: { sourceActivations: [], result },\n })\n return applied.commit.result as EditCommitResult\n}\n",
|
|
34
|
+
"import {\n MaterializationConflictError,\n MaterializationValidationError,\n} from \"../../materialization/errors\"\nimport type {\n EditCommitResult,\n OntologyEditCommit,\n OntologyEditOperation,\n OntologyMaterializationOrigin,\n OntologyOperationOutcome,\n} from \"../../materialization/model\"\nimport type { RecordActionRunInput, Storage } from \"../../storage\"\nimport type { MaterializationSession, OntologyCommitWrite } from \"../../storage/ontology\"\nimport type { MaterializerContext, MaterializerStorage } from \"../context\"\nimport { replayCommit, withSerializationRetry } from \"../execution/commit-lifecycle\"\nimport {\n assertMaterializerRunExecution,\n assertRuntimeMutationExecution,\n assertTrustedPrimitiveMutationExecution,\n ensureMaterializerExecution,\n type MaterializerExecution,\n prepareMaterializerExecution,\n} from \"../execution/scope\"\nimport { applyStagedWork } from \"../execution/work-executor\"\nimport type { MaterializerCommand } from \"../materializer\"\nimport {\n createActionIdempotencyKey,\n createRuntimeIdempotencyKey,\n createTimedCommitIdentity,\n type TimedCommitIdentity,\n} from \"../shared/identity\"\nimport { normalizeOntologyEditCommit } from \"../shared/normalize\"\nimport { compileEditExecutionUnits, type EditExecutionUnit } from \"./execution-units\"\nimport { loadEditWorkingState } from \"./load-state\"\nimport { applyEditOperation, type EditUndoJournal, undoEditJournal } from \"./operations\"\nimport { stageEditPlan } from \"./plan\"\nimport { loadReferencedUsers, type ReferencedUsers } from \"./user-refs\"\nimport { authorizeVectorIndexingCommit } from \"./vector-authority\"\nimport { commitVectorWrites } from \"./vectors\"\nimport type { EditWorkingState } from \"./working-state\"\n\ntype NormalizedEditCommit = ReturnType<typeof normalizeOntologyEditCommit>\n\ninterface PreparedEditCommit {\n readonly input: NormalizedEditCommit\n readonly identity: TimedCommitIdentity\n readonly origin: OntologyMaterializationOrigin\n readonly execution: MaterializerExecution\n /** Read before the transaction opens; see `user-refs.ts`. */\n readonly users: ReferencedUsers\n}\n\nexport async function commitEdits(\n context: MaterializerContext,\n raw: MaterializerCommand<OntologyEditCommit>\n): Promise<EditCommitResult> {\n const command = await prepareEditCommit(context, raw)\n return executeEditCommit(context, command)\n}\n\nasync function prepareEditCommit(\n context: Pick<MaterializerContext, \"projectId\" | \"clock\" | \"ontology\" | \"storage\">,\n raw: MaterializerCommand<OntologyEditCommit>\n): Promise<PreparedEditCommit> {\n const input = normalizeOntologyEditCommit(raw.input)\n const idempotencyKey = editIdempotencyKey(input)\n const identity = createTimedCommitIdentity({\n projectId: context.projectId,\n idempotencyKey,\n normalizedCallerIntent: editIntent(input),\n now: context.clock(),\n })\n return {\n input,\n identity,\n origin: input.source,\n execution: prepareMaterializerExecution(context.projectId, raw.scope),\n users: await loadReferencedUsers(context, input.operations),\n }\n}\n\nfunction editIdempotencyKey(input: NormalizedEditCommit): string {\n if (input.source.kind === \"action\") {\n return createActionIdempotencyKey(input.source.runId)\n }\n return createRuntimeIdempotencyKey(input.source.requestId)\n}\n\n/**\n * What a replay of the commit must repeat: its edits, without the run record an Action commit\n * carries. That record is written by the commit that inserts it, and its timestamps differ on\n * every attempt.\n */\nfunction editIntent(input: NormalizedEditCommit): unknown {\n if (!(\"run\" in input)) return input\n const { run: _run, ...intent } = input\n return intent\n}\n\nasync function validateMutationExecution(\n storage: Storage,\n projectId: string,\n input: NormalizedEditCommit,\n execution: MaterializerExecution\n): Promise<void> {\n if (await authorizeVectorIndexingCommit(storage, projectId, input, execution)) return\n if (input.source.kind !== \"action\") {\n assertRuntimeMutationExecution(execution)\n return\n }\n assertTrustedPrimitiveMutationExecution(execution, {\n kind: \"action\",\n id: input.source.actionId,\n runId: input.source.runId,\n })\n const run = requireActionRun(input)\n if (run.projectId !== projectId || run.id !== input.source.runId) {\n throw new MaterializationValidationError(\n `The record carried by Action run '${input.source.runId}' belongs to another run.`\n )\n }\n if (run.actionId !== input.source.actionId) {\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Action run '${run.id}' does not belong to action '${input.source.actionId}'.`\n )\n }\n if (run.status !== \"succeeded\" || run.phase !== \"commit\") {\n throw new MaterializationValidationError(\n `Action run '${run.id}' commits its edits only as a succeeded run in its commit phase.`\n )\n }\n assertMaterializerRunExecution(execution, run.executionId, `Action run '${run.id}'`)\n}\n\n/**\n * Insert the run that made these edits, in the commit's transaction: the edits, their outbox facts,\n * and the run record land together or not at all. A run already recorded fails the commit, since a\n * run id is recorded once.\n */\nasync function recordActionRun(storage: Storage, input: NormalizedEditCommit): Promise<void> {\n if (input.source.kind !== \"action\") return\n if (!storage.actionRuns) {\n throw new MaterializationValidationError(\n \"Storage does not provide Action run capabilities required by this commit.\"\n )\n }\n await storage.actionRuns.record(requireActionRun(input))\n}\n\nfunction requireActionRun(input: NormalizedEditCommit): RecordActionRunInput {\n if (!(\"run\" in input)) {\n throw new MaterializationValidationError(\"An Action commit must carry its run's record.\")\n }\n return input.run\n}\n\nasync function executeEditCommit(\n context: MaterializerContext,\n command: PreparedEditCommit\n): Promise<EditCommitResult> {\n return withSerializationRetry(context, () =>\n context.storage.transaction((storage) => executeEditTransaction(context, storage, command), {\n isolation: \"serializable\",\n })\n )\n}\n\nasync function executeEditTransaction(\n context: MaterializerContext,\n storage: MaterializerStorage,\n command: PreparedEditCommit\n): Promise<EditCommitResult> {\n await ensureMaterializerExecution(storage.executions, command.execution)\n await validateMutationExecution(storage, context.projectId, command.input, command.execution)\n\n const replay = await replayCommit<EditCommitResult>(\n context,\n command.identity,\n command.execution.executionId,\n storage\n )\n if (replay) return replay\n\n await recordActionRun(storage, command.input)\n\n const session = await beginEditMaterialization(context, storage, command)\n const workingState = await loadEditWorkingState(\n context,\n storage.ontology.materializations,\n session,\n command.input.operations\n )\n const outcomes = applyEditOperations(context, workingState, command)\n const changes = await stageEditPlan(\n context,\n storage.ontology.materializations,\n session,\n workingState,\n command.identity\n )\n const eventCount = await applyStagedWork(context, storage, session)\n await commitVectorWrites(context, storage, command.input, command.identity.commitId, session)\n\n const result: EditCommitResult = {\n kind: \"edit\",\n commitId: command.identity.commitId,\n created: true,\n eventCount,\n committedAt: command.identity.committedAt,\n outcomes,\n changes,\n }\n return finalizeEditMaterialization(storage, session, result)\n}\n\nasync function beginEditMaterialization(\n context: Pick<MaterializerContext, \"projectId\" | \"projectionRegistry\">,\n storage: MaterializerStorage,\n command: PreparedEditCommit\n): Promise<MaterializationSession> {\n const commit = buildEditCommit(context, command)\n return storage.ontology.materializations.begin({\n commit,\n expected: {\n sources: [],\n ...editExpectations(command.input),\n points: [],\n },\n })\n}\n\nfunction buildEditCommit(\n context: Pick<MaterializerContext, \"projectId\" | \"projectionRegistry\">,\n command: PreparedEditCommit\n): OntologyCommitWrite {\n return {\n projectId: context.projectId,\n id: command.identity.commitId,\n idempotencyKey: command.identity.idempotencyKey,\n requestHash: command.identity.requestHash,\n executionId: command.execution.executionId,\n origin: command.origin,\n ontologyRevision: context.projectionRegistry.ontologyRevision,\n intent: {\n kind: \"edit\",\n mode: command.input.mode,\n operationCount: command.input.operations.length,\n ...(command.input.mode === \"atomic\" && command.input.vectorWrites?.length\n ? { vectorWriteCount: command.input.vectorWrites.length }\n : {}),\n },\n committedAt: command.identity.committedAt,\n }\n}\n\nfunction editExpectations(input: NormalizedEditCommit) {\n if (input.mode === \"atomic\") {\n return {\n objects: input.expectedObjects,\n links: input.expectedLinks,\n linkScopes: input.expectedLinkScopes,\n }\n }\n return { objects: [], links: [], linkScopes: [] }\n}\n\nfunction applyEditOperations(\n context: MaterializerContext,\n state: EditWorkingState,\n command: PreparedEditCommit\n): OntologyOperationOutcome[] {\n const outcomes: OntologyOperationOutcome[] = []\n const units = compileEditExecutionUnits(command.input)\n for (const unit of units) {\n outcomes.push(...applyEditExecutionUnit(context, state, command, unit))\n }\n return outcomes\n}\n\nfunction applyEditExecutionUnit(\n context: MaterializerContext,\n state: EditWorkingState,\n command: PreparedEditCommit,\n unit: EditExecutionUnit\n): OntologyOperationOutcome[] {\n if (unit.kind === \"atomic-group\") {\n return applyEditOperationGroup(context, state, command, unit.operations)\n }\n return [applyOneEditOperation(context, state, unit.operation, command)]\n}\n\nfunction applyOneEditOperation(\n context: MaterializerContext,\n state: EditWorkingState,\n operation: OntologyEditOperation,\n command: PreparedEditCommit\n): OntologyOperationOutcome {\n try {\n return applyEditOperation(context, state, operation, command.identity, command.users)\n } catch (error) {\n if (!isRecoverableEditValidation(command.input, error)) throw error\n return { id: operation.id, ok: false, error: { code: \"validation\", message: error.message } }\n }\n}\n\n/**\n * Applies one grouped item, rolling the whole group back if any operation in it fails.\n *\n * Without this, continue mode would leave an item half-applied: a cardinality-one reassignment\n * whose `link.delete` succeeded and whose `link.upsert` failed would report an item error while the\n * original edge stayed deleted.\n */\nfunction applyEditOperationGroup(\n context: MaterializerContext,\n state: EditWorkingState,\n command: PreparedEditCommit,\n group: readonly OntologyEditOperation[]\n): OntologyOperationOutcome[] {\n const journal: EditUndoJournal = []\n const applied: OntologyOperationOutcome[] = []\n\n for (const operation of group) {\n let outcome: OntologyOperationOutcome\n try {\n outcome = applyEditOperation(\n context,\n state,\n operation,\n command.identity,\n command.users,\n journal\n )\n } catch (error) {\n if (!isRecoverableEditValidation(command.input, error)) throw error\n undoEditJournal(journal)\n return failedEditGroup(group, error.message)\n }\n if (!outcome.ok) {\n undoEditJournal(journal)\n return failedEditGroup(group, outcome.error.message)\n }\n applied.push(outcome)\n }\n return applied\n}\n\n/** Reports every id in a rolled-back group as failed, so no position looks applied. */\nfunction failedEditGroup(\n group: readonly OntologyEditOperation[],\n message: string\n): OntologyOperationOutcome[] {\n return group.map((operation) => ({\n id: operation.id,\n ok: false as const,\n error: { code: \"validation\" as const, message },\n }))\n}\n\nfunction isRecoverableEditValidation(\n input: NormalizedEditCommit,\n error: unknown\n): error is MaterializationValidationError {\n if (input.mode === \"atomic\") return false\n return error instanceof MaterializationValidationError\n}\n\nasync function finalizeEditMaterialization(\n storage: MaterializerStorage,\n session: MaterializationSession,\n result: EditCommitResult\n): Promise<EditCommitResult> {\n const applied = await storage.ontology.materializations.finalize({\n session,\n finalization: { sourceActivations: [], result },\n })\n return applied.commit.result as EditCommitResult\n}\n",
|
|
35
35
|
"import {\n MaterializationConflictError,\n MaterializationValidationError,\n} from \"../../materialization/errors\"\nimport type { ProjectionMaterializationIdentity } from \"../../materialization/model\"\nimport type { ProjectionDefinition, ResolvedProjection } from \"../../projections/types\"\nimport type { ProjectionRunRecord, ProjectionRunStorage, Storage } from \"../../storage\"\n\nexport interface LockProjectionExecutionInput {\n readonly projectId: string\n readonly projectionRunId: string\n readonly executionToken: string\n readonly identity: ProjectionMaterializationIdentity\n readonly resolved: ResolvedProjection<ProjectionDefinition>\n readonly capabilityErrorMessage?: string\n}\n\nexport interface LockedProjectionExecution {\n readonly projectionRuns: ProjectionRunStorage\n readonly run: ProjectionRunRecord\n}\n\n/** Locks and validates the current execution inside the materialization transaction. */\nexport async function lockProjectionRunForMaterialization(\n storage: Pick<Storage, \"projectionRuns\">,\n input: LockProjectionExecutionInput\n): Promise<LockedProjectionExecution> {\n const projectionRuns = storage.projectionRuns\n if (!projectionRuns) {\n throw new MaterializationValidationError(\n input.capabilityErrorMessage ??\n \"Storage transaction does not provide projection run capabilities.\"\n )\n }\n\n const run = await projectionRuns.lockForMaterialization({\n id: input.projectionRunId,\n projectId: input.projectId,\n executionToken: input.executionToken,\n identity: input.identity,\n })\n assertProjectionRunTargets(run, input.resolved)\n return { projectionRuns, run }\n}\n\nexport function assertProjectionRunTargets(\n run: ProjectionRunRecord,\n resolved: ResolvedProjection<ProjectionDefinition>\n): void {\n if (projectionRunTargetsMatch(run, resolved.definition)) return\n\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Projection run '${run.id}' target object types do not match projection '${resolved.projectionId}'.`\n )\n}\n\nfunction projectionRunTargetsMatch(\n run: ProjectionRunRecord,\n definition: ProjectionDefinition\n): boolean {\n switch (definition._tag) {\n case \"ObjectProjectionDefinition\":\n case \"TelemetryProjectionDefinition\":\n return \"objectTypeId\" in run.target && run.target.objectTypeId === definition.objectTypeId\n case \"LinkProjectionDefinition\":\n return (\n \"sourceObjectTypeId\" in run.target &&\n run.target.sourceObjectTypeId === definition.sourceObjectTypeId &&\n run.target.targetObjectTypeId === definition.targetObjectTypeId\n )\n }\n}\n",
|
|
36
36
|
"import { MaterializationValidationError } from \"../../materialization/errors\"\nimport type {\n PinnedDatasetVersion,\n ProjectionMaterializationIdentity,\n} from \"../../materialization/model\"\nimport type {\n LinkProjectionDefinition,\n ObjectProjectionDefinition,\n ResolvedProjection,\n TelemetryProjectionDefinition,\n} from \"../../projections/types\"\n\ntype SourceProjectionDefinition = ObjectProjectionDefinition | LinkProjectionDefinition\ntype SourceMaterializationIdentity = Extract<\n ProjectionMaterializationIdentity,\n { readonly protocol: \"replacement\" }\n>\ntype TelemetryMaterializationIdentity = Extract<\n ProjectionMaterializationIdentity,\n { readonly protocol: \"telemetry\" }\n>\n\ninterface ProjectionRunIdentityInput<\n TDefinition extends SourceProjectionDefinition | TelemetryProjectionDefinition,\n> {\n readonly resolved: ResolvedProjection<TDefinition>\n readonly datasetVersion: PinnedDatasetVersion\n readonly ontologyRevision: string\n}\n\nexport function createProjectionRunMaterializationIdentity(\n input: ProjectionRunIdentityInput<SourceProjectionDefinition>\n): SourceMaterializationIdentity\nexport function createProjectionRunMaterializationIdentity(\n input: ProjectionRunIdentityInput<TelemetryProjectionDefinition>\n): TelemetryMaterializationIdentity\nexport function createProjectionRunMaterializationIdentity(\n input: ProjectionRunIdentityInput<SourceProjectionDefinition | TelemetryProjectionDefinition>\n): ProjectionMaterializationIdentity\nexport function createProjectionRunMaterializationIdentity(\n input: ProjectionRunIdentityInput<SourceProjectionDefinition | TelemetryProjectionDefinition>\n): ProjectionMaterializationIdentity {\n const base = {\n projectionId: input.resolved.projectionId,\n datasetVersion: input.datasetVersion,\n ontologyRevision: input.ontologyRevision,\n projectionRevision: input.resolved.projectionRevision,\n ownershipHash: input.resolved.ownershipHash,\n }\n\n switch (input.resolved.definition._tag) {\n case \"ObjectProjectionDefinition\":\n return { ...base, projectionKind: \"object\", protocol: \"replacement\" }\n case \"LinkProjectionDefinition\":\n return { ...base, projectionKind: \"link\", protocol: \"replacement\" }\n case \"TelemetryProjectionDefinition\":\n return { ...base, projectionKind: \"telemetry\", protocol: \"telemetry\" }\n default:\n throw new MaterializationValidationError(\"Expected a supported projection definition.\")\n }\n}\n",
|
|
37
37
|
"import {\n MaterializationConflictError,\n MaterializationValidationError,\n} from \"../../materialization/errors\"\nimport type {\n PinnedDatasetVersion,\n ProjectionMaterializationIdentity,\n ProjectionRunFinishInput,\n ProjectionRunTerminalDecision,\n} from \"../../materialization/model\"\nimport type { ProjectionDefinition, ResolvedProjection } from \"../../projections/types\"\nimport type { OntologyCommitRecord } from \"../../storage/ontology\"\nimport type { MaterializerContext, MaterializerStorage } from \"../context\"\nimport { withSerializationRetry } from \"../execution/commit-lifecycle\"\nimport {\n type LockedProjectionExecution,\n lockProjectionRunForMaterialization,\n} from \"../execution/run-correlation\"\nimport {\n assertMaterializerRunExecution,\n assertTrustedPrimitiveMutationExecution,\n ensureMaterializerExecution,\n type MaterializerExecution,\n prepareMaterializerExecution,\n} from \"../execution/scope\"\nimport type { MaterializerCommand } from \"../materializer\"\nimport {\n normalizePinnedDatasetVersion,\n normalizeProjectionExecution,\n normalizeProjectionSourceRef,\n} from \"../shared/normalize\"\nimport { createProjectionRunMaterializationIdentity } from \"../shared/projection-run\"\n\ninterface PreparedProjectionRunFinish {\n readonly projectId: string\n readonly input: ProjectionRunFinishInput\n /**\n * The deployed definition a success must match. A failure needs none: it only has to hold the\n * run's execution token, and it must stay possible after a deploy changed or removed the\n * projection, or the run and its candidate could never end.\n */\n readonly deployed: DeployedProjectionIdentity | null\n readonly finishedAt: Date\n readonly execution: MaterializerExecution\n}\n\ninterface DeployedProjectionIdentity {\n readonly identity: ProjectionMaterializationIdentity\n readonly resolved: ResolvedProjection<ProjectionDefinition>\n}\n\nexport async function finishProjectionRun(\n context: MaterializerContext,\n raw: MaterializerCommand<ProjectionRunFinishInput>\n): Promise<void> {\n const command = prepareProjectionRunFinish(context, raw)\n await withSerializationRetry(context, () =>\n context.storage.transaction((storage) => finishProjectionRunTransaction(storage, command), {\n isolation: \"serializable\",\n })\n )\n}\n\nfunction prepareProjectionRunFinish(\n context: Pick<MaterializerContext, \"projectId\" | \"projectionRegistry\" | \"clock\">,\n raw: MaterializerCommand<ProjectionRunFinishInput>\n): PreparedProjectionRunFinish {\n assertValidTerminalDecision(raw.input)\n const source = normalizeProjectionSourceRef(raw.input.source)\n const datasetVersion = normalizePinnedDatasetVersion(raw.input.datasetVersion)\n const projectionExecution = normalizeProjectionExecution(raw.input.execution)\n const input = { ...raw.input, source, datasetVersion, execution: projectionExecution }\n return {\n projectId: context.projectId,\n input,\n deployed: input.status === \"succeeded\" ? resolveDeployedProjection(context, input) : null,\n finishedAt: new Date(raw.input.finishedAt ?? context.clock()),\n execution: prepareMaterializerExecution(context.projectId, raw.scope),\n }\n}\n\nfunction resolveDeployedProjection(\n context: Pick<MaterializerContext, \"projectionRegistry\">,\n input: ProjectionRunFinishInput\n): DeployedProjectionIdentity {\n const resolved =\n input.protocol === \"replacement\"\n ? context.projectionRegistry.resolveSource(input.source.projectionId)\n : context.projectionRegistry.resolveTelemetry(input.source.projectionId)\n if (resolved.datasetId !== input.datasetVersion.datasetId) {\n throw new MaterializationValidationError(\n `Projection '${resolved.projectionId}' requires dataset '${resolved.datasetId}'.`\n )\n }\n const identity = createProjectionRunMaterializationIdentity({\n resolved,\n datasetVersion: input.datasetVersion,\n ontologyRevision: context.projectionRegistry.ontologyRevision,\n })\n return { identity, resolved }\n}\n\nasync function finishProjectionRunTransaction(\n storage: MaterializerStorage,\n command: PreparedProjectionRunFinish\n): Promise<void> {\n await ensureMaterializerExecution(storage.executions, command.execution)\n assertTrustedPrimitiveMutationExecution(command.execution, {\n kind: \"projection\",\n id: command.input.source.projectionId,\n runId: command.input.execution.projectionRunId,\n })\n const { projectionRuns, run } = command.deployed\n ? await lockProjectionRunForMaterialization(storage, {\n projectId: command.projectId,\n projectionRunId: command.input.execution.projectionRunId,\n executionToken: command.input.execution.executionToken,\n identity: command.deployed.identity,\n resolved: command.deployed.resolved,\n })\n : await lockProjectionRunAsStored(storage, command)\n assertMaterializerRunExecution(command.execution, run.executionId, `Projection run '${run.id}'`)\n\n if (command.input.protocol === \"replacement\") {\n await assertReplacementTerminalDecision(storage, command)\n if (command.input.status === \"superseded\") {\n await assertRunSuperseded(projectionRuns, command)\n }\n if (command.input.status !== \"succeeded\") {\n // The candidate belongs to the run: once the run ends, nothing may adopt or activate it.\n await storage.ontology.sources.abandon({\n kind: \"run\",\n projectId: command.projectId,\n source: command.input.source,\n execution: command.input.execution,\n abandonedAt: command.finishedAt.toISOString(),\n })\n }\n }\n\n await projectionRuns.finish({\n id: command.input.execution.projectionRunId,\n projectId: command.projectId,\n executionToken: command.input.execution.executionToken,\n identity: run.identity,\n ...terminalDecision(command.input),\n finishedAt: command.finishedAt,\n })\n}\n\n/**\n * Checked again here, under the finish transaction, rather than trusted from the caller's earlier\n * read: the newer run may have failed since, and a run superseded by a failure would leave the\n * projection with neither version.\n */\nasync function assertRunSuperseded(\n projectionRuns: LockedProjectionExecution[\"projectionRuns\"],\n command: PreparedProjectionRunFinish\n): Promise<void> {\n const newer = await projectionRuns.findSupersedingRun({\n projectId: command.projectId,\n id: command.input.execution.projectionRunId,\n })\n if (newer) return\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Projection run '${command.input.execution.projectionRunId}' cannot be superseded: no run of a later dataset version stands to replace it.`\n )\n}\n\n/** Locks a run by the identity it was pinned with, for a decision that needs no definition. */\nasync function lockProjectionRunAsStored(\n storage: MaterializerStorage,\n command: PreparedProjectionRunFinish\n): Promise<LockedProjectionExecution> {\n const projectionRuns = storage.projectionRuns\n if (!projectionRuns) {\n throw new MaterializationValidationError(\n \"Storage transaction does not provide projection run capabilities.\"\n )\n }\n const { input } = command\n const stored = await projectionRuns.getById({\n projectId: command.projectId,\n id: input.execution.projectionRunId,\n })\n if (\n !stored ||\n stored.identity.projectionId !== input.source.projectionId ||\n stored.identity.protocol !== input.protocol ||\n !datasetVersionsEqual(stored.identity.datasetVersion, input.datasetVersion)\n ) {\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Projection run '${input.execution.projectionRunId}' does not match its finish decision.`\n )\n }\n const run = await projectionRuns.lockForMaterialization({\n id: stored.id,\n projectId: command.projectId,\n executionToken: input.execution.executionToken,\n identity: stored.identity,\n })\n return { projectionRuns, run }\n}\n\nfunction assertValidTerminalDecision(input: ProjectionRunFinishInput): void {\n if (input.protocol !== \"replacement\" && input.protocol !== \"telemetry\") {\n throw new MaterializationValidationError(\"Projection finish protocol is invalid.\")\n }\n if (\n input.status !== \"succeeded\" &&\n input.status !== \"failed\" &&\n input.status !== \"cancelled\" &&\n input.status !== \"superseded\"\n ) {\n throw new MaterializationValidationError(\"Projection finish status must be terminal.\")\n }\n if (input.status === \"superseded\" && input.protocol !== \"replacement\") {\n throw new MaterializationValidationError(\"Only a replacement projection run can be superseded.\")\n }\n const inputExhausted = \"inputExhausted\" in input ? input.inputExhausted : undefined\n if (input.status === \"succeeded\" && input.protocol === \"telemetry\") {\n if (inputExhausted === true) return\n throw new MaterializationValidationError(\n \"Telemetry projection success requires an explicit exhausted-input acknowledgement.\"\n )\n }\n if (inputExhausted !== undefined) {\n throw new MaterializationValidationError(\n \"Only telemetry projection success can acknowledge exhausted input.\"\n )\n }\n}\n\nfunction terminalDecision(input: ProjectionRunFinishInput): ProjectionRunTerminalDecision {\n if (input.status === \"superseded\") {\n return { protocol: \"replacement\", status: \"superseded\" }\n }\n if (input.status !== \"succeeded\") {\n return {\n protocol: input.protocol,\n status: input.status,\n ...(input.error === undefined ? {} : { error: input.error }),\n }\n }\n if (input.protocol === \"telemetry\") {\n return { protocol: \"telemetry\", status: \"succeeded\", inputExhausted: true }\n }\n return { protocol: \"replacement\", status: \"succeeded\" }\n}\n\nasync function assertReplacementTerminalDecision(\n storage: MaterializerStorage,\n command: PreparedProjectionRunFinish\n): Promise<void> {\n const commit = await storage.ontology.commits.getByOrigin({\n projectId: command.projectId,\n origin: {\n kind: \"projection\",\n projectionRunId: command.input.execution.projectionRunId,\n },\n })\n if (command.input.status === \"succeeded\") {\n if (!commit) {\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Projection replacement run '${command.input.execution.projectionRunId}' cannot succeed before its ontology commit exists.`\n )\n }\n assertReplacementCommitCorrelation(commit, command)\n return\n }\n if (commit) {\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Projection replacement run '${command.input.execution.projectionRunId}' cannot finish as '${command.input.status}' after its ontology commit exists.`\n )\n }\n}\n\nfunction assertReplacementCommitCorrelation(\n commit: OntologyCommitRecord,\n command: PreparedProjectionRunFinish\n): void {\n const { input } = command\n const identity = command.deployed?.identity\n if (\n !identity ||\n commit.origin.kind !== \"projection\" ||\n commit.executionId !== command.execution.executionId ||\n commit.intent.kind !== \"projection\" ||\n commit.result.kind !== \"projection\" ||\n commit.origin.projectionRunId !== input.execution.projectionRunId ||\n commit.origin.projectionId !== input.source.projectionId ||\n commit.intent.source.projectionId !== input.source.projectionId ||\n !datasetVersionsEqual(commit.intent.datasetVersion, input.datasetVersion) ||\n commit.ontologyRevision !== identity.ontologyRevision ||\n commit.projectionRevision !== identity.projectionRevision ||\n commit.ownershipHash !== identity.ownershipHash\n ) {\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Projection replacement run '${input.execution.projectionRunId}' commit identity does not match.`\n )\n }\n}\n\nfunction datasetVersionsEqual(left: PinnedDatasetVersion, right: PinnedDatasetVersion): boolean {\n return (\n left.datasetId === right.datasetId &&\n left.versionId === right.versionId &&\n left.createdAt === right.createdAt\n )\n}\n",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"import {\n MaterializationConflictError,\n MaterializationValidationError,\n} from \"../../materialization/errors\"\nimport type {\n OntologyMaterializationOrigin,\n ProjectionMaterializationIdentity,\n TelemetryAppend,\n TelemetryCommitResult,\n} from \"../../materialization/model\"\nimport { telemetryOwnershipKey } from \"../../materialization/refs\"\nimport type { ProjectionRegistry } from \"../../projections/registry\"\nimport type { ProjectionRunRecord, ProjectionRunStorage } from \"../../storage\"\nimport type {\n MaterializationSession,\n OntologyCommitRecord,\n OntologyCommitWrite,\n TelemetryOntologyCommitIntent,\n} from \"../../storage/ontology\"\nimport type { MaterializerContext, MaterializerStorage } from \"../context\"\nimport { validateTelemetryPoint } from \"../effective/validate\"\nimport { replayCommitRecord, withSerializationRetry } from \"../execution/commit-lifecycle\"\nimport {\n type LockedProjectionExecution,\n lockProjectionRunForMaterialization,\n} from \"../execution/run-correlation\"\nimport {\n assertMaterializerRunExecution,\n assertRuntimeMutationExecution,\n assertTrustedPrimitiveMutationExecution,\n ensureMaterializerExecution,\n type MaterializerExecution,\n prepareMaterializerExecution,\n} from \"../execution/scope\"\nimport { applyStagedWork } from \"../execution/work-executor\"\nimport type { MaterializerCommand } from \"../materializer\"\nimport {\n createProjectionTelemetryIdempotencyKey,\n createRuntimeTelemetryIdempotencyKey,\n createTimedCommitIdentity,\n type TimedCommitIdentity,\n} from \"../shared/identity\"\nimport { normalizeTelemetryAppend } from \"../shared/normalize\"\nimport { createProjectionRunMaterializationIdentity } from \"../shared/projection-run\"\nimport { planTelemetryAppend } from \"./plan\"\n\ntype NormalizedTelemetryAppend = ReturnType<typeof normalizeTelemetryAppend>\ntype NormalizedTelemetrySource = NormalizedTelemetryAppend[\"source\"]\ntype RuntimeTelemetrySource = Extract<NormalizedTelemetrySource, { readonly kind: \"runtime\" }>\ntype ProjectionTelemetrySource = Extract<NormalizedTelemetrySource, { readonly kind: \"projection\" }>\ntype ResolvedTelemetryProjection = ReturnType<ProjectionRegistry[\"resolveTelemetry\"]>\n\ninterface PreparedTelemetryBase {\n readonly input: NormalizedTelemetryAppend\n readonly inputPointCount: number\n readonly ontologyRevision: string\n readonly identity: TimedCommitIdentity\n readonly execution: MaterializerExecution\n}\n\ninterface PreparedRuntimeTelemetry extends PreparedTelemetryBase {\n readonly kind: \"runtime\"\n readonly source: RuntimeTelemetrySource\n}\n\ninterface PreparedProjectionTelemetry extends PreparedTelemetryBase {\n readonly kind: \"projection\"\n readonly source: ProjectionTelemetrySource\n readonly resolvedProjection: ResolvedTelemetryProjection\n readonly runIdentity: ProjectionMaterializationIdentity\n}\n\ntype PreparedTelemetryAppend = PreparedRuntimeTelemetry | PreparedProjectionTelemetry\n\nexport async function appendTelemetry(\n context: MaterializerContext,\n raw: MaterializerCommand<TelemetryAppend>\n): Promise<TelemetryCommitResult> {\n const command = prepareTelemetryAppend(context, raw)\n return executeTelemetryCommit(context, command)\n}\n\nfunction prepareTelemetryAppend(\n context: Pick<MaterializerContext, \"projectId\" | \"ontology\" | \"projectionRegistry\" | \"clock\">,\n raw: MaterializerCommand<TelemetryAppend>\n): PreparedTelemetryAppend {\n const rawInputPointCount = raw.input.points.length\n const input = normalizeTelemetryAppend({\n ...raw.input,\n points: raw.input.points.map((point) => validateTelemetryPoint(context.ontology, point)),\n })\n const inputPointCount = telemetryInputPointCount(input, rawInputPointCount)\n\n const ontologyRevision = context.projectionRegistry.ontologyRevision\n const execution = prepareMaterializerExecution(context.projectId, raw.scope)\n if (input.source.kind === \"runtime\") {\n return {\n ...prepareRuntimeTelemetry(context, input, input.source, inputPointCount, ontologyRevision),\n execution,\n }\n }\n return {\n ...prepareProjectionTelemetry(context, input, input.source, inputPointCount, ontologyRevision),\n execution,\n }\n}\n\nfunction telemetryInputPointCount(\n input: NormalizedTelemetryAppend,\n rawInputPointCount: number\n): number {\n if (input.source.kind === \"projection\") return rawInputPointCount\n return input.points.length\n}\n\nfunction prepareRuntimeTelemetry(\n context: Pick<MaterializerContext, \"projectId\" | \"clock\">,\n input: NormalizedTelemetryAppend,\n source: RuntimeTelemetrySource,\n inputPointCount: number,\n ontologyRevision: string\n): Omit<PreparedRuntimeTelemetry, \"execution\"> {\n const identity = createTimedCommitIdentity({\n projectId: context.projectId,\n idempotencyKey: createRuntimeTelemetryIdempotencyKey(source.requestId),\n normalizedCallerIntent: input,\n now: context.clock(),\n })\n return { kind: \"runtime\", input, source, inputPointCount, ontologyRevision, identity }\n}\n\nfunction prepareProjectionTelemetry(\n context: Pick<MaterializerContext, \"projectId\" | \"projectionRegistry\" | \"clock\">,\n input: NormalizedTelemetryAppend,\n source: ProjectionTelemetrySource,\n inputPointCount: number,\n ontologyRevision: string\n): Omit<PreparedProjectionTelemetry, \"execution\"> {\n const resolvedProjection = context.projectionRegistry.resolveTelemetry(\n source.projection.projectionId\n )\n validateTelemetryProjectionDataset(resolvedProjection, source)\n validateTelemetryOwnership(resolvedProjection, input)\n validateTelemetryBatchCardinality(resolvedProjection, source, inputPointCount)\n\n const runIdentity = createProjectionRunMaterializationIdentity({\n resolved: resolvedProjection,\n datasetVersion: source.datasetVersion,\n ontologyRevision,\n })\n const identity = createTimedCommitIdentity({\n projectId: context.projectId,\n idempotencyKey: createProjectionTelemetryIdempotencyKey(runIdentity, source.batchOrdinal),\n // Execution ownership is transient: a reclaimed delivery retains the same request hash.\n normalizedCallerIntent: projectionTelemetryCallerIntent(input, source, inputPointCount),\n now: context.clock(),\n })\n return {\n kind: \"projection\",\n input,\n source,\n inputPointCount,\n ontologyRevision,\n identity,\n resolvedProjection,\n runIdentity,\n }\n}\n\nfunction validateTelemetryBatchCardinality(\n resolved: ResolvedTelemetryProjection,\n source: ProjectionTelemetrySource,\n inputPointCount: number\n): void {\n if (source.sourceRowCount === 0) {\n throw new MaterializationValidationError(\n \"Projection telemetry batches must consume at least one source row; an empty dataset produces no batch commit.\"\n )\n }\n\n const mappedPropertyCount = resolved.ownership.telemetry.length\n if (mappedPropertyCount === 0) {\n throw new MaterializationValidationError(\n `Telemetry projection '${resolved.projectionId}' must own at least one telemetry property.`\n )\n }\n\n const sourceRowsEmitted = source.sourceRowCount - source.sourceRowsSkipped\n const maximumPointCount = sourceRowsEmitted * mappedPropertyCount\n if (!Number.isSafeInteger(maximumPointCount)) {\n throw new MaterializationValidationError(\n `Telemetry projection '${resolved.projectionId}' batch point capacity exceeds the safe integer range.`\n )\n }\n if (inputPointCount < sourceRowsEmitted || inputPointCount > maximumPointCount) {\n throw new MaterializationValidationError(\n `Telemetry projection '${resolved.projectionId}' must emit between ${sourceRowsEmitted} and ${maximumPointCount} points for ${source.sourceRowCount} source rows with ${source.sourceRowsSkipped} skipped.`\n )\n }\n}\n\nfunction validateTelemetryProjectionDataset(\n resolved: ResolvedTelemetryProjection,\n source: ProjectionTelemetrySource\n): void {\n if (resolved.datasetId === source.datasetVersion.datasetId) return\n throw new MaterializationValidationError(\n `Telemetry projection '${resolved.projectionId}' requires dataset '${resolved.datasetId}'.`\n )\n}\n\nfunction validateTelemetryOwnership(\n resolved: ResolvedTelemetryProjection,\n input: NormalizedTelemetryAppend\n): void {\n const ownedSeries = new Set(\n resolved.ownership.telemetry.map(({ objectTypeId, propertyId }) =>\n telemetryOwnershipKey(objectTypeId, propertyId)\n )\n )\n for (const point of input.points) {\n const scope = telemetryOwnershipKey(point.series.object.objectTypeId, point.series.propertyId)\n if (ownedSeries.has(scope)) continue\n throw new MaterializationValidationError(\n `Telemetry projection '${resolved.projectionId}' does not own series '${point.series.object.objectTypeId}.${point.series.propertyId}'.`\n )\n }\n}\n\nfunction projectionTelemetryCallerIntent(\n input: NormalizedTelemetryAppend,\n source: ProjectionTelemetrySource,\n inputPointCount: number\n) {\n const intent = {\n source: {\n kind: \"projection\" as const,\n projection: source.projection,\n datasetVersion: source.datasetVersion,\n batchOrdinal: source.batchOrdinal,\n sourceRowCount: source.sourceRowCount,\n sourceRowsSkipped: source.sourceRowsSkipped,\n inputExhausted: source.inputExhausted,\n },\n inputPointCount,\n points: input.points,\n }\n return intent\n}\n\nasync function assertTelemetryExecution(\n storage: MaterializerStorage,\n projectId: string,\n command: PreparedTelemetryAppend\n): Promise<LockedProjectionExecution | null> {\n if (command.kind === \"runtime\") {\n assertRuntimeMutationExecution(command.execution)\n return null\n }\n assertTrustedPrimitiveMutationExecution(command.execution, {\n kind: \"projection\",\n id: command.source.projection.projectionId,\n runId: command.source.execution.projectionRunId,\n })\n const execution = await lockProjectionRunForMaterialization(storage, {\n projectId,\n projectionRunId: command.source.execution.projectionRunId,\n executionToken: command.source.execution.executionToken,\n identity: command.runIdentity,\n resolved: command.resolvedProjection,\n capabilityErrorMessage:\n \"Storage does not provide projection run capabilities required by telemetry projection.\",\n })\n assertMaterializerRunExecution(\n command.execution,\n execution.run.executionId,\n `Projection run '${execution.run.id}'`\n )\n assertTelemetryBatchPosition(\n execution.run,\n command.source.batchOrdinal,\n command.source.sourceRowCount,\n command.source.inputExhausted\n )\n return execution\n}\n\nfunction assertTelemetryBatchPosition(\n run: ProjectionRunRecord,\n batchOrdinal: number,\n sourceRowCount: number,\n inputExhausted: boolean\n): void {\n const checkpoint = run.telemetryCheckpoint\n if (!checkpoint) {\n throw new MaterializationValidationError(\n `Telemetry projection run '${run.id}' has incomplete checkpoint state.`\n )\n }\n if (batchOrdinal > checkpoint.nextBatchOrdinal) {\n throw new MaterializationValidationError(\n `Telemetry projection run '${run.id}' expected batch ordinal ${checkpoint.nextBatchOrdinal}, got ${batchOrdinal}.`\n )\n }\n if (checkpoint.inputExhausted && batchOrdinal >= checkpoint.nextBatchOrdinal) {\n throw new MaterializationValidationError(\n `Telemetry projection run '${run.id}' has already exhausted its input.`\n )\n }\n if (sourceRowCount > checkpoint.fixedBatchSize) {\n throw new MaterializationValidationError(\n `Telemetry projection run '${run.id}' batch exceeds its fixed size.`\n )\n }\n if (!inputExhausted && sourceRowCount !== checkpoint.fixedBatchSize) {\n throw new MaterializationValidationError(\n `Telemetry projection run '${run.id}' cannot advance past a partial non-final batch.`\n )\n }\n}\n\nfunction assertTelemetryReplayCheckpoint(run: ProjectionRunRecord, batchOrdinal: number): void {\n if (!run.telemetryCheckpoint || batchOrdinal >= run.telemetryCheckpoint.nextBatchOrdinal) {\n throw new MaterializationValidationError(\n `Telemetry commit batch ${batchOrdinal} exists without an advanced run checkpoint.`\n )\n }\n}\n\nfunction telemetryProjectionReplayResult(\n commit: OntologyCommitRecord,\n command: PreparedProjectionTelemetry\n): TelemetryCommitResult {\n const origin = commit.origin\n if (\n origin.kind !== \"telemetry\" ||\n origin.source.kind !== \"projection\" ||\n origin.source.projectionRunId !== command.source.execution.projectionRunId ||\n origin.source.batchOrdinal !== command.source.batchOrdinal ||\n commit.result.kind !== \"telemetry\"\n ) {\n throw new MaterializationConflictError(\n \"run-correlation\",\n `Telemetry commit '${commit.id}' belongs to a different logical run or batch.`\n )\n }\n return { ...structuredClone(commit.result), created: false }\n}\n\nasync function executeTelemetryCommit(\n context: MaterializerContext,\n command: PreparedTelemetryAppend\n): Promise<TelemetryCommitResult> {\n return withSerializationRetry(context, () =>\n context.storage.transaction(\n (storage) => executeTelemetryTransaction(context, storage, command),\n { isolation: \"serializable\" }\n )\n )\n}\n\nasync function executeTelemetryTransaction(\n context: MaterializerContext,\n storage: MaterializerStorage,\n command: PreparedTelemetryAppend\n): Promise<TelemetryCommitResult> {\n await ensureMaterializerExecution(storage.executions, command.execution)\n const execution = await assertTelemetryExecution(storage, context.projectId, command)\n const replay = await replayCommitRecord(\n context,\n command.identity,\n command.execution.executionId,\n storage\n )\n if (replay) {\n if (command.kind === \"projection\" && execution) {\n assertTelemetryReplayCheckpoint(execution.run, command.source.batchOrdinal)\n return telemetryProjectionReplayResult(replay, command)\n }\n return { ...structuredClone(replay.result), created: false } as TelemetryCommitResult\n }\n if (command.kind === \"projection\") {\n if (\n !execution?.run.telemetryCheckpoint ||\n execution.run.telemetryCheckpoint.nextBatchOrdinal !== command.source.batchOrdinal\n ) {\n throw new MaterializationValidationError(\n `Telemetry projection batch ${command.source.batchOrdinal} is behind its run checkpoint.`\n )\n }\n }\n\n const origin = telemetryOrigin(command)\n const session = await beginTelemetryMaterialization(context, storage, command, origin)\n const counts = await planTelemetryAppend(\n context,\n storage.ontology.materializations,\n session,\n command.input,\n command.identity\n )\n const eventCount = await applyStagedWork(context, storage, session)\n const result: TelemetryCommitResult = {\n kind: \"telemetry\",\n commitId: command.identity.commitId,\n created: true,\n eventCount,\n committedAt: command.identity.committedAt,\n ...counts,\n }\n return finalizeTelemetryMaterialization(\n storage,\n session,\n command,\n result,\n execution?.projectionRuns\n )\n}\n\nfunction telemetryOrigin(command: PreparedTelemetryAppend): OntologyMaterializationOrigin {\n if (command.kind === \"runtime\") {\n return { kind: \"telemetry\", source: command.source }\n }\n return {\n kind: \"telemetry\",\n source: {\n kind: \"projection\",\n projectionId: command.source.projection.projectionId,\n projectionRunId: command.source.execution.projectionRunId,\n datasetId: command.source.datasetVersion.datasetId,\n datasetVersionId: command.source.datasetVersion.versionId,\n batchOrdinal: command.source.batchOrdinal,\n },\n }\n}\n\nasync function beginTelemetryMaterialization(\n context: Pick<MaterializerContext, \"projectId\">,\n storage: MaterializerStorage,\n command: PreparedTelemetryAppend,\n origin: OntologyMaterializationOrigin\n): Promise<MaterializationSession> {\n return storage.ontology.materializations.begin({\n commit: telemetryCommit(context.projectId, command, origin),\n expected: {\n sources: [],\n objects: [],\n links: [],\n linkScopes: [],\n points: [],\n },\n })\n}\n\nfunction telemetryCommit(\n projectId: string,\n command: PreparedTelemetryAppend,\n origin: OntologyMaterializationOrigin\n): OntologyCommitWrite {\n const base: OntologyCommitWrite = {\n projectId,\n id: command.identity.commitId,\n idempotencyKey: command.identity.idempotencyKey,\n requestHash: command.identity.requestHash,\n executionId: command.execution.executionId,\n origin,\n ontologyRevision: command.ontologyRevision,\n intent: telemetryCommitIntent(command),\n committedAt: command.identity.committedAt,\n }\n if (command.kind === \"runtime\") return base\n return {\n ...base,\n projectionRevision: command.resolvedProjection.projectionRevision,\n ownershipHash: command.resolvedProjection.ownershipHash,\n }\n}\n\nfunction telemetryCommitIntent(command: PreparedTelemetryAppend): TelemetryOntologyCommitIntent {\n if (command.kind === \"runtime\") {\n return {\n kind: \"telemetry\",\n pointCount: command.input.points.length,\n inputPointCount: command.inputPointCount,\n source: { kind: \"runtime\" },\n }\n }\n return {\n kind: \"telemetry\",\n pointCount: command.input.points.length,\n inputPointCount: command.inputPointCount,\n source: {\n kind: \"projection\",\n projection: command.source.projection,\n datasetVersion: command.source.datasetVersion,\n batchOrdinal: command.source.batchOrdinal,\n sourceRowCount: command.source.sourceRowCount,\n sourceRowsSkipped: command.source.sourceRowsSkipped,\n inputExhausted: command.source.inputExhausted,\n },\n }\n}\n\nasync function finalizeTelemetryMaterialization(\n storage: MaterializerStorage,\n session: MaterializationSession,\n command: PreparedTelemetryAppend,\n result: TelemetryCommitResult,\n projectionRuns: ProjectionRunStorage | undefined\n): Promise<TelemetryCommitResult> {\n const applied = await storage.ontology.materializations.finalize({\n session,\n finalization: { sourceActivations: [], result },\n })\n if (command.kind === \"projection\") {\n if (!projectionRuns) {\n throw new MaterializationValidationError(\"Expected an asserted telemetry projection run.\")\n }\n await projectionRuns.advanceTelemetryCheckpoint({\n id: command.source.execution.projectionRunId,\n projectId: applied.commit.projectId,\n executionToken: command.source.execution.executionToken,\n identity: command.runIdentity,\n batchOrdinal: command.source.batchOrdinal,\n batchRowCount: command.source.sourceRowCount,\n batchRowsSkipped: command.source.sourceRowsSkipped,\n inputExhausted: command.source.inputExhausted,\n })\n }\n return applied.commit.result as TelemetryCommitResult\n}\n",
|
|
44
44
|
"import type { ExecutionScope } from \"../execution\"\nimport type {\n EditCommitResult,\n OntologyEditCommit,\n ProjectionCommitResult,\n ProjectionRunFinishInput,\n ProjectionSourceRef,\n ProjectionSourceReplacement,\n TelemetryAppend,\n TelemetryCommitResult,\n} from \"../materialization/model\"\nimport type { OntologyRegistry } from \"../ontology\"\nimport type { ProjectionRegistry } from \"../projections/registry\"\nimport type { OntologySourceRecord } from \"../storage/ontology\"\nimport {\n createMaterializerContext,\n type MaterializerContext,\n type MaterializerStorage,\n type OntologyMaterializerDependencies,\n} from \"./context\"\nimport { commitEdits } from \"./edits/commit\"\nimport { finishProjectionRun } from \"./projections/finish-run\"\nimport { replaceProjection } from \"./projections/replace\"\nimport { appendTelemetry } from \"./telemetry/append\"\n\nexport type { MaterializerStorage, OntologyMaterializerDependencies } from \"./context\"\n\nexport interface MaterializerCommand<TInput> {\n readonly scope: ExecutionScope\n readonly input: TInput\n}\n\nexport interface OntologyMaterializerContract {\n withScope(scope: ExecutionScope): BoundOntologyMaterializer\n readonly edits: {\n commit(input: MaterializerCommand<OntologyEditCommit>): Promise<EditCommitResult>\n }\n readonly projections: {\n getActive(source: ProjectionSourceRef): Promise<OntologySourceRecord | null>\n replace(\n input: MaterializerCommand<ProjectionSourceReplacement>\n ): Promise<ProjectionCommitResult>\n finishRun(input: MaterializerCommand<ProjectionRunFinishInput>): Promise<void>\n }\n readonly telemetry: {\n append(input: MaterializerCommand<TelemetryAppend>): Promise<TelemetryCommitResult>\n }\n}\n\n/** Materializer facade closed over one explicit execution scope. */\nexport interface BoundOntologyMaterializer {\n readonly edits: {\n commit(input: OntologyEditCommit): Promise<EditCommitResult>\n }\n readonly projections: {\n getActive(source: ProjectionSourceRef): Promise<OntologySourceRecord | null>\n replace(input: ProjectionSourceReplacement): Promise<ProjectionCommitResult>\n finishRun(input: ProjectionRunFinishInput): Promise<void>\n }\n readonly telemetry: {\n append(input: TelemetryAppend): Promise<TelemetryCommitResult>\n }\n}\n\nexport class OntologyMaterializer implements OntologyMaterializerContract {\n readonly edits = {\n commit: (command: MaterializerCommand<OntologyEditCommit>) =>\n commitEdits(this.context, command),\n }\n readonly projections = {\n getActive: (source: ProjectionSourceRef) =>\n this.context.storage.ontology.sources.getActive({\n projectId: this.context.projectId,\n source,\n }),\n replace: (command: MaterializerCommand<ProjectionSourceReplacement>) =>\n replaceProjection(this.context, command),\n finishRun: (command: MaterializerCommand<ProjectionRunFinishInput>) =>\n finishProjectionRun(this.context, command),\n }\n readonly telemetry = {\n append: (command: MaterializerCommand<TelemetryAppend>) =>\n appendTelemetry(this.context, command),\n }\n\n withScope(scope: ExecutionScope): BoundOntologyMaterializer {\n return Object.freeze({\n edits: Object.freeze({\n commit: (input: OntologyEditCommit) => this.edits.commit({ scope, input }),\n }),\n projections: Object.freeze({\n getActive: (source: ProjectionSourceRef) => this.projections.getActive(source),\n replace: (input: ProjectionSourceReplacement) => this.projections.replace({ scope, input }),\n finishRun: (input: ProjectionRunFinishInput) =>\n this.projections.finishRun({ scope, input }),\n }),\n telemetry: Object.freeze({\n append: (input: TelemetryAppend) => this.telemetry.append({ scope, input }),\n }),\n })\n }\n\n private readonly context: MaterializerContext\n\n constructor(\n projectId: string,\n ontology: OntologyRegistry,\n projectionRegistry: ProjectionRegistry,\n storage: MaterializerStorage,\n dependencies: OntologyMaterializerDependencies = {}\n ) {\n this.context = createMaterializerContext({\n projectId,\n ontology,\n projections: projectionRegistry,\n storage,\n dependencies,\n })\n }\n}\n\nexport function createOntologyMaterializer(input: {\n readonly projectId: string\n readonly ontology: OntologyRegistry\n readonly projections: ProjectionRegistry\n readonly storage: MaterializerStorage\n readonly dependencies?: OntologyMaterializerDependencies\n}): OntologyMaterializer {\n return new OntologyMaterializer(\n input.projectId,\n input.ontology,\n input.projections,\n input.storage,\n input.dependencies\n )\n}\n"
|
|
45
45
|
],
|
|
46
|
-
"mappings": "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",
|
|
47
|
-
"debugId": "
|
|
46
|
+
"mappings": "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",
|
|
47
|
+
"debugId": "F60EADEFB2F6DBB664756E2164756E21",
|
|
48
48
|
"names": []
|
|
49
49
|
}
|