@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
@@ -0,0 +1,363 @@
1
+ // @bun
2
+ import {
3
+ assertValidSchema
4
+ } from "./chunk-p6r1ex7t.js";
5
+ import {
6
+ normalizeParams,
7
+ coerceParamsToTyped
8
+ } from "./chunk-y3ev53cq.js";
9
+ import {
10
+ isPlainRecord
11
+ } from "./chunk-wy0qdqfm.js";
12
+
13
+ // src/sandboxes/errors.ts
14
+ class SandboxError2 extends Error {
15
+ name = "SandboxError";
16
+ }
17
+
18
+ class SandboxStateUnavailableError2 extends SandboxError2 {
19
+ name = "SandboxStateUnavailableError";
20
+ }
21
+
22
+ class SandboxNotRunningError2 extends SandboxError2 {
23
+ name = "SandboxNotRunningError";
24
+ }
25
+
26
+ class SandboxTimeoutError2 extends SandboxError2 {
27
+ name = "SandboxTimeoutError";
28
+ }
29
+
30
+ class SandboxIsolationUnavailableError2 extends SandboxError2 {
31
+ name = "SandboxIsolationUnavailableError";
32
+ }
33
+
34
+ // src/sandboxes/configuration.ts
35
+ function createSandboxDefinition(config, ontology) {
36
+ const raw = config;
37
+ if (!isPlainRecord(raw) || config.params !== undefined && !isPlainRecord(raw.params) || config.resolve !== undefined && typeof config.resolve !== "function") {
38
+ throw new SandboxError2("[Sixb] Sandbox configuration requires a params object and a callable resolver when provided.");
39
+ }
40
+ for (const key of Object.keys(config)) {
41
+ if (!["params", "resolve", "source", "setup", "env", "network", "auth"].includes(key)) {
42
+ throw new SandboxError2("[Sixb] Unknown sandbox configuration field.");
43
+ }
44
+ }
45
+ if (config.auth !== undefined && typeof config.auth?.authorize !== "function") {
46
+ throw new SandboxError2("[Sixb] sandboxes.auth requires an authorize function.");
47
+ }
48
+ if (config.params !== undefined && config.resolve === undefined) {
49
+ throw new SandboxError2("[Sixb] Sandbox params require a resolve function.");
50
+ }
51
+ if (config.resolve !== undefined && (config.source !== undefined || config.setup !== undefined)) {
52
+ throw new SandboxError2("[Sixb] Use either static source/setup or resolve, not both.");
53
+ }
54
+ const invalid = (path) => new SandboxError2(`[Sixb] ${path} must be a valid parameter declaration; use param(schema).`);
55
+ for (const [id, value] of Object.entries(config.params ?? {})) {
56
+ const path = `sandboxes.params.${id}`;
57
+ if (!id.trim() || !isPlainRecord(value))
58
+ throw invalid(path);
59
+ for (const key of Object.keys(value)) {
60
+ if (!["schema", "required", "nullable", "description", "semanticType"].includes(key)) {
61
+ throw invalid(path);
62
+ }
63
+ }
64
+ if (value.required !== undefined && typeof value.required !== "boolean" || value.nullable !== undefined && typeof value.nullable !== "boolean" || value.description !== undefined && typeof value.description !== "string" || value.semanticType !== undefined && typeof value.semanticType !== "string")
65
+ throw invalid(path);
66
+ const schema = value.schema;
67
+ if (isPlainRecord(schema) && schema.type === "objectRef") {
68
+ if (typeof schema.objectTypeId !== "string" || !ontology.getObjectTypesById().has(schema.objectTypeId)) {
69
+ throw invalid(path);
70
+ }
71
+ } else {
72
+ assertValidSchema(schema, `${path}.schema`, invalid);
73
+ }
74
+ }
75
+ const params = structuredClone(config.params ?? {});
76
+ const environment = captureEnvironment({
77
+ ...config.source === undefined ? {} : { source: config.source },
78
+ ...config.setup === undefined ? {} : { setup: config.setup },
79
+ ...config.env === undefined ? {} : { env: config.env },
80
+ ...config.network === undefined ? {} : { network: config.network }
81
+ });
82
+ const resolve = config.resolve;
83
+ const authorize = config.auth?.authorize.bind(config.auth);
84
+ deepFreeze(params);
85
+ return Object.freeze({
86
+ params,
87
+ ...authorize ? { auth: Object.freeze({ authorize }) } : {},
88
+ resolve: async ({ params: input, sixb }) => {
89
+ const binding = normalizeParams(ontology.getValueTypesById(), params, input, {
90
+ kind: "sandbox",
91
+ id: "sandboxes",
92
+ path: "sandbox"
93
+ });
94
+ const typed = coerceParamsToTyped(params, binding, ontology.getValueTypesById());
95
+ if (!resolve)
96
+ return structuredClone(environment);
97
+ const resolved = captureEnvironment(await resolve({ params: typed, sixb }));
98
+ return {
99
+ ...structuredClone(environment),
100
+ ...resolved,
101
+ env: { ...environment.env, ...resolved.env }
102
+ };
103
+ }
104
+ });
105
+ }
106
+ function captureEnvironment(value) {
107
+ if (!isPlainRecord(value) || Object.keys(value).some((key) => !["source", "setup", "env", "network"].includes(key))) {
108
+ return fail("environment");
109
+ }
110
+ if (value.source !== undefined)
111
+ validateSource(value.source);
112
+ if (value.setup !== undefined)
113
+ validateSetup(value.setup);
114
+ if (value.env !== undefined)
115
+ validateEnv(value.env);
116
+ if (value.network !== undefined)
117
+ validateNetwork(value.network);
118
+ return structuredClone(value);
119
+ }
120
+ function fail(field) {
121
+ throw new SandboxError2(`[Sixb] Invalid sandbox ${field}.`);
122
+ }
123
+ function validateSource(source) {
124
+ if (!isPlainRecord(source) || source.type !== "git" || typeof source.url !== "string" || Object.keys(source).some((key) => !["type", "url", "revision", "access"].includes(key))) {
125
+ fail("source");
126
+ }
127
+ const url = parseUrl(source.url, "source URL");
128
+ if (url.protocol !== "https:" || url.username || url.password || url.search || url.hash) {
129
+ fail("source URL: expected credential-free HTTPS");
130
+ }
131
+ if (source.revision !== undefined && (typeof source.revision !== "string" || !source.revision.trim() || source.revision.startsWith("-") || /[\x00-\x1f]/.test(source.revision))) {
132
+ fail("source revision");
133
+ }
134
+ if (source.access !== undefined && source.access !== "read" && source.access !== "write") {
135
+ fail("source access");
136
+ }
137
+ }
138
+ function validateSetup(setup) {
139
+ if (!Array.isArray(setup) || setup.some((command) => typeof command !== "string" || !command.trim() || command.includes("\x00"))) {
140
+ fail("setup");
141
+ }
142
+ }
143
+ function validateEnv(env) {
144
+ if (!isPlainRecord(env) || Object.entries(env).some(([key, entry]) => !key || /[=\0]/.test(key) || typeof entry !== "string" || entry.includes("\x00"))) {
145
+ fail("env");
146
+ }
147
+ }
148
+ function validateNetwork(network) {
149
+ if (!isPlainRecord(network))
150
+ fail("network");
151
+ if (network.mode === "restricted") {
152
+ if (Object.keys(network).some((key) => key !== "mode" && key !== "allow") || !Array.isArray(network.allow)) {
153
+ fail("network");
154
+ }
155
+ for (const target of network.allow)
156
+ validateNetworkTarget(target);
157
+ return;
158
+ }
159
+ if (network.mode !== "none" && network.mode !== "all" || Object.keys(network).some((key) => key !== "mode")) {
160
+ fail("network");
161
+ }
162
+ }
163
+ function validateNetworkTarget(target) {
164
+ if (!isPlainRecord(target) || typeof target.name !== "string" || !target.name.trim() || typeof target.origin !== "string" || Object.keys(target).some((key) => key !== "name" && key !== "origin")) {
165
+ fail("network target");
166
+ }
167
+ const url = parseUrl(target.origin, "network origin");
168
+ if (!["http:", "https:"].includes(url.protocol) || url.origin !== target.origin) {
169
+ fail("network origin");
170
+ }
171
+ }
172
+ function parseUrl(value, field) {
173
+ try {
174
+ return new URL(value);
175
+ } catch {
176
+ return fail(field);
177
+ }
178
+ }
179
+ function deepFreeze(value, seen = new Set) {
180
+ if (seen.has(value))
181
+ return;
182
+ seen.add(value);
183
+ for (const child of Object.values(value)) {
184
+ if (child !== null && typeof child === "object")
185
+ deepFreeze(child, seen);
186
+ }
187
+ Object.freeze(value);
188
+ }
189
+
190
+ // src/sandboxes/config.ts
191
+ function sandboxConfig2(options) {
192
+ if (options.auth !== undefined && typeof options.auth?.authorize !== "function") {
193
+ throw new SandboxError2("[Sixb] sandboxes.auth requires an authorize function.");
194
+ }
195
+ const authorize = options.auth?.authorize.bind(options.auth);
196
+ if (options.params !== undefined && options.resolve === undefined) {
197
+ throw new SandboxError2("[Sixb] Sandbox params require a resolve function.");
198
+ }
199
+ if (options.resolve !== undefined && typeof options.resolve !== "function") {
200
+ throw new SandboxError2("[Sixb] Sandbox resolve must be a function.");
201
+ }
202
+ if (options.resolve !== undefined && (options.source !== undefined || options.setup !== undefined)) {
203
+ throw new SandboxError2("[Sixb] Use either static source/setup or resolve, not both.");
204
+ }
205
+ const environment = captureEnvironment({
206
+ ...options.source === undefined ? {} : { source: options.source },
207
+ ...options.setup === undefined ? {} : { setup: options.setup },
208
+ ...options.env === undefined ? {} : { env: options.env },
209
+ ...options.network === undefined ? {} : { network: options.network }
210
+ });
211
+ return Object.freeze({
212
+ ...authorize ? { auth: Object.freeze({ authorize }) } : {},
213
+ ...environment,
214
+ ...options.params === undefined ? {} : { params: structuredClone(options.params) },
215
+ ...options.resolve === undefined ? {} : { resolve: options.resolve }
216
+ });
217
+ }
218
+ // src/sandboxes/environment.ts
219
+ import { posix } from "path";
220
+ function sandboxCreationEnvironment2(configuration, options) {
221
+ if (options.environment === undefined && configuration.resolve !== undefined) {
222
+ throw new SandboxError2("[Sixb] Dynamic sandbox configuration requires an execution-resolved environment.");
223
+ }
224
+ const environment = captureEnvironment(options.environment !== undefined ? options.environment : {
225
+ ...configuration.source === undefined ? {} : { source: configuration.source },
226
+ ...configuration.setup === undefined ? {} : { setup: configuration.setup }
227
+ });
228
+ if (environment.env !== undefined || environment.network !== undefined) {
229
+ throw new SandboxError2("[Sixb] Pass env and network as sandbox session options, not environment.");
230
+ }
231
+ if (environment.source) {
232
+ if ((configuration.auth !== undefined || environment.source.access === "write") && !options.requestCredentials?.length) {
233
+ throw new SandboxError2("[Sixb] Sandbox source authentication requires execution-prepared request credentials.");
234
+ }
235
+ const network = options.network ?? configuration.network ?? { mode: "none" };
236
+ const origin = new URL(environment.source.url).origin;
237
+ if (network.mode === "none" || network.mode === "restricted" && !network.allow.some((target) => target.origin === origin)) {
238
+ throw new SandboxError2("[Sixb] Sandbox network policy denies the source origin.");
239
+ }
240
+ }
241
+ options.signal?.throwIfAborted();
242
+ return environment;
243
+ }
244
+ function sandboxProjectDirectory2(session, hasSource) {
245
+ if (!hasSource)
246
+ return session;
247
+ const workingDirectory = posix.join(session.workingDirectory, "repository");
248
+ return {
249
+ id: session.id,
250
+ provider: session.provider,
251
+ get status() {
252
+ return session.status;
253
+ },
254
+ workingDirectory,
255
+ ...session.setRequestCredentials ? { setRequestCredentials: session.setRequestCredentials.bind(session) } : {},
256
+ runCommand: (command, args, options) => session.runCommand(command, args, { ...options, cwd: options?.cwd ?? workingDirectory }),
257
+ writeFiles: (files) => session.writeFiles(files.map((file) => ({
258
+ ...file,
259
+ path: posix.isAbsolute(file.path) ? file.path : posix.join(workingDirectory, file.path)
260
+ }))),
261
+ stop: () => session.stop(),
262
+ destroy: () => session.destroy()
263
+ };
264
+ }
265
+ async function initializeSandboxEnvironment2(session, environment, signal) {
266
+ environment = captureEnvironment(environment);
267
+ const run = async (sandbox, command, args) => {
268
+ signal?.throwIfAborted();
269
+ const result = await sandbox.runCommand(command, args, { timeout: 120000, signal });
270
+ if (result.exitCode !== 0 || result.timedOut) {
271
+ throw new SandboxError2("[Sixb] Sandbox environment initialization failed.");
272
+ }
273
+ };
274
+ signal?.throwIfAborted();
275
+ const sandbox = sandboxProjectDirectory2(session, environment.source !== undefined);
276
+ if (environment.source) {
277
+ await run(session, "git", ["clone", "--", environment.source.url, "repository"]);
278
+ if (environment.source.revision) {
279
+ await run(sandbox, "git", ["checkout", environment.source.revision, "--"]);
280
+ }
281
+ }
282
+ for (const command of environment.setup ?? [])
283
+ await run(sandbox, "bash", ["-lc", command]);
284
+ return sandbox;
285
+ }
286
+ // src/sandboxes/exec.ts
287
+ var DEFAULT_KILL_EXIT_CODE = 137;
288
+ async function exec2(options) {
289
+ const start = Date.now();
290
+ const [head, ...rest] = options.argv;
291
+ if (!head) {
292
+ return {
293
+ exitCode: 1,
294
+ stdout: "",
295
+ stderr: "[Sandbox] empty argv",
296
+ durationMs: 0
297
+ };
298
+ }
299
+ let proc;
300
+ try {
301
+ proc = Bun.spawn([head, ...rest], {
302
+ cwd: options.cwd,
303
+ env: options.env,
304
+ stdin: "ignore",
305
+ stdout: "pipe",
306
+ stderr: "pipe"
307
+ });
308
+ } catch (error) {
309
+ return {
310
+ exitCode: 127,
311
+ stdout: "",
312
+ stderr: error instanceof Error ? error.message : String(error),
313
+ durationMs: Date.now() - start
314
+ };
315
+ }
316
+ let timedOut = false;
317
+ let killed = false;
318
+ const timer = options.timeoutMs !== undefined && options.timeoutMs > 0 ? setTimeout(() => {
319
+ timedOut = true;
320
+ killed = true;
321
+ proc.kill("SIGKILL");
322
+ }, options.timeoutMs) : undefined;
323
+ const onAbort = () => {
324
+ if (!killed) {
325
+ killed = true;
326
+ proc.kill("SIGKILL");
327
+ }
328
+ };
329
+ options.signal?.addEventListener("abort", onAbort);
330
+ if (options.signal?.aborted) {
331
+ onAbort();
332
+ }
333
+ let stdout = "";
334
+ let stderr = "";
335
+ let exitCode = 0;
336
+ try {
337
+ const [stdoutText, stderrText, code] = await Promise.all([
338
+ new Response(proc.stdout).text(),
339
+ new Response(proc.stderr).text(),
340
+ proc.exited
341
+ ]);
342
+ stdout = stdoutText;
343
+ stderr = stderrText;
344
+ exitCode = typeof code === "number" ? code : DEFAULT_KILL_EXIT_CODE;
345
+ } finally {
346
+ if (timer !== undefined)
347
+ clearTimeout(timer);
348
+ options.signal?.removeEventListener("abort", onAbort);
349
+ }
350
+ if (killed && exitCode === 0) {
351
+ exitCode = DEFAULT_KILL_EXIT_CODE;
352
+ }
353
+ return {
354
+ exitCode,
355
+ stdout,
356
+ stderr,
357
+ durationMs: Date.now() - start,
358
+ ...timedOut ? { timedOut: true } : {}
359
+ };
360
+ }
361
+ export { SandboxError2, SandboxStateUnavailableError2, SandboxNotRunningError2, SandboxTimeoutError2, SandboxIsolationUnavailableError2, createSandboxDefinition, sandboxConfig2, sandboxCreationEnvironment2, sandboxProjectDirectory2, initializeSandboxEnvironment2, exec2 };
362
+
363
+ //# debugId=C3376C4D866A438264756E2164756E21
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/sandboxes/errors.ts", "../src/sandboxes/configuration.ts", "../src/sandboxes/config.ts", "../src/sandboxes/environment.ts", "../src/sandboxes/exec.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Errors thrown by sandbox providers. Hosts can catch SandboxError at the\n * audit boundary while still distinguishing recoverable provider states.\n */\nexport class SandboxError extends Error {\n readonly name: string = \"SandboxError\"\n}\n\n/** Confirmed missing/expired state. Never use for transport, authorization or session setup errors. */\nexport class SandboxStateUnavailableError extends SandboxError {\n override readonly name = \"SandboxStateUnavailableError\"\n}\n\n/** runCommand / stop / destroy called after the sandbox is stopped or destroyed. */\nexport class SandboxNotRunningError extends SandboxError {\n override readonly name = \"SandboxNotRunningError\"\n}\n\n/** Command exceeded its timeout and was killed. */\nexport class SandboxTimeoutError extends SandboxError {\n override readonly name = \"SandboxTimeoutError\"\n}\n\n/** Requested isolation backend is not available on the host. */\nexport class SandboxIsolationUnavailableError extends SandboxError {\n override readonly name = \"SandboxIsolationUnavailableError\"\n}\n",
6
+ "import { isPlainRecord } from \"../json\"\nimport type { OntologyRegistry } from \"../ontology/registry\"\nimport { assertValidSchema } from \"../ontology/validation/definition\"\nimport type { Sixb } from \"../runtime/sixb\"\nimport type { InferParams, ParamsConfig } from \"../shared/params/types\"\nimport { coerceParamsToTyped, normalizeParams } from \"../shared/params/validation\"\nimport type { SandboxSourceAuth } from \"./auth\"\nimport { SandboxError } from \"./errors\"\nimport type { SandboxNetworkPolicy } from \"./sandbox\"\n\n/** Static recipes accept an empty parameter record, not arbitrary undeclared keys. */\nexport type InferSandboxParams<TParams extends ParamsConfig> = keyof TParams extends never\n ? Record<string, never>\n : InferParams<TParams>\n\n/** Initial project contents, independent from the provider's runtime image or saved state. */\nexport interface SandboxSource {\n readonly type: \"git\"\n readonly url: string\n readonly revision?: string\n readonly access?: \"read\" | \"write\"\n}\n\n/** Host-side recipe. Environment values are guest-readable, never a Git credential channel. */\nexport interface SandboxEnvironment {\n readonly source?: SandboxSource\n readonly setup?: readonly string[]\n readonly env?: Readonly<Record<string, string>>\n readonly network?: SandboxNetworkPolicy\n}\n\nexport interface SandboxResolveContext<TParams = Record<string, unknown>> {\n readonly params: TParams\n /** Bound to the current execution; a stored binding is not authorization. */\n readonly sixb: Sixb\n}\n\n// The recipe both declares and consumes this schema: keep it invariant instead of asking\n// TypeScript to compare the recursive ontology inference through callback variance.\n// Provider option interfaces must preserve this annotation when extending the config.\nexport interface SandboxConfig<in out TParams extends ParamsConfig = ParamsConfig>\n extends SandboxEnvironment {\n readonly auth?: SandboxSourceAuth\n readonly params?: TParams\n readonly resolve?: (\n context: SandboxResolveContext<InferParams<NoInfer<TParams>>>\n ) => SandboxEnvironment | Promise<SandboxEnvironment>\n}\n\n/** Registered project recipe; only thread params cross the durable boundary. */\nexport interface SandboxDefinition {\n readonly auth?: SandboxSourceAuth\n readonly params: ParamsConfig\n readonly resolve: (context: SandboxResolveContext) => Promise<SandboxEnvironment>\n}\n\nexport function createSandboxDefinition<TParams extends ParamsConfig>(\n config: SandboxConfig<TParams>,\n ontology: OntologyRegistry\n): SandboxDefinition {\n const raw: unknown = config\n if (\n !isPlainRecord(raw) ||\n (config.params !== undefined && !isPlainRecord(raw.params)) ||\n (config.resolve !== undefined && typeof config.resolve !== \"function\")\n ) {\n throw new SandboxError(\n \"[Sixb] Sandbox configuration requires a params object and a callable resolver when provided.\"\n )\n }\n for (const key of Object.keys(config)) {\n if (![\"params\", \"resolve\", \"source\", \"setup\", \"env\", \"network\", \"auth\"].includes(key)) {\n throw new SandboxError(\"[Sixb] Unknown sandbox configuration field.\")\n }\n }\n if (config.auth !== undefined && typeof config.auth?.authorize !== \"function\") {\n throw new SandboxError(\"[Sixb] sandboxes.auth requires an authorize function.\")\n }\n if (config.params !== undefined && config.resolve === undefined) {\n throw new SandboxError(\"[Sixb] Sandbox params require a resolve function.\")\n }\n if (config.resolve !== undefined && (config.source !== undefined || config.setup !== undefined)) {\n throw new SandboxError(\"[Sixb] Use either static source/setup or resolve, not both.\")\n }\n const invalid = (path: string) =>\n new SandboxError(`[Sixb] ${path} must be a valid parameter declaration; use param(schema).`)\n for (const [id, value] of Object.entries(config.params ?? {})) {\n const path = `sandboxes.params.${id}`\n if (!id.trim() || !isPlainRecord(value)) throw invalid(path)\n for (const key of Object.keys(value)) {\n if (![\"schema\", \"required\", \"nullable\", \"description\", \"semanticType\"].includes(key)) {\n throw invalid(path)\n }\n }\n if (\n (value.required !== undefined && typeof value.required !== \"boolean\") ||\n (value.nullable !== undefined && typeof value.nullable !== \"boolean\") ||\n (value.description !== undefined && typeof value.description !== \"string\") ||\n (value.semanticType !== undefined && typeof value.semanticType !== \"string\")\n )\n throw invalid(path)\n const schema: unknown = value.schema\n if (isPlainRecord(schema) && schema.type === \"objectRef\") {\n if (\n typeof schema.objectTypeId !== \"string\" ||\n !ontology.getObjectTypesById().has(schema.objectTypeId)\n ) {\n throw invalid(path)\n }\n } else {\n assertValidSchema(schema, `${path}.schema`, invalid)\n }\n }\n const params = structuredClone(config.params ?? {}) as ParamsConfig\n const environment = captureEnvironment({\n ...(config.source === undefined ? {} : { source: config.source }),\n ...(config.setup === undefined ? {} : { setup: config.setup }),\n ...(config.env === undefined ? {} : { env: config.env }),\n ...(config.network === undefined ? {} : { network: config.network }),\n })\n // Capture the function too: later mutation of application config must not change this host.\n // Erase inference only after capturing its schema; every invocation validates and coerces below.\n const resolve = config.resolve as SandboxConfig[\"resolve\"]\n const authorize = config.auth?.authorize.bind(config.auth)\n deepFreeze(params)\n return Object.freeze({\n params,\n ...(authorize ? { auth: Object.freeze({ authorize }) } : {}),\n resolve: async ({ params: input, sixb }: SandboxResolveContext) => {\n const binding = normalizeParams(ontology.getValueTypesById(), params, input, {\n kind: \"sandbox\",\n id: \"sandboxes\",\n path: \"sandbox\",\n })\n const typed = coerceParamsToTyped(params, binding, ontology.getValueTypesById())\n if (!resolve) return structuredClone(environment)\n const resolved = captureEnvironment(await resolve({ params: typed, sixb }))\n return {\n ...structuredClone(environment),\n ...resolved,\n env: { ...environment.env, ...resolved.env },\n }\n },\n })\n}\n\n/** Capture declarative data only; never retain caller-owned objects or include values in errors. */\nexport function captureEnvironment(value: unknown): SandboxEnvironment {\n if (\n !isPlainRecord(value) ||\n Object.keys(value).some((key) => ![\"source\", \"setup\", \"env\", \"network\"].includes(key))\n ) {\n return fail(\"environment\")\n }\n if (value.source !== undefined) validateSource(value.source)\n if (value.setup !== undefined) validateSetup(value.setup)\n if (value.env !== undefined) validateEnv(value.env)\n if (value.network !== undefined) validateNetwork(value.network)\n // Every field and discriminant has been checked above; return only an isolated snapshot.\n return structuredClone(value) as SandboxEnvironment\n}\n\nfunction fail(field: string): never {\n throw new SandboxError(`[Sixb] Invalid sandbox ${field}.`)\n}\n\nfunction validateSource(source: unknown): void {\n if (\n !isPlainRecord(source) ||\n source.type !== \"git\" ||\n typeof source.url !== \"string\" ||\n Object.keys(source).some((key) => ![\"type\", \"url\", \"revision\", \"access\"].includes(key))\n ) {\n fail(\"source\")\n }\n const url = parseUrl(source.url, \"source URL\")\n if (url.protocol !== \"https:\" || url.username || url.password || url.search || url.hash) {\n fail(\"source URL: expected credential-free HTTPS\")\n }\n if (\n source.revision !== undefined &&\n (typeof source.revision !== \"string\" ||\n !source.revision.trim() ||\n source.revision.startsWith(\"-\") ||\n /[\\x00-\\x1f]/.test(source.revision))\n ) {\n fail(\"source revision\")\n }\n if (source.access !== undefined && source.access !== \"read\" && source.access !== \"write\") {\n fail(\"source access\")\n }\n}\n\nfunction validateSetup(setup: unknown): void {\n if (\n !Array.isArray(setup) ||\n setup.some(\n (command) => typeof command !== \"string\" || !command.trim() || command.includes(\"\\0\")\n )\n ) {\n fail(\"setup\")\n }\n}\n\nfunction validateEnv(env: unknown): void {\n if (\n !isPlainRecord(env) ||\n Object.entries(env).some(\n ([key, entry]) =>\n !key || /[=\\0]/.test(key) || typeof entry !== \"string\" || entry.includes(\"\\0\")\n )\n ) {\n fail(\"env\")\n }\n}\n\nfunction validateNetwork(network: unknown): void {\n if (!isPlainRecord(network)) fail(\"network\")\n if (network.mode === \"restricted\") {\n if (\n Object.keys(network).some((key) => key !== \"mode\" && key !== \"allow\") ||\n !Array.isArray(network.allow)\n ) {\n fail(\"network\")\n }\n for (const target of network.allow) validateNetworkTarget(target)\n return\n }\n if (\n (network.mode !== \"none\" && network.mode !== \"all\") ||\n Object.keys(network).some((key) => key !== \"mode\")\n ) {\n fail(\"network\")\n }\n}\n\nfunction validateNetworkTarget(target: unknown): void {\n if (\n !isPlainRecord(target) ||\n typeof target.name !== \"string\" ||\n !target.name.trim() ||\n typeof target.origin !== \"string\" ||\n Object.keys(target).some((key) => key !== \"name\" && key !== \"origin\")\n ) {\n fail(\"network target\")\n }\n const url = parseUrl(target.origin, \"network origin\")\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.origin !== target.origin) {\n fail(\"network origin\")\n }\n}\n\nfunction parseUrl(value: string, field: string): URL {\n try {\n return new URL(value)\n } catch {\n return fail(field)\n }\n}\n\nfunction deepFreeze(value: object, seen = new Set<object>()): void {\n if (seen.has(value)) return\n seen.add(value)\n for (const child of Object.values(value)) {\n if (child !== null && typeof child === \"object\") deepFreeze(child, seen)\n }\n Object.freeze(value)\n}\n",
7
+ "import type { ParamsConfig } from \"../shared/params/types\"\nimport { captureEnvironment, type SandboxConfig } from \"./configuration\"\nimport { SandboxError } from \"./errors\"\n\n/** Extract only the common recipe; provider credentials and infrastructure stay on the factory. */\nexport function sandboxConfig<TParams extends ParamsConfig>(\n options: SandboxConfig<TParams>\n): SandboxConfig<TParams> {\n if (options.auth !== undefined && typeof options.auth?.authorize !== \"function\") {\n throw new SandboxError(\"[Sixb] sandboxes.auth requires an authorize function.\")\n }\n const authorize = options.auth?.authorize.bind(options.auth)\n if (options.params !== undefined && options.resolve === undefined) {\n throw new SandboxError(\"[Sixb] Sandbox params require a resolve function.\")\n }\n if (options.resolve !== undefined && typeof options.resolve !== \"function\") {\n throw new SandboxError(\"[Sixb] Sandbox resolve must be a function.\")\n }\n if (\n options.resolve !== undefined &&\n (options.source !== undefined || options.setup !== undefined)\n ) {\n throw new SandboxError(\"[Sixb] Use either static source/setup or resolve, not both.\")\n }\n const environment = captureEnvironment({\n ...(options.source === undefined ? {} : { source: options.source }),\n ...(options.setup === undefined ? {} : { setup: options.setup }),\n ...(options.env === undefined ? {} : { env: options.env }),\n ...(options.network === undefined ? {} : { network: options.network }),\n })\n return Object.freeze({\n ...(authorize ? { auth: Object.freeze({ authorize }) } : {}),\n ...environment,\n ...(options.params === undefined ? {} : { params: structuredClone(options.params) }),\n ...(options.resolve === undefined ? {} : { resolve: options.resolve }),\n })\n}\n",
8
+ "import { posix } from \"node:path\"\nimport type { ParamsConfig } from \"../shared/params/types\"\nimport type { SandboxConfig } from \"./configuration\"\nimport { captureEnvironment, type SandboxEnvironment } from \"./configuration\"\nimport { SandboxError } from \"./errors\"\nimport type { CreateSandboxOptions, Sandbox } from \"./sandbox\"\n\n/** Select and validate before provisioning. Only the execution runtime may resolve a recipe. */\nexport function sandboxCreationEnvironment<TParams extends ParamsConfig>(\n configuration: SandboxConfig<TParams>,\n options: CreateSandboxOptions\n): Pick<SandboxEnvironment, \"source\" | \"setup\"> {\n if (options.environment === undefined && configuration.resolve !== undefined) {\n throw new SandboxError(\n \"[Sixb] Dynamic sandbox configuration requires an execution-resolved environment.\"\n )\n }\n const environment = captureEnvironment(\n options.environment !== undefined\n ? options.environment\n : {\n ...(configuration.source === undefined ? {} : { source: configuration.source }),\n ...(configuration.setup === undefined ? {} : { setup: configuration.setup }),\n }\n )\n if (environment.env !== undefined || environment.network !== undefined) {\n throw new SandboxError(\n \"[Sixb] Pass env and network as sandbox session options, not environment.\"\n )\n }\n if (environment.source) {\n if (\n (configuration.auth !== undefined || environment.source.access === \"write\") &&\n !options.requestCredentials?.length\n ) {\n throw new SandboxError(\n \"[Sixb] Sandbox source authentication requires execution-prepared request credentials.\"\n )\n }\n const network = options.network ?? configuration.network ?? { mode: \"none\" }\n const origin = new URL(environment.source.url).origin\n if (\n network.mode === \"none\" ||\n (network.mode === \"restricted\" && !network.allow.some((target) => target.origin === origin))\n ) {\n throw new SandboxError(\"[Sixb] Sandbox network policy denies the source origin.\")\n }\n }\n options.signal?.throwIfAborted()\n return environment\n}\n\n/** Select the same project directory on creation and resume without touching saved files. */\nexport function sandboxProjectDirectory(session: Sandbox, hasSource: boolean): Sandbox {\n if (!hasSource) return session\n const workingDirectory = posix.join(session.workingDirectory, \"repository\")\n return {\n id: session.id,\n provider: session.provider,\n get status() {\n return session.status\n },\n workingDirectory,\n ...(session.setRequestCredentials\n ? { setRequestCredentials: session.setRequestCredentials.bind(session) }\n : {}),\n runCommand: (command, args, options) =>\n session.runCommand(command, args, { ...options, cwd: options?.cwd ?? workingDirectory }),\n writeFiles: (files) =>\n session.writeFiles(\n files.map((file) => ({\n ...file,\n path: posix.isAbsolute(file.path) ? file.path : posix.join(workingDirectory, file.path),\n }))\n ),\n stop: () => session.stop(),\n destroy: () => session.destroy(),\n }\n}\n\n/** Provider-side initialization, after the session network/credentials have been applied.\n * Call only on fresh creation. The caller owns cleanup if any command fails.\n */\nexport async function initializeSandboxEnvironment(\n session: Sandbox,\n environment: Pick<SandboxEnvironment, \"source\" | \"setup\">,\n signal?: AbortSignal\n): Promise<Sandbox> {\n environment = captureEnvironment(environment)\n const run = async (sandbox: Sandbox, command: string, args: readonly string[]) => {\n signal?.throwIfAborted()\n const result = await sandbox.runCommand(command, args, { timeout: 120_000, signal })\n if (result.exitCode !== 0 || result.timedOut) {\n throw new SandboxError(\"[Sixb] Sandbox environment initialization failed.\")\n }\n }\n signal?.throwIfAborted()\n const sandbox = sandboxProjectDirectory(session, environment.source !== undefined)\n if (environment.source) {\n await run(session, \"git\", [\"clone\", \"--\", environment.source.url, \"repository\"])\n if (environment.source.revision) {\n await run(sandbox, \"git\", [\"checkout\", environment.source.revision, \"--\"])\n }\n }\n for (const command of environment.setup ?? []) await run(sandbox, \"bash\", [\"-lc\", command])\n return sandbox\n}\n",
9
+ "import type { CommandResult } from \"./sandbox\"\n\nexport interface ExecOptions {\n readonly argv: readonly string[]\n readonly cwd: string\n readonly env: Readonly<Record<string, string>>\n readonly timeoutMs?: number\n readonly signal?: AbortSignal\n}\n\nconst DEFAULT_KILL_EXIT_CODE = 137\n\n/**\n * Spawn a child process and gather its {@link CommandResult}. Wraps Bun.spawn with timeout and\n * AbortSignal handling, and never throws. Command-agnostic: the wrapper makes no assumptions about\n * what it spawns, so sandbox providers share it. On timeout/abort it SIGKILLs the spawned process;\n * any provider whose spawned process merely fronts a longer-lived resource (e.g. a VM) is\n * responsible for reaping that resource in its own stop()/destroy().\n */\nexport async function exec(options: ExecOptions): Promise<CommandResult> {\n const start = Date.now()\n\n const [head, ...rest] = options.argv\n if (!head) {\n return {\n exitCode: 1,\n stdout: \"\",\n stderr: \"[Sandbox] empty argv\",\n durationMs: 0,\n }\n }\n\n let proc: ReturnType<typeof Bun.spawn>\n try {\n proc = Bun.spawn([head, ...rest], {\n cwd: options.cwd,\n env: options.env,\n stdin: \"ignore\",\n stdout: \"pipe\",\n stderr: \"pipe\",\n })\n } catch (error) {\n return {\n exitCode: 127,\n stdout: \"\",\n stderr: error instanceof Error ? error.message : String(error),\n durationMs: Date.now() - start,\n }\n }\n\n let timedOut = false\n let killed = false\n\n const timer =\n options.timeoutMs !== undefined && options.timeoutMs > 0\n ? setTimeout(() => {\n timedOut = true\n killed = true\n proc.kill(\"SIGKILL\")\n }, options.timeoutMs)\n : undefined\n\n const onAbort = (): void => {\n if (!killed) {\n killed = true\n proc.kill(\"SIGKILL\")\n }\n }\n options.signal?.addEventListener(\"abort\", onAbort)\n if (options.signal?.aborted) {\n onAbort()\n }\n\n let stdout = \"\"\n let stderr = \"\"\n let exitCode = 0\n try {\n const [stdoutText, stderrText, code] = await Promise.all([\n new Response(proc.stdout as ReadableStream<Uint8Array>).text(),\n new Response(proc.stderr as ReadableStream<Uint8Array>).text(),\n proc.exited,\n ])\n stdout = stdoutText\n stderr = stderrText\n exitCode = typeof code === \"number\" ? code : DEFAULT_KILL_EXIT_CODE\n } finally {\n if (timer !== undefined) clearTimeout(timer)\n options.signal?.removeEventListener(\"abort\", onAbort)\n }\n\n if (killed && exitCode === 0) {\n exitCode = DEFAULT_KILL_EXIT_CODE\n }\n\n return {\n exitCode,\n stdout,\n stderr,\n durationMs: Date.now() - start,\n ...(timedOut ? { timedOut: true } : {}),\n }\n}\n"
10
+ ],
11
+ "mappings": "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",
12
+ "debugId": "C3376C4D866A438264756E2164756E21",
13
+ "names": []
14
+ }
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  captureSixbFailure2
4
- } from "./chunk-f4w3yp4f.js";
4
+ } from "./chunk-hzw7yv5g.js";
5
5
 
6
6
  // src/error-reporting/normalize.ts
7
7
  function safeString(value) {
@@ -178,7 +178,15 @@ function reportRuleEvaluationFailure3(reporter, error, input) {
178
178
  ...input.subject === undefined ? {} : { subject: input.subject }
179
179
  });
180
180
  }
181
+ function reportVectorIndexingFailure2(reporter, error, input) {
182
+ reporter.report(error, {
183
+ ...input,
184
+ type: "vector.indexing.failed",
185
+ occurredAt: input.failure.at,
186
+ notificationId: `vector-indexing:${input.projectId}:${input.indexingId}`
187
+ });
188
+ }
181
189
 
182
- export { normalizeReportedError2, SixbErrorReporter2, reportRunFailure3, reportActionPhaseFailure3, reportEventDeliveryFailure3, reportRuleEvaluationFailure3 };
190
+ export { normalizeReportedError2, SixbErrorReporter2, reportRunFailure3, reportActionPhaseFailure3, reportEventDeliveryFailure3, reportRuleEvaluationFailure3, reportVectorIndexingFailure2 };
183
191
 
184
- //# debugId=866F2695F864388E64756E2164756E21
192
+ //# debugId=7DDB4B995793DF2C64756E2164756E21
@@ -4,9 +4,9 @@
4
4
  "sourcesContent": [
5
5
  "function safeString(value: unknown): string {\n try {\n return String(value)\n } catch {\n return \"Unknown thrown value\"\n }\n}\n\n/** Preserve native errors and safely wrap arbitrary thrown values. */\nexport function normalizeReportedError(value: unknown): Error {\n if (value instanceof Error) {\n return value\n }\n\n if (typeof value === \"object\" && value !== null) {\n let message: unknown\n let name: unknown\n try {\n message = Reflect.get(value, \"message\")\n name = Reflect.get(value, \"name\")\n } catch {\n return new Error(\"Unknown thrown value\")\n }\n\n if (typeof message === \"string\") {\n const error = new Error(message)\n if (typeof name === \"string\" && name.trim()) {\n error.name = name\n }\n return error\n }\n }\n\n return new Error(safeString(value))\n}\n",
6
6
  "import { normalizeReportedError } from \"./normalize\"\nimport type { SixbErrorContext, SixbErrorHandler } from \"./types\"\n\nconst DEFAULT_FLUSH_TIMEOUT_MS = 5_000\n\nexport interface ErrorReporter {\n report(error: unknown, context: SixbErrorContext): void\n}\n\n/** Failure-isolated, non-blocking adapter around the configured callback. */\nexport class SixbErrorReporter implements ErrorReporter {\n private readonly pending = new Set<Promise<void>>()\n\n constructor(private readonly handler?: SixbErrorHandler) {}\n\n report(error: unknown, context: SixbErrorContext): void {\n const normalizedError = normalizeReportedError(error)\n if (!this.handler) {\n reportToConsole(normalizedError, context)\n return\n }\n\n const invocation = Promise.resolve()\n .then(() => this.handler?.(normalizedError, context))\n .then(() => undefined)\n .catch((handlerError) => {\n try {\n console.error(\"[Sixb] onError handler failed:\", handlerError)\n } catch {\n // Error reporting must never escape back into framework execution.\n }\n })\n\n const tracked = invocation.finally(() => {\n this.pending.delete(tracked)\n })\n this.pending.add(tracked)\n }\n\n async flush(timeoutMs = DEFAULT_FLUSH_TIMEOUT_MS): Promise<void> {\n const deadline = Date.now() + Math.max(0, timeoutMs)\n while (this.pending.size > 0) {\n const remainingMs = deadline - Date.now()\n if (remainingMs <= 0 || !(await settleWithin([...this.pending], remainingMs))) {\n try {\n console.error(\n `[Sixb] Timed out after ${timeoutMs}ms waiting for ${this.pending.size} onError handler(s).`\n )\n } catch {\n // Error reporting must never escape back into framework shutdown.\n }\n return\n }\n }\n }\n}\n\nfunction reportToConsole(error: Error, context: SixbErrorContext): void {\n try {\n console.error(`[Sixb] Unhandled ${context.type}:`, error, context)\n } catch {\n // Error reporting must never escape back into framework execution.\n }\n}\n\nasync function settleWithin(\n promises: readonly Promise<void>[],\n timeoutMs: number\n): Promise<boolean> {\n let timeout: ReturnType<typeof setTimeout> | undefined\n try {\n return await Promise.race([\n Promise.allSettled(promises).then(() => true),\n new Promise<false>((resolve) => {\n timeout = setTimeout(() => resolve(false), timeoutMs)\n }),\n ])\n } finally {\n if (timeout) clearTimeout(timeout)\n }\n}\n",
7
- "import { randomUUID } from \"node:crypto\"\nimport { captureSixbFailure } from \"../errors/internal\"\nimport type { SixbFailure } from \"../errors/types\"\nimport type { ActionRunFailure } from \"../storage/action-runs\"\nimport type { ErrorReporter } from \"./reporter\"\nimport type { SixbFailedRun } from \"./types\"\n\nfunction resolveOccurredAt(occurredAt?: Date | string): string {\n if (occurredAt instanceof Date) return occurredAt.toISOString()\n return occurredAt ?? new Date().toISOString()\n}\n\nexport type ReportRunFailureInput = SixbFailedRun & {\n readonly projectId: string\n readonly attempt?: number\n}\n\nexport function reportRunFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportRunFailureInput\n): void {\n const occurredAt = input.failure.at\n reporter.report(error, {\n ...input,\n type: \"run.failed\",\n notificationId: `project:${input.projectId}:run:${input.runKind}:${input.run.runId}:failed:${occurredAt}`,\n occurredAt,\n })\n}\n\nexport interface ReportActionPhaseFailureInput {\n readonly projectId: string\n readonly actionId: string\n readonly runId: string\n readonly phase: \"effects\"\n readonly failure: ActionRunFailure<\"effects\">\n}\n\nexport function reportActionPhaseFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportActionPhaseFailureInput\n): void {\n reporter.report(error, {\n type: \"action.phase.failed\",\n notificationId: `project:${input.projectId}:action:${input.actionId}:run:${input.runId}:phase:${input.phase}:failed:${input.failure.at}`,\n projectId: input.projectId,\n occurredAt: input.failure.at,\n actionId: input.actionId,\n runId: input.runId,\n phase: input.phase,\n failure: input.failure,\n })\n}\n\nexport interface ReportEventDeliveryFailureInput {\n readonly projectId: string\n /** Exact durable failure when this delivery was persisted by the ontology outbox. */\n readonly failure?: SixbFailure<\"event.delivery_failed\">\n /** Event types that never reached subscribers. Payloads must not be passed in. */\n readonly eventTypes: readonly string[]\n readonly occurredAt?: Date | string\n /** Delivery attempts so far. Defaults to 1, which is right for a rejected emit. */\n readonly attempts?: number\n /** Envelope ids, when the events were persisted before delivery failed. */\n readonly eventIds?: readonly string[]\n /**\n * Identity of this loss, used only when nothing was persisted. Defaults to a fresh id; pass one to\n * make a report reproducible in a test.\n */\n readonly occurrenceId?: string\n}\n\n/**\n * Report that domain events were lost.\n *\n * Both delivery paths land here: the outbox dispatcher, which has persisted envelope ids and retries,\n * and a rejected `events.emit()`, which has only the types. Reporting must work for both — an earlier\n * version returned early on an empty `eventIds`, which silently dropped exactly the case this exists\n * to surface.\n *\n * Each path keys on the strongest identity it has. The outbox persisted its envelopes, so the ids plus\n * the attempt number name the loss exactly and stay stable if one report is delivered twice. A rejected\n * emit persisted nothing and is always terminal at attempt 1, so the type list alone was its whole\n * correlation — and two schedules losing `schedule.triggered` in the same broker outage are dispatched\n * concurrently, land in the same millisecond, and were therefore one notification. A timestamp does not\n * fix that; an identity does.\n */\nexport function reportEventDeliveryFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportEventDeliveryFailureInput\n): void {\n const occurredAt = input.failure?.at ?? resolveOccurredAt(input.occurredAt)\n const attempts = input.attempts ?? 1\n const eventIds = input.eventIds === undefined ? undefined : [...input.eventIds].sort()\n const eventTypes = [...input.eventTypes]\n const failure =\n input.failure ??\n captureSixbFailure(error, {\n allowedCodes: [\"event.delivery_failed\"],\n defaultCode: \"event.delivery_failed\",\n details: {\n attempts,\n eventTypes,\n ...(eventIds === undefined ? {} : { eventIds }),\n },\n at: new Date(occurredAt),\n })\n const firstEventId = eventIds?.[0]\n const occurrence = firstEventId\n ? `events:${firstEventId}:attempt:${attempts}`\n : `emit:${input.occurrenceId ?? randomUUID()}`\n reporter.report(error, {\n type: \"event.delivery.failed\",\n notificationId: `project:${input.projectId}:event-delivery:${occurrence}`,\n projectId: input.projectId,\n occurredAt,\n failure,\n attempts,\n eventTypes,\n ...(eventIds === undefined ? {} : { eventIds }),\n })\n}\n\nexport interface ReportRuleEvaluationFailureInput {\n readonly projectId: string\n readonly source: \"live\" | \"reconciliation\"\n readonly eventIds?: readonly string[]\n readonly occurredAt?: Date | string\n /** Set when the failure could be attributed to one rule/subject candidate. */\n readonly ruleId?: string\n readonly subject?: { readonly objectTypeId: string; readonly primaryId: string }\n}\n\nexport function reportRuleEvaluationFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportRuleEvaluationFailureInput\n): void {\n const occurredAt = resolveOccurredAt(input.occurredAt)\n const eventIds = [...(input.eventIds ?? [])].sort()\n const failure = captureSixbFailure(error, {\n allowedCodes: [\"internal.unexpected\"],\n defaultCode: \"internal.unexpected\",\n details: {\n source: input.source,\n eventIds,\n ...(input.ruleId === undefined ? {} : { ruleId: input.ruleId }),\n ...(input.subject === undefined ? {} : { subject: input.subject }),\n },\n at: new Date(occurredAt),\n })\n // A candidate-level failure keys on the candidate, so two rules failing over the same batch stay\n // two notifications rather than collapsing into one.\n const occurrence =\n input.ruleId && input.subject\n ? `${input.ruleId}:${input.subject.objectTypeId}:${input.subject.primaryId}`\n : (eventIds[0] ?? \"current-state\")\n reporter.report(error, {\n type: \"rule.evaluation.failed\",\n notificationId: `project:${input.projectId}:rule-evaluation:${input.source}:${occurrence}:failed:${occurredAt}`,\n projectId: input.projectId,\n occurredAt,\n failure,\n source: input.source,\n eventIds,\n ...(input.ruleId === undefined ? {} : { ruleId: input.ruleId }),\n ...(input.subject === undefined ? {} : { subject: input.subject }),\n })\n}\n"
7
+ "import { randomUUID } from \"node:crypto\"\nimport { captureSixbFailure } from \"../errors/internal\"\nimport type { SixbFailure } from \"../errors/types\"\nimport type { ActionRunFailure } from \"../storage/action-runs\"\nimport type { VectorIndexingFailureCode } from \"../storage/ontology/vector-indexing\"\nimport type { ErrorReporter } from \"./reporter\"\nimport type { SixbFailedRun } from \"./types\"\n\nfunction resolveOccurredAt(occurredAt?: Date | string): string {\n if (occurredAt instanceof Date) return occurredAt.toISOString()\n return occurredAt ?? new Date().toISOString()\n}\n\nexport type ReportRunFailureInput = SixbFailedRun & {\n readonly projectId: string\n readonly attempt?: number\n}\n\nexport function reportRunFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportRunFailureInput\n): void {\n const occurredAt = input.failure.at\n reporter.report(error, {\n ...input,\n type: \"run.failed\",\n notificationId: `project:${input.projectId}:run:${input.runKind}:${input.run.runId}:failed:${occurredAt}`,\n occurredAt,\n })\n}\n\nexport interface ReportActionPhaseFailureInput {\n readonly projectId: string\n readonly actionId: string\n readonly runId: string\n readonly phase: \"effects\"\n readonly failure: ActionRunFailure<\"effects\">\n}\n\nexport function reportActionPhaseFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportActionPhaseFailureInput\n): void {\n reporter.report(error, {\n type: \"action.phase.failed\",\n notificationId: `project:${input.projectId}:action:${input.actionId}:run:${input.runId}:phase:${input.phase}:failed:${input.failure.at}`,\n projectId: input.projectId,\n occurredAt: input.failure.at,\n actionId: input.actionId,\n runId: input.runId,\n phase: input.phase,\n failure: input.failure,\n })\n}\n\nexport interface ReportEventDeliveryFailureInput {\n readonly projectId: string\n /** Exact durable failure when this delivery was persisted by the ontology outbox. */\n readonly failure?: SixbFailure<\"event.delivery_failed\">\n /** Event types that never reached subscribers. Payloads must not be passed in. */\n readonly eventTypes: readonly string[]\n readonly occurredAt?: Date | string\n /** Delivery attempts so far. Defaults to 1, which is right for a rejected emit. */\n readonly attempts?: number\n /** Envelope ids, when the events were persisted before delivery failed. */\n readonly eventIds?: readonly string[]\n /**\n * Identity of this loss, used only when nothing was persisted. Defaults to a fresh id; pass one to\n * make a report reproducible in a test.\n */\n readonly occurrenceId?: string\n}\n\n/**\n * Report that domain events were lost.\n *\n * Both delivery paths land here: the outbox dispatcher, which has persisted envelope ids and retries,\n * and a rejected `events.emit()`, which has only the types. Reporting must work for both — an earlier\n * version returned early on an empty `eventIds`, which silently dropped exactly the case this exists\n * to surface.\n *\n * Each path keys on the strongest identity it has. The outbox persisted its envelopes, so the ids plus\n * the attempt number name the loss exactly and stay stable if one report is delivered twice. A rejected\n * emit persisted nothing and is always terminal at attempt 1, so the type list alone was its whole\n * correlation — and two schedules losing `schedule.triggered` in the same broker outage are dispatched\n * concurrently, land in the same millisecond, and were therefore one notification. A timestamp does not\n * fix that; an identity does.\n */\nexport function reportEventDeliveryFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportEventDeliveryFailureInput\n): void {\n const occurredAt = input.failure?.at ?? resolveOccurredAt(input.occurredAt)\n const attempts = input.attempts ?? 1\n const eventIds = input.eventIds === undefined ? undefined : [...input.eventIds].sort()\n const eventTypes = [...input.eventTypes]\n const failure =\n input.failure ??\n captureSixbFailure(error, {\n allowedCodes: [\"event.delivery_failed\"],\n defaultCode: \"event.delivery_failed\",\n details: {\n attempts,\n eventTypes,\n ...(eventIds === undefined ? {} : { eventIds }),\n },\n at: new Date(occurredAt),\n })\n const firstEventId = eventIds?.[0]\n const occurrence = firstEventId\n ? `events:${firstEventId}:attempt:${attempts}`\n : `emit:${input.occurrenceId ?? randomUUID()}`\n reporter.report(error, {\n type: \"event.delivery.failed\",\n notificationId: `project:${input.projectId}:event-delivery:${occurrence}`,\n projectId: input.projectId,\n occurredAt,\n failure,\n attempts,\n eventTypes,\n ...(eventIds === undefined ? {} : { eventIds }),\n })\n}\n\nexport interface ReportRuleEvaluationFailureInput {\n readonly projectId: string\n readonly source: \"live\" | \"reconciliation\"\n readonly eventIds?: readonly string[]\n readonly occurredAt?: Date | string\n /** Set when the failure could be attributed to one rule/subject candidate. */\n readonly ruleId?: string\n readonly subject?: { readonly objectTypeId: string; readonly primaryId: string }\n}\n\nexport function reportRuleEvaluationFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportRuleEvaluationFailureInput\n): void {\n const occurredAt = resolveOccurredAt(input.occurredAt)\n const eventIds = [...(input.eventIds ?? [])].sort()\n const failure = captureSixbFailure(error, {\n allowedCodes: [\"internal.unexpected\"],\n defaultCode: \"internal.unexpected\",\n details: {\n source: input.source,\n eventIds,\n ...(input.ruleId === undefined ? {} : { ruleId: input.ruleId }),\n ...(input.subject === undefined ? {} : { subject: input.subject }),\n },\n at: new Date(occurredAt),\n })\n // A candidate-level failure keys on the candidate, so two rules failing over the same batch stay\n // two notifications rather than collapsing into one.\n const occurrence =\n input.ruleId && input.subject\n ? `${input.ruleId}:${input.subject.objectTypeId}:${input.subject.primaryId}`\n : (eventIds[0] ?? \"current-state\")\n reporter.report(error, {\n type: \"rule.evaluation.failed\",\n notificationId: `project:${input.projectId}:rule-evaluation:${input.source}:${occurrence}:failed:${occurredAt}`,\n projectId: input.projectId,\n occurredAt,\n failure,\n source: input.source,\n eventIds,\n ...(input.ruleId === undefined ? {} : { ruleId: input.ruleId }),\n ...(input.subject === undefined ? {} : { subject: input.subject }),\n })\n}\n\nexport interface ReportVectorIndexingFailureInput {\n readonly projectId: string\n readonly indexingId: string\n readonly failure: SixbFailure<VectorIndexingFailureCode>\n readonly objectTypeId: string\n readonly primaryId: string\n readonly profile: string\n}\n\nexport function reportVectorIndexingFailure(\n reporter: ErrorReporter,\n error: unknown,\n input: ReportVectorIndexingFailureInput\n): void {\n reporter.report(error, {\n ...input,\n type: \"vector.indexing.failed\",\n occurredAt: input.failure.at,\n notificationId: `vector-indexing:${input.projectId}:${input.indexingId}`,\n })\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "866F2695F864388E64756E2164756E21",
9
+ "mappings": ";;;;;;AAAA,SAAS,UAAU,CAAC,OAAwB;AAAA,EAC1C,IAAI;AAAA,IACF,OAAO,OAAO,KAAK;AAAA,IACnB,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKJ,SAAS,uBAAsB,CAAC,OAAuB;AAAA,EAC5D,IAAI,iBAAiB,OAAO;AAAA,IAC1B,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,IAC/C,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,UAAU,QAAQ,IAAI,OAAO,SAAS;AAAA,MACtC,OAAO,QAAQ,IAAI,OAAO,MAAM;AAAA,MAChC,MAAM;AAAA,MACN,OAAO,IAAI,MAAM,sBAAsB;AAAA;AAAA,IAGzC,IAAI,OAAO,YAAY,UAAU;AAAA,MAC/B,MAAM,QAAQ,IAAI,MAAM,OAAO;AAAA,MAC/B,IAAI,OAAO,SAAS,YAAY,KAAK,KAAK,GAAG;AAAA,QAC3C,MAAM,OAAO;AAAA,MACf;AAAA,MACA,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO,IAAI,MAAM,WAAW,KAAK,CAAC;AAAA;;;AC9BpC,IAAM,2BAA2B;AAAA;AAO1B,MAAM,mBAA2C;AAAA,EAGzB;AAAA,EAFZ,UAAU,IAAI;AAAA,EAE/B,WAAW,CAAkB,SAA4B;AAAA,IAA5B;AAAA;AAAA,EAE7B,MAAM,CAAC,OAAgB,SAAiC;AAAA,IACtD,MAAM,kBAAkB,wBAAuB,KAAK;AAAA,IACpD,IAAI,CAAC,KAAK,SAAS;AAAA,MACjB,gBAAgB,iBAAiB,OAAO;AAAA,MACxC;AAAA,IACF;AAAA,IAEA,MAAM,aAAa,QAAQ,QAAQ,EAChC,KAAK,MAAM,KAAK,UAAU,iBAAiB,OAAO,CAAC,EACnD,KAAK,MAAG;AAAA,MAAG;AAAA,KAAS,EACpB,MAAM,CAAC,iBAAiB;AAAA,MACvB,IAAI;AAAA,QACF,QAAQ,MAAM,kCAAkC,YAAY;AAAA,QAC5D,MAAM;AAAA,KAGT;AAAA,IAEH,MAAM,UAAU,WAAW,QAAQ,MAAM;AAAA,MACvC,KAAK,QAAQ,OAAO,OAAO;AAAA,KAC5B;AAAA,IACD,KAAK,QAAQ,IAAI,OAAO;AAAA;AAAA,OAGpB,MAAK,CAAC,YAAY,0BAAyC;AAAA,IAC/D,MAAM,WAAW,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,SAAS;AAAA,IACnD,OAAO,KAAK,QAAQ,OAAO,GAAG;AAAA,MAC5B,MAAM,cAAc,WAAW,KAAK,IAAI;AAAA,MACxC,IAAI,eAAe,KAAK,CAAE,MAAM,aAAa,CAAC,GAAG,KAAK,OAAO,GAAG,WAAW,GAAI;AAAA,QAC7E,IAAI;AAAA,UACF,QAAQ,MACN,0BAA0B,2BAA2B,KAAK,QAAQ,0BACpE;AAAA,UACA,MAAM;AAAA,QAGR;AAAA,MACF;AAAA,IACF;AAAA;AAEJ;AAEA,SAAS,eAAe,CAAC,OAAc,SAAiC;AAAA,EACtE,IAAI;AAAA,IACF,QAAQ,MAAM,oBAAoB,QAAQ,SAAS,OAAO,OAAO;AAAA,IACjE,MAAM;AAAA;AAKV,eAAe,YAAY,CACzB,UACA,WACkB;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,OAAO,MAAM,QAAQ,KAAK;AAAA,MACxB,QAAQ,WAAW,QAAQ,EAAE,KAAK,MAAM,IAAI;AAAA,MAC5C,IAAI,QAAe,CAAC,YAAY;AAAA,QAC9B,UAAU,WAAW,MAAM,QAAQ,KAAK,GAAG,SAAS;AAAA,OACrD;AAAA,IACH,CAAC;AAAA,YACD;AAAA,IACA,IAAI;AAAA,MAAS,aAAa,OAAO;AAAA;AAAA;;;AC9ErC;AAQA,SAAS,iBAAiB,CAAC,YAAoC;AAAA,EAC7D,IAAI,sBAAsB;AAAA,IAAM,OAAO,WAAW,YAAY;AAAA,EAC9D,OAAO,cAAc,IAAI,KAAK,EAAE,YAAY;AAAA;AAQvC,SAAS,iBAAgB,CAC9B,UACA,OACA,OACM;AAAA,EACN,MAAM,aAAa,MAAM,QAAQ;AAAA,EACjC,SAAS,OAAO,OAAO;AAAA,OAClB;AAAA,IACH,MAAM;AAAA,IACN,gBAAgB,WAAW,MAAM,iBAAiB,MAAM,WAAW,MAAM,IAAI,gBAAgB;AAAA,IAC7F;AAAA,EACF,CAAC;AAAA;AAWI,SAAS,yBAAwB,CACtC,UACA,OACA,OACM;AAAA,EACN,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,gBAAgB,WAAW,MAAM,oBAAoB,MAAM,gBAAgB,MAAM,eAAe,MAAM,gBAAgB,MAAM,QAAQ;AAAA,IACpI,WAAW,MAAM;AAAA,IACjB,YAAY,MAAM,QAAQ;AAAA,IAC1B,UAAU,MAAM;AAAA,IAChB,OAAO,MAAM;AAAA,IACb,OAAO,MAAM;AAAA,IACb,SAAS,MAAM;AAAA,EACjB,CAAC;AAAA;AAoCI,SAAS,2BAA0B,CACxC,UACA,OACA,OACM;AAAA,EACN,MAAM,aAAa,MAAM,SAAS,MAAM,kBAAkB,MAAM,UAAU;AAAA,EAC1E,MAAM,WAAW,MAAM,YAAY;AAAA,EACnC,MAAM,WAAW,MAAM,aAAa,YAAY,YAAY,CAAC,GAAG,MAAM,QAAQ,EAAE,KAAK;AAAA,EACrF,MAAM,aAAa,CAAC,GAAG,MAAM,UAAU;AAAA,EACvC,MAAM,UACJ,MAAM,WACN,oBAAmB,OAAO;AAAA,IACxB,cAAc,CAAC,uBAAuB;AAAA,IACtC,aAAa;AAAA,IACb,SAAS;AAAA,MACP;AAAA,MACA;AAAA,SACI,aAAa,YAAY,CAAC,IAAI,EAAE,SAAS;AAAA,IAC/C;AAAA,IACA,IAAI,IAAI,KAAK,UAAU;AAAA,EACzB,CAAC;AAAA,EACH,MAAM,eAAe,WAAW;AAAA,EAChC,MAAM,aAAa,eACf,UAAU,wBAAwB,aAClC,QAAQ,MAAM,gBAAgB,WAAW;AAAA,EAC7C,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,gBAAgB,WAAW,MAAM,4BAA4B;AAAA,IAC7D,WAAW,MAAM;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,OACI,aAAa,YAAY,CAAC,IAAI,EAAE,SAAS;AAAA,EAC/C,CAAC;AAAA;AAaI,SAAS,4BAA2B,CACzC,UACA,OACA,OACM;AAAA,EACN,MAAM,aAAa,kBAAkB,MAAM,UAAU;AAAA,EACrD,MAAM,WAAW,CAAC,GAAI,MAAM,YAAY,CAAC,CAAE,EAAE,KAAK;AAAA,EAClD,MAAM,UAAU,oBAAmB,OAAO;AAAA,IACxC,cAAc,CAAC,qBAAqB;AAAA,IACpC,aAAa;AAAA,IACb,SAAS;AAAA,MACP,QAAQ,MAAM;AAAA,MACd;AAAA,SACI,MAAM,WAAW,YAAY,CAAC,IAAI,EAAE,QAAQ,MAAM,OAAO;AAAA,SACzD,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,IAClE;AAAA,IACA,IAAI,IAAI,KAAK,UAAU;AAAA,EACzB,CAAC;AAAA,EAGD,MAAM,aACJ,MAAM,UAAU,MAAM,UAClB,GAAG,MAAM,UAAU,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,cAC9D,SAAS,MAAM;AAAA,EACtB,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,gBAAgB,WAAW,MAAM,6BAA6B,MAAM,UAAU,qBAAqB;AAAA,IACnG,WAAW,MAAM;AAAA,IACjB;AAAA,IACA;AAAA,IACA,QAAQ,MAAM;AAAA,IACd;AAAA,OACI,MAAM,WAAW,YAAY,CAAC,IAAI,EAAE,QAAQ,MAAM,OAAO;AAAA,OACzD,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,EAClE,CAAC;AAAA;AAYI,SAAS,4BAA2B,CACzC,UACA,OACA,OACM;AAAA,EACN,SAAS,OAAO,OAAO;AAAA,OAClB;AAAA,IACH,MAAM;AAAA,IACN,YAAY,MAAM,QAAQ;AAAA,IAC1B,gBAAgB,mBAAmB,MAAM,aAAa,MAAM;AAAA,EAC9D,CAAC;AAAA;",
10
+ "debugId": "7DDB4B995793DF2C64756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -0,0 +1,84 @@
1
+ // @bun
2
+ import {
3
+ normalizeSchemaValue2,
4
+ coerceSchemaValueToTyped2
5
+ } from "./chunk-vsg0g7h9.js";
6
+ import {
7
+ validateSchemaOrRefValue2
8
+ } from "./chunk-vpxss818.js";
9
+ import {
10
+ OntologyValidationError2
11
+ } from "./chunk-cqr3acm1.js";
12
+ import {
13
+ isPlainRecord
14
+ } from "./chunk-wy0qdqfm.js";
15
+
16
+ // src/shared/params/validation.ts
17
+ function normalizeParams(valueTypesById, paramsConfig, params, owner) {
18
+ if (!isPlainRecord(params)) {
19
+ throw new OntologyValidationError2(`[Sixb] ${capitalize(owner.kind)} params must be an object.`);
20
+ }
21
+ const knownParamIds = new Set(Object.keys(paramsConfig));
22
+ const normalized = [];
23
+ for (const paramId of Object.keys(params)) {
24
+ if (!knownParamIds.has(paramId)) {
25
+ throw new OntologyValidationError2(`Unknown param '${paramId}' for ${owner.kind} '${owner.id}'`);
26
+ }
27
+ }
28
+ for (const [paramId, paramDef] of Object.entries(paramsConfig)) {
29
+ const value = Object.hasOwn(params, paramId) ? params[paramId] : undefined;
30
+ if (value === undefined) {
31
+ if (paramDef.required) {
32
+ throw new OntologyValidationError2(`Missing required param '${paramId}' for ${owner.kind} '${owner.id}'`);
33
+ }
34
+ continue;
35
+ }
36
+ const path = `${owner.path ?? owner.id}.${paramId}`;
37
+ if (value === null) {
38
+ if (!paramDef.nullable) {
39
+ throw new OntologyValidationError2(`[Sixb] ${capitalize(owner.kind)} param ${path} cannot be null`);
40
+ }
41
+ normalized.push([paramId, null]);
42
+ continue;
43
+ }
44
+ validateSchemaOrRefValue2(paramDef.schema, value, path, valueTypesById);
45
+ normalized.push([
46
+ paramId,
47
+ normalizeSchemaOrRefValue(paramDef.schema, value, path, valueTypesById)
48
+ ]);
49
+ }
50
+ return Object.fromEntries(normalized);
51
+ }
52
+ function coerceParamsToTyped(paramsConfig, params, valueTypesById) {
53
+ const coerced = { ...params };
54
+ for (const [paramId, paramDef] of Object.entries(paramsConfig)) {
55
+ if (!Object.hasOwn(params, paramId))
56
+ continue;
57
+ const value = params[paramId];
58
+ if (value === undefined)
59
+ continue;
60
+ const schema = paramDef.schema;
61
+ if (typeof schema === "object" && schema !== null && schema.type === "objectRef") {
62
+ continue;
63
+ }
64
+ coerced[paramId] = coerceSchemaValueToTyped2(schema, value, valueTypesById);
65
+ }
66
+ return coerced;
67
+ }
68
+ function normalizeSchemaOrRefValue(schema, value, path, valueTypesById) {
69
+ if (typeof schema === "object" && schema !== null && schema.type === "objectRef") {
70
+ const refValue = value;
71
+ return {
72
+ objectTypeId: refValue.objectTypeId,
73
+ primaryId: refValue.primaryId
74
+ };
75
+ }
76
+ return normalizeSchemaValue2(schema, value, path, valueTypesById);
77
+ }
78
+ function capitalize(value) {
79
+ return value.length === 0 ? value : `${value[0]?.toUpperCase()}${value.slice(1)}`;
80
+ }
81
+
82
+ export { normalizeParams, coerceParamsToTyped };
83
+
84
+ //# debugId=D4E5B3AF980E36C164756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/shared/params/validation.ts"],
4
+ "sourcesContent": [
5
+ "import { isPlainRecord, type JsonValue } from \"../../json\"\nimport type { SchemaOrRef, ValueType } from \"../../ontology\"\nimport { OntologyValidationError } from \"../../ontology/errors\"\nimport { validateSchemaOrRefValue } from \"../../ontology/refs\"\nimport type { Schema } from \"../../ontology/types\"\nimport { coerceSchemaValueToTyped, normalizeSchemaValue } from \"../../ontology/validation\"\nimport type { ParamsConfig } from \"./types\"\n\nexport interface ParamsOwner {\n /** Lowercase singular name used in validation errors, for example `action` or `agent`. */\n readonly kind: string\n readonly id: string\n /** Stable value path passed to ontology validation. Defaults to `id`. */\n readonly path?: string\n}\n\n/** Validate declarative params and normalize them to their durable JSON representation. */\nexport function normalizeParams(\n valueTypesById: ReadonlyMap<string, ValueType>,\n paramsConfig: ParamsConfig,\n params: Record<string, unknown>,\n owner: ParamsOwner\n): Record<string, JsonValue> {\n if (!isPlainRecord(params)) {\n throw new OntologyValidationError(`[Sixb] ${capitalize(owner.kind)} params must be an object.`)\n }\n const knownParamIds = new Set(Object.keys(paramsConfig))\n const normalized: [string, JsonValue][] = []\n\n for (const paramId of Object.keys(params)) {\n if (!knownParamIds.has(paramId)) {\n throw new OntologyValidationError(\n `Unknown param '${paramId}' for ${owner.kind} '${owner.id}'`\n )\n }\n }\n\n for (const [paramId, paramDef] of Object.entries(paramsConfig)) {\n const value = Object.hasOwn(params, paramId) ? params[paramId] : undefined\n\n if (value === undefined) {\n if (paramDef.required) {\n throw new OntologyValidationError(\n `Missing required param '${paramId}' for ${owner.kind} '${owner.id}'`\n )\n }\n continue\n }\n\n const path = `${owner.path ?? owner.id}.${paramId}`\n if (value === null) {\n if (!paramDef.nullable) {\n throw new OntologyValidationError(\n `[Sixb] ${capitalize(owner.kind)} param ${path} cannot be null`\n )\n }\n normalized.push([paramId, null])\n continue\n }\n\n validateSchemaOrRefValue(paramDef.schema, value, path, valueTypesById)\n normalized.push([\n paramId,\n normalizeSchemaOrRefValue(paramDef.schema, value, path, valueTypesById),\n ])\n }\n\n return Object.fromEntries(normalized)\n}\n\n/** Re-hydrate normalized storage values for typed runtime consumers. */\nexport function coerceParamsToTyped(\n paramsConfig: ParamsConfig,\n params: Record<string, unknown>,\n valueTypesById: ReadonlyMap<string, ValueType>\n): Record<string, unknown> {\n const coerced: Record<string, unknown> = { ...params }\n\n for (const [paramId, paramDef] of Object.entries(paramsConfig)) {\n if (!Object.hasOwn(params, paramId)) continue\n const value = params[paramId]\n if (value === undefined) continue\n\n const schema = paramDef.schema\n if (typeof schema === \"object\" && schema !== null && schema.type === \"objectRef\") {\n continue\n }\n\n coerced[paramId] = coerceSchemaValueToTyped(schema as Schema, value, valueTypesById)\n }\n\n return coerced\n}\n\nfunction normalizeSchemaOrRefValue(\n schema: SchemaOrRef,\n value: unknown,\n path: string,\n valueTypesById: ReadonlyMap<string, ValueType>\n): JsonValue {\n if (typeof schema === \"object\" && schema !== null && schema.type === \"objectRef\") {\n const refValue = value as { objectTypeId: string; primaryId: string }\n return {\n objectTypeId: refValue.objectTypeId,\n primaryId: refValue.primaryId,\n }\n }\n\n return normalizeSchemaValue(schema as Schema, value, path, valueTypesById)\n}\n\nfunction capitalize(value: string): string {\n return value.length === 0 ? value : `${value[0]?.toUpperCase()}${value.slice(1)}`\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;AAiBO,SAAS,eAAe,CAC7B,gBACA,cACA,QACA,OAC2B;AAAA,EAC3B,IAAI,CAAC,cAAc,MAAM,GAAG;AAAA,IAC1B,MAAM,IAAI,yBAAwB,UAAU,WAAW,MAAM,IAAI,6BAA6B;AAAA,EAChG;AAAA,EACA,MAAM,gBAAgB,IAAI,IAAI,OAAO,KAAK,YAAY,CAAC;AAAA,EACvD,MAAM,aAAoC,CAAC;AAAA,EAE3C,WAAW,WAAW,OAAO,KAAK,MAAM,GAAG;AAAA,IACzC,IAAI,CAAC,cAAc,IAAI,OAAO,GAAG;AAAA,MAC/B,MAAM,IAAI,yBACR,kBAAkB,gBAAgB,MAAM,SAAS,MAAM,KACzD;AAAA,IACF;AAAA,EACF;AAAA,EAEA,YAAY,SAAS,aAAa,OAAO,QAAQ,YAAY,GAAG;AAAA,IAC9D,MAAM,QAAQ,OAAO,OAAO,QAAQ,OAAO,IAAI,OAAO,WAAW;AAAA,IAEjE,IAAI,UAAU,WAAW;AAAA,MACvB,IAAI,SAAS,UAAU;AAAA,QACrB,MAAM,IAAI,yBACR,2BAA2B,gBAAgB,MAAM,SAAS,MAAM,KAClE;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,IAEA,MAAM,OAAO,GAAG,MAAM,QAAQ,MAAM,MAAM;AAAA,IAC1C,IAAI,UAAU,MAAM;AAAA,MAClB,IAAI,CAAC,SAAS,UAAU;AAAA,QACtB,MAAM,IAAI,yBACR,UAAU,WAAW,MAAM,IAAI,WAAW,qBAC5C;AAAA,MACF;AAAA,MACA,WAAW,KAAK,CAAC,SAAS,IAAI,CAAC;AAAA,MAC/B;AAAA,IACF;AAAA,IAEA,0BAAyB,SAAS,QAAQ,OAAO,MAAM,cAAc;AAAA,IACrE,WAAW,KAAK;AAAA,MACd;AAAA,MACA,0BAA0B,SAAS,QAAQ,OAAO,MAAM,cAAc;AAAA,IACxE,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,OAAO,YAAY,UAAU;AAAA;AAI/B,SAAS,mBAAmB,CACjC,cACA,QACA,gBACyB;AAAA,EACzB,MAAM,UAAmC,KAAK,OAAO;AAAA,EAErD,YAAY,SAAS,aAAa,OAAO,QAAQ,YAAY,GAAG;AAAA,IAC9D,IAAI,CAAC,OAAO,OAAO,QAAQ,OAAO;AAAA,MAAG;AAAA,IACrC,MAAM,QAAQ,OAAO;AAAA,IACrB,IAAI,UAAU;AAAA,MAAW;AAAA,IAEzB,MAAM,SAAS,SAAS;AAAA,IACxB,IAAI,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,SAAS,aAAa;AAAA,MAChF;AAAA,IACF;AAAA,IAEA,QAAQ,WAAW,0BAAyB,QAAkB,OAAO,cAAc;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA;AAGT,SAAS,yBAAyB,CAChC,QACA,OACA,MACA,gBACW;AAAA,EACX,IAAI,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,SAAS,aAAa;AAAA,IAChF,MAAM,WAAW;AAAA,IACjB,OAAO;AAAA,MACL,cAAc,SAAS;AAAA,MACvB,WAAW,SAAS;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,OAAO,sBAAqB,QAAkB,OAAO,MAAM,cAAc;AAAA;AAG3E,SAAS,UAAU,CAAC,OAAuB;AAAA,EACzC,OAAO,MAAM,WAAW,IAAI,QAAQ,GAAG,MAAM,IAAI,YAAY,IAAI,MAAM,MAAM,CAAC;AAAA;",
8
+ "debugId": "D4E5B3AF980E36C164756E2164756E21",
9
+ "names": []
10
+ }