@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
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
|
+
import {
|
|
3
|
+
isFileRef2
|
|
4
|
+
} from "./chunk-jhm3zsa7.js";
|
|
2
5
|
import {
|
|
3
6
|
BlobStorageError2
|
|
4
7
|
} from "./chunk-h8teetr0.js";
|
|
5
|
-
import {
|
|
6
|
-
isFileRef2
|
|
7
|
-
} from "./chunk-h3v76ams.js";
|
|
8
8
|
|
|
9
9
|
// src/blob-storage/download-urls.ts
|
|
10
10
|
import { createHash, randomBytes, randomUUID } from "crypto";
|
|
@@ -82,7 +82,71 @@ function expiryFrom(createdAt, expiresInMs) {
|
|
|
82
82
|
}
|
|
83
83
|
return new Date(expiresAt);
|
|
84
84
|
}
|
|
85
|
+
// src/blob-storage/file-content.ts
|
|
86
|
+
function resolveFileRefAtPath2(root, path) {
|
|
87
|
+
const value = resolveJsonPointer(root, path);
|
|
88
|
+
return isFileRef2(value) ? value : null;
|
|
89
|
+
}
|
|
90
|
+
async function statFileRef2(blobStorage, fileRef) {
|
|
91
|
+
const stat = await blobStorage.stat(fileRef.blobId);
|
|
92
|
+
return stat && stat.blobId === fileRef.blobId && stat.digest === fileRef.digest && stat.sizeBytes === fileRef.sizeBytes ? stat : null;
|
|
93
|
+
}
|
|
94
|
+
async function openFileRef2(blobStorage, fileRef) {
|
|
95
|
+
const stat = await statFileRef2(blobStorage, fileRef);
|
|
96
|
+
if (!stat)
|
|
97
|
+
return null;
|
|
98
|
+
return { fileRef, body: openOnFirstRead(blobStorage, fileRef.blobId) };
|
|
99
|
+
}
|
|
100
|
+
function openOnFirstRead(blobStorage, blobId) {
|
|
101
|
+
let reader;
|
|
102
|
+
return new ReadableStream({
|
|
103
|
+
async pull(controller) {
|
|
104
|
+
reader ??= (await blobStorage.open(blobId)).getReader();
|
|
105
|
+
const { done, value } = await reader.read();
|
|
106
|
+
if (done)
|
|
107
|
+
controller.close();
|
|
108
|
+
else
|
|
109
|
+
controller.enqueue(value);
|
|
110
|
+
},
|
|
111
|
+
async cancel(reason) {
|
|
112
|
+
await reader?.cancel(reason);
|
|
113
|
+
}
|
|
114
|
+
}, { highWaterMark: 0 });
|
|
115
|
+
}
|
|
116
|
+
function jsonPointerSegment2(segment) {
|
|
117
|
+
return String(segment).replaceAll("~", "~0").replaceAll("/", "~1");
|
|
118
|
+
}
|
|
119
|
+
function resolveJsonPointer(root, pointer) {
|
|
120
|
+
if (pointer === "") {
|
|
121
|
+
return root;
|
|
122
|
+
}
|
|
123
|
+
if (!pointer.startsWith("/")) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
let current = root;
|
|
127
|
+
for (const rawSegment of pointer.slice(1).split("/")) {
|
|
128
|
+
const segment = decodeJsonPointerSegment(rawSegment);
|
|
129
|
+
if (Array.isArray(current)) {
|
|
130
|
+
const index = Number.parseInt(segment, 10);
|
|
131
|
+
if (!Number.isInteger(index) || index < 0 || index.toString() !== segment) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (!Object.hasOwn(current, segment)) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
current = current[index];
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (typeof current !== "object" || current === null || !Object.hasOwn(current, segment)) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
current = current[segment];
|
|
144
|
+
}
|
|
145
|
+
return current;
|
|
146
|
+
}
|
|
147
|
+
function decodeJsonPointerSegment(segment) {
|
|
148
|
+
return segment.replaceAll("~1", "/").replaceAll("~0", "~");
|
|
149
|
+
}
|
|
150
|
+
export { FILE_DOWNLOAD_ROUTE_PREFIX2, createFileDownloadUrl, revokeFileDownloadUrl, resolveFileDownload2, resolveFileRefAtPath2, statFileRef2, openFileRef2, jsonPointerSegment2 };
|
|
85
151
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
//# debugId=0DA1ED5935603AF264756E2164756E21
|
|
152
|
+
//# debugId=14717FDAE9DF0DDF64756E2164756E21
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/blob-storage/download-urls.ts"],
|
|
3
|
+
"sources": ["../src/blob-storage/download-urls.ts", "../src/blob-storage/file-content.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { createHash, randomBytes, randomUUID } from \"node:crypto\"\nimport type { FileDownloadGrantRecord, FileDownloadGrantStorage, Storage } from \"../storage\"\nimport { BlobStorageError } from \"./errors\"\nimport type { BlobStorage, FileRef } from \"./types\"\nimport { isFileRef } from \"./validation\"\n\n/**\n * Download URLs let a third party that cannot hold a Sixb session — a social network fetching\n * media to publish, for instance — read one file for a bounded time.\n *\n * Each URL carries a random token. Storage keeps only its SHA-256, with the file, the expiry, and\n * the execution that issued it. The API looks the token up on every request, so any process\n * sharing the storage can issue a URL, and a URL can be revoked before it expires.\n *\n * The API serves the bytes itself rather than redirecting to the blob provider: fetchers such as\n * TikTok refuse redirects and accept only hosts whose ownership the developer verified.\n */\n\n/** Path prefix of the public route that serves download URLs. */\nexport const FILE_DOWNLOAD_ROUTE_PREFIX = \"/api/files/downloads/\"\n\nconst DEFAULT_EXPIRY_MS = 60 * 60 * 1000\n// SQLite compares ISO timestamps as text, which orders them correctly only for four-digit years.\nconst LATEST_EXPIRY_MS = Date.UTC(9999, 11, 31, 23, 59, 59, 999)\n/** 32 random bytes in base64url. */\nconst TOKEN_PATTERN = /^[A-Za-z0-9_-]{43}$/\n\nexport interface CreateFileDownloadUrlOptions {\n /** How long the URL stays valid. Defaults to one hour. */\n readonly expiresInMs?: number\n}\n\nexport interface FileDownloadUrl {\n /** Pass to `blobs.revokeDownloadUrl()` to stop the URL before it expires. */\n readonly id: string\n readonly url: string\n readonly expiresAt: Date\n}\n\n/** What issuing and revoking need from the execution that asks. */\nexport interface FileDownloadUrlContext {\n readonly projectId: string\n readonly storage: Storage\n readonly blobStorage: BlobStorage\n readonly executionId: string\n readonly apiPublicOrigin: string | undefined\n}\n\nexport async function createFileDownloadUrl(\n context: FileDownloadUrlContext,\n file: FileRef,\n options: CreateFileDownloadUrlOptions = {}\n): Promise<FileDownloadUrl> {\n if (!isFileRef(file)) {\n throw new Error(\"[Sixb] blobs.createDownloadUrl() requires a valid file reference.\")\n }\n const createdAt = new Date()\n const expiresAt = expiryFrom(createdAt, options.expiresInMs ?? DEFAULT_EXPIRY_MS)\n const grants = requireGrantStorage(context.storage)\n if (context.apiPublicOrigin === undefined) {\n throw new Error(\n \"[Sixb] blobs.createDownloadUrl() needs the API's public origin. Set SIXB_API_PUBLIC_ORIGIN for the API and every worker.\"\n )\n }\n // Fail here, not when a third party fetches the URL minutes later and gets a bare 404.\n const stat = await context.blobStorage.stat(file.blobId)\n if (!stat || stat.digest !== file.digest || stat.sizeBytes !== file.sizeBytes) {\n throw new BlobStorageError(`[Sixb] No stored blob matches file '${file.blobId}'.`)\n }\n\n const token = randomBytes(32).toString(\"base64url\")\n const { logicalPath: _logicalPath, ...served } = file\n const grant: FileDownloadGrantRecord = {\n id: `filedownload_${randomUUID()}`,\n projectId: context.projectId,\n tokenHash: hashToken(token),\n file: served,\n executionId: context.executionId,\n createdAt,\n expiresAt,\n }\n await grants.create(grant)\n\n return {\n id: grant.id,\n url: new URL(`${FILE_DOWNLOAD_ROUTE_PREFIX}${token}`, context.apiPublicOrigin).toString(),\n expiresAt: grant.expiresAt,\n }\n}\n\nexport async function revokeFileDownloadUrl(\n context: FileDownloadUrlContext,\n id: string\n): Promise<void> {\n const revoked = await requireGrantStorage(context.storage).revoke({\n projectId: context.projectId,\n id,\n revokedAt: new Date(),\n })\n if (!revoked) {\n throw new Error(`[Sixb] Download URL '${id}' does not exist.`)\n }\n}\n\n/** The file a token serves, or `null` when the token is unknown, expired, or revoked. */\nexport async function resolveFileDownload(\n host: { readonly id: string; readonly storage: Storage },\n token: string\n): Promise<FileRef | null> {\n const grants = host.storage.fileDownloadGrants\n if (!grants || !TOKEN_PATTERN.test(token)) return null\n\n const grant = await grants.findByTokenHash({ projectId: host.id, tokenHash: hashToken(token) })\n if (!grant || grant.revokedAt || grant.expiresAt.getTime() <= Date.now()) return null\n return grant.file\n}\n\nfunction hashToken(token: string): string {\n return createHash(\"sha256\").update(token).digest(\"hex\")\n}\n\nfunction requireGrantStorage(storage: Storage): FileDownloadGrantStorage {\n if (!storage.fileDownloadGrants) {\n throw new Error(\"[Sixb] Download URLs require storage.fileDownloadGrants.\")\n }\n return storage.fileDownloadGrants\n}\n\nfunction expiryFrom(createdAt: Date, expiresInMs: number): Date {\n if (!Number.isSafeInteger(expiresInMs) || expiresInMs <= 0) {\n throw new Error(\"[Sixb] expiresInMs must be a positive integer.\")\n }\n const expiresAt = createdAt.getTime() + expiresInMs\n if (expiresAt > LATEST_EXPIRY_MS) {\n throw new Error(\"[Sixb] expiresInMs must end before the year 10000.\")\n }\n return new Date(expiresAt)\n}\n"
|
|
5
|
+
"import { createHash, randomBytes, randomUUID } from \"node:crypto\"\nimport type { FileDownloadGrantRecord, FileDownloadGrantStorage, Storage } from \"../storage\"\nimport { BlobStorageError } from \"./errors\"\nimport type { BlobStorage, FileRef } from \"./types\"\nimport { isFileRef } from \"./validation\"\n\n/**\n * Download URLs let a third party that cannot hold a Sixb session — a social network fetching\n * media to publish, for instance — read one file for a bounded time.\n *\n * Each URL carries a random token. Storage keeps only its SHA-256, with the file, the expiry, and\n * the execution that issued it. The API looks the token up on every request, so any process\n * sharing the storage can issue a URL, and a URL can be revoked before it expires.\n *\n * The API serves the bytes itself rather than redirecting to the blob provider: fetchers such as\n * TikTok refuse redirects and accept only hosts whose ownership the developer verified.\n */\n\n/** Path prefix of the public route that serves download URLs. */\nexport const FILE_DOWNLOAD_ROUTE_PREFIX = \"/api/files/downloads/\"\n\nconst DEFAULT_EXPIRY_MS = 60 * 60 * 1000\n// SQLite compares ISO timestamps as text, which orders them correctly only for four-digit years.\nconst LATEST_EXPIRY_MS = Date.UTC(9999, 11, 31, 23, 59, 59, 999)\n/** 32 random bytes in base64url. */\nconst TOKEN_PATTERN = /^[A-Za-z0-9_-]{43}$/\n\nexport interface CreateFileDownloadUrlOptions {\n /** How long the URL stays valid. Defaults to one hour. */\n readonly expiresInMs?: number\n}\n\nexport interface FileDownloadUrl {\n /** Pass to `blobs.revokeDownloadUrl()` to stop the URL before it expires. */\n readonly id: string\n readonly url: string\n readonly expiresAt: Date\n}\n\n/** What issuing and revoking need from the execution that asks. */\nexport interface FileDownloadUrlContext {\n readonly projectId: string\n readonly storage: Storage\n readonly blobStorage: BlobStorage\n readonly executionId: string\n readonly apiPublicOrigin: string | undefined\n}\n\nexport async function createFileDownloadUrl(\n context: FileDownloadUrlContext,\n file: FileRef,\n options: CreateFileDownloadUrlOptions = {}\n): Promise<FileDownloadUrl> {\n if (!isFileRef(file)) {\n throw new Error(\"[Sixb] blobs.createDownloadUrl() requires a valid file reference.\")\n }\n const createdAt = new Date()\n const expiresAt = expiryFrom(createdAt, options.expiresInMs ?? DEFAULT_EXPIRY_MS)\n const grants = requireGrantStorage(context.storage)\n if (context.apiPublicOrigin === undefined) {\n throw new Error(\n \"[Sixb] blobs.createDownloadUrl() needs the API's public origin. Set SIXB_API_PUBLIC_ORIGIN for the API and every worker.\"\n )\n }\n // Fail here, not when a third party fetches the URL minutes later and gets a bare 404.\n const stat = await context.blobStorage.stat(file.blobId)\n if (!stat || stat.digest !== file.digest || stat.sizeBytes !== file.sizeBytes) {\n throw new BlobStorageError(`[Sixb] No stored blob matches file '${file.blobId}'.`)\n }\n\n const token = randomBytes(32).toString(\"base64url\")\n const { logicalPath: _logicalPath, ...served } = file\n const grant: FileDownloadGrantRecord = {\n id: `filedownload_${randomUUID()}`,\n projectId: context.projectId,\n tokenHash: hashToken(token),\n file: served,\n executionId: context.executionId,\n createdAt,\n expiresAt,\n }\n await grants.create(grant)\n\n return {\n id: grant.id,\n url: new URL(`${FILE_DOWNLOAD_ROUTE_PREFIX}${token}`, context.apiPublicOrigin).toString(),\n expiresAt: grant.expiresAt,\n }\n}\n\nexport async function revokeFileDownloadUrl(\n context: FileDownloadUrlContext,\n id: string\n): Promise<void> {\n const revoked = await requireGrantStorage(context.storage).revoke({\n projectId: context.projectId,\n id,\n revokedAt: new Date(),\n })\n if (!revoked) {\n throw new Error(`[Sixb] Download URL '${id}' does not exist.`)\n }\n}\n\n/** The file a token serves, or `null` when the token is unknown, expired, or revoked. */\nexport async function resolveFileDownload(\n host: { readonly id: string; readonly storage: Storage },\n token: string\n): Promise<FileRef | null> {\n const grants = host.storage.fileDownloadGrants\n if (!grants || !TOKEN_PATTERN.test(token)) return null\n\n const grant = await grants.findByTokenHash({ projectId: host.id, tokenHash: hashToken(token) })\n if (!grant || grant.revokedAt || grant.expiresAt.getTime() <= Date.now()) return null\n return grant.file\n}\n\nfunction hashToken(token: string): string {\n return createHash(\"sha256\").update(token).digest(\"hex\")\n}\n\nfunction requireGrantStorage(storage: Storage): FileDownloadGrantStorage {\n if (!storage.fileDownloadGrants) {\n throw new Error(\"[Sixb] Download URLs require storage.fileDownloadGrants.\")\n }\n return storage.fileDownloadGrants\n}\n\nfunction expiryFrom(createdAt: Date, expiresInMs: number): Date {\n if (!Number.isSafeInteger(expiresInMs) || expiresInMs <= 0) {\n throw new Error(\"[Sixb] expiresInMs must be a positive integer.\")\n }\n const expiresAt = createdAt.getTime() + expiresInMs\n if (expiresAt > LATEST_EXPIRY_MS) {\n throw new Error(\"[Sixb] expiresInMs must end before the year 10000.\")\n }\n return new Date(expiresAt)\n}\n",
|
|
6
|
+
"import type { BlobInfo, BlobStorage, FileRef, OpenedFileRef } from \"./types\"\nimport { isFileRef } from \"./validation\"\n\n/**\n * A file is served only through the record that references it: the caller reads that record with\n * its own authority, resolves the FileRef inside it, then checks the FileRef against the stored\n * blob. File content routes and the SDK's `file().open()` share these steps.\n */\n\n/** The FileRef at a JSON Pointer in an authorized record, or null when none is there. */\nexport function resolveFileRefAtPath(root: unknown, path: string): FileRef | null {\n const value = resolveJsonPointer(root, path)\n return isFileRef(value) ? value : null\n}\n\n/** The stored blob a FileRef names, or null when it is absent or no longer matches it. */\nexport async function statFileRef(\n blobStorage: Pick<BlobStorage, \"stat\">,\n fileRef: FileRef\n): Promise<BlobInfo | null> {\n const stat = await blobStorage.stat(fileRef.blobId)\n return stat &&\n stat.blobId === fileRef.blobId &&\n stat.digest === fileRef.digest &&\n stat.sizeBytes === fileRef.sizeBytes\n ? stat\n : null\n}\n\n/**\n * Open a FileRef resolved from an authorized record, or return null when its blob is gone. The\n * blob itself is opened on the body's first read, so a body nobody reads holds nothing.\n */\nexport async function openFileRef(\n blobStorage: Pick<BlobStorage, \"stat\" | \"open\">,\n fileRef: FileRef\n): Promise<OpenedFileRef | null> {\n const stat = await statFileRef(blobStorage, fileRef)\n if (!stat) return null\n return { fileRef, body: openOnFirstRead(blobStorage, fileRef.blobId) }\n}\n\nfunction openOnFirstRead(\n blobStorage: Pick<BlobStorage, \"open\">,\n blobId: string\n): ReadableStream<Uint8Array> {\n let reader: ReadableStreamDefaultReader<Uint8Array> | undefined\n return new ReadableStream<Uint8Array>(\n {\n async pull(controller) {\n reader ??= (await blobStorage.open(blobId)).getReader()\n const { done, value } = await reader.read()\n if (done) controller.close()\n else controller.enqueue(value)\n },\n async cancel(reason) {\n await reader?.cancel(reason)\n },\n },\n // No read-ahead: the first pull waits for the first read.\n { highWaterMark: 0 }\n )\n}\n\n/** Escape one segment of a JSON Pointer. */\nexport function jsonPointerSegment(segment: string | number): string {\n return String(segment).replaceAll(\"~\", \"~0\").replaceAll(\"/\", \"~1\")\n}\n\nfunction resolveJsonPointer(root: unknown, pointer: string): unknown {\n if (pointer === \"\") {\n return root\n }\n\n if (!pointer.startsWith(\"/\")) {\n return undefined\n }\n\n let current = root\n for (const rawSegment of pointer.slice(1).split(\"/\")) {\n const segment = decodeJsonPointerSegment(rawSegment)\n if (Array.isArray(current)) {\n const index = Number.parseInt(segment, 10)\n if (!Number.isInteger(index) || index < 0 || index.toString() !== segment) {\n return undefined\n }\n if (!Object.hasOwn(current, segment)) {\n return undefined\n }\n current = current[index]\n continue\n }\n\n if (typeof current !== \"object\" || current === null || !Object.hasOwn(current, segment)) {\n return undefined\n }\n\n current = (current as Record<string, unknown>)[segment]\n }\n\n return current\n}\n\nfunction decodeJsonPointerSegment(segment: string): string {\n return segment.replaceAll(\"~1\", \"/\").replaceAll(\"~0\", \"~\")\n}\n"
|
|
6
7
|
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "14717FDAE9DF0DDF64756E2164756E21",
|
|
9
10
|
"names": []
|
|
10
11
|
}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
MAX_OBJECT_READ_FACETS2,
|
|
4
4
|
isAllowed2,
|
|
5
5
|
assertAuthorized2
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-y7rqfrgg.js";
|
|
7
7
|
import {
|
|
8
8
|
validateSchemaValue2,
|
|
9
9
|
validatePropertyValue2,
|
|
@@ -12,35 +12,35 @@ import {
|
|
|
12
12
|
isTextSchema,
|
|
13
13
|
isContainsSchema,
|
|
14
14
|
queryScalarKindForSchema
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-hvsb78a1.js";
|
|
16
16
|
import {
|
|
17
17
|
validateRerankingResults
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-29yx306f.js";
|
|
19
19
|
import {
|
|
20
|
+
MAX_VECTOR_K,
|
|
21
|
+
vectorConfiguration,
|
|
22
|
+
vectorSources,
|
|
23
|
+
normalizeVector2,
|
|
20
24
|
hasVectorProfile2,
|
|
21
25
|
isVectorProfileQuery2,
|
|
22
26
|
objectBatchKey2,
|
|
23
27
|
linkBatchKey2,
|
|
24
28
|
objectLinkCursor2,
|
|
25
29
|
compareQueryScalarValues,
|
|
26
|
-
queryScalarValuesEqual
|
|
27
|
-
|
|
28
|
-
vectorConfiguration,
|
|
29
|
-
vectorSources,
|
|
30
|
-
normalizeVector2
|
|
31
|
-
} from "./chunk-5yd8cchh.js";
|
|
30
|
+
queryScalarValuesEqual
|
|
31
|
+
} from "./chunk-j2bp5ryw.js";
|
|
32
32
|
import {
|
|
33
|
-
normalizeObjectQuery2,
|
|
34
33
|
ObjectQueryValidationError2,
|
|
35
34
|
ObjectQueryPlanningError2,
|
|
36
|
-
ObjectQueryExecutionError2
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
formatUnknownObjectTypeMessage
|
|
40
|
-
} from "./chunk-cqr3acm1.js";
|
|
35
|
+
ObjectQueryExecutionError2,
|
|
36
|
+
normalizeObjectQuery2
|
|
37
|
+
} from "./chunk-91mg3nj9.js";
|
|
41
38
|
import {
|
|
42
39
|
sameEmbeddingModel
|
|
43
40
|
} from "./chunk-kyjcwqz6.js";
|
|
41
|
+
import {
|
|
42
|
+
formatUnknownObjectTypeMessage
|
|
43
|
+
} from "./chunk-cqr3acm1.js";
|
|
44
44
|
import {
|
|
45
45
|
normalizeDecimalValue2
|
|
46
46
|
} from "./chunk-3bh94gbw.js";
|
|
@@ -67,6 +67,41 @@ var NOOP_QUERY_ADMISSION = Object.freeze({
|
|
|
67
67
|
}),
|
|
68
68
|
set: (input) => input.states[0] ?? NOOP_ADMISSION_STATE
|
|
69
69
|
});
|
|
70
|
+
function composeObjectQueryAdmissions(first, second) {
|
|
71
|
+
const parts = new WeakMap;
|
|
72
|
+
const join = (left, right) => {
|
|
73
|
+
const state = Object.freeze({});
|
|
74
|
+
parts.set(state, [left, right]);
|
|
75
|
+
return state;
|
|
76
|
+
};
|
|
77
|
+
const split = (state) => {
|
|
78
|
+
const pair = parts.get(state);
|
|
79
|
+
if (!pair)
|
|
80
|
+
throw new Error("[Sixb] Composed query admission received a foreign state.");
|
|
81
|
+
return pair;
|
|
82
|
+
};
|
|
83
|
+
const transition = (left, right) => {
|
|
84
|
+
const denial = left.denial ?? right.denial;
|
|
85
|
+
return { state: join(left.state, right.state), ...denial ? { denial } : {} };
|
|
86
|
+
};
|
|
87
|
+
const admission = {
|
|
88
|
+
empty: () => join(first.empty(), second.empty()),
|
|
89
|
+
source: (input) => transition(first.source(input), second.source(input)),
|
|
90
|
+
edge: (input) => {
|
|
91
|
+
const [left, right] = split(input.state);
|
|
92
|
+
return transition(first.edge({ ...input, state: left }), second.edge({ ...input, state: right }));
|
|
93
|
+
},
|
|
94
|
+
property: (input) => {
|
|
95
|
+
const [left, right] = split(input.state);
|
|
96
|
+
return first.property({ ...input, state: left }) ?? second.property({ ...input, state: right });
|
|
97
|
+
},
|
|
98
|
+
set: (input) => {
|
|
99
|
+
const pairs = input.states.map(split);
|
|
100
|
+
return join(first.set({ ...input, states: pairs.map(([left]) => left) }), second.set({ ...input, states: pairs.map(([, right]) => right) }));
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
return Object.freeze(admission);
|
|
104
|
+
}
|
|
70
105
|
function validateObjectQuery2(query, options) {
|
|
71
106
|
const admitted = validateObjectQueryWithAdmission(query, options, NOOP_QUERY_ADMISSION);
|
|
72
107
|
return {
|
|
@@ -299,7 +334,7 @@ function validateStart(objectTypeId, includeSubtypes, path, ctx) {
|
|
|
299
334
|
addIssue(ctx, path, "unknown_object_type", formatUnknownObjectTypeMessage(objectTypeId));
|
|
300
335
|
return { result: { objectTypeIds: [] }, query: { kind: "start", objectTypeId } };
|
|
301
336
|
}
|
|
302
|
-
const objectTypeIds = includeSubtypes ?
|
|
337
|
+
const objectTypeIds = includeSubtypes ? withSubtypes([objectTypeId], ctx) : [objectTypeId];
|
|
303
338
|
return { result: { objectTypeIds }, query: { kind: "start", objectTypeId, includeSubtypes } };
|
|
304
339
|
}
|
|
305
340
|
function validatePredicate(predicate, shape, admissionState, path, ctx) {
|
|
@@ -513,16 +548,15 @@ function validateTextQuery(query, fields, shape, admissionState, path, ctx) {
|
|
|
513
548
|
addIssue(ctx, path, "missing_text_fields", `Object type '${objectType.id}' must define search.defaultText or the text query must specify fields`);
|
|
514
549
|
continue;
|
|
515
550
|
}
|
|
551
|
+
const admitted = admitTextFields(fieldIds, fields === undefined, {
|
|
552
|
+
state: admissionState,
|
|
553
|
+
objectTypeId: objectType.id,
|
|
554
|
+
path: `${path}.fields`,
|
|
555
|
+
ctx
|
|
556
|
+
});
|
|
516
557
|
if (fieldsByObjectType)
|
|
517
|
-
fieldsByObjectType[objectType.id] = uniqueStrings(
|
|
558
|
+
fieldsByObjectType[objectType.id] = uniqueStrings(admitted);
|
|
518
559
|
for (const fieldId of fieldIds) {
|
|
519
|
-
admitProperty(ctx, {
|
|
520
|
-
state: admissionState,
|
|
521
|
-
propertyId: fieldId,
|
|
522
|
-
objectTypeId: objectType.id,
|
|
523
|
-
use: "text",
|
|
524
|
-
path: `${path}.fields`
|
|
525
|
-
});
|
|
526
560
|
const property = getProperty(objectType, fieldId);
|
|
527
561
|
if (!property) {
|
|
528
562
|
addIssue(ctx, path, "unknown_text_field", `Text query references unknown property '${fieldId}' on '${objectType.id}'`);
|
|
@@ -538,6 +572,29 @@ function validateTextQuery(query, fields, shape, admissionState, path, ctx) {
|
|
|
538
572
|
}
|
|
539
573
|
return fieldsByObjectType ? { fieldsByObjectType } : {};
|
|
540
574
|
}
|
|
575
|
+
function admitTextFields(fieldIds, defaults, input) {
|
|
576
|
+
const admitted = [];
|
|
577
|
+
let firstDenial;
|
|
578
|
+
for (const fieldId of fieldIds) {
|
|
579
|
+
const denial = input.ctx.admission.property({
|
|
580
|
+
state: input.state,
|
|
581
|
+
propertyId: fieldId,
|
|
582
|
+
objectTypeId: input.objectTypeId,
|
|
583
|
+
use: "text",
|
|
584
|
+
path: input.path
|
|
585
|
+
});
|
|
586
|
+
if (!denial) {
|
|
587
|
+
admitted.push(fieldId);
|
|
588
|
+
} else if (!defaults) {
|
|
589
|
+
recordAdmissionDenial(input.ctx, denial);
|
|
590
|
+
} else {
|
|
591
|
+
firstDenial ??= denial;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
if (admitted.length === 0 && firstDenial)
|
|
595
|
+
recordAdmissionDenial(input.ctx, firstDenial);
|
|
596
|
+
return admitted;
|
|
597
|
+
}
|
|
541
598
|
function validateVectorProfileQuery(query, shape, state, path, ctx) {
|
|
542
599
|
const types = getObjectTypesForResult(shape, ctx);
|
|
543
600
|
if (types.length !== 1 || !Number.isSafeInteger(query.k) || query.k < 1 || query.k > MAX_VECTOR_K) {
|
|
@@ -605,7 +662,9 @@ function validateOutgoingTraverse(linkId, shape, path, ctx) {
|
|
|
605
662
|
}
|
|
606
663
|
}
|
|
607
664
|
}
|
|
608
|
-
|
|
665
|
+
const objectTypeIds = uniqueStrings(targetTypeIds);
|
|
666
|
+
touchLinkTargets(objectTypeIds, ctx);
|
|
667
|
+
return { objectTypeIds };
|
|
609
668
|
}
|
|
610
669
|
function validateIncomingTraverse(linkId, sourceObjectTypeId, shape, path, ctx) {
|
|
611
670
|
let candidateTypes = ctx.ontology.listObjectTypes();
|
|
@@ -688,7 +747,14 @@ function resolveOutgoingExpansionTargets(linkId, sourceObjectTypeId, shape, path
|
|
|
688
747
|
if (!foundOnAnyType) {
|
|
689
748
|
addIssue(ctx, path, "unknown_expand_link", `Expansion references link '${linkId}' not present on result type ${shape.objectTypeIds.join(" | ")} (an expand abandoned by a later traverse?)`);
|
|
690
749
|
}
|
|
691
|
-
|
|
750
|
+
const objectTypeIds = uniqueStrings(targetTypeIds);
|
|
751
|
+
touchLinkTargets(objectTypeIds, ctx);
|
|
752
|
+
return { objectTypeIds };
|
|
753
|
+
}
|
|
754
|
+
function touchLinkTargets(objectTypeIds, ctx) {
|
|
755
|
+
for (const objectTypeId of withSubtypes(objectTypeIds, ctx)) {
|
|
756
|
+
ctx.touchedObjectTypeIds.add(objectTypeId);
|
|
757
|
+
}
|
|
692
758
|
}
|
|
693
759
|
function resolveIncomingExpansionTargets(linkId, sourceObjectTypeId, shape, path, ctx) {
|
|
694
760
|
let candidateTypes = ctx.ontology.listObjectTypes();
|
|
@@ -900,6 +966,9 @@ function keyForTypeIds(typeIds) {
|
|
|
900
966
|
function uniqueStrings(values) {
|
|
901
967
|
return [...new Set(values)];
|
|
902
968
|
}
|
|
969
|
+
function withSubtypes(objectTypeIds, ctx) {
|
|
970
|
+
return uniqueStrings(objectTypeIds.flatMap((id) => [id, ...ctx.ontology.listSubTypes(id)]));
|
|
971
|
+
}
|
|
903
972
|
function admitTransition(ctx, transition) {
|
|
904
973
|
if (transition.denial)
|
|
905
974
|
recordAdmissionDenial(ctx, transition.denial);
|
|
@@ -1385,15 +1454,7 @@ var DEFAULT_MAX_FACET_LIMIT = 1000;
|
|
|
1385
1454
|
var DEFAULT_MAX_EXPANSION_FANOUT = 1000;
|
|
1386
1455
|
var PAGE_TOKEN_PREFIX = "offset:";
|
|
1387
1456
|
async function executeObjectQuery2(input, options) {
|
|
1388
|
-
const
|
|
1389
|
-
const validated = validateObjectQuery2(normalized, {
|
|
1390
|
-
ontology: options.ontology,
|
|
1391
|
-
maxLimit: options.maxLimit,
|
|
1392
|
-
maxPageSize: options.maxPageSize,
|
|
1393
|
-
maxRefs: options.maxRefs,
|
|
1394
|
-
normalize: false
|
|
1395
|
-
});
|
|
1396
|
-
assertQueryViewable(input.projectId, validated, options);
|
|
1457
|
+
const validated = validateExecutableQuery(input, options);
|
|
1397
1458
|
const capabilities = options.storage.queryCapabilities();
|
|
1398
1459
|
const hasQueryObjects = typeof options.storage.queryObjects === "function";
|
|
1399
1460
|
const hasCountObjects = typeof options.storage.countObjects === "function";
|
|
@@ -1458,15 +1519,7 @@ async function executeObjectQuery2(input, options) {
|
|
|
1458
1519
|
return { ...fallback, plan };
|
|
1459
1520
|
}
|
|
1460
1521
|
async function countObjects2(input, options) {
|
|
1461
|
-
const
|
|
1462
|
-
const validated = validateObjectQuery2(normalized, {
|
|
1463
|
-
ontology: options.ontology,
|
|
1464
|
-
maxLimit: options.maxLimit,
|
|
1465
|
-
maxPageSize: options.maxPageSize,
|
|
1466
|
-
maxRefs: options.maxRefs,
|
|
1467
|
-
normalize: false
|
|
1468
|
-
});
|
|
1469
|
-
assertQueryViewable(input.projectId, validated, options);
|
|
1522
|
+
const validated = validateExecutableQuery(input, options);
|
|
1470
1523
|
const capabilities = options.storage.queryCapabilities();
|
|
1471
1524
|
const hasQueryObjects = typeof options.storage.queryObjects === "function";
|
|
1472
1525
|
const hasCountObjects = typeof options.storage.countObjects === "function";
|
|
@@ -1512,15 +1565,7 @@ async function countObjects2(input, options) {
|
|
|
1512
1565
|
return { count: evaluation.total, plan };
|
|
1513
1566
|
}
|
|
1514
1567
|
async function existsObjects2(input, options) {
|
|
1515
|
-
const
|
|
1516
|
-
const validated = validateObjectQuery2(normalized, {
|
|
1517
|
-
ontology: options.ontology,
|
|
1518
|
-
maxLimit: options.maxLimit,
|
|
1519
|
-
maxPageSize: options.maxPageSize,
|
|
1520
|
-
maxRefs: options.maxRefs,
|
|
1521
|
-
normalize: false
|
|
1522
|
-
});
|
|
1523
|
-
assertQueryViewable(input.projectId, validated, options);
|
|
1568
|
+
const validated = validateExecutableQuery(input, options);
|
|
1524
1569
|
const capabilities = options.storage.queryCapabilities();
|
|
1525
1570
|
const hasQueryObjects = typeof options.storage.queryObjects === "function";
|
|
1526
1571
|
const hasCountObjects = typeof options.storage.countObjects === "function";
|
|
@@ -1566,16 +1611,18 @@ async function existsObjects2(input, options) {
|
|
|
1566
1611
|
return { exists: evaluation.total > 0, plan };
|
|
1567
1612
|
}
|
|
1568
1613
|
async function facetObjects2(input, options) {
|
|
1569
|
-
const
|
|
1570
|
-
const validated = validateObjectQuery2(normalized, {
|
|
1571
|
-
ontology: options.ontology,
|
|
1572
|
-
maxLimit: options.maxLimit,
|
|
1573
|
-
maxPageSize: options.maxPageSize,
|
|
1574
|
-
maxRefs: options.maxRefs,
|
|
1575
|
-
normalize: false
|
|
1576
|
-
});
|
|
1577
|
-
assertQueryViewable(input.projectId, validated, options);
|
|
1614
|
+
const validated = validateExecutableQuery(input, options);
|
|
1578
1615
|
const facets = validateObjectFacetRequests(input.facets, validated.result.objectTypeIds, options);
|
|
1616
|
+
facets.forEach((facet, index) => {
|
|
1617
|
+
const denial = options.admission?.property({
|
|
1618
|
+
state: validated.admissionState,
|
|
1619
|
+
propertyId: facet.propertyId,
|
|
1620
|
+
use: "facet",
|
|
1621
|
+
path: `$.facets[${index}].propertyId`
|
|
1622
|
+
});
|
|
1623
|
+
if (denial)
|
|
1624
|
+
throw denial;
|
|
1625
|
+
});
|
|
1579
1626
|
const aggregateQuery = stripOuterRowShape(validated.query);
|
|
1580
1627
|
const capabilities = options.storage.queryCapabilities();
|
|
1581
1628
|
const hasQueryObjects = typeof options.storage.queryObjects === "function";
|
|
@@ -1625,6 +1672,21 @@ async function facetObjects2(input, options) {
|
|
|
1625
1672
|
plan
|
|
1626
1673
|
};
|
|
1627
1674
|
}
|
|
1675
|
+
function validateExecutableQuery(input, options) {
|
|
1676
|
+
const validationOptions = {
|
|
1677
|
+
ontology: options.ontology,
|
|
1678
|
+
maxLimit: options.maxLimit,
|
|
1679
|
+
maxPageSize: options.maxPageSize,
|
|
1680
|
+
maxRefs: options.maxRefs,
|
|
1681
|
+
normalize: false
|
|
1682
|
+
};
|
|
1683
|
+
const normalized = normalizeObjectQuery2(input.query);
|
|
1684
|
+
const validated = validateObjectQuery2(normalized, validationOptions);
|
|
1685
|
+
assertQueryViewable(input.projectId, validated, options);
|
|
1686
|
+
if (!options.admission)
|
|
1687
|
+
return { ...validated, admissionState: {} };
|
|
1688
|
+
return validateObjectQueryWithAdmission(normalized, validationOptions, options.admission);
|
|
1689
|
+
}
|
|
1628
1690
|
function assertQueryViewable(projectId, validated, authorization) {
|
|
1629
1691
|
if (!authorization.runtimeAuthorization && !authorization.authorization)
|
|
1630
1692
|
return;
|
|
@@ -2619,6 +2681,6 @@ async function hydrateLinkQueryObjects(projectId, selected, links, storage) {
|
|
|
2619
2681
|
return row ? [row] : [];
|
|
2620
2682
|
});
|
|
2621
2683
|
}
|
|
2622
|
-
export { validateObjectQuery2, validateObjectQueryWithAdmission, collectObjectQueryValidationIssues2, resolveObjectQueryResultShape2, planObjectQuery2, executeObjectQuery2, countObjects2, existsObjects2, facetObjects2, validateObjectFacetRequests, explainObjectQuery2, preflightObjectQueryLinks, executeObjectQueryLinks2 };
|
|
2684
|
+
export { composeObjectQueryAdmissions, validateObjectQuery2, validateObjectQueryWithAdmission, collectObjectQueryValidationIssues2, resolveObjectQueryResultShape2, planObjectQuery2, executeObjectQuery2, countObjects2, existsObjects2, facetObjects2, validateObjectFacetRequests, explainObjectQuery2, preflightObjectQueryLinks, executeObjectQueryLinks2 };
|
|
2623
2685
|
|
|
2624
|
-
//# debugId=
|
|
2686
|
+
//# debugId=6A00FC17EF4657DE64756E2164756E21
|