@sixb/core 0.1.15 → 0.1.17
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/index.js +25 -25
- package/dist/actions/types/context.d.ts +2 -2
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/worker.js +1 -1
- package/dist/agents/index.js +41 -40
- package/dist/agents/index.js.map +1 -1
- package/dist/auth/index.js +5 -5
- package/dist/authorization/index.js +2 -2
- package/dist/blob-storage/download-urls.d.ts +41 -0
- package/dist/blob-storage/download-urls.d.ts.map +1 -0
- package/dist/blob-storage/execution.d.ts +9 -1
- package/dist/blob-storage/execution.d.ts.map +1 -1
- package/dist/blob-storage/index.js +5 -3
- package/dist/blob-storage/index.js.map +1 -1
- package/dist/blob-storage/internal.d.ts +2 -0
- package/dist/blob-storage/internal.d.ts.map +1 -0
- package/dist/blob-storage/internal.js +11 -0
- package/dist/blob-storage/internal.js.map +9 -0
- package/dist/bootstrap/index.js +45 -44
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/{chunk-wem5vqjw.js → chunk-10styjgk.js} +18 -13
- package/dist/{chunk-wem5vqjw.js.map → chunk-10styjgk.js.map} +3 -3
- package/dist/{chunk-hgqpcmyr.js → chunk-1hqwggsn.js} +47 -19
- package/dist/chunk-1hqwggsn.js.map +12 -0
- package/dist/{chunk-q3grgzp1.js → chunk-23xs4qp9.js} +2 -2
- package/dist/{chunk-vef6qa14.js → chunk-2am3db31.js} +2 -2
- package/dist/{chunk-fj1dvp37.js → chunk-2vhg6ysa.js} +1 -1
- package/dist/{chunk-p0nbkys4.js → chunk-33saed7g.js} +1 -1
- package/dist/{chunk-mdnw7nj8.js → chunk-3rrezgyc.js} +33 -8
- package/dist/chunk-3rrezgyc.js.map +15 -0
- package/dist/{chunk-jgwb25gc.js → chunk-4as3wt1c.js} +13 -5
- package/dist/chunk-4as3wt1c.js.map +12 -0
- package/dist/chunk-4ra628t7.js +88 -0
- package/dist/chunk-4ra628t7.js.map +10 -0
- package/dist/{chunk-mmac1mp6.js → chunk-52c5zb0z.js} +2 -2
- package/dist/{chunk-8fjmqjyx.js → chunk-5be2ath4.js} +1 -1
- package/dist/{chunk-2fv8sajb.js → chunk-5thzcb8g.js} +2 -2
- package/dist/{chunk-fjw417jf.js → chunk-5yd8cchh.js} +1143 -784
- package/dist/chunk-5yd8cchh.js.map +66 -0
- package/dist/{chunk-2tz5vnvz.js → chunk-6wbm6ymz.js} +235 -41
- package/dist/{chunk-2tz5vnvz.js.map → chunk-6wbm6ymz.js.map} +8 -6
- package/dist/{chunk-py2dw8cw.js → chunk-7ecp4v7a.js} +26 -19
- package/dist/chunk-7ecp4v7a.js.map +17 -0
- package/dist/{chunk-f85hpqnm.js → chunk-99nd4rc1.js} +3 -3
- package/dist/{chunk-f85hpqnm.js.map → chunk-99nd4rc1.js.map} +3 -3
- package/dist/{chunk-1jvq82rp.js → chunk-9g6jz9kk.js} +5 -5
- package/dist/{chunk-39tqv9hz.js → chunk-9se093qz.js} +5 -6
- package/dist/{chunk-39tqv9hz.js.map → chunk-9se093qz.js.map} +3 -4
- package/dist/{chunk-8w27xf9e.js → chunk-a7er86jd.js} +1 -1
- package/dist/{chunk-zdkcdshk.js → chunk-aq39q04r.js} +41 -3
- package/dist/{chunk-zdkcdshk.js.map → chunk-aq39q04r.js.map} +4 -3
- package/dist/chunk-b9affek3.js +261 -0
- package/dist/chunk-b9affek3.js.map +12 -0
- package/dist/{chunk-bxx3ms5t.js → chunk-c2rga5cx.js} +2 -2
- package/dist/{chunk-dsfw1bdr.js → chunk-cnb5kv05.js} +2 -2
- package/dist/chunk-d62kjtbg.js.map +2 -2
- package/dist/{chunk-dqkd3kdj.js → chunk-dam456ve.js} +234 -35
- package/dist/{chunk-dqkd3kdj.js.map → chunk-dam456ve.js.map} +7 -5
- package/dist/{chunk-n5t4mq6z.js → chunk-e67ynxcr.js} +3 -3
- package/dist/{chunk-xnx96gfy.js → chunk-ere85b8y.js} +17 -8
- package/dist/chunk-ere85b8y.js.map +15 -0
- package/dist/{chunk-k4kkp58d.js → chunk-ewqa58h9.js} +12 -2
- package/dist/chunk-ewqa58h9.js.map +11 -0
- package/dist/{chunk-6q7c68yx.js → chunk-f1xh7a32.js} +3 -3
- package/dist/{chunk-z708gemf.js → chunk-fggq3d9k.js} +450 -799
- package/dist/chunk-fggq3d9k.js.map +49 -0
- package/dist/{chunk-7jc21943.js → chunk-gf7yht60.js} +4 -4
- package/dist/chunk-h8teetr0.js +9 -0
- package/dist/chunk-h8teetr0.js.map +10 -0
- package/dist/chunk-hn2r7z41.js.map +1 -1
- package/dist/{chunk-ffwvdgk1.js → chunk-jjrn5v0p.js} +1 -1
- package/dist/{chunk-r5sc1d2b.js → chunk-jnfxmr3f.js} +1 -1
- package/dist/{chunk-y0zmae99.js → chunk-k4g51s47.js} +3 -3
- package/dist/{chunk-a0073121.js → chunk-kpx7jrmn.js} +3 -1
- package/dist/chunk-kpx7jrmn.js.map +12 -0
- package/dist/{chunk-p1683c0v.js → chunk-kyjcwqz6.js} +5 -2
- package/dist/{chunk-p1683c0v.js.map → chunk-kyjcwqz6.js.map} +3 -3
- package/dist/{chunk-3c90jvfj.js → chunk-pja9jfz6.js} +742 -583
- package/dist/chunk-pja9jfz6.js.map +19 -0
- package/dist/chunk-pqajwytd.js.map +1 -1
- package/dist/{chunk-mr60an99.js → chunk-qczk96d9.js} +22 -2
- package/dist/{chunk-mr60an99.js.map → chunk-qczk96d9.js.map} +3 -3
- package/dist/{chunk-s3csryxe.js → chunk-rj69qcrd.js} +8 -2
- package/dist/chunk-rj69qcrd.js.map +11 -0
- package/dist/{chunk-d8yes9yx.js → chunk-rpxz486p.js} +32 -5
- package/dist/{chunk-d8yes9yx.js.map → chunk-rpxz486p.js.map} +4 -4
- package/dist/{chunk-drz59ve0.js → chunk-rx7h5fdx.js} +1 -1
- package/dist/{chunk-ky7zpbtt.js → chunk-s7ftxrdr.js} +106 -8
- package/dist/chunk-s7ftxrdr.js.map +22 -0
- package/dist/{chunk-yfppyaty.js → chunk-sk0hcjsz.js} +1 -1
- package/dist/{chunk-qne45xqq.js → chunk-svabwqdq.js} +2 -2
- package/dist/{chunk-xr7y35yj.js → chunk-t9shqx3w.js} +2 -2
- package/dist/{chunk-4jph1t3v.js → chunk-tjjgy3z4.js} +27 -24
- package/dist/{chunk-4jph1t3v.js.map → chunk-tjjgy3z4.js.map} +4 -4
- package/dist/{chunk-ex8s8wsk.js → chunk-vp3z1ckh.js} +42 -10
- package/dist/{chunk-ex8s8wsk.js.map → chunk-vp3z1ckh.js.map} +7 -6
- package/dist/{chunk-adbve9zt.js → chunk-vre348sb.js} +2 -2
- package/dist/{chunk-a4g5yjm0.js → chunk-w9yycd3t.js} +1 -1
- package/dist/{chunk-g4rbm4a6.js → chunk-wt4szfec.js} +379 -331
- package/dist/chunk-wt4szfec.js.map +14 -0
- package/dist/{chunk-wd34wnsy.js → chunk-xcy5ddha.js} +6 -6
- package/dist/{chunk-3nx8vj5a.js → chunk-xyvy73tj.js} +5 -3
- package/dist/chunk-xyvy73tj.js.map +12 -0
- package/dist/datasets/write.js +1 -1
- package/dist/execution/agent.js +38 -37
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +3 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +36 -35
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +37 -36
- package/dist/execution/request.js.map +2 -2
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -59
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +5 -1
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +1 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +2 -2
- package/dist/lake-storage/types.d.ts +26 -0
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts +5 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/maintenance/types.d.ts +1 -4
- package/dist/maintenance/types.d.ts.map +1 -1
- package/dist/materialization/event-envelopes.d.ts +20 -0
- package/dist/materialization/event-envelopes.d.ts.map +1 -0
- package/dist/materialization/events.d.ts +29 -3
- package/dist/materialization/events.d.ts.map +1 -1
- package/dist/materialization/index.d.ts +4 -1
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +9 -3
- package/dist/materialization/index.js.map +1 -1
- package/dist/materializer/edits/plan.d.ts +2 -10
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/effective/build-events.d.ts +5 -21
- package/dist/materializer/effective/build-events.d.ts.map +1 -1
- package/dist/materializer/effective/vector-indexing.d.ts +2 -3
- package/dist/materializer/effective/vector-indexing.d.ts.map +1 -1
- package/dist/materializer/effective/vectors.d.ts +2 -3
- package/dist/materializer/effective/vectors.d.ts.map +1 -1
- package/dist/materializer/execution/scope.d.ts +1 -11
- package/dist/materializer/execution/scope.d.ts.map +1 -1
- package/dist/materializer/execution/work-executor.d.ts +5 -7
- package/dist/materializer/execution/work-executor.d.ts.map +1 -1
- package/dist/materializer/execution/work-records.d.ts +1 -3
- package/dist/materializer/execution/work-records.d.ts.map +1 -1
- package/dist/materializer/index.js +31 -32
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replace.d.ts.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts +8 -11
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/shared/batching.d.ts +5 -0
- package/dist/materializer/shared/batching.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts +2 -8
- package/dist/materializer/telemetry/plan.d.ts.map +1 -1
- package/dist/models/audio/catalog.d.ts +20 -0
- package/dist/models/audio/catalog.d.ts.map +1 -0
- package/dist/models/audio/errors.d.ts +8 -0
- package/dist/models/audio/errors.d.ts.map +1 -0
- package/dist/models/audio/file.d.ts +9 -0
- package/dist/models/audio/file.d.ts.map +1 -0
- package/dist/models/audio/runtime.d.ts +8 -0
- package/dist/models/audio/runtime.d.ts.map +1 -0
- package/dist/models/audio/types.d.ts +60 -0
- package/dist/models/audio/types.d.ts.map +1 -0
- package/dist/models/catalog.d.ts +23 -1
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/definitions.d.ts +1 -1
- package/dist/models/definitions.d.ts.map +1 -1
- package/dist/models/embedding-model.d.ts +4 -0
- package/dist/models/embedding-model.d.ts.map +1 -1
- package/dist/models/events.d.ts +3 -0
- package/dist/models/events.d.ts.map +1 -1
- package/dist/models/execution/index.js +22 -22
- package/dist/models/execution/model-call-admission.d.ts +6 -1
- package/dist/models/execution/model-call-admission.d.ts.map +1 -1
- package/dist/models/execution/model-call-limits.d.ts.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution/reranking.d.ts +4 -0
- package/dist/models/execution/reranking.d.ts.map +1 -0
- package/dist/models/execution/usage.d.ts.map +1 -1
- package/dist/models/execution.d.ts +2 -1
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/generation-types.d.ts +2 -0
- package/dist/models/generation-types.d.ts.map +1 -1
- package/dist/models/index.d.ts +7 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +7 -3
- package/dist/models/index.js.map +1 -1
- package/dist/models/pricing.d.ts +2 -2
- package/dist/models/pricing.d.ts.map +1 -1
- package/dist/models/reranking-model.d.ts +49 -0
- package/dist/models/reranking-model.d.ts.map +1 -0
- package/dist/objects/index.js +25 -25
- package/dist/objects/query/executor.d.ts +2 -1
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.d.ts +1 -1
- package/dist/objects/query/index.d.ts.map +1 -1
- package/dist/objects/query/index.js +24 -24
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +8 -1
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/normalize.d.ts.map +1 -1
- package/dist/objects/query/planner.d.ts +1 -1
- package/dist/objects/query/planner.d.ts.map +1 -1
- package/dist/objects/query/primary-id.d.ts +7 -0
- package/dist/objects/query/primary-id.d.ts.map +1 -0
- package/dist/objects/query/reranking-executor.d.ts +13 -0
- package/dist/objects/query/reranking-executor.d.ts.map +1 -0
- package/dist/objects/query/reranking-limits.d.ts +3 -0
- package/dist/objects/query/reranking-limits.d.ts.map +1 -0
- package/dist/objects/query/reranking-query.d.ts +4 -0
- package/dist/objects/query/reranking-query.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/query-builder.d.ts +8 -0
- package/dist/objects/sdk/query-builder.d.ts.map +1 -1
- package/dist/objects/sdk/query-executor.d.ts +2 -2
- package/dist/objects/sdk/query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/vectors/indexing-dispatch.d.ts +21 -0
- package/dist/objects/vectors/indexing-dispatch.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-generate.d.ts.map +1 -1
- package/dist/objects/vectors/profile.d.ts.map +1 -1
- package/dist/objects/vectors/query.d.ts +1 -1
- package/dist/objects/vectors/query.d.ts.map +1 -1
- package/dist/objects/vectors/resolve-query.d.ts.map +1 -1
- package/dist/objects/vectors/types.d.ts +1 -1
- package/dist/objects/vectors/types.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +13 -4
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/index.d.ts +1 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +3 -3
- package/dist/ontology/internal.js +2 -2
- package/dist/ontology/query-capabilities.d.ts +1 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +20 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/vector-profiles.d.ts.map +1 -1
- package/dist/pipelines/index.js +23 -23
- package/dist/projections/internal.js +22 -22
- package/dist/query.d.ts +4 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +3 -0
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +4 -0
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +1 -0
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +1 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +28 -26
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/public-origin.d.ts +10 -0
- package/dist/runtime/public-origin.d.ts.map +1 -0
- package/dist/runtime/sixb.d.ts +1 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +12 -2
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +5 -5
- package/dist/shares/internal.js +19 -19
- package/dist/storage/agents/provider.js +2 -2
- package/dist/storage/ai-cost/analytics.d.ts +1 -0
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +3 -3
- package/dist/storage/ai-cost/types.d.ts +1 -1
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/validation.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/ai-limits/in-memory.d.ts.map +1 -1
- package/dist/storage/ai-limits/provider.d.ts +7 -2
- package/dist/storage/ai-limits/provider.d.ts.map +1 -1
- package/dist/storage/ai-limits/provider.js +4 -2
- package/dist/storage/ai-limits/provider.js.map +1 -1
- package/dist/storage/ai-limits/types.d.ts +3 -0
- package/dist/storage/ai-limits/types.d.ts.map +1 -1
- package/dist/storage/ai-usage/record.d.ts.map +1 -1
- package/dist/storage/ai-usage/types.d.ts +8 -4
- package/dist/storage/ai-usage/types.d.ts.map +1 -1
- package/dist/storage/ai-usage/usage.d.ts.map +1 -1
- package/dist/storage/file-download-grants/in-memory.d.ts +11 -0
- package/dist/storage/file-download-grants/in-memory.d.ts.map +1 -0
- package/dist/storage/file-download-grants/index.d.ts +3 -0
- package/dist/storage/file-download-grants/index.d.ts.map +1 -0
- package/dist/storage/file-download-grants/record.d.ts +11 -0
- package/dist/storage/file-download-grants/record.d.ts.map +1 -0
- package/dist/storage/file-download-grants/types.d.ts +44 -0
- package/dist/storage/file-download-grants/types.d.ts.map +1 -0
- package/dist/storage/file-upload-sessions/provider.js +6 -6
- package/dist/storage/in-memory/index.d.ts +4 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +5 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +30 -30
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +1 -0
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +8 -4
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/migrations/index.d.ts +1 -1
- package/dist/storage/migrations/index.d.ts.map +1 -1
- package/dist/storage/migrations/migrate-storage.d.ts +3 -3
- package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
- package/dist/storage/migrations/types.d.ts +7 -0
- package/dist/storage/migrations/types.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
- package/dist/storage/objects/query-preparation.d.ts +39 -0
- package/dist/storage/objects/query-preparation.d.ts.map +1 -0
- package/dist/storage/objects/types.d.ts +2 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +1 -6
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/index.d.ts +4 -2
- package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations-state.d.ts +0 -2
- package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations-work.d.ts +1 -3
- package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +23 -57
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/outbox.d.ts +3 -2
- package/dist/storage/ontology/in-memory/outbox.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/replacement-plans.d.ts +104 -0
- package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -0
- package/dist/storage/ontology/in-memory/shared-state.d.ts +17 -2
- package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/source-roots.d.ts +3 -1
- package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/sources.d.ts +1 -2
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/state-reader.d.ts +25 -0
- package/dist/storage/ontology/in-memory/state-reader.d.ts.map +1 -0
- package/dist/storage/ontology/index.d.ts +6 -3
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/materializations.d.ts +40 -59
- package/dist/storage/ontology/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/outbox.d.ts +4 -6
- package/dist/storage/ontology/outbox.d.ts.map +1 -1
- package/dist/storage/ontology/provider-work.d.ts +114 -3
- package/dist/storage/ontology/provider-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +14 -39
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +26 -12
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/ontology/replacement-plans.d.ts +103 -0
- package/dist/storage/ontology/replacement-plans.d.ts.map +1 -0
- package/dist/storage/ontology/sources.d.ts +0 -8
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/projection-runs/types.d.ts +2 -0
- package/dist/storage/projection-runs/types.d.ts.map +1 -1
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +6 -6
- package/dist/syncs/index.js +24 -24
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
- package/dist/testing/file-download-grant-storage-contract.d.ts +9 -0
- package/dist/testing/file-download-grant-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2548 -1489
- package/dist/testing/index.js.map +14 -13
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/materializer-storage-contract.d.ts +14 -0
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
- package/dist/testing/ontology-contract-fixture.d.ts +5 -1
- package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +20 -20
- package/dist/workers/index.js +15 -17
- package/dist/workers/index.js.map +3 -3
- package/dist/workers/queue-worker.d.ts +3 -2
- package/dist/workers/queue-worker.d.ts.map +1 -1
- package/dist/workflows/index.js +42 -41
- package/dist/workflows/index.js.map +1 -1
- package/package.json +7 -1
- package/src/actions/types/context.ts +5 -2
- package/src/blob-storage/download-urls.ts +138 -0
- package/src/blob-storage/execution.ts +32 -1
- package/src/blob-storage/internal.ts +1 -0
- package/src/execution/authorized-object-reader.ts +8 -1
- package/src/index.ts +25 -0
- package/src/lake-storage/in-memory.ts +38 -9
- package/src/lake-storage/index.ts +2 -0
- package/src/lake-storage/types.ts +30 -0
- package/src/maintenance/ontology-maintenance.ts +50 -23
- package/src/maintenance/types.ts +1 -4
- package/src/materialization/event-envelopes.ts +168 -0
- package/src/materialization/events.ts +40 -4
- package/src/materialization/index.ts +9 -1
- package/src/materializer/README.md +55 -10
- package/src/materializer/edits/commit.ts +3 -19
- package/src/materializer/edits/plan.ts +20 -71
- package/src/materializer/effective/build-events.ts +42 -136
- package/src/materializer/effective/vector-indexing.ts +2 -3
- package/src/materializer/effective/vectors.ts +2 -3
- package/src/materializer/execution/scope.ts +1 -38
- package/src/materializer/execution/work-executor.ts +21 -115
- package/src/materializer/execution/work-records.ts +0 -15
- package/src/materializer/projections/replace.ts +106 -63
- package/src/materializer/projections/replacement-plan.ts +73 -218
- package/src/materializer/shared/batching.ts +7 -0
- package/src/materializer/telemetry/append.ts +2 -14
- package/src/materializer/telemetry/plan.ts +6 -43
- package/src/models/audio/catalog.ts +90 -0
- package/src/models/audio/errors.ts +19 -0
- package/src/models/audio/file.ts +78 -0
- package/src/models/audio/runtime.ts +182 -0
- package/src/models/audio/types.ts +69 -0
- package/src/models/catalog.ts +52 -5
- package/src/models/definitions.ts +8 -1
- package/src/models/embedding-model.ts +12 -0
- package/src/models/events.ts +3 -0
- package/src/models/execution/README.md +20 -1
- package/src/models/execution/embedding.ts +5 -1
- package/src/models/execution/model-call-admission.ts +6 -1
- package/src/models/execution/model-call-limits.ts +21 -11
- package/src/models/execution/model-call-recorder.ts +1 -0
- package/src/models/execution/model-call-recovery.ts +1 -0
- package/src/models/execution/reranking.ts +137 -0
- package/src/models/execution/usage.ts +1 -0
- package/src/models/execution.ts +5 -1
- package/src/models/generation-types.ts +2 -0
- package/src/models/index.ts +32 -0
- package/src/models/pricing.ts +2 -1
- package/src/models/reranking-model.ts +114 -0
- package/src/objects/query/executor.ts +42 -2
- package/src/objects/query/explain.ts +8 -0
- package/src/objects/query/index.ts +1 -0
- package/src/objects/query/ir.ts +10 -0
- package/src/objects/query/normalize.ts +2 -0
- package/src/objects/query/planner.ts +12 -1
- package/src/objects/query/primary-id.ts +56 -0
- package/src/objects/query/reranking-executor.ts +91 -0
- package/src/objects/query/reranking-limits.ts +3 -0
- package/src/objects/query/reranking-query.ts +8 -0
- package/src/objects/query/validate.ts +33 -10
- package/src/objects/sdk/query-builder.ts +15 -2
- package/src/objects/sdk/query-executor.ts +2 -2
- package/src/objects/sdk/runtime-query-executor.ts +7 -4
- package/src/objects/vectors/README.md +14 -2
- package/src/objects/vectors/handle.ts +1 -1
- package/src/objects/vectors/indexing-dispatch.ts +83 -0
- package/src/objects/vectors/indexing-generate.ts +5 -1
- package/src/objects/vectors/profile.ts +2 -0
- package/src/objects/vectors/query.ts +21 -4
- package/src/objects/vectors/resolve-query.ts +9 -5
- package/src/objects/vectors/types.ts +3 -1
- package/src/ontology/builders.ts +22 -7
- package/src/ontology/index.ts +2 -0
- package/src/ontology/query-capabilities.ts +1 -1
- package/src/ontology/types.ts +21 -0
- package/src/ontology/validation/query.ts +57 -0
- package/src/ontology/vector-profiles.ts +1 -0
- package/src/query.ts +4 -0
- package/src/queues/in-memory.ts +54 -19
- package/src/queues/types.ts +4 -0
- package/src/runtime/host.ts +28 -1
- package/src/runtime/index.ts +1 -0
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/public-origin.ts +33 -0
- package/src/runtime/sixb.ts +13 -2
- package/src/runtime/types.ts +12 -2
- package/src/storage/ai-cost/analytics.ts +2 -0
- package/src/storage/ai-cost/codec.ts +2 -1
- package/src/storage/ai-cost/types.ts +1 -0
- package/src/storage/ai-cost/validation.ts +21 -8
- package/src/storage/ai-limits/in-memory.ts +10 -2
- package/src/storage/ai-limits/provider.ts +29 -2
- package/src/storage/ai-limits/types.ts +3 -0
- package/src/storage/ai-usage/record.ts +9 -0
- package/src/storage/ai-usage/types.ts +8 -4
- package/src/storage/ai-usage/usage.ts +2 -0
- package/src/storage/file-download-grants/in-memory.ts +73 -0
- package/src/storage/file-download-grants/index.ts +8 -0
- package/src/storage/file-download-grants/record.ts +47 -0
- package/src/storage/file-download-grants/types.ts +48 -0
- package/src/storage/in-memory/index.ts +13 -2
- package/src/storage/index.ts +31 -13
- package/src/storage/internal.ts +1 -0
- package/src/storage/migrations/index.ts +1 -0
- package/src/storage/migrations/migrate-storage.ts +36 -12
- package/src/storage/migrations/types.ts +8 -0
- package/src/storage/objects/in-memory/query.ts +2 -0
- package/src/storage/objects/in-memory/selected-reader.ts +1 -0
- package/src/storage/objects/in-memory/storage.ts +1 -0
- package/src/storage/objects/query-preparation.ts +77 -0
- package/src/storage/objects/types.ts +2 -0
- package/src/storage/ontology/commits.ts +1 -6
- package/src/storage/ontology/in-memory/index.ts +28 -9
- package/src/storage/ontology/in-memory/materializations-finalization.ts +35 -68
- package/src/storage/ontology/in-memory/materializations-state.ts +0 -22
- package/src/storage/ontology/in-memory/materializations-work.ts +0 -45
- package/src/storage/ontology/in-memory/materializations.ts +172 -653
- package/src/storage/ontology/in-memory/outbox.ts +37 -29
- package/src/storage/ontology/in-memory/replacement-plans.ts +697 -0
- package/src/storage/ontology/in-memory/shared-state.ts +24 -2
- package/src/storage/ontology/in-memory/source-roots.ts +7 -2
- package/src/storage/ontology/in-memory/sources.ts +7 -33
- package/src/storage/ontology/in-memory/state-reader.ts +245 -0
- package/src/storage/ontology/index.ts +19 -13
- package/src/storage/ontology/materializations.ts +45 -74
- package/src/storage/ontology/outbox.ts +4 -7
- package/src/storage/ontology/provider-header-validation.ts +0 -57
- package/src/storage/ontology/provider-work.ts +381 -90
- package/src/storage/ontology/provider.ts +74 -171
- package/src/storage/ontology/replacement-plans.ts +117 -0
- package/src/storage/ontology/sources.ts +0 -12
- package/src/storage/operation-scope.ts +33 -1
- package/src/storage/projection-runs/in-memory.ts +7 -1
- package/src/storage/projection-runs/types.ts +2 -0
- package/src/storage/types.ts +2 -0
- package/src/testing/ai-cost-storage-contract.ts +1 -0
- package/src/testing/ai-limit-storage-contract.ts +62 -0
- package/src/testing/ai-usage-storage-contract.ts +31 -0
- package/src/testing/file-download-grant-storage-contract.ts +139 -0
- package/src/testing/index.ts +4 -0
- package/src/testing/lake-storage-contract.ts +87 -1
- package/src/testing/materializer-storage-contract.ts +1008 -1
- package/src/testing/object-read-scope-contract.ts +1 -0
- package/src/testing/ontology-contract-fixture.ts +11 -87
- package/src/testing/ontology-storage-contract.ts +70 -39
- package/src/testing/projection-run-storage-contract.ts +14 -0
- package/src/testing/queues-contract.ts +59 -0
- package/src/workers/queue-worker.ts +19 -16
- package/dist/chunk-3c90jvfj.js.map +0 -15
- package/dist/chunk-3nx8vj5a.js.map +0 -12
- package/dist/chunk-7ytf06d3.js +0 -113
- package/dist/chunk-7ytf06d3.js.map +0 -10
- package/dist/chunk-a0073121.js.map +0 -12
- package/dist/chunk-fjw417jf.js.map +0 -62
- package/dist/chunk-g4rbm4a6.js.map +0 -15
- package/dist/chunk-hgqpcmyr.js.map +0 -12
- package/dist/chunk-jgwb25gc.js.map +0 -12
- package/dist/chunk-k4kkp58d.js.map +0 -11
- package/dist/chunk-ky7zpbtt.js.map +0 -19
- package/dist/chunk-mdnw7nj8.js.map +0 -15
- package/dist/chunk-py2dw8cw.js.map +0 -17
- package/dist/chunk-s3csryxe.js.map +0 -11
- package/dist/chunk-xnx96gfy.js.map +0 -15
- package/dist/chunk-z708gemf.js.map +0 -50
- package/dist/materializer/execution/plan-stream.d.ts +0 -8
- package/dist/materializer/execution/plan-stream.d.ts.map +0 -1
- package/src/materializer/execution/plan-stream.ts +0 -121
- /package/dist/{chunk-q3grgzp1.js.map → chunk-23xs4qp9.js.map} +0 -0
- /package/dist/{chunk-vef6qa14.js.map → chunk-2am3db31.js.map} +0 -0
- /package/dist/{chunk-fj1dvp37.js.map → chunk-2vhg6ysa.js.map} +0 -0
- /package/dist/{chunk-p0nbkys4.js.map → chunk-33saed7g.js.map} +0 -0
- /package/dist/{chunk-mmac1mp6.js.map → chunk-52c5zb0z.js.map} +0 -0
- /package/dist/{chunk-8fjmqjyx.js.map → chunk-5be2ath4.js.map} +0 -0
- /package/dist/{chunk-2fv8sajb.js.map → chunk-5thzcb8g.js.map} +0 -0
- /package/dist/{chunk-1jvq82rp.js.map → chunk-9g6jz9kk.js.map} +0 -0
- /package/dist/{chunk-8w27xf9e.js.map → chunk-a7er86jd.js.map} +0 -0
- /package/dist/{chunk-bxx3ms5t.js.map → chunk-c2rga5cx.js.map} +0 -0
- /package/dist/{chunk-dsfw1bdr.js.map → chunk-cnb5kv05.js.map} +0 -0
- /package/dist/{chunk-n5t4mq6z.js.map → chunk-e67ynxcr.js.map} +0 -0
- /package/dist/{chunk-6q7c68yx.js.map → chunk-f1xh7a32.js.map} +0 -0
- /package/dist/{chunk-7jc21943.js.map → chunk-gf7yht60.js.map} +0 -0
- /package/dist/{chunk-ffwvdgk1.js.map → chunk-jjrn5v0p.js.map} +0 -0
- /package/dist/{chunk-r5sc1d2b.js.map → chunk-jnfxmr3f.js.map} +0 -0
- /package/dist/{chunk-y0zmae99.js.map → chunk-k4g51s47.js.map} +0 -0
- /package/dist/{chunk-drz59ve0.js.map → chunk-rx7h5fdx.js.map} +0 -0
- /package/dist/{chunk-yfppyaty.js.map → chunk-sk0hcjsz.js.map} +0 -0
- /package/dist/{chunk-qne45xqq.js.map → chunk-svabwqdq.js.map} +0 -0
- /package/dist/{chunk-xr7y35yj.js.map → chunk-t9shqx3w.js.map} +0 -0
- /package/dist/{chunk-adbve9zt.js.map → chunk-vre348sb.js.map} +0 -0
- /package/dist/{chunk-a4g5yjm0.js.map → chunk-w9yycd3t.js.map} +0 -0
- /package/dist/{chunk-wd34wnsy.js.map → chunk-xcy5ddha.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/actions/descriptor.ts", "../src/actions/execution.ts", "../src/runtime/ai-cost.ts", "../src/runtime/ai-usage.ts", "../src/agents/ids.ts", "../src/agents/request.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/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/decision/runtime.ts", "../src/models/execution/binding.ts", "../src/models/output.ts", "../src/models/execution.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/workflows/validation.ts", "../src/workflows/snapshot.ts", "../src/workflows/request.ts", "../src/workflows/execution.ts", "../src/runtime/sixb.ts", "../src/execution/agent.ts"],
|
|
3
|
+
"sources": ["../src/actions/descriptor.ts", "../src/actions/execution.ts", "../src/runtime/ai-cost.ts", "../src/runtime/ai-usage.ts", "../src/agents/ids.ts", "../src/agents/request.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/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/execution/binding.ts", "../src/models/output.ts", "../src/models/execution.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/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 { 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",
|
|
6
6
|
"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 {\n type RequestActionAndWaitInput,\n type RequestActionInput,\n type RequestActionResult,\n requestAction,\n requestActionAndWait,\n} 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 request(input: RequestActionInput): Promise<RequestActionResult>\n requestAndWait(input: RequestActionAndWaitInput): 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 requestAndWait: (input) => requestActionAndWait(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",
|
|
@@ -14,16 +14,18 @@
|
|
|
14
14
|
"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",
|
|
15
15
|
"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",
|
|
16
16
|
"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",
|
|
17
|
-
"import { assertProviderAccess } from \"../authorization\"\nimport type { ExecutionContext } from \"../execution\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\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 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): BlobsRuntime {\n const assertAccess = () => assertProviderAccess(runtime, execution, \"blobs.access\")\n const executionBlobs: BlobsRuntime = {\n put: (input) => {\n assertAccess()\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 }\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 return blobStorage.createUpload(input)\n }\n executionBlobs.signUploadPart = (input) => {\n assertAccess()\n return blobStorage.signUploadPart(input)\n }\n executionBlobs.completeUpload = (input) => {\n assertAccess()\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",
|
|
17
|
+
"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 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 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 return blobStorage.createUpload(input)\n }\n executionBlobs.signUploadPart = (input) => {\n assertAccess()\n return blobStorage.signUploadPart(input)\n }\n executionBlobs.completeUpload = (input) => {\n assertAccess()\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",
|
|
18
18
|
"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",
|
|
19
19
|
"import { assertPrivileged, isRuntimeAllowed } 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, LakeStorage } from \"../lake-storage/types\"\nimport type { SixbRuntimeContext } from \"../runtime/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 DatasetsRuntime {\n list(): readonly DatasetDefinition[]\n getById(datasetId: string): DatasetDefinition | 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): 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 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",
|
|
20
20
|
"import { assertPrivileged, canViewEvent } from \"../authorization\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\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 canRead(event: StoredDomainEvent): boolean\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 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 visibleEvents = (events: readonly StoredDomainEvent[]): readonly StoredDomainEvent[] => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return []\n case \"principal\":\n return events.filter((event) => canViewEvent(authority.context, event))\n case \"unrestricted\":\n return [...events]\n }\n }\n\n return {\n canRead: (event) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return false\n case \"principal\":\n return canViewEvent(authority.context, event)\n case \"unrestricted\":\n return true\n }\n },\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 const events = await runtime.events.read(input)\n return visibleEvents(events)\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, (events) => {\n const visible = visibleEvents(events)\n if (visible.length > 0) return handler(visible)\n })\n },\n }\n}\n",
|
|
21
21
|
"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",
|
|
22
22
|
"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",
|
|
23
|
+
"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",
|
|
24
|
+
"import { createHash } from \"node:crypto\"\nimport type { BlobStorage, FileRef } from \"../../blob-storage/types\"\nimport { isFileRef } from \"../../blob-storage/validation\"\n\n/** Snapshot caller-owned metadata before model resolution or storage introduces an await. */\nexport function prepareTranscriptionFile(input: FileRef): { audio: FileRef; mediaType: string } {\n if (!isFileRef(input) || !Number.isSafeInteger(input.sizeBytes) || input.sizeBytes <= 0) {\n throw new TypeError(\"[SixbModels] Transcription requires a nonempty FileRef.\")\n }\n\n const audio = { ...input }\n const mediaType = audio.mediaType?.split(\";\", 1)[0]?.trim().toLowerCase()\n if (!mediaType || !/^audio\\/[a-z0-9.+-]+$/.test(mediaType)) {\n throw new TypeError(\"[SixbModels] Audio FileRef must declare an audio mediaType.\")\n }\n\n return { audio, mediaType }\n}\n\n/** Read an already validated reference, bounded by its verified size and the model's limit. */\nexport async function readTranscriptionFile(\n storage: BlobStorage,\n file: FileRef,\n signal: AbortSignal\n): Promise<Uint8Array> {\n const info = await storage.stat(file.blobId)\n signal.throwIfAborted()\n if (\n !info ||\n info.blobId !== file.blobId ||\n info.digest !== file.digest ||\n info.sizeBytes !== file.sizeBytes\n ) {\n throw new Error(\"[SixbModels] Audio reference does not match the stored file.\")\n }\n\n const stream = await storage.open(file.blobId)\n const reader = stream.getReader()\n const cancel = () => {\n void reader.cancel(signal.reason).catch(() => undefined)\n }\n signal.addEventListener(\"abort\", cancel, { once: true })\n\n let complete = false\n try {\n signal.throwIfAborted()\n\n const bytes = new Uint8Array(file.sizeBytes)\n const hash = createHash(\"sha256\")\n let offset = 0\n\n while (true) {\n const { value, done } = await reader.read()\n signal.throwIfAborted()\n if (done) break\n if (!(value instanceof Uint8Array) || value.byteLength > bytes.byteLength - offset) {\n throw new Error(\"[SixbModels] Audio stream exceeds its declared size.\")\n }\n\n bytes.set(value, offset)\n hash.update(value)\n offset += value.byteLength\n }\n\n if (offset !== file.sizeBytes || `sha256:${hash.digest(\"hex\")}` !== file.digest) {\n throw new Error(\"[SixbModels] Audio stream does not match its content-addressed reference.\")\n }\n\n complete = true\n return bytes\n } finally {\n signal.removeEventListener(\"abort\", cancel)\n if (!complete) {\n void reader.cancel().catch(() => undefined)\n }\n reader.releaseLock()\n }\n}\n",
|
|
23
25
|
"import { randomUUID } from \"node:crypto\"\nimport { assertProviderAccess } from \"../../authorization\"\nimport type { ExecutionContext } from \"../../execution\"\nimport { cloneJsonValue } from \"../../json\"\nimport type { SixbRuntimeContext } from \"../../runtime/types\"\nimport type { ModelCatalog } from \"../catalog\"\nimport { AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE } from \"../execution/model-call-admission\"\nimport type { AiModelCallRecorder } from \"../execution/model-call-recorder\"\nimport type { ModelExecutionSession } from \"../execution/session\"\nimport { estimateModelCall } from \"../pricing\"\nimport { DecisionModelResponseError } from \"./errors\"\nimport type {\n DecisionAnswers,\n DecisionModel,\n DecisionModelRequest,\n DecisionModelResponseMetadata,\n DecisionModelResult,\n DecisionModelsRuntime,\n} from \"./types\"\nimport {\n assertDecisionContent,\n assertDecisionModel,\n assertDecisionQuestions,\n assertDecisionSupport,\n validateDecisionAnswers,\n} from \"./validation\"\n\nexport function createDecisionRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n catalog: ModelCatalog | undefined,\n session: ModelExecutionSession\n): DecisionModelsRuntime {\n return {\n async evaluate(input) {\n assertProviderAccess(runtime, execution, \"models.decision.evaluate\")\n assertDecisionContent(input.input, \"input\")\n assertDecisionQuestions(input.questions)\n\n // Snapshot before the first await; caller edits cannot change an admitted request.\n const state = cloneJsonValue(input.input)\n assertDecisionContent(state, \"input\")\n const questions = structuredClone(input.questions)\n const signal = session.signal(input.signal)\n signal.throwIfAborted()\n\n const binding = resolveDecisionModel(catalog, input.model)\n assertDecisionModel(binding)\n assertDecisionSupport(binding, questions)\n\n const accounting = await session.accounting()\n accounting.assertHealthy()\n signal.throwIfAborted()\n const model = binding.resolve ? await binding.resolve() : binding\n assertDecisionModel(model)\n if (model.providerId !== binding.providerId || model.modelId !== binding.modelId) {\n throw new TypeError(\n \"[SixbModels] Resolved decision model identity does not match the selected model.\"\n )\n }\n assertDecisionSupport(model, questions)\n signal.throwIfAborted()\n const request = { input: state, questions, signal }\n const callId = await admitDecisionCall(accounting, model, request)\n\n let result: DecisionModelResult\n try {\n signal.throwIfAborted()\n result = await model.evaluate(request)\n } catch (error) {\n const metadata = error instanceof DecisionModelResponseError ? error.metadata : {}\n await recordDecision(accounting, model, callId, metadata)\n throw error\n }\n\n // Account before validation or cancellation can reject a billable response.\n const event = await recordDecision(accounting, model, callId, result ?? {})\n signal.throwIfAborted()\n\n let output: DecisionAnswers<typeof input.questions>\n try {\n output = validateDecisionAnswers(\n questions,\n result?.output,\n model.definition.capabilities.answerDecimalPlaces\n )\n } catch (cause) {\n throw new DecisionModelResponseError(\n \"[SixbModels] Invalid decision response.\",\n model.providerId,\n model.modelId,\n result ?? {},\n { cause }\n )\n }\n\n return {\n output,\n callId,\n ...(event.responseModelId === undefined ? {} : { responseModelId: event.responseModelId }),\n usage: event.usage,\n cost: event.cost,\n }\n },\n }\n}\n\nfunction resolveDecisionModel(\n catalog: ModelCatalog | undefined,\n requested: DecisionModel | undefined\n): DecisionModel {\n if (!requested) {\n const model = catalog?.decision?.default.model\n if (!model) {\n throw new Error(\"[SixbModels] Configure models.decision or supply a model to evaluate().\")\n }\n return model\n }\n\n if (!catalog) return requested\n\n // The catalog owns the binding, even when a caller supplies another object with the same ID.\n const entry = catalog.decision?.getByRef({\n provider: requested.providerId,\n modelId: requested.modelId,\n })\n if (!entry) {\n throw new Error(\n `[SixbModels] Model '${requested.providerId}/${requested.modelId}' is not configured in models.decision.`\n )\n }\n return entry.model\n}\n\nasync function admitDecisionCall(\n accounting: AiModelCallRecorder,\n model: DecisionModel,\n request: DecisionModelRequest\n): Promise<string> {\n const callId = `call_${randomUUID()}`\n const serialized = JSON.stringify({ input: request.input, questions: request.questions })\n const tokens = Math.ceil(new TextEncoder().encode(serialized).byteLength / 4)\n\n // Reservation estimate only; neither an exact context check nor an enforced output cap.\n const outputTokenAllowance = AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE\n await accounting.admitCall({\n callId,\n providerId: model.providerId,\n modelId: model.modelId,\n costEstimator: model.costEstimator,\n inputTokens: { status: \"estimated\", tokens, method: \"utf8BytesDividedByFour\" },\n outputTokenAllowance,\n estimatedTotalTokens: tokens + outputTokenAllowance,\n })\n\n return callId\n}\n\nasync function recordDecision(\n accounting: AiModelCallRecorder,\n model: DecisionModel,\n callId: string,\n metadata: DecisionModelResponseMetadata\n) {\n const usage = metadata.usage ?? {}\n const estimate = estimateModelCall(model, {\n usage,\n route: metadata.route,\n responseModelId: metadata.responseModelId,\n })\n const event = {\n callId,\n providerId: model.providerId,\n modelId: model.modelId,\n responseId: metadata.providerIds?.responseId ?? callId,\n responseModelId: metadata.responseModelId,\n providerIds: metadata.providerIds,\n usage,\n cost: metadata.reportedCost\n ? { status: \"reported\" as const, ...metadata.reportedCost }\n : estimate,\n ...(metadata.reportedCost ? { estimate } : {}),\n route: metadata.route,\n }\n\n await accounting.onModelCallEnd(event)\n return event\n}\n",
|
|
24
26
|
"import type { ModelsRuntime } from \"../generation-types\"\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\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",
|
|
25
27
|
"import { assertJsonObject } from \"../json\"\nimport { schemaRecordToJsonSchema } from \"../ontology/json-schema\"\nimport { isObjectRefSchema, validateSchemaOrRefValue } from \"../ontology/refs\"\nimport type { ValueType } from \"../ontology/types\"\nimport { isRecord } from \"../ontology/validation\"\nimport { coerceSchemaValueToTyped, normalizeSchemaValue } from \"../ontology/validation/normalize\"\nimport type { LanguageModelOutputShape } from \"./generation-types\"\nimport type { ModelOutput } from \"./tools\"\n\nexport function languageModelOutput(\n shape: LanguageModelOutputShape,\n valueTypesById: ReadonlyMap<string, ValueType>\n): ModelOutput<Record<string, unknown>> {\n if (!isRecord(shape)) throw new TypeError(\"[SixbModels] output must be a Sixb schema record.\")\n const schema = schemaRecordToJsonSchema({ shape, valueTypesById })\n assertJsonObject(schema, \"model output schema\")\n return {\n name: \"sixb_output\",\n schema,\n validate(value) {\n if (!isRecord(value)) throw new TypeError(\"[SixbModels] Output must be an object.\")\n for (const key of Object.keys(value)) {\n if (!Object.hasOwn(shape, key)) {\n throw new TypeError(`[SixbModels] Unknown output field '${key}'.`)\n }\n }\n return Object.fromEntries(\n Object.entries(shape).map(([key, field]) => {\n if (!Object.hasOwn(value, key)) {\n throw new TypeError(`[SixbModels] Missing output field '${key}'.`)\n }\n validateSchemaOrRefValue(field, value[key], `output.${key}`, valueTypesById)\n const output = isObjectRefSchema(field)\n ? value[key]\n : coerceSchemaValueToTyped(\n field,\n normalizeSchemaValue(field, value[key], `output.${key}`, valueTypesById),\n valueTypesById\n )\n return [key, output]\n })\n )\n },\n }\n}\n",
|
|
26
|
-
"import { runModelLoop } from \"../agents/model-loop\"\nimport { assertProviderAccess } from \"../authorization\"\nimport type { ExecutionContext } from \"../execution\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type { ModelCatalog } from \"./catalog\"\nimport { createDecisionRuntime } from \"./decision/runtime\"\nimport { ModelProviderError, ModelStreamError, UnsupportedModelFeatureError } from \"./errors\"\nimport type { ModelCallEndEvent } from \"./events\"\nimport { registerModelExecutionBinding } from \"./execution/binding\"\nimport { aiModelCallOutputTokenAllowance } from \"./execution/model-call-admission\"\nimport { ModelExecutionSession } from \"./execution/session\"\nimport type {\n InferLanguageModelOutput,\n LanguageModelGenerateInput,\n LanguageModelGenerateResult,\n LanguageModelOutputShape,\n ModelsRuntime,\n} from \"./generation-types\"\nimport { modelReasoningSupportIssue } from \"./language-model\"\nimport type { ModelMessage } from \"./messages\"\nimport { languageModelOutput } from \"./output\"\nimport { resolveLanguageModel } from \"./resolve\"\n\nexport function createModelsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n catalog: ModelCatalog | undefined\n): ModelsRuntime {\n const session = runtime.modelExecution ?? new ModelExecutionSession(runtime, execution)\n\n function generate<const TShape extends LanguageModelOutputShape | undefined = undefined>(\n input: LanguageModelGenerateInput<TShape>\n ): Promise<\n LanguageModelGenerateResult<\n TShape extends LanguageModelOutputShape ? InferLanguageModelOutput<TShape> : string\n >\n >\n async function generate(\n input: LanguageModelGenerateInput<LanguageModelOutputShape | undefined>\n ): Promise<LanguageModelGenerateResult<unknown>> {\n assertProviderAccess(runtime, execution, \"models.language.generate\")\n const messages = generationMessages(input)\n const signal = session.signal(input.signal)\n signal.throwIfAborted()\n const selected = input.model\n ? catalog\n ? catalog.language?.getByRef({\n provider: input.model.providerId,\n modelId: input.model.modelId,\n })?.model\n : input.model\n : catalog?.language?.default.model\n if (!selected) {\n throw new Error(\n input.model\n ? `[SixbModels] Model '${input.model.providerId}/${input.model.modelId}' is not configured in models.language.`\n : \"[SixbModels] Configure models.language in createSixb() or supply a model to generate().\"\n )\n }\n const output =\n input.output === undefined\n ? undefined\n : languageModelOutput(input.output, runtime.ontology.getValueTypesById())\n const model = await resolveLanguageModel(selected)\n const reasoningIssue = modelReasoningSupportIssue(\n model.definition.capabilities.reasoning,\n input.reasoning\n )\n if (reasoningIssue) throw new UnsupportedModelFeatureError(`[SixbModels] ${reasoningIssue}.`)\n if (output && model.definition.capabilities.nativeStructuredOutput === false) {\n throw new UnsupportedModelFeatureError(\n \"[SixbModels] Model does not support native structured output.\"\n )\n }\n const maxOutputTokens = Math.min(\n aiModelCallOutputTokenAllowance(input.maxOutputTokens ?? model.definition.maxOutputTokens),\n model.definition.maxOutputTokens ?? Infinity\n )\n if (typeof input.reasoning === \"object\" && input.reasoning.budgetTokens >= maxOutputTokens) {\n throw new TypeError(\"[SixbModels] Output allowance must exceed the reasoning token budget.\")\n }\n const accounting = await session.accounting()\n accounting.assertHealthy()\n signal.throwIfAborted()\n let event: ModelCallEndEvent | undefined\n const options = {\n model: accounting.wrapModel(model),\n messages,\n maxSteps: 1,\n rejectLocalToolCalls: true,\n maxOutputTokens,\n reasoning: input.reasoning,\n caching: input.caching,\n signal,\n onModelCallEnd: async (completed: ModelCallEndEvent) => {\n await accounting.onModelCallEnd(completed)\n event = completed\n },\n }\n const result = output ? await runModelLoop({ ...options, output }) : await runModelLoop(options)\n if (result.status === \"aborted\") {\n signal.throwIfAborted()\n throw new DOMException(\"Model generation aborted\", \"AbortError\")\n }\n if (result.finishReason === \"error\" || result.finishReason === \"content-filter\") {\n throw new ModelProviderError(\n `[SixbModels] Generation ended with '${result.finishReason}'.`,\n model.providerId,\n model.modelId\n )\n }\n if (!event)\n throw new ModelStreamError(\"[SixbModels] Generation completed without accounting metadata.\")\n return {\n output: result.output,\n usage: event.usage,\n cost: event.cost,\n callId: event.callId,\n finishReason: result.finishReason,\n }\n }\n\n const models: ModelsRuntime = {\n language: { generate },\n decision: createDecisionRuntime(runtime, execution, catalog, session),\n }\n registerModelExecutionBinding(models, (input) => {\n session.bind(input)\n })\n return models\n}\n\nfunction generationMessages(\n input: LanguageModelGenerateInput<LanguageModelOutputShape | undefined>\n): readonly ModelMessage[] {\n if ((input.prompt === undefined) === (input.messages === undefined)) {\n throw new TypeError(\"[SixbModels] Supply exactly one of prompt or messages.\")\n }\n if (input.prompt !== undefined && typeof input.prompt !== \"string\") {\n throw new TypeError(\"[SixbModels] prompt must be a string.\")\n }\n if (input.messages !== undefined && !Array.isArray(input.messages)) {\n throw new TypeError(\"[SixbModels] messages must be an array.\")\n }\n if (input.instructions !== undefined && typeof input.instructions !== \"string\") {\n throw new TypeError(\"[SixbModels] instructions must be a string.\")\n }\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 (input.caching !== undefined && input.caching !== \"auto\" && input.caching !== \"off\") {\n throw new TypeError(\"[SixbModels] caching must be 'auto' or 'off'.\")\n }\n return [\n ...(input.instructions === undefined\n ? []\n : [{ role: \"system\" as const, content: input.instructions }]),\n ...(input.prompt !== undefined\n ? [{ role: \"user\" as const, content: [{ type: \"text\" as const, text: input.prompt }] }]\n : (input.messages ?? [])),\n ]\n}\n",
|
|
28
|
+
"import { runModelLoop } from \"../agents/model-loop\"\nimport { assertProviderAccess } from \"../authorization\"\nimport type { BlobStorage } from \"../blob-storage/types\"\nimport type { ExecutionContext } from \"../execution\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport { createAudioRuntime } from \"./audio/runtime\"\nimport type { ModelCatalog } from \"./catalog\"\nimport { createDecisionRuntime } from \"./decision/runtime\"\nimport { ModelProviderError, ModelStreamError, UnsupportedModelFeatureError } from \"./errors\"\nimport type { ModelCallEndEvent } from \"./events\"\nimport { registerModelExecutionBinding } from \"./execution/binding\"\nimport { aiModelCallOutputTokenAllowance } from \"./execution/model-call-admission\"\nimport { ModelExecutionSession } from \"./execution/session\"\nimport type {\n InferLanguageModelOutput,\n LanguageModelGenerateInput,\n LanguageModelGenerateResult,\n LanguageModelOutputShape,\n ModelsRuntime,\n} from \"./generation-types\"\nimport { modelReasoningSupportIssue } from \"./language-model\"\nimport type { ModelMessage } from \"./messages\"\nimport { languageModelOutput } from \"./output\"\nimport { resolveLanguageModel } from \"./resolve\"\n\nexport function createModelsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n catalog: ModelCatalog | undefined,\n blobs?: BlobStorage\n): ModelsRuntime {\n const session = runtime.modelExecution ?? new ModelExecutionSession(runtime, execution)\n\n function generate<const TShape extends LanguageModelOutputShape | undefined = undefined>(\n input: LanguageModelGenerateInput<TShape>\n ): Promise<\n LanguageModelGenerateResult<\n TShape extends LanguageModelOutputShape ? InferLanguageModelOutput<TShape> : string\n >\n >\n async function generate(\n input: LanguageModelGenerateInput<LanguageModelOutputShape | undefined>\n ): Promise<LanguageModelGenerateResult<unknown>> {\n assertProviderAccess(runtime, execution, \"models.language.generate\")\n const messages = generationMessages(input)\n const signal = session.signal(input.signal)\n signal.throwIfAborted()\n const selected = input.model\n ? catalog\n ? catalog.language?.getByRef({\n provider: input.model.providerId,\n modelId: input.model.modelId,\n })?.model\n : input.model\n : catalog?.language?.default.model\n if (!selected) {\n throw new Error(\n input.model\n ? `[SixbModels] Model '${input.model.providerId}/${input.model.modelId}' is not configured in models.language.`\n : \"[SixbModels] Configure models.language in createSixb() or supply a model to generate().\"\n )\n }\n const output =\n input.output === undefined\n ? undefined\n : languageModelOutput(input.output, runtime.ontology.getValueTypesById())\n const model = await resolveLanguageModel(selected)\n const reasoningIssue = modelReasoningSupportIssue(\n model.definition.capabilities.reasoning,\n input.reasoning\n )\n if (reasoningIssue) throw new UnsupportedModelFeatureError(`[SixbModels] ${reasoningIssue}.`)\n if (output && model.definition.capabilities.nativeStructuredOutput === false) {\n throw new UnsupportedModelFeatureError(\n \"[SixbModels] Model does not support native structured output.\"\n )\n }\n const maxOutputTokens = Math.min(\n aiModelCallOutputTokenAllowance(input.maxOutputTokens ?? model.definition.maxOutputTokens),\n model.definition.maxOutputTokens ?? Infinity\n )\n if (typeof input.reasoning === \"object\" && input.reasoning.budgetTokens >= maxOutputTokens) {\n throw new TypeError(\"[SixbModels] Output allowance must exceed the reasoning token budget.\")\n }\n const accounting = await session.accounting()\n accounting.assertHealthy()\n signal.throwIfAborted()\n let event: ModelCallEndEvent | undefined\n const options = {\n model: accounting.wrapModel(model),\n messages,\n maxSteps: 1,\n rejectLocalToolCalls: true,\n maxOutputTokens,\n reasoning: input.reasoning,\n caching: input.caching,\n signal,\n onModelCallEnd: async (completed: ModelCallEndEvent) => {\n await accounting.onModelCallEnd(completed)\n event = completed\n },\n }\n const result = output ? await runModelLoop({ ...options, output }) : await runModelLoop(options)\n if (result.status === \"aborted\") {\n signal.throwIfAborted()\n throw new DOMException(\"Model generation aborted\", \"AbortError\")\n }\n if (result.finishReason === \"error\" || result.finishReason === \"content-filter\") {\n throw new ModelProviderError(\n `[SixbModels] Generation ended with '${result.finishReason}'.`,\n model.providerId,\n model.modelId\n )\n }\n if (!event)\n throw new ModelStreamError(\"[SixbModels] Generation completed without accounting metadata.\")\n return {\n output: result.output,\n usage: event.usage,\n cost: event.cost,\n callId: event.callId,\n finishReason: result.finishReason,\n }\n }\n\n const models: ModelsRuntime = {\n language: { generate },\n decision: createDecisionRuntime(runtime, execution, catalog, session),\n audio: createAudioRuntime(runtime, execution, catalog, session, blobs),\n }\n registerModelExecutionBinding(models, (input) => {\n session.bind(input)\n })\n return models\n}\n\nfunction generationMessages(\n input: LanguageModelGenerateInput<LanguageModelOutputShape | undefined>\n): readonly ModelMessage[] {\n if ((input.prompt === undefined) === (input.messages === undefined)) {\n throw new TypeError(\"[SixbModels] Supply exactly one of prompt or messages.\")\n }\n if (input.prompt !== undefined && typeof input.prompt !== \"string\") {\n throw new TypeError(\"[SixbModels] prompt must be a string.\")\n }\n if (input.messages !== undefined && !Array.isArray(input.messages)) {\n throw new TypeError(\"[SixbModels] messages must be an array.\")\n }\n if (input.instructions !== undefined && typeof input.instructions !== \"string\") {\n throw new TypeError(\"[SixbModels] instructions must be a string.\")\n }\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 (input.caching !== undefined && input.caching !== \"auto\" && input.caching !== \"off\") {\n throw new TypeError(\"[SixbModels] caching must be 'auto' or 'off'.\")\n }\n return [\n ...(input.instructions === undefined\n ? []\n : [{ role: \"system\" as const, content: input.instructions }]),\n ...(input.prompt !== undefined\n ? [{ role: \"user\" as const, content: [{ type: \"text\" as const, text: input.prompt }] }]\n : (input.messages ?? [])),\n ]\n}\n",
|
|
27
29
|
"import { shareSixbErrorReporter } from \"../error-reporting/capability\"\nimport type { ExecutionContext } from \"../execution\"\nimport {\n assertAuthorizedObjectReaderBinding,\n getAuthorizedOntologyView,\n} from \"../execution/authorized-object-reader\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport { assertObjectTypeRegistered } from \"../ontology/validation/properties\"\nimport { shareOntologyMutationRuntime } from \"../runtime/ontology-mutations\"\nimport type {\n ListResult,\n ObjectByIdHandle,\n ObjectReadByIdHandle,\n ObjectReadSet,\n ObjectSet,\n SixbRuntimeContext,\n} from \"../runtime/types\"\nimport type {\n LinkDirection,\n ObjectLinkRow,\n ObjectRow,\n TimeseriesHistoryBatchInput,\n TimeseriesHistoryBatchResult,\n TimeseriesPoint,\n} from \"../storage\"\nimport type {\n ExecuteObjectCountInput,\n ExecuteObjectCountResult,\n ExecuteObjectExistsInput,\n ExecuteObjectExistsResult,\n ExecuteObjectFacetsInput,\n ExecuteObjectFacetsResult,\n ExecuteObjectQueryInput,\n ExecuteObjectQueryLinksInput,\n ExecuteObjectQueryLinksResult,\n ExecuteObjectQueryResult,\n} from \"./query\"\nimport { createObjectSet } from \"./sdk\"\nimport type { ListObjectsParams } from \"./service\"\nimport * as objectService from \"./service\"\nimport { getLatestTelemetryPoint, getTelemetryHistoryBatch } from \"./telemetry\"\n\nexport interface ExecutionObjectOperations {\n listTypes(): readonly ObjectTypeWithPropertyTokens[]\n getTypeById(objectTypeId: string): ObjectTypeWithPropertyTokens | null\n resolveType(objectTypeId: string): ObjectTypeWithPropertyTokens\n getValueTypesById(): ReturnType<SixbRuntimeContext[\"ontology\"][\"getValueTypesById\"]>\n getPrimaryPropertyId(objectTypeId: string): string\n listSubTypes(objectTypeId: string): string[]\n isValidLinkTarget(expected: string | string[], actual: string): boolean\n get(objectTypeId: string, primaryId: string): Promise<ObjectRow | null>\n list(params: ListObjectsParams): Promise<ListResult<ObjectRow>>\n upsert(objectTypeId: string, properties: Record<string, unknown>): Promise<ObjectRow>\n upsertBatch(\n objectTypeId: string,\n items: readonly { properties: Record<string, unknown> }[]\n ): ReturnType<typeof objectService.upsertObjectBatch>\n appendTelemetry(\n objectTypeId: string,\n items: readonly { id: string; properties: Record<string, unknown>; at?: Date }[]\n ): Promise<void>\n upsertLink(\n objectTypeId: string,\n sourceId: string,\n linkId: string,\n target: { targetTypeId: string; targetId: string; properties?: Record<string, unknown> }\n ): Promise<void>\n upsertLinkBatch(\n items: readonly {\n objectTypeId: string\n sourceId: string\n linkId: string\n target: { targetTypeId: string; targetId: string; properties?: Record<string, unknown> }\n }[]\n ): ReturnType<typeof objectService.upsertLinkBatch>\n removeLink(\n objectTypeId: string,\n sourceId: string,\n linkId: string,\n target: { targetTypeId: string; targetId: string }\n ): Promise<void>\n}\n\nexport interface ExecutionObjectByIdHandle<TObjectType extends ObjectTypeWithPropertyTokens>\n extends ObjectReadByIdHandle<TObjectType> {\n vector: ObjectByIdHandle<TObjectType>[\"vector\"]\n requestAction: ObjectByIdHandle<TObjectType>[\"requestAction\"]\n requestActionAndWait: ObjectByIdHandle<TObjectType>[\"requestActionAndWait\"]\n link: ObjectByIdHandle<TObjectType>[\"link\"]\n unlink: ObjectByIdHandle<TObjectType>[\"unlink\"]\n delete: ObjectByIdHandle<TObjectType>[\"delete\"]\n restore: ObjectByIdHandle<TObjectType>[\"restore\"]\n telemetry: ObjectByIdHandle<TObjectType>[\"telemetry\"]\n}\n\nexport interface ExecutionObjectSet<TObjectType extends ObjectTypeWithPropertyTokens>\n extends ObjectReadSet<TObjectType> {\n requestAction: ObjectSet<TObjectType>[\"requestAction\"]\n requestActionAndWait: ObjectSet<TObjectType>[\"requestActionAndWait\"]\n upsert: ObjectSet<TObjectType>[\"upsert\"]\n upsertLink: ObjectSet<TObjectType>[\"upsertLink\"]\n removeLink: ObjectSet<TObjectType>[\"removeLink\"]\n appendTelemetryBatch: ObjectSet<TObjectType>[\"appendTelemetryBatch\"]\n\n byId(id: string): ExecutionObjectByIdHandle<TObjectType>\n}\n\n/** Public input for querying physical links incident to an object query result. */\nexport type ObjectQueryLinksInput = Omit<ExecuteObjectQueryLinksInput, \"projectId\">\n\n/** Public result returned by {@link ObjectsRuntime.queryLinks}. */\nexport type ObjectQueryLinksResult = ExecuteObjectQueryLinksResult\n\nexport interface ObjectsRuntime extends ExecutionObjectOperations {\n <TObjectType extends ObjectTypeWithPropertyTokens>(\n objectType: TObjectType\n ): ExecutionObjectSet<TObjectType>\n executeQuery(input: Omit<ExecuteObjectQueryInput, \"projectId\">): Promise<ExecuteObjectQueryResult>\n queryLinks(input: ObjectQueryLinksInput): Promise<ObjectQueryLinksResult>\n count(input: Omit<ExecuteObjectCountInput, \"projectId\">): Promise<ExecuteObjectCountResult>\n exists(input: Omit<ExecuteObjectExistsInput, \"projectId\">): Promise<ExecuteObjectExistsResult>\n facet(input: Omit<ExecuteObjectFacetsInput, \"projectId\">): Promise<ExecuteObjectFacetsResult>\n listLinks(input: {\n readonly objectTypeId: string\n readonly objectId: string\n readonly linkId?: string\n readonly direction?: LinkDirection\n }): Promise<readonly ObjectLinkRow[]>\n getTelemetryHistoryBatch(\n input: Omit<TimeseriesHistoryBatchInput, \"projectId\">\n ): Promise<readonly TimeseriesHistoryBatchResult[]>\n getTelemetryHistory(input: {\n readonly objectTypeId: string\n readonly objectId: string\n readonly propertyId: string\n readonly from?: Date\n readonly to?: Date\n readonly limit?: number\n readonly order?: \"asc\" | \"desc\"\n }): Promise<readonly TimeseriesPoint[]>\n getLatestTelemetry(input: {\n readonly objectTypeId: string\n readonly objectId: string\n readonly propertyId: string\n }): Promise<TimeseriesPoint | null>\n}\n\nexport function createObjectsRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext\n): ObjectsRuntime {\n const runtimeAuthorization = runtime.runtimeAuthorization\n const objectReader = runtime.objectReader\n assertAuthorizedObjectReaderBinding({\n reader: objectReader,\n scope: { execution, authorization: runtimeAuthorization },\n })\n const authorization = runtime.authorization\n const capturedRuntime: SixbRuntimeContext = {\n projectId: runtime.projectId,\n broker: runtime.broker,\n ontology: runtime.ontology,\n embeddingModels: runtime.embeddingModels,\n actionRegistry: runtime.actionRegistry,\n events: runtime.events,\n storage: runtime.storage,\n queues: runtime.queues,\n runtimeAuthorization,\n objectReader,\n ...(authorization === undefined ? {} : { authorization }),\n }\n shareOntologyMutationRuntime(runtime, capturedRuntime)\n shareSixbErrorReporter(runtime, capturedRuntime)\n Object.freeze(capturedRuntime)\n const ontologyView = () => getAuthorizedOntologyView(objectReader)\n const objects = Object.assign(\n <TObjectType extends ObjectTypeWithPropertyTokens>(objectType: TObjectType) => {\n assertObjectTypeRegistered(capturedRuntime.ontology.getObjectTypesById(), objectType)\n return createObjectSet<TObjectType>({\n ...capturedRuntime,\n execution,\n objectType,\n }) as ExecutionObjectSet<TObjectType>\n },\n {\n listTypes: () => ontologyView().listObjectTypes(),\n getTypeById: (objectTypeId: string) => ontologyView().getObjectTypeById(objectTypeId),\n resolveType: (objectTypeId: string) => ontologyView().resolveObjectType(objectTypeId),\n getValueTypesById: () => ontologyView().getValueTypesById(),\n listSubTypes: (objectTypeId: string) => ontologyView().listSubTypes(objectTypeId),\n isValidLinkTarget: (expected: string | string[], actual: string) =>\n ontologyView().isValidLinkTarget(expected, actual),\n executeQuery: (input: Omit<ExecuteObjectQueryInput, \"projectId\">) =>\n objectReader.executeQuery(input),\n queryLinks: (input: ObjectQueryLinksInput) => objectReader.queryLinks(input),\n count: (input: Omit<ExecuteObjectCountInput, \"projectId\">) => objectReader.count(input),\n exists: (input: Omit<ExecuteObjectExistsInput, \"projectId\">) => objectReader.exists(input),\n facet: (input: Omit<ExecuteObjectFacetsInput, \"projectId\">) => objectReader.facet(input),\n listLinks: async (input: {\n objectTypeId: string\n objectId: string\n linkId?: string\n direction?: LinkDirection\n }) => {\n return objectReader.listLinks(input)\n },\n getTelemetryHistoryBatch: (input: Omit<TimeseriesHistoryBatchInput, \"projectId\">) => {\n const timeseries = capturedRuntime.storage.timeseries\n return getTelemetryHistoryBatch(input, { storage: timeseries, objectReader })\n },\n getTelemetryHistory: async (input: {\n objectTypeId: string\n objectId: string\n propertyId: string\n from?: Date\n to?: Date\n limit?: number\n order?: \"asc\" | \"desc\"\n }) => {\n const timeseries = capturedRuntime.storage.timeseries\n const objectTypeId = input.objectTypeId\n const objectId = input.objectId\n const propertyId = input.propertyId\n const from = input.from\n const to = input.to\n const limit = input.limit\n const order = input.order\n const [result] = await getTelemetryHistoryBatch(\n {\n series: [{ objectTypeId, objectId, propertyId }],\n ...(from === undefined ? {} : { from }),\n ...(to === undefined ? {} : { to }),\n ...(limit === undefined ? {} : { limitPerSeries: limit }),\n ...(order === undefined ? {} : { order }),\n },\n { storage: timeseries, objectReader }\n )\n return result?.points ?? []\n },\n getLatestTelemetry: async (input: {\n objectTypeId: string\n objectId: string\n propertyId: string\n }) => {\n const timeseries = capturedRuntime.storage.timeseries\n const objectTypeId = input.objectTypeId\n const objectId = input.objectId\n const propertyId = input.propertyId\n return getLatestTelemetryPoint(\n { objectTypeId, objectId, propertyId },\n { storage: timeseries, objectReader }\n )\n },\n list: (params: ListObjectsParams) => objectService.listObjects(capturedRuntime, params),\n get: (objectTypeId: string, primaryId: string) =>\n objectReader.getByPrimaryId({ objectTypeId, primaryId }),\n getPrimaryPropertyId: (objectTypeId: string) => {\n return ontologyView().getPrimaryPropertyId(objectTypeId)\n },\n upsert: (objectTypeId: string, properties: Record<string, unknown>) =>\n objectService.upsertObject(capturedRuntime, objectTypeId, properties),\n upsertBatch: (\n objectTypeId: string,\n items: readonly { properties: Record<string, unknown> }[]\n ) => objectService.upsertObjectBatch(capturedRuntime, objectTypeId, items),\n upsertLink: (\n objectTypeId: string,\n sourceId: string,\n linkId: string,\n target: { targetTypeId: string; targetId: string; properties?: Record<string, unknown> }\n ) => objectService.upsertLink(capturedRuntime, objectTypeId, sourceId, linkId, target),\n upsertLinkBatch: (\n items: readonly {\n objectTypeId: string\n sourceId: string\n linkId: string\n target: { targetTypeId: string; targetId: string; properties?: Record<string, unknown> }\n }[]\n ) => objectService.upsertLinkBatch(capturedRuntime, items),\n removeLink: (\n objectTypeId: string,\n sourceId: string,\n linkId: string,\n target: { targetTypeId: string; targetId: string }\n ) => objectService.removeLink(capturedRuntime, objectTypeId, sourceId, linkId, target),\n appendTelemetry: (\n objectTypeId: string,\n items: readonly { id: string; properties: Record<string, unknown>; at?: Date }[]\n ) => objectService.appendTelemetry(capturedRuntime, objectTypeId, items),\n }\n )\n\n return objects as ObjectsRuntime\n}\n",
|
|
28
30
|
"import { assertAuthorized, canViewPipelineRun, isRuntimeAllowed } from \"../authorization\"\nimport type { ExecutionContext } from \"../execution\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type {\n ListLatestPipelineRunsResult,\n ListPipelineRunsInput,\n ListPipelineRunsResult,\n ListPipelineStepRunsInput,\n ListPipelineStepRunsResult,\n PipelineRunRecord,\n} from \"../storage/pipeline-runs\"\nimport { PipelineError } from \"./errors\"\nimport {\n type PipelineRunRequestResult,\n type RequestPipelineRunInput,\n requestPipelineRun,\n} from \"./request\"\nimport type { PipelineDefinition } from \"./types\"\n\nexport interface PipelineRunsRuntime {\n getById(runId: string): Promise<PipelineRunRecord | null>\n list(\n input?: Omit<ListPipelineRunsInput, \"projectId\" | \"pipelineIds\">\n ): Promise<ListPipelineRunsResult>\n listLatest(pipelineIds: readonly string[]): Promise<ListLatestPipelineRunsResult>\n listSteps(\n runId: string,\n input?: Omit<ListPipelineStepRunsInput, \"projectId\" | \"pipelineRunId\">\n ): Promise<ListPipelineStepRunsResult | null>\n}\n\nexport interface PipelinesRuntime {\n list(): readonly PipelineDefinition[]\n getById(pipelineId: string): PipelineDefinition | null\n request(input: RequestPipelineRunInput): Promise<PipelineRunRequestResult>\n readonly runs: PipelineRunsRuntime\n}\n\nexport function createPipelinesRuntime(\n runtime: SixbRuntimeContext,\n execution: ExecutionContext,\n source: Pick<PipelinesRuntime, \"list\" | \"getById\">\n): PipelinesRuntime {\n const authority = resolveRuntimeAuthorizationForProject(runtime)\n const allowed = (pipelineId: string) =>\n isRuntimeAllowed(runtime, { kind: \"pipeline.run\", pipelineId })\n const visibleIds = () =>\n source\n .list()\n .filter((pipeline) => allowed(pipeline.id))\n .map((pipeline) => pipeline.id)\n const historyFilterIds = () =>\n authority.type === \"unrestricted\"\n ? undefined\n : authority.type === \"principal\"\n ? visibleIds()\n : []\n\n const getRun = async (runId: string) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const run =\n (await runtime.storage.pipelineRuns?.getById({\n projectId: runtime.projectId,\n id: runId,\n })) ?? null\n if (!run) return null\n return authority.type === \"unrestricted\" || canViewPipelineRun(authority.context, run)\n ? run\n : null\n }\n\n return {\n list: () =>\n authority.type === \"denied\" || authority.type === \"delegated\"\n ? []\n : source.list().filter((pipeline) => allowed(pipeline.id)),\n getById: (pipelineId) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") return null\n const pipeline = source.getById(pipelineId)\n return pipeline && allowed(pipelineId) ? pipeline : null\n },\n request: async (input) => {\n assertAuthorized(runtime, { kind: \"pipeline.run\", pipelineId: input.pipelineId })\n const pipeline = source.getById(input.pipelineId)\n if (!pipeline) throw new PipelineError(`[Sixb] Unknown pipeline '${input.pipelineId}'`)\n return requestPipelineRun(runtime, execution, pipeline, input)\n },\n runs: {\n getById: getRun,\n list: (input = {}) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") {\n return Promise.resolve({ runs: [], hasMore: false, total: 0 })\n }\n const storage = runtime.storage.pipelineRuns\n if (!storage) return Promise.resolve({ runs: [], hasMore: false, total: 0 })\n return storage.list({\n ...input,\n pipelineIds: historyFilterIds(),\n projectId: runtime.projectId,\n })\n },\n listLatest: (pipelineIds) => {\n if (authority.type === \"denied\" || authority.type === \"delegated\") {\n return Promise.resolve({ runs: [] })\n }\n const storage = runtime.storage.pipelineRuns\n if (!storage || pipelineIds.length === 0) return Promise.resolve({ runs: [] })\n const allowedIds = pipelineIds.filter(allowed)\n return allowedIds.length === 0\n ? Promise.resolve({ runs: [] })\n : storage.listLatestByPipelineIds({\n projectId: runtime.projectId,\n pipelineIds: allowedIds,\n })\n },\n listSteps: async (runId, input = {}) => {\n const storage = runtime.storage.pipelineRuns\n if (!storage || !(await getRun(runId))) return null\n return storage.listSteps({\n ...input,\n pipelineRunId: runId,\n projectId: runtime.projectId,\n })\n },\n },\n }\n}\n",
|
|
29
31
|
"import { canViewProjection, canViewProjectionRun } from \"../authorization\"\nimport { resolveRuntimeAuthorizationForProject } from \"../execution/authorization\"\nimport type { SixbRuntimeContext } from \"../runtime/types\"\nimport type {\n ListLatestProjectionRunsResult,\n ListProjectionRunsInput,\n ListProjectionRunsResult,\n ProjectionRunRecord,\n} from \"../storage/projection-runs\"\nimport type { ProjectionDefinitionCatalog } from \"./registry\"\nimport type {\n LinkProjectionDefinition,\n ObjectProjectionDefinition,\n ProjectionDefinition,\n TelemetryProjectionDefinition,\n} from \"./types\"\n\nexport interface ProjectionRunsRuntime {\n getById(runId: string): Promise<ProjectionRunRecord | null>\n list(\n input?: Omit<ListProjectionRunsInput, \"projectId\" | \"objectTypeIds\">\n ): Promise<ListProjectionRunsResult>\n listLatest(projectionIds: readonly string[]): Promise<ListLatestProjectionRunsResult>\n}\n\nexport interface ProjectionsRuntime {\n list(): readonly ProjectionDefinition[]\n listObjects(): readonly ObjectProjectionDefinition[]\n listLinks(): readonly LinkProjectionDefinition[]\n listTelemetry(): readonly TelemetryProjectionDefinition[]\n getById(projectionId: string): ProjectionDefinition | null\n readonly runs: ProjectionRunsRuntime\n}\n\nexport function createProjectionsRuntime(\n runtime: SixbRuntimeContext,\n source: ProjectionDefinitionCatalog\n): ProjectionsRuntime {\n const authority = resolveRuntimeAuthorizationForProject(runtime)\n const listVisible = <TProjection extends ProjectionDefinition>(\n list: () => readonly TProjection[]\n ): readonly TProjection[] => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return []\n case \"principal\":\n return list().filter((projection) => canViewProjection(authority.context, projection))\n case \"unrestricted\":\n return [...list()]\n }\n }\n const visible = (projection: ProjectionDefinition) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return false\n case \"principal\":\n return canViewProjection(authority.context, projection)\n case \"unrestricted\":\n return true\n }\n }\n const visibleIds = (projectionIds: readonly string[]) =>\n projectionIds.filter((projectionId) => {\n const projection = source.getById(projectionId)\n return projection !== null && visible(projection)\n })\n\n return {\n list: () => listVisible(() => source.list()),\n listObjects: () => listVisible(() => source.listObjects()),\n listLinks: () => listVisible(() => source.listLinks()),\n listTelemetry: () => listVisible(() => source.listTelemetry()),\n getById: (projectionId) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return null\n case \"principal\":\n case \"unrestricted\":\n break\n }\n const projection = source.getById(projectionId)\n return projection && visible(projection) ? projection : null\n },\n runs: {\n getById: async (runId) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return null\n case \"principal\":\n case \"unrestricted\":\n break\n }\n const run =\n (await runtime.storage.projectionRuns?.getById({\n projectId: runtime.projectId,\n id: runId,\n })) ?? null\n if (!run) return null\n return authority.type === \"unrestricted\" ||\n canViewProjectionRun(authority.context, run.target)\n ? run\n : null\n },\n list: (input = {}) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return Promise.resolve({ runs: [], hasMore: false, total: 0 })\n case \"principal\":\n case \"unrestricted\":\n break\n }\n const storage = runtime.storage.projectionRuns\n if (!storage) return Promise.resolve({ runs: [], hasMore: false, total: 0 })\n return storage.list({\n ...input,\n objectTypeIds:\n authority.type === \"principal\"\n ? [...authority.context.grants[\"view:object\"]]\n : undefined,\n projectId: runtime.projectId,\n })\n },\n listLatest: (projectionIds) => {\n switch (authority.type) {\n case \"denied\":\n case \"delegated\":\n return Promise.resolve({ runs: [] })\n case \"principal\":\n case \"unrestricted\":\n break\n }\n const storage = runtime.storage.projectionRuns\n if (!storage || projectionIds.length === 0) return Promise.resolve({ runs: [] })\n const ids = visibleIds(projectionIds)\n return ids.length === 0\n ? Promise.resolve({ runs: [] })\n : storage.listLatestByProjectionIds({ projectId: runtime.projectId, projectionIds: ids })\n },\n },\n }\n}\n",
|
|
@@ -37,10 +39,10 @@
|
|
|
37
39
|
"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",
|
|
38
40
|
"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 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 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",
|
|
39
41
|
"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",
|
|
40
|
-
"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 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),\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(runtime
|
|
42
|
+
"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),\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",
|
|
41
43
|
"import { type AgentExecutionAuthorization, agentServiceAccountId } from \"../agents/authority\"\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/** 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"
|
|
42
44
|
],
|
|
43
|
-
"mappings": "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",
|
|
44
|
-
"debugId": "
|
|
45
|
+
"mappings": "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",
|
|
46
|
+
"debugId": "BFCFBA45C8ABE88264756E2164756E21",
|
|
45
47
|
"names": []
|
|
46
48
|
}
|