@sixb/core 0.1.20 → 0.1.21
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/execution.d.ts.map +1 -1
- package/dist/actions/index.js +54 -47
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +9 -0
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/activity/connection.d.ts +62 -0
- package/dist/activity/connection.d.ts.map +1 -0
- package/dist/activity/device.d.ts +8 -0
- package/dist/activity/device.d.ts.map +1 -0
- package/dist/activity/execution.d.ts +48 -0
- package/dist/activity/execution.d.ts.map +1 -0
- package/dist/activity/service.d.ts +79 -0
- package/dist/activity/service.d.ts.map +1 -0
- package/dist/activity/shares.d.ts +24 -0
- package/dist/activity/shares.d.ts.map +1 -0
- package/dist/activity/timeline.d.ts +96 -0
- package/dist/activity/timeline.d.ts.map +1 -0
- package/dist/agents/index.d.ts +2 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +63 -50
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts.map +1 -1
- package/dist/agents/streams/index.js +3 -3
- package/dist/agents/streams/internal.js +3 -3
- package/dist/agents/types.d.ts +8 -8
- 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/address.d.ts +48 -0
- package/dist/artifacts/address.d.ts.map +1 -0
- package/dist/artifacts/csv.d.ts +22 -0
- package/dist/artifacts/csv.d.ts.map +1 -0
- package/dist/artifacts/errors.d.ts +11 -0
- package/dist/artifacts/errors.d.ts.map +1 -0
- package/dist/artifacts/execution.d.ts +43 -0
- package/dist/artifacts/execution.d.ts.map +1 -0
- package/dist/artifacts/frames/assets.d.ts +28 -0
- package/dist/artifacts/frames/assets.d.ts.map +1 -0
- package/dist/artifacts/frames/grants.d.ts +37 -0
- package/dist/artifacts/frames/grants.d.ts.map +1 -0
- package/dist/artifacts/frames/index.d.ts +10 -0
- package/dist/artifacts/frames/index.d.ts.map +1 -0
- package/dist/artifacts/frames/index.js +892 -0
- package/dist/artifacts/frames/index.js.map +14 -0
- package/dist/artifacts/frames/kit.d.ts +66 -0
- package/dist/artifacts/frames/kit.d.ts.map +1 -0
- package/dist/artifacts/frames/probe.d.ts +41 -0
- package/dist/artifacts/frames/probe.d.ts.map +1 -0
- package/dist/artifacts/frames/protocol.d.ts +98 -0
- package/dist/artifacts/frames/protocol.d.ts.map +1 -0
- package/dist/artifacts/frames/runtime.d.ts +13 -0
- package/dist/artifacts/frames/runtime.d.ts.map +1 -0
- package/dist/artifacts/html.d.ts +6 -0
- package/dist/artifacts/html.d.ts.map +1 -0
- package/dist/artifacts/ids.d.ts +5 -0
- package/dist/artifacts/ids.d.ts.map +1 -0
- package/dist/artifacts/index.d.ts +16 -0
- package/dist/artifacts/index.d.ts.map +1 -0
- package/dist/artifacts/index.js +125 -0
- package/dist/artifacts/index.js.map +10 -0
- package/dist/artifacts/kinds.d.ts +5 -0
- package/dist/artifacts/kinds.d.ts.map +1 -0
- package/dist/artifacts/limits.d.ts +28 -0
- package/dist/artifacts/limits.d.ts.map +1 -0
- package/dist/artifacts/outline.d.ts +44 -0
- package/dist/artifacts/outline.d.ts.map +1 -0
- package/dist/artifacts/publish/files.d.ts +15 -0
- package/dist/artifacts/publish/files.d.ts.map +1 -0
- package/dist/artifacts/publish/index.d.ts +5 -0
- package/dist/artifacts/publish/index.d.ts.map +1 -0
- package/dist/artifacts/publish/index.js +36 -0
- package/dist/artifacts/publish/index.js.map +9 -0
- package/dist/artifacts/publish/publish.d.ts +52 -0
- package/dist/artifacts/publish/publish.d.ts.map +1 -0
- package/dist/artifacts/publish/references.d.ts +27 -0
- package/dist/artifacts/publish/references.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/document.d.ts +17 -0
- package/dist/artifacts/publish/validate/document.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/file.d.ts +8 -0
- package/dist/artifacts/publish/validate/file.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/sheet.d.ts +15 -0
- package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/slides.d.ts +21 -0
- package/dist/artifacts/publish/validate/slides.d.ts.map +1 -0
- package/dist/artifacts/references.d.ts +12 -0
- package/dist/artifacts/references.d.ts.map +1 -0
- package/dist/artifacts/resolve.d.ts +41 -0
- package/dist/artifacts/resolve.d.ts.map +1 -0
- package/dist/artifacts/theme.d.ts +19 -0
- package/dist/artifacts/theme.d.ts.map +1 -0
- package/dist/artifacts/warnings.d.ts +11 -0
- package/dist/artifacts/warnings.d.ts.map +1 -0
- package/dist/artifacts/workbook.d.ts +64 -0
- package/dist/artifacts/workbook.d.ts.map +1 -0
- package/dist/auth/index.js +10 -10
- package/dist/authorization/decision.d.ts +2 -0
- package/dist/authorization/decision.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.js +6 -6
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +1 -1
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +11 -5
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +12 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -1
- package/dist/bootstrap/index.js +53 -47
- package/dist/bootstrap/index.js.map +2 -2
- package/dist/{chunk-xfs8x8m9.js → chunk-0bphap9y.js} +5 -5
- package/dist/{chunk-1zq2p6g0.js → chunk-1cc1xaf3.js} +3 -3
- package/dist/chunk-3jms7je7.js +14 -0
- package/dist/chunk-3jms7je7.js.map +10 -0
- package/dist/{chunk-s54c868q.js → chunk-3qct2mdc.js} +3 -13
- package/dist/chunk-3qct2mdc.js.map +12 -0
- package/dist/{chunk-t7x8dmn0.js → chunk-431pyp2c.js} +3 -3
- package/dist/{chunk-c85m1hyj.js → chunk-447a5c0p.js} +2 -2
- package/dist/chunk-48qjhh6v.js +185 -0
- package/dist/chunk-48qjhh6v.js.map +13 -0
- package/dist/{chunk-ren4kg2j.js → chunk-561r0yc9.js} +8 -8
- package/dist/{chunk-5e43w60z.js → chunk-5948n82c.js} +2 -2
- package/dist/{chunk-yzwja0mj.js → chunk-5hx48dnn.js} +2 -2
- package/dist/{chunk-x6m907x7.js → chunk-5vems3nx.js} +5 -6
- package/dist/{chunk-x6m907x7.js.map → chunk-5vems3nx.js.map} +3 -3
- package/dist/{chunk-0rbyz4qy.js → chunk-61y5xs4p.js} +560 -164
- package/dist/{chunk-0rbyz4qy.js.map → chunk-61y5xs4p.js.map} +12 -9
- package/dist/chunk-65abf64x.js +13 -0
- package/dist/chunk-65abf64x.js.map +10 -0
- package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
- package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
- package/dist/chunk-6rqgmkde.js +2028 -0
- package/dist/chunk-6rqgmkde.js.map +29 -0
- package/dist/{chunk-d0bqz29d.js → chunk-6vb4st8k.js} +8 -4
- package/dist/{chunk-d0bqz29d.js.map → chunk-6vb4st8k.js.map} +3 -3
- package/dist/chunk-7q8t23v4.js +467 -0
- package/dist/chunk-7q8t23v4.js.map +14 -0
- package/dist/{chunk-5j58wjct.js → chunk-858emn8m.js} +6 -6
- package/dist/{chunk-hvsb78a1.js → chunk-8frc8a4j.js} +26 -26
- package/dist/{chunk-hvsb78a1.js.map → chunk-8frc8a4j.js.map} +2 -2
- package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
- package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
- package/dist/{chunk-n33z5bjw.js → chunk-918wwnaa.js} +490 -24
- package/dist/{chunk-n33z5bjw.js.map → chunk-918wwnaa.js.map} +13 -11
- package/dist/{chunk-rrzt8jdy.js → chunk-9j4jw7as.js} +103 -110
- package/dist/chunk-9j4jw7as.js.map +14 -0
- package/dist/chunk-9kgkfg6v.js +502 -0
- package/dist/chunk-9kgkfg6v.js.map +14 -0
- package/dist/chunk-a3faa34j.js +74 -0
- package/dist/chunk-a3faa34j.js.map +10 -0
- package/dist/{chunk-6c6sn0bh.js → chunk-akzryx9h.js} +335 -1167
- package/dist/{chunk-6c6sn0bh.js.map → chunk-akzryx9h.js.map} +18 -24
- package/dist/chunk-arns890k.js +10 -0
- package/dist/chunk-arns890k.js.map +10 -0
- package/dist/{chunk-hjzdd750.js → chunk-bk9svbcq.js} +11 -11
- package/dist/{chunk-hjzdd750.js.map → chunk-bk9svbcq.js.map} +2 -2
- package/dist/{chunk-hkc3jct7.js → chunk-c06hmxyy.js} +2 -10
- package/dist/chunk-c06hmxyy.js.map +10 -0
- package/dist/{chunk-6p49a5cq.js → chunk-c1rxbz5y.js} +3 -3
- package/dist/chunk-cfj9dfbb.js +288 -0
- package/dist/chunk-cfj9dfbb.js.map +12 -0
- package/dist/{chunk-bx9q3cwv.js → chunk-cn0fwwhy.js} +7 -7
- package/dist/{chunk-bx9q3cwv.js.map → chunk-cn0fwwhy.js.map} +1 -1
- package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
- package/dist/{chunk-fa02jy15.js → chunk-cy4mbddw.js} +1 -1
- package/dist/{chunk-9w055r5b.js → chunk-d09e3rax.js} +1 -1
- package/dist/chunk-d5rjr8c0.js +176 -0
- package/dist/chunk-d5rjr8c0.js.map +12 -0
- package/dist/{chunk-dk8tkk5f.js → chunk-d7dnxdep.js} +3 -3
- package/dist/{chunk-b38szspf.js → chunk-dhcv7yxc.js} +1 -1
- package/dist/{chunk-b38szspf.js.map → chunk-dhcv7yxc.js.map} +1 -1
- package/dist/{chunk-gsjm1wms.js → chunk-dhdha526.js} +8 -2
- package/dist/chunk-dhdha526.js.map +10 -0
- package/dist/{chunk-8mx7qw3y.js → chunk-dvd2fp9q.js} +2 -2
- package/dist/{chunk-8mx7qw3y.js.map → chunk-dvd2fp9q.js.map} +3 -3
- package/dist/{chunk-way52z4h.js → chunk-e17zdm62.js} +6 -12
- package/dist/{chunk-way52z4h.js.map → chunk-e17zdm62.js.map} +3 -4
- package/dist/{chunk-tpn40322.js → chunk-e6k4thh5.js} +11 -10
- package/dist/{chunk-tpn40322.js.map → chunk-e6k4thh5.js.map} +3 -3
- package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
- package/dist/chunk-eptrvnby.js.map +12 -0
- package/dist/{chunk-es1gxsbf.js → chunk-f4pamkt9.js} +8 -10
- package/dist/chunk-f4pamkt9.js.map +12 -0
- package/dist/chunk-ff5xkv0p.js +211 -0
- package/dist/chunk-ff5xkv0p.js.map +10 -0
- package/dist/{chunk-d09tj99x.js → chunk-g257jwnc.js} +10 -4
- package/dist/{chunk-d09tj99x.js.map → chunk-g257jwnc.js.map} +3 -3
- package/dist/chunk-g5bvzyyr.js +32 -0
- package/dist/chunk-g5bvzyyr.js.map +10 -0
- package/dist/chunk-hke9aeen.js +9 -0
- package/dist/chunk-hke9aeen.js.map +10 -0
- package/dist/{chunk-1sr8ryzk.js → chunk-hwksyjks.js} +122 -1
- package/dist/{chunk-1sr8ryzk.js.map → chunk-hwksyjks.js.map} +3 -3
- package/dist/chunk-jcfw4h7m.js +9 -0
- package/dist/chunk-jcfw4h7m.js.map +10 -0
- package/dist/{chunk-k6q3n2sc.js → chunk-k43ct2ke.js} +20 -11
- package/dist/chunk-k43ct2ke.js.map +12 -0
- package/dist/{chunk-3t2hgbgd.js → chunk-kge7k6ey.js} +40 -8
- package/dist/chunk-kge7k6ey.js.map +15 -0
- package/dist/{chunk-tg2cw67r.js → chunk-ky3j490c.js} +2 -2
- package/dist/chunk-mjddfa7k.js +129 -0
- package/dist/chunk-mjddfa7k.js.map +12 -0
- package/dist/{chunk-vpq4shxz.js → chunk-nn5xnx3s.js} +45 -10
- package/dist/{chunk-vpq4shxz.js.map → chunk-nn5xnx3s.js.map} +7 -6
- package/dist/{chunk-0yh890a4.js → chunk-q5e5tv4b.js} +35 -7
- package/dist/{chunk-0yh890a4.js.map → chunk-q5e5tv4b.js.map} +3 -3
- package/dist/{chunk-vyf9kfqf.js → chunk-q7gn29y3.js} +1 -1
- package/dist/{chunk-yevzdx4y.js → chunk-rmakanzx.js} +10 -12
- package/dist/{chunk-yevzdx4y.js.map → chunk-rmakanzx.js.map} +3 -4
- package/dist/{chunk-v9xd5wzd.js → chunk-s7jg7pmn.js} +1 -1
- package/dist/chunk-tbc1ngpd.js +642 -0
- package/dist/chunk-tbc1ngpd.js.map +18 -0
- package/dist/chunk-twe4dx8p.js +676 -0
- package/dist/chunk-twe4dx8p.js.map +15 -0
- package/dist/{chunk-9dmt152s.js → chunk-vf57cr4t.js} +2 -2
- package/dist/{chunk-9ybhtmg4.js → chunk-vvxtn22d.js} +1 -1
- package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
- package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
- package/dist/chunk-x0v3jd47.js +124 -0
- package/dist/chunk-x0v3jd47.js.map +10 -0
- package/dist/{chunk-7t429e3f.js → chunk-xvsc5m8n.js} +1 -1
- package/dist/{chunk-z4m0yz8c.js → chunk-y5tah2kf.js} +1 -1
- package/dist/{chunk-fkgc1wt8.js → chunk-z58tm0hm.js} +2 -2
- package/dist/datasets/builders.d.ts +15 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/column-index.d.ts +7 -0
- package/dist/datasets/column-index.d.ts.map +1 -0
- package/dist/datasets/execution.d.ts +3 -2
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/write.js +8 -8
- package/dist/error-reporting/internal.js +4 -4
- package/dist/errors/internal.d.ts +1 -0
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +7 -4
- package/dist/errors/internal.js.map +1 -1
- package/dist/events/execution.d.ts +12 -2
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.js +4 -4
- package/dist/execution/agent.js +56 -49
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +52 -11
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/object-reader-clearance.d.ts +41 -0
- package/dist/execution/object-reader-clearance.d.ts.map +1 -0
- package/dist/execution/object-reader-ontology.d.ts +12 -0
- package/dist/execution/object-reader-ontology.d.ts.map +1 -0
- package/dist/execution/object-reader-security.d.ts +45 -0
- package/dist/execution/object-reader-security.d.ts.map +1 -0
- package/dist/execution/primitive.js +54 -47
- package/dist/execution/primitive.js.map +1 -1
- package/dist/execution/request.js +48 -41
- package/dist/execution/request.js.map +2 -2
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +20 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -97
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -3
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +21 -13
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/lineage.d.ts +94 -0
- package/dist/lake-storage/lineage.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +45 -0
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +55 -1
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +14 -3
- package/dist/lake-storage/version-inputs.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materializer/index.js +31 -30
- package/dist/materializer/index.js.map +1 -1
- package/dist/models/execution/index.js +25 -24
- package/dist/models/execution/index.js.map +1 -1
- package/dist/objects/clearance-redaction.d.ts +27 -0
- package/dist/objects/clearance-redaction.d.ts.map +1 -0
- package/dist/objects/index.js +54 -47
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +8 -5
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/link/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/delete.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +47 -24
- package/dist/objects/property-clearance.d.ts.map +1 -1
- package/dist/objects/query/clearance-admission.d.ts +10 -0
- package/dist/objects/query/clearance-admission.d.ts.map +1 -0
- package/dist/objects/query/index.js +29 -28
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/link-query-clearance.d.ts +21 -0
- package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +1 -1
- package/dist/ontology/docs-markdown.d.ts.map +1 -1
- package/dist/ontology/index.js +7 -7
- package/dist/ontology/internal.js +4 -4
- package/dist/ontology/internal.js.map +1 -1
- package/dist/pipelines/index.d.ts +2 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +47 -35
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/lineage.d.ts +17 -0
- package/dist/pipelines/lineage.d.ts.map +1 -0
- package/dist/projections/internal.d.ts +2 -2
- package/dist/projections/internal.js +30 -29
- package/dist/projections/internal.js.map +1 -1
- package/dist/runtime/create.d.ts +3 -0
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +6 -0
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +2 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +46 -42
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/ontology-mutations.d.ts +2 -0
- package/dist/runtime/ontology-mutations.d.ts.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +8 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/sandboxes/auth.d.ts +16 -0
- package/dist/sandboxes/auth.d.ts.map +1 -1
- package/dist/sandboxes/config.d.ts.map +1 -1
- package/dist/sandboxes/configuration.d.ts +26 -0
- package/dist/sandboxes/configuration.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +1 -1
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +14 -13
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +28 -5
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/security/applied-markings-contribution.d.ts +58 -0
- package/dist/security/applied-markings-contribution.d.ts.map +1 -0
- package/dist/security/applied-markings-host.d.ts +10 -0
- package/dist/security/applied-markings-host.d.ts.map +1 -0
- package/dist/security/applied-markings-snapshot.d.ts +67 -0
- package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
- package/dist/security/applied-markings.d.ts +73 -0
- package/dist/security/applied-markings.d.ts.map +1 -0
- package/dist/security/dataset-version-markings.d.ts +47 -0
- package/dist/security/dataset-version-markings.d.ts.map +1 -0
- package/dist/security/grants.d.ts +3 -2
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +2 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/internal.d.ts +15 -0
- package/dist/security/internal.d.ts.map +1 -0
- package/dist/security/internal.js +135 -0
- package/dist/security/internal.js.map +10 -0
- package/dist/security/marking-propagation.d.ts +62 -0
- package/dist/security/marking-propagation.d.ts.map +1 -0
- package/dist/security/marking-sets.d.ts +14 -0
- package/dist/security/marking-sets.d.ts.map +1 -0
- package/dist/security/markings.d.ts +6 -3
- package/dist/security/markings.d.ts.map +1 -1
- package/dist/security/pipeline-markings.d.ts +20 -0
- package/dist/security/pipeline-markings.d.ts.map +1 -0
- package/dist/security/project.d.ts +4 -0
- package/dist/security/project.d.ts.map +1 -0
- package/dist/security/projection-markings.d.ts +71 -0
- package/dist/security/projection-markings.d.ts.map +1 -0
- package/dist/security/public.js +2 -2
- package/dist/security/redactions.d.ts +4 -1
- package/dist/security/redactions.d.ts.map +1 -1
- package/dist/security/types.d.ts +22 -2
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -23
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +3 -3
- package/dist/storage/action-runs/in-memory.d.ts +4 -0
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/types.d.ts +8 -0
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/activity/in-memory.d.ts +55 -0
- package/dist/storage/activity/in-memory.d.ts.map +1 -0
- package/dist/storage/activity/index.d.ts +3 -0
- package/dist/storage/activity/index.d.ts.map +1 -0
- package/dist/storage/activity/policy.d.ts +96 -0
- package/dist/storage/activity/policy.d.ts.map +1 -0
- package/dist/storage/activity/types.d.ts +191 -0
- package/dist/storage/activity/types.d.ts.map +1 -0
- package/dist/storage/agents/in-memory.d.ts +4 -0
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +2 -5
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +9 -8
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +3 -3
- package/dist/storage/artifacts/errors.d.ts +8 -0
- package/dist/storage/artifacts/errors.d.ts.map +1 -0
- package/dist/storage/artifacts/in-memory.d.ts +34 -0
- package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
- package/dist/storage/artifacts/index.d.ts +5 -0
- package/dist/storage/artifacts/index.d.ts.map +1 -0
- package/dist/storage/artifacts/record.d.ts +17 -0
- package/dist/storage/artifacts/record.d.ts.map +1 -0
- package/dist/storage/artifacts/types.d.ts +184 -0
- package/dist/storage/artifacts/types.d.ts.map +1 -0
- package/dist/storage/auth/in-memory/sessions.d.ts +2 -1
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +1 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +19 -0
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +2 -2
- package/dist/storage/executions/in-memory.d.ts +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/provider.d.ts +2 -0
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +9 -223
- package/dist/storage/executions/provider.js.map +3 -4
- package/dist/storage/executions/types.d.ts +31 -0
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.js +11 -11
- package/dist/storage/in-memory/index.d.ts +8 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +6 -4
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +54 -53
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +3 -0
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +66 -16
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/index.d.ts +1 -1
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/sources.d.ts +15 -0
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/projection-runs/provider.js +3 -3
- package/dist/storage/share-grants/in-memory.d.ts +2 -1
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
- package/dist/storage/share-grants/index.d.ts +1 -1
- package/dist/storage/share-grants/index.d.ts.map +1 -1
- package/dist/storage/share-grants/types.d.ts +6 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -1
- package/dist/storage/types.d.ts +4 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
- package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +13 -12
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/types.d.ts +5 -0
- package/dist/storage/workflow-runs/types.d.ts.map +1 -1
- package/dist/syncs/index.js +35 -34
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/activity-storage-contract.d.ts +14 -0
- package/dist/testing/activity-storage-contract.d.ts.map +1 -0
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/artifact-storage-contract.d.ts +13 -0
- package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +4488 -3137
- package/dist/testing/index.js.map +14 -12
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts +2 -0
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +27 -26
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +2 -2
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +57 -51
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/types.d.ts +9 -0
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +7 -0
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +25 -1
- package/src/actions/execution.ts +18 -13
- package/src/actions/request.ts +18 -3
- package/src/actions/run-authorization.ts +23 -0
- package/src/activity/README.md +155 -0
- package/src/activity/connection.ts +217 -0
- package/src/activity/device.ts +41 -0
- package/src/activity/execution.ts +210 -0
- package/src/activity/service.ts +274 -0
- package/src/activity/shares.ts +62 -0
- package/src/activity/timeline.ts +424 -0
- package/src/agents/index.ts +8 -3
- package/src/agents/request.ts +5 -0
- package/src/agents/skills.ts +6 -0
- package/src/agents/types.ts +8 -8
- package/src/agents/validation.ts +2 -0
- package/src/artifacts/address.ts +132 -0
- package/src/artifacts/csv.ts +108 -0
- package/src/artifacts/errors.ts +21 -0
- package/src/artifacts/execution.ts +153 -0
- package/src/artifacts/frames/assets.ts +88 -0
- package/src/artifacts/frames/grants.ts +124 -0
- package/src/artifacts/frames/index.ts +15 -0
- package/src/artifacts/frames/kit.ts +392 -0
- package/src/artifacts/frames/probe.ts +309 -0
- package/src/artifacts/frames/protocol.ts +174 -0
- package/src/artifacts/frames/runtime.ts +213 -0
- package/src/artifacts/html.ts +25 -0
- package/src/artifacts/ids.ts +18 -0
- package/src/artifacts/index.ts +61 -0
- package/src/artifacts/kinds.ts +8 -0
- package/src/artifacts/limits.ts +27 -0
- package/src/artifacts/outline.ts +62 -0
- package/src/artifacts/publish/files.ts +87 -0
- package/src/artifacts/publish/index.ts +12 -0
- package/src/artifacts/publish/publish.ts +250 -0
- package/src/artifacts/publish/references.ts +130 -0
- package/src/artifacts/publish/validate/document.ts +114 -0
- package/src/artifacts/publish/validate/file.ts +19 -0
- package/src/artifacts/publish/validate/sheet.ts +251 -0
- package/src/artifacts/publish/validate/slides.ts +134 -0
- package/src/artifacts/references.ts +11 -0
- package/src/artifacts/resolve.ts +97 -0
- package/src/artifacts/theme.ts +116 -0
- package/src/artifacts/warnings.ts +10 -0
- package/src/artifacts/workbook.ts +315 -0
- package/src/authorization/decision.ts +5 -0
- package/src/authorization/grant-kinds.ts +14 -2
- package/src/blob-storage/internal.ts +1 -1
- package/src/blob-storage/media-type.ts +69 -0
- package/src/datasets/builders.ts +66 -2
- package/src/datasets/column-index.ts +19 -0
- package/src/datasets/execution.ts +23 -9
- package/src/errors/internal.ts +1 -0
- package/src/events/execution.ts +134 -21
- package/src/execution/authorized-object-reader.ts +270 -256
- package/src/execution/object-reader-clearance.ts +91 -0
- package/src/execution/object-reader-ontology.ts +63 -0
- package/src/execution/object-reader-security.ts +146 -0
- package/src/http/api-routes.ts +125 -0
- package/src/index.ts +71 -3
- package/src/lake-storage/in-memory.ts +26 -3
- package/src/lake-storage/index.ts +13 -1
- package/src/lake-storage/lineage.ts +385 -0
- package/src/lake-storage/sql-transforms.ts +45 -0
- package/src/lake-storage/types.ts +59 -1
- package/src/lake-storage/version-inputs.ts +35 -6
- package/src/maintenance/ontology-maintenance.ts +15 -0
- package/src/objects/clearance-redaction.ts +138 -0
- package/src/objects/link/authorization.ts +27 -7
- package/src/objects/link/remove.ts +2 -2
- package/src/objects/link/upsert-batch.ts +7 -5
- package/src/objects/link/upsert.ts +2 -2
- package/src/objects/object/delete.ts +2 -0
- package/src/objects/object/upsert-batch.ts +2 -4
- package/src/objects/object/upsert.ts +2 -3
- package/src/objects/property-clearance.ts +171 -152
- package/src/objects/query/clearance-admission.ts +112 -0
- package/src/objects/query/link-query-clearance.ts +73 -0
- package/src/ontology/builders.ts +12 -1
- package/src/ontology/docs-markdown.ts +1 -1
- package/src/pipelines/index.ts +2 -0
- package/src/pipelines/lineage.ts +45 -0
- package/src/projections/internal.ts +2 -2
- package/src/runtime/create.ts +4 -0
- package/src/runtime/host.ts +55 -0
- package/src/runtime/internal.ts +2 -0
- package/src/runtime/ontology-mutations.ts +19 -4
- package/src/runtime/resolve-definitions.ts +66 -3
- package/src/runtime/sixb.ts +18 -1
- package/src/sandboxes/README.md +29 -7
- package/src/sandboxes/auth.ts +16 -0
- package/src/sandboxes/config.ts +2 -7
- package/src/sandboxes/configuration.ts +61 -7
- package/src/sandboxes/index.ts +1 -0
- package/src/sandboxes/sandbox.ts +27 -5
- package/src/security/applied-markings-contribution.ts +277 -0
- package/src/security/applied-markings-host.ts +41 -0
- package/src/security/applied-markings-snapshot.ts +235 -0
- package/src/security/applied-markings.ts +405 -0
- package/src/security/dataset-version-markings.ts +163 -0
- package/src/security/grants.ts +39 -4
- package/src/security/index.ts +3 -0
- package/src/security/internal.ts +18 -0
- package/src/security/marking-propagation.ts +255 -0
- package/src/security/marking-sets.ts +42 -0
- package/src/security/markings.ts +29 -178
- package/src/security/pipeline-markings.ts +175 -0
- package/src/security/project.ts +8 -0
- package/src/security/projection-markings.ts +421 -0
- package/src/security/redactions.ts +7 -2
- package/src/security/types.ts +20 -2
- package/src/security/validation.ts +11 -4
- package/src/storage/action-runs/in-memory.ts +18 -0
- package/src/storage/action-runs/types.ts +8 -0
- package/src/storage/activity/in-memory.ts +374 -0
- package/src/storage/activity/index.ts +27 -0
- package/src/storage/activity/policy.ts +430 -0
- package/src/storage/activity/types.ts +211 -0
- package/src/storage/agents/in-memory.ts +10 -0
- package/src/storage/agents/provider.ts +2 -13
- package/src/storage/agents/types.ts +9 -16
- package/src/storage/artifacts/errors.ts +16 -0
- package/src/storage/artifacts/in-memory.ts +240 -0
- package/src/storage/artifacts/index.ts +30 -0
- package/src/storage/artifacts/record.ts +200 -0
- package/src/storage/artifacts/types.ts +209 -0
- package/src/storage/auth/in-memory/sessions.ts +21 -0
- package/src/storage/auth/index.ts +2 -0
- package/src/storage/auth/types.ts +18 -0
- package/src/storage/executions/in-memory.ts +61 -1
- package/src/storage/executions/index.ts +3 -0
- package/src/storage/executions/provider.ts +12 -0
- package/src/storage/executions/types.ts +30 -0
- package/src/storage/in-memory/index.ts +16 -0
- package/src/storage/index.ts +63 -0
- package/src/storage/internal.ts +30 -0
- package/src/storage/ontology/in-memory/sources.ts +23 -0
- package/src/storage/ontology/index.ts +2 -0
- package/src/storage/ontology/sources.ts +17 -0
- package/src/storage/share-grants/in-memory.ts +8 -0
- package/src/storage/share-grants/index.ts +1 -0
- package/src/storage/share-grants/types.ts +8 -0
- package/src/storage/types.ts +4 -0
- package/src/storage/workflow-runs/in-memory.ts +16 -0
- package/src/storage/workflow-runs/types.ts +5 -0
- package/src/testing/action-run-storage-contract.ts +25 -0
- package/src/testing/activity-storage-contract.ts +840 -0
- package/src/testing/agent-storage-contract.ts +22 -21
- package/src/testing/artifact-storage-contract.ts +517 -0
- package/src/testing/auth-storage-contract.ts +47 -0
- package/src/testing/execution-storage-contract.ts +147 -1
- package/src/testing/index.ts +9 -0
- package/src/testing/lake-merge-storage-contract.ts +38 -0
- package/src/testing/lake-storage-contract.ts +247 -2
- package/src/testing/materializer-storage-contract.ts +1 -0
- package/src/testing/ontology-storage-contract.ts +57 -2
- package/src/testing/share-grant-storage-contract.ts +15 -0
- package/src/workflows/builders.ts +14 -0
- package/src/workflows/types.ts +9 -0
- package/src/workflows/validation.ts +72 -0
- package/dist/chunk-1k89ecfr.js +0 -85
- package/dist/chunk-1k89ecfr.js.map +0 -10
- package/dist/chunk-3t2hgbgd.js.map +0 -15
- package/dist/chunk-4vyr1j8f.js +0 -128
- package/dist/chunk-4vyr1j8f.js.map +0 -11
- package/dist/chunk-9gyp8hg1.js +0 -363
- package/dist/chunk-9gyp8hg1.js.map +0 -14
- package/dist/chunk-es1gxsbf.js.map +0 -13
- package/dist/chunk-gsjm1wms.js.map +0 -10
- package/dist/chunk-hkc3jct7.js.map +0 -10
- package/dist/chunk-k6q3n2sc.js.map +0 -12
- package/dist/chunk-rrzt8jdy.js.map +0 -14
- package/dist/chunk-s16apyk9.js +0 -256
- package/dist/chunk-s16apyk9.js.map +0 -16
- package/dist/chunk-s54c868q.js.map +0 -12
- package/dist/chunk-tw03bsmb.js.map +0 -11
- /package/dist/{chunk-xfs8x8m9.js.map → chunk-0bphap9y.js.map} +0 -0
- /package/dist/{chunk-1zq2p6g0.js.map → chunk-1cc1xaf3.js.map} +0 -0
- /package/dist/{chunk-t7x8dmn0.js.map → chunk-431pyp2c.js.map} +0 -0
- /package/dist/{chunk-c85m1hyj.js.map → chunk-447a5c0p.js.map} +0 -0
- /package/dist/{chunk-ren4kg2j.js.map → chunk-561r0yc9.js.map} +0 -0
- /package/dist/{chunk-5e43w60z.js.map → chunk-5948n82c.js.map} +0 -0
- /package/dist/{chunk-yzwja0mj.js.map → chunk-5hx48dnn.js.map} +0 -0
- /package/dist/{chunk-5j58wjct.js.map → chunk-858emn8m.js.map} +0 -0
- /package/dist/{chunk-6p49a5cq.js.map → chunk-c1rxbz5y.js.map} +0 -0
- /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
- /package/dist/{chunk-fa02jy15.js.map → chunk-cy4mbddw.js.map} +0 -0
- /package/dist/{chunk-9w055r5b.js.map → chunk-d09e3rax.js.map} +0 -0
- /package/dist/{chunk-dk8tkk5f.js.map → chunk-d7dnxdep.js.map} +0 -0
- /package/dist/{chunk-tg2cw67r.js.map → chunk-ky3j490c.js.map} +0 -0
- /package/dist/{chunk-vyf9kfqf.js.map → chunk-q7gn29y3.js.map} +0 -0
- /package/dist/{chunk-v9xd5wzd.js.map → chunk-s7jg7pmn.js.map} +0 -0
- /package/dist/{chunk-9dmt152s.js.map → chunk-vf57cr4t.js.map} +0 -0
- /package/dist/{chunk-9ybhtmg4.js.map → chunk-vvxtn22d.js.map} +0 -0
- /package/dist/{chunk-7t429e3f.js.map → chunk-xvsc5m8n.js.map} +0 -0
- /package/dist/{chunk-z4m0yz8c.js.map → chunk-y5tah2kf.js.map} +0 -0
- /package/dist/{chunk-fkgc1wt8.js.map → chunk-z58tm0hm.js.map} +0 -0
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/models/execution/binding.ts", "../src/
|
|
3
|
+
"sources": ["../src/models/execution/binding.ts", "../src/actions/descriptor.ts", "../src/shared/params/user-refs.ts", "../src/actions/delegated-admission.ts", "../src/actions/run-persistence.ts", "../src/actions/run-id.ts", "../src/execution/primitive.ts", "../src/actions/read-facade.ts", "../src/actions/run/context.ts", "../src/actions/run/signals.ts", "../src/actions/run/normalize.ts", "../src/actions/run/effects.ts", "../src/actions/validators.ts", "../src/edits/recorder.ts", "../src/edits/properties.ts", "../src/actions/commit-edits.ts", "../src/actions/run/edits-commit.ts", "../src/actions/run/writeback.ts", "../src/actions/run/phases.ts", "../src/actions/run/state.ts", "../src/actions/run/run-action.ts", "../src/actions/run/execute.ts", "../src/actions/run/executor.ts", "../src/actions/request.ts", "../src/actions/execution.ts", "../src/runtime/ai-usage.ts", "../src/agents/ids.ts", "../src/agents/request.ts", "../src/runtime/locale.ts", "../src/agents/context-resolution.ts", "../src/agents/dispatch.ts", "../src/agents/retired-config.ts", "../src/agents/sandbox.ts", "../src/agents/execution.ts", "../src/ai-usage/execution.ts", "../src/artifacts/execution.ts", "../src/blob-storage/execution.ts", "../src/connectors/connections/execution.ts", "../src/datasets/execution.ts", "../src/events/execution.ts", "../src/logging/execution.ts", "../src/agents/model-loop.ts", "../src/models/audio/runtime.ts", "../src/models/audio/file.ts", "../src/models/decision/runtime.ts", "../src/models/output.ts", "../src/models/execution.ts", "../src/objects/action/request.ts", "../src/objects/materializer-adapter.ts", "../src/objects/errors.ts", "../src/objects/link/authorization.ts", "../src/objects/link/remove.ts", "../src/objects/link/endpoints.ts", "../src/objects/link/upsert.ts", "../src/objects/runtime-batch.ts", "../src/objects/link/upsert-batch.ts", "../src/objects/object/delete.ts", "../src/objects/object/upsert.ts", "../src/objects/object/upsert-batch.ts", "../src/objects/vectors/handle.ts", "../src/objects/sdk/file-handle.ts", "../src/objects/telemetry/write-batch.ts", "../src/objects/telemetry/append-batch.ts", "../src/objects/telemetry/history.ts", "../src/objects/sdk/telemetry-channel.ts", "../src/objects/sdk/object-handle.ts", "../src/objects/context/resolve.ts", "../src/objects/sdk/runtime-query-executor.ts", "../src/objects/sdk/object-set.ts", "../src/objects/service/link-service.ts", "../src/objects/service/list-service.ts", "../src/objects/service/object-service.ts", "../src/objects/service/telemetry-service.ts", "../src/objects/execution.ts", "../src/pipelines/execution.ts", "../src/projections/execution.ts", "../src/rules/execution.ts", "../src/schedules/execution.ts", "../src/shares/execution.ts", "../src/syncs/execution.ts", "../src/workflows/errors.ts", "../src/workflows/run-dispatch.ts", "../src/actions/builders/define-action.ts", "../src/shared/params/builders.ts", "../src/actions/registry.ts", "../src/workflows/validation.ts", "../src/workflows/snapshot.ts", "../src/workflows/request.ts", "../src/workflows/execution.ts", "../src/runtime/sixb.ts", "../src/execution/agent.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { ModelsRuntime } from \"../generation-types\"\nimport type { AiModelCallRecorder } from \"./model-call-recorder\"\n\nexport interface ModelExecutionAttempt {\n readonly attempt: number\n readonly signal: AbortSignal\n /** Internal durable fence around admission; it must invoke admit exactly once to proceed. */\n readonly embeddingAdmission?: (admit: () => Promise<void>) => Promise<void>\n /**\n * Accounting the execution attempt already owns, such as an Agent run's. Calls then share its\n * admission and failure state instead of opening a second recorder for the same attempt.\n */\n readonly accounting?: AiModelCallRecorder\n}\n\nconst bindings = new WeakMap<ModelsRuntime, (input: ModelExecutionAttempt) => void>()\n\nexport function registerModelExecutionBinding(\n models: ModelsRuntime,\n bind: (input: ModelExecutionAttempt) => void\n): void {\n bindings.set(models, bind)\n}\n\n/** Called once on a fresh facade at the request or worker delivery boundary. */\nexport function bindModelExecutionAttempt(\n models: ModelsRuntime,\n input: ModelExecutionAttempt\n): void {\n const bind = bindings.get(models)\n if (!bind) throw new Error(\"[SixbModels] Model runtime has no execution binding.\")\n if (!Number.isSafeInteger(input.attempt) || input.attempt < 1) {\n throw new TypeError(\"[SixbModels] Execution attempt must be a positive safe integer.\")\n }\n bind(input)\n bindings.delete(models)\n}\n",
|
|
6
|
-
"/**\n * Closes a switch over a union: the call stops compiling when a new member has no case, and throws\n * if an untyped value reaches it at runtime.\n */\nexport function assertNever(_value: never, message: string): never {\n throw new Error(message)\n}\n",
|
|
7
|
-
"import {\n formatUnknownObjectTypeMessage,\n OntologyNotFoundError,\n OntologyValidationError,\n} from \"../ontology/errors\"\nimport type { OntologyDefinitionCatalog } from \"../ontology/registry\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport { createLinkTokenMap, createPropertyTokenMap } from \"../ontology/tokens\"\nimport type {\n ObjectLink,\n ObjectType,\n ObjectTypeSearchMetadata,\n Property,\n PropertyQueryMetadata,\n Schema,\n ValueType,\n} from \"../ontology/types\"\nimport { snapshotVectorProfiles } from \"../ontology/vector-profiles\"\nimport type { CompiledSelectedObjectReadScope } from \"../storage/objects/types\"\n\n/** Public ontology operations that may cross an execution-bound authorization boundary. */\nexport type AuthorizedOntologyView = Pick<\n OntologyDefinitionCatalog,\n | \"listObjectTypes\"\n | \"getObjectTypeById\"\n | \"resolveObjectType\"\n | \"getValueTypesById\"\n | \"getPrimaryPropertyId\"\n | \"listSubTypes\"\n | \"isValidLinkTarget\"\n>\n\nexport type AuthorizedOntologySelection =\n | { readonly kind: \"all\" }\n | { readonly kind: \"types\"; readonly objectTypeIds: readonly string[] }\n | { readonly kind: \"selected\"; readonly scope: CompiledSelectedObjectReadScope }\n\ninterface LinkSelection {\n readonly targetObjectTypeIds: Set<string>\n readonly propertyIds: Set<string>\n}\n\ninterface SelectedSchema {\n readonly propertyIdsByObjectType: ReadonlyMap<string, ReadonlySet<string>>\n readonly linksBySourceType: ReadonlyMap<string, ReadonlyMap<string, LinkSelection>>\n}\n\n/**\n * Project inert ontology metadata from one already-captured authority.\n *\n * Query validation intentionally keeps using the complete internal registry. This view is only\n * the discovery surface returned to application code and HTTP serializers.\n */\nexport function createAuthorizedOntologyView(input: {\n readonly ontology: OntologyDefinitionCatalog\n readonly selection: AuthorizedOntologySelection\n readonly assertOutputWithinLimit?: (value: unknown) => void\n}): AuthorizedOntologyView {\n const allObjectTypes = input.ontology.listObjectTypes()\n const registeredObjectTypeIds = new Set(allObjectTypes.map((objectType) => objectType.id))\n const requestedObjectTypeIds = selectedObjectTypeIds(input.selection, allObjectTypes)\n const visibleObjectTypeIds = new Set(\n [...requestedObjectTypeIds].filter((objectTypeId) => registeredObjectTypeIds.has(objectTypeId))\n )\n const selectedSchema =\n input.selection.kind === \"selected\" ? collectSelectedSchema(input.selection.scope) : undefined\n const projectedObjectTypes: ObjectTypeWithPropertyTokens[] = []\n\n for (const objectType of allObjectTypes) {\n if (!visibleObjectTypeIds.has(objectType.id)) continue\n const propertyIds =\n selectedSchema?.propertyIdsByObjectType.get(objectType.id) ??\n new Set(objectType.properties.map((property) => property.id))\n const links = selectedSchema\n ? (selectedSchema.linksBySourceType.get(objectType.id) ?? new Map())\n : input.selection.kind === \"all\"\n ? allDeclaredLinks(objectType)\n : allVisibleLinks(input.ontology, objectType, visibleObjectTypeIds)\n projectedObjectTypes.push(\n projectObjectType({\n objectType,\n propertyIds,\n links,\n visibleObjectTypeIds,\n ontology: input.ontology,\n targetMode:\n input.selection.kind === \"all\"\n ? \"original\"\n : input.selection.kind === \"types\"\n ? \"principal\"\n : \"exact\",\n exposeContracts: input.selection.kind !== \"selected\",\n })\n )\n }\n\n const objectTypes = projectedObjectTypes\n const objectTypesById = new Map(objectTypes.map((objectType) => [objectType.id, objectType]))\n const valueTypesById =\n input.selection.kind === \"selected\"\n ? collectVisibleValueTypes(input.ontology.getValueTypesById(), objectTypes)\n : snapshotAllValueTypes(input.ontology.getValueTypesById())\n const release = <T>(value: T, budgetValue: unknown = value): T => {\n input.assertOutputWithinLimit?.(budgetValue)\n return value\n }\n const cloneObjectType = (objectType: ObjectTypeWithPropertyTokens) => structuredClone(objectType)\n const cloneValueTypes = () =>\n new Map(\n [...valueTypesById].map(([valueTypeId, valueType]) => [\n valueTypeId,\n structuredClone(valueType),\n ])\n )\n\n return Object.freeze({\n listObjectTypes: () => release(objectTypes.map(cloneObjectType)),\n getObjectTypeById: (objectTypeId: string) => {\n const objectType = objectTypesById.get(objectTypeId)\n return release(objectType ? cloneObjectType(objectType) : null)\n },\n resolveObjectType: (objectTypeId: string) => {\n const objectType = objectTypesById.get(objectTypeId)\n return objectType ? release(cloneObjectType(objectType)) : unknownObjectType(objectTypeId)\n },\n getValueTypesById: () => {\n const valueTypes = cloneValueTypes()\n return release(valueTypes, [...valueTypes.entries()])\n },\n getPrimaryPropertyId: (objectTypeId: string) => {\n const objectType = objectTypesById.get(objectTypeId)\n if (!objectType) return unknownObjectType(objectTypeId)\n const primary = objectType.properties.find((property) => property.primary)\n if (!primary) {\n throw new OntologyValidationError(\n `[Sixb] Object type '${objectTypeId}' does not expose its primary property in this execution scope.`\n )\n }\n return release(primary.id)\n },\n listSubTypes: (objectTypeId: string) => {\n const subTypes = visibleObjectTypeIds.has(objectTypeId)\n ? input.ontology\n .listSubTypes(objectTypeId)\n .filter((subTypeId) => visibleObjectTypeIds.has(subTypeId))\n : []\n return release(subTypes)\n },\n isValidLinkTarget: (expected: string | string[], actual: string) => {\n if (input.selection.kind === \"all\") {\n return release(input.ontology.isValidLinkTarget(expected, actual))\n }\n if (!visibleObjectTypeIds.has(actual)) return release(false)\n const expectedTypes = Array.isArray(expected) ? expected : [expected]\n if (input.selection.kind === \"selected\") {\n return release(\n expectedTypes.some((expectedType) => expectedType === \"*\" || expectedType === actual)\n )\n }\n return release(\n expectedTypes.some(\n (expectedType) =>\n expectedType === \"*\" ||\n (visibleObjectTypeIds.has(expectedType) &&\n input.ontology.isValidLinkTarget(expectedType, actual))\n )\n )\n },\n })\n}\n\nfunction selectedObjectTypeIds(\n selection: AuthorizedOntologySelection,\n allObjectTypes: readonly ObjectTypeWithPropertyTokens[]\n): ReadonlySet<string> {\n switch (selection.kind) {\n case \"all\":\n return new Set(allObjectTypes.map((objectType) => objectType.id))\n case \"types\":\n return new Set(selection.objectTypeIds)\n case \"selected\":\n return new Set(selection.scope.objects.map((object) => object.objectTypeId))\n }\n}\n\nfunction collectSelectedSchema(scope: CompiledSelectedObjectReadScope): SelectedSchema {\n const propertyIdsByObjectType = new Map<string, Set<string>>()\n for (const object of scope.objects) {\n const properties = propertyIdsByObjectType.get(object.objectTypeId) ?? new Set<string>()\n for (const propertyId of object.propertyIds) properties.add(propertyId)\n propertyIdsByObjectType.set(object.objectTypeId, properties)\n }\n\n const linksBySourceType = new Map<string, Map<string, LinkSelection>>()\n for (const step of scope.steps) {\n const links = linksBySourceType.get(step.sourceObjectTypeId) ?? new Map()\n const selected = links.get(step.linkId) ?? {\n targetObjectTypeIds: new Set<string>(),\n propertyIds: new Set<string>(),\n }\n selected.targetObjectTypeIds.add(step.targetObjectTypeId)\n for (const propertyId of step.propertyIds) selected.propertyIds.add(propertyId)\n links.set(step.linkId, selected)\n linksBySourceType.set(step.sourceObjectTypeId, links)\n }\n\n return { propertyIdsByObjectType, linksBySourceType }\n}\n\nfunction allDeclaredLinks(\n objectType: ObjectTypeWithPropertyTokens\n): ReadonlyMap<string, LinkSelection> {\n return new Map(\n objectType.links.map((link) => [\n link.id,\n {\n targetObjectTypeIds: new Set(\n typeof link.targetObjectTypeId === \"string\"\n ? [link.targetObjectTypeId]\n : link.targetObjectTypeId\n ),\n propertyIds: new Set(link.properties?.map((property) => property.id) ?? []),\n },\n ])\n )\n}\n\nfunction allVisibleLinks(\n ontology: OntologyDefinitionCatalog,\n objectType: ObjectTypeWithPropertyTokens,\n visibleObjectTypeIds: ReadonlySet<string>\n): ReadonlyMap<string, LinkSelection> {\n const links = new Map<string, LinkSelection>()\n for (const link of objectType.links) {\n const targetObjectTypeIds = new Set(\n [...visibleObjectTypeIds].filter((targetObjectTypeId) =>\n ontology.isValidLinkTarget(link.targetObjectTypeId, targetObjectTypeId)\n )\n )\n if (targetObjectTypeIds.size === 0) continue\n links.set(link.id, {\n targetObjectTypeIds,\n propertyIds: new Set(link.properties?.map((property) => property.id) ?? []),\n })\n }\n return links\n}\n\nfunction projectObjectType(input: {\n readonly ontology: OntologyDefinitionCatalog\n readonly objectType: ObjectTypeWithPropertyTokens\n readonly propertyIds: ReadonlySet<string>\n readonly links: ReadonlyMap<string, LinkSelection>\n readonly visibleObjectTypeIds: ReadonlySet<string>\n readonly targetMode: \"original\" | \"principal\" | \"exact\"\n readonly exposeContracts: boolean\n}): ObjectTypeWithPropertyTokens {\n const properties = input.objectType.properties\n .filter((property) => input.propertyIds.has(property.id))\n .map(snapshotProperty)\n const visiblePropertyIds = new Set(properties.map((property) => property.id))\n const links = input.objectType.links.flatMap((link): ObjectLink[] => {\n const selected = input.links.get(link.id)\n if (!selected) return []\n if (input.targetMode === \"original\") {\n return [snapshotLink(link, snapshotLinkTarget(link.targetObjectTypeId), selected.propertyIds)]\n }\n const targetObjectTypeIds = new Set(\n [...selected.targetObjectTypeIds].filter(\n (targetObjectTypeId) =>\n input.visibleObjectTypeIds.has(targetObjectTypeId) &&\n input.ontology.isValidLinkTarget(link.targetObjectTypeId, targetObjectTypeId)\n )\n )\n if (targetObjectTypeIds.size === 0) return []\n const target =\n input.targetMode === \"principal\"\n ? principalLinkTargets(link, targetObjectTypeIds, input.visibleObjectTypeIds)\n : exactLinkTargets(targetObjectTypeIds)\n return [snapshotLink(link, target, selected.propertyIds, { omitEmptyProperties: true })]\n })\n\n // Whitelist top-level metadata so future cross-ontology fields remain closed until reviewed.\n const projected: ObjectType = {\n id: input.objectType.id,\n name: input.objectType.name,\n description: input.objectType.description,\n quantityKind: input.objectType.quantityKind,\n seeAlso: input.objectType.seeAlso ? [...input.objectType.seeAlso] : undefined,\n extends:\n input.objectType.extends && input.visibleObjectTypeIds.has(input.objectType.extends)\n ? input.objectType.extends\n : undefined,\n parents: projectOptionalIds(\n input.objectType.parents,\n input.visibleObjectTypeIds,\n input.targetMode === \"original\"\n ),\n implements:\n input.exposeContracts && input.objectType.implements\n ? [...input.objectType.implements]\n : undefined,\n properties,\n links,\n search: projectSearch(input.objectType.search, visiblePropertyIds, {\n preserveEmpty: input.targetMode !== \"exact\",\n }),\n }\n const withTokens = {\n ...projected,\n p: createPropertyTokenMap(projected),\n l: createLinkTokenMap(projected),\n }\n return deepFreeze(withTokens) as ObjectTypeWithPropertyTokens\n}\n\nfunction principalLinkTargets(\n link: ObjectLink,\n allowedTargetObjectTypeIds: ReadonlySet<string>,\n visibleObjectTypeIds: ReadonlySet<string>\n): string | string[] {\n if (link.targetObjectTypeId === \"*\") return exactLinkTargets(allowedTargetObjectTypeIds)\n const declared = Array.isArray(link.targetObjectTypeId)\n ? link.targetObjectTypeId\n : [link.targetObjectTypeId]\n if (declared.every((objectTypeId) => visibleObjectTypeIds.has(objectTypeId))) {\n return snapshotLinkTarget(link.targetObjectTypeId)\n }\n return exactLinkTargets(allowedTargetObjectTypeIds)\n}\n\nfunction exactLinkTargets(targetObjectTypeIds: ReadonlySet<string>): string | string[] {\n const targets = [...targetObjectTypeIds].sort()\n return targets.length === 1 ? targets[0]! : targets\n}\n\nfunction projectOptionalIds(\n ids: readonly string[] | undefined,\n visibleObjectTypeIds: ReadonlySet<string>,\n preserveOriginal: boolean\n): string[] | undefined {\n if (!ids) return undefined\n if (preserveOriginal) return [...ids]\n const visible = ids.filter((id) => visibleObjectTypeIds.has(id))\n return visible.length > 0 ? visible : undefined\n}\n\nfunction snapshotLink(\n link: ObjectLink,\n targetObjectTypeId: string | string[],\n propertyIds: ReadonlySet<string>,\n options: { readonly omitEmptyProperties?: boolean } = {}\n): ObjectLink {\n const properties = link.properties\n ?.filter((property) => propertyIds.has(property.id))\n .map(snapshotProperty)\n return {\n id: link.id,\n name: link.name,\n description: link.description,\n targetObjectTypeId,\n cardinality: link.cardinality,\n properties: options.omitEmptyProperties && properties?.length === 0 ? undefined : properties,\n }\n}\n\nfunction snapshotLinkTarget(target: string | readonly string[]): string | string[] {\n return typeof target === \"string\" ? target : [...target]\n}\n\nfunction snapshotProperty(property: Property): Property {\n return {\n id: property.id,\n name: property.name,\n schema: snapshotSchema(property.schema),\n description: property.description,\n required: property.required,\n nullable: property.nullable,\n primary: property.primary,\n mode: property.mode,\n semanticType: property.semanticType,\n query: snapshotPropertyQuery(property.query),\n }\n}\n\nfunction snapshotPropertyQuery(\n query: PropertyQueryMetadata | undefined\n): PropertyQueryMetadata | undefined {\n if (!query) return undefined\n return {\n searchable: query.searchable,\n filterable: query.filterable,\n sortable: query.sortable,\n text: query.text,\n exact: query.exact,\n facet: query.facet,\n weight: query.weight,\n }\n}\n\nfunction projectSearch(\n search: ObjectTypeSearchMetadata | undefined,\n visiblePropertyIds: ReadonlySet<string>,\n options: { readonly preserveEmpty: boolean }\n): ObjectTypeSearchMetadata | undefined {\n if (!search) return undefined\n const title = search.title && visiblePropertyIds.has(search.title) ? search.title : undefined\n const selectedDefaultText = search.defaultText?.filter((propertyId) =>\n visiblePropertyIds.has(propertyId)\n )\n const selectedExact = search.exact?.filter((propertyId) => visiblePropertyIds.has(propertyId))\n const defaultText =\n options.preserveEmpty || selectedDefaultText?.length ? selectedDefaultText : undefined\n const exact = options.preserveEmpty || selectedExact?.length ? selectedExact : undefined\n const vectors =\n search.vectors === undefined\n ? undefined\n : snapshotVectorProfiles(\n Object.fromEntries(\n Object.entries(search.vectors).filter(([, profile]) =>\n profile.source.every((id) => visiblePropertyIds.has(id))\n )\n )\n )\n const projected: ObjectTypeSearchMetadata = {\n ...(vectors === undefined || Object.keys(vectors).length === 0 ? {} : { vectors }),\n ...(title === undefined ? {} : { title }),\n ...(defaultText === undefined ? {} : { defaultText }),\n ...(exact === undefined ? {} : { exact }),\n }\n return Object.keys(projected).length > 0 || options.preserveEmpty ? projected : undefined\n}\n\nfunction snapshotAllValueTypes(\n registered: ReadonlyMap<string, ValueType>\n): ReadonlyMap<string, ValueType> {\n return new Map(\n [...registered.values()].map((valueType) => {\n const snapshot = snapshotValueType(valueType)\n return [snapshot.id, snapshot] as const\n })\n )\n}\n\nfunction collectVisibleValueTypes(\n registered: ReadonlyMap<string, ValueType>,\n objectTypes: readonly ObjectTypeWithPropertyTokens[]\n): ReadonlyMap<string, ValueType> {\n const referencedIds = new Set<string>()\n const pendingSchemas: Schema[] = []\n const visitedSchemas = new Set<object>()\n for (const objectType of objectTypes) {\n for (const property of objectType.properties) pendingSchemas.push(property.schema)\n for (const link of objectType.links) {\n for (const property of link.properties ?? []) pendingSchemas.push(property.schema)\n }\n }\n\n while (pendingSchemas.length > 0) {\n const schema = pendingSchemas.pop()!\n if (typeof schema === \"string\" || visitedSchemas.has(schema)) continue\n visitedSchemas.add(schema)\n if (schema.type === \"valueTypeRef\") {\n if (!referencedIds.has(schema.valueTypeId)) {\n referencedIds.add(schema.valueTypeId)\n const valueType = registered.get(schema.valueTypeId)\n if (valueType) pendingSchemas.push(valueType.schema)\n }\n if (schema._resolved) pendingSchemas.push(schema._resolved)\n } else if (schema.type === \"object\") {\n for (const field of Object.values(schema.properties)) pendingSchemas.push(field.schema)\n } else if (schema.type === \"array\") {\n pendingSchemas.push(schema.items)\n } else if (schema.type === \"map\") {\n pendingSchemas.push(schema.valueSchema)\n }\n }\n\n return new Map(\n [...referencedIds]\n .map((valueTypeId) => registered.get(valueTypeId))\n .filter((valueType): valueType is ValueType => valueType !== undefined)\n .map((valueType) => {\n const snapshot = snapshotValueType(valueType)\n return [snapshot.id, snapshot] as const\n })\n )\n}\n\nfunction snapshotValueType(valueType: ValueType): ValueType {\n return deepFreeze({\n id: valueType.id,\n name: valueType.name,\n description: valueType.description,\n schema: snapshotSchema(valueType.schema),\n semanticType: valueType.semanticType,\n })\n}\n\nfunction snapshotSchema(schema: Schema): Schema {\n return deepFreeze(structuredClone(schema))\n}\n\nfunction deepFreeze<T>(value: T, seen: Set<object> = new Set()): T {\n if (typeof value !== \"object\" || value === null || seen.has(value)) return value\n seen.add(value)\n for (const key of Reflect.ownKeys(value)) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key)\n if (descriptor && \"value\" in descriptor) deepFreeze(descriptor.value, seen)\n }\n return Object.freeze(value)\n}\n\nfunction unknownObjectType(objectTypeId: string): never {\n throw new OntologyNotFoundError(formatUnknownObjectTypeMessage(objectTypeId))\n}\n",
|
|
8
|
-
"import { AuthorizationError } from \"../../authorization/errors\"\nimport type {\n CompiledObjectReadObjectSelection,\n CompiledObjectReadStep,\n CompiledSelectedObjectReadScope,\n} from \"../../storage/objects/types\"\nimport type {\n ObjectQueryAdmissionState,\n ObjectQueryAdmissionTransition,\n ObjectQueryEdgeUse,\n ObjectQueryPropertyUse,\n ObjectQuerySemanticAdmission,\n} from \"./validate\"\n\nconst selectedStateBrand = Symbol(\"sixb.selected-object-query-admission-state\")\n\ninterface SelectedObjectQueryState extends ObjectQueryAdmissionState {\n readonly [selectedStateBrand]: true\n readonly selections: readonly CompiledObjectReadObjectSelection[]\n}\n\nexport interface SelectedObjectQueryAdmission extends ObjectQuerySemanticAdmission {\n /** Terminal hook for property-bearing operations outside the query IR, such as facets. */\n assertPropertySelected(input: {\n readonly state: ObjectQueryAdmissionState\n readonly propertyId: string\n readonly objectTypeId?: string\n readonly use: ObjectQueryPropertyUse\n readonly path: string\n }): void\n /** Terminal hook for the physical-link selector that sits outside `queryLinks.query`. */\n assertIncidentEdgeSelected(input: {\n readonly state: ObjectQueryAdmissionState\n readonly linkId?: string\n readonly direction: \"outgoing\" | \"incoming\" | \"both\"\n readonly path: string\n }): void\n}\n\n/**\n * Build an immutable semantic admission over one already-compiled selected reader scope.\n *\n * Object identities remain provider-owned: query admission follows exact path occurrences while\n * the selected storage relation decides which live roots and linked instances exist.\n */\nexport function createSelectedObjectQueryAdmission(\n scope: CompiledSelectedObjectReadScope\n): SelectedObjectQueryAdmission {\n const selectionByKey = new Map<string, CompiledObjectReadObjectSelection>()\n const selectionsByType = new Map<string, CompiledObjectReadObjectSelection[]>()\n const propertiesBySelection = new Map<string, ReadonlySet<string>>()\n\n for (const selection of scope.objects) {\n const key = selectionKey(selection.nodeId, selection.objectTypeId)\n selectionByKey.set(key, selection)\n propertiesBySelection.set(key, new Set(selection.propertyIds))\n const byType = selectionsByType.get(selection.objectTypeId) ?? []\n byType.push(selection)\n selectionsByType.set(selection.objectTypeId, byType)\n }\n\n const outgoing = indexSteps(scope.steps, \"outgoing\", selectionByKey)\n const incoming = indexSteps(scope.steps, \"incoming\", selectionByKey)\n const emptyState = selectedState([])\n\n const admission: SelectedObjectQueryAdmission = {\n empty: () => emptyState,\n source: (input) => {\n const selections = input.result.objectTypeIds.flatMap(\n (objectTypeId) => selectionsByType.get(objectTypeId) ?? []\n )\n const state = selectedState(selections)\n\n if (input.kind === \"refs\") {\n const missingType = [...new Set(input.refs?.map((ref) => ref.objectTypeId) ?? [])]\n .sort()\n .find((objectTypeId) => !selectionsByType.has(objectTypeId))\n if (missingType) {\n return denied(\n state,\n new AuthorizationError(\n `view:object:${missingType}`,\n `[Sixb] Delegated query cannot reference object type '${missingType}' at '${input.path}': the selected object scope does not contain that type.`\n )\n )\n }\n }\n\n if (state.selections.length > 0) return { state }\n const objectTypeId = input.objectTypeId ?? input.result.objectTypeIds[0] ?? \"unknown\"\n return denied(\n state,\n new AuthorizationError(\n `view:object:${objectTypeId}`,\n `[Sixb] Delegated query cannot start from object type '${objectTypeId}' at '${input.path}': the selected object scope does not contain that type.`\n )\n )\n },\n property: (input) =>\n propertyDenial(\n asSelectedState(input.state),\n input.propertyId,\n input.objectTypeId,\n input.use,\n input.path,\n propertiesBySelection\n ),\n edge: (input) => {\n const state = asSelectedState(input.state)\n const next = followEdge(\n state,\n input.linkId,\n input.direction,\n input.sourceObjectTypeId,\n outgoing,\n incoming,\n input.result.objectTypeIds\n )\n if (next.selections.length > 0 || state.selections.length === 0) return { state: next }\n return denied(\n next,\n edgeDenial(\n state,\n input.linkId,\n input.direction,\n input.sourceObjectTypeId,\n input.use,\n input.path\n )\n )\n },\n set: ({ op, states }) => {\n if (op === \"subtract\") return asSelectedState(states[0] ?? emptyState)\n return selectedState(states.flatMap((state) => asSelectedState(state).selections))\n },\n assertPropertySelected: (input) => {\n const denial = propertyDenial(\n asSelectedState(input.state),\n input.propertyId,\n input.objectTypeId,\n input.use,\n input.path,\n propertiesBySelection\n )\n if (denial) throw denial\n },\n assertIncidentEdgeSelected: (input) => {\n if (input.linkId === undefined) return\n const state = asSelectedState(input.state)\n const directions: readonly (\"outgoing\" | \"incoming\")[] =\n input.direction === \"both\" ? [\"outgoing\", \"incoming\"] : [input.direction]\n const next = selectedState(\n directions.flatMap(\n (direction) =>\n followEdge(state, input.linkId!, direction, undefined, outgoing, incoming).selections\n )\n )\n if (next.selections.length > 0 || state.selections.length === 0) return\n throw edgeDenial(state, input.linkId, input.direction, undefined, \"queryLinks\", input.path)\n },\n }\n\n return Object.freeze(admission)\n}\n\nfunction indexSteps(\n steps: readonly CompiledObjectReadStep[],\n direction: \"outgoing\" | \"incoming\",\n selectionByKey: ReadonlyMap<string, CompiledObjectReadObjectSelection>\n): ReadonlyMap<string, readonly CompiledObjectReadObjectSelection[]> {\n const index = new Map<string, CompiledObjectReadObjectSelection[]>()\n for (const step of steps) {\n const fromKey =\n direction === \"outgoing\"\n ? selectionKey(step.parentNodeId, step.sourceObjectTypeId)\n : selectionKey(step.nodeId, step.targetObjectTypeId)\n const toKey =\n direction === \"outgoing\"\n ? selectionKey(step.nodeId, step.targetObjectTypeId)\n : selectionKey(step.parentNodeId, step.sourceObjectTypeId)\n const target = selectionByKey.get(toKey)\n if (!selectionByKey.has(fromKey) || !target) {\n throw new Error(\"[Sixb] Compiled selected object scope contains an invalid query path step.\")\n }\n const key = edgeKey(\n direction === \"outgoing\" ? step.parentNodeId : step.nodeId,\n direction === \"outgoing\" ? step.sourceObjectTypeId : step.targetObjectTypeId,\n step.linkId\n )\n const targets = index.get(key) ?? []\n targets.push(target)\n index.set(key, targets)\n }\n return index\n}\n\nfunction followEdge(\n state: SelectedObjectQueryState,\n linkId: string,\n direction: \"outgoing\" | \"incoming\",\n sourceObjectTypeId: string | undefined,\n outgoing: ReadonlyMap<string, readonly CompiledObjectReadObjectSelection[]>,\n incoming: ReadonlyMap<string, readonly CompiledObjectReadObjectSelection[]>,\n resultObjectTypeIds?: readonly string[]\n): SelectedObjectQueryState {\n const index = direction === \"outgoing\" ? outgoing : incoming\n const resultTypes = resultObjectTypeIds ? new Set(resultObjectTypeIds) : undefined\n const selections = state.selections.flatMap((selection) => {\n const candidates = index.get(edgeKey(selection.nodeId, selection.objectTypeId, linkId)) ?? []\n return candidates.filter(\n (candidate) =>\n (resultTypes === undefined || resultTypes.has(candidate.objectTypeId)) &&\n (direction === \"outgoing\" ||\n sourceObjectTypeId === undefined ||\n candidate.objectTypeId === sourceObjectTypeId)\n )\n })\n return selectedState(selections)\n}\n\nfunction propertyDenial(\n state: SelectedObjectQueryState,\n propertyId: string,\n objectTypeId: string | undefined,\n use: ObjectQueryPropertyUse,\n path: string,\n propertiesBySelection: ReadonlyMap<string, ReadonlySet<string>>\n): AuthorizationError | undefined {\n const candidates = objectTypeId\n ? state.selections.filter((selection) => selection.objectTypeId === objectTypeId)\n : state.selections\n // A selected reader has no rows for result types absent from this provenance. Those empty\n // branches cannot observe a property and must not make includeSubtypes queries fail closed.\n if (candidates.length === 0) return undefined\n\n const missing = candidates.find(\n (selection) =>\n !propertiesBySelection\n .get(selectionKey(selection.nodeId, selection.objectTypeId))\n ?.has(propertyId)\n )\n if (!missing) return undefined\n\n const objectTypeIds = [...new Set(candidates.map((selection) => selection.objectTypeId))].sort()\n return new AuthorizationError(\n `view:object:${objectTypeIds.join(\",\")}:property:${propertyId}`,\n `[Sixb] Delegated query cannot use property '${propertyId}' for ${use} at '${path}': it is not selected on every matching read-scope path (missing on ${formatSelection(missing)}).`\n )\n}\n\nfunction edgeDenial(\n state: SelectedObjectQueryState,\n linkId: string,\n direction: \"outgoing\" | \"incoming\" | \"both\",\n sourceObjectTypeId: string | undefined,\n use: ObjectQueryEdgeUse,\n path: string\n): AuthorizationError {\n const source = sourceObjectTypeId ? `:${sourceObjectTypeId}` : \"\"\n return new AuthorizationError(\n `view:link:${direction}${source}:${linkId}`,\n `[Sixb] Delegated query cannot use ${direction} link '${linkId}' for ${use} from ${formatState(state)} at '${path}': that exact read-scope path is not selected.`\n )\n}\n\nfunction formatState(state: SelectedObjectQueryState): string {\n if (state.selections.length === 0) return \"an empty read-scope provenance\"\n return `read-scope provenance ${state.selections.map(formatSelection).join(\", \")}`\n}\n\nfunction formatSelection(selection: CompiledObjectReadObjectSelection): string {\n return `'${selection.objectTypeId}'@node ${selection.nodeId}`\n}\n\nfunction selectedState(\n selections: readonly CompiledObjectReadObjectSelection[]\n): SelectedObjectQueryState {\n const unique = new Map<string, CompiledObjectReadObjectSelection>()\n for (const selection of selections) {\n unique.set(selectionKey(selection.nodeId, selection.objectTypeId), selection)\n }\n return Object.freeze({\n [selectedStateBrand]: true as const,\n selections: Object.freeze(\n [...unique.values()].sort(\n (left, right) =>\n left.nodeId - right.nodeId || left.objectTypeId.localeCompare(right.objectTypeId)\n )\n ),\n })\n}\n\nfunction asSelectedState(state: ObjectQueryAdmissionState): SelectedObjectQueryState {\n if ((state as Partial<SelectedObjectQueryState>)[selectedStateBrand] !== true) {\n throw new Error(\"[Sixb] Object query admission state belongs to another semantic admission.\")\n }\n return state as SelectedObjectQueryState\n}\n\nfunction denied(state: SelectedObjectQueryState, denial: Error): ObjectQueryAdmissionTransition {\n return { state, denial }\n}\n\nfunction selectionKey(nodeId: number, objectTypeId: string): string {\n return JSON.stringify([nodeId, objectTypeId])\n}\n\nfunction edgeKey(nodeId: number, objectTypeId: string, linkId: string): string {\n return JSON.stringify([nodeId, objectTypeId, linkId])\n}\n",
|
|
9
|
-
"const MAX_DELEGATED_TELEMETRY_HISTORY_SERIES = 100\nconst MAX_DELEGATED_TELEMETRY_HISTORY_POINTS = 10_000\nconst DEFAULT_DELEGATED_TELEMETRY_HISTORY_LIMIT_PER_SERIES = 100\n\nexport interface TelemetryHistoryReadWorkloadInput {\n readonly seriesCount: number\n readonly limitPerSeries?: number\n}\n\nexport interface TelemetryHistoryReadAdmission {\n readonly limitPerSeries?: number\n readonly maxPointOccurrences?: number\n}\n\ntype TelemetryHistoryWorkloadMetric = \"series\" | \"points\"\n\nclass TelemetryHistoryWorkloadExceededError extends Error {\n readonly name = \"TelemetryHistoryWorkloadExceededError\"\n readonly code = \"telemetry_history_workload_exceeded\"\n\n constructor(\n readonly metric: TelemetryHistoryWorkloadMetric,\n readonly limit: number\n ) {\n super(`[Sixb] Delegated telemetry history exceeded its ${metric} limit (${limit}).`)\n }\n}\n\n/** Resolve one history request without exposing the authority that selected its policy. */\nexport function admitTelemetryHistoryReadWorkload(\n input: TelemetryHistoryReadWorkloadInput,\n delegated: boolean\n): TelemetryHistoryReadAdmission {\n const seriesCount = input.seriesCount\n const limitPerSeries = input.limitPerSeries\n if (!Number.isSafeInteger(seriesCount) || seriesCount < 0) {\n throw new Error(\"[Sixb] Telemetry history series must have a non-negative safe integer length.\")\n }\n if (\n limitPerSeries !== undefined &&\n (!Number.isSafeInteger(limitPerSeries) || limitPerSeries < 0)\n ) {\n throw new Error(\"[Sixb] Telemetry history limit must be a non-negative safe integer.\")\n }\n\n if (!delegated) {\n const admission: TelemetryHistoryReadAdmission =\n limitPerSeries === undefined ? {} : { limitPerSeries }\n return Object.freeze(admission)\n }\n if (seriesCount > MAX_DELEGATED_TELEMETRY_HISTORY_SERIES) {\n throw new TelemetryHistoryWorkloadExceededError(\n \"series\",\n MAX_DELEGATED_TELEMETRY_HISTORY_SERIES\n )\n }\n if (seriesCount === 0) {\n return Object.freeze({\n ...(limitPerSeries === undefined ? {} : { limitPerSeries }),\n maxPointOccurrences: MAX_DELEGATED_TELEMETRY_HISTORY_POINTS,\n })\n }\n\n const maxLimitPerSeries = Math.floor(MAX_DELEGATED_TELEMETRY_HISTORY_POINTS / seriesCount)\n const effectiveLimitPerSeries =\n limitPerSeries ??\n Math.min(DEFAULT_DELEGATED_TELEMETRY_HISTORY_LIMIT_PER_SERIES, maxLimitPerSeries)\n if (effectiveLimitPerSeries > maxLimitPerSeries) {\n throw new TelemetryHistoryWorkloadExceededError(\n \"points\",\n MAX_DELEGATED_TELEMETRY_HISTORY_POINTS\n )\n }\n\n return Object.freeze({\n limitPerSeries: effectiveLimitPerSeries,\n maxPointOccurrences: MAX_DELEGATED_TELEMETRY_HISTORY_POINTS,\n })\n}\n",
|
|
10
|
-
"import { assertNever } from \"../assert-never\"\nimport { assertAuthorized, isAllowed } from \"../authorization\"\nimport { AuthorizationError } from \"../authorization/errors\"\nimport type { AuthorizationContext } from \"../authorization/types\"\nimport type { EmbeddingModelCatalog, RerankingModelCatalog } from \"../models/catalog\"\nimport {\n type AuthorizedOntologySelection,\n type AuthorizedOntologyView,\n createAuthorizedOntologyView,\n} from \"../objects/authorized-ontology-view\"\nimport {\n createClearanceQueryAdmission,\n type PropertyClearance,\n redactObjectRow,\n resolvePropertyClearance,\n} from \"../objects/property-clearance\"\nimport {\n countObjects,\n type ExecuteObjectCountInput,\n type ExecuteObjectCountResult,\n type ExecuteObjectExistsInput,\n type ExecuteObjectExistsResult,\n type ExecuteObjectFacetsInput,\n type ExecuteObjectFacetsResult,\n type ExecuteObjectQueryInput,\n type ExecuteObjectQueryLinksInput,\n type ExecuteObjectQueryLinksResult,\n type ExecuteObjectQueryResult,\n executeObjectQuery,\n executeObjectQueryLinks,\n existsObjects,\n facetObjects,\n} from \"../objects/query\"\nimport { ObjectQueryValidationError } from \"../objects/query/errors\"\nimport { validateObjectFacetRequests } from \"../objects/query/executor\"\nimport type { ObjectQuery } from \"../objects/query/ir\"\nimport { preflightObjectQueryLinks } from \"../objects/query/links\"\nimport {\n createSelectedObjectQueryAdmission,\n type SelectedObjectQueryAdmission,\n} from \"../objects/query/selected-read-admission\"\nimport {\n type AdmittedObjectQuery,\n composeObjectQueryAdmissions,\n type ObjectQuerySemanticAdmission,\n validateObjectQuery,\n validateObjectQueryWithAdmission,\n} from \"../objects/query/validate\"\nimport {\n admitTelemetryHistoryReadWorkload,\n type TelemetryHistoryReadAdmission,\n type TelemetryHistoryReadWorkloadInput,\n} from \"../objects/telemetry/workload\"\nimport type { OntologyRegistry } from \"../ontology\"\nimport type {\n CompiledObjectReadStep,\n LinkBatchKey,\n ObjectFacetRequest,\n ObjectLinkRow,\n ObjectReadStorage,\n ObjectRow,\n ObjectStorage,\n} from \"../storage\"\nimport { assertObjectReadOutputWithinLimit, MAX_OBJECT_READ_FACETS } from \"../storage\"\nimport { captureExecutionScope, resolveExecutionScopeAuthorization } from \"./authorization\"\nimport type { ExecutionScope, RuntimeAuthorization } from \"./types\"\n\ntype RuntimeReadAuthorization = {\n readonly projectId: string\n readonly runtimeAuthorization: RuntimeAuthorization\n readonly authorization?: AuthorizationContext\n}\n\ntype ResolvedExecutionAuthority = ReturnType<typeof resolveExecutionScopeAuthorization>\ntype GetObjectInput = Omit<Parameters<ObjectReadStorage[\"getByPrimaryId\"]>[0], \"projectId\">\ntype GetObjectsInput = Omit<Parameters<ObjectReadStorage[\"getByPrimaryIdBatch\"]>[0], \"projectId\">\ntype SelectObjectPropertiesInput = Parameters<ObjectReadStorage[\"selectsObjectProperties\"]>[0]\ntype CanReadObjectPropertyInput = SelectObjectPropertiesInput[\"items\"][number]\ntype CanReadObjectPropertiesBatchInput = Omit<SelectObjectPropertiesInput, \"projectId\">\ntype ListObjectsInput = Omit<Parameters<ObjectReadStorage[\"list\"]>[0], \"projectId\">\ntype ListLinksInput = Omit<Parameters<ObjectReadStorage[\"listLinks\"]>[0], \"projectId\">\ntype ListLinksBatchInput = Omit<Parameters<ObjectReadStorage[\"listLinksBatch\"]>[0], \"projectId\">\n\nconst readerConstructionKey = Object.freeze({})\n\n/**\n * Core-owned object read boundary for one exact execution authority.\n *\n * The implementation class is intentionally private to this module. Its private fields make the\n * exported instance type nominal, while the construction key prevents code that discovers the\n * JavaScript constructor through an instance from manufacturing another reader.\n */\nclass AuthorizedObjectReaderImpl {\n readonly #authorization: RuntimeAuthorization\n readonly #authority: ResolvedExecutionAuthority\n readonly #runtime: RuntimeReadAuthorization\n readonly #ontology: OntologyRegistry\n readonly #embeddingModels?: EmbeddingModelCatalog\n readonly #rerankingModels?: RerankingModelCatalog\n #ontologyView?: AuthorizedOntologyView\n readonly #storage: ObjectReadStorage\n readonly #delegatedObjectTypeIds?: ReadonlySet<string>\n readonly #delegatedLinkDefinitions?: ReadonlySet<string>\n readonly #delegatedQueryAdmission?: SelectedObjectQueryAdmission\n /** Marked properties this authority cannot read; absent when it reads every property. */\n readonly #clearance?: PropertyClearance\n\n constructor(\n key: typeof readerConstructionKey,\n input: {\n readonly scope: ExecutionScope\n readonly ontology: OntologyRegistry\n readonly embeddingModels?: EmbeddingModelCatalog\n readonly rerankingModels?: RerankingModelCatalog\n readonly storage: ObjectReadStorage\n readonly authority: ResolvedExecutionAuthority\n }\n ) {\n if (key !== readerConstructionKey) {\n throw new Error(\"[Sixb] AuthorizedObjectReader can only be created by Core.\")\n }\n\n this.#authorization = input.scope.authorization\n this.#authority = input.authority\n this.#ontology = input.ontology\n this.#embeddingModels = input.embeddingModels\n this.#rerankingModels = input.rerankingModels\n this.#storage = input.storage\n this.#delegatedObjectTypeIds =\n input.authority.type === \"delegated\"\n ? new Set(input.authority.objectRead.scope.objects.map((object) => object.objectTypeId))\n : undefined\n this.#delegatedLinkDefinitions =\n input.authority.type === \"delegated\"\n ? new Set(input.authority.objectRead.scope.steps.map(delegatedLinkDefinitionKey))\n : undefined\n this.#delegatedQueryAdmission =\n input.authority.type === \"delegated\"\n ? createSelectedObjectQueryAdmission(input.authority.objectRead.scope)\n : undefined\n this.#clearance = clearanceForAuthority(input.authority, input.ontology)\n this.#runtime = Object.freeze({\n projectId: input.scope.execution.projectId,\n runtimeAuthorization: input.scope.authorization,\n ...(input.authority.type === \"principal\" ? { authorization: input.authority.context } : {}),\n })\n }\n\n static assertBound(reader: AuthorizedObjectReaderImpl, scope: ExecutionScope): void {\n const capturedScope = captureExecutionScope(scope)\n resolveExecutionScopeAuthorization(reader.#runtime.projectId, capturedScope)\n if (capturedScope.authorization !== reader.#authorization) {\n throw new Error(\n \"[Sixb] AuthorizedObjectReader is not bound to this exact execution authority.\"\n )\n }\n }\n\n static ontologyView(reader: AuthorizedObjectReaderImpl): AuthorizedOntologyView {\n const authority = reader.#authority\n reader.#ontologyView ??= createAuthorizedOntologyView({\n ontology: reader.#ontology,\n selection: ontologySelectionForAuthority(authority, reader.#ontology),\n ...(authority.type === \"delegated\"\n ? {\n assertOutputWithinLimit: (value: unknown) =>\n assertObjectReadOutputWithinLimit(value, authority.objectRead.limits),\n }\n : {}),\n })\n return reader.#ontologyView\n }\n\n /** Project identity carried by this nominal reader capability. */\n get projectId(): string {\n return this.#runtime.projectId\n }\n\n async getByPrimaryId(input: GetObjectInput): ReturnType<ObjectReadStorage[\"getByPrimaryId\"]> {\n const request = snapshotReadValue({\n objectTypeId: input.objectTypeId,\n primaryId: input.primaryId,\n })\n this.#assertObjectTypesViewable([request.objectTypeId])\n const row = await this.#storage.getByPrimaryId({\n ...request,\n projectId: this.#runtime.projectId,\n })\n return detachReadResult(row && this.#redact(row))\n }\n\n async getByPrimaryIdBatch(\n input: GetObjectsInput\n ): ReturnType<ObjectReadStorage[\"getByPrimaryIdBatch\"]> {\n const request = snapshotReadValue({\n items: input.items.map((item) => ({\n objectTypeId: item.objectTypeId,\n primaryId: item.primaryId,\n })),\n })\n this.#assertObjectTypesViewable(request.items.map((item) => item.objectTypeId))\n const rows = await this.#storage.getByPrimaryIdBatch({\n ...request,\n projectId: this.#runtime.projectId,\n })\n return detachReadResult(\n new Map([...rows].map(([key, row]) => [key, this.#redact(row)] as const))\n )\n }\n\n async canReadObjectProperty(input: CanReadObjectPropertyInput): Promise<boolean> {\n const request = snapshotReadValue({\n objectTypeId: input.objectTypeId,\n primaryId: input.primaryId,\n propertyId: input.propertyId,\n })\n this.#assertObjectTypesViewable([request.objectTypeId])\n if (this.#hidesProperty(request)) return false\n if (this.#authority.type !== \"delegated\") return true\n const [readable] = await this.#storage.selectsObjectProperties({\n projectId: this.#runtime.projectId,\n items: [request],\n })\n return readable ?? false\n }\n\n async canReadObjectPropertiesBatch(\n input: CanReadObjectPropertiesBatchInput\n ): Promise<readonly boolean[]> {\n const request = snapshotReadValue({\n items: input.items.map((item) => ({\n objectTypeId: item.objectTypeId,\n primaryId: item.primaryId,\n propertyId: item.propertyId,\n })),\n })\n this.#assertObjectTypesViewable(request.items.map((item) => item.objectTypeId))\n const selected =\n this.#authority.type === \"delegated\"\n ? await this.#storage.selectsObjectProperties({\n ...request,\n projectId: this.#runtime.projectId,\n })\n : request.items.map(() => true)\n return request.items.map(\n (item, index) => !this.#hidesProperty(item) && selected[index] === true\n )\n }\n\n async list(input: ListObjectsInput): ReturnType<ObjectReadStorage[\"list\"]> {\n const request = snapshotReadValue({\n objectTypeId:\n typeof input.objectTypeId === \"string\"\n ? input.objectTypeId\n : input.objectTypeId === undefined\n ? undefined\n : [...input.objectTypeId],\n primaryIdPrefix: input.primaryIdPrefix,\n primaryIdSuffix: input.primaryIdSuffix,\n updatedAfter: input.updatedAfter,\n updatedBefore: input.updatedBefore,\n createdAfter: input.createdAfter,\n createdBefore: input.createdBefore,\n limit: input.limit,\n offset: input.offset,\n orderBy: input.orderBy,\n order: input.order,\n })\n const objectTypeId = this.#resolveListObjectTypes(request.objectTypeId)\n\n // An empty type selection means \"none\", never \"all\". Short-circuiting here prevents a\n // provider with different empty-array semantics from turning a principal read into a broad one.\n if (Array.isArray(objectTypeId) && objectTypeId.length === 0) {\n return { objects: [], hasMore: false, total: 0 }\n }\n\n const page = await this.#storage.list({\n ...request,\n ...(objectTypeId === undefined ? {} : { objectTypeId }),\n projectId: this.#runtime.projectId,\n })\n return detachReadResult({ ...page, objects: page.objects.map((row) => this.#redact(row)) })\n }\n\n async listLinks(input: ListLinksInput): ReturnType<ObjectReadStorage[\"listLinks\"]> {\n const request = snapshotReadValue({\n objectTypeId: input.objectTypeId,\n objectId: input.objectId,\n linkId: input.linkId,\n direction: input.direction,\n })\n this.#assertObjectTypesViewable([request.objectTypeId])\n const links = detachReadResult(\n await this.#storage.listLinks({\n ...request,\n projectId: this.#runtime.projectId,\n })\n )\n return links.filter((link) => this.#isLinkViewable(link))\n }\n\n async listLinksBatch(\n input: ListLinksBatchInput\n ): ReturnType<ObjectReadStorage[\"listLinksBatch\"]> {\n const request = snapshotReadValue({\n direction: input.direction,\n items: input.items.map((item) => ({\n objectTypeId: item.objectTypeId,\n objectId: item.objectId,\n linkId: item.linkId,\n })),\n })\n this.#assertObjectTypesViewable(request.items.map((item) => item.objectTypeId))\n const pages = detachReadResult(\n await this.#storage.listLinksBatch({\n ...request,\n projectId: this.#runtime.projectId,\n })\n )\n const filtered = new Map<LinkBatchKey, ObjectLinkRow[]>()\n for (const [key, links] of pages) {\n filtered.set(\n key,\n links.filter((link) => this.#isLinkViewable(link))\n )\n }\n return filtered\n }\n\n async executeQuery(\n input: Omit<ExecuteObjectQueryInput, \"projectId\">\n ): Promise<ExecuteObjectQueryResult> {\n const query = snapshotAuthoredQuery(input.query)\n const includeTotal = snapshotReadValue(input.includeTotal)\n const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query\n const result = await executeObjectQuery(\n {\n query: executionQuery,\n ...(includeTotal === undefined ? {} : { includeTotal }),\n projectId: this.#runtime.projectId,\n signal: input.signal,\n },\n this.#queryExecutorOptions()\n )\n return detachReadResult({ ...result, objects: result.objects.map((row) => this.#redact(row)) })\n }\n\n async queryLinks(\n input: Omit<ExecuteObjectQueryLinksInput, \"projectId\">\n ): Promise<ExecuteObjectQueryLinksResult> {\n const query = snapshotAuthoredQuery(input.query)\n const request = snapshotReadValue({\n direction: input.direction,\n linkId: input.linkId,\n includeObjects: input.includeObjects,\n pageSize: input.pageSize,\n pageToken: input.pageToken,\n })\n let executionQuery = query\n const admission = this.#delegatedQueryAdmission\n if (admission) {\n const preflight = preflightObjectQueryLinks(\n { query, ...request, projectId: this.#runtime.projectId },\n { ontology: this.#ontology }\n )\n const admitted = validateObjectQueryWithAdmission(\n preflight.validated.query,\n { ontology: this.#ontology, normalize: false },\n admission\n )\n admission.assertIncidentEdgeSelected({\n state: admitted.admissionState,\n ...(preflight.linkId === undefined ? {} : { linkId: preflight.linkId }),\n direction: preflight.direction,\n path: \"$.linkId\",\n })\n executionQuery = admitted.query\n }\n const result = detachReadResult(\n await executeObjectQueryLinks(\n { query: executionQuery, ...request, projectId: this.#runtime.projectId },\n this.#queryExecutorOptions()\n )\n )\n\n // Link pagination is computed by the provider-facing executor. Filtering afterward would make\n // its cursor and hasMore metadata describe hidden rows, so a provider contract violation must\n // fail closed instead of returning a partially filtered page.\n if (\n result.objects.some((row) => !this.#isObjectTypeViewable(row.objectTypeId)) ||\n result.links.some((link) => !this.#isLinkViewable(link))\n ) {\n throw new Error(\"[Sixb] Object storage returned a link page outside its authorized scope.\")\n }\n return { ...result, objects: result.objects.map((row) => this.#redact(row)) }\n }\n\n async count(\n input: Omit<ExecuteObjectCountInput, \"projectId\">\n ): Promise<ExecuteObjectCountResult> {\n const query = snapshotAuthoredQuery(input.query)\n const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query\n return detachReadResult(\n await countObjects(\n { query: executionQuery, projectId: this.#runtime.projectId },\n this.#queryExecutorOptions()\n )\n )\n }\n\n async exists(\n input: Omit<ExecuteObjectExistsInput, \"projectId\">\n ): Promise<ExecuteObjectExistsResult> {\n const query = snapshotAuthoredQuery(input.query)\n const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query\n return detachReadResult(\n await existsObjects(\n { query: executionQuery, projectId: this.#runtime.projectId },\n this.#queryExecutorOptions()\n )\n )\n }\n\n async facet(\n input: Omit<ExecuteObjectFacetsInput, \"projectId\">\n ): Promise<ExecuteObjectFacetsResult> {\n const query = snapshotAuthoredQuery(input.query)\n const facets = snapshotFacetRequests(input.facets)\n let executionQuery = query\n let executionFacets = facets\n const admission = this.#delegatedQueryAdmission\n if (admission) {\n // Terminal arguments are ordinary validation errors, not an authorization oracle. Validate\n // them against the canonical result shape before raising any delegated-scope denial.\n const validated = validateObjectQuery(query, { ontology: this.#ontology })\n const normalizedFacets = validateObjectFacetRequests(facets, validated.result.objectTypeIds, {\n ontology: this.#ontology,\n })\n const admitted = validateObjectQueryWithAdmission(\n validated.query,\n { ontology: this.#ontology, normalize: false },\n admission\n )\n normalizedFacets.forEach((facet, index) => {\n admission.assertPropertySelected({\n state: admitted.admissionState,\n propertyId: facet.propertyId,\n use: \"facet\",\n path: `$.facets[${index}].propertyId`,\n })\n })\n executionQuery = admitted.query\n executionFacets = normalizedFacets\n }\n return detachReadResult(\n await facetObjects(\n {\n query: executionQuery,\n facets: executionFacets,\n projectId: this.#runtime.projectId,\n },\n this.#queryExecutorOptions()\n )\n )\n }\n\n /**\n * Redact a row returned by a write. An upsert returns the merged effective row, which may hold\n * marked values the writer never sent and cannot read.\n */\n redactWrittenRow<TRow extends ObjectRow>(row: TRow): TRow {\n return this.#redact(row)\n }\n\n /** Enforce the delegated response budget without exposing or recombining its limits. */\n assertVisibleOutputWithinLimit(value: unknown): void {\n if (this.#authority.type !== \"delegated\") return\n assertObjectReadOutputWithinLimit(value, this.#authority.objectRead.limits)\n }\n\n /** Admit adjacent telemetry work without exposing which authority policy was selected. */\n admitTelemetryHistoryRead(\n input: TelemetryHistoryReadWorkloadInput\n ): TelemetryHistoryReadAdmission {\n return admitTelemetryHistoryReadWorkload(input, this.#authority.type === \"delegated\")\n }\n\n #queryExecutorOptions() {\n const admission = this.#executorAdmission()\n if (this.#authority.type === \"delegated\") {\n // The selected storage instance is the private execution capability. Passing the delegated\n // runtime token into the generic executor would either reject this admitted query or tempt a\n // forgeable bypass flag; neither is needed at this nominal boundary.\n return {\n ontology: this.#ontology,\n storage: this.#storage,\n embeddingModels: this.#embeddingModels,\n rerankingModels: this.#rerankingModels,\n ...(admission === undefined ? {} : { admission }),\n }\n }\n return {\n ontology: this.#ontology,\n embeddingModels: this.#embeddingModels,\n rerankingModels: this.#rerankingModels,\n storage: this.#storage,\n runtimeAuthorization: this.#runtime.runtimeAuthorization,\n ...(this.#runtime.authorization === undefined\n ? {}\n : { authorization: this.#runtime.authorization }),\n ...(admission === undefined ? {} : { admission }),\n }\n }\n\n /**\n * The executor validates the query it runs, and that validation resolves default text fields.\n * Every admission that narrows those fields must therefore apply there, not only beforehand.\n */\n #executorAdmission(): ObjectQuerySemanticAdmission | undefined {\n const clearance = this.#clearance && createClearanceQueryAdmission(this.#clearance)\n const selected = this.#delegatedQueryAdmission\n if (selected && clearance) return composeObjectQueryAdmissions(selected, clearance)\n return selected ?? clearance\n }\n\n #redact<TRow extends ObjectRow>(row: TRow): TRow {\n return this.#clearance ? redactObjectRow(row, this.#clearance) : row\n }\n\n #hidesProperty(item: { readonly objectTypeId: string; readonly propertyId: string }): boolean {\n return this.#clearance?.hiddenPropertyIds(item.objectTypeId).has(item.propertyId) ?? false\n }\n\n #admitDelegatedQuery(query: ObjectQuery): AdmittedObjectQuery | undefined {\n if (!this.#delegatedQueryAdmission) return undefined\n return validateObjectQueryWithAdmission(\n query,\n { ontology: this.#ontology },\n this.#delegatedQueryAdmission\n )\n }\n\n #assertObjectTypesViewable(objectTypeIds: readonly string[]): void {\n if (this.#authority.type === \"delegated\") {\n for (const objectTypeId of new Set(objectTypeIds)) {\n if (this.#delegatedObjectTypeIds?.has(objectTypeId)) continue\n throw new AuthorizationError(\n `delegated:object.view:${objectTypeId}`,\n `[Sixb] Delegated authorization does not select object type '${objectTypeId}'.`\n )\n }\n return\n }\n\n for (const objectTypeId of new Set(objectTypeIds)) {\n assertAuthorized(this.#runtime, { kind: \"object.view\", objectTypeId })\n }\n }\n\n #resolveListObjectTypes(\n requested: ListObjectsInput[\"objectTypeId\"]\n ): ListObjectsInput[\"objectTypeId\"] {\n if (requested !== undefined) {\n const objectTypeIds = typeof requested === \"string\" ? [requested] : [...new Set(requested)]\n for (const objectTypeId of objectTypeIds) {\n this.#ontology.resolveObjectType(objectTypeId)\n }\n this.#assertObjectTypesViewable(objectTypeIds)\n return typeof requested === \"string\" ? requested : objectTypeIds\n }\n\n if (this.#authority.type === \"unrestricted\") return undefined\n return this.#ontology\n .listObjectTypes()\n .map((objectType) => objectType.id)\n .filter((objectTypeId) => this.#isObjectTypeViewable(objectTypeId))\n }\n\n #isObjectTypeViewable(objectTypeId: string): boolean {\n if (this.#authority.type === \"delegated\") {\n return this.#delegatedObjectTypeIds?.has(objectTypeId) ?? false\n }\n return isAllowed(this.#runtime.authorization, { kind: \"object.view\", objectTypeId })\n }\n\n #isLinkViewable(link: ObjectLinkRow): boolean {\n if (\n !this.#isObjectTypeViewable(link.sourceTypeId) ||\n !this.#isObjectTypeViewable(link.targetTypeId)\n ) {\n return false\n }\n return (\n this.#delegatedLinkDefinitions?.has(delegatedLinkDefinitionKey(link)) ??\n this.#authority.type !== \"delegated\"\n )\n }\n}\n\nObject.freeze(AuthorizedObjectReaderImpl.prototype)\nObject.freeze(AuthorizedObjectReaderImpl)\n\nexport type AuthorizedObjectReader = AuthorizedObjectReaderImpl\n\n/** Build the sole application-facing object reader for one registered execution scope. */\nexport function createAuthorizedObjectReader(input: {\n readonly scope: ExecutionScope\n readonly ontology: OntologyRegistry\n readonly embeddingModels?: EmbeddingModelCatalog\n readonly rerankingModels?: RerankingModelCatalog\n readonly objectStorage: ObjectStorage\n}): AuthorizedObjectReader {\n const scope = captureExecutionScope(input.scope)\n const projectId = scope.execution.projectId\n const authority = resolveExecutionScopeAuthorization(projectId, scope)\n const storage = objectStorageForAuthority(authority, input.objectStorage)\n const reader = new AuthorizedObjectReaderImpl(readerConstructionKey, {\n scope,\n ontology: input.ontology,\n embeddingModels: input.embeddingModels,\n rerankingModels: input.rerankingModels,\n storage,\n authority,\n })\n Object.freeze(reader)\n return reader\n}\n\n/** Reject recombining an authorized reader with any other execution authority. */\nexport function assertAuthorizedObjectReaderBinding(input: {\n readonly reader: AuthorizedObjectReader\n readonly scope: ExecutionScope\n}): void {\n AuthorizedObjectReaderImpl.assertBound(input.reader, input.scope)\n}\n\n/** Return inert metadata projected from the exact authority already owned by the reader. */\nexport function getAuthorizedOntologyView(reader: AuthorizedObjectReader): AuthorizedOntologyView {\n return AuthorizedObjectReaderImpl.ontologyView(reader)\n}\n\n/**\n * Unrestricted authority reads every property. A principal reads what its roles clear; delegated\n * shared access carries no clearance, so no share can expose a marked property.\n */\nfunction clearanceForAuthority(\n authority: ResolvedExecutionAuthority,\n ontology: OntologyRegistry\n): PropertyClearance | undefined {\n switch (authority.type) {\n case \"unrestricted\":\n return undefined\n case \"principal\":\n return resolvePropertyClearance(ontology, authority.context.clearances ?? new Set())\n case \"delegated\":\n return resolvePropertyClearance(ontology, new Set())\n }\n}\n\nfunction objectStorageForAuthority(\n authority: ResolvedExecutionAuthority,\n objectStorage: ObjectStorage\n): ObjectReadStorage {\n switch (authority.type) {\n case \"principal\":\n case \"unrestricted\":\n return objectStorage\n case \"delegated\":\n return objectStorage.createSelectedReadScope({\n projectId: authority.projectId,\n scope: authority.objectRead.scope,\n limits: authority.objectRead.limits,\n })\n default:\n return assertNever(\n authority,\n `[Sixb] Unsupported object reader authority '${String((authority as { type?: unknown }).type)}'.`\n )\n }\n}\n\nfunction ontologySelectionForAuthority(\n authority: ResolvedExecutionAuthority,\n ontology: OntologyRegistry\n): AuthorizedOntologySelection {\n switch (authority.type) {\n case \"unrestricted\":\n return { kind: \"all\" }\n case \"principal\":\n return {\n kind: \"types\",\n objectTypeIds: ontology\n .listObjectTypes()\n .filter((objectType) =>\n isAllowed(authority.context, {\n kind: \"object.view\",\n objectTypeId: objectType.id,\n })\n )\n .map((objectType) => objectType.id),\n }\n case \"delegated\":\n return { kind: \"selected\", scope: authority.objectRead.scope }\n }\n}\n\nfunction delegatedLinkDefinitionKey(\n input:\n | Pick<CompiledObjectReadStep, \"sourceObjectTypeId\" | \"linkId\" | \"targetObjectTypeId\">\n | Pick<ObjectLinkRow, \"sourceTypeId\" | \"linkId\" | \"targetTypeId\">\n): string {\n return \"sourceObjectTypeId\" in input\n ? JSON.stringify([input.sourceObjectTypeId, input.linkId, input.targetObjectTypeId])\n : JSON.stringify([input.sourceTypeId, input.linkId, input.targetTypeId])\n}\n\n/**\n * Storage providers may optimize trusted reads with live references. Values crossing the\n * application-facing authorization boundary must not retain them.\n */\nfunction detachReadResult<T>(value: T): T {\n return structuredClone(value)\n}\n\n/** Capture caller-owned values before authorization and execution. */\nfunction snapshotReadValue<T>(value: T): T {\n return structuredClone(value)\n}\n\n/** Bound and capture facet arguments before reading any caller-owned element. */\nfunction snapshotFacetRequests(facets: readonly ObjectFacetRequest[]): ObjectFacetRequest[] {\n if (!Array.isArray(facets)) {\n throw new ObjectQueryValidationError([\n {\n path: \"$.facets\",\n code: \"invalid_facets\",\n message: \"facets must be an array\",\n },\n ])\n }\n const length = facets.length\n if (!Number.isSafeInteger(length) || length > MAX_OBJECT_READ_FACETS) {\n throw new ObjectQueryValidationError([\n {\n path: \"$.facets\",\n code: \"too_many_facets\",\n message: `facets must include at most ${MAX_OBJECT_READ_FACETS} facet requests`,\n },\n ])\n }\n\n const snapshot: ObjectFacetRequest[] = []\n for (let index = 0; index < length; index += 1) {\n const facet = facets[index]\n snapshot.push({ propertyId: facet.propertyId, limit: facet.limit })\n }\n return snapshot\n}\n\n/** Capture one serializable query before either authorization or execution sees it. */\nfunction snapshotAuthoredQuery(query: ObjectQuery): ObjectQuery {\n try {\n const snapshot = structuredClone(query)\n const pending = [snapshot]\n const seen = new Set<ObjectQuery>()\n for (const node of pending) {\n if (seen.has(node)) continue\n seen.add(node)\n if (\n node.kind === \"vector\" &&\n (typeof node.vector !== \"string\" ||\n typeof node.profile !== \"string\" ||\n \"propertyId\" in node)\n ) {\n throw new ObjectQueryValidationError([\n {\n path: \"$\",\n code: \"invalid_vector_search_input\",\n message: \"Vector search requires a named profile and search text\",\n },\n ])\n }\n if (\"input\" in node) pending.push(node.input)\n if (node.kind === \"set\") pending.push(...node.inputs)\n }\n return snapshot\n } catch (error) {\n if (error instanceof ObjectQueryValidationError) throw error\n throw new ObjectQueryValidationError([\n {\n path: \"$\",\n code: \"query_not_cloneable\",\n message: \"Object query must contain only structured-cloneable data\",\n },\n ])\n }\n}\n",
|
|
11
6
|
"import type { ActionDefinition, ActionParamsConfig } from \"./types\"\n\ntype DeepReadonly<T> = T extends object ? { readonly [TKey in keyof T]: DeepReadonly<T[TKey]> } : T\n\nexport type ActionDescriptorBinding =\n | { readonly kind: \"global\" }\n | { readonly kind: \"object\"; readonly objectTypeId: string }\n\nexport type ActionParamDescriptor = DeepReadonly<ActionParamsConfig[string]>\n\nexport interface ActionPhaseDescriptor {\n readonly validate: boolean\n readonly writeback: boolean\n readonly edits: boolean\n readonly effects: boolean\n}\n\n/** Immutable metadata exposed by the execution-bound Actions catalog. */\nexport interface ActionDescriptor<TId extends string = string> {\n readonly id: TId\n readonly description?: string\n readonly binding: ActionDescriptorBinding\n readonly params: Readonly<Record<string, ActionParamDescriptor>>\n readonly phases: ActionPhaseDescriptor\n}\n\n/** Project an executable definition into inert, detached public metadata. */\nexport function snapshotActionDescriptor(action: ActionDefinition): ActionDescriptor {\n const params = Object.fromEntries(\n Object.entries(action.params).map(([id, config]) => [id, structuredClone(config)])\n ) as Record<string, ActionParamDescriptor>\n\n return deepFreeze({\n id: action.id,\n ...(action.description === undefined ? {} : { description: action.description }),\n binding:\n action.binding.kind === \"global\"\n ? { kind: \"global\" as const }\n : { kind: \"object\" as const, objectTypeId: action.binding.objectType.id },\n params,\n phases: {\n validate: action.phases.validate.length > 0,\n writeback: action.phases.writeback !== undefined,\n edits: action.phases.edits !== undefined,\n effects: action.phases.effects !== undefined,\n },\n })\n}\n\nfunction deepFreeze<T>(value: T, seen: Set<object> = new Set()): T {\n if (typeof value !== \"object\" || value === null || seen.has(value)) return value\n seen.add(value)\n for (const key of Reflect.ownKeys(value)) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key)\n if (descriptor && \"value\" in descriptor) deepFreeze(descriptor.value, seen)\n }\n return Object.freeze(value)\n}\n",
|
|
12
7
|
"import type { SchemaOrRef, ValueType } from \"../../ontology\"\nimport { isObjectRefSchema } from \"../../ontology/refs\"\nimport { collectUserRefIds, userReferenceProblem } from \"../../ontology/user-ref\"\nimport type { AuthStorage } from \"../../storage/auth/types\"\n\n/**\n * Reject params that reference a user who does not exist or is not active.\n *\n * Callers run it only when a new run is created: replaying an existing run keeps the params it was\n * accepted with, even if a referenced user was suspended since.\n */\nexport async function assertParamUsersActive(input: {\n readonly auth: AuthStorage | undefined\n readonly projectId: string\n readonly schemas: Readonly<Record<string, SchemaOrRef>>\n readonly values: Readonly<Record<string, unknown>>\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n /** Names one param in error messages, for example `Action param 'task.assign.assignee'`. */\n readonly describe: (paramId: string) => string\n readonly invalid: (message: string) => Error\n}): Promise<void> {\n const references: { readonly paramId: string; readonly id: string }[] = []\n for (const [paramId, schema] of Object.entries(input.schemas)) {\n if (isObjectRefSchema(schema)) continue\n const ids = collectUserRefIds(schema, input.values[paramId], input.valueTypesById, new Set())\n for (const id of ids) references.push({ paramId, id })\n }\n if (references.length === 0) return\n\n const users = input.auth?.users\n const statuses = new Map(\n await Promise.all(\n [...new Set(references.map((reference) => reference.id))].map(\n async (id) =>\n [\n id,\n users\n ? ((await users.getById({ projectId: input.projectId, id }))?.status ?? null)\n : \"unverifiable\",\n ] as const\n )\n )\n )\n for (const { paramId, id } of references) {\n const problem = userReferenceProblem(input.describe(paramId), id, statuses.get(id) ?? null)\n if (problem) throw input.invalid(problem)\n }\n}\n",
|
|
13
8
|
"import { AuthorizationError } from \"../authorization\"\nimport type { ResolvedRuntimeAuthorization } from \"../execution/authorization\"\nimport {\n type AuthorizedObjectReader,\n assertAuthorizedObjectReaderBinding,\n} from \"../execution/authorized-object-reader\"\nimport type { ExecutionContext, RuntimeAuthorization } from \"../execution/types\"\nimport type { ActionDefinition, ActionObjectSubject, ActionSubject } from \"./types\"\n\ntype DelegatedAuthorization = Extract<ResolvedRuntimeAuthorization, { readonly type: \"delegated\" }>\n\n/** Reject ungranted tuples before Action lookup can become a metadata oracle. */\nexport function assertDelegatedActionTarget(input: {\n readonly authorization: DelegatedAuthorization\n readonly actionId: string\n readonly subject: ActionSubject\n}): ActionObjectSubject {\n const { actionId, authorization, subject } = input\n if (\n subject.kind !== \"object\" ||\n !authorization.actionApply.some(\n (target) =>\n target.actionId === actionId &&\n target.subject.objectTypeId === subject.objectTypeId &&\n target.subject.primaryId === subject.primaryId\n )\n ) {\n throw denied(actionId, subject)\n }\n return subject\n}\n\n/** Admit an exact tuple against its definition and current selected-read visibility. */\nexport async function admitDelegatedObjectAction(input: {\n readonly objectReader: AuthorizedObjectReader\n readonly runtimeAuthorization: RuntimeAuthorization\n readonly execution: ExecutionContext\n readonly authorization: DelegatedAuthorization\n readonly action: ActionDefinition\n readonly subject: ActionObjectSubject\n}): Promise<void> {\n const { action, authorization, execution, objectReader, runtimeAuthorization, subject } = input\n assertDelegatedActionTarget({ authorization, actionId: action.id, subject })\n if (action.binding.kind !== \"object\" || action.binding.objectType.id !== subject.objectTypeId) {\n throw denied(action.id, subject)\n }\n\n assertAuthorizedObjectReaderBinding({\n reader: objectReader,\n scope: { execution, authorization: runtimeAuthorization },\n })\n\n try {\n const visible = await objectReader.getByPrimaryId({\n objectTypeId: subject.objectTypeId,\n primaryId: subject.primaryId,\n })\n if (!visible) throw denied(action.id, subject)\n } catch (error) {\n if (error instanceof AuthorizationError) throw denied(action.id, subject)\n throw error\n }\n}\n\nfunction denied(actionId: string, subject: ActionSubject): AuthorizationError {\n const target =\n subject.kind === \"object\" ? `${subject.objectTypeId}:${subject.primaryId}` : \"global\"\n return new AuthorizationError(\n `apply:action:${actionId}:${target}`,\n `[Sixb] Delegated authority cannot apply Action '${actionId}' to '${target}'.`\n )\n}\n",
|
|
@@ -30,13 +25,11 @@
|
|
|
30
25
|
"import { reportRunFailure } from \"../../error-reporting/capability\"\nimport { createSixbError } from \"../../errors/internal\"\nimport type { ActionRunFailure, RecordActionRunInput } from \"../../storage\"\nimport { ActionRunError } from \"../../storage\"\nimport type { CommittedActionRun } from \"./edits-commit\"\nimport { runActionEffects } from \"./effects\"\nimport { isActionPhaseFailure, toActionRunFailure, unwrapActionPhaseError } from \"./normalize\"\nimport { executeActionPhases } from \"./phases\"\nimport type { ActionRunSignals } from \"./signals\"\nimport { ActionRunState, type FailedActionRunRecord } from \"./state\"\nimport type { ActionRunContext, ActionRunOutcome, RunActionInput } from \"./types\"\n\n/**\n * A run that ended, but whose terminal record could not be written.\n *\n * It carries that record, so that whoever reports this error still reports how the run ended. Its\n * cause is the error that kept the record from being written.\n */\nexport class UnrecordedActionRunError extends Error {\n override readonly name = \"UnrecordedActionRunError\"\n\n constructor(\n readonly record: RecordActionRunInput,\n options: { readonly cause: unknown }\n ) {\n super(`[Sixb] Action run '${record.id}' ended, but its record could not be written.`, options)\n }\n}\n\n/**\n * Execute a requested run to its end, and record it once.\n *\n * A run with edits is recorded by the commit of its edits; any other run, succeeded or failed, is\n * recorded as soon as it ends. The run's effects are left to the caller to start: see\n * {@link ActionRunOutcome.effects}. This rejects when the run cannot execute here, or with an\n * {@link UnrecordedActionRunError} when its record cannot be written.\n */\nexport async function runAction(input: RunActionInput): Promise<ActionRunOutcome> {\n const { runtime, run, signals } = input\n const ids = { actionId: run.actionId, runId: run.id }\n\n if (run.projectId !== runtime.id) {\n throw createSixbError(\n \"internal.unexpected\",\n `[Sixb] Action run '${run.id}' belongs to project '${run.projectId}', not '${runtime.id}'.`,\n { details: { ...ids, durableProjectId: run.projectId } }\n )\n }\n\n const state = new ActionRunState(run, new Date())\n const action = runtime.actions.getById(run.actionId)\n if (!action) {\n const message = `[Sixb] Unknown action '${run.actionId}'.`\n const error = createSixbError(\"internal.unexpected\", message, { details: ids })\n const failure = toActionRunFailure(error, \"validation\", { ...ids, at: new Date() })\n return recordFailure(runtime, state.failed(failure), error)\n }\n\n let committed: CommittedActionRun | null\n try {\n committed = await executeActionPhases({ runtime, action, state, signals })\n } catch (error) {\n return recordFailure(runtime, state.failed(runFailure(error, state, signals)), error)\n }\n\n if (!committed) return recordRun(runtime, state.succeeded())\n // A commit that already existed recorded the run with it, for another request.\n if (!committed.commit.created) return findRecordedRun(runtime, committed.record)\n const { commit } = committed\n return {\n record: committed.record,\n recorded: true,\n ...(action.phases.effects\n ? {\n effects: () =>\n runActionEffects({\n runtime,\n action,\n state,\n commit,\n startDeadline: () => signals.startEffects(),\n }),\n }\n : {}),\n }\n}\n\n/**\n * The failure a run that threw records.\n *\n * A failed writeback fails the run with the writeback's own failure. Otherwise, only a run stopped\n * before its boundary is the caller's or the deadline's doing. Past it, or when a phase classified\n * its error before anything aborted, the run failed on its own merits.\n */\nfunction runFailure(\n error: unknown,\n state: ActionRunState,\n signals: ActionRunSignals\n): ActionRunFailure {\n if (state.writeback?.status === \"failed\") return state.writeback.error\n const stopped =\n !state.pastBoundary && signals.beforeBoundary.aborted && !isActionPhaseFailure(error)\n return toActionRunFailure(stopped ? signals.stopReason() : error, state.phase, {\n actionId: state.run.actionId,\n runId: state.run.id,\n at: new Date(),\n })\n}\n\n/**\n * Record a failed run, and report its failure to `onError` once this request recorded it. A run its\n * caller cancelled is not reported: it did not fail on its own.\n */\nasync function recordFailure(\n runtime: ActionRunContext,\n record: FailedActionRunRecord,\n error: unknown\n): Promise<ActionRunOutcome> {\n const outcome = await recordRun(runtime, record)\n if (outcome.recorded && record.error.code !== \"runtime.cancelled\") {\n reportRunFailure(runtime.errorReporterHost, unwrapActionPhaseError(error), {\n projectId: runtime.id,\n runKind: \"action\",\n run: { runId: record.id, actionId: record.actionId },\n failure: record.error,\n })\n }\n return outcome\n}\n\n/**\n * Write a run's terminal record. A run id is recorded once: when a concurrent request for the same\n * run id recorded it first, with the same request, its record answers this one too.\n */\nasync function recordRun(\n runtime: ActionRunContext,\n record: RecordActionRunInput\n): Promise<ActionRunOutcome> {\n try {\n return { record: await runtime.actionRunsStorage.record(record), recorded: true }\n } catch (error) {\n if (error instanceof ActionRunError) return findRecordedRun(runtime, record, error)\n throw new UnrecordedActionRunError(record, { cause: error })\n }\n}\n\n/**\n * The record another request wrote for this run. Whether it answers this request is the request's\n * to decide, under the checks any record it finds gets.\n */\nasync function findRecordedRun(\n runtime: ActionRunContext,\n record: RecordActionRunInput,\n cause?: unknown\n): Promise<ActionRunOutcome> {\n try {\n const stored = await runtime.actionRunsStorage.getById({\n projectId: record.projectId,\n id: record.id,\n })\n if (!stored) {\n throw (\n cause ?? new ActionRunError(`[Sixb] Action run '${record.id}' committed without a record.`)\n )\n }\n return { record: stored, recorded: false }\n } catch (error) {\n throw new UnrecordedActionRunError(record, { cause: error })\n }\n}\n",
|
|
31
26
|
"import { createSixbError } from \"../../errors/internal\"\nimport {\n type BoundPrimitiveExecution,\n bindDurablePrimitiveExecution,\n type PrimitiveExecutionHost,\n} from \"../../execution/primitive\"\nimport type { LoggingService } from \"../../logging/service\"\nimport type { SixbDefinitions } from \"../../runtime/definitions\"\nimport type { ActionRunStorage, Storage } from \"../../storage\"\nimport type { ExecutionRecord } from \"../../storage/executions\"\nimport { runAction } from \"./run-action\"\nimport { ActionRunSignals } from \"./signals\"\nimport type { ActionRunContext, ActionRunOutcome, PendingActionRun } from \"./types\"\n\n/** What executing a stored Action run needs from its host. */\nexport interface ActionRunHost extends PrimitiveExecutionHost {\n readonly storage: Storage\n readonly logging?: LoggingService\n readonly definitions: Pick<SixbDefinitions, \"actions\">\n}\n\nexport interface ExecuteActionRunInput {\n readonly run: PendingActionRun\n /** The durable execution the run was requested under. */\n readonly execution: ExecutionRecord\n /** Cancels the run before its irreversible boundary. */\n readonly signal?: AbortSignal\n /** Test-only override of the 30-second deadlines of the run and of its effects. */\n readonly timeoutMs?: number\n}\n\n/**\n * The model-call attempt an Action run accounts under.\n *\n * Model accounting records every call against an execution attempt. A run executes once, in the\n * process that requested it, so it is always the first.\n */\nconst MODEL_EXECUTION_ATTEMPT = 1\n\n/**\n * Execute a requested Action run inside the durable execution it was requested under, and record it.\n *\n * Binds the Action's primitive scope to that execution, then runs the phases under the run's\n * deadline and the caller's signal. Its effects, when it has any, are left to start: see\n * {@link ActionRunOutcome.effects}.\n */\nexport async function executeActionRun(\n host: ActionRunHost,\n input: ExecuteActionRunInput\n): Promise<ActionRunOutcome> {\n const { run, execution } = input\n const actionRuns = requireActionRunStorage(host, run.id)\n const signals = new ActionRunSignals({\n actionId: run.actionId,\n runId: run.id,\n caller: input.signal,\n timeoutMs: input.timeoutMs,\n })\n\n try {\n const bound = bindDurablePrimitiveExecution(host, {\n // Model calls stop with their phase through the `signal` a handler forwards to them. Binding\n // the run's deadline here would also stop the embedding calls behind the vector reads that\n // edits make past the boundary, which must always finish.\n modelExecution: { attempt: MODEL_EXECUTION_ATTEMPT, signal: signals.uninterruptible },\n execution,\n primitive: { kind: \"action\", id: run.actionId, runId: run.id },\n })\n return await runAction({\n runtime: buildActionContext(host, actionRuns, bound),\n run,\n signals,\n })\n } finally {\n signals.dispose()\n }\n}\n\nfunction requireActionRunStorage(host: ActionRunHost, runId: string): ActionRunStorage {\n const actionRuns = host.storage.actionRuns\n if (!actionRuns) {\n throw createSixbError(\n \"internal.unexpected\",\n \"[Sixb] Action execution requires storage.actionRuns support.\",\n { details: { runId } }\n )\n }\n return actionRuns\n}\n\nfunction buildActionContext(\n host: ActionRunHost,\n actionRunsStorage: ActionRunStorage,\n execution: BoundPrimitiveExecution\n): ActionRunContext {\n const sixb = {\n models: execution.sixb.models,\n objects: execution.sixb.objects,\n actions: execution.sixb.actions,\n connector: execution.sixb.connector,\n blobs: execution.sixb.blobs,\n }\n return {\n id: host.id,\n errorReporterHost: host,\n logging: host.logging,\n storage: host.storage,\n actionRunsStorage,\n ontologyMutations: execution.ontologyMutations,\n sixb,\n actions: host.definitions.actions,\n }\n}\n",
|
|
32
27
|
"import { reportRunFailure } from \"../../error-reporting/capability\"\nimport { createSixbError, type SixbCodedError } from \"../../errors/internal\"\nimport type { ActionRunRecord } from \"../../storage\"\nimport {\n type ActionRunRequestPayload,\n type AssertCanReuseActionRun,\n assertCanReuseActionRun,\n type PersistedActionRun,\n} from \"../run-persistence\"\nimport { type ActionRunHost, executeActionRun } from \"./execute\"\nimport { toActionRunFailure } from \"./normalize\"\nimport { UnrecordedActionRunError } from \"./run-action\"\nimport type { PendingActionRun } from \"./types\"\n\n/** A request for an Action run, handed over to execute in the requesting process. */\nexport interface ActionRunRequest {\n readonly runId: string\n readonly payload: ActionRunRequestPayload\n /** Find the record of an earlier request with the same run id, or create the run's execution. */\n readonly persist: () => Promise<PersistedActionRun>\n /** Refuse a run that already exists under the run id, when this request's caller may not have it. */\n readonly assertCanReuse: AssertCanReuseActionRun\n /** Cancels the run before its irreversible boundary. */\n readonly signal?: AbortSignal\n /** Called once the run's execution exists, before the run executes. A throw starts nothing. */\n readonly onRequested?: (runId: string) => void | Promise<void>\n}\n\ntype NewActionRun = Extract<PersistedActionRun, { readonly kind: \"new\" }>\n\n/** A request of this process that holds a run id, from before it looks the run id up. */\ninterface HeldRunId {\n /**\n * The run once its execution exists. It resolves with `null` when the request executes nothing,\n * having found a record or failed before, and the run id is released by then.\n */\n readonly pending: Promise<PendingActionRun | null>\n}\n\n/**\n * Runs requested Actions in the calling process, and tracks each request until its run is recorded\n * and its effects ended, so that a stopping process can wait for them.\n *\n * `SixbHost` registers one on itself and on the context its bound SDKs share, so a request can\n * execute its run without holding the host.\n */\nexport class ActionRunExecutor {\n private readonly inFlight = new Set<Promise<void>>()\n /** Run ids held by a request of this process, until it ends. */\n private readonly held = new Map<string, HeldRunId>()\n private stopping = false\n\n constructor(private readonly host: ActionRunHost) {}\n\n /**\n * Execute a requested run to its terminal record, or answer with the record of an earlier request\n * for the same run id.\n *\n * The request is tracked from before anything is persisted, so that {@link drain} waits for it\n * from the start. Once the process is stopping, a new request is refused before anything is\n * persisted. A request for a run id that this process is executing is refused as in progress:\n * see {@link joinHeldRunId}. A request for the same run id in another process executes too, and\n * the request that records it second answers with the first one's record, under the same checks\n * as any record it finds.\n *\n * Once the run's execution exists, the request either resolves with the run's record or rejects\n * with `internal.unexpected`: see {@link failRequest}.\n */\n request(request: ActionRunRequest): Promise<ActionRunRecord> {\n if (this.stopping) {\n return Promise.reject(\n createSixbError(\n \"runtime.stopping\",\n \"[Sixb] The runtime is stopping and starts no new Action run; retry the request.\"\n )\n )\n }\n const requested = this.dispatch(request)\n this.track(requested)\n return requested\n }\n\n /**\n * Refuse new requests, then wait for at most `timeoutMs` for those in flight and for the effects\n * they start meanwhile.\n */\n async drain(timeoutMs: number): Promise<void> {\n this.stopping = true\n const deadline = Date.now() + Math.max(0, timeoutMs)\n // A request that ends starts its run's effects before it settles, so they are tracked by the\n // time the wait for the request returns: wait again until nothing is left.\n while (this.inFlight.size > 0) {\n if (!(await settleWithin([...this.inFlight], deadline - Date.now()))) {\n console.error(\n `[Sixb] Stopped waiting after ${timeoutMs} ms for ${this.inFlight.size} in-flight Action run(s).`\n )\n return\n }\n }\n }\n\n /** Track work until it settles. Whoever started it handles how it ends; this only waits. */\n private track(work: Promise<unknown>): void {\n const settled: Promise<void> = work\n .then(\n () => undefined,\n () => undefined\n )\n .finally(() => {\n this.inFlight.delete(settled)\n })\n this.inFlight.add(settled)\n }\n\n private async dispatch(request: ActionRunRequest): Promise<ActionRunRecord> {\n // A request that held the run id but executes nothing releases it before its `pending`\n // settles, so each turn of this loop finds the run id free or held by another request.\n for (let held = this.held.get(request.runId); held; held = this.held.get(request.runId)) {\n const run = await held.pending\n if (run) return this.joinHeldRunId(run, request)\n }\n return this.holdAndExecute(request)\n }\n\n /**\n * Answer a request for a run id that a request of this process executes.\n *\n * Nothing is stored about a run before it ends, so this process is the only one that knows the\n * run is in progress. The request gets what a stored run would give it: refused when its caller\n * may not have the run or asks for something else, the record once it is written, and\n * `action.run_in_progress` until then.\n */\n private async joinHeldRunId(\n run: PendingActionRun,\n request: ActionRunRequest\n ): Promise<ActionRunRecord> {\n await assertCanReuseActionRun(run, request)\n const recorded = await this.host.storage.actionRuns?.getById({\n projectId: run.projectId,\n id: run.id,\n })\n if (recorded) return recorded\n throw createSixbError(\n \"action.run_in_progress\",\n `[Sixb] Action run '${run.id}' is already in progress.`,\n { details: { actionId: run.actionId, runId: run.id } }\n )\n }\n\n private async holdAndExecute(request: ActionRunRequest): Promise<ActionRunRecord> {\n const { runId } = request\n const pending = Promise.withResolvers<PendingActionRun | null>()\n this.held.set(runId, { pending: pending.promise })\n try {\n const persisted = await request.persist()\n if (persisted.kind === \"recorded\") return persisted.run\n pending.resolve(persisted.run)\n return await this.execute(persisted, request)\n } finally {\n this.held.delete(runId)\n pending.resolve(null)\n }\n }\n\n private async execute(\n persisted: NewActionRun,\n request: ActionRunRequest\n ): Promise<ActionRunRecord> {\n const { run, execution } = persisted\n try {\n await request.onRequested?.(run.id)\n } catch (error) {\n // Nothing ran and nothing is recorded: the error belongs to the caller whose hook threw.\n throw createSixbError(\n \"internal.unexpected\",\n `[Sixb] Action run '${run.id}' did not start: its requester failed before it executed.`,\n { cause: error, details: { actionId: run.actionId, runId: run.id } }\n )\n }\n\n let outcome: Awaited<ReturnType<typeof executeActionRun>>\n try {\n outcome = await executeActionRun(this.host, { run, execution, signal: request.signal })\n } catch (error) {\n throw this.failRequest(run, error)\n }\n\n if (!outcome.recorded) {\n // Another process recorded this run id first: its record answers this request only under\n // the checks a record found before executing gets.\n await assertCanReuseActionRun(outcome.record, request)\n return outcome.record\n }\n if (outcome.effects) this.startEffects(run, outcome.effects)\n return outcome.record\n }\n\n /**\n * Start a recorded run's effects once the request has returned, tracked until they end. Deferring\n * them keeps a handler that does synchronous work before its first `await` from delaying the\n * response.\n */\n private startEffects(run: PendingActionRun, effects: () => Promise<void>): void {\n this.track(\n new Promise<void>((resolve) => setImmediate(resolve))\n .then(effects)\n .catch((error: unknown) => {\n console.error(`[Sixb] Action run '${run.id}' failed to run its effects:`, error)\n })\n )\n }\n\n /**\n * Fail a request whose run's execution exists.\n *\n * The run may have executed, so the caller gets an `internal.unexpected` error that names the run\n * and says what requesting it again does, never what went wrong inside it: that goes to\n * `onError`, once, with the failure the run recorded or would have recorded. Errors outside the\n * run's phases fail it in `validation`, the phase it starts in.\n */\n private failRequest(run: PendingActionRun, error: unknown): SixbCodedError {\n const ids = { actionId: run.actionId, runId: run.id }\n const requestError = createSixbError(\n \"internal.unexpected\",\n `[Sixb] Action run '${run.id}' was requested, but its record could not be written. ` +\n \"Requesting it again with the same runId returns its record if it was written, and runs \" +\n \"it again otherwise.\",\n { cause: error, details: ids }\n )\n const at = new Date()\n reportRunFailure(this.host, requestError, {\n projectId: this.host.id,\n runKind: \"action\",\n run: ids,\n failure:\n error instanceof UnrecordedActionRunError\n ? (error.record.error ??\n toActionRunFailure(error.cause, error.record.phase, { ...ids, at }))\n : toActionRunFailure(error, \"validation\", { ...ids, at }),\n })\n return requestError\n }\n}\n\nconst actionRunExecutorKey: unique symbol = Symbol(\"sixb.actionRunExecutor\")\n\ninterface ActionRunExecutorOwner {\n readonly [actionRunExecutorKey]?: ActionRunExecutor\n}\n\n/**\n * Attach the executor to a host or runtime context. The property is enumerable so that spreading a\n * context into a narrower one carries it along.\n */\nexport function registerActionRunExecutor(owner: object, executor: ActionRunExecutor): void {\n const registered = findActionRunExecutor(owner)\n if (registered && registered !== executor) {\n throw new Error(\"[Sixb] An Action run executor is already registered for this owner.\")\n }\n Object.defineProperty(owner, actionRunExecutorKey, {\n configurable: false,\n enumerable: true,\n value: executor,\n writable: false,\n })\n}\n\nexport function getActionRunExecutor(owner: object): ActionRunExecutor {\n const executor = findActionRunExecutor(owner)\n if (executor) return executor\n throw new Error(\n \"[Sixb] Actions cannot run from this runtime context: it was not bound by SixbHost.withScope().\"\n )\n}\n\n/** Copy the executor, when there is one, onto an internal runtime context being reconstructed. */\nexport function shareActionRunExecutor(source: object, target: object): void {\n const executor = findActionRunExecutor(source)\n if (executor) registerActionRunExecutor(target, executor)\n}\n\n/**\n * Refuse new Action requests on this host, then wait for at most `timeoutMs` for those in flight.\n *\n * Every `SixbHost` has an executor from construction on, so an object without one is not a host.\n */\nexport async function drainActionRuns(host: object, timeoutMs: number): Promise<void> {\n const executor = findActionRunExecutor(host)\n if (!executor) {\n throw new Error(\"[Sixb] Cannot drain Action runs: this object is not a SixbHost.\")\n }\n await executor.drain(timeoutMs)\n}\n\nfunction findActionRunExecutor(owner: object): ActionRunExecutor | undefined {\n return (owner as ActionRunExecutorOwner)[actionRunExecutorKey]\n}\n\nasync function settleWithin(\n promises: readonly Promise<unknown>[],\n timeoutMs: number\n): Promise<boolean> {\n let timeout: ReturnType<typeof setTimeout> | undefined\n try {\n return await Promise.race([\n Promise.allSettled(promises).then(() => true),\n new Promise<false>((resolve) => {\n timeout = setTimeout(() => resolve(false), timeoutMs)\n }),\n ])\n } finally {\n if (timeout) clearTimeout(timeout)\n }\n}\n",
|
|
33
|
-
"import type { ResolvedRuntimeAuthorization } from \"../execution/authorization\"\nimport type { Storage } from \"../storage\"\nimport type { ActionRunRecord } from \"../storage/action-runs\"\nimport { findPrimitiveParentRequestExecution } from \"../storage/executions/run-link\"\n\n/** Check both current grant scope and immutable request provenance for a delegated Action run. */\nexport async function canDelegationAccessActionRun(input: {\n readonly storage: Storage\n readonly projectId: string\n readonly authority: Extract<ResolvedRuntimeAuthorization, { readonly type: \"delegated\" }>\n readonly run: ActionRunRecord\n}): Promise<boolean> {\n const subject = input.run.subject\n if (\n !input.authority.delegation ||\n subject.kind !== \"object\" ||\n !input.authority.actionApply.some(\n (target) =>\n target.actionId === input.run.actionId &&\n target.subject.objectTypeId === subject.objectTypeId &&\n target.subject.primaryId === subject.primaryId\n )\n ) {\n return false\n }\n return actionRunBelongsToShareGrant({\n storage: input.storage,\n projectId: input.projectId,\n run: input.run,\n grantId: input.authority.delegation.grantId,\n })\n}\n\n/** Session ids remain audit provenance; the issued grant is the durable capability identity. */\nexport async function actionRunBelongsToShareGrant(input: {\n readonly storage: Storage\n readonly projectId: string\n readonly run: Pick<ActionRunRecord, \"id\" | \"actionId\" | \"executionId\">\n readonly grantId: string\n}): Promise<boolean> {\n const parent = await findPrimitiveParentRequestExecution({\n executions: input.storage.executions,\n projectId: input.projectId,\n executionId: input.run.executionId,\n primitive: { kind: \"action\", id: input.run.actionId, runId: input.run.id },\n })\n const authorization = parent?.authorizationRef\n return (\n authorization?.type === \"delegated\" &&\n authorization.delegation.kind === \"share\" &&\n authorization.delegation.grantId === input.grantId\n )\n}\n",
|
|
34
|
-
"import { AuthorizationError, assertAuthorized, canViewActionRun } from \"../authorization\"\nimport {\n getAuthorizationRef,\n type ResolvedRuntimeAuthorization,\n resolveExecutionScopeAuthorization,\n} from \"../execution/authorization\"\nimport {\n createPrimitiveExecutionRecord,\n ensureExecutionRecord,\n executionRecordInputFromRuntime,\n} from \"../execution/durable\"\nimport type { ExecutionContext } from \"../execution/types\"\nimport { OntologyValidationError } from \"../ontology/errors\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport { assertParamUsersActive } from \"../shared/params/user-refs\"\nimport type { ActionRunRecord } from \"../storage\"\nimport {\n assertObjectReadOutputWithinLimit,\n ObjectReadLimitExceededError,\n} from \"../storage/objects/execution-limits\"\nimport { admitDelegatedObjectAction, assertDelegatedActionTarget } from \"./delegated-admission\"\nimport { getActionRunExecutor } from \"./run/executor\"\nimport { actionRunBelongsToShareGrant } from \"./run-authorization\"\nimport { createActionRunId } from \"./run-id\"\nimport { type ExistingActionRun, persistActionRun } from \"./run-persistence\"\nimport type { ActionDefinition, ActionSubject } from \"./types\"\nimport {\n isObjectActionDefinition,\n normalizeActionParams,\n resolveObjectActionSubject,\n validateActionSubject,\n} from \"./validation\"\n\nexport interface RequestActionOptions {\n readonly runId?: string\n /**\n * Cancels the run before its irreversible boundary: a succeeded writeback, or the commit of an\n * Action without one. Past it, the run finishes whatever this signal does.\n */\n readonly signal?: AbortSignal\n}\n\nexport interface RequestActionInput extends RequestActionOptions {\n readonly actionId: string\n readonly subject?: ActionSubject\n readonly params?: Record<string, unknown>\n /** Called once the run's execution exists, before the run executes. A throw starts nothing. */\n readonly onRequested?: (runId: string) => void | Promise<void>\n}\n\nfunction getActionDefinition(runtime: SixbRuntimeContext, actionId: string): ActionDefinition {\n const action = runtime.actionRegistry.getById(actionId)\n if (!action) {\n throw new OntologyValidationError(`Unknown action '${actionId}'`)\n }\n return action\n}\n\n/**\n * Request an Action run and execute it in this process, returning its terminal record.\n *\n * Admission, authorization and params are checked before anything is persisted. A run id that is\n * already recorded returns that run's record, without running it again.\n */\nexport async function requestAction(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n input: RequestActionInput\n): Promise<ActionRunRecord> {\n // Capture the three process-local capabilities before caller-owned request getters can run.\n const projectId = runtime.projectId\n const runtimeAuthorization = runtime.runtimeAuthorization\n const objectReader = runtime.objectReader\n const request = snapshotActionRequest(input)\n const authorization = resolveExecutionScopeAuthorization(projectId, {\n execution,\n authorization: runtimeAuthorization,\n })\n const subject = request.subject\n const delegatedSubject =\n authorization.type === \"delegated\"\n ? assertDelegatedActionTarget({\n authorization,\n actionId: request.actionId,\n subject,\n })\n : undefined\n const action = getActionDefinition(runtime, request.actionId)\n const actionId = action.id\n const rawParams = request.params\n\n if (authorization.type === \"delegated\") {\n await admitDelegatedObjectAction({\n objectReader,\n runtimeAuthorization,\n execution,\n authorization,\n action,\n subject: delegatedSubject!,\n })\n } else {\n assertAuthorized({ projectId, runtimeAuthorization }, { kind: \"action.apply\", actionId })\n }\n if (authorization.type !== \"delegated\" && action.binding.kind === \"object\") {\n // Object actions require visibility of the type they are bound to, as listing them does.\n assertAuthorized(\n { projectId, runtimeAuthorization },\n { kind: \"object.view\", objectTypeId: action.binding.objectType.id }\n )\n }\n\n validateActionSubject(action, subject)\n\n let pathPrefix = action.id\n let objectType: ObjectTypeWithPropertyTokens | null = null\n\n if (isObjectActionDefinition(action)) {\n objectType = resolveObjectActionSubject({ runtime, action, subject })\n pathPrefix = `${objectType.id}.${action.id}`\n if (authorization.type !== \"delegated\") {\n // A run is visible to whoever may view its subject's type (`canViewActionRun`). A subtype\n // excluded from a broad grant is not visible through its parent, so admitting the request on\n // the bound type alone would run what its caller can never read back.\n assertAuthorized(\n { projectId, runtimeAuthorization },\n { kind: \"object.view\", objectTypeId: objectType.id }\n )\n }\n }\n\n const actionParams = normalizeActionParams(runtime, action.params, rawParams, pathPrefix)\n const runId = createActionRunId(request.runId)\n\n // `persistActionRun` checks an existing run id before creating its durable execution. Keep\n // process-local delegation outside that oracle unless it carries durable grant provenance.\n void getAuthorizationRef(runtimeAuthorization)\n // A run starts only while its caller still waits for it; an aborted caller gets its abort.\n const executor = getActionRunExecutor(runtime)\n request.signal?.throwIfAborted()\n\n const payload = { actionId, subject, params: actionParams }\n const assertCanReuse = (run: ExistingActionRun) =>\n assertCallerMayHaveRun({ storage: runtime.storage, projectId, authorization, run })\n const persist = () =>\n persistActionRun({\n projectId,\n storage: runtime.storage,\n runId,\n payload,\n assertCanReuse,\n assertNewRun: () =>\n assertParamUsersActive({\n auth: runtime.storage.auth,\n projectId,\n schemas: Object.fromEntries(\n Object.entries(action.params).map(([paramId, param]) => [paramId, param.schema])\n ),\n values: actionParams,\n valueTypesById: runtime.ontology.getValueTypesById(),\n describe: (paramId) => `Action param '${pathPrefix}.${paramId}'`,\n invalid: (message) => new OntologyValidationError(message),\n }),\n createExecution: async (executionId, runId) => {\n const caller = await ensureExecutionRecord(\n runtime.storage.executions,\n executionRecordInputFromRuntime({\n execution,\n runtimeAuthorization,\n })\n )\n return createPrimitiveExecutionRecord({\n id: executionId,\n primitive: { kind: \"action\", id: actionId, runId },\n origin: { type: \"execution\", parent: caller },\n })\n },\n })\n\n const run = await executor.request({\n runId,\n payload,\n persist,\n assertCanReuse,\n signal: request.signal,\n onRequested: request.onRequested,\n })\n return enforceDelegatedOutputBudget(authorization, run)\n}\n\n/**\n * A run that already exists under the requested run id, recorded or executing, answers this request\n * only under the rules that would let its caller read it.\n *\n * A principal gets it under the visibility rules `actions.runs.getById` applies; admission already\n * requires the grants those rules check for the request's own Action and subject, and this keeps a\n * run that carries another request from depending on it. A delegated caller gets it only when it was\n * requested under the same Share grant.\n */\nasync function assertCallerMayHaveRun(input: {\n readonly storage: SixbRuntimeContext[\"storage\"]\n readonly projectId: string\n readonly authorization: ResolvedRuntimeAuthorization\n readonly run: ExistingActionRun\n}): Promise<void> {\n const { authorization, run } = input\n const visible =\n authorization.type === \"delegated\"\n ? authorization.delegation !== undefined &&\n (await actionRunBelongsToShareGrant({\n storage: input.storage,\n projectId: input.projectId,\n run,\n grantId: authorization.delegation.grantId,\n }))\n : authorization.type !== \"principal\" || canViewActionRun(authorization.context, run)\n if (!visible) {\n throw new AuthorizationError(\n `apply:action:${run.actionId}`,\n authorization.type === \"delegated\"\n ? \"[Sixb] Delegated authority cannot reuse this Action run.\"\n : `[Sixb] Action run '${run.id}' is not visible to this principal.`\n )\n }\n}\n\n/**\n * A delegated caller receives the record only within its output budget, like any read.\n *\n * The run already ran by then, and its record does not change: requesting the same run id again\n * is refused the same way.\n */\nfunction enforceDelegatedOutputBudget(\n authorization: ResolvedRuntimeAuthorization,\n run: ActionRunRecord\n): ActionRunRecord {\n if (authorization.type !== \"delegated\") return run\n try {\n assertObjectReadOutputWithinLimit(run, authorization.objectRead.limits)\n } catch (error) {\n if (!(error instanceof ObjectReadLimitExceededError)) throw error\n throw new ObjectReadLimitExceededError(\n error.metric,\n error.limit,\n `[Sixb] Action run '${run.id}' finished with status '${run.status}', but its record exceeds ` +\n `this caller's ${error.metric} limit (${error.limit}). Requesting it again returns the ` +\n \"same record.\"\n )\n }\n return run\n}\n\nfunction snapshotActionRequest(input: RequestActionInput): {\n readonly actionId: string\n readonly subject: ActionSubject\n readonly params: Record<string, unknown>\n readonly runId?: string\n readonly signal?: AbortSignal\n readonly onRequested?: (runId: string) => void | Promise<void>\n} {\n const actionId = input.actionId\n const subject = input.subject\n const params = input.params\n const runId = input.runId\n const signal = input.signal\n const onRequested = input.onRequested\n return {\n ...structuredClone({\n actionId,\n subject: subject ?? { kind: \"none\" },\n params: params ?? {},\n ...(runId === undefined ? {} : { runId }),\n }),\n ...(signal === undefined ? {} : { signal }),\n ...(onRequested === undefined ? {} : { onRequested }),\n }\n}\n",
|
|
35
|
-
"import { canViewActionRun, isAllowed } from \"../authorization\"\nimport type { ExecutionContext } from \"../execution\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport {\n assertAuthorizedObjectReaderBinding,\n getAuthorizedOntologyView,\n} from \"../execution/authorized-object-reader\"\nimport type { ObjectType } from \"../ontology\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type {\n ActionRunRecord,\n ListActionRunsInput,\n ListActionRunsResult,\n} from \"../storage/action-runs\"\nimport { assertObjectReadOutputWithinLimit } from \"../storage/objects/execution-limits\"\nimport { type ActionDescriptor, snapshotActionDescriptor } from \"./descriptor\"\nimport { type RequestActionInput, requestAction } from \"./request\"\nimport { canDelegationAccessActionRun } from \"./run-authorization\"\nimport type { ActionDefinition } from \"./types\"\n\nexport interface ActionRunsRuntime {\n getById(runId: string): Promise<ActionRunRecord | null>\n list(\n input?: Omit<ListActionRunsInput, \"projectId\" | \"actionIds\" | \"objectTypeIds\">\n ): Promise<ListActionRunsResult>\n}\n\nexport interface ActionsRuntime {\n list(): readonly ActionDescriptor[]\n getById(actionId: string): ActionDescriptor | null\n listGlobal(): readonly ActionDescriptor[]\n listForType(objectType: ObjectType): readonly ActionDescriptor[]\n /**\n * Run an Action in this process and return its terminal record, without waiting for its effects.\n * A run that fails resolves with status `failed`. The call rejects when the request itself is\n * refused (unknown action, invalid params, missing authority, a run id this process is still\n * running, a stopping runtime), and with `internal.unexpected` when a run that started could not\n * be recorded: requesting it again with the same run id returns its record if it was recorded, and\n * runs it again otherwise.\n */\n request(input: RequestActionInput): Promise<ActionRunRecord>\n readonly runs: ActionRunsRuntime\n}\n\nexport function createActionsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext\n): ActionsRuntime {\n const projectId = runtime.projectId\n const runtimeAuthorization = runtime.runtimeAuthorization\n const objectReader = runtime.objectReader\n assertAuthorizedObjectReaderBinding({\n reader: objectReader,\n scope: { execution, authorization: runtimeAuthorization },\n })\n const authorization = resolveRuntimeAuthorizationForProject({\n projectId,\n runtimeAuthorization,\n })\n const canList = (action: ActionDefinition) => {\n if (authorization.type === \"denied\") return false\n if (authorization.type === \"delegated\") {\n const binding = action.binding\n return (\n binding.kind === \"object\" &&\n authorization.actionApply.some(\n (target) =>\n target.actionId === action.id && target.subject.objectTypeId === binding.objectType.id\n ) &&\n getAuthorizedOntologyView(objectReader).getObjectTypeById(binding.objectType.id) !== null\n )\n }\n if (authorization.type === \"unrestricted\") return true\n return (\n isAllowed(authorization.context, { kind: \"action.apply\", actionId: action.id }) &&\n (action.binding.kind === \"global\" ||\n isAllowed(authorization.context, {\n kind: \"object.view\",\n objectTypeId: action.binding.objectType.id,\n }))\n )\n }\n\n const release = <T>(value: T): T => {\n if (authorization.type === \"delegated\") {\n assertObjectReadOutputWithinLimit(value, authorization.objectRead.limits)\n }\n return value\n }\n const describeAll = (actions: readonly ActionDefinition[]) =>\n release(actions.filter(canList).map(snapshotActionDescriptor))\n\n return {\n list: () => describeAll(runtime.actionRegistry.list()),\n getById: (actionId) => {\n const action = runtime.actionRegistry.getById(actionId)\n return release(action && canList(action) ? snapshotActionDescriptor(action) : null)\n },\n listGlobal: () => describeAll(runtime.actionRegistry.listGlobal()),\n listForType: (objectType) =>\n describeAll(\n runtime.actionRegistry\n .listForType(objectType)\n .filter(\n (action) =>\n authorization.type !== \"delegated\" ||\n (action.binding.kind === \"object\" && action.binding.objectType.id === objectType.id)\n )\n ),\n request: (input) => requestAction(runtime, execution, input),\n runs: {\n getById: async (runId) => {\n if (\n authorization.type === \"denied\" ||\n (authorization.type === \"delegated\" &&\n (!authorization.delegation || authorization.actionApply.length === 0))\n )\n return null\n const run =\n (await runtime.storage.actionRuns?.getById({\n projectId,\n id: runId,\n })) ?? null\n return run &&\n (authorization.type === \"unrestricted\" ||\n (authorization.type === \"principal\" && canViewActionRun(authorization.context, run)) ||\n (authorization.type === \"delegated\" &&\n (await canDelegationAccessActionRun({\n storage: runtime.storage,\n projectId,\n authority: authorization,\n run,\n }))))\n ? release(run)\n : null\n },\n list: (input = {}) => {\n if (authorization.type === \"denied\" || authorization.type === \"delegated\") {\n return Promise.resolve({ runs: [], hasMore: false, total: 0 })\n }\n const storage = runtime.storage.actionRuns\n if (!storage) return Promise.resolve({ runs: [], hasMore: false, total: 0 })\n return storage.list({\n ...input,\n projectId,\n actionIds:\n authorization.type === \"principal\"\n ? [...authorization.context.grants[\"apply:action\"]]\n : undefined,\n objectTypeIds:\n authorization.type === \"principal\"\n ? [...authorization.context.grants[\"view:object\"]]\n : undefined,\n })\n },\n },\n }\n}\n",
|
|
36
|
-
"import type { AiCostStorage, AiCostSummary } from \"../storage/ai-cost\"\n\n/** Resolve preferred cost summaries in input order without inventing unavailable accounting. */\nexport async function resolveExecutionCosts(input: {\n readonly storage: AiCostStorage | undefined\n readonly projectId: string\n readonly executionIds: readonly string[]\n}): Promise<readonly (AiCostSummary | undefined)[]> {\n if (input.executionIds.length === 0) return []\n if (!input.storage) return input.executionIds.map(() => undefined)\n return input.storage.summarizeExecutions({\n projectId: input.projectId,\n executionIds: input.executionIds,\n })\n}\n",
|
|
28
|
+
"import { AuthorizationError, assertAuthorized, canViewActionRun } from \"../authorization\"\nimport {\n getAuthorizationRef,\n type ResolvedRuntimeAuthorization,\n resolveExecutionScopeAuthorization,\n} from \"../execution/authorization\"\nimport {\n createPrimitiveExecutionRecord,\n ensureExecutionRecord,\n executionRecordInputFromRuntime,\n} from \"../execution/durable\"\nimport type { ExecutionContext } from \"../execution/types\"\nimport { OntologyValidationError } from \"../ontology/errors\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport { assertParamUsersActive } from \"../shared/params/user-refs\"\nimport type { ActionRunRecord } from \"../storage\"\nimport {\n assertObjectReadOutputWithinLimit,\n ObjectReadLimitExceededError,\n} from \"../storage/objects/execution-limits\"\nimport { admitDelegatedObjectAction, assertDelegatedActionTarget } from \"./delegated-admission\"\nimport { getActionRunExecutor } from \"./run/executor\"\nimport { actionRunBelongsToShareGrant, canReadActionRunSubject } from \"./run-authorization\"\nimport { createActionRunId } from \"./run-id\"\nimport { type ExistingActionRun, persistActionRun } from \"./run-persistence\"\nimport type { ActionDefinition, ActionSubject } from \"./types\"\nimport {\n isObjectActionDefinition,\n normalizeActionParams,\n resolveObjectActionSubject,\n validateActionSubject,\n} from \"./validation\"\n\nexport interface RequestActionOptions {\n readonly runId?: string\n /**\n * Cancels the run before its irreversible boundary: a succeeded writeback, or the commit of an\n * Action without one. Past it, the run finishes whatever this signal does.\n */\n readonly signal?: AbortSignal\n}\n\nexport interface RequestActionInput extends RequestActionOptions {\n readonly actionId: string\n readonly subject?: ActionSubject\n readonly params?: Record<string, unknown>\n /** Called once the run's execution exists, before the run executes. A throw starts nothing. */\n readonly onRequested?: (runId: string) => void | Promise<void>\n}\n\nfunction getActionDefinition(runtime: SixbRuntimeContext, actionId: string): ActionDefinition {\n const action = runtime.actionRegistry.getById(actionId)\n if (!action) {\n throw new OntologyValidationError(`Unknown action '${actionId}'`)\n }\n return action\n}\n\n/**\n * Request an Action run and execute it in this process, returning its terminal record.\n *\n * Admission, authorization and params are checked before anything is persisted. A run id that is\n * already recorded returns that run's record, without running it again.\n */\nexport async function requestAction(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n input: RequestActionInput\n): Promise<ActionRunRecord> {\n // Capture the three process-local capabilities before caller-owned request getters can run.\n const projectId = runtime.projectId\n const runtimeAuthorization = runtime.runtimeAuthorization\n const objectReader = runtime.objectReader\n const request = snapshotActionRequest(input)\n const authorization = resolveExecutionScopeAuthorization(projectId, {\n execution,\n authorization: runtimeAuthorization,\n })\n const subject = request.subject\n const delegatedSubject =\n authorization.type === \"delegated\"\n ? assertDelegatedActionTarget({\n authorization,\n actionId: request.actionId,\n subject,\n })\n : undefined\n const action = getActionDefinition(runtime, request.actionId)\n const actionId = action.id\n const rawParams = request.params\n\n if (authorization.type === \"delegated\") {\n await admitDelegatedObjectAction({\n objectReader,\n runtimeAuthorization,\n execution,\n authorization,\n action,\n subject: delegatedSubject!,\n })\n } else {\n assertAuthorized({ projectId, runtimeAuthorization }, { kind: \"action.apply\", actionId })\n }\n if (authorization.type !== \"delegated\" && action.binding.kind === \"object\") {\n // Object actions require visibility of the type they are bound to, as listing them does.\n assertAuthorized(\n { projectId, runtimeAuthorization },\n { kind: \"object.view\", objectTypeId: action.binding.objectType.id }\n )\n }\n\n validateActionSubject(action, subject)\n\n // A run names its subject: a principal cannot request one on a type it cannot read. The action\n // itself runs as trusted code.\n if (authorization.type !== \"delegated\" && subject.kind === \"object\") {\n await objectReader.assertReadable({ objectTypeIds: [subject.objectTypeId] })\n }\n\n let pathPrefix = action.id\n let objectType: ObjectTypeWithPropertyTokens | null = null\n\n if (isObjectActionDefinition(action)) {\n objectType = resolveObjectActionSubject({ runtime, action, subject })\n pathPrefix = `${objectType.id}.${action.id}`\n if (authorization.type !== \"delegated\") {\n // A run is visible to whoever may view its subject's type (`canViewActionRun`). A subtype\n // excluded from a broad grant is not visible through its parent, so admitting the request on\n // the bound type alone would run what its caller can never read back.\n assertAuthorized(\n { projectId, runtimeAuthorization },\n { kind: \"object.view\", objectTypeId: objectType.id }\n )\n }\n }\n\n const actionParams = normalizeActionParams(runtime, action.params, rawParams, pathPrefix)\n const runId = createActionRunId(request.runId)\n\n // `persistActionRun` checks an existing run id before creating its durable execution. Keep\n // process-local delegation outside that oracle unless it carries durable grant provenance.\n void getAuthorizationRef(runtimeAuthorization)\n // A run starts only while its caller still waits for it; an aborted caller gets its abort.\n const executor = getActionRunExecutor(runtime)\n request.signal?.throwIfAborted()\n\n const payload = { actionId, subject, params: actionParams }\n const assertCanReuse = (run: ExistingActionRun) =>\n assertCallerMayHaveRun({\n storage: runtime.storage,\n projectId,\n authorization,\n objectReader,\n run,\n })\n const persist = () =>\n persistActionRun({\n projectId,\n storage: runtime.storage,\n runId,\n payload,\n assertCanReuse,\n assertNewRun: () =>\n assertParamUsersActive({\n auth: runtime.storage.auth,\n projectId,\n schemas: Object.fromEntries(\n Object.entries(action.params).map(([paramId, param]) => [paramId, param.schema])\n ),\n values: actionParams,\n valueTypesById: runtime.ontology.getValueTypesById(),\n describe: (paramId) => `Action param '${pathPrefix}.${paramId}'`,\n invalid: (message) => new OntologyValidationError(message),\n }),\n createExecution: async (executionId, runId) => {\n const caller = await ensureExecutionRecord(\n runtime.storage.executions,\n executionRecordInputFromRuntime({\n execution,\n runtimeAuthorization,\n })\n )\n return createPrimitiveExecutionRecord({\n id: executionId,\n primitive: { kind: \"action\", id: actionId, runId },\n origin: { type: \"execution\", parent: caller },\n })\n },\n })\n\n const run = await executor.request({\n runId,\n payload,\n persist,\n assertCanReuse,\n signal: request.signal,\n onRequested: request.onRequested,\n })\n return enforceDelegatedOutputBudget(authorization, run)\n}\n\n/**\n * A run that already exists under the requested run id, recorded or executing, answers this request\n * only under the rules that would let its caller read it.\n *\n * A principal gets it under the visibility rules `actions.runs.getById` applies; admission already\n * requires the grants those rules check for the request's own Action and subject, and this keeps a\n * run that carries another request from depending on it. A delegated caller gets it only when it was\n * requested under the same Share grant.\n */\nasync function assertCallerMayHaveRun(input: {\n readonly storage: SixbRuntimeContext[\"storage\"]\n readonly projectId: string\n readonly authorization: ResolvedRuntimeAuthorization\n readonly objectReader: SixbRuntimeContext[\"objectReader\"]\n readonly run: ExistingActionRun\n}): Promise<void> {\n const { authorization, run } = input\n const visible =\n authorization.type === \"delegated\"\n ? authorization.delegation !== undefined &&\n (await actionRunBelongsToShareGrant({\n storage: input.storage,\n projectId: input.projectId,\n run,\n grantId: authorization.delegation.grantId,\n }))\n : authorization.type !== \"principal\" ||\n (canViewActionRun(authorization.context, run) &&\n (await canReadActionRunSubject(input.objectReader, run)))\n if (!visible) {\n throw new AuthorizationError(\n `apply:action:${run.actionId}`,\n authorization.type === \"delegated\"\n ? \"[Sixb] Delegated authority cannot reuse this Action run.\"\n : `[Sixb] Action run '${run.id}' is not visible to this principal.`\n )\n }\n}\n\n/**\n * A delegated caller receives the record only within its output budget, like any read.\n *\n * The run already ran by then, and its record does not change: requesting the same run id again\n * is refused the same way.\n */\nfunction enforceDelegatedOutputBudget(\n authorization: ResolvedRuntimeAuthorization,\n run: ActionRunRecord\n): ActionRunRecord {\n if (authorization.type !== \"delegated\") return run\n try {\n assertObjectReadOutputWithinLimit(run, authorization.objectRead.limits)\n } catch (error) {\n if (!(error instanceof ObjectReadLimitExceededError)) throw error\n throw new ObjectReadLimitExceededError(\n error.metric,\n error.limit,\n `[Sixb] Action run '${run.id}' finished with status '${run.status}', but its record exceeds ` +\n `this caller's ${error.metric} limit (${error.limit}). Requesting it again returns the ` +\n \"same record.\"\n )\n }\n return run\n}\n\nfunction snapshotActionRequest(input: RequestActionInput): {\n readonly actionId: string\n readonly subject: ActionSubject\n readonly params: Record<string, unknown>\n readonly runId?: string\n readonly signal?: AbortSignal\n readonly onRequested?: (runId: string) => void | Promise<void>\n} {\n const actionId = input.actionId\n const subject = input.subject\n const params = input.params\n const runId = input.runId\n const signal = input.signal\n const onRequested = input.onRequested\n return {\n ...structuredClone({\n actionId,\n subject: subject ?? { kind: \"none\" },\n params: params ?? {},\n ...(runId === undefined ? {} : { runId }),\n }),\n ...(signal === undefined ? {} : { signal }),\n ...(onRequested === undefined ? {} : { onRequested }),\n }\n}\n",
|
|
29
|
+
"import { canViewActionRun, isAllowed } from \"../authorization\"\nimport type { ExecutionContext } from \"../execution\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport {\n assertAuthorizedObjectReaderBinding,\n getAuthorizedOntologyView,\n} from \"../execution/authorized-object-reader\"\nimport type { ObjectType } from \"../ontology\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type {\n ActionRunRecord,\n ListActionRunsInput,\n ListActionRunsResult,\n} from \"../storage/action-runs\"\nimport { assertObjectReadOutputWithinLimit } from \"../storage/objects/execution-limits\"\nimport { type ActionDescriptor, snapshotActionDescriptor } from \"./descriptor\"\nimport { type RequestActionInput, requestAction } from \"./request\"\nimport {\n canDelegationAccessActionRun,\n canReadActionRunSubject,\n unreadableActionRunTypes,\n} from \"./run-authorization\"\nimport type { ActionDefinition } from \"./types\"\n\nexport interface ActionRunsRuntime {\n getById(runId: string): Promise<ActionRunRecord | null>\n list(\n input?: Omit<ListActionRunsInput, \"projectId\" | \"actionIds\" | \"objectTypeIds\">\n ): Promise<ListActionRunsResult>\n}\n\nexport interface ActionsRuntime {\n list(): readonly ActionDescriptor[]\n getById(actionId: string): ActionDescriptor | null\n listGlobal(): readonly ActionDescriptor[]\n listForType(objectType: ObjectType): readonly ActionDescriptor[]\n /**\n * Run an Action in this process and return its terminal record, without waiting for its effects.\n * A run that fails resolves with status `failed`. The call rejects when the request itself is\n * refused (unknown action, invalid params, missing authority, a run id this process is still\n * running, a stopping runtime), and with `internal.unexpected` when a run that started could not\n * be recorded: requesting it again with the same run id returns its record if it was recorded, and\n * runs it again otherwise.\n */\n request(input: RequestActionInput): Promise<ActionRunRecord>\n readonly runs: ActionRunsRuntime\n}\n\nexport function createActionsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext\n): ActionsRuntime {\n const projectId = runtime.projectId\n const runtimeAuthorization = runtime.runtimeAuthorization\n const objectReader = runtime.objectReader\n assertAuthorizedObjectReaderBinding({\n reader: objectReader,\n scope: { execution, authorization: runtimeAuthorization },\n })\n const authorization = resolveRuntimeAuthorizationForProject({\n projectId,\n runtimeAuthorization,\n })\n const canList = (action: ActionDefinition) => {\n if (authorization.type === \"denied\") return false\n if (authorization.type === \"delegated\") {\n const binding = action.binding\n return (\n binding.kind === \"object\" &&\n authorization.actionApply.some(\n (target) =>\n target.actionId === action.id && target.subject.objectTypeId === binding.objectType.id\n ) &&\n getAuthorizedOntologyView(objectReader).getObjectTypeById(binding.objectType.id) !== null\n )\n }\n if (authorization.type === \"unrestricted\") return true\n return (\n isAllowed(authorization.context, { kind: \"action.apply\", actionId: action.id }) &&\n (action.binding.kind === \"global\" ||\n isAllowed(authorization.context, {\n kind: \"object.view\",\n objectTypeId: action.binding.objectType.id,\n }))\n )\n }\n\n const release = <T>(value: T): T => {\n if (authorization.type === \"delegated\") {\n assertObjectReadOutputWithinLimit(value, authorization.objectRead.limits)\n }\n return value\n }\n const describeAll = (actions: readonly ActionDefinition[]) =>\n release(actions.filter(canList).map(snapshotActionDescriptor))\n\n return {\n list: () => describeAll(runtime.actionRegistry.list()),\n getById: (actionId) => {\n const action = runtime.actionRegistry.getById(actionId)\n return release(action && canList(action) ? snapshotActionDescriptor(action) : null)\n },\n listGlobal: () => describeAll(runtime.actionRegistry.listGlobal()),\n listForType: (objectType) =>\n describeAll(\n runtime.actionRegistry\n .listForType(objectType)\n .filter(\n (action) =>\n authorization.type !== \"delegated\" ||\n (action.binding.kind === \"object\" && action.binding.objectType.id === objectType.id)\n )\n ),\n request: (input) => requestAction(runtime, execution, input),\n runs: {\n getById: async (runId) => {\n if (\n authorization.type === \"denied\" ||\n (authorization.type === \"delegated\" &&\n (!authorization.delegation || authorization.actionApply.length === 0))\n )\n return null\n const run =\n (await runtime.storage.actionRuns?.getById({\n projectId,\n id: runId,\n })) ?? null\n return run &&\n (authorization.type === \"unrestricted\" ||\n (authorization.type === \"principal\" && canViewActionRun(authorization.context, run)) ||\n (authorization.type === \"delegated\" &&\n (await canDelegationAccessActionRun({\n storage: runtime.storage,\n projectId,\n authority: authorization,\n run,\n })))) &&\n (await canReadActionRunSubject(objectReader, run))\n ? release(run)\n : null\n },\n list: async (input = {}) => {\n if (authorization.type === \"denied\" || authorization.type === \"delegated\") {\n return { runs: [], hasMore: false, total: 0 }\n }\n const storage = runtime.storage.actionRuns\n if (!storage) return { runs: [], hasMore: false, total: 0 }\n if (authorization.type === \"unrestricted\") return storage.list({ ...input, projectId })\n\n // Storage filters, so its pages and totals only count runs the reader can see.\n const unreadable = await unreadableActionRunTypes(objectReader)\n return storage.list({\n ...input,\n projectId,\n actionIds: [...authorization.context.grants[\"apply:action\"]],\n objectTypeIds: [...authorization.context.grants[\"view:object\"]].filter(\n (objectTypeId) => !unreadable.has(objectTypeId)\n ),\n })\n },\n },\n }\n}\n",
|
|
37
30
|
"import type { AiModelCallUsage, AiUsageStorage } from \"../storage/ai-usage\"\n\n/** Resolve execution usage for runtime views without exposing the accounting provider. */\nexport async function resolveExecutionUsage(input: {\n readonly storage: AiUsageStorage | undefined\n readonly projectId: string\n readonly executionIds: readonly string[]\n}): Promise<readonly (AiModelCallUsage | undefined)[]> {\n if (input.executionIds.length === 0) return []\n if (!input.storage) return input.executionIds.map(() => undefined)\n\n const summaries = await input.storage.summarizeExecutions({\n projectId: input.projectId,\n executionIds: input.executionIds,\n })\n return summaries.map((summary) => (summary.modelCallCount === 0 ? undefined : summary.usage))\n}\n",
|
|
38
31
|
"import { createHash, randomUUID } from \"node:crypto\"\n\n/**\n * Id helpers for agent persistence. Threads, the run id, and the user (trigger) message are minted\n * by the trigger; the queued run is persisted with the user message, and the assistant message id\n * is minted when the turn finalizes. Prefixes make ids self-describing in logs.\n */\n\nexport function createAgentThreadId(): string {\n return `agt_thr_${randomUUID()}`\n}\n\n/** A fresh provider name, scoped to one project's thread; never a filesystem revision. */\nexport function createAgentThreadSandboxName(projectId: string, threadId: string): string {\n const digest = createHash(\"sha256\")\n .update(JSON.stringify([projectId, threadId, randomUUID()]))\n .digest(\"hex\")\n return `sixb-sb-${digest}`\n}\n\nexport function createAgentRunId(): string {\n return `agt_run_${randomUUID()}`\n}\n\n/** One stable child identity per parent-selected spawn key. */\nexport function createSubagentRunId(parentRunId: string, spawnKey: string): string {\n const digest = createHash(\"sha256\")\n .update(parentRunId)\n .update(\"\\0\")\n .update(spawnKey)\n .digest(\"hex\")\n return `agt_run_child_${digest}`\n}\n\n/** Stable execution identity paired with a deterministic child run. */\nexport function createSubagentExecutionId(runId: string): string {\n return `exec_${runId}`\n}\n\nexport function createAgentMessageId(): string {\n return `agt_msg_${randomUUID()}`\n}\n\n/** One deterministic context-checkpoint identity per conversational run. */\nexport function agentContextCheckpointId(runId: string): string {\n return `agt_ctx_${runId}`\n}\n\n/** A queue delivery's fencing token for writes to an `agent_runs` record. */\nexport function createAgentRunExecutionToken(): string {\n return `agt_exec_${randomUUID()}`\n}\n",
|
|
39
|
-
"import { randomUUID } from \"node:crypto\"\nimport type { Principal } from \"../auth\"\nimport { SYSTEM_PRINCIPAL } from \"../auth\"\nimport { assertAuthorized } from \"../authorization\"\nimport type { FileRef } from \"../blob-storage\"\nimport { isValidFileRef } from \"../blob-storage/validation\"\nimport {\n canInheritAgentRequestAuthorization,\n createInheritedAgentExecutionRecord,\n} from \"../execution/agent\"\nimport { resolveExecutionScopeAuthorization } from \"../execution/authorization\"\nimport { ensureExecutionRecord, executionRecordInputFromRuntime } from \"../execution/durable\"\nimport type { ExecutionContext } from \"../execution/types\"\nimport type { LanguageModelCatalog, LanguageModelEntry, LanguageModelRef } from \"../models\"\nimport { isModelReasoning, modelReasoningSupportIssue } from \"../models/language-model\"\nimport { resolveLanguageModel } from \"../models/resolve\"\nimport { canonicalLocale, canonicalTimeZone } from \"../runtime/locale\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport {\n type AgentStorage,\n AgentStorageError,\n type AgentThreadRecord,\n type ConversationAgentRunRecord,\n type ConversationAgentRunSpec,\n} from \"../storage/agents\"\nimport {\n aiLimitSubjectsFromAttribution,\n aiUsageLimitExceededError,\n aiUsageLimitUnavailableError,\n applicableAiLimitPolicyStatuses,\n} from \"../storage/ai-limits/enforcement\"\nimport type { AiLimitPolicyStatus } from \"../storage/ai-limits/types\"\nimport type { ExecutionRecord } from \"../storage/executions\"\nimport type { AgentContextEntryInput } from \"./context/entries\"\nimport { resolveAgentContextParts } from \"./context-resolution\"\nimport { dispatchQueuedAgentRuns } from \"./dispatch\"\nimport { AgentRequestError } from \"./errors\"\nimport { createAgentMessageId, createAgentRunId, createAgentThreadId } from \"./ids\"\nimport type { AgentMessagePart } from \"./message\"\nimport { assertNoAgentSelector } from \"./retired-config\"\nimport { publishAgentRunActivity } from \"./streams/protocol\"\nimport { AGENT_REASONING_LEVELS, type AgentReasoning } from \"./types\"\n\nexport interface RequestAgentRunInput {\n /** The user's message that triggers the turn. Omitted only to {@link continue}. */\n readonly text?: string\n /**\n * Continue an answer the turn limit cut short, in an existing thread. Sixb writes the\n * instruction the model reads, so the request carries no text, attachments, or context.\n */\n readonly continue?: boolean\n /** Blob-backed files attached to the trigger message. */\n readonly attachments?: readonly FileRef[]\n /** Structured page/object context snapshotted onto the triggering user message. */\n readonly context?: readonly AgentContextEntryInput[]\n /** Continue an existing thread. Omitted → a fresh thread is created for this agent. */\n readonly threadId?: string\n /** Configured language model selected for this turn. Omitted uses the agent default. */\n readonly model?: LanguageModelRef\n /** Reasoning effort or token budget for this turn. Omitted uses the model's default. */\n readonly reasoning?: AgentReasoning\n /**\n * IANA time zone of the person asking, such as their browser's. The Agent presents dates and\n * times in it. Omitted uses the project time zone.\n */\n readonly timeZone?: string\n /** BCP 47 language of the person asking. Omitted uses the project locale. */\n readonly locale?: string\n /** Title to stamp on the thread when one is created. */\n readonly title?: string\n /** Explicit id for the trigger (user) message. Defaults to a generated id. */\n readonly messageId?: string\n /** Caller principal for privileged integrations; scoped runtimes use their authorization principal. */\n readonly principal?: Principal\n}\n\nexport interface RequestAgentRunResult {\n /** The durable queued run exactly as it was created (`status: \"queued\"`, attempt 0). */\n readonly run: ConversationAgentRunRecord\n /** The enqueued job id, when the queue returns one. */\n readonly jobId?: string\n /** Whether this call created the thread. */\n readonly createdThread: boolean\n}\n\n/**\n * Trigger an agent turn.\n *\n * The user message and a `queued` run are persisted atomically before the queue intent is\n * published. This makes accepted work visible immediately and lets refresh reconstruct queue state.\n * The run's thread claim is the single-flight authority; a second request receives\n * `active_run_exists` before it can leave an orphan message.\n */\nexport async function requestAgentRun(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n models: LanguageModelCatalog | undefined,\n input: RequestAgentRunInput\n): Promise<RequestAgentRunResult> {\n const authority = resolveExecutionScopeAuthorization(runtime.projectId, {\n execution,\n authorization: runtime.runtimeAuthorization,\n })\n assertNoAgentSelector(input)\n assertAuthorized(runtime, { kind: \"agent.run\" })\n assertRequestAuthorityCanRunAgent(runtime)\n const trigger = triggerParts(input)\n const continued = input.continue ? await continuedSelection(runtime, models, input) : {}\n const spec = await resolveConversationRunSpec({\n models,\n input: {\n ...input,\n model: input.model ?? continued.model,\n reasoning: input.reasoning ?? continued.reasoning,\n },\n })\n assertAttachments(input.attachments)\n\n // Resolve context before creating a thread: invalid or inaccessible references must not leave an\n // empty conversation behind. The resulting parts are the exact snapshot persisted below.\n const contextParts = await resolveAgentContextParts(runtime, input.context)\n\n const agents = requireAgentStorage(runtime)\n const projectId = runtime.projectId\n // Attribution comes from the exact capability/execution pair, never the optional context cache\n // on the runtime. `input.principal` remains available to unrestricted server integrations that\n // have already authenticated their request.\n const principal =\n authority.type === \"principal\"\n ? authority.context.principal\n : (input.principal ?? SYSTEM_PRINCIPAL)\n const runId = createAgentRunId()\n const durableExecution = await prepareDurableAgentExecution(runtime, execution, runId)\n await assertAiLimitPreflight(runtime, durableExecution)\n\n const { thread, createdThread } = await resolveThread(agents, {\n projectId,\n threadId: input.threadId,\n title: input.title,\n principal,\n })\n\n assertSandboxExecutionAvailable(thread)\n // Fast single-flight check for a clear error. `runs.create` below is the atomic authority.\n if (thread.activeRunId !== null) {\n throw new AgentRequestError(\n \"active_run_exists\",\n `[Sixb] Agent thread '${thread.id}' already has an active run '${thread.activeRunId}'.`\n )\n }\n const triggerMessageId = input.messageId ?? createAgentMessageId()\n let run: ConversationAgentRunRecord\n try {\n run = await runtime.storage.transaction(async (tx) => {\n const agents = tx.agents\n if (!agents) {\n throw new AgentRequestError(\n \"storage_unavailable\",\n \"[Sixb] Agent storage is not configured.\"\n )\n }\n await tx.executions.create(durableExecution)\n await agents.messages.append({\n id: triggerMessageId,\n projectId,\n threadId: thread.id,\n runId: null,\n role: \"user\",\n parts: [\n ...contextParts,\n ...trigger,\n ...(input.attachments ?? []).map((fileRef) => ({ type: \"file\" as const, fileRef })),\n ],\n authorPrincipal: principal,\n })\n return agents.runs.create({\n id: runId,\n projectId,\n executionId: durableExecution.id,\n threadId: thread.id,\n triggerMessageId,\n spec,\n })\n })\n } catch (error) {\n if (error instanceof AgentStorageError && error.code === \"active_run_exists\") {\n throw new AgentRequestError(\"active_run_exists\", error.message)\n }\n throw error\n }\n\n await publishRunActivity(runtime, run)\n const jobId = await dispatchAgentRun(runtime, agents, runId)\n\n return {\n run,\n ...(jobId ? { jobId } : {}),\n createdThread,\n }\n}\n\n/** A failed turn, or one its worker died during, can run again from the same trigger message. */\nexport function isRetryableAgentRun(\n run: Pick<ConversationAgentRunRecord, \"status\" | \"finishReason\">\n): boolean {\n return (\n run.status === \"failed\" || (run.status === \"cancelled\" && run.finishReason === \"interrupted\")\n )\n}\n\n/** Retry a failed turn as a new child execution while reusing its immutable trigger message. */\nexport async function retryAgentRun(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n models: LanguageModelCatalog | undefined,\n failedRun: ConversationAgentRunRecord\n): Promise<RequestAgentRunResult> {\n resolveExecutionScopeAuthorization(runtime.projectId, {\n execution,\n authorization: runtime.runtimeAuthorization,\n })\n assertAuthorized(runtime, { kind: \"agent.run\" })\n assertRequestAuthorityCanRunAgent(runtime)\n if (!isRetryableAgentRun(failedRun)) {\n throw new AgentRequestError(\n \"run_not_retryable\",\n `[Sixb] Only failed or interrupted Agent runs can be retried.`\n )\n }\n\n const agents = requireAgentStorage(runtime)\n const thread = await agents.threads.getById({\n projectId: runtime.projectId,\n id: failedRun.threadId,\n })\n if (!thread) {\n throw new AgentRequestError(\n \"thread_not_found\",\n `[Sixb] Agent thread '${failedRun.threadId}' was not found.`\n )\n }\n assertSandboxExecutionAvailable(thread)\n const runId = createAgentRunId()\n const durableExecution = await prepareDurableAgentExecution(runtime, execution, runId)\n await assertAiLimitPreflight(runtime, durableExecution)\n const run = await runtime.storage.transaction(async (tx) => {\n const agents = tx.agents\n if (!agents) {\n throw new AgentRequestError(\"storage_unavailable\", \"[Sixb] Agent storage is not configured.\")\n }\n await agents.messages.deleteByRunId({\n projectId: runtime.projectId,\n threadId: failedRun.threadId,\n runId: failedRun.id,\n })\n await tx.executions.create(durableExecution)\n return agents.runs.create({\n id: runId,\n projectId: runtime.projectId,\n executionId: durableExecution.id,\n threadId: failedRun.threadId,\n triggerMessageId: failedRun.triggerMessageId,\n spec:\n failedRun.spec ??\n (await resolveConversationRunSpec({\n models,\n input: {},\n })),\n })\n })\n await publishRunActivity(runtime, run)\n const jobId = await dispatchAgentRun(runtime, agents, runId)\n return { run, ...(jobId ? { jobId } : {}), createdThread: false }\n}\n\n/**\n * A continuation picks up where the cut-short turn stopped, with its model and reasoning unless the\n * request chooses others. A model that has since left the catalog falls back to the defaults.\n */\nasync function continuedSelection(\n runtime: SixbRuntimeContext,\n models: LanguageModelCatalog | undefined,\n input: RequestAgentRunInput\n): Promise<Pick<RequestAgentRunInput, \"model\" | \"reasoning\">> {\n const agents = requireAgentStorage(runtime)\n const threadId = input.threadId ?? \"\"\n if (!(await agents.threads.getById({ projectId: runtime.projectId, id: threadId }))) {\n throw new AgentRequestError(\n \"thread_not_found\",\n \"[Sixb] An Agent continuation needs an existing thread.\"\n )\n }\n if (input.model !== undefined || input.reasoning !== undefined) return {}\n const { runs } = await agents.runs.list({\n projectId: runtime.projectId,\n threadId,\n kinds: [\"conversation\"],\n order: \"desc\",\n limit: 1,\n })\n const spec = runs[0]?.kind === \"conversation\" ? runs[0].spec : undefined\n if (!spec || !models?.getByRef(spec.model)) return {}\n return {\n model: spec.model,\n ...(spec.reasoning === undefined ? {} : { reasoning: spec.reasoning }),\n }\n}\n\n/** The words of the user, or the continuation Sixb words for them. */\nfunction triggerParts(input: RequestAgentRunInput): readonly AgentMessagePart[] {\n if (input.continue === true) {\n if (input.text !== undefined || input.attachments?.length || input.context?.length) {\n throw new AgentRequestError(\n \"invalid_message\",\n \"[Sixb] An Agent continuation carries no text, attachments, or context.\"\n )\n }\n return [{ type: \"continuation\" }]\n }\n if (typeof input.text !== \"string\" || input.text.trim().length === 0) {\n throw new AgentRequestError(\n \"invalid_message\",\n \"[Sixb] An Agent message needs text, or `continue: true` to continue the previous answer.\"\n )\n }\n return [{ type: \"text\", text: input.text }]\n}\n\nfunction assertAttachments(attachments: readonly FileRef[] | undefined): void {\n for (const [index, attachment] of (attachments ?? []).entries()) {\n if (!isValidFileRef(attachment)) {\n throw new AgentRequestError(\n \"invalid_attachment\",\n `[Sixb] Attachment ${index} is not a valid file reference.`\n )\n }\n }\n}\n\nfunction assertSandboxExecutionAvailable(thread: AgentThreadRecord): void {\n if (thread.sandboxState && ![\"new\", \"ready\"].includes(thread.sandboxState.status)) {\n throw new AgentRequestError(\n \"sandbox_execution_unavailable\",\n \"[Sixb] Sandbox recovery is required before another run. Reload the thread and explicitly recreate it to start fresh.\"\n )\n }\n}\n\nasync function assertAiLimitPreflight(\n runtime: SixbRuntimeContext,\n execution: Pick<ExecutionRecord, \"requestedBy\" | \"requesterGroupIds\">\n): Promise<void> {\n const limits = runtime.storage.aiLimits\n if (!limits) throw aiUsageLimitUnavailableError([\"limitStorageUnavailable\"])\n\n const subjects = aiLimitSubjectsFromAttribution(\n execution.requestedBy,\n execution.requesterGroupIds\n )\n let applicable: readonly AiLimitPolicyStatus[]\n try {\n applicable = applicableAiLimitPolicyStatuses(\n await limits.listPolicyStatuses({ projectId: runtime.projectId }),\n subjects\n )\n } catch {\n throw aiUsageLimitUnavailableError([\"limitStorageUnavailable\"])\n }\n\n const unavailable = applicable.filter((status) => status.accountingStatus === \"unavailable\")\n if (unavailable.length > 0) {\n throw aiUsageLimitUnavailableError([\"incompleteAccounting\"])\n }\n const exhausted = applicable.filter((status) => status.exhausted)\n if (exhausted.length > 0) {\n const resetAt = new Date(\n Math.min(...exhausted.map((status) => status.period.resetAt.getTime()))\n )\n throw aiUsageLimitExceededError(resetAt)\n }\n}\n\n/**\n * Freeze the model selection of a turn. The model's default reasoning is resolved here, not by the\n * worker, so a retry runs with the reasoning the turn was admitted with.\n */\nasync function resolveConversationRunSpec(input: {\n readonly models?: LanguageModelCatalog\n readonly input: Pick<RequestAgentRunInput, \"model\" | \"reasoning\" | \"timeZone\" | \"locale\">\n}): Promise<ConversationAgentRunSpec> {\n if (!input.models) {\n throw new AgentRequestError(\n \"model_not_found\",\n \"[Sixb] Configure models.language before starting the Agent.\"\n )\n }\n const selected = input.input.model ?? input.models.default\n const model = input.models.getByRef(selected)\n if (model === null) {\n throw new AgentRequestError(\n \"model_not_found\",\n `[Sixb] Language model '${selected.provider}/${selected.modelId}' is not in the project model catalog.`\n )\n }\n\n const explicitReasoning = input.input.reasoning\n if (explicitReasoning !== undefined) {\n await assertModelSupportsReasoning(model, explicitReasoning)\n }\n const reasoning = explicitReasoning ?? model.model.defaultReasoning\n const timeZone = requestedSetting(\n \"timeZone\",\n input.input.timeZone,\n canonicalTimeZone,\n \"an IANA time zone\"\n )\n const locale = requestedSetting(\n \"locale\",\n input.input.locale,\n canonicalLocale,\n \"a BCP 47 language tag\"\n )\n\n return Object.freeze({\n model: Object.freeze({ provider: selected.provider, modelId: selected.modelId }),\n ...(reasoning === undefined ? {} : { reasoning }),\n ...(timeZone === undefined ? {} : { timeZone }),\n ...(locale === undefined ? {} : { locale }),\n })\n}\n\nfunction requestedSetting(\n field: \"timeZone\" | \"locale\",\n value: string | undefined,\n canonical: (value: unknown) => string | undefined,\n expected: string\n): string | undefined {\n if (value === undefined) return undefined\n const resolved = canonical(value)\n if (resolved === undefined) {\n throw new AgentRequestError(\n \"invalid_locale\",\n `[Sixb] Agent request '${field}' must be ${expected}; received ${JSON.stringify(value)}.`\n )\n }\n return resolved\n}\n\n// Checked against the model's resolved capabilities, as `GET /api/models` reports them (its\n// configured ones when the provider catalog is unavailable). Undeclared capabilities accept any\n// level; the provider then falls back to its own default.\nasync function assertModelSupportsReasoning(\n entry: LanguageModelEntry,\n reasoning: unknown\n): Promise<void> {\n if (!isModelReasoning(reasoning)) {\n throw new AgentRequestError(\n \"invalid_model_selection\",\n `[Sixb] Agent reasoning must be one of: ${AGENT_REASONING_LEVELS.join(\", \")}, or a nonnegative budgetTokens object.`\n )\n }\n if (reasoning === \"provider-default\") return\n const model = await resolveLanguageModel(entry.model)\n const issue = modelReasoningSupportIssue(model.definition.capabilities.reasoning, reasoning)\n if (issue !== undefined) {\n throw new AgentRequestError(\n \"invalid_model_selection\",\n `[Sixb] Language model '${entry.provider}/${entry.modelId}' cannot use this reasoning: ${issue}.`\n )\n }\n}\n\nasync function prepareDurableAgentExecution(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n runId: string\n): Promise<Omit<ExecutionRecord, \"createdAt\">> {\n const parent = await ensureExecutionRecord(\n runtime.storage.executions,\n executionRecordInputFromRuntime({\n execution,\n runtimeAuthorization: runtime.runtimeAuthorization,\n })\n )\n return createInheritedAgentExecutionRecord({\n id: `exec_${randomUUID()}`,\n parent,\n runId,\n })\n}\n\nfunction assertRequestAuthorityCanRunAgent(runtime: SixbRuntimeContext): void {\n if (!canInheritAgentRequestAuthorization(runtime.runtimeAuthorization)) {\n throw new AgentRequestError(\n \"authority_not_inheritable\",\n \"[Sixb] The Agent requires an authenticated user request or disabled authorization.\"\n )\n }\n}\n\nasync function dispatchAgentRun(\n runtime: SixbRuntimeContext,\n agents: AgentStorage,\n runId: string\n): Promise<string | undefined> {\n // The queued run is the durable dispatch intent. Publication is best-effort; workers reconcile\n // it with the same deterministic queue job id if the queue is temporarily unavailable.\n try {\n const dispatch = await dispatchQueuedAgentRuns({\n projectId: runtime.projectId,\n storage: agents,\n queue: runtime.queues.agents,\n runIds: [runId],\n })\n const failure = dispatch.failures[0]\n if (failure) {\n console.error(\n `[Sixb] Could not dispatch queued agent run '${runId}'; retrying later.`,\n failure.error\n )\n }\n return dispatch.dispatched[0]?.jobId\n } catch (error) {\n console.error(`[Sixb] Could not dispatch queued agent run '${runId}'; retrying later.`, error)\n return undefined\n }\n}\n\n/** Activity delivery is observational: durable run admission remains successful if the feed is down. */\nasync function publishRunActivity(\n runtime: SixbRuntimeContext,\n run: ConversationAgentRunRecord\n): Promise<void> {\n try {\n await publishAgentRunActivity(runtime.broker, run)\n } catch (error) {\n console.error(`[Sixb] Agent run '${run.id}' activity stream publish failed:`, error)\n }\n}\n\nasync function resolveThread(\n agents: AgentStorage,\n params: {\n readonly projectId: string\n readonly threadId?: string\n readonly title?: string\n readonly principal: Principal\n }\n): Promise<{ thread: AgentThreadRecord; createdThread: boolean }> {\n if (params.threadId) {\n const existing = await agents.threads.getById({\n projectId: params.projectId,\n id: params.threadId,\n })\n if (existing) {\n return { thread: existing, createdThread: false }\n }\n }\n\n const thread = await agents.threads.create({\n id: params.threadId ?? createAgentThreadId(),\n projectId: params.projectId,\n ownerPrincipal: params.principal,\n ...(params.title === undefined ? {} : { title: params.title }),\n })\n return { thread, createdThread: true }\n}\n\nfunction requireAgentStorage(runtime: SixbRuntimeContext): AgentStorage {\n const agents = runtime.storage.agents\n if (!agents) {\n throw new AgentRequestError(\"storage_unavailable\", \"[Sixb] Agent storage is not configured.\")\n }\n return agents\n}\n",
|
|
32
|
+
"import { randomUUID } from \"node:crypto\"\nimport type { Principal } from \"../auth\"\nimport { SYSTEM_PRINCIPAL } from \"../auth\"\nimport { assertAuthorized } from \"../authorization\"\nimport type { FileRef } from \"../blob-storage\"\nimport { isValidFileRef } from \"../blob-storage/validation\"\nimport {\n canInheritAgentRequestAuthorization,\n createInheritedAgentExecutionRecord,\n} from \"../execution/agent\"\nimport { resolveExecutionScopeAuthorization } from \"../execution/authorization\"\nimport { ensureExecutionRecord, executionRecordInputFromRuntime } from \"../execution/durable\"\nimport type { ExecutionContext } from \"../execution/types\"\nimport type { LanguageModelCatalog, LanguageModelEntry, LanguageModelRef } from \"../models\"\nimport { isModelReasoning, modelReasoningSupportIssue } from \"../models/language-model\"\nimport { resolveLanguageModel } from \"../models/resolve\"\nimport { canonicalLocale, canonicalTimeZone } from \"../runtime/locale\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport {\n type AgentStorage,\n AgentStorageError,\n type AgentThreadRecord,\n type ConversationAgentRunRecord,\n type ConversationAgentRunSpec,\n} from \"../storage/agents\"\nimport {\n aiLimitSubjectsFromAttribution,\n aiUsageLimitExceededError,\n aiUsageLimitUnavailableError,\n applicableAiLimitPolicyStatuses,\n} from \"../storage/ai-limits/enforcement\"\nimport type { AiLimitPolicyStatus } from \"../storage/ai-limits/types\"\nimport type { ExecutionRecord } from \"../storage/executions\"\nimport type { AgentContextEntryInput } from \"./context/entries\"\nimport { resolveAgentContextParts } from \"./context-resolution\"\nimport { dispatchQueuedAgentRuns } from \"./dispatch\"\nimport { AgentRequestError } from \"./errors\"\nimport { createAgentMessageId, createAgentRunId, createAgentThreadId } from \"./ids\"\nimport type { AgentMessagePart } from \"./message\"\nimport { assertNoAgentSelector } from \"./retired-config\"\nimport { publishAgentRunActivity } from \"./streams/protocol\"\nimport { AGENT_REASONING_LEVELS, type AgentReasoning } from \"./types\"\n\nexport interface RequestAgentRunInput {\n /** The user's message that triggers the turn. Omitted only to {@link continue}. */\n readonly text?: string\n /**\n * Continue an answer the turn limit cut short, in an existing thread. Sixb writes the\n * instruction the model reads, so the request carries no text, attachments, or context.\n */\n readonly continue?: boolean\n /** Blob-backed files attached to the trigger message. */\n readonly attachments?: readonly FileRef[]\n /** Structured page/object context snapshotted onto the triggering user message. */\n readonly context?: readonly AgentContextEntryInput[]\n /** Continue an existing thread. Omitted → a fresh thread is created for this agent. */\n readonly threadId?: string\n /** Configured language model selected for this turn. Omitted uses the agent default. */\n readonly model?: LanguageModelRef\n /** Reasoning effort or token budget for this turn. Omitted uses the model's default. */\n readonly reasoning?: AgentReasoning\n /**\n * IANA time zone of the person asking, such as their browser's. The Agent presents dates and\n * times in it. Omitted uses the project time zone.\n */\n readonly timeZone?: string\n /** BCP 47 language of the person asking. Omitted uses the project locale. */\n readonly locale?: string\n /** Title to stamp on the thread when one is created. */\n readonly title?: string\n /** Explicit id for the trigger (user) message. Defaults to a generated id. */\n readonly messageId?: string\n /** Caller principal for privileged integrations; scoped runtimes use their authorization principal. */\n readonly principal?: Principal\n}\n\nexport interface RequestAgentRunResult {\n /** The durable queued run exactly as it was created (`status: \"queued\"`, attempt 0). */\n readonly run: ConversationAgentRunRecord\n /** The enqueued job id, when the queue returns one. */\n readonly jobId?: string\n /** Whether this call created the thread. */\n readonly createdThread: boolean\n}\n\n/**\n * Trigger an agent turn.\n *\n * The user message and a `queued` run are persisted atomically before the queue intent is\n * published. This makes accepted work visible immediately and lets refresh reconstruct queue state.\n * The run's thread claim is the single-flight authority; a second request receives\n * `active_run_exists` before it can leave an orphan message.\n */\nexport async function requestAgentRun(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n models: LanguageModelCatalog | undefined,\n input: RequestAgentRunInput\n): Promise<RequestAgentRunResult> {\n const authority = resolveExecutionScopeAuthorization(runtime.projectId, {\n execution,\n authorization: runtime.runtimeAuthorization,\n })\n assertNoAgentSelector(input)\n assertAuthorized(runtime, { kind: \"agent.run\" })\n assertRequestAuthorityCanRunAgent(runtime)\n const trigger = triggerParts(input)\n const continued = input.continue ? await continuedSelection(runtime, models, input) : {}\n const spec = await resolveConversationRunSpec({\n models,\n input: {\n ...input,\n model: input.model ?? continued.model,\n reasoning: input.reasoning ?? continued.reasoning,\n },\n })\n assertAttachments(input.attachments)\n\n // Resolve context before creating a thread: invalid or inaccessible references must not leave an\n // empty conversation behind. The resulting parts are the exact snapshot persisted below.\n const contextParts = await resolveAgentContextParts(runtime, input.context)\n\n const agents = requireAgentStorage(runtime)\n const projectId = runtime.projectId\n // Attribution comes from the exact capability/execution pair, never the optional context cache\n // on the runtime. `input.principal` remains available to unrestricted server integrations that\n // have already authenticated their request.\n const principal =\n authority.type === \"principal\"\n ? authority.context.principal\n : (input.principal ?? SYSTEM_PRINCIPAL)\n const runId = createAgentRunId()\n const durableExecution = await prepareDurableAgentExecution(runtime, execution, runId)\n await assertAiLimitPreflight(runtime, durableExecution)\n\n const { thread, createdThread } = await resolveThread(agents, {\n projectId,\n threadId: input.threadId,\n title: input.title,\n principal,\n })\n\n assertSandboxExecutionAvailable(thread)\n // Fast single-flight check for a clear error. `runs.create` below is the atomic authority.\n if (thread.activeRunId !== null) {\n throw new AgentRequestError(\n \"active_run_exists\",\n `[Sixb] Agent thread '${thread.id}' already has an active run '${thread.activeRunId}'.`\n )\n }\n const triggerMessageId = input.messageId ?? createAgentMessageId()\n let run: ConversationAgentRunRecord\n try {\n run = await runtime.storage.transaction(async (tx) => {\n const agents = tx.agents\n if (!agents) {\n throw new AgentRequestError(\n \"storage_unavailable\",\n \"[Sixb] Agent storage is not configured.\"\n )\n }\n await tx.executions.create(durableExecution)\n await agents.messages.append({\n id: triggerMessageId,\n projectId,\n threadId: thread.id,\n runId: null,\n role: \"user\",\n parts: [\n ...contextParts,\n ...trigger,\n ...(input.attachments ?? []).map((fileRef) => ({ type: \"file\" as const, fileRef })),\n ],\n authorPrincipal: principal,\n })\n return agents.runs.create({\n id: runId,\n projectId,\n executionId: durableExecution.id,\n threadId: thread.id,\n triggerMessageId,\n spec,\n })\n })\n } catch (error) {\n if (error instanceof AgentStorageError && error.code === \"active_run_exists\") {\n throw new AgentRequestError(\"active_run_exists\", error.message)\n }\n throw error\n }\n\n await publishRunActivity(runtime, run)\n const jobId = await dispatchAgentRun(runtime, agents, runId)\n\n return {\n run,\n ...(jobId ? { jobId } : {}),\n createdThread,\n }\n}\n\n/** A failed turn, or one its worker died during, can run again from the same trigger message. */\nexport function isRetryableAgentRun(\n run: Pick<ConversationAgentRunRecord, \"status\" | \"finishReason\">\n): boolean {\n return (\n run.status === \"failed\" || (run.status === \"cancelled\" && run.finishReason === \"interrupted\")\n )\n}\n\n/** Retry a failed turn as a new child execution while reusing its immutable trigger message. */\nexport async function retryAgentRun(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n models: LanguageModelCatalog | undefined,\n failedRun: ConversationAgentRunRecord\n): Promise<RequestAgentRunResult> {\n resolveExecutionScopeAuthorization(runtime.projectId, {\n execution,\n authorization: runtime.runtimeAuthorization,\n })\n assertAuthorized(runtime, { kind: \"agent.run\" })\n assertRequestAuthorityCanRunAgent(runtime)\n if (!isRetryableAgentRun(failedRun)) {\n throw new AgentRequestError(\n \"run_not_retryable\",\n `[Sixb] Only failed or interrupted Agent runs can be retried.`\n )\n }\n\n const agents = requireAgentStorage(runtime)\n const thread = await agents.threads.getById({\n projectId: runtime.projectId,\n id: failedRun.threadId,\n })\n if (!thread) {\n throw new AgentRequestError(\n \"thread_not_found\",\n `[Sixb] Agent thread '${failedRun.threadId}' was not found.`\n )\n }\n assertSandboxExecutionAvailable(thread)\n const runId = createAgentRunId()\n const durableExecution = await prepareDurableAgentExecution(runtime, execution, runId)\n await assertAiLimitPreflight(runtime, durableExecution)\n const run = await runtime.storage.transaction(async (tx) => {\n const agents = tx.agents\n if (!agents) {\n throw new AgentRequestError(\"storage_unavailable\", \"[Sixb] Agent storage is not configured.\")\n }\n await agents.messages.deleteByRunId({\n projectId: runtime.projectId,\n threadId: failedRun.threadId,\n runId: failedRun.id,\n })\n // What the failed turn published goes with what it said, so the retry starts clean.\n await tx.artifacts?.deleteVersionsByOrigin({\n projectId: runtime.projectId,\n runId: failedRun.id,\n })\n await tx.executions.create(durableExecution)\n return agents.runs.create({\n id: runId,\n projectId: runtime.projectId,\n executionId: durableExecution.id,\n threadId: failedRun.threadId,\n triggerMessageId: failedRun.triggerMessageId,\n spec:\n failedRun.spec ??\n (await resolveConversationRunSpec({\n models,\n input: {},\n })),\n })\n })\n await publishRunActivity(runtime, run)\n const jobId = await dispatchAgentRun(runtime, agents, runId)\n return { run, ...(jobId ? { jobId } : {}), createdThread: false }\n}\n\n/**\n * A continuation picks up where the cut-short turn stopped, with its model and reasoning unless the\n * request chooses others. A model that has since left the catalog falls back to the defaults.\n */\nasync function continuedSelection(\n runtime: SixbRuntimeContext,\n models: LanguageModelCatalog | undefined,\n input: RequestAgentRunInput\n): Promise<Pick<RequestAgentRunInput, \"model\" | \"reasoning\">> {\n const agents = requireAgentStorage(runtime)\n const threadId = input.threadId ?? \"\"\n if (!(await agents.threads.getById({ projectId: runtime.projectId, id: threadId }))) {\n throw new AgentRequestError(\n \"thread_not_found\",\n \"[Sixb] An Agent continuation needs an existing thread.\"\n )\n }\n if (input.model !== undefined || input.reasoning !== undefined) return {}\n const { runs } = await agents.runs.list({\n projectId: runtime.projectId,\n threadId,\n kinds: [\"conversation\"],\n order: \"desc\",\n limit: 1,\n })\n const spec = runs[0]?.kind === \"conversation\" ? runs[0].spec : undefined\n if (!spec || !models?.getByRef(spec.model)) return {}\n return {\n model: spec.model,\n ...(spec.reasoning === undefined ? {} : { reasoning: spec.reasoning }),\n }\n}\n\n/** The words of the user, or the continuation Sixb words for them. */\nfunction triggerParts(input: RequestAgentRunInput): readonly AgentMessagePart[] {\n if (input.continue === true) {\n if (input.text !== undefined || input.attachments?.length || input.context?.length) {\n throw new AgentRequestError(\n \"invalid_message\",\n \"[Sixb] An Agent continuation carries no text, attachments, or context.\"\n )\n }\n return [{ type: \"continuation\" }]\n }\n if (typeof input.text !== \"string\" || input.text.trim().length === 0) {\n throw new AgentRequestError(\n \"invalid_message\",\n \"[Sixb] An Agent message needs text, or `continue: true` to continue the previous answer.\"\n )\n }\n return [{ type: \"text\", text: input.text }]\n}\n\nfunction assertAttachments(attachments: readonly FileRef[] | undefined): void {\n for (const [index, attachment] of (attachments ?? []).entries()) {\n if (!isValidFileRef(attachment)) {\n throw new AgentRequestError(\n \"invalid_attachment\",\n `[Sixb] Attachment ${index} is not a valid file reference.`\n )\n }\n }\n}\n\nfunction assertSandboxExecutionAvailable(thread: AgentThreadRecord): void {\n if (thread.sandboxState && ![\"new\", \"ready\"].includes(thread.sandboxState.status)) {\n throw new AgentRequestError(\n \"sandbox_execution_unavailable\",\n \"[Sixb] Sandbox recovery is required before another run. Reload the thread and explicitly recreate it to start fresh.\"\n )\n }\n}\n\nasync function assertAiLimitPreflight(\n runtime: SixbRuntimeContext,\n execution: Pick<ExecutionRecord, \"requestedBy\" | \"requesterGroupIds\">\n): Promise<void> {\n const limits = runtime.storage.aiLimits\n if (!limits) throw aiUsageLimitUnavailableError([\"limitStorageUnavailable\"])\n\n const subjects = aiLimitSubjectsFromAttribution(\n execution.requestedBy,\n execution.requesterGroupIds\n )\n let applicable: readonly AiLimitPolicyStatus[]\n try {\n applicable = applicableAiLimitPolicyStatuses(\n await limits.listPolicyStatuses({ projectId: runtime.projectId }),\n subjects\n )\n } catch {\n throw aiUsageLimitUnavailableError([\"limitStorageUnavailable\"])\n }\n\n const unavailable = applicable.filter((status) => status.accountingStatus === \"unavailable\")\n if (unavailable.length > 0) {\n throw aiUsageLimitUnavailableError([\"incompleteAccounting\"])\n }\n const exhausted = applicable.filter((status) => status.exhausted)\n if (exhausted.length > 0) {\n const resetAt = new Date(\n Math.min(...exhausted.map((status) => status.period.resetAt.getTime()))\n )\n throw aiUsageLimitExceededError(resetAt)\n }\n}\n\n/**\n * Freeze the model selection of a turn. The model's default reasoning is resolved here, not by the\n * worker, so a retry runs with the reasoning the turn was admitted with.\n */\nasync function resolveConversationRunSpec(input: {\n readonly models?: LanguageModelCatalog\n readonly input: Pick<RequestAgentRunInput, \"model\" | \"reasoning\" | \"timeZone\" | \"locale\">\n}): Promise<ConversationAgentRunSpec> {\n if (!input.models) {\n throw new AgentRequestError(\n \"model_not_found\",\n \"[Sixb] Configure models.language before starting the Agent.\"\n )\n }\n const selected = input.input.model ?? input.models.default\n const model = input.models.getByRef(selected)\n if (model === null) {\n throw new AgentRequestError(\n \"model_not_found\",\n `[Sixb] Language model '${selected.provider}/${selected.modelId}' is not in the project model catalog.`\n )\n }\n\n const explicitReasoning = input.input.reasoning\n if (explicitReasoning !== undefined) {\n await assertModelSupportsReasoning(model, explicitReasoning)\n }\n const reasoning = explicitReasoning ?? model.model.defaultReasoning\n const timeZone = requestedSetting(\n \"timeZone\",\n input.input.timeZone,\n canonicalTimeZone,\n \"an IANA time zone\"\n )\n const locale = requestedSetting(\n \"locale\",\n input.input.locale,\n canonicalLocale,\n \"a BCP 47 language tag\"\n )\n\n return Object.freeze({\n model: Object.freeze({ provider: selected.provider, modelId: selected.modelId }),\n ...(reasoning === undefined ? {} : { reasoning }),\n ...(timeZone === undefined ? {} : { timeZone }),\n ...(locale === undefined ? {} : { locale }),\n })\n}\n\nfunction requestedSetting(\n field: \"timeZone\" | \"locale\",\n value: string | undefined,\n canonical: (value: unknown) => string | undefined,\n expected: string\n): string | undefined {\n if (value === undefined) return undefined\n const resolved = canonical(value)\n if (resolved === undefined) {\n throw new AgentRequestError(\n \"invalid_locale\",\n `[Sixb] Agent request '${field}' must be ${expected}; received ${JSON.stringify(value)}.`\n )\n }\n return resolved\n}\n\n// Checked against the model's resolved capabilities, as `GET /api/models` reports them (its\n// configured ones when the provider catalog is unavailable). Undeclared capabilities accept any\n// level; the provider then falls back to its own default.\nasync function assertModelSupportsReasoning(\n entry: LanguageModelEntry,\n reasoning: unknown\n): Promise<void> {\n if (!isModelReasoning(reasoning)) {\n throw new AgentRequestError(\n \"invalid_model_selection\",\n `[Sixb] Agent reasoning must be one of: ${AGENT_REASONING_LEVELS.join(\", \")}, or a nonnegative budgetTokens object.`\n )\n }\n if (reasoning === \"provider-default\") return\n const model = await resolveLanguageModel(entry.model)\n const issue = modelReasoningSupportIssue(model.definition.capabilities.reasoning, reasoning)\n if (issue !== undefined) {\n throw new AgentRequestError(\n \"invalid_model_selection\",\n `[Sixb] Language model '${entry.provider}/${entry.modelId}' cannot use this reasoning: ${issue}.`\n )\n }\n}\n\nasync function prepareDurableAgentExecution(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n runId: string\n): Promise<Omit<ExecutionRecord, \"createdAt\">> {\n const parent = await ensureExecutionRecord(\n runtime.storage.executions,\n executionRecordInputFromRuntime({\n execution,\n runtimeAuthorization: runtime.runtimeAuthorization,\n })\n )\n return createInheritedAgentExecutionRecord({\n id: `exec_${randomUUID()}`,\n parent,\n runId,\n })\n}\n\nfunction assertRequestAuthorityCanRunAgent(runtime: SixbRuntimeContext): void {\n if (!canInheritAgentRequestAuthorization(runtime.runtimeAuthorization)) {\n throw new AgentRequestError(\n \"authority_not_inheritable\",\n \"[Sixb] The Agent requires an authenticated user request or disabled authorization.\"\n )\n }\n}\n\nasync function dispatchAgentRun(\n runtime: SixbRuntimeContext,\n agents: AgentStorage,\n runId: string\n): Promise<string | undefined> {\n // The queued run is the durable dispatch intent. Publication is best-effort; workers reconcile\n // it with the same deterministic queue job id if the queue is temporarily unavailable.\n try {\n const dispatch = await dispatchQueuedAgentRuns({\n projectId: runtime.projectId,\n storage: agents,\n queue: runtime.queues.agents,\n runIds: [runId],\n })\n const failure = dispatch.failures[0]\n if (failure) {\n console.error(\n `[Sixb] Could not dispatch queued agent run '${runId}'; retrying later.`,\n failure.error\n )\n }\n return dispatch.dispatched[0]?.jobId\n } catch (error) {\n console.error(`[Sixb] Could not dispatch queued agent run '${runId}'; retrying later.`, error)\n return undefined\n }\n}\n\n/** Activity delivery is observational: durable run admission remains successful if the feed is down. */\nasync function publishRunActivity(\n runtime: SixbRuntimeContext,\n run: ConversationAgentRunRecord\n): Promise<void> {\n try {\n await publishAgentRunActivity(runtime.broker, run)\n } catch (error) {\n console.error(`[Sixb] Agent run '${run.id}' activity stream publish failed:`, error)\n }\n}\n\nasync function resolveThread(\n agents: AgentStorage,\n params: {\n readonly projectId: string\n readonly threadId?: string\n readonly title?: string\n readonly principal: Principal\n }\n): Promise<{ thread: AgentThreadRecord; createdThread: boolean }> {\n if (params.threadId) {\n const existing = await agents.threads.getById({\n projectId: params.projectId,\n id: params.threadId,\n })\n if (existing) {\n return { thread: existing, createdThread: false }\n }\n }\n\n const thread = await agents.threads.create({\n id: params.threadId ?? createAgentThreadId(),\n projectId: params.projectId,\n ownerPrincipal: params.principal,\n ...(params.title === undefined ? {} : { title: params.title }),\n })\n return { thread, createdThread: true }\n}\n\nfunction requireAgentStorage(runtime: SixbRuntimeContext): AgentStorage {\n const agents = runtime.storage.agents\n if (!agents) {\n throw new AgentRequestError(\"storage_unavailable\", \"[Sixb] Agent storage is not configured.\")\n }\n return agents\n}\n",
|
|
40
33
|
"/** Language assumed when a project sets none. */\nexport const DEFAULT_PROJECT_LOCALE = \"en\"\n\n/** Time zone assumed when a project sets none; cron schedules have always used it. */\nexport const DEFAULT_PROJECT_TIME_ZONE = \"UTC\"\n\n/** The canonical form of a BCP 47 language tag (`fr-fr` → `fr-FR`), or `undefined` if invalid. */\nexport function canonicalLocale(value: unknown): string | undefined {\n if (typeof value !== \"string\") return undefined\n try {\n const [locale] = Intl.getCanonicalLocales(value)\n return locale\n } catch {\n return undefined\n }\n}\n\n/** The canonical IANA name of a time zone (`europe/paris` → `Europe/Paris`), or `undefined`. */\nexport function canonicalTimeZone(value: unknown): string | undefined {\n if (typeof value !== \"string\" || value.trim() !== value || value === \"\") return undefined\n try {\n return new Intl.DateTimeFormat(\"en-US\", { timeZone: value }).resolvedOptions().timeZone\n } catch {\n return undefined\n }\n}\n",
|
|
41
34
|
"import type { SixbRuntimeContext } from \"../runtime/types\"\nimport {\n type AgentContextEntryInput,\n type AgentContextPart,\n normalizeAgentContextEntries,\n} from \"./context/entries\"\nimport { AgentRequestError } from \"./errors\"\n\n/** Resolve the exact context parts that will be persisted with the triggering user message. */\nexport async function resolveAgentContextParts(\n runtime: SixbRuntimeContext,\n input: readonly AgentContextEntryInput[] | undefined\n): Promise<readonly AgentContextPart[]> {\n const entries = normalizeAgentContextEntries(input)\n\n for (const entry of entries) {\n if (entry.context.kind !== \"object\") continue\n const { objectTypeId, primaryId } = entry.context.ref\n\n try {\n runtime.ontology.resolveObjectType(objectTypeId)\n } catch {\n invalidContext(`context references an unknown object type '${objectTypeId}'`)\n }\n\n const object = await runtime.objectReader.getByPrimaryId({\n objectTypeId,\n primaryId,\n })\n if (!object) {\n invalidContext(`context references an unknown object '${objectTypeId}:${primaryId}'`)\n }\n }\n\n return entries.map((entry) => ({ type: \"context\", ...entry }))\n}\n\nfunction invalidContext(message: string): never {\n throw new AgentRequestError(\"invalid_context\", `[Sixb] Invalid agent context: ${message}.`)\n}\n",
|
|
42
35
|
"import type { AgentQueueJob, Queue, SubagentQueueJob } from \"../queues\"\nimport type { AgentStorage } from \"../storage/agents\"\n\nexport interface DispatchQueuedAgentRunsInput {\n readonly projectId: string\n readonly storage: AgentStorage\n readonly queue: Queue<AgentQueueJob>\n /** Dispatch only these runs. Omitted scans the oldest queued runs. */\n readonly runIds?: readonly string[]\n readonly limit?: number\n}\n\nexport interface DispatchedAgentRun {\n readonly runId: string\n readonly jobId: string\n}\n\nexport interface AgentRunDispatchFailure {\n readonly runId: string\n readonly error: unknown\n}\n\nexport interface DispatchQueuedAgentRunsResult {\n readonly scanned: number\n readonly dispatched: readonly DispatchedAgentRun[]\n readonly failures: readonly AgentRunDispatchFailure[]\n}\n\n/** Stable queue identity: repeated publication of one durable run is idempotent. */\nexport function agentRunQueueJobId(runId: string): string {\n return `agt_job_${runId}`\n}\n\nexport function subagentRunQueueJobId(runId: string): string {\n return `agt_child_job_${runId}`\n}\n\n/** Stable queue identity shared by workflow dispatch and agent reconciliation. */\nexport function workflowAgentNodeQueueJobId(nodeRunId: string): string {\n return `wfa_job_${nodeRunId}`\n}\n\n/**\n * Publish durable queued runs to the agent queue.\n *\n * The queued run is the dispatch intent, so no parallel outbox record is needed. Callers may run\n * this concurrently: the deterministic queue job id collapses repeated publication to one active\n * job, while the worker's queued→running transition remains the execution authority.\n */\nexport async function dispatchQueuedAgentRuns(\n input: DispatchQueuedAgentRunsInput\n): Promise<DispatchQueuedAgentRunsResult> {\n const limit = normalizeLimit(input.limit)\n const runs = input.runIds\n ? await input.storage.runs.getByIds({\n projectId: input.projectId,\n ids: [...new Set(input.runIds)].slice(0, limit),\n })\n : (\n await input.storage.runs.list({\n projectId: input.projectId,\n kinds: [\"conversation\"],\n statuses: [\"queued\"],\n order: \"asc\",\n limit,\n })\n ).runs\n\n const queued = runs.filter((run) => run.kind === \"conversation\" && run.status === \"queued\")\n if (queued.length === 0) {\n return { scanned: 0, dispatched: [], failures: [] }\n }\n\n try {\n const jobs = await input.queue.enqueue({\n projectId: input.projectId,\n jobs: queued.map((run) => ({\n id: agentRunQueueJobId(run.id),\n type: \"agent.run.requested\" as const,\n payload: { runId: run.id },\n })),\n })\n const jobsById = new Map(jobs.map((job) => [job.id, job]))\n const dispatched = queued.map((run) => {\n const jobId = agentRunQueueJobId(run.id)\n if (!jobsById.has(jobId)) {\n throw new Error(`[Sixb] Agent queue did not return job '${jobId}'.`)\n }\n return { runId: run.id, jobId }\n })\n return { scanned: queued.length, dispatched, failures: [] }\n } catch (error) {\n return {\n scanned: queued.length,\n dispatched: [],\n failures: queued.map((run) => ({ runId: run.id, error })),\n }\n }\n}\n\nexport async function dispatchQueuedSubagentRuns(input: {\n readonly projectId: string\n readonly storage: AgentStorage\n readonly queue: Queue<SubagentQueueJob>\n readonly runIds?: readonly string[]\n readonly limit?: number\n}): Promise<DispatchQueuedAgentRunsResult> {\n const limit = normalizeLimit(input.limit)\n const runs = input.runIds\n ? await input.storage.runs.getByIds({\n projectId: input.projectId,\n ids: [...new Set(input.runIds)].slice(0, limit),\n })\n : (\n await input.storage.runs.list({\n projectId: input.projectId,\n kinds: [\"subagent\"],\n statuses: [\"queued\"],\n order: \"asc\",\n limit,\n })\n ).runs\n const queued = runs.filter((run) => run.kind === \"subagent\" && run.status === \"queued\")\n if (queued.length === 0) return { scanned: 0, dispatched: [], failures: [] }\n\n try {\n const jobs = await input.queue.enqueue({\n projectId: input.projectId,\n jobs: queued.map((run) => ({\n id: subagentRunQueueJobId(run.id),\n type: \"agent.subagent-run.requested\" as const,\n payload: { runId: run.id },\n })),\n })\n const jobsById = new Set(jobs.map((job) => job.id))\n const dispatched = queued.map((run) => {\n const jobId = subagentRunQueueJobId(run.id)\n if (!jobsById.has(jobId)) {\n throw new Error(`[Sixb] Subagent queue did not return job '${jobId}'.`)\n }\n return { runId: run.id, jobId }\n })\n return { scanned: queued.length, dispatched, failures: [] }\n } catch (error) {\n return {\n scanned: queued.length,\n dispatched: [],\n failures: queued.map((run) => ({ runId: run.id, error })),\n }\n }\n}\n\nfunction normalizeLimit(value: number | undefined): number {\n if (value === undefined) return 100\n if (!Number.isFinite(value) || value < 1) {\n throw new Error(\"[Sixb] Agent dispatch limit must be at least 1.\")\n }\n return Math.floor(value)\n}\n",
|
|
@@ -44,10 +37,11 @@
|
|
|
44
37
|
"import { getInvalidJsonValueReason, isPlainRecord } from \"../json\"\nimport { OntologyValidationError } from \"../ontology/errors\"\nimport type { OntologyRegistry } from \"../ontology/registry\"\nimport type { SandboxDefinition } from \"../sandboxes/configuration\"\nimport { normalizeParams } from \"../shared/params/validation\"\nimport type { AgentThreadSandboxParams } from \"../storage/agents/types\"\nimport { AgentRequestError } from \"./errors\"\n\nexport function normalizeSandboxBinding(\n definition: Pick<SandboxDefinition, \"params\"> | undefined,\n input: unknown,\n ontology: OntologyRegistry\n): AgentThreadSandboxParams {\n if (!definition) {\n throw new AgentRequestError(\n \"sandbox_not_configured\",\n \"[Sixb] This sandbox provider has no compatible thread configuration.\"\n )\n }\n if (!isPlainRecord(input)) {\n throw new AgentRequestError(\n \"invalid_sandbox_params\",\n \"[Sixb] sandbox must be an object containing the declared parameter values.\"\n )\n }\n try {\n const params = normalizeParams(ontology.getValueTypesById(), definition.params, input, {\n kind: \"sandbox\",\n id: \"sandboxes\",\n path: \"sandbox\",\n })\n if (getInvalidJsonValueReason(params)) {\n throw new OntologyValidationError(\"[Sixb] Sandbox params must normalize to JSON values.\")\n }\n return params\n } catch (error) {\n throw new AgentRequestError(\n \"invalid_sandbox_params\",\n error instanceof OntologyValidationError\n ? error.message\n : \"[Sixb] Sandbox params could not be normalized.\"\n )\n }\n}\n",
|
|
45
38
|
"import { principalsEqual, SYSTEM_PRINCIPAL } from \"../auth\"\nimport { assertAuthorized, isRuntimeAllowed } from \"../authorization\"\nimport type { AuthorizablePrincipal, ExecutionContext } from \"../execution\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport type { ModelCatalog } from \"../models\"\nimport { resolveExecutionCosts } from \"../runtime/ai-cost\"\nimport { resolveExecutionUsage } from \"../runtime/ai-usage\"\nimport type { SixbDependencies } from \"../runtime/sixb\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type {\n AgentThreadRecord,\n ConversationAgentRunRecord,\n ListAgentRunsInput,\n ListAgentRunsResult,\n ListAgentThreadsInput,\n ListAgentThreadsResult,\n} from \"../storage/agents\"\nimport type { AiCostSummary } from \"../storage/ai-cost\"\nimport type { AiModelCallUsage } from \"../storage/ai-usage\"\nimport { AgentRequestError } from \"./errors\"\nimport { createAgentThreadId, createAgentThreadSandboxName } from \"./ids\"\nimport {\n type RequestAgentRunInput,\n type RequestAgentRunResult,\n requestAgentRun,\n retryAgentRun,\n} from \"./request\"\nimport { assertNoAgentSelector } from \"./retired-config\"\nimport { normalizeSandboxBinding } from \"./sandbox\"\nimport type { AgentDescriptor } from \"./types\"\n\nexport type ExecutionAgentRequestInput = Omit<RequestAgentRunInput, \"principal\">\n\n/** Execution ownership tokens never leave the storage/worker boundary. */\nfunction publicThread(thread: AgentThreadRecord): AgentThreadRecord {\n if (!thread.sandboxState) return thread\n const { name, status, initialized } = thread.sandboxState\n return { ...thread, sandboxState: { name, status, initialized } }\n}\nexport type ListExecutionAgentThreadsInput = Omit<\n ListAgentThreadsInput,\n \"projectId\" | \"ownerPrincipal\"\n>\n\nexport type CreateExecutionAgentThreadInput<\n TParams extends Record<string, unknown> = Record<string, unknown>,\n> = {\n readonly id?: string\n readonly title?: string\n readonly sandbox?: TParams\n}\n\nexport type AgentThreadsRuntime<TParams extends Record<string, unknown> = Record<string, unknown>> =\n {\n /** Start fresh after uncertain recovery; never deletes the previous sandbox. */\n recreateSandbox(\n threadId: string,\n input: { readonly expectedSandboxName: string }\n ): Promise<AgentThreadRecord>\n create(input: CreateExecutionAgentThreadInput<TParams>): Promise<AgentThreadRecord>\n getById(threadId: string): Promise<AgentThreadRecord | null>\n list(input?: ListExecutionAgentThreadsInput): Promise<ListAgentThreadsResult>\n }\n\nexport interface AgentRunsRuntime {\n request(input: ExecutionAgentRequestInput): Promise<ExecutionAgentRunResult>\n retry(runId: string): Promise<ExecutionAgentRunResult>\n getById(runId: string): Promise<AgentRunView | null>\n listForThread(\n threadId: string,\n input?: Omit<ListAgentRunsInput, \"projectId\" | \"threadId\">\n ): Promise<AgentRunListResult | null>\n}\n\n/** Execution-facing run view with provenance resolved from the immutable execution ledger. */\nexport interface AgentRunView extends ConversationAgentRunRecord {\n readonly requestedBy?: AuthorizablePrincipal\n /** Derived from the model-call ledger; never persisted on the Agent run row. */\n readonly usage?: AiModelCallUsage\n /** Preferred valuation; omitted when there are no calls or cost storage is unavailable. */\n readonly cost?: AiCostSummary\n}\n\nexport interface AgentRunListResult extends Omit<ListAgentRunsResult, \"runs\"> {\n readonly runs: readonly AgentRunView[]\n}\n\nexport interface ExecutionAgentRunResult extends Omit<RequestAgentRunResult, \"run\"> {\n readonly run: AgentRunView\n}\n\nexport type AgentRuntime<TParams extends Record<string, unknown> = Record<string, unknown>> = {\n /** Null when no language models are configured or the caller cannot run the Agent. */\n get(): AgentDescriptor | null\n readonly threads: AgentThreadsRuntime<TParams>\n readonly runs: AgentRunsRuntime\n}\n\nexport function createAgentRuntime<\n TParams extends Record<string, unknown> = Record<string, unknown>,\n>(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n models?: ModelCatalog,\n sandbox?: SixbDependencies[\"sandbox\"]\n): AgentRuntime<TParams> {\n const authority = resolveRuntimeAuthorizationForProject(runtime)\n const principal = authority.type === \"principal\" ? authority.context.principal : SYSTEM_PRINCIPAL\n const allowed = () => isRuntimeAllowed(runtime, { kind: \"agent.run\" })\n\n const getVisibleThreadRecord = async (threadId: string): Promise<AgentThreadRecord | null> => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const thread =\n (await runtime.storage.agents?.threads.getById({\n projectId: runtime.projectId,\n id: threadId,\n })) ?? null\n if (!thread || !allowed()) return null\n return authority.type === \"principal\" && !principalsEqual(principal, thread.ownerPrincipal)\n ? null\n : publicThread(thread)\n }\n\n const getAgent = (): AgentDescriptor | null => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const model = models?.language?.default\n if (!model || !allowed()) return null\n return {\n name: \"Sixb\",\n model: { provider: model.provider, modelId: model.modelId },\n }\n }\n\n const getVisibleRunRecord = async (runId: string): Promise<ConversationAgentRunRecord | null> => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const run =\n (await runtime.storage.agents?.runs.getById({\n projectId: runtime.projectId,\n id: runId,\n })) ?? null\n if (!run || run.kind !== \"conversation\") return null\n const thread = await getVisibleThreadRecord(run.threadId)\n return thread ? run : null\n }\n\n const getRun = async (runId: string): Promise<AgentRunView | null> => {\n const run = await getVisibleRunRecord(runId)\n return run ? attachRunView(runtime, run) : null\n }\n\n return {\n get: getAgent,\n threads: {\n recreateSandbox: async (threadId, input) => {\n const thread = await getVisibleThreadRecord(threadId)\n if (!thread)\n throw new AgentRequestError(\"thread_not_found\", \"[Sixb] Agent thread not found.\")\n const storage = runtime.storage.agents\n if (!storage)\n throw new AgentRequestError(\n \"storage_unavailable\",\n \"[Sixb] Agent storage is not configured.\"\n )\n const sandboxState = await storage.threads.transitionSandbox({\n projectId: runtime.projectId,\n id: threadId,\n action: \"recreate\",\n expectedSandboxName: input.expectedSandboxName,\n name: createAgentThreadSandboxName(runtime.projectId, threadId),\n })\n return publicThread({ ...thread, sandboxState })\n },\n create: async (input) => {\n assertNoAgentSelector(input)\n const agent = getAgent()\n if (!agent) {\n throw new AgentRequestError(\"agent_not_found\", \"[Sixb] The project Agent is unavailable.\")\n }\n const storage = runtime.storage.agents\n if (!storage) {\n throw new AgentRequestError(\n \"storage_unavailable\",\n \"[Sixb] Agent storage is not configured.\"\n )\n }\n if (input.sandbox !== undefined && !sandbox?.supportsPersistence) {\n throw new AgentRequestError(\n \"sandbox_not_configured\",\n \"[Sixb] Thread sandboxes require a provider with persistence support.\"\n )\n }\n const binding =\n input.sandbox === undefined\n ? undefined\n : normalizeSandboxBinding(sandbox?.definition, input.sandbox, runtime.ontology)\n return storage.threads.create({\n ...(binding === undefined ? {} : { sandboxParams: binding }),\n id: input.id ?? createAgentThreadId(),\n projectId: runtime.projectId,\n ownerPrincipal: principal,\n ...(input.title === undefined ? {} : { title: input.title }),\n })\n },\n getById: getVisibleThreadRecord,\n list: async (input = {}) => {\n assertNoAgentSelector(input)\n if (authority.type === \"denied\" || authority.type === \"delegated\") {\n return { threads: [], hasMore: false, total: 0 }\n }\n const storage = runtime.storage.agents\n if (!storage || !allowed()) return { threads: [], hasMore: false, total: 0 }\n const result = await storage.threads.list({\n ...input,\n projectId: runtime.projectId,\n ownerPrincipal: authority.type === \"principal\" ? principal : undefined,\n })\n return { ...result, threads: result.threads.map(publicThread) }\n },\n },\n runs: {\n request: async (input) => {\n assertNoAgentSelector(input)\n const agent = getAgent()\n if (!agent) {\n throw new AgentRequestError(\"agent_not_found\", \"[Sixb] The project Agent is unavailable.\")\n }\n assertAuthorized(runtime, { kind: \"agent.run\" })\n if (input.threadId && !(await getVisibleThreadRecord(input.threadId))) {\n throw new AgentRequestError(\n \"thread_not_found\",\n `[Sixb] Agent thread '${input.threadId}' not found.`\n )\n }\n const result = await requestAgentRun(runtime, execution, models?.language, {\n ...input,\n principal,\n })\n return { ...result, run: await attachRunView(runtime, result.run) }\n },\n retry: async (runId) => {\n const failedRun = await getVisibleRunRecord(runId)\n if (!failedRun) {\n throw new AgentRequestError(\"run_not_found\", `[Sixb] Agent run '${runId}' was not found.`)\n }\n const agent = getAgent()\n if (!agent) {\n throw new AgentRequestError(\"agent_not_found\", \"[Sixb] The project Agent is unavailable.\")\n }\n const result = await retryAgentRun(runtime, execution, models?.language, failedRun)\n return { ...result, run: await attachRunView(runtime, result.run) }\n },\n getById: getRun,\n listForThread: async (threadId, input = {}) => {\n assertNoAgentSelector(input)\n const storage = runtime.storage.agents\n if (!storage || !(await getVisibleThreadRecord(threadId))) return null\n const result = await storage.runs.list({\n ...input,\n projectId: runtime.projectId,\n threadId,\n })\n return {\n ...result,\n runs: await attachRunViews(\n runtime,\n result.runs.filter((run) => run.kind === \"conversation\")\n ),\n }\n },\n },\n }\n}\n\nasync function attachRunView(\n runtime: SixbRuntimeContext,\n run: ConversationAgentRunRecord\n): Promise<AgentRunView> {\n const [view] = await attachRunViews(runtime, [run])\n if (!view) throw new Error(`[Sixb] Could not build Agent run '${run.id}' view.`)\n return view\n}\n\nasync function attachRunViews(\n runtime: SixbRuntimeContext,\n runs: readonly ConversationAgentRunRecord[]\n): Promise<readonly AgentRunView[]> {\n const executionIds = runs.map((run) => run.executionId)\n const [executions, usages, costs] = await Promise.all([\n Promise.all(\n runs.map((run) =>\n runtime.storage.executions.getById({\n projectId: runtime.projectId,\n id: run.executionId,\n })\n )\n ),\n resolveExecutionUsage({\n storage: runtime.storage.aiUsage,\n projectId: runtime.projectId,\n executionIds,\n }),\n resolveExecutionCosts({\n storage: runtime.storage.aiCosts,\n projectId: runtime.projectId,\n executionIds,\n }),\n ])\n\n return runs.map((run, index) => {\n const execution = executions[index]\n if (!execution) {\n throw new Error(\n `[Sixb] Agent run '${run.id}' references missing execution '${run.executionId}'.`\n )\n }\n const usage = usages[index]\n const cost = usage === undefined ? undefined : costs[index]\n return {\n ...run,\n ...(execution.requestedBy === undefined\n ? {}\n : { requestedBy: structuredClone(execution.requestedBy) }),\n ...(usage === undefined ? {} : { usage }),\n ...(cost === undefined ? {} : { cost }),\n }\n })\n}\n",
|
|
46
39
|
"import { randomUUID } from \"node:crypto\"\nimport { assertAuthorized, isRuntimeAllowed } from \"../authorization\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type { SecurityDefinitionCatalog } from \"../security\"\nimport type {\n AiAccountingOverview,\n AiLimitPolicy,\n AiLimitPolicyStatus,\n CreateAiLimitPolicyInput,\n ListAiLimitPoliciesInput,\n ListAiLimitPolicyStatusesInput,\n ListAiModelCallAccountingInput,\n ListAiModelCallAccountingResult,\n ListAiModelCallGroupsInput,\n ListAiModelCallGroupsResult,\n QueryAiAccountingOverviewInput,\n ServiceAccountStatus,\n UpdateAiLimitPolicyInput,\n UserStatus,\n} from \"../storage\"\n\nexport type QueryAiUsageOverviewInput = Omit<QueryAiAccountingOverviewInput, \"projectId\">\nexport type ListAiUsageModelCallsInput = Omit<ListAiModelCallAccountingInput, \"projectId\">\nexport type ListAiUsageModelCallGroupsInput = Omit<ListAiModelCallGroupsInput, \"projectId\">\nexport type ListAiUsageLimitPoliciesInput = Omit<ListAiLimitPoliciesInput, \"projectId\">\nexport type ListAiUsageLimitStatusesInput = Omit<\n ListAiLimitPolicyStatusesInput,\n \"projectId\" | \"existingGroupIds\" | \"at\"\n>\nexport type CreateAiUsageLimitPolicyInput = Omit<\n CreateAiLimitPolicyInput,\n \"id\" | \"projectId\" | \"createdAt\"\n> & { readonly id?: string }\nexport type UpdateAiUsageLimitPolicyInput = Omit<\n UpdateAiLimitPolicyInput,\n \"projectId\" | \"updatedAt\"\n>\n\nexport interface AiUsageLimitGroupOption {\n readonly id: string\n readonly label?: string\n readonly description?: string\n}\n\nexport interface AiUsageLimitUserOption {\n readonly id: string\n readonly email: string\n readonly displayName?: string\n readonly status: UserStatus\n}\n\nexport interface AiUsageLimitServiceAccountOption {\n readonly id: string\n readonly name: string\n readonly description?: string\n readonly status: ServiceAccountStatus\n}\n\nexport interface AiUsageLimitSubjectOptions {\n readonly groups: readonly AiUsageLimitGroupOption[]\n readonly users: readonly AiUsageLimitUserOption[]\n readonly serviceAccounts: readonly AiUsageLimitServiceAccountOption[]\n}\n\n/** Project AI accounting and limit controls bound to one execution's authority. */\nexport interface AiUsageRuntime {\n readonly accountingConfigured: boolean\n readonly limitsConfigured: boolean\n assertObservable(): void\n assertManageable(): void\n canManageLimits(): boolean\n queryOverview(input: QueryAiUsageOverviewInput): Promise<AiAccountingOverview>\n listModelCalls(input: ListAiUsageModelCallsInput): Promise<ListAiModelCallAccountingResult>\n listModelCallGroups(input: ListAiUsageModelCallGroupsInput): Promise<ListAiModelCallGroupsResult>\n listLimitPolicies(input?: ListAiUsageLimitPoliciesInput): Promise<readonly AiLimitPolicy[]>\n listLimitStatuses(input?: ListAiUsageLimitStatusesInput): Promise<readonly AiLimitPolicyStatus[]>\n listLimitSubjectOptions(): Promise<AiUsageLimitSubjectOptions>\n createLimitPolicy(input: CreateAiUsageLimitPolicyInput): Promise<AiLimitPolicy>\n updateLimitPolicy(input: UpdateAiUsageLimitPolicyInput): Promise<AiLimitPolicy>\n deleteLimitPolicy(id: string): Promise<boolean>\n}\n\nexport function createAiUsageRuntime(\n runtime: SixbRuntimeContext,\n security: SecurityDefinitionCatalog\n): AiUsageRuntime {\n const assertObservable = () => assertAuthorized(runtime, { kind: \"aiUsage.observe\" })\n const assertManageable = () => assertAuthorized(runtime, { kind: \"aiUsage.manage\" })\n const assertPolicyReadable = () => {\n if (\n !isRuntimeAllowed(runtime, { kind: \"aiUsage.observe\" }) &&\n !isRuntimeAllowed(runtime, { kind: \"aiUsage.manage\" })\n ) {\n assertObservable()\n }\n }\n const requireCosts = () => {\n if (!runtime.storage.aiCosts) {\n throw new Error(\"[Sixb] AI cost storage is not configured.\")\n }\n return runtime.storage.aiCosts\n }\n const requireLimits = () => {\n if (!runtime.storage.aiLimits) {\n throw new Error(\"[Sixb] AI limit storage is not configured.\")\n }\n return runtime.storage.aiLimits\n }\n\n return {\n accountingConfigured: runtime.storage.aiCosts !== undefined,\n limitsConfigured: runtime.storage.aiLimits !== undefined,\n assertObservable,\n assertManageable,\n canManageLimits: () => isRuntimeAllowed(runtime, { kind: \"aiUsage.manage\" }),\n queryOverview: (input) => {\n assertObservable()\n return requireCosts().queryProjectOverview({ ...input, projectId: runtime.projectId })\n },\n listModelCalls: (input) => {\n assertObservable()\n return requireCosts().listModelCalls({ ...input, projectId: runtime.projectId })\n },\n listModelCallGroups: (input) => {\n assertObservable()\n return requireCosts().listModelCallGroups({ ...input, projectId: runtime.projectId })\n },\n listLimitPolicies: (input = {}) => {\n assertPolicyReadable()\n return requireLimits().listPolicies({ ...input, projectId: runtime.projectId })\n },\n listLimitStatuses: (input = {}) => {\n assertObservable()\n return requireLimits().listPolicyStatuses({\n ...(input.includeDisabled === undefined ? {} : { includeDisabled: input.includeDisabled }),\n projectId: runtime.projectId,\n existingGroupIds: security.listGroups().map((group) => group.id),\n })\n },\n listLimitSubjectOptions: async () => {\n assertManageable()\n const groups = security.listGroups().map((group) => ({\n id: group.id,\n ...(group.label === undefined ? {} : { label: group.label }),\n ...(group.description === undefined ? {} : { description: group.description }),\n }))\n const auth = runtime.storage.auth\n if (!auth) return { groups, users: [], serviceAccounts: [] }\n\n const [users, serviceAccounts] = await Promise.all([\n auth.users.list({ projectId: runtime.projectId, order: \"asc\" }),\n auth.serviceAccounts.list({ projectId: runtime.projectId, order: \"asc\" }),\n ])\n return {\n groups,\n users: users.users.map((user) => ({\n id: user.id,\n email: user.email,\n ...(user.displayName === undefined ? {} : { displayName: user.displayName }),\n status: user.status,\n })),\n serviceAccounts: serviceAccounts.serviceAccounts.map((serviceAccount) => ({\n id: serviceAccount.id,\n name: serviceAccount.name,\n ...(serviceAccount.description === undefined\n ? {}\n : { description: serviceAccount.description }),\n status: serviceAccount.status,\n })),\n }\n },\n createLimitPolicy: (input) => {\n assertManageable()\n return requireLimits().createPolicy({\n ...input,\n id: input.id ?? `ailim_${randomUUID()}`,\n projectId: runtime.projectId,\n })\n },\n updateLimitPolicy: (input) => {\n assertManageable()\n return requireLimits().updatePolicy({ ...input, projectId: runtime.projectId })\n },\n deleteLimitPolicy: (id) => {\n assertManageable()\n return requireLimits().deletePolicy({ id, projectId: runtime.projectId })\n },\n }\n}\n",
|
|
40
|
+
"import { type Principal, principalsEqual, SYSTEM_PRINCIPAL } from \"../auth\"\nimport type { BlobStorage } from \"../blob-storage/types\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type {\n ArtifactFile,\n ArtifactRecord,\n ArtifactStorage,\n ArtifactVersionRecord,\n ListArtifactsResult,\n ListArtifactVersionsResult,\n} from \"../storage/artifacts/types\"\nimport { ArtifactRequestError } from \"./errors\"\nimport type { ArtifactKind } from \"./kinds\"\nimport { type PublishedArtifact, publishArtifact } from \"./publish/publish\"\n\n/** A version's content: what its kind renders from, and what it is called. */\nexport interface ArtifactContentInput {\n readonly kind: ArtifactKind\n readonly title: string\n /** Files stored with `sixb.blobs.put()` or `POST /api/files`, at their paths in the artifact. */\n readonly files: readonly ArtifactFile[]\n}\n\nexport interface ListArtifactsRuntimeInput {\n /** Only artifacts with a version the Agent published in this thread. */\n readonly threadId?: string\n /** Only artifacts of this kind. */\n readonly kind?: ArtifactKind\n readonly limit?: number\n readonly offset?: number\n}\n\n/**\n * Artifacts the caller owns: create one, publish its next version, read it back. A user or service\n * account reaches only its own artifacts; system code reaches every artifact in the project.\n */\nexport interface ArtifactsRuntime {\n /** Creates an artifact owned by the caller, with its first version. */\n create(input: ArtifactContentInput): Promise<PublishedArtifact>\n /** Publishes the next version. The kind must be the artifact's. */\n publish(artifactId: string, input: ArtifactContentInput): Promise<PublishedArtifact>\n get(artifactId: string): Promise<ArtifactRecord | null>\n /** Most recently updated first. */\n list(input?: ListArtifactsRuntimeInput): Promise<ListArtifactsResult>\n getVersion(artifactId: string, version: number | \"latest\"): Promise<ArtifactVersionRecord | null>\n /** Newest first; `null` when the artifact is not the caller's. */\n listVersions(\n artifactId: string,\n input?: { readonly limit?: number; readonly offset?: number }\n ): Promise<ListArtifactVersionsResult | null>\n /** Deletes the artifact with every version. `false` when it is not the caller's. */\n delete(artifactId: string): Promise<boolean>\n}\n\nexport function createArtifactsRuntime(\n runtime: SixbRuntimeContext,\n blobStorage: BlobStorage\n): ArtifactsRuntime {\n const authority = resolveRuntimeAuthorizationForProject(runtime)\n // Shared-link sessions and unresolved authority reach no artifact.\n const caller: Principal | null =\n authority.type === \"principal\"\n ? authority.context.principal\n : authority.type === \"unrestricted\"\n ? SYSTEM_PRINCIPAL\n : null\n const ownerFilter = authority.type === \"principal\" ? caller : null\n\n const requireStorage = (): ArtifactStorage => {\n const storage = runtime.storage.artifacts\n if (!storage) {\n throw new ArtifactRequestError(\n \"storage_unavailable\",\n \"[Sixb] Artifacts need storage that supports them.\"\n )\n }\n return storage\n }\n const requireCaller = (): Principal => {\n if (!caller) {\n throw new ArtifactRequestError(\"not_allowed\", \"[Sixb] This caller cannot publish artifacts.\")\n }\n return caller\n }\n const visible = (artifact: ArtifactRecord | null): ArtifactRecord | null =>\n artifact && caller && (!ownerFilter || principalsEqual(ownerFilter, artifact.owner))\n ? artifact\n : null\n const getVisible = async (artifactId: string): Promise<ArtifactRecord | null> =>\n caller\n ? visible(await requireStorage().get({ projectId: runtime.projectId, id: artifactId }))\n : null\n\n return {\n async create(input) {\n return publishArtifact(\n { projectId: runtime.projectId, storage: requireStorage(), blobStorage },\n { ...input, author: requireCaller() }\n )\n },\n\n async publish(artifactId, input) {\n const author = requireCaller()\n if (!(await getVisible(artifactId))) throw notFound(artifactId)\n return publishArtifact(\n { projectId: runtime.projectId, storage: requireStorage(), blobStorage },\n { ...input, artifactId, author }\n )\n },\n\n get: getVisible,\n\n async list(input = {}) {\n if (!caller) return { artifacts: [], hasMore: false, total: 0 }\n return requireStorage().list({\n projectId: runtime.projectId,\n ...(ownerFilter ? { owner: ownerFilter } : {}),\n ...(input.threadId === undefined ? {} : { originThreadId: input.threadId }),\n ...(input.kind === undefined ? {} : { kind: input.kind }),\n ...(input.limit === undefined ? {} : { limit: input.limit }),\n ...(input.offset === undefined ? {} : { offset: input.offset }),\n })\n },\n\n async getVersion(artifactId, version) {\n const artifact = await getVisible(artifactId)\n if (!artifact) return null\n return requireStorage().getVersion({\n projectId: runtime.projectId,\n artifactId,\n version: version === \"latest\" ? artifact.latestVersion : version,\n })\n },\n\n async listVersions(artifactId, input = {}) {\n if (!(await getVisible(artifactId))) return null\n return requireStorage().listVersions({ projectId: runtime.projectId, artifactId, ...input })\n },\n\n async delete(artifactId) {\n if (!(await getVisible(artifactId))) return false\n return requireStorage().delete({ projectId: runtime.projectId, id: artifactId })\n },\n }\n}\n\nfunction notFound(artifactId: string): ArtifactRequestError {\n return new ArtifactRequestError(\n \"artifact_not_found\",\n `[Sixb] Artifact '${artifactId}' was not found.`\n )\n}\n",
|
|
47
41
|
"import { assertProviderAccess } from \"../authorization\"\nimport type { ExecutionContext } from \"../execution\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport {\n type CreateFileDownloadUrlOptions,\n createFileDownloadUrl,\n type FileDownloadUrl,\n type FileDownloadUrlContext,\n revokeFileDownloadUrl,\n} from \"./download-urls\"\nimport { canonicalMediaType } from \"./media-type\"\nimport type {\n AbortBlobUploadInput,\n BlobByteRange,\n BlobInfo,\n BlobStorage,\n BlobUploadSession,\n CompleteBlobUploadInput,\n CreateBlobUploadInput,\n FileRef,\n PutBlobInput,\n SignBlobUploadPartInput,\n SignedBlobUploadPart,\n} from \"./types\"\nimport { supportsDirectUpload, supportsRangeRead } from \"./validation\"\n\n/** Blob operations bound to one execution. Provider lifecycle is deliberately host-only. */\nexport interface BlobsRuntime {\n put(input: PutBlobInput): Promise<FileRef>\n open(blobId: string): Promise<ReadableStream<Uint8Array>>\n stat(blobId: string): Promise<BlobInfo | null>\n /**\n * A URL anyone can use to read this file until it expires or is revoked, for services that\n * fetch media themselves. Requires the API's public origin (`SIXB_API_PUBLIC_ORIGIN`).\n */\n createDownloadUrl(file: FileRef, options?: CreateFileDownloadUrlOptions): Promise<FileDownloadUrl>\n /** Stop a URL from `createDownloadUrl()` before it expires. */\n revokeDownloadUrl(id: string): Promise<void>\n openRange?(blobId: string, range: BlobByteRange): Promise<ReadableStream<Uint8Array>>\n createUpload?(input: CreateBlobUploadInput): Promise<BlobUploadSession>\n signUploadPart?(input: SignBlobUploadPartInput): Promise<SignedBlobUploadPart>\n completeUpload?(input: CompleteBlobUploadInput): Promise<FileRef>\n abortUpload?(input: AbortBlobUploadInput): Promise<void>\n}\n\nexport function createBlobsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n blobStorage: BlobStorage,\n apiPublicOrigin: () => string | undefined\n): BlobsRuntime {\n const assertAccess = () => assertProviderAccess(runtime, execution, \"blobs.access\")\n // Read the origin per call: the server or CLI may record it after this SDK was bound.\n const downloadUrlContext = (): FileDownloadUrlContext => ({\n projectId: runtime.projectId,\n storage: runtime.storage,\n blobStorage,\n executionId: execution.id,\n apiPublicOrigin: apiPublicOrigin(),\n })\n const executionBlobs: BlobsRuntime = {\n put: (input) => {\n assertAccess()\n assertMediaType(\"put\", input.mediaType)\n return blobStorage.put(input)\n },\n open: (blobId) => {\n assertAccess()\n return blobStorage.open(blobId)\n },\n stat: (blobId) => {\n assertAccess()\n return blobStorage.stat(blobId)\n },\n createDownloadUrl: async (file, options) => {\n assertAccess()\n return createFileDownloadUrl(downloadUrlContext(), file, options)\n },\n revokeDownloadUrl: async (id) => {\n assertAccess()\n return revokeFileDownloadUrl(downloadUrlContext(), id)\n },\n }\n\n if (supportsRangeRead(blobStorage)) {\n executionBlobs.openRange = (blobId, range) => {\n assertAccess()\n return blobStorage.openRange(blobId, range)\n }\n }\n if (supportsDirectUpload(blobStorage)) {\n executionBlobs.createUpload = (input) => {\n assertAccess()\n assertMediaType(\"createUpload\", input.mediaType)\n return blobStorage.createUpload(input)\n }\n executionBlobs.signUploadPart = (input) => {\n assertAccess()\n return blobStorage.signUploadPart(input)\n }\n executionBlobs.completeUpload = (input) => {\n assertAccess()\n assertMediaType(\"completeUpload\", input.mediaType)\n return blobStorage.completeUpload(input)\n }\n executionBlobs.abortUpload = (input) => {\n assertAccess()\n return blobStorage.abortUpload(input)\n }\n }\n\n return Object.freeze(executionBlobs)\n}\n\nfunction assertMediaType(method: string, mediaType: string | undefined): void {\n if (mediaType !== undefined && canonicalMediaType(mediaType) === null) {\n throw new Error(\n `[Sixb] blobs.${method}() mediaType must be one media type, such as \"application/pdf\". Received ${JSON.stringify(mediaType)}.`\n )\n }\n}\n",
|
|
48
42
|
"import { AuthorizationError, assertCanManageConnector } from \"../../authorization\"\nimport { resolveExecutionScopeAuthorization } from \"../../execution/authorization\"\nimport { executionRecordInputFromRuntime } from \"../../execution/durable\"\nimport type { ExecutionContext } from \"../../execution/types\"\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\nimport type {\n AddConnectorConnectionInput,\n CompleteConnectorAuthorizationInput,\n CompleteConnectorAuthorizationResult,\n ConnectorConnectionCommandContext,\n ConnectorConnectionProcess,\n ConnectorConnectionRunView,\n ConnectorConnectionView,\n RevokeConnectorAuthorizationResult,\n SelectConnectorAccountInput,\n SelectConnectorConnectionRunAccountInput,\n StartConnectorAuthorizationInput,\n StartConnectorAuthorizationResult,\n StartConnectorConnectionRunInput,\n StartConnectorConnectionRunResult,\n} from \"./contracts\"\n\n/** Internal connector-connection lifecycle API bound to one authenticated request execution. */\nexport interface ConnectorConnectionsRuntime {\n listConnections(connectorId: string): Promise<readonly ConnectorConnectionView[]>\n startConnectionRun(\n connectorId: string,\n input: StartConnectorConnectionRunInput\n ): Promise<StartConnectorConnectionRunResult>\n addConnection(\n connectorId: string,\n input: AddConnectorConnectionInput\n ): Promise<ConnectorConnectionRunView>\n listPendingConnectionRuns(connectorId: string): Promise<readonly ConnectorConnectionRunView[]>\n getConnectionRun(connectorId: string, runId: string): Promise<ConnectorConnectionRunView | null>\n selectConnectionRunAccount(\n connectorId: string,\n input: SelectConnectorConnectionRunAccountInput\n ): Promise<ConnectorConnectionRunView>\n startReauthorization(\n connectorId: string,\n connectionId: string,\n input: Pick<StartConnectorConnectionRunInput, \"redirectUri\" | \"returnTo\">\n ): Promise<StartConnectorConnectionRunResult>\n revokeConnection(\n connectorId: string,\n connectionId: string\n ): Promise<RevokeConnectorAuthorizationResult>\n startAuthorization(\n connectorId: string,\n input: StartConnectorAuthorizationInput\n ): Promise<StartConnectorAuthorizationResult>\n completeAuthorization(\n connectorId: string,\n input: CompleteConnectorAuthorizationInput\n ): Promise<CompleteConnectorAuthorizationResult>\n selectAccount(\n connectorId: string,\n input: SelectConnectorAccountInput\n ): Promise<ConnectorConnectionView>\n disconnect(connectorId: string, connectionId: string): Promise<ConnectorConnectionView | null>\n revokeAuthorization(\n connectorId: string,\n authorizationId: string\n ): Promise<RevokeConnectorAuthorizationResult>\n}\n\nexport function createConnectorConnectionsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n process: ConnectorConnectionProcess\n): ConnectorConnectionsRuntime {\n const contextFor = (connectorId: string) => commandContext(runtime, execution, connectorId)\n\n const connections: ConnectorConnectionsRuntime = {\n listConnections: (connectorId) => process.listConnections(contextFor(connectorId), connectorId),\n startConnectionRun: (connectorId, input) =>\n process.startConnectionRun(contextFor(connectorId), connectorId, input),\n addConnection: (connectorId, input) =>\n process.addConnection(contextFor(connectorId), connectorId, input),\n listPendingConnectionRuns: (connectorId) =>\n process.listPendingConnectionRuns(contextFor(connectorId), connectorId),\n getConnectionRun: (connectorId, runId) =>\n process.getConnectionRun(contextFor(connectorId), connectorId, runId),\n selectConnectionRunAccount: (connectorId, input) =>\n process.selectConnectionRunAccount(contextFor(connectorId), connectorId, input),\n startReauthorization: (connectorId, connectionId, input) =>\n process.startReauthorization(contextFor(connectorId), connectorId, connectionId, input),\n revokeConnection: (connectorId, connectionId) =>\n process.revokeConnection(contextFor(connectorId), connectorId, connectionId),\n startAuthorization: (connectorId, input) =>\n process.startAuthorization(contextFor(connectorId), connectorId, input),\n completeAuthorization: (connectorId, input) =>\n process.completeAuthorization(contextFor(connectorId), connectorId, input),\n selectAccount: (connectorId, input) =>\n process.selectAccount(contextFor(connectorId), connectorId, input),\n disconnect: (connectorId, connectionId) =>\n process.disconnect(contextFor(connectorId), connectorId, connectionId),\n revokeAuthorization: (connectorId, authorizationId) =>\n process.revokeAuthorization(contextFor(connectorId), connectorId, authorizationId),\n }\n return Object.freeze(connections)\n}\n\nfunction commandContext(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n connectorId: string\n): ConnectorConnectionCommandContext {\n const resolved = resolveExecutionScopeAuthorization(runtime.projectId, {\n execution,\n authorization: runtime.runtimeAuthorization,\n })\n\n if (\n execution.executor.type !== \"request\" ||\n resolved.type !== \"principal\" ||\n resolved.ref.type !== \"principal\"\n ) {\n throw new AuthorizationError(\n `manage:connector:${connectorId}`,\n \"[Sixb] Connector connections can only be managed by an authenticated request.\"\n )\n }\n if (!resolved.ref.credential) {\n throw new AuthorizationError(\n `manage:connector:${connectorId}`,\n \"[Sixb] Connector connection management requires a session or access token.\"\n )\n }\n\n assertCanManageConnector(runtime, connectorId)\n return Object.freeze({\n execution: Object.freeze(\n executionRecordInputFromRuntime({\n execution,\n runtimeAuthorization: runtime.runtimeAuthorization,\n })\n ),\n })\n}\n",
|
|
49
|
-
"import {\n assertAuthorized,\n assertPrivileged,\n assertRuntimeAuthorizationBound,\n isRuntimeAllowed,\n} from \"../authorization\"\nimport type { BlobStorage } from \"../blob-storage\"\nimport type { ExecutionContext } from \"../execution\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport type { DatasetMergeCommitResult } from \"../lake-storage/merge\"\nimport { getDatasetPrimaryKeyColumns } from \"../lake-storage/merge-validation\"\nimport type { DatasetRow, DatasetVersion, LakeStorage } from \"../lake-storage/types\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport { missingClearanceRedactions } from \"../security/redactions\"\nimport type { Redactions } from \"../security/types\"\nimport type { MergeChange } from \"./changes\"\nimport type { DatasetDefinition } from \"./types\"\nimport { writeDataset } from \"./write\"\n\nexport interface DatasetIngestInput {\n readonly changes:\n | Iterable<MergeChange<DatasetRow, DatasetRow>>\n | AsyncIterable<MergeChange<DatasetRow, DatasetRow>>\n readonly signal?: AbortSignal\n}\n\n/** Source commit result; downstream pipelines and projections run asynchronously. */\nexport type DatasetIngestResult = DatasetMergeCommitResult & { readonly rowsRead: number }\n\nexport interface DatasetReadRowsInput {\n /** Defaults to the latest version. */\n readonly versionId?: string\n /** Defaults to every column of the version, in schema order. */\n readonly columns?: readonly string[]\n readonly limit?: number\n readonly offset?: number\n readonly signal?: AbortSignal\n}\n\nexport interface DatasetRows {\n readonly version: DatasetVersion\n /** Columns each row holds. Redacted columns are left out. */\n readonly columns: readonly string[]\n /**\n * Every column of the
|
|
50
|
-
"import { assertPrivileged, canViewEvent } from \"../authorization\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport { redactDomainEvent
|
|
43
|
+
"import {\n assertAuthorized,\n assertPrivileged,\n assertRuntimeAuthorizationBound,\n isRuntimeAllowed,\n} from \"../authorization\"\nimport type { BlobStorage } from \"../blob-storage\"\nimport type { ExecutionContext } from \"../execution\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport type { DatasetMergeCommitResult } from \"../lake-storage/merge\"\nimport { getDatasetPrimaryKeyColumns } from \"../lake-storage/merge-validation\"\nimport type { DatasetRow, DatasetVersion, LakeStorage } from \"../lake-storage/types\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type { DatasetVersionMarkings } from \"../security/dataset-version-markings\"\nimport { missingClearanceRedactions } from \"../security/redactions\"\nimport type { Redactions } from \"../security/types\"\nimport type { MergeChange } from \"./changes\"\nimport type { DatasetDefinition } from \"./types\"\nimport { writeDataset } from \"./write\"\n\nexport interface DatasetIngestInput {\n readonly changes:\n | Iterable<MergeChange<DatasetRow, DatasetRow>>\n | AsyncIterable<MergeChange<DatasetRow, DatasetRow>>\n readonly signal?: AbortSignal\n}\n\n/** Source commit result; downstream pipelines and projections run asynchronously. */\nexport type DatasetIngestResult = DatasetMergeCommitResult & { readonly rowsRead: number }\n\nexport interface DatasetReadRowsInput {\n /** Defaults to the latest version. */\n readonly versionId?: string\n /** Defaults to every column of the version, in schema order. */\n readonly columns?: readonly string[]\n readonly limit?: number\n readonly offset?: number\n readonly signal?: AbortSignal\n}\n\nexport interface DatasetRows {\n readonly version: DatasetVersion\n /** Columns each row holds. Redacted columns are left out. */\n readonly columns: readonly string[]\n /**\n * Every column of the version the reader cannot read, whether or not it was requested. Absent\n * when the reader can read every column.\n */\n readonly redactions?: Redactions\n readonly rows: AsyncIterable<DatasetRow>\n}\n\nexport interface DatasetsRuntime {\n list(): readonly DatasetDefinition[]\n getById(datasetId: string): DatasetDefinition | null\n /**\n * Read rows of one version. Returns null when the dataset has no version yet or the requested\n * version does not exist.\n */\n readRows(dataset: DatasetDefinition, input?: DatasetReadRowsInput): Promise<DatasetRows | null>\n ingest(dataset: DatasetDefinition, input: DatasetIngestInput): Promise<DatasetIngestResult>\n}\n\nexport function createDatasetsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n source: Pick<DatasetsRuntime, \"list\" | \"getById\">,\n lakeStorage: LakeStorage,\n blobStorage: Pick<BlobStorage, \"stat\">,\n versionMarkings: DatasetVersionMarkings\n): DatasetsRuntime {\n const authority = resolveRuntimeAuthorizationForProject(runtime)\n const allowed = (datasetId: string) =>\n isRuntimeAllowed(runtime, { kind: \"dataset.view\", datasetId })\n\n return {\n list: () =>\n authority.type === \"denied\" || authority.type === \"delegated\"\n ? []\n : source.list().filter((dataset) => allowed(dataset.id)),\n getById: (datasetId) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const dataset = source.getById(datasetId)\n return dataset && allowed(datasetId) ? dataset : null\n },\n async readRows(dataset, input = {}) {\n assertAuthorized(runtime, { kind: \"dataset.view\", datasetId: dataset.id })\n const registered = source.getById(dataset.id)\n if (!registered) throw new Error(`[Sixb] Dataset '${dataset.id}' is not registered.`)\n const version =\n input.versionId === undefined\n ? await lakeStorage.getLatestVersion(registered.id)\n : await lakeStorage.getVersion(registered.id, input.versionId)\n if (!version) return null\n\n const redacted = redactedColumns(\n version,\n versionMarkings,\n assertRuntimeAuthorizationBound(runtime)\n )\n const selected = selectColumns(version, input.columns)\n const columns = selected.filter((column) => !redacted.has(column))\n const read = (readColumns: readonly string[] | undefined) =>\n lakeStorage.readRows({\n datasetId: registered.id,\n versionId: version.versionId,\n columns: readColumns,\n limit: input.limit,\n offset: input.offset,\n signal: input.signal,\n })\n\n // Redacted columns are not read. A provider reads every column when given none, so a page\n // made only of redacted columns reads one of them to count its rows and returns them empty.\n const rows =\n columns.length === selected.length\n ? read(input.columns)\n : columns.length > 0\n ? read(columns)\n : emptyRows(read(selected.slice(0, 1)))\n return {\n version,\n columns,\n ...(redacted.size > 0 ? { redactions: missingClearanceRedactions(redacted) } : {}),\n rows,\n }\n },\n async ingest(dataset, input) {\n assertPrivileged(runtime, \"datasets.ingest\")\n const registered = source.getById(dataset.id)\n if (!registered) throw new Error(`[Sixb] Dataset '${dataset.id}' is not registered.`)\n if (getDatasetPrimaryKeyColumns(registered) === null) {\n throw new Error(`[Sixb] Dataset '${dataset.id}' must define a primaryKey before ingestion.`)\n }\n if (typeof lakeStorage.beginMerge !== \"function\") {\n throw new Error(\"[Sixb] Dataset ingestion requires a lake provider with merge support.\")\n }\n const producer = { kind: \"ingest\" as const, id: execution.id }\n const result = await writeDataset({\n lakeStorage,\n blobStorage,\n dataset: registered,\n mode: \"merge\",\n signal: input.signal ?? new AbortController().signal,\n producer,\n readValues: async () =>\n (async function* () {\n for await (const value of input.changes) yield { value }\n })(),\n })\n if (result.outcome === \"created\") {\n await runtime.events.emit(\n {\n events: [\n {\n type: \"dataset.version.committed\",\n payload: {\n datasetId: registered.id,\n versionId: result.version.versionId,\n createdAt: result.version.createdAt.toISOString(),\n producer,\n },\n },\n ],\n correlationId: execution.correlationId,\n },\n { source: \"SixbDatasets\" }\n )\n }\n return result\n },\n }\n}\n\n/** Requested columns, or every column of the version. Like the lake, an empty list means all. */\nfunction selectColumns(version: DatasetVersion, requested: readonly string[] | undefined) {\n const available = version.schema.columns.map((column) => column.name)\n if (requested === undefined || requested.length === 0) return available\n for (const column of requested) {\n if (!available.includes(column)) {\n throw new Error(\n `[Sixb] Dataset '${version.datasetId}' does not have column '${column}' at version '${version.versionId}'.`\n )\n }\n }\n return [...requested]\n}\n\n/**\n * Columns of the version the reader cannot read. Trusted code reads every column, a principal reads\n * what its roles clear, and any other authority is cleared for nothing.\n *\n * No version carries a marking the project does not declare on a column, so a reader cleared for\n * every declared marking (all readers, when none is declared) reads every column without\n * classifying the version.\n */\nfunction redactedColumns(\n version: DatasetVersion,\n versionMarkings: DatasetVersionMarkings,\n authority: ReturnType<typeof assertRuntimeAuthorizationBound>\n): ReadonlySet<string> {\n if (authority.type === \"unrestricted\") return new Set()\n const clearances =\n authority.type === \"principal\" ? (authority.context.clearances ?? new Set()) : new Set()\n if ([...versionMarkings.everyMarking()].every((id) => clearances.has(id))) return new Set()\n\n const { columns } = versionMarkings.classify(version)\n return new Set(\n [...columns]\n .filter(([, columnMarkings]) => [...columnMarkings].some((id) => !clearances.has(id)))\n .map(([column]) => column)\n )\n}\n\nasync function* emptyRows(rows: AsyncIterable<DatasetRow>): AsyncIterable<DatasetRow> {\n for await (const _row of rows) yield {}\n}\n",
|
|
44
|
+
"import { assertPrivileged, canViewEvent } from \"../authorization\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport {\n type AuthorizedObjectReader,\n readerClearance,\n readerEventClearance,\n} from \"../execution/authorized-object-reader\"\nimport type { EventSources } from \"../execution/object-reader-clearance\"\nimport { redactDomainEvent } from \"../objects/clearance-redaction\"\nimport type { PropertyClearance } from \"../objects/property-clearance\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type {\n EventsAppendInput,\n EventsEmitOptions,\n EventsReadInput,\n EventsSubscribeInput,\n} from \"./service\"\nimport type { StoredDomainEvent } from \"./types\"\n\nexport interface EventsRuntime {\n /**\n * The events this execution may read, in order: hidden events are dropped, the others redacted.\n * Markings apply as they are now, with those of the versions an object event's values came from:\n * the version a projection's event applied, and every marking a column declares for projected\n * values that came from earlier versions.\n */\n visible(events: readonly StoredDomainEvent[]): Promise<readonly StoredDomainEvent[]>\n append(input: EventsAppendInput): Promise<readonly StoredDomainEvent[]>\n emit(input: EventsAppendInput, options: EventsEmitOptions): Promise<void>\n read(input?: EventsReadInput): Promise<readonly StoredDomainEvent[]>\n latestCursor(): Promise<string | undefined>\n /**\n * Deliver the events this execution may read as they are appended. A batch whose markings cannot\n * be enforced, because the versions projections applied cannot be read, is dropped with a\n * warning: read it again with `read({ afterCursor })`.\n */\n subscribe(\n input: EventsSubscribeInput,\n handler: (events: readonly StoredDomainEvent[]) => unknown\n ): Promise<() => void>\n}\n\nexport function createEventsRuntime(runtime: SixbRuntimeContext): EventsRuntime {\n const authority = resolveRuntimeAuthorizationForProject(runtime)\n const visible = async (\n events: readonly StoredDomainEvent[]\n ): Promise<readonly StoredDomainEvent[]> => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return []\n case \"unrestricted\":\n return events\n case \"principal\": {\n const viewable = events.filter((event) => canViewEvent(authority.context, event))\n if (viewable.length === 0) return viewable\n\n const clearance = await readerClearance(runtime.objectReader)\n const clearanceFor = await eventClearances(runtime.objectReader, viewable, clearance)\n\n return viewable.flatMap((event) => {\n if (clearance && readsUnreadable(event, clearance)) return []\n\n const redacting = clearanceFor(event)\n return [redacting ? redactDomainEvent(event, redacting) : event]\n })\n }\n }\n }\n\n return {\n visible,\n append: (input) => {\n assertPrivileged(runtime, \"events.append\")\n return runtime.events.append(input)\n },\n emit: (input, options) => {\n assertPrivileged(runtime, \"events.emit\")\n return runtime.events.emit(input, options)\n },\n read: async (input) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return []\n case \"principal\":\n case \"unrestricted\":\n break\n }\n return visible(await runtime.events.read(input))\n },\n latestCursor: () => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return Promise.resolve(undefined)\n case \"principal\":\n case \"unrestricted\":\n return runtime.events.latestCursor()\n }\n },\n subscribe: (input, handler) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return Promise.resolve(() => {})\n case \"principal\":\n case \"unrestricted\":\n break\n }\n return runtime.events.subscribe(input, async (events) => {\n let shown: readonly StoredDomainEvent[]\n try {\n shown = await visible(events)\n } catch (error) {\n // Fail closed. Delivery is live and keeps no progress, and a handler error is not a\n // negative acknowledgement, so the batch is dropped and reported rather than retried.\n const message = error instanceof Error ? error.message : String(error)\n console.warn(\n `[Sixb] Dropped ${events.length} event(s) from cursor '${events[0]?.cursor}' of a subscription, whose markings could not be enforced: ${message}`\n )\n return\n }\n\n if (shown.length > 0) return handler(shown)\n })\n },\n }\n}\n\n/**\n * The clearance each event is redacted with, resolved once per kind of event for the whole batch.\n * An event that holds only values the current markings describe uses the reader's clearance.\n */\nasync function eventClearances(\n reader: AuthorizedObjectReader,\n events: readonly StoredDomainEvent[],\n clearance: PropertyClearance | undefined\n): Promise<(event: StoredDomainEvent) => PropertyClearance | undefined> {\n const kinds = new Map<string, EventSources>()\n for (const event of events) {\n const kind = eventSources(event)\n if (kind) kinds.set(kind.key, kind.sources)\n }\n\n const resolved = await Promise.all(\n [...kinds].map(\n async ([key, sources]) => [key, await readerEventClearance(reader, sources)] as const\n )\n )\n const byKind = new Map(resolved)\n\n return (event) => {\n const kind = eventSources(event)\n return kind ? byKind.get(kind.key) : clearance\n }\n}\n\n/**\n * Where an object event's values came from, when the current markings do not describe them all.\n *\n * - A projection's event holds the values of the version it applied.\n * - An update or a deletion also holds the values it replaced. An action's or a direct write's\n * record of an object holds the values projections had applied then. Both came from versions\n * applied before the event, which it does not name: they read like a version that cannot be read.\n * - Only an object created by an action or a direct write holds nothing but its own values.\n */\nfunction eventSources(\n event: StoredDomainEvent\n): { readonly key: string; readonly sources: EventSources } | undefined {\n if (event.topic !== \"objects\") return undefined\n\n const objectTypeId = event.payload.objectTypeId\n const earlier = event.type !== \"object.created\"\n\n if (event.origin?.kind !== \"projection\") {\n if (!earlier) return undefined\n return { key: JSON.stringify([objectTypeId]), sources: { objectTypeId, earlier } }\n }\n\n const { projectionId, datasetId, datasetVersionId } = event.origin\n const origin = { projectionId, datasetId, datasetVersionId, objectTypeId }\n return {\n key: JSON.stringify([objectTypeId, projectionId, datasetId, datasetVersionId, earlier]),\n sources: { objectTypeId, origin, earlier },\n }\n}\n\n/**\n * Whether the event is about an object type or a link the reader cannot read: it reveals ids and\n * keys, so it is not delivered, as for a type the reader has no view grant for.\n */\nfunction readsUnreadable(event: StoredDomainEvent, clearance: PropertyClearance): boolean {\n switch (event.topic) {\n case \"objects\":\n case \"telemetry\":\n return clearance.unreadableType(event.payload.objectTypeId) !== undefined\n case \"links\":\n return (\n clearance.unreadableType(event.payload.sourceTypeId) !== undefined ||\n clearance.unreadableType(event.payload.targetTypeId) !== undefined ||\n clearance.unreadableLink(event.payload.sourceTypeId, event.payload.linkId) !== undefined\n )\n default:\n return false\n }\n}\n",
|
|
51
45
|
"import { assertAuthorized } from \"../authorization\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type { LoggingService, LogsPage, LogsReadInput, LogsTailInput } from \"./service\"\n\nexport interface LogsRuntime {\n assertObservable(): void\n read(input?: LogsReadInput): Promise<LogsPage>\n tail(input?: LogsTailInput): Promise<LogsPage>\n}\n\nexport function createLogsRuntime(\n runtime: SixbRuntimeContext,\n source: LoggingService\n): LogsRuntime {\n const assertObservable = () => assertAuthorized(runtime, { kind: \"logs.observe\" })\n\n return {\n assertObservable,\n read: (input) => {\n assertObservable()\n return source.read(input)\n },\n tail: (input) => {\n assertObservable()\n return source.tail(input)\n },\n }\n}\n",
|
|
52
46
|
"import { randomUUID } from \"node:crypto\"\nimport {\n assertJsonObject,\n assertJsonValue,\n isJsonValue,\n isPlainRecord,\n type JsonValue,\n} from \"../json\"\nimport { ModelProviderError, ModelStreamError, StructuredOutputError } from \"../models/errors\"\nimport type {\n LanguageModelStreamEvent,\n ModelCallEndEvent,\n ModelFinishReason,\n ModelStep,\n ModelUiChunk,\n ModelUsage,\n} from \"../models/events\"\nimport type {\n LanguageModel,\n ModelReasoning,\n ModelToolSpecification,\n} from \"../models/language-model\"\nimport type {\n ModelAssistantPart,\n ModelMessage,\n ModelProviderStatePart,\n ModelTextPart,\n ModelToolCallPart,\n ModelToolOutput,\n ModelToolResultPart,\n ProviderData,\n} from \"../models/messages\"\nimport {\n estimateModelCall,\n type ModelCallCost,\n type ModelReportedCost,\n rateModelCall,\n} from \"../models/pricing\"\nimport type { ModelOutput, ModelTool } from \"../models/tools\"\n\nconst MAX_PROVIDER_DATA_BYTES = 256 * 1024\n\ninterface ModelLoopOptions {\n readonly model: LanguageModel\n readonly messages: readonly ModelMessage[]\n readonly tools?: readonly ModelTool[]\n readonly reasoning?: ModelReasoning\n readonly maxOutputTokens?: number\n readonly caching?: \"auto\" | \"off\"\n readonly maxSteps: number\n /** Direct generation cannot execute or synthesize local tool results. */\n readonly rejectLocalToolCalls?: boolean\n readonly signal: AbortSignal\n /** Reserve the final provider call for a tool-free synthesis response. */\n readonly finalStepInstruction?: string\n readonly prepareStep?: (\n input: PrepareModelStepInput\n ) => PrepareModelStepResult | undefined | Promise<PrepareModelStepResult | undefined>\n readonly onEvent?: (event: ModelUiChunk) => void | Promise<void>\n readonly onModelCallEnd?: (event: ModelCallEndEvent) => void | Promise<void>\n readonly onStepEnd?: (step: ModelStep) => void | Promise<void>\n readonly generateCallId?: () => string\n}\n\n/** Non-text output requires a validator; unvalidated text can only inhabit types accepting string. */\nexport type RunModelLoopInput<TOutput = string> = ModelLoopOptions &\n (\n | { readonly output: ModelOutput<TOutput> }\n | (string extends TOutput ? { readonly output?: undefined } : never)\n )\n\nexport interface PrepareModelStepInput {\n readonly stepIndex: number\n readonly messages: readonly ModelMessage[]\n readonly model: LanguageModel\n readonly signal: AbortSignal\n}\n\nexport interface PrepareModelStepResult {\n /** Replacement history retained for this request and subsequent steps. */\n readonly messages?: readonly ModelMessage[]\n}\n\nexport type ModelLoopResult<TOutput = string> =\n | {\n readonly status: \"completed\"\n readonly output: TOutput\n readonly steps: readonly ModelStep[]\n readonly finishReason: ModelFinishReason\n }\n | {\n readonly status: \"aborted\"\n readonly steps: readonly ModelStep[]\n readonly partialContent: readonly ModelAssistantPart[]\n }\n\ninterface CompletedResponse {\n readonly providerIds?: import(\"../models/events\").ModelProviderIds\n readonly content: readonly ModelAssistantPart[]\n readonly toolCalls: readonly ParsedToolCall[]\n readonly finishReason: ModelFinishReason\n readonly rawFinishReason?: string\n readonly usage: ModelUsage\n readonly responseId?: string\n readonly responseModelId?: string\n readonly projectionError?: Error\n readonly reportedCost?: ModelReportedCost\n readonly route?: import(\"../models/events\").ModelRoute\n}\n\ninterface ParsedToolCall {\n readonly part: ModelToolCallPart\n readonly inputError?: Error\n}\n\n/**\n * Run a provider-neutral, streaming model/tool loop.\n *\n * One step is exactly one provider call. Lifecycle and stream callbacks are awaited so the caller\n * controls backpressure and can fail closed before another billable call starts.\n * Completed steps and partial content contain validated JSON payloads and normalized provider\n * metadata. Trace adapters may project these results directly; storage owns write validation.\n */\nexport function runModelLoop<TOutput = string>(\n input: RunModelLoopInput<TOutput>\n): Promise<ModelLoopResult<TOutput>>\nexport async function runModelLoop(\n input: RunModelLoopInput<unknown>\n): Promise<ModelLoopResult<unknown>> {\n assertLoopInput(input)\n const tools = indexTools(input.tools ?? [])\n const toolSpecifications = [...tools.values()].map<ModelToolSpecification>((tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: tool.inputSchema,\n }))\n let messages: readonly ModelMessage[] = [...input.messages]\n const steps: ModelStep[] = []\n const generateCallId = input.generateCallId ?? (() => `model_call_${randomUUID()}`)\n const callIds = new Set<string>()\n\n for (let stepIndex = 0; stepIndex < input.maxSteps; stepIndex += 1) {\n if (input.signal.aborted) {\n return { status: \"aborted\", steps, partialContent: [] }\n }\n await input.onEvent?.({ type: \"start-step\" })\n\n let requestMessages: readonly ModelMessage[]\n try {\n const prepared = await input.prepareStep?.({\n stepIndex,\n messages,\n model: input.model,\n signal: input.signal,\n })\n requestMessages = prepared?.messages ?? messages\n } catch (error) {\n if (!input.signal.aborted && !isAbortError(error)) throw error\n return { status: \"aborted\", steps, partialContent: [] }\n }\n if (input.signal.aborted) {\n return { status: \"aborted\", steps, partialContent: [] }\n }\n let requestTools: readonly ModelToolSpecification[] = toolSpecifications\n if (input.finalStepInstruction !== undefined && stepIndex === input.maxSteps - 1) {\n requestMessages = [\n ...requestMessages,\n { role: \"user\", content: [{ type: \"text\", text: input.finalStepInstruction }] },\n ]\n requestTools = []\n }\n\n const callId = generateCallId()\n if (!callId || callIds.has(callId)) {\n throw new ModelStreamError(`[SixbModels] Model call IDs must be nonempty and unique.`)\n }\n callIds.add(callId)\n const accumulator = new StreamAccumulator(input.onEvent)\n let accepted = false\n let cost: ModelCallCost = { status: \"unpriceable\", reason: \"missing-usage\" }\n let terminalStreamError: { readonly error: unknown } | undefined\n try {\n const stream = await input.model.stream({\n callId,\n messages: requestMessages,\n tools: requestTools,\n ...(input.reasoning === undefined ? {} : { reasoning: input.reasoning }),\n ...(input.maxOutputTokens === undefined ? {} : { maxOutputTokens: input.maxOutputTokens }),\n ...(input.caching === undefined ? {} : { caching: input.caching }),\n ...(input.output === undefined\n ? {}\n : {\n responseFormat: {\n type: \"json\" as const,\n name: input.output.name,\n ...(input.output.description === undefined\n ? {}\n : { description: input.output.description }),\n schema: input.output.schema,\n },\n }),\n signal: input.signal,\n })\n accepted = true\n for await (const event of stream.events) {\n await accumulator.accept(event)\n }\n } catch (error) {\n const aborted = input.signal.aborted || isAbortError(error)\n if (accumulator.isFinished()) {\n if (!aborted) terminalStreamError = { error }\n } else if (!aborted) {\n throw error\n } else {\n return {\n status: \"aborted\",\n steps,\n partialContent: accumulator.partialContent(),\n }\n }\n } finally {\n // Once a stream is accepted, cancellation or protocol failure cannot erase the call.\n // Only a finish event establishes final meters; interrupted calls remain explicitly unknown.\n if (accepted) {\n const facts = accumulator.accounting()\n const estimate = accumulator.isFinished() ? estimateModelCall(input.model, facts) : cost\n cost = facts.reportedCost\n ? rateModelCall({ usage: facts.usage, reported: facts.reportedCost })\n : estimate\n await input.onModelCallEnd?.({\n callId,\n providerId: input.model.providerId,\n modelId: input.model.modelId,\n responseId: facts.responseId ?? `${callId}:response`,\n providerIds: facts.providerIds,\n responseModelId: facts.responseModelId,\n usage: facts.usage,\n cost,\n ...(facts.reportedCost === undefined ? {} : { estimate }),\n ...(input.reasoning === undefined ? {} : { requestedReasoning: input.reasoning }),\n ...(facts.route === undefined ? {} : { route: facts.route }),\n })\n }\n }\n\n if (input.signal.aborted && !accumulator.isFinished()) {\n return { status: \"aborted\", steps, partialContent: accumulator.partialContent() }\n }\n const response = accumulator.complete()\n const responseId = response.responseId ?? `${callId}:response`\n if (terminalStreamError) throw terminalStreamError.error\n if (response.projectionError) throw response.projectionError\n if (input.signal.aborted) {\n return { status: \"aborted\", steps, partialContent: response.content }\n }\n\n const localCalls = response.toolCalls.filter((call) => call.part.providerExecuted !== true)\n // Closed tool arguments are not proof of a successful response. In particular,\n // providers can close valid JSON before reporting truncation or content filtering.\n if (localCalls.length > 0 && ![\"stop\", \"tool-calls\", \"pause\"].includes(response.finishReason)) {\n throw new ModelStreamError(\n `[SixbModels] Cannot execute local tools after '${response.finishReason}'.`\n )\n }\n if (\n input.rejectLocalToolCalls &&\n (localCalls.length > 0 || response.finishReason === \"tool-calls\")\n ) {\n throw new ModelStreamError(\"[SixbModels] Direct generation cannot continue local tool calls.\")\n }\n if (response.finishReason === \"pause\" && localCalls.length === 0) {\n const step = modelStep(response, responseId, response.content, cost)\n steps.push(step)\n await input.onStepEnd?.(step)\n messages = [...requestMessages, { role: \"assistant\", content: response.content }]\n if (stepIndex + 1 === input.maxSteps) {\n throw new ModelStreamError(\n \"[SixbModels] Model reached the step limit while a provider continuation was pending.\"\n )\n }\n continue\n }\n if (localCalls.length === 0) {\n const step = modelStep(response, responseId, response.content, cost)\n steps.push(step)\n await input.onStepEnd?.(step)\n if (input.output) {\n const text = responseText(response)\n if (response.finishReason !== \"stop\") {\n throw new StructuredOutputError(\n `[SixbModels] Structured output did not complete successfully (${response.finishReason}).`,\n structuredOutputErrorContext(input, response, responseId, cost, text)\n )\n }\n let raw: unknown\n try {\n raw = JSON.parse(text)\n } catch (error) {\n throw new StructuredOutputError(\"[SixbModels] Model did not produce valid JSON output.\", {\n cause: error,\n ...structuredOutputErrorContext(input, response, responseId, cost, text),\n })\n }\n try {\n return {\n status: \"completed\",\n output: input.output.validate(raw),\n steps,\n finishReason: response.finishReason,\n }\n } catch (error) {\n throw new StructuredOutputError(\"[SixbModels] Structured output validation failed.\", {\n cause: error,\n ...structuredOutputErrorContext(input, response, responseId, cost, text),\n })\n }\n }\n const output = responseText(response)\n return { status: \"completed\", output, steps, finishReason: response.finishReason }\n }\n\n const toolResults = await Promise.all(\n localCalls.map((call) => executeToolCall(call, tools, callId, input.signal, input.onEvent))\n )\n const step = modelStep(response, responseId, [...response.content, ...toolResults], cost)\n steps.push(step)\n await input.onStepEnd?.(step)\n\n if (input.signal.aborted) {\n return {\n status: \"aborted\",\n steps,\n partialContent: [],\n }\n }\n\n const assistantContent = response.content.filter(\n (part) => part.type !== \"tool-result\" || part.providerExecuted === true\n )\n messages = [\n ...requestMessages,\n { role: \"assistant\", content: assistantContent },\n { role: \"tool\", content: toolResults },\n ]\n\n if (stepIndex + 1 === input.maxSteps) {\n if (input.output) {\n throw new StructuredOutputError(\n \"[SixbModels] Model reached the step limit without structured output.\",\n structuredOutputErrorContext(input, response, responseId, cost, responseText(response))\n )\n }\n const output = responseText(response)\n return { status: \"completed\", output, steps, finishReason: response.finishReason }\n }\n }\n\n throw new ModelStreamError(\"[SixbModels] Model loop exited without a terminal result.\")\n}\n\nfunction assertLoopInput(input: RunModelLoopInput<unknown>): void {\n if (\n input.maxOutputTokens !== undefined &&\n (!Number.isSafeInteger(input.maxOutputTokens) || input.maxOutputTokens <= 0)\n ) {\n throw new TypeError(\"[SixbModels] maxOutputTokens must be a positive safe integer.\")\n }\n if (!Number.isInteger(input.maxSteps) || input.maxSteps <= 0) {\n throw new TypeError(\"[SixbModels] maxSteps must be a positive integer.\")\n }\n if (!input.model.providerId.trim() || !input.model.modelId.trim()) {\n throw new TypeError(\"[SixbModels] Model providerId and modelId must not be empty.\")\n }\n if (\n input.model.definition.providerId !== input.model.providerId ||\n input.model.definition.modelId !== input.model.modelId\n ) {\n throw new TypeError(\n `[SixbModels] Model definition for '${input.model.providerId}/${input.model.modelId}' has a different identity.`\n )\n }\n if (input.output) {\n if (!input.output.name.trim()) {\n throw new TypeError(\"[SixbModels] Structured output names must not be empty.\")\n }\n assertJsonObject(input.output.schema, \"structured output schema\")\n }\n}\n\nfunction indexTools(tools: readonly ModelTool[]): ReadonlyMap<string, ModelTool> {\n const result = new Map<string, ModelTool>()\n for (const tool of tools) {\n if (!tool.name.trim()) throw new TypeError(\"[SixbModels] Tool names must not be empty.\")\n if (result.has(tool.name)) {\n throw new TypeError(`[SixbModels] Duplicate tool name '${tool.name}'.`)\n }\n assertJsonObject(tool.inputSchema, `tool '${tool.name}' input schema`)\n result.set(tool.name, tool)\n }\n return result\n}\n\nfunction responseText(response: CompletedResponse): string {\n return response.content\n .filter((part): part is ModelTextPart => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\")\n}\n\nfunction structuredOutputErrorContext(\n input: RunModelLoopInput<unknown>,\n response: CompletedResponse,\n responseId: string,\n cost: ModelCallCost,\n text: string\n) {\n return {\n text,\n providerId: input.model.providerId,\n modelId: input.model.modelId,\n responseId,\n ...(response.responseModelId === undefined\n ? {}\n : { responseModelId: response.responseModelId }),\n finishReason: response.finishReason,\n usage: response.usage,\n cost,\n }\n}\n\nfunction modelStep(\n response: CompletedResponse,\n responseId: string,\n content: readonly ModelAssistantPart[],\n cost: import(\"../models/pricing\").ModelCallCost\n): ModelStep {\n return {\n content,\n finishReason: response.finishReason,\n ...(response.rawFinishReason === undefined\n ? {}\n : { rawFinishReason: response.rawFinishReason }),\n usage: response.usage,\n responseId,\n ...(response.responseModelId === undefined\n ? {}\n : { responseModelId: response.responseModelId }),\n cost,\n ...(response.route === undefined ? {} : { route: response.route }),\n }\n}\n\nasync function executeToolCall(\n call: ParsedToolCall,\n tools: ReadonlyMap<string, ModelTool>,\n callId: string,\n signal: AbortSignal,\n onEvent: RunModelLoopInput[\"onEvent\"]\n): Promise<ModelToolResultPart> {\n const { part } = call\n if (call.inputError) {\n const errorText = `Tool input is not valid JSON: ${call.inputError.message}`\n await onEvent?.({\n type: \"tool-input-error\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n errorText,\n })\n return toolErrorResult(part, errorText)\n }\n\n const tool = tools.get(part.toolName)\n if (!tool) {\n const errorText = `Tool '${part.toolName}' is not available.`\n await onEvent?.({\n type: \"tool-output-error\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n errorText,\n })\n return toolErrorResult(part, errorText)\n }\n\n let parsed: unknown\n try {\n parsed = tool.parseInput(part.input)\n } catch (error) {\n const errorText = error instanceof Error ? error.message : \"Tool input validation failed.\"\n await onEvent?.({\n type: \"tool-input-error\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n errorText,\n })\n return toolErrorResult(part, errorText)\n }\n\n await onEvent?.({\n type: \"tool-input-available\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n })\n let output: JsonValue\n let modelOutput: ModelToolOutput\n try {\n const context = { signal, callId, toolCallId: part.toolCallId }\n output = await tool.execute(parsed, context)\n assertJsonValue(output, `tool '${part.toolName}' output`)\n modelOutput = tool.toModelOutput\n ? await tool.toModelOutput(output, context)\n : modelToolOutput(output)\n validateModelToolOutput(modelOutput, part.toolName)\n } catch (error) {\n const errorText = tool.errorText(error)\n await onEvent?.({\n type: \"tool-output-error\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n errorText,\n })\n return toolErrorResult(part, errorText)\n }\n // Publication failures belong to the caller, not the tool's recoverable error channel.\n await onEvent?.({\n type: \"tool-output-available\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output,\n })\n return {\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: modelOutput,\n ...(modelOutputMatchesOriginal(modelOutput, output) ? {} : { originalOutput: output }),\n }\n}\n\nfunction validateModelToolOutput(output: ModelToolOutput, toolName: string): void {\n if (output.type === \"text\" || output.type === \"error-text\") {\n if (typeof output.value !== \"string\") {\n throw new TypeError(`[SixbModels] Tool '${toolName}' model output must contain text.`)\n }\n return\n }\n if (output.type !== \"json\" && output.type !== \"error-json\") {\n throw new TypeError(\n `[SixbModels] Tool '${toolName}' returned an unsupported model output type.`\n )\n }\n assertJsonValue(output.value, `tool '${toolName}' model output`)\n}\n\nfunction modelOutputMatchesOriginal(output: ModelToolOutput, original: JsonValue): boolean {\n if (output.type === \"text\") return typeof original === \"string\" && output.value === original\n if (output.type === \"json\") return output.value === original\n return false\n}\n\nfunction modelToolOutput(value: JsonValue): ModelToolOutput {\n return typeof value === \"string\" ? { type: \"text\", value } : { type: \"json\", value }\n}\n\nfunction toolErrorResult(part: ModelToolCallPart, errorText: string): ModelToolResultPart {\n if (typeof errorText !== \"string\") {\n throw new TypeError(`[SixbModels] Tool '${part.toolName}' error text must be a string.`)\n }\n return {\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: { type: \"error-text\", value: errorText },\n }\n}\n\ntype MutableTextPart = {\n type: \"text\"\n text: string\n providerData?: ProviderData\n complete: boolean\n}\ntype MutableReasoningPart = {\n type: \"reasoning\"\n text: string\n providerData?: ProviderData\n complete: boolean\n}\ntype MutableToolCall = {\n type: \"tool-call\"\n toolCallId: string\n toolName: string\n inputText: string\n providerData?: ProviderData\n providerExecuted?: boolean\n dynamic?: boolean\n complete: boolean\n}\ntype MutablePart =\n | MutableTextPart\n | MutableReasoningPart\n | MutableToolCall\n | ModelToolResultPart\n | ModelProviderStatePart\n\nclass StreamAccumulator {\n private readonly parts: MutablePart[] = []\n private readonly spans = new Map<string, MutableTextPart | MutableReasoningPart>()\n private readonly toolCalls = new Map<string, MutableToolCall>()\n private started = false\n private finished = false\n private finishReason: ModelFinishReason | undefined\n private rawFinishReason: string | undefined\n private usage: ModelUsage = {}\n private responseId: string | undefined\n private providerIds: import(\"../models/events\").ModelProviderIds | undefined\n private responseModelId: string | undefined\n private projectionError: Error | undefined\n private reportedCost: ModelReportedCost | undefined\n private route: import(\"../models/events\").ModelRoute | undefined\n\n constructor(private readonly onEvent: RunModelLoopInput[\"onEvent\"]) {}\n\n isFinished(): boolean {\n return this.finished\n }\n\n async accept(event: LanguageModelStreamEvent): Promise<void> {\n if (this.finished) {\n throw new ModelStreamError(`[SixbModels] Received '${event.type}' after stream finish.`)\n }\n switch (event.type) {\n case \"stream-start\":\n if (this.started) throw new ModelStreamError(\"[SixbModels] Duplicate stream-start event.\")\n this.started = true\n return\n case \"response-metadata\":\n this.requireStarted(event.type)\n this.responseId = event.id ?? this.responseId\n if (event.providerIds) this.providerIds = { ...this.providerIds, ...event.providerIds }\n this.responseModelId = event.modelId ?? this.responseModelId\n return\n case \"text-start\":\n await this.startText(event)\n return\n case \"text-delta\":\n await this.appendText(event, \"text\")\n return\n case \"text-end\":\n await this.endText(event, \"text\")\n return\n case \"reasoning-start\":\n await this.startReasoning(event)\n return\n case \"reasoning-delta\":\n await this.appendText(event, \"reasoning\")\n return\n case \"reasoning-end\":\n await this.endText(event, \"reasoning\")\n return\n case \"tool-input-start\":\n await this.startTool(event)\n return\n case \"tool-input-delta\":\n await this.appendTool(event)\n return\n case \"tool-input-end\":\n this.endTool(event)\n return\n case \"tool-call\":\n await this.completeTool(event)\n return\n case \"tool-result\":\n this.addProviderToolResult(event)\n return\n case \"provider-state\":\n if (typeof event.providerId !== \"string\" || event.providerId.length === 0) {\n this.captureProjectionError(\n new ModelStreamError(\"[SixbModels] Provider state requires a nonempty provider ID.\")\n )\n return\n }\n if (this.captureProviderState(event.data)) {\n this.parts.push({\n type: \"provider-state\",\n providerId: event.providerId,\n data: event.data,\n })\n }\n return\n case \"finish\":\n this.requireStarted(event.type)\n validateUsage(event.usage)\n this.captureProviderData(event.providerData)\n this.finished = true\n this.finishReason = event.finishReason\n this.rawFinishReason = event.rawFinishReason\n this.usage = event.usage\n this.reportedCost = event.reportedCost\n this.route = event.route\n return\n case \"error\":\n throw event.error instanceof Error\n ? event.error\n : new ModelProviderError(\"[SixbModels] Provider stream failed.\", \"unknown\", \"unknown\", {\n cause: event.error,\n })\n }\n }\n\n complete(): CompletedResponse {\n if (!this.started) throw new ModelStreamError(\"[SixbModels] Stream did not start.\")\n if (!this.finished || !this.finishReason) {\n throw new ModelStreamError(\"[SixbModels] Stream ended without a finish event.\")\n }\n for (const part of this.parts) {\n if (\"complete\" in part && !part.complete) {\n throw new ModelStreamError(\n `[SixbModels] Stream finished with incomplete ${part.type} content.`\n )\n }\n }\n const parsed = this.parseParts(false)\n return {\n content: parsed.content,\n toolCalls: parsed.toolCalls,\n finishReason: this.finishReason,\n ...(this.rawFinishReason === undefined ? {} : { rawFinishReason: this.rawFinishReason }),\n ...this.accounting(),\n ...(this.projectionError === undefined ? {} : { projectionError: this.projectionError }),\n }\n }\n\n accounting() {\n return {\n usage: this.usage,\n ...(this.responseId === undefined ? {} : { responseId: this.responseId }),\n ...(this.providerIds === undefined ? {} : { providerIds: this.providerIds }),\n ...(this.responseModelId === undefined ? {} : { responseModelId: this.responseModelId }),\n ...(this.reportedCost === undefined ? {} : { reportedCost: this.reportedCost }),\n ...(this.route === undefined ? {} : { route: this.route }),\n }\n }\n\n partialContent(): readonly ModelAssistantPart[] {\n return this.parseParts(true).content\n }\n\n private parseParts(partial: boolean): {\n readonly content: ModelAssistantPart[]\n readonly toolCalls: ParsedToolCall[]\n } {\n const content: ModelAssistantPart[] = []\n const toolCalls: ParsedToolCall[] = []\n for (const part of this.parts) {\n if (part.type === \"text\") {\n if ((!partial || part.text.length > 0) && (part.complete || partial)) {\n content.push({\n type: \"text\",\n text: part.text,\n ...(part.providerData === undefined ? {} : { providerData: part.providerData }),\n })\n }\n } else if (part.type === \"reasoning\") {\n if (part.complete) {\n content.push({\n type: \"reasoning\",\n text: part.text,\n ...(part.providerData === undefined ? {} : { providerData: part.providerData }),\n })\n }\n } else if (part.type === \"tool-call\") {\n if (!part.complete) continue\n let value: JsonValue = null\n let inputError: Error | undefined\n try {\n const parsed: unknown = JSON.parse(part.inputText)\n if (!isJsonValue(parsed)) throw new TypeError(\"input is not a JSON value\")\n value = parsed\n } catch (error) {\n inputError = error instanceof Error ? error : new Error(String(error))\n }\n const call: ModelToolCallPart = {\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: value,\n ...(part.providerData === undefined ? {} : { providerData: part.providerData }),\n ...(part.providerExecuted === undefined\n ? {}\n : { providerExecuted: part.providerExecuted }),\n ...(part.dynamic === undefined ? {} : { dynamic: part.dynamic }),\n }\n content.push(call)\n toolCalls.push({ part: call, ...(inputError === undefined ? {} : { inputError }) })\n } else {\n content.push(part)\n }\n }\n return { content, toolCalls }\n }\n\n private async startText(\n event: Extract<LanguageModelStreamEvent, { type: \"text-start\" }>\n ): Promise<void> {\n this.requireStarted(event.type)\n this.assertNewSpan(event.id)\n const providerData = this.captureProviderData(event.providerData)\n const part: MutableTextPart = {\n type: \"text\",\n text: \"\",\n complete: false,\n ...(providerData === undefined ? {} : { providerData }),\n }\n this.spans.set(event.id, part)\n this.parts.push(part)\n await this.onEvent?.({ type: \"text-start\", id: event.id })\n }\n\n private async startReasoning(\n event: Extract<LanguageModelStreamEvent, { type: \"reasoning-start\" }>\n ): Promise<void> {\n this.requireStarted(event.type)\n this.assertNewSpan(event.id)\n const providerData = this.captureProviderData(event.providerData)\n const part: MutableReasoningPart = {\n type: \"reasoning\",\n text: \"\",\n complete: false,\n ...(providerData === undefined ? {} : { providerData }),\n }\n this.spans.set(event.id, part)\n this.parts.push(part)\n await this.onEvent?.({ type: \"reasoning-start\", id: event.id })\n }\n\n private async appendText(\n event: Extract<LanguageModelStreamEvent, { type: \"text-delta\" | \"reasoning-delta\" }>,\n expected: \"text\" | \"reasoning\"\n ): Promise<void> {\n const part = this.spans.get(event.id)\n if (!part || part.type !== expected || part.complete) {\n throw new ModelStreamError(\n `[SixbModels] ${event.type} references unopened ${expected} span '${event.id}'.`\n )\n }\n part.text += event.delta\n await this.onEvent?.({ type: event.type, id: event.id, delta: event.delta })\n }\n\n private async endText(\n event: Extract<LanguageModelStreamEvent, { type: \"text-end\" | \"reasoning-end\" }>,\n expected: \"text\" | \"reasoning\"\n ): Promise<void> {\n const part = this.spans.get(event.id)\n if (!part || part.type !== expected || part.complete) {\n throw new ModelStreamError(\n `[SixbModels] ${event.type} references unopened ${expected} span '${event.id}'.`\n )\n }\n part.providerData = mergeProviderData(\n part.providerData,\n this.captureProviderData(event.providerData)\n )\n part.complete = true\n this.spans.delete(event.id)\n await this.onEvent?.({ type: event.type, id: event.id })\n }\n\n private async startTool(\n event: Extract<LanguageModelStreamEvent, { type: \"tool-input-start\" }>\n ): Promise<void> {\n this.requireStarted(event.type)\n if (\n typeof event.id !== \"string\" ||\n !event.id ||\n typeof event.toolName !== \"string\" ||\n !event.toolName\n ) {\n throw new ModelStreamError(\"[SixbModels] Tool calls require nonempty IDs and names.\")\n }\n if (this.toolCalls.has(event.id)) {\n throw new ModelStreamError(`[SixbModels] Duplicate tool call ID '${event.id}'.`)\n }\n const providerData = this.captureProviderData(event.providerData)\n const part: MutableToolCall = {\n type: \"tool-call\",\n toolCallId: event.id,\n toolName: event.toolName,\n inputText: \"\",\n complete: false,\n ...(providerData === undefined ? {} : { providerData }),\n ...(event.providerExecuted === undefined ? {} : { providerExecuted: event.providerExecuted }),\n ...(event.dynamic === undefined ? {} : { dynamic: event.dynamic }),\n }\n this.toolCalls.set(event.id, part)\n this.parts.push(part)\n await this.onEvent?.({\n type: \"tool-input-start\",\n toolCallId: event.id,\n toolName: event.toolName,\n })\n }\n\n private async appendTool(\n event: Extract<LanguageModelStreamEvent, { type: \"tool-input-delta\" }>\n ): Promise<void> {\n const part = this.toolCalls.get(event.id)\n if (!part || part.complete) {\n throw new ModelStreamError(\n `[SixbModels] tool-input-delta references unopened tool call '${event.id}'.`\n )\n }\n part.inputText += event.delta\n await this.onEvent?.({\n type: \"tool-input-delta\",\n toolCallId: event.id,\n toolName: part.toolName,\n inputTextDelta: event.delta,\n })\n }\n\n private endTool(event: Extract<LanguageModelStreamEvent, { type: \"tool-input-end\" }>): void {\n const part = this.toolCalls.get(event.id)\n if (!part || part.complete) {\n throw new ModelStreamError(\n `[SixbModels] tool-input-end references unopened tool call '${event.id}'.`\n )\n }\n part.providerData = mergeProviderData(\n part.providerData,\n this.captureProviderData(event.providerData)\n )\n part.complete = true\n }\n\n private async completeTool(\n event: Extract<LanguageModelStreamEvent, { type: \"tool-call\" }>\n ): Promise<void> {\n await this.startTool({\n type: \"tool-input-start\",\n id: event.toolCallId,\n toolName: event.toolName,\n ...(event.providerData === undefined ? {} : { providerData: event.providerData }),\n ...(event.providerExecuted === undefined ? {} : { providerExecuted: event.providerExecuted }),\n ...(event.dynamic === undefined ? {} : { dynamic: event.dynamic }),\n })\n const part = this.toolCalls.get(event.toolCallId)\n if (!part) throw new ModelStreamError(\"[SixbModels] Failed to index completed tool call.\")\n part.inputText = event.input\n part.complete = true\n }\n\n private addProviderToolResult(\n event: Extract<LanguageModelStreamEvent, { type: \"tool-result\" }>\n ): void {\n if (!this.captureJsonValue(event.output, \"provider tool result\")) return\n const providerData = this.captureProviderData(event.providerData)\n this.parts.push({\n type: \"tool-result\",\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n output: event.isError\n ? { type: \"error-json\", value: event.output }\n : modelToolOutput(event.output),\n providerExecuted: event.providerExecuted ?? true,\n ...(event.dynamic === undefined ? {} : { dynamic: event.dynamic }),\n ...(providerData === undefined ? {} : { providerData }),\n })\n }\n\n private captureProviderData(data: ProviderData | undefined): ProviderData | undefined {\n if (data === undefined) return undefined\n try {\n return normalizeProviderData(data)\n } catch (error) {\n this.captureProjectionError(error)\n return undefined\n }\n }\n\n private captureProviderState(value: unknown): value is JsonValue {\n if (!this.captureJsonValue(value, \"provider state\")) return false\n if (JSON.stringify(value).length > MAX_PROVIDER_DATA_BYTES) {\n this.captureProjectionError(\n new ModelStreamError(\n `[SixbModels] Provider state exceeds the ${MAX_PROVIDER_DATA_BYTES}-byte response limit.`\n )\n )\n return false\n }\n return true\n }\n\n private captureJsonValue(value: unknown, label: string): value is JsonValue {\n try {\n assertJsonValue(value, label)\n return true\n } catch (error) {\n this.captureProjectionError(error)\n return false\n }\n }\n\n private captureProjectionError(error: unknown): void {\n this.projectionError ??= error instanceof Error ? error : new Error(String(error))\n }\n\n private requireStarted(type: string): void {\n if (!this.started) {\n throw new ModelStreamError(`[SixbModels] Received '${type}' before stream-start.`)\n }\n }\n\n private assertNewSpan(id: string): void {\n if (!id) throw new ModelStreamError(\"[SixbModels] Content span IDs must not be empty.\")\n if (this.spans.has(id)) {\n throw new ModelStreamError(`[SixbModels] Duplicate open content span '${id}'.`)\n }\n }\n}\n\nfunction validateUsage(usage: ModelUsage): void {\n for (const [key, value] of Object.entries(usage)) {\n if (key === \"raw\") {\n if (value !== undefined) assertJsonValue(value, \"raw model usage\")\n continue\n }\n if (value !== undefined && (!Number.isSafeInteger(value) || value < 0)) {\n throw new ModelStreamError(`[SixbModels] Usage field '${key}' must be a nonnegative integer.`)\n }\n }\n}\n\nfunction normalizeProviderData(value: ProviderData): ProviderData {\n const data = omitUndefinedObjectProperties(value)\n assertJsonValue(data, \"provider data\")\n if (typeof data !== \"object\" || data === null || Array.isArray(data)) {\n throw new TypeError(\"[SixbModels] provider data must be a JSON object.\")\n }\n if (JSON.stringify(data).length > MAX_PROVIDER_DATA_BYTES) {\n throw new ModelStreamError(\n `[SixbModels] Provider data exceeds the ${MAX_PROVIDER_DATA_BYTES}-byte response limit.`\n )\n }\n return data\n}\n\n/** Normalize absent metadata fields at ingestion, leaving non-JSON values for validation. */\nfunction omitUndefinedObjectProperties(value: unknown, seen = new Set<object>()): unknown {\n if (typeof value !== \"object\" || value === null || seen.has(value)) return value\n seen.add(value)\n try {\n if (Array.isArray(value)) {\n return value.map((entry) => omitUndefinedObjectProperties(entry, seen))\n }\n if (!isPlainRecord(value)) return value\n return Object.fromEntries(\n Reflect.ownKeys(value)\n .filter((key) => Object.prototype.propertyIsEnumerable.call(value, key))\n .map((key) => [key, Reflect.get(value, key)] as const)\n .filter(([, entry]) => entry !== undefined)\n .map(([key, entry]) => [key, omitUndefinedObjectProperties(entry, seen)])\n )\n } finally {\n seen.delete(value)\n }\n}\n\nfunction mergeProviderData(\n first: ProviderData | undefined,\n second: ProviderData | undefined\n): ProviderData | undefined {\n if (first === undefined) return second\n if (second === undefined) return first\n return { ...first, ...second }\n}\n\nfunction isAbortError(error: unknown): boolean {\n return (\n (error instanceof DOMException && error.name === \"AbortError\") ||\n (error instanceof Error && error.name === \"AbortError\")\n )\n}\n",
|
|
53
47
|
"import { randomUUID } from \"node:crypto\"\nimport { assertProviderAccess } from \"../../authorization\"\nimport type { BlobStorage } from \"../../blob-storage/types\"\nimport type { ExecutionContext } from \"../../execution\"\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ModelCatalog } from \"../catalog\"\nimport type { ModelCallEndEvent } from \"../events\"\nimport type { AiModelCallRecorder } from \"../execution/model-call-recorder\"\nimport type { ModelExecutionSession } from \"../execution/session\"\nimport { estimateModelCall, type ModelMoney } from \"../pricing\"\nimport { assertTranscriptionModel } from \"./catalog\"\nimport { TranscriptionModelResponseError } from \"./errors\"\nimport { prepareTranscriptionFile, readTranscriptionFile } from \"./file\"\nimport type {\n AudioModelsRuntime,\n TranscriptionModel,\n TranscriptionModelResponseMetadata,\n TranscriptionModelResult,\n} from \"./types\"\n\nexport function createAudioRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n catalog: ModelCatalog | undefined,\n session: ModelExecutionSession,\n blobs: BlobStorage | undefined\n): AudioModelsRuntime {\n return {\n async transcribe(input) {\n assertProviderAccess(runtime, execution, \"models.audio.transcribe\")\n\n const { audio, mediaType } = prepareTranscriptionFile(input.audio)\n if (!blobs) {\n throw new Error(\"[SixbModels] Transcription requires blob storage.\")\n }\n\n const signal = session.signal(input.signal)\n signal.throwIfAborted()\n\n const binding = selectModel(catalog, input.model)\n assertTranscriptionModel(binding)\n assertFileSupport(binding, audio.sizeBytes, mediaType)\n\n const accounting = await session.accounting()\n accounting.assertHealthy()\n\n const model = binding.resolve ? await binding.resolve() : binding\n assertTranscriptionModel(model)\n if (model.providerId !== binding.providerId || model.modelId !== binding.modelId) {\n throw new TypeError(\n \"[SixbModels] Resolved transcription model identity does not match the selected model.\"\n )\n }\n assertFileSupport(model, audio.sizeBytes, mediaType)\n\n signal.throwIfAborted()\n const bytes = await readTranscriptionFile(blobs, audio, signal)\n accounting.assertHealthy()\n\n const reservationCost = estimateReservationCost(model, bytes.byteLength, mediaType)\n const callId = `call_${randomUUID()}`\n await accounting.admitCall({\n callId,\n providerId: model.providerId,\n modelId: model.modelId,\n modelKind: \"transcription\",\n inputTokens: { status: \"unavailable\", reason: \"nonTextInput\" },\n outputTokenAllowance: 0,\n reservationCost,\n })\n\n let result: TranscriptionModelResult\n try {\n signal.throwIfAborted()\n result = await model.transcribe({ audio: bytes, mediaType, signal })\n } catch (error) {\n await recordTranscription(\n accounting,\n model,\n callId,\n error instanceof TranscriptionModelResponseError ? error.metadata : {}\n )\n throw error\n }\n\n // A completed, billable reply must survive cancellation and transcript validation failures.\n const event = await recordTranscription(accounting, model, callId, result ?? {})\n signal.throwIfAborted()\n if (typeof result?.output?.text !== \"string\") {\n throw new TranscriptionModelResponseError(\n \"[SixbModels] Invalid transcription response.\",\n model.providerId,\n model.modelId,\n result ?? {}\n )\n }\n\n return {\n output: { text: result.output.text },\n usage: event.usage,\n cost: event.cost,\n callId,\n }\n },\n }\n}\n\nfunction selectModel(\n catalog: ModelCatalog | undefined,\n requested: TranscriptionModel | undefined\n): TranscriptionModel {\n if (!catalog && requested) return requested\n\n const transcribers = catalog?.audio?.transcription\n const selected = requested\n ? transcribers?.getByRef({ provider: requested.providerId, modelId: requested.modelId })?.model\n : transcribers?.default.model\n\n if (!selected) {\n throw new Error(\n \"[SixbModels] Configure the selected model in models.audio.transcription, or supply a model when no catalog is configured.\"\n )\n }\n\n return selected\n}\n\nfunction assertFileSupport(model: TranscriptionModel, sizeBytes: number, mediaType: string): void {\n if (sizeBytes > model.definition.maxInputBytes) {\n throw new RangeError(\n `[SixbModels] Audio exceeds the model's ${model.definition.maxInputBytes}-byte input limit.`\n )\n }\n if (model.definition.mediaTypes && !model.definition.mediaTypes.includes(mediaType)) {\n throw new TypeError(\n `[SixbModels] Audio media type '${mediaType}' is not supported by the selected model.`\n )\n }\n}\n\nfunction estimateReservationCost(\n model: TranscriptionModel,\n sizeBytes: number,\n mediaType: string\n): ModelMoney | undefined {\n try {\n return model.costEstimator?.estimateReservation?.({ sizeBytes, mediaType })\n } catch {\n // Optional pricing cannot bypass an enforced budget: admission fails closed without it.\n return undefined\n }\n}\n\nasync function recordTranscription(\n accounting: AiModelCallRecorder,\n model: TranscriptionModel,\n callId: string,\n metadata: TranscriptionModelResponseMetadata\n): Promise<ModelCallEndEvent> {\n const usage = metadata.usage ?? {}\n const estimate = estimateModelCall(model, {\n usage,\n route: metadata.route,\n responseModelId: metadata.responseModelId,\n })\n const event: ModelCallEndEvent = {\n callId,\n modelKind: \"transcription\",\n providerId: model.providerId,\n modelId: model.modelId,\n responseId: metadata.providerIds?.responseId ?? callId,\n providerIds: metadata.providerIds,\n responseModelId: metadata.responseModelId,\n usage,\n cost: metadata.reportedCost ? { status: \"reported\", ...metadata.reportedCost } : estimate,\n ...(metadata.reportedCost ? { estimate } : {}),\n route: metadata.route,\n }\n\n await accounting.onModelCallEnd(event)\n return event\n}\n",
|
|
@@ -58,15 +52,15 @@
|
|
|
58
52
|
"/**\n * Compatibility leaf operation: request an action on an object.\n *\n * The canonical action request path lives in `actions/request.ts`; object-bound\n * helpers delegate here by supplying an object subject.\n */\nimport {\n type RequestActionOptions,\n requestAction as requestRuntimeAction,\n} from \"../../actions/request\"\nimport type { ActionRunRecord } from \"../../storage\"\nimport type { ExecutionObjectContext } from \"../context\"\n\nexport type { RequestActionOptions }\n\nexport async function requestAction(\n ctx: ExecutionObjectContext,\n params: {\n primaryId: string\n actionId: string\n params?: Record<string, unknown>\n options?: RequestActionOptions\n }\n): Promise<ActionRunRecord> {\n return requestRuntimeAction(ctx, ctx.execution, {\n actionId: params.actionId,\n subject: {\n kind: \"object\",\n objectTypeId: ctx.objectType.id,\n primaryId: params.primaryId,\n },\n params: params.params,\n runId: params.options?.runId,\n signal: params.options?.signal,\n })\n}\n",
|
|
59
53
|
"/**\n * Runtime translation onto the ontology Materializer.\n *\n * Every typed and dynamic object/link mutation lowers to canonical Materializer operations here and\n * every Materializer result is mapped back to the public runtime shapes. The adapter owns no\n * ontology semantics: authority classification, effective resolution, validation, and event\n * construction all happen inside the Materializer's single commit.\n */\n\nimport { randomUUID } from \"node:crypto\"\nimport type { JsonValue } from \"../json\"\nimport type {\n EditCommitResult,\n EffectiveObjectSnapshot,\n MaterializationItemError,\n OntologyEditOperation,\n OntologyLinkRef,\n OntologyObjectRef,\n OntologyOperationOutcome,\n} from \"../materialization/model\"\nimport { normalizeJsonProperties } from \"../materializer\"\nimport type { ObjectLink, ValueType } from \"../ontology\"\nimport { OntologyValidationError } from \"../ontology/errors\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport {\n assertKnownProperties,\n assertLinkTargetType,\n assertValidFileRefs,\n normalizeLinkProperties,\n normalizeObjectProperties,\n validateLinkProperties,\n validateObjectProperties,\n} from \"../ontology/validation\"\nimport { getOntologyMutationRuntime } from \"../runtime/ontology-mutations\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type { ObjectRow } from \"../storage\"\nimport { ObjectError } from \"./errors\"\n\n/** The runtime pieces one commit needs. */\nexport type RuntimeMaterializerContext = Pick<SixbRuntimeContext, \"projectId\" | \"storage\">\n\n/** One caller-supplied batch item, lowered to the operations it contributes. */\nexport interface RuntimeBatchGroup {\n /** Position in the caller's input array; item errors are reported against it. */\n readonly index: number\n readonly operations: readonly OntologyEditOperation[]\n}\n\nexport interface RuntimeBatchCommit {\n readonly commit: EditCommitResult | null\n /** Outcomes per input position, in the order the item's operations were submitted. */\n readonly outcomes: ReadonlyMap<number, readonly OntologyOperationOutcome[]>\n}\n\n/**\n * Commits ordered operations as one atomic runtime commit.\n *\n * A fresh request id per call keeps each runtime mutation its own commit; the Materializer's\n * idempotency replay then only collapses a retry of the very same request.\n */\nexport async function commitRuntimeOperations(\n ctx: RuntimeMaterializerContext,\n operations: readonly OntologyEditOperation[]\n): Promise<EditCommitResult> {\n const mutations = getOntologyMutationRuntime(ctx)\n const commit = await mutations.commitEdits({\n mode: \"atomic\",\n source: { kind: \"runtime\", requestId: randomUUID() },\n operations,\n expectedObjects: [],\n expectedLinks: [],\n expectedLinkScopes: [],\n })\n return commit\n}\n\n/**\n * Commits grouped batch operations as one ordered continue-mode transaction.\n *\n * Successful items apply against one evolving authority state while semantic failures are recorded\n * per item. Provider, serialization, and CAS failures still roll the whole transaction back.\n *\n * An item that lowers to several operations is declared as one operation group so the Materializer\n * rolls the whole item back rather than committing the operations that ran before the failure.\n */\nexport async function commitRuntimeBatch(\n ctx: RuntimeMaterializerContext,\n groups: readonly RuntimeBatchGroup[]\n): Promise<RuntimeBatchCommit> {\n const operations = groups.flatMap((group) => group.operations)\n if (operations.length === 0) {\n return { commit: null, outcomes: new Map() }\n }\n\n const operationGroups = groups\n .filter((group) => group.operations.length > 1)\n .map((group) => group.operations.map((operation) => operation.id))\n\n const mutations = getOntologyMutationRuntime(ctx)\n const commit = await mutations.commitEdits({\n mode: \"continue\",\n source: { kind: \"runtime\", requestId: randomUUID() },\n operations,\n ...(operationGroups.length > 0 ? { operationGroups } : {}),\n })\n\n const byId = new Map(commit.outcomes.map((outcome) => [outcome.id, outcome]))\n const outcomes = new Map<number, readonly OntologyOperationOutcome[]>()\n for (const group of groups) {\n outcomes.set(\n group.index,\n group.operations.map((operation) => requireOutcome(byId, operation.id))\n )\n }\n return { commit, outcomes }\n}\n\n/**\n * Assigns the canonical operation id for one batch item.\n *\n * Ids derive from the caller's original ordinal so outcomes map back to input positions even when\n * earlier items failed local validation and never reached the Materializer.\n */\nexport function runtimeOperationId(index: number, subOrdinal = 0): string {\n return subOrdinal === 0 ? `op:${index}` : `op:${index}.${subOrdinal}`\n}\n\nexport interface NormalizedRuntimeObject {\n readonly primaryId: string\n /** Managed authority values; identity lives in the object ref, never in the properties. */\n readonly properties: Readonly<Record<string, JsonValue>>\n}\n\n/**\n * Validates and normalizes one runtime object input at the SDK/service boundary.\n *\n * Shape and value-type errors surface here so a batch can report them against the caller's original\n * position. Authority classification, required-property enforcement, and cardinality stay in the\n * Materializer, which validates the resolved effective object instead of the request.\n */\nexport function normalizeRuntimeObject(input: {\n readonly objectType: ObjectTypeWithPropertyTokens\n readonly primaryPropertyId: string\n readonly properties: Record<string, unknown>\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): NormalizedRuntimeObject {\n const { objectType, primaryPropertyId, properties, valueTypesById } = input\n assertKnownProperties(objectType, properties)\n validateObjectProperties(objectType, properties, valueTypesById)\n assertValidFileRefs(properties, objectType.id)\n\n const primaryValue = properties[primaryPropertyId]\n if (primaryValue === undefined || primaryValue === null) {\n throw new OntologyValidationError(\n `[Sixb] Missing primary property '${primaryPropertyId}' in upsert for '${objectType.id}'`\n )\n }\n\n const normalized = normalizeObjectProperties(\n objectType.properties,\n properties,\n valueTypesById,\n objectType.id\n )\n const { [primaryPropertyId]: _identity, ...managed } = normalized\n return {\n primaryId: String(primaryValue),\n properties: normalizeJsonProperties(managed, `${objectType.id} properties`),\n }\n}\n\n/**\n * Validates and normalizes one runtime link input.\n *\n * Managed link authority carries the complete property set, so required link properties must be\n * present in the request rather than inherited from the stored edge.\n */\nexport function normalizeRuntimeLink(input: {\n readonly objectType: ObjectTypeWithPropertyTokens\n readonly linkDefinition: ObjectLink\n readonly linkId: string\n readonly targetTypeId: string\n readonly properties?: Record<string, unknown>\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n readonly isValidLinkTarget: (expected: string | string[], actual: string) => boolean\n}): Readonly<Record<string, JsonValue>> | undefined {\n const { objectType, linkDefinition, linkId, targetTypeId, properties, valueTypesById } = input\n assertLinkTargetType(objectType.id, linkId, linkDefinition, targetTypeId, input.isValidLinkTarget)\n validateLinkProperties(objectType, linkDefinition, properties, undefined, valueTypesById)\n assertValidFileRefs(properties, `${objectType.id}.${linkId}`)\n const normalized = normalizeLinkProperties(objectType, linkDefinition, properties, valueTypesById)\n if (normalized === undefined) return undefined\n return normalizeJsonProperties(normalized, `${objectType.id}.${linkId} properties`)\n}\n\nexport function objectUpsertOperation(input: {\n readonly id: string\n readonly ref: OntologyObjectRef\n readonly properties: Readonly<Record<string, JsonValue>>\n}): OntologyEditOperation {\n return { id: input.id, kind: \"object.upsert\", ref: input.ref, properties: input.properties }\n}\n\nexport function objectDeleteOperation(input: {\n readonly id: string\n readonly ref: OntologyObjectRef\n}): OntologyEditOperation {\n return { id: input.id, kind: \"object.delete\", ref: input.ref }\n}\n\nexport function objectRestoreOperation(input: {\n readonly id: string\n readonly ref: OntologyObjectRef\n}): OntologyEditOperation {\n return { id: input.id, kind: \"object.restore\", ref: input.ref }\n}\n\nexport function linkUpsertOperation(input: {\n readonly id: string\n readonly ref: OntologyLinkRef\n readonly properties?: Readonly<Record<string, JsonValue>>\n}): OntologyEditOperation {\n return {\n id: input.id,\n kind: \"link.upsert\",\n ref: input.ref,\n ...(input.properties !== undefined ? { properties: input.properties } : {}),\n }\n}\n\nexport function linkDeleteOperation(input: {\n readonly id: string\n readonly ref: OntologyLinkRef\n}): OntologyEditOperation {\n return { id: input.id, kind: \"link.delete\", ref: input.ref }\n}\n\n/** Reads the outcomes one batch item produced; the commit returns one per submitted operation. */\nexport function requireItemOutcomes(\n commit: RuntimeBatchCommit,\n index: number\n): readonly OntologyOperationOutcome[] {\n const outcomes = commit.outcomes.get(index)\n if (!outcomes || outcomes.length === 0) {\n throw new ObjectError(`[Sixb] Materializer returned no outcome for batch item ${index}.`)\n }\n return outcomes\n}\n\n/** Reads the effective object an ok outcome produced; runtime object writes always resolve one. */\nexport function requireEffectiveObject(outcome: OntologyOperationOutcome): EffectiveObjectSnapshot {\n if (!outcome.ok || !outcome.object) {\n throw new ObjectError(`[Sixb] Materializer returned no effective object for '${outcome.id}'.`)\n }\n return outcome.object\n}\n\nexport function toObjectRow(projectId: string, snapshot: EffectiveObjectSnapshot): ObjectRow {\n return {\n projectId,\n objectTypeId: snapshot.ref.objectTypeId,\n primaryId: snapshot.ref.primaryId,\n properties: structuredClone(snapshot.properties) as Record<string, unknown>,\n createdAt: new Date(snapshot.createdAt),\n updatedAt: new Date(snapshot.updatedAt),\n version: snapshot.version,\n lastCommitId: snapshot.lastCommitId,\n }\n}\n\n/** Rehydrates a persisted item error into the public runtime error type. */\nexport function toItemError(error: MaterializationItemError): Error {\n switch (error.code) {\n case \"validation\":\n return new OntologyValidationError(error.message)\n }\n}\n\nfunction requireOutcome(\n outcomes: ReadonlyMap<string, OntologyOperationOutcome>,\n id: string\n): OntologyOperationOutcome {\n const outcome = outcomes.get(id)\n if (!outcome) {\n throw new ObjectError(`[Sixb] Materializer returned no outcome for '${id}'.`)\n }\n return outcome\n}\n",
|
|
60
54
|
"/**\n * Error for runtime invariants and failures specific to the objects module\n * (e.g., unexpected event results after appending an object/link event).\n */\nexport class ObjectError extends Error {\n readonly name = \"ObjectError\"\n}\n",
|
|
61
|
-
"/**\n * The authorization rule for writing a link, in one place because all three link leaves need it.\n */\nimport { assertAuthorized, assertCanEdit } from \"../../authorization\"\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\n\n/**\n * Assert a principal may create or remove
|
|
62
|
-
"/**\n * Leaf operation: remove a single link through the ontology Materializer.\n */\nimport { assertLinkTargetType } from \"../../ontology/validation\"\nimport type { ResolvedLinkContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n linkDeleteOperation,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport {
|
|
55
|
+
"/**\n * The authorization rule for writing a link, in one place because all three link leaves need it.\n */\nimport { assertAuthorized, assertCanEdit } from \"../../authorization\"\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\n\ninterface LinkWrite {\n readonly sourceTypeId: string\n readonly linkId: string\n readonly targetTypeId: string\n}\n\n/**\n * Assert a principal may create or remove these links.\n *\n * `edit` on the **source** type, `view` on the **target**: a link is declared on the source type\n * (`objectType.links`), and writing one changes the source's edges, not the target's properties.\n * Requiring `edit` on the target too would mean a clerk needs write access to every customer before\n * attaching an invoice to one.\n *\n * `view` on the target is still required, and for two reasons: it matches how links are *read* —\n * `canViewLink` already demands `view` on both endpoints — and without it the endpoint-existence\n * check that follows would answer whether a target the principal cannot see exists.\n *\n * Call this *before* any endpoint lookup, for that second reason.\n */\nexport async function assertCanWriteLinks(\n ctx: Pick<\n SixbRuntimeContext,\n \"projectId\" | \"runtimeAuthorization\" | \"authorization\" | \"objectReader\"\n >,\n writes: readonly LinkWrite[]\n): Promise<void> {\n for (const write of writes) {\n assertCanEdit(ctx, write.sourceTypeId)\n assertAuthorized(ctx, { kind: \"object.view\", objectTypeId: write.targetTypeId })\n }\n\n // An endpoint type or a link the reader cannot read under the markings of the versions\n // projections applied is refused like one it has no view grant for, for the same reason.\n await ctx.objectReader.assertReadable({\n objectTypeIds: [\n ...new Set(writes.flatMap((write) => [write.sourceTypeId, write.targetTypeId])),\n ],\n links: writes.map((write) => ({ objectTypeId: write.sourceTypeId, linkId: write.linkId })),\n })\n}\n",
|
|
56
|
+
"/**\n * Leaf operation: remove a single link through the ontology Materializer.\n */\nimport { assertLinkTargetType } from \"../../ontology/validation\"\nimport type { ResolvedLinkContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n linkDeleteOperation,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport { assertCanWriteLinks } from \"./authorization\"\n\nexport async function removeLink(\n ctx: ResolvedLinkContext,\n params: {\n sourceId: string\n linkId: string\n targetTypeId: string\n targetId: string\n }\n): Promise<void> {\n const { objectType, linkDefinition, ontology } = ctx\n const { sourceId, linkId, targetTypeId, targetId } = params\n await assertCanWriteLinks(ctx, [{ sourceTypeId: objectType.id, linkId, targetTypeId }])\n\n assertLinkTargetType(objectType.id, linkId, linkDefinition, targetTypeId, (expected, actual) =>\n ontology.isValidLinkTarget(expected, actual)\n )\n\n // A missing link is a no-op: the delete records managed authority only when an effective edge\n // exists, so the commit reports `unchanged` instead of failing.\n await commitRuntimeOperations(ctx, [\n linkDeleteOperation({\n id: runtimeOperationId(0),\n ref: {\n source: { objectTypeId: objectType.id, primaryId: sourceId },\n linkId,\n target: { objectTypeId: targetTypeId, primaryId: targetId },\n },\n }),\n ])\n}\n",
|
|
63
57
|
"/**\n * Shared endpoint existence reads for runtime link batches.\n *\n * The Materializer independently refuses a link whose endpoints are not effective. These reads exist\n * only so batch callers keep receiving the public {@link ObjectNotFoundError} for a missing endpoint\n * instead of a generic per-item validation error.\n */\n\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\nimport { objectBatchKey } from \"../../storage\"\nimport { ObjectNotFoundError } from \"../../storage/errors\"\n\nexport interface LinkEndpointItem {\n readonly objectType: { readonly id: string }\n readonly sourceId: string\n readonly targetTypeId: string\n readonly targetId: string\n}\n\nexport type EndpointExistence = ReadonlySet<string>\n\nexport function collectEndpointLookups(\n items: readonly LinkEndpointItem[]\n): { objectTypeId: string; primaryId: string }[] {\n const lookups: { objectTypeId: string; primaryId: string }[] = []\n const seen = new Set<string>()\n\n for (const item of items) {\n for (const endpoint of [\n { objectTypeId: item.objectType.id, primaryId: item.sourceId },\n { objectTypeId: item.targetTypeId, primaryId: item.targetId },\n ]) {\n const key = endpointKey(endpoint.objectTypeId, endpoint.primaryId)\n if (seen.has(key)) continue\n seen.add(key)\n lookups.push(endpoint)\n }\n }\n\n return lookups\n}\n\nexport async function loadEndpointExistence(\n ctx: Pick<SixbRuntimeContext, \"projectId\" | \"storage\">,\n lookups: readonly { objectTypeId: string; primaryId: string }[]\n): Promise<EndpointExistence> {\n if (lookups.length === 0) return new Set()\n const rows = await ctx.storage.objects.getByPrimaryIdBatch({\n projectId: ctx.projectId,\n items: lookups,\n })\n return new Set(rows.keys())\n}\n\n/** Throws {@link ObjectNotFoundError} for the first endpoint the read did not find. */\nexport function requireEndpoints(item: LinkEndpointItem, existing: EndpointExistence): void {\n if (!existing.has(endpointKey(item.objectType.id, item.sourceId))) {\n throw new ObjectNotFoundError(item.objectType.id, item.sourceId, \"Source object not found\")\n }\n if (!existing.has(endpointKey(item.targetTypeId, item.targetId))) {\n throw new ObjectNotFoundError(item.targetTypeId, item.targetId, \"Target object not found\")\n }\n}\n\nfunction endpointKey(objectTypeId: string, primaryId: string): string {\n return objectBatchKey(objectTypeId, primaryId)\n}\n",
|
|
64
|
-
"/**\n * Leaf operation: upsert a single link through the ontology Materializer.\n */\nimport type { ResolvedLinkContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n linkUpsertOperation,\n normalizeRuntimeLink,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport {
|
|
58
|
+
"/**\n * Leaf operation: upsert a single link through the ontology Materializer.\n */\nimport type { ResolvedLinkContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n linkUpsertOperation,\n normalizeRuntimeLink,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport { assertCanWriteLinks } from \"./authorization\"\nimport { collectEndpointLookups, loadEndpointExistence, requireEndpoints } from \"./endpoints\"\n\nexport async function upsertLink(\n ctx: ResolvedLinkContext,\n params: {\n sourceId: string\n linkId: string\n targetTypeId: string\n targetId: string\n properties?: Record<string, unknown>\n }\n): Promise<void> {\n const { objectType, linkDefinition, ontology } = ctx\n const { sourceId, linkId, targetTypeId, targetId, properties } = params\n await assertCanWriteLinks(ctx, [{ sourceTypeId: objectType.id, linkId, targetTypeId }])\n const endpoints = { objectType, sourceId, targetTypeId, targetId }\n\n // Endpoint reads keep the public `ObjectNotFoundError` contract; the Materializer independently\n // refuses a link whose endpoints are not effective when it commits. This runs before property\n // normalization so the same input reports the same error class here and through the batch APIs,\n // which check endpoints first inside `plan`.\n requireEndpoints(endpoints, await loadEndpointExistence(ctx, collectEndpointLookups([endpoints])))\n\n const normalizedProperties = normalizeRuntimeLink({\n objectType,\n linkDefinition,\n linkId,\n targetTypeId,\n properties,\n valueTypesById: ontology.getValueTypesById(),\n isValidLinkTarget: (expected, actual) => ontology.isValidLinkTarget(expected, actual),\n })\n\n await commitRuntimeOperations(ctx, [\n linkUpsertOperation({\n id: runtimeOperationId(0),\n ref: {\n source: { objectTypeId: objectType.id, primaryId: sourceId },\n linkId,\n target: { objectTypeId: targetTypeId, primaryId: targetId },\n },\n ...(normalizedProperties !== undefined ? { properties: normalizedProperties } : {}),\n }),\n ])\n}\n",
|
|
65
59
|
"/**\n * Per-item mechanics shared by every runtime batch.\n *\n * One place owns the rules the public batch APIs promise: a local failure stays at its own input\n * position, an identical repeat collapses onto the first item and shares its result, a conflicting\n * repeat is rejected, and each item's Materializer outcomes map back to the position they came from.\n */\n\nimport type { OntologyEditOperation, OntologyOperationOutcome } from \"../materialization/model\"\nimport { OntologyValidationError } from \"../ontology/errors\"\nimport type { BatchItemResult } from \"../runtime/types\"\nimport {\n commitRuntimeBatch,\n type RuntimeMaterializerContext,\n requireItemOutcomes,\n toItemError,\n} from \"./materializer-adapter\"\n\nexport interface RuntimeBatchItemPlan {\n /** Identity this item claims. A later item claiming it must be identical. */\n readonly key: string\n /** How that identity reads in an error message, e.g. `object 'room:r1'`. */\n readonly label: string\n /** Canonical content, so an identical repeat is recognized as one. */\n readonly fingerprint: string\n readonly operations: readonly OntologyEditOperation[]\n}\n\nexport interface RuntimeItemBatch<TItem, TValue> {\n readonly ctx: RuntimeMaterializerContext\n readonly items: readonly TItem[]\n /** Lowers one item, throwing to record a local failure at that item's position. */\n plan(item: TItem, index: number): RuntimeBatchItemPlan\n /** Maps the outcomes of a fully successful item to its public value. */\n value(outcomes: readonly OntologyOperationOutcome[]): TValue\n}\n\ninterface PlannedItem {\n readonly index: number\n readonly operations: readonly OntologyEditOperation[]\n}\n\ninterface ClaimedIdentity {\n readonly index: number\n readonly fingerprint: string\n}\n\nexport async function runRuntimeItemBatch<TItem, TValue>(\n batch: RuntimeItemBatch<TItem, TValue>\n): Promise<readonly BatchItemResult<TValue>[]> {\n const { items } = batch\n if (items.length === 0) return []\n\n const results: BatchItemResult<TValue>[] = new Array(items.length)\n const planned: PlannedItem[] = []\n const claims = new Map<string, ClaimedIdentity>()\n /** Positions that repeat an earlier identical item and share its result. */\n const aliases = new Map<number, number>()\n\n for (const [index, item] of items.entries()) {\n let plan: RuntimeBatchItemPlan\n try {\n plan = batch.plan(item, index)\n } catch (error) {\n results[index] = {\n ok: false,\n error: error instanceof Error ? error : new Error(String(error)),\n }\n continue\n }\n\n const claimed = claims.get(plan.key)\n if (claimed) {\n if (claimed.fingerprint !== plan.fingerprint) {\n results[index] = {\n ok: false,\n error: new OntologyValidationError(\n `[Sixb] Conflicting duplicate ${plan.label} at batch positions ${claimed.index} and ${index}`\n ),\n }\n continue\n }\n aliases.set(index, claimed.index)\n continue\n }\n\n claims.set(plan.key, { index, fingerprint: plan.fingerprint })\n planned.push({ index, operations: plan.operations })\n }\n\n const commit = await commitRuntimeBatch(batch.ctx, planned)\n\n for (const { index } of planned) {\n const outcomes = requireItemOutcomes(commit, index)\n const failed = outcomes.find((outcome) => !outcome.ok)\n results[index] =\n failed?.ok === false\n ? { ok: false, error: toItemError(failed.error) }\n : { ok: true, value: batch.value(outcomes) }\n }\n for (const [index, source] of aliases) {\n results[index] = results[source]\n }\n return results\n}\n",
|
|
66
|
-
"/**\n * Leaf operation: batch upsert links through the ontology Materializer.\n *\n * Takes SixbRuntimeContext (shared infra) + per-item pre-resolved data, because each item can target\n * a different objectType + linkDefinition. Everything valid is submitted as one ordered\n * continue-mode commit.\n */\n\nimport { stableJsonStringify } from \"../../json\"\nimport { linkRefKey } from \"../../materialization/refs\"\nimport type { BatchItemResult, SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ResolvedLinkBatchItem } from \"../context\"\nimport {\n linkUpsertOperation,\n normalizeRuntimeLink,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport { runRuntimeItemBatch } from \"../runtime-batch\"\nimport {
|
|
67
|
-
"/**\n * Leaf operations: delete and restore a single object through the ontology Materializer.\n *\n * Both are thin wrappers over one materializer operation, exactly like `removeLink` — the cascade\n * over links and the effective-state bookkeeping happen inside the commit.\n */\nimport { assertCanEdit } from \"../../authorization\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n objectDeleteOperation,\n objectRestoreOperation,\n runtimeOperationId,\n} from \"../materializer-adapter\"\n\n/**\n * Delete the object with this primary id.\n *\n * A missing object is a no-op: the delete records managed authority only where effective state\n * exists, so the commit reports `unchanged` rather than failing. An object a projection also writes\n * stays hidden even while the projection keeps asserting it — `restore()` is what reveals it again.\n */\nexport async function deleteObject(ctx: ResolvedObjectContext, primaryId: string): Promise<void> {\n assertCanEdit(ctx, ctx.objectType.id)\n await commitRuntimeOperations(ctx, [\n objectDeleteOperation({\n id: runtimeOperationId(0),\n ref: { objectTypeId: ctx.objectType.id, primaryId },\n }),\n ])\n}\n\n/**\n * Withdraw a previous delete.\n *\n * For an object written only from code this is a no-op — there is nothing left to reveal, so write it\n * again instead. For an object a projection also writes, it makes the projected state visible again.\n */\nexport async function restoreObject(ctx: ResolvedObjectContext, primaryId: string): Promise<void> {\n assertCanEdit(ctx, ctx.objectType.id)\n await commitRuntimeOperations(ctx, [\n objectRestoreOperation({\n id: runtimeOperationId(0),\n ref: { objectTypeId: ctx.objectType.id, primaryId },\n }),\n ])\n}\n",
|
|
68
|
-
"/**\n * Leaf operation: upsert a single object through the ontology Materializer.\n */\n\nimport { assertCanEdit } from \"../../authorization\"\nimport type { ObjectRow } from \"../../storage\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n normalizeRuntimeObject,\n objectUpsertOperation,\n requireEffectiveObject,\n runtimeOperationId,\n toObjectRow,\n} from \"../materializer-adapter\"\n\nexport async function upsertObject(\n ctx: ResolvedObjectContext,\n properties: Record<string, unknown>\n): Promise<ObjectRow> {\n assertCanEdit(ctx, ctx.objectType.id)\n const { objectType, primaryPropertyId, ontology } = ctx\n\n const normalized = normalizeRuntimeObject({\n objectType,\n primaryPropertyId,\n properties,\n valueTypesById: ontology.getValueTypesById(),\n })\n const ref = { objectTypeId: objectType.id, primaryId: normalized.primaryId }\n\n // The Materializer classifies this as an independent create, a patch over source authority, or a\n // restore plus patch inside its own transaction.\n const commit = await commitRuntimeOperations(ctx, [\n objectUpsertOperation({ id: runtimeOperationId(0), ref, properties: normalized.properties }),\n ])\n return
|
|
69
|
-
"/**\n * Leaf operation: batch upsert objects of a single type through the ontology Materializer.\n *\n * Everything that survives local normalization is submitted as one ordered continue-mode commit, so\n * later items observe earlier ones and a provider failure rolls the whole batch back.\n */\nimport { assertCanEdit } from \"../../authorization\"\nimport { stableJsonStringify } from \"../../json\"\nimport type { BatchItemResult } from \"../../runtime/types\"\nimport type { ObjectRow } from \"../../storage\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n normalizeRuntimeObject,\n objectUpsertOperation,\n requireEffectiveObject,\n runtimeOperationId,\n toObjectRow,\n} from \"../materializer-adapter\"\nimport { runRuntimeItemBatch } from \"../runtime-batch\"\n\nexport async function upsertObjectBatch(\n ctx: ResolvedObjectContext,\n items: readonly { properties: Record<string, unknown> }[]\n): Promise<readonly BatchItemResult<ObjectRow>[]> {\n assertCanEdit(ctx, ctx.objectType.id)\n const { objectType, primaryPropertyId, ontology } = ctx\n const valueTypesById = ontology.getValueTypesById()\n\n return runRuntimeItemBatch({\n ctx,\n items,\n plan(item, index) {\n const normalized = normalizeRuntimeObject({\n objectType,\n primaryPropertyId,\n properties: item.properties,\n valueTypesById,\n })\n const ref = { objectTypeId: objectType.id, primaryId: normalized.primaryId }\n return {\n // One commit resolves one authority state per object, so two items for the same identity are\n // unambiguous only when they ask for the same thing.\n key: `${ref.objectTypeId}:${ref.primaryId}`,\n label: `object '${ref.objectTypeId}:${ref.primaryId}'`,\n fingerprint: stableJsonStringify(normalized.properties),\n operations: [\n objectUpsertOperation({\n id: runtimeOperationId(index),\n ref,\n properties: normalized.properties,\n }),\n ],\n }\n },\n value: ([outcome])
|
|
60
|
+
"/**\n * Leaf operation: batch upsert links through the ontology Materializer.\n *\n * Takes SixbRuntimeContext (shared infra) + per-item pre-resolved data, because each item can target\n * a different objectType + linkDefinition. Everything valid is submitted as one ordered\n * continue-mode commit.\n */\n\nimport { stableJsonStringify } from \"../../json\"\nimport { linkRefKey } from \"../../materialization/refs\"\nimport type { BatchItemResult, SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ResolvedLinkBatchItem } from \"../context\"\nimport {\n linkUpsertOperation,\n normalizeRuntimeLink,\n runtimeOperationId,\n} from \"../materializer-adapter\"\nimport { runRuntimeItemBatch } from \"../runtime-batch\"\nimport { assertCanWriteLinks } from \"./authorization\"\nimport { collectEndpointLookups, loadEndpointExistence, requireEndpoints } from \"./endpoints\"\n\nexport async function upsertLinkBatch(\n ctx: SixbRuntimeContext,\n items: readonly ResolvedLinkBatchItem[]\n): Promise<readonly BatchItemResult<void>[]> {\n const { ontology } = ctx\n if (items.length === 0) return []\n\n // Every item, up front, and before the endpoint lookup below. Authorization is a precondition, not\n // a per-item validation: a refused item must not become one failed `BatchItemResult` while the\n // rest of the batch commits. Asserting inside `plan` would do exactly that, and would also let the\n // existence lookup answer for targets the principal cannot see.\n await assertCanWriteLinks(\n ctx,\n items.map((item) => ({\n sourceTypeId: item.objectType.id,\n linkId: item.linkId,\n targetTypeId: item.targetTypeId,\n }))\n )\n\n const existing = await loadEndpointExistence(ctx, collectEndpointLookups(items))\n const valueTypesById = ontology.getValueTypesById()\n\n return runRuntimeItemBatch({\n ctx,\n items,\n plan(item, index) {\n requireEndpoints(item, existing)\n const properties = normalizeRuntimeLink({\n objectType: item.objectType,\n linkDefinition: item.linkDefinition,\n linkId: item.linkId,\n targetTypeId: item.targetTypeId,\n properties: item.properties,\n valueTypesById,\n isValidLinkTarget: (expected, actual) => ontology.isValidLinkTarget(expected, actual),\n })\n const ref = {\n source: { objectTypeId: item.objectType.id, primaryId: item.sourceId },\n linkId: item.linkId,\n target: { objectTypeId: item.targetTypeId, primaryId: item.targetId },\n }\n const edge = linkRefKey(ref)\n return {\n key: edge,\n // The key is a JSON array, which is unreadable in the error an operator sees on a failed\n // link projection. Name the edge the way the object path names an object.\n label: `link '${item.objectType.id}:${item.sourceId}.${item.linkId} -> ${item.targetTypeId}:${item.targetId}'`,\n fingerprint: stableJsonStringify(properties ?? null),\n operations: [\n linkUpsertOperation({\n id: runtimeOperationId(index),\n ref,\n ...(properties !== undefined ? { properties } : {}),\n }),\n ],\n }\n },\n value: () => undefined,\n })\n}\n",
|
|
61
|
+
"/**\n * Leaf operations: delete and restore a single object through the ontology Materializer.\n *\n * Both are thin wrappers over one materializer operation, exactly like `removeLink` — the cascade\n * over links and the effective-state bookkeeping happen inside the commit.\n */\nimport { assertCanEdit } from \"../../authorization\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n objectDeleteOperation,\n objectRestoreOperation,\n runtimeOperationId,\n} from \"../materializer-adapter\"\n\n/**\n * Delete the object with this primary id.\n *\n * A missing object is a no-op: the delete records managed authority only where effective state\n * exists, so the commit reports `unchanged` rather than failing. An object a projection also writes\n * stays hidden even while the projection keeps asserting it — `restore()` is what reveals it again.\n */\nexport async function deleteObject(ctx: ResolvedObjectContext, primaryId: string): Promise<void> {\n assertCanEdit(ctx, ctx.objectType.id)\n await ctx.objectReader.assertReadable({ objectTypeIds: [ctx.objectType.id] })\n await commitRuntimeOperations(ctx, [\n objectDeleteOperation({\n id: runtimeOperationId(0),\n ref: { objectTypeId: ctx.objectType.id, primaryId },\n }),\n ])\n}\n\n/**\n * Withdraw a previous delete.\n *\n * For an object written only from code this is a no-op — there is nothing left to reveal, so write it\n * again instead. For an object a projection also writes, it makes the projected state visible again.\n */\nexport async function restoreObject(ctx: ResolvedObjectContext, primaryId: string): Promise<void> {\n assertCanEdit(ctx, ctx.objectType.id)\n await ctx.objectReader.assertReadable({ objectTypeIds: [ctx.objectType.id] })\n await commitRuntimeOperations(ctx, [\n objectRestoreOperation({\n id: runtimeOperationId(0),\n ref: { objectTypeId: ctx.objectType.id, primaryId },\n }),\n ])\n}\n",
|
|
62
|
+
"/**\n * Leaf operation: upsert a single object through the ontology Materializer.\n */\n\nimport { assertCanEdit } from \"../../authorization\"\nimport type { ObjectRow } from \"../../storage\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n commitRuntimeOperations,\n normalizeRuntimeObject,\n objectUpsertOperation,\n requireEffectiveObject,\n runtimeOperationId,\n toObjectRow,\n} from \"../materializer-adapter\"\n\nexport async function upsertObject(\n ctx: ResolvedObjectContext,\n properties: Record<string, unknown>\n): Promise<ObjectRow> {\n assertCanEdit(ctx, ctx.objectType.id)\n const { objectType, primaryPropertyId, ontology } = ctx\n const redact = await ctx.objectReader.writtenRowRedactor(objectType.id)\n\n const normalized = normalizeRuntimeObject({\n objectType,\n primaryPropertyId,\n properties,\n valueTypesById: ontology.getValueTypesById(),\n })\n const ref = { objectTypeId: objectType.id, primaryId: normalized.primaryId }\n\n // The Materializer classifies this as an independent create, a patch over source authority, or a\n // restore plus patch inside its own transaction.\n const commit = await commitRuntimeOperations(ctx, [\n objectUpsertOperation({ id: runtimeOperationId(0), ref, properties: normalized.properties }),\n ])\n return redact(toObjectRow(ctx.projectId, requireEffectiveObject(commit.outcomes[0])))\n}\n",
|
|
63
|
+
"/**\n * Leaf operation: batch upsert objects of a single type through the ontology Materializer.\n *\n * Everything that survives local normalization is submitted as one ordered continue-mode commit, so\n * later items observe earlier ones and a provider failure rolls the whole batch back.\n */\nimport { assertCanEdit } from \"../../authorization\"\nimport { stableJsonStringify } from \"../../json\"\nimport type { BatchItemResult } from \"../../runtime/types\"\nimport type { ObjectRow } from \"../../storage\"\nimport type { ResolvedObjectContext } from \"../context\"\nimport {\n normalizeRuntimeObject,\n objectUpsertOperation,\n requireEffectiveObject,\n runtimeOperationId,\n toObjectRow,\n} from \"../materializer-adapter\"\nimport { runRuntimeItemBatch } from \"../runtime-batch\"\n\nexport async function upsertObjectBatch(\n ctx: ResolvedObjectContext,\n items: readonly { properties: Record<string, unknown> }[]\n): Promise<readonly BatchItemResult<ObjectRow>[]> {\n assertCanEdit(ctx, ctx.objectType.id)\n const { objectType, primaryPropertyId, ontology } = ctx\n const valueTypesById = ontology.getValueTypesById()\n const redact = await ctx.objectReader.writtenRowRedactor(objectType.id)\n\n return runRuntimeItemBatch({\n ctx,\n items,\n plan(item, index) {\n const normalized = normalizeRuntimeObject({\n objectType,\n primaryPropertyId,\n properties: item.properties,\n valueTypesById,\n })\n const ref = { objectTypeId: objectType.id, primaryId: normalized.primaryId }\n return {\n // One commit resolves one authority state per object, so two items for the same identity are\n // unambiguous only when they ask for the same thing.\n key: `${ref.objectTypeId}:${ref.primaryId}`,\n label: `object '${ref.objectTypeId}:${ref.primaryId}'`,\n fingerprint: stableJsonStringify(normalized.properties),\n operations: [\n objectUpsertOperation({\n id: runtimeOperationId(index),\n ref,\n properties: normalized.properties,\n }),\n ],\n }\n },\n value: ([outcome]) => redact(toObjectRow(ctx.projectId, requireEffectiveObject(outcome))),\n })\n}\n",
|
|
70
64
|
"import { randomUUID } from \"node:crypto\"\nimport { assertCanEdit } from \"../../authorization\"\nimport { AuthorizationError } from \"../../authorization/errors\"\nimport { MaterializationValidationError } from \"../../materialization/errors\"\nimport type { PreparedObjectVector } from \"../../materialization/vectors\"\nimport { sameEmbeddingModel } from \"../../models/embedding-model\"\nimport { getOntologyMutationRuntime } from \"../../runtime/ontology-mutations\"\nimport type { ExecutionObjectContext } from \"../context\"\nimport {\n INDEXING_EMBEDDING_TIMEOUT_MS,\n normalizeVector,\n vectorConfiguration,\n vectorSources,\n} from \"./profile\"\nimport type { ObjectVectorHandle } from \"./types\"\n\nexport function createObjectVectorHandle(\n ctx: ExecutionObjectContext,\n primaryId: string,\n profileName: string\n): ObjectVectorHandle {\n const ref = Object.freeze({ objectTypeId: ctx.objectType.id, primaryId })\n const profileDefinition = ctx.ontology.resolveObjectType(ref.objectTypeId).search?.vectors?.[\n profileName\n ]\n if (!profileDefinition)\n throw new MaterializationValidationError(`Unknown vector profile: ${profileName}`)\n const vectors = ctx.storage.ontology.vectors\n if (!vectors)\n throw new MaterializationValidationError(\"Storage does not support vector profiles.\")\n\n const assertReadable = async () => {\n const allowed = await ctx.objectReader.canReadObjectPropertiesBatch({\n items: profileDefinition.source.map((propertyId) => ({ ...ref, propertyId })),\n })\n if (allowed.some((value) => !value))\n throw new AuthorizationError(\n `view:object:${ref.objectTypeId}`,\n \"[Sixb] Vector profile requires access to all its source properties.\"\n )\n }\n\n return Object.freeze({\n async index(): Promise<void> {\n assertCanEdit(ctx, ref.objectTypeId)\n await assertReadable()\n const mutations = getOntologyMutationRuntime(ctx)\n const model = ctx.embeddingModels?.getByRef({\n provider: profileDefinition.model.providerId,\n modelId: profileDefinition.model.modelId,\n })?.model\n if (!model || !sameEmbeddingModel(model, profileDefinition.model)) {\n throw new MaterializationValidationError(\n `Vector profile '${profileName}' requires its configured embedding model.`\n )\n }\n const row = await ctx.objectReader.getByPrimaryId(ref)\n if (!row) throw new MaterializationValidationError(\"Cannot index a missing object.\")\n const current = (await vectors.list({ projectId: ctx.projectId, ref })).find(\n (entry) => entry.profile === profileName\n )\n const input: PreparedObjectVector = {\n projectId: ctx.projectId,\n ref,\n profile: profileName,\n configuration: vectorConfiguration(profileDefinition),\n ...vectorSources(profileDefinition.source, row.properties),\n expectedObject: { ref, exists: true, version: row.version, lastCommitId: row.lastCommitId },\n expectedVectorCommitId: current?.lastCommitId ?? null,\n }\n\n // Network work never holds a storage transaction or retries an obsolete computation.\n const result = await model.embed({\n texts: [input.text],\n purpose: \"document\",\n signal: AbortSignal.timeout(INDEXING_EMBEDDING_TIMEOUT_MS),\n })\n if (!Array.isArray(result?.vectors) || result.vectors.length !== 1) {\n throw new MaterializationValidationError(\n \"Embedding model must return exactly one vector for one input text.\"\n )\n }\n const values = normalizeVector(\n result.vectors[0]!,\n profileDefinition.model.definition.dimensions\n )\n assertCanEdit(ctx, ref.objectTypeId)\n await assertReadable()\n await mutations.commitEdits({\n mode: \"atomic\",\n source: { kind: \"runtime\", requestId: randomUUID() },\n operations: [],\n vectorWrites: [{ input, values }],\n expectedObjects: [input.expectedObject],\n expectedLinks: [],\n expectedLinkScopes: [],\n })\n },\n })\n}\n",
|
|
71
65
|
"/**\n * File handle factory for ObjectReadByIdHandle.\n *\n * Opens a `fileRef` property through the object that holds it, the way the object file content\n * route does: the object is read again with the caller's permissions, the FileRef is resolved in\n * that authorized row, then checked against the stored blob before it is opened.\n */\nimport { AuthorizationError } from \"../../authorization/errors\"\nimport { jsonPointerSegment, openFileRef, resolveFileRefAtPath } from \"../../blob-storage/internal\"\nimport type { Property } from \"../../ontology\"\nimport { OntologyValidationError } from \"../../ontology/errors\"\nimport type { PropertyToken } from \"../../ontology/tokens\"\nimport { assertPropertyTokenBelongsToObjectType } from \"../../ontology/validation\"\nimport type { ObjectFileHandle } from \"../../runtime/types\"\nimport type { ObjectSetContext } from \"../context\"\n\nexport function createObjectFileHandle(\n ctx: ObjectSetContext,\n primaryId: string,\n property: PropertyToken<string, string, Property>,\n index?: number\n): ObjectFileHandle {\n const { objectType } = ctx\n assertPropertyTokenBelongsToObjectType(objectType, property)\n const registered = ctx.ontology\n .resolveObjectType(objectType.id)\n .properties.find((candidate) => candidate.id === property.id)\n if (!registered) {\n throw new OntologyValidationError(\n `[Sixb] Unknown property '${property.id}' for object type '${objectType.id}'`\n )\n }\n const path = filePropertyPath(objectType.id, registered, index)\n\n return {\n async open() {\n const row = await ctx.objectReader.getByPrimaryId({ objectTypeId: objectType.id, primaryId })\n if (!row) return null\n if (row.redactions?.[property.id]) {\n // Redacted, so the registered property has a marking the caller is not cleared for.\n const markings = registered.markings ?? []\n const marking =\n markings.find((markingId) => !ctx.authorization?.clearances?.has(markingId)) ??\n markings[0]\n throw new AuthorizationError(\n `clearance:marking:${marking}`,\n `[Sixb] Cannot open file '${objectType.id}.${property.id}': it requires clearance for marking '${marking}'.`\n )\n }\n const fileRef = resolveFileRefAtPath(row, path)\n return fileRef ? openFileRef(ctx.blobStorage, fileRef) : null\n },\n }\n}\n\n/** JSON Pointer to the file in an object row, validated against the property's schema. */\nfunction filePropertyPath(objectTypeId: string, property: Property, index: number | undefined) {\n const { schema } = property\n const name = `${objectTypeId}.${property.id}`\n if (schema === \"fileRef\") {\n if (index !== undefined) {\n throw new OntologyValidationError(`[Sixb] Property ${name} holds one file; omit the index.`)\n }\n return `/properties/${jsonPointerSegment(property.id)}`\n }\n if (typeof schema === \"object\" && schema.type === \"array\" && schema.items === \"fileRef\") {\n if (index === undefined || !Number.isSafeInteger(index) || index < 0) {\n throw new OntologyValidationError(\n `[Sixb] Property ${name} holds a list of files; pass the index of the file to open.`\n )\n }\n return `/properties/${jsonPointerSegment(property.id)}/${index}`\n }\n throw new OntologyValidationError(\n `[Sixb] Property ${name} is not a file: file() takes a \"fileRef\" property or a list of them.`\n )\n}\n",
|
|
72
66
|
"/**\n * Low-level write: append normalized telemetry points through the ontology Materializer.\n *\n * Shared by the batch operation and the per-property appenders in ObjectByIdHandle. The Materializer\n * persists immutable point history, derives latest telemetry state, and writes the commit's outbox\n * facts in one transaction, so this leaf never appends events or writes providers itself.\n */\nimport { randomUUID } from \"node:crypto\"\nimport type { AuthorizationContext } from \"../../authorization\"\nimport { assertCanAppendTelemetry } from \"../../authorization\"\nimport { MaterializationObjectNotFoundError } from \"../../materialization/errors\"\nimport type { TelemetryCommitResult, TelemetryPointWrite } from \"../../materialization/model\"\nimport { getOntologyMutationRuntime } from \"../../runtime/ontology-mutations\"\nimport { ObjectNotFoundError } from \"../../storage/errors\"\nimport type { RuntimeMaterializerContext } from \"../materializer-adapter\"\n\nexport type TelemetryWriteContext = RuntimeMaterializerContext & {\n readonly authorization?: AuthorizationContext\n}\n\nexport async function writeTelemetryBatch(\n ctx: TelemetryWriteContext,\n points: readonly TelemetryPointWrite[]\n): Promise<TelemetryCommitResult | null> {\n // Asserted from the points rather than a resolved context: this leaf is the low-level choke point\n // for both `appendTelemetryBatch` and the per-property `TelemetryChannel`, and only the points know\n // which object types the call actually touches.\n for (const objectTypeId of new Set(points.map((point) => point.series.object.objectTypeId))) {\n assertCanAppendTelemetry(ctx, objectTypeId)\n }\n if (points.length === 0) return null\n\n let commit: TelemetryCommitResult\n try {\n commit = await getOntologyMutationRuntime(ctx).appendTelemetry({\n source: { kind: \"runtime\", requestId: randomUUID() },\n points,\n })\n } catch (error) {\n if (error instanceof MaterializationObjectNotFoundError) {\n throw new ObjectNotFoundError(\n error.objectTypeId,\n error.primaryId,\n \"Object not found for telemetry append\"\n )\n }\n throw error\n }\n return commit\n}\n",
|
|
@@ -93,14 +87,14 @@
|
|
|
93
87
|
"import type { ObjectTypeWithPropertyTokens } from \"../../ontology/tokens\"\nimport { ActionDefinitionError, effectsWithoutEditsMessage } from \"../errors\"\nimport type {\n ActionBuilder,\n ActionEditsHandler,\n ActionEffectsHandler,\n ActionParamsConfig,\n ActionValidator,\n ActionWritebackHandler,\n GlobalActionDefinition,\n GlobalActionEditsHandler,\n GlobalActionEffectsHandler,\n GlobalActionPhaseBuilder,\n GlobalActionValidator,\n GlobalActionWritebackHandler,\n ObjectActionDefinition,\n ObjectActionPhaseBuilder,\n} from \"../types\"\nimport { assertNonEmpty } from \"../validation\"\n\ntype ActionOptions = {\n description?: string\n}\n\nexport function defineAction<const TId extends string>(\n id: TId,\n options?: ActionOptions\n): ActionBuilder<TId> {\n assertNonEmpty(id, \"id\")\n\n return asPublicActionType<ActionBuilder<TId>>(createActionBuilder(id, options))\n}\n\nfunction createActionBuilder(id: string, options?: ActionOptions) {\n const builder = {\n params(params: ActionParamsConfig) {\n return createGlobalActionPhaseBuilder(id, params, options)\n },\n on(objectType: ObjectTypeWithPropertyTokens) {\n assertNonEmpty(objectType.id, \"target id\")\n return createObjectActionParamsBuilder(id, objectType, options)\n },\n }\n\n return builder\n}\n\nfunction createGlobalActionPhaseBuilder(\n id: string,\n params: ActionParamsConfig,\n options?: ActionOptions\n): GlobalActionPhaseBuilder<string, ActionParamsConfig> {\n const validators: GlobalActionValidator<Record<string, unknown>>[] = []\n\n const builder = {\n validate(validator: GlobalActionValidator<Record<string, unknown>>) {\n validators.push(validator)\n return builder\n },\n writeback(handler: GlobalActionWritebackHandler<Record<string, unknown>, unknown>) {\n return createGlobalDefinition({\n id,\n params,\n description: options?.description,\n validators,\n writeback: handler,\n })\n },\n edits(handler: GlobalActionEditsHandler<Record<string, unknown>, undefined>) {\n return createGlobalDefinition({\n id,\n params,\n description: options?.description,\n validators,\n edits: handler,\n })\n },\n }\n\n return asPublicActionType<GlobalActionPhaseBuilder<string, ActionParamsConfig>>(builder)\n}\n\nfunction createObjectActionParamsBuilder(\n id: string,\n objectType: ObjectTypeWithPropertyTokens,\n options?: ActionOptions\n) {\n return {\n params(params: ActionParamsConfig) {\n return createObjectActionPhaseBuilder(id, objectType, params, options)\n },\n }\n}\n\nfunction createObjectActionPhaseBuilder(\n id: string,\n objectType: ObjectTypeWithPropertyTokens,\n params: ActionParamsConfig,\n options?: ActionOptions\n): ObjectActionPhaseBuilder<string, ObjectTypeWithPropertyTokens, ActionParamsConfig> {\n const validators: ActionValidator<ObjectTypeWithPropertyTokens, Record<string, unknown>>[] = []\n\n const builder = {\n validate(validator: ActionValidator<ObjectTypeWithPropertyTokens, Record<string, unknown>>) {\n validators.push(validator)\n return builder\n },\n writeback(\n handler: ActionWritebackHandler<\n ObjectTypeWithPropertyTokens,\n Record<string, unknown>,\n unknown\n >\n ) {\n return createObjectDefinition({\n id,\n objectType,\n params,\n description: options?.description,\n validators,\n writeback: handler,\n })\n },\n edits(\n handler: ActionEditsHandler<ObjectTypeWithPropertyTokens, Record<string, unknown>, undefined>\n ) {\n return createObjectDefinition({\n id,\n objectType,\n params,\n description: options?.description,\n validators,\n edits: handler,\n })\n },\n }\n\n return asPublicActionType<\n ObjectActionPhaseBuilder<string, ObjectTypeWithPropertyTokens, ActionParamsConfig>\n >(builder)\n}\n\nfunction createGlobalDefinition(input: {\n readonly id: string\n readonly params: ActionParamsConfig\n readonly description?: string\n readonly validators: readonly unknown[]\n readonly writeback?: unknown\n readonly edits?: unknown\n readonly effects?: unknown\n}): GlobalActionDefinition {\n const definition = {\n kind: \"action\",\n id: input.id,\n binding: { kind: \"global\" },\n params: input.params,\n phases: {\n validate: [...input.validators],\n ...(input.writeback ? { writeback: input.writeback } : {}),\n ...(input.edits ? { edits: input.edits } : {}),\n ...(input.effects ? { effects: input.effects } : {}),\n },\n ...(input.description !== undefined ? { description: input.description } : {}),\n }\n\n return asPublicActionType<GlobalActionDefinition>(\n Object.assign(definition, {\n edits(handler: GlobalActionEditsHandler<Record<string, unknown>, unknown>) {\n return createGlobalDefinition({\n ...input,\n edits: handler,\n })\n },\n effects(handler: GlobalActionEffectsHandler<Record<string, unknown>, unknown>) {\n if (!input.edits) {\n throw new ActionDefinitionError(effectsWithoutEditsMessage(input.id))\n }\n return createGlobalDefinition({\n ...input,\n effects: handler,\n })\n },\n })\n )\n}\n\nfunction createObjectDefinition(input: {\n readonly id: string\n readonly objectType: ObjectTypeWithPropertyTokens\n readonly params: ActionParamsConfig\n readonly description?: string\n readonly validators: readonly unknown[]\n readonly writeback?: unknown\n readonly edits?: unknown\n readonly effects?: unknown\n}): ObjectActionDefinition {\n const definition = {\n kind: \"action\",\n id: input.id,\n binding: { kind: \"object\", objectType: input.objectType },\n params: input.params,\n phases: {\n validate: [...input.validators],\n ...(input.writeback ? { writeback: input.writeback } : {}),\n ...(input.edits ? { edits: input.edits } : {}),\n ...(input.effects ? { effects: input.effects } : {}),\n },\n ...(input.description !== undefined ? { description: input.description } : {}),\n }\n\n return asPublicActionType<ObjectActionDefinition>(\n Object.assign(definition, {\n edits(\n handler: ActionEditsHandler<ObjectTypeWithPropertyTokens, Record<string, unknown>, unknown>\n ) {\n return createObjectDefinition({\n ...input,\n edits: handler,\n })\n },\n effects(\n handler: ActionEffectsHandler<\n ObjectTypeWithPropertyTokens,\n Record<string, unknown>,\n unknown\n >\n ) {\n if (!input.edits) {\n throw new ActionDefinitionError(effectsWithoutEditsMessage(input.id))\n }\n return createObjectDefinition({\n ...input,\n effects: handler,\n })\n },\n })\n )\n}\n\n// Runtime builders are plain objects; public builder types carry phase-order inference.\nfunction asPublicActionType<TPublic>(value: unknown): TPublic {\n return value as TPublic\n}\n",
|
|
94
88
|
"import type { SchemaOrRef } from \"../../ontology\"\nimport type { QuantitativeTypeId } from \"../../ontology/units\"\nimport type { ParamConfig } from \"./types\"\n\nexport interface ParamOptions {\n readonly description?: string\n readonly semanticType?: QuantitativeTypeId\n readonly nullable?: boolean\n}\n\ntype FieldFromOptions<TOptions, TKey extends string, TFallback> =\n TOptions extends Record<TKey, infer TValue>\n ? { [K in TKey]: TValue }\n : { [K in TKey]?: TFallback }\n\ntype ParamResult<\n TSchema extends SchemaOrRef,\n TRequired extends boolean,\n TOptions extends ParamOptions | undefined,\n> = {\n schema: TSchema\n required: TRequired\n} & FieldFromOptions<TOptions, \"description\", string> &\n FieldFromOptions<TOptions, \"semanticType\", QuantitativeTypeId> &\n FieldFromOptions<TOptions, \"nullable\", boolean>\n\n/** Declare one required parameter. */\nexport function param<\n const TSchema extends SchemaOrRef,\n const TOptions extends ParamOptions | undefined = undefined,\n>(schema: TSchema, options?: TOptions): ParamResult<TSchema, true, TOptions> {\n const result: ParamConfig & { required: true } = {\n schema,\n required: true,\n ...(options?.description !== undefined ? { description: options.description } : {}),\n ...(options?.semanticType !== undefined ? { semanticType: options.semanticType } : {}),\n ...(options?.nullable !== undefined ? { nullable: options.nullable } : {}),\n }\n return result as ParamResult<TSchema, true, TOptions>\n}\n\n/** Derive an optional parameter without changing its schema or metadata. */\nexport function optional<const TParam extends ParamConfig>(\n paramConfig: TParam\n): Omit<TParam, \"required\"> & { readonly required: false } {\n return {\n ...paramConfig,\n required: false,\n }\n}\n",
|
|
95
89
|
"import type { ObjectType, OntologyDefinitionCatalog } from \"../ontology\"\nimport {\n ActionDefinitionError,\n effectsWithoutEditsMessage,\n missingActionMutationMessage,\n} from \"./errors\"\nimport type { ActionDefinition, ObjectActionDefinition } from \"./types\"\nimport { isObjectActionDefinition } from \"./validation\"\n\nexport interface ActionDefinitionCatalog {\n list(): readonly ActionDefinition[]\n getById(id: string): ActionDefinition | null\n listGlobal(): readonly ActionDefinition[]\n listForType(type: ObjectType): readonly ObjectActionDefinition[]\n}\n\nexport interface ActionRegistryOptions {\n readonly actions: readonly ActionDefinition[]\n readonly ontology: OntologyDefinitionCatalog\n}\n\nexport class ActionRegistry implements ActionDefinitionCatalog {\n private readonly byId = new Map<string, ActionDefinition>()\n private readonly globalActions: ActionDefinition[] = []\n private readonly byTargetId = new Map<string, ObjectActionDefinition[]>()\n\n private readonly ontology: OntologyDefinitionCatalog\n\n constructor(options: ActionRegistryOptions) {\n this.ontology = options.ontology\n\n for (const action of options.actions) {\n const previous = this.byId.get(action.id)\n if (previous) {\n const chainDuplicate = this.getInheritanceDuplicate(action, previous)\n if (chainDuplicate) {\n throw new ActionDefinitionError(\n `Duplicate action id \"${action.id}\" in inheritance chain of \"${chainDuplicate.objectTypeId}\": defined on both \"${chainDuplicate.firstTargetId}\" and \"${chainDuplicate.secondTargetId}\".`\n )\n }\n\n throw new ActionDefinitionError(\n `Duplicate action id \"${action.id}\" declared in multiple files.`\n )\n }\n\n this.validatePhases(action)\n this.byId.set(action.id, action)\n\n if (!isObjectActionDefinition(action)) {\n this.globalActions.push(action)\n continue\n }\n\n const objectType = action.binding.objectType\n const target = this.ontology.getObjectTypeById(objectType.id)\n if (!target) {\n throw new ActionDefinitionError(\n `Action \"${action.id}\" targets unknown object type \"${objectType.id}\". Add the object type to ontology before registering the action.`\n )\n }\n\n const bucket = this.byTargetId.get(objectType.id) ?? []\n bucket.push(action)\n this.byTargetId.set(objectType.id, bucket)\n }\n }\n\n private validatePhases(action: ActionDefinition): void {\n const hasWriteback = action.phases.writeback !== undefined\n const hasEdits = action.phases.edits !== undefined\n const hasEffects = action.phases.effects !== undefined\n\n if (!hasWriteback && !hasEdits) {\n throw new ActionDefinitionError(missingActionMutationMessage(action.id))\n }\n\n if (hasEffects && !hasEdits) {\n throw new ActionDefinitionError(effectsWithoutEditsMessage(action.id))\n }\n }\n\n list(): readonly ActionDefinition[] {\n return [...this.byId.values()]\n }\n\n getById(id: string): ActionDefinition | null {\n return this.byId.get(id) ?? null\n }\n\n listGlobal(): readonly ActionDefinition[] {\n return [...this.globalActions]\n }\n\n listForType(type: ObjectType): readonly ObjectActionDefinition[] {\n this.ontology.resolveObjectType(type.id)\n\n const seen = new Set<string>()\n const result: ObjectActionDefinition[] = []\n\n for (const ancestor of this.ontology.listAncestorChain(type)) {\n for (const action of this.byTargetId.get(ancestor.id) ?? []) {\n if (seen.has(action.id)) continue\n seen.add(action.id)\n result.push(action)\n }\n }\n\n return result\n }\n\n private getInheritanceDuplicate(\n action: ActionDefinition,\n previous: ActionDefinition\n ): { objectTypeId: string; firstTargetId: string; secondTargetId: string } | null {\n if (!isObjectActionDefinition(action) || !isObjectActionDefinition(previous)) {\n return null\n }\n\n const actionObjectType = action.binding.objectType\n const previousObjectType = previous.binding.objectType\n\n if (actionObjectType.id === previousObjectType.id) {\n return null\n }\n\n const actionChain = this.ontology.listAncestorChain(actionObjectType)\n if (actionChain.some((ancestor) => ancestor.id === previousObjectType.id)) {\n return {\n objectTypeId: actionObjectType.id,\n firstTargetId: previousObjectType.id,\n secondTargetId: actionObjectType.id,\n }\n }\n\n const previousChain = this.ontology.listAncestorChain(previousObjectType)\n if (previousChain.some((ancestor) => ancestor.id === actionObjectType.id)) {\n return {\n objectTypeId: previousObjectType.id,\n firstTargetId: actionObjectType.id,\n secondTargetId: previousObjectType.id,\n }\n }\n\n return null\n }\n}\n",
|
|
96
|
-
"import { isActionDefinition } from \"../actions\"\nimport type { AgentSkillCatalog, AgentToolCatalog } from \"../agents\"\nimport type { ModelCatalog } from \"../models\"\nimport { isModelReasoning, modelReasoningSupportIssue } from \"../models/language-model\"\nimport type { SchemaOrRef, ValueType } from \"../ontology\"\nimport { validateSchemaOrRefValue } from \"../ontology/refs\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type { SecurityDefinitionCatalog } from \"../security\"\nimport { WorkflowDefinitionError, WorkflowValidationError } from \"./errors\"\nimport type {\n AgentStepDefinition,\n InterventionDefinition,\n InterventionFieldConfig,\n InterventionResponseConfig,\n StepDefinition,\n WorkflowActionNodeDefinition,\n WorkflowAgentNodeDefinition,\n WorkflowDefinition,\n WorkflowInterventionNodeDefinition,\n WorkflowNodeDefinition,\n WorkflowStepNodeDefinition,\n WorkflowTriggerDefinition,\n} from \"./types\"\n\nexport function assertNonEmpty(\n value: string,\n subject: \"Step\" | \"Agent step\" | \"Workflow\" | \"Intervention\",\n field: string\n): void {\n if (!value.trim()) {\n throw new WorkflowDefinitionError(`${subject} ${field} must not be empty.`)\n }\n}\n\nexport function isStepDefinition(value: unknown): value is StepDefinition {\n return (\n isRecord(value) &&\n value.kind === \"step\" &&\n typeof value.id === \"string\" &&\n isRecord(value.input) &&\n isRecord(value.output) &&\n typeof value.handler === \"function\"\n )\n}\n\nexport function isAgentStepDefinition(value: unknown): value is AgentStepDefinition {\n return (\n isRecord(value) &&\n value.kind === \"agentStep\" &&\n typeof value.id === \"string\" &&\n (value.model === undefined || isLanguageModel(value.model)) &&\n (value.reasoning === undefined || isModelReasoning(value.reasoning)) &&\n typeof value.instructions === \"string\" &&\n isStringArray(value.groupIds) &&\n isStringArray(value.toolNames) &&\n isStringArray(value.skillNames) &&\n isRecord(value.input) &&\n isRecord(value.output) &&\n typeof value.prompt === \"function\"\n )\n}\n\nexport function isInterventionDefinition(value: unknown): value is InterventionDefinition {\n return (\n isRecord(value) &&\n value.kind === \"intervention\" &&\n typeof value.id === \"string\" &&\n isRecord(value.input) &&\n isRecord(value.response) &&\n (value.defaults === undefined || typeof value.defaults === \"function\")\n )\n}\n\nexport function isWorkflowDefinition(value: unknown): value is WorkflowDefinition {\n return (\n isRecord(value) &&\n value.kind === \"workflow\" &&\n typeof value.id === \"string\" &&\n isRecord(value.input) &&\n Array.isArray(value.triggers) &&\n Array.isArray(value.nodes)\n )\n}\n\nexport function validateWorkflowDefinition(value: unknown): asserts value is WorkflowDefinition {\n if (!isWorkflowDefinition(value)) {\n throw new WorkflowDefinitionError(\"Invalid workflow definition.\")\n }\n\n assertNonEmpty(value.id, \"Workflow\", \"id\")\n\n if (value.nodes.length === 0) {\n throw new WorkflowDefinitionError(`Workflow \"${value.id}\" must contain at least one node.`)\n }\n\n const nodeIds = new Set<string>()\n const nodeKeys = new Set<string>()\n\n for (const node of value.nodes) {\n validateWorkflowNodeDefinition(value.id, node)\n\n if (nodeIds.has(node.id)) {\n throw new WorkflowDefinitionError(\n `Duplicate workflow node id \"${node.id}\" in workflow \"${value.id}\".`\n )\n }\n nodeIds.add(node.id)\n\n if (nodeKeys.has(node.key)) {\n throw new WorkflowDefinitionError(\n `Duplicate workflow node key \"${node.key}\" in workflow \"${value.id}\".`\n )\n }\n nodeKeys.add(node.key)\n }\n}\n\nexport function validateWorkflowsAtStartup(options: {\n workflows: readonly WorkflowDefinition[]\n registeredSchedules: ReadonlyMap<string, ScheduleDefinition>\n registeredActionIds: ReadonlySet<string>\n models?: ModelCatalog\n tools: AgentToolCatalog\n skills: AgentSkillCatalog\n}): readonly WorkflowDefinition[] {\n for (const workflow of options.workflows) {\n validateWorkflowDefinition(workflow)\n\n for (const trigger of workflow.triggers) {\n validateWorkflowTriggerAtStartup(\n workflow.id,\n trigger,\n options.registeredSchedules,\n Object.keys(workflow.input)\n )\n }\n\n for (const node of workflow.nodes) {\n if (node.type === \"action\" && !options.registeredActionIds.has(node.action.id)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflow.id}\" references unknown action \"${node.action.id}\". Add it to 'actions' in createSixb() or export it from 'actions/'.`\n )\n }\n if (node.type === \"agent\") {\n validateWorkflowAgentStepRuntimeReferences(workflow.id, node.agentStep, options)\n }\n }\n }\n\n return options.workflows\n}\n\n/** Validate workflow task memberships once the security catalog has been composed. */\nexport function validateWorkflowAgentStepGroupReferences(\n workflows: readonly WorkflowDefinition[],\n security: SecurityDefinitionCatalog\n): void {\n for (const workflow of workflows) {\n for (const node of workflow.nodes) {\n if (node.type !== \"agent\") continue\n for (const groupId of node.agentStep.groupIds) {\n if (!security.getGroupById(groupId)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflow.id}\" agent step \"${node.id}\" references unknown group \"${groupId}\". Add it to 'security/groups/' or pass it to createSixb({ groups }).`\n )\n }\n }\n }\n }\n}\n\nfunction validateWorkflowAgentStepRuntimeReferences(\n workflowId: string,\n step: AgentStepDefinition,\n options: {\n readonly models?: ModelCatalog\n readonly tools: AgentToolCatalog\n readonly skills: AgentSkillCatalog\n }\n): void {\n if (step.model === undefined && options.models?.language === undefined) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" needs a model. Configure 'models.language' or pass 'model' to defineAgentStep().`\n )\n }\n if (step.model !== undefined && options.models !== undefined) {\n const ref = { provider: step.model.providerId, modelId: step.model.modelId }\n if (options.models.language?.getByRef(ref) == null) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" uses unknown language model \"${ref.provider}/${ref.modelId}\". Add it to 'models.language' in createSixb().`\n )\n }\n }\n // Same rule as a catalog default: checked against the capabilities the model declares, so an\n // effort or token budget outside them fails at startup rather than on the step's first run.\n const model = step.model ?? options.models?.language?.default?.model\n if (step.reasoning !== undefined && model !== undefined) {\n const issue = modelReasoningSupportIssue(\n model.definition.capabilities.reasoning,\n step.reasoning\n )\n if (issue !== undefined) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" cannot use its reasoning with language model \"${model.providerId}/${model.modelId}\": ${issue}.`\n )\n }\n }\n for (const toolName of step.toolNames) {\n if (options.tools.getByName(toolName) === null) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" uses unknown project tool \"${toolName}\". Add it to 'tools' in createSixb().`\n )\n }\n }\n for (const skillName of step.skillNames) {\n if (options.skills.getByName(skillName) === null) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" uses unknown Agent Skill \"${skillName}\". Add it as 'skills/${skillName}/SKILL.md'.`\n )\n }\n }\n}\n\nexport function validateWorkflowInput(params: {\n readonly workflow: WorkflowDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.workflow.input,\n value: params.value,\n path: `Workflow \"${params.workflow.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowStepInput(params: {\n readonly workflowId: string\n readonly step: StepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.step.input,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" step \"${params.step.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowStepOutput(params: {\n readonly workflowId: string\n readonly step: StepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.step.output,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" step \"${params.step.id}\" output`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowInterventionInput(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.intervention.input,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowInterventionResponse(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowInterventionResponseRecord({\n response: params.intervention.response,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" response`,\n partial: false,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowInterventionDefaultResponse(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowInterventionResponseRecord({\n response: params.intervention.response,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" defaultResponse`,\n partial: true,\n valueTypesById: params.valueTypesById,\n })\n}\n\nfunction validateWorkflowTriggerAtStartup(\n workflowId: string,\n trigger: WorkflowTriggerDefinition,\n registeredSchedules: ReadonlyMap<string, ScheduleDefinition>,\n inputFields: readonly string[]\n): void {\n if (!isRecord(trigger) || trigger.type !== \"schedule\") {\n throw new WorkflowDefinitionError(`Workflow \"${workflowId}\" contains an unsupported trigger.`)\n }\n validateScheduleWorkflowTrigger(workflowId, trigger, registeredSchedules, inputFields)\n}\n\nfunction validateScheduleWorkflowTrigger(\n workflowId: string,\n trigger: Extract<WorkflowTriggerDefinition, { readonly type: \"schedule\" }>,\n registeredSchedules: ReadonlyMap<string, ScheduleDefinition>,\n inputFields: readonly string[]\n): void {\n if (typeof trigger.scheduleId !== \"string\" || !trigger.scheduleId.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains a schedule trigger with an empty schedule id.`\n )\n }\n\n const schedule = registeredSchedules.get(trigger.scheduleId)\n if (!schedule) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" references unknown schedule \"${trigger.scheduleId}\". Add it to 'schedules' in createSixb() or export it from 'schedules/'.`\n )\n }\n\n if (trigger.mapper !== undefined && typeof trigger.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" schedule \"${trigger.scheduleId}\" mapper must be a function.`\n )\n }\n\n if (trigger.mapper !== undefined && schedule.trigger.type !== \"event\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" cron schedule \"${trigger.scheduleId}\" does not accept a mapper.`\n )\n }\n\n if (trigger.mapper === undefined && inputFields.length > 0) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" schedule \"${trigger.scheduleId}\" requires a mapper because workflow input is not empty: ${inputFields.join(\", \")}.`\n )\n }\n}\n\nfunction validateWorkflowNodeDefinition(workflowId: string, node: WorkflowNodeDefinition): void {\n if (!isRecord(node)) {\n throw new WorkflowDefinitionError(`Workflow \"${workflowId}\" contains an invalid node.`)\n }\n\n if (node.type === \"step\") {\n validateStepNodeDefinition(workflowId, node)\n return\n }\n\n if (node.type === \"agent\") {\n validateAgentNodeDefinition(workflowId, node)\n return\n }\n\n if (node.type === \"intervention\") {\n validateInterventionNodeDefinition(workflowId, node)\n return\n }\n\n if (node.type === \"action\") {\n validateActionNodeDefinition(workflowId, node)\n return\n }\n\n throw new WorkflowDefinitionError(`Workflow \"${workflowId}\" contains an unsupported node type.`)\n}\n\nfunction validateAgentNodeDefinition(workflowId: string, node: WorkflowAgentNodeDefinition): void {\n if (typeof node.id !== \"string\" || !node.id.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an agent step with an empty id.`\n )\n }\n if (typeof node.key !== \"string\" || !node.key.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains agent step \"${node.id}\" with an empty derived key.`\n )\n }\n if (!isAgentStepDefinition(node.agentStep)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an invalid agent node \"${node.id}\".`\n )\n }\n if (node.id !== node.agentStep.id) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent node id \"${node.id}\" does not match agent step definition id \"${node.agentStep.id}\".`\n )\n }\n if (!node.agentStep.instructions.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${node.id}\" instructions must not be empty.`\n )\n }\n assertUniqueNonEmptyAgentStepValues(workflowId, node.id, \"group\", node.agentStep.groupIds)\n assertUniqueNonEmptyAgentStepValues(workflowId, node.id, \"tool\", node.agentStep.toolNames)\n assertUniqueNonEmptyAgentStepValues(workflowId, node.id, \"skill\", node.agentStep.skillNames)\n if (node.mapper !== undefined && typeof node.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent node \"${node.id}\" mapper must be a function.`\n )\n }\n}\n\nfunction assertUniqueNonEmptyAgentStepValues(\n workflowId: string,\n stepId: string,\n kind: \"group\" | \"tool\" | \"skill\",\n values: readonly string[]\n): void {\n const seen = new Set<string>()\n for (const value of values) {\n if (!value.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${stepId}\" has an empty ${kind} id.`\n )\n }\n if (seen.has(value)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${stepId}\" has duplicate ${kind} '${value}'.`\n )\n }\n seen.add(value)\n }\n}\n\nfunction isLanguageModel(value: unknown): boolean {\n return (typeof value === \"object\" || typeof value === \"function\") && value !== null\n}\n\nfunction isStringArray(value: unknown): value is readonly string[] {\n if (!Array.isArray(value)) return false\n for (let index = 0; index < value.length; index += 1) {\n if (!Object.hasOwn(value, index) || typeof value[index] !== \"string\") return false\n }\n return true\n}\n\nexport function validateWorkflowAgentStepInput(params: {\n readonly workflowId: string\n readonly agentStep: AgentStepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.agentStep.input,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" agent step \"${params.agentStep.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowAgentStepOutput(params: {\n readonly workflowId: string\n readonly agentStep: AgentStepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.agentStep.output,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" agent step \"${params.agentStep.id}\" output`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nfunction validateStepNodeDefinition(workflowId: string, node: WorkflowStepNodeDefinition): void {\n if (typeof node.id !== \"string\" || !node.id.trim()) {\n throw new WorkflowDefinitionError(`Workflow \"${workflowId}\" contains a step with an empty id.`)\n }\n\n if (typeof node.key !== \"string\" || !node.key.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains step \"${node.id}\" with an empty derived key.`\n )\n }\n\n if (!isStepDefinition(node.step)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an invalid step node \"${node.id}\".`\n )\n }\n\n if (node.id !== node.step.id) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" step node id \"${node.id}\" does not match step definition id \"${node.step.id}\".`\n )\n }\n\n if (node.mapper !== undefined && typeof node.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" step node \"${node.id}\" mapper must be a function.`\n )\n }\n}\n\nfunction validateInterventionNodeDefinition(\n workflowId: string,\n node: WorkflowInterventionNodeDefinition\n): void {\n if (typeof node.id !== \"string\" || !node.id.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an intervention with an empty id.`\n )\n }\n\n if (typeof node.key !== \"string\" || !node.key.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains intervention \"${node.id}\" with an empty derived key.`\n )\n }\n\n if (!isInterventionDefinition(node.intervention)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an invalid intervention node \"${node.id}\".`\n )\n }\n\n if (node.id !== node.intervention.id) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" intervention node id \"${node.id}\" does not match intervention definition id \"${node.intervention.id}\".`\n )\n }\n\n if (node.mapper !== undefined && typeof node.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" intervention node \"${node.id}\" mapper must be a function.`\n )\n }\n}\n\nfunction validateActionNodeDefinition(\n workflowId: string,\n node: WorkflowActionNodeDefinition\n): void {\n if (typeof node.id !== \"string\" || !node.id.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an action with an empty id.`\n )\n }\n\n if (typeof node.key !== \"string\" || !node.key.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains action \"${node.id}\" with an empty derived key.`\n )\n }\n\n if (!isActionDefinition(node.action)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an invalid action node \"${node.id}\".`\n )\n }\n\n if (node.id !== node.action.id) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" action node id \"${node.id}\" does not match action definition id \"${node.action.id}\".`\n )\n }\n\n if (node.mapper !== undefined && typeof node.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" action node \"${node.id}\" mapper must be a function.`\n )\n }\n}\n\nfunction validateWorkflowContractRecord(params: {\n readonly shape: Readonly<Record<string, unknown>>\n readonly value: unknown\n readonly path: string\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n if (!isRecord(params.value)) {\n throw new WorkflowValidationError(`[Sixb] ${params.path} must be an object`)\n }\n\n const fieldIds = new Set(Object.keys(params.shape))\n for (const fieldId of Object.keys(params.value)) {\n if (!fieldIds.has(fieldId)) {\n throw new WorkflowValidationError(`[Sixb] Unknown field '${params.path}.${fieldId}'`)\n }\n }\n\n for (const [fieldId, schema] of Object.entries(params.shape)) {\n const fieldValue = params.value[fieldId]\n if (fieldValue === undefined) {\n throw new WorkflowValidationError(`[Sixb] Missing required field '${params.path}.${fieldId}'`)\n }\n\n try {\n validateSchemaOrRefValue(\n schema as SchemaOrRef,\n fieldValue,\n `${params.path}.${fieldId}`,\n params.valueTypesById\n )\n } catch (error) {\n throw toWorkflowValidationError(error)\n }\n }\n\n return params.value\n}\n\nfunction validateWorkflowInterventionResponseRecord(params: {\n readonly response: InterventionResponseConfig\n readonly value: unknown\n readonly path: string\n readonly partial: boolean\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n if (!isRecord(params.value)) {\n throw new WorkflowValidationError(`[Sixb] ${params.path} must be an object`)\n }\n\n const fieldIds = new Set(Object.keys(params.response))\n for (const fieldId of Object.keys(params.value)) {\n if (!fieldIds.has(fieldId)) {\n throw new WorkflowValidationError(`[Sixb] Unknown field '${params.path}.${fieldId}'`)\n }\n }\n\n for (const [fieldId, field] of Object.entries(params.response)) {\n const fieldValue = params.value[fieldId]\n if (fieldValue === undefined) {\n if (!params.partial && isInterventionResponseFieldRequired(field)) {\n throw new WorkflowValidationError(\n `[Sixb] Missing required field '${params.path}.${fieldId}'`\n )\n }\n continue\n }\n\n try {\n validateSchemaOrRefValue(\n interventionResponseFieldSchema(field),\n fieldValue,\n `${params.path}.${fieldId}`,\n params.valueTypesById\n )\n } catch (error) {\n throw toWorkflowValidationError(error)\n }\n }\n\n return params.value\n}\n\nexport function isInterventionFieldConfig(value: unknown): value is InterventionFieldConfig {\n return isRecord(value) && \"schema\" in value\n}\n\nexport function interventionResponseFieldSchema(field: unknown): SchemaOrRef {\n return (isInterventionFieldConfig(field) ? field.schema : field) as SchemaOrRef\n}\n\nexport function isInterventionResponseFieldRequired(field: unknown): boolean {\n return !isInterventionFieldConfig(field) || field.required !== false\n}\n\nfunction toWorkflowValidationError(error: unknown): WorkflowValidationError {\n if (error instanceof WorkflowValidationError) {\n return error\n }\n\n if (error instanceof Error) {\n return new WorkflowValidationError(error.message, { cause: error })\n }\n\n return new WorkflowValidationError(String(error), { cause: error })\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n",
|
|
90
|
+
"import { isActionDefinition } from \"../actions\"\nimport type { AgentSkillCatalog, AgentToolCatalog } from \"../agents\"\nimport type { ModelCatalog } from \"../models\"\nimport { isModelReasoning, modelReasoningSupportIssue } from \"../models/language-model\"\nimport type { SchemaOrRef, ValueType } from \"../ontology\"\nimport { validateSchemaOrRefValue } from \"../ontology/refs\"\nimport type { SandboxFactory } from \"../sandboxes\"\nimport {\n type SandboxEnvironment,\n sandboxCredentialIssue,\n staticSandboxRecipe,\n} from \"../sandboxes/configuration\"\nimport { SandboxError } from \"../sandboxes/errors\"\nimport type { ScheduleDefinition } from \"../schedules\"\nimport type { SecurityDefinitionCatalog } from \"../security\"\nimport { WorkflowDefinitionError, WorkflowValidationError } from \"./errors\"\nimport type {\n AgentStepDefinition,\n InterventionDefinition,\n InterventionFieldConfig,\n InterventionResponseConfig,\n StepDefinition,\n WorkflowActionNodeDefinition,\n WorkflowAgentNodeDefinition,\n WorkflowDefinition,\n WorkflowInterventionNodeDefinition,\n WorkflowNodeDefinition,\n WorkflowStepNodeDefinition,\n WorkflowTriggerDefinition,\n} from \"./types\"\n\nexport function assertNonEmpty(\n value: string,\n subject: \"Step\" | \"Agent step\" | \"Workflow\" | \"Intervention\",\n field: string\n): void {\n if (!value.trim()) {\n throw new WorkflowDefinitionError(`${subject} ${field} must not be empty.`)\n }\n}\n\nexport function isStepDefinition(value: unknown): value is StepDefinition {\n return (\n isRecord(value) &&\n value.kind === \"step\" &&\n typeof value.id === \"string\" &&\n isRecord(value.input) &&\n isRecord(value.output) &&\n typeof value.handler === \"function\"\n )\n}\n\nexport function isAgentStepDefinition(value: unknown): value is AgentStepDefinition {\n return (\n isRecord(value) &&\n value.kind === \"agentStep\" &&\n typeof value.id === \"string\" &&\n (value.model === undefined || isLanguageModel(value.model)) &&\n (value.reasoning === undefined || isModelReasoning(value.reasoning)) &&\n typeof value.instructions === \"string\" &&\n isStringArray(value.groupIds) &&\n isStringArray(value.toolNames) &&\n isStringArray(value.skillNames) &&\n isRecord(value.input) &&\n isRecord(value.output) &&\n typeof value.prompt === \"function\"\n )\n}\n\nexport function isInterventionDefinition(value: unknown): value is InterventionDefinition {\n return (\n isRecord(value) &&\n value.kind === \"intervention\" &&\n typeof value.id === \"string\" &&\n isRecord(value.input) &&\n isRecord(value.response) &&\n (value.defaults === undefined || typeof value.defaults === \"function\")\n )\n}\n\nexport function isWorkflowDefinition(value: unknown): value is WorkflowDefinition {\n return (\n isRecord(value) &&\n value.kind === \"workflow\" &&\n typeof value.id === \"string\" &&\n isRecord(value.input) &&\n Array.isArray(value.triggers) &&\n Array.isArray(value.nodes)\n )\n}\n\nexport function validateWorkflowDefinition(value: unknown): asserts value is WorkflowDefinition {\n if (!isWorkflowDefinition(value)) {\n throw new WorkflowDefinitionError(\"Invalid workflow definition.\")\n }\n\n assertNonEmpty(value.id, \"Workflow\", \"id\")\n\n if (value.nodes.length === 0) {\n throw new WorkflowDefinitionError(`Workflow \"${value.id}\" must contain at least one node.`)\n }\n\n const nodeIds = new Set<string>()\n const nodeKeys = new Set<string>()\n\n for (const node of value.nodes) {\n validateWorkflowNodeDefinition(value.id, node)\n\n if (nodeIds.has(node.id)) {\n throw new WorkflowDefinitionError(\n `Duplicate workflow node id \"${node.id}\" in workflow \"${value.id}\".`\n )\n }\n nodeIds.add(node.id)\n\n if (nodeKeys.has(node.key)) {\n throw new WorkflowDefinitionError(\n `Duplicate workflow node key \"${node.key}\" in workflow \"${value.id}\".`\n )\n }\n nodeKeys.add(node.key)\n }\n}\n\nexport function validateWorkflowsAtStartup(options: {\n workflows: readonly WorkflowDefinition[]\n registeredSchedules: ReadonlyMap<string, ScheduleDefinition>\n registeredActionIds: ReadonlySet<string>\n models?: ModelCatalog\n tools: AgentToolCatalog\n skills: AgentSkillCatalog\n}): readonly WorkflowDefinition[] {\n for (const workflow of options.workflows) {\n validateWorkflowDefinition(workflow)\n\n for (const trigger of workflow.triggers) {\n validateWorkflowTriggerAtStartup(\n workflow.id,\n trigger,\n options.registeredSchedules,\n Object.keys(workflow.input)\n )\n }\n\n for (const node of workflow.nodes) {\n if (node.type === \"action\" && !options.registeredActionIds.has(node.action.id)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflow.id}\" references unknown action \"${node.action.id}\". Add it to 'actions' in createSixb() or export it from 'actions/'.`\n )\n }\n if (node.type === \"agent\") {\n validateWorkflowAgentStepRuntimeReferences(workflow.id, node.agentStep, options)\n }\n }\n }\n\n return options.workflows\n}\n\n/** Validate workflow task memberships once the security catalog has been composed. */\nexport function validateWorkflowAgentStepGroupReferences(\n workflows: readonly WorkflowDefinition[],\n security: SecurityDefinitionCatalog\n): void {\n for (const workflow of workflows) {\n for (const node of workflow.nodes) {\n if (node.type !== \"agent\") continue\n for (const groupId of node.agentStep.groupIds) {\n if (!security.getGroupById(groupId)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflow.id}\" agent step \"${node.id}\" references unknown group \"${groupId}\". Add it to 'security/groups/' or pass it to createSixb({ groups }).`\n )\n }\n }\n }\n }\n}\n\nfunction validateWorkflowAgentStepRuntimeReferences(\n workflowId: string,\n step: AgentStepDefinition,\n options: {\n readonly models?: ModelCatalog\n readonly tools: AgentToolCatalog\n readonly skills: AgentSkillCatalog\n }\n): void {\n if (step.model === undefined && options.models?.language === undefined) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" needs a model. Configure 'models.language' or pass 'model' to defineAgentStep().`\n )\n }\n if (step.model !== undefined && options.models !== undefined) {\n const ref = { provider: step.model.providerId, modelId: step.model.modelId }\n if (options.models.language?.getByRef(ref) == null) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" uses unknown language model \"${ref.provider}/${ref.modelId}\". Add it to 'models.language' in createSixb().`\n )\n }\n }\n // Same rule as a catalog default: checked against the capabilities the model declares, so an\n // effort or token budget outside them fails at startup rather than on the step's first run.\n const model = step.model ?? options.models?.language?.default?.model\n if (step.reasoning !== undefined && model !== undefined) {\n const issue = modelReasoningSupportIssue(\n model.definition.capabilities.reasoning,\n step.reasoning\n )\n if (issue !== undefined) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" cannot use its reasoning with language model \"${model.providerId}/${model.modelId}\": ${issue}.`\n )\n }\n }\n for (const toolName of step.toolNames) {\n if (options.tools.getByName(toolName) === null) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" uses unknown project tool \"${toolName}\". Add it to 'tools' in createSixb().`\n )\n }\n }\n for (const skillName of step.skillNames) {\n if (options.skills.getByName(skillName) === null) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${step.id}\" uses unknown Agent Skill \"${skillName}\". Add it as 'skills/${skillName}/SKILL.md'.`\n )\n }\n }\n}\n\nexport function validateWorkflowInput(params: {\n readonly workflow: WorkflowDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.workflow.input,\n value: params.value,\n path: `Workflow \"${params.workflow.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowStepInput(params: {\n readonly workflowId: string\n readonly step: StepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.step.input,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" step \"${params.step.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowStepOutput(params: {\n readonly workflowId: string\n readonly step: StepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.step.output,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" step \"${params.step.id}\" output`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowInterventionInput(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.intervention.input,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowInterventionResponse(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowInterventionResponseRecord({\n response: params.intervention.response,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" response`,\n partial: false,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowInterventionDefaultResponse(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowInterventionResponseRecord({\n response: params.intervention.response,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" defaultResponse`,\n partial: true,\n valueTypesById: params.valueTypesById,\n })\n}\n\nfunction validateWorkflowTriggerAtStartup(\n workflowId: string,\n trigger: WorkflowTriggerDefinition,\n registeredSchedules: ReadonlyMap<string, ScheduleDefinition>,\n inputFields: readonly string[]\n): void {\n if (!isRecord(trigger) || trigger.type !== \"schedule\") {\n throw new WorkflowDefinitionError(`Workflow \"${workflowId}\" contains an unsupported trigger.`)\n }\n validateScheduleWorkflowTrigger(workflowId, trigger, registeredSchedules, inputFields)\n}\n\nfunction validateScheduleWorkflowTrigger(\n workflowId: string,\n trigger: Extract<WorkflowTriggerDefinition, { readonly type: \"schedule\" }>,\n registeredSchedules: ReadonlyMap<string, ScheduleDefinition>,\n inputFields: readonly string[]\n): void {\n if (typeof trigger.scheduleId !== \"string\" || !trigger.scheduleId.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains a schedule trigger with an empty schedule id.`\n )\n }\n\n const schedule = registeredSchedules.get(trigger.scheduleId)\n if (!schedule) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" references unknown schedule \"${trigger.scheduleId}\". Add it to 'schedules' in createSixb() or export it from 'schedules/'.`\n )\n }\n\n if (trigger.mapper !== undefined && typeof trigger.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" schedule \"${trigger.scheduleId}\" mapper must be a function.`\n )\n }\n\n if (trigger.mapper !== undefined && schedule.trigger.type !== \"event\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" cron schedule \"${trigger.scheduleId}\" does not accept a mapper.`\n )\n }\n\n if (trigger.mapper === undefined && inputFields.length > 0) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" schedule \"${trigger.scheduleId}\" requires a mapper because workflow input is not empty: ${inputFields.join(\", \")}.`\n )\n }\n}\n\nfunction validateWorkflowNodeDefinition(workflowId: string, node: WorkflowNodeDefinition): void {\n if (!isRecord(node)) {\n throw new WorkflowDefinitionError(`Workflow \"${workflowId}\" contains an invalid node.`)\n }\n\n if (node.type === \"step\") {\n validateStepNodeDefinition(workflowId, node)\n return\n }\n\n if (node.type === \"agent\") {\n validateAgentNodeDefinition(workflowId, node)\n return\n }\n\n if (node.type === \"intervention\") {\n validateInterventionNodeDefinition(workflowId, node)\n return\n }\n\n if (node.type === \"action\") {\n validateActionNodeDefinition(workflowId, node)\n return\n }\n\n throw new WorkflowDefinitionError(`Workflow \"${workflowId}\" contains an unsupported node type.`)\n}\n\nfunction validateAgentNodeDefinition(workflowId: string, node: WorkflowAgentNodeDefinition): void {\n if (typeof node.id !== \"string\" || !node.id.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an agent step with an empty id.`\n )\n }\n if (typeof node.key !== \"string\" || !node.key.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains agent step \"${node.id}\" with an empty derived key.`\n )\n }\n if (!isAgentStepDefinition(node.agentStep)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an invalid agent node \"${node.id}\".`\n )\n }\n if (node.id !== node.agentStep.id) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent node id \"${node.id}\" does not match agent step definition id \"${node.agentStep.id}\".`\n )\n }\n if (!node.agentStep.instructions.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${node.id}\" instructions must not be empty.`\n )\n }\n assertUniqueNonEmptyAgentStepValues(workflowId, node.id, \"group\", node.agentStep.groupIds)\n assertUniqueNonEmptyAgentStepValues(workflowId, node.id, \"tool\", node.agentStep.toolNames)\n assertUniqueNonEmptyAgentStepValues(workflowId, node.id, \"skill\", node.agentStep.skillNames)\n\n // A hand-built node skips defineAgentStep, so its sandbox is checked again here.\n if (node.agentStep.sandbox !== undefined) {\n assertAgentStepSandbox(\n node.agentStep.sandbox,\n `Workflow \"${workflowId}\" agent step \"${node.id}\"`\n )\n }\n\n if (node.mapper !== undefined && typeof node.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent node \"${node.id}\" mapper must be a function.`\n )\n }\n}\n\n/**\n * Reject a value that cannot be an Agent step's sandbox; `step` names it in the error. A step has\n * no thread to bind params to, so only a static recipe applies. Its network must let the agent\n * reach the Sixb API. Its source access must pass the rule a project factory passes at startup.\n */\nexport function assertAgentStepSandbox(\n value: unknown,\n step: string\n): asserts value is SandboxFactory {\n const fail = (issue: string, cause?: unknown): never => {\n throw new WorkflowDefinitionError(\n `${step} sandbox ${issue}`,\n cause === undefined ? undefined : { cause }\n )\n }\n\n if (!isRecord(value) || typeof value.create !== \"function\") {\n return fail(\"must be a sandbox factory with a create function.\")\n }\n\n const { configuration } = value\n if (configuration === undefined) return\n if (!isRecord(configuration)) return fail(\"configuration must be a sandbox recipe object.\")\n if (configuration.params !== undefined || configuration.resolve !== undefined) {\n return fail(\"must use a static recipe: params and resolve are not supported in workflow steps.\")\n }\n\n let recipe: SandboxEnvironment\n try {\n recipe = staticSandboxRecipe(configuration)\n } catch (error) {\n if (!(error instanceof SandboxError)) throw error\n // Recipe validation names the invalid field, never its value.\n return fail(`recipe is invalid: ${error.message.replace(/^\\[Sixb\\] /, \"\")}`, error)\n }\n\n // Sixb adds its API to every other policy when the step runs, so only none cannot reach it.\n if (recipe.network?.mode === \"none\") {\n return fail(\n 'network mode \"none\" cannot run an agent: the agent needs the Sixb API. Use { mode: \"restricted\", allow: [...] } with the origins the project needs; Sixb adds its own.'\n )\n }\n\n const { auth } = configuration\n if (auth !== undefined && !(isRecord(auth) && typeof auth.authorize === \"function\")) {\n return fail(\"auth requires an authorize function.\")\n }\n\n const credentialIssue = sandboxCredentialIssue({\n supportsRequestCredentials: value.supportsRequestCredentials === true,\n auth,\n source: recipe.source,\n })\n if (credentialIssue) fail(`is invalid: ${credentialIssue}`)\n}\n\nfunction assertUniqueNonEmptyAgentStepValues(\n workflowId: string,\n stepId: string,\n kind: \"group\" | \"tool\" | \"skill\",\n values: readonly string[]\n): void {\n const seen = new Set<string>()\n for (const value of values) {\n if (!value.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${stepId}\" has an empty ${kind} id.`\n )\n }\n if (seen.has(value)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" agent step \"${stepId}\" has duplicate ${kind} '${value}'.`\n )\n }\n seen.add(value)\n }\n}\n\nfunction isLanguageModel(value: unknown): boolean {\n return (typeof value === \"object\" || typeof value === \"function\") && value !== null\n}\n\nfunction isStringArray(value: unknown): value is readonly string[] {\n if (!Array.isArray(value)) return false\n for (let index = 0; index < value.length; index += 1) {\n if (!Object.hasOwn(value, index) || typeof value[index] !== \"string\") return false\n }\n return true\n}\n\nexport function validateWorkflowAgentStepInput(params: {\n readonly workflowId: string\n readonly agentStep: AgentStepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.agentStep.input,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" agent step \"${params.agentStep.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function validateWorkflowAgentStepOutput(params: {\n readonly workflowId: string\n readonly agentStep: AgentStepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n return validateWorkflowContractRecord({\n shape: params.agentStep.output,\n value: params.value,\n path: `Workflow \"${params.workflowId}\" agent step \"${params.agentStep.id}\" output`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nfunction validateStepNodeDefinition(workflowId: string, node: WorkflowStepNodeDefinition): void {\n if (typeof node.id !== \"string\" || !node.id.trim()) {\n throw new WorkflowDefinitionError(`Workflow \"${workflowId}\" contains a step with an empty id.`)\n }\n\n if (typeof node.key !== \"string\" || !node.key.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains step \"${node.id}\" with an empty derived key.`\n )\n }\n\n if (!isStepDefinition(node.step)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an invalid step node \"${node.id}\".`\n )\n }\n\n if (node.id !== node.step.id) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" step node id \"${node.id}\" does not match step definition id \"${node.step.id}\".`\n )\n }\n\n if (node.mapper !== undefined && typeof node.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" step node \"${node.id}\" mapper must be a function.`\n )\n }\n}\n\nfunction validateInterventionNodeDefinition(\n workflowId: string,\n node: WorkflowInterventionNodeDefinition\n): void {\n if (typeof node.id !== \"string\" || !node.id.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an intervention with an empty id.`\n )\n }\n\n if (typeof node.key !== \"string\" || !node.key.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains intervention \"${node.id}\" with an empty derived key.`\n )\n }\n\n if (!isInterventionDefinition(node.intervention)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an invalid intervention node \"${node.id}\".`\n )\n }\n\n if (node.id !== node.intervention.id) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" intervention node id \"${node.id}\" does not match intervention definition id \"${node.intervention.id}\".`\n )\n }\n\n if (node.mapper !== undefined && typeof node.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" intervention node \"${node.id}\" mapper must be a function.`\n )\n }\n}\n\nfunction validateActionNodeDefinition(\n workflowId: string,\n node: WorkflowActionNodeDefinition\n): void {\n if (typeof node.id !== \"string\" || !node.id.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an action with an empty id.`\n )\n }\n\n if (typeof node.key !== \"string\" || !node.key.trim()) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains action \"${node.id}\" with an empty derived key.`\n )\n }\n\n if (!isActionDefinition(node.action)) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" contains an invalid action node \"${node.id}\".`\n )\n }\n\n if (node.id !== node.action.id) {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" action node id \"${node.id}\" does not match action definition id \"${node.action.id}\".`\n )\n }\n\n if (node.mapper !== undefined && typeof node.mapper !== \"function\") {\n throw new WorkflowDefinitionError(\n `Workflow \"${workflowId}\" action node \"${node.id}\" mapper must be a function.`\n )\n }\n}\n\nfunction validateWorkflowContractRecord(params: {\n readonly shape: Readonly<Record<string, unknown>>\n readonly value: unknown\n readonly path: string\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n if (!isRecord(params.value)) {\n throw new WorkflowValidationError(`[Sixb] ${params.path} must be an object`)\n }\n\n const fieldIds = new Set(Object.keys(params.shape))\n for (const fieldId of Object.keys(params.value)) {\n if (!fieldIds.has(fieldId)) {\n throw new WorkflowValidationError(`[Sixb] Unknown field '${params.path}.${fieldId}'`)\n }\n }\n\n for (const [fieldId, schema] of Object.entries(params.shape)) {\n const fieldValue = params.value[fieldId]\n if (fieldValue === undefined) {\n throw new WorkflowValidationError(`[Sixb] Missing required field '${params.path}.${fieldId}'`)\n }\n\n try {\n validateSchemaOrRefValue(\n schema as SchemaOrRef,\n fieldValue,\n `${params.path}.${fieldId}`,\n params.valueTypesById\n )\n } catch (error) {\n throw toWorkflowValidationError(error)\n }\n }\n\n return params.value\n}\n\nfunction validateWorkflowInterventionResponseRecord(params: {\n readonly response: InterventionResponseConfig\n readonly value: unknown\n readonly path: string\n readonly partial: boolean\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): Readonly<Record<string, unknown>> {\n if (!isRecord(params.value)) {\n throw new WorkflowValidationError(`[Sixb] ${params.path} must be an object`)\n }\n\n const fieldIds = new Set(Object.keys(params.response))\n for (const fieldId of Object.keys(params.value)) {\n if (!fieldIds.has(fieldId)) {\n throw new WorkflowValidationError(`[Sixb] Unknown field '${params.path}.${fieldId}'`)\n }\n }\n\n for (const [fieldId, field] of Object.entries(params.response)) {\n const fieldValue = params.value[fieldId]\n if (fieldValue === undefined) {\n if (!params.partial && isInterventionResponseFieldRequired(field)) {\n throw new WorkflowValidationError(\n `[Sixb] Missing required field '${params.path}.${fieldId}'`\n )\n }\n continue\n }\n\n try {\n validateSchemaOrRefValue(\n interventionResponseFieldSchema(field),\n fieldValue,\n `${params.path}.${fieldId}`,\n params.valueTypesById\n )\n } catch (error) {\n throw toWorkflowValidationError(error)\n }\n }\n\n return params.value\n}\n\nexport function isInterventionFieldConfig(value: unknown): value is InterventionFieldConfig {\n return isRecord(value) && \"schema\" in value\n}\n\nexport function interventionResponseFieldSchema(field: unknown): SchemaOrRef {\n return (isInterventionFieldConfig(field) ? field.schema : field) as SchemaOrRef\n}\n\nexport function isInterventionResponseFieldRequired(field: unknown): boolean {\n return !isInterventionFieldConfig(field) || field.required !== false\n}\n\nfunction toWorkflowValidationError(error: unknown): WorkflowValidationError {\n if (error instanceof WorkflowValidationError) {\n return error\n }\n\n if (error instanceof Error) {\n return new WorkflowValidationError(error.message, { cause: error })\n }\n\n return new WorkflowValidationError(String(error), { cause: error })\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n",
|
|
97
91
|
"import type { ActionSubject } from \"../actions\"\nimport { isPlainRecord, type JsonValue } from \"../json\"\nimport { isObjectRefSchema, type Schema, type SchemaOrRef, type ValueType } from \"../ontology\"\nimport { WorkflowValidationError } from \"./errors\"\nimport type {\n AgentStepDefinition,\n InterventionDefinition,\n InterventionResponseConfig,\n StepDefinition,\n WorkflowDefinition,\n WorkflowIOSnapshot,\n} from \"./types\"\nimport {\n interventionResponseFieldSchema,\n validateWorkflowAgentStepInput,\n validateWorkflowAgentStepOutput,\n validateWorkflowInput,\n validateWorkflowInterventionDefaultResponse,\n validateWorkflowInterventionInput,\n validateWorkflowInterventionResponse,\n validateWorkflowStepInput,\n validateWorkflowStepOutput,\n} from \"./validation\"\n\nexport function snapshotWorkflowAgentStepInput(params: {\n readonly workflowId: string\n readonly agentStep: AgentStepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const value = validateWorkflowAgentStepInput(params)\n return snapshotWorkflowContractRecord({\n shape: params.agentStep.input as Readonly<Record<string, SchemaOrRef>>,\n value,\n path: `Workflow \"${params.workflowId}\" agent step \"${params.agentStep.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function snapshotWorkflowAgentStepOutput(params: {\n readonly workflowId: string\n readonly agentStep: AgentStepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const value = validateWorkflowAgentStepOutput(params)\n return snapshotWorkflowContractRecord({\n shape: params.agentStep.output as Readonly<Record<string, SchemaOrRef>>,\n value,\n path: `Workflow \"${params.workflowId}\" agent step \"${params.agentStep.id}\" output`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function snapshotWorkflowInput(params: {\n readonly workflow: WorkflowDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const value = validateWorkflowInput(params)\n return snapshotWorkflowContractRecord({\n shape: params.workflow.input as Readonly<Record<string, SchemaOrRef>>,\n value,\n path: `Workflow \"${params.workflow.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function snapshotWorkflowStepInput(params: {\n readonly workflowId: string\n readonly step: StepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const value = validateWorkflowStepInput(params)\n return snapshotWorkflowContractRecord({\n shape: params.step.input as Readonly<Record<string, SchemaOrRef>>,\n value,\n path: `Workflow \"${params.workflowId}\" step \"${params.step.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function snapshotWorkflowStepOutput(params: {\n readonly workflowId: string\n readonly step: StepDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const value = validateWorkflowStepOutput(params)\n return snapshotWorkflowContractRecord({\n shape: params.step.output as Readonly<Record<string, SchemaOrRef>>,\n value,\n path: `Workflow \"${params.workflowId}\" step \"${params.step.id}\" output`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function snapshotWorkflowInterventionInput(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const value = validateWorkflowInterventionInput(params)\n return snapshotWorkflowContractRecord({\n shape: params.intervention.input as Readonly<Record<string, SchemaOrRef>>,\n value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" input`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function snapshotWorkflowInterventionResponse(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const value = validateWorkflowInterventionResponse(params)\n return snapshotWorkflowInterventionResponseRecord({\n response: params.intervention.response,\n value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" response`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function snapshotWorkflowInterventionDefaultResponse(params: {\n readonly workflowId: string\n readonly intervention: InterventionDefinition\n readonly value: unknown\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const value = validateWorkflowInterventionDefaultResponse(params)\n return snapshotWorkflowInterventionResponseRecord({\n response: params.intervention.response,\n value,\n path: `Workflow \"${params.workflowId}\" intervention \"${params.intervention.id}\" defaultResponse`,\n valueTypesById: params.valueTypesById,\n })\n}\n\nexport function snapshotWorkflowActionInput(params: {\n readonly subject?: ActionSubject\n readonly params: Readonly<Record<string, unknown>>\n}): WorkflowIOSnapshot {\n const snapshot: Record<string, JsonValue> = {\n params: snapshotJsonValue(params.params, \"Workflow action params\"),\n }\n\n if (params.subject && params.subject.kind !== \"none\") {\n snapshot.subject = snapshotJsonValue(params.subject, \"Workflow action subject\")\n }\n\n return snapshot\n}\n\nfunction snapshotWorkflowContractRecord(params: {\n readonly shape: Readonly<Record<string, SchemaOrRef>>\n readonly value: Readonly<Record<string, unknown>>\n readonly path: string\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const snapshot: Record<string, JsonValue> = {}\n\n for (const [fieldId, schema] of Object.entries(params.shape)) {\n snapshot[fieldId] = snapshotSchemaOrRefValue({\n schema,\n value: params.value[fieldId],\n path: `${params.path}.${fieldId}`,\n valueTypesById: params.valueTypesById,\n })\n }\n\n return snapshot\n}\n\nfunction snapshotWorkflowInterventionResponseRecord(params: {\n readonly response: InterventionResponseConfig\n readonly value: Readonly<Record<string, unknown>>\n readonly path: string\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): WorkflowIOSnapshot {\n const snapshot: Record<string, JsonValue> = {}\n\n for (const [fieldId, value] of Object.entries(params.value)) {\n if (value === undefined) {\n continue\n }\n\n snapshot[fieldId] = snapshotSchemaOrRefValue({\n schema: interventionResponseFieldSchema(params.response[fieldId]),\n value,\n path: `${params.path}.${fieldId}`,\n valueTypesById: params.valueTypesById,\n })\n }\n\n return snapshot\n}\n\nfunction snapshotSchemaOrRefValue(params: {\n readonly schema: SchemaOrRef\n readonly value: unknown\n readonly path: string\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): JsonValue {\n if (isObjectRefSchema(params.schema)) {\n if (!isRecord(params.value)) {\n throw cannotSerialize(params.path)\n }\n\n return {\n objectTypeId: String(params.value.objectTypeId),\n primaryId: String(params.value.primaryId),\n }\n }\n\n return snapshotSchemaValue({\n schema: params.schema,\n value: params.value,\n path: params.path,\n valueTypesById: params.valueTypesById,\n })\n}\n\nfunction snapshotSchemaValue(params: {\n readonly schema: Schema\n readonly value: unknown\n readonly path: string\n readonly valueTypesById: ReadonlyMap<string, ValueType>\n}): JsonValue {\n const { schema, value, path, valueTypesById } = params\n\n if (typeof schema === \"string\") {\n switch (schema) {\n case \"date\":\n case \"timestamp\":\n return value instanceof Date ? snapshotDate(value, path) : snapshotJsonValue(value, path)\n case \"string\":\n case \"uuid\":\n case \"integer\":\n case \"double\":\n case \"decimal\":\n case \"boolean\":\n case \"fileRef\":\n case \"userRef\":\n return snapshotJsonValue(value, path)\n default:\n schema satisfies never\n return snapshotJsonValue(value, path)\n }\n }\n\n if (schema.type === \"enum\") {\n return snapshotJsonValue(value, path)\n }\n\n if (schema.type === \"array\") {\n if (!Array.isArray(value)) {\n throw cannotSerialize(path)\n }\n\n return value.map((item, index) =>\n snapshotSchemaValue({\n schema: schema.items,\n value: item,\n path: `${path}[${index}]`,\n valueTypesById,\n })\n )\n }\n\n if (schema.type === \"map\") {\n if (!isRecord(value)) {\n throw cannotSerialize(path)\n }\n\n const snapshot: Record<string, JsonValue> = {}\n for (const [key, entry] of Object.entries(value)) {\n snapshot[key] = snapshotSchemaValue({\n schema: schema.valueSchema,\n value: entry,\n path: `${path}.${key}`,\n valueTypesById,\n })\n }\n return snapshot\n }\n\n if (schema.type === \"object\") {\n if (!isRecord(value)) {\n throw cannotSerialize(path)\n }\n\n const snapshot: Record<string, JsonValue> = {}\n for (const [fieldId, field] of Object.entries(schema.properties)) {\n const fieldValue = value[fieldId]\n if (fieldValue === undefined) {\n continue\n }\n\n if (fieldValue === null) {\n snapshot[fieldId] = null\n continue\n }\n\n snapshot[fieldId] = snapshotSchemaValue({\n schema: field.schema,\n value: fieldValue,\n path: `${path}.${fieldId}`,\n valueTypesById,\n })\n }\n return snapshot\n }\n\n if (schema.type === \"valueTypeRef\") {\n const valueType = valueTypesById.get(schema.valueTypeId)\n if (!valueType) {\n throw new WorkflowValidationError(\n `[Sixb] Unknown valueTypeRef '${schema.valueTypeId}' at ${path}`\n )\n }\n\n return snapshotSchemaValue({\n schema: valueType.schema,\n value,\n path,\n valueTypesById,\n })\n }\n\n return snapshotJsonValue(value, path)\n}\n\nfunction snapshotJsonValue(value: unknown, path: string): JsonValue {\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\") {\n return value\n }\n\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw cannotSerialize(path)\n }\n return value\n }\n\n if (value instanceof Date) {\n return snapshotDate(value, path)\n }\n\n if (Array.isArray(value)) {\n return value.map((item, index) => snapshotJsonValue(item, `${path}[${index}]`))\n }\n\n if (isPlainRecord(value)) {\n const snapshot: Record<string, JsonValue> = {}\n for (const [key, entry] of Object.entries(value)) {\n snapshot[key] = snapshotJsonValue(entry, `${path}.${key}`)\n }\n return snapshot\n }\n\n throw cannotSerialize(path)\n}\n\nfunction snapshotDate(value: Date, path: string): string {\n if (Number.isNaN(value.getTime())) {\n throw cannotSerialize(path)\n }\n\n return value.toISOString()\n}\n\nfunction cannotSerialize(path: string): WorkflowValidationError {\n return new WorkflowValidationError(`[Sixb] ${path} cannot be serialized as workflow IO`)\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n",
|
|
98
92
|
"import { assertAuthorized } from \"../authorization\"\nimport { resolveExecutionScopeAuthorization } from \"../execution/authorization\"\nimport {\n createPrimitiveExecutionRecord,\n ensureExecutionRecord,\n executionRecordInputFromRuntime,\n} from \"../execution/durable\"\nimport type { ExecutionContext } from \"../execution/types\"\nimport { assertValidFileRefs } from \"../ontology/validation\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport { dispatchWorkflowRun } from \"./run-dispatch\"\nimport type { WorkflowDefinition, WorkflowRunSource } from \"./types\"\n\nexport interface WorkflowRunRequestOptions {\n readonly input?: Readonly<Record<string, unknown>>\n readonly runId?: string\n readonly source?: WorkflowRunSource\n}\n\nexport interface RequestWorkflowRunInput extends WorkflowRunRequestOptions {\n readonly workflowId: string\n}\n\nexport interface WorkflowRunRequestResult {\n readonly workflowId: string\n readonly runId: string\n readonly queuedAt: string\n readonly jobId?: string\n /**\n * `false` when a deterministic `runId` already existed for the same workflow,\n * so no second queue job was enqueued.\n */\n readonly created: boolean\n}\n\n/**\n * Validate, snapshot, persist, queue, and announce a workflow run request.\n *\n * Operates on an already-resolved workflow definition and the shared runtime\n * context, so it stays decoupled from how workflows are registered or looked up.\n */\nexport async function requestWorkflowRun(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n workflow: WorkflowDefinition,\n options: WorkflowRunRequestOptions = {}\n): Promise<WorkflowRunRequestResult> {\n resolveExecutionScopeAuthorization(runtime.projectId, {\n execution,\n authorization: runtime.runtimeAuthorization,\n })\n assertAuthorized(runtime, { kind: \"workflow.run\", workflowId: workflow.id })\n // Only caller input: automatic runs carry stored data, which may predate the rule.\n assertValidFileRefs(options.input, `Workflow \"${workflow.id}\" input`)\n return dispatchWorkflowRun({\n errorReporterHost: runtime,\n projectId: runtime.projectId,\n workflow,\n valueTypesById: runtime.ontology.getValueTypesById(),\n storage: runtime.storage,\n queue: runtime.queues.workflows,\n events: runtime.events,\n runId: options.runId,\n input: options.input,\n source: options.source,\n createExecution: async (executionId, runId) => {\n const caller = await ensureExecutionRecord(\n runtime.storage.executions,\n executionRecordInputFromRuntime({\n execution,\n runtimeAuthorization: runtime.runtimeAuthorization,\n })\n )\n return createPrimitiveExecutionRecord({\n id: executionId,\n primitive: { kind: \"workflow\", id: workflow.id, runId },\n origin: { type: \"execution\", parent: caller },\n })\n },\n })\n}\n",
|
|
99
93
|
"import {\n assertAuthorized,\n canViewWorkflowIntervention,\n canViewWorkflowRun,\n isRuntimeAllowed,\n} from \"../authorization\"\nimport type { AuthorizablePrincipal, ExecutionContext } from \"../execution\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport { resolveExecutionCosts } from \"../runtime/ai-cost\"\nimport { resolveExecutionUsage } from \"../runtime/ai-usage\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type { AiCostSummary } from \"../storage/ai-cost\"\nimport type { AiModelCallUsage } from \"../storage/ai-usage\"\nimport type {\n ListWorkflowInterventionsInput,\n ListWorkflowInterventionsResult,\n WorkflowInterventionRecord,\n} from \"../storage/workflow-interventions\"\nimport type {\n ListLatestWorkflowRunsResult,\n ListWorkflowNodeRunsInput,\n ListWorkflowNodeRunsResult,\n ListWorkflowRunsInput,\n ListWorkflowRunsResult,\n WorkflowAgentNodeRunRecord,\n WorkflowNodeRunRecord,\n WorkflowRunRecord,\n WorkflowRunStorage,\n} from \"../storage/workflow-runs\"\nimport { WorkflowValidationError } from \"./errors\"\nimport {\n type RequestWorkflowRunInput,\n requestWorkflowRun,\n type WorkflowRunRequestOptions,\n type WorkflowRunRequestResult,\n} from \"./request\"\nimport type { WorkflowDefinition } from \"./types\"\n\nexport interface WorkflowRunsRuntime {\n getById(runId: string): Promise<WorkflowRunView | null>\n list(\n input?: Omit<ListWorkflowRunsInput, \"projectId\" | \"workflowIds\">\n ): Promise<WorkflowRunListResult>\n listLatest(workflowIds: readonly string[]): Promise<LatestWorkflowRunListResult>\n listNodes(\n runId: string,\n input?: ListWorkflowRunNodesInput\n ): Promise<WorkflowNodeRunListResult | null>\n}\n\n/** Execution-facing run view with provenance resolved from the immutable execution ledger. */\nexport interface WorkflowRunView extends WorkflowRunRecord {\n readonly requestedBy?: AuthorizablePrincipal\n}\n\nexport interface WorkflowRunListResult extends Omit<ListWorkflowRunsResult, \"runs\"> {\n readonly runs: readonly WorkflowRunView[]\n}\n\nexport interface LatestWorkflowRunListResult extends Omit<ListLatestWorkflowRunsResult, \"runs\"> {\n readonly runs: readonly WorkflowRunView[]\n}\n\nexport type ListWorkflowRunNodesInput = Omit<\n ListWorkflowNodeRunsInput,\n \"projectId\" | \"workflowRunId\" | \"workflowId\"\n>\n\n/** Execution-facing Agent node view derived from its run row and model-call ledger. */\nexport interface WorkflowAgentNodeRunView\n extends Omit<WorkflowAgentNodeRunRecord, \"execution\" | \"actorId\"> {\n readonly usage?: AiModelCallUsage\n /** Preferred valuation; omitted when there are no calls or cost storage is unavailable. */\n readonly cost?: AiCostSummary\n}\n\n/** Execution-facing workflow node view with optional Agent execution details. */\nexport interface WorkflowNodeRunView extends WorkflowNodeRunRecord {\n readonly agentExecution?: WorkflowAgentNodeRunView\n}\n\nexport interface WorkflowNodeRunListResult extends Omit<ListWorkflowNodeRunsResult, \"nodes\"> {\n readonly nodes: readonly WorkflowNodeRunView[]\n}\n\nexport interface WorkflowInterventionsRuntime {\n getById(interventionId: string): Promise<WorkflowInterventionRecord | null>\n list(\n input?: Omit<ListWorkflowInterventionsInput, \"projectId\" | \"workflowIds\">\n ): Promise<ListWorkflowInterventionsResult>\n}\n\nexport interface WorkflowsRuntime {\n list(): readonly WorkflowDefinition[]\n getById(workflowId: string): WorkflowDefinition | null\n request(\n workflow: WorkflowDefinition,\n options?: WorkflowRunRequestOptions\n ): Promise<WorkflowRunRequestResult>\n requestById(input: RequestWorkflowRunInput): Promise<WorkflowRunRequestResult>\n readonly runs: WorkflowRunsRuntime\n readonly interventions: WorkflowInterventionsRuntime\n}\n\nexport function createWorkflowsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n source: Pick<WorkflowsRuntime, \"list\" | \"getById\">\n): WorkflowsRuntime {\n const authority = resolveRuntimeAuthorizationForProject(runtime)\n const allowed = (workflowId: string) =>\n isRuntimeAllowed(runtime, { kind: \"workflow.run\", workflowId })\n const canAccessHistory = (workflowId: string) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return false\n case \"unrestricted\":\n return true\n case \"principal\":\n return allowed(workflowId) && source.getById(workflowId) !== null\n }\n }\n const visibleIds = () =>\n source\n .list()\n .filter((workflow) => allowed(workflow.id))\n .map((workflow) => workflow.id)\n const historyFilterIds = () =>\n authority.type === \"unrestricted\"\n ? undefined\n : authority.type === \"principal\"\n ? visibleIds()\n : []\n const getVisibleRunRecord = async (runId: string): Promise<WorkflowRunRecord | null> => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const run =\n (await runtime.storage.workflowRuns?.getById({\n projectId: runtime.projectId,\n id: runId,\n })) ?? null\n if (!run || !canAccessHistory(run.workflowId)) return null\n return authority.type === \"unrestricted\" || canViewWorkflowRun(authority.context, run)\n ? run\n : null\n }\n const getRun = async (runId: string): Promise<WorkflowRunView | null> => {\n const run = await getVisibleRunRecord(runId)\n return run ? attachRequestedBy(runtime, run) : null\n }\n const listNodes = async (\n runId: string,\n input: ListWorkflowRunNodesInput = {}\n ): Promise<WorkflowNodeRunListResult | null> => {\n const storage = runtime.storage.workflowRuns\n if (!storage || !(await getVisibleRunRecord(runId))) return null\n const result = await storage.nodes.list({\n ...input,\n workflowRunId: runId,\n projectId: runtime.projectId,\n })\n return {\n ...result,\n nodes: await attachWorkflowNodeViews(runtime, storage, result.nodes),\n }\n }\n\n return {\n list: () =>\n authority.type === \"denied\" || authority.type === \"delegated\"\n ? []\n : source.list().filter((workflow) => allowed(workflow.id)),\n getById: (workflowId) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const workflow = source.getById(workflowId)\n return workflow && allowed(workflowId) ? workflow : null\n },\n request: (workflow, options) => requestWorkflowRun(runtime, execution, workflow, options),\n requestById: async (input) => {\n assertAuthorized(runtime, { kind: \"workflow.run\", workflowId: input.workflowId })\n const workflow = source.getById(input.workflowId)\n if (!workflow) {\n throw new WorkflowValidationError(`[Sixb] Unknown workflow '${input.workflowId}'`)\n }\n return requestWorkflowRun(runtime, execution, workflow, input)\n },\n runs: {\n getById: getRun,\n list: async (input = {}) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") {\n return { runs: [], hasMore: false, total: 0 }\n }\n const storage = runtime.storage.workflowRuns\n if (!storage) return { runs: [], hasMore: false, total: 0 }\n const result = await storage.list({\n ...input,\n workflowIds: historyFilterIds(),\n projectId: runtime.projectId,\n })\n return {\n ...result,\n runs: await Promise.all(result.runs.map((run) => attachRequestedBy(runtime, run))),\n }\n },\n listLatest: async (workflowIds) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") {\n return { runs: [] }\n }\n const storage = runtime.storage.workflowRuns\n if (!storage || workflowIds.length === 0) return { runs: [] }\n const allowedIds = workflowIds.filter(canAccessHistory)\n if (allowedIds.length === 0) return { runs: [] }\n const result = await storage.listLatestByWorkflowIds({\n projectId: runtime.projectId,\n workflowIds: allowedIds,\n })\n return {\n runs: await Promise.all(result.runs.map((run) => attachRequestedBy(runtime, run))),\n }\n },\n listNodes,\n },\n interventions: {\n getById: async (interventionId) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const intervention =\n (await runtime.storage.workflowInterventions?.getById({\n projectId: runtime.projectId,\n id: interventionId,\n })) ?? null\n if (!intervention || !canAccessHistory(intervention.workflowId)) return null\n return authority.type === \"unrestricted\" ||\n canViewWorkflowIntervention(authority.context, intervention)\n ? intervention\n : null\n },\n list: (input = {}) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") {\n return Promise.resolve({ interventions: [], hasMore: false, total: 0 })\n }\n const storage = runtime.storage.workflowInterventions\n if (!storage) return Promise.resolve({ interventions: [], hasMore: false, total: 0 })\n return storage.list({\n ...input,\n workflowIds: historyFilterIds(),\n projectId: runtime.projectId,\n })\n },\n },\n }\n}\n\nasync function attachWorkflowNodeViews(\n runtime: SixbRuntimeContext,\n storage: WorkflowRunStorage,\n nodes: readonly WorkflowNodeRunRecord[]\n): Promise<readonly WorkflowNodeRunView[]> {\n const executions = await Promise.all(\n nodes.map((node) =>\n node.nodeType === \"agent\"\n ? storage.agentNodes.getByNodeRunId({\n projectId: runtime.projectId,\n nodeRunId: node.id,\n })\n : null\n )\n )\n const agentExecutions = executions.filter(\n (execution): execution is WorkflowAgentNodeRunRecord => execution !== null\n )\n if (agentExecutions.length === 0) return nodes\n\n const executionIds = agentExecutions.map((execution) => execution.executionId)\n const [usages, costs] = await Promise.all([\n resolveExecutionUsage({\n storage: runtime.storage.aiUsage,\n projectId: runtime.projectId,\n executionIds,\n }),\n resolveExecutionCosts({\n storage: runtime.storage.aiCosts,\n projectId: runtime.projectId,\n executionIds,\n }),\n ])\n const accountingByExecutionId = new Map(\n agentExecutions.map((execution, index) => [\n execution.executionId,\n { usage: usages[index], cost: costs[index] },\n ])\n )\n\n return nodes.map((node, index) => {\n const execution = executions[index]\n if (!execution) return node\n const accounting = accountingByExecutionId.get(execution.executionId)\n return {\n ...node,\n agentExecution: toWorkflowAgentNodeRunView(\n execution,\n accounting?.usage,\n accounting?.usage === undefined ? undefined : accounting.cost\n ),\n }\n })\n}\n\nfunction toWorkflowAgentNodeRunView(\n execution: WorkflowAgentNodeRunRecord,\n usage: AiModelCallUsage | undefined,\n cost: AiCostSummary | undefined\n): WorkflowAgentNodeRunView {\n return {\n projectId: execution.projectId,\n nodeRunId: execution.nodeRunId,\n executionId: execution.executionId,\n status: execution.status,\n prompt: execution.prompt,\n modelId: execution.modelId,\n finishReason: execution.finishReason,\n trace: execution.trace,\n diagnostics: execution.diagnostics,\n error: execution.error,\n attempt: execution.attempt,\n createdAt: execution.createdAt,\n startedAt: execution.startedAt,\n completedAt: execution.completedAt,\n ...(usage === undefined ? {} : { usage }),\n ...(usage === undefined || cost === undefined ? {} : { cost }),\n }\n}\n\nasync function attachRequestedBy(\n runtime: SixbRuntimeContext,\n run: WorkflowRunRecord\n): Promise<WorkflowRunView> {\n const execution = await runtime.storage.executions.getById({\n projectId: runtime.projectId,\n id: run.executionId,\n })\n if (!execution) {\n throw new Error(\n `[Sixb] Workflow run '${run.id}' references missing execution '${run.executionId}'.`\n )\n }\n return {\n ...run,\n ...(execution.requestedBy === undefined\n ? {}\n : { requestedBy: structuredClone(execution.requestedBy) }),\n }\n}\n",
|
|
100
|
-
"import { type ActionsRuntime, createActionsRuntime } from \"../actions/execution\"\nimport { type AgentRuntime, createAgentRuntime } from \"../agents/execution\"\nimport { type AiUsageRuntime, createAiUsageRuntime } from \"../ai-usage\"\nimport { type BlobsRuntime, createBlobsRuntime } from \"../blob-storage/execution\"\nimport type { BlobStorage } from \"../blob-storage/types\"\nimport { registerConnectorConnectionsRuntime } from \"../connectors/connections/capability\"\nimport type { ConnectorConnectionProcess } from \"../connectors/connections/contracts\"\nimport { createConnectorConnectionsRuntime } from \"../connectors/connections/execution\"\nimport { type ConnectorRuntime, createConnectorRuntime } from \"../connectors/execution\"\nimport type { ConnectorService } from \"../connectors/service\"\nimport { createDatasetsRuntime, type DatasetsRuntime } from \"../datasets/execution\"\nimport { createEventsRuntime, type EventsRuntime } from \"../events/execution\"\nimport type { ExecutionContext } from \"../execution\"\nimport { resolveExecutionScopeAuthorization } from \"../execution/authorization\"\nimport { assertAuthorizedObjectReaderBinding } from \"../execution/authorized-object-reader\"\nimport type { LakeStorage } from \"../lake-storage/types\"\nimport { createLogsRuntime, type LogsRuntime } from \"../logging/execution\"\nimport type { LoggingService } from \"../logging/service\"\nimport { createModelsRuntime } from \"../models/execution\"\nimport type { ModelsRuntime } from \"../models/generation-types\"\nimport { createObjectsRuntime, type ObjectsRuntime } from \"../objects/execution\"\nimport { createPipelinesRuntime, type PipelinesRuntime } from \"../pipelines/execution\"\nimport { createProjectionsRuntime, type ProjectionsRuntime } from \"../projections/execution\"\nimport { createRulesRuntime, type RulesRuntime } from \"../rules/execution\"\nimport type { SandboxDefinition } from \"../sandboxes/configuration\"\nimport { createSchedulesRuntime, type SchedulesRuntime } from \"../schedules/execution\"\nimport { createSharesRuntime, type SharesRuntime } from \"../shares/execution\"\nimport { createSyncsRuntime, type SyncsRuntime } from \"../syncs/execution\"\nimport { createWorkflowsRuntime, type WorkflowsRuntime } from \"../workflows/execution\"\nimport type { SixbDefinitions } from \"./definitions\"\nimport { shareOntologyMutationRuntime } from \"./ontology-mutations\"\nimport type { SixbRuntimeContext } from \"./types\"\n\n/** Domain SDK bound to one immutable execution and one registered runtime authority. */\nexport interface Sixb<TParams extends Record<string, unknown> = Record<string, unknown>> {\n readonly execution: ExecutionContext\n readonly objects: ObjectsRuntime\n readonly actions: ActionsRuntime\n readonly datasets: DatasetsRuntime\n readonly workflows: WorkflowsRuntime\n readonly syncs: SyncsRuntime\n readonly pipelines: PipelinesRuntime\n readonly projections: ProjectionsRuntime\n readonly rules: RulesRuntime\n readonly agent: AgentRuntime<TParams>\n readonly models: ModelsRuntime\n readonly aiUsage: AiUsageRuntime\n readonly events: EventsRuntime\n readonly logs: LogsRuntime\n readonly schedules: SchedulesRuntime\n readonly shares: SharesRuntime\n readonly connector: ConnectorRuntime\n readonly blobs: BlobsRuntime\n}\n\nconst boundSixbInstances = new WeakSet<object>()\n\nexport interface SixbDependencies {\n readonly sandbox?: {\n readonly definition: SandboxDefinition\n readonly supportsPersistence: boolean\n }\n readonly definitions: SixbDefinitions\n readonly logging: LoggingService\n readonly connectorService: ConnectorService\n readonly connectorConnections?: ConnectorConnectionProcess\n readonly blobStorage: BlobStorage\n readonly apiPublicOrigin: () => string | undefined\n readonly lakeStorage: LakeStorage\n}\n\nexport function createBoundSixb<TParams extends Record<string, unknown> = Record<string, unknown>>(\n runtime: SixbRuntimeContext,\n dependencies: SixbDependencies,\n execution: ExecutionContext\n): Sixb<TParams> {\n resolveExecutionScopeAuthorization(runtime.projectId, {\n execution,\n authorization: runtime.runtimeAuthorization,\n })\n assertAuthorizedObjectReaderBinding({\n reader: runtime.objectReader,\n scope: { execution, authorization: runtime.runtimeAuthorization },\n })\n const sixb: Sixb<TParams> = {\n execution,\n ...createExecutionFacades<TParams>(runtime, execution, dependencies),\n }\n shareOntologyMutationRuntime(runtime, sixb)\n if (dependencies.connectorConnections) {\n registerConnectorConnectionsRuntime(\n sixb,\n createConnectorConnectionsRuntime(runtime, execution, dependencies.connectorConnections)\n )\n }\n boundSixbInstances.add(sixb)\n return sixb\n}\n\n/** Internal nominal guard for execution boundaries that accept a narrow structural host. */\nexport function isBoundSixb<TParams extends Record<string, unknown> = Record<string, unknown>>(\n value: unknown\n): value is Sixb<TParams> {\n return typeof value === \"object\" && value !== null && boundSixbInstances.has(value)\n}\n\nfunction createExecutionFacades<TParams extends Record<string, unknown>>(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n dependencies: SixbDependencies\n): Omit<Sixb<TParams>, \"execution\"> {\n return {\n objects: createObjectsRuntime(runtime, execution, dependencies.blobStorage),\n actions: createActionsRuntime(runtime, execution),\n datasets: createDatasetsRuntime(\n runtime,\n execution,\n dependencies.definitions.datasets,\n dependencies.lakeStorage,\n dependencies.blobStorage\n ),\n workflows: createWorkflowsRuntime(runtime, execution, dependencies.definitions.workflows),\n syncs: createSyncsRuntime(runtime, execution, dependencies.definitions.syncs),\n pipelines: createPipelinesRuntime(runtime, execution, dependencies.definitions.pipelines),\n projections: createProjectionsRuntime(runtime, dependencies.definitions.projections),\n rules: createRulesRuntime(runtime, dependencies.definitions.rules),\n agent: createAgentRuntime<TParams>(\n runtime,\n execution,\n dependencies.definitions.models,\n dependencies.sandbox\n ),\n models: createModelsRuntime(\n runtime,\n execution,\n dependencies.definitions.models,\n dependencies.blobStorage\n ),\n aiUsage: createAiUsageRuntime(runtime, dependencies.definitions.security),\n events: createEventsRuntime(runtime),\n logs: createLogsRuntime(runtime, dependencies.logging),\n schedules: createSchedulesRuntime(runtime, dependencies.definitions.schedules),\n shares: createSharesRuntime(runtime, execution, dependencies.definitions.shares),\n connector: createConnectorRuntime(runtime, execution, dependencies.connectorService),\n blobs: createBlobsRuntime(\n runtime,\n execution,\n dependencies.blobStorage,\n dependencies.apiPublicOrigin\n ),\n }\n}\n",
|
|
94
|
+
"import { type ActionsRuntime, createActionsRuntime } from \"../actions/execution\"\nimport {\n type ActivityRuntime,\n createActivityCaptureRuntime,\n createActivityRuntime,\n registerActivityCaptureRuntime,\n} from \"../activity/execution\"\nimport type { ActivityService } from \"../activity/service\"\nimport { type AgentRuntime, createAgentRuntime } from \"../agents/execution\"\nimport { type AiUsageRuntime, createAiUsageRuntime } from \"../ai-usage\"\nimport { type ArtifactsRuntime, createArtifactsRuntime } from \"../artifacts/execution\"\nimport { type BlobsRuntime, createBlobsRuntime } from \"../blob-storage/execution\"\nimport type { BlobStorage } from \"../blob-storage/types\"\nimport { registerConnectorConnectionsRuntime } from \"../connectors/connections/capability\"\nimport type { ConnectorConnectionProcess } from \"../connectors/connections/contracts\"\nimport { createConnectorConnectionsRuntime } from \"../connectors/connections/execution\"\nimport { type ConnectorRuntime, createConnectorRuntime } from \"../connectors/execution\"\nimport type { ConnectorService } from \"../connectors/service\"\nimport { createDatasetsRuntime, type DatasetsRuntime } from \"../datasets/execution\"\nimport { createEventsRuntime, type EventsRuntime } from \"../events/execution\"\nimport type { ExecutionContext } from \"../execution\"\nimport { resolveExecutionScopeAuthorization } from \"../execution/authorization\"\nimport { assertAuthorizedObjectReaderBinding } from \"../execution/authorized-object-reader\"\nimport type { LakeStorage } from \"../lake-storage/types\"\nimport { createLogsRuntime, type LogsRuntime } from \"../logging/execution\"\nimport type { LoggingService } from \"../logging/service\"\nimport { createModelsRuntime } from \"../models/execution\"\nimport type { ModelsRuntime } from \"../models/generation-types\"\nimport { createObjectsRuntime, type ObjectsRuntime } from \"../objects/execution\"\nimport { createPipelinesRuntime, type PipelinesRuntime } from \"../pipelines/execution\"\nimport { createProjectionsRuntime, type ProjectionsRuntime } from \"../projections/execution\"\nimport { createRulesRuntime, type RulesRuntime } from \"../rules/execution\"\nimport type { SandboxDefinition } from \"../sandboxes/configuration\"\nimport { createSchedulesRuntime, type SchedulesRuntime } from \"../schedules/execution\"\nimport type { DatasetVersionMarkings } from \"../security/dataset-version-markings\"\nimport { createSharesRuntime, type SharesRuntime } from \"../shares/execution\"\nimport { createSyncsRuntime, type SyncsRuntime } from \"../syncs/execution\"\nimport { createWorkflowsRuntime, type WorkflowsRuntime } from \"../workflows/execution\"\nimport type { SixbDefinitions } from \"./definitions\"\nimport { shareOntologyMutationRuntime } from \"./ontology-mutations\"\nimport type { SixbRuntimeContext } from \"./types\"\n\n/** Domain SDK bound to one immutable execution and one registered runtime authority. */\nexport interface Sixb<TParams extends Record<string, unknown> = Record<string, unknown>> {\n readonly execution: ExecutionContext\n readonly objects: ObjectsRuntime\n readonly actions: ActionsRuntime\n readonly datasets: DatasetsRuntime\n readonly workflows: WorkflowsRuntime\n readonly syncs: SyncsRuntime\n readonly pipelines: PipelinesRuntime\n readonly projections: ProjectionsRuntime\n readonly rules: RulesRuntime\n readonly agent: AgentRuntime<TParams>\n readonly artifacts: ArtifactsRuntime\n readonly models: ModelsRuntime\n readonly aiUsage: AiUsageRuntime\n readonly events: EventsRuntime\n readonly logs: LogsRuntime\n readonly activity: ActivityRuntime\n readonly schedules: SchedulesRuntime\n readonly shares: SharesRuntime\n readonly connector: ConnectorRuntime\n readonly blobs: BlobsRuntime\n}\n\nconst boundSixbInstances = new WeakSet<object>()\n\nexport interface SixbDependencies {\n readonly sandbox?: {\n readonly definition: SandboxDefinition\n readonly supportsPersistence: boolean\n }\n readonly definitions: SixbDefinitions\n readonly logging: LoggingService\n readonly activity: ActivityService\n readonly connectorService: ConnectorService\n readonly connectorConnections?: ConnectorConnectionProcess\n readonly blobStorage: BlobStorage\n readonly apiPublicOrigin: () => string | undefined\n readonly lakeStorage: LakeStorage\n readonly datasetVersionMarkings: DatasetVersionMarkings\n}\n\nexport function createBoundSixb<TParams extends Record<string, unknown> = Record<string, unknown>>(\n runtime: SixbRuntimeContext,\n dependencies: SixbDependencies,\n execution: ExecutionContext\n): Sixb<TParams> {\n resolveExecutionScopeAuthorization(runtime.projectId, {\n execution,\n authorization: runtime.runtimeAuthorization,\n })\n assertAuthorizedObjectReaderBinding({\n reader: runtime.objectReader,\n scope: { execution, authorization: runtime.runtimeAuthorization },\n })\n const sixb: Sixb<TParams> = {\n execution,\n ...createExecutionFacades<TParams>(runtime, execution, dependencies),\n }\n shareOntologyMutationRuntime(runtime, sixb)\n registerActivityCaptureRuntime(sixb, createActivityCaptureRuntime(runtime, dependencies.activity))\n if (dependencies.connectorConnections) {\n registerConnectorConnectionsRuntime(\n sixb,\n createConnectorConnectionsRuntime(runtime, execution, dependencies.connectorConnections)\n )\n }\n boundSixbInstances.add(sixb)\n return sixb\n}\n\n/** Internal nominal guard for execution boundaries that accept a narrow structural host. */\nexport function isBoundSixb<TParams extends Record<string, unknown> = Record<string, unknown>>(\n value: unknown\n): value is Sixb<TParams> {\n return typeof value === \"object\" && value !== null && boundSixbInstances.has(value)\n}\n\nfunction createExecutionFacades<TParams extends Record<string, unknown>>(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n dependencies: SixbDependencies\n): Omit<Sixb<TParams>, \"execution\"> {\n return {\n objects: createObjectsRuntime(runtime, execution, dependencies.blobStorage),\n actions: createActionsRuntime(runtime, execution),\n datasets: createDatasetsRuntime(\n runtime,\n execution,\n dependencies.definitions.datasets,\n dependencies.lakeStorage,\n dependencies.blobStorage,\n dependencies.datasetVersionMarkings\n ),\n workflows: createWorkflowsRuntime(runtime, execution, dependencies.definitions.workflows),\n syncs: createSyncsRuntime(runtime, execution, dependencies.definitions.syncs),\n pipelines: createPipelinesRuntime(runtime, execution, dependencies.definitions.pipelines),\n projections: createProjectionsRuntime(runtime, dependencies.definitions.projections),\n rules: createRulesRuntime(runtime, dependencies.definitions.rules),\n agent: createAgentRuntime<TParams>(\n runtime,\n execution,\n dependencies.definitions.models,\n dependencies.sandbox\n ),\n artifacts: createArtifactsRuntime(runtime, dependencies.blobStorage),\n models: createModelsRuntime(\n runtime,\n execution,\n dependencies.definitions.models,\n dependencies.blobStorage\n ),\n aiUsage: createAiUsageRuntime(runtime, dependencies.definitions.security),\n events: createEventsRuntime(runtime),\n logs: createLogsRuntime(runtime, dependencies.logging),\n activity: createActivityRuntime(runtime, dependencies.activity),\n schedules: createSchedulesRuntime(runtime, dependencies.definitions.schedules),\n shares: createSharesRuntime(runtime, execution, dependencies.definitions.shares),\n connector: createConnectorRuntime(runtime, execution, dependencies.connectorService),\n blobs: createBlobsRuntime(\n runtime,\n execution,\n dependencies.blobStorage,\n dependencies.apiPublicOrigin\n ),\n }\n}\n",
|
|
101
95
|
"import { type AgentExecutionAuthorization, agentServiceAccountId } from \"../agents/authority\"\nimport { bindModelExecutionAttempt } from \"../models/execution/binding\"\nimport type { AiModelCallRecorder } from \"../models/execution/model-call-recorder\"\nimport { isBoundSixb, type Sixb } from \"../runtime/sixb\"\nimport type { ExecutionRecord } from \"../storage/executions\"\nimport { ExecutionStorageError } from \"../storage/executions\"\n\nexport { ensureExecutionRecord } from \"./durable\"\n\nimport { createAgentRuntimeAuthorization, getAuthorizationRef } from \"./authorization\"\nimport type {\n AuthorizablePrincipal,\n ExecutionContext,\n ExecutionScope,\n RuntimeAuthorization,\n} from \"./types\"\n\n/** Minimal host boundary required by agent workers. */\nexport interface AgentExecutionHost {\n readonly id: string\n withScope(scope: ExecutionScope): object\n}\n\n/** Whether a conversational Agent run can durably restore this request authority without widening it. */\nexport function canInheritAgentRequestAuthorization(authorization: RuntimeAuthorization): boolean {\n const ref = getAuthorizationRef(authorization)\n return (\n ref.type === \"disabled\" ||\n (ref.type === \"principal\" && ref.principal.type === \"user\" && ref.credential !== undefined)\n )\n}\n\n/** Build the immutable child execution owned by one direct or Workflow Agent run. */\nexport function createAgentExecutionRecord(input: {\n readonly id: string\n readonly parent: ExecutionRecord\n readonly actorId: string\n readonly runId: string\n readonly principal: Extract<AuthorizablePrincipal, { readonly type: \"serviceAccount\" }>\n}): Omit<ExecutionRecord, \"createdAt\"> {\n assertAgentPrincipal(input.actorId, input.principal)\n return {\n id: input.id,\n projectId: input.parent.projectId,\n requesterGroupIds: [...input.parent.requesterGroupIds],\n ...(input.parent.requestedBy === undefined\n ? {}\n : { requestedBy: structuredClone(input.parent.requestedBy) }),\n executor: { type: \"agent\", runId: input.runId },\n source: { type: \"execution\", executionId: input.parent.id },\n correlationId: input.parent.correlationId,\n authorizationRef: {\n type: \"principal\",\n principal: structuredClone(input.principal),\n },\n }\n}\n\n/** Build an Agent execution that carries its parent's exact durable authority reference. */\nexport function createInheritedAgentExecutionRecord(input: {\n readonly id: string\n readonly parent: ExecutionRecord\n readonly runId: string\n}): Omit<ExecutionRecord, \"createdAt\"> {\n const authority = input.parent.authorizationRef\n if (\n authority.type !== \"disabled\" &&\n !(\n authority.type === \"principal\" &&\n authority.principal.type === \"user\" &&\n authority.credential !== undefined\n )\n ) {\n throw new ExecutionStorageError(\n \"invalid_input\",\n `[Sixb] Agent run '${input.runId}' requires inheritable user or auth-disabled authority.`\n )\n }\n\n return {\n id: input.id,\n projectId: input.parent.projectId,\n requesterGroupIds: [...input.parent.requesterGroupIds],\n ...(input.parent.requestedBy === undefined\n ? {}\n : { requestedBy: structuredClone(input.parent.requestedBy) }),\n executor: { type: \"agent\", runId: input.runId },\n source: { type: \"execution\", executionId: input.parent.id },\n correlationId: input.parent.correlationId,\n authorizationRef: structuredClone(authority),\n }\n}\n\n/** Bind a worker to the immutable execution already owned by its durable Agent run. */\nexport function bindDurableAgentExecution(\n host: AgentExecutionHost,\n input: {\n readonly execution: ExecutionRecord\n readonly actorId?: string\n readonly runId: string\n readonly authorization: AgentExecutionAuthorization\n }\n): Sixb {\n const scope = restoreAgentExecutionScope(input)\n const sixb = host.withScope(scope)\n if (!isBoundSixb(sixb)) {\n throw new Error(\"[Sixb] Agent execution host returned an invalid bound SDK.\")\n }\n return sixb\n}\n\n/**\n * Account model calls made through a run's bound SDK — by its tools, or embeddings behind their\n * searches — like the run's own: same execution attempt, limits, failure state and cancellation.\n * The attempt is the recorder's, so the two cannot diverge.\n */\nexport function bindAgentModelExecution(\n sixb: Sixb,\n input: {\n readonly signal: AbortSignal\n readonly accounting: AiModelCallRecorder\n }\n): void {\n const { accounting } = input\n if (accounting.executionId !== sixb.execution.id) {\n throw new Error(\n `[Sixb] Agent execution '${sixb.execution.id}' cannot account its model calls to execution '${accounting.executionId}'.`\n )\n }\n bindModelExecutionAttempt(sixb.models, {\n attempt: accounting.attempt,\n signal: input.signal,\n accounting,\n })\n}\n\n/** Restore one provider-validated Agent execution with its currently resolved grants. */\nexport function restoreAgentExecutionScope(input: {\n readonly execution: ExecutionRecord\n readonly actorId?: string\n readonly runId: string\n readonly authorization: AgentExecutionAuthorization\n}): ExecutionScope {\n assertAgentExecutionRecord(input)\n const context: ExecutionContext = Object.freeze({\n id: input.execution.id,\n projectId: input.execution.projectId,\n ...(input.execution.requestedBy === undefined\n ? {}\n : { requestedBy: Object.freeze(structuredClone(input.execution.requestedBy)) }),\n executor: Object.freeze({\n type: \"agent\",\n ...(input.actorId === undefined ? {} : { actorId: input.actorId }),\n runId: input.runId,\n }),\n source: Object.freeze(structuredClone(input.execution.source)),\n correlationId: input.execution.correlationId,\n })\n return Object.freeze({\n execution: context,\n authorization: createAgentRuntimeAuthorization({\n execution: context,\n authority:\n input.authorization.type === \"principal\"\n ? {\n type: \"principal\",\n context: input.authorization.context,\n ...(input.execution.authorizationRef.type === \"principal\" &&\n input.execution.authorizationRef.credential !== undefined\n ? { credential: input.execution.authorizationRef.credential }\n : {}),\n }\n : { type: \"disabled\" },\n }),\n })\n}\n\n/** Validate that a durable record belongs to the exact resolved Agent execution. */\nexport function assertAgentExecutionRecord(input: {\n readonly execution: ExecutionRecord\n readonly actorId?: string\n readonly runId: string\n readonly authorization: AgentExecutionAuthorization\n}): void {\n const authority = input.execution.authorizationRef\n if (\n input.execution.executor.type !== \"agent\" ||\n input.execution.executor.runId !== input.runId ||\n input.execution.source.type !== \"execution\"\n ) {\n invalidAgentExecution(input.execution.id, input.runId)\n }\n\n if (\n input.authorization.type === \"disabled\" ||\n input.authorization.context.principal.type === \"user\"\n ) {\n assertInheritedAgentAuthority(input.execution, input.runId, input.authorization)\n return\n }\n\n if (\n input.authorization.type !== \"principal\" ||\n authority.type !== \"principal\" ||\n authority.principal.type !== \"serviceAccount\" ||\n input.authorization.context.principal.type !== \"serviceAccount\" ||\n authority.principal.id !== input.authorization.context.principal.id ||\n authority.credential !== undefined\n ) {\n invalidAgentExecution(input.execution.id, input.runId)\n }\n if (input.actorId === undefined) {\n invalidAgentExecution(input.execution.id, input.runId)\n }\n assertAgentPrincipal(input.actorId, authority.principal)\n}\n\nfunction assertInheritedAgentAuthority(\n execution: ExecutionRecord,\n runId: string,\n authorization: AgentExecutionAuthorization\n): void {\n const authority = execution.authorizationRef\n if (authorization.type === \"disabled\") {\n if (authority.type !== \"disabled\") invalidAgentExecution(execution.id, runId)\n return\n }\n\n const principal = authorization.context.principal\n if (\n authority.type !== \"principal\" ||\n authority.principal.type !== \"user\" ||\n principal.type !== \"user\" ||\n authority.principal.id !== principal.id ||\n authority.credential === undefined ||\n (authority.credential.type === \"session\"\n ? authorization.context.sessionId !== authority.credential.id\n : authorization.context.sessionId !== undefined)\n ) {\n invalidAgentExecution(execution.id, runId)\n }\n}\n\nfunction assertAgentPrincipal(\n actorId: string,\n principal: Extract<AuthorizablePrincipal, { readonly type: \"serviceAccount\" }>\n): void {\n const expectedId = agentServiceAccountId(actorId)\n if (principal.id !== expectedId) {\n throw new ExecutionStorageError(\n \"invalid_input\",\n `[Sixb] Agent '${actorId}' execution authority must reference service account '${expectedId}'.`\n )\n }\n}\n\nfunction invalidAgentExecution(executionId: string, runId: string): never {\n throw new ExecutionStorageError(\n \"invalid_input\",\n `[Sixb] Execution '${executionId}' does not authorize Agent run '${runId}'.`\n )\n}\n"
|
|
102
96
|
],
|
|
103
|
-
"mappings": "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",
|
|
104
|
-
"debugId": "
|
|
97
|
+
"mappings": "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",
|
|
98
|
+
"debugId": "BC1E3E649140D38B64756E2164756E21",
|
|
105
99
|
"names": []
|
|
106
100
|
}
|