@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,268 @@
1
+ import { isPlainRecord } from "../json"
2
+ import type { OntologyRegistry } from "../ontology/registry"
3
+ import { assertValidSchema } from "../ontology/validation/definition"
4
+ import type { Sixb } from "../runtime/sixb"
5
+ import type { InferParams, ParamsConfig } from "../shared/params/types"
6
+ import { coerceParamsToTyped, normalizeParams } from "../shared/params/validation"
7
+ import type { SandboxSourceAuth } from "./auth"
8
+ import { SandboxError } from "./errors"
9
+ import type { SandboxNetworkPolicy } from "./sandbox"
10
+
11
+ /** Static recipes accept an empty parameter record, not arbitrary undeclared keys. */
12
+ export type InferSandboxParams<TParams extends ParamsConfig> = keyof TParams extends never
13
+ ? Record<string, never>
14
+ : InferParams<TParams>
15
+
16
+ /** Initial project contents, independent from the provider's runtime image or saved state. */
17
+ export interface SandboxSource {
18
+ readonly type: "git"
19
+ readonly url: string
20
+ readonly revision?: string
21
+ readonly access?: "read" | "write"
22
+ }
23
+
24
+ /** Host-side recipe. Environment values are guest-readable, never a Git credential channel. */
25
+ export interface SandboxEnvironment {
26
+ readonly source?: SandboxSource
27
+ readonly setup?: readonly string[]
28
+ readonly env?: Readonly<Record<string, string>>
29
+ readonly network?: SandboxNetworkPolicy
30
+ }
31
+
32
+ export interface SandboxResolveContext<TParams = Record<string, unknown>> {
33
+ readonly params: TParams
34
+ /** Bound to the current execution; a stored binding is not authorization. */
35
+ readonly sixb: Sixb
36
+ }
37
+
38
+ // The recipe both declares and consumes this schema: keep it invariant instead of asking
39
+ // TypeScript to compare the recursive ontology inference through callback variance.
40
+ // Provider option interfaces must preserve this annotation when extending the config.
41
+ export interface SandboxConfig<in out TParams extends ParamsConfig = ParamsConfig>
42
+ extends SandboxEnvironment {
43
+ readonly auth?: SandboxSourceAuth
44
+ readonly params?: TParams
45
+ readonly resolve?: (
46
+ context: SandboxResolveContext<InferParams<NoInfer<TParams>>>
47
+ ) => SandboxEnvironment | Promise<SandboxEnvironment>
48
+ }
49
+
50
+ /** Registered project recipe; only thread params cross the durable boundary. */
51
+ export interface SandboxDefinition {
52
+ readonly auth?: SandboxSourceAuth
53
+ readonly params: ParamsConfig
54
+ readonly resolve: (context: SandboxResolveContext) => Promise<SandboxEnvironment>
55
+ }
56
+
57
+ export function createSandboxDefinition<TParams extends ParamsConfig>(
58
+ config: SandboxConfig<TParams>,
59
+ ontology: OntologyRegistry
60
+ ): SandboxDefinition {
61
+ const raw: unknown = config
62
+ if (
63
+ !isPlainRecord(raw) ||
64
+ (config.params !== undefined && !isPlainRecord(raw.params)) ||
65
+ (config.resolve !== undefined && typeof config.resolve !== "function")
66
+ ) {
67
+ throw new SandboxError(
68
+ "[Sixb] Sandbox configuration requires a params object and a callable resolver when provided."
69
+ )
70
+ }
71
+ for (const key of Object.keys(config)) {
72
+ if (!["params", "resolve", "source", "setup", "env", "network", "auth"].includes(key)) {
73
+ throw new SandboxError("[Sixb] Unknown sandbox configuration field.")
74
+ }
75
+ }
76
+ if (config.auth !== undefined && typeof config.auth?.authorize !== "function") {
77
+ throw new SandboxError("[Sixb] sandboxes.auth requires an authorize function.")
78
+ }
79
+ if (config.params !== undefined && config.resolve === undefined) {
80
+ throw new SandboxError("[Sixb] Sandbox params require a resolve function.")
81
+ }
82
+ if (config.resolve !== undefined && (config.source !== undefined || config.setup !== undefined)) {
83
+ throw new SandboxError("[Sixb] Use either static source/setup or resolve, not both.")
84
+ }
85
+ const invalid = (path: string) =>
86
+ new SandboxError(`[Sixb] ${path} must be a valid parameter declaration; use param(schema).`)
87
+ for (const [id, value] of Object.entries(config.params ?? {})) {
88
+ const path = `sandboxes.params.${id}`
89
+ if (!id.trim() || !isPlainRecord(value)) throw invalid(path)
90
+ for (const key of Object.keys(value)) {
91
+ if (!["schema", "required", "nullable", "description", "semanticType"].includes(key)) {
92
+ throw invalid(path)
93
+ }
94
+ }
95
+ if (
96
+ (value.required !== undefined && typeof value.required !== "boolean") ||
97
+ (value.nullable !== undefined && typeof value.nullable !== "boolean") ||
98
+ (value.description !== undefined && typeof value.description !== "string") ||
99
+ (value.semanticType !== undefined && typeof value.semanticType !== "string")
100
+ )
101
+ throw invalid(path)
102
+ const schema: unknown = value.schema
103
+ if (isPlainRecord(schema) && schema.type === "objectRef") {
104
+ if (
105
+ typeof schema.objectTypeId !== "string" ||
106
+ !ontology.getObjectTypesById().has(schema.objectTypeId)
107
+ ) {
108
+ throw invalid(path)
109
+ }
110
+ } else {
111
+ assertValidSchema(schema, `${path}.schema`, invalid)
112
+ }
113
+ }
114
+ const params = structuredClone(config.params ?? {}) as ParamsConfig
115
+ const environment = captureEnvironment({
116
+ ...(config.source === undefined ? {} : { source: config.source }),
117
+ ...(config.setup === undefined ? {} : { setup: config.setup }),
118
+ ...(config.env === undefined ? {} : { env: config.env }),
119
+ ...(config.network === undefined ? {} : { network: config.network }),
120
+ })
121
+ // Capture the function too: later mutation of application config must not change this host.
122
+ // Erase inference only after capturing its schema; every invocation validates and coerces below.
123
+ const resolve = config.resolve as SandboxConfig["resolve"]
124
+ const authorize = config.auth?.authorize.bind(config.auth)
125
+ deepFreeze(params)
126
+ return Object.freeze({
127
+ params,
128
+ ...(authorize ? { auth: Object.freeze({ authorize }) } : {}),
129
+ resolve: async ({ params: input, sixb }: SandboxResolveContext) => {
130
+ const binding = normalizeParams(ontology.getValueTypesById(), params, input, {
131
+ kind: "sandbox",
132
+ id: "sandboxes",
133
+ path: "sandbox",
134
+ })
135
+ const typed = coerceParamsToTyped(params, binding, ontology.getValueTypesById())
136
+ if (!resolve) return structuredClone(environment)
137
+ const resolved = captureEnvironment(await resolve({ params: typed, sixb }))
138
+ return {
139
+ ...structuredClone(environment),
140
+ ...resolved,
141
+ env: { ...environment.env, ...resolved.env },
142
+ }
143
+ },
144
+ })
145
+ }
146
+
147
+ /** Capture declarative data only; never retain caller-owned objects or include values in errors. */
148
+ export function captureEnvironment(value: unknown): SandboxEnvironment {
149
+ if (
150
+ !isPlainRecord(value) ||
151
+ Object.keys(value).some((key) => !["source", "setup", "env", "network"].includes(key))
152
+ ) {
153
+ return fail("environment")
154
+ }
155
+ if (value.source !== undefined) validateSource(value.source)
156
+ if (value.setup !== undefined) validateSetup(value.setup)
157
+ if (value.env !== undefined) validateEnv(value.env)
158
+ if (value.network !== undefined) validateNetwork(value.network)
159
+ // Every field and discriminant has been checked above; return only an isolated snapshot.
160
+ return structuredClone(value) as SandboxEnvironment
161
+ }
162
+
163
+ function fail(field: string): never {
164
+ throw new SandboxError(`[Sixb] Invalid sandbox ${field}.`)
165
+ }
166
+
167
+ function validateSource(source: unknown): void {
168
+ if (
169
+ !isPlainRecord(source) ||
170
+ source.type !== "git" ||
171
+ typeof source.url !== "string" ||
172
+ Object.keys(source).some((key) => !["type", "url", "revision", "access"].includes(key))
173
+ ) {
174
+ fail("source")
175
+ }
176
+ const url = parseUrl(source.url, "source URL")
177
+ if (url.protocol !== "https:" || url.username || url.password || url.search || url.hash) {
178
+ fail("source URL: expected credential-free HTTPS")
179
+ }
180
+ if (
181
+ source.revision !== undefined &&
182
+ (typeof source.revision !== "string" ||
183
+ !source.revision.trim() ||
184
+ source.revision.startsWith("-") ||
185
+ /[\x00-\x1f]/.test(source.revision))
186
+ ) {
187
+ fail("source revision")
188
+ }
189
+ if (source.access !== undefined && source.access !== "read" && source.access !== "write") {
190
+ fail("source access")
191
+ }
192
+ }
193
+
194
+ function validateSetup(setup: unknown): void {
195
+ if (
196
+ !Array.isArray(setup) ||
197
+ setup.some(
198
+ (command) => typeof command !== "string" || !command.trim() || command.includes("\0")
199
+ )
200
+ ) {
201
+ fail("setup")
202
+ }
203
+ }
204
+
205
+ function validateEnv(env: unknown): void {
206
+ if (
207
+ !isPlainRecord(env) ||
208
+ Object.entries(env).some(
209
+ ([key, entry]) =>
210
+ !key || /[=\0]/.test(key) || typeof entry !== "string" || entry.includes("\0")
211
+ )
212
+ ) {
213
+ fail("env")
214
+ }
215
+ }
216
+
217
+ function validateNetwork(network: unknown): void {
218
+ if (!isPlainRecord(network)) fail("network")
219
+ if (network.mode === "restricted") {
220
+ if (
221
+ Object.keys(network).some((key) => key !== "mode" && key !== "allow") ||
222
+ !Array.isArray(network.allow)
223
+ ) {
224
+ fail("network")
225
+ }
226
+ for (const target of network.allow) validateNetworkTarget(target)
227
+ return
228
+ }
229
+ if (
230
+ (network.mode !== "none" && network.mode !== "all") ||
231
+ Object.keys(network).some((key) => key !== "mode")
232
+ ) {
233
+ fail("network")
234
+ }
235
+ }
236
+
237
+ function validateNetworkTarget(target: unknown): void {
238
+ if (
239
+ !isPlainRecord(target) ||
240
+ typeof target.name !== "string" ||
241
+ !target.name.trim() ||
242
+ typeof target.origin !== "string" ||
243
+ Object.keys(target).some((key) => key !== "name" && key !== "origin")
244
+ ) {
245
+ fail("network target")
246
+ }
247
+ const url = parseUrl(target.origin, "network origin")
248
+ if (!["http:", "https:"].includes(url.protocol) || url.origin !== target.origin) {
249
+ fail("network origin")
250
+ }
251
+ }
252
+
253
+ function parseUrl(value: string, field: string): URL {
254
+ try {
255
+ return new URL(value)
256
+ } catch {
257
+ return fail(field)
258
+ }
259
+ }
260
+
261
+ function deepFreeze(value: object, seen = new Set<object>()): void {
262
+ if (seen.has(value)) return
263
+ seen.add(value)
264
+ for (const child of Object.values(value)) {
265
+ if (child !== null && typeof child === "object") deepFreeze(child, seen)
266
+ }
267
+ Object.freeze(value)
268
+ }
@@ -0,0 +1,107 @@
1
+ import { posix } from "node:path"
2
+ import type { ParamsConfig } from "../shared/params/types"
3
+ import type { SandboxConfig } from "./configuration"
4
+ import { captureEnvironment, type SandboxEnvironment } from "./configuration"
5
+ import { SandboxError } from "./errors"
6
+ import type { CreateSandboxOptions, Sandbox } from "./sandbox"
7
+
8
+ /** Select and validate before provisioning. Only the execution runtime may resolve a recipe. */
9
+ export function sandboxCreationEnvironment<TParams extends ParamsConfig>(
10
+ configuration: SandboxConfig<TParams>,
11
+ options: CreateSandboxOptions
12
+ ): Pick<SandboxEnvironment, "source" | "setup"> {
13
+ if (options.environment === undefined && configuration.resolve !== undefined) {
14
+ throw new SandboxError(
15
+ "[Sixb] Dynamic sandbox configuration requires an execution-resolved environment."
16
+ )
17
+ }
18
+ const environment = captureEnvironment(
19
+ options.environment !== undefined
20
+ ? options.environment
21
+ : {
22
+ ...(configuration.source === undefined ? {} : { source: configuration.source }),
23
+ ...(configuration.setup === undefined ? {} : { setup: configuration.setup }),
24
+ }
25
+ )
26
+ if (environment.env !== undefined || environment.network !== undefined) {
27
+ throw new SandboxError(
28
+ "[Sixb] Pass env and network as sandbox session options, not environment."
29
+ )
30
+ }
31
+ if (environment.source) {
32
+ if (
33
+ (configuration.auth !== undefined || environment.source.access === "write") &&
34
+ !options.requestCredentials?.length
35
+ ) {
36
+ throw new SandboxError(
37
+ "[Sixb] Sandbox source authentication requires execution-prepared request credentials."
38
+ )
39
+ }
40
+ const network = options.network ?? configuration.network ?? { mode: "none" }
41
+ const origin = new URL(environment.source.url).origin
42
+ if (
43
+ network.mode === "none" ||
44
+ (network.mode === "restricted" && !network.allow.some((target) => target.origin === origin))
45
+ ) {
46
+ throw new SandboxError("[Sixb] Sandbox network policy denies the source origin.")
47
+ }
48
+ }
49
+ options.signal?.throwIfAborted()
50
+ return environment
51
+ }
52
+
53
+ /** Select the same project directory on creation and resume without touching saved files. */
54
+ export function sandboxProjectDirectory(session: Sandbox, hasSource: boolean): Sandbox {
55
+ if (!hasSource) return session
56
+ const workingDirectory = posix.join(session.workingDirectory, "repository")
57
+ return {
58
+ id: session.id,
59
+ provider: session.provider,
60
+ get status() {
61
+ return session.status
62
+ },
63
+ workingDirectory,
64
+ ...(session.setRequestCredentials
65
+ ? { setRequestCredentials: session.setRequestCredentials.bind(session) }
66
+ : {}),
67
+ runCommand: (command, args, options) =>
68
+ session.runCommand(command, args, { ...options, cwd: options?.cwd ?? workingDirectory }),
69
+ writeFiles: (files) =>
70
+ session.writeFiles(
71
+ files.map((file) => ({
72
+ ...file,
73
+ path: posix.isAbsolute(file.path) ? file.path : posix.join(workingDirectory, file.path),
74
+ }))
75
+ ),
76
+ stop: () => session.stop(),
77
+ destroy: () => session.destroy(),
78
+ }
79
+ }
80
+
81
+ /** Provider-side initialization, after the session network/credentials have been applied.
82
+ * Call only on fresh creation. The caller owns cleanup if any command fails.
83
+ */
84
+ export async function initializeSandboxEnvironment(
85
+ session: Sandbox,
86
+ environment: Pick<SandboxEnvironment, "source" | "setup">,
87
+ signal?: AbortSignal
88
+ ): Promise<Sandbox> {
89
+ environment = captureEnvironment(environment)
90
+ const run = async (sandbox: Sandbox, command: string, args: readonly string[]) => {
91
+ signal?.throwIfAborted()
92
+ const result = await sandbox.runCommand(command, args, { timeout: 120_000, signal })
93
+ if (result.exitCode !== 0 || result.timedOut) {
94
+ throw new SandboxError("[Sixb] Sandbox environment initialization failed.")
95
+ }
96
+ }
97
+ signal?.throwIfAborted()
98
+ const sandbox = sandboxProjectDirectory(session, environment.source !== undefined)
99
+ if (environment.source) {
100
+ await run(session, "git", ["clone", "--", environment.source.url, "repository"])
101
+ if (environment.source.revision) {
102
+ await run(sandbox, "git", ["checkout", environment.source.revision, "--"])
103
+ }
104
+ }
105
+ for (const command of environment.setup ?? []) await run(sandbox, "bash", ["-lc", command])
106
+ return sandbox
107
+ }
@@ -6,7 +6,7 @@ export class SandboxError extends Error {
6
6
  readonly name: string = "SandboxError"
7
7
  }
8
8
 
9
- /** The named sandbox or its saved filesystem no longer exists. Explicit recreation is required. */
9
+ /** Confirmed missing/expired state. Never use for transport, authorization or session setup errors. */
10
10
  export class SandboxStateUnavailableError extends SandboxError {
11
11
  override readonly name = "SandboxStateUnavailableError"
12
12
  }
@@ -1,3 +1,17 @@
1
+ export type { InferParams, ParamsConfig } from "../shared/params/types"
2
+ export type { SandboxSourceAuth, SandboxSourceCredentials } from "./auth"
3
+ export { sandboxConfig } from "./config"
4
+ export type {
5
+ SandboxConfig,
6
+ SandboxEnvironment,
7
+ SandboxResolveContext,
8
+ SandboxSource,
9
+ } from "./configuration"
10
+ export {
11
+ initializeSandboxEnvironment,
12
+ sandboxCreationEnvironment,
13
+ sandboxProjectDirectory,
14
+ } from "./environment"
1
15
  export {
2
16
  SandboxError,
3
17
  SandboxIsolationUnavailableError,
@@ -17,6 +31,7 @@ export type {
17
31
  SandboxFileRecord,
18
32
  SandboxNetworkPolicy,
19
33
  SandboxNetworkTarget,
34
+ SandboxRequestCredential,
20
35
  SandboxSessionOptions,
21
36
  SandboxStatus,
22
37
  } from "./sandbox"
@@ -6,6 +6,9 @@
6
6
  * SandboxFactory.
7
7
  */
8
8
 
9
+ import type { ParamsConfig } from "../shared/params/types"
10
+ import type { SandboxConfig, SandboxEnvironment } from "./configuration"
11
+
9
12
  export type SandboxStatus = "running" | "stopped" | "failed"
10
13
 
11
14
  /**
@@ -72,8 +75,20 @@ export interface SandboxNetworkTarget {
72
75
  readonly origin: string
73
76
  }
74
77
 
78
+ /** Host-only credentials injected outside the guest into one exact HTTPS request target.
79
+ * This selects authenticated requests, not the sandbox's general egress allowlist.
80
+ */
81
+ export interface SandboxRequestCredential {
82
+ readonly origin: string
83
+ readonly path: string
84
+ readonly method: "GET" | "POST"
85
+ readonly headers: { readonly Authorization: string }
86
+ }
87
+
75
88
  /** Current execution defaults, supplied on both creation and resume, never recovered from files. */
76
89
  export interface SandboxSessionOptions {
90
+ /** Apply outside the guest before source/setup or resumed commands. Reject if unsupported. */
91
+ readonly requestCredentials?: readonly SandboxRequestCredential[]
77
92
  readonly workingDirectory?: string
78
93
  readonly env?: Readonly<Record<string, string>>
79
94
  readonly timeout?: number
@@ -82,6 +97,10 @@ export interface SandboxSessionOptions {
82
97
 
83
98
  /** Options accepted by every SandboxFactory.create. */
84
99
  export interface CreateSandboxOptions extends SandboxSessionOptions {
100
+ /** Cancel initialization; a provider request already in flight may still finish. */
101
+ readonly signal?: AbortSignal
102
+ /** Replaces static source/setup, including {} to skip both. Required for dynamic recipes. */
103
+ readonly environment?: Pick<SandboxEnvironment, "source" | "setup">
85
104
  /** Create new named state; reject an existing name or unsupported persistence before provisioning. */
86
105
  readonly persistence?: { readonly name: string }
87
106
  }
@@ -98,6 +117,14 @@ export interface Sandbox {
98
117
  readonly status: SandboxStatus
99
118
  readonly workingDirectory: string
100
119
 
120
+ /** Optional secure injection capability. Replaces all credentials on this session only.
121
+ * An empty list removes injection. Secrets must never enter guest files, env or snapshots.
122
+ * Must not resume a stopped session or change defaults inherited by future sessions.
123
+ */
124
+ readonly setRequestCredentials?: (
125
+ credentials: readonly SandboxRequestCredential[]
126
+ ) => Promise<void>
127
+
101
128
  runCommand(
102
129
  command: string,
103
130
  args?: readonly string[],
@@ -135,18 +162,26 @@ export interface Sandbox {
135
162
  * Callers own namespacing and must serialize the entire create/resume/use/stop/destroy lifecycle.
136
163
  * Credentials and current authority must be supplied again, never inferred from saved files.
137
164
  */
138
- export interface SandboxFactory {
165
+ export interface SandboxFactory<in out TParams extends ParamsConfig = ParamsConfig> {
166
+ /** Supports initial and renewable host-only credentials on named persistent sessions. */
167
+ readonly supportsRequestCredentials?: boolean
168
+ /** Common host-side environment recipe. Never a discovered Agent definition. */
169
+ readonly configuration?: SandboxConfig<TParams>
139
170
  /** Create an ephemeral sandbox unless persistence is requested. Existing names must fail,
140
- * never attach or overwrite. Unsupported providers must reject persistence before provisioning.
171
+ * never attach or overwrite. Apply the selected source/setup once, after session settings.
172
+ * Dynamic resolution and source authorization belong to the caller, never the provider.
173
+ * Unsupported providers must reject persistence before provisioning.
141
174
  * A persistent handle targets one session; operations must not automatically resume another VM.
142
175
  */
143
176
  create(options?: CreateSandboxOptions): Promise<Sandbox>
144
177
  /**
145
178
  * Present only when named persistent creation and resume are supported.
146
179
  * Resume an existing, stopped sandbox. Missing/expired state throws SandboxStateUnavailableError;
147
- * it must never create an empty replacement. An already running sandbox must be rejected.
180
+ * it must never create an empty replacement. Transport/auth/setup errors must not be classified
181
+ * as missing state. An already running sandbox must be rejected.
148
182
  * Returns a handle bound to the resumed session, with no automatic resume on use.
149
183
  * Runtime options must be provided again; no creation settings or persistence option are accepted.
184
+ * Never clone or replay setup on resume.
150
185
  */
151
186
  resume?(name: string, options?: ResumeSandboxOptions): Promise<Sandbox>
152
187
  }
@@ -0,0 +1,50 @@
1
+ import type { SchemaOrRef } from "../../ontology"
2
+ import type { QuantitativeTypeId } from "../../ontology/units"
3
+ import type { ParamConfig } from "./types"
4
+
5
+ export interface ParamOptions {
6
+ readonly description?: string
7
+ readonly semanticType?: QuantitativeTypeId
8
+ readonly nullable?: boolean
9
+ }
10
+
11
+ type FieldFromOptions<TOptions, TKey extends string, TFallback> =
12
+ TOptions extends Record<TKey, infer TValue>
13
+ ? { [K in TKey]: TValue }
14
+ : { [K in TKey]?: TFallback }
15
+
16
+ type ParamResult<
17
+ TSchema extends SchemaOrRef,
18
+ TRequired extends boolean,
19
+ TOptions extends ParamOptions | undefined,
20
+ > = {
21
+ schema: TSchema
22
+ required: TRequired
23
+ } & FieldFromOptions<TOptions, "description", string> &
24
+ FieldFromOptions<TOptions, "semanticType", QuantitativeTypeId> &
25
+ FieldFromOptions<TOptions, "nullable", boolean>
26
+
27
+ /** Declare one required parameter. */
28
+ export function param<
29
+ const TSchema extends SchemaOrRef,
30
+ const TOptions extends ParamOptions | undefined = undefined,
31
+ >(schema: TSchema, options?: TOptions): ParamResult<TSchema, true, TOptions> {
32
+ const result: ParamConfig & { required: true } = {
33
+ schema,
34
+ required: true,
35
+ ...(options?.description !== undefined ? { description: options.description } : {}),
36
+ ...(options?.semanticType !== undefined ? { semanticType: options.semanticType } : {}),
37
+ ...(options?.nullable !== undefined ? { nullable: options.nullable } : {}),
38
+ }
39
+ return result as ParamResult<TSchema, true, TOptions>
40
+ }
41
+
42
+ /** Derive an optional parameter without changing its schema or metadata. */
43
+ export function optional<const TParam extends ParamConfig>(
44
+ paramConfig: TParam
45
+ ): Omit<TParam, "required"> & { readonly required: false } {
46
+ return {
47
+ ...paramConfig,
48
+ required: false,
49
+ }
50
+ }
@@ -0,0 +1,84 @@
1
+ import type {
2
+ DecimalValue,
3
+ InferSchemaOrRef,
4
+ ObjectRef,
5
+ ObjectRefSchema,
6
+ SchemaOrRef,
7
+ ValueType,
8
+ } from "../../ontology"
9
+ import type { QuantitativeTypeId } from "../../ontology/units"
10
+
11
+ type Simplify<T> = { [K in keyof T]: T[K] } & {}
12
+
13
+ /** One declarative parameter accepted by a Sixb definition. */
14
+ export interface ParamConfig {
15
+ readonly schema: SchemaOrRef
16
+ readonly required?: boolean
17
+ readonly nullable?: boolean
18
+ readonly description?: string
19
+ readonly semanticType?: QuantitativeTypeId
20
+ }
21
+
22
+ /** Parameter shape shared by definitions that accept validated invocation-time input. */
23
+ export type ParamsConfig = Record<string, ParamConfig>
24
+
25
+ type RequiredParamKeys<TParams extends ParamsConfig> = {
26
+ [K in keyof TParams]-?: TParams[K]["required"] extends true ? K : never
27
+ }[keyof TParams]
28
+
29
+ type OptionalParamKeys<TParams extends ParamsConfig> = Exclude<
30
+ keyof TParams,
31
+ RequiredParamKeys<TParams>
32
+ >
33
+
34
+ /**
35
+ * Validated params normalize `date` and `timestamp` values back to `Date` for typed runtime
36
+ * consumers. The wider ontology inference keeps storage-facing values permissive.
37
+ */
38
+ export type ParamPrimitiveSchemaValues = {
39
+ string: string
40
+ uuid: string
41
+ boolean: boolean
42
+ integer: number
43
+ double: number
44
+ decimal: DecimalValue
45
+ date: Date
46
+ timestamp: Date
47
+ }
48
+
49
+ type InferStructuredParamValue<
50
+ TSchema extends SchemaOrRef,
51
+ TValueTypes extends readonly ValueType[],
52
+ > = TSchema extends { type: "enum"; values: readonly (infer TValue)[] }
53
+ ? TValue
54
+ : TSchema extends ObjectRefSchema<infer TObjectTypeId>
55
+ ? ObjectRef<TObjectTypeId>
56
+ : InferSchemaOrRef<TSchema, TValueTypes>
57
+
58
+ type InferParamSchemaValue<
59
+ TSchema extends SchemaOrRef,
60
+ TValueTypes extends readonly ValueType[] = [],
61
+ > = TSchema extends keyof ParamPrimitiveSchemaValues
62
+ ? ParamPrimitiveSchemaValues[TSchema]
63
+ : InferStructuredParamValue<TSchema, TValueTypes>
64
+
65
+ type InferParamValue<
66
+ TParam extends ParamConfig,
67
+ TValueTypes extends readonly ValueType[] = [],
68
+ > = TParam["nullable"] extends true
69
+ ? InferParamSchemaValue<TParam["schema"], TValueTypes> | null
70
+ : InferParamSchemaValue<TParam["schema"], TValueTypes>
71
+
72
+ /** Infer the validated runtime input represented by a parameter config. */
73
+ export type InferParams<
74
+ TParams extends ParamsConfig,
75
+ TValueTypes extends readonly ValueType[] = [],
76
+ > = string extends keyof TParams
77
+ ? Record<string, unknown>
78
+ : Simplify<
79
+ {
80
+ [K in RequiredParamKeys<TParams>]: InferParamValue<TParams[K], TValueTypes>
81
+ } & {
82
+ [K in OptionalParamKeys<TParams>]?: InferParamValue<TParams[K], TValueTypes>
83
+ }
84
+ >