@sixb/core 0.1.6 → 0.1.8
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/delegated-admission.d.ts +24 -0
- package/dist/actions/delegated-admission.d.ts.map +1 -0
- package/dist/actions/descriptor.d.ts +29 -0
- package/dist/actions/descriptor.d.ts.map +1 -0
- package/dist/actions/execution.d.ts +5 -5
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.js +50 -40
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +20 -0
- package/dist/actions/run-authorization.d.ts.map +1 -0
- package/dist/actions/run-dispatch.d.ts +3 -1
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/worker.js +5 -5
- package/dist/actions/worker.js.map +1 -1
- package/dist/agents/adapters.d.ts +6 -166
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +22 -6
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/builders.d.ts +3 -11
- package/dist/agents/builders.d.ts.map +1 -1
- package/dist/agents/context-resolution.d.ts.map +1 -1
- package/dist/agents/context.js +2 -2
- package/dist/agents/dispatch.d.ts +9 -1
- package/dist/agents/dispatch.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -10
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts +9 -10
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/identity.d.ts +3 -0
- package/dist/agents/identity.d.ts.map +1 -0
- package/dist/agents/ids.d.ts +4 -0
- package/dist/agents/ids.d.ts.map +1 -1
- package/dist/agents/index.d.ts +15 -11
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +90 -78
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +19 -13
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +58 -0
- package/dist/agents/model-loop.d.ts.map +1 -0
- package/dist/agents/reference.d.ts +4 -0
- package/dist/agents/reference.d.ts.map +1 -0
- package/dist/agents/request.d.ts +10 -8
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/retired-config.d.ts +4 -0
- package/dist/agents/retired-config.d.ts.map +1 -0
- package/dist/agents/streams.d.ts +13 -8
- package/dist/agents/streams.d.ts.map +1 -1
- package/dist/agents/streams.js +7 -5
- package/dist/agents/streams.js.map +1 -1
- package/dist/agents/tool-catalog.d.ts +9 -0
- package/dist/agents/tool-catalog.d.ts.map +1 -0
- package/dist/agents/tool-definition.d.ts +1 -1
- package/dist/agents/tool-definition.d.ts.map +1 -1
- package/dist/agents/types.d.ts +31 -68
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +3 -13
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/ai-usage/execution.d.ts +53 -0
- package/dist/ai-usage/execution.d.ts.map +1 -0
- package/dist/ai-usage/index.d.ts +3 -0
- package/dist/ai-usage/index.d.ts.map +1 -0
- package/dist/auth/index.js +12 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/decision.d.ts +14 -3
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +25 -8
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +12 -7
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +3 -3
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +7 -5
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +2 -2
- package/dist/blob-storage/index.js +3 -3
- package/dist/bootstrap/discovery.d.ts +6 -6
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.js +62 -51
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/broker/index.js +2 -2
- package/dist/{chunk-zqysyfjt.js → chunk-08m3b6w8.js} +1 -1
- package/dist/chunk-19jp6g9d.js +131 -0
- package/dist/chunk-19jp6g9d.js.map +11 -0
- package/dist/{chunk-3j7573mj.js → chunk-2dw777qw.js} +50 -5
- package/dist/{chunk-3j7573mj.js.map → chunk-2dw777qw.js.map} +4 -3
- package/dist/{chunk-0172wgm9.js → chunk-2xns679x.js} +10 -2
- package/dist/{chunk-0172wgm9.js.map → chunk-2xns679x.js.map} +3 -3
- package/dist/chunk-359jm1jw.js +147 -0
- package/dist/chunk-359jm1jw.js.map +10 -0
- package/dist/{chunk-dy311asx.js → chunk-3xep5cjx.js} +58 -23
- package/dist/chunk-3xep5cjx.js.map +15 -0
- package/dist/{chunk-n4spznws.js → chunk-3z1qec12.js} +83 -12
- package/dist/chunk-3z1qec12.js.map +12 -0
- package/dist/{chunk-z3zp0bj1.js → chunk-407j3msh.js} +1 -1
- package/dist/{chunk-rhrbz7d4.js → chunk-4a849fr1.js} +1 -1
- package/dist/{chunk-cy0n5dms.js → chunk-4jjp5k14.js} +1 -1
- package/dist/chunk-4qfkag59.js +1568 -0
- package/dist/chunk-4qfkag59.js.map +20 -0
- package/dist/{chunk-1e8m6yn3.js → chunk-4sm0aznx.js} +685 -86
- package/dist/chunk-4sm0aznx.js.map +43 -0
- package/dist/chunk-4yqmp43v.js +159 -0
- package/dist/chunk-4yqmp43v.js.map +11 -0
- package/dist/{chunk-rdeagz6b.js → chunk-5e3pq99w.js} +3 -7
- package/dist/{chunk-rdeagz6b.js.map → chunk-5e3pq99w.js.map} +3 -3
- package/dist/{chunk-ezake7g1.js → chunk-5ntny1qx.js} +1 -1
- package/dist/{chunk-dm72y8wt.js → chunk-7y0f6rf1.js} +29 -16
- package/dist/chunk-7y0f6rf1.js.map +10 -0
- package/dist/{chunk-72q2y8hn.js → chunk-8tsf6dmc.js} +2 -2
- package/dist/{chunk-qewtks41.js → chunk-9nbmsvn5.js} +123 -20
- package/dist/chunk-9nbmsvn5.js.map +11 -0
- package/dist/{chunk-5sxb1168.js → chunk-aa2pen2v.js} +256 -82
- package/dist/chunk-aa2pen2v.js.map +34 -0
- package/dist/{chunk-819wnjz8.js → chunk-ajnan18g.js} +13 -10
- package/dist/chunk-ajnan18g.js.map +12 -0
- package/dist/chunk-c15dr03f.js +43 -0
- package/dist/chunk-c15dr03f.js.map +10 -0
- package/dist/{chunk-t0jjkep3.js → chunk-d8qkxt2v.js} +4 -2
- package/dist/chunk-d8qkxt2v.js.map +10 -0
- package/dist/{chunk-vybf6pkp.js → chunk-dbc80ad7.js} +1 -1
- package/dist/{chunk-nkbfrt0c.js → chunk-f26bck4t.js} +7 -7
- package/dist/{chunk-x2yw73hy.js → chunk-fvt9rjsa.js} +23 -7
- package/dist/chunk-fvt9rjsa.js.map +10 -0
- package/dist/{chunk-znagycq7.js → chunk-gbejpkex.js} +5 -5
- package/dist/{chunk-znagycq7.js.map → chunk-gbejpkex.js.map} +1 -1
- package/dist/{chunk-e42bc6m3.js → chunk-gzasd5b6.js} +5 -5
- package/dist/{chunk-e42bc6m3.js.map → chunk-gzasd5b6.js.map} +3 -3
- package/dist/{chunk-rnshztfq.js → chunk-h0k55pc7.js} +6 -6
- package/dist/{chunk-rnshztfq.js.map → chunk-h0k55pc7.js.map} +1 -1
- package/dist/chunk-h5vqbfmd.js +1537 -0
- package/dist/chunk-h5vqbfmd.js.map +19 -0
- package/dist/chunk-j1sbhm7p.js +45 -0
- package/dist/chunk-j1sbhm7p.js.map +10 -0
- package/dist/chunk-jecn6t54.js +307 -0
- package/dist/chunk-jecn6t54.js.map +12 -0
- package/dist/{chunk-dsrkgtnh.js → chunk-jq43kdvk.js} +1 -1
- package/dist/{chunk-wtmzkcht.js → chunk-k34z5rvh.js} +1 -1
- package/dist/{chunk-f6erf2vv.js → chunk-k522z7v6.js} +10 -5
- package/dist/chunk-k522z7v6.js.map +10 -0
- package/dist/{chunk-htq0qh7z.js → chunk-ka3a2ft3.js} +2 -2
- package/dist/{chunk-ckxfnx7f.js → chunk-mth82m8t.js} +129 -95
- package/dist/chunk-mth82m8t.js.map +14 -0
- package/dist/{chunk-5gynx4xn.js → chunk-mwsxn98e.js} +79 -77
- package/dist/{chunk-5gynx4xn.js.map → chunk-mwsxn98e.js.map} +8 -8
- package/dist/{chunk-f2rt4vkh.js → chunk-n2w475r0.js} +3 -3
- package/dist/chunk-n4khvw9n.js +111 -0
- package/dist/chunk-n4khvw9n.js.map +11 -0
- package/dist/{chunk-t8t39h7v.js → chunk-n6jxh8sw.js} +10 -2
- package/dist/chunk-n6jxh8sw.js.map +10 -0
- package/dist/chunk-nn0tekr1.js +284 -0
- package/dist/chunk-nn0tekr1.js.map +12 -0
- package/dist/chunk-nx7k8tpr.js +436 -0
- package/dist/chunk-nx7k8tpr.js.map +12 -0
- package/dist/{chunk-drjqm1aa.js → chunk-p03r0h5s.js} +310 -28
- package/dist/chunk-p03r0h5s.js.map +16 -0
- package/dist/{chunk-1g8negke.js → chunk-p1rzczbt.js} +93 -8
- package/dist/chunk-p1rzczbt.js.map +12 -0
- package/dist/{chunk-f83ka50g.js → chunk-p1x242ad.js} +652 -77
- package/dist/chunk-p1x242ad.js.map +25 -0
- package/dist/chunk-p2vqaxkc.js +528 -0
- package/dist/chunk-p2vqaxkc.js.map +15 -0
- package/dist/{chunk-a31h57d5.js → chunk-pc7ys28c.js} +70 -7
- package/dist/chunk-pc7ys28c.js.map +14 -0
- package/dist/{chunk-md8k0r54.js → chunk-q0k9nc5a.js} +281 -89
- package/dist/chunk-q0k9nc5a.js.map +14 -0
- package/dist/{chunk-bhxaq2nn.js → chunk-qw9gvjv5.js} +1 -1
- package/dist/chunk-r8jrnexe.js +403 -0
- package/dist/chunk-r8jrnexe.js.map +10 -0
- package/dist/{chunk-h9kxd41f.js → chunk-rafagrwr.js} +48 -7
- package/dist/chunk-rafagrwr.js.map +11 -0
- package/dist/{chunk-dysw7nsm.js → chunk-rv2hkwwa.js} +2 -2
- package/dist/{chunk-ghteq96b.js → chunk-s5y30bc9.js} +2 -2
- package/dist/{chunk-t624af60.js → chunk-sbzzr4kx.js} +1848 -757
- package/dist/chunk-sbzzr4kx.js.map +63 -0
- package/dist/{chunk-6gjqgd3d.js → chunk-tpnd31c1.js} +2 -1
- package/dist/chunk-tpnd31c1.js.map +11 -0
- package/dist/chunk-trxxmgnf.js +68 -0
- package/dist/chunk-trxxmgnf.js.map +11 -0
- package/dist/{chunk-0hc5j867.js → chunk-v1xppd0y.js} +17 -13
- package/dist/{chunk-0hc5j867.js.map → chunk-v1xppd0y.js.map} +2 -2
- package/dist/chunk-v4en4jc2.js +252 -0
- package/dist/chunk-v4en4jc2.js.map +10 -0
- package/dist/{chunk-xkthy56g.js → chunk-w1tvjszy.js} +1 -1
- package/dist/{chunk-8b55ygje.js → chunk-w3e09qqk.js} +1 -1
- package/dist/{chunk-8gv5z0zm.js → chunk-w9tg6yyb.js} +13 -8
- package/dist/{chunk-8gv5z0zm.js.map → chunk-w9tg6yyb.js.map} +3 -3
- package/dist/{chunk-62c7t4jc.js → chunk-wdage1eb.js} +1 -1
- package/dist/{chunk-tg5mee00.js → chunk-wtf06et8.js} +11 -7
- package/dist/{chunk-tg5mee00.js.map → chunk-wtf06et8.js.map} +3 -3
- package/dist/{chunk-nva1xkjz.js → chunk-xajtptbw.js} +1237 -1434
- package/dist/chunk-xajtptbw.js.map +40 -0
- package/dist/{chunk-xc7hq65b.js → chunk-yp8ee62z.js} +49 -2
- package/dist/chunk-yp8ee62z.js.map +11 -0
- package/dist/chunk-z4ccwbkz.js +139 -0
- package/dist/chunk-z4ccwbkz.js.map +10 -0
- package/dist/datasets/builders.d.ts +11 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/changes.d.ts +14 -4
- package/dist/datasets/changes.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +15 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -0
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/sequence.d.ts +7 -0
- package/dist/datasets/sequence.d.ts.map +1 -0
- package/dist/datasets/types.d.ts +1 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/validation.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +37 -0
- package/dist/datasets/write.d.ts.map +1 -0
- package/dist/datasets/write.js +17 -0
- package/dist/datasets/write.js.map +9 -0
- package/dist/error-reporting/internal.js +4 -4
- package/dist/error-reporting/types.d.ts +7 -2
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +8 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +2 -2
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.js +4 -4
- package/dist/events/types/datasets.d.ts +2 -6
- package/dist/events/types/datasets.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +18 -9
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +62 -46
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts +68 -20
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +69 -0
- package/dist/execution/authorized-object-reader.d.ts.map +1 -0
- package/dist/execution/durable.d.ts.map +1 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/primitive.js +55 -46
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.d.ts +14 -1
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +92 -54
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/scopes.d.ts +16 -0
- package/dist/execution/scopes.d.ts.map +1 -1
- package/dist/execution/types.d.ts +10 -1
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/http/api-routes.d.ts +2 -0
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +15 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +128 -109
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +2 -0
- package/dist/json.d.ts.map +1 -1
- package/dist/lake-storage/definition-updates.d.ts.map +1 -1
- package/dist/lake-storage/errors.d.ts +5 -1
- package/dist/lake-storage/errors.d.ts.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +27 -10
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/merge-validation.d.ts.map +1 -1
- package/dist/lake-storage/merge.d.ts +13 -2
- package/dist/lake-storage/merge.d.ts.map +1 -1
- package/dist/lake-storage/source-ordering.d.ts +19 -0
- package/dist/lake-storage/source-ordering.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +2 -1
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +10 -5
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +4 -0
- package/dist/lake-storage/version-inputs.d.ts.map +1 -0
- package/dist/logging/index.js +3 -3
- package/dist/logging/types.js +2 -2
- package/dist/materialization/index.js +2 -2
- package/dist/materializer/index.js +38 -31
- package/dist/materializer/index.js.map +1 -1
- package/dist/models/catalog.d.ts +40 -0
- package/dist/models/catalog.d.ts.map +1 -0
- package/dist/models/definitions.d.ts +25 -0
- package/dist/models/definitions.d.ts.map +1 -0
- package/dist/models/errors.d.ts +52 -0
- package/dist/models/errors.d.ts.map +1 -0
- package/dist/models/events.d.ts +192 -0
- package/dist/models/events.d.ts.map +1 -0
- package/dist/models/index.d.ts +17 -39
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +50 -0
- package/dist/models/index.js.map +9 -0
- package/dist/models/language-model.d.ts +90 -0
- package/dist/models/language-model.d.ts.map +1 -0
- package/dist/models/messages.d.ts +74 -0
- package/dist/models/messages.d.ts.map +1 -0
- package/dist/models/pricing.d.ts +69 -0
- package/dist/models/pricing.d.ts.map +1 -0
- package/dist/models/rate-card.d.ts +24 -0
- package/dist/models/rate-card.d.ts.map +1 -0
- package/dist/models/tools.d.ts +24 -0
- package/dist/models/tools.d.ts.map +1 -0
- package/dist/objects/authorized-ontology-view.d.ts +25 -0
- package/dist/objects/authorized-ontology-view.d.ts.map +1 -0
- package/dist/objects/execution.d.ts +1 -1
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +43 -36
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +2 -7
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/query/executor.d.ts +4 -2
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +36 -29
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/links.d.ts +22 -1
- package/dist/objects/query/links.d.ts.map +1 -1
- package/dist/objects/query/selected-read-admission.d.ts +27 -0
- package/dist/objects/query/selected-read-admission.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts +60 -2
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts +2 -7
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/service/list-service.d.ts +2 -3
- package/dist/objects/service/list-service.d.ts.map +1 -1
- package/dist/objects/telemetry/history.d.ts +8 -6
- package/dist/objects/telemetry/history.d.ts.map +1 -1
- package/dist/objects/telemetry/index.d.ts +2 -2
- package/dist/objects/telemetry/index.d.ts.map +1 -1
- package/dist/objects/telemetry/workload.d.ts +11 -0
- package/dist/objects/telemetry/workload.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +2 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +15 -14
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +2 -1
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +0 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +5 -10
- package/dist/ontology/internal.js.map +3 -3
- package/dist/ontology/json-schema.d.ts +10 -6
- package/dist/ontology/json-schema.d.ts.map +1 -1
- package/dist/ontology/link-path-selection.d.ts +35 -0
- package/dist/ontology/link-path-selection.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +2 -0
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +2 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/pipelines/execution.d.ts.map +1 -1
- package/dist/pipelines/index.js +41 -36
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/request.d.ts.map +1 -1
- package/dist/projections/execution.d.ts.map +1 -1
- package/dist/projections/internal.js +39 -32
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/run-dispatch.d.ts.map +1 -1
- package/dist/queues/in-memory.d.ts +3 -2
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +3 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +15 -3
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/rules/execution.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +7 -4
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +4 -2
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +5 -2
- package/dist/runtime/host.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/resolve-definitions.d.ts +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +8 -2
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +3 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schedules/execution.d.ts +2 -1
- package/dist/schedules/execution.d.ts.map +1 -1
- package/dist/security/every.d.ts +4 -4
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +12 -6
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/registry.d.ts +2 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +19 -5
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +6 -2
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/access-plan.d.ts +22 -0
- package/dist/shares/access-plan.d.ts.map +1 -0
- package/dist/shares/builders.d.ts +14 -0
- package/dist/shares/builders.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts +14 -0
- package/dist/shares/compiler.d.ts.map +1 -0
- package/dist/shares/errors.d.ts +4 -0
- package/dist/shares/errors.d.ts.map +1 -0
- package/dist/shares/execution.d.ts +57 -0
- package/dist/shares/execution.d.ts.map +1 -0
- package/dist/shares/index.d.ts +10 -0
- package/dist/shares/index.d.ts.map +1 -0
- package/dist/shares/internal.d.ts +3 -0
- package/dist/shares/internal.d.ts.map +1 -0
- package/dist/shares/internal.js +239 -0
- package/dist/shares/internal.js.map +10 -0
- package/dist/shares/intersection.d.ts +9 -0
- package/dist/shares/intersection.d.ts.map +1 -0
- package/dist/shares/session-protocol.d.ts +41 -0
- package/dist/shares/session-protocol.d.ts.map +1 -0
- package/dist/shares/types.d.ts +51 -0
- package/dist/shares/types.d.ts.map +1 -0
- package/dist/shares/validation.d.ts +11 -0
- package/dist/shares/validation.d.ts.map +1 -0
- package/dist/storage/action-runs/failure.js +3 -3
- package/dist/storage/action-runs/provider.js +2 -2
- package/dist/storage/agents/errors.d.ts +1 -1
- package/dist/storage/agents/errors.d.ts.map +1 -1
- package/dist/storage/agents/in-memory.d.ts +3 -2
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/index.d.ts +1 -1
- package/dist/storage/agents/index.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts +11 -4
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +18 -15
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +65 -17
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/analytics.d.ts +2 -1
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
- package/dist/storage/ai-cost/codec.d.ts +3 -2
- package/dist/storage/ai-cost/codec.d.ts.map +1 -1
- package/dist/storage/ai-cost/groups.d.ts +51 -0
- package/dist/storage/ai-cost/groups.d.ts.map +1 -0
- package/dist/storage/ai-cost/in-memory.d.ts +11 -1
- package/dist/storage/ai-cost/in-memory.d.ts.map +1 -1
- package/dist/storage/ai-cost/index.d.ts +1 -1
- package/dist/storage/ai-cost/index.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.d.ts +2 -0
- package/dist/storage/ai-cost/provider.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +29 -13
- package/dist/storage/ai-cost/provider.js.map +3 -3
- package/dist/storage/ai-cost/types.d.ts +64 -15
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/validation.d.ts +2 -1
- package/dist/storage/ai-cost/validation.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.d.ts +14 -0
- package/dist/storage/ai-limits/enforcement.d.ts.map +1 -0
- package/dist/storage/ai-limits/enforcement.js +21 -0
- package/dist/storage/ai-limits/enforcement.js.map +9 -0
- package/dist/storage/ai-limits/errors.d.ts +8 -0
- package/dist/storage/ai-limits/errors.d.ts.map +1 -0
- package/dist/storage/ai-limits/in-memory.d.ts +78 -0
- package/dist/storage/ai-limits/in-memory.d.ts.map +1 -0
- package/dist/storage/ai-limits/index.d.ts +7 -0
- package/dist/storage/ai-limits/index.d.ts.map +1 -0
- package/dist/storage/ai-limits/period.d.ts +4 -0
- package/dist/storage/ai-limits/period.d.ts.map +1 -0
- package/dist/storage/ai-limits/provider.d.ts +85 -0
- package/dist/storage/ai-limits/provider.d.ts.map +1 -0
- package/dist/storage/ai-limits/provider.js +62 -0
- package/dist/storage/ai-limits/provider.js.map +9 -0
- package/dist/storage/ai-limits/types.d.ts +175 -0
- package/dist/storage/ai-limits/types.d.ts.map +1 -0
- package/dist/storage/ai-usage/in-memory.d.ts +4 -0
- package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
- package/dist/storage/ai-usage/record.d.ts.map +1 -1
- package/dist/storage/ai-usage/types.d.ts +6 -2
- package/dist/storage/ai-usage/types.d.ts.map +1 -1
- package/dist/storage/auth/errors.d.ts +1 -1
- package/dist/storage/auth/errors.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts +4 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/device-authorizations.d.ts +29 -0
- package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -0
- package/dist/storage/auth/in-memory/shared.d.ts +3 -1
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +2 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +66 -0
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +2 -2
- package/dist/storage/executions/in-memory.d.ts +3 -0
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +4 -1
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +23 -3
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/run-link.d.ts +14 -2
- package/dist/storage/executions/run-link.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts +6 -0
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/in-memory/index.d.ts +12 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +15 -6
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +78 -36
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +25 -0
- package/dist/storage/objects/execution-limits.d.ts.map +1 -0
- package/dist/storage/objects/guard.d.ts +16 -0
- package/dist/storage/objects/guard.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/index.d.ts +3 -0
- package/dist/storage/objects/in-memory/index.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/keys.d.ts +10 -0
- package/dist/storage/objects/in-memory/keys.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/query.d.ts +31 -0
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts +18 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-source.d.ts +10 -0
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts +9 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -0
- package/dist/storage/objects/{in-memory.d.ts → in-memory/storage.d.ts} +13 -10
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -0
- package/dist/storage/objects/index.d.ts +4 -1
- package/dist/storage/objects/index.d.ts.map +1 -1
- package/dist/storage/objects/keys.d.ts +1 -1
- package/dist/storage/objects/keys.d.ts.map +1 -1
- package/dist/storage/objects/read-scope.d.ts +25 -0
- package/dist/storage/objects/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/types.d.ts +114 -22
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +3 -3
- package/dist/storage/operation-scope.d.ts +3 -0
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +4 -2
- package/dist/storage/operation-scope.js.map +1 -1
- package/dist/storage/pipeline-runs/provider.js +2 -2
- package/dist/storage/projection-runs/provider.js +4 -4
- package/dist/storage/share-grants/errors.d.ts +8 -0
- package/dist/storage/share-grants/errors.d.ts.map +1 -0
- package/dist/storage/share-grants/in-memory.d.ts +11 -0
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -0
- package/dist/storage/share-grants/index.d.ts +5 -0
- package/dist/storage/share-grants/index.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.d.ts +4 -0
- package/dist/storage/share-grants/provider.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.js +24 -0
- package/dist/storage/share-grants/provider.js.map +9 -0
- package/dist/storage/share-grants/record.d.ts +11 -0
- package/dist/storage/share-grants/record.d.ts.map +1 -0
- package/dist/storage/share-grants/types.d.ts +97 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -0
- package/dist/storage/share-sessions/errors.d.ts +8 -0
- package/dist/storage/share-sessions/errors.d.ts.map +1 -0
- package/dist/storage/share-sessions/in-memory.d.ts +14 -0
- package/dist/storage/share-sessions/in-memory.d.ts.map +1 -0
- package/dist/storage/share-sessions/index.d.ts +5 -0
- package/dist/storage/share-sessions/index.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.d.ts +3 -0
- package/dist/storage/share-sessions/provider.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.js +20 -0
- package/dist/storage/share-sessions/provider.js.map +9 -0
- package/dist/storage/share-sessions/record.d.ts +8 -0
- package/dist/storage/share-sessions/record.d.ts.map +1 -0
- package/dist/storage/share-sessions/types.d.ts +50 -0
- package/dist/storage/share-sessions/types.d.ts.map +1 -0
- package/dist/storage/sync-runs/provider.js +2 -2
- package/dist/storage/transaction.d.ts +2 -1
- package/dist/storage/transaction.d.ts.map +1 -1
- package/dist/storage/types.d.ts +13 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/webhook-runs/provider.js +2 -2
- package/dist/storage/workflow-runs/provider.d.ts +1 -1
- package/dist/storage/workflow-runs/provider.js +14 -12
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/types.d.ts +5 -4
- package/dist/storage/workflow-runs/types.d.ts.map +1 -1
- package/dist/syncs/execution.d.ts.map +1 -1
- package/dist/syncs/index.js +41 -36
- package/dist/syncs/index.js.map +1 -1
- package/dist/syncs/request.d.ts.map +1 -1
- package/dist/testing/agent-execution.d.ts +3 -1
- package/dist/testing/agent-execution.d.ts.map +1 -1
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
- package/dist/testing/ai-limit-storage-contract.d.ts +18 -0
- package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -0
- package/dist/testing/ai-model-call-groups-contract.d.ts +6 -0
- package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -0
- package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/dataset-sequence-contract.d.ts +4 -0
- package/dist/testing/dataset-sequence-contract.d.ts.map +1 -0
- package/dist/testing/effective-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts +4 -0
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +5392 -2070
- package/dist/testing/index.js.map +21 -15
- package/dist/testing/lake-merge-storage-contract.d.ts +1 -0
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts +22 -0
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -0
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/testing/share-grant-storage-contract.d.ts +10 -0
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -0
- package/dist/testing/share-session-storage-contract.d.ts +9 -0
- package/dist/testing/share-session-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +36 -29
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +2 -2
- package/dist/workflows/agent-step-identity.d.ts +3 -0
- package/dist/workflows/agent-step-identity.d.ts.map +1 -0
- package/dist/workflows/builders.d.ts +2 -3
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/execution.d.ts +1 -1
- package/dist/workflows/execution.d.ts.map +1 -1
- package/dist/workflows/failure.d.ts +1 -1
- package/dist/workflows/failure.d.ts.map +1 -1
- package/dist/workflows/index.d.ts +3 -2
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +63 -48
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +26 -11
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +7 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +43 -4
- package/src/actions/delegated-admission.ts +72 -0
- package/src/actions/descriptor.ts +58 -0
- package/src/actions/execution.ts +99 -24
- package/src/actions/request.ts +136 -19
- package/src/actions/run-authorization.ts +53 -0
- package/src/actions/run-dispatch.ts +8 -1
- package/src/agents/adapters.ts +60 -456
- package/src/agents/authority.ts +215 -34
- package/src/agents/builders.ts +3 -50
- package/src/agents/context-compaction.ts +4 -0
- package/src/agents/context-resolution.ts +1 -4
- package/src/agents/dispatch.ts +59 -2
- package/src/agents/errors.ts +4 -11
- package/src/agents/execution.ts +65 -56
- package/src/agents/identity.ts +4 -0
- package/src/agents/ids.ts +16 -1
- package/src/agents/index.ts +23 -30
- package/src/agents/message.ts +20 -12
- package/src/agents/model-loop.ts +1071 -0
- package/src/agents/reference.ts +7 -0
- package/src/agents/request.ts +157 -77
- package/src/agents/retired-config.ts +20 -0
- package/src/agents/streams.ts +45 -19
- package/src/agents/tool-catalog.ts +21 -0
- package/src/agents/tool-definition.ts +9 -5
- package/src/agents/types.ts +39 -81
- package/src/agents/validation.ts +11 -216
- package/src/ai-usage/execution.ts +189 -0
- package/src/ai-usage/index.ts +15 -0
- package/src/authorization/decision.ts +54 -22
- package/src/authorization/grant-kinds.ts +72 -15
- package/src/authorization/index.ts +2 -0
- package/src/authorization/resolve.ts +12 -5
- package/src/authorization/types.ts +7 -5
- package/src/bootstrap/discovery.ts +3 -3
- package/src/bootstrap/ontology-type-manifest.ts +12 -6
- package/src/datasets/builders.ts +23 -2
- package/src/datasets/changes.ts +16 -4
- package/src/datasets/execution.ts +76 -5
- package/src/datasets/index.ts +1 -0
- package/src/datasets/sequence.ts +77 -0
- package/src/datasets/types.ts +1 -0
- package/src/datasets/validation.ts +26 -0
- package/src/datasets/write.ts +240 -0
- package/src/error-reporting/types.ts +4 -2
- package/src/errors/catalog.ts +8 -0
- package/src/events/execution.ts +57 -7
- package/src/events/types/datasets.ts +2 -6
- package/src/execution/agent.ts +129 -25
- package/src/execution/authorization.ts +493 -83
- package/src/execution/authorized-object-reader.ts +695 -0
- package/src/execution/durable.ts +10 -2
- package/src/execution/index.ts +1 -0
- package/src/execution/request.ts +67 -14
- package/src/execution/scopes.ts +36 -6
- package/src/execution/types.ts +9 -1
- package/src/http/api-routes.ts +108 -0
- package/src/index.ts +72 -22
- package/src/json.ts +9 -0
- package/src/lake-storage/definition-updates.ts +9 -0
- package/src/lake-storage/errors.ts +6 -1
- package/src/lake-storage/in-memory.ts +53 -17
- package/src/lake-storage/index.ts +10 -1
- package/src/lake-storage/merge-validation.ts +12 -2
- package/src/lake-storage/merge.ts +40 -2
- package/src/lake-storage/source-ordering.ts +95 -0
- package/src/lake-storage/sql-transforms.ts +2 -1
- package/src/lake-storage/types.ts +10 -5
- package/src/lake-storage/version-inputs.ts +14 -0
- package/src/models/catalog.ts +137 -0
- package/src/models/definitions.ts +202 -0
- package/src/models/errors.ts +83 -0
- package/src/models/events.ts +198 -0
- package/src/models/index.ts +89 -71
- package/src/models/language-model.ts +143 -0
- package/src/models/messages.ts +78 -0
- package/src/models/pricing.ts +390 -0
- package/src/models/rate-card.ts +101 -0
- package/src/models/tools.ts +29 -0
- package/src/objects/authorized-ontology-view.ts +512 -0
- package/src/objects/execution.ts +98 -143
- package/src/objects/link/authorization.ts +3 -2
- package/src/objects/query/executor.ts +45 -34
- package/src/objects/query/links.ts +84 -25
- package/src/objects/query/selected-read-admission.ts +310 -0
- package/src/objects/query/validate.ts +353 -36
- package/src/objects/sdk/object-handle.ts +2 -8
- package/src/objects/sdk/object-set.ts +10 -11
- package/src/objects/sdk/runtime-query-executor.ts +8 -28
- package/src/objects/sdk/telemetry-channel.ts +11 -7
- package/src/objects/service/list-service.ts +15 -29
- package/src/objects/telemetry/history.ts +297 -17
- package/src/objects/telemetry/index.ts +2 -2
- package/src/objects/telemetry/workload.ts +79 -0
- package/src/ontology/index.ts +7 -1
- package/src/ontology/inference/index.ts +4 -1
- package/src/ontology/internal.ts +0 -1
- package/src/ontology/json-schema.ts +13 -12
- package/src/ontology/link-path-selection.ts +193 -0
- package/src/ontology/refs.ts +19 -0
- package/src/ontology/tokens.ts +15 -8
- package/src/pipelines/execution.ts +30 -7
- package/src/pipelines/request.ts +5 -0
- package/src/projections/execution.ts +72 -11
- package/src/projections/run-dispatch.ts +6 -12
- package/src/queues/in-memory.ts +5 -0
- package/src/queues/index.ts +11 -0
- package/src/queues/types.ts +20 -3
- package/src/rules/execution.ts +20 -8
- package/src/runtime/create.ts +11 -5
- package/src/runtime/definitions.ts +4 -2
- package/src/runtime/host.ts +28 -8
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/resolve-definitions.ts +22 -36
- package/src/runtime/sixb.ts +29 -10
- package/src/runtime/types.ts +3 -0
- package/src/schedules/execution.ts +24 -2
- package/src/security/every.ts +4 -4
- package/src/security/grants.ts +100 -14
- package/src/security/index.ts +3 -0
- package/src/security/registry.ts +9 -5
- package/src/security/types.ts +23 -4
- package/src/security/validation.ts +33 -9
- package/src/shares/access-plan.ts +225 -0
- package/src/shares/builders.ts +381 -0
- package/src/shares/compiler.ts +359 -0
- package/src/shares/errors.ts +3 -0
- package/src/shares/execution.ts +394 -0
- package/src/shares/index.ts +28 -0
- package/src/shares/internal.ts +9 -0
- package/src/shares/intersection.ts +178 -0
- package/src/shares/session-protocol.ts +258 -0
- package/src/shares/types.ts +76 -0
- package/src/shares/validation.ts +40 -0
- package/src/storage/agents/errors.ts +1 -0
- package/src/storage/agents/in-memory.ts +121 -11
- package/src/storage/agents/index.ts +7 -0
- package/src/storage/agents/provider.ts +150 -6
- package/src/storage/agents/types.ts +73 -16
- package/src/storage/ai-cost/analytics.ts +63 -6
- package/src/storage/ai-cost/codec.ts +37 -12
- package/src/storage/ai-cost/groups.ts +248 -0
- package/src/storage/ai-cost/in-memory.ts +42 -0
- package/src/storage/ai-cost/index.ts +6 -0
- package/src/storage/ai-cost/provider.ts +7 -0
- package/src/storage/ai-cost/types.ts +76 -14
- package/src/storage/ai-cost/validation.ts +147 -17
- package/src/storage/ai-limits/enforcement.ts +68 -0
- package/src/storage/ai-limits/errors.ts +23 -0
- package/src/storage/ai-limits/in-memory.ts +671 -0
- package/src/storage/ai-limits/index.ts +31 -0
- package/src/storage/ai-limits/period.ts +11 -0
- package/src/storage/ai-limits/provider.ts +430 -0
- package/src/storage/ai-limits/types.ts +195 -0
- package/src/storage/ai-usage/in-memory.ts +13 -0
- package/src/storage/ai-usage/record.ts +17 -0
- package/src/storage/ai-usage/types.ts +6 -2
- package/src/storage/auth/errors.ts +6 -0
- package/src/storage/auth/in-memory/auth-storage.ts +69 -0
- package/src/storage/auth/in-memory/device-authorizations.ts +145 -0
- package/src/storage/auth/in-memory/shared.ts +7 -0
- package/src/storage/auth/index.ts +7 -0
- package/src/storage/auth/types.ts +73 -0
- package/src/storage/executions/in-memory.ts +9 -1
- package/src/storage/executions/provider.ts +30 -1
- package/src/storage/executions/run-link.ts +45 -6
- package/src/storage/executions/validation.ts +82 -7
- package/src/storage/in-memory/index.ts +69 -6
- package/src/storage/index.ts +102 -1
- package/src/storage/objects/execution-limits.ts +283 -0
- package/src/storage/objects/guard.ts +55 -0
- package/src/storage/objects/in-memory/index.ts +2 -0
- package/src/storage/objects/in-memory/keys.ts +46 -0
- package/src/storage/objects/in-memory/query.ts +754 -0
- package/src/storage/objects/in-memory/read-scope.ts +211 -0
- package/src/storage/objects/in-memory/read-source.ts +10 -0
- package/src/storage/objects/in-memory/selected-reader.ts +252 -0
- package/src/storage/objects/in-memory/storage.ts +589 -0
- package/src/storage/objects/index.ts +21 -0
- package/src/storage/objects/keys.ts +1 -1
- package/src/storage/objects/read-scope.ts +672 -0
- package/src/storage/objects/types.ts +123 -19
- package/src/storage/operation-scope.ts +16 -0
- package/src/storage/share-grants/errors.ts +14 -0
- package/src/storage/share-grants/in-memory.ts +107 -0
- package/src/storage/share-grants/index.ts +14 -0
- package/src/storage/share-grants/provider.ts +11 -0
- package/src/storage/share-grants/record.ts +347 -0
- package/src/storage/share-grants/types.ts +112 -0
- package/src/storage/share-sessions/errors.ts +14 -0
- package/src/storage/share-sessions/in-memory.ts +105 -0
- package/src/storage/share-sessions/index.ts +11 -0
- package/src/storage/share-sessions/provider.ts +9 -0
- package/src/storage/share-sessions/record.ts +176 -0
- package/src/storage/share-sessions/types.ts +57 -0
- package/src/storage/transaction.ts +14 -2
- package/src/storage/types.ts +64 -0
- package/src/storage/workflow-runs/in-memory.ts +3 -3
- package/src/storage/workflow-runs/provider.ts +2 -2
- package/src/storage/workflow-runs/types.ts +6 -3
- package/src/syncs/execution.ts +25 -5
- package/src/syncs/request.ts +5 -0
- package/src/testing/agent-execution.ts +40 -28
- package/src/testing/agent-storage-contract.ts +249 -28
- package/src/testing/ai-cost-storage-contract.ts +96 -8
- package/src/testing/ai-limit-storage-contract.ts +1134 -0
- package/src/testing/ai-model-call-groups-contract.ts +353 -0
- package/src/testing/ai-usage-storage-contract.ts +31 -0
- package/src/testing/auth-storage-contract.ts +85 -0
- package/src/testing/dataset-sequence-contract.ts +373 -0
- package/src/testing/effective-storage-contract.ts +34 -0
- package/src/testing/execution-storage-contract.ts +81 -2
- package/src/testing/index.ts +26 -0
- package/src/testing/lake-merge-storage-contract.ts +3 -0
- package/src/testing/lake-storage-contract.ts +58 -0
- package/src/testing/object-read-scope-contract.ts +939 -0
- package/src/testing/queues-contract.ts +36 -1
- package/src/testing/share-grant-storage-contract.ts +325 -0
- package/src/testing/share-session-storage-contract.ts +235 -0
- package/src/workflows/agent-step-identity.ts +4 -0
- package/src/workflows/builders.ts +95 -9
- package/src/workflows/execution.ts +55 -16
- package/src/workflows/failure.ts +2 -2
- package/src/workflows/index.ts +3 -0
- package/src/workflows/request.ts +5 -0
- package/src/workflows/types.ts +23 -11
- package/src/workflows/validation.ts +100 -7
- package/dist/chunk-1e8m6yn3.js.map +0 -37
- package/dist/chunk-1g8negke.js.map +0 -11
- package/dist/chunk-4gz41why.js +0 -72
- package/dist/chunk-4gz41why.js.map +0 -11
- package/dist/chunk-5sxb1168.js.map +0 -34
- package/dist/chunk-6gjqgd3d.js.map +0 -11
- package/dist/chunk-819wnjz8.js.map +0 -12
- package/dist/chunk-a31h57d5.js.map +0 -13
- package/dist/chunk-a44d5zgd.js +0 -556
- package/dist/chunk-a44d5zgd.js.map +0 -16
- package/dist/chunk-ckxfnx7f.js.map +0 -13
- package/dist/chunk-dm72y8wt.js.map +0 -10
- package/dist/chunk-drjqm1aa.js.map +0 -15
- package/dist/chunk-dy311asx.js.map +0 -14
- package/dist/chunk-f6erf2vv.js.map +0 -10
- package/dist/chunk-f83ka50g.js.map +0 -23
- package/dist/chunk-fe5ev6mr.js +0 -55
- package/dist/chunk-fe5ev6mr.js.map +0 -11
- package/dist/chunk-h9kxd41f.js.map +0 -11
- package/dist/chunk-hceck7dq.js +0 -137
- package/dist/chunk-hceck7dq.js.map +0 -10
- package/dist/chunk-md8k0r54.js.map +0 -14
- package/dist/chunk-n4spznws.js.map +0 -11
- package/dist/chunk-nva1xkjz.js.map +0 -46
- package/dist/chunk-qewtks41.js.map +0 -11
- package/dist/chunk-t0jjkep3.js.map +0 -10
- package/dist/chunk-t624af60.js.map +0 -56
- package/dist/chunk-t8t39h7v.js.map +0 -10
- package/dist/chunk-t9xghkva.js +0 -28
- package/dist/chunk-t9xghkva.js.map +0 -10
- package/dist/chunk-x2yw73hy.js.map +0 -10
- package/dist/chunk-xc7hq65b.js.map +0 -10
- package/dist/storage/objects/in-memory.d.ts.map +0 -1
- package/src/storage/objects/in-memory.ts +0 -1241
- /package/dist/{chunk-zqysyfjt.js.map → chunk-08m3b6w8.js.map} +0 -0
- /package/dist/{chunk-z3zp0bj1.js.map → chunk-407j3msh.js.map} +0 -0
- /package/dist/{chunk-rhrbz7d4.js.map → chunk-4a849fr1.js.map} +0 -0
- /package/dist/{chunk-cy0n5dms.js.map → chunk-4jjp5k14.js.map} +0 -0
- /package/dist/{chunk-ezake7g1.js.map → chunk-5ntny1qx.js.map} +0 -0
- /package/dist/{chunk-72q2y8hn.js.map → chunk-8tsf6dmc.js.map} +0 -0
- /package/dist/{chunk-vybf6pkp.js.map → chunk-dbc80ad7.js.map} +0 -0
- /package/dist/{chunk-nkbfrt0c.js.map → chunk-f26bck4t.js.map} +0 -0
- /package/dist/{chunk-dsrkgtnh.js.map → chunk-jq43kdvk.js.map} +0 -0
- /package/dist/{chunk-wtmzkcht.js.map → chunk-k34z5rvh.js.map} +0 -0
- /package/dist/{chunk-htq0qh7z.js.map → chunk-ka3a2ft3.js.map} +0 -0
- /package/dist/{chunk-f2rt4vkh.js.map → chunk-n2w475r0.js.map} +0 -0
- /package/dist/{chunk-bhxaq2nn.js.map → chunk-qw9gvjv5.js.map} +0 -0
- /package/dist/{chunk-dysw7nsm.js.map → chunk-rv2hkwwa.js.map} +0 -0
- /package/dist/{chunk-ghteq96b.js.map → chunk-s5y30bc9.js.map} +0 -0
- /package/dist/{chunk-xkthy56g.js.map → chunk-w1tvjszy.js.map} +0 -0
- /package/dist/{chunk-8b55ygje.js.map → chunk-w3e09qqk.js.map} +0 -0
- /package/dist/{chunk-62c7t4jc.js.map → chunk-wdage1eb.js.map} +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { createHash } from "node:crypto"
|
|
2
|
+
import type { DatasetDefinition, MergeChange } from "../datasets"
|
|
3
|
+
import { datasetSequenceValue } from "../datasets/sequence"
|
|
4
|
+
import { stableJsonStringify } from "../json"
|
|
5
|
+
import { normalizeDecimalValue } from "../ontology/decimal"
|
|
6
|
+
import { LakeStorageError } from "./errors"
|
|
7
|
+
import { encodeDatasetPrimaryKey } from "./merge-validation"
|
|
8
|
+
import type { DatasetRow } from "./types"
|
|
9
|
+
|
|
10
|
+
/** Current source revision; a null content digest is a deletion tombstone. */
|
|
11
|
+
export interface DatasetSequenceState {
|
|
12
|
+
readonly sequence: string
|
|
13
|
+
readonly content: string | null
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface DatasetSequenceChange extends DatasetSequenceState {
|
|
17
|
+
readonly key: string
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function datasetSequenceChange(
|
|
21
|
+
dataset: DatasetDefinition,
|
|
22
|
+
change: MergeChange<DatasetRow, DatasetRow>
|
|
23
|
+
): DatasetSequenceChange {
|
|
24
|
+
const value = change.kind === "upsert" ? change.row[dataset.sequenceBy ?? ""] : change.sequence
|
|
25
|
+
return {
|
|
26
|
+
key: encodeDatasetPrimaryKey(dataset, change.kind === "upsert" ? change.row : change.key),
|
|
27
|
+
sequence: datasetSequenceValue(dataset, value).toString(),
|
|
28
|
+
content: change.kind === "delete" ? null : rowDigest(dataset, change.row),
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Process in submission order against a private copy; conflicts publish no partial state. */
|
|
33
|
+
export function reconcileDatasetSequences(
|
|
34
|
+
dataset: DatasetDefinition,
|
|
35
|
+
previous: ReadonlyMap<string, DatasetSequenceState>,
|
|
36
|
+
changes: readonly DatasetSequenceChange[]
|
|
37
|
+
): { states: Map<string, DatasetSequenceState>; accepted: Map<string, number> } {
|
|
38
|
+
const states = new Map(previous)
|
|
39
|
+
const accepted = new Map<string, number>()
|
|
40
|
+
for (const [index, change] of changes.entries()) {
|
|
41
|
+
const current = states.get(change.key)
|
|
42
|
+
if (current) {
|
|
43
|
+
const difference = BigInt(change.sequence) - BigInt(current.sequence)
|
|
44
|
+
if (difference < 0n) continue
|
|
45
|
+
if (difference === 0n) {
|
|
46
|
+
if (current.content !== change.content) {
|
|
47
|
+
throw new LakeStorageError(
|
|
48
|
+
`[SixbLake] Dataset '${dataset.id}' has conflicting content at source sequence '${change.sequence}' for key ${change.key}.`
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
continue
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
states.set(change.key, { sequence: change.sequence, content: change.content })
|
|
55
|
+
accepted.set(change.key, index)
|
|
56
|
+
}
|
|
57
|
+
return { states, accepted }
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function rowDigest(dataset: DatasetDefinition, row: DatasetRow): string {
|
|
61
|
+
const content: Record<string, unknown> = Object.create(null)
|
|
62
|
+
for (const column of dataset.schema.columns) {
|
|
63
|
+
const value = row[column.name]
|
|
64
|
+
// Nullable additions and omitted/undefined/null values have identical content.
|
|
65
|
+
if (value == null) continue
|
|
66
|
+
switch (column.type) {
|
|
67
|
+
case "int64":
|
|
68
|
+
content[column.name] = BigInt(value as string | number).toString()
|
|
69
|
+
break
|
|
70
|
+
case "timestamp":
|
|
71
|
+
content[column.name] = new Date(value as string | Date).toISOString()
|
|
72
|
+
break
|
|
73
|
+
case "date":
|
|
74
|
+
content[column.name] = new Date(value as string | Date).toISOString().slice(0, 10)
|
|
75
|
+
break
|
|
76
|
+
case "decimal":
|
|
77
|
+
content[column.name] = normalizeDecimalValue(value as string)
|
|
78
|
+
break
|
|
79
|
+
default:
|
|
80
|
+
content[column.name] = value
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return createHash("sha256")
|
|
84
|
+
.update(stableJsonStringify(JSON.parse(JSON.stringify(content))))
|
|
85
|
+
.digest("hex")
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Until row reconciliation is supported, replacement writes must not erase source history. */
|
|
89
|
+
export function assertUnsequencedDatasetWrite(dataset: DatasetDefinition): void {
|
|
90
|
+
if (dataset.sequenceBy !== undefined) {
|
|
91
|
+
throw new LakeStorageError(
|
|
92
|
+
`[SixbLake] Dataset '${dataset.id}' declares sequenceBy; use beginMerge with source-ordered changes.`
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -39,7 +39,8 @@ export interface ExecuteSqlTransformInput<TSqlDialect extends SqlDialect = SqlDi
|
|
|
39
39
|
readonly target: DatasetDefinition
|
|
40
40
|
readonly mode: DatasetWriteMode
|
|
41
41
|
readonly producer?: DatasetProducer
|
|
42
|
-
|
|
42
|
+
/** Atomic target version guard; null requires that no version exists. */
|
|
43
|
+
readonly expectedLatestVersionId?: string | null
|
|
43
44
|
readonly commitMessage?: string
|
|
44
45
|
}
|
|
45
46
|
|
|
@@ -19,7 +19,8 @@ export interface DatasetVersionRef {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export interface DatasetProducer {
|
|
22
|
-
readonly kind: "sync" | "pipeline"
|
|
22
|
+
readonly kind: "sync" | "pipeline" | "ingest"
|
|
23
|
+
/** For ingestion, the bound execution id; otherwise the sync/pipeline definition id. */
|
|
23
24
|
readonly id?: string
|
|
24
25
|
readonly runId?: string
|
|
25
26
|
readonly stepId?: string
|
|
@@ -73,7 +74,8 @@ export interface ReadDatasetRowsInput {
|
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
export interface CommitDatasetWriteInput {
|
|
76
|
-
|
|
77
|
+
/** Atomic version guard; null requires that no version exists, undefined leaves it unguarded. */
|
|
78
|
+
readonly expectedLatestVersionId?: string | null
|
|
77
79
|
readonly commitMessage?: string
|
|
78
80
|
}
|
|
79
81
|
|
|
@@ -81,11 +83,14 @@ export interface DatasetWriteCommitResult extends DatasetVersion {
|
|
|
81
83
|
/**
|
|
82
84
|
* Whether this operation created the returned version or reused the
|
|
83
85
|
* unchanged latest version. When a latest version exists, providers must
|
|
84
|
-
* report `unchanged` and reuse it for commits that
|
|
85
|
-
* dataset content
|
|
86
|
+
* report `unchanged` and reuse it for commits that change neither visible
|
|
87
|
+
* dataset content nor explicitly supplied input lineage: a snapshot whose
|
|
88
|
+
* rows equal the latest visible rows
|
|
86
89
|
* (order-insensitive, with equal duplicate counts), or an append of zero
|
|
87
90
|
* rows. Without a latest version, an empty snapshot or append still creates
|
|
88
|
-
* the first addressable dataset version.
|
|
91
|
+
* the first addressable dataset version. New input versions create a version
|
|
92
|
+
* even for identical rows, so a newer pipeline calculation fences concurrent
|
|
93
|
+
* work based on older inputs.
|
|
89
94
|
*/
|
|
90
95
|
readonly outcome: "created" | "unchanged"
|
|
91
96
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DatasetVersionRef } from "./types"
|
|
2
|
+
|
|
3
|
+
/** Input lineage participates in write identity when the caller supplies it. */
|
|
4
|
+
export function hasDatasetInputChanges(
|
|
5
|
+
previous: readonly DatasetVersionRef[] | undefined,
|
|
6
|
+
next: readonly DatasetVersionRef[] | undefined
|
|
7
|
+
): boolean {
|
|
8
|
+
if (next === undefined) return false
|
|
9
|
+
const keys = (refs: readonly DatasetVersionRef[]) =>
|
|
10
|
+
new Set(refs.map((ref) => JSON.stringify([ref.datasetId, ref.versionId])))
|
|
11
|
+
const before = keys(previous ?? [])
|
|
12
|
+
const after = keys(next)
|
|
13
|
+
return before.size !== after.size || [...after].some((key) => !before.has(key))
|
|
14
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { RuntimeError } from "../runtime/errors"
|
|
2
|
+
import {
|
|
3
|
+
defineLanguageModel,
|
|
4
|
+
type LanguageModelDefinition,
|
|
5
|
+
type ModelDefinition,
|
|
6
|
+
} from "./definitions"
|
|
7
|
+
import type { LanguageModel } from "./language-model"
|
|
8
|
+
|
|
9
|
+
/** Stable identity of one configured language-model binding. */
|
|
10
|
+
export interface LanguageModelRef {
|
|
11
|
+
readonly provider: string
|
|
12
|
+
readonly modelId: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** The configured language models, with the project default. */
|
|
16
|
+
export interface LanguageModelCatalog {
|
|
17
|
+
readonly default: LanguageModelEntry
|
|
18
|
+
list(): readonly LanguageModelEntry[]
|
|
19
|
+
getByRef(ref: LanguageModelRef): LanguageModelEntry | null
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* One configured language model.
|
|
24
|
+
*
|
|
25
|
+
* The identity describes the configured binding, not only a vendor model. For example,
|
|
26
|
+
* A gateway binding and a direct provider binding for the same vendor model are distinct because their
|
|
27
|
+
* `provider` values differ.
|
|
28
|
+
*/
|
|
29
|
+
export interface LanguageModelEntry extends LanguageModelRef {
|
|
30
|
+
readonly model: LanguageModel
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Models a project allows Sixb to use, organized by technical model kind. */
|
|
34
|
+
export interface ModelCatalog {
|
|
35
|
+
readonly language: LanguageModelCatalog
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface ModelCatalogInput {
|
|
39
|
+
/** Ordered; the first entry is the project default. */
|
|
40
|
+
readonly language: readonly LanguageModel[]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Build the immutable project model catalog. Rejects invalid, duplicate, and empty catalogs. */
|
|
44
|
+
export function createModelCatalog(input: ModelCatalogInput): ModelCatalog {
|
|
45
|
+
if (!Array.isArray(input?.language)) {
|
|
46
|
+
throw new RuntimeError("[Sixb] 'models.language' must be an array of Sixb language models.")
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const entries: LanguageModelEntry[] = []
|
|
50
|
+
const byProvider = new Map<string, Map<string, LanguageModelEntry>>()
|
|
51
|
+
|
|
52
|
+
for (const [index, model] of input.language.entries()) {
|
|
53
|
+
assertLanguageModel(model, index)
|
|
54
|
+
|
|
55
|
+
let byModelId = byProvider.get(model.providerId)
|
|
56
|
+
if (byModelId === undefined) {
|
|
57
|
+
byModelId = new Map()
|
|
58
|
+
byProvider.set(model.providerId, byModelId)
|
|
59
|
+
}
|
|
60
|
+
if (byModelId.has(model.modelId)) {
|
|
61
|
+
throw new RuntimeError(
|
|
62
|
+
`[Sixb] Duplicate language model '${model.providerId}/${model.modelId}' in 'models'. Each provider and model id pair may be configured once.`
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const entry = Object.freeze({
|
|
67
|
+
provider: model.providerId,
|
|
68
|
+
modelId: model.modelId,
|
|
69
|
+
model,
|
|
70
|
+
})
|
|
71
|
+
byModelId.set(model.modelId, entry)
|
|
72
|
+
entries.push(entry)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const [defaultEntry] = entries
|
|
76
|
+
if (defaultEntry === undefined) {
|
|
77
|
+
throw new RuntimeError(
|
|
78
|
+
"[Sixb] 'models.language' needs at least one model. Configure one or omit 'models' from createSixb()."
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const listed = Object.freeze(entries.slice())
|
|
83
|
+
const language: LanguageModelCatalog = Object.freeze({
|
|
84
|
+
default: defaultEntry,
|
|
85
|
+
list: () => listed,
|
|
86
|
+
getByRef: (ref: LanguageModelRef) => byProvider.get(ref.provider)?.get(ref.modelId) ?? null,
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
return Object.freeze({ language })
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function assertLanguageModel(model: unknown, index: number): asserts model is LanguageModel {
|
|
93
|
+
if ((typeof model !== "object" && typeof model !== "function") || model === null) {
|
|
94
|
+
throw invalidLanguageModel(index, "expected a Sixb LanguageModel instance")
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const candidate = model as Record<string, unknown>
|
|
98
|
+
assertModelIdentifier(candidate.providerId, "provider", index)
|
|
99
|
+
assertModelIdentifier(candidate.modelId, "modelId", index)
|
|
100
|
+
if (typeof candidate.stream !== "function") {
|
|
101
|
+
throw invalidLanguageModel(index, "expected 'stream' to be a function")
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
const definition = defineLanguageModel(candidate.definition as LanguageModelDefinition)
|
|
105
|
+
if (
|
|
106
|
+
definition.providerId !== candidate.providerId ||
|
|
107
|
+
definition.modelId !== candidate.modelId
|
|
108
|
+
) {
|
|
109
|
+
throw new Error("definition identity does not match the binding")
|
|
110
|
+
}
|
|
111
|
+
} catch (error) {
|
|
112
|
+
throw invalidLanguageModel(index, error instanceof Error ? error.message : "invalid definition")
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function assertModelIdentifier(value: unknown, field: "provider" | "modelId", index: number): void {
|
|
117
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
118
|
+
throw invalidLanguageModel(index, `expected '${field}' to be a non-empty string`)
|
|
119
|
+
}
|
|
120
|
+
if (value.trim() !== value) {
|
|
121
|
+
throw invalidLanguageModel(index, `expected '${field}' not to have surrounding whitespace`)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function invalidLanguageModel(index: number, detail: string): RuntimeError {
|
|
126
|
+
return new RuntimeError(
|
|
127
|
+
`[Sixb] Invalid language model at 'models.language[${index}]': ${detail}.`
|
|
128
|
+
)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** Provider-owned metadata lookup, independent from the project's configured bindings. */
|
|
132
|
+
export interface ModelDefinitionCatalog<TDefinition extends ModelDefinition = ModelDefinition> {
|
|
133
|
+
get(modelId: string): Promise<TDefinition | undefined>
|
|
134
|
+
list(): Promise<readonly TDefinition[]>
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export type LanguageModelDefinitionCatalog = ModelDefinitionCatalog<LanguageModelDefinition>
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MODEL_REASONING_EFFORTS,
|
|
3
|
+
type ModelCapabilities,
|
|
4
|
+
type ModelReasoningBudgetCapabilities,
|
|
5
|
+
type ModelReasoningCapabilities,
|
|
6
|
+
} from "./language-model"
|
|
7
|
+
|
|
8
|
+
export type ModelKind = "language" | "image" | "video" | "embedding"
|
|
9
|
+
|
|
10
|
+
/** Common catalog identity shared by every present and future model runtime. */
|
|
11
|
+
export interface ModelDefinition {
|
|
12
|
+
readonly kind: ModelKind
|
|
13
|
+
readonly providerId: string
|
|
14
|
+
readonly modelId: string
|
|
15
|
+
readonly name?: string
|
|
16
|
+
readonly description?: string
|
|
17
|
+
readonly family?: string
|
|
18
|
+
readonly tags?: readonly string[]
|
|
19
|
+
readonly releaseDate?: string
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Serializable facts about one concrete model offering from one provider. */
|
|
23
|
+
export interface LanguageModelDefinition extends ModelDefinition {
|
|
24
|
+
readonly kind: "language"
|
|
25
|
+
readonly knowledgeCutoff?: string
|
|
26
|
+
readonly contextWindow?: number
|
|
27
|
+
/** Maximum input tokens, distinct from a shared input/output context window. */
|
|
28
|
+
readonly maxInputTokens?: number
|
|
29
|
+
readonly maxOutputTokens?: number
|
|
30
|
+
readonly capabilities: ModelCapabilities
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function defineLanguageModel(definition: LanguageModelDefinition): LanguageModelDefinition {
|
|
34
|
+
if (definition.kind !== "language") {
|
|
35
|
+
throw new TypeError("[Sixb] Language model definitions must use kind 'language'.")
|
|
36
|
+
}
|
|
37
|
+
assertModelId(definition.providerId, "providerId")
|
|
38
|
+
assertModelId(definition.modelId, "modelId")
|
|
39
|
+
assertOptionalString(definition.name, "name")
|
|
40
|
+
assertOptionalString(definition.description, "description")
|
|
41
|
+
assertOptionalString(definition.family, "family")
|
|
42
|
+
assertOptionalString(definition.releaseDate, "releaseDate")
|
|
43
|
+
assertOptionalString(definition.knowledgeCutoff, "knowledgeCutoff")
|
|
44
|
+
const tags = freezeStrings(definition.tags, "tags")
|
|
45
|
+
const capabilities = defineModelCapabilities(definition.capabilities)
|
|
46
|
+
assertOptionalPositiveInteger(definition.contextWindow, "contextWindow")
|
|
47
|
+
assertOptionalPositiveInteger(definition.maxInputTokens, "maxInputTokens")
|
|
48
|
+
assertOptionalPositiveInteger(definition.maxOutputTokens, "maxOutputTokens")
|
|
49
|
+
return Object.freeze({
|
|
50
|
+
kind: "language",
|
|
51
|
+
providerId: definition.providerId,
|
|
52
|
+
modelId: definition.modelId,
|
|
53
|
+
...(definition.name === undefined ? {} : { name: definition.name }),
|
|
54
|
+
...(definition.description === undefined ? {} : { description: definition.description }),
|
|
55
|
+
...(definition.family === undefined ? {} : { family: definition.family }),
|
|
56
|
+
...(tags === undefined ? {} : { tags }),
|
|
57
|
+
...(definition.releaseDate === undefined ? {} : { releaseDate: definition.releaseDate }),
|
|
58
|
+
...(definition.knowledgeCutoff === undefined
|
|
59
|
+
? {}
|
|
60
|
+
: { knowledgeCutoff: definition.knowledgeCutoff }),
|
|
61
|
+
...(definition.contextWindow === undefined ? {} : { contextWindow: definition.contextWindow }),
|
|
62
|
+
...(definition.maxInputTokens === undefined
|
|
63
|
+
? {}
|
|
64
|
+
: { maxInputTokens: definition.maxInputTokens }),
|
|
65
|
+
...(definition.maxOutputTokens === undefined
|
|
66
|
+
? {}
|
|
67
|
+
: { maxOutputTokens: definition.maxOutputTokens }),
|
|
68
|
+
capabilities,
|
|
69
|
+
})
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function defineModelCapabilities(capabilities: unknown): ModelCapabilities {
|
|
73
|
+
assertRecord(capabilities, "capabilities")
|
|
74
|
+
const inputMediaTypes =
|
|
75
|
+
capabilities.inputMediaTypes === "any"
|
|
76
|
+
? "any"
|
|
77
|
+
: freezeStrings(capabilities.inputMediaTypes, "capabilities.inputMediaTypes")
|
|
78
|
+
for (const [field, value] of Object.entries(capabilities)) {
|
|
79
|
+
if (field === "inputMediaTypes" || field === "reasoning") continue
|
|
80
|
+
if (value !== undefined && typeof value !== "boolean") {
|
|
81
|
+
throw new TypeError(`[Sixb] Model capability '${field}' must be boolean.`)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const reasoning = freezeReasoningCapabilities(capabilities.reasoning)
|
|
85
|
+
const flags: {
|
|
86
|
+
localTools?: boolean
|
|
87
|
+
parallelToolCalls?: boolean
|
|
88
|
+
nativeStructuredOutput?: boolean
|
|
89
|
+
providerExecutedTools?: boolean
|
|
90
|
+
} = {}
|
|
91
|
+
for (const key of [
|
|
92
|
+
"localTools",
|
|
93
|
+
"parallelToolCalls",
|
|
94
|
+
"nativeStructuredOutput",
|
|
95
|
+
"providerExecutedTools",
|
|
96
|
+
] as const) {
|
|
97
|
+
const value = capabilities[key]
|
|
98
|
+
if (typeof value === "boolean") flags[key] = value
|
|
99
|
+
}
|
|
100
|
+
return Object.freeze({
|
|
101
|
+
...(inputMediaTypes === undefined ? {} : { inputMediaTypes }),
|
|
102
|
+
...(reasoning === undefined ? {} : { reasoning }),
|
|
103
|
+
...flags,
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function freezeReasoningCapabilities(reasoning: unknown): ModelCapabilities["reasoning"] {
|
|
108
|
+
if (reasoning === undefined || reasoning === false) return reasoning
|
|
109
|
+
assertRecord(reasoning, "reasoning")
|
|
110
|
+
if (reasoning.canDisable !== undefined && typeof reasoning.canDisable !== "boolean") {
|
|
111
|
+
throw new TypeError("[Sixb] Model reasoning capability 'canDisable' must be boolean.")
|
|
112
|
+
}
|
|
113
|
+
const efforts = freezeReasoningEfforts(reasoning.efforts)
|
|
114
|
+
const budgetTokens = freezeReasoningBudgetCapabilities(reasoning.budgetTokens)
|
|
115
|
+
return Object.freeze({
|
|
116
|
+
...(reasoning.canDisable === undefined ? {} : { canDisable: reasoning.canDisable }),
|
|
117
|
+
...(efforts === undefined ? {} : { efforts }),
|
|
118
|
+
...(budgetTokens === undefined ? {} : { budgetTokens }),
|
|
119
|
+
} satisfies ModelReasoningCapabilities)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function freezeReasoningEfforts(
|
|
123
|
+
efforts: unknown
|
|
124
|
+
): readonly (typeof MODEL_REASONING_EFFORTS)[number][] | undefined {
|
|
125
|
+
if (efforts === undefined) return undefined
|
|
126
|
+
if (!Array.isArray(efforts)) {
|
|
127
|
+
throw new TypeError("[Sixb] Model reasoning capability 'efforts' must be an array.")
|
|
128
|
+
}
|
|
129
|
+
const seen = new Set<string>()
|
|
130
|
+
return Object.freeze(
|
|
131
|
+
efforts.map((value: unknown) => {
|
|
132
|
+
const effort = MODEL_REASONING_EFFORTS.find((allowed) => allowed === value)
|
|
133
|
+
if (effort === undefined) {
|
|
134
|
+
throw new TypeError(`[Sixb] Model reasoning effort '${String(value)}' is invalid.`)
|
|
135
|
+
}
|
|
136
|
+
if (seen.has(effort)) {
|
|
137
|
+
throw new TypeError(`[Sixb] Model reasoning effort '${effort}' is duplicated.`)
|
|
138
|
+
}
|
|
139
|
+
seen.add(effort)
|
|
140
|
+
return effort
|
|
141
|
+
})
|
|
142
|
+
)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function freezeReasoningBudgetCapabilities(
|
|
146
|
+
budget: unknown
|
|
147
|
+
): ModelReasoningBudgetCapabilities | undefined {
|
|
148
|
+
if (budget === undefined) return undefined
|
|
149
|
+
assertRecord(budget, "reasoning budgetTokens")
|
|
150
|
+
assertOptionalNonnegativeInteger(budget.min, "capabilities.reasoning.budgetTokens.min")
|
|
151
|
+
assertOptionalNonnegativeInteger(budget.max, "capabilities.reasoning.budgetTokens.max")
|
|
152
|
+
if (budget.min !== undefined && budget.max !== undefined && budget.max < budget.min) {
|
|
153
|
+
throw new TypeError(
|
|
154
|
+
"[Sixb] Model reasoning token budget maximum must not be below its minimum."
|
|
155
|
+
)
|
|
156
|
+
}
|
|
157
|
+
return Object.freeze({
|
|
158
|
+
...(budget.min === undefined ? {} : { min: budget.min }),
|
|
159
|
+
...(budget.max === undefined ? {} : { max: budget.max }),
|
|
160
|
+
})
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function assertModelId(value: string, field: string): void {
|
|
164
|
+
if (!value.trim()) throw new TypeError(`[Sixb] Model ${field} must not be empty.`)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function assertOptionalPositiveInteger(value: number | undefined, field: string): void {
|
|
168
|
+
if (value !== undefined && (!Number.isSafeInteger(value) || value <= 0)) {
|
|
169
|
+
throw new TypeError(`[Sixb] Model ${field} must be a positive safe integer.`)
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function assertOptionalNonnegativeInteger(
|
|
174
|
+
value: unknown,
|
|
175
|
+
field: string
|
|
176
|
+
): asserts value is number | undefined {
|
|
177
|
+
if (
|
|
178
|
+
value !== undefined &&
|
|
179
|
+
(typeof value !== "number" || !Number.isSafeInteger(value) || value < 0)
|
|
180
|
+
) {
|
|
181
|
+
throw new TypeError(`[Sixb] Model ${field} must be a nonnegative safe integer.`)
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
function assertOptionalString(value: string | undefined, field: string): void {
|
|
186
|
+
if (value !== undefined && typeof value !== "string") {
|
|
187
|
+
throw new TypeError(`[Sixb] Model ${field} must be a string.`)
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
function freezeStrings(value: unknown, field: string): readonly string[] | undefined {
|
|
192
|
+
if (value === undefined) return undefined
|
|
193
|
+
if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string" || !entry.trim())) {
|
|
194
|
+
throw new TypeError(`[Sixb] Model ${field} must contain nonempty strings.`)
|
|
195
|
+
}
|
|
196
|
+
return Object.freeze([...value])
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function assertRecord(value: unknown, field: string): asserts value is Record<string, unknown> {
|
|
200
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
201
|
+
throw new TypeError(`[Sixb] Model ${field} must be an object.`)
|
|
202
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { ModelFinishReason, ModelUsage } from "./events"
|
|
2
|
+
import type { ModelCallCost } from "./pricing"
|
|
3
|
+
|
|
4
|
+
/** Catalog transport/access failed; callers may use local metadata without masking invalid definitions. */
|
|
5
|
+
export class ModelCatalogUnavailableError extends Error {
|
|
6
|
+
readonly name = "ModelCatalogUnavailableError"
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** A provider or provider protocol rejected a model request. */
|
|
10
|
+
export class ModelProviderError extends Error {
|
|
11
|
+
readonly name = "ModelProviderError"
|
|
12
|
+
|
|
13
|
+
constructor(
|
|
14
|
+
message: string,
|
|
15
|
+
readonly providerId: string,
|
|
16
|
+
readonly modelId: string,
|
|
17
|
+
options?: ErrorOptions & {
|
|
18
|
+
readonly status?: number
|
|
19
|
+
readonly code?: string
|
|
20
|
+
readonly requestId?: string
|
|
21
|
+
readonly retryAfterMs?: number
|
|
22
|
+
readonly retryable?: boolean
|
|
23
|
+
}
|
|
24
|
+
) {
|
|
25
|
+
super(message, options)
|
|
26
|
+
this.status = options?.status
|
|
27
|
+
this.code = options?.code
|
|
28
|
+
this.requestId = options?.requestId
|
|
29
|
+
this.retryAfterMs = options?.retryAfterMs
|
|
30
|
+
this.retryable = options?.retryable ?? false
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
readonly status?: number
|
|
34
|
+
readonly code?: string
|
|
35
|
+
readonly requestId?: string
|
|
36
|
+
readonly retryAfterMs?: number
|
|
37
|
+
readonly retryable: boolean
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export class ModelStreamError extends Error {
|
|
41
|
+
readonly name = "ModelStreamError"
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export class UnsupportedModelFeatureError extends Error {
|
|
45
|
+
readonly name = "UnsupportedModelFeatureError"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class StructuredOutputError extends Error {
|
|
49
|
+
readonly name = "StructuredOutputError"
|
|
50
|
+
|
|
51
|
+
constructor(
|
|
52
|
+
message: string,
|
|
53
|
+
options?: ErrorOptions & {
|
|
54
|
+
readonly text?: string
|
|
55
|
+
readonly providerId?: string
|
|
56
|
+
readonly modelId?: string
|
|
57
|
+
readonly responseId?: string
|
|
58
|
+
readonly responseModelId?: string
|
|
59
|
+
readonly finishReason?: ModelFinishReason
|
|
60
|
+
readonly usage?: ModelUsage
|
|
61
|
+
readonly cost?: ModelCallCost
|
|
62
|
+
}
|
|
63
|
+
) {
|
|
64
|
+
super(message, options)
|
|
65
|
+
this.text = options?.text
|
|
66
|
+
this.providerId = options?.providerId
|
|
67
|
+
this.modelId = options?.modelId
|
|
68
|
+
this.responseId = options?.responseId
|
|
69
|
+
this.responseModelId = options?.responseModelId
|
|
70
|
+
this.finishReason = options?.finishReason
|
|
71
|
+
this.usage = options?.usage
|
|
72
|
+
this.cost = options?.cost
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
readonly text?: string
|
|
76
|
+
readonly providerId?: string
|
|
77
|
+
readonly modelId?: string
|
|
78
|
+
readonly responseId?: string
|
|
79
|
+
readonly responseModelId?: string
|
|
80
|
+
readonly finishReason?: ModelFinishReason
|
|
81
|
+
readonly usage?: ModelUsage
|
|
82
|
+
readonly cost?: ModelCallCost
|
|
83
|
+
}
|