@sixb/core 0.1.2 → 0.1.4

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 (383) hide show
  1. package/dist/actions/index.js +19 -17
  2. package/dist/actions/index.js.map +1 -1
  3. package/dist/actions/worker.js +4 -4
  4. package/dist/actions/worker.js.map +1 -1
  5. package/dist/agents/adapters.d.ts +11 -1
  6. package/dist/agents/adapters.d.ts.map +1 -1
  7. package/dist/agents/context-compaction.d.ts +40 -0
  8. package/dist/agents/context-compaction.d.ts.map +1 -0
  9. package/dist/agents/context.js +1 -1
  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 +3 -0
  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 +10 -6
  17. package/dist/agents/index.d.ts.map +1 -1
  18. package/dist/agents/index.js +51 -35
  19. package/dist/agents/index.js.map +1 -1
  20. package/dist/agents/request.d.ts.map +1 -1
  21. package/dist/agents/streams.d.ts +17 -1
  22. package/dist/agents/streams.d.ts.map +1 -1
  23. package/dist/agents/streams.js +5 -3
  24. package/dist/agents/streams.js.map +1 -1
  25. package/dist/agents/thread-context-projection.d.ts +19 -0
  26. package/dist/agents/thread-context-projection.d.ts.map +1 -0
  27. package/dist/agents/tool-definition.d.ts.map +1 -1
  28. package/dist/agents/tool-result.d.ts +6 -0
  29. package/dist/agents/tool-result.d.ts.map +1 -0
  30. package/dist/agents/types.d.ts +46 -1
  31. package/dist/agents/types.d.ts.map +1 -1
  32. package/dist/agents/validation.d.ts +2 -2
  33. package/dist/agents/validation.d.ts.map +1 -1
  34. package/dist/auth/index.js +11 -5
  35. package/dist/auth/index.js.map +1 -1
  36. package/dist/authorization/index.js +6 -2
  37. package/dist/authorization/index.js.map +1 -1
  38. package/dist/bootstrap/index.js +33 -31
  39. package/dist/bootstrap/index.js.map +1 -1
  40. package/dist/{chunk-ys1nse2v.js → chunk-1wk20wn3.js} +438 -246
  41. package/dist/{chunk-ys1nse2v.js.map → chunk-1wk20wn3.js.map} +11 -11
  42. package/dist/{chunk-sa4340y1.js → chunk-1yz3x65y.js} +7 -7
  43. package/dist/{chunk-gqdd7508.js → chunk-4rh2m6zg.js} +1 -1
  44. package/dist/{chunk-fmx1sz2h.js → chunk-72q2y8hn.js} +3 -3
  45. package/dist/{chunk-fmx1sz2h.js.map → chunk-72q2y8hn.js.map} +4 -4
  46. package/dist/{chunk-nnyp53zt.js → chunk-7gw7mepb.js} +259 -9
  47. package/dist/chunk-7gw7mepb.js.map +14 -0
  48. package/dist/{chunk-nten49ta.js → chunk-819wnjz8.js} +11 -5
  49. package/dist/chunk-819wnjz8.js.map +12 -0
  50. package/dist/chunk-96swp2wd.js +47 -0
  51. package/dist/chunk-96swp2wd.js.map +10 -0
  52. package/dist/{chunk-4x43bkbp.js → chunk-a09jx26t.js} +1 -1
  53. package/dist/{chunk-st4xgxey.js → chunk-afjpa2hs.js} +205 -48
  54. package/dist/chunk-afjpa2hs.js.map +45 -0
  55. package/dist/{chunk-0mbx247x.js → chunk-c43qr6s0.js} +427 -99
  56. package/dist/chunk-c43qr6s0.js.map +46 -0
  57. package/dist/{chunk-zg9yryhz.js → chunk-cbkm2vam.js} +3 -3
  58. package/dist/{chunk-57zpb99z.js → chunk-dm72y8wt.js} +26 -3
  59. package/dist/chunk-dm72y8wt.js.map +10 -0
  60. package/dist/chunk-drjqm1aa.js +913 -0
  61. package/dist/chunk-drjqm1aa.js.map +15 -0
  62. package/dist/chunk-dysw7nsm.js.map +1 -1
  63. package/dist/{chunk-8ryen3p3.js → chunk-f6erf2vv.js} +1 -1
  64. package/dist/{chunk-34bqh420.js → chunk-f83ka50g.js} +188 -44
  65. package/dist/chunk-f83ka50g.js.map +23 -0
  66. package/dist/{chunk-bct7hmfc.js → chunk-g13869yf.js} +3 -3
  67. package/dist/{chunk-0k4avqr2.js → chunk-hbeh8j9w.js} +2 -2
  68. package/dist/{chunk-qvybnnpe.js → chunk-nzw7sm3b.js} +2 -2
  69. package/dist/{chunk-k9pts48t.js → chunk-pn8n8sba.js} +16 -15
  70. package/dist/{chunk-k9pts48t.js.map → chunk-pn8n8sba.js.map} +3 -3
  71. package/dist/{chunk-63te770v.js → chunk-qewtks41.js} +8 -8
  72. package/dist/{chunk-63te770v.js.map → chunk-qewtks41.js.map} +2 -2
  73. package/dist/{chunk-85j5ybfj.js → chunk-rdeagz6b.js} +2 -2
  74. package/dist/{chunk-85j5ybfj.js.map → chunk-rdeagz6b.js.map} +3 -3
  75. package/dist/chunk-rhrbz7d4.js +36 -0
  76. package/dist/chunk-rhrbz7d4.js.map +10 -0
  77. package/dist/{chunk-bh6k3nc6.js → chunk-rs1wbvy6.js} +1 -1
  78. package/dist/{chunk-88ppkr54.js → chunk-rte5sm3z.js} +26 -2
  79. package/dist/chunk-rte5sm3z.js.map +12 -0
  80. package/dist/{chunk-n8herkry.js → chunk-s31d0qmq.js} +57 -20
  81. package/dist/{chunk-n8herkry.js.map → chunk-s31d0qmq.js.map} +8 -7
  82. package/dist/{chunk-7pc8b818.js → chunk-sxwk41qa.js} +1 -1
  83. package/dist/{chunk-663csy96.js → chunk-t0jjkep3.js} +2 -1
  84. package/dist/chunk-t0jjkep3.js.map +10 -0
  85. package/dist/{chunk-c6qd89g5.js → chunk-tek1qwgm.js} +6 -6
  86. package/dist/{chunk-c6qd89g5.js.map → chunk-tek1qwgm.js.map} +1 -1
  87. package/dist/{chunk-jaj13078.js → chunk-tkdscva6.js} +3 -33
  88. package/dist/{chunk-jaj13078.js.map → chunk-tkdscva6.js.map} +3 -4
  89. package/dist/{chunk-5egfka8j.js → chunk-tycbzedm.js} +2 -2
  90. package/dist/{chunk-g9t3kdtx.js → chunk-x2yw73hy.js} +1 -1
  91. package/dist/{chunk-57r1cpxx.js → chunk-xc7hq65b.js} +3 -2
  92. package/dist/{chunk-57r1cpxx.js.map → chunk-xc7hq65b.js.map} +3 -3
  93. package/dist/chunk-xdf9yswn.js +133 -0
  94. package/dist/chunk-xdf9yswn.js.map +11 -0
  95. package/dist/execution/agent.js +29 -27
  96. package/dist/execution/agent.js.map +1 -1
  97. package/dist/execution/primitive.js +29 -27
  98. package/dist/execution/primitive.js.map +2 -2
  99. package/dist/execution/request.js +30 -28
  100. package/dist/execution/request.js.map +2 -2
  101. package/dist/http/index.js +1 -1
  102. package/dist/index.d.ts +6 -5
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +60 -58
  105. package/dist/index.js.map +1 -1
  106. package/dist/lake-storage/types.d.ts +2 -1
  107. package/dist/lake-storage/types.d.ts.map +1 -1
  108. package/dist/materialization/model.d.ts +4 -0
  109. package/dist/materialization/model.d.ts.map +1 -1
  110. package/dist/materializer/edits/apply.d.ts +6 -1
  111. package/dist/materializer/edits/apply.d.ts.map +1 -1
  112. package/dist/materializer/edits/working-state.d.ts +2 -0
  113. package/dist/materializer/edits/working-state.d.ts.map +1 -1
  114. package/dist/materializer/effective/resolve.d.ts +3 -1
  115. package/dist/materializer/effective/resolve.d.ts.map +1 -1
  116. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  117. package/dist/materializer/index.js +19 -17
  118. package/dist/materializer/index.js.map +1 -1
  119. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  120. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  121. package/dist/models/index.d.ts +40 -0
  122. package/dist/models/index.d.ts.map +1 -0
  123. package/dist/objects/execution.d.ts +6 -1
  124. package/dist/objects/execution.d.ts.map +1 -1
  125. package/dist/objects/index.js +21 -19
  126. package/dist/objects/index.js.map +1 -1
  127. package/dist/objects/link/endpoints.d.ts.map +1 -1
  128. package/dist/objects/query/executor.d.ts +1 -0
  129. package/dist/objects/query/executor.d.ts.map +1 -1
  130. package/dist/objects/query/explain.d.ts +1 -0
  131. package/dist/objects/query/explain.d.ts.map +1 -1
  132. package/dist/objects/query/index.d.ts +3 -1
  133. package/dist/objects/query/index.d.ts.map +1 -1
  134. package/dist/objects/query/index.js +30 -5
  135. package/dist/objects/query/index.js.map +1 -1
  136. package/dist/objects/query/ir.d.ts +14 -1
  137. package/dist/objects/query/ir.d.ts.map +1 -1
  138. package/dist/objects/query/links.d.ts +25 -0
  139. package/dist/objects/query/links.d.ts.map +1 -0
  140. package/dist/objects/query/normalize.d.ts.map +1 -1
  141. package/dist/objects/query/planner.d.ts.map +1 -1
  142. package/dist/objects/query/validate.d.ts +1 -0
  143. package/dist/objects/query/validate.d.ts.map +1 -1
  144. package/dist/pipelines/index.js +16 -15
  145. package/dist/pipelines/index.js.map +1 -1
  146. package/dist/projections/builders.d.ts +52 -10
  147. package/dist/projections/builders.d.ts.map +1 -1
  148. package/dist/projections/index.d.ts +2 -1
  149. package/dist/projections/index.d.ts.map +1 -1
  150. package/dist/projections/internal.d.ts +4 -1
  151. package/dist/projections/internal.d.ts.map +1 -1
  152. package/dist/projections/internal.js +22 -17
  153. package/dist/projections/internal.js.map +1 -1
  154. package/dist/projections/run-dispatch.d.ts +1 -0
  155. package/dist/projections/run-dispatch.d.ts.map +1 -1
  156. package/dist/projections/timestamp.d.ts +3 -0
  157. package/dist/projections/timestamp.d.ts.map +1 -0
  158. package/dist/projections/types.d.ts +21 -9
  159. package/dist/projections/types.d.ts.map +1 -1
  160. package/dist/projections/validation.d.ts +6 -5
  161. package/dist/projections/validation.d.ts.map +1 -1
  162. package/dist/query.d.ts +2 -1
  163. package/dist/query.d.ts.map +1 -1
  164. package/dist/query.js +2 -2
  165. package/dist/queues/index.d.ts +1 -1
  166. package/dist/queues/index.d.ts.map +1 -1
  167. package/dist/queues/types.d.ts +7 -0
  168. package/dist/queues/types.d.ts.map +1 -1
  169. package/dist/runtime/ai-cost.d.ts +8 -0
  170. package/dist/runtime/ai-cost.d.ts.map +1 -0
  171. package/dist/runtime/create.d.ts +3 -0
  172. package/dist/runtime/create.d.ts.map +1 -1
  173. package/dist/runtime/definitions.d.ts +3 -0
  174. package/dist/runtime/definitions.d.ts.map +1 -1
  175. package/dist/runtime/host.d.ts +2 -0
  176. package/dist/runtime/host.d.ts.map +1 -1
  177. package/dist/runtime/resolve-definitions.d.ts +2 -0
  178. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  179. package/dist/storage/agents/in-memory.d.ts +22 -4
  180. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  181. package/dist/storage/agents/index.d.ts +1 -1
  182. package/dist/storage/agents/index.d.ts.map +1 -1
  183. package/dist/storage/agents/provider.d.ts +31 -0
  184. package/dist/storage/agents/provider.d.ts.map +1 -1
  185. package/dist/storage/agents/provider.js +22 -7
  186. package/dist/storage/agents/provider.js.map +1 -1
  187. package/dist/storage/agents/types.d.ts +75 -4
  188. package/dist/storage/agents/types.d.ts.map +1 -1
  189. package/dist/storage/ai-cost/analytics.d.ts +61 -0
  190. package/dist/storage/ai-cost/analytics.d.ts.map +1 -0
  191. package/dist/storage/ai-cost/codec.d.ts +14 -0
  192. package/dist/storage/ai-cost/codec.d.ts.map +1 -0
  193. package/dist/storage/ai-cost/errors.d.ts +7 -0
  194. package/dist/storage/ai-cost/errors.d.ts.map +1 -0
  195. package/dist/storage/ai-cost/in-memory.d.ts +32 -0
  196. package/dist/storage/ai-cost/in-memory.d.ts.map +1 -0
  197. package/dist/storage/ai-cost/index.d.ts +6 -0
  198. package/dist/storage/ai-cost/index.d.ts.map +1 -0
  199. package/dist/storage/ai-cost/provider.d.ts +7 -0
  200. package/dist/storage/ai-cost/provider.d.ts.map +1 -0
  201. package/dist/storage/ai-cost/provider.js +132 -0
  202. package/dist/storage/ai-cost/provider.js.map +10 -0
  203. package/dist/storage/ai-cost/types.d.ts +154 -0
  204. package/dist/storage/ai-cost/types.d.ts.map +1 -0
  205. package/dist/storage/ai-cost/validation.d.ts +7 -0
  206. package/dist/storage/ai-cost/validation.d.ts.map +1 -0
  207. package/dist/storage/ai-usage/in-memory.d.ts +2 -1
  208. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
  209. package/dist/storage/ai-usage/index.d.ts +1 -1
  210. package/dist/storage/ai-usage/index.d.ts.map +1 -1
  211. package/dist/storage/ai-usage/types.d.ts +6 -0
  212. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  213. package/dist/storage/in-memory/index.d.ts +5 -0
  214. package/dist/storage/in-memory/index.d.ts.map +1 -1
  215. package/dist/storage/index.d.ts +6 -3
  216. package/dist/storage/index.d.ts.map +1 -1
  217. package/dist/storage/index.js +33 -21
  218. package/dist/storage/index.js.map +1 -1
  219. package/dist/storage/objects/in-memory.d.ts +6 -3
  220. package/dist/storage/objects/in-memory.d.ts.map +1 -1
  221. package/dist/storage/objects/index.d.ts +3 -1
  222. package/dist/storage/objects/index.d.ts.map +1 -1
  223. package/dist/storage/objects/keys.d.ts +16 -0
  224. package/dist/storage/objects/keys.d.ts.map +1 -0
  225. package/dist/storage/objects/types.d.ts +33 -6
  226. package/dist/storage/objects/types.d.ts.map +1 -1
  227. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  228. package/dist/storage/ontology/materializations.d.ts +3 -0
  229. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  230. package/dist/storage/ontology/provider.js +1 -1
  231. package/dist/storage/operation-scope.d.ts.map +1 -1
  232. package/dist/storage/operation-scope.js +1 -1
  233. package/dist/storage/types.d.ts +2 -0
  234. package/dist/storage/types.d.ts.map +1 -1
  235. package/dist/storage/workflow-runs/provider.js +10 -5
  236. package/dist/storage/workflow-runs/provider.js.map +1 -1
  237. package/dist/syncs/index.js +16 -15
  238. package/dist/syncs/index.js.map +1 -1
  239. package/dist/testing/agent-storage-contract.d.ts +3 -2
  240. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  241. package/dist/testing/ai-cost-storage-contract.d.ts +12 -0
  242. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -0
  243. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  244. package/dist/testing/effective-storage-contract.d.ts +1 -1
  245. package/dist/testing/effective-storage-contract.d.ts.map +1 -1
  246. package/dist/testing/index.d.ts +1 -0
  247. package/dist/testing/index.d.ts.map +1 -1
  248. package/dist/testing/index.js +2525 -1480
  249. package/dist/testing/index.js.map +10 -9
  250. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  251. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  252. package/dist/testing/object-query-contract.d.ts +1 -1
  253. package/dist/testing/object-query-contract.d.ts.map +1 -1
  254. package/dist/webhooks/internal.js +14 -13
  255. package/dist/webhooks/internal.js.map +2 -2
  256. package/dist/workers/index.js +12 -2
  257. package/dist/workers/index.js.map +3 -3
  258. package/dist/workers/queue-worker.d.ts +2 -0
  259. package/dist/workers/queue-worker.d.ts.map +1 -1
  260. package/dist/workflows/execution.d.ts +3 -0
  261. package/dist/workflows/execution.d.ts.map +1 -1
  262. package/dist/workflows/index.js +30 -28
  263. package/dist/workflows/index.js.map +1 -1
  264. package/package.json +7 -1
  265. package/src/agents/adapters.ts +64 -23
  266. package/src/agents/builders.ts +3 -3
  267. package/src/agents/context-compaction.ts +261 -0
  268. package/src/agents/errors.ts +2 -2
  269. package/src/agents/execution.ts +14 -2
  270. package/src/agents/ids.ts +5 -0
  271. package/src/agents/index.ts +32 -6
  272. package/src/agents/request.ts +5 -0
  273. package/src/agents/streams.ts +56 -0
  274. package/src/agents/thread-context-projection.ts +93 -0
  275. package/src/agents/tool-definition.ts +17 -2
  276. package/src/agents/tool-result.ts +61 -0
  277. package/src/agents/types.ts +57 -1
  278. package/src/agents/validation.ts +36 -6
  279. package/src/http/api-routes.ts +7 -7
  280. package/src/index.ts +27 -0
  281. package/src/lake-storage/types.ts +2 -1
  282. package/src/materialization/model.ts +4 -0
  283. package/src/materializer/edits/apply.ts +55 -2
  284. package/src/materializer/edits/operations.ts +8 -1
  285. package/src/materializer/edits/working-state.ts +7 -0
  286. package/src/materializer/effective/resolve.ts +78 -9
  287. package/src/materializer/execution/work-records.ts +3 -1
  288. package/src/materializer/projections/entry-validator.ts +23 -1
  289. package/src/materializer/projections/replacement-plan.ts +2 -0
  290. package/src/materializer/shared/normalize.ts +16 -0
  291. package/src/materializer/telemetry/append.ts +33 -16
  292. package/src/models/index.ts +71 -0
  293. package/src/objects/execution.ts +20 -0
  294. package/src/objects/link/endpoints.ts +2 -1
  295. package/src/objects/query/executor.ts +42 -11
  296. package/src/objects/query/explain.ts +11 -0
  297. package/src/objects/query/index.ts +6 -0
  298. package/src/objects/query/ir.ts +16 -0
  299. package/src/objects/query/links.ts +308 -0
  300. package/src/objects/query/normalize.ts +40 -1
  301. package/src/objects/query/planner.ts +5 -0
  302. package/src/objects/query/validate.ts +58 -2
  303. package/src/projections/builders.ts +320 -50
  304. package/src/projections/index.ts +7 -0
  305. package/src/projections/internal.ts +4 -1
  306. package/src/projections/ownership.ts +5 -5
  307. package/src/projections/registry.ts +16 -3
  308. package/src/projections/revision.ts +35 -5
  309. package/src/projections/run-dispatch.ts +10 -1
  310. package/src/projections/timestamp.ts +66 -0
  311. package/src/projections/types.ts +20 -9
  312. package/src/projections/validation.ts +85 -19
  313. package/src/query.ts +2 -0
  314. package/src/queues/index.ts +1 -0
  315. package/src/queues/types.ts +8 -0
  316. package/src/runtime/ai-cost.ts +15 -0
  317. package/src/runtime/create.ts +4 -0
  318. package/src/runtime/definitions.ts +3 -0
  319. package/src/runtime/host.ts +2 -0
  320. package/src/runtime/resolve-definitions.ts +28 -0
  321. package/src/storage/agents/in-memory.ts +186 -4
  322. package/src/storage/agents/index.ts +5 -0
  323. package/src/storage/agents/provider.ts +225 -0
  324. package/src/storage/agents/types.ts +82 -3
  325. package/src/storage/ai-cost/analytics.ts +602 -0
  326. package/src/storage/ai-cost/codec.ts +136 -0
  327. package/src/storage/ai-cost/errors.ts +12 -0
  328. package/src/storage/ai-cost/in-memory.ts +164 -0
  329. package/src/storage/ai-cost/index.ts +35 -0
  330. package/src/storage/ai-cost/provider.ts +20 -0
  331. package/src/storage/ai-cost/types.ts +193 -0
  332. package/src/storage/ai-cost/validation.ts +337 -0
  333. package/src/storage/ai-usage/in-memory.ts +23 -0
  334. package/src/storage/ai-usage/index.ts +1 -0
  335. package/src/storage/ai-usage/types.ts +10 -0
  336. package/src/storage/in-memory/index.ts +50 -0
  337. package/src/storage/index.ts +48 -0
  338. package/src/storage/objects/in-memory.ts +103 -16
  339. package/src/storage/objects/index.ts +9 -0
  340. package/src/storage/objects/keys.ts +36 -0
  341. package/src/storage/objects/types.ts +34 -6
  342. package/src/storage/ontology/in-memory/materializations.ts +1 -0
  343. package/src/storage/ontology/materializations.ts +3 -0
  344. package/src/storage/ontology/provider-header-validation.ts +2 -2
  345. package/src/storage/operation-scope.ts +1 -0
  346. package/src/storage/types.ts +2 -0
  347. package/src/testing/agent-storage-contract.ts +353 -2
  348. package/src/testing/ai-cost-storage-contract.ts +320 -0
  349. package/src/testing/ai-usage-storage-contract.ts +35 -0
  350. package/src/testing/effective-storage-contract.ts +194 -4
  351. package/src/testing/index.ts +5 -0
  352. package/src/testing/lake-storage-contract.ts +56 -0
  353. package/src/testing/materializer-storage-contract.ts +120 -2
  354. package/src/testing/object-query-contract.ts +208 -1
  355. package/src/workers/queue-worker.ts +14 -1
  356. package/src/workflows/execution.ts +31 -10
  357. package/dist/agents/prompt.d.ts +0 -15
  358. package/dist/agents/prompt.d.ts.map +0 -1
  359. package/dist/chunk-0mbx247x.js.map +0 -43
  360. package/dist/chunk-34bqh420.js.map +0 -23
  361. package/dist/chunk-57zpb99z.js.map +0 -10
  362. package/dist/chunk-663csy96.js.map +0 -10
  363. package/dist/chunk-6wetht33.js +0 -89
  364. package/dist/chunk-6wetht33.js.map +0 -10
  365. package/dist/chunk-88ppkr54.js.map +0 -12
  366. package/dist/chunk-nnyp53zt.js.map +0 -13
  367. package/dist/chunk-nten49ta.js.map +0 -12
  368. package/dist/chunk-st4xgxey.js.map +0 -45
  369. package/dist/chunk-vp1vc6ee.js +0 -35
  370. package/dist/chunk-vp1vc6ee.js.map +0 -11
  371. package/src/agents/prompt.ts +0 -57
  372. /package/dist/{chunk-sa4340y1.js.map → chunk-1yz3x65y.js.map} +0 -0
  373. /package/dist/{chunk-gqdd7508.js.map → chunk-4rh2m6zg.js.map} +0 -0
  374. /package/dist/{chunk-4x43bkbp.js.map → chunk-a09jx26t.js.map} +0 -0
  375. /package/dist/{chunk-zg9yryhz.js.map → chunk-cbkm2vam.js.map} +0 -0
  376. /package/dist/{chunk-8ryen3p3.js.map → chunk-f6erf2vv.js.map} +0 -0
  377. /package/dist/{chunk-bct7hmfc.js.map → chunk-g13869yf.js.map} +0 -0
  378. /package/dist/{chunk-0k4avqr2.js.map → chunk-hbeh8j9w.js.map} +0 -0
  379. /package/dist/{chunk-qvybnnpe.js.map → chunk-nzw7sm3b.js.map} +0 -0
  380. /package/dist/{chunk-bh6k3nc6.js.map → chunk-rs1wbvy6.js.map} +0 -0
  381. /package/dist/{chunk-7pc8b818.js.map → chunk-sxwk41qa.js.map} +0 -0
  382. /package/dist/{chunk-5egfka8j.js.map → chunk-tycbzedm.js.map} +0 -0
  383. /package/dist/{chunk-g9t3kdtx.js.map → chunk-x2yw73hy.js.map} +0 -0
@@ -1,6 +1,14 @@
1
1
  import type { EffectiveLinkSnapshot, EffectiveObjectSnapshot } from "../../materialization/model"
2
2
  import type { ObjectQuery, ObjectQueryPredicate, ObjectQuerySortField } from "../../objects/query"
3
3
  import { compareQueryScalarValues, queryScalarValuesEqual } from "../../objects/query/scalar-values"
4
+ import type { LinkBatchKey, ObjectBatchKey } from "./keys"
5
+ import {
6
+ compareObjectLinkCursors,
7
+ compareObjectLinks,
8
+ linkBatchKey,
9
+ objectBatchKey,
10
+ objectLinkCursor,
11
+ } from "./keys"
4
12
  import type {
5
13
  CountObjectsInput,
6
14
  CountObjectsResult,
@@ -15,6 +23,8 @@ import type {
15
23
  ObjectQueryCapabilities,
16
24
  ObjectRow,
17
25
  ObjectStorage,
26
+ QueryObjectLinksInput,
27
+ QueryObjectLinksResult,
18
28
  QueryObjectsInput,
19
29
  QueryObjectsResult,
20
30
  } from "./types"
@@ -26,6 +36,7 @@ const IN_MEMORY_OBJECT_QUERY_CAPABILITIES: ObjectQueryCapabilities = {
26
36
  facetObjects: true,
27
37
  nodes: {
28
38
  start: true,
39
+ refs: true,
29
40
  filter: true,
30
41
  text: true,
31
42
  vector: true,
@@ -80,25 +91,41 @@ const IN_MEMORY_OBJECT_QUERY_CAPABILITIES: ObjectQueryCapabilities = {
80
91
  }
81
92
 
82
93
  function objectRowKey(projectId: string, objectTypeId: string): string {
83
- return `${projectId}:${objectTypeId}`
94
+ return JSON.stringify([projectId, objectTypeId])
84
95
  }
85
96
 
86
- function comparePrimaryIds(left: string, right: string): number {
97
+ function objectRowProjectPrefix(projectId: string): string {
98
+ return `[${JSON.stringify(projectId)},`
99
+ }
100
+
101
+ function compareStrings(left: string, right: string): number {
87
102
  if (left < right) return -1
88
103
  if (left > right) return 1
89
104
  return 0
90
105
  }
91
106
 
107
+ function assertLinkQueryLimit(limit: number): void {
108
+ if (!Number.isSafeInteger(limit) || limit <= 0) {
109
+ throw new Error("Object link query limit must be a positive safe integer.")
110
+ }
111
+ }
112
+
92
113
  function sourceLinkBucketKey(projectId: string, sourceTypeId: string, sourceId: string): string {
93
- return `${projectId}:${sourceTypeId}:${sourceId}`
114
+ return JSON.stringify([projectId, sourceTypeId, sourceId])
94
115
  }
95
116
 
96
117
  function linkRowKey(linkId: string, targetTypeId: string, targetId: string): string {
97
- return `${linkId}:${targetTypeId}:${targetId}`
118
+ return JSON.stringify([linkId, targetTypeId, targetId])
98
119
  }
99
120
 
100
121
  function fullLinkRowKey(row: ObjectLinkRow): string {
101
- return `${row.sourceTypeId}:${row.sourceId}:${row.linkId}:${row.targetTypeId}:${row.targetId}`
122
+ return JSON.stringify([
123
+ row.sourceTypeId,
124
+ row.sourceId,
125
+ row.linkId,
126
+ row.targetTypeId,
127
+ row.targetId,
128
+ ])
102
129
  }
103
130
 
104
131
  type QueryEntry = {
@@ -343,6 +370,8 @@ export class InMemoryObjectStorage implements ObjectStorage {
343
370
  switch (query.kind) {
344
371
  case "start":
345
372
  return this.evaluateStart(projectId, query.objectTypeId)
373
+ case "refs":
374
+ return this.evaluateRefs(projectId, query.refs)
346
375
  case "filter": {
347
376
  const input = this.evaluateObjectQuery(projectId, query.input)
348
377
  const entries = input.entries.filter((entry) =>
@@ -446,6 +475,29 @@ export class InMemoryObjectStorage implements ObjectStorage {
446
475
  return completeEvaluation(entries)
447
476
  }
448
477
 
478
+ private evaluateRefs(
479
+ projectId: string,
480
+ refs: readonly { objectTypeId: string; primaryId: string }[]
481
+ ): QueryEvaluation {
482
+ const seen = new Set<string>()
483
+ const entries = refs
484
+ .flatMap((ref) => {
485
+ const key = JSON.stringify([ref.objectTypeId, ref.primaryId])
486
+ if (seen.has(key)) return []
487
+ seen.add(key)
488
+ const row = this.rows.get(objectRowKey(projectId, ref.objectTypeId))?.get(ref.primaryId)
489
+ return row ? [row] : []
490
+ })
491
+ .sort(
492
+ (left, right) =>
493
+ compareStrings(left.objectTypeId, right.objectTypeId) ||
494
+ compareStrings(left.primaryId, right.primaryId)
495
+ )
496
+ .map((row, order) => ({ row, score: 0, order }))
497
+
498
+ return completeEvaluation(entries)
499
+ }
500
+
449
501
  private evaluateSet(
450
502
  projectId: string,
451
503
  op: "union" | "intersect" | "subtract",
@@ -602,8 +654,8 @@ export class InMemoryObjectStorage implements ObjectStorage {
602
654
  async getByPrimaryIdBatch(params: {
603
655
  projectId: string
604
656
  items: readonly { objectTypeId: string; primaryId: string }[]
605
- }): Promise<Map<string, ObjectRow>> {
606
- const result = new Map<string, ObjectRow>()
657
+ }): Promise<Map<ObjectBatchKey, ObjectRow>> {
658
+ const result = new Map<ObjectBatchKey, ObjectRow>()
607
659
  for (const item of params.items) {
608
660
  const row = await this.getByPrimaryId({
609
661
  projectId: params.projectId,
@@ -611,7 +663,7 @@ export class InMemoryObjectStorage implements ObjectStorage {
611
663
  primaryId: item.primaryId,
612
664
  })
613
665
  if (row) {
614
- result.set(`${item.objectTypeId}:${item.primaryId}`, row)
666
+ result.set(objectBatchKey(item.objectTypeId, item.primaryId), row)
615
667
  }
616
668
  }
617
669
  return result
@@ -620,8 +672,8 @@ export class InMemoryObjectStorage implements ObjectStorage {
620
672
  async listLinksBatch(params: {
621
673
  projectId: string
622
674
  items: readonly { objectTypeId: string; objectId: string; linkId: string }[]
623
- }): Promise<Map<string, ObjectLinkRow[]>> {
624
- const result = new Map<string, ObjectLinkRow[]>()
675
+ }): Promise<Map<LinkBatchKey, ObjectLinkRow[]>> {
676
+ const result = new Map<LinkBatchKey, ObjectLinkRow[]>()
625
677
  for (const item of params.items) {
626
678
  const rows = await this.listLinks({
627
679
  projectId: params.projectId,
@@ -630,12 +682,48 @@ export class InMemoryObjectStorage implements ObjectStorage {
630
682
  linkId: item.linkId,
631
683
  })
632
684
  if (rows.length > 0) {
633
- result.set(`${item.objectTypeId}:${item.objectId}:${item.linkId}`, [...rows])
685
+ result.set(linkBatchKey(item.objectTypeId, item.objectId, item.linkId), [...rows])
634
686
  }
635
687
  }
636
688
  return result
637
689
  }
638
690
 
691
+ async queryLinks(params: QueryObjectLinksInput): Promise<QueryObjectLinksResult> {
692
+ assertLinkQueryLimit(params.limit)
693
+ if (params.objectRefs.length === 0 || params.endpointObjectTypeIds?.length === 0) {
694
+ return { links: [], hasMore: false }
695
+ }
696
+
697
+ const allowedTypes = params.endpointObjectTypeIds
698
+ ? new Set(params.endpointObjectTypeIds)
699
+ : undefined
700
+ const deduped = new Map<string, ObjectLinkRow>()
701
+ for (const object of params.objectRefs) {
702
+ const rows = await this.listLinks({
703
+ projectId: params.projectId,
704
+ objectTypeId: object.objectTypeId,
705
+ objectId: object.primaryId,
706
+ direction: params.direction,
707
+ ...(params.linkId === undefined ? {} : { linkId: params.linkId }),
708
+ })
709
+ for (const row of rows) {
710
+ if (
711
+ allowedTypes &&
712
+ (!allowedTypes.has(row.sourceTypeId) || !allowedTypes.has(row.targetTypeId))
713
+ ) {
714
+ continue
715
+ }
716
+ if (params.after && compareObjectLinkCursors(objectLinkCursor(row), params.after) <= 0) {
717
+ continue
718
+ }
719
+ deduped.set(fullLinkRowKey(row), row)
720
+ }
721
+ }
722
+
723
+ const rows = [...deduped.values()].sort(compareObjectLinks).slice(0, params.limit + 1)
724
+ return { links: rows.slice(0, params.limit), hasMore: rows.length > params.limit }
725
+ }
726
+
639
727
  async listIncidentLinksBatch(params: {
640
728
  projectId: string
641
729
  items: readonly { objectTypeId: string; objectId: string }[]
@@ -665,10 +753,9 @@ export class InMemoryObjectStorage implements ObjectStorage {
665
753
  const bucket = this.rows.get(objectRowKey(params.projectId, params.objectTypeId))
666
754
  const rows = [...(bucket?.values() ?? [])]
667
755
  .filter(
668
- (row) =>
669
- !params.afterPrimaryId || comparePrimaryIds(row.primaryId, params.afterPrimaryId) > 0
756
+ (row) => !params.afterPrimaryId || compareStrings(row.primaryId, params.afterPrimaryId) > 0
670
757
  )
671
- .sort((left, right) => comparePrimaryIds(left.primaryId, right.primaryId))
758
+ .sort((left, right) => compareStrings(left.primaryId, right.primaryId))
672
759
  .slice(0, params.limit + 1)
673
760
  const hasMore = rows.length > params.limit
674
761
  const objects = rows.slice(0, params.limit).map((row) => structuredClone(row))
@@ -707,7 +794,7 @@ export class InMemoryObjectStorage implements ObjectStorage {
707
794
  }
708
795
  } else {
709
796
  for (const [key, bucket] of this.rows) {
710
- if (key.startsWith(`${params.projectId}:`)) {
797
+ if (key.startsWith(objectRowProjectPrefix(params.projectId))) {
711
798
  allRows.push(...bucket.values())
712
799
  }
713
800
  }
@@ -1113,7 +1200,7 @@ function rowIdentityKey(row: ObjectRow): string {
1113
1200
  }
1114
1201
 
1115
1202
  function rowIdentityKeyParts(objectTypeId: string, primaryId: string): string {
1116
- return `${objectTypeId}:${primaryId}`
1203
+ return objectBatchKey(objectTypeId, primaryId)
1117
1204
  }
1118
1205
 
1119
1206
  function upsertEntry(entriesByKey: Map<string, QueryEntry>, entry: QueryEntry): void {
@@ -1,3 +1,9 @@
1
+ export type { LinkBatchKey, ObjectBatchKey } from "./keys"
2
+ export {
3
+ linkBatchKey,
4
+ objectBatchKey,
5
+ objectLinkCursor,
6
+ } from "./keys"
1
7
  export type {
2
8
  CountObjectsInput,
3
9
  CountObjectsResult,
@@ -11,6 +17,7 @@ export type {
11
17
  ObjectFacetBucket,
12
18
  ObjectFacetRequest,
13
19
  ObjectFacetResult,
20
+ ObjectLinkCursor,
14
21
  ObjectLinkRow,
15
22
  ObjectQueryCapabilities,
16
23
  ObjectQueryCapabilityMap,
@@ -19,6 +26,8 @@ export type {
19
26
  ObjectRow,
20
27
  ObjectRowLinks,
21
28
  ObjectStorage,
29
+ QueryObjectLinksInput,
30
+ QueryObjectLinksResult,
22
31
  QueryObjectsInput,
23
32
  QueryObjectsResult,
24
33
  } from "./types"
@@ -0,0 +1,36 @@
1
+ import type { ObjectLinkCursor, ObjectLinkRow } from "./types"
2
+
3
+ export type ObjectBatchKey = string & {
4
+ readonly __sixbObjectBatchKey: true
5
+ }
6
+
7
+ export type LinkBatchKey = string & {
8
+ readonly __sixbLinkBatchKey: true
9
+ }
10
+
11
+ /** Collision-safe key for object batch-read results. */
12
+ export function objectBatchKey(objectTypeId: string, primaryId: string): ObjectBatchKey {
13
+ return JSON.stringify([objectTypeId, primaryId]) as ObjectBatchKey
14
+ }
15
+
16
+ /** Collision-safe key for outgoing-link batch-read results. */
17
+ export function linkBatchKey(objectTypeId: string, objectId: string, linkId: string): LinkBatchKey {
18
+ return JSON.stringify([objectTypeId, objectId, linkId]) as LinkBatchKey
19
+ }
20
+
21
+ /** Canonical storage ordering and cursor for physical links. */
22
+ export function objectLinkCursor(link: ObjectLinkRow): ObjectLinkCursor {
23
+ return [link.sourceTypeId, link.sourceId, link.linkId, link.targetTypeId, link.targetId]
24
+ }
25
+
26
+ export function compareObjectLinkCursors(left: ObjectLinkCursor, right: ObjectLinkCursor): number {
27
+ for (let index = 0; index < left.length; index += 1) {
28
+ if (left[index] < right[index]) return -1
29
+ if (left[index] > right[index]) return 1
30
+ }
31
+ return 0
32
+ }
33
+
34
+ export function compareObjectLinks(left: ObjectLinkRow, right: ObjectLinkRow): number {
35
+ return compareObjectLinkCursors(objectLinkCursor(left), objectLinkCursor(right))
36
+ }
@@ -6,6 +6,7 @@ import type {
6
6
  ObjectQuerySortField,
7
7
  QueryScalarKind,
8
8
  } from "../../objects/query"
9
+ import type { LinkBatchKey, ObjectBatchKey } from "./keys"
9
10
 
10
11
  /**
11
12
  * Latest-state projection storage for objects and links.
@@ -64,6 +65,26 @@ export interface ObjectLinkRow {
64
65
 
65
66
  export type LinkDirection = "outgoing" | "incoming" | "both"
66
67
 
68
+ /** Stable physical-link order: source type/id, link id, then target type/id. */
69
+ export type ObjectLinkCursor = readonly [string, string, string, string, string]
70
+
71
+ export interface QueryObjectLinksInput {
72
+ projectId: string
73
+ /** Object identities are treated as a set; duplicate refs do not duplicate links. */
74
+ objectRefs: readonly { objectTypeId: string; primaryId: string }[]
75
+ direction: LinkDirection
76
+ linkId?: string
77
+ /** When present, both endpoints must belong to this set. An empty set matches no links. */
78
+ endpointObjectTypeIds?: readonly string[]
79
+ after?: ObjectLinkCursor
80
+ limit: number
81
+ }
82
+
83
+ export interface QueryObjectLinksResult {
84
+ links: readonly ObjectLinkRow[]
85
+ hasMore: boolean
86
+ }
87
+
67
88
  export type ObjectQueryCapabilityMap<T extends string> = Readonly<Partial<Record<T, boolean>>>
68
89
 
69
90
  export type ObjectQueryScalarOperation = "equality" | "ordering"
@@ -192,27 +213,34 @@ export interface ObjectStorage {
192
213
 
193
214
  /**
194
215
  * Batch fetch objects by (objectTypeId, primaryId) pairs.
195
- * Returns a Map keyed by "objectTypeId:primaryId". Missing items are absent.
216
+ * Returns a Map keyed by {@link objectBatchKey}. Missing items are absent.
196
217
  */
197
218
  getByPrimaryIdBatch(params: {
198
219
  projectId: string
199
220
  items: readonly { objectTypeId: string; primaryId: string }[]
200
- }): Promise<Map<string, ObjectRow>>
221
+ }): Promise<ReadonlyMap<ObjectBatchKey, ObjectRow>>
201
222
 
202
223
  /**
203
224
  * Batch fetch outgoing links by (objectTypeId, objectId, linkId) tuples.
204
- * Returns a Map keyed by "objectTypeId:objectId:linkId". Missing entries are absent.
225
+ * Returns a Map keyed by {@link linkBatchKey}. Missing entries are absent.
205
226
  */
206
227
  listLinksBatch(params: {
207
228
  projectId: string
208
229
  items: readonly { objectTypeId: string; objectId: string; linkId: string }[]
209
- }): Promise<Map<string, ObjectLinkRow[]>>
230
+ }): Promise<ReadonlyMap<LinkBatchKey, ObjectLinkRow[]>>
231
+
232
+ /**
233
+ * Read one canonical page of physical links incident to an object set.
234
+ * Filtering, endpoint-type scope, cursoring, ordering, and the limit are provider-owned so a
235
+ * bounded response never requires loading every incident link into the runtime.
236
+ */
237
+ queryLinks(params: QueryObjectLinksInput): Promise<QueryObjectLinksResult>
210
238
 
211
239
  /**
212
240
  * Batch fetch every link incident to any of the given objects, in BOTH directions (the object as
213
241
  * link source or target). Returns a flat, de-duplicated list: a physical link incident to two
214
- * listed objects appears once. Used to load cascade-delete state for `object.delete` operations,
215
- * which {@link listLinksBatch} cannot express because it keys on a specific linkId.
242
+ * listed objects appears once. This unpaged primitive exists for internal materialization and
243
+ * per-parent expansion work; interactive reads use {@link queryLinks}.
216
244
  */
217
245
  listIncidentLinksBatch(params: {
218
246
  projectId: string
@@ -588,6 +588,7 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
588
588
  projectId,
589
589
  ref: item.ref,
590
590
  value: item.value,
591
+ editedAt: { ...item.editedAt },
591
592
  lastCommitId: item.lastCommitId,
592
593
  updatedAt: item.updatedAt,
593
594
  })
@@ -26,6 +26,8 @@ import type { StoredSourceLinkAssertion, StoredSourceObjectAssertion } from "./s
26
26
  export interface StoredObjectOverride {
27
27
  readonly ref: OntologyObjectRef
28
28
  readonly value: ObjectOverride
29
+ /** Per-property Action/runtime edit time. Legacy rows fall back to `updatedAt`. */
30
+ readonly editedAt?: Readonly<Record<string, string>>
29
31
  readonly lastCommitId: string
30
32
  readonly updatedAt: string
31
33
  }
@@ -160,6 +162,7 @@ export interface MaterializationPlanHeader {
160
162
  export interface ExactObjectOverrideWrite {
161
163
  readonly ref: OntologyObjectRef
162
164
  readonly value: ObjectOverride
165
+ readonly editedAt: Readonly<Record<string, string>>
163
166
  readonly expectedLastCommitId: string | null
164
167
  readonly lastCommitId: string
165
168
  readonly updatedAt: string
@@ -155,9 +155,9 @@ function assertProjectionTelemetryBatch(
155
155
  if (source.sourceRowsSkipped > source.sourceRowCount) {
156
156
  invalidCorrelation("Projection telemetry skipped rows exceed its source row count.")
157
157
  }
158
- if (source.sourceRowCount !== inputPointCount + source.sourceRowsSkipped) {
158
+ if (inputPointCount < source.sourceRowCount - source.sourceRowsSkipped) {
159
159
  invalidCorrelation(
160
- "Projection telemetry source row count does not match input points plus skipped rows."
160
+ "Projection telemetry input points do not account for every non-skipped source row."
161
161
  )
162
162
  }
163
163
  if (typeof source.inputExhausted !== "boolean") {
@@ -215,6 +215,7 @@ export function createAgentOperationScope<T extends AgentStorage>(
215
215
  threads: createOperationScopedFacade(target.threads, scope),
216
216
  runs: createOperationScopedFacade(target.runs, scope),
217
217
  messages: createOperationScopedFacade(target.messages, scope),
218
+ checkpoints: createOperationScopedFacade(target.checkpoints, scope),
218
219
  }) as T
219
220
  }
220
221
 
@@ -1,5 +1,6 @@
1
1
  import type { ActionRunStorage } from "./action-runs"
2
2
  import type { AgentStorage } from "./agents"
3
+ import type { AiCostStorage } from "./ai-cost"
3
4
  import type { AiUsageStorage } from "./ai-usage"
4
5
  import type { AuthStorage } from "./auth"
5
6
  import type { ConnectorConnectionStorage } from "./connector-connections"
@@ -293,6 +294,7 @@ export interface Storage {
293
294
  auth?: AuthStorage
294
295
  agents?: AgentStorage
295
296
  aiUsage?: AiUsageStorage
297
+ aiCosts?: AiCostStorage
296
298
  actionRuns?: ActionRunStorage
297
299
  syncRuns?: SyncRunStorage
298
300
  pipelineRuns?: PipelineRunStorage