@sixb/core 0.1.17 → 0.1.18

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 (454) hide show
  1. package/dist/actions/index.js +22 -19
  2. package/dist/actions/index.js.map +1 -1
  3. package/dist/actions/read-facade.d.ts +1 -1
  4. package/dist/actions/validation.d.ts.map +1 -1
  5. package/dist/actions/worker.js +6 -2
  6. package/dist/actions/worker.js.map +3 -3
  7. package/dist/agents/adapters.d.ts +7 -0
  8. package/dist/agents/adapters.d.ts.map +1 -1
  9. package/dist/agents/authority.d.ts +7 -0
  10. package/dist/agents/authority.d.ts.map +1 -1
  11. package/dist/agents/context/entries.d.ts +10 -1
  12. package/dist/agents/context/entries.d.ts.map +1 -1
  13. package/dist/agents/context/index.d.ts +1 -1
  14. package/dist/agents/context/index.d.ts.map +1 -1
  15. package/dist/agents/context/index.js +4 -2
  16. package/dist/agents/context/index.js.map +1 -1
  17. package/dist/agents/context-compaction.d.ts.map +1 -1
  18. package/dist/agents/errors.d.ts +1 -1
  19. package/dist/agents/errors.d.ts.map +1 -1
  20. package/dist/agents/index.d.ts +6 -4
  21. package/dist/agents/index.d.ts.map +1 -1
  22. package/dist/agents/index.js +44 -37
  23. package/dist/agents/index.js.map +1 -1
  24. package/dist/agents/message.d.ts +8 -1
  25. package/dist/agents/message.d.ts.map +1 -1
  26. package/dist/agents/request.d.ts +19 -5
  27. package/dist/agents/request.d.ts.map +1 -1
  28. package/dist/agents/skills.d.ts +41 -0
  29. package/dist/agents/skills.d.ts.map +1 -0
  30. package/dist/agents/streams/index.js +1 -1
  31. package/dist/agents/streams/internal.js +1 -1
  32. package/dist/agents/types.d.ts +33 -4
  33. package/dist/agents/types.d.ts.map +1 -1
  34. package/dist/auth/index.js +9 -6
  35. package/dist/auth/index.js.map +1 -1
  36. package/dist/auth/runtime.d.ts.map +1 -1
  37. package/dist/auth/types.d.ts +6 -0
  38. package/dist/auth/types.d.ts.map +1 -1
  39. package/dist/authorization/index.js +5 -3
  40. package/dist/authorization/index.js.map +1 -1
  41. package/dist/authorization/resolve.d.ts +1 -1
  42. package/dist/authorization/resolve.d.ts.map +1 -1
  43. package/dist/authorization/types.d.ts +7 -0
  44. package/dist/authorization/types.d.ts.map +1 -1
  45. package/dist/blob-storage/browser.js +1 -1
  46. package/dist/blob-storage/execution.d.ts.map +1 -1
  47. package/dist/blob-storage/file-content.d.ts +18 -0
  48. package/dist/blob-storage/file-content.d.ts.map +1 -0
  49. package/dist/blob-storage/index.d.ts +1 -1
  50. package/dist/blob-storage/index.d.ts.map +1 -1
  51. package/dist/blob-storage/index.js +2 -2
  52. package/dist/blob-storage/internal.d.ts +2 -0
  53. package/dist/blob-storage/internal.d.ts.map +1 -1
  54. package/dist/blob-storage/internal.js +16 -4
  55. package/dist/blob-storage/internal.js.map +1 -1
  56. package/dist/blob-storage/media-type.d.ts +8 -0
  57. package/dist/blob-storage/media-type.d.ts.map +1 -0
  58. package/dist/blob-storage/types.d.ts +12 -1
  59. package/dist/blob-storage/types.d.ts.map +1 -1
  60. package/dist/blob-storage/validation.d.ts +6 -0
  61. package/dist/blob-storage/validation.d.ts.map +1 -1
  62. package/dist/bootstrap/agent-context.d.ts +33 -0
  63. package/dist/bootstrap/agent-context.d.ts.map +1 -0
  64. package/dist/bootstrap/discovery.d.ts +23 -3
  65. package/dist/bootstrap/discovery.d.ts.map +1 -1
  66. package/dist/bootstrap/index.d.ts +2 -1
  67. package/dist/bootstrap/index.d.ts.map +1 -1
  68. package/dist/bootstrap/index.js +284 -73
  69. package/dist/bootstrap/index.js.map +4 -3
  70. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  71. package/dist/{chunk-gf7yht60.js → chunk-1b1f2d5f.js} +23 -6
  72. package/dist/chunk-1b1f2d5f.js.map +12 -0
  73. package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
  74. package/dist/chunk-1sr8ryzk.js.map +11 -0
  75. package/dist/{chunk-4gmng3vf.js → chunk-22v5bpz3.js} +1 -1
  76. package/dist/{chunk-s7ftxrdr.js → chunk-29yx306f.js} +20 -3
  77. package/dist/{chunk-s7ftxrdr.js.map → chunk-29yx306f.js.map} +3 -3
  78. package/dist/{chunk-4ra628t7.js → chunk-3zxk45er.js} +70 -6
  79. package/dist/{chunk-4ra628t7.js.map → chunk-3zxk45er.js.map} +5 -4
  80. package/dist/{chunk-2am3db31.js → chunk-48e3cn2d.js} +2 -2
  81. package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
  82. package/dist/chunk-6gmfggss.js.map +10 -0
  83. package/dist/{chunk-svabwqdq.js → chunk-6h5m9xjx.js} +43 -415
  84. package/dist/{chunk-svabwqdq.js.map → chunk-6h5m9xjx.js.map} +7 -11
  85. package/dist/{chunk-f1xh7a32.js → chunk-7hpdd6r9.js} +2 -2
  86. package/dist/{chunk-xyvy73tj.js → chunk-bs7sqkre.js} +8 -3
  87. package/dist/chunk-bs7sqkre.js.map +12 -0
  88. package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
  89. package/dist/{chunk-t9shqx3w.js → chunk-d0eb5yy6.js} +143 -7
  90. package/dist/chunk-d0eb5yy6.js.map +14 -0
  91. package/dist/{chunk-vp3z1ckh.js → chunk-de4z2bj6.js} +5 -5
  92. package/dist/{chunk-3rrezgyc.js → chunk-dnmadg9k.js} +2 -2
  93. package/dist/chunk-enpsx8k5.js +127 -0
  94. package/dist/chunk-enpsx8k5.js.map +10 -0
  95. package/dist/{chunk-a7er86jd.js → chunk-ex496vct.js} +1 -1
  96. package/dist/{chunk-jnfxmr3f.js → chunk-f1zxad2t.js} +1 -1
  97. package/dist/{chunk-6wbm6ymz.js → chunk-fe52eczz.js} +271 -83
  98. package/dist/chunk-fe52eczz.js.map +49 -0
  99. package/dist/{chunk-10styjgk.js → chunk-fx93hd2n.js} +71 -29
  100. package/dist/chunk-fx93hd2n.js.map +20 -0
  101. package/dist/{chunk-9se093qz.js → chunk-gc4ntf7d.js} +4 -4
  102. package/dist/{chunk-9se093qz.js.map → chunk-gc4ntf7d.js.map} +1 -1
  103. package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
  104. package/dist/chunk-hkc3jct7.js.map +10 -0
  105. package/dist/{chunk-pja9jfz6.js → chunk-htr6wjmv.js} +115 -53
  106. package/dist/chunk-htr6wjmv.js.map +19 -0
  107. package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
  108. package/dist/chunk-jhm3zsa7.js.map +12 -0
  109. package/dist/{chunk-52c5zb0z.js → chunk-k6hrnf35.js} +5 -5
  110. package/dist/chunk-k6hrnf35.js.map +10 -0
  111. package/dist/{chunk-c2rga5cx.js → chunk-mfs23znk.js} +1 -1
  112. package/dist/{chunk-7ecp4v7a.js → chunk-ny3xyvcn.js} +8 -2
  113. package/dist/{chunk-7ecp4v7a.js.map → chunk-ny3xyvcn.js.map} +3 -3
  114. package/dist/{chunk-fggq3d9k.js → chunk-p0dqwj3n.js} +5 -5
  115. package/dist/{chunk-cnb5kv05.js → chunk-p844e0rn.js} +23 -8
  116. package/dist/chunk-p844e0rn.js.map +19 -0
  117. package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
  118. package/dist/chunk-pfp1txq2.js.map +11 -0
  119. package/dist/chunk-pqajwytd.js.map +2 -2
  120. package/dist/{chunk-5be2ath4.js → chunk-qkbx3tf6.js} +17 -128
  121. package/dist/{chunk-5be2ath4.js.map → chunk-qkbx3tf6.js.map} +6 -7
  122. package/dist/{chunk-sk0hcjsz.js → chunk-qkvz64nd.js} +2 -2
  123. package/dist/{chunk-w9yycd3t.js → chunk-qmnnhde6.js} +4 -8
  124. package/dist/{chunk-w9yycd3t.js.map → chunk-qmnnhde6.js.map} +3 -3
  125. package/dist/{chunk-5yd8cchh.js → chunk-qq90g05n.js} +8 -8
  126. package/dist/{chunk-5yd8cchh.js.map → chunk-qq90g05n.js.map} +1 -1
  127. package/dist/{chunk-tjjgy3z4.js → chunk-qxvp5epv.js} +66 -14
  128. package/dist/{chunk-tjjgy3z4.js.map → chunk-qxvp5epv.js.map} +9 -8
  129. package/dist/chunk-rdghfsss.js.map +2 -2
  130. package/dist/{chunk-rx7h5fdx.js → chunk-rt9p8m9t.js} +1 -1
  131. package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
  132. package/dist/chunk-rz53yb4v.js.map +14 -0
  133. package/dist/{chunk-xcy5ddha.js → chunk-s4jhg8a3.js} +351 -296
  134. package/dist/chunk-s4jhg8a3.js.map +15 -0
  135. package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
  136. package/dist/chunk-s54c868q.js.map +12 -0
  137. package/dist/{chunk-9g6jz9kk.js → chunk-tffvfy6s.js} +6 -5
  138. package/dist/{chunk-9g6jz9kk.js.map → chunk-tffvfy6s.js.map} +3 -3
  139. package/dist/{chunk-e67ynxcr.js → chunk-v6xpd60t.js} +3 -3
  140. package/dist/{chunk-jjrn5v0p.js → chunk-vgk3hknm.js} +1 -1
  141. package/dist/{chunk-5thzcb8g.js → chunk-vx2yp45y.js} +2 -2
  142. package/dist/{chunk-dam456ve.js → chunk-vz3gc1tm.js} +394 -31
  143. package/dist/{chunk-dam456ve.js.map → chunk-vz3gc1tm.js.map} +10 -7
  144. package/dist/chunk-xt1zt7gv.js +471 -0
  145. package/dist/chunk-xt1zt7gv.js.map +13 -0
  146. package/dist/{chunk-rpxz486p.js → chunk-y05543x6.js} +21 -5
  147. package/dist/{chunk-rpxz486p.js.map → chunk-y05543x6.js.map} +3 -3
  148. package/dist/{chunk-aq39q04r.js → chunk-y9jmd7e5.js} +4 -4
  149. package/dist/{chunk-aq39q04r.js.map → chunk-y9jmd7e5.js.map} +1 -1
  150. package/dist/{chunk-k4g51s47.js → chunk-yv9czyfr.js} +3 -3
  151. package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
  152. package/dist/chunk-yw9pyg66.js.map +11 -0
  153. package/dist/{chunk-vre348sb.js → chunk-za5yd58j.js} +2 -2
  154. package/dist/{chunk-23xs4qp9.js → chunk-zb77kjth.js} +3 -3
  155. package/dist/{chunk-33saed7g.js → chunk-zxawp1n2.js} +1 -1
  156. package/dist/datasets/builders.d.ts +12 -1
  157. package/dist/datasets/builders.d.ts.map +1 -1
  158. package/dist/datasets/execution.d.ts +27 -1
  159. package/dist/datasets/execution.d.ts.map +1 -1
  160. package/dist/datasets/index.d.ts +1 -1
  161. package/dist/datasets/index.d.ts.map +1 -1
  162. package/dist/datasets/types.d.ts +2 -0
  163. package/dist/datasets/types.d.ts.map +1 -1
  164. package/dist/datasets/write.d.ts +5 -0
  165. package/dist/datasets/write.d.ts.map +1 -1
  166. package/dist/datasets/write.js +10 -5
  167. package/dist/datasets/write.js.map +1 -1
  168. package/dist/edits/properties.d.ts.map +1 -1
  169. package/dist/events/execution.d.ts +2 -1
  170. package/dist/events/execution.d.ts.map +1 -1
  171. package/dist/events/types/objects.d.ts +5 -0
  172. package/dist/events/types/objects.d.ts.map +1 -1
  173. package/dist/execution/agent.d.ts +10 -0
  174. package/dist/execution/agent.d.ts.map +1 -1
  175. package/dist/execution/agent.js +39 -34
  176. package/dist/execution/agent.js.map +1 -1
  177. package/dist/execution/authorized-object-reader.d.ts +6 -1
  178. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  179. package/dist/execution/primitive.js +37 -34
  180. package/dist/execution/primitive.js.map +2 -2
  181. package/dist/execution/request.js +38 -35
  182. package/dist/execution/request.js.map +2 -2
  183. package/dist/http/api-routes.d.ts.map +1 -1
  184. package/dist/http/index.js +1 -1
  185. package/dist/index.d.ts +9 -8
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +57 -52
  188. package/dist/index.js.map +1 -1
  189. package/dist/lake-storage/index.js +8 -5
  190. package/dist/lake-storage/index.js.map +1 -1
  191. package/dist/materializer/index.js +19 -16
  192. package/dist/materializer/index.js.map +1 -1
  193. package/dist/models/catalog.d.ts +1 -1
  194. package/dist/models/catalog.d.ts.map +1 -1
  195. package/dist/models/execution/binding.d.ts +6 -0
  196. package/dist/models/execution/binding.d.ts.map +1 -1
  197. package/dist/models/execution/index.js +19 -16
  198. package/dist/models/execution/index.js.map +1 -1
  199. package/dist/models/execution/model-call-recorder.d.ts +4 -0
  200. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  201. package/dist/models/execution.d.ts.map +1 -1
  202. package/dist/models/index.js +1 -1
  203. package/dist/models/language-model.d.ts +6 -0
  204. package/dist/models/language-model.d.ts.map +1 -1
  205. package/dist/objects/context/index.d.ts +1 -1
  206. package/dist/objects/context/index.d.ts.map +1 -1
  207. package/dist/objects/context/types.d.ts +6 -0
  208. package/dist/objects/context/types.d.ts.map +1 -1
  209. package/dist/objects/execution.d.ts +2 -1
  210. package/dist/objects/execution.d.ts.map +1 -1
  211. package/dist/objects/index.js +23 -19
  212. package/dist/objects/index.js.map +1 -1
  213. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  214. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  215. package/dist/objects/object/upsert.d.ts.map +1 -1
  216. package/dist/objects/property-clearance.d.ts +41 -0
  217. package/dist/objects/property-clearance.d.ts.map +1 -0
  218. package/dist/objects/query/executor.d.ts +3 -0
  219. package/dist/objects/query/executor.d.ts.map +1 -1
  220. package/dist/objects/query/index.js +18 -15
  221. package/dist/objects/query/index.js.map +1 -1
  222. package/dist/objects/query/validate.d.ts +10 -1
  223. package/dist/objects/query/validate.d.ts.map +1 -1
  224. package/dist/objects/sdk/file-handle.d.ts +6 -0
  225. package/dist/objects/sdk/file-handle.d.ts.map +1 -0
  226. package/dist/objects/sdk/object-handle.d.ts +2 -2
  227. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  228. package/dist/objects/sdk/object-set.d.ts +2 -0
  229. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  230. package/dist/ontology/builders.d.ts +12 -1
  231. package/dist/ontology/builders.d.ts.map +1 -1
  232. package/dist/ontology/docs-markdown.d.ts +35 -0
  233. package/dist/ontology/docs-markdown.d.ts.map +1 -0
  234. package/dist/ontology/docs.d.ts +50 -0
  235. package/dist/ontology/docs.d.ts.map +1 -0
  236. package/dist/ontology/index.js +7 -4
  237. package/dist/ontology/index.js.map +1 -1
  238. package/dist/ontology/inference/index.d.ts +19 -0
  239. package/dist/ontology/inference/index.d.ts.map +1 -1
  240. package/dist/ontology/internal.d.ts +3 -1
  241. package/dist/ontology/internal.d.ts.map +1 -1
  242. package/dist/ontology/internal.js +276 -3
  243. package/dist/ontology/internal.js.map +4 -3
  244. package/dist/ontology/tokens.d.ts +8 -1
  245. package/dist/ontology/tokens.d.ts.map +1 -1
  246. package/dist/ontology/types.d.ts +5 -0
  247. package/dist/ontology/types.d.ts.map +1 -1
  248. package/dist/ontology/validation/index.d.ts +1 -1
  249. package/dist/ontology/validation/index.d.ts.map +1 -1
  250. package/dist/ontology/validation/schema.d.ts +7 -0
  251. package/dist/ontology/validation/schema.d.ts.map +1 -1
  252. package/dist/pipelines/index.js +21 -18
  253. package/dist/pipelines/index.js.map +1 -1
  254. package/dist/projections/internal.js +19 -16
  255. package/dist/projections/internal.js.map +1 -1
  256. package/dist/runtime/create.d.ts +11 -2
  257. package/dist/runtime/create.d.ts.map +1 -1
  258. package/dist/runtime/definitions.d.ts +3 -1
  259. package/dist/runtime/definitions.d.ts.map +1 -1
  260. package/dist/runtime/host.d.ts +13 -2
  261. package/dist/runtime/host.d.ts.map +1 -1
  262. package/dist/runtime/index.d.ts +1 -1
  263. package/dist/runtime/index.d.ts.map +1 -1
  264. package/dist/runtime/internal.js +21 -18
  265. package/dist/runtime/internal.js.map +1 -1
  266. package/dist/runtime/locale.d.ts +9 -0
  267. package/dist/runtime/locale.d.ts.map +1 -0
  268. package/dist/runtime/resolve-definitions.d.ts +4 -2
  269. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  270. package/dist/runtime/types.d.ts +30 -3
  271. package/dist/runtime/types.d.ts.map +1 -1
  272. package/dist/sandboxes/index.js +7 -6
  273. package/dist/sandboxes/index.js.map +1 -1
  274. package/dist/scheduler/index.js +1 -1
  275. package/dist/scheduler/runtime.d.ts +3 -0
  276. package/dist/scheduler/runtime.d.ts.map +1 -1
  277. package/dist/security/builders.d.ts +11 -2
  278. package/dist/security/builders.d.ts.map +1 -1
  279. package/dist/security/index.d.ts +4 -4
  280. package/dist/security/index.d.ts.map +1 -1
  281. package/dist/security/markings.d.ts +19 -0
  282. package/dist/security/markings.d.ts.map +1 -0
  283. package/dist/security/redactions.d.ts +4 -0
  284. package/dist/security/redactions.d.ts.map +1 -0
  285. package/dist/security/registry.d.ts +7 -1
  286. package/dist/security/registry.d.ts.map +1 -1
  287. package/dist/security/types.d.ts +25 -0
  288. package/dist/security/types.d.ts.map +1 -1
  289. package/dist/security/validation.d.ts +4 -1
  290. package/dist/security/validation.d.ts.map +1 -1
  291. package/dist/shares/internal.js +18 -15
  292. package/dist/shares/internal.js.map +2 -2
  293. package/dist/storage/agents/provider.d.ts.map +1 -1
  294. package/dist/storage/agents/provider.js +5 -4
  295. package/dist/storage/agents/provider.js.map +1 -1
  296. package/dist/storage/agents/types.d.ts +15 -9
  297. package/dist/storage/agents/types.d.ts.map +1 -1
  298. package/dist/storage/file-upload-sessions/provider.js +10 -7
  299. package/dist/storage/file-upload-sessions/provider.js.map +1 -1
  300. package/dist/storage/index.d.ts +1 -0
  301. package/dist/storage/index.d.ts.map +1 -1
  302. package/dist/storage/index.js +18 -15
  303. package/dist/storage/index.js.map +1 -1
  304. package/dist/storage/internal.js +4 -3
  305. package/dist/storage/internal.js.map +1 -1
  306. package/dist/storage/objects/types.d.ts +7 -0
  307. package/dist/storage/objects/types.d.ts.map +1 -1
  308. package/dist/storage/workflow-runs/provider.js +10 -7
  309. package/dist/storage/workflow-runs/provider.js.map +1 -1
  310. package/dist/syncs/index.js +22 -19
  311. package/dist/syncs/index.js.map +1 -1
  312. package/dist/testing/index.js +55 -53
  313. package/dist/testing/index.js.map +2 -2
  314. package/dist/webhooks/internal.js +19 -16
  315. package/dist/webhooks/internal.js.map +2 -2
  316. package/dist/workflows/builders.d.ts.map +1 -1
  317. package/dist/workflows/index.js +41 -38
  318. package/dist/workflows/index.js.map +1 -1
  319. package/dist/workflows/request.d.ts.map +1 -1
  320. package/dist/workflows/types.d.ts +6 -3
  321. package/dist/workflows/types.d.ts.map +1 -1
  322. package/dist/workflows/validation.d.ts +2 -1
  323. package/dist/workflows/validation.d.ts.map +1 -1
  324. package/package.json +1 -1
  325. package/src/actions/read-facade.ts +2 -1
  326. package/src/actions/validation.ts +4 -1
  327. package/src/agents/adapters.ts +15 -0
  328. package/src/agents/authority.ts +15 -0
  329. package/src/agents/context/entries.ts +48 -4
  330. package/src/agents/context/index.ts +1 -0
  331. package/src/agents/context-compaction.ts +6 -0
  332. package/src/agents/errors.ts +3 -0
  333. package/src/agents/index.ts +13 -1
  334. package/src/agents/message.ts +9 -0
  335. package/src/agents/request.ts +178 -22
  336. package/src/agents/skills.ts +63 -0
  337. package/src/agents/types.ts +35 -5
  338. package/src/auth/runtime.ts +14 -0
  339. package/src/auth/types.ts +6 -0
  340. package/src/authorization/resolve.ts +6 -1
  341. package/src/authorization/types.ts +7 -0
  342. package/src/blob-storage/execution.ts +12 -0
  343. package/src/blob-storage/file-content.ts +106 -0
  344. package/src/blob-storage/index.ts +1 -0
  345. package/src/blob-storage/internal.ts +7 -0
  346. package/src/blob-storage/media-type.ts +29 -0
  347. package/src/blob-storage/types.ts +13 -1
  348. package/src/blob-storage/validation.ts +13 -0
  349. package/src/bootstrap/agent-context.ts +356 -0
  350. package/src/bootstrap/discovery.ts +100 -33
  351. package/src/bootstrap/index.ts +1 -1
  352. package/src/bootstrap/ontology-type-manifest.ts +3 -38
  353. package/src/datasets/builders.ts +17 -1
  354. package/src/datasets/execution.ts +110 -2
  355. package/src/datasets/index.ts +7 -1
  356. package/src/datasets/types.ts +2 -0
  357. package/src/datasets/write.ts +21 -2
  358. package/src/edits/properties.ts +3 -0
  359. package/src/events/execution.ts +15 -16
  360. package/src/events/types/objects.ts +5 -0
  361. package/src/execution/agent.ts +27 -0
  362. package/src/execution/authorization.ts +1 -0
  363. package/src/execution/authorized-object-reader.ts +96 -34
  364. package/src/execution/scopes.ts +2 -6
  365. package/src/http/api-routes.ts +4 -3
  366. package/src/index.ts +27 -2
  367. package/src/models/catalog.ts +26 -2
  368. package/src/models/execution/README.md +4 -3
  369. package/src/models/execution/binding.ts +6 -0
  370. package/src/models/execution/model-call-recorder.ts +10 -0
  371. package/src/models/execution/session.ts +2 -2
  372. package/src/models/execution.ts +6 -2
  373. package/src/models/language-model.ts +6 -0
  374. package/src/objects/context/index.ts +1 -0
  375. package/src/objects/context/types.ts +7 -0
  376. package/src/objects/execution.ts +4 -1
  377. package/src/objects/materializer-adapter.ts +3 -0
  378. package/src/objects/object/upsert-batch.ts +4 -1
  379. package/src/objects/object/upsert.ts +3 -1
  380. package/src/objects/property-clearance.ts +209 -0
  381. package/src/objects/query/executor.ts +43 -36
  382. package/src/objects/query/validate.ts +133 -14
  383. package/src/objects/sdk/file-handle.ts +77 -0
  384. package/src/objects/sdk/object-handle.ts +8 -4
  385. package/src/objects/sdk/object-set.ts +5 -2
  386. package/src/ontology/builders.ts +18 -2
  387. package/src/ontology/docs-markdown.ts +394 -0
  388. package/src/ontology/docs.ts +196 -0
  389. package/src/ontology/inference/index.ts +25 -0
  390. package/src/ontology/internal.ts +7 -0
  391. package/src/ontology/tokens.ts +13 -2
  392. package/src/ontology/types.ts +5 -0
  393. package/src/ontology/validation/index.ts +1 -0
  394. package/src/ontology/validation/schema.ts +26 -1
  395. package/src/runtime/create.ts +34 -4
  396. package/src/runtime/definitions.ts +3 -1
  397. package/src/runtime/host.ts +45 -1
  398. package/src/runtime/index.ts +3 -0
  399. package/src/runtime/locale.ts +26 -0
  400. package/src/runtime/resolve-definitions.ts +28 -1
  401. package/src/runtime/sixb.ts +1 -1
  402. package/src/runtime/types.ts +39 -3
  403. package/src/scheduler/runtime.ts +11 -2
  404. package/src/security/builders.ts +49 -5
  405. package/src/security/index.ts +6 -1
  406. package/src/security/markings.ts +313 -0
  407. package/src/security/redactions.ts +6 -0
  408. package/src/security/registry.ts +21 -1
  409. package/src/security/types.ts +26 -0
  410. package/src/security/validation.ts +59 -2
  411. package/src/storage/agents/provider.ts +11 -0
  412. package/src/storage/agents/types.ts +15 -7
  413. package/src/storage/index.ts +1 -0
  414. package/src/storage/objects/types.ts +7 -0
  415. package/src/workflows/builders.ts +24 -1
  416. package/src/workflows/request.ts +3 -0
  417. package/src/workflows/types.ts +6 -3
  418. package/src/workflows/validation.ts +32 -4
  419. package/dist/chunk-10styjgk.js.map +0 -20
  420. package/dist/chunk-52c5zb0z.js.map +0 -10
  421. package/dist/chunk-69266efg.js.map +0 -12
  422. package/dist/chunk-6wbm6ymz.js.map +0 -48
  423. package/dist/chunk-91kcnbf0.js.map +0 -10
  424. package/dist/chunk-98cw09sw.js.map +0 -10
  425. package/dist/chunk-9vx5e9g1.js.map +0 -11
  426. package/dist/chunk-cd234ba4.js.map +0 -14
  427. package/dist/chunk-cnb5kv05.js.map +0 -19
  428. package/dist/chunk-dmn70ztd.js.map +0 -11
  429. package/dist/chunk-gf7yht60.js.map +0 -12
  430. package/dist/chunk-h3v76ams.js.map +0 -11
  431. package/dist/chunk-pja9jfz6.js.map +0 -19
  432. package/dist/chunk-t9shqx3w.js.map +0 -12
  433. package/dist/chunk-xcy5ddha.js.map +0 -15
  434. package/dist/chunk-xyvy73tj.js.map +0 -12
  435. package/dist/chunk-z5rnrmz1.js.map +0 -11
  436. /package/dist/{chunk-4gmng3vf.js.map → chunk-22v5bpz3.js.map} +0 -0
  437. /package/dist/{chunk-2am3db31.js.map → chunk-48e3cn2d.js.map} +0 -0
  438. /package/dist/{chunk-f1xh7a32.js.map → chunk-7hpdd6r9.js.map} +0 -0
  439. /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
  440. /package/dist/{chunk-vp3z1ckh.js.map → chunk-de4z2bj6.js.map} +0 -0
  441. /package/dist/{chunk-3rrezgyc.js.map → chunk-dnmadg9k.js.map} +0 -0
  442. /package/dist/{chunk-a7er86jd.js.map → chunk-ex496vct.js.map} +0 -0
  443. /package/dist/{chunk-jnfxmr3f.js.map → chunk-f1zxad2t.js.map} +0 -0
  444. /package/dist/{chunk-c2rga5cx.js.map → chunk-mfs23znk.js.map} +0 -0
  445. /package/dist/{chunk-fggq3d9k.js.map → chunk-p0dqwj3n.js.map} +0 -0
  446. /package/dist/{chunk-sk0hcjsz.js.map → chunk-qkvz64nd.js.map} +0 -0
  447. /package/dist/{chunk-rx7h5fdx.js.map → chunk-rt9p8m9t.js.map} +0 -0
  448. /package/dist/{chunk-e67ynxcr.js.map → chunk-v6xpd60t.js.map} +0 -0
  449. /package/dist/{chunk-jjrn5v0p.js.map → chunk-vgk3hknm.js.map} +0 -0
  450. /package/dist/{chunk-5thzcb8g.js.map → chunk-vx2yp45y.js.map} +0 -0
  451. /package/dist/{chunk-k4g51s47.js.map → chunk-yv9czyfr.js.map} +0 -0
  452. /package/dist/{chunk-vre348sb.js.map → chunk-za5yd58j.js.map} +0 -0
  453. /package/dist/{chunk-23xs4qp9.js.map → chunk-zb77kjth.js.map} +0 -0
  454. /package/dist/{chunk-33saed7g.js.map → chunk-zxawp1n2.js.map} +0 -0
@@ -6,6 +6,6 @@
6
6
  "import { blobIdFromDigest } from \"./derive\"\nimport { BlobStorageError } from \"./errors\"\nimport type {\n BlobByteRange,\n BlobInfo,\n BlobStorage,\n FileRef,\n PutBlobInput,\n RangeReadableBlobStorage,\n} from \"./types\"\nimport {\n assertExpectedBlobSize,\n assertValidExpectedBlobSize,\n computeBlobDigest,\n createFileRef,\n readBlobBody,\n} from \"./utils\"\n\ntype StoredBlob = {\n readonly bytes: Uint8Array\n readonly info: BlobInfo\n}\n\nexport class InMemoryBlobStorage implements BlobStorage, RangeReadableBlobStorage {\n private readonly blobsById = new Map<string, StoredBlob>()\n\n async put(input: PutBlobInput): Promise<FileRef> {\n assertValidExpectedBlobSize(input.expectedSizeBytes)\n const bytes = await readBlobBody(input.body, input.signal)\n assertExpectedBlobSize(input.expectedSizeBytes, bytes.byteLength, \"BlobStorage\")\n const digest = computeBlobDigest(bytes)\n const blobId = blobIdFromDigest(digest)\n\n let stored = this.blobsById.get(blobId)\n if (!stored) {\n stored = {\n bytes,\n info: {\n blobId,\n digest,\n sizeBytes: bytes.byteLength,\n },\n }\n this.blobsById.set(blobId, stored)\n }\n\n return createFileRef(input, stored.info)\n }\n\n async open(blobId: string): Promise<ReadableStream<Uint8Array>> {\n const stored = this.requireStoredBlob(blobId)\n return new Blob([new Uint8Array(stored.bytes)]).stream()\n }\n\n async openRange(blobId: string, range: BlobByteRange): Promise<ReadableStream<Uint8Array>> {\n const stored = this.requireStoredBlob(blobId)\n const bytes = stored.bytes.slice(range.start, range.endInclusive + 1)\n return new Blob([bytes]).stream()\n }\n\n async stat(blobId: string): Promise<BlobInfo | null> {\n const stored = this.blobsById.get(blobId)\n return stored ? { ...stored.info } : null\n }\n\n private requireStoredBlob(blobId: string): StoredBlob {\n const stored = this.blobsById.get(blobId)\n if (!stored) {\n throw new BlobStorageError(`[BlobStorage] Unknown blob '${blobId}'`)\n }\n\n return stored\n }\n}\n"
7
7
  ],
8
8
  "mappings": "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",
9
- "debugId": "952B02F894863A4864756E2164756E21",
9
+ "debugId": "4CEC9C8A0E6E7B7264756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -13,6 +13,7 @@ var AGENT_RUN_FINISH_REASONS2 = [
13
13
  "content-filter",
14
14
  "tool-calls",
15
15
  "timeout",
16
+ "interrupted",
16
17
  "error",
17
18
  "other",
18
19
  "unknown"
@@ -29,9 +30,10 @@ var AGENT_RUN_DIAGNOSTIC_CODES2 = [
29
30
  "output_budget_exhausted",
30
31
  "output_collection_failed",
31
32
  "output_file_changed",
32
- "output_storage_failed"
33
+ "output_storage_failed",
34
+ "step_limit_reached"
33
35
  ];
34
36
 
35
37
  export { AGENT_RUN_FAILURE_CODES2, AGENT_RUN_FINISH_REASONS2, coerceAgentRunFinishReason2, AGENT_RUN_DIAGNOSTIC_CODES2 };
36
38
 
37
- //# debugId=305DAAAEB1335EE664756E2164756E21
39
+ //# debugId=DD020A3A47567D1D64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/storage/agents/types.ts"],
4
+ "sourcesContent": [
5
+ "import type { AgentMessage, AgentMessagePart, AgentMessageRole } from \"../../agents/message\"\nimport type { AgentReasoning } from \"../../agents/types\"\nimport type { Principal } from \"../../auth\"\nimport type { FileRef } from \"../../blob-storage\"\nimport type { SixbErrorCode, SixbFailure } from \"../../errors/types\"\nimport type { JsonValue } from \"../../json\"\nimport type { LanguageModelRef } from \"../../models\"\n\n// ── agent_threads — one conversation with an agent ──────────────────────────────────────────────\n\nexport type AgentThreadStatus = \"active\" | \"archived\"\n\n/** Immutable, non-secret application input. Never store resolved env or credentials here. */\nexport type AgentThreadSandboxParams = Readonly<Record<string, JsonValue>>\n\n/** Worker-owned state, independent from the immutable application binding. */\nexport interface AgentThreadSandboxState {\n /** Exact name passed to the provider. Replacements always receive a fresh name. */\n readonly name: string\n readonly status: \"new\" | \"busy\" | \"ready\" | \"blocked\" | \"unavailable\"\n readonly sourceFingerprint?: string\n readonly initialized: boolean\n /** Durable context boundary: local files from before this reset are no longer available. */\n readonly resetAt?: string\n /** Never expires automatically: a delayed provider operation must not reach a successor. */\n readonly owner?: { readonly runId: string; readonly executionToken: string }\n}\n\nexport type TransitionAgentThreadSandboxInput = {\n readonly projectId: string\n readonly id: string\n} & (\n | {\n readonly action: \"acquire\"\n readonly runId: string\n readonly executionToken: string\n readonly name: string\n readonly sourceFingerprint: string\n }\n | {\n readonly action: \"replace\"\n readonly runId: string\n readonly executionToken: string\n readonly name: string\n readonly nextName: string\n }\n | {\n readonly action: \"settle\"\n readonly runId: string\n readonly executionToken: string\n readonly name: string\n readonly status: \"ready\" | \"blocked\" | \"unavailable\"\n readonly initialized: boolean\n }\n | {\n readonly action: \"recreate\"\n readonly expectedSandboxName: string\n readonly name: string\n }\n)\n\nexport interface AgentThreadRecord {\n readonly id: string\n readonly projectId: string\n /** Who owns/opened the thread. Reuses the canonical auth principal (gains `agent` later for free). */\n readonly ownerPrincipal: Principal\n readonly title?: string\n readonly sandboxParams?: AgentThreadSandboxParams\n readonly sandboxState?: AgentThreadSandboxState\n readonly status: AgentThreadStatus\n /** Single-flight anchor: the id of the one run currently allowed to write, or `null` when idle. */\n readonly activeRunId: string | null\n readonly lastMessageAt?: Date\n readonly messageCount: number\n readonly createdAt: Date\n readonly updatedAt: Date\n}\n\nexport interface CreateAgentThreadInput {\n readonly id: string\n readonly projectId: string\n readonly ownerPrincipal: Principal\n readonly title?: string\n readonly sandboxParams?: AgentThreadSandboxParams\n readonly status?: AgentThreadStatus\n readonly createdAt?: Date\n readonly updatedAt?: Date\n}\n\nexport interface ListAgentThreadsInput {\n readonly projectId: string\n readonly statuses?: readonly AgentThreadStatus[]\n readonly ownerPrincipal?: Principal\n readonly limit?: number\n readonly offset?: number\n readonly order?: \"asc\" | \"desc\"\n}\n\nexport interface ListAgentThreadsResult {\n readonly threads: readonly AgentThreadRecord[]\n readonly hasMore: boolean\n readonly total: number\n}\n\n// ── agent_runs — one loop execution (the worker job; attribution + fencing) ───────────────────\n\n/** Lifecycle shared by every durable agent execution, conversational or workflow-owned. */\nexport type AgentExecutionStatus = \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\"\n\nexport type AgentRunStatus = AgentExecutionStatus\nexport type AgentRunKind = \"conversation\" | \"subagent\"\n\n/** Error codes an agent execution can persist and expose through its public contract. */\nexport const AGENT_RUN_FAILURE_CODES = [\n \"internal.unexpected\",\n \"runtime.cancelled\",\n \"agent.execution_failed\",\n \"ai.usage_limit_exceeded\",\n \"ai.usage_limit_unavailable\",\n] as const satisfies readonly [SixbErrorCode, ...SixbErrorCode[]]\n\nexport type AgentRunFailureCode = (typeof AGENT_RUN_FAILURE_CODES)[number]\n\n/**\n * Why a run ended — Sixb's provider-independent vocabulary. It includes model-loop reasons plus\n * platform-level endings such as `timeout`, or `interrupted` for a turn whose worker died before\n * finishing it, so reads remain typed and exhaustive. `other` and `unknown` preserve terminal state\n * when a provider adds a new reason.\n */\nexport const AGENT_RUN_FINISH_REASONS = [\n \"stop\",\n \"length\",\n \"content-filter\",\n \"tool-calls\",\n \"timeout\",\n \"interrupted\",\n \"error\",\n \"other\",\n \"unknown\",\n] as const\n\nexport type AgentRunFinishReason = (typeof AGENT_RUN_FINISH_REASONS)[number]\n\n/**\n * Coerce an external finish-reason string — a DB column or an SDK value — to {@link\n * AgentRunFinishReason}. An unrecognised value becomes `\"unknown\"` rather than being dropped.\n */\nexport function coerceAgentRunFinishReason(\n value: string | null | undefined\n): AgentRunFinishReason | undefined {\n if (value === null || value === undefined) {\n return undefined\n }\n return (AGENT_RUN_FINISH_REASONS as readonly string[]).includes(value)\n ? (value as AgentRunFinishReason)\n : \"unknown\"\n}\n\n/** Stable, user-facing diagnostics emitted by the platform while executing a run. */\nexport const AGENT_RUN_DIAGNOSTIC_CODES = [\n \"output_file_limit_exceeded\",\n \"output_file_too_large\",\n \"output_budget_exhausted\",\n \"output_collection_failed\",\n \"output_file_changed\",\n \"output_storage_failed\",\n \"step_limit_reached\",\n] as const\n\n/**\n * Closed on purpose, and the wire is closed with it.\n *\n * Sixb writes these codes and the generated client is what reads them, so an open union would only\n * be honest if the HTTP schema were open too — and that costs the OpenAPI enum, the client's\n * autocompletion, and Atlas's exhaustive `switch`. Sixb owns both ends, so a new code is a minor\n * version bump: cheap here, and a broken `switch` is better than a 500 from `z.enum`.\n */\nexport type AgentRunDiagnosticCode = (typeof AGENT_RUN_DIAGNOSTIC_CODES)[number]\nexport type AgentRunDiagnosticSeverity = \"warning\" | \"error\"\n\nexport interface AgentRunDiagnostic {\n readonly code: AgentRunDiagnosticCode\n readonly severity: AgentRunDiagnosticSeverity\n /** `output` for published files, `run` for the turn as a whole. */\n readonly scope: \"output\" | \"run\"\n /** Relative path inside the run's published output directory, when one file is involved. */\n readonly path?: string\n /** Sanitized, stable copy suitable for display to an end user. */\n readonly message: string\n}\n\n/**\n * Authorization state for the current queue delivery.\n *\n * `queueLeaseExpiresAt` is a persisted projection of `ClaimedQueueJob.leaseExpiresAt`, not an\n * independently managed run lease. It may only be extended from a successful queue lease renewal.\n */\nexport interface AgentRunExecution {\n readonly token: string\n readonly queueLeaseExpiresAt: Date\n}\n\ninterface AgentRunRecordBase {\n readonly id: string\n readonly projectId: string\n readonly executionId: string\n readonly status: AgentRunStatus\n readonly modelId?: string\n /** Why the run ended (our own SDK-independent enum). */\n readonly finishReason?: AgentRunFinishReason\n /** Platform diagnostics are transcript annotations, never agent-authored message content. */\n readonly diagnostics?: readonly AgentRunDiagnostic[]\n /** Portable failure snapshot when the run did not succeed. */\n readonly error?: SixbFailure<AgentRunFailureCode>\n /** Execution attempts: `0` while queued, `1` on first start, incremented on redelivery. */\n readonly attempt: number\n readonly execution?: AgentRunExecution\n readonly createdAt: Date\n readonly startedAt?: Date\n readonly completedAt?: Date\n}\n\nexport interface ConversationAgentRunRecord extends AgentRunRecordBase {\n readonly kind: \"conversation\"\n readonly threadId: string\n readonly triggerMessageId: string\n /** Immutable model selection captured at admission. Absent only on runs predating this field. */\n readonly spec?: ConversationAgentRunSpec\n}\n\n/** Immutable, serialisable model selection and requester settings for one conversational turn. */\nexport interface ConversationAgentRunSpec {\n readonly model: LanguageModelRef\n readonly reasoning?: AgentReasoning\n /** Canonical IANA time zone of the requester. Absent uses the project time zone. */\n readonly timeZone?: string\n /** Canonical BCP 47 language of the requester. Absent uses the project locale. */\n readonly locale?: string\n}\n\n/** Immutable, serialisable child configuration captured before dispatch. */\nexport interface SubagentRunSpec {\n readonly model: LanguageModelRef\n readonly reasoning?: AgentReasoning\n /** Focused task supplied by the parent Agent. */\n readonly task: string\n /** Project tools available when the child was admitted. Runtime tools are injected separately. */\n readonly toolNames: readonly string[]\n readonly maxSteps: number\n}\n\n/** Durable child output returned to its parent by `wait_agent`. */\nexport interface SubagentRunResult {\n readonly text?: string\n readonly files?: readonly FileRef[]\n}\n\nexport interface SubagentRunRecord extends AgentRunRecordBase {\n readonly kind: \"subagent\"\n readonly parentRunId: string\n /** Stable parent-selected key that makes repeated tool execution idempotent. */\n readonly spawnKey: string\n readonly spec: SubagentRunSpec\n readonly result?: SubagentRunResult\n}\n\nexport type AgentRunRecord = ConversationAgentRunRecord | SubagentRunRecord\n\nexport interface CreateAgentRunInput {\n readonly id: string\n readonly projectId: string\n readonly executionId: string\n readonly threadId: string\n readonly triggerMessageId: string\n readonly spec: ConversationAgentRunSpec\n readonly createdAt?: Date\n}\n\nexport interface CreateSubagentRunInput {\n readonly id: string\n readonly projectId: string\n readonly executionId: string\n readonly parentRunId: string\n /** Current parent delivery token. New children are admitted only while that delivery owns it. */\n readonly parentExecutionToken: string\n readonly spawnKey: string\n readonly spec: SubagentRunSpec\n /** Internal safety bound enforced atomically across worker processes. */\n readonly maxActiveChildren: number\n readonly createdAt?: Date\n}\n\nexport interface StartAgentRunInput {\n readonly id: string\n readonly projectId: string\n readonly modelId?: string\n readonly execution: AgentRunExecution\n readonly startedAt?: Date\n}\n\nexport interface FinishQueuedAgentRunInput {\n readonly id: string\n readonly projectId: string\n readonly status: \"failed\" | \"cancelled\"\n readonly error?: SixbFailure<AgentRunFailureCode>\n readonly completedAt?: Date\n}\n\nexport interface ReclaimAgentRunInput {\n readonly id: string\n readonly projectId: string\n readonly execution: AgentRunExecution\n}\n\nexport interface ConfirmAgentRunExecutionOwnershipInput {\n readonly id: string\n readonly projectId: string\n readonly executionToken: string\n /** Exact expiration returned by the queue claim or its latest successful renewal. */\n readonly queueLeaseExpiresAt: Date\n}\n\nexport type FinishAgentRunInput =\n | {\n readonly id: string\n readonly projectId: string\n readonly executionToken: string\n readonly status: \"succeeded\"\n readonly modelId?: string\n readonly finishReason?: AgentRunFinishReason\n readonly diagnostics?: readonly AgentRunDiagnostic[]\n readonly result?: SubagentRunResult\n readonly completedAt?: Date\n }\n | {\n readonly id: string\n readonly projectId: string\n readonly executionToken: string\n readonly status: \"failed\" | \"cancelled\"\n readonly modelId?: string\n readonly finishReason?: AgentRunFinishReason\n readonly diagnostics?: readonly AgentRunDiagnostic[]\n readonly error?: SixbFailure<AgentRunFailureCode>\n readonly completedAt?: Date\n }\n\nexport interface ListAgentRunsInput {\n readonly projectId: string\n readonly kinds?: readonly AgentRunKind[]\n readonly threadId?: string\n readonly parentRunId?: string\n readonly statuses?: readonly AgentRunStatus[]\n /** Effective start time; runs that never started use `createdAt`. */\n readonly startedAfter?: Date\n /** Effective start time; runs that never started use `createdAt`. */\n readonly startedBefore?: Date\n readonly limit?: number\n readonly offset?: number\n readonly order?: \"asc\" | \"desc\"\n}\n\nexport interface ListAgentRunsResult {\n readonly runs: readonly AgentRunRecord[]\n readonly hasMore: boolean\n readonly total: number\n}\n\n// ── agent_messages — one message (assistant messages inserted only once finalized) ─────────────\n\nexport type { AgentMessageRole }\n\nexport interface AgentMessageRecord {\n readonly id: string\n readonly projectId: string\n readonly threadId: string\n /** The run that produced this message; `null` for user-authored messages. */\n readonly runId: string | null\n readonly role: AgentMessageRole\n /** Principal that authored this persisted message: caller for user messages, agent identity later for assistant messages. */\n readonly authorPrincipal?: Principal\n /** Monotonic per thread, assigned by the store. */\n readonly seq: number\n /** Structured message content — text / reasoning / step boundaries / tool calls. */\n readonly parts: readonly AgentMessagePart[]\n /** Message-level metadata (mirrors `UIMessage.metadata`). */\n readonly metadata?: JsonValue\n /** Versions the `parts` shape so it can be migrated; stamped from `AGENT_MESSAGE_CONTENT_VERSION`. */\n readonly contentVersion: number\n readonly createdAt: Date\n readonly completedAt?: Date\n}\n\n/** Append a message: a {@link AgentMessage} (role + parts + metadata) plus its storage identity. */\nexport interface AppendAgentMessageInput extends AgentMessage {\n readonly id: string\n readonly projectId: string\n readonly threadId: string\n readonly runId: string | null\n readonly authorPrincipal?: Principal\n readonly createdAt?: Date\n readonly completedAt?: Date\n}\n\nexport interface DeleteAgentMessagesByRunInput {\n readonly projectId: string\n readonly threadId: string\n readonly runId: string\n}\n\nexport interface ListAgentMessagesInput {\n readonly projectId: string\n readonly threadId: string\n /** Return only messages whose per-thread sequence is greater than this retained boundary. */\n readonly afterSeq?: number\n readonly roles?: readonly AgentMessageRole[]\n readonly limit?: number\n readonly offset?: number\n readonly order?: \"asc\" | \"desc\"\n}\n\nexport interface ListAgentMessagesResult {\n readonly messages: readonly AgentMessageRecord[]\n readonly hasMore: boolean\n readonly total: number\n}\n\n// ── agent_context_checkpoints — append-only model-context boundaries ──────────────────────────\n\nexport type AgentContextCheckpointReason = \"threshold\" | \"overflow\"\n\n/**\n * A durable summary boundary used only when projecting a thread into model context.\n *\n * Checkpoints never replace or mutate transcript messages. Normal thread reads remain authoritative\n * and complete; the worker reads the latest checkpoint and only the retained message tail.\n */\nexport interface AgentContextCheckpointRecord {\n readonly id: string\n readonly projectId: string\n readonly threadId: string\n readonly createdByRunId: string\n readonly previousCheckpointId?: string\n readonly reason: AgentContextCheckpointReason\n readonly summary: string\n readonly summaryFormatVersion: 1\n readonly summarizedThroughSeq: number\n readonly observedHeadSeq: number\n readonly estimatedInputTokensBefore: number\n readonly estimatedInputTokensAfter: number\n readonly summaryModelId: string\n readonly createdAt: Date\n}\n\nexport interface CreateAgentContextCheckpointInput {\n readonly id: string\n readonly projectId: string\n readonly threadId: string\n readonly createdByRunId: string\n /** Compare-and-swap anchor. `null` means the thread must not have a prior checkpoint. */\n readonly expectedPreviousCheckpointId: string | null\n /** Compare-and-swap anchor for the complete transcript observed by the summarizer. */\n readonly expectedHeadSeq: number\n /** Current delivery token for `createdByRunId`; stale redeliveries must not write. */\n readonly executionToken: string\n readonly reason: AgentContextCheckpointReason\n readonly summary: string\n readonly summaryFormatVersion: 1\n readonly summarizedThroughSeq: number\n readonly observedHeadSeq: number\n readonly estimatedInputTokensBefore: number\n readonly estimatedInputTokensAfter: number\n readonly summaryModelId: string\n readonly createdAt?: Date\n}\n\n// ── Store ───────────────────────────────────────────────────────────────────────────────────────\n\nexport interface AgentThreadStore {\n /** Atomic run-fenced transition, or explicit idle-thread recreation. */\n transitionSandbox(input: TransitionAgentThreadSandboxInput): Promise<AgentThreadSandboxState>\n create(input: CreateAgentThreadInput): Promise<AgentThreadRecord>\n getById(params: { projectId: string; id: string }): Promise<AgentThreadRecord | null>\n list(input: ListAgentThreadsInput): Promise<ListAgentThreadsResult>\n}\n\nexport interface AgentRunStore {\n /** Persist a queued run and atomically claim the thread's single-flight slot. */\n create(input: CreateAgentRunInput): Promise<ConversationAgentRunRecord>\n /** Persist or replay one idempotent child run while atomically enforcing parent fan-out. */\n createSubagent(input: CreateSubagentRunInput): Promise<SubagentRunRecord>\n /** Transition a queued run to running and install the first delivery's execution token. */\n start(input: StartAgentRunInput): Promise<AgentRunRecord>\n /** Finish a queued run before execution and release the thread's single-flight slot. */\n finishQueued(input: FinishQueuedAgentRunInput): Promise<AgentRunRecord>\n /** Rotate the execution token for a redelivered running job (`attempt++`). */\n reclaim(input: ReclaimAgentRunInput): Promise<AgentRunRecord>\n /**\n * Project the queue's latest confirmed ownership expiration onto the current execution.\n * Implementations must fence by token and must never move the expiration backwards.\n */\n confirmExecutionOwnership(input: ConfirmAgentRunExecutionOwnershipInput): Promise<AgentRunRecord>\n /** Finalize a run and release the thread's `activeRunId`. */\n finish(input: FinishAgentRunInput): Promise<AgentRunRecord>\n getById(params: { projectId: string; id: string }): Promise<AgentRunRecord | null>\n getByIds(params: {\n projectId: string\n ids: readonly string[]\n }): Promise<readonly AgentRunRecord[]>\n list(input: ListAgentRunsInput): Promise<ListAgentRunsResult>\n}\n\nexport interface AgentMessageStore {\n /** Insert a message (its `parts` are the canonical content) and bump thread stats. */\n append(input: AppendAgentMessageInput): Promise<AgentMessageRecord>\n /** Delete every message produced by one run and repair the thread's message stats. */\n deleteByRunId(input: DeleteAgentMessagesByRunInput): Promise<number>\n getById(params: { projectId: string; id: string }): Promise<AgentMessageRecord | null>\n list(input: ListAgentMessagesInput): Promise<ListAgentMessagesResult>\n}\n\nexport interface AgentContextCheckpointStore {\n /**\n * Append one checkpoint after atomically validating run ownership and both transcript anchors.\n * Repeating the same payload for the same creating run is idempotent.\n */\n create(input: CreateAgentContextCheckpointInput): Promise<AgentContextCheckpointRecord>\n /** Return checkpoints created by the requested runs, in first-occurrence input order. */\n getByRunIds(input: {\n readonly projectId: string\n readonly runIds: readonly string[]\n }): Promise<readonly AgentContextCheckpointRecord[]>\n getLatest(input: {\n readonly projectId: string\n readonly threadId: string\n }): Promise<AgentContextCheckpointRecord | null>\n}\n\nexport interface AgentStorage {\n readonly threads: AgentThreadStore\n readonly runs: AgentRunStore\n readonly messages: AgentMessageStore\n readonly checkpoints: AgentContextCheckpointStore\n}\n"
6
+ ],
7
+ "mappings": ";;AAiHO,IAAM,2BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAUO,IAAM,4BAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAQO,SAAS,2BAA0B,CACxC,OACkC;AAAA,EAClC,IAAI,UAAU,QAAQ,UAAU,WAAW;AAAA,IACzC;AAAA,EACF;AAAA,EACA,OAAQ,0BAA+C,SAAS,KAAK,IAChE,QACD;AAAA;AAIC,IAAM,8BAA6B;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
8
+ "debugId": "DD020A3A47567D1D64756E2164756E21",
9
+ "names": []
10
+ }
@@ -3,7 +3,7 @@ import {
3
3
  MAX_OBJECT_READ_FACETS2,
4
4
  isAllowed2,
5
5
  assertAuthorized2
6
- } from "./chunk-5be2ath4.js";
6
+ } from "./chunk-qkbx3tf6.js";
7
7
  import {
8
8
  validateSchemaValue2,
9
9
  validatePropertyValue2,
@@ -12,10 +12,10 @@ import {
12
12
  isTextSchema,
13
13
  isContainsSchema,
14
14
  queryScalarKindForSchema
15
- } from "./chunk-rpxz486p.js";
15
+ } from "./chunk-y05543x6.js";
16
16
  import {
17
17
  validateRerankingResults
18
- } from "./chunk-s7ftxrdr.js";
18
+ } from "./chunk-29yx306f.js";
19
19
  import {
20
20
  hasVectorProfile2,
21
21
  isVectorProfileQuery2,
@@ -28,7 +28,7 @@ import {
28
28
  vectorConfiguration,
29
29
  vectorSources,
30
30
  normalizeVector2
31
- } from "./chunk-5yd8cchh.js";
31
+ } from "./chunk-qq90g05n.js";
32
32
  import {
33
33
  normalizeObjectQuery2,
34
34
  ObjectQueryValidationError2,
@@ -67,6 +67,41 @@ var NOOP_QUERY_ADMISSION = Object.freeze({
67
67
  }),
68
68
  set: (input) => input.states[0] ?? NOOP_ADMISSION_STATE
69
69
  });
70
+ function composeObjectQueryAdmissions(first, second) {
71
+ const parts = new WeakMap;
72
+ const join = (left, right) => {
73
+ const state = Object.freeze({});
74
+ parts.set(state, [left, right]);
75
+ return state;
76
+ };
77
+ const split = (state) => {
78
+ const pair = parts.get(state);
79
+ if (!pair)
80
+ throw new Error("[Sixb] Composed query admission received a foreign state.");
81
+ return pair;
82
+ };
83
+ const transition = (left, right) => {
84
+ const denial = left.denial ?? right.denial;
85
+ return { state: join(left.state, right.state), ...denial ? { denial } : {} };
86
+ };
87
+ const admission = {
88
+ empty: () => join(first.empty(), second.empty()),
89
+ source: (input) => transition(first.source(input), second.source(input)),
90
+ edge: (input) => {
91
+ const [left, right] = split(input.state);
92
+ return transition(first.edge({ ...input, state: left }), second.edge({ ...input, state: right }));
93
+ },
94
+ property: (input) => {
95
+ const [left, right] = split(input.state);
96
+ return first.property({ ...input, state: left }) ?? second.property({ ...input, state: right });
97
+ },
98
+ set: (input) => {
99
+ const pairs = input.states.map(split);
100
+ return join(first.set({ ...input, states: pairs.map(([left]) => left) }), second.set({ ...input, states: pairs.map(([, right]) => right) }));
101
+ }
102
+ };
103
+ return Object.freeze(admission);
104
+ }
70
105
  function validateObjectQuery2(query, options) {
71
106
  const admitted = validateObjectQueryWithAdmission(query, options, NOOP_QUERY_ADMISSION);
72
107
  return {
@@ -299,7 +334,7 @@ function validateStart(objectTypeId, includeSubtypes, path, ctx) {
299
334
  addIssue(ctx, path, "unknown_object_type", formatUnknownObjectTypeMessage(objectTypeId));
300
335
  return { result: { objectTypeIds: [] }, query: { kind: "start", objectTypeId } };
301
336
  }
302
- const objectTypeIds = includeSubtypes ? uniqueStrings([objectTypeId, ...ctx.ontology.listSubTypes(objectTypeId)]) : [objectTypeId];
337
+ const objectTypeIds = includeSubtypes ? withSubtypes([objectTypeId], ctx) : [objectTypeId];
303
338
  return { result: { objectTypeIds }, query: { kind: "start", objectTypeId, includeSubtypes } };
304
339
  }
305
340
  function validatePredicate(predicate, shape, admissionState, path, ctx) {
@@ -513,16 +548,15 @@ function validateTextQuery(query, fields, shape, admissionState, path, ctx) {
513
548
  addIssue(ctx, path, "missing_text_fields", `Object type '${objectType.id}' must define search.defaultText or the text query must specify fields`);
514
549
  continue;
515
550
  }
551
+ const admitted = admitTextFields(fieldIds, fields === undefined, {
552
+ state: admissionState,
553
+ objectTypeId: objectType.id,
554
+ path: `${path}.fields`,
555
+ ctx
556
+ });
516
557
  if (fieldsByObjectType)
517
- fieldsByObjectType[objectType.id] = uniqueStrings(fieldIds);
558
+ fieldsByObjectType[objectType.id] = uniqueStrings(admitted);
518
559
  for (const fieldId of fieldIds) {
519
- admitProperty(ctx, {
520
- state: admissionState,
521
- propertyId: fieldId,
522
- objectTypeId: objectType.id,
523
- use: "text",
524
- path: `${path}.fields`
525
- });
526
560
  const property = getProperty(objectType, fieldId);
527
561
  if (!property) {
528
562
  addIssue(ctx, path, "unknown_text_field", `Text query references unknown property '${fieldId}' on '${objectType.id}'`);
@@ -538,6 +572,29 @@ function validateTextQuery(query, fields, shape, admissionState, path, ctx) {
538
572
  }
539
573
  return fieldsByObjectType ? { fieldsByObjectType } : {};
540
574
  }
575
+ function admitTextFields(fieldIds, defaults, input) {
576
+ const admitted = [];
577
+ let firstDenial;
578
+ for (const fieldId of fieldIds) {
579
+ const denial = input.ctx.admission.property({
580
+ state: input.state,
581
+ propertyId: fieldId,
582
+ objectTypeId: input.objectTypeId,
583
+ use: "text",
584
+ path: input.path
585
+ });
586
+ if (!denial) {
587
+ admitted.push(fieldId);
588
+ } else if (!defaults) {
589
+ recordAdmissionDenial(input.ctx, denial);
590
+ } else {
591
+ firstDenial ??= denial;
592
+ }
593
+ }
594
+ if (admitted.length === 0 && firstDenial)
595
+ recordAdmissionDenial(input.ctx, firstDenial);
596
+ return admitted;
597
+ }
541
598
  function validateVectorProfileQuery(query, shape, state, path, ctx) {
542
599
  const types = getObjectTypesForResult(shape, ctx);
543
600
  if (types.length !== 1 || !Number.isSafeInteger(query.k) || query.k < 1 || query.k > MAX_VECTOR_K) {
@@ -605,7 +662,9 @@ function validateOutgoingTraverse(linkId, shape, path, ctx) {
605
662
  }
606
663
  }
607
664
  }
608
- return { objectTypeIds: uniqueStrings(targetTypeIds) };
665
+ const objectTypeIds = uniqueStrings(targetTypeIds);
666
+ touchLinkTargets(objectTypeIds, ctx);
667
+ return { objectTypeIds };
609
668
  }
610
669
  function validateIncomingTraverse(linkId, sourceObjectTypeId, shape, path, ctx) {
611
670
  let candidateTypes = ctx.ontology.listObjectTypes();
@@ -688,7 +747,14 @@ function resolveOutgoingExpansionTargets(linkId, sourceObjectTypeId, shape, path
688
747
  if (!foundOnAnyType) {
689
748
  addIssue(ctx, path, "unknown_expand_link", `Expansion references link '${linkId}' not present on result type ${shape.objectTypeIds.join(" | ")} (an expand abandoned by a later traverse?)`);
690
749
  }
691
- return { objectTypeIds: uniqueStrings(targetTypeIds) };
750
+ const objectTypeIds = uniqueStrings(targetTypeIds);
751
+ touchLinkTargets(objectTypeIds, ctx);
752
+ return { objectTypeIds };
753
+ }
754
+ function touchLinkTargets(objectTypeIds, ctx) {
755
+ for (const objectTypeId of withSubtypes(objectTypeIds, ctx)) {
756
+ ctx.touchedObjectTypeIds.add(objectTypeId);
757
+ }
692
758
  }
693
759
  function resolveIncomingExpansionTargets(linkId, sourceObjectTypeId, shape, path, ctx) {
694
760
  let candidateTypes = ctx.ontology.listObjectTypes();
@@ -900,6 +966,9 @@ function keyForTypeIds(typeIds) {
900
966
  function uniqueStrings(values) {
901
967
  return [...new Set(values)];
902
968
  }
969
+ function withSubtypes(objectTypeIds, ctx) {
970
+ return uniqueStrings(objectTypeIds.flatMap((id) => [id, ...ctx.ontology.listSubTypes(id)]));
971
+ }
903
972
  function admitTransition(ctx, transition) {
904
973
  if (transition.denial)
905
974
  recordAdmissionDenial(ctx, transition.denial);
@@ -1385,15 +1454,7 @@ var DEFAULT_MAX_FACET_LIMIT = 1000;
1385
1454
  var DEFAULT_MAX_EXPANSION_FANOUT = 1000;
1386
1455
  var PAGE_TOKEN_PREFIX = "offset:";
1387
1456
  async function executeObjectQuery2(input, options) {
1388
- const normalized = normalizeObjectQuery2(input.query);
1389
- const validated = validateObjectQuery2(normalized, {
1390
- ontology: options.ontology,
1391
- maxLimit: options.maxLimit,
1392
- maxPageSize: options.maxPageSize,
1393
- maxRefs: options.maxRefs,
1394
- normalize: false
1395
- });
1396
- assertQueryViewable(input.projectId, validated, options);
1457
+ const validated = validateExecutableQuery(input, options);
1397
1458
  const capabilities = options.storage.queryCapabilities();
1398
1459
  const hasQueryObjects = typeof options.storage.queryObjects === "function";
1399
1460
  const hasCountObjects = typeof options.storage.countObjects === "function";
@@ -1458,15 +1519,7 @@ async function executeObjectQuery2(input, options) {
1458
1519
  return { ...fallback, plan };
1459
1520
  }
1460
1521
  async function countObjects2(input, options) {
1461
- const normalized = normalizeObjectQuery2(input.query);
1462
- const validated = validateObjectQuery2(normalized, {
1463
- ontology: options.ontology,
1464
- maxLimit: options.maxLimit,
1465
- maxPageSize: options.maxPageSize,
1466
- maxRefs: options.maxRefs,
1467
- normalize: false
1468
- });
1469
- assertQueryViewable(input.projectId, validated, options);
1522
+ const validated = validateExecutableQuery(input, options);
1470
1523
  const capabilities = options.storage.queryCapabilities();
1471
1524
  const hasQueryObjects = typeof options.storage.queryObjects === "function";
1472
1525
  const hasCountObjects = typeof options.storage.countObjects === "function";
@@ -1512,15 +1565,7 @@ async function countObjects2(input, options) {
1512
1565
  return { count: evaluation.total, plan };
1513
1566
  }
1514
1567
  async function existsObjects2(input, options) {
1515
- const normalized = normalizeObjectQuery2(input.query);
1516
- const validated = validateObjectQuery2(normalized, {
1517
- ontology: options.ontology,
1518
- maxLimit: options.maxLimit,
1519
- maxPageSize: options.maxPageSize,
1520
- maxRefs: options.maxRefs,
1521
- normalize: false
1522
- });
1523
- assertQueryViewable(input.projectId, validated, options);
1568
+ const validated = validateExecutableQuery(input, options);
1524
1569
  const capabilities = options.storage.queryCapabilities();
1525
1570
  const hasQueryObjects = typeof options.storage.queryObjects === "function";
1526
1571
  const hasCountObjects = typeof options.storage.countObjects === "function";
@@ -1566,16 +1611,18 @@ async function existsObjects2(input, options) {
1566
1611
  return { exists: evaluation.total > 0, plan };
1567
1612
  }
1568
1613
  async function facetObjects2(input, options) {
1569
- const normalized = normalizeObjectQuery2(input.query);
1570
- const validated = validateObjectQuery2(normalized, {
1571
- ontology: options.ontology,
1572
- maxLimit: options.maxLimit,
1573
- maxPageSize: options.maxPageSize,
1574
- maxRefs: options.maxRefs,
1575
- normalize: false
1576
- });
1577
- assertQueryViewable(input.projectId, validated, options);
1614
+ const validated = validateExecutableQuery(input, options);
1578
1615
  const facets = validateObjectFacetRequests(input.facets, validated.result.objectTypeIds, options);
1616
+ facets.forEach((facet, index) => {
1617
+ const denial = options.admission?.property({
1618
+ state: validated.admissionState,
1619
+ propertyId: facet.propertyId,
1620
+ use: "facet",
1621
+ path: `$.facets[${index}].propertyId`
1622
+ });
1623
+ if (denial)
1624
+ throw denial;
1625
+ });
1579
1626
  const aggregateQuery = stripOuterRowShape(validated.query);
1580
1627
  const capabilities = options.storage.queryCapabilities();
1581
1628
  const hasQueryObjects = typeof options.storage.queryObjects === "function";
@@ -1625,6 +1672,21 @@ async function facetObjects2(input, options) {
1625
1672
  plan
1626
1673
  };
1627
1674
  }
1675
+ function validateExecutableQuery(input, options) {
1676
+ const validationOptions = {
1677
+ ontology: options.ontology,
1678
+ maxLimit: options.maxLimit,
1679
+ maxPageSize: options.maxPageSize,
1680
+ maxRefs: options.maxRefs,
1681
+ normalize: false
1682
+ };
1683
+ const normalized = normalizeObjectQuery2(input.query);
1684
+ const validated = validateObjectQuery2(normalized, validationOptions);
1685
+ assertQueryViewable(input.projectId, validated, options);
1686
+ if (!options.admission)
1687
+ return { ...validated, admissionState: {} };
1688
+ return validateObjectQueryWithAdmission(normalized, validationOptions, options.admission);
1689
+ }
1628
1690
  function assertQueryViewable(projectId, validated, authorization) {
1629
1691
  if (!authorization.runtimeAuthorization && !authorization.authorization)
1630
1692
  return;
@@ -2619,6 +2681,6 @@ async function hydrateLinkQueryObjects(projectId, selected, links, storage) {
2619
2681
  return row ? [row] : [];
2620
2682
  });
2621
2683
  }
2622
- export { validateObjectQuery2, validateObjectQueryWithAdmission, collectObjectQueryValidationIssues2, resolveObjectQueryResultShape2, planObjectQuery2, executeObjectQuery2, countObjects2, existsObjects2, facetObjects2, validateObjectFacetRequests, explainObjectQuery2, preflightObjectQueryLinks, executeObjectQueryLinks2 };
2684
+ export { composeObjectQueryAdmissions, validateObjectQuery2, validateObjectQueryWithAdmission, collectObjectQueryValidationIssues2, resolveObjectQueryResultShape2, planObjectQuery2, executeObjectQuery2, countObjects2, existsObjects2, facetObjects2, validateObjectFacetRequests, explainObjectQuery2, preflightObjectQueryLinks, executeObjectQueryLinks2 };
2623
2685
 
2624
- //# debugId=A31A747EB003D67964756E2164756E21
2686
+ //# debugId=E66D459FE088A8ED64756E2164756E21