@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
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import type { AgentToolCatalog } from "../agents";
|
|
2
|
+
import type { ModelCatalog } from "../models";
|
|
1
3
|
import type { SchemaOrRef, ValueType } from "../ontology";
|
|
2
4
|
import type { ScheduleDefinition } from "../schedules";
|
|
5
|
+
import type { SecurityDefinitionCatalog } from "../security";
|
|
3
6
|
import type { AgentStepDefinition, InterventionDefinition, InterventionFieldConfig, StepDefinition, WorkflowDefinition } from "./types";
|
|
4
7
|
export declare function assertNonEmpty(value: string, subject: "Step" | "Agent step" | "Workflow" | "Intervention", field: string): void;
|
|
5
8
|
export declare function isStepDefinition(value: unknown): value is StepDefinition;
|
|
@@ -11,8 +14,11 @@ export declare function validateWorkflowsAtStartup(options: {
|
|
|
11
14
|
workflows: readonly WorkflowDefinition[];
|
|
12
15
|
registeredSchedules: ReadonlyMap<string, ScheduleDefinition>;
|
|
13
16
|
registeredActionIds: ReadonlySet<string>;
|
|
14
|
-
|
|
17
|
+
models?: ModelCatalog;
|
|
18
|
+
tools: AgentToolCatalog;
|
|
15
19
|
}): readonly WorkflowDefinition[];
|
|
20
|
+
/** Validate workflow task memberships once the security catalog has been composed. */
|
|
21
|
+
export declare function validateWorkflowAgentStepGroupReferences(workflows: readonly WorkflowDefinition[], security: SecurityDefinitionCatalog): void;
|
|
16
22
|
export declare function validateWorkflowInput(params: {
|
|
17
23
|
readonly workflow: WorkflowDefinition;
|
|
18
24
|
readonly value: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/workflows/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/workflows/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAE5D,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EAEvB,cAAc,EAGd,kBAAkB,EAKnB,MAAM,SAAS,CAAA;AAEhB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,EAC5D,KAAK,EAAE,MAAM,GACZ,IAAI,CAIN;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CASxE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAclF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CASxF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAShF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,kBAAkB,CA+B9F;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACxC,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC5D,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,EAAE,gBAAgB,CAAA;CACxB,GAAG,SAAS,kBAAkB,EAAE,CA0BhC;AAED,sFAAsF;AACtF,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,SAAS,kBAAkB,EAAE,EACxC,QAAQ,EAAE,yBAAyB,GAClC,IAAI,CAaN;AA6BD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACxD,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOpC;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACxD,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOpC;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACxD,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOpC;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACxD,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOpC;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACxD,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQpC;AAED,wBAAgB,2CAA2C,CAAC,MAAM,EAAE;IAClE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACxD,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQpC;AAqJD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACxD,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOpC;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACxD,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOpC;AAwLD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAE1F;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAE3E;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE3E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sixb/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "The ontology-first runtime for Sixb — objects, links, telemetry, actions, and provider contracts",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sixb",
|
|
@@ -137,6 +137,18 @@
|
|
|
137
137
|
"import": "./dist/storage/ai-cost/provider.js",
|
|
138
138
|
"default": "./dist/storage/ai-cost/provider.js"
|
|
139
139
|
},
|
|
140
|
+
"./internal/ai-limit-storage-provider": {
|
|
141
|
+
"types": "./dist/storage/ai-limits/provider.d.ts",
|
|
142
|
+
"bun": "./src/storage/ai-limits/provider.ts",
|
|
143
|
+
"import": "./dist/storage/ai-limits/provider.js",
|
|
144
|
+
"default": "./dist/storage/ai-limits/provider.js"
|
|
145
|
+
},
|
|
146
|
+
"./internal/ai-limit-enforcement": {
|
|
147
|
+
"types": "./dist/storage/ai-limits/enforcement.d.ts",
|
|
148
|
+
"bun": "./src/storage/ai-limits/enforcement.ts",
|
|
149
|
+
"import": "./dist/storage/ai-limits/enforcement.js",
|
|
150
|
+
"default": "./dist/storage/ai-limits/enforcement.js"
|
|
151
|
+
},
|
|
140
152
|
"./internal/auth": {
|
|
141
153
|
"types": "./dist/auth/index.d.ts",
|
|
142
154
|
"bun": "./src/auth/index.ts",
|
|
@@ -347,6 +359,12 @@
|
|
|
347
359
|
"import": "./dist/lake-storage/index.js",
|
|
348
360
|
"default": "./dist/lake-storage/index.js"
|
|
349
361
|
},
|
|
362
|
+
"./models": {
|
|
363
|
+
"types": "./dist/models/index.d.ts",
|
|
364
|
+
"bun": "./src/models/index.ts",
|
|
365
|
+
"import": "./dist/models/index.js",
|
|
366
|
+
"default": "./dist/models/index.js"
|
|
367
|
+
},
|
|
350
368
|
"./logging": {
|
|
351
369
|
"types": "./dist/logging/types.d.ts",
|
|
352
370
|
"bun": "./src/logging/types.ts",
|
|
@@ -397,9 +415,6 @@
|
|
|
397
415
|
"test:e2e": "bun ../../scripts/ci-guard.ts --stall 120 --max 600 bun test ./tests/published-artifacts.e2e.ts",
|
|
398
416
|
"prepack": "bun run build"
|
|
399
417
|
},
|
|
400
|
-
"dependencies": {
|
|
401
|
-
"@ai-sdk/provider": "^4.0.0"
|
|
402
|
-
},
|
|
403
418
|
"devDependencies": {
|
|
404
419
|
"@types/bun": "latest",
|
|
405
420
|
"typescript": "^5.7.0"
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReadonlyJsonValue } from "../../json"
|
|
1
2
|
import type { ObjectTypeWithPropertyTokens } from "../../ontology/tokens"
|
|
2
3
|
import type {
|
|
3
4
|
ActionEditsHandler,
|
|
@@ -13,6 +14,18 @@ import type {
|
|
|
13
14
|
} from "./handlers"
|
|
14
15
|
import type { ActionParamsConfig, InferActionParams } from "./params"
|
|
15
16
|
|
|
17
|
+
// Validate fields structurally so JSON-shaped interfaces do not need an index signature.
|
|
18
|
+
// Builders infer the original result first, then check it without widening via NoInfer.
|
|
19
|
+
type WritebackJsonValue<T> = T extends ReadonlyJsonValue
|
|
20
|
+
? T
|
|
21
|
+
: T extends (...args: never[]) => unknown
|
|
22
|
+
? never
|
|
23
|
+
: T extends object
|
|
24
|
+
? { [K in keyof T]: WritebackJsonValue<T[K]> }
|
|
25
|
+
: never
|
|
26
|
+
|
|
27
|
+
type WritebackResult<T> = T extends ReturnType<() => void> ? T : WritebackJsonValue<T>
|
|
28
|
+
|
|
16
29
|
export interface BaseActionDefinition<
|
|
17
30
|
TId extends string = string,
|
|
18
31
|
TParams extends ActionParamsConfig = ActionParamsConfig,
|
|
@@ -136,7 +149,11 @@ export interface GlobalActionPhaseBuilder<TId extends string, TParams extends Ac
|
|
|
136
149
|
validator: GlobalActionValidator<InferActionParams<TParams>>
|
|
137
150
|
): GlobalActionPhaseBuilder<TId, TParams>
|
|
138
151
|
writeback<const TResult>(
|
|
139
|
-
handler: GlobalActionWritebackHandler<InferActionParams<TParams>, TResult>
|
|
152
|
+
handler: GlobalActionWritebackHandler<InferActionParams<TParams>, TResult> &
|
|
153
|
+
GlobalActionWritebackHandler<
|
|
154
|
+
InferActionParams<TParams>,
|
|
155
|
+
WritebackResult<NoInfer<Awaited<TResult>>>
|
|
156
|
+
>
|
|
140
157
|
): GlobalActionAfterWritebackBuilder<TId, TParams, TResult>
|
|
141
158
|
edits<const TResult extends ActionNoResultHandlerResult>(
|
|
142
159
|
handler: GlobalActionEditsHandler<InferActionParams<TParams>, undefined, TResult>
|
|
@@ -152,7 +169,12 @@ export interface ObjectActionPhaseBuilder<
|
|
|
152
169
|
validator: ActionValidator<TObjectType, InferActionParams<TParams>>
|
|
153
170
|
): ObjectActionPhaseBuilder<TId, TObjectType, TParams>
|
|
154
171
|
writeback<const TResult>(
|
|
155
|
-
handler: ActionWritebackHandler<TObjectType, InferActionParams<TParams>, TResult>
|
|
172
|
+
handler: ActionWritebackHandler<TObjectType, InferActionParams<TParams>, TResult> &
|
|
173
|
+
ActionWritebackHandler<
|
|
174
|
+
TObjectType,
|
|
175
|
+
InferActionParams<TParams>,
|
|
176
|
+
WritebackResult<NoInfer<Awaited<TResult>>>
|
|
177
|
+
>
|
|
156
178
|
): ObjectActionAfterWritebackBuilder<TId, TObjectType, TParams, TResult>
|
|
157
179
|
edits<const TResult extends ActionNoResultHandlerResult>(
|
|
158
180
|
handler: ActionEditsHandler<TObjectType, InferActionParams<TParams>, undefined, TResult>
|
package/src/agents/adapters.ts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { type FileRef, isFileRef } from "../blob-storage"
|
|
2
2
|
import { getInvalidJsonValueReason, isPlainRecord, type JsonValue } from "../json"
|
|
3
|
+
import type {
|
|
4
|
+
ModelAssistantPart,
|
|
5
|
+
ModelFilePart,
|
|
6
|
+
ModelMessage,
|
|
7
|
+
ModelReasoningPart,
|
|
8
|
+
ModelTextPart,
|
|
9
|
+
ModelToolCallPart,
|
|
10
|
+
ModelToolOutput,
|
|
11
|
+
ModelToolResultPart,
|
|
12
|
+
ProviderData,
|
|
13
|
+
} from "../models"
|
|
3
14
|
import {
|
|
4
15
|
type AgentContextEntryInput,
|
|
5
16
|
type AgentContextInput,
|
|
@@ -8,25 +19,20 @@ import {
|
|
|
8
19
|
} from "./context"
|
|
9
20
|
import { serializeAgentContextForModel } from "./context-model"
|
|
10
21
|
import { AgentMessageAdapterError } from "./errors"
|
|
11
|
-
import type { AgentMessage, AgentMessagePart, AgentMessageRole
|
|
22
|
+
import type { AgentMessage, AgentMessagePart, AgentMessageRole } from "./message"
|
|
12
23
|
import { isAgentToolResult } from "./tool-result"
|
|
13
24
|
import type { AgentToolFileContent } from "./types"
|
|
14
25
|
|
|
15
26
|
// ── Inbound (write) — deliberately WIDE ────────────────────────────────────────────────────────
|
|
16
27
|
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
// structural supertype of the AI SDK's `UIMessage`, so a real SDK message can be passed without a
|
|
20
|
-
// cast (verified by a compat test in the consumer package, where `ai` lives — core stays SDK-free).
|
|
28
|
+
// The UI/storage boundary is intentionally permissive: any `{ type: string }` part is accepted at
|
|
29
|
+
// the type level and narrowed at runtime. Persisted messages remain strict and JSON-canonical.
|
|
21
30
|
|
|
22
31
|
export interface AgentInboundUiMessagePart {
|
|
23
32
|
readonly type: string
|
|
24
33
|
readonly text?: string
|
|
25
34
|
readonly state?: string
|
|
26
|
-
// Provider metadata stays
|
|
27
|
-
// types it as provider metadata (a nested record), which is not structurally a Sixb
|
|
28
|
-
// `JsonValue`, so constraining it would break the "real SDK message assigns without a cast"
|
|
29
|
-
// contract (locked by the consumer's compat test). `fromAiSdk` validates it to JSON at runtime.
|
|
35
|
+
// Provider metadata stays unknown until the persistence boundary validates it.
|
|
30
36
|
readonly providerMetadata?: unknown
|
|
31
37
|
readonly toolName?: string
|
|
32
38
|
readonly toolCallId?: string
|
|
@@ -39,6 +45,8 @@ export interface AgentInboundUiMessagePart {
|
|
|
39
45
|
readonly fileRef?: unknown
|
|
40
46
|
readonly context?: unknown
|
|
41
47
|
readonly origin?: unknown
|
|
48
|
+
readonly providerId?: string
|
|
49
|
+
readonly data?: unknown
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
export interface AgentInboundUiMessage {
|
|
@@ -48,12 +56,12 @@ export interface AgentInboundUiMessage {
|
|
|
48
56
|
readonly parts: readonly AgentInboundUiMessagePart[]
|
|
49
57
|
}
|
|
50
58
|
|
|
51
|
-
// ── Outbound (read)
|
|
59
|
+
// ── Outbound (read) ─────────────────────────────────────────────────────────────────────────────
|
|
52
60
|
|
|
53
61
|
interface AgentUiToolPartBody {
|
|
54
62
|
readonly toolCallId: string
|
|
55
63
|
readonly providerExecuted?: boolean
|
|
56
|
-
readonly callProviderMetadata?:
|
|
64
|
+
readonly callProviderMetadata?: ProviderData
|
|
57
65
|
}
|
|
58
66
|
|
|
59
67
|
export type AgentUiToolPart =
|
|
@@ -77,10 +85,11 @@ export type AgentUiToolPart =
|
|
|
77
85
|
))
|
|
78
86
|
|
|
79
87
|
export type AgentUiMessagePart =
|
|
80
|
-
| { readonly type: "text"; readonly text: string; readonly providerMetadata?:
|
|
81
|
-
| { readonly type: "reasoning"; readonly text: string; readonly providerMetadata?:
|
|
88
|
+
| { readonly type: "text"; readonly text: string; readonly providerMetadata?: ProviderData }
|
|
89
|
+
| { readonly type: "reasoning"; readonly text: string; readonly providerMetadata?: ProviderData }
|
|
82
90
|
| { readonly type: "step-start" }
|
|
83
|
-
| { readonly type: "file"; readonly fileRef: FileRef; readonly providerMetadata?:
|
|
91
|
+
| { readonly type: "file"; readonly fileRef: FileRef; readonly providerMetadata?: ProviderData }
|
|
92
|
+
| { readonly type: "provider-state"; readonly providerId: string; readonly data: JsonValue }
|
|
84
93
|
| {
|
|
85
94
|
readonly type: "context"
|
|
86
95
|
readonly context: AgentContextInput
|
|
@@ -95,59 +104,14 @@ export interface AgentUiMessage {
|
|
|
95
104
|
readonly parts: readonly AgentUiMessagePart[]
|
|
96
105
|
}
|
|
97
106
|
|
|
98
|
-
export type AgentModelToolOutput =
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
export
|
|
105
|
-
|
|
106
|
-
readonly text: string
|
|
107
|
-
readonly providerOptions?: JsonValue
|
|
108
|
-
}
|
|
109
|
-
export interface AgentModelFilePart {
|
|
110
|
-
readonly type: "file"
|
|
111
|
-
readonly data: URL
|
|
112
|
-
readonly filename?: string
|
|
113
|
-
readonly mediaType: string
|
|
114
|
-
readonly providerOptions?: JsonValue
|
|
115
|
-
}
|
|
116
|
-
export interface AgentModelReasoningPart {
|
|
117
|
-
readonly type: "reasoning"
|
|
118
|
-
readonly text: string
|
|
119
|
-
readonly providerOptions?: JsonValue
|
|
120
|
-
}
|
|
121
|
-
export interface AgentModelToolCallPart {
|
|
122
|
-
readonly type: "tool-call"
|
|
123
|
-
readonly toolCallId: string
|
|
124
|
-
readonly toolName: string
|
|
125
|
-
readonly input: JsonValue
|
|
126
|
-
readonly providerExecuted?: boolean
|
|
127
|
-
readonly providerOptions?: JsonValue
|
|
128
|
-
}
|
|
129
|
-
export interface AgentModelToolResultPart {
|
|
130
|
-
readonly type: "tool-result"
|
|
131
|
-
readonly toolCallId: string
|
|
132
|
-
readonly toolName: string
|
|
133
|
-
readonly output: AgentModelToolOutput
|
|
134
|
-
readonly providerOptions?: JsonValue
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export type AgentModelAssistantPart =
|
|
138
|
-
| AgentModelTextPart
|
|
139
|
-
| AgentModelReasoningPart
|
|
140
|
-
| AgentModelToolCallPart
|
|
141
|
-
| AgentModelToolResultPart
|
|
142
|
-
|
|
143
|
-
export type AgentModelMessage =
|
|
144
|
-
| { readonly role: "system"; readonly content: string; readonly providerOptions?: JsonValue }
|
|
145
|
-
| {
|
|
146
|
-
readonly role: "user"
|
|
147
|
-
readonly content: readonly (AgentModelTextPart | AgentModelFilePart)[]
|
|
148
|
-
}
|
|
149
|
-
| { readonly role: "assistant"; readonly content: readonly AgentModelAssistantPart[] }
|
|
150
|
-
| { readonly role: "tool"; readonly content: readonly AgentModelToolResultPart[] }
|
|
107
|
+
export type AgentModelToolOutput = ModelToolOutput
|
|
108
|
+
export type AgentModelTextPart = ModelTextPart
|
|
109
|
+
export type AgentModelFilePart = ModelFilePart
|
|
110
|
+
export type AgentModelReasoningPart = ModelReasoningPart
|
|
111
|
+
export type AgentModelToolCallPart = ModelToolCallPart
|
|
112
|
+
export type AgentModelToolResultPart = ModelToolResultPart
|
|
113
|
+
export type AgentModelAssistantPart = ModelAssistantPart
|
|
114
|
+
export type AgentModelMessage = ModelMessage
|
|
151
115
|
|
|
152
116
|
export interface AgentFileDataResolverInput<TMessage extends AgentMessage = AgentMessage> {
|
|
153
117
|
readonly message: TMessage
|
|
@@ -163,7 +127,7 @@ export interface AgentFileDataProjection {
|
|
|
163
127
|
|
|
164
128
|
export interface AgentToolResultFileResolverInput<TMessage extends AgentMessage = AgentMessage> {
|
|
165
129
|
readonly message: TMessage
|
|
166
|
-
readonly part:
|
|
130
|
+
readonly part: AgentToolCallPartResult
|
|
167
131
|
readonly partIndex: number
|
|
168
132
|
readonly contentPart: AgentToolFileContent
|
|
169
133
|
readonly contentIndex: number
|
|
@@ -215,14 +179,21 @@ function optionalJson(value: unknown, label: string): JsonValue | undefined {
|
|
|
215
179
|
return requireJson(omitUndefinedObjectProperties(value), label)
|
|
216
180
|
}
|
|
217
181
|
|
|
182
|
+
function optionalProviderData(value: unknown, label: string): ProviderData | undefined {
|
|
183
|
+
const json = optionalJson(value, label)
|
|
184
|
+
if (json === undefined) return undefined
|
|
185
|
+
assertAdapter(isPlainRecord(json), `agent message ${label} must be a provider-keyed JSON object`)
|
|
186
|
+
return json as ProviderData
|
|
187
|
+
}
|
|
188
|
+
|
|
218
189
|
/**
|
|
219
|
-
* Provider metadata is opaque
|
|
190
|
+
* Provider metadata is opaque provider-owned data that can contain optional object keys with
|
|
220
191
|
* `undefined` values. `undefined` is not JSON, but on an object property it means the same thing as
|
|
221
192
|
* "field absent", so omit those properties before validating/persisting the metadata.
|
|
222
193
|
*
|
|
223
194
|
* Keep the scope deliberately narrow: arrays, tool inputs/outputs, Dates, functions, bigint, cycles,
|
|
224
195
|
* and every other non-JSON shape are left for `requireJson` to accept or reject. This helper only
|
|
225
|
-
* turns `{ key: undefined }` into `{}` for
|
|
196
|
+
* turns `{ key: undefined }` into `{}` for compatibility with provider output.
|
|
226
197
|
*/
|
|
227
198
|
export function omitUndefinedObjectProperties(value: unknown): unknown {
|
|
228
199
|
return omitUndefinedObjectPropertiesInternal(value, new Set())
|
|
@@ -270,22 +241,22 @@ function toolNameFromInbound(part: AgentInboundUiMessagePart): string {
|
|
|
270
241
|
return name
|
|
271
242
|
}
|
|
272
243
|
|
|
273
|
-
// ──
|
|
244
|
+
// ── fromUiMessage (write) ─────────────────────────────────────────────────────────────────────
|
|
274
245
|
|
|
275
246
|
/**
|
|
276
|
-
* Convert
|
|
277
|
-
* {@link AgentMessageAdapterError} on any part kind, tool state, or text/reasoning state
|
|
278
|
-
* not model, and on a role outside `system | user | assistant`. Transient states are rejected
|
|
247
|
+
* Convert a UI message into a durable {@link AgentMessage}. Total: throws
|
|
248
|
+
* {@link AgentMessageAdapterError} on any part kind, tool state, or text/reasoning state the durable
|
|
249
|
+
* contract does not model, and on a role outside `system | user | assistant`. Transient states are rejected
|
|
279
250
|
* because messages are only ever persisted once a run has finished.
|
|
280
251
|
*/
|
|
281
|
-
export function
|
|
252
|
+
export function fromUiMessage(message: AgentInboundUiMessage): AgentMessage {
|
|
282
253
|
const { role } = message
|
|
283
254
|
assertAdapter(
|
|
284
255
|
role === "system" || role === "user" || role === "assistant",
|
|
285
256
|
`unsupported message role '${role}'`
|
|
286
257
|
)
|
|
287
258
|
|
|
288
|
-
const parts: AgentMessagePart[] = message.parts.map((part) =>
|
|
259
|
+
const parts: AgentMessagePart[] = message.parts.map((part) => fromUiMessagePart(part))
|
|
289
260
|
assertAdapter(
|
|
290
261
|
role === "user" || !parts.some((part) => part.type === "context"),
|
|
291
262
|
"context parts are only valid on user messages"
|
|
@@ -299,7 +270,7 @@ export function fromAiSdk(message: AgentInboundUiMessage): AgentMessage {
|
|
|
299
270
|
}
|
|
300
271
|
}
|
|
301
272
|
|
|
302
|
-
function
|
|
273
|
+
function fromUiMessagePart(part: AgentInboundUiMessagePart): AgentMessagePart {
|
|
303
274
|
switch (part.type) {
|
|
304
275
|
case "text":
|
|
305
276
|
case "reasoning": {
|
|
@@ -308,7 +279,10 @@ function fromAiSdkPart(part: AgentInboundUiMessagePart): AgentMessagePart {
|
|
|
308
279
|
part.state !== "streaming",
|
|
309
280
|
`cannot persist a streaming ${part.type} part; messages are written only once finalized`
|
|
310
281
|
)
|
|
311
|
-
const providerMetadata =
|
|
282
|
+
const providerMetadata = optionalProviderData(
|
|
283
|
+
part.providerMetadata,
|
|
284
|
+
`${part.type}.providerMetadata`
|
|
285
|
+
)
|
|
312
286
|
return {
|
|
313
287
|
type: part.type,
|
|
314
288
|
text: part.text,
|
|
@@ -319,7 +293,7 @@ function fromAiSdkPart(part: AgentInboundUiMessagePart): AgentMessagePart {
|
|
|
319
293
|
return { type: "step-start" }
|
|
320
294
|
case "file": {
|
|
321
295
|
assertAdapter(isFileRef(part.fileRef), "file part is missing a valid fileRef")
|
|
322
|
-
const providerMetadata =
|
|
296
|
+
const providerMetadata = optionalProviderData(part.providerMetadata, "file.providerMetadata")
|
|
323
297
|
return {
|
|
324
298
|
type: "file",
|
|
325
299
|
fileRef: part.fileRef,
|
|
@@ -328,12 +302,22 @@ function fromAiSdkPart(part: AgentInboundUiMessagePart): AgentMessagePart {
|
|
|
328
302
|
}
|
|
329
303
|
case "context":
|
|
330
304
|
return fromUiContextPart(part)
|
|
305
|
+
case "provider-state":
|
|
306
|
+
assertAdapter(
|
|
307
|
+
typeof part.providerId === "string" && part.providerId.length > 0,
|
|
308
|
+
"provider-state part is missing a provider id"
|
|
309
|
+
)
|
|
310
|
+
return {
|
|
311
|
+
type: "provider-state",
|
|
312
|
+
providerId: part.providerId,
|
|
313
|
+
data: requireJson(part.data, "provider-state data"),
|
|
314
|
+
}
|
|
331
315
|
default: {
|
|
332
316
|
assertAdapter(
|
|
333
317
|
isToolType(part.type),
|
|
334
318
|
`unsupported message part type '${part.type}'; extend the Sixb message part union to support it`
|
|
335
319
|
)
|
|
336
|
-
return
|
|
320
|
+
return fromUiToolPart(part)
|
|
337
321
|
}
|
|
338
322
|
}
|
|
339
323
|
}
|
|
@@ -351,7 +335,7 @@ function fromUiContextPart(part: AgentInboundUiMessagePart): AgentMessagePart {
|
|
|
351
335
|
}
|
|
352
336
|
}
|
|
353
337
|
|
|
354
|
-
function
|
|
338
|
+
function fromUiToolPart(part: AgentInboundUiMessagePart): AgentToolCallPartResult {
|
|
355
339
|
const dynamic = part.type === "dynamic-tool"
|
|
356
340
|
const toolName = toolNameFromInbound(part)
|
|
357
341
|
assertAdapter(
|
|
@@ -365,7 +349,10 @@ function fromAiSdkToolPart(part: AgentInboundUiMessagePart): AgentToolCallPart {
|
|
|
365
349
|
|
|
366
350
|
// For output-error the SDK input may be `undefined`; coerce to `null` to stay JSON-canonical.
|
|
367
351
|
const input = part.input === undefined ? null : requireJson(part.input, "tool input")
|
|
368
|
-
const providerMetadata =
|
|
352
|
+
const providerMetadata = optionalProviderData(
|
|
353
|
+
part.callProviderMetadata,
|
|
354
|
+
"tool callProviderMetadata"
|
|
355
|
+
)
|
|
369
356
|
|
|
370
357
|
const base = {
|
|
371
358
|
type: "tool-call" as const,
|
|
@@ -387,9 +374,11 @@ function fromAiSdkToolPart(part: AgentInboundUiMessagePart): AgentToolCallPart {
|
|
|
387
374
|
return { ...base, state: "output-error", errorText: part.errorText }
|
|
388
375
|
}
|
|
389
376
|
|
|
377
|
+
type AgentToolCallPartResult = Extract<AgentMessagePart, { type: "tool-call" }>
|
|
378
|
+
|
|
390
379
|
// ── toUiMessage (read) ────────────────────────────────────────────────────────────────────────
|
|
391
380
|
|
|
392
|
-
/** Reconstruct
|
|
381
|
+
/** Reconstruct a UI message from a stored message. Exact inverse of {@link fromUiMessage}. */
|
|
393
382
|
export function toUiMessage(message: AgentMessage): AgentUiMessage {
|
|
394
383
|
return {
|
|
395
384
|
role: message.role,
|
|
@@ -417,12 +406,18 @@ function toUiPart(part: AgentMessagePart): AgentUiMessagePart {
|
|
|
417
406
|
}
|
|
418
407
|
case "context":
|
|
419
408
|
return { type: "context", context: part.context, origin: part.origin }
|
|
409
|
+
case "provider-state":
|
|
410
|
+
return {
|
|
411
|
+
type: "provider-state",
|
|
412
|
+
providerId: part.providerId,
|
|
413
|
+
data: part.data,
|
|
414
|
+
}
|
|
420
415
|
case "tool-call":
|
|
421
416
|
return toUiToolPart(part)
|
|
422
417
|
}
|
|
423
418
|
}
|
|
424
419
|
|
|
425
|
-
function toUiToolPart(part:
|
|
420
|
+
function toUiToolPart(part: AgentToolCallPartResult): AgentUiToolPart {
|
|
426
421
|
const body = {
|
|
427
422
|
toolCallId: part.toolCallId,
|
|
428
423
|
...(part.providerExecuted === undefined ? {} : { providerExecuted: part.providerExecuted }),
|
|
@@ -442,12 +437,11 @@ function toUiToolPart(part: AgentToolCallPart): AgentUiToolPart {
|
|
|
442
437
|
// ── toModelMessages (read) ──────────────────────────────────────────────────────────────────────
|
|
443
438
|
|
|
444
439
|
/**
|
|
445
|
-
* Project messages into
|
|
446
|
-
* is hand-rolled to mirror `convertToModelMessages` (no `ai` import): assistant parts are grouped
|
|
440
|
+
* Project durable messages into Sixb model messages. Assistant parts are grouped
|
|
447
441
|
* into blocks at each `step-start`; each block yields one `assistant` message plus, for any
|
|
448
442
|
* non-provider-executed tool calls, one `tool` message. Provider-executed tool results stay inline
|
|
449
443
|
* in the assistant message. Without a tool registry, a string output maps to `text` and anything
|
|
450
|
-
* else to `json`; this is the documented
|
|
444
|
+
* else to `json`; this is the documented fidelity scope (a tool's custom `toModelOutput` is not
|
|
451
445
|
* reproduced).
|
|
452
446
|
*/
|
|
453
447
|
export function toModelMessages<TMessage extends AgentMessage>(
|
|
@@ -473,19 +467,17 @@ export function toModelMessages<TMessage extends AgentMessage>(
|
|
|
473
467
|
|
|
474
468
|
function systemModelMessage(message: AgentMessage): AgentModelMessage {
|
|
475
469
|
const textParts = message.parts.filter(isTextPart)
|
|
476
|
-
|
|
477
|
-
// a provider's prompt-cache directive) and forward it as providerOptions when non-empty.
|
|
478
|
-
const providerOptions = mergeProviderMetadata(textParts)
|
|
470
|
+
const providerData = mergeProviderMetadata(textParts)
|
|
479
471
|
return {
|
|
480
472
|
role: "system",
|
|
481
473
|
content: textParts.map((part) => part.text).join(""),
|
|
482
|
-
...(
|
|
474
|
+
...(providerData === undefined ? {} : { providerData }),
|
|
483
475
|
}
|
|
484
476
|
}
|
|
485
477
|
|
|
486
478
|
function mergeProviderMetadata(
|
|
487
479
|
parts: readonly Extract<AgentMessagePart, { type: "text" }>[]
|
|
488
|
-
):
|
|
480
|
+
): ProviderData | undefined {
|
|
489
481
|
let merged: Record<string, JsonValue> | undefined
|
|
490
482
|
for (const part of parts) {
|
|
491
483
|
const meta = part.providerMetadata
|
|
@@ -493,7 +485,7 @@ function mergeProviderMetadata(
|
|
|
493
485
|
merged = { ...(merged ?? {}), ...meta }
|
|
494
486
|
}
|
|
495
487
|
}
|
|
496
|
-
return merged
|
|
488
|
+
return merged as ProviderData | undefined
|
|
497
489
|
}
|
|
498
490
|
|
|
499
491
|
function userModelMessage<TMessage extends AgentMessage>(
|
|
@@ -512,7 +504,7 @@ function userModelMessage<TMessage extends AgentMessage>(
|
|
|
512
504
|
content.push({
|
|
513
505
|
type: "text",
|
|
514
506
|
text: part.text,
|
|
515
|
-
...(part.providerMetadata === undefined ? {} : {
|
|
507
|
+
...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
|
|
516
508
|
})
|
|
517
509
|
return
|
|
518
510
|
}
|
|
@@ -533,9 +525,7 @@ function userModelMessage<TMessage extends AgentMessage>(
|
|
|
533
525
|
: part.fileRef.fileName === undefined
|
|
534
526
|
? {}
|
|
535
527
|
: { filename: part.fileRef.fileName }),
|
|
536
|
-
...(part.providerMetadata === undefined
|
|
537
|
-
? {}
|
|
538
|
-
: { providerOptions: part.providerMetadata }),
|
|
528
|
+
...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
|
|
539
529
|
})
|
|
540
530
|
}
|
|
541
531
|
}
|
|
@@ -562,17 +552,13 @@ function appendAssistantModelMessages<TMessage extends AgentMessage>(
|
|
|
562
552
|
content.push({
|
|
563
553
|
type: "text",
|
|
564
554
|
text: part.text,
|
|
565
|
-
...(part.providerMetadata === undefined
|
|
566
|
-
? {}
|
|
567
|
-
: { providerOptions: part.providerMetadata }),
|
|
555
|
+
...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
|
|
568
556
|
})
|
|
569
557
|
} else if (part.type === "reasoning") {
|
|
570
558
|
content.push({
|
|
571
559
|
type: "reasoning",
|
|
572
560
|
text: part.text,
|
|
573
|
-
...(part.providerMetadata === undefined
|
|
574
|
-
? {}
|
|
575
|
-
: { providerOptions: part.providerMetadata }),
|
|
561
|
+
...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
|
|
576
562
|
})
|
|
577
563
|
} else if (part.type === "file") {
|
|
578
564
|
const fileContext = options.fileText?.({ message, part, partIndex })
|
|
@@ -584,6 +570,12 @@ function appendAssistantModelMessages<TMessage extends AgentMessage>(
|
|
|
584
570
|
if (part.providerExecuted === true) {
|
|
585
571
|
content.push(toolResultModelPart(message, part, partIndex, "json", options))
|
|
586
572
|
}
|
|
573
|
+
} else if (part.type === "provider-state") {
|
|
574
|
+
content.push({
|
|
575
|
+
type: "provider-state",
|
|
576
|
+
providerId: part.providerId,
|
|
577
|
+
data: part.data,
|
|
578
|
+
})
|
|
587
579
|
}
|
|
588
580
|
}
|
|
589
581
|
result.push({ role: "assistant", content })
|
|
@@ -608,36 +600,37 @@ function appendAssistantModelMessages<TMessage extends AgentMessage>(
|
|
|
608
600
|
flush()
|
|
609
601
|
}
|
|
610
602
|
|
|
611
|
-
function toolCallModelPart(part:
|
|
603
|
+
function toolCallModelPart(part: AgentToolCallPartResult): AgentModelToolCallPart {
|
|
612
604
|
return {
|
|
613
605
|
type: "tool-call",
|
|
614
606
|
toolCallId: part.toolCallId,
|
|
615
607
|
toolName: part.toolName,
|
|
616
608
|
input: part.input,
|
|
617
609
|
...(part.providerExecuted === undefined ? {} : { providerExecuted: part.providerExecuted }),
|
|
618
|
-
...(part.providerMetadata === undefined ? {} : {
|
|
610
|
+
...(part.providerMetadata === undefined ? {} : { providerData: part.providerMetadata }),
|
|
619
611
|
}
|
|
620
612
|
}
|
|
621
613
|
|
|
622
614
|
function toolResultModelPart<TMessage extends AgentMessage>(
|
|
623
615
|
message: TMessage,
|
|
624
|
-
part:
|
|
616
|
+
part: AgentToolCallPartResult,
|
|
625
617
|
partIndex: number,
|
|
626
618
|
errorMode: "text" | "json",
|
|
627
619
|
options: ToModelMessagesOptions<TMessage>
|
|
628
620
|
): AgentModelToolResultPart {
|
|
621
|
+
// Stored providerMetadata belongs to the call, not this synthesized result. Replaying it here
|
|
622
|
+
// can replace the result with the provider's original tool-call block.
|
|
629
623
|
return {
|
|
630
624
|
type: "tool-result",
|
|
631
625
|
toolCallId: part.toolCallId,
|
|
632
626
|
toolName: part.toolName,
|
|
633
627
|
output: toolResultOutput(message, part, partIndex, errorMode, options),
|
|
634
|
-
...(part.providerMetadata === undefined ? {} : { providerOptions: part.providerMetadata }),
|
|
635
628
|
}
|
|
636
629
|
}
|
|
637
630
|
|
|
638
631
|
function toolResultOutput<TMessage extends AgentMessage>(
|
|
639
632
|
message: TMessage,
|
|
640
|
-
part:
|
|
633
|
+
part: AgentToolCallPartResult,
|
|
641
634
|
partIndex: number,
|
|
642
635
|
errorMode: "text" | "json",
|
|
643
636
|
options: ToModelMessagesOptions<TMessage>
|
|
@@ -655,13 +648,14 @@ function toolResultOutput<TMessage extends AgentMessage>(
|
|
|
655
648
|
return
|
|
656
649
|
}
|
|
657
650
|
|
|
658
|
-
const
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
}
|
|
651
|
+
const fileContext = options.toolResultFileText?.({
|
|
652
|
+
message,
|
|
653
|
+
part,
|
|
654
|
+
partIndex,
|
|
655
|
+
contentPart,
|
|
656
|
+
contentIndex,
|
|
657
|
+
})
|
|
658
|
+
value.push(fileContext ?? toolResultFileFallbackText(contentPart))
|
|
665
659
|
})
|
|
666
660
|
return { type: "text", value: value.join("\n") }
|
|
667
661
|
}
|