@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.
Files changed (702) hide show
  1. package/dist/actions/builders/params.d.ts +1 -22
  2. package/dist/actions/builders/params.d.ts.map +1 -1
  3. package/dist/actions/index.js +29 -28
  4. package/dist/actions/index.js.map +1 -1
  5. package/dist/actions/types/params.d.ts +10 -44
  6. package/dist/actions/types/params.d.ts.map +1 -1
  7. package/dist/actions/validation.d.ts.map +1 -1
  8. package/dist/actions/worker.js +3 -2
  9. package/dist/actions/worker.js.map +2 -2
  10. package/dist/agents/errors.d.ts +1 -1
  11. package/dist/agents/errors.d.ts.map +1 -1
  12. package/dist/agents/execution.d.ts +15 -9
  13. package/dist/agents/execution.d.ts.map +1 -1
  14. package/dist/agents/ids.d.ts +2 -0
  15. package/dist/agents/ids.d.ts.map +1 -1
  16. package/dist/agents/index.d.ts +1 -1
  17. package/dist/agents/index.d.ts.map +1 -1
  18. package/dist/agents/index.js +48 -42
  19. package/dist/agents/index.js.map +1 -1
  20. package/dist/agents/request.d.ts.map +1 -1
  21. package/dist/agents/sandbox.d.ts +5 -0
  22. package/dist/agents/sandbox.d.ts.map +1 -0
  23. package/dist/agents/streams/index.js +4 -3
  24. package/dist/agents/streams/index.js.map +1 -1
  25. package/dist/agents/streams/internal.js +4 -3
  26. package/dist/agents/streams/internal.js.map +1 -1
  27. package/dist/agents/validation.d.ts.map +1 -1
  28. package/dist/auth/index.js +8 -6
  29. package/dist/auth/index.js.map +1 -1
  30. package/dist/authorization/index.js +5 -4
  31. package/dist/authorization/index.js.map +1 -1
  32. package/dist/blob-storage/types.d.ts +4 -1
  33. package/dist/blob-storage/types.d.ts.map +1 -1
  34. package/dist/bootstrap/index.js +50 -46
  35. package/dist/bootstrap/index.js.map +1 -1
  36. package/dist/{chunk-17kfctj6.js → chunk-0mza4xb2.js} +2 -2
  37. package/dist/chunk-2c4j899j.js.map +1 -1
  38. package/dist/{chunk-g00bfdq6.js → chunk-2cxv584m.js} +12 -56
  39. package/dist/{chunk-g00bfdq6.js.map → chunk-2cxv584m.js.map} +3 -3
  40. package/dist/{chunk-e0d1rzef.js → chunk-2h63nrde.js} +380 -97
  41. package/dist/chunk-2h63nrde.js.map +20 -0
  42. package/dist/{chunk-rtk71jzp.js → chunk-3bnt2wna.js} +2 -2
  43. package/dist/{chunk-awbhdqyc.js → chunk-3ghw2t5q.js} +1 -1
  44. package/dist/{chunk-b19g04jk.js → chunk-3h7ctayx.js} +1 -1
  45. package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
  46. package/dist/{chunk-5hz0fnca.js → chunk-4k53sm9e.js} +6 -2
  47. package/dist/chunk-4k53sm9e.js.map +12 -0
  48. package/dist/chunk-4ph94nhd.js +81 -0
  49. package/dist/chunk-4ph94nhd.js.map +10 -0
  50. package/dist/chunk-58geavnf.js +29 -0
  51. package/dist/chunk-58geavnf.js.map +10 -0
  52. package/dist/{chunk-0y39rgsb.js → chunk-5tetw4hn.js} +1 -1
  53. package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
  54. package/dist/chunk-69266efg.js.map +12 -0
  55. package/dist/{chunk-g7knyczr.js → chunk-6ma8dvzc.js} +121 -53
  56. package/dist/chunk-6ma8dvzc.js.map +15 -0
  57. package/dist/{chunk-skz0hst3.js → chunk-7c2g3sz9.js} +6 -86
  58. package/dist/{chunk-skz0hst3.js.map → chunk-7c2g3sz9.js.map} +3 -3
  59. package/dist/{chunk-976rxdpx.js → chunk-7qnvhtcd.js} +93 -17
  60. package/dist/{chunk-976rxdpx.js.map → chunk-7qnvhtcd.js.map} +7 -6
  61. package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
  62. package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
  63. package/dist/chunk-91kcnbf0.js.map +10 -0
  64. package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
  65. package/dist/chunk-96yw3pwd.js.map +10 -0
  66. package/dist/chunk-98cw09sw.js.map +2 -2
  67. package/dist/{chunk-93csa55g.js → chunk-axndsymr.js} +10 -4
  68. package/dist/chunk-axndsymr.js.map +11 -0
  69. package/dist/{chunk-r7fj830t.js → chunk-b768c93y.js} +100 -29
  70. package/dist/chunk-b768c93y.js.map +36 -0
  71. package/dist/{chunk-dz5h08xv.js → chunk-bbaa1fet.js} +24 -9
  72. package/dist/{chunk-dz5h08xv.js.map → chunk-bbaa1fet.js.map} +4 -4
  73. package/dist/{chunk-7apz6hg4.js → chunk-bet1rb9h.js} +8 -4
  74. package/dist/chunk-bet1rb9h.js.map +10 -0
  75. package/dist/{chunk-358caqf5.js → chunk-bfjv1adk.js} +2 -2
  76. package/dist/{chunk-b0ec55a1.js → chunk-bg2bs62d.js} +5 -5
  77. package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
  78. package/dist/chunk-cd234ba4.js.map +14 -0
  79. package/dist/chunk-d62kjtbg.js.map +1 -1
  80. package/dist/chunk-dmn70ztd.js.map +2 -2
  81. package/dist/{chunk-28ja2cjs.js → chunk-e1f1sqba.js} +39 -53
  82. package/dist/{chunk-28ja2cjs.js.map → chunk-e1f1sqba.js.map} +5 -6
  83. package/dist/{chunk-ap0g1g74.js → chunk-eyjzgav0.js} +39 -4
  84. package/dist/chunk-eyjzgav0.js.map +12 -0
  85. package/dist/{chunk-rb1xx120.js → chunk-f06sf7rr.js} +9 -5
  86. package/dist/chunk-f06sf7rr.js.map +11 -0
  87. package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
  88. package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
  89. package/dist/{chunk-38zv5rkr.js → chunk-g2gezsg5.js} +1 -1
  90. package/dist/{chunk-38zv5rkr.js.map → chunk-g2gezsg5.js.map} +2 -2
  91. package/dist/{chunk-nmbxcaqx.js → chunk-g50nxqs5.js} +53 -66
  92. package/dist/chunk-g50nxqs5.js.map +18 -0
  93. package/dist/{chunk-1824gssz.js → chunk-gswwr35f.js} +4 -4
  94. package/dist/{chunk-92vk7gta.js → chunk-gzt6v1ja.js} +1 -1
  95. package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
  96. package/dist/chunk-hgqpcmyr.js.map +12 -0
  97. package/dist/{chunk-gqh45d2n.js → chunk-hkw8rykk.js} +2 -2
  98. package/dist/{chunk-f4w3yp4f.js → chunk-hzw7yv5g.js} +104 -21
  99. package/dist/chunk-hzw7yv5g.js.map +13 -0
  100. package/dist/{chunk-5c7ga8zz.js → chunk-jjwhy3rs.js} +5 -5
  101. package/dist/chunk-kept9cdd.js +29 -0
  102. package/dist/chunk-kept9cdd.js.map +10 -0
  103. package/dist/{chunk-ftv470j8.js → chunk-m7cx05vp.js} +247 -16
  104. package/dist/{chunk-ftv470j8.js.map → chunk-m7cx05vp.js.map} +14 -10
  105. package/dist/{chunk-qyeptdyv.js → chunk-mdnw7nj8.js} +10 -6
  106. package/dist/chunk-mdnw7nj8.js.map +15 -0
  107. package/dist/{chunk-5p1v802y.js → chunk-nzsy3xrp.js} +253 -86
  108. package/dist/chunk-nzsy3xrp.js.map +46 -0
  109. package/dist/chunk-p1683c0v.js +104 -0
  110. package/dist/chunk-p1683c0v.js.map +11 -0
  111. package/dist/chunk-p6r1ex7t.js +93 -0
  112. package/dist/chunk-p6r1ex7t.js.map +10 -0
  113. package/dist/{chunk-p5vcsw9c.js → chunk-qm535afa.js} +10 -10
  114. package/dist/{chunk-p5vcsw9c.js.map → chunk-qm535afa.js.map} +4 -4
  115. package/dist/chunk-r5zythxp.js +552 -0
  116. package/dist/chunk-r5zythxp.js.map +17 -0
  117. package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
  118. package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
  119. package/dist/{chunk-t1f4f1ve.js → chunk-sfypc7mk.js} +18 -13
  120. package/dist/{chunk-t1f4f1ve.js.map → chunk-sfypc7mk.js.map} +3 -3
  121. package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
  122. package/dist/chunk-t6f3tdnr.js.map +10 -0
  123. package/dist/{chunk-bn138h9w.js → chunk-t7dzd1tm.js} +3 -3
  124. package/dist/{chunk-pr2h4bv4.js → chunk-tg4g4zh0.js} +3 -3
  125. package/dist/chunk-vpxss818.js +56 -0
  126. package/dist/chunk-vpxss818.js.map +10 -0
  127. package/dist/{chunk-ms2tmn1k.js → chunk-vsg0g7h9.js} +53 -57
  128. package/dist/chunk-vsg0g7h9.js.map +17 -0
  129. package/dist/{chunk-8vj0rjgs.js → chunk-wjffn5m4.js} +1 -1
  130. package/dist/{chunk-nt99sxd6.js → chunk-x9tmx3fc.js} +18 -24
  131. package/dist/chunk-x9tmx3fc.js.map +14 -0
  132. package/dist/{chunk-agbbygvh.js → chunk-xn686q2e.js} +8 -8
  133. package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
  134. package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
  135. package/dist/{chunk-v2vcg0w6.js → chunk-xtfryrfb.js} +2 -2
  136. package/dist/chunk-y0v18c2j.js +363 -0
  137. package/dist/chunk-y0v18c2j.js.map +14 -0
  138. package/dist/{chunk-72w2pxk7.js → chunk-y1ahv8b7.js} +11 -3
  139. package/dist/{chunk-72w2pxk7.js.map → chunk-y1ahv8b7.js.map} +3 -3
  140. package/dist/chunk-y3ev53cq.js +84 -0
  141. package/dist/chunk-y3ev53cq.js.map +10 -0
  142. package/dist/{chunk-p6a4npdx.js → chunk-ybhz3j9g.js} +362 -60
  143. package/dist/chunk-ybhz3j9g.js.map +63 -0
  144. package/dist/{chunk-z30bv4ga.js → chunk-yxb4c62x.js} +3 -2
  145. package/dist/{chunk-z30bv4ga.js.map → chunk-yxb4c62x.js.map} +3 -3
  146. package/dist/chunk-z3y5kg1x.js +14 -0
  147. package/dist/chunk-z3y5kg1x.js.map +10 -0
  148. package/dist/connectors/connections/command-context.d.ts +2 -0
  149. package/dist/connectors/connections/command-context.d.ts.map +1 -1
  150. package/dist/connectors/connections/contracts.d.ts +1 -1
  151. package/dist/connectors/connections/contracts.d.ts.map +1 -1
  152. package/dist/connectors/connections/execution.d.ts +1 -0
  153. package/dist/connectors/connections/execution.d.ts.map +1 -1
  154. package/dist/connectors/connections/runs.d.ts +1 -0
  155. package/dist/connectors/connections/runs.d.ts.map +1 -1
  156. package/dist/connectors/connections/service.d.ts +2 -0
  157. package/dist/connectors/connections/service.d.ts.map +1 -1
  158. package/dist/datasets/validation.d.ts +4 -0
  159. package/dist/datasets/validation.d.ts.map +1 -1
  160. package/dist/datasets/write.d.ts.map +1 -1
  161. package/dist/datasets/write.js +5 -4
  162. package/dist/datasets/write.js.map +1 -1
  163. package/dist/error-reporting/capability.d.ts +3 -2
  164. package/dist/error-reporting/capability.d.ts.map +1 -1
  165. package/dist/error-reporting/internal.js +5 -4
  166. package/dist/error-reporting/internal.js.map +1 -1
  167. package/dist/error-reporting/reports.d.ts +10 -0
  168. package/dist/error-reporting/reports.d.ts.map +1 -1
  169. package/dist/error-reporting/types.d.ts +10 -2
  170. package/dist/error-reporting/types.d.ts.map +1 -1
  171. package/dist/errors/catalog.d.ts +12 -0
  172. package/dist/errors/catalog.d.ts.map +1 -1
  173. package/dist/errors/failure-message.d.ts +8 -0
  174. package/dist/errors/failure-message.d.ts.map +1 -0
  175. package/dist/errors/internal.d.ts.map +1 -1
  176. package/dist/errors/internal.js +3 -2
  177. package/dist/errors/internal.js.map +1 -1
  178. package/dist/events/index.js +5 -4
  179. package/dist/events/index.js.map +1 -1
  180. package/dist/events/outbox-dispatcher.d.ts +2 -2
  181. package/dist/events/outbox-dispatcher.d.ts.map +1 -1
  182. package/dist/execution/agent.js +44 -41
  183. package/dist/execution/agent.js.map +1 -1
  184. package/dist/execution/authorization.d.ts.map +1 -1
  185. package/dist/execution/authorized-object-reader.d.ts +3 -0
  186. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  187. package/dist/execution/kernel-operation.d.ts +4 -0
  188. package/dist/execution/kernel-operation.d.ts.map +1 -0
  189. package/dist/execution/primitive.js +44 -41
  190. package/dist/execution/primitive.js.map +2 -2
  191. package/dist/execution/request.js +45 -42
  192. package/dist/execution/request.js.map +2 -2
  193. package/dist/execution/types.d.ts +6 -0
  194. package/dist/execution/types.d.ts.map +1 -1
  195. package/dist/index.d.ts +15 -5
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +68 -59
  198. package/dist/index.js.map +1 -1
  199. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  200. package/dist/lake-storage/index.js +5 -4
  201. package/dist/lake-storage/index.js.map +1 -1
  202. package/dist/lake-storage/types.d.ts +2 -0
  203. package/dist/lake-storage/types.d.ts.map +1 -1
  204. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  205. package/dist/maintenance/types.d.ts +1 -1
  206. package/dist/maintenance/types.d.ts.map +1 -1
  207. package/dist/materialization/errors.d.ts +1 -1
  208. package/dist/materialization/errors.d.ts.map +1 -1
  209. package/dist/materialization/index.d.ts +1 -0
  210. package/dist/materialization/index.d.ts.map +1 -1
  211. package/dist/materialization/index.js +3 -3
  212. package/dist/materialization/model.d.ts +2 -0
  213. package/dist/materialization/model.d.ts.map +1 -1
  214. package/dist/materialization/vectors.d.ts +19 -0
  215. package/dist/materialization/vectors.d.ts.map +1 -0
  216. package/dist/materializer/context.d.ts.map +1 -1
  217. package/dist/materializer/edits/commit.d.ts.map +1 -1
  218. package/dist/materializer/edits/vector-authority.d.ts +6 -0
  219. package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
  220. package/dist/materializer/edits/vectors.d.ts +6 -0
  221. package/dist/materializer/edits/vectors.d.ts.map +1 -0
  222. package/dist/materializer/effective/validate.d.ts.map +1 -1
  223. package/dist/materializer/effective/vector-indexing.d.ts +7 -0
  224. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
  225. package/dist/materializer/effective/vectors.d.ts +6 -0
  226. package/dist/materializer/effective/vectors.d.ts.map +1 -0
  227. package/dist/materializer/execution/work-executor.d.ts +2 -1
  228. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  229. package/dist/materializer/index.js +26 -25
  230. package/dist/materializer/index.js.map +1 -1
  231. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  232. package/dist/models/catalog-index.d.ts +15 -0
  233. package/dist/models/catalog-index.d.ts.map +1 -0
  234. package/dist/models/catalog.d.ts +27 -6
  235. package/dist/models/catalog.d.ts.map +1 -1
  236. package/dist/models/decision/catalog.d.ts +12 -0
  237. package/dist/models/decision/catalog.d.ts.map +1 -0
  238. package/dist/models/decision/errors.d.ts +7 -0
  239. package/dist/models/decision/errors.d.ts.map +1 -0
  240. package/dist/models/decision/output.d.ts +50 -0
  241. package/dist/models/decision/output.d.ts.map +1 -0
  242. package/dist/models/decision/questions.d.ts +14 -0
  243. package/dist/models/decision/questions.d.ts.map +1 -0
  244. package/dist/models/decision/runtime.d.ts +7 -0
  245. package/dist/models/decision/runtime.d.ts.map +1 -0
  246. package/dist/models/decision/types.d.ts +92 -0
  247. package/dist/models/decision/types.d.ts.map +1 -0
  248. package/dist/models/decision/validation.d.ts +7 -0
  249. package/dist/models/decision/validation.d.ts.map +1 -0
  250. package/dist/models/definitions.d.ts +8 -1
  251. package/dist/models/definitions.d.ts.map +1 -1
  252. package/dist/models/embedding-model.d.ts +60 -0
  253. package/dist/models/embedding-model.d.ts.map +1 -0
  254. package/dist/models/execution/binding.d.ts +2 -0
  255. package/dist/models/execution/binding.d.ts.map +1 -1
  256. package/dist/models/execution/embedding.d.ts +5 -0
  257. package/dist/models/execution/embedding.d.ts.map +1 -0
  258. package/dist/models/execution/index.js +29 -26
  259. package/dist/models/execution/index.js.map +1 -1
  260. package/dist/models/execution/model-call-recorder.d.ts +5 -1
  261. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  262. package/dist/models/execution/session.d.ts +21 -0
  263. package/dist/models/execution/session.d.ts.map +1 -0
  264. package/dist/models/execution.d.ts.map +1 -1
  265. package/dist/models/generation-types.d.ts +2 -0
  266. package/dist/models/generation-types.d.ts.map +1 -1
  267. package/dist/models/index.d.ts +9 -1
  268. package/dist/models/index.d.ts.map +1 -1
  269. package/dist/models/index.js +17 -7
  270. package/dist/models/index.js.map +1 -1
  271. package/dist/models/pricing.d.ts +3 -2
  272. package/dist/models/pricing.d.ts.map +1 -1
  273. package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
  274. package/dist/objects/execution.d.ts +1 -0
  275. package/dist/objects/execution.d.ts.map +1 -1
  276. package/dist/objects/index.js +29 -28
  277. package/dist/objects/index.js.map +1 -1
  278. package/dist/objects/query/executor.d.ts +3 -0
  279. package/dist/objects/query/executor.d.ts.map +1 -1
  280. package/dist/objects/query/index.d.ts +2 -0
  281. package/dist/objects/query/index.d.ts.map +1 -1
  282. package/dist/objects/query/index.js +34 -24
  283. package/dist/objects/query/index.js.map +1 -1
  284. package/dist/objects/query/ir.d.ts +6 -2
  285. package/dist/objects/query/ir.d.ts.map +1 -1
  286. package/dist/objects/query/normalize.d.ts.map +1 -1
  287. package/dist/objects/query/validate.d.ts.map +1 -1
  288. package/dist/objects/sdk/object-handle.d.ts +5 -0
  289. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  290. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  291. package/dist/objects/sdk/query-executor.d.ts +2 -0
  292. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  293. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  294. package/dist/objects/vectors/handle.d.ts +4 -0
  295. package/dist/objects/vectors/handle.d.ts.map +1 -0
  296. package/dist/objects/vectors/indexing-batch.d.ts +6 -0
  297. package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
  298. package/dist/objects/vectors/indexing-generate.d.ts +11 -0
  299. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
  300. package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
  301. package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
  302. package/dist/objects/vectors/indexing-shared.d.ts +17 -0
  303. package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
  304. package/dist/objects/vectors/indexing-single.d.ts +4 -0
  305. package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
  306. package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
  307. package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
  308. package/dist/objects/vectors/indexing.d.ts +7 -0
  309. package/dist/objects/vectors/indexing.d.ts.map +1 -0
  310. package/dist/objects/vectors/profile.d.ts +13 -0
  311. package/dist/objects/vectors/profile.d.ts.map +1 -0
  312. package/dist/objects/vectors/query.d.ts +5 -0
  313. package/dist/objects/vectors/query.d.ts.map +1 -0
  314. package/dist/objects/vectors/resolve-query.d.ts +6 -0
  315. package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
  316. package/dist/objects/vectors/types.d.ts +11 -0
  317. package/dist/objects/vectors/types.d.ts.map +1 -0
  318. package/dist/ontology/index.d.ts +2 -1
  319. package/dist/ontology/index.d.ts.map +1 -1
  320. package/dist/ontology/index.js +5 -5
  321. package/dist/ontology/index.js.map +1 -1
  322. package/dist/ontology/internal.js +5 -4
  323. package/dist/ontology/internal.js.map +1 -1
  324. package/dist/ontology/registry.d.ts.map +1 -1
  325. package/dist/ontology/types.d.ts +8 -9
  326. package/dist/ontology/types.d.ts.map +1 -1
  327. package/dist/ontology/validation/definition.d.ts +3 -0
  328. package/dist/ontology/validation/definition.d.ts.map +1 -0
  329. package/dist/ontology/validation/properties.d.ts.map +1 -1
  330. package/dist/ontology/validation/query.d.ts.map +1 -1
  331. package/dist/ontology/validation/schema.d.ts +1 -1
  332. package/dist/ontology/validation/schema.d.ts.map +1 -1
  333. package/dist/ontology/vector-profiles.d.ts +4 -0
  334. package/dist/ontology/vector-profiles.d.ts.map +1 -0
  335. package/dist/pipelines/index.js +28 -27
  336. package/dist/pipelines/index.js.map +1 -1
  337. package/dist/projections/internal.js +24 -23
  338. package/dist/projections/internal.js.map +1 -1
  339. package/dist/query.js +2 -2
  340. package/dist/queues/in-memory.d.ts +2 -1
  341. package/dist/queues/in-memory.d.ts.map +1 -1
  342. package/dist/queues/index.d.ts +1 -1
  343. package/dist/queues/index.d.ts.map +1 -1
  344. package/dist/queues/index.js +1 -1
  345. package/dist/queues/types.d.ts +5 -0
  346. package/dist/queues/types.d.ts.map +1 -1
  347. package/dist/runtime/create.d.ts +4 -3
  348. package/dist/runtime/create.d.ts.map +1 -1
  349. package/dist/runtime/host.d.ts +9 -6
  350. package/dist/runtime/host.d.ts.map +1 -1
  351. package/dist/runtime/internal.d.ts +3 -0
  352. package/dist/runtime/internal.d.ts.map +1 -1
  353. package/dist/runtime/internal.js +47 -1
  354. package/dist/runtime/internal.js.map +1 -1
  355. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  356. package/dist/runtime/sixb.d.ts +9 -4
  357. package/dist/runtime/sixb.d.ts.map +1 -1
  358. package/dist/runtime/types.d.ts +15 -3
  359. package/dist/runtime/types.d.ts.map +1 -1
  360. package/dist/sandboxes/auth.d.ts +16 -0
  361. package/dist/sandboxes/auth.d.ts.map +1 -0
  362. package/dist/sandboxes/config.d.ts +5 -0
  363. package/dist/sandboxes/config.d.ts.map +1 -0
  364. package/dist/sandboxes/configuration.d.ts +41 -0
  365. package/dist/sandboxes/configuration.d.ts.map +1 -0
  366. package/dist/sandboxes/environment.d.ts +13 -0
  367. package/dist/sandboxes/environment.d.ts.map +1 -0
  368. package/dist/sandboxes/errors.d.ts +1 -1
  369. package/dist/sandboxes/errors.d.ts.map +1 -1
  370. package/dist/sandboxes/index.d.ts +6 -1
  371. package/dist/sandboxes/index.d.ts.map +1 -1
  372. package/dist/sandboxes/index.js +16 -3
  373. package/dist/sandboxes/index.js.map +1 -1
  374. package/dist/sandboxes/sandbox.d.ts +35 -3
  375. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  376. package/dist/shared/params/builders.d.ts +25 -0
  377. package/dist/shared/params/builders.d.ts.map +1 -0
  378. package/dist/shared/params/types.d.ts +47 -0
  379. package/dist/shared/params/types.d.ts.map +1 -0
  380. package/dist/shared/params/validation.d.ts +15 -0
  381. package/dist/shared/params/validation.d.ts.map +1 -0
  382. package/dist/shares/internal.js +23 -22
  383. package/dist/shares/internal.js.map +2 -2
  384. package/dist/storage/action-runs/failure.js +4 -3
  385. package/dist/storage/action-runs/failure.js.map +1 -1
  386. package/dist/storage/action-runs/provider.js +1 -1
  387. package/dist/storage/agents/in-memory.d.ts +2 -1
  388. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  389. package/dist/storage/agents/index.d.ts +1 -1
  390. package/dist/storage/agents/index.d.ts.map +1 -1
  391. package/dist/storage/agents/provider.d.ts +5 -1
  392. package/dist/storage/agents/provider.d.ts.map +1 -1
  393. package/dist/storage/agents/provider.js +8 -4
  394. package/dist/storage/agents/provider.js.map +1 -1
  395. package/dist/storage/agents/types.d.ts +49 -0
  396. package/dist/storage/agents/types.d.ts.map +1 -1
  397. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  398. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  399. package/dist/storage/ai-cost/index.d.ts +1 -1
  400. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  401. package/dist/storage/ai-cost/provider.js +2 -2
  402. package/dist/storage/ai-cost/types.d.ts +14 -2
  403. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  404. package/dist/storage/ai-limits/enforcement.js +4 -3
  405. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  406. package/dist/storage/connector-connections/in-memory.d.ts +1 -0
  407. package/dist/storage/connector-connections/in-memory.d.ts.map +1 -1
  408. package/dist/storage/connector-connections/provider/connections.d.ts.map +1 -1
  409. package/dist/storage/connector-connections/provider/runs.d.ts +1 -0
  410. package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -1
  411. package/dist/storage/connector-connections/provider/shared.d.ts +1 -0
  412. package/dist/storage/connector-connections/provider/shared.d.ts.map +1 -1
  413. package/dist/storage/connector-connections/provider.d.ts +1 -0
  414. package/dist/storage/connector-connections/provider.d.ts.map +1 -1
  415. package/dist/storage/connector-connections/provider.js +12 -17
  416. package/dist/storage/connector-connections/provider.js.map +6 -6
  417. package/dist/storage/connector-connections/types.d.ts +3 -1
  418. package/dist/storage/connector-connections/types.d.ts.map +1 -1
  419. package/dist/storage/executions/provider.d.ts +3 -3
  420. package/dist/storage/executions/provider.d.ts.map +1 -1
  421. package/dist/storage/executions/provider.js +13 -11
  422. package/dist/storage/executions/provider.js.map +3 -3
  423. package/dist/storage/executions/types.d.ts +3 -0
  424. package/dist/storage/executions/types.d.ts.map +1 -1
  425. package/dist/storage/executions/validation.d.ts.map +1 -1
  426. package/dist/storage/index.d.ts +5 -3
  427. package/dist/storage/index.d.ts.map +1 -1
  428. package/dist/storage/index.js +25 -22
  429. package/dist/storage/index.js.map +1 -1
  430. package/dist/storage/internal.js +2 -2
  431. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  432. package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
  433. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  434. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  435. package/dist/storage/objects/in-memory/storage.d.ts +7 -0
  436. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  437. package/dist/storage/objects/types.d.ts +2 -0
  438. package/dist/storage/objects/types.d.ts.map +1 -1
  439. package/dist/storage/ontology/commits.d.ts +1 -0
  440. package/dist/storage/ontology/commits.d.ts.map +1 -1
  441. package/dist/storage/ontology/in-memory/index.d.ts +4 -0
  442. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  443. package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
  444. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  445. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
  446. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  447. package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
  448. package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
  449. package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
  450. package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
  451. package/dist/storage/ontology/index.d.ts +6 -0
  452. package/dist/storage/ontology/index.d.ts.map +1 -1
  453. package/dist/storage/ontology/outbox.d.ts +1 -0
  454. package/dist/storage/ontology/outbox.d.ts.map +1 -1
  455. package/dist/storage/ontology/provider.js +2 -2
  456. package/dist/storage/ontology/vector-indexing.d.ts +94 -0
  457. package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
  458. package/dist/storage/ontology/vectors.d.ts +56 -0
  459. package/dist/storage/ontology/vectors.d.ts.map +1 -0
  460. package/dist/storage/operation-scope.d.ts.map +1 -1
  461. package/dist/storage/operation-scope.js +1 -1
  462. package/dist/storage/projection-runs/provider.js +4 -3
  463. package/dist/storage/projection-runs/provider.js.map +1 -1
  464. package/dist/storage/types.d.ts +1 -1
  465. package/dist/storage/types.d.ts.map +1 -1
  466. package/dist/storage/workflow-runs/provider.js +9 -7
  467. package/dist/storage/workflow-runs/provider.js.map +1 -1
  468. package/dist/syncs/index.js +29 -28
  469. package/dist/syncs/index.js.map +1 -1
  470. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  471. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  472. package/dist/testing/index.js +488 -81
  473. package/dist/testing/index.js.map +10 -10
  474. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  475. package/dist/testing/object-query-contract.d.ts.map +1 -1
  476. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  477. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  478. package/dist/testing/queues-contract.d.ts.map +1 -1
  479. package/dist/webhooks/internal.js +24 -23
  480. package/dist/webhooks/internal.js.map +2 -2
  481. package/dist/workers/index.js +3 -2
  482. package/dist/workers/index.js.map +2 -2
  483. package/dist/workflows/failure.d.ts.map +1 -1
  484. package/dist/workflows/index.js +47 -43
  485. package/dist/workflows/index.js.map +1 -1
  486. package/package.json +1 -1
  487. package/src/actions/builders/params.ts +1 -48
  488. package/src/actions/types/params.ts +14 -74
  489. package/src/actions/validation.ts +7 -84
  490. package/src/agents/errors.ts +3 -0
  491. package/src/agents/execution.ts +67 -15
  492. package/src/agents/ids.ts +8 -0
  493. package/src/agents/index.ts +1 -0
  494. package/src/agents/model-loop.ts +7 -0
  495. package/src/agents/request.ts +11 -0
  496. package/src/agents/sandbox.ts +44 -0
  497. package/src/agents/validation.ts +2 -108
  498. package/src/blob-storage/types.ts +4 -1
  499. package/src/connectors/connections/command-context.ts +21 -4
  500. package/src/connectors/connections/contracts.ts +4 -1
  501. package/src/connectors/connections/execution.ts +3 -0
  502. package/src/connectors/connections/runs.ts +38 -1
  503. package/src/connectors/connections/service.ts +6 -0
  504. package/src/datasets/validation.ts +40 -11
  505. package/src/datasets/write.ts +8 -11
  506. package/src/error-reporting/capability.ts +11 -0
  507. package/src/error-reporting/reports.ts +23 -0
  508. package/src/error-reporting/types.ts +12 -1
  509. package/src/errors/catalog.ts +12 -0
  510. package/src/errors/failure-message.ts +15 -0
  511. package/src/errors/internal.ts +57 -25
  512. package/src/events/outbox-dispatcher.ts +20 -26
  513. package/src/execution/authorization.ts +12 -5
  514. package/src/execution/authorized-object-reader.ts +37 -2
  515. package/src/execution/kernel-operation.ts +27 -0
  516. package/src/execution/scopes.ts +2 -0
  517. package/src/execution/types.ts +4 -4
  518. package/src/index.ts +60 -1
  519. package/src/lake-storage/in-memory.ts +7 -3
  520. package/src/lake-storage/types.ts +2 -0
  521. package/src/maintenance/ontology-maintenance.ts +6 -2
  522. package/src/maintenance/types.ts +1 -1
  523. package/src/materialization/errors.ts +2 -2
  524. package/src/materialization/index.ts +1 -0
  525. package/src/materialization/model.ts +2 -0
  526. package/src/materialization/vectors.ts +18 -0
  527. package/src/materializer/README.md +15 -1
  528. package/src/materializer/context.ts +10 -0
  529. package/src/materializer/edits/commit.ts +8 -1
  530. package/src/materializer/edits/vector-authority.ts +108 -0
  531. package/src/materializer/edits/vectors.ts +100 -0
  532. package/src/materializer/effective/validate.ts +10 -3
  533. package/src/materializer/effective/vector-indexing.ts +84 -0
  534. package/src/materializer/effective/vectors.ts +47 -0
  535. package/src/materializer/execution/work-executor.ts +11 -3
  536. package/src/materializer/projections/replace.ts +1 -1
  537. package/src/materializer/shared/normalize.ts +11 -0
  538. package/src/materializer/telemetry/append.ts +1 -1
  539. package/src/models/catalog-index.ts +38 -0
  540. package/src/models/catalog.ts +66 -38
  541. package/src/models/decision/catalog.ts +32 -0
  542. package/src/models/decision/errors.ts +18 -0
  543. package/src/models/decision/output.ts +101 -0
  544. package/src/models/decision/questions.ts +29 -0
  545. package/src/models/decision/runtime.ts +188 -0
  546. package/src/models/decision/types.ts +109 -0
  547. package/src/models/decision/validation.ts +335 -0
  548. package/src/models/definitions.ts +20 -1
  549. package/src/models/embedding-model.ts +129 -0
  550. package/src/models/execution/README.md +63 -0
  551. package/src/models/execution/binding.ts +2 -0
  552. package/src/models/execution/embedding.ts +133 -0
  553. package/src/models/execution/model-call-recorder.ts +42 -30
  554. package/src/models/execution/session.ts +81 -0
  555. package/src/models/execution.ts +10 -52
  556. package/src/models/generation-types.ts +2 -0
  557. package/src/models/index.ts +37 -0
  558. package/src/models/pricing.ts +7 -4
  559. package/src/objects/authorized-ontology-view.ts +12 -8
  560. package/src/objects/execution.ts +2 -0
  561. package/src/objects/query/executor.ts +13 -4
  562. package/src/objects/query/explain.ts +7 -2
  563. package/src/objects/query/index.ts +2 -0
  564. package/src/objects/query/ir.ts +6 -2
  565. package/src/objects/query/normalize.ts +5 -1
  566. package/src/objects/query/validate.ts +74 -73
  567. package/src/objects/sdk/object-handle.ts +3 -0
  568. package/src/objects/sdk/object-set.ts +1 -0
  569. package/src/objects/sdk/query-builder.ts +9 -3
  570. package/src/objects/sdk/query-executor.ts +2 -1
  571. package/src/objects/sdk/runtime-query-executor.ts +6 -2
  572. package/src/objects/vectors/README.md +59 -0
  573. package/src/objects/vectors/handle.ts +91 -0
  574. package/src/objects/vectors/indexing-batch.ts +163 -0
  575. package/src/objects/vectors/indexing-generate.ts +184 -0
  576. package/src/objects/vectors/indexing-runtime.ts +17 -0
  577. package/src/objects/vectors/indexing-shared.ts +188 -0
  578. package/src/objects/vectors/indexing-single.ts +51 -0
  579. package/src/objects/vectors/indexing-store-batch.ts +62 -0
  580. package/src/objects/vectors/indexing.ts +23 -0
  581. package/src/objects/vectors/profile.ts +64 -0
  582. package/src/objects/vectors/query.ts +16 -0
  583. package/src/objects/vectors/resolve-query.ts +89 -0
  584. package/src/objects/vectors/types.ts +10 -0
  585. package/src/ontology/index.ts +2 -0
  586. package/src/ontology/registry.ts +8 -0
  587. package/src/ontology/types.ts +9 -9
  588. package/src/ontology/validation/definition.ts +104 -0
  589. package/src/ontology/validation/properties.ts +14 -4
  590. package/src/ontology/validation/query.ts +34 -51
  591. package/src/ontology/validation/schema.ts +85 -23
  592. package/src/ontology/vector-profiles.ts +35 -0
  593. package/src/queues/in-memory.ts +5 -0
  594. package/src/queues/index.ts +1 -0
  595. package/src/queues/types.ts +10 -0
  596. package/src/runtime/create.ts +7 -6
  597. package/src/runtime/host.ts +42 -6
  598. package/src/runtime/internal.ts +3 -0
  599. package/src/runtime/resolve-definitions.ts +19 -1
  600. package/src/runtime/sixb.ts +27 -9
  601. package/src/runtime/types.ts +16 -4
  602. package/src/sandboxes/README.md +41 -0
  603. package/src/sandboxes/auth.ts +17 -0
  604. package/src/sandboxes/config.ts +37 -0
  605. package/src/sandboxes/configuration.ts +268 -0
  606. package/src/sandboxes/environment.ts +107 -0
  607. package/src/sandboxes/errors.ts +1 -1
  608. package/src/sandboxes/index.ts +15 -0
  609. package/src/sandboxes/sandbox.ts +38 -3
  610. package/src/shared/params/builders.ts +50 -0
  611. package/src/shared/params/types.ts +84 -0
  612. package/src/shared/params/validation.ts +114 -0
  613. package/src/storage/agents/in-memory.ts +25 -1
  614. package/src/storage/agents/index.ts +3 -0
  615. package/src/storage/agents/provider.ts +105 -0
  616. package/src/storage/agents/types.ts +54 -0
  617. package/src/storage/ai-cost/analytics.ts +59 -21
  618. package/src/storage/ai-cost/index.ts +1 -0
  619. package/src/storage/ai-cost/types.ts +19 -2
  620. package/src/storage/connector-connections/in-memory.ts +16 -18
  621. package/src/storage/connector-connections/provider/connections.ts +1 -15
  622. package/src/storage/connector-connections/provider/runs.ts +6 -0
  623. package/src/storage/connector-connections/provider/shared.ts +2 -3
  624. package/src/storage/connector-connections/provider.ts +6 -0
  625. package/src/storage/connector-connections/types.ts +5 -1
  626. package/src/storage/executions/provider.ts +24 -12
  627. package/src/storage/executions/types.ts +1 -0
  628. package/src/storage/executions/validation.ts +7 -3
  629. package/src/storage/index.ts +15 -1
  630. package/src/storage/objects/in-memory/query.ts +25 -11
  631. package/src/storage/objects/in-memory/read-scope.ts +9 -2
  632. package/src/storage/objects/in-memory/read-source.ts +5 -0
  633. package/src/storage/objects/in-memory/selected-reader.ts +5 -1
  634. package/src/storage/objects/in-memory/storage.ts +19 -1
  635. package/src/storage/objects/types.ts +2 -0
  636. package/src/storage/ontology/commits.ts +1 -0
  637. package/src/storage/ontology/in-memory/index.ts +20 -0
  638. package/src/storage/ontology/in-memory/materializations.ts +13 -0
  639. package/src/storage/ontology/in-memory/shared-state.ts +19 -3
  640. package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
  641. package/src/storage/ontology/in-memory/vectors.ts +73 -0
  642. package/src/storage/ontology/index.ts +14 -0
  643. package/src/storage/ontology/outbox.ts +1 -0
  644. package/src/storage/ontology/vector-indexing.ts +98 -0
  645. package/src/storage/ontology/vectors.ts +48 -0
  646. package/src/storage/operation-scope.ts +1 -0
  647. package/src/storage/types.ts +3 -0
  648. package/src/testing/agent-storage-contract.ts +246 -0
  649. package/src/testing/ai-cost-storage-contract.ts +134 -0
  650. package/src/testing/connector-connection-storage-contract.ts +11 -11
  651. package/src/testing/lake-storage-contract.ts +29 -0
  652. package/src/testing/object-query-contract.ts +41 -25
  653. package/src/testing/object-read-scope-contract.ts +1 -5
  654. package/src/testing/ontology-storage-contract.ts +8 -3
  655. package/src/testing/queues-contract.ts +31 -0
  656. package/src/workflows/failure.ts +10 -4
  657. package/src/workflows/validation.ts +2 -2
  658. package/dist/chunk-5hz0fnca.js.map +0 -12
  659. package/dist/chunk-5p1v802y.js.map +0 -44
  660. package/dist/chunk-7apz6hg4.js.map +0 -10
  661. package/dist/chunk-7bs40fe1.js.map +0 -12
  662. package/dist/chunk-860dwwy0.js.map +0 -14
  663. package/dist/chunk-93csa55g.js.map +0 -11
  664. package/dist/chunk-aa6z4a19.js.map +0 -12
  665. package/dist/chunk-ap0g1g74.js.map +0 -11
  666. package/dist/chunk-e0d1rzef.js.map +0 -15
  667. package/dist/chunk-f0rwz2vh.js.map +0 -11
  668. package/dist/chunk-f4w3yp4f.js.map +0 -12
  669. package/dist/chunk-g7knyczr.js.map +0 -14
  670. package/dist/chunk-mrp7k0pw.js.map +0 -10
  671. package/dist/chunk-ms2tmn1k.js.map +0 -17
  672. package/dist/chunk-nmbxcaqx.js.map +0 -19
  673. package/dist/chunk-nt99sxd6.js.map +0 -14
  674. package/dist/chunk-p6a4npdx.js.map +0 -58
  675. package/dist/chunk-qyeptdyv.js.map +0 -15
  676. package/dist/chunk-r7fj830t.js.map +0 -36
  677. package/dist/chunk-rb1xx120.js.map +0 -11
  678. package/dist/chunk-yv79ncbv.js.map +0 -10
  679. package/dist/chunk-z3y411fq.js +0 -99
  680. package/dist/chunk-z3y411fq.js.map +0 -11
  681. /package/dist/{chunk-17kfctj6.js.map → chunk-0mza4xb2.js.map} +0 -0
  682. /package/dist/{chunk-rtk71jzp.js.map → chunk-3bnt2wna.js.map} +0 -0
  683. /package/dist/{chunk-awbhdqyc.js.map → chunk-3ghw2t5q.js.map} +0 -0
  684. /package/dist/{chunk-b19g04jk.js.map → chunk-3h7ctayx.js.map} +0 -0
  685. /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
  686. /package/dist/{chunk-0y39rgsb.js.map → chunk-5tetw4hn.js.map} +0 -0
  687. /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
  688. /package/dist/{chunk-358caqf5.js.map → chunk-bfjv1adk.js.map} +0 -0
  689. /package/dist/{chunk-b0ec55a1.js.map → chunk-bg2bs62d.js.map} +0 -0
  690. /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
  691. /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
  692. /package/dist/{chunk-1824gssz.js.map → chunk-gswwr35f.js.map} +0 -0
  693. /package/dist/{chunk-92vk7gta.js.map → chunk-gzt6v1ja.js.map} +0 -0
  694. /package/dist/{chunk-gqh45d2n.js.map → chunk-hkw8rykk.js.map} +0 -0
  695. /package/dist/{chunk-5c7ga8zz.js.map → chunk-jjwhy3rs.js.map} +0 -0
  696. /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
  697. /package/dist/{chunk-653vwrzr.js.map → chunk-rdghfsss.js.map} +0 -0
  698. /package/dist/{chunk-bn138h9w.js.map → chunk-t7dzd1tm.js.map} +0 -0
  699. /package/dist/{chunk-pr2h4bv4.js.map → chunk-tg4g4zh0.js.map} +0 -0
  700. /package/dist/{chunk-8vj0rjgs.js.map → chunk-wjffn5m4.js.map} +0 -0
  701. /package/dist/{chunk-agbbygvh.js.map → chunk-xn686q2e.js.map} +0 -0
  702. /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 = getColumnValidationError(row, column, dataset)
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 `Dataset '${dataset.id}' row contains unknown column '${columnName}'.`
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 = getColumnValidationError(row, column, dataset)
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 getColumnValidationError(
292
+ function getColumnValidationFailure(
280
293
  row: Record<string, unknown>,
281
294
  column: DatasetColumnDefinition,
282
295
  dataset: DatasetDefinition
283
- ): string | null {
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
- return getDatasetSequenceValidationError(dataset, value)
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 `Dataset '${dataset.id}' column '${column.name}' does not allow null values.`
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
- ? `Dataset '${dataset.id}' column '${column.name}' must be a valid Date or ISO timestamp with an explicit timezone and at most millisecond precision.`
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 `Dataset '${dataset.id}' column '${column.name}' must match type '${column.type}'.`
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
+ }
@@ -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 { getDatasetRowValidationError } from "./validation"
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
- if (!isPlainRecord(value)) {
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
- await verifyRowFileRefs(value, input, itemIndex)
176
- return value
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
@@ -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
+ }
@@ -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(detail && detail.message !== summary ? `${summary} ${detail.message}` : summary),
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
- /** Select one explanation along the causal chain; unrelated aggregate errors stay separate. */
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
- ): { detail?: { message: string; httpStatus?: number }; truncated: boolean } {
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) return { truncated: true }
189
- seen.add(current)
190
- if (
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
- // Read only data properties: arbitrary messages and getters remain private.
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
- return { detail: { message: NETWORK_MESSAGES[code] }, truncated: false }
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
- return { truncated: false }
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
- if (await settlesWithin(gracefulDrain, this.shutdownTimeoutMs)) {
197
- this.stopRequested = true
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
- await settlesWithin(
204
- this.rescheduleUnsettledForShutdown(),
205
- Math.min(this.shutdownTimeoutMs, 1_000)
206
- )
207
- this.draining = null
208
- this.pendingDrain = null
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
- return this.storage.transaction((tx) => run(tx.ontology.outbox))
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.recoveryId !== execution.executor.operation.recoveryId
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(`[Sixb] Unknown kernel operation '${operation.type}'.`)
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.recoveryId, "Kernel recovery id")
711
- return Object.freeze({ type: operation.type, recoveryId: operation.recoveryId })
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. */