@sixb/core 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/commit-edits.d.ts +3 -1
- package/dist/actions/commit-edits.d.ts.map +1 -1
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.js +71 -60
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +9 -1
- package/dist/actions/read-facade.d.ts.map +1 -1
- package/dist/actions/request.d.ts +15 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run/context.d.ts +1 -0
- package/dist/actions/run/context.d.ts.map +1 -1
- package/dist/actions/run/execute.d.ts +2 -3
- package/dist/actions/run/execute.d.ts.map +1 -1
- package/dist/actions/run/executor.d.ts +3 -0
- package/dist/actions/run/executor.d.ts.map +1 -1
- package/dist/actions/run/normalize.d.ts +2 -1
- package/dist/actions/run/normalize.d.ts.map +1 -1
- package/dist/actions/run/signals.d.ts +1 -3
- package/dist/actions/run/signals.d.ts.map +1 -1
- package/dist/actions/run/types.d.ts +16 -1
- package/dist/actions/run/types.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +23 -0
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/actions/types/context.d.ts +17 -1
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/validators.d.ts.map +1 -1
- package/dist/activity/connection.d.ts +62 -0
- package/dist/activity/connection.d.ts.map +1 -0
- package/dist/activity/device.d.ts +8 -0
- package/dist/activity/device.d.ts.map +1 -0
- package/dist/activity/execution.d.ts +48 -0
- package/dist/activity/execution.d.ts.map +1 -0
- package/dist/activity/service.d.ts +79 -0
- package/dist/activity/service.d.ts.map +1 -0
- package/dist/activity/shares.d.ts +24 -0
- package/dist/activity/shares.d.ts.map +1 -0
- package/dist/activity/timeline.d.ts +103 -0
- package/dist/activity/timeline.d.ts.map +1 -0
- package/dist/agents/accounting.d.ts +15 -0
- package/dist/agents/accounting.d.ts.map +1 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/agent-mail.d.ts +9 -0
- package/dist/agents/agent-mail.d.ts.map +1 -0
- package/dist/agents/api-gateway.d.ts +5 -0
- package/dist/agents/api-gateway.d.ts.map +1 -1
- package/dist/agents/approval-continuation.d.ts +23 -0
- package/dist/agents/approval-continuation.d.ts.map +1 -0
- package/dist/agents/approval-executor.d.ts +56 -0
- package/dist/agents/approval-executor.d.ts.map +1 -0
- package/dist/agents/approval-outcome.d.ts +8 -0
- package/dist/agents/approval-outcome.d.ts.map +1 -0
- package/dist/agents/approvals.d.ts +210 -0
- package/dist/agents/approvals.d.ts.map +1 -0
- package/dist/agents/authority.d.ts +10 -0
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/builders.d.ts.map +1 -1
- package/dist/agents/cancel.d.ts +23 -0
- package/dist/agents/cancel.d.ts.map +1 -0
- package/dist/agents/child-question.d.ts +18 -0
- package/dist/agents/child-question.d.ts.map +1 -0
- package/dist/agents/children.d.ts +99 -0
- package/dist/agents/children.d.ts.map +1 -0
- package/dist/agents/context/index.js +1 -1
- package/dist/agents/context-compaction.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +13 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts +180 -14
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/fork.d.ts +16 -0
- package/dist/agents/fork.d.ts.map +1 -0
- package/dist/agents/ids.d.ts +7 -0
- package/dist/agents/ids.d.ts.map +1 -1
- package/dist/agents/index.d.ts +20 -8
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +170 -84
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/memory-execution.d.ts +57 -0
- package/dist/agents/memory-execution.d.ts.map +1 -0
- package/dist/agents/memory.d.ts +49 -0
- package/dist/agents/memory.d.ts.map +1 -0
- package/dist/agents/message.d.ts +50 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +19 -0
- package/dist/agents/model-loop.d.ts.map +1 -1
- package/dist/agents/model-routing.d.ts +19 -0
- package/dist/agents/model-routing.d.ts.map +1 -0
- package/dist/agents/participants.d.ts +18 -0
- package/dist/agents/participants.d.ts.map +1 -0
- package/dist/agents/reference.d.ts.map +1 -1
- package/dist/agents/request.d.ts +36 -2
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/run-scope.d.ts +51 -0
- package/dist/agents/run-scope.d.ts.map +1 -0
- package/dist/agents/skills.d.ts.map +1 -1
- package/dist/agents/streams/index.d.ts +3 -2
- package/dist/agents/streams/index.d.ts.map +1 -1
- package/dist/agents/streams/index.js +8 -4
- package/dist/agents/streams/index.js.map +1 -1
- package/dist/agents/streams/internal.d.ts +1 -1
- package/dist/agents/streams/internal.d.ts.map +1 -1
- package/dist/agents/streams/internal.js +6 -4
- package/dist/agents/streams/internal.js.map +1 -1
- package/dist/agents/streams/protocol.d.ts +122 -3
- package/dist/agents/streams/protocol.d.ts.map +1 -1
- package/dist/agents/subagent-runs.d.ts +12 -0
- package/dist/agents/subagent-runs.d.ts.map +1 -0
- package/dist/agents/thread-access.d.ts +53 -0
- package/dist/agents/thread-access.d.ts.map +1 -0
- package/dist/agents/tool-definition.d.ts +5 -4
- package/dist/agents/tool-definition.d.ts.map +1 -1
- package/dist/agents/types.d.ts +31 -12
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/artifacts/access.d.ts +52 -0
- package/dist/artifacts/access.d.ts.map +1 -0
- package/dist/artifacts/address.d.ts +48 -0
- package/dist/artifacts/address.d.ts.map +1 -0
- package/dist/artifacts/canvas.d.ts +92 -0
- package/dist/artifacts/canvas.d.ts.map +1 -0
- package/dist/artifacts/csv.d.ts +27 -0
- package/dist/artifacts/csv.d.ts.map +1 -0
- package/dist/artifacts/errors.d.ts +16 -0
- package/dist/artifacts/errors.d.ts.map +1 -0
- package/dist/artifacts/execution.d.ts +138 -0
- package/dist/artifacts/execution.d.ts.map +1 -0
- package/dist/artifacts/formula/check.d.ts +24 -0
- package/dist/artifacts/formula/check.d.ts.map +1 -0
- package/dist/artifacts/formula/evaluate.d.ts +32 -0
- package/dist/artifacts/formula/evaluate.d.ts.map +1 -0
- package/dist/artifacts/formula/index.d.ts +38 -0
- package/dist/artifacts/formula/index.d.ts.map +1 -0
- package/dist/artifacts/formula/parser.d.ts +67 -0
- package/dist/artifacts/formula/parser.d.ts.map +1 -0
- package/dist/artifacts/frames/assets.d.ts +30 -0
- package/dist/artifacts/frames/assets.d.ts.map +1 -0
- package/dist/artifacts/frames/entries.d.ts +19 -0
- package/dist/artifacts/frames/entries.d.ts.map +1 -0
- package/dist/artifacts/frames/grants.d.ts +37 -0
- package/dist/artifacts/frames/grants.d.ts.map +1 -0
- package/dist/artifacts/frames/index.d.ts +12 -0
- package/dist/artifacts/frames/index.d.ts.map +1 -0
- package/dist/artifacts/frames/index.js +1285 -0
- package/dist/artifacts/frames/index.js.map +16 -0
- package/dist/artifacts/frames/kit.d.ts +71 -0
- package/dist/artifacts/frames/kit.d.ts.map +1 -0
- package/dist/artifacts/frames/probe.d.ts +45 -0
- package/dist/artifacts/frames/probe.d.ts.map +1 -0
- package/dist/artifacts/frames/protocol.d.ts +167 -0
- package/dist/artifacts/frames/protocol.d.ts.map +1 -0
- package/dist/artifacts/frames/runtime.d.ts +31 -0
- package/dist/artifacts/frames/runtime.d.ts.map +1 -0
- package/dist/artifacts/html.d.ts +6 -0
- package/dist/artifacts/html.d.ts.map +1 -0
- package/dist/artifacts/ids.d.ts +5 -0
- package/dist/artifacts/ids.d.ts.map +1 -0
- package/dist/artifacts/index.d.ts +22 -0
- package/dist/artifacts/index.d.ts.map +1 -0
- package/dist/artifacts/index.js +247 -0
- package/dist/artifacts/index.js.map +10 -0
- package/dist/artifacts/kinds.d.ts +5 -0
- package/dist/artifacts/kinds.d.ts.map +1 -0
- package/dist/artifacts/limits.d.ts +58 -0
- package/dist/artifacts/limits.d.ts.map +1 -0
- package/dist/artifacts/live-sheet.d.ts +65 -0
- package/dist/artifacts/live-sheet.d.ts.map +1 -0
- package/dist/artifacts/outline.d.ts +70 -0
- package/dist/artifacts/outline.d.ts.map +1 -0
- package/dist/artifacts/publish/files.d.ts +15 -0
- package/dist/artifacts/publish/files.d.ts.map +1 -0
- package/dist/artifacts/publish/index.d.ts +7 -0
- package/dist/artifacts/publish/index.d.ts.map +1 -0
- package/dist/artifacts/publish/index.js +76 -0
- package/dist/{chunk-7n30ybym.js.map → artifacts/publish/index.js.map} +1 -1
- package/dist/artifacts/publish/publish.d.ts +84 -0
- package/dist/artifacts/publish/publish.d.ts.map +1 -0
- package/dist/artifacts/publish/queries.d.ts +33 -0
- package/dist/artifacts/publish/queries.d.ts.map +1 -0
- package/dist/artifacts/publish/references.d.ts +30 -0
- package/dist/artifacts/publish/references.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/canvas.d.ts +18 -0
- package/dist/artifacts/publish/validate/canvas.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/document.d.ts +17 -0
- package/dist/artifacts/publish/validate/document.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/file.d.ts +8 -0
- package/dist/artifacts/publish/validate/file.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/html.d.ts +20 -0
- package/dist/artifacts/publish/validate/html.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/page.d.ts +15 -0
- package/dist/artifacts/publish/validate/page.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/sheet.d.ts +23 -0
- package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/slides.d.ts +15 -0
- package/dist/artifacts/publish/validate/slides.d.ts.map +1 -0
- package/dist/artifacts/queries.d.ts +95 -0
- package/dist/artifacts/queries.d.ts.map +1 -0
- package/dist/artifacts/references.d.ts +12 -0
- package/dist/artifacts/references.d.ts.map +1 -0
- package/dist/artifacts/resolve.d.ts +47 -0
- package/dist/artifacts/resolve.d.ts.map +1 -0
- package/dist/artifacts/run-query.d.ts +26 -0
- package/dist/artifacts/run-query.d.ts.map +1 -0
- package/dist/artifacts/serialize-query.d.ts +12 -0
- package/dist/artifacts/serialize-query.d.ts.map +1 -0
- package/dist/artifacts/sheet-rules.d.ts +26 -0
- package/dist/artifacts/sheet-rules.d.ts.map +1 -0
- package/dist/artifacts/theme.d.ts +19 -0
- package/dist/artifacts/theme.d.ts.map +1 -0
- package/dist/artifacts/tones.d.ts +8 -0
- package/dist/artifacts/tones.d.ts.map +1 -0
- package/dist/artifacts/warnings.d.ts +11 -0
- package/dist/artifacts/warnings.d.ts.map +1 -0
- package/dist/artifacts/workbook.d.ts +135 -0
- package/dist/artifacts/workbook.d.ts.map +1 -0
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +16 -13
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/member-events.d.ts +13 -0
- package/dist/auth/member-events.d.ts.map +1 -0
- package/dist/auth/profile.d.ts +11 -0
- package/dist/auth/profile.d.ts.map +1 -0
- package/dist/auth/runtime.d.ts +31 -3
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/strategy.d.ts +3 -1
- package/dist/auth/strategy.d.ts.map +1 -1
- package/dist/auth/strategy.js +7 -3
- package/dist/auth/strategy.js.map +1 -1
- package/dist/auth/types.d.ts +30 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/decision.d.ts +17 -0
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/event-visibility.d.ts +5 -1
- package/dist/authorization/event-visibility.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +2 -2
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +2 -2
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +14 -9
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +19 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/run-visibility.d.ts +8 -1
- package/dist/authorization/run-visibility.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +14 -0
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +1 -1
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +11 -5
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +12 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -1
- package/dist/bootstrap/index.js +76 -66
- package/dist/bootstrap/index.js.map +2 -2
- package/dist/{chunk-tg2cw67r.js → chunk-02bzjgnt.js} +6 -6
- package/dist/{chunk-tg2cw67r.js.map → chunk-02bzjgnt.js.map} +1 -1
- package/dist/{chunk-mfs23znk.js → chunk-07kkp2e1.js} +1 -1
- package/dist/{chunk-6p49a5cq.js → chunk-098anw4f.js} +21 -19
- package/dist/chunk-098anw4f.js.map +12 -0
- package/dist/{chunk-fkgc1wt8.js → chunk-0phpbbvm.js} +3 -3
- package/dist/{chunk-ere85b8y.js → chunk-0xmt5p5y.js} +116 -27
- package/dist/chunk-0xmt5p5y.js.map +14 -0
- package/dist/{chunk-t6f3tdnr.js → chunk-16a9dmfy.js} +33 -2
- package/dist/{chunk-t6f3tdnr.js.map → chunk-16a9dmfy.js.map} +5 -4
- package/dist/{chunk-hkc3jct7.js → chunk-18sk89cg.js} +18 -10
- package/dist/chunk-18sk89cg.js.map +10 -0
- package/dist/{chunk-way52z4h.js → chunk-1t6k1avb.js} +6 -12
- package/dist/{chunk-way52z4h.js.map → chunk-1t6k1avb.js.map} +3 -4
- package/dist/chunk-2626mh4m.js +693 -0
- package/dist/chunk-2626mh4m.js.map +19 -0
- package/dist/{chunk-qczk96d9.js → chunk-2adz0h75.js} +13 -4
- package/dist/chunk-2adz0h75.js.map +11 -0
- package/dist/{chunk-3t2hgbgd.js → chunk-2fn60nvs.js} +40 -8
- package/dist/chunk-2fn60nvs.js.map +15 -0
- package/dist/{chunk-99nd4rc1.js → chunk-2gjj5dx3.js} +5 -4
- package/dist/{chunk-99nd4rc1.js.map → chunk-2gjj5dx3.js.map} +3 -3
- package/dist/chunk-3fqxbn31.js +107 -0
- package/dist/chunk-3fqxbn31.js.map +11 -0
- package/dist/{chunk-y0c4e6ex.js → chunk-3gbefjg5.js} +1 -1
- package/dist/{chunk-yzwja0mj.js → chunk-45ngkxkp.js} +52 -31
- package/dist/chunk-45ngkxkp.js.map +13 -0
- package/dist/{chunk-fa02jy15.js → chunk-48jezz3j.js} +1 -1
- package/dist/{chunk-ren4kg2j.js → chunk-4b26qwbg.js} +13 -13
- package/dist/{chunk-ren4kg2j.js.map → chunk-4b26qwbg.js.map} +1 -1
- package/dist/{chunk-9k93ah50.js → chunk-4f3ydv7t.js} +33 -69
- package/dist/chunk-4f3ydv7t.js.map +10 -0
- package/dist/chunk-4y26vs3v.js +97 -0
- package/dist/chunk-4y26vs3v.js.map +10 -0
- package/dist/{chunk-4as3wt1c.js → chunk-4ymrcdbm.js} +7 -3
- package/dist/chunk-4ymrcdbm.js.map +12 -0
- package/dist/{chunk-hcbyfxbe.js → chunk-5grk14e5.js} +76 -2
- package/dist/{chunk-hcbyfxbe.js.map → chunk-5grk14e5.js.map} +4 -3
- package/dist/chunk-5tfev0fv.js +676 -0
- package/dist/chunk-5tfev0fv.js.map +15 -0
- package/dist/chunk-65abf64x.js +13 -0
- package/dist/chunk-65abf64x.js.map +10 -0
- package/dist/{chunk-hvsb78a1.js → chunk-65pyhyas.js} +114 -107
- package/dist/chunk-65pyhyas.js.map +20 -0
- package/dist/{chunk-1sr8ryzk.js → chunk-661ezhks.js} +303 -6
- package/dist/chunk-661ezhks.js.map +11 -0
- package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
- package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
- package/dist/{chunk-c85m1hyj.js → chunk-6n69k945.js} +2 -2
- package/dist/{chunk-xfs8x8m9.js → chunk-6p0pastb.js} +5 -5
- package/dist/{chunk-rrzt8jdy.js → chunk-6rrtzea3.js} +116 -110
- package/dist/chunk-6rrtzea3.js.map +14 -0
- package/dist/{chunk-t7x8dmn0.js → chunk-6y0mkhex.js} +3 -3
- package/dist/{chunk-es1gxsbf.js → chunk-73v685wb.js} +14 -16
- package/dist/chunk-73v685wb.js.map +12 -0
- package/dist/{chunk-6c6sn0bh.js → chunk-7gr4j2eq.js} +7930 -5973
- package/dist/chunk-7gr4j2eq.js.map +120 -0
- package/dist/{chunk-hjzdd750.js → chunk-7mc2wkre.js} +391 -91
- package/dist/chunk-7mc2wkre.js.map +50 -0
- package/dist/chunk-7z5p905k.js +1660 -0
- package/dist/chunk-7z5p905k.js.map +22 -0
- package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
- package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
- package/dist/{chunk-yxd3nnqt.js → chunk-9mab3dvg.js} +26 -2
- package/dist/chunk-9mab3dvg.js.map +11 -0
- package/dist/chunk-9wr3yajk.js +42 -0
- package/dist/chunk-9wr3yajk.js.map +10 -0
- package/dist/chunk-a3faa34j.js +74 -0
- package/dist/chunk-a3faa34j.js.map +10 -0
- package/dist/chunk-az47zep4.js +41 -0
- package/dist/chunk-az47zep4.js.map +10 -0
- package/dist/{chunk-v9xd5wzd.js → chunk-bab05bhg.js} +1 -1
- package/dist/{chunk-5j58wjct.js → chunk-bktev1ds.js} +14 -11
- package/dist/{chunk-5j58wjct.js.map → chunk-bktev1ds.js.map} +3 -3
- package/dist/{chunk-b38szspf.js → chunk-c0vk1djt.js} +5 -3
- package/dist/chunk-c0vk1djt.js.map +11 -0
- package/dist/chunk-c69nj7se.js +3 -0
- package/dist/chunk-c69nj7se.js.map +9 -0
- package/dist/{chunk-0yh890a4.js → chunk-c844dkwd.js} +35 -7
- package/dist/{chunk-0yh890a4.js.map → chunk-c844dkwd.js.map} +3 -3
- package/dist/{chunk-d09tj99x.js → chunk-cdk3egjj.js} +24 -5
- package/dist/chunk-cdk3egjj.js.map +12 -0
- package/dist/chunk-cswhawa2.js +113 -0
- package/dist/chunk-cswhawa2.js.map +10 -0
- package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
- package/dist/chunk-d2m879s4.js +288 -0
- package/dist/chunk-d2m879s4.js.map +12 -0
- package/dist/chunk-d7vyc7k6.js +10 -0
- package/dist/chunk-d7vyc7k6.js.map +10 -0
- package/dist/{chunk-vyf9kfqf.js → chunk-dp0cdtj2.js} +2 -2
- package/dist/{chunk-6x0pqh32.js → chunk-e5wf5vz0.js} +3 -1
- package/dist/chunk-e5wf5vz0.js.map +10 -0
- package/dist/{chunk-bx9q3cwv.js → chunk-efmm01gj.js} +108 -1045
- package/dist/chunk-efmm01gj.js.map +18 -0
- package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
- package/dist/chunk-eptrvnby.js.map +12 -0
- package/dist/{chunk-n33z5bjw.js → chunk-ezne9wc9.js} +1762 -502
- package/dist/chunk-ezne9wc9.js.map +71 -0
- package/dist/chunk-fe8zwt8b.js +688 -0
- package/dist/chunk-fe8zwt8b.js.map +19 -0
- package/dist/chunk-ff5xkv0p.js +211 -0
- package/dist/chunk-ff5xkv0p.js.map +10 -0
- package/dist/{chunk-br3k6qbf.js → chunk-fm62y49k.js} +1 -1
- package/dist/{chunk-nq6gpjt7.js → chunk-fntqb7qy.js} +30 -4
- package/dist/{chunk-nq6gpjt7.js.map → chunk-fntqb7qy.js.map} +5 -5
- package/dist/{chunk-1zq2p6g0.js → chunk-fp2kq35z.js} +26 -10
- package/dist/{chunk-1zq2p6g0.js.map → chunk-fp2kq35z.js.map} +5 -5
- package/dist/chunk-g5bvzyyr.js +32 -0
- package/dist/chunk-g5bvzyyr.js.map +10 -0
- package/dist/{chunk-9ybhtmg4.js → chunk-g663fahq.js} +2 -2
- package/dist/{chunk-k6q3n2sc.js → chunk-gvj5cd3b.js} +29 -13
- package/dist/chunk-gvj5cd3b.js.map +12 -0
- package/dist/{chunk-yevzdx4y.js → chunk-h33shhq6.js} +10 -12
- package/dist/{chunk-yevzdx4y.js.map → chunk-h33shhq6.js.map} +3 -4
- package/dist/{chunk-vpq4shxz.js → chunk-h3pbv7n8.js} +1771 -36
- package/dist/chunk-h3pbv7n8.js.map +48 -0
- package/dist/chunk-hke9aeen.js +9 -0
- package/dist/chunk-hke9aeen.js.map +10 -0
- package/dist/chunk-hn2r7z41.js.map +1 -1
- package/dist/{chunk-pbcbn83d.js → chunk-hqsp2sx4.js} +54 -8
- package/dist/chunk-hqsp2sx4.js.map +14 -0
- package/dist/{chunk-9w055r5b.js → chunk-hwarjrgf.js} +1 -1
- package/dist/{chunk-9dmt152s.js → chunk-hyesv9dv.js} +2 -2
- package/dist/chunk-hz5d43gn.js +45 -0
- package/dist/chunk-hz5d43gn.js.map +10 -0
- package/dist/{chunk-91mg3nj9.js → chunk-j936th07.js} +86 -41
- package/dist/chunk-j936th07.js.map +12 -0
- package/dist/chunk-jcfw4h7m.js +9 -0
- package/dist/chunk-jcfw4h7m.js.map +10 -0
- package/dist/chunk-kcqpk9w1.js +75 -0
- package/dist/chunk-kcqpk9w1.js.map +10 -0
- package/dist/{chunk-x6m907x7.js → chunk-m2nevja0.js} +6 -7
- package/dist/{chunk-x6m907x7.js.map → chunk-m2nevja0.js.map} +3 -3
- package/dist/{chunk-x9v4cx1d.js → chunk-m36fw8ft.js} +1 -1
- package/dist/{chunk-a40ad1ft.js → chunk-mbsbxarb.js} +1 -1
- package/dist/chunk-mzx71snp.js +129 -0
- package/dist/chunk-mzx71snp.js.map +10 -0
- package/dist/{chunk-6aawea28.js → chunk-n8q5j6y5.js} +1 -1
- package/dist/{chunk-dk8tkk5f.js → chunk-n9zpx9c6.js} +4 -4
- package/dist/{chunk-7t429e3f.js → chunk-npcr0228.js} +1 -1
- package/dist/chunk-nydf3dbe.js +663 -0
- package/dist/chunk-nydf3dbe.js.map +13 -0
- package/dist/chunk-pdt5cw8z.js +233 -0
- package/dist/chunk-pdt5cw8z.js.map +11 -0
- package/dist/{chunk-rj69qcrd.js → chunk-pgrf64hp.js} +55 -7
- package/dist/chunk-pgrf64hp.js.map +12 -0
- package/dist/{chunk-z4m0yz8c.js → chunk-q4pmvkg0.js} +1 -1
- package/dist/chunk-qhqgp4jf.js +1418 -0
- package/dist/chunk-qhqgp4jf.js.map +22 -0
- package/dist/chunk-qx00vjrj.js +144 -0
- package/dist/chunk-qx00vjrj.js.map +13 -0
- package/dist/{chunk-5e43w60z.js → chunk-r6szek0x.js} +184 -7
- package/dist/chunk-r6szek0x.js.map +10 -0
- package/dist/{chunk-v4jbb3rs.js → chunk-rap5w0x0.js} +156 -2
- package/dist/chunk-rap5w0x0.js.map +10 -0
- package/dist/{chunk-pfp1txq2.js → chunk-sgx82nnt.js} +5 -31
- package/dist/{chunk-pfp1txq2.js.map → chunk-sgx82nnt.js.map} +3 -4
- package/dist/{chunk-bkpke1sg.js → chunk-t5608tkq.js} +3 -1
- package/dist/{chunk-bkpke1sg.js.map → chunk-t5608tkq.js.map} +3 -3
- package/dist/{chunk-29yx306f.js → chunk-tdxfsg1c.js} +507 -265
- package/dist/chunk-tdxfsg1c.js.map +23 -0
- package/dist/chunk-vabga7fk.js +176 -0
- package/dist/chunk-vabga7fk.js.map +12 -0
- package/dist/{chunk-gsjm1wms.js → chunk-vhbw5sqm.js} +33 -3
- package/dist/chunk-vhbw5sqm.js.map +10 -0
- package/dist/{chunk-tpn40322.js → chunk-vpgwq5nf.js} +104 -17
- package/dist/chunk-vpgwq5nf.js.map +21 -0
- package/dist/{chunk-0rbyz4qy.js → chunk-vyt322b6.js} +586 -171
- package/dist/{chunk-0rbyz4qy.js.map → chunk-vyt322b6.js.map} +12 -9
- package/dist/chunk-waqk73p1.js +2380 -0
- package/dist/chunk-waqk73p1.js.map +23 -0
- package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
- package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
- package/dist/chunk-wsc1brye.js +27 -0
- package/dist/chunk-wsc1brye.js.map +10 -0
- package/dist/chunk-x0v3jd47.js +124 -0
- package/dist/chunk-x0v3jd47.js.map +10 -0
- package/dist/{chunk-96yw3pwd.js → chunk-y7dbmaqh.js} +28 -2
- package/dist/chunk-y7dbmaqh.js.map +10 -0
- package/dist/{chunk-d0bqz29d.js → chunk-yc9ners4.js} +124 -19
- package/dist/{chunk-d0bqz29d.js.map → chunk-yc9ners4.js.map} +8 -8
- package/dist/{chunk-8mx7qw3y.js → chunk-zbc929zg.js} +29 -5
- package/dist/chunk-zbc929zg.js.map +13 -0
- package/dist/chunk-zrvhsq7f.js +37 -0
- package/dist/chunk-zrvhsq7f.js.map +10 -0
- package/dist/datasets/builders.d.ts +15 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/column-index.d.ts +7 -0
- package/dist/datasets/column-index.d.ts.map +1 -0
- package/dist/datasets/execution.d.ts +3 -2
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/write.js +8 -8
- package/dist/error-reporting/internal.js +4 -4
- package/dist/errors/catalog.d.ts +26 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.d.ts +1 -0
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +7 -4
- package/dist/errors/internal.js.map +1 -1
- package/dist/events/definitions.d.ts +7 -0
- package/dist/events/definitions.d.ts.map +1 -1
- package/dist/events/execution.d.ts +12 -2
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.d.ts +2 -3
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +9 -11
- package/dist/events/index.js.map +1 -1
- package/dist/events/scope.d.ts.map +1 -1
- package/dist/events/scope.js +1 -1
- package/dist/events/selectors/builder.d.ts +12 -1
- 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/types.d.ts +19 -3
- package/dist/events/selectors/types.d.ts.map +1 -1
- package/dist/events/service.d.ts +17 -2
- package/dist/events/service.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +3 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/events/types/users.d.ts +63 -0
- package/dist/events/types/users.d.ts.map +1 -0
- package/dist/events/view-conditions.d.ts +34 -0
- package/dist/events/view-conditions.d.ts.map +1 -0
- package/dist/execution/agent.d.ts +15 -0
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +72 -59
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +102 -12
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/lineage.d.ts +7 -0
- package/dist/execution/lineage.d.ts.map +1 -0
- package/dist/execution/object-reader-clearance.d.ts +41 -0
- package/dist/execution/object-reader-clearance.d.ts.map +1 -0
- package/dist/execution/object-reader-ontology.d.ts +12 -0
- package/dist/execution/object-reader-ontology.d.ts.map +1 -0
- package/dist/execution/object-reader-security.d.ts +66 -0
- package/dist/execution/object-reader-security.d.ts.map +1 -0
- package/dist/execution/object-reader-users.d.ts +20 -0
- package/dist/execution/object-reader-users.d.ts.map +1 -0
- package/dist/execution/preparation.d.ts +23 -0
- package/dist/execution/preparation.d.ts.map +1 -0
- package/dist/execution/primitive.js +70 -59
- package/dist/execution/primitive.js.map +1 -1
- package/dist/execution/request.d.ts +2 -1
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +72 -57
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/unique-lookup.d.ts +14 -0
- package/dist/execution/unique-lookup.d.ts.map +1 -0
- package/dist/execution/visible-objects.d.ts +12 -0
- package/dist/execution/visible-objects.d.ts.map +1 -0
- package/dist/http/api-routes.d.ts +17 -0
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +49 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +168 -142
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -3
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +21 -13
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/lineage.d.ts +94 -0
- package/dist/lake-storage/lineage.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +45 -0
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +55 -1
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +14 -3
- package/dist/lake-storage/version-inputs.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materialization/errors.d.ts +25 -0
- package/dist/materialization/errors.d.ts.map +1 -1
- package/dist/materialization/event-envelopes.d.ts +5 -0
- package/dist/materialization/event-envelopes.d.ts.map +1 -1
- package/dist/materialization/index.d.ts +1 -1
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +14 -8
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/model.d.ts +20 -2
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/edits/commit.d.ts.map +1 -1
- package/dist/materializer/edits/load-state.d.ts +5 -1
- package/dist/materializer/edits/load-state.d.ts.map +1 -1
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/edits/unique-values.d.ts +47 -0
- package/dist/materializer/edits/unique-values.d.ts.map +1 -0
- package/dist/materializer/edits/working-state.d.ts +6 -1
- package/dist/materializer/edits/working-state.d.ts.map +1 -1
- package/dist/materializer/execution/work-records.d.ts +7 -1
- package/dist/materializer/execution/work-records.d.ts.map +1 -1
- package/dist/materializer/index.js +51 -46
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/projections/source-materialization.d.ts +1 -0
- package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/materializer/shared/projection-run.d.ts +0 -1
- package/dist/materializer/shared/projection-run.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts.map +1 -1
- package/dist/models/audio/catalog.d.ts +13 -1
- package/dist/models/audio/catalog.d.ts.map +1 -1
- package/dist/models/audio/errors.d.ts +6 -1
- package/dist/models/audio/errors.d.ts.map +1 -1
- package/dist/models/audio/runtime.d.ts.map +1 -1
- package/dist/models/audio/speech.d.ts +8 -0
- package/dist/models/audio/speech.d.ts.map +1 -0
- package/dist/models/audio/types.d.ts +93 -0
- package/dist/models/audio/types.d.ts.map +1 -1
- package/dist/models/calls.d.ts +27 -0
- package/dist/models/calls.d.ts.map +1 -0
- package/dist/models/catalog-index.d.ts +7 -4
- package/dist/models/catalog-index.d.ts.map +1 -1
- package/dist/models/catalog.d.ts +55 -3
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/decision/runtime.d.ts +6 -1
- package/dist/models/decision/runtime.d.ts.map +1 -1
- package/dist/models/decision/validation.d.ts +4 -1
- package/dist/models/decision/validation.d.ts.map +1 -1
- package/dist/models/definitions.d.ts +23 -1
- package/dist/models/definitions.d.ts.map +1 -1
- package/dist/models/events.d.ts +12 -1
- package/dist/models/events.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +3 -1
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/index.d.ts +1 -0
- package/dist/models/execution/index.d.ts.map +1 -1
- package/dist/models/execution/index.js +50 -39
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-accounting.d.ts.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +3 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution/usage.d.ts.map +1 -1
- package/dist/models/execution.d.ts +4 -2
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/generation-types.d.ts +8 -1
- package/dist/models/generation-types.d.ts.map +1 -1
- package/dist/models/image/catalog.d.ts +13 -0
- package/dist/models/image/catalog.d.ts.map +1 -0
- package/dist/models/image/errors.d.ts +8 -0
- package/dist/models/image/errors.d.ts.map +1 -0
- package/dist/models/image/runtime.d.ts +8 -0
- package/dist/models/image/runtime.d.ts.map +1 -0
- package/dist/models/image/types.d.ts +103 -0
- package/dist/models/image/types.d.ts.map +1 -0
- package/dist/models/index.d.ts +12 -8
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +17 -7
- package/dist/models/index.js.map +1 -1
- package/dist/models/input-file.d.ts +9 -0
- package/dist/models/input-file.d.ts.map +1 -0
- package/dist/models/language-model.d.ts +13 -0
- package/dist/models/language-model.d.ts.map +1 -1
- package/dist/models/pricing.d.ts +25 -10
- package/dist/models/pricing.d.ts.map +1 -1
- package/dist/models/rate-card.d.ts +44 -6
- package/dist/models/rate-card.d.ts.map +1 -1
- package/dist/objects/clearance-redaction.d.ts +27 -0
- package/dist/objects/clearance-redaction.d.ts.map +1 -0
- package/dist/objects/conditional-writes.d.ts +37 -0
- package/dist/objects/conditional-writes.d.ts.map +1 -0
- package/dist/objects/execution.d.ts +2 -0
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.d.ts +1 -0
- package/dist/objects/index.d.ts.map +1 -1
- package/dist/objects/index.js +77 -60
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +11 -5
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/link/endpoints.d.ts +21 -2
- package/dist/objects/link/endpoints.d.ts.map +1 -1
- package/dist/objects/link/remove.d.ts.map +1 -1
- package/dist/objects/link/upsert-batch.d.ts.map +1 -1
- package/dist/objects/link/upsert.d.ts.map +1 -1
- package/dist/objects/materializer-adapter.d.ts +13 -4
- package/dist/objects/materializer-adapter.d.ts.map +1 -1
- package/dist/objects/object/delete.d.ts +3 -0
- package/dist/objects/object/delete.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 +47 -24
- package/dist/objects/property-clearance.d.ts.map +1 -1
- package/dist/objects/query/clearance-admission.d.ts +10 -0
- package/dist/objects/query/clearance-admission.d.ts.map +1 -0
- package/dist/objects/query/current-user.d.ts +17 -0
- package/dist/objects/query/current-user.d.ts.map +1 -0
- package/dist/objects/query/executor.d.ts +14 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.d.ts +2 -2
- package/dist/objects/query/index.d.ts.map +1 -1
- package/dist/objects/query/index.js +55 -49
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +19 -1
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/link-query-clearance.d.ts +21 -0
- package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
- package/dist/objects/query/matches-predicate.d.ts +9 -0
- package/dist/objects/query/matches-predicate.d.ts.map +1 -0
- package/dist/objects/query/normalize.d.ts.map +1 -1
- package/dist/objects/query/user-expansions.d.ts +27 -0
- package/dist/objects/query/user-expansions.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/runtime-batch.d.ts +3 -1
- package/dist/objects/runtime-batch.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-executor.d.ts +6 -0
- package/dist/objects/sdk/query-executor.d.ts.map +1 -1
- package/dist/objects/serialize.d.ts +39 -0
- package/dist/objects/serialize.d.ts.map +1 -0
- package/dist/objects/unique-violation.d.ts +22 -0
- package/dist/objects/unique-violation.d.ts.map +1 -0
- package/dist/ontology/builders.d.ts +3 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +1 -1
- package/dist/ontology/docs-markdown.d.ts.map +1 -1
- package/dist/ontology/index.d.ts +2 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +13 -9
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/internal.js +9 -7
- package/dist/ontology/internal.js.map +3 -3
- package/dist/ontology/json-schema.d.ts.map +1 -1
- package/dist/ontology/primitives.d.ts +3 -0
- package/dist/ontology/primitives.d.ts.map +1 -1
- package/dist/ontology/registry.d.ts +6 -0
- package/dist/ontology/registry.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +9 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/unique-values.d.ts +26 -0
- package/dist/ontology/unique-values.d.ts.map +1 -0
- package/dist/ontology/user-ref.d.ts +23 -0
- package/dist/ontology/user-ref.d.ts.map +1 -1
- package/dist/ontology/validation/properties.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.d.ts +2 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +61 -46
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/lineage.d.ts +17 -0
- package/dist/pipelines/lineage.d.ts.map +1 -0
- package/dist/projections/internal.d.ts +2 -2
- package/dist/projections/internal.js +42 -38
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/registry.d.ts +4 -0
- package/dist/projections/registry.d.ts.map +1 -1
- package/dist/projections/revision.d.ts +15 -0
- package/dist/projections/revision.d.ts.map +1 -1
- package/dist/projections/run-dispatch.d.ts.map +1 -1
- package/dist/projections/types.d.ts +2 -0
- package/dist/projections/types.d.ts.map +1 -1
- package/dist/query.d.ts +4 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/rules/execution.d.ts.map +1 -1
- package/dist/runtime/ai-cost.d.ts +2 -0
- package/dist/runtime/ai-cost.d.ts.map +1 -1
- package/dist/runtime/ai-usage.d.ts +7 -0
- package/dist/runtime/ai-usage.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +3 -0
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +6 -0
- 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.d.ts +2 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +58 -50
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/ontology-mutations.d.ts +2 -0
- package/dist/runtime/ontology-mutations.d.ts.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +10 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +66 -8
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/auth.d.ts +16 -0
- package/dist/sandboxes/auth.d.ts.map +1 -1
- package/dist/sandboxes/config.d.ts.map +1 -1
- package/dist/sandboxes/configuration.d.ts +26 -0
- package/dist/sandboxes/configuration.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +1 -1
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +15 -13
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +28 -5
- package/dist/sandboxes/sandbox.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.map +1 -1
- package/dist/security/applied-markings-contribution.d.ts +58 -0
- package/dist/security/applied-markings-contribution.d.ts.map +1 -0
- package/dist/security/applied-markings-host.d.ts +10 -0
- package/dist/security/applied-markings-host.d.ts.map +1 -0
- package/dist/security/applied-markings-snapshot.d.ts +67 -0
- package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
- package/dist/security/applied-markings.d.ts +73 -0
- package/dist/security/applied-markings.d.ts.map +1 -0
- package/dist/security/dataset-version-markings.d.ts +47 -0
- package/dist/security/dataset-version-markings.d.ts.map +1 -0
- package/dist/security/grants.d.ts +13 -4
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +2 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/internal.d.ts +15 -0
- package/dist/security/internal.d.ts.map +1 -0
- package/dist/security/internal.js +135 -0
- package/dist/security/internal.js.map +10 -0
- package/dist/security/marking-propagation.d.ts +62 -0
- package/dist/security/marking-propagation.d.ts.map +1 -0
- package/dist/security/marking-sets.d.ts +14 -0
- package/dist/security/marking-sets.d.ts.map +1 -0
- package/dist/security/markings.d.ts +6 -3
- package/dist/security/markings.d.ts.map +1 -1
- package/dist/security/pipeline-markings.d.ts +20 -0
- package/dist/security/pipeline-markings.d.ts.map +1 -0
- package/dist/security/project.d.ts +7 -0
- package/dist/security/project.d.ts.map +1 -0
- package/dist/security/projection-markings.d.ts +71 -0
- package/dist/security/projection-markings.d.ts.map +1 -0
- package/dist/security/public.js +2 -2
- package/dist/security/redactions.d.ts +4 -1
- package/dist/security/redactions.d.ts.map +1 -1
- package/dist/security/registry.d.ts +6 -0
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +64 -6
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/security/view-conditions.d.ts +37 -0
- package/dist/security/view-conditions.d.ts.map +1 -0
- package/dist/shares/execution.d.ts.map +1 -1
- package/dist/shares/internal.js +40 -36
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +3 -3
- package/dist/storage/action-runs/in-memory.d.ts +4 -0
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/action-runs/types.d.ts +9 -1
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/activity/in-memory.d.ts +55 -0
- package/dist/storage/activity/in-memory.d.ts.map +1 -0
- package/dist/storage/activity/index.d.ts +3 -0
- package/dist/storage/activity/index.d.ts.map +1 -0
- package/dist/storage/activity/policy.d.ts +96 -0
- package/dist/storage/activity/policy.d.ts.map +1 -0
- package/dist/storage/activity/types.d.ts +191 -0
- package/dist/storage/activity/types.d.ts.map +1 -0
- package/dist/storage/agents/errors.d.ts +3 -1
- package/dist/storage/agents/errors.d.ts.map +1 -1
- package/dist/storage/agents/in-memory.d.ts +124 -3
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/index.d.ts +2 -2
- package/dist/storage/agents/index.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts +154 -4
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +60 -8
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +573 -20
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/analytics.d.ts +10 -1
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
- package/dist/storage/ai-cost/groups.d.ts +9 -0
- package/dist/storage/ai-cost/groups.d.ts.map +1 -1
- package/dist/storage/ai-cost/index.d.ts +1 -1
- package/dist/storage/ai-cost/index.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.d.ts +2 -1
- package/dist/storage/ai-cost/provider.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +11 -5
- package/dist/storage/ai-cost/provider.js.map +1 -1
- package/dist/storage/ai-cost/types.d.ts +14 -2
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/validation.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +6 -5
- package/dist/storage/ai-limits/enforcement.js.map +1 -1
- package/dist/storage/ai-limits/provider.d.ts +1 -1
- package/dist/storage/ai-limits/provider.d.ts.map +1 -1
- package/dist/storage/ai-limits/provider.js +3 -2
- package/dist/storage/ai-limits/provider.js.map +1 -1
- package/dist/storage/ai-usage/in-memory.d.ts +5 -1
- package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
- package/dist/storage/ai-usage/index.d.ts +2 -2
- package/dist/storage/ai-usage/index.d.ts.map +1 -1
- package/dist/storage/ai-usage/record.d.ts +5 -1
- package/dist/storage/ai-usage/record.d.ts.map +1 -1
- package/dist/storage/ai-usage/types.d.ts +33 -0
- package/dist/storage/ai-usage/types.d.ts.map +1 -1
- package/dist/storage/ai-usage/usage.d.ts +2 -0
- package/dist/storage/ai-usage/usage.d.ts.map +1 -1
- package/dist/storage/artifacts/errors.d.ts +18 -0
- package/dist/storage/artifacts/errors.d.ts.map +1 -0
- package/dist/storage/artifacts/in-memory.d.ts +55 -0
- package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
- package/dist/storage/artifacts/index.d.ts +5 -0
- package/dist/storage/artifacts/index.d.ts.map +1 -0
- package/dist/storage/artifacts/record.d.ts +34 -0
- package/dist/storage/artifacts/record.d.ts.map +1 -0
- package/dist/storage/artifacts/types.d.ts +263 -0
- package/dist/storage/artifacts/types.d.ts.map +1 -0
- package/dist/storage/auth/in-memory/auth-storage.d.ts +3 -2
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +2 -1
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/users.d.ts +7 -3
- package/dist/storage/auth/in-memory/users.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +1 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +59 -9
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +2 -2
- package/dist/storage/executions/in-memory.d.ts +3 -1
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/index.d.ts +1 -1
- package/dist/storage/executions/index.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +2 -0
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +9 -223
- package/dist/storage/executions/provider.js.map +3 -4
- package/dist/storage/executions/types.d.ts +46 -0
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.js +17 -14
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/in-memory/index.d.ts +8 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +15 -11
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +78 -66
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +4 -1
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +80 -19
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/migrations/migrate-storage.d.ts +4 -1
- package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
- package/dist/storage/migrations/prepare-unique-properties.d.ts +18 -0
- package/dist/storage/migrations/prepare-unique-properties.d.ts.map +1 -0
- package/dist/storage/objects/guard.d.ts +1 -1
- package/dist/storage/objects/guard.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/conditional-reader.d.ts +5 -0
- package/dist/storage/objects/in-memory/conditional-reader.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/read-scope.d.ts +3 -9
- package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/read-source.d.ts +10 -1
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/scoped-reader.d.ts +14 -0
- package/dist/storage/objects/in-memory/scoped-reader.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/storage.d.ts +36 -1
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
- package/dist/storage/objects/index.d.ts +2 -2
- package/dist/storage/objects/index.d.ts.map +1 -1
- package/dist/storage/objects/read-scope.d.ts +9 -1
- package/dist/storage/objects/read-scope.d.ts.map +1 -1
- package/dist/storage/objects/types.d.ts +64 -1
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/index.d.ts +2 -0
- package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +1 -0
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/unique-values.d.ts +32 -0
- package/dist/storage/ontology/in-memory/unique-values.d.ts.map +1 -0
- package/dist/storage/ontology/index.d.ts +5 -2
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/materializations.d.ts +34 -1
- package/dist/storage/ontology/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/provider-work.d.ts +15 -2
- package/dist/storage/ontology/provider-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +1 -1
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +9 -4
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/ontology/sources.d.ts +15 -0
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/ontology/unique-values.d.ts +54 -0
- package/dist/storage/ontology/unique-values.d.ts.map +1 -0
- package/dist/storage/operation-scope.d.ts +1 -1
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/in-memory.d.ts +0 -6
- package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/projection-runs/provider.js +3 -3
- package/dist/storage/share-grants/in-memory.d.ts +2 -1
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
- package/dist/storage/share-grants/index.d.ts +1 -1
- package/dist/storage/share-grants/index.d.ts.map +1 -1
- package/dist/storage/share-grants/provider.js +4 -3
- package/dist/storage/share-grants/provider.js.map +1 -1
- package/dist/storage/share-grants/types.d.ts +6 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -1
- package/dist/storage/types.d.ts +6 -2
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
- package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +18 -14
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/types.d.ts +5 -0
- package/dist/storage/workflow-runs/types.d.ts.map +1 -1
- package/dist/syncs/index.js +49 -45
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/activity-storage-contract.d.ts +14 -0
- package/dist/testing/activity-storage-contract.d.ts.map +1 -0
- package/dist/testing/agent-approval-storage-contract.d.ts +17 -0
- package/dist/testing/agent-approval-storage-contract.d.ts.map +1 -0
- package/dist/testing/agent-memory-storage-contract.d.ts +12 -0
- package/dist/testing/agent-memory-storage-contract.d.ts.map +1 -0
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-limit-storage-contract.d.ts +0 -1
- package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -1
- package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
- package/dist/testing/artifact-storage-contract.d.ts +13 -0
- package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
- package/dist/testing/auth-storage-contract.d.ts +13 -0
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/broker-contract.d.ts +5 -0
- package/dist/testing/broker-contract.d.ts.map +1 -1
- package/dist/testing/effective-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +11 -5
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +9340 -3794
- package/dist/testing/index.js.map +32 -26
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts +2 -0
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-conditional-read-scope-contract.d.ts +11 -0
- package/dist/testing/object-conditional-read-scope-contract.d.ts.map +1 -0
- package/dist/testing/object-query-contract.d.ts +0 -2
- package/dist/testing/object-query-contract.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts +5 -0
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/testing/sandboxes-contract.d.ts.map +1 -1
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
- package/dist/testing/share-session-storage-contract.d.ts.map +1 -1
- package/dist/testing/unique-values-contract.d.ts +21 -0
- package/dist/testing/unique-values-contract.d.ts.map +1 -0
- package/dist/testing/webhook-execution.d.ts +0 -8
- package/dist/testing/webhook-execution.d.ts.map +1 -1
- package/dist/testing/webhook-run-storage-contract.d.ts.map +1 -1
- package/dist/users/execution.d.ts +40 -0
- package/dist/users/execution.d.ts.map +1 -0
- package/dist/users/index.d.ts +3 -0
- package/dist/users/index.d.ts.map +1 -0
- package/dist/webhooks/internal.js +42 -38
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +5 -7
- package/dist/workers/index.js.map +4 -4
- package/dist/workers/queue-worker.d.ts +0 -2
- package/dist/workers/queue-worker.d.ts.map +1 -1
- package/dist/workers/worker.d.ts +0 -2
- package/dist/workers/worker.d.ts.map +1 -1
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +76 -66
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts +12 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +15 -2
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +7 -0
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +25 -1
- package/src/actions/commit-edits.ts +6 -1
- package/src/actions/execution.ts +55 -23
- package/src/actions/read-facade.ts +33 -0
- package/src/actions/request.ts +234 -66
- package/src/actions/run/context.ts +47 -1
- package/src/actions/run/execute.ts +13 -6
- package/src/actions/run/executor.ts +11 -2
- package/src/actions/run/normalize.ts +12 -2
- package/src/actions/run/phases.ts +2 -0
- package/src/actions/run/run-action.ts +12 -3
- package/src/actions/run/signals.ts +3 -9
- package/src/actions/run/types.ts +17 -1
- package/src/actions/run-authorization.ts +95 -0
- package/src/actions/types/context.ts +20 -3
- package/src/actions/validators.ts +19 -8
- package/src/activity/README.md +158 -0
- package/src/activity/connection.ts +217 -0
- package/src/activity/device.ts +41 -0
- package/src/activity/execution.ts +210 -0
- package/src/activity/service.ts +274 -0
- package/src/activity/shares.ts +62 -0
- package/src/activity/timeline.ts +385 -0
- package/src/agents/accounting.ts +59 -0
- package/src/agents/adapters.ts +10 -0
- package/src/agents/agent-mail.ts +29 -0
- package/src/agents/api-gateway.ts +14 -3
- package/src/agents/approval-continuation.ts +48 -0
- package/src/agents/approval-executor.ts +318 -0
- package/src/agents/approval-outcome.ts +59 -0
- package/src/agents/approvals.ts +566 -0
- package/src/agents/authority.ts +24 -1
- package/src/agents/builders.ts +5 -3
- package/src/agents/cancel.ts +103 -0
- package/src/agents/child-question.ts +46 -0
- package/src/agents/children.ts +404 -0
- package/src/agents/context-compaction.ts +12 -0
- package/src/agents/errors.ts +31 -0
- package/src/agents/execution.ts +788 -90
- package/src/agents/fork.ts +158 -0
- package/src/agents/ids.ts +18 -6
- package/src/agents/index.ts +63 -3
- package/src/agents/memory-execution.ts +186 -0
- package/src/agents/memory.ts +178 -0
- package/src/agents/message.ts +57 -0
- package/src/agents/model-loop.ts +93 -6
- package/src/agents/model-routing.ts +193 -0
- package/src/agents/participants.ts +213 -0
- package/src/agents/reference.ts +2 -0
- package/src/agents/request.ts +398 -64
- package/src/agents/run-scope.ts +134 -0
- package/src/agents/skills.ts +6 -0
- package/src/agents/streams/index.ts +5 -0
- package/src/agents/streams/internal.ts +1 -0
- package/src/agents/streams/protocol.ts +385 -7
- package/src/agents/subagent-runs.ts +41 -0
- package/src/agents/thread-access.ts +137 -0
- package/src/agents/tool-definition.ts +5 -3
- package/src/agents/types.ts +43 -18
- package/src/agents/validation.ts +4 -0
- package/src/artifacts/access.ts +125 -0
- package/src/artifacts/address.ts +132 -0
- package/src/artifacts/canvas.ts +369 -0
- package/src/artifacts/csv.ts +118 -0
- package/src/artifacts/errors.ts +32 -0
- package/src/artifacts/execution.ts +553 -0
- package/src/artifacts/formula/check.ts +171 -0
- package/src/artifacts/formula/evaluate.ts +288 -0
- package/src/artifacts/formula/index.ts +199 -0
- package/src/artifacts/formula/parser.ts +357 -0
- package/src/artifacts/frames/assets.ts +104 -0
- package/src/artifacts/frames/entries.ts +35 -0
- package/src/artifacts/frames/grants.ts +125 -0
- package/src/artifacts/frames/index.ts +21 -0
- package/src/artifacts/frames/kit.ts +569 -0
- package/src/artifacts/frames/probe.ts +357 -0
- package/src/artifacts/frames/protocol.ts +328 -0
- package/src/artifacts/frames/runtime.ts +458 -0
- package/src/artifacts/html.ts +25 -0
- package/src/artifacts/ids.ts +18 -0
- package/src/artifacts/index.ts +125 -0
- package/src/artifacts/kinds.ts +8 -0
- package/src/artifacts/limits.ts +58 -0
- package/src/artifacts/live-sheet.ts +345 -0
- package/src/artifacts/outline.ts +95 -0
- package/src/artifacts/publish/files.ts +87 -0
- package/src/artifacts/publish/index.ts +14 -0
- package/src/artifacts/publish/publish.ts +336 -0
- package/src/artifacts/publish/queries.ts +336 -0
- package/src/artifacts/publish/references.ts +135 -0
- package/src/artifacts/publish/validate/canvas.ts +118 -0
- package/src/artifacts/publish/validate/document.ts +114 -0
- package/src/artifacts/publish/validate/file.ts +19 -0
- package/src/artifacts/publish/validate/html.ts +78 -0
- package/src/artifacts/publish/validate/page.ts +65 -0
- package/src/artifacts/publish/validate/sheet.ts +297 -0
- package/src/artifacts/publish/validate/slides.ts +82 -0
- package/src/artifacts/queries.ts +512 -0
- package/src/artifacts/references.ts +11 -0
- package/src/artifacts/resolve.ts +112 -0
- package/src/artifacts/run-query.ts +212 -0
- package/src/artifacts/serialize-query.ts +25 -0
- package/src/artifacts/sheet-rules.ts +180 -0
- package/src/artifacts/theme.ts +116 -0
- package/src/artifacts/tones.ts +20 -0
- package/src/artifacts/warnings.ts +10 -0
- package/src/artifacts/workbook.ts +674 -0
- package/src/auth/index.ts +4 -0
- package/src/auth/member-events.ts +114 -0
- package/src/auth/profile.ts +118 -0
- package/src/auth/runtime.ts +190 -9
- package/src/auth/strategy.ts +3 -0
- package/src/auth/types.ts +32 -0
- package/src/authorization/decision.ts +52 -0
- package/src/authorization/event-visibility.ts +17 -16
- package/src/authorization/grant-kinds.ts +46 -2
- package/src/authorization/index.ts +6 -1
- package/src/authorization/resolve.ts +58 -1
- package/src/authorization/run-visibility.ts +8 -1
- package/src/authorization/types.ts +14 -0
- package/src/blob-storage/internal.ts +1 -1
- package/src/blob-storage/media-type.ts +69 -0
- package/src/datasets/builders.ts +66 -2
- package/src/datasets/column-index.ts +19 -0
- package/src/datasets/execution.ts +23 -9
- package/src/errors/catalog.ts +26 -1
- package/src/errors/internal.ts +18 -8
- package/src/events/definitions.ts +26 -0
- package/src/events/execution.ts +171 -21
- package/src/events/index.ts +10 -1
- package/src/events/scope.ts +2 -0
- package/src/events/selectors/builder.ts +50 -0
- package/src/events/selectors/index.ts +4 -0
- package/src/events/selectors/types.ts +32 -1
- package/src/events/service.ts +55 -2
- package/src/events/types/index.ts +10 -0
- package/src/events/types/users.ts +73 -0
- package/src/events/view-conditions.ts +241 -0
- package/src/execution/agent.ts +25 -0
- package/src/execution/authorization.ts +70 -0
- package/src/execution/authorized-object-reader.ts +486 -266
- package/src/execution/lineage.ts +14 -0
- package/src/execution/object-reader-clearance.ts +91 -0
- package/src/execution/object-reader-ontology.ts +60 -0
- package/src/execution/object-reader-security.ts +270 -0
- package/src/execution/object-reader-users.ts +122 -0
- package/src/execution/preparation.ts +78 -0
- package/src/execution/request.ts +2 -0
- package/src/execution/unique-lookup.ts +55 -0
- package/src/execution/visible-objects.ts +26 -0
- package/src/http/api-routes.ts +331 -7
- package/src/index.ts +169 -4
- package/src/lake-storage/in-memory.ts +26 -3
- package/src/lake-storage/index.ts +13 -1
- package/src/lake-storage/lineage.ts +385 -0
- package/src/lake-storage/sql-transforms.ts +45 -0
- package/src/lake-storage/types.ts +59 -1
- package/src/lake-storage/version-inputs.ts +35 -6
- package/src/maintenance/ontology-maintenance.ts +15 -0
- package/src/materialization/errors.ts +37 -0
- package/src/materialization/event-envelopes.ts +11 -3
- package/src/materialization/index.ts +1 -0
- package/src/materialization/model.ts +24 -4
- package/src/materializer/README.md +7 -1
- package/src/materializer/edits/commit.ts +56 -12
- package/src/materializer/edits/load-state.ts +15 -7
- package/src/materializer/edits/operations.ts +12 -0
- package/src/materializer/edits/plan.ts +2 -0
- package/src/materializer/edits/unique-values.ts +255 -0
- package/src/materializer/edits/working-state.ts +8 -1
- package/src/materializer/execution/work-records.ts +47 -0
- package/src/materializer/projections/finish-run.ts +0 -1
- package/src/materializer/projections/replace.ts +1 -1
- package/src/materializer/projections/replacement-plan.ts +4 -1
- package/src/materializer/projections/source-materialization.ts +2 -1
- package/src/materializer/shared/normalize.ts +37 -6
- package/src/materializer/shared/projection-run.ts +1 -2
- package/src/materializer/telemetry/append.ts +14 -17
- package/src/materializer/telemetry/plan.ts +2 -0
- package/src/models/audio/catalog.ts +89 -10
- package/src/models/audio/errors.ts +18 -1
- package/src/models/audio/runtime.ts +10 -13
- package/src/models/audio/speech.ts +261 -0
- package/src/models/audio/types.ts +97 -0
- package/src/models/calls.ts +100 -0
- package/src/models/catalog-index.ts +21 -2
- package/src/models/catalog.ts +211 -35
- package/src/models/decision/runtime.ts +21 -22
- package/src/models/decision/validation.ts +4 -1
- package/src/models/definitions.ts +57 -8
- package/src/models/events.ts +72 -1
- package/src/models/execution/README.md +34 -5
- package/src/models/execution/binding.ts +3 -1
- package/src/models/execution/embedding.ts +1 -0
- package/src/models/execution/index.ts +5 -0
- package/src/models/execution/model-call-accounting.ts +3 -1
- package/src/models/execution/model-call-recorder.ts +29 -1
- package/src/models/execution/usage.ts +8 -0
- package/src/models/execution.ts +20 -22
- package/src/models/generation-types.ts +8 -1
- package/src/models/image/catalog.ts +89 -0
- package/src/models/image/errors.ts +19 -0
- package/src/models/image/runtime.ts +335 -0
- package/src/models/image/types.ts +111 -0
- package/src/models/index.ts +38 -4
- package/src/models/{audio/file.ts → input-file.ts} +22 -13
- package/src/models/language-model.ts +13 -0
- package/src/models/pricing.ts +263 -42
- package/src/models/rate-card.ts +161 -12
- package/src/objects/authorized-ontology-view.ts +1 -0
- package/src/objects/clearance-redaction.ts +138 -0
- package/src/objects/conditional-writes.ts +109 -0
- package/src/objects/execution.ts +4 -0
- package/src/objects/index.ts +8 -0
- package/src/objects/link/authorization.ts +37 -8
- package/src/objects/link/endpoints.ts +42 -11
- package/src/objects/link/remove.ts +27 -12
- package/src/objects/link/upsert-batch.ts +9 -5
- package/src/objects/link/upsert.ts +20 -14
- package/src/objects/materializer-adapter.ts +55 -18
- package/src/objects/object/delete.ts +26 -7
- package/src/objects/object/upsert-batch.ts +46 -18
- package/src/objects/object/upsert.ts +25 -8
- package/src/objects/property-clearance.ts +171 -152
- package/src/objects/query/clearance-admission.ts +112 -0
- package/src/objects/query/current-user.ts +76 -0
- package/src/objects/query/executor.ts +39 -103
- package/src/objects/query/explain.ts +20 -7
- package/src/objects/query/index.ts +2 -0
- package/src/objects/query/ir.ts +20 -0
- package/src/objects/query/link-query-clearance.ts +73 -0
- package/src/objects/query/links.ts +8 -0
- package/src/objects/query/matches-predicate.ts +108 -0
- package/src/objects/query/normalize.ts +50 -19
- package/src/objects/query/scalar-values.ts +19 -3
- package/src/objects/query/user-expansions.ts +65 -0
- package/src/objects/query/validate.ts +248 -10
- package/src/objects/runtime-batch.ts +8 -2
- package/src/objects/sdk/object-set.ts +12 -1
- package/src/objects/sdk/query-builder.ts +39 -8
- package/src/objects/sdk/query-executor.ts +6 -0
- package/src/objects/serialize.ts +79 -0
- package/src/objects/unique-violation.ts +59 -0
- package/src/objects/vectors/handle.ts +3 -3
- package/src/ontology/builders.ts +15 -1
- package/src/ontology/docs-markdown.ts +2 -1
- package/src/ontology/index.ts +2 -2
- package/src/ontology/json-schema.ts +4 -0
- package/src/ontology/primitives.ts +21 -8
- package/src/ontology/registry.ts +16 -0
- package/src/ontology/types.ts +9 -0
- package/src/ontology/unique-values.ts +84 -0
- package/src/ontology/user-ref.ts +39 -0
- package/src/ontology/validation/properties.ts +43 -0
- package/src/ontology/validation/schema.ts +9 -1
- package/src/pipelines/index.ts +2 -0
- package/src/pipelines/lineage.ts +45 -0
- package/src/projections/internal.ts +2 -2
- package/src/projections/registry.ts +16 -10
- package/src/projections/revision.ts +112 -45
- package/src/projections/run-dispatch.ts +38 -25
- package/src/projections/types.ts +2 -0
- package/src/query.ts +5 -0
- package/src/rules/execution.ts +43 -11
- package/src/runtime/ai-cost.ts +30 -0
- package/src/runtime/ai-usage.ts +32 -1
- package/src/runtime/create.ts +4 -0
- package/src/runtime/host.ts +73 -1
- package/src/runtime/index.ts +2 -0
- package/src/runtime/internal.ts +2 -0
- package/src/runtime/ontology-mutations.ts +19 -4
- package/src/runtime/resolve-definitions.ts +69 -3
- package/src/runtime/sixb.ts +53 -9
- package/src/runtime/types.ts +99 -9
- package/src/sandboxes/README.md +29 -7
- package/src/sandboxes/auth.ts +16 -0
- package/src/sandboxes/config.ts +2 -7
- package/src/sandboxes/configuration.ts +61 -7
- package/src/sandboxes/index.ts +1 -0
- package/src/sandboxes/sandbox.ts +27 -5
- package/src/schedules/builders.ts +3 -1
- package/src/schedules/runtime.ts +6 -0
- package/src/schedules/validation.ts +23 -1
- package/src/security/README.md +62 -0
- package/src/security/applied-markings-contribution.ts +277 -0
- package/src/security/applied-markings-host.ts +41 -0
- package/src/security/applied-markings-snapshot.ts +235 -0
- package/src/security/applied-markings.ts +405 -0
- package/src/security/dataset-version-markings.ts +163 -0
- package/src/security/grants.ts +191 -11
- package/src/security/index.ts +5 -0
- package/src/security/internal.ts +18 -0
- package/src/security/marking-propagation.ts +255 -0
- package/src/security/marking-sets.ts +42 -0
- package/src/security/markings.ts +29 -178
- package/src/security/pipeline-markings.ts +175 -0
- package/src/security/project.ts +13 -0
- package/src/security/projection-markings.ts +421 -0
- package/src/security/redactions.ts +7 -2
- package/src/security/registry.ts +32 -7
- package/src/security/types.ts +68 -5
- package/src/security/validation.ts +34 -11
- package/src/security/view-conditions.ts +215 -0
- package/src/shares/execution.ts +43 -10
- package/src/storage/action-runs/in-memory.ts +18 -0
- package/src/storage/action-runs/types.ts +10 -0
- package/src/storage/activity/in-memory.ts +374 -0
- package/src/storage/activity/index.ts +27 -0
- package/src/storage/activity/policy.ts +430 -0
- package/src/storage/activity/types.ts +211 -0
- package/src/storage/agents/errors.ts +3 -0
- package/src/storage/agents/in-memory.ts +789 -32
- package/src/storage/agents/index.ts +42 -0
- package/src/storage/agents/provider.ts +730 -16
- package/src/storage/agents/types.ts +628 -27
- package/src/storage/ai-cost/analytics.ts +60 -7
- package/src/storage/ai-cost/codec.ts +6 -1
- package/src/storage/ai-cost/groups.ts +44 -1
- package/src/storage/ai-cost/index.ts +1 -0
- package/src/storage/ai-cost/provider.ts +2 -0
- package/src/storage/ai-cost/types.ts +18 -1
- package/src/storage/ai-cost/validation.ts +39 -12
- package/src/storage/ai-limits/provider.ts +4 -7
- package/src/storage/ai-usage/in-memory.ts +28 -1
- package/src/storage/ai-usage/index.ts +9 -1
- package/src/storage/ai-usage/record.ts +44 -7
- package/src/storage/ai-usage/types.ts +38 -0
- package/src/storage/ai-usage/usage.ts +15 -1
- package/src/storage/artifacts/errors.ts +28 -0
- package/src/storage/artifacts/in-memory.ts +388 -0
- package/src/storage/artifacts/index.ts +35 -0
- package/src/storage/artifacts/record.ts +260 -0
- package/src/storage/artifacts/types.ts +293 -0
- package/src/storage/auth/in-memory/auth-storage.ts +27 -2
- package/src/storage/auth/in-memory/sessions.ts +21 -0
- package/src/storage/auth/in-memory/users.ts +40 -6
- package/src/storage/auth/index.ts +3 -0
- package/src/storage/auth/types.ts +61 -7
- package/src/storage/executions/in-memory.ts +93 -1
- package/src/storage/executions/index.ts +5 -0
- package/src/storage/executions/provider.ts +12 -0
- package/src/storage/executions/types.ts +47 -0
- package/src/storage/in-memory/index.ts +16 -0
- package/src/storage/index.ts +132 -1
- package/src/storage/internal.ts +39 -1
- package/src/storage/migrations/migrate-storage.ts +8 -1
- package/src/storage/migrations/prepare-unique-properties.ts +161 -0
- package/src/storage/objects/guard.ts +7 -3
- package/src/storage/objects/in-memory/conditional-reader.ts +72 -0
- package/src/storage/objects/in-memory/query.ts +4 -105
- package/src/storage/objects/in-memory/read-scope.ts +15 -14
- package/src/storage/objects/in-memory/read-source.ts +11 -1
- package/src/storage/objects/in-memory/scoped-reader.ts +243 -0
- package/src/storage/objects/in-memory/selected-reader.ts +6 -231
- package/src/storage/objects/in-memory/storage.ts +183 -1
- package/src/storage/objects/index.ts +9 -1
- package/src/storage/objects/read-scope.ts +191 -0
- package/src/storage/objects/types.ts +68 -1
- package/src/storage/ontology/in-memory/index.ts +3 -0
- package/src/storage/ontology/in-memory/materializations.ts +35 -0
- package/src/storage/ontology/in-memory/replacement-plans.ts +4 -0
- package/src/storage/ontology/in-memory/sources.ts +23 -0
- package/src/storage/ontology/in-memory/unique-values.ts +62 -0
- package/src/storage/ontology/index.ts +12 -0
- package/src/storage/ontology/materializations.ts +35 -1
- package/src/storage/ontology/provider-work.ts +76 -0
- package/src/storage/ontology/provider.ts +3 -0
- package/src/storage/ontology/sources.ts +17 -0
- package/src/storage/ontology/unique-values.ts +56 -0
- package/src/storage/operation-scope.ts +9 -1
- package/src/storage/projection-runs/in-memory.ts +3 -35
- package/src/storage/share-grants/in-memory.ts +8 -0
- package/src/storage/share-grants/index.ts +1 -0
- package/src/storage/share-grants/types.ts +8 -0
- package/src/storage/types.ts +6 -0
- package/src/storage/workflow-runs/in-memory.ts +16 -0
- package/src/storage/workflow-runs/types.ts +5 -0
- package/src/testing/action-run-storage-contract.ts +25 -0
- package/src/testing/activity-storage-contract.ts +840 -0
- package/src/testing/agent-approval-storage-contract.ts +1117 -0
- package/src/testing/agent-memory-storage-contract.ts +400 -0
- package/src/testing/agent-storage-contract.ts +1206 -50
- package/src/testing/ai-cost-storage-contract.ts +31 -1
- package/src/testing/ai-limit-storage-contract.ts +9 -7
- package/src/testing/ai-model-call-groups-contract.ts +76 -0
- package/src/testing/ai-usage-storage-contract.ts +120 -13
- package/src/testing/artifact-storage-contract.ts +851 -0
- package/src/testing/auth-storage-contract.ts +597 -73
- package/src/testing/broker-contract.ts +28 -23
- package/src/testing/effective-storage-contract.ts +3 -8
- package/src/testing/execution-storage-contract.ts +200 -1
- package/src/testing/file-upload-session-storage-contract.ts +12 -24
- package/src/testing/index.ts +26 -4
- package/src/testing/lake-merge-storage-contract.ts +38 -0
- package/src/testing/lake-storage-contract.ts +269 -30
- package/src/testing/materializer-storage-contract.ts +37 -9
- package/src/testing/object-conditional-read-scope-contract.ts +634 -0
- package/src/testing/object-query-contract.ts +386 -186
- package/src/testing/ontology-storage-contract.ts +286 -22
- package/src/testing/projection-run-storage-contract.ts +8 -18
- package/src/testing/queues-contract.ts +39 -70
- package/src/testing/sandboxes-contract.ts +3 -14
- package/src/testing/share-grant-storage-contract.ts +28 -16
- package/src/testing/share-session-storage-contract.ts +4 -14
- package/src/testing/unique-values-contract.ts +907 -0
- package/src/testing/webhook-execution.ts +1 -1
- package/src/testing/webhook-run-storage-contract.ts +6 -9
- package/src/users/execution.ts +131 -0
- package/src/users/index.ts +2 -0
- package/src/workers/queue-worker.ts +1 -3
- package/src/workers/worker.ts +1 -3
- package/src/workflows/builders.ts +20 -0
- package/src/workflows/request.ts +46 -8
- package/src/workflows/types.ts +15 -2
- package/src/workflows/validation.ts +95 -9
- package/dist/chunk-1k89ecfr.js +0 -85
- package/dist/chunk-1k89ecfr.js.map +0 -10
- package/dist/chunk-1sr8ryzk.js.map +0 -11
- package/dist/chunk-29yx306f.js.map +0 -22
- package/dist/chunk-3t2hgbgd.js.map +0 -15
- package/dist/chunk-4as3wt1c.js.map +0 -12
- package/dist/chunk-4vyr1j8f.js +0 -128
- package/dist/chunk-4vyr1j8f.js.map +0 -11
- package/dist/chunk-5e43w60z.js.map +0 -10
- package/dist/chunk-6c6sn0bh.js.map +0 -106
- package/dist/chunk-6p49a5cq.js.map +0 -12
- package/dist/chunk-6x0pqh32.js.map +0 -10
- package/dist/chunk-7n30ybym.js +0 -3
- package/dist/chunk-7n440zgt.js +0 -261
- package/dist/chunk-7n440zgt.js.map +0 -12
- package/dist/chunk-8mx7qw3y.js.map +0 -13
- package/dist/chunk-91mg3nj9.js.map +0 -12
- package/dist/chunk-96yw3pwd.js.map +0 -10
- package/dist/chunk-9gyp8hg1.js +0 -363
- package/dist/chunk-9gyp8hg1.js.map +0 -14
- package/dist/chunk-9k93ah50.js.map +0 -11
- package/dist/chunk-b38szspf.js.map +0 -11
- package/dist/chunk-bx9q3cwv.js.map +0 -19
- package/dist/chunk-d09tj99x.js.map +0 -12
- package/dist/chunk-ere85b8y.js.map +0 -15
- package/dist/chunk-es1gxsbf.js.map +0 -13
- package/dist/chunk-gsjm1wms.js.map +0 -10
- package/dist/chunk-hjzdd750.js.map +0 -49
- package/dist/chunk-hkc3jct7.js.map +0 -10
- package/dist/chunk-hvsb78a1.js.map +0 -20
- package/dist/chunk-k6q3n2sc.js.map +0 -12
- package/dist/chunk-n33z5bjw.js.map +0 -66
- package/dist/chunk-pbcbn83d.js.map +0 -14
- package/dist/chunk-pqajwytd.js +0 -68
- package/dist/chunk-pqajwytd.js.map +0 -11
- package/dist/chunk-qczk96d9.js.map +0 -11
- package/dist/chunk-rdghfsss.js +0 -39
- package/dist/chunk-rdghfsss.js.map +0 -10
- package/dist/chunk-rj69qcrd.js.map +0 -11
- package/dist/chunk-rrzt8jdy.js.map +0 -14
- package/dist/chunk-s16apyk9.js +0 -256
- package/dist/chunk-s16apyk9.js.map +0 -16
- package/dist/chunk-s54c868q.js +0 -307
- package/dist/chunk-s54c868q.js.map +0 -12
- package/dist/chunk-tpn40322.js.map +0 -19
- package/dist/chunk-tw03bsmb.js.map +0 -11
- package/dist/chunk-v4jbb3rs.js.map +0 -10
- package/dist/chunk-vpq4shxz.js.map +0 -39
- package/dist/chunk-yxd3nnqt.js.map +0 -11
- package/dist/chunk-yzwja0mj.js.map +0 -14
- package/dist/events/toStoredEvent.d.ts +0 -9
- package/dist/events/toStoredEvent.d.ts.map +0 -1
- package/dist/models/audio/file.d.ts +0 -9
- package/dist/models/audio/file.d.ts.map +0 -1
- package/src/events/toStoredEvent.ts +0 -33
- /package/dist/{chunk-mfs23znk.js.map → chunk-07kkp2e1.js.map} +0 -0
- /package/dist/{chunk-fkgc1wt8.js.map → chunk-0phpbbvm.js.map} +0 -0
- /package/dist/{chunk-y0c4e6ex.js.map → chunk-3gbefjg5.js.map} +0 -0
- /package/dist/{chunk-fa02jy15.js.map → chunk-48jezz3j.js.map} +0 -0
- /package/dist/{chunk-c85m1hyj.js.map → chunk-6n69k945.js.map} +0 -0
- /package/dist/{chunk-xfs8x8m9.js.map → chunk-6p0pastb.js.map} +0 -0
- /package/dist/{chunk-t7x8dmn0.js.map → chunk-6y0mkhex.js.map} +0 -0
- /package/dist/{chunk-v9xd5wzd.js.map → chunk-bab05bhg.js.map} +0 -0
- /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
- /package/dist/{chunk-vyf9kfqf.js.map → chunk-dp0cdtj2.js.map} +0 -0
- /package/dist/{chunk-br3k6qbf.js.map → chunk-fm62y49k.js.map} +0 -0
- /package/dist/{chunk-9ybhtmg4.js.map → chunk-g663fahq.js.map} +0 -0
- /package/dist/{chunk-9w055r5b.js.map → chunk-hwarjrgf.js.map} +0 -0
- /package/dist/{chunk-9dmt152s.js.map → chunk-hyesv9dv.js.map} +0 -0
- /package/dist/{chunk-x9v4cx1d.js.map → chunk-m36fw8ft.js.map} +0 -0
- /package/dist/{chunk-a40ad1ft.js.map → chunk-mbsbxarb.js.map} +0 -0
- /package/dist/{chunk-6aawea28.js.map → chunk-n8q5j6y5.js.map} +0 -0
- /package/dist/{chunk-dk8tkk5f.js.map → chunk-n9zpx9c6.js.map} +0 -0
- /package/dist/{chunk-7t429e3f.js.map → chunk-npcr0228.js.map} +0 -0
- /package/dist/{chunk-z4m0yz8c.js.map → chunk-q4pmvkg0.js.map} +0 -0
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
import { assertNever } from "../assert-never"
|
|
2
|
-
import {
|
|
2
|
+
import { isRuntimeAllowed } from "../authorization"
|
|
3
3
|
import { AuthorizationError } from "../authorization/errors"
|
|
4
|
-
import type { AuthorizationContext } from "../authorization/types"
|
|
5
4
|
import type { EmbeddingModelCatalog, RerankingModelCatalog } from "../models/catalog"
|
|
5
|
+
import type { AuthorizedOntologyView } from "../objects/authorized-ontology-view"
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
createAuthorizedOntologyView,
|
|
10
|
-
} from "../objects/authorized-ontology-view"
|
|
11
|
-
import {
|
|
12
|
-
createClearanceQueryAdmission,
|
|
13
|
-
type PropertyClearance,
|
|
7
|
+
attachRedactions,
|
|
8
|
+
omitHiddenProperties,
|
|
14
9
|
redactObjectRow,
|
|
15
|
-
|
|
16
|
-
} from "../objects/property-clearance"
|
|
10
|
+
} from "../objects/clearance-redaction"
|
|
11
|
+
import { unreadableError } from "../objects/property-clearance"
|
|
17
12
|
import {
|
|
18
13
|
countObjects,
|
|
19
14
|
type ExecuteObjectCountInput,
|
|
@@ -31,14 +26,14 @@ import {
|
|
|
31
26
|
existsObjects,
|
|
32
27
|
facetObjects,
|
|
33
28
|
} from "../objects/query"
|
|
29
|
+
import { createClearanceQueryAdmission } from "../objects/query/clearance-admission"
|
|
34
30
|
import { ObjectQueryValidationError } from "../objects/query/errors"
|
|
35
|
-
import { validateObjectFacetRequests } from "../objects/query/executor"
|
|
36
|
-
import type { ObjectQuery } from "../objects/query/ir"
|
|
31
|
+
import { type QueryExecutorOptions, validateObjectFacetRequests } from "../objects/query/executor"
|
|
32
|
+
import type { ObjectQuery, ObjectQueryPredicate } from "../objects/query/ir"
|
|
33
|
+
import { assertLinkQueryReadable } from "../objects/query/link-query-clearance"
|
|
37
34
|
import { preflightObjectQueryLinks } from "../objects/query/links"
|
|
38
|
-
import {
|
|
39
|
-
|
|
40
|
-
type SelectedObjectQueryAdmission,
|
|
41
|
-
} from "../objects/query/selected-read-admission"
|
|
35
|
+
import { normalizeObjectQuery } from "../objects/query/normalize"
|
|
36
|
+
import { userExpansionPlan } from "../objects/query/user-expansions"
|
|
42
37
|
import {
|
|
43
38
|
type AdmittedObjectQuery,
|
|
44
39
|
composeObjectQueryAdmissions,
|
|
@@ -52,8 +47,9 @@ import {
|
|
|
52
47
|
type TelemetryHistoryReadWorkloadInput,
|
|
53
48
|
} from "../objects/telemetry/workload"
|
|
54
49
|
import type { OntologyRegistry } from "../ontology"
|
|
50
|
+
import type { AppliedMarkings } from "../security/applied-markings"
|
|
55
51
|
import type {
|
|
56
|
-
|
|
52
|
+
AuthUserStore,
|
|
57
53
|
LinkBatchKey,
|
|
58
54
|
ObjectFacetRequest,
|
|
59
55
|
ObjectLinkRow,
|
|
@@ -63,17 +59,21 @@ import type {
|
|
|
63
59
|
} from "../storage"
|
|
64
60
|
import { assertObjectReadOutputWithinLimit, MAX_OBJECT_READ_FACETS } from "../storage"
|
|
65
61
|
import { captureExecutionScope, resolveExecutionScopeAuthorization } from "./authorization"
|
|
66
|
-
import type {
|
|
62
|
+
import type { Clearance, EventSources } from "./object-reader-clearance"
|
|
63
|
+
import { ObjectReaderOntology } from "./object-reader-ontology"
|
|
64
|
+
import { ObjectReaderSecurity } from "./object-reader-security"
|
|
65
|
+
import { attachUserProfiles } from "./object-reader-users"
|
|
66
|
+
import type { ExecutionScope } from "./types"
|
|
67
|
+
import { uniqueLookupKey } from "./unique-lookup"
|
|
67
68
|
|
|
68
|
-
type RuntimeReadAuthorization = {
|
|
69
|
-
readonly projectId: string
|
|
70
|
-
readonly runtimeAuthorization: RuntimeAuthorization
|
|
71
|
-
readonly authorization?: AuthorizationContext
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
type ResolvedExecutionAuthority = ReturnType<typeof resolveExecutionScopeAuthorization>
|
|
75
69
|
type GetObjectInput = Omit<Parameters<ObjectReadStorage["getByPrimaryId"]>[0], "projectId">
|
|
76
70
|
type GetObjectsInput = Omit<Parameters<ObjectReadStorage["getByPrimaryIdBatch"]>[0], "projectId">
|
|
71
|
+
/** A caller's value, validated and keyed against the property's schema. */
|
|
72
|
+
interface GetByUniqueValueInput {
|
|
73
|
+
readonly objectTypeId: string
|
|
74
|
+
readonly propertyId: string
|
|
75
|
+
readonly value: unknown
|
|
76
|
+
}
|
|
77
77
|
type SelectObjectPropertiesInput = Parameters<ObjectReadStorage["selectsObjectProperties"]>[0]
|
|
78
78
|
type CanReadObjectPropertyInput = SelectObjectPropertiesInput["items"][number]
|
|
79
79
|
type CanReadObjectPropertiesBatchInput = Omit<SelectObjectPropertiesInput, "projectId">
|
|
@@ -81,6 +81,12 @@ type ListObjectsInput = Omit<Parameters<ObjectReadStorage["list"]>[0], "projectI
|
|
|
81
81
|
type ListLinksInput = Omit<Parameters<ObjectReadStorage["listLinks"]>[0], "projectId">
|
|
82
82
|
type ListLinksBatchInput = Omit<Parameters<ObjectReadStorage["listLinksBatch"]>[0], "projectId">
|
|
83
83
|
|
|
84
|
+
/** The model catalogs semantic and reranked search use. */
|
|
85
|
+
interface ObjectReaderModels {
|
|
86
|
+
readonly embedding?: EmbeddingModelCatalog
|
|
87
|
+
readonly reranking?: RerankingModelCatalog
|
|
88
|
+
}
|
|
89
|
+
|
|
84
90
|
const readerConstructionKey = Object.freeze({})
|
|
85
91
|
|
|
86
92
|
/**
|
|
@@ -89,91 +95,88 @@ const readerConstructionKey = Object.freeze({})
|
|
|
89
95
|
* The implementation class is intentionally private to this module. Its private fields make the
|
|
90
96
|
* exported instance type nominal, while the construction key prevents code that discovers the
|
|
91
97
|
* JavaScript constructor through an instance from manufacturing another reader.
|
|
98
|
+
*
|
|
99
|
+
* Its state is grouped as a project is: the ontology it resolves against, the security of the
|
|
100
|
+
* authority (its delegation and clearance included), the model catalogs search uses, and the
|
|
101
|
+
* storage it reads, with the member directory that expanded user properties resolve against.
|
|
102
|
+
* Each group decides what belongs to it; the reader composes them.
|
|
92
103
|
*/
|
|
93
104
|
class AuthorizedObjectReaderImpl {
|
|
94
|
-
readonly #
|
|
95
|
-
readonly #
|
|
96
|
-
readonly #
|
|
97
|
-
readonly #ontology: OntologyRegistry
|
|
98
|
-
readonly #embeddingModels?: EmbeddingModelCatalog
|
|
99
|
-
readonly #rerankingModels?: RerankingModelCatalog
|
|
100
|
-
#ontologyView?: AuthorizedOntologyView
|
|
105
|
+
readonly #ontology: ObjectReaderOntology
|
|
106
|
+
readonly #security: ObjectReaderSecurity
|
|
107
|
+
readonly #models: ObjectReaderModels
|
|
101
108
|
readonly #storage: ObjectReadStorage
|
|
102
|
-
readonly #
|
|
103
|
-
readonly #delegatedLinkDefinitions?: ReadonlySet<string>
|
|
104
|
-
readonly #delegatedQueryAdmission?: SelectedObjectQueryAdmission
|
|
105
|
-
/** Marked properties this authority cannot read; absent when it reads every property. */
|
|
106
|
-
readonly #clearance?: PropertyClearance
|
|
109
|
+
readonly #users: AuthUserStore | undefined
|
|
107
110
|
|
|
108
111
|
constructor(
|
|
109
112
|
key: typeof readerConstructionKey,
|
|
110
113
|
input: {
|
|
111
|
-
readonly
|
|
112
|
-
readonly
|
|
113
|
-
readonly
|
|
114
|
-
readonly rerankingModels?: RerankingModelCatalog
|
|
114
|
+
readonly ontology: ObjectReaderOntology
|
|
115
|
+
readonly security: ObjectReaderSecurity
|
|
116
|
+
readonly models: ObjectReaderModels
|
|
115
117
|
readonly storage: ObjectReadStorage
|
|
116
|
-
readonly
|
|
118
|
+
readonly users?: AuthUserStore
|
|
117
119
|
}
|
|
118
120
|
) {
|
|
119
121
|
if (key !== readerConstructionKey) {
|
|
120
122
|
throw new Error("[Sixb] AuthorizedObjectReader can only be created by Core.")
|
|
121
123
|
}
|
|
122
|
-
|
|
123
|
-
this.#authorization = input.scope.authorization
|
|
124
|
-
this.#authority = input.authority
|
|
125
124
|
this.#ontology = input.ontology
|
|
126
|
-
this.#
|
|
127
|
-
this.#
|
|
125
|
+
this.#security = input.security
|
|
126
|
+
this.#models = input.models
|
|
128
127
|
this.#storage = input.storage
|
|
129
|
-
this.#
|
|
130
|
-
input.authority.type === "delegated"
|
|
131
|
-
? new Set(input.authority.objectRead.scope.objects.map((object) => object.objectTypeId))
|
|
132
|
-
: undefined
|
|
133
|
-
this.#delegatedLinkDefinitions =
|
|
134
|
-
input.authority.type === "delegated"
|
|
135
|
-
? new Set(input.authority.objectRead.scope.steps.map(delegatedLinkDefinitionKey))
|
|
136
|
-
: undefined
|
|
137
|
-
this.#delegatedQueryAdmission =
|
|
138
|
-
input.authority.type === "delegated"
|
|
139
|
-
? createSelectedObjectQueryAdmission(input.authority.objectRead.scope)
|
|
140
|
-
: undefined
|
|
141
|
-
this.#clearance = clearanceForAuthority(input.authority, input.ontology)
|
|
142
|
-
this.#runtime = Object.freeze({
|
|
143
|
-
projectId: input.scope.execution.projectId,
|
|
144
|
-
runtimeAuthorization: input.scope.authorization,
|
|
145
|
-
...(input.authority.type === "principal" ? { authorization: input.authority.context } : {}),
|
|
146
|
-
})
|
|
128
|
+
this.#users = input.users
|
|
147
129
|
}
|
|
148
130
|
|
|
149
131
|
static assertBound(reader: AuthorizedObjectReaderImpl, scope: ExecutionScope): void {
|
|
150
132
|
const capturedScope = captureExecutionScope(scope)
|
|
151
|
-
resolveExecutionScopeAuthorization(reader.#runtime.projectId, capturedScope)
|
|
152
|
-
if (capturedScope.authorization !== reader.#authorization) {
|
|
133
|
+
resolveExecutionScopeAuthorization(reader.#security.runtime.projectId, capturedScope)
|
|
134
|
+
if (capturedScope.authorization !== reader.#security.authorization) {
|
|
153
135
|
throw new Error(
|
|
154
136
|
"[Sixb] AuthorizedObjectReader is not bound to this exact execution authority."
|
|
155
137
|
)
|
|
156
138
|
}
|
|
157
139
|
}
|
|
158
140
|
|
|
141
|
+
/** What the reader cannot read now, for surfaces such as events that redact on their own. */
|
|
142
|
+
static async clearance(reader: AuthorizedObjectReaderImpl): Promise<Clearance> {
|
|
143
|
+
return reader.#security.clearance.current()
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/** What the reader cannot read in an object event. */
|
|
147
|
+
static eventClearance(
|
|
148
|
+
reader: AuthorizedObjectReaderImpl,
|
|
149
|
+
sources: EventSources
|
|
150
|
+
): Clearance | Promise<Clearance> {
|
|
151
|
+
return reader.#security.clearance.forEvent(sources)
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/** The conditions the reader views object types through, by concrete type. */
|
|
155
|
+
static viewConditions(
|
|
156
|
+
reader: AuthorizedObjectReaderImpl
|
|
157
|
+
): ReadonlyMap<string, ReaderViewCondition> {
|
|
158
|
+
const security = reader.#security
|
|
159
|
+
const conditions = security.conditionalScope?.conditions ?? []
|
|
160
|
+
|
|
161
|
+
return new Map(
|
|
162
|
+
conditions.map(({ objectTypeId, predicate }) => [
|
|
163
|
+
objectTypeId,
|
|
164
|
+
{
|
|
165
|
+
predicate,
|
|
166
|
+
hiddenBy: (clearance: Clearance) =>
|
|
167
|
+
!security.isObjectTypeViewable(objectTypeId, clearance),
|
|
168
|
+
},
|
|
169
|
+
])
|
|
170
|
+
)
|
|
171
|
+
}
|
|
172
|
+
|
|
159
173
|
static ontologyView(reader: AuthorizedObjectReaderImpl): AuthorizedOntologyView {
|
|
160
|
-
|
|
161
|
-
reader.#ontologyView ??= createAuthorizedOntologyView({
|
|
162
|
-
ontology: reader.#ontology,
|
|
163
|
-
selection: ontologySelectionForAuthority(authority, reader.#ontology),
|
|
164
|
-
...(authority.type === "delegated"
|
|
165
|
-
? {
|
|
166
|
-
assertOutputWithinLimit: (value: unknown) =>
|
|
167
|
-
assertObjectReadOutputWithinLimit(value, authority.objectRead.limits),
|
|
168
|
-
}
|
|
169
|
-
: {}),
|
|
170
|
-
})
|
|
171
|
-
return reader.#ontologyView
|
|
174
|
+
return reader.#ontology.view()
|
|
172
175
|
}
|
|
173
176
|
|
|
174
177
|
/** Project identity carried by this nominal reader capability. */
|
|
175
178
|
get projectId(): string {
|
|
176
|
-
return this.#runtime.projectId
|
|
179
|
+
return this.#security.runtime.projectId
|
|
177
180
|
}
|
|
178
181
|
|
|
179
182
|
async getByPrimaryId(input: GetObjectInput): ReturnType<ObjectReadStorage["getByPrimaryId"]> {
|
|
@@ -181,12 +184,52 @@ class AuthorizedObjectReaderImpl {
|
|
|
181
184
|
objectTypeId: input.objectTypeId,
|
|
182
185
|
primaryId: input.primaryId,
|
|
183
186
|
})
|
|
184
|
-
this.#
|
|
187
|
+
const clearance = await this.#security.clearance.current()
|
|
188
|
+
this.#security.assertObjectTypesViewable([request.objectTypeId], clearance)
|
|
185
189
|
const row = await this.#storage.getByPrimaryId({
|
|
186
190
|
...request,
|
|
187
|
-
projectId: this.#runtime.projectId,
|
|
191
|
+
projectId: this.#security.runtime.projectId,
|
|
188
192
|
})
|
|
189
|
-
return
|
|
193
|
+
return this.#detachRows(
|
|
194
|
+
row && this.#omitHidden(row, clearance),
|
|
195
|
+
(detached) => [detached],
|
|
196
|
+
clearance
|
|
197
|
+
)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* The object of exactly `objectTypeId` holding a unique property's value, or null. A lookup by a
|
|
202
|
+
* marked property would reveal its value, so it needs the clearance a query predicate needs.
|
|
203
|
+
*/
|
|
204
|
+
async getByUniqueValue(input: GetByUniqueValueInput): Promise<ObjectRow | null> {
|
|
205
|
+
const request = snapshotReadValue({
|
|
206
|
+
objectTypeId: input.objectTypeId,
|
|
207
|
+
propertyId: input.propertyId,
|
|
208
|
+
value: input.value,
|
|
209
|
+
})
|
|
210
|
+
const clearance = await this.#security.clearance.current()
|
|
211
|
+
this.#security.assertObjectTypesViewable([request.objectTypeId], clearance)
|
|
212
|
+
|
|
213
|
+
const valueKey = uniqueLookupKey(this.#ontology.registry, request)
|
|
214
|
+
const marking = clearance?.missingMarking(request.objectTypeId, request.propertyId)
|
|
215
|
+
if (marking !== undefined) {
|
|
216
|
+
throw new AuthorizationError(
|
|
217
|
+
`clearance:marking:${marking}`,
|
|
218
|
+
`[Sixb] Cannot look up '${request.objectTypeId}.${request.propertyId}' by value: it requires clearance for marking '${marking}'.`
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
const row = await this.#storage.getByUniqueValue({
|
|
223
|
+
objectTypeId: request.objectTypeId,
|
|
224
|
+
propertyId: request.propertyId,
|
|
225
|
+
valueKey,
|
|
226
|
+
projectId: this.#security.runtime.projectId,
|
|
227
|
+
})
|
|
228
|
+
return this.#detachRows(
|
|
229
|
+
row && this.#omitHidden(row, clearance),
|
|
230
|
+
(detached) => [detached],
|
|
231
|
+
clearance
|
|
232
|
+
)
|
|
190
233
|
}
|
|
191
234
|
|
|
192
235
|
async getByPrimaryIdBatch(
|
|
@@ -198,13 +241,19 @@ class AuthorizedObjectReaderImpl {
|
|
|
198
241
|
primaryId: item.primaryId,
|
|
199
242
|
})),
|
|
200
243
|
})
|
|
201
|
-
this.#
|
|
244
|
+
const clearance = await this.#security.clearance.current()
|
|
245
|
+
this.#security.assertObjectTypesViewable(
|
|
246
|
+
request.items.map((item) => item.objectTypeId),
|
|
247
|
+
clearance
|
|
248
|
+
)
|
|
202
249
|
const rows = await this.#storage.getByPrimaryIdBatch({
|
|
203
250
|
...request,
|
|
204
|
-
projectId: this.#runtime.projectId,
|
|
251
|
+
projectId: this.#security.runtime.projectId,
|
|
205
252
|
})
|
|
206
|
-
return
|
|
207
|
-
new Map([...rows].map(([key, row]) => [key, this.#
|
|
253
|
+
return this.#detachRows(
|
|
254
|
+
new Map([...rows].map(([key, row]) => [key, this.#omitHidden(row, clearance)] as const)),
|
|
255
|
+
(detached) => detached.values(),
|
|
256
|
+
clearance
|
|
208
257
|
)
|
|
209
258
|
}
|
|
210
259
|
|
|
@@ -214,14 +263,12 @@ class AuthorizedObjectReaderImpl {
|
|
|
214
263
|
primaryId: input.primaryId,
|
|
215
264
|
propertyId: input.propertyId,
|
|
216
265
|
})
|
|
217
|
-
this.#
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
})
|
|
224
|
-
return readable ?? false
|
|
266
|
+
const clearance = await this.#security.clearance.current()
|
|
267
|
+
this.#security.assertObjectTypesViewable([request.objectTypeId], clearance)
|
|
268
|
+
|
|
269
|
+
if (hidesProperty(request, clearance)) return false
|
|
270
|
+
const [selected] = await this.#selectsObjectProperties([request])
|
|
271
|
+
return selected ?? false
|
|
225
272
|
}
|
|
226
273
|
|
|
227
274
|
async canReadObjectPropertiesBatch(
|
|
@@ -234,16 +281,14 @@ class AuthorizedObjectReaderImpl {
|
|
|
234
281
|
propertyId: item.propertyId,
|
|
235
282
|
})),
|
|
236
283
|
})
|
|
237
|
-
this.#
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
})
|
|
244
|
-
: request.items.map(() => true)
|
|
284
|
+
const clearance = await this.#security.clearance.current()
|
|
285
|
+
this.#security.assertObjectTypesViewable(
|
|
286
|
+
request.items.map((item) => item.objectTypeId),
|
|
287
|
+
clearance
|
|
288
|
+
)
|
|
289
|
+
const selected = await this.#selectsObjectProperties(request.items)
|
|
245
290
|
return request.items.map(
|
|
246
|
-
(item, index) => !
|
|
291
|
+
(item, index) => !hidesProperty(item, clearance) && selected[index] === true
|
|
247
292
|
)
|
|
248
293
|
}
|
|
249
294
|
|
|
@@ -266,7 +311,8 @@ class AuthorizedObjectReaderImpl {
|
|
|
266
311
|
orderBy: input.orderBy,
|
|
267
312
|
order: input.order,
|
|
268
313
|
})
|
|
269
|
-
const
|
|
314
|
+
const clearance = await this.#security.clearance.current()
|
|
315
|
+
const objectTypeId = this.#resolveListObjectTypes(request.objectTypeId, clearance)
|
|
270
316
|
|
|
271
317
|
// An empty type selection means "none", never "all". Short-circuiting here prevents a
|
|
272
318
|
// provider with different empty-array semantics from turning a principal read into a broad one.
|
|
@@ -277,9 +323,13 @@ class AuthorizedObjectReaderImpl {
|
|
|
277
323
|
const page = await this.#storage.list({
|
|
278
324
|
...request,
|
|
279
325
|
...(objectTypeId === undefined ? {} : { objectTypeId }),
|
|
280
|
-
projectId: this.#runtime.projectId,
|
|
326
|
+
projectId: this.#security.runtime.projectId,
|
|
281
327
|
})
|
|
282
|
-
return
|
|
328
|
+
return this.#detachRows(
|
|
329
|
+
{ ...page, objects: page.objects.map((row) => this.#omitHidden(row, clearance)) },
|
|
330
|
+
(detached) => detached.objects,
|
|
331
|
+
clearance
|
|
332
|
+
)
|
|
283
333
|
}
|
|
284
334
|
|
|
285
335
|
async listLinks(input: ListLinksInput): ReturnType<ObjectReadStorage["listLinks"]> {
|
|
@@ -289,14 +339,15 @@ class AuthorizedObjectReaderImpl {
|
|
|
289
339
|
linkId: input.linkId,
|
|
290
340
|
direction: input.direction,
|
|
291
341
|
})
|
|
292
|
-
this.#
|
|
342
|
+
const clearance = await this.#security.clearance.current()
|
|
343
|
+
this.#security.assertObjectTypesViewable([request.objectTypeId], clearance)
|
|
293
344
|
const links = detachReadResult(
|
|
294
345
|
await this.#storage.listLinks({
|
|
295
346
|
...request,
|
|
296
|
-
projectId: this.#runtime.projectId,
|
|
347
|
+
projectId: this.#security.runtime.projectId,
|
|
297
348
|
})
|
|
298
349
|
)
|
|
299
|
-
return links.filter((link) => this.#isLinkViewable(link))
|
|
350
|
+
return links.filter((link) => this.#security.isLinkViewable(link, clearance))
|
|
300
351
|
}
|
|
301
352
|
|
|
302
353
|
async listLinksBatch(
|
|
@@ -310,18 +361,22 @@ class AuthorizedObjectReaderImpl {
|
|
|
310
361
|
linkId: item.linkId,
|
|
311
362
|
})),
|
|
312
363
|
})
|
|
313
|
-
this.#
|
|
364
|
+
const clearance = await this.#security.clearance.current()
|
|
365
|
+
this.#security.assertObjectTypesViewable(
|
|
366
|
+
request.items.map((item) => item.objectTypeId),
|
|
367
|
+
clearance
|
|
368
|
+
)
|
|
314
369
|
const pages = detachReadResult(
|
|
315
370
|
await this.#storage.listLinksBatch({
|
|
316
371
|
...request,
|
|
317
|
-
projectId: this.#runtime.projectId,
|
|
372
|
+
projectId: this.#security.runtime.projectId,
|
|
318
373
|
})
|
|
319
374
|
)
|
|
320
375
|
const filtered = new Map<LinkBatchKey, ObjectLinkRow[]>()
|
|
321
376
|
for (const [key, links] of pages) {
|
|
322
377
|
filtered.set(
|
|
323
378
|
key,
|
|
324
|
-
links.filter((link) => this.#isLinkViewable(link))
|
|
379
|
+
links.filter((link) => this.#security.isLinkViewable(link, clearance))
|
|
325
380
|
)
|
|
326
381
|
}
|
|
327
382
|
return filtered
|
|
@@ -333,16 +388,24 @@ class AuthorizedObjectReaderImpl {
|
|
|
333
388
|
const query = snapshotAuthoredQuery(input.query)
|
|
334
389
|
const includeTotal = snapshotReadValue(input.includeTotal)
|
|
335
390
|
const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query
|
|
391
|
+
const clearance = await this.#security.clearance.current()
|
|
336
392
|
const result = await executeObjectQuery(
|
|
337
393
|
{
|
|
338
394
|
query: executionQuery,
|
|
339
395
|
...(includeTotal === undefined ? {} : { includeTotal }),
|
|
340
|
-
projectId: this.#runtime.projectId,
|
|
396
|
+
projectId: this.#security.runtime.projectId,
|
|
341
397
|
signal: input.signal,
|
|
342
398
|
},
|
|
343
|
-
this.#queryExecutorOptions()
|
|
399
|
+
this.#queryExecutorOptions(clearance)
|
|
344
400
|
)
|
|
345
|
-
|
|
401
|
+
const detached = this.#detachRows(
|
|
402
|
+
{ ...result, objects: result.objects.map((row) => this.#omitHidden(row, clearance)) },
|
|
403
|
+
(detached) => detached.objects,
|
|
404
|
+
clearance
|
|
405
|
+
)
|
|
406
|
+
|
|
407
|
+
await this.#attachUsers(detached.objects, query)
|
|
408
|
+
return detached
|
|
346
409
|
}
|
|
347
410
|
|
|
348
411
|
async queryLinks(
|
|
@@ -357,15 +420,15 @@ class AuthorizedObjectReaderImpl {
|
|
|
357
420
|
pageToken: input.pageToken,
|
|
358
421
|
})
|
|
359
422
|
let executionQuery = query
|
|
360
|
-
const admission = this.#
|
|
423
|
+
const admission = this.#security.delegation?.queryAdmission
|
|
361
424
|
if (admission) {
|
|
362
425
|
const preflight = preflightObjectQueryLinks(
|
|
363
|
-
{ query, ...request, projectId: this.#runtime.projectId },
|
|
364
|
-
{ ontology: this.#ontology }
|
|
426
|
+
{ query, ...request, projectId: this.#security.runtime.projectId },
|
|
427
|
+
{ ontology: this.#ontology.registry }
|
|
365
428
|
)
|
|
366
429
|
const admitted = validateObjectQueryWithAdmission(
|
|
367
430
|
preflight.validated.query,
|
|
368
|
-
{ ontology: this.#ontology, normalize: false },
|
|
431
|
+
{ ontology: this.#ontology.registry, normalize: false },
|
|
369
432
|
admission
|
|
370
433
|
)
|
|
371
434
|
admission.assertIncidentEdgeSelected({
|
|
@@ -376,10 +439,23 @@ class AuthorizedObjectReaderImpl {
|
|
|
376
439
|
})
|
|
377
440
|
executionQuery = admitted.query
|
|
378
441
|
}
|
|
442
|
+
|
|
443
|
+
const clearance = await this.#security.clearance.current()
|
|
444
|
+
if (clearance) {
|
|
445
|
+
assertLinkQueryReadable({
|
|
446
|
+
ontology: this.#ontology.registry,
|
|
447
|
+
clearance,
|
|
448
|
+
query,
|
|
449
|
+
request: { ...request, projectId: this.#security.runtime.projectId },
|
|
450
|
+
viewableByGrants: (objectTypeId) =>
|
|
451
|
+
this.#security.isObjectTypeViewable(objectTypeId, undefined),
|
|
452
|
+
})
|
|
453
|
+
}
|
|
454
|
+
|
|
379
455
|
const result = detachReadResult(
|
|
380
456
|
await executeObjectQueryLinks(
|
|
381
|
-
{ query: executionQuery, ...request, projectId: this.#runtime.projectId },
|
|
382
|
-
this.#queryExecutorOptions()
|
|
457
|
+
{ query: executionQuery, ...request, projectId: this.#security.runtime.projectId },
|
|
458
|
+
this.#queryExecutorOptions(clearance)
|
|
383
459
|
)
|
|
384
460
|
)
|
|
385
461
|
|
|
@@ -387,12 +463,18 @@ class AuthorizedObjectReaderImpl {
|
|
|
387
463
|
// its cursor and hasMore metadata describe hidden rows, so a provider contract violation must
|
|
388
464
|
// fail closed instead of returning a partially filtered page.
|
|
389
465
|
if (
|
|
390
|
-
result.objects.some(
|
|
391
|
-
|
|
466
|
+
result.objects.some(
|
|
467
|
+
(row) => !this.#security.isObjectTypeViewable(row.objectTypeId, clearance)
|
|
468
|
+
) ||
|
|
469
|
+
result.links.some((link) => !this.#security.isLinkViewable(link, clearance))
|
|
392
470
|
) {
|
|
393
471
|
throw new Error("[Sixb] Object storage returned a link page outside its authorized scope.")
|
|
394
472
|
}
|
|
395
|
-
|
|
473
|
+
|
|
474
|
+
return {
|
|
475
|
+
...result,
|
|
476
|
+
objects: result.objects.map((row) => (clearance ? redactObjectRow(row, clearance) : row)),
|
|
477
|
+
}
|
|
396
478
|
}
|
|
397
479
|
|
|
398
480
|
async count(
|
|
@@ -400,10 +482,11 @@ class AuthorizedObjectReaderImpl {
|
|
|
400
482
|
): Promise<ExecuteObjectCountResult> {
|
|
401
483
|
const query = snapshotAuthoredQuery(input.query)
|
|
402
484
|
const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query
|
|
485
|
+
const clearance = await this.#security.clearance.current()
|
|
403
486
|
return detachReadResult(
|
|
404
487
|
await countObjects(
|
|
405
|
-
{ query: executionQuery, projectId: this.#runtime.projectId },
|
|
406
|
-
this.#queryExecutorOptions()
|
|
488
|
+
{ query: executionQuery, projectId: this.#security.runtime.projectId },
|
|
489
|
+
this.#queryExecutorOptions(clearance)
|
|
407
490
|
)
|
|
408
491
|
)
|
|
409
492
|
}
|
|
@@ -413,10 +496,11 @@ class AuthorizedObjectReaderImpl {
|
|
|
413
496
|
): Promise<ExecuteObjectExistsResult> {
|
|
414
497
|
const query = snapshotAuthoredQuery(input.query)
|
|
415
498
|
const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query
|
|
499
|
+
const clearance = await this.#security.clearance.current()
|
|
416
500
|
return detachReadResult(
|
|
417
501
|
await existsObjects(
|
|
418
|
-
{ query: executionQuery, projectId: this.#runtime.projectId },
|
|
419
|
-
this.#queryExecutorOptions()
|
|
502
|
+
{ query: executionQuery, projectId: this.#security.runtime.projectId },
|
|
503
|
+
this.#queryExecutorOptions(clearance)
|
|
420
504
|
)
|
|
421
505
|
)
|
|
422
506
|
}
|
|
@@ -428,17 +512,17 @@ class AuthorizedObjectReaderImpl {
|
|
|
428
512
|
const facets = snapshotFacetRequests(input.facets)
|
|
429
513
|
let executionQuery = query
|
|
430
514
|
let executionFacets = facets
|
|
431
|
-
const admission = this.#
|
|
515
|
+
const admission = this.#security.delegation?.queryAdmission
|
|
432
516
|
if (admission) {
|
|
433
517
|
// Terminal arguments are ordinary validation errors, not an authorization oracle. Validate
|
|
434
518
|
// them against the canonical result shape before raising any delegated-scope denial.
|
|
435
|
-
const validated = validateObjectQuery(query, { ontology: this.#ontology })
|
|
519
|
+
const validated = validateObjectQuery(query, { ontology: this.#ontology.registry })
|
|
436
520
|
const normalizedFacets = validateObjectFacetRequests(facets, validated.result.objectTypeIds, {
|
|
437
|
-
ontology: this.#ontology,
|
|
521
|
+
ontology: this.#ontology.registry,
|
|
438
522
|
})
|
|
439
523
|
const admitted = validateObjectQueryWithAdmission(
|
|
440
524
|
validated.query,
|
|
441
|
-
{ ontology: this.#ontology, normalize: false },
|
|
525
|
+
{ ontology: this.#ontology.registry, normalize: false },
|
|
442
526
|
admission
|
|
443
527
|
)
|
|
444
528
|
normalizedFacets.forEach((facet, index) => {
|
|
@@ -452,63 +536,142 @@ class AuthorizedObjectReaderImpl {
|
|
|
452
536
|
executionQuery = admitted.query
|
|
453
537
|
executionFacets = normalizedFacets
|
|
454
538
|
}
|
|
539
|
+
const clearance = await this.#security.clearance.current()
|
|
455
540
|
return detachReadResult(
|
|
456
541
|
await facetObjects(
|
|
457
542
|
{
|
|
458
543
|
query: executionQuery,
|
|
459
544
|
facets: executionFacets,
|
|
460
|
-
projectId: this.#runtime.projectId,
|
|
545
|
+
projectId: this.#security.runtime.projectId,
|
|
461
546
|
},
|
|
462
|
-
this.#queryExecutorOptions()
|
|
547
|
+
this.#queryExecutorOptions(clearance)
|
|
463
548
|
)
|
|
464
549
|
)
|
|
465
550
|
}
|
|
466
551
|
|
|
467
552
|
/**
|
|
468
|
-
* Redact a
|
|
469
|
-
* marked values the writer never sent and cannot read.
|
|
553
|
+
* Redact the rows a write of this object type returns. An upsert returns the merged effective
|
|
554
|
+
* row, which may hold marked values the writer never sent and cannot read. Resolved before the
|
|
555
|
+
* write, which it refuses when the writer cannot read the type at all.
|
|
470
556
|
*/
|
|
471
|
-
|
|
472
|
-
|
|
557
|
+
async writtenRowRedactor(
|
|
558
|
+
objectTypeId: string
|
|
559
|
+
): Promise<<TRow extends ObjectRow>(row: TRow) => TRow> {
|
|
560
|
+
const clearance = await this.#security.clearance.current()
|
|
561
|
+
assertTargetsReadable(clearance, { objectTypeIds: [objectTypeId] })
|
|
562
|
+
return (row) => (clearance ? redactObjectRow(row, clearance) : row)
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* The check a direct write runs on each object's properties before its commit claims them. It
|
|
567
|
+
* refuses a value for a unique property this authority cannot read: whether the write is refused
|
|
568
|
+
* as taken would reveal which values objects hold, as a `getBy` would.
|
|
569
|
+
*/
|
|
570
|
+
async uniqueValueWriteCheck(
|
|
571
|
+
objectTypeId: string
|
|
572
|
+
): Promise<(properties: Readonly<Record<string, unknown>>) => void> {
|
|
573
|
+
const clearance = await this.#security.clearance.current()
|
|
574
|
+
const marked = this.#ontology.registry
|
|
575
|
+
.listUniqueProperties(objectTypeId)
|
|
576
|
+
.flatMap((property) => {
|
|
577
|
+
const marking = clearance?.missingMarking(objectTypeId, property.propertyId)
|
|
578
|
+
return marking === undefined ? [] : [{ propertyId: property.propertyId, marking }]
|
|
579
|
+
})
|
|
580
|
+
|
|
581
|
+
return (properties) => {
|
|
582
|
+
for (const { propertyId, marking } of marked) {
|
|
583
|
+
if (properties[propertyId] === undefined || properties[propertyId] === null) continue
|
|
584
|
+
|
|
585
|
+
throw new AuthorizationError(
|
|
586
|
+
`clearance:marking:${marking}`,
|
|
587
|
+
`[Sixb] Cannot write a value to '${objectTypeId}.${propertyId}': it is unique and requires clearance for marking '${marking}'.`
|
|
588
|
+
)
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* Refuse a write or a request that names an object type or link this authority cannot read,
|
|
595
|
+
* before any lookup: it would answer whether what it names exists, and land where the reader
|
|
596
|
+
* cannot see.
|
|
597
|
+
*/
|
|
598
|
+
async assertReadable(targets: ReadTargets): Promise<void> {
|
|
599
|
+
assertTargetsReadable(await this.#security.clearance.current(), targets)
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* Whether this reader sees only the objects of a type that a condition matches. A write or a
|
|
604
|
+
* request that names such an object finds it through this reader first: one it cannot find is
|
|
605
|
+
* hidden or missing, and both answer alike.
|
|
606
|
+
*/
|
|
607
|
+
viewsThroughCondition(objectTypeId: string): boolean {
|
|
608
|
+
return this.#security.viewsThroughCondition(objectTypeId)
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
/** Refuse a type this reader views neither whole nor through a condition. */
|
|
612
|
+
async assertViewable(objectTypeIds: readonly string[]): Promise<void> {
|
|
613
|
+
const clearance = await this.#security.clearance.current()
|
|
614
|
+
this.#security.assertObjectTypesViewable(objectTypeIds, clearance)
|
|
473
615
|
}
|
|
474
616
|
|
|
475
617
|
/** Enforce the delegated response budget without exposing or recombining its limits. */
|
|
476
618
|
assertVisibleOutputWithinLimit(value: unknown): void {
|
|
477
|
-
if (this.#authority.type !== "delegated") return
|
|
478
|
-
assertObjectReadOutputWithinLimit(value, this.#authority.objectRead.limits)
|
|
619
|
+
if (this.#security.authority.type !== "delegated") return
|
|
620
|
+
assertObjectReadOutputWithinLimit(value, this.#security.authority.objectRead.limits)
|
|
479
621
|
}
|
|
480
622
|
|
|
481
623
|
/** Admit adjacent telemetry work without exposing which authority policy was selected. */
|
|
482
624
|
admitTelemetryHistoryRead(
|
|
483
625
|
input: TelemetryHistoryReadWorkloadInput
|
|
484
626
|
): TelemetryHistoryReadAdmission {
|
|
485
|
-
return admitTelemetryHistoryReadWorkload(input, this.#authority.type === "delegated")
|
|
627
|
+
return admitTelemetryHistoryReadWorkload(input, this.#security.authority.type === "delegated")
|
|
486
628
|
}
|
|
487
629
|
|
|
488
|
-
#queryExecutorOptions() {
|
|
489
|
-
const admission = this.#executorAdmission()
|
|
490
|
-
|
|
630
|
+
#queryExecutorOptions(clearance: Clearance) {
|
|
631
|
+
const admission = this.#executorAdmission(clearance)
|
|
632
|
+
|
|
633
|
+
if (this.#security.authority.type === "delegated") {
|
|
491
634
|
// The selected storage instance is the private execution capability. Passing the delegated
|
|
492
635
|
// runtime token into the generic executor would either reject this admitted query or tempt a
|
|
493
636
|
// forgeable bypass flag; neither is needed at this nominal boundary.
|
|
494
637
|
return {
|
|
495
|
-
ontology: this.#ontology,
|
|
638
|
+
ontology: this.#ontology.registry,
|
|
496
639
|
storage: this.#storage,
|
|
497
|
-
embeddingModels: this.#
|
|
498
|
-
rerankingModels: this.#
|
|
640
|
+
embeddingModels: this.#models.embedding,
|
|
641
|
+
rerankingModels: this.#models.reranking,
|
|
499
642
|
...(admission === undefined ? {} : { admission }),
|
|
643
|
+
requestingUser: this.#security.requestingUser,
|
|
500
644
|
}
|
|
501
645
|
}
|
|
502
646
|
return {
|
|
503
|
-
ontology: this.#ontology,
|
|
504
|
-
embeddingModels: this.#
|
|
505
|
-
rerankingModels: this.#
|
|
647
|
+
ontology: this.#ontology.registry,
|
|
648
|
+
embeddingModels: this.#models.embedding,
|
|
649
|
+
rerankingModels: this.#models.reranking,
|
|
506
650
|
storage: this.#storage,
|
|
507
|
-
|
|
508
|
-
...(this.#runtime.authorization === undefined
|
|
509
|
-
? {}
|
|
510
|
-
: { authorization: this.#runtime.authorization }),
|
|
651
|
+
...this.#queryAuthorization(clearance),
|
|
511
652
|
...(admission === undefined ? {} : { admission }),
|
|
653
|
+
requestingUser: this.#security.requestingUser,
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* A principal's queries read the types this reader's security grants, including those its
|
|
659
|
+
* storage reads through a condition, which no view grant holds.
|
|
660
|
+
*/
|
|
661
|
+
#queryAuthorization(
|
|
662
|
+
clearance: Clearance
|
|
663
|
+
): Pick<QueryExecutorOptions, "readableObjectTypes" | "runtimeAuthorization"> {
|
|
664
|
+
const runtimeAuthorization = this.#security.runtime.runtimeAuthorization
|
|
665
|
+
if (this.#security.authority.type !== "principal") return { runtimeAuthorization }
|
|
666
|
+
|
|
667
|
+
const security = this.#security
|
|
668
|
+
return {
|
|
669
|
+
runtimeAuthorization,
|
|
670
|
+
readableObjectTypes: Object.freeze({
|
|
671
|
+
assert: (objectTypeIds: readonly string[]) =>
|
|
672
|
+
security.assertObjectTypesGranted(objectTypeIds, clearance),
|
|
673
|
+
has: (objectTypeId: string) => security.isObjectTypeGranted(objectTypeId, clearance),
|
|
674
|
+
}),
|
|
512
675
|
}
|
|
513
676
|
}
|
|
514
677
|
|
|
@@ -516,84 +679,102 @@ class AuthorizedObjectReaderImpl {
|
|
|
516
679
|
* The executor validates the query it runs, and that validation resolves default text fields.
|
|
517
680
|
* Every admission that narrows those fields must therefore apply there, not only beforehand.
|
|
518
681
|
*/
|
|
519
|
-
#executorAdmission(): ObjectQuerySemanticAdmission | undefined {
|
|
520
|
-
const
|
|
521
|
-
const selected = this.#
|
|
522
|
-
|
|
523
|
-
return selected
|
|
682
|
+
#executorAdmission(clearance: Clearance): ObjectQuerySemanticAdmission | undefined {
|
|
683
|
+
const admission = clearance && createClearanceQueryAdmission(clearance)
|
|
684
|
+
const selected = this.#security.delegation?.queryAdmission
|
|
685
|
+
|
|
686
|
+
if (selected && admission) return composeObjectQueryAdmissions(selected, admission)
|
|
687
|
+
return selected ?? admission
|
|
524
688
|
}
|
|
525
689
|
|
|
526
|
-
|
|
527
|
-
|
|
690
|
+
/**
|
|
691
|
+
* Resolve the user properties the query expands on rows already detached and redacted. Only an
|
|
692
|
+
* authority that may view the directory reads profiles; a delegated one never does.
|
|
693
|
+
*/
|
|
694
|
+
async #attachUsers(rows: readonly ObjectRow[], query: ObjectQuery): Promise<void> {
|
|
695
|
+
const plan = userExpansionPlan(normalizeObjectQuery(query))
|
|
696
|
+
if (!plan) return
|
|
697
|
+
|
|
698
|
+
await attachUserProfiles({
|
|
699
|
+
rows,
|
|
700
|
+
plan,
|
|
701
|
+
ontology: this.#ontology.registry,
|
|
702
|
+
projectId: this.#security.runtime.projectId,
|
|
703
|
+
canViewUsers: isRuntimeAllowed(this.#security.runtime, { kind: "users.view" }),
|
|
704
|
+
users: this.#users,
|
|
705
|
+
})
|
|
528
706
|
}
|
|
529
707
|
|
|
530
|
-
|
|
531
|
-
|
|
708
|
+
/**
|
|
709
|
+
* Whether the reader's storage selects each property of its object. A delegated reader selects
|
|
710
|
+
* what its share does. A principal reads a type it views through a condition object by object,
|
|
711
|
+
* so a hidden object and a missing one both select nothing; it selects every other property.
|
|
712
|
+
*/
|
|
713
|
+
async #selectsObjectProperties(
|
|
714
|
+
items: readonly CanReadObjectPropertyInput[]
|
|
715
|
+
): Promise<readonly boolean[]> {
|
|
716
|
+
const readsByObject = (item: CanReadObjectPropertyInput) =>
|
|
717
|
+
this.#security.authority.type === "delegated" ||
|
|
718
|
+
this.#security.viewsThroughCondition(item.objectTypeId)
|
|
719
|
+
|
|
720
|
+
const checked = items.filter(readsByObject)
|
|
721
|
+
const selected =
|
|
722
|
+
checked.length === 0
|
|
723
|
+
? []
|
|
724
|
+
: await this.#storage.selectsObjectProperties({
|
|
725
|
+
projectId: this.#security.runtime.projectId,
|
|
726
|
+
items: checked,
|
|
727
|
+
})
|
|
728
|
+
|
|
729
|
+
let next = 0
|
|
730
|
+
return items.map((item) => !readsByObject(item) || selected[next++] === true)
|
|
532
731
|
}
|
|
533
732
|
|
|
534
|
-
#
|
|
535
|
-
|
|
536
|
-
return validateObjectQueryWithAdmission(
|
|
537
|
-
query,
|
|
538
|
-
{ ontology: this.#ontology },
|
|
539
|
-
this.#delegatedQueryAdmission
|
|
540
|
-
)
|
|
733
|
+
#omitHidden<TRow extends ObjectRow>(row: TRow, clearance: Clearance): TRow {
|
|
734
|
+
return clearance ? omitHiddenProperties(row, clearance) : row
|
|
541
735
|
}
|
|
542
736
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
737
|
+
/**
|
|
738
|
+
* Detach a result whose rows went through {@link #omitHidden}, then list their redactions on
|
|
739
|
+
* the copy. Each row is deep-copied once, and never with a hidden value.
|
|
740
|
+
*/
|
|
741
|
+
#detachRows<TResult>(
|
|
742
|
+
result: TResult,
|
|
743
|
+
rows: (detached: TResult) => Iterable<ObjectRow | null>,
|
|
744
|
+
clearance: Clearance
|
|
745
|
+
): TResult {
|
|
746
|
+
const detached = detachReadResult(result)
|
|
747
|
+
if (clearance) {
|
|
748
|
+
for (const row of rows(detached)) if (row) attachRedactions(row, clearance)
|
|
553
749
|
}
|
|
554
750
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
751
|
+
return detached
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
#admitDelegatedQuery(query: ObjectQuery): AdmittedObjectQuery | undefined {
|
|
755
|
+
const admission = this.#security.delegation?.queryAdmission
|
|
756
|
+
if (!admission) return undefined
|
|
757
|
+
return validateObjectQueryWithAdmission(query, { ontology: this.#ontology.registry }, admission)
|
|
558
758
|
}
|
|
559
759
|
|
|
560
760
|
#resolveListObjectTypes(
|
|
561
|
-
requested: ListObjectsInput["objectTypeId"]
|
|
761
|
+
requested: ListObjectsInput["objectTypeId"],
|
|
762
|
+
clearance: Clearance
|
|
562
763
|
): ListObjectsInput["objectTypeId"] {
|
|
563
764
|
if (requested !== undefined) {
|
|
564
765
|
const objectTypeIds = typeof requested === "string" ? [requested] : [...new Set(requested)]
|
|
565
766
|
for (const objectTypeId of objectTypeIds) {
|
|
566
|
-
this.#ontology.resolveObjectType(objectTypeId)
|
|
767
|
+
this.#ontology.registry.resolveObjectType(objectTypeId)
|
|
567
768
|
}
|
|
568
|
-
this.#assertObjectTypesViewable(objectTypeIds)
|
|
769
|
+
this.#security.assertObjectTypesViewable(objectTypeIds, clearance)
|
|
569
770
|
return typeof requested === "string" ? requested : objectTypeIds
|
|
570
771
|
}
|
|
571
772
|
|
|
572
|
-
if (this.#authority.type === "unrestricted") return undefined
|
|
573
|
-
return this.#ontology
|
|
773
|
+
if (this.#security.authority.type === "unrestricted") return undefined
|
|
774
|
+
return this.#ontology.registry
|
|
574
775
|
.listObjectTypes()
|
|
575
776
|
.map((objectType) => objectType.id)
|
|
576
|
-
.filter((objectTypeId) => this.#isObjectTypeViewable(objectTypeId))
|
|
577
|
-
}
|
|
578
|
-
|
|
579
|
-
#isObjectTypeViewable(objectTypeId: string): boolean {
|
|
580
|
-
if (this.#authority.type === "delegated") {
|
|
581
|
-
return this.#delegatedObjectTypeIds?.has(objectTypeId) ?? false
|
|
582
|
-
}
|
|
583
|
-
return isAllowed(this.#runtime.authorization, { kind: "object.view", objectTypeId })
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
#isLinkViewable(link: ObjectLinkRow): boolean {
|
|
587
|
-
if (
|
|
588
|
-
!this.#isObjectTypeViewable(link.sourceTypeId) ||
|
|
589
|
-
!this.#isObjectTypeViewable(link.targetTypeId)
|
|
590
|
-
) {
|
|
591
|
-
return false
|
|
592
|
-
}
|
|
593
|
-
return (
|
|
594
|
-
this.#delegatedLinkDefinitions?.has(delegatedLinkDefinitionKey(link)) ??
|
|
595
|
-
this.#authority.type !== "delegated"
|
|
596
|
-
)
|
|
777
|
+
.filter((objectTypeId) => this.#security.isObjectTypeViewable(objectTypeId, clearance))
|
|
597
778
|
}
|
|
598
779
|
}
|
|
599
780
|
|
|
@@ -609,18 +790,32 @@ export function createAuthorizedObjectReader(input: {
|
|
|
609
790
|
readonly embeddingModels?: EmbeddingModelCatalog
|
|
610
791
|
readonly rerankingModels?: RerankingModelCatalog
|
|
611
792
|
readonly objectStorage: ObjectStorage
|
|
793
|
+
/** Markings of the dataset versions projections applied; the code's markings alone without. */
|
|
794
|
+
readonly appliedMarkings?: AppliedMarkings
|
|
795
|
+
/** The member directory expanded user properties resolve against. */
|
|
796
|
+
readonly users?: AuthUserStore
|
|
612
797
|
}): AuthorizedObjectReader {
|
|
613
798
|
const scope = captureExecutionScope(input.scope)
|
|
614
799
|
const projectId = scope.execution.projectId
|
|
615
800
|
const authority = resolveExecutionScopeAuthorization(projectId, scope)
|
|
616
|
-
const
|
|
617
|
-
|
|
618
|
-
|
|
801
|
+
const security = new ObjectReaderSecurity({
|
|
802
|
+
authorization: scope.authorization,
|
|
803
|
+
authority,
|
|
804
|
+
projectId,
|
|
619
805
|
ontology: input.ontology,
|
|
620
|
-
|
|
621
|
-
|
|
806
|
+
...(input.appliedMarkings === undefined ? {} : { appliedMarkings: input.appliedMarkings }),
|
|
807
|
+
requestedBy: scope.execution.requestedBy,
|
|
808
|
+
})
|
|
809
|
+
const storage = objectStorageForAuthority(security, input.objectStorage)
|
|
810
|
+
const reader = new AuthorizedObjectReaderImpl(readerConstructionKey, {
|
|
811
|
+
ontology: new ObjectReaderOntology(input.ontology, security),
|
|
812
|
+
security,
|
|
813
|
+
models: Object.freeze({
|
|
814
|
+
...(input.embeddingModels === undefined ? {} : { embedding: input.embeddingModels }),
|
|
815
|
+
...(input.rerankingModels === undefined ? {} : { reranking: input.rerankingModels }),
|
|
816
|
+
}),
|
|
622
817
|
storage,
|
|
623
|
-
|
|
818
|
+
...(input.users === undefined ? {} : { users: input.users }),
|
|
624
819
|
})
|
|
625
820
|
Object.freeze(reader)
|
|
626
821
|
return reader
|
|
@@ -640,29 +835,89 @@ export function getAuthorizedOntologyView(reader: AuthorizedObjectReader): Autho
|
|
|
640
835
|
}
|
|
641
836
|
|
|
642
837
|
/**
|
|
643
|
-
*
|
|
644
|
-
*
|
|
838
|
+
* What a reader resolved for this authority cannot read now. Events redact with it: an event of an
|
|
839
|
+
* object type the reader cannot read is not delivered, and the others are redacted like rows.
|
|
645
840
|
*/
|
|
646
|
-
function
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
841
|
+
export function readerClearance(reader: AuthorizedObjectReader): Promise<Clearance> {
|
|
842
|
+
return AuthorizedObjectReaderImpl.clearance(reader)
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
/**
|
|
846
|
+
* What a reader cannot read in an object event: the current markings, with those of the versions
|
|
847
|
+
* its values came from. A plain value for a reader those markings cannot affect, which reads no
|
|
848
|
+
* version.
|
|
849
|
+
*/
|
|
850
|
+
export function readerEventClearance(
|
|
851
|
+
reader: AuthorizedObjectReader,
|
|
852
|
+
sources: EventSources
|
|
853
|
+
): Clearance | Promise<Clearance> {
|
|
854
|
+
return AuthorizedObjectReaderImpl.eventClearance(reader, sources)
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
/** A condition a reader views an object type through, for a surface that decides per object. */
|
|
858
|
+
export interface ReaderViewCondition {
|
|
859
|
+
/** The condition, `currentUser()` bound, as the reader's storage reads it. */
|
|
860
|
+
readonly predicate: ObjectQueryPredicate
|
|
861
|
+
/**
|
|
862
|
+
* Whether a clearance hides the type, or a property the condition reads: which objects match
|
|
863
|
+
* would reveal it, so the reader reads no object of the type.
|
|
864
|
+
*/
|
|
865
|
+
hiddenBy(clearance: Clearance): boolean
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
/**
|
|
869
|
+
* The conditions a reader views object types through, by concrete type: empty for a reader that
|
|
870
|
+
* views each type it reads whole. A type absent here is decided by its grants alone, which deny a
|
|
871
|
+
* type viewed only under a condition. Events match the state they carry against these, and read
|
|
872
|
+
* through the reader what they cannot decide from it.
|
|
873
|
+
*/
|
|
874
|
+
export function readerViewConditions(
|
|
875
|
+
reader: AuthorizedObjectReader
|
|
876
|
+
): ReadonlyMap<string, ReaderViewCondition> {
|
|
877
|
+
return AuthorizedObjectReaderImpl.viewConditions(reader)
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
/** What a write or a request names: object types, and links by their source type. */
|
|
881
|
+
interface ReadTargets {
|
|
882
|
+
readonly objectTypeIds: readonly string[]
|
|
883
|
+
readonly links?: readonly { readonly objectTypeId: string; readonly linkId: string }[]
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
function assertTargetsReadable(clearance: Clearance, targets: ReadTargets): void {
|
|
887
|
+
if (!clearance) return
|
|
888
|
+
|
|
889
|
+
for (const objectTypeId of targets.objectTypeIds) {
|
|
890
|
+
const unreadable = clearance.unreadableType(objectTypeId)
|
|
891
|
+
if (unreadable) throw unreadableError(unreadable)
|
|
657
892
|
}
|
|
893
|
+
|
|
894
|
+
for (const link of targets.links ?? []) {
|
|
895
|
+
const unreadable = clearance.unreadableLink(link.objectTypeId, link.linkId)
|
|
896
|
+
if (unreadable) throw unreadableError(unreadable)
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
function hidesProperty(
|
|
901
|
+
item: { readonly objectTypeId: string; readonly propertyId: string },
|
|
902
|
+
clearance: Clearance
|
|
903
|
+
): boolean {
|
|
904
|
+
return clearance?.missingMarking(item.objectTypeId, item.propertyId) !== undefined
|
|
658
905
|
}
|
|
659
906
|
|
|
660
907
|
function objectStorageForAuthority(
|
|
661
|
-
|
|
908
|
+
security: ObjectReaderSecurity,
|
|
662
909
|
objectStorage: ObjectStorage
|
|
663
910
|
): ObjectReadStorage {
|
|
911
|
+
const authority = security.authority
|
|
912
|
+
|
|
664
913
|
switch (authority.type) {
|
|
665
914
|
case "principal":
|
|
915
|
+
return security.conditionalScope
|
|
916
|
+
? objectStorage.createConditionalReadScope({
|
|
917
|
+
projectId: authority.projectId,
|
|
918
|
+
scope: security.conditionalScope,
|
|
919
|
+
})
|
|
920
|
+
: objectStorage
|
|
666
921
|
case "unrestricted":
|
|
667
922
|
return objectStorage
|
|
668
923
|
case "delegated":
|
|
@@ -679,41 +934,6 @@ function objectStorageForAuthority(
|
|
|
679
934
|
}
|
|
680
935
|
}
|
|
681
936
|
|
|
682
|
-
function ontologySelectionForAuthority(
|
|
683
|
-
authority: ResolvedExecutionAuthority,
|
|
684
|
-
ontology: OntologyRegistry
|
|
685
|
-
): AuthorizedOntologySelection {
|
|
686
|
-
switch (authority.type) {
|
|
687
|
-
case "unrestricted":
|
|
688
|
-
return { kind: "all" }
|
|
689
|
-
case "principal":
|
|
690
|
-
return {
|
|
691
|
-
kind: "types",
|
|
692
|
-
objectTypeIds: ontology
|
|
693
|
-
.listObjectTypes()
|
|
694
|
-
.filter((objectType) =>
|
|
695
|
-
isAllowed(authority.context, {
|
|
696
|
-
kind: "object.view",
|
|
697
|
-
objectTypeId: objectType.id,
|
|
698
|
-
})
|
|
699
|
-
)
|
|
700
|
-
.map((objectType) => objectType.id),
|
|
701
|
-
}
|
|
702
|
-
case "delegated":
|
|
703
|
-
return { kind: "selected", scope: authority.objectRead.scope }
|
|
704
|
-
}
|
|
705
|
-
}
|
|
706
|
-
|
|
707
|
-
function delegatedLinkDefinitionKey(
|
|
708
|
-
input:
|
|
709
|
-
| Pick<CompiledObjectReadStep, "sourceObjectTypeId" | "linkId" | "targetObjectTypeId">
|
|
710
|
-
| Pick<ObjectLinkRow, "sourceTypeId" | "linkId" | "targetTypeId">
|
|
711
|
-
): string {
|
|
712
|
-
return "sourceObjectTypeId" in input
|
|
713
|
-
? JSON.stringify([input.sourceObjectTypeId, input.linkId, input.targetObjectTypeId])
|
|
714
|
-
: JSON.stringify([input.sourceTypeId, input.linkId, input.targetTypeId])
|
|
715
|
-
}
|
|
716
|
-
|
|
717
937
|
/**
|
|
718
938
|
* Storage providers may optimize trusted reads with live references. Values crossing the
|
|
719
939
|
* application-facing authorization boundary must not retain them.
|