@sixb/core 0.1.10 → 0.1.12
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/builders/params.d.ts +1 -22
- package/dist/actions/builders/params.d.ts.map +1 -1
- package/dist/actions/index.js +29 -28
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/types/params.d.ts +10 -44
- package/dist/actions/types/params.d.ts.map +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/actions/worker.js +3 -2
- package/dist/actions/worker.js.map +2 -2
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts +15 -9
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/ids.d.ts +2 -0
- package/dist/agents/ids.d.ts.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +48 -42
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/sandbox.d.ts +5 -0
- package/dist/agents/sandbox.d.ts.map +1 -0
- package/dist/agents/streams/index.js +4 -3
- package/dist/agents/streams/index.js.map +1 -1
- package/dist/agents/streams/internal.js +4 -3
- package/dist/agents/streams/internal.js.map +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/auth/index.js +8 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/index.js +5 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/blob-storage/types.d.ts +4 -1
- package/dist/blob-storage/types.d.ts.map +1 -1
- package/dist/bootstrap/index.js +50 -46
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/{chunk-17kfctj6.js → chunk-0mza4xb2.js} +2 -2
- package/dist/chunk-2c4j899j.js.map +1 -1
- package/dist/{chunk-g00bfdq6.js → chunk-2cxv584m.js} +12 -56
- package/dist/{chunk-g00bfdq6.js.map → chunk-2cxv584m.js.map} +3 -3
- package/dist/{chunk-e0d1rzef.js → chunk-2h63nrde.js} +380 -97
- package/dist/chunk-2h63nrde.js.map +20 -0
- package/dist/{chunk-rtk71jzp.js → chunk-3bnt2wna.js} +2 -2
- package/dist/{chunk-awbhdqyc.js → chunk-3ghw2t5q.js} +1 -1
- package/dist/{chunk-b19g04jk.js → chunk-3h7ctayx.js} +1 -1
- package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
- package/dist/{chunk-5hz0fnca.js → chunk-4k53sm9e.js} +6 -2
- package/dist/chunk-4k53sm9e.js.map +12 -0
- package/dist/chunk-4ph94nhd.js +81 -0
- package/dist/chunk-4ph94nhd.js.map +10 -0
- package/dist/chunk-58geavnf.js +29 -0
- package/dist/chunk-58geavnf.js.map +10 -0
- package/dist/{chunk-0y39rgsb.js → chunk-5tetw4hn.js} +1 -1
- package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
- package/dist/chunk-69266efg.js.map +12 -0
- package/dist/{chunk-g7knyczr.js → chunk-6ma8dvzc.js} +121 -53
- package/dist/chunk-6ma8dvzc.js.map +15 -0
- package/dist/{chunk-skz0hst3.js → chunk-7c2g3sz9.js} +6 -86
- package/dist/{chunk-skz0hst3.js.map → chunk-7c2g3sz9.js.map} +3 -3
- package/dist/{chunk-976rxdpx.js → chunk-7qnvhtcd.js} +93 -17
- package/dist/{chunk-976rxdpx.js.map → chunk-7qnvhtcd.js.map} +7 -6
- package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
- package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
- package/dist/chunk-91kcnbf0.js.map +10 -0
- package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
- package/dist/chunk-96yw3pwd.js.map +10 -0
- package/dist/chunk-98cw09sw.js.map +2 -2
- package/dist/{chunk-93csa55g.js → chunk-axndsymr.js} +10 -4
- package/dist/chunk-axndsymr.js.map +11 -0
- package/dist/{chunk-r7fj830t.js → chunk-b768c93y.js} +100 -29
- package/dist/chunk-b768c93y.js.map +36 -0
- package/dist/{chunk-dz5h08xv.js → chunk-bbaa1fet.js} +24 -9
- package/dist/{chunk-dz5h08xv.js.map → chunk-bbaa1fet.js.map} +4 -4
- package/dist/{chunk-7apz6hg4.js → chunk-bet1rb9h.js} +8 -4
- package/dist/chunk-bet1rb9h.js.map +10 -0
- package/dist/{chunk-358caqf5.js → chunk-bfjv1adk.js} +2 -2
- package/dist/{chunk-b0ec55a1.js → chunk-bg2bs62d.js} +5 -5
- package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
- package/dist/chunk-cd234ba4.js.map +14 -0
- package/dist/chunk-d62kjtbg.js.map +1 -1
- package/dist/chunk-dmn70ztd.js.map +2 -2
- package/dist/{chunk-28ja2cjs.js → chunk-e1f1sqba.js} +39 -53
- package/dist/{chunk-28ja2cjs.js.map → chunk-e1f1sqba.js.map} +5 -6
- package/dist/{chunk-ap0g1g74.js → chunk-eyjzgav0.js} +39 -4
- package/dist/chunk-eyjzgav0.js.map +12 -0
- package/dist/{chunk-rb1xx120.js → chunk-f06sf7rr.js} +9 -5
- package/dist/chunk-f06sf7rr.js.map +11 -0
- package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
- package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
- package/dist/{chunk-38zv5rkr.js → chunk-g2gezsg5.js} +1 -1
- package/dist/{chunk-38zv5rkr.js.map → chunk-g2gezsg5.js.map} +2 -2
- package/dist/{chunk-nmbxcaqx.js → chunk-g50nxqs5.js} +53 -66
- package/dist/chunk-g50nxqs5.js.map +18 -0
- package/dist/{chunk-1824gssz.js → chunk-gswwr35f.js} +4 -4
- package/dist/{chunk-92vk7gta.js → chunk-gzt6v1ja.js} +1 -1
- package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
- package/dist/chunk-hgqpcmyr.js.map +12 -0
- package/dist/{chunk-gqh45d2n.js → chunk-hkw8rykk.js} +2 -2
- package/dist/{chunk-f4w3yp4f.js → chunk-hzw7yv5g.js} +104 -21
- package/dist/chunk-hzw7yv5g.js.map +13 -0
- package/dist/{chunk-5c7ga8zz.js → chunk-jjwhy3rs.js} +5 -5
- package/dist/chunk-kept9cdd.js +29 -0
- package/dist/chunk-kept9cdd.js.map +10 -0
- package/dist/{chunk-ftv470j8.js → chunk-m7cx05vp.js} +247 -16
- package/dist/{chunk-ftv470j8.js.map → chunk-m7cx05vp.js.map} +14 -10
- package/dist/{chunk-qyeptdyv.js → chunk-mdnw7nj8.js} +10 -6
- package/dist/chunk-mdnw7nj8.js.map +15 -0
- package/dist/{chunk-5p1v802y.js → chunk-nzsy3xrp.js} +253 -86
- package/dist/chunk-nzsy3xrp.js.map +46 -0
- package/dist/chunk-p1683c0v.js +104 -0
- package/dist/chunk-p1683c0v.js.map +11 -0
- package/dist/chunk-p6r1ex7t.js +93 -0
- package/dist/chunk-p6r1ex7t.js.map +10 -0
- package/dist/{chunk-p5vcsw9c.js → chunk-qm535afa.js} +10 -10
- package/dist/{chunk-p5vcsw9c.js.map → chunk-qm535afa.js.map} +4 -4
- package/dist/chunk-r5zythxp.js +552 -0
- package/dist/chunk-r5zythxp.js.map +17 -0
- package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
- package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
- package/dist/{chunk-t1f4f1ve.js → chunk-sfypc7mk.js} +18 -13
- package/dist/{chunk-t1f4f1ve.js.map → chunk-sfypc7mk.js.map} +3 -3
- package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
- package/dist/chunk-t6f3tdnr.js.map +10 -0
- package/dist/{chunk-bn138h9w.js → chunk-t7dzd1tm.js} +3 -3
- package/dist/{chunk-pr2h4bv4.js → chunk-tg4g4zh0.js} +3 -3
- package/dist/chunk-vpxss818.js +56 -0
- package/dist/chunk-vpxss818.js.map +10 -0
- package/dist/{chunk-ms2tmn1k.js → chunk-vsg0g7h9.js} +53 -57
- package/dist/chunk-vsg0g7h9.js.map +17 -0
- package/dist/{chunk-8vj0rjgs.js → chunk-wjffn5m4.js} +1 -1
- package/dist/{chunk-nt99sxd6.js → chunk-x9tmx3fc.js} +18 -24
- package/dist/chunk-x9tmx3fc.js.map +14 -0
- package/dist/{chunk-agbbygvh.js → chunk-xn686q2e.js} +8 -8
- package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
- package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
- package/dist/{chunk-v2vcg0w6.js → chunk-xtfryrfb.js} +2 -2
- package/dist/chunk-y0v18c2j.js +363 -0
- package/dist/chunk-y0v18c2j.js.map +14 -0
- package/dist/{chunk-72w2pxk7.js → chunk-y1ahv8b7.js} +11 -3
- package/dist/{chunk-72w2pxk7.js.map → chunk-y1ahv8b7.js.map} +3 -3
- package/dist/chunk-y3ev53cq.js +84 -0
- package/dist/chunk-y3ev53cq.js.map +10 -0
- package/dist/{chunk-p6a4npdx.js → chunk-ybhz3j9g.js} +362 -60
- package/dist/chunk-ybhz3j9g.js.map +63 -0
- package/dist/{chunk-z30bv4ga.js → chunk-yxb4c62x.js} +3 -2
- package/dist/{chunk-z30bv4ga.js.map → chunk-yxb4c62x.js.map} +3 -3
- package/dist/chunk-z3y5kg1x.js +14 -0
- package/dist/chunk-z3y5kg1x.js.map +10 -0
- package/dist/connectors/connections/command-context.d.ts +2 -0
- package/dist/connectors/connections/command-context.d.ts.map +1 -1
- package/dist/connectors/connections/contracts.d.ts +1 -1
- package/dist/connectors/connections/contracts.d.ts.map +1 -1
- package/dist/connectors/connections/execution.d.ts +1 -0
- package/dist/connectors/connections/execution.d.ts.map +1 -1
- package/dist/connectors/connections/runs.d.ts +1 -0
- package/dist/connectors/connections/runs.d.ts.map +1 -1
- package/dist/connectors/connections/service.d.ts +2 -0
- package/dist/connectors/connections/service.d.ts.map +1 -1
- package/dist/datasets/validation.d.ts +4 -0
- package/dist/datasets/validation.d.ts.map +1 -1
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +5 -4
- package/dist/datasets/write.js.map +1 -1
- package/dist/error-reporting/capability.d.ts +3 -2
- package/dist/error-reporting/capability.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +5 -4
- package/dist/error-reporting/internal.js.map +1 -1
- package/dist/error-reporting/reports.d.ts +10 -0
- package/dist/error-reporting/reports.d.ts.map +1 -1
- package/dist/error-reporting/types.d.ts +10 -2
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +12 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/failure-message.d.ts +8 -0
- package/dist/errors/failure-message.d.ts.map +1 -0
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +3 -2
- package/dist/errors/internal.js.map +1 -1
- package/dist/events/index.js +5 -4
- package/dist/events/index.js.map +1 -1
- package/dist/events/outbox-dispatcher.d.ts +2 -2
- package/dist/events/outbox-dispatcher.d.ts.map +1 -1
- package/dist/execution/agent.js +44 -41
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +3 -0
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/kernel-operation.d.ts +4 -0
- package/dist/execution/kernel-operation.d.ts.map +1 -0
- package/dist/execution/primitive.js +44 -41
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.js +45 -42
- package/dist/execution/request.js.map +2 -2
- package/dist/execution/types.d.ts +6 -0
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/index.d.ts +15 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -59
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.js +5 -4
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/types.d.ts +2 -0
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/maintenance/types.d.ts +1 -1
- package/dist/maintenance/types.d.ts.map +1 -1
- package/dist/materialization/errors.d.ts +1 -1
- package/dist/materialization/errors.d.ts.map +1 -1
- package/dist/materialization/index.d.ts +1 -0
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +3 -3
- package/dist/materialization/model.d.ts +2 -0
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materialization/vectors.d.ts +19 -0
- package/dist/materialization/vectors.d.ts.map +1 -0
- package/dist/materializer/context.d.ts.map +1 -1
- package/dist/materializer/edits/commit.d.ts.map +1 -1
- package/dist/materializer/edits/vector-authority.d.ts +6 -0
- package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
- package/dist/materializer/edits/vectors.d.ts +6 -0
- package/dist/materializer/edits/vectors.d.ts.map +1 -0
- package/dist/materializer/effective/validate.d.ts.map +1 -1
- package/dist/materializer/effective/vector-indexing.d.ts +7 -0
- package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
- package/dist/materializer/effective/vectors.d.ts +6 -0
- package/dist/materializer/effective/vectors.d.ts.map +1 -0
- package/dist/materializer/execution/work-executor.d.ts +2 -1
- package/dist/materializer/execution/work-executor.d.ts.map +1 -1
- package/dist/materializer/index.js +26 -25
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/catalog-index.d.ts +15 -0
- package/dist/models/catalog-index.d.ts.map +1 -0
- package/dist/models/catalog.d.ts +27 -6
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/decision/catalog.d.ts +12 -0
- package/dist/models/decision/catalog.d.ts.map +1 -0
- package/dist/models/decision/errors.d.ts +7 -0
- package/dist/models/decision/errors.d.ts.map +1 -0
- package/dist/models/decision/output.d.ts +50 -0
- package/dist/models/decision/output.d.ts.map +1 -0
- package/dist/models/decision/questions.d.ts +14 -0
- package/dist/models/decision/questions.d.ts.map +1 -0
- package/dist/models/decision/runtime.d.ts +7 -0
- package/dist/models/decision/runtime.d.ts.map +1 -0
- package/dist/models/decision/types.d.ts +92 -0
- package/dist/models/decision/types.d.ts.map +1 -0
- package/dist/models/decision/validation.d.ts +7 -0
- package/dist/models/decision/validation.d.ts.map +1 -0
- package/dist/models/definitions.d.ts +8 -1
- package/dist/models/definitions.d.ts.map +1 -1
- package/dist/models/embedding-model.d.ts +60 -0
- package/dist/models/embedding-model.d.ts.map +1 -0
- package/dist/models/execution/binding.d.ts +2 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/embedding.d.ts +5 -0
- package/dist/models/execution/embedding.d.ts.map +1 -0
- package/dist/models/execution/index.js +29 -26
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +5 -1
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution/session.d.ts +21 -0
- package/dist/models/execution/session.d.ts.map +1 -0
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/generation-types.d.ts +2 -0
- package/dist/models/generation-types.d.ts.map +1 -1
- package/dist/models/index.d.ts +9 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +17 -7
- package/dist/models/index.js.map +1 -1
- package/dist/models/pricing.d.ts +3 -2
- package/dist/models/pricing.d.ts.map +1 -1
- package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +1 -0
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +29 -28
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/executor.d.ts +3 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.d.ts +2 -0
- package/dist/objects/query/index.d.ts.map +1 -1
- package/dist/objects/query/index.js +34 -24
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +6 -2
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/normalize.d.ts.map +1 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts +5 -0
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-executor.d.ts +2 -0
- package/dist/objects/sdk/query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/vectors/handle.d.ts +4 -0
- package/dist/objects/vectors/handle.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-batch.d.ts +6 -0
- package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-generate.d.ts +11 -0
- package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
- package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-shared.d.ts +17 -0
- package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-single.d.ts +4 -0
- package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
- package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
- package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
- package/dist/objects/vectors/indexing.d.ts +7 -0
- package/dist/objects/vectors/indexing.d.ts.map +1 -0
- package/dist/objects/vectors/profile.d.ts +13 -0
- package/dist/objects/vectors/profile.d.ts.map +1 -0
- package/dist/objects/vectors/query.d.ts +5 -0
- package/dist/objects/vectors/query.d.ts.map +1 -0
- package/dist/objects/vectors/resolve-query.d.ts +6 -0
- package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
- package/dist/objects/vectors/types.d.ts +11 -0
- package/dist/objects/vectors/types.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +2 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +5 -5
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/internal.js +5 -4
- package/dist/ontology/internal.js.map +1 -1
- package/dist/ontology/registry.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +8 -9
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/definition.d.ts +3 -0
- package/dist/ontology/validation/definition.d.ts.map +1 -0
- package/dist/ontology/validation/properties.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +1 -1
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/ontology/vector-profiles.d.ts +4 -0
- package/dist/ontology/vector-profiles.d.ts.map +1 -0
- package/dist/pipelines/index.js +28 -27
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +24 -23
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +2 -1
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +1 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +5 -0
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +4 -3
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +9 -6
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +3 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +47 -1
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +9 -4
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +15 -3
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/auth.d.ts +16 -0
- package/dist/sandboxes/auth.d.ts.map +1 -0
- package/dist/sandboxes/config.d.ts +5 -0
- package/dist/sandboxes/config.d.ts.map +1 -0
- package/dist/sandboxes/configuration.d.ts +41 -0
- package/dist/sandboxes/configuration.d.ts.map +1 -0
- package/dist/sandboxes/environment.d.ts +13 -0
- package/dist/sandboxes/environment.d.ts.map +1 -0
- package/dist/sandboxes/errors.d.ts +1 -1
- package/dist/sandboxes/errors.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +6 -1
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +16 -3
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +35 -3
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/shared/params/builders.d.ts +25 -0
- package/dist/shared/params/builders.d.ts.map +1 -0
- package/dist/shared/params/types.d.ts +47 -0
- package/dist/shared/params/types.d.ts.map +1 -0
- package/dist/shared/params/validation.d.ts +15 -0
- package/dist/shared/params/validation.d.ts.map +1 -0
- package/dist/shares/internal.js +23 -22
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +4 -3
- package/dist/storage/action-runs/failure.js.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/agents/in-memory.d.ts +2 -1
- 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 +5 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +8 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +49 -0
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-cost/analytics.d.ts +1 -0
- package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
- package/dist/storage/ai-cost/index.d.ts +1 -1
- package/dist/storage/ai-cost/index.d.ts.map +1 -1
- package/dist/storage/ai-cost/provider.js +2 -2
- package/dist/storage/ai-cost/types.d.ts +14 -2
- package/dist/storage/ai-cost/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +4 -3
- package/dist/storage/ai-limits/enforcement.js.map +1 -1
- package/dist/storage/connector-connections/in-memory.d.ts +1 -0
- package/dist/storage/connector-connections/in-memory.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider/connections.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider/runs.d.ts +1 -0
- package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider/shared.d.ts +1 -0
- package/dist/storage/connector-connections/provider/shared.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.d.ts +1 -0
- package/dist/storage/connector-connections/provider.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +12 -17
- package/dist/storage/connector-connections/provider.js.map +6 -6
- package/dist/storage/connector-connections/types.d.ts +3 -1
- package/dist/storage/connector-connections/types.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +3 -3
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +13 -11
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/types.d.ts +3 -0
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/index.d.ts +5 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +25 -22
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +2 -2
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
- package/dist/storage/objects/in-memory/storage.d.ts +7 -0
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
- package/dist/storage/objects/types.d.ts +2 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +1 -0
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/index.d.ts +4 -0
- package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
- package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
- package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
- package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
- package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
- package/dist/storage/ontology/index.d.ts +6 -0
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/outbox.d.ts +1 -0
- package/dist/storage/ontology/outbox.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +2 -2
- package/dist/storage/ontology/vector-indexing.d.ts +94 -0
- package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
- package/dist/storage/ontology/vectors.d.ts +56 -0
- package/dist/storage/ontology/vectors.d.ts.map +1 -0
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/provider.js +4 -3
- package/dist/storage/projection-runs/provider.js.map +1 -1
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +9 -7
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +29 -28
- package/dist/syncs/index.js.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/index.js +488 -81
- package/dist/testing/index.js.map +10 -10
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-query-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +24 -23
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +3 -2
- package/dist/workers/index.js.map +2 -2
- package/dist/workflows/failure.d.ts.map +1 -1
- package/dist/workflows/index.js +47 -43
- package/dist/workflows/index.js.map +1 -1
- package/package.json +1 -1
- package/src/actions/builders/params.ts +1 -48
- package/src/actions/types/params.ts +14 -74
- package/src/actions/validation.ts +7 -84
- package/src/agents/errors.ts +3 -0
- package/src/agents/execution.ts +67 -15
- package/src/agents/ids.ts +8 -0
- package/src/agents/index.ts +1 -0
- package/src/agents/model-loop.ts +7 -0
- package/src/agents/request.ts +11 -0
- package/src/agents/sandbox.ts +44 -0
- package/src/agents/validation.ts +2 -108
- package/src/blob-storage/types.ts +4 -1
- package/src/connectors/connections/command-context.ts +21 -4
- package/src/connectors/connections/contracts.ts +4 -1
- package/src/connectors/connections/execution.ts +3 -0
- package/src/connectors/connections/runs.ts +38 -1
- package/src/connectors/connections/service.ts +6 -0
- package/src/datasets/validation.ts +40 -11
- package/src/datasets/write.ts +8 -11
- package/src/error-reporting/capability.ts +11 -0
- package/src/error-reporting/reports.ts +23 -0
- package/src/error-reporting/types.ts +12 -1
- package/src/errors/catalog.ts +12 -0
- package/src/errors/failure-message.ts +15 -0
- package/src/errors/internal.ts +57 -25
- package/src/events/outbox-dispatcher.ts +20 -26
- package/src/execution/authorization.ts +12 -5
- package/src/execution/authorized-object-reader.ts +37 -2
- package/src/execution/kernel-operation.ts +27 -0
- package/src/execution/scopes.ts +2 -0
- package/src/execution/types.ts +4 -4
- package/src/index.ts +60 -1
- package/src/lake-storage/in-memory.ts +7 -3
- package/src/lake-storage/types.ts +2 -0
- package/src/maintenance/ontology-maintenance.ts +6 -2
- package/src/maintenance/types.ts +1 -1
- package/src/materialization/errors.ts +2 -2
- package/src/materialization/index.ts +1 -0
- package/src/materialization/model.ts +2 -0
- package/src/materialization/vectors.ts +18 -0
- package/src/materializer/README.md +15 -1
- package/src/materializer/context.ts +10 -0
- package/src/materializer/edits/commit.ts +8 -1
- package/src/materializer/edits/vector-authority.ts +108 -0
- package/src/materializer/edits/vectors.ts +100 -0
- package/src/materializer/effective/validate.ts +10 -3
- package/src/materializer/effective/vector-indexing.ts +84 -0
- package/src/materializer/effective/vectors.ts +47 -0
- package/src/materializer/execution/work-executor.ts +11 -3
- package/src/materializer/projections/replace.ts +1 -1
- package/src/materializer/shared/normalize.ts +11 -0
- package/src/materializer/telemetry/append.ts +1 -1
- package/src/models/catalog-index.ts +38 -0
- package/src/models/catalog.ts +66 -38
- package/src/models/decision/catalog.ts +32 -0
- package/src/models/decision/errors.ts +18 -0
- package/src/models/decision/output.ts +101 -0
- package/src/models/decision/questions.ts +29 -0
- package/src/models/decision/runtime.ts +188 -0
- package/src/models/decision/types.ts +109 -0
- package/src/models/decision/validation.ts +335 -0
- package/src/models/definitions.ts +20 -1
- package/src/models/embedding-model.ts +129 -0
- package/src/models/execution/README.md +63 -0
- package/src/models/execution/binding.ts +2 -0
- package/src/models/execution/embedding.ts +133 -0
- package/src/models/execution/model-call-recorder.ts +42 -30
- package/src/models/execution/session.ts +81 -0
- package/src/models/execution.ts +10 -52
- package/src/models/generation-types.ts +2 -0
- package/src/models/index.ts +37 -0
- package/src/models/pricing.ts +7 -4
- package/src/objects/authorized-ontology-view.ts +12 -8
- package/src/objects/execution.ts +2 -0
- package/src/objects/query/executor.ts +13 -4
- package/src/objects/query/explain.ts +7 -2
- package/src/objects/query/index.ts +2 -0
- package/src/objects/query/ir.ts +6 -2
- package/src/objects/query/normalize.ts +5 -1
- package/src/objects/query/validate.ts +74 -73
- package/src/objects/sdk/object-handle.ts +3 -0
- package/src/objects/sdk/object-set.ts +1 -0
- package/src/objects/sdk/query-builder.ts +9 -3
- package/src/objects/sdk/query-executor.ts +2 -1
- package/src/objects/sdk/runtime-query-executor.ts +6 -2
- package/src/objects/vectors/README.md +59 -0
- package/src/objects/vectors/handle.ts +91 -0
- package/src/objects/vectors/indexing-batch.ts +163 -0
- package/src/objects/vectors/indexing-generate.ts +184 -0
- package/src/objects/vectors/indexing-runtime.ts +17 -0
- package/src/objects/vectors/indexing-shared.ts +188 -0
- package/src/objects/vectors/indexing-single.ts +51 -0
- package/src/objects/vectors/indexing-store-batch.ts +62 -0
- package/src/objects/vectors/indexing.ts +23 -0
- package/src/objects/vectors/profile.ts +64 -0
- package/src/objects/vectors/query.ts +16 -0
- package/src/objects/vectors/resolve-query.ts +89 -0
- package/src/objects/vectors/types.ts +10 -0
- package/src/ontology/index.ts +2 -0
- package/src/ontology/registry.ts +8 -0
- package/src/ontology/types.ts +9 -9
- package/src/ontology/validation/definition.ts +104 -0
- package/src/ontology/validation/properties.ts +14 -4
- package/src/ontology/validation/query.ts +34 -51
- package/src/ontology/validation/schema.ts +85 -23
- package/src/ontology/vector-profiles.ts +35 -0
- package/src/queues/in-memory.ts +5 -0
- package/src/queues/index.ts +1 -0
- package/src/queues/types.ts +10 -0
- package/src/runtime/create.ts +7 -6
- package/src/runtime/host.ts +42 -6
- package/src/runtime/internal.ts +3 -0
- package/src/runtime/resolve-definitions.ts +19 -1
- package/src/runtime/sixb.ts +27 -9
- package/src/runtime/types.ts +16 -4
- package/src/sandboxes/README.md +41 -0
- package/src/sandboxes/auth.ts +17 -0
- package/src/sandboxes/config.ts +37 -0
- package/src/sandboxes/configuration.ts +268 -0
- package/src/sandboxes/environment.ts +107 -0
- package/src/sandboxes/errors.ts +1 -1
- package/src/sandboxes/index.ts +15 -0
- package/src/sandboxes/sandbox.ts +38 -3
- package/src/shared/params/builders.ts +50 -0
- package/src/shared/params/types.ts +84 -0
- package/src/shared/params/validation.ts +114 -0
- package/src/storage/agents/in-memory.ts +25 -1
- package/src/storage/agents/index.ts +3 -0
- package/src/storage/agents/provider.ts +105 -0
- package/src/storage/agents/types.ts +54 -0
- package/src/storage/ai-cost/analytics.ts +59 -21
- package/src/storage/ai-cost/index.ts +1 -0
- package/src/storage/ai-cost/types.ts +19 -2
- package/src/storage/connector-connections/in-memory.ts +16 -18
- package/src/storage/connector-connections/provider/connections.ts +1 -15
- package/src/storage/connector-connections/provider/runs.ts +6 -0
- package/src/storage/connector-connections/provider/shared.ts +2 -3
- package/src/storage/connector-connections/provider.ts +6 -0
- package/src/storage/connector-connections/types.ts +5 -1
- package/src/storage/executions/provider.ts +24 -12
- package/src/storage/executions/types.ts +1 -0
- package/src/storage/executions/validation.ts +7 -3
- package/src/storage/index.ts +15 -1
- package/src/storage/objects/in-memory/query.ts +25 -11
- package/src/storage/objects/in-memory/read-scope.ts +9 -2
- package/src/storage/objects/in-memory/read-source.ts +5 -0
- package/src/storage/objects/in-memory/selected-reader.ts +5 -1
- package/src/storage/objects/in-memory/storage.ts +19 -1
- package/src/storage/objects/types.ts +2 -0
- package/src/storage/ontology/commits.ts +1 -0
- package/src/storage/ontology/in-memory/index.ts +20 -0
- package/src/storage/ontology/in-memory/materializations.ts +13 -0
- package/src/storage/ontology/in-memory/shared-state.ts +19 -3
- package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
- package/src/storage/ontology/in-memory/vectors.ts +73 -0
- package/src/storage/ontology/index.ts +14 -0
- package/src/storage/ontology/outbox.ts +1 -0
- package/src/storage/ontology/vector-indexing.ts +98 -0
- package/src/storage/ontology/vectors.ts +48 -0
- package/src/storage/operation-scope.ts +1 -0
- package/src/storage/types.ts +3 -0
- package/src/testing/agent-storage-contract.ts +246 -0
- package/src/testing/ai-cost-storage-contract.ts +134 -0
- package/src/testing/connector-connection-storage-contract.ts +11 -11
- package/src/testing/lake-storage-contract.ts +29 -0
- package/src/testing/object-query-contract.ts +41 -25
- package/src/testing/object-read-scope-contract.ts +1 -5
- package/src/testing/ontology-storage-contract.ts +8 -3
- package/src/testing/queues-contract.ts +31 -0
- package/src/workflows/failure.ts +10 -4
- package/src/workflows/validation.ts +2 -2
- package/dist/chunk-5hz0fnca.js.map +0 -12
- package/dist/chunk-5p1v802y.js.map +0 -44
- package/dist/chunk-7apz6hg4.js.map +0 -10
- package/dist/chunk-7bs40fe1.js.map +0 -12
- package/dist/chunk-860dwwy0.js.map +0 -14
- package/dist/chunk-93csa55g.js.map +0 -11
- package/dist/chunk-aa6z4a19.js.map +0 -12
- package/dist/chunk-ap0g1g74.js.map +0 -11
- package/dist/chunk-e0d1rzef.js.map +0 -15
- package/dist/chunk-f0rwz2vh.js.map +0 -11
- package/dist/chunk-f4w3yp4f.js.map +0 -12
- package/dist/chunk-g7knyczr.js.map +0 -14
- package/dist/chunk-mrp7k0pw.js.map +0 -10
- package/dist/chunk-ms2tmn1k.js.map +0 -17
- package/dist/chunk-nmbxcaqx.js.map +0 -19
- package/dist/chunk-nt99sxd6.js.map +0 -14
- package/dist/chunk-p6a4npdx.js.map +0 -58
- package/dist/chunk-qyeptdyv.js.map +0 -15
- package/dist/chunk-r7fj830t.js.map +0 -36
- package/dist/chunk-rb1xx120.js.map +0 -11
- package/dist/chunk-yv79ncbv.js.map +0 -10
- package/dist/chunk-z3y411fq.js +0 -99
- package/dist/chunk-z3y411fq.js.map +0 -11
- /package/dist/{chunk-17kfctj6.js.map → chunk-0mza4xb2.js.map} +0 -0
- /package/dist/{chunk-rtk71jzp.js.map → chunk-3bnt2wna.js.map} +0 -0
- /package/dist/{chunk-awbhdqyc.js.map → chunk-3ghw2t5q.js.map} +0 -0
- /package/dist/{chunk-b19g04jk.js.map → chunk-3h7ctayx.js.map} +0 -0
- /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
- /package/dist/{chunk-0y39rgsb.js.map → chunk-5tetw4hn.js.map} +0 -0
- /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
- /package/dist/{chunk-358caqf5.js.map → chunk-bfjv1adk.js.map} +0 -0
- /package/dist/{chunk-b0ec55a1.js.map → chunk-bg2bs62d.js.map} +0 -0
- /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
- /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
- /package/dist/{chunk-1824gssz.js.map → chunk-gswwr35f.js.map} +0 -0
- /package/dist/{chunk-92vk7gta.js.map → chunk-gzt6v1ja.js.map} +0 -0
- /package/dist/{chunk-gqh45d2n.js.map → chunk-hkw8rykk.js.map} +0 -0
- /package/dist/{chunk-5c7ga8zz.js.map → chunk-jjwhy3rs.js.map} +0 -0
- /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
- /package/dist/{chunk-653vwrzr.js.map → chunk-rdghfsss.js.map} +0 -0
- /package/dist/{chunk-bn138h9w.js.map → chunk-t7dzd1tm.js.map} +0 -0
- /package/dist/{chunk-pr2h4bv4.js.map → chunk-tg4g4zh0.js.map} +0 -0
- /package/dist/{chunk-8vj0rjgs.js.map → chunk-wjffn5m4.js.map} +0 -0
- /package/dist/{chunk-agbbygvh.js.map → chunk-xn686q2e.js.map} +0 -0
- /package/dist/{chunk-v2vcg0w6.js.map → chunk-xtfryrfb.js.map} +0 -0
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
} from "./authorizations"
|
|
17
17
|
import {
|
|
18
18
|
assertConnectorConnectionRunInitiator,
|
|
19
|
+
isConnectorConnectionRunInitiator,
|
|
19
20
|
requireConnectorConnectionCommandActor,
|
|
20
21
|
} from "./command-context"
|
|
21
22
|
import type {
|
|
@@ -238,6 +239,42 @@ export class ConnectorConnectionRunService {
|
|
|
238
239
|
}
|
|
239
240
|
}
|
|
240
241
|
|
|
242
|
+
async listPending(
|
|
243
|
+
command: ConnectorConnectionCommandContext,
|
|
244
|
+
connectorId: string
|
|
245
|
+
): Promise<readonly ConnectorConnectionRunView[]> {
|
|
246
|
+
const actor = requireConnectorConnectionCommandActor(command.execution, this.projectId)
|
|
247
|
+
const candidates = await withConnectorStorageBoundary(
|
|
248
|
+
"Pending connector connection runs could not be read.",
|
|
249
|
+
() =>
|
|
250
|
+
this.connectionStorage.listPendingConnectionRuns({ projectId: this.projectId, connectorId })
|
|
251
|
+
)
|
|
252
|
+
const runs: ConnectorConnectionRunView[] = []
|
|
253
|
+
for (const candidate of candidates) {
|
|
254
|
+
const initiating = await withConnectorStorageBoundary(
|
|
255
|
+
"Connector connection run initiating execution could not be read.",
|
|
256
|
+
() =>
|
|
257
|
+
this.storage.executions.getById({
|
|
258
|
+
projectId: this.projectId,
|
|
259
|
+
id: candidate.initiatedByExecutionId,
|
|
260
|
+
})
|
|
261
|
+
)
|
|
262
|
+
if (!isConnectorConnectionRunInitiator(initiating, actor)) continue
|
|
263
|
+
// Re-read through the normal expiry/cleanup path before exposing accounts.
|
|
264
|
+
const run = await this.get(command, connectorId, candidate.id)
|
|
265
|
+
if (
|
|
266
|
+
run &&
|
|
267
|
+
(run.status === "running" ||
|
|
268
|
+
(run.status === "waiting" && run.waitingFor === "account_selection"))
|
|
269
|
+
)
|
|
270
|
+
runs.push(run)
|
|
271
|
+
}
|
|
272
|
+
return runs.sort(
|
|
273
|
+
(left, right) =>
|
|
274
|
+
right.createdAt.getTime() - left.createdAt.getTime() || left.id.localeCompare(right.id)
|
|
275
|
+
)
|
|
276
|
+
}
|
|
277
|
+
|
|
241
278
|
async get(
|
|
242
279
|
command: ConnectorConnectionCommandContext,
|
|
243
280
|
connectorId: string,
|
|
@@ -581,7 +618,6 @@ export class ConnectorConnectionRunService {
|
|
|
581
618
|
status: "waiting",
|
|
582
619
|
waitingFor: "account_selection",
|
|
583
620
|
accounts: authorization.accounts,
|
|
584
|
-
expiresAt: run.expiresAt,
|
|
585
621
|
}
|
|
586
622
|
}
|
|
587
623
|
if (run.status === "succeeded") {
|
|
@@ -645,6 +681,7 @@ export class ConnectorConnectionRunService {
|
|
|
645
681
|
: CLEANUP_RETRY_DELAY_MS
|
|
646
682
|
): void {
|
|
647
683
|
this.cancelRunMaintenance(run.id)
|
|
684
|
+
if (run.status === "waiting" && run.waitingFor === "account_selection") return
|
|
648
685
|
const timer = setTimeout(
|
|
649
686
|
() => void this.maintainRun(run.connectorId, run.id),
|
|
650
687
|
Math.min(delayMs, MAX_TIMER_DELAY_MS)
|
|
@@ -66,6 +66,7 @@ export interface ConnectorConnectionServiceOptions {
|
|
|
66
66
|
readonly storage?: Storage
|
|
67
67
|
readonly credentialProtector?: ConnectorCredentialProtector
|
|
68
68
|
readonly authorizationAttemptTtlMs?: number
|
|
69
|
+
/** @deprecated Selection no longer expires; retained for legacy storage metadata only. */
|
|
69
70
|
readonly accountSelectionTtlMs?: number
|
|
70
71
|
readonly credentialMutationLeaseMs?: number
|
|
71
72
|
readonly providerOperationTimeoutMs?: number
|
|
@@ -322,6 +323,11 @@ export class ConnectorConnectionService implements ConnectorConnectionProcess {
|
|
|
322
323
|
})
|
|
323
324
|
}
|
|
324
325
|
|
|
326
|
+
listPendingConnectionRuns(command: ConnectorConnectionCommandContext, connectorId: string) {
|
|
327
|
+
this.requireOAuthDefinition(connectorId)
|
|
328
|
+
return this.runs.listPending(command, connectorId)
|
|
329
|
+
}
|
|
330
|
+
|
|
325
331
|
getConnectionRun(
|
|
326
332
|
command: ConnectorConnectionCommandContext,
|
|
327
333
|
connectorId: string,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isFileRef } from "../blob-storage"
|
|
2
|
+
import { withFailureMessage } from "../errors/failure-message"
|
|
2
3
|
import { isJsonValue, isPlainRecord } from "../json"
|
|
3
4
|
import { isDecimalString } from "../ontology/decimal"
|
|
4
5
|
import { DatasetValidationError } from "./errors"
|
|
@@ -233,8 +234,17 @@ export function getDatasetRowValidationError(
|
|
|
233
234
|
dataset: DatasetDefinition,
|
|
234
235
|
options?: { readonly columns?: Iterable<string> }
|
|
235
236
|
): string | null {
|
|
237
|
+
return getDatasetRowValidationFailure(row, dataset, options)?.message ?? null
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/** Internal form retains a value-free explanation for the durable failure boundary. */
|
|
241
|
+
export function getDatasetRowValidationFailure(
|
|
242
|
+
row: unknown,
|
|
243
|
+
dataset: DatasetDefinition,
|
|
244
|
+
options?: { readonly columns?: Iterable<string> }
|
|
245
|
+
): Error | null {
|
|
236
246
|
if (!isPlainRecord(row)) {
|
|
237
|
-
return `Dataset '${dataset.id}' rows must be plain objects.`
|
|
247
|
+
return rowFailure(`Dataset '${dataset.id}' rows must be plain objects.`)
|
|
238
248
|
}
|
|
239
249
|
|
|
240
250
|
const columnsByName = new Map(
|
|
@@ -251,7 +261,7 @@ export function getDatasetRowValidationError(
|
|
|
251
261
|
continue
|
|
252
262
|
}
|
|
253
263
|
|
|
254
|
-
const error =
|
|
264
|
+
const error = getColumnValidationFailure(row, column, dataset)
|
|
255
265
|
if (error) {
|
|
256
266
|
return error
|
|
257
267
|
}
|
|
@@ -262,12 +272,15 @@ export function getDatasetRowValidationError(
|
|
|
262
272
|
|
|
263
273
|
for (const columnName of Object.keys(row)) {
|
|
264
274
|
if (!columnsByName.has(columnName)) {
|
|
265
|
-
return
|
|
275
|
+
return rowFailure(
|
|
276
|
+
`Dataset '${dataset.id}' row contains unknown column '${columnName}'.`,
|
|
277
|
+
`Dataset '${dataset.id}' row contains an undeclared column.`
|
|
278
|
+
)
|
|
266
279
|
}
|
|
267
280
|
}
|
|
268
281
|
|
|
269
282
|
for (const column of dataset.schema.columns) {
|
|
270
|
-
const error =
|
|
283
|
+
const error = getColumnValidationFailure(row, column, dataset)
|
|
271
284
|
if (error) {
|
|
272
285
|
return error
|
|
273
286
|
}
|
|
@@ -276,29 +289,37 @@ export function getDatasetRowValidationError(
|
|
|
276
289
|
return null
|
|
277
290
|
}
|
|
278
291
|
|
|
279
|
-
function
|
|
292
|
+
function getColumnValidationFailure(
|
|
280
293
|
row: Record<string, unknown>,
|
|
281
294
|
column: DatasetColumnDefinition,
|
|
282
295
|
dataset: DatasetDefinition
|
|
283
|
-
):
|
|
296
|
+
): Error | null {
|
|
284
297
|
const hasValue = Object.hasOwn(row, column.name)
|
|
285
298
|
const value = row[column.name]
|
|
286
299
|
if (column.name === dataset.sequenceBy) {
|
|
287
|
-
|
|
300
|
+
const message = getDatasetSequenceValidationError(dataset, value)
|
|
301
|
+
return message === null
|
|
302
|
+
? null
|
|
303
|
+
: rowFailure(
|
|
304
|
+
message,
|
|
305
|
+
`Dataset '${dataset.id}' sequence column '${column.name}' must contain a valid ${column.type} source sequence.`
|
|
306
|
+
)
|
|
288
307
|
}
|
|
289
308
|
|
|
290
309
|
// Treat `undefined` the same as an omitted field so callers either send a real
|
|
291
310
|
// value or use `null` explicitly on nullable columns.
|
|
292
311
|
if (!hasValue || value === undefined) {
|
|
293
312
|
if (!column.nullable) {
|
|
294
|
-
return `Dataset '${dataset.id}' row is missing required column '${column.name}'.`
|
|
313
|
+
return rowFailure(`Dataset '${dataset.id}' row is missing required column '${column.name}'.`)
|
|
295
314
|
}
|
|
296
315
|
return null
|
|
297
316
|
}
|
|
298
317
|
|
|
299
318
|
if (value === null) {
|
|
300
319
|
if (!column.nullable) {
|
|
301
|
-
return
|
|
320
|
+
return rowFailure(
|
|
321
|
+
`Dataset '${dataset.id}' column '${column.name}' does not allow null values.`
|
|
322
|
+
)
|
|
302
323
|
}
|
|
303
324
|
return null
|
|
304
325
|
}
|
|
@@ -307,13 +328,21 @@ function getColumnValidationError(
|
|
|
307
328
|
// Reject ambiguous or lossy values before staging, even when another column orders the row.
|
|
308
329
|
if (dataset.sequenceBy !== undefined && column.type === "timestamp") {
|
|
309
330
|
return parseDatasetTimestamp(value) === null
|
|
310
|
-
?
|
|
331
|
+
? rowFailure(
|
|
332
|
+
`Dataset '${dataset.id}' column '${column.name}' must be a valid Date or ISO timestamp with an explicit timezone and at most millisecond precision.`
|
|
333
|
+
)
|
|
311
334
|
: null
|
|
312
335
|
}
|
|
313
336
|
|
|
314
337
|
if (!matchesColumnType(value, column.type)) {
|
|
315
|
-
return
|
|
338
|
+
return rowFailure(
|
|
339
|
+
`Dataset '${dataset.id}' column '${column.name}' must match type '${column.type}'.`
|
|
340
|
+
)
|
|
316
341
|
}
|
|
317
342
|
|
|
318
343
|
return null
|
|
319
344
|
}
|
|
345
|
+
|
|
346
|
+
function rowFailure(message: string, publicMessage = message): Error {
|
|
347
|
+
return withFailureMessage(new DatasetValidationError(message), publicMessage)
|
|
348
|
+
}
|
package/src/datasets/write.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { BlobStorage, FileRef } from "../blob-storage"
|
|
2
2
|
import { isFileRef } from "../blob-storage"
|
|
3
|
-
import { isPlainRecord } from "../json"
|
|
4
3
|
import type { DatasetMergeCommitResult } from "../lake-storage/merge"
|
|
5
4
|
import { getDatasetMergeChangeValidationError } from "../lake-storage/merge-validation"
|
|
6
5
|
import type {
|
|
@@ -11,7 +10,7 @@ import type {
|
|
|
11
10
|
} from "../lake-storage/types"
|
|
12
11
|
import type { MergeChange } from "./changes"
|
|
13
12
|
import type { DatasetDefinition } from "./types"
|
|
14
|
-
import {
|
|
13
|
+
import { getDatasetRowValidationFailure } from "./validation"
|
|
15
14
|
|
|
16
15
|
export interface DatasetWriteValue {
|
|
17
16
|
readonly value: unknown
|
|
@@ -161,19 +160,17 @@ async function validateRow(
|
|
|
161
160
|
input: WriteDatasetInput,
|
|
162
161
|
itemIndex: number
|
|
163
162
|
): Promise<DatasetRow> {
|
|
164
|
-
|
|
165
|
-
throw new Error(
|
|
166
|
-
`${sourceLabel(input)} returned an invalid row at item ${itemIndex}. Dataset rows must be plain objects.`
|
|
167
|
-
)
|
|
168
|
-
}
|
|
169
|
-
const validationError = getDatasetRowValidationError(value, input.dataset)
|
|
163
|
+
const validationError = getDatasetRowValidationFailure(value, input.dataset)
|
|
170
164
|
if (validationError) {
|
|
171
165
|
throw new Error(
|
|
172
|
-
`${sourceLabel(input)} returned an invalid row at item ${itemIndex}. ${validationError}
|
|
166
|
+
`${sourceLabel(input)} returned an invalid row at item ${itemIndex}. ${validationError.message}`,
|
|
167
|
+
{ cause: validationError }
|
|
173
168
|
)
|
|
174
169
|
}
|
|
175
|
-
|
|
176
|
-
|
|
170
|
+
// The validator above establishes the row shape.
|
|
171
|
+
const row = value as DatasetRow
|
|
172
|
+
await verifyRowFileRefs(row, input, itemIndex)
|
|
173
|
+
return row
|
|
177
174
|
}
|
|
178
175
|
|
|
179
176
|
async function validateMergeChange(
|
|
@@ -4,10 +4,12 @@ import {
|
|
|
4
4
|
type ReportEventDeliveryFailureInput,
|
|
5
5
|
type ReportRuleEvaluationFailureInput,
|
|
6
6
|
type ReportRunFailureInput,
|
|
7
|
+
type ReportVectorIndexingFailureInput,
|
|
7
8
|
reportActionPhaseFailure as reportActionPhaseFailureWith,
|
|
8
9
|
reportEventDeliveryFailure as reportEventDeliveryFailureWith,
|
|
9
10
|
reportRuleEvaluationFailure as reportRuleEvaluationFailureWith,
|
|
10
11
|
reportRunFailure as reportRunFailureWith,
|
|
12
|
+
reportVectorIndexingFailure as reportVectorIndexingFailureWith,
|
|
11
13
|
} from "./reports"
|
|
12
14
|
import type { SixbErrorHandler } from "./types"
|
|
13
15
|
|
|
@@ -48,6 +50,7 @@ export type {
|
|
|
48
50
|
ReportEventDeliveryFailureInput,
|
|
49
51
|
ReportRuleEvaluationFailureInput,
|
|
50
52
|
ReportRunFailureInput,
|
|
53
|
+
ReportVectorIndexingFailureInput,
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
export function reportActionPhaseFailure(
|
|
@@ -85,3 +88,11 @@ export function reportRuleEvaluationFailure(
|
|
|
85
88
|
export async function flushSixbErrors(host: unknown, timeoutMs?: number): Promise<void> {
|
|
86
89
|
await resolveSixbErrorReporter(host).flush(timeoutMs)
|
|
87
90
|
}
|
|
91
|
+
|
|
92
|
+
export function reportVectorIndexingFailure(
|
|
93
|
+
host: object,
|
|
94
|
+
error: unknown,
|
|
95
|
+
input: ReportVectorIndexingFailureInput
|
|
96
|
+
): void {
|
|
97
|
+
reportVectorIndexingFailureWith(resolveSixbErrorReporter(host), error, input)
|
|
98
|
+
}
|
|
@@ -2,6 +2,7 @@ import { randomUUID } from "node:crypto"
|
|
|
2
2
|
import { captureSixbFailure } from "../errors/internal"
|
|
3
3
|
import type { SixbFailure } from "../errors/types"
|
|
4
4
|
import type { ActionRunFailure } from "../storage/action-runs"
|
|
5
|
+
import type { VectorIndexingFailureCode } from "../storage/ontology/vector-indexing"
|
|
5
6
|
import type { ErrorReporter } from "./reporter"
|
|
6
7
|
import type { SixbFailedRun } from "./types"
|
|
7
8
|
|
|
@@ -170,3 +171,25 @@ export function reportRuleEvaluationFailure(
|
|
|
170
171
|
...(input.subject === undefined ? {} : { subject: input.subject }),
|
|
171
172
|
})
|
|
172
173
|
}
|
|
174
|
+
|
|
175
|
+
export interface ReportVectorIndexingFailureInput {
|
|
176
|
+
readonly projectId: string
|
|
177
|
+
readonly indexingId: string
|
|
178
|
+
readonly failure: SixbFailure<VectorIndexingFailureCode>
|
|
179
|
+
readonly objectTypeId: string
|
|
180
|
+
readonly primaryId: string
|
|
181
|
+
readonly profile: string
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export function reportVectorIndexingFailure(
|
|
185
|
+
reporter: ErrorReporter,
|
|
186
|
+
error: unknown,
|
|
187
|
+
input: ReportVectorIndexingFailureInput
|
|
188
|
+
): void {
|
|
189
|
+
reporter.report(error, {
|
|
190
|
+
...input,
|
|
191
|
+
type: "vector.indexing.failed",
|
|
192
|
+
occurredAt: input.failure.at,
|
|
193
|
+
notificationId: `vector-indexing:${input.projectId}:${input.indexingId}`,
|
|
194
|
+
})
|
|
195
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SixbFailure } from "../errors/types"
|
|
2
2
|
import type { ActionRunFailure } from "../storage/action-runs"
|
|
3
3
|
import type { AgentRunFailureCode } from "../storage/agents"
|
|
4
|
+
import type { VectorIndexingFailureCode } from "../storage/ontology/vector-indexing"
|
|
4
5
|
import type { PipelineRunFailureCode } from "../storage/pipeline-runs"
|
|
5
6
|
import type { ProjectionRunFailureCode } from "../storage/projection-runs"
|
|
6
7
|
import type { SyncRunFailureCode } from "../storage/sync-runs"
|
|
@@ -166,12 +167,22 @@ export interface SixbRuleEvaluationFailedContext
|
|
|
166
167
|
readonly subject?: { readonly objectTypeId: string; readonly primaryId: string }
|
|
167
168
|
}
|
|
168
169
|
|
|
170
|
+
/** A terminal automatic-indexing failure, correlated with its persisted request and profile. */
|
|
171
|
+
export interface SixbVectorIndexingFailedContext
|
|
172
|
+
extends SixbFailureContext<"vector.indexing.failed"> {
|
|
173
|
+
readonly failure: SixbFailure<VectorIndexingFailureCode>
|
|
174
|
+
readonly indexingId: string
|
|
175
|
+
readonly objectTypeId: string
|
|
176
|
+
readonly primaryId: string
|
|
177
|
+
readonly profile: string
|
|
178
|
+
}
|
|
179
|
+
|
|
169
180
|
/**
|
|
170
181
|
* Context supplied to the global Sixb error handler, discriminated by `type`.
|
|
171
|
-
*
|
|
172
182
|
* Failure notifications never change the outcome of the operation they observe.
|
|
173
183
|
*/
|
|
174
184
|
export type SixbErrorContext =
|
|
185
|
+
| SixbVectorIndexingFailedContext
|
|
175
186
|
| SixbActionPhaseFailedContext
|
|
176
187
|
| SixbRunFailedContext
|
|
177
188
|
| SixbEventDeliveryFailedContext
|
package/src/errors/catalog.ts
CHANGED
|
@@ -130,6 +130,18 @@ export const SIXB_ERROR_DEFINITIONS = {
|
|
|
130
130
|
publicMessage: "Execution was cancelled.",
|
|
131
131
|
retryable: false,
|
|
132
132
|
},
|
|
133
|
+
"vector.model_unavailable": {
|
|
134
|
+
publicMessage: "The embedding model configured for this vector profile is unavailable.",
|
|
135
|
+
retryable: false,
|
|
136
|
+
},
|
|
137
|
+
"vector.response_invalid": {
|
|
138
|
+
publicMessage: "The embedding response is invalid for this vector profile.",
|
|
139
|
+
retryable: false,
|
|
140
|
+
},
|
|
141
|
+
"vector.outcome_unknown": {
|
|
142
|
+
publicMessage: "The embedding call was interrupted; its outcome and charges may be unknown.",
|
|
143
|
+
retryable: false,
|
|
144
|
+
},
|
|
133
145
|
"sync.execution_failed": {
|
|
134
146
|
publicMessage: "Sync execution failed.",
|
|
135
147
|
retryable: false,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const messages = new WeakMap<object, string>()
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Mark a framework-authored explanation for durable diagnostics. Use schema metadata and fixed
|
|
5
|
+
* text only, never exception messages, input values, provider payloads, or arbitrary object keys.
|
|
6
|
+
* Identity-based storage prevents an external error from opting in with a lookalike property.
|
|
7
|
+
*/
|
|
8
|
+
export function withFailureMessage<T extends Error>(error: T, message: string): T {
|
|
9
|
+
messages.set(error, message)
|
|
10
|
+
return error
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function failureMessage(error: object): string | undefined {
|
|
14
|
+
return messages.get(error)
|
|
15
|
+
}
|
package/src/errors/internal.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { cloneJsonValue, isJsonValue, isPlainRecord, type ReadonlyJsonValue } from "../json"
|
|
2
|
+
import { ActionRunFailedError } from "../objects/action/errors"
|
|
2
3
|
import { SIXB_ERROR_CODES, SIXB_ERROR_DEFINITIONS } from "./catalog"
|
|
4
|
+
import { failureMessage } from "./failure-message"
|
|
3
5
|
import { createFailureRedactor } from "./redaction"
|
|
4
6
|
import type { SixbErrorCode, SixbFailure } from "./types"
|
|
5
7
|
|
|
@@ -135,10 +137,15 @@ export function toSixbFailure(
|
|
|
135
137
|
const code = error.code
|
|
136
138
|
const redactor = createFailureRedactor()
|
|
137
139
|
const details = error.details === undefined ? undefined : redactor.context(error.details)
|
|
138
|
-
const { detail, truncated } = findFailureDetail(error, code)
|
|
140
|
+
const { detail, truncated, redacted } = findFailureDetail(error, code)
|
|
139
141
|
const summary = SIXB_ERROR_DEFINITIONS[code].publicMessage
|
|
142
|
+
const explanation = detail?.message ?? summary
|
|
140
143
|
const message = truncateUtf8(
|
|
141
|
-
redactor.text(
|
|
144
|
+
redactor.text(
|
|
145
|
+
explanation === summary || explanation.startsWith(`${summary} `)
|
|
146
|
+
? explanation
|
|
147
|
+
: `${summary} ${explanation}`
|
|
148
|
+
),
|
|
142
149
|
SIXB_FAILURE_MAX_MESSAGE_BYTES
|
|
143
150
|
)
|
|
144
151
|
const failure: SixbFailure = {
|
|
@@ -148,7 +155,7 @@ export function toSixbFailure(
|
|
|
148
155
|
at: failureTimestamp(options.at),
|
|
149
156
|
...(details === undefined ? {} : { details: cloneJsonValue(details, "Sixb failure details") }),
|
|
150
157
|
...(detail?.httpStatus === undefined ? {} : { httpStatus: detail.httpStatus }),
|
|
151
|
-
...(redactor.redacted ? { redacted: true } : {}),
|
|
158
|
+
...(redactor.redacted || redacted ? { redacted: true } : {}),
|
|
152
159
|
...(message.truncated || truncated || redactor.truncated ? { truncated: true } : {}),
|
|
153
160
|
}
|
|
154
161
|
|
|
@@ -177,47 +184,72 @@ function isHttpStatus(value: unknown): value is number {
|
|
|
177
184
|
return typeof value === "number" && Number.isInteger(value) && value >= 100 && value <= 599
|
|
178
185
|
}
|
|
179
186
|
|
|
180
|
-
/**
|
|
187
|
+
/** Follow the causal chain without exposing arbitrary messages or discarding deeper statuses. */
|
|
181
188
|
function findFailureDetail(
|
|
182
189
|
error: SixbCodedError,
|
|
183
190
|
boundaryCode: SixbErrorCode
|
|
184
|
-
): {
|
|
191
|
+
): {
|
|
192
|
+
detail?: { message: string; httpStatus?: number }
|
|
193
|
+
truncated: boolean
|
|
194
|
+
redacted: boolean
|
|
195
|
+
} {
|
|
185
196
|
const seen = new Set<object>()
|
|
197
|
+
const messages = new Set<string>()
|
|
198
|
+
let catalogMessage: string | undefined
|
|
199
|
+
let httpStatus: number | undefined
|
|
200
|
+
let truncated = false
|
|
201
|
+
let redacted = false
|
|
186
202
|
let current: unknown = error
|
|
187
203
|
while (typeof current === "object" && current !== null && !seen.has(current)) {
|
|
188
|
-
if (seen.size === 8)
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
isSixbError(current) &&
|
|
192
|
-
current.code !== boundaryCode &&
|
|
193
|
-
current.code !== "internal.unexpected"
|
|
194
|
-
) {
|
|
195
|
-
return {
|
|
196
|
-
detail: { message: SIXB_ERROR_DEFINITIONS[current.code].publicMessage },
|
|
197
|
-
truncated: false,
|
|
198
|
-
}
|
|
204
|
+
if (seen.size === 8) {
|
|
205
|
+
truncated = true
|
|
206
|
+
break
|
|
199
207
|
}
|
|
208
|
+
seen.add(current)
|
|
209
|
+
const explanation = failureMessage(current)
|
|
210
|
+
if (explanation) messages.add(explanation)
|
|
200
211
|
try {
|
|
201
|
-
|
|
212
|
+
if (current instanceof ActionRunFailedError) {
|
|
213
|
+
// This is an already durable child failure, not arbitrary provider prose. Revalidate it
|
|
214
|
+
// before propagation; do not copy its context over the parent's identity or retry policy.
|
|
215
|
+
const child = parseSixbFailure(Object.getOwnPropertyDescriptor(current, "error")?.value)
|
|
216
|
+
messages.add(child.message)
|
|
217
|
+
httpStatus ??= child.httpStatus
|
|
218
|
+
redacted ||= child.redacted === true
|
|
219
|
+
truncated ||= child.truncated === true
|
|
220
|
+
}
|
|
221
|
+
if (
|
|
222
|
+
isSixbError(current) &&
|
|
223
|
+
current.code !== boundaryCode &&
|
|
224
|
+
current.code !== "internal.unexpected"
|
|
225
|
+
) {
|
|
226
|
+
catalogMessage = SIXB_ERROR_DEFINITIONS[current.code].publicMessage
|
|
227
|
+
}
|
|
228
|
+
// Read data properties only: provider accessors, messages and payloads remain private.
|
|
202
229
|
const status =
|
|
203
230
|
Object.getOwnPropertyDescriptor(current, "status")?.value ??
|
|
204
231
|
Object.getOwnPropertyDescriptor(current, "statusCode")?.value
|
|
205
|
-
if (isHttpStatus(status))
|
|
206
|
-
return {
|
|
207
|
-
detail: { message: `Upstream request returned HTTP ${status}.`, httpStatus: status },
|
|
208
|
-
truncated: false,
|
|
209
|
-
}
|
|
210
|
-
}
|
|
232
|
+
if (httpStatus === undefined && isHttpStatus(status)) httpStatus = status
|
|
211
233
|
const code = Object.getOwnPropertyDescriptor(current, "code")?.value
|
|
212
234
|
if (typeof code === "string" && Object.hasOwn(NETWORK_MESSAGES, code)) {
|
|
213
|
-
|
|
235
|
+
messages.add(NETWORK_MESSAGES[code])
|
|
214
236
|
}
|
|
215
237
|
current = Object.getOwnPropertyDescriptor(current, "cause")?.value
|
|
216
238
|
} catch {
|
|
217
239
|
break
|
|
218
240
|
}
|
|
219
241
|
}
|
|
220
|
-
|
|
242
|
+
if (messages.size === 0 && catalogMessage) messages.add(catalogMessage)
|
|
243
|
+
if (httpStatus !== undefined) {
|
|
244
|
+
const statusMessage = `Upstream request returned HTTP ${httpStatus}.`
|
|
245
|
+
if (![...messages].some((message) => message.includes(statusMessage)))
|
|
246
|
+
messages.add(statusMessage)
|
|
247
|
+
}
|
|
248
|
+
return {
|
|
249
|
+
...(messages.size === 0 ? {} : { detail: { message: [...messages].join(" "), httpStatus } }),
|
|
250
|
+
truncated,
|
|
251
|
+
redacted,
|
|
252
|
+
}
|
|
221
253
|
}
|
|
222
254
|
|
|
223
255
|
/** Serializes a validated failure for durable storage. */
|
|
@@ -46,6 +46,7 @@ export interface OntologyOutboxDispatcherOptions {
|
|
|
46
46
|
readonly maxIsolationAttempts?: number
|
|
47
47
|
/** Maximum claimed batches handled by one drain pass. */
|
|
48
48
|
readonly maxClaimsPerDrain?: number
|
|
49
|
+
/** Broker grace period. Shutdown still waits for outstanding storage operations afterward. */
|
|
49
50
|
readonly shutdownTimeoutMs?: number
|
|
50
51
|
readonly now?: () => Date
|
|
51
52
|
readonly random?: () => number
|
|
@@ -100,10 +101,10 @@ export class OntologyOutboxDispatcher {
|
|
|
100
101
|
private readonly createLeaseId: () => string
|
|
101
102
|
private readonly onDeliveryFailure?: OntologyOutboxDispatcherOptions["onDeliveryFailure"]
|
|
102
103
|
private readonly onError: (error: unknown) => void
|
|
103
|
-
private readonly inFlight = new Set<ClaimedBatch>()
|
|
104
104
|
private draining: Promise<void> | null = null
|
|
105
105
|
private pendingDrain: Promise<void> | null = null
|
|
106
106
|
private stopping: Promise<void> | null = null
|
|
107
|
+
private closing = false
|
|
107
108
|
private stopRequested = false
|
|
108
109
|
private readonly forcedStop = new AbortController()
|
|
109
110
|
|
|
@@ -166,7 +167,7 @@ export class OntologyOutboxDispatcher {
|
|
|
166
167
|
* mutation.
|
|
167
168
|
*/
|
|
168
169
|
drain(): Promise<void> {
|
|
169
|
-
if (this.stopRequested) return Promise.resolve()
|
|
170
|
+
if (this.closing || this.stopRequested) return Promise.resolve()
|
|
170
171
|
if (!this.draining) return this.startDrainPass()
|
|
171
172
|
|
|
172
173
|
this.pendingDrain ??= settled(this.draining).then(() => {
|
|
@@ -178,7 +179,7 @@ export class OntologyOutboxDispatcher {
|
|
|
178
179
|
|
|
179
180
|
/** Starts a tracked, best-effort drain without extending mutation latency. */
|
|
180
181
|
notify(): void {
|
|
181
|
-
if (this.stopRequested) return
|
|
182
|
+
if (this.closing || this.stopRequested) return
|
|
182
183
|
void this.drain().catch((error) => this.reportError(error))
|
|
183
184
|
}
|
|
184
185
|
|
|
@@ -193,19 +194,16 @@ export class OntologyOutboxDispatcher {
|
|
|
193
194
|
// Include one final bounded pass so commits whose notifications were coalesced immediately
|
|
194
195
|
// before shutdown are not left pending merely because the process is stopping.
|
|
195
196
|
const gracefulDrain = this.drain().catch((error) => this.reportError(error))
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return
|
|
199
|
-
}
|
|
200
|
-
|
|
197
|
+
this.closing = true
|
|
198
|
+
const finished = await settlesWithin(gracefulDrain, this.shutdownTimeoutMs)
|
|
201
199
|
this.stopRequested = true
|
|
202
|
-
this.forcedStop.abort()
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
this.draining
|
|
208
|
-
this.pendingDrain
|
|
200
|
+
if (!finished) this.forcedStop.abort()
|
|
201
|
+
// Storage operations cannot be cancelled by this contract. A late claim must release its
|
|
202
|
+
// lease, and an acknowledgement already started must finish before callers close storage.
|
|
203
|
+
// publishClaim owns settlement, including forced stop; never race a second cleanup against it.
|
|
204
|
+
await gracefulDrain
|
|
205
|
+
if (this.draining) await settled(this.draining)
|
|
206
|
+
if (this.pendingDrain) await settled(this.pendingDrain)
|
|
209
207
|
}
|
|
210
208
|
|
|
211
209
|
private startDrainPass(): Promise<void> {
|
|
@@ -224,11 +222,14 @@ export class OntologyOutboxDispatcher {
|
|
|
224
222
|
if (rows.length === 0) return
|
|
225
223
|
const publishedCount = await this.publishClaim(rows)
|
|
226
224
|
if (this.stopRequested || publishedCount === 0 || rows.length < this.batchSize) return
|
|
225
|
+
// In-memory/SQLite can resolve without I/O. Yield between full batches so catch-up cannot
|
|
226
|
+
// monopolize the event loop, while keeping small post-commit deliveries immediate.
|
|
227
|
+
await new Promise<void>((resolve) => setImmediate(resolve))
|
|
227
228
|
}
|
|
228
229
|
|
|
229
230
|
// A healthy full slice means more due rows may remain. Reuse the existing coalescing path so
|
|
230
231
|
// catch-up continues without recursion, an idle polling loop, or an unbounded individual pass.
|
|
231
|
-
if (!this.stopRequested) this.notify()
|
|
232
|
+
if (!this.closing && !this.stopRequested) this.notify()
|
|
232
233
|
}
|
|
233
234
|
|
|
234
235
|
private claimBatch(): Promise<readonly ClaimedOntologyOutboxRow[]> {
|
|
@@ -247,7 +248,6 @@ export class OntologyOutboxDispatcher {
|
|
|
247
248
|
private async publishClaim(rows: readonly ClaimedOntologyOutboxRow[]): Promise<number> {
|
|
248
249
|
const claim = new ClaimedBatch(rows)
|
|
249
250
|
const failures = new DeliveryFailureAccumulator()
|
|
250
|
-
this.inFlight.add(claim)
|
|
251
251
|
const pending: PublicationGroup[] = [{ rows }]
|
|
252
252
|
let publishAttempts = 0
|
|
253
253
|
let publishedCount = 0
|
|
@@ -288,7 +288,6 @@ export class OntologyOutboxDispatcher {
|
|
|
288
288
|
if (this.stopRequested) {
|
|
289
289
|
await this.rescheduleClaimedForShutdown(claim.close())
|
|
290
290
|
}
|
|
291
|
-
this.inFlight.delete(claim)
|
|
292
291
|
for (const failure of failures.list()) {
|
|
293
292
|
this.reportDeliveryFailure(failure.error, failure.context)
|
|
294
293
|
}
|
|
@@ -378,15 +377,10 @@ export class OntologyOutboxDispatcher {
|
|
|
378
377
|
}
|
|
379
378
|
}
|
|
380
379
|
|
|
381
|
-
private async rescheduleUnsettledForShutdown(): Promise<void> {
|
|
382
|
-
for (const claim of [...this.inFlight]) {
|
|
383
|
-
await this.rescheduleClaimedForShutdown(claim.close())
|
|
384
|
-
this.inFlight.delete(claim)
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
|
|
388
380
|
private withOutbox<T>(run: (outbox: OntologyOutboxStorage) => Promise<T> | T): Promise<T> {
|
|
389
|
-
|
|
381
|
+
// Every outbox method owns its atomic provider operation. A framework-wide transaction
|
|
382
|
+
// adds no guarantee here and copies the entire InMemoryStorage state for every batch.
|
|
383
|
+
return Promise.resolve(run(this.storage.ontology.outbox))
|
|
390
384
|
}
|
|
391
385
|
|
|
392
386
|
private reportDeliveryFailure(error: unknown, failure: OntologyOutboxDeliveryFailure): void {
|
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
CompiledSelectedObjectReadScope,
|
|
15
15
|
SelectedObjectReadScope,
|
|
16
16
|
} from "../storage/objects/types"
|
|
17
|
+
import { kernelOperationFromId, kernelOperationId } from "./kernel-operation"
|
|
17
18
|
import {
|
|
18
19
|
type AuthorizablePrincipal,
|
|
19
20
|
type AuthorizationRef,
|
|
@@ -443,7 +444,8 @@ function assertResolvedAuthorizationMatchesExecution(
|
|
|
443
444
|
resolved.ref.type !== "kernel" ||
|
|
444
445
|
execution.requestedBy !== undefined ||
|
|
445
446
|
resolved.ref.operation.type !== execution.executor.operation.type ||
|
|
446
|
-
resolved.ref.operation
|
|
447
|
+
kernelOperationId(resolved.ref.operation) !==
|
|
448
|
+
kernelOperationId(execution.executor.operation)
|
|
447
449
|
) {
|
|
448
450
|
throw invalidExecutionAuthority(
|
|
449
451
|
execution.id,
|
|
@@ -546,6 +548,9 @@ function snapshotExecutionExecutor(
|
|
|
546
548
|
|
|
547
549
|
function snapshotExecutionSource(source: ExecutionContext["source"]): ExecutionContext["source"] {
|
|
548
550
|
switch (source.type) {
|
|
551
|
+
case "ontologyCommit":
|
|
552
|
+
assertNonEmpty(source.commitId, "Execution source commit id")
|
|
553
|
+
return Object.freeze({ type: source.type, commitId: source.commitId })
|
|
549
554
|
case "http":
|
|
550
555
|
assertNonEmpty(source.requestId, "Execution source request id")
|
|
551
556
|
return Object.freeze({ type: "http", requestId: source.requestId })
|
|
@@ -704,11 +709,13 @@ function snapshotTrustedPrimitive(primitive: TrustedPrimitiveRef): TrustedPrimit
|
|
|
704
709
|
}
|
|
705
710
|
|
|
706
711
|
function snapshotKernelOperation(operation: KernelOperation): KernelOperation {
|
|
707
|
-
if (operation.type !== "ontology.recover") {
|
|
708
|
-
throw new Error(
|
|
712
|
+
if (operation.type !== "ontology.recover" && operation.type !== "ontology.indexVectors") {
|
|
713
|
+
throw new Error(
|
|
714
|
+
`[Sixb] Unknown kernel operation '${String((operation as { type?: unknown }).type)}'.`
|
|
715
|
+
)
|
|
709
716
|
}
|
|
710
|
-
assertNonEmpty(operation
|
|
711
|
-
return Object.freeze(
|
|
717
|
+
assertNonEmpty(kernelOperationId(operation), "Kernel operation id")
|
|
718
|
+
return Object.freeze(kernelOperationFromId(operation.type, kernelOperationId(operation)))
|
|
712
719
|
}
|
|
713
720
|
|
|
714
721
|
/** Validate, bound, and detach exact delegated Action targets before registering authority. */
|