@sixb/core 0.1.5 → 0.1.7
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 +37 -33
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/types/definitions.d.ts +8 -2
- package/dist/actions/types/definitions.d.ts.map +1 -1
- package/dist/actions/worker.js +3 -3
- package/dist/agents/adapters.d.ts +33 -76
- 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.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 +2 -2
- 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/ids.d.ts +4 -0
- package/dist/agents/ids.d.ts.map +1 -1
- package/dist/agents/index.d.ts +13 -9
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +80 -68
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +17 -10
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +56 -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 -0
- 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 +4 -10
- 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.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +7 -7
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/strategy.d.ts +1 -1
- package/dist/auth/strategy.d.ts.map +1 -1
- package/dist/auth/types.d.ts +13 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/decision.d.ts +5 -2
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +24 -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 +8 -6
- 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 +1 -7
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.js +52 -48
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/broker/index.js +2 -2
- package/dist/{chunk-zqysyfjt.js → chunk-08m3b6w8.js} +1 -1
- package/dist/{chunk-xdf9yswn.js → chunk-08twe8m6.js} +93 -8
- package/dist/chunk-08twe8m6.js.map +12 -0
- package/dist/{chunk-xkthy56g.js → chunk-1kamz6j0.js} +1 -1
- package/dist/{chunk-h6h91mfy.js → chunk-2b5qtban.js} +12 -12
- package/dist/{chunk-h6h91mfy.js.map → chunk-2b5qtban.js.map} +3 -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-f83ka50g.js → chunk-37wk412q.js} +86 -28
- package/dist/{chunk-f83ka50g.js.map → chunk-37wk412q.js.map} +8 -8
- package/dist/{chunk-6d5xdj1q.js → chunk-3fqt22c4.js} +4 -4
- package/dist/{chunk-t9xghkva.js → chunk-3kv70xwp.js} +3 -2
- package/dist/{chunk-t9xghkva.js.map → chunk-3kv70xwp.js.map} +3 -3
- package/dist/{chunk-z3zp0bj1.js → chunk-407j3msh.js} +1 -1
- package/dist/{chunk-rhrbz7d4.js → chunk-4a849fr1.js} +1 -1
- package/dist/{chunk-62c7t4jc.js → chunk-4nxeacx7.js} +1 -1
- package/dist/{chunk-cy0n5dms.js → chunk-5jcdmjam.js} +1 -1
- package/dist/{chunk-819wnjz8.js → chunk-64sr682n.js} +7 -7
- package/dist/{chunk-v0egge8b.js → chunk-6ed5bwnd.js} +666 -81
- package/dist/chunk-6ed5bwnd.js.map +57 -0
- package/dist/{chunk-x2yw73hy.js → chunk-7ds9620f.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-72q2y8hn.js.map → chunk-8tsf6dmc.js.map} +3 -3
- package/dist/{chunk-tbv03sx2.js → chunk-9aehf39w.js} +7 -7
- package/dist/{chunk-ezake7g1.js → chunk-agsvg9ar.js} +1 -1
- package/dist/{chunk-rdeagz6b.js → chunk-atmkaf60.js} +1 -1
- package/dist/{chunk-rdeagz6b.js.map → chunk-atmkaf60.js.map} +2 -2
- package/dist/chunk-c15dr03f.js +43 -0
- package/dist/chunk-c15dr03f.js.map +10 -0
- package/dist/{chunk-78c6xvyr.js → chunk-d2ndstdf.js} +8 -6
- package/dist/{chunk-78c6xvyr.js.map → chunk-d2ndstdf.js.map} +2 -2
- package/dist/{chunk-rnshztfq.js → chunk-d63tybny.js} +2 -2
- 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-4gz41why.js → chunk-dqn23610.js} +1 -1
- package/dist/{chunk-z3ga9q5m.js → chunk-e4rvtvpw.js} +13 -11
- package/dist/{chunk-z3ga9q5m.js.map → chunk-e4rvtvpw.js.map} +2 -2
- package/dist/{chunk-h9kxd41f.js → chunk-gbrpsx4m.js} +19 -6
- package/dist/chunk-gbrpsx4m.js.map +11 -0
- package/dist/{chunk-84h6qhmp.js → chunk-h0knpbz5.js} +468 -1236
- package/dist/chunk-h0knpbz5.js.map +38 -0
- package/dist/{chunk-zp2v2rv6.js → chunk-ha58tjtt.js} +6 -6
- package/dist/{chunk-f6erf2vv.js → chunk-hdz94br2.js} +2 -2
- 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-htq0qh7z.js → chunk-ka3a2ft3.js} +2 -2
- package/dist/{chunk-4h947jd8.js → chunk-kt81c11h.js} +2 -2
- package/dist/chunk-n2arzn6e.js +1745 -0
- package/dist/chunk-n2arzn6e.js.map +20 -0
- package/dist/{chunk-f2rt4vkh.js → chunk-n2w475r0.js} +3 -3
- package/dist/{chunk-t8t39h7v.js → chunk-n6jxh8sw.js} +10 -2
- package/dist/chunk-n6jxh8sw.js.map +10 -0
- package/dist/{chunk-drjqm1aa.js → chunk-p03r0h5s.js} +310 -28
- package/dist/chunk-p03r0h5s.js.map +16 -0
- package/dist/chunk-p2vqaxkc.js +528 -0
- package/dist/chunk-p2vqaxkc.js.map +15 -0
- package/dist/{chunk-gadsm794.js → chunk-qjycjdj6.js} +84 -11
- package/dist/chunk-qjycjdj6.js.map +12 -0
- package/dist/chunk-qjzp9xyb.js +286 -0
- package/dist/chunk-qjzp9xyb.js.map +12 -0
- package/dist/{chunk-am6eczah.js → chunk-qv38twt8.js} +50 -69
- package/dist/{chunk-am6eczah.js.map → chunk-qv38twt8.js.map} +8 -8
- package/dist/{chunk-bhxaq2nn.js → chunk-qw9gvjv5.js} +1 -1
- package/dist/{chunk-r0rry8dn.js → chunk-rp1mvzb4.js} +6 -6
- package/dist/{chunk-tkdscva6.js → chunk-rre42skh.js} +187 -18
- package/dist/chunk-rre42skh.js.map +39 -0
- package/dist/{chunk-ghteq96b.js → chunk-s5y30bc9.js} +2 -2
- package/dist/{chunk-a31h57d5.js → chunk-tn7xcs2n.js} +2 -2
- 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-ea73pzk7.js → chunk-vjjv9mrb.js} +2 -2
- package/dist/{chunk-8b55ygje.js → chunk-w3e09qqk.js} +1 -1
- package/dist/{chunk-ckxfnx7f.js → chunk-wjgm6jjt.js} +2 -2
- package/dist/{chunk-3j7573mj.js → chunk-x0qhkqje.js} +2 -2
- package/dist/{chunk-dysw7nsm.js → chunk-xdpwpkha.js} +2 -2
- package/dist/{chunk-1q02e95s.js → chunk-y35ma3mj.js} +11 -16
- package/dist/{chunk-1q02e95s.js.map → chunk-y35ma3mj.js.map} +3 -4
- package/dist/{chunk-qewtks41.js → chunk-z2sery1b.js} +64 -1
- package/dist/{chunk-qewtks41.js.map → chunk-z2sery1b.js.map} +3 -3
- 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/index.js +4 -4
- package/dist/execution/agent.d.ts +18 -9
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +52 -43
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts +14 -4
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/primitive.js +45 -43
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.d.ts +3 -1
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +46 -44
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/types.d.ts +1 -1
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +82 -77
- 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/index.js +5 -5
- 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 +33 -29
- 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/index.js +38 -34
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/index.js +32 -28
- package/dist/objects/query/index.js.map +1 -1
- package/dist/ontology/index.js +5 -5
- package/dist/ontology/internal.js +4 -4
- package/dist/pipelines/index.js +37 -35
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +35 -31
- package/dist/projections/internal.js.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/runtime/create.d.ts +4 -4
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +2 -2
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +3 -2
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts +2 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +4 -2
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/security/every.d.ts +1 -4
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +6 -5
- 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 +1 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +13 -5
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +4 -2
- package/dist/security/validation.d.ts.map +1 -1
- 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/provider.js +1 -1
- package/dist/storage/executions/run-link.d.ts +7 -2
- package/dist/storage/executions/run-link.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts.map +1 -1
- 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 +8 -5
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +51 -38
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +4 -3
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/index.d.ts +1 -1
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/materializations.d.ts +7 -3
- package/dist/storage/ontology/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +2 -2
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +3 -3
- package/dist/storage/pipeline-runs/provider.js +2 -2
- package/dist/storage/projection-runs/provider.js +4 -4
- package/dist/storage/sync-runs/provider.js +2 -2
- package/dist/storage/types.d.ts +5 -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 +10 -11
- 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/index.js +37 -35
- package/dist/syncs/index.js.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/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3758 -1945
- package/dist/testing/index.js.map +15 -13
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +32 -28
- 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 +53 -45
- package/dist/workflows/index.js.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 +19 -4
- package/src/actions/types/definitions.ts +24 -2
- package/src/agents/adapters.ts +109 -115
- package/src/agents/authority.ts +214 -32
- package/src/agents/builders.ts +3 -50
- package/src/agents/context-compaction.ts +4 -0
- package/src/agents/dispatch.ts +59 -2
- package/src/agents/errors.ts +5 -2
- package/src/agents/execution.ts +53 -52
- package/src/agents/ids.ts +16 -1
- package/src/agents/index.ts +23 -11
- package/src/agents/message.ts +18 -9
- package/src/agents/model-loop.ts +1023 -0
- package/src/agents/reference.ts +7 -0
- package/src/agents/request.ts +141 -74
- 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 +23 -0
- package/src/agents/types.ts +39 -81
- package/src/agents/validation.ts +34 -180
- package/src/ai-usage/execution.ts +196 -0
- package/src/ai-usage/index.ts +15 -0
- package/src/auth/index.ts +1 -0
- package/src/auth/runtime.ts +8 -0
- package/src/auth/strategy.ts +1 -0
- package/src/auth/types.ts +14 -0
- package/src/authorization/decision.ts +27 -10
- package/src/authorization/grant-kinds.ts +62 -15
- package/src/authorization/index.ts +1 -0
- package/src/authorization/resolve.ts +12 -5
- package/src/authorization/types.ts +7 -5
- package/src/bootstrap/discovery.ts +0 -3
- package/src/error-reporting/types.ts +4 -2
- package/src/errors/catalog.ts +8 -0
- package/src/execution/agent.ts +129 -22
- package/src/execution/authorization.ts +48 -18
- package/src/execution/request.ts +4 -1
- package/src/execution/types.ts +1 -1
- package/src/http/api-routes.ts +63 -0
- package/src/index.ts +36 -7
- package/src/json.ts +9 -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/queues/in-memory.ts +5 -0
- package/src/queues/index.ts +11 -0
- package/src/queues/types.ts +20 -3
- package/src/runtime/create.ts +7 -5
- package/src/runtime/definitions.ts +2 -2
- package/src/runtime/host.ts +3 -2
- package/src/runtime/resolve-definitions.ts +13 -36
- package/src/runtime/sixb.ts +6 -8
- package/src/security/every.ts +0 -4
- package/src/security/grants.ts +55 -11
- package/src/security/index.ts +2 -0
- package/src/security/registry.ts +6 -5
- package/src/security/types.ts +15 -4
- package/src/security/validation.ts +30 -9
- 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/run-link.ts +16 -6
- package/src/storage/executions/validation.ts +36 -6
- package/src/storage/in-memory/index.ts +48 -4
- package/src/storage/index.ts +52 -1
- package/src/storage/ontology/in-memory/materializations.ts +34 -22
- package/src/storage/ontology/index.ts +1 -0
- package/src/storage/ontology/materializations.ts +8 -3
- package/src/storage/ontology/provider.ts +2 -2
- package/src/storage/types.ts +37 -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/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/execution-storage-contract.ts +2 -2
- package/src/testing/index.ts +10 -0
- package/src/testing/materializer-storage-contract.ts +170 -2
- package/src/testing/queues-contract.ts +36 -1
- package/src/workflows/agent-step-identity.ts +4 -0
- package/src/workflows/builders.ts +95 -9
- package/src/workflows/execution.ts +2 -2
- package/src/workflows/failure.ts +2 -2
- package/src/workflows/index.ts +3 -0
- package/src/workflows/types.ts +23 -11
- package/src/workflows/validation.ts +100 -7
- package/dist/chunk-6gjqgd3d.js.map +0 -11
- package/dist/chunk-84h6qhmp.js.map +0 -46
- package/dist/chunk-a09jx26t.js +0 -55
- package/dist/chunk-a09jx26t.js.map +0 -11
- package/dist/chunk-dm72y8wt.js.map +0 -10
- package/dist/chunk-drjqm1aa.js.map +0 -15
- package/dist/chunk-gadsm794.js.map +0 -11
- package/dist/chunk-h9kxd41f.js.map +0 -11
- package/dist/chunk-nzw7sm3b.js +0 -137
- package/dist/chunk-nzw7sm3b.js.map +0 -10
- package/dist/chunk-t0jjkep3.js.map +0 -10
- package/dist/chunk-t8t39h7v.js.map +0 -10
- package/dist/chunk-tkdscva6.js.map +0 -37
- package/dist/chunk-v0egge8b.js.map +0 -56
- package/dist/chunk-xdf9yswn.js.map +0 -11
- /package/dist/{chunk-zqysyfjt.js.map → chunk-08m3b6w8.js.map} +0 -0
- /package/dist/{chunk-xkthy56g.js.map → chunk-1kamz6j0.js.map} +0 -0
- /package/dist/{chunk-6d5xdj1q.js.map → chunk-3fqt22c4.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-62c7t4jc.js.map → chunk-4nxeacx7.js.map} +0 -0
- /package/dist/{chunk-cy0n5dms.js.map → chunk-5jcdmjam.js.map} +0 -0
- /package/dist/{chunk-819wnjz8.js.map → chunk-64sr682n.js.map} +0 -0
- /package/dist/{chunk-x2yw73hy.js.map → chunk-7ds9620f.js.map} +0 -0
- /package/dist/{chunk-tbv03sx2.js.map → chunk-9aehf39w.js.map} +0 -0
- /package/dist/{chunk-ezake7g1.js.map → chunk-agsvg9ar.js.map} +0 -0
- /package/dist/{chunk-rnshztfq.js.map → chunk-d63tybny.js.map} +0 -0
- /package/dist/{chunk-vybf6pkp.js.map → chunk-dbc80ad7.js.map} +0 -0
- /package/dist/{chunk-4gz41why.js.map → chunk-dqn23610.js.map} +0 -0
- /package/dist/{chunk-zp2v2rv6.js.map → chunk-ha58tjtt.js.map} +0 -0
- /package/dist/{chunk-f6erf2vv.js.map → chunk-hdz94br2.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-4h947jd8.js.map → chunk-kt81c11h.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-r0rry8dn.js.map → chunk-rp1mvzb4.js.map} +0 -0
- /package/dist/{chunk-ghteq96b.js.map → chunk-s5y30bc9.js.map} +0 -0
- /package/dist/{chunk-a31h57d5.js.map → chunk-tn7xcs2n.js.map} +0 -0
- /package/dist/{chunk-ea73pzk7.js.map → chunk-vjjv9mrb.js.map} +0 -0
- /package/dist/{chunk-8b55ygje.js.map → chunk-w3e09qqk.js.map} +0 -0
- /package/dist/{chunk-ckxfnx7f.js.map → chunk-wjgm6jjt.js.map} +0 -0
- /package/dist/{chunk-3j7573mj.js.map → chunk-x0qhkqje.js.map} +0 -0
- /package/dist/{chunk-dysw7nsm.js.map → chunk-xdpwpkha.js.map} +0 -0
package/src/agents/request.ts
CHANGED
|
@@ -4,30 +4,40 @@ import { SYSTEM_PRINCIPAL } from "../auth"
|
|
|
4
4
|
import { snapshotRequesterGroupIds } from "../auth/attribution"
|
|
5
5
|
import { assertAuthorized } from "../authorization"
|
|
6
6
|
import type { FileRef } from "../blob-storage"
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
canInheritAgentRequestAuthorization,
|
|
9
|
+
createInheritedAgentExecutionRecord,
|
|
10
|
+
} from "../execution/agent"
|
|
8
11
|
import { ensureExecutionRecord, executionRecordInputFromRuntime } from "../execution/durable"
|
|
9
12
|
import type { ExecutionContext } from "../execution/types"
|
|
13
|
+
import type { LanguageModelCatalog, LanguageModelRef } from "../models"
|
|
14
|
+
import { isModelReasoning } from "../models/language-model"
|
|
10
15
|
import type { SixbRuntimeContext } from "../runtime/types"
|
|
11
|
-
import type { SecurityDefinitionCatalog } from "../security"
|
|
12
16
|
import {
|
|
13
|
-
type AgentRunRecord,
|
|
14
17
|
type AgentStorage,
|
|
15
18
|
AgentStorageError,
|
|
16
19
|
type AgentThreadRecord,
|
|
20
|
+
type ConversationAgentRunRecord,
|
|
21
|
+
type ConversationAgentRunSpec,
|
|
17
22
|
} from "../storage/agents"
|
|
23
|
+
import {
|
|
24
|
+
aiLimitSubjectsFromAttribution,
|
|
25
|
+
aiUsageLimitExceededError,
|
|
26
|
+
aiUsageLimitUnavailableError,
|
|
27
|
+
applicableAiLimitPolicyStatuses,
|
|
28
|
+
} from "../storage/ai-limits/enforcement"
|
|
29
|
+
import type { AiLimitPolicyStatus } from "../storage/ai-limits/types"
|
|
18
30
|
import type { CreateExecutionInput } from "../storage/executions"
|
|
19
|
-
import { ensureAgentExecutionIdentity, resolveAgentExecutionAuthorization } from "./authority"
|
|
20
31
|
import type { AgentContextEntryInput } from "./context"
|
|
21
32
|
import { resolveAgentContextParts } from "./context-resolution"
|
|
22
33
|
import { dispatchQueuedAgentRuns } from "./dispatch"
|
|
23
34
|
import { AgentRequestError } from "./errors"
|
|
24
35
|
import { createAgentMessageId, createAgentRunId, createAgentThreadId } from "./ids"
|
|
36
|
+
import { assertNoAgentSelector } from "./retired-config"
|
|
25
37
|
import { publishAgentRunActivity } from "./streams"
|
|
26
|
-
import type
|
|
38
|
+
import { AGENT_REASONING_LEVELS, type AgentReasoningLevel } from "./types"
|
|
27
39
|
|
|
28
40
|
export interface RequestAgentRunInput {
|
|
29
|
-
/** The agent to run. */
|
|
30
|
-
readonly agentId: string
|
|
31
41
|
/** The user's message that triggers the turn. */
|
|
32
42
|
readonly text: string
|
|
33
43
|
/** Blob-backed files attached to the trigger message. */
|
|
@@ -36,6 +46,10 @@ export interface RequestAgentRunInput {
|
|
|
36
46
|
readonly context?: readonly AgentContextEntryInput[]
|
|
37
47
|
/** Continue an existing thread. Omitted → a fresh thread is created for this agent. */
|
|
38
48
|
readonly threadId?: string
|
|
49
|
+
/** Configured language model selected for this turn. Omitted uses the agent default. */
|
|
50
|
+
readonly model?: LanguageModelRef
|
|
51
|
+
/** Provider-neutral reasoning effort selected for this turn. */
|
|
52
|
+
readonly reasoning?: AgentReasoningLevel
|
|
39
53
|
/** Title to stamp on the thread when one is created. */
|
|
40
54
|
readonly title?: string
|
|
41
55
|
/** Explicit id for the trigger (user) message. Defaults to a generated id. */
|
|
@@ -46,7 +60,7 @@ export interface RequestAgentRunInput {
|
|
|
46
60
|
|
|
47
61
|
export interface RequestAgentRunResult {
|
|
48
62
|
/** The durable queued run exactly as it was created (`status: "queued"`, attempt 0). */
|
|
49
|
-
readonly run:
|
|
63
|
+
readonly run: ConversationAgentRunRecord
|
|
50
64
|
/** The enqueued job id, when the queue returns one. */
|
|
51
65
|
readonly jobId?: string
|
|
52
66
|
/** Whether this call created the thread. */
|
|
@@ -64,11 +78,13 @@ export interface RequestAgentRunResult {
|
|
|
64
78
|
export async function requestAgentRun(
|
|
65
79
|
runtime: SixbRuntimeContext,
|
|
66
80
|
execution: ExecutionContext,
|
|
67
|
-
|
|
68
|
-
agent: AgentDefinition,
|
|
81
|
+
models: LanguageModelCatalog | undefined,
|
|
69
82
|
input: RequestAgentRunInput
|
|
70
83
|
): Promise<RequestAgentRunResult> {
|
|
71
|
-
|
|
84
|
+
assertNoAgentSelector(input)
|
|
85
|
+
assertAuthorized(runtime, { kind: "agent.run" })
|
|
86
|
+
assertRequestAuthorityCanRunAgent(runtime)
|
|
87
|
+
const spec = resolveConversationRunSpec({ models, input })
|
|
72
88
|
|
|
73
89
|
// Resolve context before creating a thread: invalid or inaccessible references must not leave an
|
|
74
90
|
// empty conversation behind. The resulting parts are the exact snapshot persisted below.
|
|
@@ -79,9 +95,19 @@ export async function requestAgentRun(
|
|
|
79
95
|
// A scoped runtime is authoritative for caller identity. `input.principal` remains available to
|
|
80
96
|
// privileged server integrations that have already authenticated their request.
|
|
81
97
|
const principal = runtime.authorization?.principal ?? input.principal ?? SYSTEM_PRINCIPAL
|
|
98
|
+
const runId = createAgentRunId()
|
|
99
|
+
const durableExecution = await prepareDurableAgentExecution(runtime, execution, runId)
|
|
100
|
+
const requesterGroupIds = durableExecution.requestedBy
|
|
101
|
+
? await snapshotRequesterGroupIds({
|
|
102
|
+
auth: runtime.storage.auth,
|
|
103
|
+
projectId,
|
|
104
|
+
principal: durableExecution.requestedBy,
|
|
105
|
+
})
|
|
106
|
+
: []
|
|
107
|
+
await assertAiLimitPreflight(runtime, durableExecution, requesterGroupIds)
|
|
108
|
+
|
|
82
109
|
const { thread, createdThread } = await resolveThread(agents, {
|
|
83
110
|
projectId,
|
|
84
|
-
agentId: agent.id,
|
|
85
111
|
threadId: input.threadId,
|
|
86
112
|
title: input.title,
|
|
87
113
|
principal,
|
|
@@ -94,24 +120,8 @@ export async function requestAgentRun(
|
|
|
94
120
|
`[Sixb] Agent thread '${thread.id}' already has an active run '${thread.activeRunId}'.`
|
|
95
121
|
)
|
|
96
122
|
}
|
|
97
|
-
|
|
98
|
-
const runId = createAgentRunId()
|
|
99
|
-
const durableExecution = await prepareDurableAgentExecution(
|
|
100
|
-
runtime,
|
|
101
|
-
execution,
|
|
102
|
-
security,
|
|
103
|
-
agent,
|
|
104
|
-
runId
|
|
105
|
-
)
|
|
106
|
-
const requesterGroupIds = durableExecution.requestedBy
|
|
107
|
-
? await snapshotRequesterGroupIds({
|
|
108
|
-
auth: runtime.storage.auth,
|
|
109
|
-
projectId,
|
|
110
|
-
principal: durableExecution.requestedBy,
|
|
111
|
-
})
|
|
112
|
-
: []
|
|
113
123
|
const triggerMessageId = input.messageId ?? createAgentMessageId()
|
|
114
|
-
let run:
|
|
124
|
+
let run: ConversationAgentRunRecord
|
|
115
125
|
try {
|
|
116
126
|
run = await runtime.storage.transaction(async (tx) => {
|
|
117
127
|
const agents = tx.agents
|
|
@@ -140,8 +150,8 @@ export async function requestAgentRun(
|
|
|
140
150
|
projectId,
|
|
141
151
|
executionId: durableExecution.id,
|
|
142
152
|
threadId: thread.id,
|
|
143
|
-
agentId: agent.id,
|
|
144
153
|
triggerMessageId,
|
|
154
|
+
spec,
|
|
145
155
|
requesterGroupIds,
|
|
146
156
|
})
|
|
147
157
|
})
|
|
@@ -166,17 +176,11 @@ export async function requestAgentRun(
|
|
|
166
176
|
export async function retryAgentRun(
|
|
167
177
|
runtime: SixbRuntimeContext,
|
|
168
178
|
execution: ExecutionContext,
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
failedRun: AgentRunRecord
|
|
179
|
+
models: LanguageModelCatalog | undefined,
|
|
180
|
+
failedRun: ConversationAgentRunRecord
|
|
172
181
|
): Promise<RequestAgentRunResult> {
|
|
173
|
-
assertAuthorized(runtime, { kind: "agent.run"
|
|
174
|
-
|
|
175
|
-
throw new AgentRequestError(
|
|
176
|
-
"agent_not_found",
|
|
177
|
-
`[Sixb] Agent run '${failedRun.id}' does not belong to agent '${agent.id}'.`
|
|
178
|
-
)
|
|
179
|
-
}
|
|
182
|
+
assertAuthorized(runtime, { kind: "agent.run" })
|
|
183
|
+
assertRequestAuthorityCanRunAgent(runtime)
|
|
180
184
|
if (failedRun.status !== "failed") {
|
|
181
185
|
throw new AgentRequestError(
|
|
182
186
|
"run_not_retryable",
|
|
@@ -185,14 +189,18 @@ export async function retryAgentRun(
|
|
|
185
189
|
}
|
|
186
190
|
|
|
187
191
|
const agents = requireAgentStorage(runtime)
|
|
192
|
+
const thread = await agents.threads.getById({
|
|
193
|
+
projectId: runtime.projectId,
|
|
194
|
+
id: failedRun.threadId,
|
|
195
|
+
})
|
|
196
|
+
if (!thread) {
|
|
197
|
+
throw new AgentRequestError(
|
|
198
|
+
"thread_not_found",
|
|
199
|
+
`[Sixb] Agent thread '${failedRun.threadId}' was not found.`
|
|
200
|
+
)
|
|
201
|
+
}
|
|
188
202
|
const runId = createAgentRunId()
|
|
189
|
-
const durableExecution = await prepareDurableAgentExecution(
|
|
190
|
-
runtime,
|
|
191
|
-
execution,
|
|
192
|
-
security,
|
|
193
|
-
agent,
|
|
194
|
-
runId
|
|
195
|
-
)
|
|
203
|
+
const durableExecution = await prepareDurableAgentExecution(runtime, execution, runId)
|
|
196
204
|
const requesterGroupIds = durableExecution.requestedBy
|
|
197
205
|
? await snapshotRequesterGroupIds({
|
|
198
206
|
auth: runtime.storage.auth,
|
|
@@ -200,6 +208,7 @@ export async function retryAgentRun(
|
|
|
200
208
|
principal: durableExecution.requestedBy,
|
|
201
209
|
})
|
|
202
210
|
: []
|
|
211
|
+
await assertAiLimitPreflight(runtime, durableExecution, requesterGroupIds)
|
|
203
212
|
const run = await runtime.storage.transaction(async (tx) => {
|
|
204
213
|
const agents = tx.agents
|
|
205
214
|
if (!agents) {
|
|
@@ -216,8 +225,13 @@ export async function retryAgentRun(
|
|
|
216
225
|
projectId: runtime.projectId,
|
|
217
226
|
executionId: durableExecution.id,
|
|
218
227
|
threadId: failedRun.threadId,
|
|
219
|
-
agentId: agent.id,
|
|
220
228
|
triggerMessageId: failedRun.triggerMessageId,
|
|
229
|
+
spec:
|
|
230
|
+
failedRun.spec ??
|
|
231
|
+
resolveConversationRunSpec({
|
|
232
|
+
models,
|
|
233
|
+
input: {},
|
|
234
|
+
}),
|
|
221
235
|
requesterGroupIds,
|
|
222
236
|
})
|
|
223
237
|
})
|
|
@@ -226,25 +240,76 @@ export async function retryAgentRun(
|
|
|
226
240
|
return { run, ...(jobId ? { jobId } : {}), createdThread: false }
|
|
227
241
|
}
|
|
228
242
|
|
|
243
|
+
async function assertAiLimitPreflight(
|
|
244
|
+
runtime: SixbRuntimeContext,
|
|
245
|
+
execution: CreateExecutionInput,
|
|
246
|
+
requesterGroupIds: readonly string[]
|
|
247
|
+
): Promise<void> {
|
|
248
|
+
const limits = runtime.storage.aiLimits
|
|
249
|
+
if (!limits) throw aiUsageLimitUnavailableError(["limitStorageUnavailable"])
|
|
250
|
+
|
|
251
|
+
const subjects = aiLimitSubjectsFromAttribution(execution.requestedBy, requesterGroupIds)
|
|
252
|
+
let applicable: readonly AiLimitPolicyStatus[]
|
|
253
|
+
try {
|
|
254
|
+
applicable = applicableAiLimitPolicyStatuses(
|
|
255
|
+
await limits.listPolicyStatuses({ projectId: runtime.projectId }),
|
|
256
|
+
subjects
|
|
257
|
+
)
|
|
258
|
+
} catch {
|
|
259
|
+
throw aiUsageLimitUnavailableError(["limitStorageUnavailable"])
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const unavailable = applicable.filter((status) => status.accountingStatus === "unavailable")
|
|
263
|
+
if (unavailable.length > 0) {
|
|
264
|
+
throw aiUsageLimitUnavailableError(["incompleteAccounting"])
|
|
265
|
+
}
|
|
266
|
+
const exhausted = applicable.filter((status) => status.exhausted)
|
|
267
|
+
if (exhausted.length > 0) {
|
|
268
|
+
const resetAt = new Date(
|
|
269
|
+
Math.min(...exhausted.map((status) => status.period.resetAt.getTime()))
|
|
270
|
+
)
|
|
271
|
+
throw aiUsageLimitExceededError(resetAt)
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
function resolveConversationRunSpec(input: {
|
|
276
|
+
readonly models?: LanguageModelCatalog
|
|
277
|
+
readonly input: Pick<RequestAgentRunInput, "model" | "reasoning">
|
|
278
|
+
}): ConversationAgentRunSpec {
|
|
279
|
+
if (!input.models) {
|
|
280
|
+
throw new AgentRequestError(
|
|
281
|
+
"model_not_found",
|
|
282
|
+
"[Sixb] Configure models.language before starting the Agent."
|
|
283
|
+
)
|
|
284
|
+
}
|
|
285
|
+
const selected = input.input.model ?? input.models.default
|
|
286
|
+
const model = input.models.getByRef(selected)
|
|
287
|
+
if (model === null) {
|
|
288
|
+
throw new AgentRequestError(
|
|
289
|
+
"model_not_found",
|
|
290
|
+
`[Sixb] Language model '${selected.provider}/${selected.modelId}' is not in the project model catalog.`
|
|
291
|
+
)
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
const reasoning = input.input.reasoning
|
|
295
|
+
if (reasoning !== undefined && !isModelReasoning(reasoning)) {
|
|
296
|
+
throw new AgentRequestError(
|
|
297
|
+
"invalid_model_selection",
|
|
298
|
+
`[Sixb] Agent reasoning must be one of: ${AGENT_REASONING_LEVELS.join(", ")}, or a nonnegative budgetTokens object.`
|
|
299
|
+
)
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
return Object.freeze({
|
|
303
|
+
model: Object.freeze({ provider: selected.provider, modelId: selected.modelId }),
|
|
304
|
+
...(reasoning === undefined ? {} : { reasoning }),
|
|
305
|
+
})
|
|
306
|
+
}
|
|
307
|
+
|
|
229
308
|
async function prepareDurableAgentExecution(
|
|
230
309
|
runtime: SixbRuntimeContext,
|
|
231
310
|
execution: ExecutionContext,
|
|
232
|
-
security: SecurityDefinitionCatalog,
|
|
233
|
-
agent: AgentDefinition,
|
|
234
311
|
runId: string
|
|
235
312
|
): Promise<CreateExecutionInput> {
|
|
236
|
-
const identity = await ensureAgentExecutionIdentity({
|
|
237
|
-
auth: runtime.storage.auth,
|
|
238
|
-
projectId: runtime.projectId,
|
|
239
|
-
agent,
|
|
240
|
-
})
|
|
241
|
-
const resolved = await resolveAgentExecutionAuthorization({
|
|
242
|
-
auth: runtime.storage.auth,
|
|
243
|
-
projectId: runtime.projectId,
|
|
244
|
-
agentId: agent.id,
|
|
245
|
-
authorizationRef: { type: "principal", principal: identity.principal },
|
|
246
|
-
security,
|
|
247
|
-
})
|
|
248
313
|
const parent = await ensureExecutionRecord(
|
|
249
314
|
runtime.storage.executions,
|
|
250
315
|
executionRecordInputFromRuntime({
|
|
@@ -252,15 +317,22 @@ async function prepareDurableAgentExecution(
|
|
|
252
317
|
runtimeAuthorization: runtime.runtimeAuthorization,
|
|
253
318
|
})
|
|
254
319
|
)
|
|
255
|
-
return
|
|
320
|
+
return createInheritedAgentExecutionRecord({
|
|
256
321
|
id: `exec_${randomUUID()}`,
|
|
257
322
|
parent,
|
|
258
|
-
agentId: agent.id,
|
|
259
323
|
runId,
|
|
260
|
-
principal: resolved.identity.principal,
|
|
261
324
|
})
|
|
262
325
|
}
|
|
263
326
|
|
|
327
|
+
function assertRequestAuthorityCanRunAgent(runtime: SixbRuntimeContext): void {
|
|
328
|
+
if (!canInheritAgentRequestAuthorization(runtime.runtimeAuthorization)) {
|
|
329
|
+
throw new AgentRequestError(
|
|
330
|
+
"authority_not_inheritable",
|
|
331
|
+
"[Sixb] The Agent requires an authenticated user request or disabled authorization."
|
|
332
|
+
)
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
264
336
|
async function dispatchAgentRun(
|
|
265
337
|
runtime: SixbRuntimeContext,
|
|
266
338
|
agents: AgentStorage,
|
|
@@ -290,7 +362,10 @@ async function dispatchAgentRun(
|
|
|
290
362
|
}
|
|
291
363
|
|
|
292
364
|
/** Activity delivery is observational: durable run admission remains successful if the feed is down. */
|
|
293
|
-
async function publishRunActivity(
|
|
365
|
+
async function publishRunActivity(
|
|
366
|
+
runtime: SixbRuntimeContext,
|
|
367
|
+
run: ConversationAgentRunRecord
|
|
368
|
+
): Promise<void> {
|
|
294
369
|
try {
|
|
295
370
|
await publishAgentRunActivity(runtime.broker, run)
|
|
296
371
|
} catch (error) {
|
|
@@ -302,7 +377,6 @@ async function resolveThread(
|
|
|
302
377
|
agents: AgentStorage,
|
|
303
378
|
params: {
|
|
304
379
|
readonly projectId: string
|
|
305
|
-
readonly agentId: string
|
|
306
380
|
readonly threadId?: string
|
|
307
381
|
readonly title?: string
|
|
308
382
|
readonly principal: Principal
|
|
@@ -314,12 +388,6 @@ async function resolveThread(
|
|
|
314
388
|
id: params.threadId,
|
|
315
389
|
})
|
|
316
390
|
if (existing) {
|
|
317
|
-
if (existing.agentId !== params.agentId) {
|
|
318
|
-
throw new AgentRequestError(
|
|
319
|
-
"thread_agent_mismatch",
|
|
320
|
-
`[Sixb] Agent thread '${existing.id}' belongs to agent '${existing.agentId}', not '${params.agentId}'.`
|
|
321
|
-
)
|
|
322
|
-
}
|
|
323
391
|
return { thread: existing, createdThread: false }
|
|
324
392
|
}
|
|
325
393
|
}
|
|
@@ -327,7 +395,6 @@ async function resolveThread(
|
|
|
327
395
|
const thread = await agents.threads.create({
|
|
328
396
|
id: params.threadId ?? createAgentThreadId(),
|
|
329
397
|
projectId: params.projectId,
|
|
330
|
-
agentId: params.agentId,
|
|
331
398
|
ownerPrincipal: params.principal,
|
|
332
399
|
...(params.title === undefined ? {} : { title: params.title }),
|
|
333
400
|
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RuntimeError } from "../runtime/errors"
|
|
2
|
+
import { AgentRequestError } from "./errors"
|
|
3
|
+
|
|
4
|
+
/** Reject JavaScript callers too: old configuration must not silently change authority. */
|
|
5
|
+
export function assertNoAgentDefinitions(input: object): void {
|
|
6
|
+
if ("agents" in input) {
|
|
7
|
+
throw new RuntimeError(
|
|
8
|
+
"[Sixb] Agent definitions are no longer supported. Configure 'models' and 'tools' on createSixb() instead."
|
|
9
|
+
)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function assertNoAgentSelector(input: object): void {
|
|
14
|
+
if ("agentId" in input || "agentIds" in input) {
|
|
15
|
+
throw new AgentRequestError(
|
|
16
|
+
"agent_selector_removed",
|
|
17
|
+
"[Sixb] There is one project Agent. Remove the agentId selector and use sixb.agent."
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
}
|
package/src/agents/streams.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
type AgentContextCheckpointReason,
|
|
8
8
|
type AgentRunFailureCode,
|
|
9
9
|
type AgentRunRecord,
|
|
10
|
+
type ConversationAgentRunRecord,
|
|
10
11
|
} from "../storage/agents/types"
|
|
11
12
|
|
|
12
13
|
export const AGENT_RUN_STREAM_SCHEMA_VERSION = 1 as const
|
|
@@ -28,7 +29,6 @@ export interface AgentRunActivityEvent {
|
|
|
28
29
|
readonly projectId: string
|
|
29
30
|
readonly runId: string
|
|
30
31
|
readonly threadId: string
|
|
31
|
-
readonly agentId: string
|
|
32
32
|
readonly status: AgentRunRecord["status"]
|
|
33
33
|
readonly attempt: number
|
|
34
34
|
readonly occurredAt: string
|
|
@@ -42,7 +42,7 @@ export function agentActivityStreamDefinition(): BrokerStreamDefinition {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export function agentRunActivityEvent(
|
|
45
|
-
run:
|
|
45
|
+
run: ConversationAgentRunRecord,
|
|
46
46
|
occurredAt: Date = new Date()
|
|
47
47
|
): AgentRunActivityEvent {
|
|
48
48
|
return {
|
|
@@ -51,7 +51,6 @@ export function agentRunActivityEvent(
|
|
|
51
51
|
projectId: run.projectId,
|
|
52
52
|
runId: run.id,
|
|
53
53
|
threadId: run.threadId,
|
|
54
|
-
agentId: run.agentId,
|
|
55
54
|
status: run.status,
|
|
56
55
|
attempt: run.attempt,
|
|
57
56
|
occurredAt: occurredAt.toISOString(),
|
|
@@ -66,7 +65,6 @@ export function isAgentRunActivityEvent(value: unknown): value is AgentRunActivi
|
|
|
66
65
|
typeof value.projectId === "string" &&
|
|
67
66
|
typeof value.runId === "string" &&
|
|
68
67
|
typeof value.threadId === "string" &&
|
|
69
|
-
typeof value.agentId === "string" &&
|
|
70
68
|
isAgentRunStatus(value.status) &&
|
|
71
69
|
typeof value.attempt === "number" &&
|
|
72
70
|
Number.isFinite(value.attempt) &&
|
|
@@ -74,7 +72,10 @@ export function isAgentRunActivityEvent(value: unknown): value is AgentRunActivi
|
|
|
74
72
|
)
|
|
75
73
|
}
|
|
76
74
|
|
|
77
|
-
export async function publishAgentRunActivity(
|
|
75
|
+
export async function publishAgentRunActivity(
|
|
76
|
+
broker: Broker,
|
|
77
|
+
run: ConversationAgentRunRecord
|
|
78
|
+
): Promise<void> {
|
|
78
79
|
const event = agentRunActivityEvent(run)
|
|
79
80
|
await broker.ensureStream({
|
|
80
81
|
projectId: run.projectId,
|
|
@@ -108,15 +109,22 @@ export function agentRunStreamDefinition(runId: string): BrokerStreamDefinition
|
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
111
|
|
|
111
|
-
|
|
112
|
+
type AgentRunStreamEventBase = {
|
|
112
113
|
readonly schemaVersion: typeof AGENT_RUN_STREAM_SCHEMA_VERSION
|
|
113
114
|
readonly projectId: string
|
|
114
115
|
readonly runId: string
|
|
115
|
-
readonly threadId: string
|
|
116
|
-
readonly agentId: string
|
|
117
116
|
readonly attempt: number
|
|
118
117
|
readonly occurredAt: string
|
|
119
|
-
}
|
|
118
|
+
} & (
|
|
119
|
+
| {
|
|
120
|
+
readonly threadId: string
|
|
121
|
+
readonly parentRunId?: never
|
|
122
|
+
}
|
|
123
|
+
| {
|
|
124
|
+
readonly parentRunId: string
|
|
125
|
+
readonly threadId?: never
|
|
126
|
+
}
|
|
127
|
+
)
|
|
120
128
|
|
|
121
129
|
// ── Control stream (worker-inbound) ─────────────────────────────────────────────────────────────
|
|
122
130
|
//
|
|
@@ -157,7 +165,12 @@ export async function publishAgentRunCancel(
|
|
|
157
165
|
projectId: params.projectId,
|
|
158
166
|
streamId: agentRunControlStreamId(params.runId),
|
|
159
167
|
records: [
|
|
160
|
-
{
|
|
168
|
+
{
|
|
169
|
+
name: AGENT_RUN_CANCEL_RECORD,
|
|
170
|
+
key: params.runId,
|
|
171
|
+
payload: { runId: params.runId },
|
|
172
|
+
idempotencyKey: `${params.runId}:cancel`,
|
|
173
|
+
},
|
|
161
174
|
],
|
|
162
175
|
})
|
|
163
176
|
}
|
|
@@ -254,18 +267,29 @@ export function agentRunFinishedEvent(
|
|
|
254
267
|
)
|
|
255
268
|
}
|
|
256
269
|
return {
|
|
257
|
-
|
|
270
|
+
...agentRunStreamEventBase(run, occurredAt),
|
|
258
271
|
type: "agent.run.finished",
|
|
259
|
-
projectId: run.projectId,
|
|
260
|
-
runId: run.id,
|
|
261
|
-
threadId: run.threadId,
|
|
262
|
-
agentId: run.agentId,
|
|
263
|
-
attempt: run.attempt,
|
|
264
272
|
status: run.status,
|
|
265
273
|
...(run.finishReason === undefined ? {} : { finishReason: run.finishReason }),
|
|
266
274
|
...(run.error === undefined ? {} : { error: run.error }),
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/** Shared lineage for stream records emitted by conversational and headless runs. */
|
|
279
|
+
export function agentRunStreamEventBase(
|
|
280
|
+
run: AgentRunRecord,
|
|
281
|
+
occurredAt: Date = new Date()
|
|
282
|
+
): AgentRunStreamEventBase {
|
|
283
|
+
const common = {
|
|
284
|
+
schemaVersion: AGENT_RUN_STREAM_SCHEMA_VERSION,
|
|
285
|
+
projectId: run.projectId,
|
|
286
|
+
runId: run.id,
|
|
287
|
+
attempt: run.attempt,
|
|
267
288
|
occurredAt: occurredAt.toISOString(),
|
|
268
289
|
}
|
|
290
|
+
return run.kind === "conversation"
|
|
291
|
+
? { ...common, threadId: run.threadId }
|
|
292
|
+
: { ...common, parentRunId: run.parentRunId }
|
|
269
293
|
}
|
|
270
294
|
|
|
271
295
|
/** Validate an Agent stream payload using the same contract its producers use. */
|
|
@@ -275,8 +299,6 @@ export function isAgentRunStreamEvent(value: unknown): value is AgentRunStreamEv
|
|
|
275
299
|
value.schemaVersion !== AGENT_RUN_STREAM_SCHEMA_VERSION ||
|
|
276
300
|
typeof value.projectId !== "string" ||
|
|
277
301
|
typeof value.runId !== "string" ||
|
|
278
|
-
typeof value.threadId !== "string" ||
|
|
279
|
-
typeof value.agentId !== "string" ||
|
|
280
302
|
typeof value.attempt !== "number" ||
|
|
281
303
|
!Number.isFinite(value.attempt) ||
|
|
282
304
|
typeof value.occurredAt !== "string" ||
|
|
@@ -284,6 +306,10 @@ export function isAgentRunStreamEvent(value: unknown): value is AgentRunStreamEv
|
|
|
284
306
|
) {
|
|
285
307
|
return false
|
|
286
308
|
}
|
|
309
|
+
const hasConversationLineage =
|
|
310
|
+
typeof value.threadId === "string" && value.parentRunId === undefined
|
|
311
|
+
const hasSubagentLineage = typeof value.parentRunId === "string" && value.threadId === undefined
|
|
312
|
+
if (!hasConversationLineage && !hasSubagentLineage) return false
|
|
287
313
|
|
|
288
314
|
switch (value.type) {
|
|
289
315
|
case "agent.run.started":
|
|
@@ -393,5 +419,5 @@ export async function publishAgentRunFinished(broker: Broker, run: AgentRunRecor
|
|
|
393
419
|
},
|
|
394
420
|
],
|
|
395
421
|
})
|
|
396
|
-
await publishAgentRunActivity(broker, run)
|
|
422
|
+
if (run.kind === "conversation") await publishAgentRunActivity(broker, run)
|
|
397
423
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { toolsFromProjectConfig } from "./tool-definition"
|
|
2
|
+
import type { AgentToolDefinition } from "./types"
|
|
3
|
+
|
|
4
|
+
/** Immutable catalog of project tools registered with a Sixb host. */
|
|
5
|
+
export interface AgentToolCatalog {
|
|
6
|
+
list(): readonly AgentToolDefinition[]
|
|
7
|
+
getByName(name: string): AgentToolDefinition | null
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Validate, normalize, and index the tools supplied through `createSixb({ tools })`. */
|
|
11
|
+
export function createAgentToolCatalog(
|
|
12
|
+
definitions: readonly AgentToolDefinition[] | undefined
|
|
13
|
+
): AgentToolCatalog {
|
|
14
|
+
const tools = toolsFromProjectConfig(definitions)
|
|
15
|
+
const toolsByName = new Map(tools.map((tool) => [tool.name, tool]))
|
|
16
|
+
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
list: () => tools,
|
|
19
|
+
getByName: (name: string) => toolsByName.get(name) ?? null,
|
|
20
|
+
})
|
|
21
|
+
}
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
assertValidAgentToolDefinitions,
|
|
17
17
|
assertValidAgentToolDescription,
|
|
18
18
|
assertValidAgentToolName,
|
|
19
|
+
assertValidProjectAgentToolDefinitions,
|
|
19
20
|
validateAndSnapshotAgentToolInput,
|
|
20
21
|
} from "./validation"
|
|
21
22
|
|
|
@@ -87,6 +88,28 @@ export function toolsFromDefinitions(
|
|
|
87
88
|
|
|
88
89
|
assertValidAgentToolDefinitions(agentId, tools)
|
|
89
90
|
|
|
91
|
+
return normalizeAgentToolDefinitions(tools)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export function toolsFromProjectConfig(
|
|
95
|
+
tools: readonly AgentToolDefinition[] | undefined
|
|
96
|
+
): readonly AgentToolDefinition[] {
|
|
97
|
+
if (tools === undefined) {
|
|
98
|
+
return EMPTY_AGENT_TOOLS
|
|
99
|
+
}
|
|
100
|
+
if (!Array.isArray(tools)) {
|
|
101
|
+
throw new AgentDefinitionError(
|
|
102
|
+
"[Sixb] Project tools must be an array of agent tool definitions."
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
assertValidProjectAgentToolDefinitions(tools)
|
|
107
|
+
return normalizeAgentToolDefinitions(tools)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function normalizeAgentToolDefinitions(
|
|
111
|
+
tools: readonly AgentToolDefinition[]
|
|
112
|
+
): readonly AgentToolDefinition[] {
|
|
90
113
|
const normalized: AgentToolDefinition[] = []
|
|
91
114
|
for (const tool of tools) {
|
|
92
115
|
normalized.push(normalizeAgentToolDefinition(tool))
|