@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
|
@@ -15,6 +15,7 @@ import { restoreTrustedPrimitiveExecutionScope } from "../execution/durable"
|
|
|
15
15
|
import { createTestingScope } from "../execution/scopes"
|
|
16
16
|
import type { OntologyMaterializer } from "../materializer"
|
|
17
17
|
import {
|
|
18
|
+
createLinkScopeFingerprint,
|
|
18
19
|
createOntologyMaterializer,
|
|
19
20
|
type OntologyEditOperation,
|
|
20
21
|
ProjectionRegistry,
|
|
@@ -42,7 +43,7 @@ const Device = defineObjectType({
|
|
|
42
43
|
prop("name", "string", { required: true }),
|
|
43
44
|
prop("temperature", "double", { mode: "telemetry" }),
|
|
44
45
|
],
|
|
45
|
-
links: [link.self("parent", { cardinality: "one" })],
|
|
46
|
+
links: [link.self("parent", { cardinality: "one" }), link.self("peers", { cardinality: "many" })],
|
|
46
47
|
})
|
|
47
48
|
|
|
48
49
|
const devices = defineDataset("storage_contract_devices", {
|
|
@@ -55,6 +56,9 @@ const devices = defineDataset("storage_contract_devices", {
|
|
|
55
56
|
const readings = defineDataset("storage_contract_readings", {
|
|
56
57
|
schema: [col("device_id", "string"), col("at", "timestamp"), col("value", "float64")],
|
|
57
58
|
})
|
|
59
|
+
const devicePeers = defineDataset("storage_contract_device_peers", {
|
|
60
|
+
schema: [col("source_id", "string"), col("target_id", "string")],
|
|
61
|
+
})
|
|
58
62
|
const ConflictDevice = defineObjectType({
|
|
59
63
|
id: "StorageContractConflictDevice",
|
|
60
64
|
name: "Conflict device",
|
|
@@ -88,6 +92,10 @@ const temperatureProjection = defineProjection(
|
|
|
88
92
|
)
|
|
89
93
|
.fromDataset(readings)
|
|
90
94
|
.points({ objectId: "device_id", at: "at", value: "value" })
|
|
95
|
+
const devicePeersProjection = defineProjection("storage_contract_device_peers", Device.l.peers)
|
|
96
|
+
.fromDataset(devicePeers)
|
|
97
|
+
.sourceField("source_id")
|
|
98
|
+
.targetField("target_id")
|
|
91
99
|
const conflictDeviceProjection = defineProjection(
|
|
92
100
|
"storage_contract_conflict_devices",
|
|
93
101
|
ConflictDevice
|
|
@@ -98,11 +106,17 @@ const conflictDeviceProjection = defineProjection(
|
|
|
98
106
|
|
|
99
107
|
const ontology = new OntologyRegistry({ sources: [Device, ConflictDevice] })
|
|
100
108
|
const projections = new ProjectionRegistry({
|
|
101
|
-
projections: [
|
|
109
|
+
projections: [
|
|
110
|
+
deviceProjection,
|
|
111
|
+
temperatureProjection,
|
|
112
|
+
devicePeersProjection,
|
|
113
|
+
conflictDeviceProjection,
|
|
114
|
+
],
|
|
102
115
|
ontology,
|
|
103
116
|
datasetsById: new Map<string, DatasetDefinition>([
|
|
104
117
|
[devices.id, devices],
|
|
105
118
|
[readings.id, readings],
|
|
119
|
+
[devicePeers.id, devicePeers],
|
|
106
120
|
[conflictDevices.id, conflictDevices],
|
|
107
121
|
]),
|
|
108
122
|
})
|
|
@@ -561,6 +575,160 @@ export function runMaterializerStorageContractSuite<TStorage extends Storage>(
|
|
|
561
575
|
await provider.cleanup?.(createdStorage)
|
|
562
576
|
}
|
|
563
577
|
})
|
|
578
|
+
|
|
579
|
+
test(`${name} fences projected cardinality-many link scopes by fingerprint`, async () => {
|
|
580
|
+
const createdStorage = await provider.createStorage()
|
|
581
|
+
const storage = requireContractStorage(createdStorage)
|
|
582
|
+
let materializationOrdinal = 0
|
|
583
|
+
const materializer = createOntologyMaterializer({
|
|
584
|
+
projectId: "materializer-storage-contract",
|
|
585
|
+
ontology,
|
|
586
|
+
projections,
|
|
587
|
+
storage,
|
|
588
|
+
dependencies: {
|
|
589
|
+
batching: { sourceStageRows: 1, statePageRows: 1, planChunkRows: 1 },
|
|
590
|
+
clock: () => new Date("2026-02-01T12:00:00.000Z"),
|
|
591
|
+
materializationId: () => `many-scope-contract-candidate-${++materializationOrdinal}`,
|
|
592
|
+
},
|
|
593
|
+
})
|
|
594
|
+
const runtimeMaterializer = materializer.withScope(runtimeScope())
|
|
595
|
+
const source = { objectTypeId: Device.id, primaryId: "source" }
|
|
596
|
+
const peer = (primaryId: string) => ({ objectTypeId: Device.id, primaryId })
|
|
597
|
+
const linkRef = (targetId: string) => ({
|
|
598
|
+
source,
|
|
599
|
+
linkId: "peers",
|
|
600
|
+
target: peer(targetId),
|
|
601
|
+
})
|
|
602
|
+
|
|
603
|
+
try {
|
|
604
|
+
await runtimeMaterializer.edits.commit({
|
|
605
|
+
mode: "atomic",
|
|
606
|
+
source: { kind: "runtime", requestId: "many-scope-endpoints" },
|
|
607
|
+
operations: ["source", "peer-a", "peer-b", "peer-c"].map((primaryId) => ({
|
|
608
|
+
id: `create-${primaryId}`,
|
|
609
|
+
kind: "object.create" as const,
|
|
610
|
+
ref: peer(primaryId),
|
|
611
|
+
properties: { name: primaryId },
|
|
612
|
+
})),
|
|
613
|
+
expectedObjects: [],
|
|
614
|
+
expectedLinks: [],
|
|
615
|
+
expectedLinkScopes: [],
|
|
616
|
+
})
|
|
617
|
+
|
|
618
|
+
const datasetVersion = {
|
|
619
|
+
datasetId: devicePeers.id,
|
|
620
|
+
versionId: "many-links-v1",
|
|
621
|
+
createdAt: "2026-02-01T00:00:00.000Z",
|
|
622
|
+
}
|
|
623
|
+
const execution = await claim(storage, {
|
|
624
|
+
runId: "many-links-v1",
|
|
625
|
+
projectionId: devicePeersProjection.id,
|
|
626
|
+
protocol: "replacement",
|
|
627
|
+
datasetVersion,
|
|
628
|
+
})
|
|
629
|
+
const projectedLinks = [linkRef("peer-a"), linkRef("peer-b")]
|
|
630
|
+
await (
|
|
631
|
+
await projectionMaterializer(
|
|
632
|
+
materializer,
|
|
633
|
+
storage,
|
|
634
|
+
devicePeersProjection.id,
|
|
635
|
+
"many-links-v1"
|
|
636
|
+
)
|
|
637
|
+
).projections.replace({
|
|
638
|
+
source: { projectionId: devicePeersProjection.id },
|
|
639
|
+
datasetVersion,
|
|
640
|
+
execution,
|
|
641
|
+
entries: entries(
|
|
642
|
+
projectedLinks.map((ref) => ({
|
|
643
|
+
root: { kind: "link", ref },
|
|
644
|
+
assertions: [{ kind: "link", ref }],
|
|
645
|
+
}))
|
|
646
|
+
),
|
|
647
|
+
})
|
|
648
|
+
|
|
649
|
+
const observedLinks = await storage.objects.listLinks({
|
|
650
|
+
projectId: "materializer-storage-contract",
|
|
651
|
+
objectTypeId: Device.id,
|
|
652
|
+
objectId: source.primaryId,
|
|
653
|
+
linkId: "peers",
|
|
654
|
+
})
|
|
655
|
+
const fingerprint = createLinkScopeFingerprint(
|
|
656
|
+
observedLinks.map((row) => {
|
|
657
|
+
if (row.lastCommitId === undefined) {
|
|
658
|
+
throw new Error("Projected contract link is missing materializer provenance.")
|
|
659
|
+
}
|
|
660
|
+
return {
|
|
661
|
+
ref: linkRef(row.targetId),
|
|
662
|
+
createdAt: row.createdAt.toISOString(),
|
|
663
|
+
updatedAt: row.updatedAt.toISOString(),
|
|
664
|
+
lastCommitId: row.lastCommitId,
|
|
665
|
+
}
|
|
666
|
+
})
|
|
667
|
+
)
|
|
668
|
+
const commitObservation = async (runId: string, name: string) => {
|
|
669
|
+
await queueTestActionRun(storage, {
|
|
670
|
+
id: runId,
|
|
671
|
+
projectId: "materializer-storage-contract",
|
|
672
|
+
actionId: "observePeers",
|
|
673
|
+
subject: { kind: "object", objectTypeId: Device.id, primaryId: source.primaryId },
|
|
674
|
+
params: {},
|
|
675
|
+
idempotencyKey: runId,
|
|
676
|
+
})
|
|
677
|
+
await storage.actionRuns.start({ id: runId, projectId: "materializer-storage-contract" })
|
|
678
|
+
const actionMaterializer = await primitiveMaterializer(materializer, storage, {
|
|
679
|
+
kind: "action",
|
|
680
|
+
id: "observePeers",
|
|
681
|
+
runId,
|
|
682
|
+
})
|
|
683
|
+
return actionMaterializer.edits.commit({
|
|
684
|
+
mode: "atomic",
|
|
685
|
+
source: { kind: "action", actionId: "observePeers", runId },
|
|
686
|
+
operations: [
|
|
687
|
+
{
|
|
688
|
+
id: `record-${runId}`,
|
|
689
|
+
kind: "object.patch",
|
|
690
|
+
ref: source,
|
|
691
|
+
set: { name },
|
|
692
|
+
unset: [],
|
|
693
|
+
reset: [],
|
|
694
|
+
},
|
|
695
|
+
],
|
|
696
|
+
expectedObjects: [],
|
|
697
|
+
expectedLinks: [],
|
|
698
|
+
expectedLinkScopes: [{ source, linkId: "peers", fingerprint }],
|
|
699
|
+
})
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
// Regression guard for G-021: make begin() hydrate the expected scope through the
|
|
703
|
+
// cardinality-one slot reader again and this otherwise unrelated Action commit fails before
|
|
704
|
+
// its already-stable fingerprint can be compared.
|
|
705
|
+
await expect(commitObservation("many-scope-action", "observed peers")).resolves.toMatchObject(
|
|
706
|
+
{ kind: "edit", created: true }
|
|
707
|
+
)
|
|
708
|
+
|
|
709
|
+
await runtimeMaterializer.edits.commit({
|
|
710
|
+
mode: "atomic",
|
|
711
|
+
source: { kind: "runtime", requestId: "many-scope-change" },
|
|
712
|
+
operations: [{ id: "add-peer", kind: "link.upsert", ref: linkRef("peer-c") }],
|
|
713
|
+
expectedObjects: [],
|
|
714
|
+
expectedLinks: [],
|
|
715
|
+
expectedLinkScopes: [],
|
|
716
|
+
})
|
|
717
|
+
|
|
718
|
+
await expect(commitObservation("stale-many-scope-action", "must not commit")).rejects.toThrow(
|
|
719
|
+
"Expected link scope changed"
|
|
720
|
+
)
|
|
721
|
+
expect(
|
|
722
|
+
await storage.objects.getByPrimaryId({
|
|
723
|
+
projectId: "materializer-storage-contract",
|
|
724
|
+
objectTypeId: Device.id,
|
|
725
|
+
primaryId: source.primaryId,
|
|
726
|
+
})
|
|
727
|
+
).toMatchObject({ properties: { name: "observed peers" } })
|
|
728
|
+
} finally {
|
|
729
|
+
await provider.cleanup?.(createdStorage)
|
|
730
|
+
}
|
|
731
|
+
})
|
|
564
732
|
}
|
|
565
733
|
|
|
566
734
|
function runtimeScope() {
|
|
@@ -270,7 +270,7 @@ export function runQueueContractSuite(label: string, options: QueueContractSuite
|
|
|
270
270
|
})
|
|
271
271
|
})
|
|
272
272
|
|
|
273
|
-
test("keeps
|
|
273
|
+
test("keeps every worker lane independent", async () => {
|
|
274
274
|
await withQueues(async (queues) => {
|
|
275
275
|
await queues.syncRuns.enqueue({
|
|
276
276
|
projectId: "project-a",
|
|
@@ -309,6 +309,24 @@ export function runQueueContractSuite(label: string, options: QueueContractSuite
|
|
|
309
309
|
},
|
|
310
310
|
],
|
|
311
311
|
})
|
|
312
|
+
await queues.agents.enqueue({
|
|
313
|
+
projectId: "project-a",
|
|
314
|
+
jobs: [
|
|
315
|
+
{
|
|
316
|
+
type: "agent.run.requested",
|
|
317
|
+
payload: { runId: "agent-run-1" },
|
|
318
|
+
},
|
|
319
|
+
],
|
|
320
|
+
})
|
|
321
|
+
await queues.agentChildren.enqueue({
|
|
322
|
+
projectId: "project-a",
|
|
323
|
+
jobs: [
|
|
324
|
+
{
|
|
325
|
+
type: "agent.subagent-run.requested",
|
|
326
|
+
payload: { runId: "child-run-1" },
|
|
327
|
+
},
|
|
328
|
+
],
|
|
329
|
+
})
|
|
312
330
|
|
|
313
331
|
const crossLane = await queues.pipelines.claim({
|
|
314
332
|
projectId: "project-a",
|
|
@@ -330,6 +348,16 @@ export function runQueueContractSuite(label: string, options: QueueContractSuite
|
|
|
330
348
|
workerId: "action-worker-1",
|
|
331
349
|
limit: 10,
|
|
332
350
|
})
|
|
351
|
+
const agentLane = await queues.agents.claim({
|
|
352
|
+
projectId: "project-a",
|
|
353
|
+
workerId: "agent-worker-1",
|
|
354
|
+
limit: 10,
|
|
355
|
+
})
|
|
356
|
+
const childLane = await queues.agentChildren.claim({
|
|
357
|
+
projectId: "project-a",
|
|
358
|
+
workerId: "child-agent-worker-1",
|
|
359
|
+
limit: 10,
|
|
360
|
+
})
|
|
333
361
|
const sameLane = await queues.syncRuns.claim({
|
|
334
362
|
projectId: "project-a",
|
|
335
363
|
workerId: "sync-worker-1",
|
|
@@ -344,6 +372,13 @@ export function runQueueContractSuite(label: string, options: QueueContractSuite
|
|
|
344
372
|
expect(workflowLane[0]?.job.payload.runId).toBe("workflow-run-1")
|
|
345
373
|
expect(actionLane).toHaveLength(1)
|
|
346
374
|
expect(actionLane[0]?.job.payload.runId).toBe("act_1")
|
|
375
|
+
expect(agentLane).toHaveLength(1)
|
|
376
|
+
expect(agentLane[0]?.job).toMatchObject({
|
|
377
|
+
type: "agent.run.requested",
|
|
378
|
+
payload: { runId: "agent-run-1" },
|
|
379
|
+
})
|
|
380
|
+
expect(childLane).toHaveLength(1)
|
|
381
|
+
expect(childLane[0]?.job.payload.runId).toBe("child-run-1")
|
|
347
382
|
expect(sameLane).toHaveLength(1)
|
|
348
383
|
})
|
|
349
384
|
})
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import type { ActionDefinition } from "../actions"
|
|
2
2
|
import { isActionDefinition } from "../actions"
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
3
|
+
import { AGENT_REASONING_LEVELS, isAgentToolDefinition } from "../agents"
|
|
4
|
+
import { isModelReasoning } from "../models/language-model"
|
|
5
5
|
import type { SchemaOrRef } from "../ontology"
|
|
6
6
|
import type { ScheduleDefinition, ScheduleDefinitionForEvent } from "../schedules"
|
|
7
7
|
import { isScheduleDefinition } from "../schedules"
|
|
8
|
+
import { isGroupDefinition } from "../security"
|
|
8
9
|
import { WorkflowDefinitionError } from "./errors"
|
|
9
10
|
import type {
|
|
10
11
|
AgentStepBuilder,
|
|
11
12
|
AgentStepDefinition,
|
|
13
|
+
DefineAgentStepConfig,
|
|
12
14
|
InterventionBuilder,
|
|
13
15
|
InterventionDefaultsRuntimeHandler,
|
|
14
16
|
InterventionDefinition,
|
|
@@ -115,14 +117,25 @@ export function defineWorkflowStep<const TId extends string>(id: TId): StepBuild
|
|
|
115
117
|
} as unknown as StepBuilder<TId>
|
|
116
118
|
}
|
|
117
119
|
|
|
118
|
-
export function defineAgentStep<const TId extends string
|
|
120
|
+
export function defineAgentStep<const TId extends string>(
|
|
119
121
|
id: TId,
|
|
120
|
-
|
|
121
|
-
): AgentStepBuilder<TId
|
|
122
|
+
config: DefineAgentStepConfig
|
|
123
|
+
): AgentStepBuilder<TId> {
|
|
122
124
|
assertNonEmpty(id, "Agent step", "id")
|
|
123
|
-
if (!
|
|
124
|
-
throw new WorkflowDefinitionError(`Agent step "${id}"
|
|
125
|
+
if (!isRecord(config)) {
|
|
126
|
+
throw new WorkflowDefinitionError(`Agent step "${id}" config must be an object.`)
|
|
125
127
|
}
|
|
128
|
+
if (typeof config.instructions !== "string" || !config.instructions.trim()) {
|
|
129
|
+
throw new WorkflowDefinitionError(`Agent step "${id}" instructions must not be empty.`)
|
|
130
|
+
}
|
|
131
|
+
if (config.reasoning !== undefined && !isModelReasoning(config.reasoning)) {
|
|
132
|
+
throw new WorkflowDefinitionError(
|
|
133
|
+
`Agent step "${id}" reasoning must be one of: ${AGENT_REASONING_LEVELS.join(", ")}, or a nonnegative budgetTokens object.`
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
const { model, reasoning, instructions } = config
|
|
137
|
+
const groupIds = groupIdsFromAgentStepConfig(id, config)
|
|
138
|
+
const toolNames = toolNamesFromAgentStepConfig(id, config)
|
|
126
139
|
|
|
127
140
|
return {
|
|
128
141
|
input(input: RuntimeWorkflowInput): unknown {
|
|
@@ -133,13 +146,82 @@ export function defineAgentStep<const TId extends string, const TAgent extends A
|
|
|
133
146
|
if (typeof prompt !== "function") {
|
|
134
147
|
throw new WorkflowDefinitionError(`Agent step "${id}" prompt must be a function.`)
|
|
135
148
|
}
|
|
136
|
-
return {
|
|
149
|
+
return {
|
|
150
|
+
kind: "agentStep",
|
|
151
|
+
id,
|
|
152
|
+
...(model === undefined ? {} : { model }),
|
|
153
|
+
...(reasoning === undefined ? {} : { reasoning }),
|
|
154
|
+
instructions,
|
|
155
|
+
groupIds,
|
|
156
|
+
toolNames,
|
|
157
|
+
input,
|
|
158
|
+
output,
|
|
159
|
+
prompt,
|
|
160
|
+
}
|
|
137
161
|
},
|
|
138
162
|
}
|
|
139
163
|
},
|
|
140
164
|
}
|
|
141
165
|
},
|
|
142
|
-
} as unknown as AgentStepBuilder<TId
|
|
166
|
+
} as unknown as AgentStepBuilder<TId>
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function groupIdsFromAgentStepConfig(
|
|
170
|
+
stepId: string,
|
|
171
|
+
config: DefineAgentStepConfig
|
|
172
|
+
): readonly string[] {
|
|
173
|
+
if (config.groups !== undefined && !Array.isArray(config.groups)) {
|
|
174
|
+
throw new WorkflowDefinitionError(
|
|
175
|
+
`Agent step "${stepId}" groups must be an array of group definitions.`
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
const groupIds = Array.from(config.groups ?? [], (group) => {
|
|
179
|
+
if (!isGroupDefinition(group)) {
|
|
180
|
+
throw new WorkflowDefinitionError(
|
|
181
|
+
`Agent step "${stepId}" groups must contain only group definitions.`
|
|
182
|
+
)
|
|
183
|
+
}
|
|
184
|
+
return group.id
|
|
185
|
+
})
|
|
186
|
+
assertUniqueAgentStepValues(stepId, "group", groupIds)
|
|
187
|
+
return Object.freeze(groupIds)
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function toolNamesFromAgentStepConfig(
|
|
191
|
+
stepId: string,
|
|
192
|
+
config: DefineAgentStepConfig
|
|
193
|
+
): readonly string[] {
|
|
194
|
+
if (config.tools !== undefined && !Array.isArray(config.tools)) {
|
|
195
|
+
throw new WorkflowDefinitionError(
|
|
196
|
+
`Agent step "${stepId}" tools must be an array of agent tool definitions.`
|
|
197
|
+
)
|
|
198
|
+
}
|
|
199
|
+
const toolNames = Array.from(config.tools ?? [], (tool) => {
|
|
200
|
+
if (!isAgentToolDefinition(tool)) {
|
|
201
|
+
throw new WorkflowDefinitionError(
|
|
202
|
+
`Agent step "${stepId}" tools must contain only agent tool definitions.`
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
return tool.name
|
|
206
|
+
})
|
|
207
|
+
assertUniqueAgentStepValues(stepId, "tool", toolNames)
|
|
208
|
+
return Object.freeze(toolNames)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
function assertUniqueAgentStepValues(
|
|
212
|
+
stepId: string,
|
|
213
|
+
kind: "group" | "tool",
|
|
214
|
+
values: readonly string[]
|
|
215
|
+
): void {
|
|
216
|
+
const seen = new Set<string>()
|
|
217
|
+
for (const value of values) {
|
|
218
|
+
if (seen.has(value)) {
|
|
219
|
+
throw new WorkflowDefinitionError(
|
|
220
|
+
`Agent step "${stepId}" ${kind}s contains duplicate ${kind} '${value}'.`
|
|
221
|
+
)
|
|
222
|
+
}
|
|
223
|
+
seen.add(value)
|
|
224
|
+
}
|
|
143
225
|
}
|
|
144
226
|
|
|
145
227
|
export function defineIntervention<const TId extends string>(
|
|
@@ -469,3 +551,7 @@ function isRuntimeWorkflowMapper(value: unknown): value is RuntimeWorkflowMapper
|
|
|
469
551
|
function isRuntimeWorkflowScheduleMapper(value: unknown): value is RuntimeWorkflowScheduleMapper {
|
|
470
552
|
return typeof value === "function"
|
|
471
553
|
}
|
|
554
|
+
|
|
555
|
+
function isRecord(value: unknown): value is Readonly<Record<string, unknown>> {
|
|
556
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
557
|
+
}
|
|
@@ -61,7 +61,8 @@ export type ListWorkflowRunNodesInput = Omit<
|
|
|
61
61
|
>
|
|
62
62
|
|
|
63
63
|
/** Execution-facing Agent node view derived from its run row and model-call ledger. */
|
|
64
|
-
export interface WorkflowAgentNodeRunView
|
|
64
|
+
export interface WorkflowAgentNodeRunView
|
|
65
|
+
extends Omit<WorkflowAgentNodeRunRecord, "execution" | "actorId"> {
|
|
65
66
|
readonly usage?: AiModelCallUsage
|
|
66
67
|
/** Preferred valuation; omitted when there are no calls or cost storage is unavailable. */
|
|
67
68
|
readonly cost?: AiCostSummary
|
|
@@ -274,7 +275,6 @@ function toWorkflowAgentNodeRunView(
|
|
|
274
275
|
projectId: execution.projectId,
|
|
275
276
|
nodeRunId: execution.nodeRunId,
|
|
276
277
|
executionId: execution.executionId,
|
|
277
|
-
agentId: execution.agentId,
|
|
278
278
|
status: execution.status,
|
|
279
279
|
prompt: execution.prompt,
|
|
280
280
|
modelId: execution.modelId,
|
package/src/workflows/failure.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface WorkflowNodeFailureIdentity extends WorkflowNodeFailureIdentity
|
|
|
15
15
|
readonly actionId: string
|
|
16
16
|
readonly actionRunId?: string
|
|
17
17
|
}
|
|
18
|
-
| { readonly type: "agent"; readonly
|
|
18
|
+
| { readonly type: "agent"; readonly agentStepId: string }
|
|
19
19
|
| { readonly type: "intervention"; readonly interventionId: string }
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -56,7 +56,7 @@ function workflowNodeFailureDetails(identity: WorkflowNodeFailureIdentity) {
|
|
|
56
56
|
...(identity.child.actionRunId ? { actionRunId: identity.child.actionRunId } : {}),
|
|
57
57
|
}
|
|
58
58
|
case "agent":
|
|
59
|
-
return { ...base,
|
|
59
|
+
return { ...base, agentStepId: identity.child.agentStepId }
|
|
60
60
|
case "intervention":
|
|
61
61
|
return { ...base, interventionId: identity.child.interventionId }
|
|
62
62
|
}
|
package/src/workflows/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { workflowAgentStepActorId } from "./agent-step-identity"
|
|
1
2
|
export {
|
|
2
3
|
defineAgentStep,
|
|
3
4
|
defineIntervention,
|
|
@@ -39,6 +40,7 @@ export type {
|
|
|
39
40
|
AgentStepPrompt,
|
|
40
41
|
AgentStepPromptBuilder,
|
|
41
42
|
AgentStepPromptContext,
|
|
43
|
+
DefineAgentStepConfig,
|
|
42
44
|
DerivedWorkflowNodeKey,
|
|
43
45
|
InferAgentStepInput,
|
|
44
46
|
InferAgentStepOutput,
|
|
@@ -90,6 +92,7 @@ export {
|
|
|
90
92
|
isInterventionDefinition,
|
|
91
93
|
isStepDefinition,
|
|
92
94
|
isWorkflowDefinition,
|
|
95
|
+
validateWorkflowAgentStepGroupReferences,
|
|
93
96
|
validateWorkflowAgentStepInput,
|
|
94
97
|
validateWorkflowAgentStepOutput,
|
|
95
98
|
validateWorkflowDefinition,
|
package/src/workflows/types.ts
CHANGED
|
@@ -5,8 +5,8 @@ import type {
|
|
|
5
5
|
ObjectActionDefinition,
|
|
6
6
|
} from "../actions"
|
|
7
7
|
import type { ActionsRuntime } from "../actions/execution"
|
|
8
|
-
import type {
|
|
9
|
-
import type {
|
|
8
|
+
import type { AgentRuntime } from "../agents/execution"
|
|
9
|
+
import type { AgentReasoningLevel, AgentToolDefinition } from "../agents/types"
|
|
10
10
|
import type { Principal } from "../auth"
|
|
11
11
|
import type { BlobsRuntime } from "../blob-storage/execution"
|
|
12
12
|
import type { ConnectorRuntime } from "../connectors/execution"
|
|
@@ -15,6 +15,7 @@ import type { EventsRuntime } from "../events/execution"
|
|
|
15
15
|
import type { JsonValue } from "../json"
|
|
16
16
|
import type { Logger } from "../logging"
|
|
17
17
|
import type { LogsRuntime } from "../logging/execution"
|
|
18
|
+
import type { LanguageModel } from "../models/language-model"
|
|
18
19
|
import type { ObjectsRuntime } from "../objects/execution"
|
|
19
20
|
import type { InferSchemaOrRef, ObjectRef, OntologySource, SchemaOrRef } from "../ontology"
|
|
20
21
|
import type { PipelinesRuntime } from "../pipelines/execution"
|
|
@@ -22,6 +23,7 @@ import type { ProjectionsRuntime } from "../projections/execution"
|
|
|
22
23
|
import type { RulesRuntime } from "../rules/execution"
|
|
23
24
|
import type { ScheduleDefinition, ScheduleDefinitionForEvent } from "../schedules"
|
|
24
25
|
import type { SchedulesRuntime } from "../schedules/execution"
|
|
26
|
+
import type { GroupDefinition } from "../security"
|
|
25
27
|
import type { SyncsRuntime } from "../syncs/execution"
|
|
26
28
|
import type { WorkflowsRuntime } from "./execution"
|
|
27
29
|
|
|
@@ -60,7 +62,7 @@ export interface StepRunContext<TInput extends Record<string, unknown>> {
|
|
|
60
62
|
export interface WorkflowRuntimeFacade {
|
|
61
63
|
readonly objects: ObjectsRuntime<readonly OntologySource[]>
|
|
62
64
|
readonly actions: ActionsRuntime
|
|
63
|
-
readonly
|
|
65
|
+
readonly agent: AgentRuntime
|
|
64
66
|
readonly datasets: DatasetsRuntime
|
|
65
67
|
readonly workflows: WorkflowsRuntime
|
|
66
68
|
readonly syncs: SyncsRuntime
|
|
@@ -133,9 +135,18 @@ export type AgentStepPrompt<TInput extends Record<string, unknown>> = (
|
|
|
133
135
|
ctx: AgentStepPromptContext<TInput>
|
|
134
136
|
) => string | Promise<string>
|
|
135
137
|
|
|
138
|
+
/** Runtime configuration owned directly by a workflow Agent step. */
|
|
139
|
+
export interface DefineAgentStepConfig {
|
|
140
|
+
readonly model?: LanguageModel
|
|
141
|
+
readonly reasoning?: AgentReasoningLevel
|
|
142
|
+
readonly instructions: string
|
|
143
|
+
readonly groups?: readonly GroupDefinition[]
|
|
144
|
+
/** Project tools this workflow task may call. Defaults to none. */
|
|
145
|
+
readonly tools?: readonly AgentToolDefinition[]
|
|
146
|
+
}
|
|
147
|
+
|
|
136
148
|
export interface AgentStepDefinition<
|
|
137
149
|
TId extends string = string,
|
|
138
|
-
TAgent extends AgentDefinition = AgentDefinition,
|
|
139
150
|
TInput extends Record<string, unknown> = Record<string, unknown>,
|
|
140
151
|
TOutput extends Record<string, unknown> = Record<string, unknown>,
|
|
141
152
|
TInputValue extends Record<string, unknown> = Record<string, unknown>,
|
|
@@ -143,7 +154,11 @@ export interface AgentStepDefinition<
|
|
|
143
154
|
> {
|
|
144
155
|
readonly kind: "agentStep"
|
|
145
156
|
readonly id: TId
|
|
146
|
-
readonly
|
|
157
|
+
readonly model?: LanguageModel
|
|
158
|
+
readonly reasoning?: AgentReasoningLevel
|
|
159
|
+
readonly instructions: string
|
|
160
|
+
readonly groupIds: readonly string[]
|
|
161
|
+
readonly toolNames: readonly string[]
|
|
147
162
|
readonly input: TInput
|
|
148
163
|
readonly output: TOutput
|
|
149
164
|
readonly prompt: AgentStepPrompt<Record<string, unknown>>
|
|
@@ -153,7 +168,6 @@ export interface AgentStepDefinition<
|
|
|
153
168
|
|
|
154
169
|
export interface AgentStepPromptBuilder<
|
|
155
170
|
TId extends string,
|
|
156
|
-
TAgent extends AgentDefinition,
|
|
157
171
|
TInput extends Record<string, unknown>,
|
|
158
172
|
TOutput extends Record<string, unknown>,
|
|
159
173
|
> {
|
|
@@ -161,7 +175,6 @@ export interface AgentStepPromptBuilder<
|
|
|
161
175
|
prompt: AgentStepPrompt<InferSchemaOrRefRecord<TInput>>
|
|
162
176
|
): AgentStepDefinition<
|
|
163
177
|
TId,
|
|
164
|
-
TAgent,
|
|
165
178
|
TInput,
|
|
166
179
|
TOutput,
|
|
167
180
|
InferSchemaOrRefRecord<TInput>,
|
|
@@ -171,18 +184,17 @@ export interface AgentStepPromptBuilder<
|
|
|
171
184
|
|
|
172
185
|
export interface AgentStepOutputBuilder<
|
|
173
186
|
TId extends string,
|
|
174
|
-
TAgent extends AgentDefinition,
|
|
175
187
|
TInput extends Record<string, unknown>,
|
|
176
188
|
> {
|
|
177
189
|
output<const TOutput extends Record<string, unknown>>(
|
|
178
190
|
output: TOutput & SchemaOrRefInput<TOutput>
|
|
179
|
-
): AgentStepPromptBuilder<TId,
|
|
191
|
+
): AgentStepPromptBuilder<TId, TInput, TOutput>
|
|
180
192
|
}
|
|
181
193
|
|
|
182
|
-
export interface AgentStepBuilder<TId extends string
|
|
194
|
+
export interface AgentStepBuilder<TId extends string> {
|
|
183
195
|
input<const TInput extends Record<string, unknown>>(
|
|
184
196
|
input: TInput & SchemaOrRefInput<TInput>
|
|
185
|
-
): AgentStepOutputBuilder<TId,
|
|
197
|
+
): AgentStepOutputBuilder<TId, TInput>
|
|
186
198
|
}
|
|
187
199
|
|
|
188
200
|
export type InferAgentStepInput<TStep extends AgentStepDefinition> = TStep extends {
|