@sixb/core 0.1.21 → 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 +63 -59
- 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 +14 -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/timeline.d.ts +8 -1
- package/dist/activity/timeline.d.ts.map +1 -1
- 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 +19 -8
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +159 -86
- 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/streams/index.d.ts +3 -2
- package/dist/agents/streams/index.d.ts.map +1 -1
- package/dist/agents/streams/index.js +7 -3
- 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 +5 -3
- 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 +23 -4
- 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/canvas.d.ts +92 -0
- package/dist/artifacts/canvas.d.ts.map +1 -0
- package/dist/artifacts/csv.d.ts +5 -0
- package/dist/artifacts/csv.d.ts.map +1 -1
- package/dist/artifacts/errors.d.ts +7 -2
- package/dist/artifacts/errors.d.ts.map +1 -1
- package/dist/artifacts/execution.d.ts +102 -7
- package/dist/artifacts/execution.d.ts.map +1 -1
- 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 +11 -9
- package/dist/artifacts/frames/assets.d.ts.map +1 -1
- 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 +6 -6
- package/dist/artifacts/frames/grants.d.ts.map +1 -1
- package/dist/artifacts/frames/index.d.ts +4 -2
- package/dist/artifacts/frames/index.d.ts.map +1 -1
- package/dist/artifacts/frames/index.js +444 -51
- package/dist/artifacts/frames/index.js.map +10 -8
- package/dist/artifacts/frames/kit.d.ts +10 -5
- package/dist/artifacts/frames/kit.d.ts.map +1 -1
- package/dist/artifacts/frames/probe.d.ts +16 -12
- package/dist/artifacts/frames/probe.d.ts.map +1 -1
- package/dist/artifacts/frames/protocol.d.ts +79 -10
- package/dist/artifacts/frames/protocol.d.ts.map +1 -1
- package/dist/artifacts/frames/runtime.d.ts +27 -9
- package/dist/artifacts/frames/runtime.d.ts.map +1 -1
- package/dist/artifacts/index.d.ts +11 -5
- package/dist/artifacts/index.d.ts.map +1 -1
- package/dist/artifacts/index.js +128 -6
- package/dist/artifacts/index.js.map +3 -3
- package/dist/artifacts/kinds.d.ts +1 -1
- package/dist/artifacts/kinds.d.ts.map +1 -1
- package/dist/artifacts/limits.d.ts +30 -0
- package/dist/artifacts/limits.d.ts.map +1 -1
- 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 +27 -1
- package/dist/artifacts/outline.d.ts.map +1 -1
- package/dist/artifacts/publish/index.d.ts +2 -0
- package/dist/artifacts/publish/index.d.ts.map +1 -1
- package/dist/artifacts/publish/index.js +59 -19
- package/dist/artifacts/publish/index.js.map +1 -1
- package/dist/artifacts/publish/publish.d.ts +43 -11
- package/dist/artifacts/publish/publish.d.ts.map +1 -1
- 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 +6 -3
- package/dist/artifacts/publish/references.d.ts.map +1 -1
- 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/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 +11 -3
- package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -1
- package/dist/artifacts/publish/validate/slides.d.ts +1 -7
- package/dist/artifacts/publish/validate/slides.d.ts.map +1 -1
- package/dist/artifacts/queries.d.ts +95 -0
- package/dist/artifacts/queries.d.ts.map +1 -0
- package/dist/artifacts/resolve.d.ts +6 -0
- package/dist/artifacts/resolve.d.ts.map +1 -1
- 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/tones.d.ts +8 -0
- package/dist/artifacts/tones.d.ts.map +1 -0
- package/dist/artifacts/workbook.d.ts +76 -5
- package/dist/artifacts/workbook.d.ts.map +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +14 -11
- 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 +15 -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 +12 -7
- 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/bootstrap/index.js +69 -65
- package/dist/bootstrap/index.js.map +2 -2
- package/dist/{chunk-ky3j490c.js → chunk-02bzjgnt.js} +6 -6
- package/dist/{chunk-ky3j490c.js.map → chunk-02bzjgnt.js.map} +1 -1
- package/dist/{chunk-mfs23znk.js → chunk-07kkp2e1.js} +1 -1
- package/dist/{chunk-c1rxbz5y.js → chunk-098anw4f.js} +21 -19
- package/dist/chunk-098anw4f.js.map +12 -0
- package/dist/{chunk-z58tm0hm.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-18sk89cg.js +47 -0
- package/dist/chunk-18sk89cg.js.map +10 -0
- package/dist/{chunk-e17zdm62.js → chunk-1t6k1avb.js} +1 -1
- 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-kge7k6ey.js → chunk-2fn60nvs.js} +2 -2
- 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-mjddfa7k.js → chunk-3fqxbn31.js} +2 -24
- package/dist/{chunk-mjddfa7k.js.map → chunk-3fqxbn31.js.map} +3 -4
- package/dist/{chunk-y0c4e6ex.js → chunk-3gbefjg5.js} +1 -1
- package/dist/{chunk-5hx48dnn.js → chunk-45ngkxkp.js} +52 -31
- package/dist/chunk-45ngkxkp.js.map +13 -0
- package/dist/{chunk-cy4mbddw.js → chunk-48jezz3j.js} +1 -1
- package/dist/{chunk-561r0yc9.js → chunk-4b26qwbg.js} +13 -13
- package/dist/{chunk-561r0yc9.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-8frc8a4j.js → chunk-65pyhyas.js} +90 -83
- package/dist/chunk-65pyhyas.js.map +20 -0
- package/dist/{chunk-hwksyjks.js → chunk-661ezhks.js} +182 -6
- package/dist/chunk-661ezhks.js.map +11 -0
- package/dist/{chunk-447a5c0p.js → chunk-6n69k945.js} +2 -2
- package/dist/{chunk-0bphap9y.js → chunk-6p0pastb.js} +5 -5
- package/dist/{chunk-9j4jw7as.js → chunk-6rrtzea3.js} +18 -5
- package/dist/chunk-6rrtzea3.js.map +14 -0
- package/dist/{chunk-431pyp2c.js → chunk-6y0mkhex.js} +2 -2
- package/dist/{chunk-f4pamkt9.js → chunk-73v685wb.js} +10 -10
- package/dist/{chunk-f4pamkt9.js.map → chunk-73v685wb.js.map} +3 -3
- package/dist/{chunk-akzryx9h.js → chunk-7gr4j2eq.js} +7836 -5047
- package/dist/chunk-7gr4j2eq.js.map +120 -0
- package/dist/{chunk-bk9svbcq.js → chunk-7mc2wkre.js} +386 -86
- package/dist/chunk-7mc2wkre.js.map +50 -0
- package/dist/{chunk-6rqgmkde.js → chunk-7z5p905k.js} +335 -703
- package/dist/chunk-7z5p905k.js.map +22 -0
- 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-az47zep4.js +41 -0
- package/dist/chunk-az47zep4.js.map +10 -0
- package/dist/{chunk-s7jg7pmn.js → chunk-bab05bhg.js} +1 -1
- package/dist/{chunk-858emn8m.js → chunk-bktev1ds.js} +14 -11
- package/dist/{chunk-858emn8m.js.map → chunk-bktev1ds.js.map} +3 -3
- package/dist/{chunk-dhcv7yxc.js → chunk-c0vk1djt.js} +5 -3
- package/dist/chunk-c0vk1djt.js.map +11 -0
- package/dist/chunk-c69nj7se.js +3 -0
- package/dist/{chunk-7n30ybym.js.map → chunk-c69nj7se.js.map} +1 -1
- package/dist/{chunk-q5e5tv4b.js → chunk-c844dkwd.js} +1 -1
- package/dist/{chunk-g257jwnc.js → chunk-cdk3egjj.js} +17 -4
- 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-cfj9dfbb.js → chunk-d2m879s4.js} +2 -2
- package/dist/{chunk-arns890k.js → chunk-d7vyc7k6.js} +2 -2
- package/dist/chunk-d7vyc7k6.js.map +10 -0
- package/dist/{chunk-q7gn29y3.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-cn0fwwhy.js → chunk-efmm01gj.js} +108 -1045
- package/dist/chunk-efmm01gj.js.map +18 -0
- package/dist/{chunk-918wwnaa.js → chunk-ezne9wc9.js} +1224 -430
- package/dist/chunk-ezne9wc9.js.map +71 -0
- package/dist/{chunk-tbc1ngpd.js → chunk-fe8zwt8b.js} +58 -12
- package/dist/{chunk-tbc1ngpd.js.map → chunk-fe8zwt8b.js.map} +5 -4
- 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-1cc1xaf3.js → chunk-fp2kq35z.js} +26 -10
- package/dist/{chunk-1cc1xaf3.js.map → chunk-fp2kq35z.js.map} +5 -5
- package/dist/{chunk-vvxtn22d.js → chunk-g663fahq.js} +2 -2
- package/dist/{chunk-k43ct2ke.js → chunk-gvj5cd3b.js} +16 -9
- package/dist/chunk-gvj5cd3b.js.map +12 -0
- package/dist/{chunk-rmakanzx.js → chunk-h33shhq6.js} +5 -5
- package/dist/{chunk-nn5xnx3s.js → chunk-h3pbv7n8.js} +1738 -38
- package/dist/chunk-h3pbv7n8.js.map +48 -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-d09e3rax.js → chunk-hwarjrgf.js} +1 -1
- package/dist/{chunk-vf57cr4t.js → chunk-hyesv9dv.js} +1 -1
- 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-kcqpk9w1.js +75 -0
- package/dist/chunk-kcqpk9w1.js.map +10 -0
- package/dist/{chunk-5vems3nx.js → chunk-m2nevja0.js} +2 -2
- 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-d7dnxdep.js → chunk-n9zpx9c6.js} +4 -4
- package/dist/{chunk-xvsc5m8n.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-y5tah2kf.js → chunk-q4pmvkg0.js} +1 -1
- package/dist/chunk-qhqgp4jf.js +1418 -0
- package/dist/chunk-qhqgp4jf.js.map +22 -0
- package/dist/{chunk-48qjhh6v.js → chunk-qx00vjrj.js} +19 -60
- package/dist/chunk-qx00vjrj.js.map +13 -0
- package/dist/{chunk-5948n82c.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-d5rjr8c0.js → chunk-vabga7fk.js} +1 -1
- package/dist/{chunk-dhdha526.js → chunk-vhbw5sqm.js} +26 -2
- package/dist/chunk-vhbw5sqm.js.map +10 -0
- package/dist/{chunk-e6k4thh5.js → chunk-vpgwq5nf.js} +98 -12
- package/dist/chunk-vpgwq5nf.js.map +21 -0
- package/dist/{chunk-61y5xs4p.js → chunk-vyt322b6.js} +69 -50
- package/dist/{chunk-61y5xs4p.js.map → chunk-vyt322b6.js.map} +4 -4
- package/dist/chunk-waqk73p1.js +2380 -0
- package/dist/chunk-waqk73p1.js.map +23 -0
- package/dist/chunk-wsc1brye.js +27 -0
- package/dist/chunk-wsc1brye.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-6vb4st8k.js → chunk-yc9ners4.js} +120 -19
- package/dist/{chunk-6vb4st8k.js.map → chunk-yc9ners4.js.map} +8 -8
- package/dist/{chunk-dvd2fp9q.js → chunk-zbc929zg.js} +28 -4
- 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/write.js +5 -5
- package/dist/error-reporting/internal.js +3 -3
- package/dist/errors/catalog.d.ts +26 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +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.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 +8 -10
- 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 +63 -57
- 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 +51 -2
- 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-ontology.d.ts +2 -2
- package/dist/execution/object-reader-ontology.d.ts.map +1 -1
- package/dist/execution/object-reader-security.d.ts +24 -3
- package/dist/execution/object-reader-security.d.ts.map +1 -1
- 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 +61 -57
- 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 +64 -56
- 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 +32 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +137 -126
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/index.js +5 -5
- 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 +45 -41
- 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 +44 -34
- 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/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 +68 -58
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +3 -0
- 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/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 +49 -44
- 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/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/index.d.ts +2 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +11 -7
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/internal.js +7 -5
- 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.js +43 -40
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +36 -33
- 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/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.js +42 -38
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +2 -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/index.js +7 -6
- package/dist/sandboxes/index.js.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/grants.d.ts +12 -4
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/internal.js +1 -1
- package/dist/security/project.d.ts +4 -1
- package/dist/security/project.d.ts.map +1 -1
- package/dist/security/public.js +2 -2
- package/dist/security/registry.d.ts +6 -0
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +47 -9
- 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 +34 -31
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/action-runs/types.d.ts +1 -1
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- 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 +120 -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 -5
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +565 -13
- 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 +5 -4
- 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 +12 -2
- package/dist/storage/artifacts/errors.d.ts.map +1 -1
- package/dist/storage/artifacts/in-memory.d.ts +23 -2
- package/dist/storage/artifacts/in-memory.d.ts.map +1 -1
- package/dist/storage/artifacts/index.d.ts +2 -2
- package/dist/storage/artifacts/index.d.ts.map +1 -1
- package/dist/storage/artifacts/record.d.ts +19 -2
- package/dist/storage/artifacts/record.d.ts.map +1 -1
- package/dist/storage/artifacts/types.d.ts +87 -8
- package/dist/storage/artifacts/types.d.ts.map +1 -1
- 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/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 +40 -9
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/executions/in-memory.d.ts +2 -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/types.d.ts +15 -0
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.js +15 -12
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/index.d.ts +13 -11
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +50 -39
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +2 -2
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +19 -8
- 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/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 +4 -1
- 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/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 +2 -2
- package/dist/storage/share-grants/provider.js +4 -3
- package/dist/storage/share-grants/provider.js.map +1 -1
- package/dist/storage/types.d.ts +2 -2
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +15 -12
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +42 -39
- package/dist/syncs/index.js.map +1 -1
- 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.map +1 -1
- 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 +9 -5
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +7938 -3743
- package/dist/testing/index.js.map +29 -25
- 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 +34 -31
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +4 -6
- 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 +67 -63
- 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 +6 -2
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/actions/commit-edits.ts +6 -1
- package/src/actions/execution.ts +42 -15
- package/src/actions/read-facade.ts +33 -0
- package/src/actions/request.ts +224 -71
- 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 +72 -0
- package/src/actions/types/context.ts +20 -3
- package/src/actions/validators.ts +19 -8
- package/src/activity/README.md +5 -2
- package/src/activity/timeline.ts +39 -78
- 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 +55 -0
- 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 -69
- package/src/agents/run-scope.ts +134 -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 +35 -10
- package/src/agents/validation.ts +2 -0
- package/src/artifacts/access.ts +125 -0
- package/src/artifacts/canvas.ts +369 -0
- package/src/artifacts/csv.ts +10 -0
- package/src/artifacts/errors.ts +12 -1
- package/src/artifacts/execution.ts +436 -36
- 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 +35 -19
- package/src/artifacts/frames/entries.ts +35 -0
- package/src/artifacts/frames/grants.ts +10 -9
- package/src/artifacts/frames/index.ts +8 -2
- package/src/artifacts/frames/kit.ts +191 -14
- package/src/artifacts/frames/probe.ts +66 -18
- package/src/artifacts/frames/protocol.ts +164 -10
- package/src/artifacts/frames/runtime.ts +273 -28
- package/src/artifacts/index.ts +66 -2
- package/src/artifacts/kinds.ts +1 -1
- package/src/artifacts/limits.ts +31 -0
- package/src/artifacts/live-sheet.ts +345 -0
- package/src/artifacts/outline.ts +34 -1
- package/src/artifacts/publish/index.ts +2 -0
- package/src/artifacts/publish/publish.ts +120 -34
- package/src/artifacts/publish/queries.ts +336 -0
- package/src/artifacts/publish/references.ts +18 -13
- package/src/artifacts/publish/validate/canvas.ts +118 -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 +115 -69
- package/src/artifacts/publish/validate/slides.ts +11 -63
- package/src/artifacts/queries.ts +512 -0
- package/src/artifacts/resolve.ts +20 -5
- 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/tones.ts +20 -0
- package/src/artifacts/workbook.ts +374 -15
- 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 +47 -0
- package/src/authorization/event-visibility.ts +17 -16
- package/src/authorization/grant-kinds.ts +32 -0
- 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/errors/catalog.ts +26 -1
- package/src/errors/internal.ts +17 -8
- package/src/events/definitions.ts +26 -0
- package/src/events/execution.ts +43 -6
- 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 +238 -32
- package/src/execution/lineage.ts +14 -0
- package/src/execution/object-reader-ontology.ts +11 -14
- package/src/execution/object-reader-security.ts +134 -10
- 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 +206 -7
- package/src/index.ts +99 -2
- 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/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 +12 -3
- package/src/objects/link/endpoints.ts +42 -11
- package/src/objects/link/remove.ts +25 -10
- package/src/objects/link/upsert-batch.ts +2 -0
- package/src/objects/link/upsert.ts +18 -12
- package/src/objects/materializer-adapter.ts +55 -18
- package/src/objects/object/delete.ts +24 -7
- package/src/objects/object/upsert-batch.ts +44 -14
- package/src/objects/object/upsert.ts +23 -5
- 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/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 +3 -0
- package/src/ontology/docs-markdown.ts +1 -0
- 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/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/host.ts +18 -1
- package/src/runtime/index.ts +2 -0
- package/src/runtime/resolve-definitions.ts +3 -0
- package/src/runtime/sixb.ts +35 -8
- package/src/runtime/types.ts +99 -9
- 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/grants.ts +155 -10
- package/src/security/index.ts +3 -1
- package/src/security/project.ts +6 -1
- package/src/security/registry.ts +32 -7
- package/src/security/types.ts +54 -9
- package/src/security/validation.ts +27 -11
- package/src/security/view-conditions.ts +215 -0
- package/src/shares/execution.ts +43 -10
- package/src/storage/action-runs/types.ts +2 -0
- package/src/storage/agents/errors.ts +3 -0
- package/src/storage/agents/in-memory.ts +779 -32
- package/src/storage/agents/index.ts +42 -0
- package/src/storage/agents/provider.ts +733 -8
- package/src/storage/agents/types.ts +620 -12
- 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 +13 -1
- package/src/storage/artifacts/in-memory.ts +156 -8
- package/src/storage/artifacts/index.ts +6 -1
- package/src/storage/artifacts/record.ts +61 -1
- package/src/storage/artifacts/types.ts +92 -8
- package/src/storage/auth/in-memory/auth-storage.ts +27 -2
- package/src/storage/auth/in-memory/users.ts +40 -6
- package/src/storage/auth/index.ts +1 -0
- package/src/storage/auth/types.ts +43 -7
- package/src/storage/executions/in-memory.ts +32 -0
- package/src/storage/executions/index.ts +2 -0
- package/src/storage/executions/types.ts +17 -0
- package/src/storage/index.ts +69 -1
- package/src/storage/internal.ts +9 -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/unique-values.ts +62 -0
- package/src/storage/ontology/index.ts +10 -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/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/types.ts +2 -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 +1188 -33
- 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 +338 -4
- package/src/testing/auth-storage-contract.ts +550 -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 +53 -0
- package/src/testing/file-upload-session-storage-contract.ts +12 -24
- package/src/testing/index.ts +17 -4
- package/src/testing/lake-storage-contract.ts +22 -28
- package/src/testing/materializer-storage-contract.ts +36 -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 +230 -21
- 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 +13 -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 +6 -0
- package/src/workflows/request.ts +46 -8
- package/src/workflows/types.ts +6 -2
- package/src/workflows/validation.ts +23 -9
- package/dist/chunk-29yx306f.js.map +0 -22
- package/dist/chunk-3jms7je7.js +0 -14
- package/dist/chunk-3jms7je7.js.map +0 -10
- package/dist/chunk-3qct2mdc.js +0 -297
- package/dist/chunk-3qct2mdc.js.map +0 -12
- package/dist/chunk-48qjhh6v.js.map +0 -13
- package/dist/chunk-4as3wt1c.js.map +0 -12
- package/dist/chunk-5948n82c.js.map +0 -10
- package/dist/chunk-5hx48dnn.js.map +0 -14
- package/dist/chunk-6rqgmkde.js.map +0 -29
- 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-7q8t23v4.js +0 -467
- package/dist/chunk-7q8t23v4.js.map +0 -14
- package/dist/chunk-8frc8a4j.js.map +0 -20
- package/dist/chunk-918wwnaa.js.map +0 -68
- package/dist/chunk-91mg3nj9.js.map +0 -12
- package/dist/chunk-96yw3pwd.js.map +0 -10
- package/dist/chunk-9j4jw7as.js.map +0 -14
- package/dist/chunk-9k93ah50.js.map +0 -11
- package/dist/chunk-9kgkfg6v.js +0 -502
- package/dist/chunk-9kgkfg6v.js.map +0 -14
- package/dist/chunk-akzryx9h.js.map +0 -100
- package/dist/chunk-arns890k.js.map +0 -10
- package/dist/chunk-bk9svbcq.js.map +0 -49
- package/dist/chunk-c06hmxyy.js +0 -31
- package/dist/chunk-c06hmxyy.js.map +0 -10
- package/dist/chunk-c1rxbz5y.js.map +0 -12
- package/dist/chunk-cn0fwwhy.js.map +0 -19
- package/dist/chunk-dhcv7yxc.js.map +0 -11
- package/dist/chunk-dhdha526.js.map +0 -10
- package/dist/chunk-dvd2fp9q.js.map +0 -13
- package/dist/chunk-e6k4thh5.js.map +0 -19
- package/dist/chunk-ere85b8y.js.map +0 -15
- package/dist/chunk-g257jwnc.js.map +0 -12
- package/dist/chunk-hwksyjks.js.map +0 -11
- package/dist/chunk-k43ct2ke.js.map +0 -12
- package/dist/chunk-nn5xnx3s.js.map +0 -40
- 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-v4jbb3rs.js.map +0 -10
- package/dist/chunk-yxd3nnqt.js.map +0 -11
- 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-z58tm0hm.js.map → chunk-0phpbbvm.js.map} +0 -0
- /package/dist/{chunk-e17zdm62.js.map → chunk-1t6k1avb.js.map} +0 -0
- /package/dist/{chunk-kge7k6ey.js.map → chunk-2fn60nvs.js.map} +0 -0
- /package/dist/{chunk-y0c4e6ex.js.map → chunk-3gbefjg5.js.map} +0 -0
- /package/dist/{chunk-cy4mbddw.js.map → chunk-48jezz3j.js.map} +0 -0
- /package/dist/{chunk-twe4dx8p.js → chunk-5tfev0fv.js} +0 -0
- /package/dist/{chunk-twe4dx8p.js.map → chunk-5tfev0fv.js.map} +0 -0
- /package/dist/{chunk-447a5c0p.js.map → chunk-6n69k945.js.map} +0 -0
- /package/dist/{chunk-0bphap9y.js.map → chunk-6p0pastb.js.map} +0 -0
- /package/dist/{chunk-431pyp2c.js.map → chunk-6y0mkhex.js.map} +0 -0
- /package/dist/{chunk-s7jg7pmn.js.map → chunk-bab05bhg.js.map} +0 -0
- /package/dist/{chunk-q5e5tv4b.js.map → chunk-c844dkwd.js.map} +0 -0
- /package/dist/{chunk-cfj9dfbb.js.map → chunk-d2m879s4.js.map} +0 -0
- /package/dist/{chunk-q7gn29y3.js.map → chunk-dp0cdtj2.js.map} +0 -0
- /package/dist/{chunk-br3k6qbf.js.map → chunk-fm62y49k.js.map} +0 -0
- /package/dist/{chunk-vvxtn22d.js.map → chunk-g663fahq.js.map} +0 -0
- /package/dist/{chunk-rmakanzx.js.map → chunk-h33shhq6.js.map} +0 -0
- /package/dist/{chunk-d09e3rax.js.map → chunk-hwarjrgf.js.map} +0 -0
- /package/dist/{chunk-vf57cr4t.js.map → chunk-hyesv9dv.js.map} +0 -0
- /package/dist/{chunk-5vems3nx.js.map → chunk-m2nevja0.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-d7dnxdep.js.map → chunk-n9zpx9c6.js.map} +0 -0
- /package/dist/{chunk-xvsc5m8n.js.map → chunk-npcr0228.js.map} +0 -0
- /package/dist/{chunk-y5tah2kf.js.map → chunk-q4pmvkg0.js.map} +0 -0
- /package/dist/{chunk-d5rjr8c0.js.map → chunk-vabga7fk.js.map} +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { AuthRuntimeError } from "./errors"
|
|
2
|
+
import type { UpdateOwnProfileInput } from "./types"
|
|
3
|
+
|
|
4
|
+
const MAX_DISPLAY_NAME_LENGTH = 100
|
|
5
|
+
const MAX_AVATAR_URL_LENGTH = 2048
|
|
6
|
+
|
|
7
|
+
// What a name must not carry: control characters, unpaired surrogates, bidirectional overrides and
|
|
8
|
+
// isolates, and line or paragraph separators. Other format characters stay, such as the zero-width
|
|
9
|
+
// joiner emoji are built with.
|
|
10
|
+
const FORBIDDEN_NAME_CHARACTERS = /[\p{Cc}\p{Cs}\u202A-\u202E\u2066-\u2069\u2028\u2029]/u
|
|
11
|
+
const VISIBLE_CHARACTER = /[^\p{Z}\p{Cf}]/u
|
|
12
|
+
|
|
13
|
+
// Plain http only reaches a picture served by the developer's own machine.
|
|
14
|
+
const LOOPBACK_HOSTS: ReadonlySet<string> = new Set(["localhost", "127.0.0.1", "[::1]"])
|
|
15
|
+
|
|
16
|
+
/** Validate the changes a person makes to their own profile. An empty value clears the field. */
|
|
17
|
+
export function normalizeProfileChanges(input: UpdateOwnProfileInput): UpdateOwnProfileInput {
|
|
18
|
+
if (input.displayName === undefined && input.avatarUrl === undefined) {
|
|
19
|
+
throw new AuthRuntimeError(
|
|
20
|
+
"invalid_auth_input",
|
|
21
|
+
"[Sixb] A profile update needs displayName or avatarUrl."
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const changes: { displayName?: string | null; avatarUrl?: string | null } = {}
|
|
26
|
+
if (input.displayName !== undefined) {
|
|
27
|
+
changes.displayName =
|
|
28
|
+
input.displayName === null ? null : normalizeDisplayName(input.displayName)
|
|
29
|
+
}
|
|
30
|
+
if (input.avatarUrl !== undefined) {
|
|
31
|
+
changes.avatarUrl = input.avatarUrl === null ? null : normalizeAvatarUrl(input.avatarUrl)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return changes
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* A name a sign-in supplies, such as one an identity provider sent, held to the rules a person's own
|
|
39
|
+
* name follows. A value that breaks them counts as not sent, so it never makes a sign-in fail.
|
|
40
|
+
*/
|
|
41
|
+
export function signInDisplayName(value: unknown): string | undefined {
|
|
42
|
+
const name = typeof value === "string" ? value.trim() : ""
|
|
43
|
+
return name && displayNameProblem(name) === null ? name : undefined
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** A picture a sign-in supplies, treated as {@link signInDisplayName} treats a name. */
|
|
47
|
+
export function signInAvatarUrl(value: unknown): string | undefined {
|
|
48
|
+
return typeof value === "string" ? (canonicalAvatarUrl(value.trim()) ?? undefined) : undefined
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function normalizeDisplayName(value: string): string | null {
|
|
52
|
+
const name = value.trim()
|
|
53
|
+
if (!name) {
|
|
54
|
+
return null
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const problem = displayNameProblem(name)
|
|
58
|
+
if (problem) {
|
|
59
|
+
throw new AuthRuntimeError("invalid_auth_input", problem)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return name
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function normalizeAvatarUrl(value: string): string | null {
|
|
66
|
+
const url = value.trim()
|
|
67
|
+
if (!url) {
|
|
68
|
+
return null
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const canonical = canonicalAvatarUrl(url)
|
|
72
|
+
if (!canonical) {
|
|
73
|
+
throw new AuthRuntimeError(
|
|
74
|
+
"invalid_auth_input",
|
|
75
|
+
`[Sixb] An avatar URL must be an https URL of at most ${MAX_AVATAR_URL_LENGTH} characters, without a user name or password.`
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return canonical
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Why a trimmed, non-empty name cannot be used, or null when it can. The limit counts code points,
|
|
83
|
+
// so an emoji is one character. A code point is at most two UTF-16 units, so a string longer than
|
|
84
|
+
// twice the limit is refused before it is split, which an unauthenticated sign-in could make costly.
|
|
85
|
+
function displayNameProblem(name: string): string | null {
|
|
86
|
+
if (name.length > MAX_DISPLAY_NAME_LENGTH * 2 || [...name].length > MAX_DISPLAY_NAME_LENGTH) {
|
|
87
|
+
return `[Sixb] A display name can be at most ${MAX_DISPLAY_NAME_LENGTH} characters.`
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (FORBIDDEN_NAME_CHARACTERS.test(name)) {
|
|
91
|
+
return "[Sixb] A display name cannot contain control, bidirectional or line separator characters."
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (!VISIBLE_CHARACTER.test(name)) {
|
|
95
|
+
return "[Sixb] A display name needs at least one visible character."
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return null
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// The app loads pictures over https only, so that is all a profile keeps, written as the browser
|
|
102
|
+
// would resolve it.
|
|
103
|
+
function canonicalAvatarUrl(value: string): string | null {
|
|
104
|
+
let url: URL
|
|
105
|
+
try {
|
|
106
|
+
url = new URL(value)
|
|
107
|
+
} catch {
|
|
108
|
+
return null
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const secure =
|
|
112
|
+
url.protocol === "https:" || (url.protocol === "http:" && LOOPBACK_HOSTS.has(url.hostname))
|
|
113
|
+
if (!secure || url.username || url.password || url.href.length > MAX_AVATAR_URL_LENGTH) {
|
|
114
|
+
return null
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return url.href
|
|
118
|
+
}
|
package/src/auth/runtime.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto"
|
|
2
2
|
import { type AuthorizationContext, resolveAuthorizationContext } from "../authorization"
|
|
3
|
+
import type { DomainEventLog } from "../events/service"
|
|
4
|
+
import type { EventDraft } from "../events/types"
|
|
3
5
|
import {
|
|
4
6
|
canPerformMembershipOperation,
|
|
5
7
|
type GroupReference,
|
|
@@ -14,7 +16,7 @@ import {
|
|
|
14
16
|
type AccessTokenRecord,
|
|
15
17
|
type AuthStorage,
|
|
16
18
|
AuthStorageError,
|
|
17
|
-
type
|
|
19
|
+
type CreateAuthSessionInput,
|
|
18
20
|
type GroupMembershipRecord,
|
|
19
21
|
type InvitationRecord,
|
|
20
22
|
type ServiceAccountGroupMembershipRecord,
|
|
@@ -23,6 +25,7 @@ import {
|
|
|
23
25
|
type UserRecord,
|
|
24
26
|
} from "../storage/auth"
|
|
25
27
|
import { paginate } from "../storage/pagination"
|
|
28
|
+
import { toUserProfile } from "../users/execution"
|
|
26
29
|
import {
|
|
27
30
|
createAccessTokenCredential,
|
|
28
31
|
getBearerAccessTokenValue,
|
|
@@ -32,6 +35,13 @@ import {
|
|
|
32
35
|
import { getRequestClientAddress } from "./client-address"
|
|
33
36
|
import { getCookie, type ResolvedAuthCookieOptions } from "./cookies"
|
|
34
37
|
import { AuthRuntimeError } from "./errors"
|
|
38
|
+
import {
|
|
39
|
+
invitedEvents,
|
|
40
|
+
profileUpdatedEvents,
|
|
41
|
+
signInEvents,
|
|
42
|
+
statusChangedEvents,
|
|
43
|
+
} from "./member-events"
|
|
44
|
+
import { normalizeProfileChanges, signInDisplayName } from "./profile"
|
|
35
45
|
import { SessionCache } from "./session-cache"
|
|
36
46
|
import {
|
|
37
47
|
type BearerSessionTokens,
|
|
@@ -76,8 +86,14 @@ import type {
|
|
|
76
86
|
ListServiceAccountAccessTokensInput,
|
|
77
87
|
ListServiceAccountAccessTokensResult,
|
|
78
88
|
ListServiceAccountsResult,
|
|
89
|
+
MagicLinkCallbackInput,
|
|
90
|
+
MagicLinkCallbackResult,
|
|
79
91
|
MemberSummary,
|
|
80
92
|
MembershipCapabilities,
|
|
93
|
+
OidcCallbackInput,
|
|
94
|
+
OidcCallbackResult,
|
|
95
|
+
OwnProfile,
|
|
96
|
+
ProfileField,
|
|
81
97
|
ReactivateMemberInput,
|
|
82
98
|
ReactivateMemberResult,
|
|
83
99
|
ResolvedAuthConfig,
|
|
@@ -93,10 +109,13 @@ import type {
|
|
|
93
109
|
UnauthenticatedAuthSession,
|
|
94
110
|
UpdateMemberGroupsInput,
|
|
95
111
|
UpdateMemberGroupsResult,
|
|
112
|
+
UpdateOwnProfileInput,
|
|
96
113
|
} from "./types"
|
|
97
114
|
import {
|
|
98
115
|
assertNonEmpty,
|
|
99
116
|
isInvitationDeliveryAuthStrategy,
|
|
117
|
+
isMagicLinkAuthStrategy,
|
|
118
|
+
isOidcAuthStrategy,
|
|
100
119
|
normalizePagination,
|
|
101
120
|
resolveAuthConfig,
|
|
102
121
|
resolveInvitationExpiresAt,
|
|
@@ -122,11 +141,15 @@ const BEARER_ACCESS_TOKEN_TTL_MS = 15 * 60_000
|
|
|
122
141
|
// response was lost can retry. Later, it means a copy is in use and the session is revoked.
|
|
123
142
|
const REFRESH_REUSE_GRACE_MS = 60_000
|
|
124
143
|
|
|
144
|
+
const PROFILE_FIELDS: readonly ProfileField[] = ["displayName", "avatarUrl"]
|
|
145
|
+
|
|
125
146
|
export interface AuthRuntimeOptions {
|
|
126
147
|
readonly projectId: string
|
|
127
148
|
readonly storage: Storage
|
|
128
149
|
readonly security: SecurityDefinitionCatalog
|
|
129
150
|
readonly config?: SixbAuthConfig
|
|
151
|
+
/** Where member events go: joined, suspended, reactivated, invited, profile updated. */
|
|
152
|
+
readonly events: DomainEventLog
|
|
130
153
|
}
|
|
131
154
|
|
|
132
155
|
export class AuthRuntime {
|
|
@@ -135,11 +158,13 @@ export class AuthRuntime {
|
|
|
135
158
|
private readonly security: SecurityDefinitionCatalog
|
|
136
159
|
private readonly config: ResolvedAuthConfig
|
|
137
160
|
private readonly sessionCache: SessionCache | null
|
|
161
|
+
private readonly events: DomainEventLog
|
|
138
162
|
|
|
139
163
|
constructor(options: AuthRuntimeOptions) {
|
|
140
164
|
this.projectId = options.projectId
|
|
141
165
|
this.storage = options.storage
|
|
142
166
|
this.security = options.security
|
|
167
|
+
this.events = options.events
|
|
143
168
|
this.config = resolveAuthConfig(options.config)
|
|
144
169
|
this.sessionCache =
|
|
145
170
|
this.config.session.cacheTtlMs > 0 ? new SessionCache(this.config.session.cacheTtlMs) : null
|
|
@@ -389,7 +414,9 @@ export class AuthRuntime {
|
|
|
389
414
|
readonly clientName: string
|
|
390
415
|
readonly now: Date
|
|
391
416
|
}): {
|
|
392
|
-
readonly session:
|
|
417
|
+
readonly session: CreateAuthSessionInput & {
|
|
418
|
+
readonly bearer: NonNullable<CreateAuthSessionInput["bearer"]>
|
|
419
|
+
}
|
|
393
420
|
readonly tokens: BearerSessionTokens
|
|
394
421
|
} {
|
|
395
422
|
const sessionId = `ses_${randomUUID()}`
|
|
@@ -603,6 +630,65 @@ export class AuthRuntime {
|
|
|
603
630
|
}
|
|
604
631
|
}
|
|
605
632
|
|
|
633
|
+
/**
|
|
634
|
+
* Finish a magic-link sign-in: consume the link and start the session the server minted. Every
|
|
635
|
+
* sign-in goes through the runtime, so what follows one is decided here and not in each route.
|
|
636
|
+
* A name that breaks the profile rules is dropped: it never makes the sign-in fail.
|
|
637
|
+
*/
|
|
638
|
+
async completeMagicLinkSignIn(
|
|
639
|
+
input: Pick<MagicLinkCallbackInput, "magicLinkId" | "token" | "session" | "displayName">
|
|
640
|
+
): Promise<MagicLinkCallbackResult> {
|
|
641
|
+
const strategy = this.getStrategy()
|
|
642
|
+
if (!isMagicLinkAuthStrategy(strategy)) {
|
|
643
|
+
throw new AuthRuntimeError(
|
|
644
|
+
"invalid_auth_config",
|
|
645
|
+
"[Sixb] The active auth strategy does not support magic-link sign-in."
|
|
646
|
+
)
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
const result = await strategy.completeMagicLinkSignIn({
|
|
650
|
+
projectId: this.projectId,
|
|
651
|
+
authStorage: this.requireAuthStorage(),
|
|
652
|
+
magicLinkId: input.magicLinkId,
|
|
653
|
+
token: input.token,
|
|
654
|
+
session: input.session,
|
|
655
|
+
displayName: signInDisplayName(input.displayName),
|
|
656
|
+
})
|
|
657
|
+
|
|
658
|
+
await this.emitMemberEvents(signInEvents(result))
|
|
659
|
+
|
|
660
|
+
return result
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
/** Finish an OIDC sign-in from the provider's callback and start the session the server minted. */
|
|
664
|
+
async completeOidcSignIn(
|
|
665
|
+
input: Pick<OidcCallbackInput, "requestUrl" | "requestOrigin" | "session">
|
|
666
|
+
): Promise<OidcCallbackResult> {
|
|
667
|
+
const strategy = this.getStrategy()
|
|
668
|
+
if (!isOidcAuthStrategy(strategy)) {
|
|
669
|
+
throw new AuthRuntimeError(
|
|
670
|
+
"invalid_auth_config",
|
|
671
|
+
"[Sixb] The active auth strategy does not support OIDC sign-in."
|
|
672
|
+
)
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
const result = await strategy.completeOidcSignIn({
|
|
676
|
+
projectId: this.projectId,
|
|
677
|
+
authStorage: this.requireAuthStorage(),
|
|
678
|
+
requestUrl: input.requestUrl,
|
|
679
|
+
requestOrigin: input.requestOrigin,
|
|
680
|
+
session: input.session,
|
|
681
|
+
})
|
|
682
|
+
|
|
683
|
+
// The provider may have changed the person's name, picture or directory groups, which their
|
|
684
|
+
// other sessions hold in the cache.
|
|
685
|
+
this.sessionCache?.invalidateUser(result.user.id)
|
|
686
|
+
|
|
687
|
+
await this.emitMemberEvents(signInEvents(result))
|
|
688
|
+
|
|
689
|
+
return result
|
|
690
|
+
}
|
|
691
|
+
|
|
606
692
|
/**
|
|
607
693
|
* Resolve a caller's authorization context. Grants resolve eagerly
|
|
608
694
|
* (`groups -> roles -> grants`, subtype-expanded), so checks against it are synchronous.
|
|
@@ -1114,7 +1200,7 @@ export class AuthRuntime {
|
|
|
1114
1200
|
)
|
|
1115
1201
|
}
|
|
1116
1202
|
|
|
1117
|
-
const suspended = await storage.suspendUserAndRevokeSessions({
|
|
1203
|
+
const { user: suspended, previousUser } = await storage.suspendUserAndRevokeSessions({
|
|
1118
1204
|
projectId: this.projectId,
|
|
1119
1205
|
userId: user.id,
|
|
1120
1206
|
suspendedAt: new Date(),
|
|
@@ -1123,6 +1209,8 @@ export class AuthRuntime {
|
|
|
1123
1209
|
// user stops authenticating immediately.
|
|
1124
1210
|
this.sessionCache?.invalidateUser(user.id)
|
|
1125
1211
|
|
|
1212
|
+
await this.emitMemberEvents(statusChangedEvents(caller, previousUser, suspended))
|
|
1213
|
+
|
|
1126
1214
|
return { user: suspended, groupIds, managedGroupIds }
|
|
1127
1215
|
}
|
|
1128
1216
|
|
|
@@ -1141,16 +1229,100 @@ export class AuthRuntime {
|
|
|
1141
1229
|
)
|
|
1142
1230
|
|
|
1143
1231
|
// Reactivation restores access but not sessions; the user signs in again.
|
|
1144
|
-
const reactivated = await storage.users.updateStatus({
|
|
1232
|
+
const { user: reactivated, previousUser } = await storage.users.updateStatus({
|
|
1145
1233
|
projectId: this.projectId,
|
|
1146
1234
|
id: user.id,
|
|
1147
1235
|
status: "active",
|
|
1148
1236
|
updatedAt: new Date(),
|
|
1149
1237
|
})
|
|
1150
1238
|
|
|
1239
|
+
await this.emitMemberEvents(statusChangedEvents(caller, previousUser, reactivated))
|
|
1240
|
+
|
|
1151
1241
|
return { user: reactivated, groupIds, managedGroupIds }
|
|
1152
1242
|
}
|
|
1153
1243
|
|
|
1244
|
+
/** The caller's own profile, and which of its fields their identity provider manages. */
|
|
1245
|
+
async getProfile(caller: AuthenticatedUserRequestSession): Promise<OwnProfile> {
|
|
1246
|
+
const storage = this.requireAuthStorage()
|
|
1247
|
+
const user = await storage.users.getById({ projectId: this.projectId, id: caller.user.id })
|
|
1248
|
+
if (!user) {
|
|
1249
|
+
throw new AuthStorageError(
|
|
1250
|
+
"missing_user",
|
|
1251
|
+
`[Sixb] User '${caller.user.id}' not found for project '${this.projectId}'.`
|
|
1252
|
+
)
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1255
|
+
return {
|
|
1256
|
+
profile: toUserProfile(user),
|
|
1257
|
+
managedFields: await this.managedProfileFields(storage, user.id),
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
/**
|
|
1262
|
+
* Change the caller's own name or picture. A field their identity provider manages is refused,
|
|
1263
|
+
* because the next sign-in would overwrite it.
|
|
1264
|
+
*/
|
|
1265
|
+
async updateProfile(
|
|
1266
|
+
caller: AuthenticatedUserRequestSession,
|
|
1267
|
+
input: UpdateOwnProfileInput
|
|
1268
|
+
): Promise<OwnProfile> {
|
|
1269
|
+
const changes = normalizeProfileChanges(input)
|
|
1270
|
+
const storage = this.requireAuthStorage()
|
|
1271
|
+
const managedFields = await this.managedProfileFields(storage, caller.user.id)
|
|
1272
|
+
|
|
1273
|
+
const managedChanges = managedFields.filter((field) => changes[field] !== undefined)
|
|
1274
|
+
if (managedChanges.length > 0) {
|
|
1275
|
+
throw new AuthRuntimeError(
|
|
1276
|
+
"authorization_denied",
|
|
1277
|
+
`[Sixb] Your identity provider manages ${managedChanges.join(" and ")}. ` +
|
|
1278
|
+
`Change ${managedChanges.length > 1 ? "them" : "it"} there.`
|
|
1279
|
+
)
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
const { user, previousUser } = await storage.users.updateProfile({
|
|
1283
|
+
projectId: this.projectId,
|
|
1284
|
+
id: caller.user.id,
|
|
1285
|
+
...changes,
|
|
1286
|
+
updatedAt: new Date(),
|
|
1287
|
+
})
|
|
1288
|
+
|
|
1289
|
+
// Every session of this person caches their profile; drop them so all show the change.
|
|
1290
|
+
const changed =
|
|
1291
|
+
user.displayName !== previousUser.displayName || user.avatarUrl !== previousUser.avatarUrl
|
|
1292
|
+
if (changed) {
|
|
1293
|
+
this.sessionCache?.invalidateUser(user.id)
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
await this.emitMemberEvents(profileUpdatedEvents(caller, previousUser, user))
|
|
1297
|
+
|
|
1298
|
+
return { profile: toUserProfile(user), managedFields }
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
// The fields the active strategy's provider sets at sign-in, through any of the person's
|
|
1302
|
+
// identities with it. Identities from a strategy the project no longer uses manage nothing.
|
|
1303
|
+
private async managedProfileFields(
|
|
1304
|
+
storage: AuthStorage,
|
|
1305
|
+
userId: string
|
|
1306
|
+
): Promise<readonly ProfileField[]> {
|
|
1307
|
+
const strategy = this.getStrategy()
|
|
1308
|
+
if (!strategy?.providerProfileFields) {
|
|
1309
|
+
return []
|
|
1310
|
+
}
|
|
1311
|
+
|
|
1312
|
+
const identities = await storage.identities.listForUser({ projectId: this.projectId, userId })
|
|
1313
|
+
const managed = new Set<ProfileField>()
|
|
1314
|
+
for (const identity of identities) {
|
|
1315
|
+
if (identity.strategyId !== strategy.id) {
|
|
1316
|
+
continue
|
|
1317
|
+
}
|
|
1318
|
+
for (const field of strategy.providerProfileFields(identity)) {
|
|
1319
|
+
managed.add(field)
|
|
1320
|
+
}
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
return PROFILE_FIELDS.filter((field) => managed.has(field))
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1154
1326
|
/** The caller's active sessions, most recently active first. */
|
|
1155
1327
|
async listSessions(caller: AuthenticatedUserRequestSession): Promise<readonly SessionRecord[]> {
|
|
1156
1328
|
return this.requireAuthStorage().sessions.listActiveByUserId({
|
|
@@ -1308,15 +1480,13 @@ export class AuthRuntime {
|
|
|
1308
1480
|
...(input.revealLink && delivery.link ? { link: delivery.link } : {}),
|
|
1309
1481
|
}
|
|
1310
1482
|
|
|
1311
|
-
if (delivery.status
|
|
1312
|
-
return { invitation, delivery }
|
|
1313
|
-
}
|
|
1314
|
-
|
|
1315
|
-
if (delivery.status !== "sent") {
|
|
1483
|
+
if (delivery.status !== "sent" && delivery.status !== "not_supported") {
|
|
1316
1484
|
await this.revokeInvitationAfterDeliveryFailure(authStorage, invitation, now)
|
|
1317
1485
|
throw this.createInvitationDeliveryError(delivery.status)
|
|
1318
1486
|
}
|
|
1319
1487
|
|
|
1488
|
+
await this.emitMemberEvents(invitedEvents(caller, invitation))
|
|
1489
|
+
|
|
1320
1490
|
return { invitation, delivery }
|
|
1321
1491
|
}
|
|
1322
1492
|
|
|
@@ -1381,6 +1551,17 @@ export class AuthRuntime {
|
|
|
1381
1551
|
}
|
|
1382
1552
|
}
|
|
1383
1553
|
|
|
1554
|
+
/**
|
|
1555
|
+
* Member events follow the auth write that caused them, which has already committed. Auth
|
|
1556
|
+
* storage keeps no outbox, so an event the broker refuses is reported through `onError` and lost:
|
|
1557
|
+
* delivery is at most once.
|
|
1558
|
+
*/
|
|
1559
|
+
private async emitMemberEvents(events: readonly EventDraft[]): Promise<void> {
|
|
1560
|
+
if (events.length === 0) return
|
|
1561
|
+
|
|
1562
|
+
await this.events.emit({ events }, { source: "Sixb" })
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1384
1565
|
private requireAuthStorage() {
|
|
1385
1566
|
if (!this.storage.auth) {
|
|
1386
1567
|
throw new AuthRuntimeError(
|
package/src/auth/strategy.ts
CHANGED
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
* entry plus the storage contracts from `@sixb/core/storage`.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
export type { UserIdentityRecord } from "../storage/auth"
|
|
10
11
|
export type { SignInRefusalReason } from "./errors"
|
|
11
12
|
export { SignInRefusedError } from "./errors"
|
|
13
|
+
export { signInAvatarUrl, signInDisplayName } from "./profile"
|
|
12
14
|
export type {
|
|
13
15
|
AuthEmailDeliveryStatus,
|
|
14
16
|
AuthInvitationRecipientInput,
|
|
@@ -40,6 +42,7 @@ export type {
|
|
|
40
42
|
OidcCallbackResult,
|
|
41
43
|
OidcStartSignInInput,
|
|
42
44
|
OidcStartSignInResult,
|
|
45
|
+
ProfileField,
|
|
43
46
|
RevealedInvitationLink,
|
|
44
47
|
} from "./types"
|
|
45
48
|
export {
|
package/src/auth/types.ts
CHANGED
|
@@ -9,14 +9,19 @@ import type {
|
|
|
9
9
|
ServiceAccountGroupMembershipRecord,
|
|
10
10
|
ServiceAccountRecord,
|
|
11
11
|
SessionRecord,
|
|
12
|
+
UserIdentityRecord,
|
|
12
13
|
UserRecord,
|
|
13
14
|
} from "../storage/auth"
|
|
15
|
+
import type { UserProfile } from "../users"
|
|
14
16
|
|
|
15
17
|
export type Principal =
|
|
16
18
|
| { readonly type: "user"; readonly id: string }
|
|
17
19
|
| { readonly type: "serviceAccount"; readonly id: string }
|
|
18
20
|
| { readonly type: "system"; readonly id: string }
|
|
19
21
|
|
|
22
|
+
/** A signed-in person: the only principal who talks to the Agent or takes part in a thread. */
|
|
23
|
+
export type UserPrincipal = Extract<Principal, { readonly type: "user" }>
|
|
24
|
+
|
|
20
25
|
/**
|
|
21
26
|
* The canonical principal for system-originated writes (runs triggered without a caller,
|
|
22
27
|
* worker fallbacks, decode-time defaults). Import this everywhere instead of inlining a
|
|
@@ -31,12 +36,20 @@ export function principalsEqual(left: Principal, right: Principal): boolean {
|
|
|
31
36
|
|
|
32
37
|
export type AuthStrategyKind = "magicLink" | "oidc" | "dev" | "disabled"
|
|
33
38
|
|
|
39
|
+
/** A profile field an identity provider can own. */
|
|
40
|
+
export type ProfileField = "displayName" | "avatarUrl"
|
|
41
|
+
|
|
34
42
|
export interface AuthStrategy {
|
|
35
43
|
readonly id: string
|
|
36
44
|
readonly kind: AuthStrategyKind
|
|
37
45
|
readonly developmentOnly?: boolean
|
|
38
46
|
readonly disabled?: boolean
|
|
39
47
|
readonly allowDisabledInProduction?: boolean
|
|
48
|
+
/**
|
|
49
|
+
* The profile fields this strategy's provider sets at every sign-in of the person behind
|
|
50
|
+
* `identity`, so people cannot edit them in Sixb. Omitted, the strategy manages none.
|
|
51
|
+
*/
|
|
52
|
+
providerProfileFields?(identity: UserIdentityRecord): readonly ProfileField[]
|
|
40
53
|
}
|
|
41
54
|
|
|
42
55
|
export interface InvitationRecipientInput {
|
|
@@ -133,6 +146,8 @@ export interface MagicLinkCallbackInput {
|
|
|
133
146
|
readonly magicLinkId: string
|
|
134
147
|
readonly token: string
|
|
135
148
|
readonly session: CompleteAuthSessionInput
|
|
149
|
+
/** The name the person gave. Used only when this sign-in creates their account. */
|
|
150
|
+
readonly displayName?: string
|
|
136
151
|
readonly now?: Date
|
|
137
152
|
}
|
|
138
153
|
|
|
@@ -150,6 +165,8 @@ export interface MagicLinkPeekInput {
|
|
|
150
165
|
|
|
151
166
|
export interface MagicLinkPeekResult {
|
|
152
167
|
readonly email: string
|
|
168
|
+
/** The link will create an account, so the confirmation page may ask for a name. */
|
|
169
|
+
readonly firstSignIn?: true
|
|
153
170
|
}
|
|
154
171
|
|
|
155
172
|
export interface MagicLinkAuthStrategy extends InvitationDeliveryAuthStrategy {
|
|
@@ -211,6 +228,8 @@ export interface OidcAuthStrategy extends InvitationDeliveryAuthStrategy {
|
|
|
211
228
|
readonly bootstrapGroupIds?: readonly string[]
|
|
212
229
|
startOidcSignIn(input: OidcStartSignInInput): Promise<OidcStartSignInResult>
|
|
213
230
|
completeOidcSignIn(input: OidcCallbackInput): Promise<OidcCallbackResult>
|
|
231
|
+
/** Every OIDC sign-in sets the name and picture the provider sends, so the strategy says which. */
|
|
232
|
+
providerProfileFields(identity: UserIdentityRecord): readonly ProfileField[]
|
|
214
233
|
}
|
|
215
234
|
|
|
216
235
|
export interface InviteUserInput {
|
|
@@ -371,6 +390,19 @@ export interface ReactivateMemberResult {
|
|
|
371
390
|
readonly managedGroupIds: readonly string[]
|
|
372
391
|
}
|
|
373
392
|
|
|
393
|
+
/** The signed-in person's own profile. */
|
|
394
|
+
export interface OwnProfile {
|
|
395
|
+
readonly profile: UserProfile
|
|
396
|
+
/** The fields their identity provider sets at sign-in, which they cannot edit here. */
|
|
397
|
+
readonly managedFields: readonly ProfileField[]
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/** Omitted fields stay unchanged, and `null` clears one. */
|
|
401
|
+
export interface UpdateOwnProfileInput {
|
|
402
|
+
readonly displayName?: string | null
|
|
403
|
+
readonly avatarUrl?: string | null
|
|
404
|
+
}
|
|
405
|
+
|
|
374
406
|
/** `"session"` reads only the cookie; `"any"` reads a bearer access token, else the cookie. */
|
|
375
407
|
export type AuthCredentialSource = "session" | "any"
|
|
376
408
|
|
|
@@ -24,6 +24,7 @@ import type { AuthorizationContext, GrantIndex } from "./types"
|
|
|
24
24
|
export type AuthzRequest =
|
|
25
25
|
| { readonly kind: "object.view"; readonly objectTypeId: string }
|
|
26
26
|
| { readonly kind: "dataset.view"; readonly datasetId: string }
|
|
27
|
+
| { readonly kind: "users.view" }
|
|
27
28
|
| { readonly kind: "object.edit"; readonly objectTypeId: string }
|
|
28
29
|
| { readonly kind: "telemetry.append"; readonly objectTypeId: string }
|
|
29
30
|
| { readonly kind: "action.apply"; readonly actionId: string }
|
|
@@ -32,10 +33,13 @@ export type AuthzRequest =
|
|
|
32
33
|
| { readonly kind: "sync.run"; readonly syncId: string }
|
|
33
34
|
| { readonly kind: "pipeline.run"; readonly pipelineId: string }
|
|
34
35
|
| { readonly kind: "agent.run" }
|
|
36
|
+
| { readonly kind: "models.run" }
|
|
35
37
|
| { readonly kind: "logs.observe" }
|
|
36
38
|
| { readonly kind: "aiUsage.observe" }
|
|
37
39
|
| { readonly kind: "activity.observe" }
|
|
40
|
+
| { readonly kind: "agentThreads.observe" }
|
|
38
41
|
| { readonly kind: "aiUsage.manage" }
|
|
42
|
+
| { readonly kind: "agentMemory.manage" }
|
|
39
43
|
| { readonly kind: "connector.manage"; readonly connectorId: string }
|
|
40
44
|
| { readonly kind: "object.query"; readonly touchedObjectTypeIds: readonly string[] }
|
|
41
45
|
|
|
@@ -67,6 +71,8 @@ function atomsFor(request: AuthzRequest): readonly Atom[] {
|
|
|
67
71
|
return [{ kind: "view:object", id: request.objectTypeId }]
|
|
68
72
|
case "dataset.view":
|
|
69
73
|
return [{ kind: "view:dataset", id: request.datasetId }]
|
|
74
|
+
case "users.view":
|
|
75
|
+
return [{ kind: "view:users" }]
|
|
70
76
|
case "object.edit":
|
|
71
77
|
return [{ kind: "edit:object", id: request.objectTypeId }]
|
|
72
78
|
case "telemetry.append":
|
|
@@ -83,14 +89,20 @@ function atomsFor(request: AuthzRequest): readonly Atom[] {
|
|
|
83
89
|
return [{ kind: "run:pipeline", id: request.pipelineId }]
|
|
84
90
|
case "agent.run":
|
|
85
91
|
return [{ kind: "run:agent" }]
|
|
92
|
+
case "models.run":
|
|
93
|
+
return [{ kind: "run:models" }]
|
|
86
94
|
case "logs.observe":
|
|
87
95
|
return [{ kind: "observe:logs" }]
|
|
88
96
|
case "aiUsage.observe":
|
|
89
97
|
return [{ kind: "observe:aiUsage" }]
|
|
90
98
|
case "activity.observe":
|
|
91
99
|
return [{ kind: "observe:activity" }]
|
|
100
|
+
case "agentThreads.observe":
|
|
101
|
+
return [{ kind: "observe:agentThreads" }]
|
|
92
102
|
case "aiUsage.manage":
|
|
93
103
|
return [{ kind: "manage:aiUsage" }]
|
|
104
|
+
case "agentMemory.manage":
|
|
105
|
+
return [{ kind: "manage:agentMemory" }]
|
|
94
106
|
case "connector.manage":
|
|
95
107
|
return [{ kind: "manage:connector", id: request.connectorId }]
|
|
96
108
|
case "object.query":
|
|
@@ -251,6 +263,33 @@ export function assertProviderAccess(
|
|
|
251
263
|
)
|
|
252
264
|
}
|
|
253
265
|
|
|
266
|
+
/**
|
|
267
|
+
* Assert a model call is allowed. Trusted code and genuine agent runs always may; a principal
|
|
268
|
+
* needs `can.run(project.models)`, which covers every model in the catalog.
|
|
269
|
+
*/
|
|
270
|
+
export function assertModelAccess(
|
|
271
|
+
runtime: AuthorizedRuntime & { readonly runtimeAuthorization: RuntimeAuthorization },
|
|
272
|
+
execution: ExecutionContext,
|
|
273
|
+
operation: string
|
|
274
|
+
): void {
|
|
275
|
+
const resolved = resolveExecutionScopeAuthorization(runtime.projectId, {
|
|
276
|
+
execution,
|
|
277
|
+
authorization: runtime.runtimeAuthorization,
|
|
278
|
+
})
|
|
279
|
+
if (resolved.type === "unrestricted" || execution.executor.type === "agent") return
|
|
280
|
+
if (resolved.type === "principal") {
|
|
281
|
+
if (isAllowed(resolved.context, { kind: "models.run" })) return
|
|
282
|
+
throw new AuthorizationError(
|
|
283
|
+
"run:models",
|
|
284
|
+
deniedMessage(resolved.context, { kind: "models.run" })
|
|
285
|
+
)
|
|
286
|
+
}
|
|
287
|
+
throw new AuthorizationError(
|
|
288
|
+
`delegated:${operation}`,
|
|
289
|
+
`[Sixb] Operation '${operation}' is not covered by delegated authorization.`
|
|
290
|
+
)
|
|
291
|
+
}
|
|
292
|
+
|
|
254
293
|
function deniedMessage(
|
|
255
294
|
authorization: AuthorizationContext | null | undefined,
|
|
256
295
|
request: AuthzRequest
|
|
@@ -261,6 +300,8 @@ function deniedMessage(
|
|
|
261
300
|
return `[Sixb] Principal '${principalId}' is not allowed to view object type '${request.objectTypeId}'.`
|
|
262
301
|
case "dataset.view":
|
|
263
302
|
return `[Sixb] Principal '${principalId}' is not allowed to view dataset '${request.datasetId}'.`
|
|
303
|
+
case "users.view":
|
|
304
|
+
return `[Sixb] Principal '${principalId}' is not allowed to view the member directory.`
|
|
264
305
|
case "object.edit":
|
|
265
306
|
return `[Sixb] Principal '${principalId}' is not allowed to write object type '${request.objectTypeId}'.`
|
|
266
307
|
case "telemetry.append":
|
|
@@ -277,14 +318,20 @@ function deniedMessage(
|
|
|
277
318
|
return `[Sixb] Principal '${principalId}' is not allowed to run pipeline '${request.pipelineId}'.`
|
|
278
319
|
case "agent.run":
|
|
279
320
|
return `[Sixb] Principal '${principalId}' is not allowed to run the project Agent.`
|
|
321
|
+
case "models.run":
|
|
322
|
+
return `[Sixb] Principal '${principalId}' is not allowed to call the project's models.`
|
|
280
323
|
case "logs.observe":
|
|
281
324
|
return `[Sixb] Principal '${principalId}' is not allowed to observe project logs.`
|
|
282
325
|
case "aiUsage.observe":
|
|
283
326
|
return `[Sixb] Principal '${principalId}' is not allowed to observe project AI usage.`
|
|
284
327
|
case "activity.observe":
|
|
285
328
|
return `[Sixb] Principal '${principalId}' is not allowed to observe project activity.`
|
|
329
|
+
case "agentThreads.observe":
|
|
330
|
+
return `[Sixb] Principal '${principalId}' is not allowed to observe other users' Agent conversations.`
|
|
286
331
|
case "aiUsage.manage":
|
|
287
332
|
return `[Sixb] Principal '${principalId}' is not allowed to manage project AI usage limits.`
|
|
333
|
+
case "agentMemory.manage":
|
|
334
|
+
return `[Sixb] Principal '${principalId}' is not allowed to manage the project's Agent memory.`
|
|
288
335
|
case "connector.manage":
|
|
289
336
|
return `[Sixb] Principal '${principalId}' is not allowed to manage connector '${request.connectorId}'.`
|
|
290
337
|
case "object.query": {
|