@sixb/core 0.1.14 → 0.1.16

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 (259) hide show
  1. package/dist/actions/index.js +26 -26
  2. package/dist/actions/worker.js +1 -1
  3. package/dist/agents/index.js +41 -41
  4. package/dist/agents/index.js.map +1 -1
  5. package/dist/agents/streams/index.js +2 -2
  6. package/dist/agents/streams/internal.js +2 -2
  7. package/dist/auth/index.js +6 -6
  8. package/dist/authorization/index.js +3 -3
  9. package/dist/bootstrap/index.js +44 -44
  10. package/dist/{chunk-6rzb1g6h.js → chunk-2xvgy3x5.js} +2 -2
  11. package/dist/{chunk-16jenmzw.js → chunk-3q7z9hd4.js} +33 -33
  12. package/dist/{chunk-16jenmzw.js.map → chunk-3q7z9hd4.js.map} +1 -1
  13. package/dist/{chunk-hxgj4kzd.js → chunk-40qb8wpe.js} +11 -11
  14. package/dist/{chunk-hxgj4kzd.js.map → chunk-40qb8wpe.js.map} +3 -3
  15. package/dist/{chunk-vn3yh259.js → chunk-4gmng3vf.js} +1 -1
  16. package/dist/{chunk-znw0zvy4.js → chunk-4wn7bxxa.js} +25 -7
  17. package/dist/chunk-4wn7bxxa.js.map +12 -0
  18. package/dist/{chunk-gct3m1da.js → chunk-667x4drs.js} +3 -3
  19. package/dist/{chunk-rzcjp5m2.js → chunk-69kt9q43.js} +2 -2
  20. package/dist/{chunk-3qpcrcj8.js → chunk-6aawea28.js} +2 -4
  21. package/dist/chunk-6aawea28.js.map +10 -0
  22. package/dist/{chunk-rzkr70gr.js → chunk-6fsr7y93.js} +5 -1
  23. package/dist/{chunk-rzkr70gr.js.map → chunk-6fsr7y93.js.map} +3 -3
  24. package/dist/{chunk-3fpgxpsq.js → chunk-6z1q7j19.js} +144 -73
  25. package/dist/{chunk-3fpgxpsq.js.map → chunk-6z1q7j19.js.map} +6 -6
  26. package/dist/{chunk-ypj2wqtj.js → chunk-70jmg2zx.js} +2 -2
  27. package/dist/{chunk-m8zkvep1.js → chunk-7g2gjvah.js} +1 -1
  28. package/dist/{chunk-pvgpckm1.js → chunk-8x74221e.js} +10 -10
  29. package/dist/{chunk-ma1mhh7w.js → chunk-a7ne02hk.js} +6 -6
  30. package/dist/{chunk-bxx3ms5t.js → chunk-b9y8hcm2.js} +2 -2
  31. package/dist/{chunk-ww185kt6.js → chunk-chdg6eqq.js} +2 -2
  32. package/dist/{chunk-y487ywrv.js → chunk-cq44v1a6.js} +4 -4
  33. package/dist/{chunk-4ypbe95r.js → chunk-cxj8y8t0.js} +2 -2
  34. package/dist/{chunk-3a338wrp.js → chunk-dp7yk20b.js} +1 -1
  35. package/dist/{chunk-dv4ct8mp.js → chunk-dsv8kdgk.js} +4 -4
  36. package/dist/{chunk-dsfw1bdr.js → chunk-f72rbvsb.js} +2 -2
  37. package/dist/{chunk-4tnrzqqh.js → chunk-fj1dvp37.js} +1 -1
  38. package/dist/{chunk-ht4a7mjg.js → chunk-g4rbm4a6.js} +42 -8
  39. package/dist/{chunk-ht4a7mjg.js.map → chunk-g4rbm4a6.js.map} +3 -3
  40. package/dist/{chunk-wnxabtn4.js → chunk-gkxsenvp.js} +19 -11
  41. package/dist/{chunk-wnxabtn4.js.map → chunk-gkxsenvp.js.map} +4 -4
  42. package/dist/{chunk-vef6qa14.js → chunk-gmdvns8f.js} +2 -2
  43. package/dist/{chunk-728fp090.js → chunk-h044jb97.js} +1072 -1075
  44. package/dist/chunk-h044jb97.js.map +15 -0
  45. package/dist/{chunk-00pfcqh4.js → chunk-h4138ww2.js} +130 -71
  46. package/dist/{chunk-00pfcqh4.js.map → chunk-h4138ww2.js.map} +5 -5
  47. package/dist/{chunk-yvf2jqj8.js → chunk-h866d223.js} +1 -1
  48. package/dist/{chunk-qma80ych.js → chunk-hn2r7z41.js} +3 -2
  49. package/dist/chunk-hn2r7z41.js.map +11 -0
  50. package/dist/{chunk-bdhfn0ww.js → chunk-kkqwzy6h.js} +1 -1
  51. package/dist/{chunk-wn7mznxc.js → chunk-kttr5ftm.js} +5 -5
  52. package/dist/{chunk-kxea54yg.js → chunk-kvysp909.js} +3 -3
  53. package/dist/{chunk-p1683c0v.js → chunk-kyjcwqz6.js} +5 -2
  54. package/dist/{chunk-p1683c0v.js.map → chunk-kyjcwqz6.js.map} +3 -3
  55. package/dist/{chunk-ffwvdgk1.js → chunk-nj0020ay.js} +1 -1
  56. package/dist/{chunk-q2xghyft.js → chunk-nkbev3tr.js} +5 -5
  57. package/dist/{chunk-cbn96bve.js → chunk-nvymebc1.js} +2 -2
  58. package/dist/{chunk-2fv8sajb.js → chunk-qnd7ehe5.js} +2 -2
  59. package/dist/{chunk-jfdggg1p.js → chunk-sbcm1b92.js} +5 -5
  60. package/dist/{chunk-d8yes9yx.js → chunk-swxzncrv.js} +1 -1
  61. package/dist/{chunk-drz59ve0.js → chunk-tkdbge6v.js} +1 -1
  62. package/dist/{chunk-ky7zpbtt.js → chunk-tnvafr7g.js} +1 -1
  63. package/dist/{chunk-y6vnvayj.js → chunk-vjcd8d27.js} +1 -1
  64. package/dist/{chunk-hj0n3c2p.js → chunk-vjqt7q3a.js} +45 -27
  65. package/dist/{chunk-hj0n3c2p.js.map → chunk-vjqt7q3a.js.map} +3 -3
  66. package/dist/{chunk-z9h698s8.js → chunk-vsvrv7n8.js} +1 -1
  67. package/dist/{chunk-xgptywp0.js → chunk-y2aq6ag9.js} +1 -1
  68. package/dist/{chunk-e2c5yxfe.js → chunk-zb47r1c8.js} +2 -2
  69. package/dist/{chunk-3nx8vj5a.js → chunk-zvmr2hqk.js} +3 -2
  70. package/dist/chunk-zvmr2hqk.js.map +12 -0
  71. package/dist/deploy/define.d.ts +4 -0
  72. package/dist/deploy/define.d.ts.map +1 -0
  73. package/dist/deploy/index.d.ts +3 -0
  74. package/dist/deploy/index.d.ts.map +1 -0
  75. package/dist/deploy/index.js +10 -0
  76. package/dist/deploy/index.js.map +10 -0
  77. package/dist/deploy/internal.d.ts +3 -0
  78. package/dist/deploy/internal.d.ts.map +1 -0
  79. package/dist/deploy/internal.js +244 -0
  80. package/dist/deploy/internal.js.map +11 -0
  81. package/dist/deploy/services.d.ts +8 -0
  82. package/dist/deploy/services.d.ts.map +1 -0
  83. package/dist/deploy/types.d.ts +309 -0
  84. package/dist/deploy/types.d.ts.map +1 -0
  85. package/dist/deploy/validation.d.ts +7 -0
  86. package/dist/deploy/validation.d.ts.map +1 -0
  87. package/dist/error-reporting/internal.js +3 -3
  88. package/dist/errors/catalog.d.ts +4 -0
  89. package/dist/errors/catalog.d.ts.map +1 -1
  90. package/dist/errors/internal.js +1 -1
  91. package/dist/events/index.js +3 -3
  92. package/dist/execution/agent.js +38 -38
  93. package/dist/execution/primitive.js +34 -34
  94. package/dist/execution/request.js +36 -36
  95. package/dist/execution/request.js.map +1 -1
  96. package/dist/index.js +56 -56
  97. package/dist/index.js.map +1 -1
  98. package/dist/maintenance/ontology-maintenance.d.ts +2 -0
  99. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  100. package/dist/maintenance/types.d.ts +8 -2
  101. package/dist/maintenance/types.d.ts.map +1 -1
  102. package/dist/materialization/dataset-watermark.d.ts +6 -1
  103. package/dist/materialization/dataset-watermark.d.ts.map +1 -1
  104. package/dist/materialization/index.js +1 -1
  105. package/dist/materialization/model.d.ts +6 -0
  106. package/dist/materialization/model.d.ts.map +1 -1
  107. package/dist/materializer/index.js +22 -22
  108. package/dist/materializer/index.js.map +1 -1
  109. package/dist/materializer/projections/finish-run.d.ts.map +1 -1
  110. package/dist/materializer/projections/replace.d.ts.map +1 -1
  111. package/dist/materializer/projections/source-materialization.d.ts +6 -2
  112. package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
  113. package/dist/models/embedding-model.d.ts +4 -0
  114. package/dist/models/embedding-model.d.ts.map +1 -1
  115. package/dist/models/execution/index.js +19 -19
  116. package/dist/models/index.js +2 -2
  117. package/dist/objects/index.js +25 -25
  118. package/dist/objects/query/index.js +21 -21
  119. package/dist/objects/query/index.js.map +1 -1
  120. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -1
  121. package/dist/objects/vectors/profile.d.ts.map +1 -1
  122. package/dist/objects/vectors/query.d.ts +1 -1
  123. package/dist/objects/vectors/query.d.ts.map +1 -1
  124. package/dist/objects/vectors/resolve-query.d.ts.map +1 -1
  125. package/dist/objects/vectors/types.d.ts +1 -1
  126. package/dist/objects/vectors/types.d.ts.map +1 -1
  127. package/dist/ontology/builders.d.ts +13 -4
  128. package/dist/ontology/builders.d.ts.map +1 -1
  129. package/dist/ontology/index.js +3 -3
  130. package/dist/ontology/internal.js +2 -2
  131. package/dist/ontology/vector-profiles.d.ts.map +1 -1
  132. package/dist/pipelines/index.js +23 -23
  133. package/dist/projections/internal.js +20 -20
  134. package/dist/projections/types.d.ts +1 -1
  135. package/dist/projections/types.d.ts.map +1 -1
  136. package/dist/queues/in-memory.d.ts +1 -1
  137. package/dist/queues/in-memory.d.ts.map +1 -1
  138. package/dist/runtime/internal.js +23 -23
  139. package/dist/sandboxes/index.js +5 -5
  140. package/dist/shares/internal.js +18 -18
  141. package/dist/shares/internal.js.map +1 -1
  142. package/dist/storage/action-runs/failure.js +2 -2
  143. package/dist/storage/agents/provider.js +1 -1
  144. package/dist/storage/ai-limits/enforcement.js +2 -2
  145. package/dist/storage/connector-connections/provider.js +1 -1
  146. package/dist/storage/file-upload-sessions/provider.js +7 -7
  147. package/dist/storage/index.d.ts +2 -2
  148. package/dist/storage/index.d.ts.map +1 -1
  149. package/dist/storage/index.js +33 -33
  150. package/dist/storage/index.js.map +1 -1
  151. package/dist/storage/internal.js +1 -1
  152. package/dist/storage/ontology/in-memory/sources.d.ts +6 -3
  153. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  154. package/dist/storage/ontology/index.d.ts +1 -1
  155. package/dist/storage/ontology/index.d.ts.map +1 -1
  156. package/dist/storage/ontology/provider.d.ts +16 -3
  157. package/dist/storage/ontology/provider.d.ts.map +1 -1
  158. package/dist/storage/ontology/provider.js +8 -4
  159. package/dist/storage/ontology/provider.js.map +1 -1
  160. package/dist/storage/ontology/sources.d.ts +36 -8
  161. package/dist/storage/ontology/sources.d.ts.map +1 -1
  162. package/dist/storage/projection-runs/in-memory.d.ts +3 -1
  163. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  164. package/dist/storage/projection-runs/index.d.ts +1 -1
  165. package/dist/storage/projection-runs/index.d.ts.map +1 -1
  166. package/dist/storage/projection-runs/lifecycle.d.ts +12 -0
  167. package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
  168. package/dist/storage/projection-runs/provider.js +10 -4
  169. package/dist/storage/projection-runs/provider.js.map +1 -1
  170. package/dist/storage/projection-runs/types.d.ts +32 -1
  171. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  172. package/dist/storage/workflow-runs/provider.js +7 -7
  173. package/dist/syncs/index.js +24 -24
  174. package/dist/testing/index.js +306 -64
  175. package/dist/testing/index.js.map +4 -4
  176. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  177. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  178. package/dist/webhooks/internal.js +19 -19
  179. package/dist/webhooks/internal.js.map +1 -1
  180. package/dist/workers/index.js +1 -1
  181. package/dist/workflows/index.js +41 -41
  182. package/package.json +13 -1
  183. package/src/deploy/define.ts +6 -0
  184. package/src/deploy/index.ts +41 -0
  185. package/src/deploy/internal.ts +7 -0
  186. package/src/deploy/services.ts +51 -0
  187. package/src/deploy/types.ts +338 -0
  188. package/src/deploy/validation.ts +261 -0
  189. package/src/errors/catalog.ts +4 -0
  190. package/src/maintenance/ontology-maintenance.ts +32 -2
  191. package/src/maintenance/types.ts +8 -2
  192. package/src/materialization/dataset-watermark.ts +6 -4
  193. package/src/materialization/model.ts +7 -0
  194. package/src/materializer/README.md +26 -6
  195. package/src/materializer/projections/finish-run.ts +129 -26
  196. package/src/materializer/projections/replace.ts +67 -49
  197. package/src/materializer/projections/source-materialization.ts +11 -6
  198. package/src/models/embedding-model.ts +12 -0
  199. package/src/models/execution/embedding.ts +5 -1
  200. package/src/objects/query/validate.ts +1 -10
  201. package/src/objects/vectors/README.md +8 -0
  202. package/src/objects/vectors/handle.ts +1 -1
  203. package/src/objects/vectors/indexing-generate.ts +5 -1
  204. package/src/objects/vectors/profile.ts +2 -0
  205. package/src/objects/vectors/query.ts +18 -4
  206. package/src/objects/vectors/resolve-query.ts +9 -5
  207. package/src/objects/vectors/types.ts +3 -1
  208. package/src/ontology/builders.ts +21 -7
  209. package/src/ontology/vector-profiles.ts +1 -0
  210. package/src/projections/types.ts +1 -0
  211. package/src/storage/index.ts +6 -1
  212. package/src/storage/ontology/in-memory/sources.ts +119 -55
  213. package/src/storage/ontology/index.ts +4 -1
  214. package/src/storage/ontology/provider.ts +64 -7
  215. package/src/storage/ontology/sources.ts +42 -8
  216. package/src/storage/projection-runs/in-memory.ts +41 -2
  217. package/src/storage/projection-runs/index.ts +2 -0
  218. package/src/storage/projection-runs/lifecycle.ts +61 -4
  219. package/src/storage/projection-runs/types.ts +41 -1
  220. package/src/testing/ontology-storage-contract.ts +141 -15
  221. package/src/testing/projection-run-storage-contract.ts +174 -1
  222. package/dist/chunk-3nx8vj5a.js.map +0 -12
  223. package/dist/chunk-3qpcrcj8.js.map +0 -10
  224. package/dist/chunk-728fp090.js.map +0 -15
  225. package/dist/chunk-qma80ych.js.map +0 -11
  226. package/dist/chunk-znw0zvy4.js.map +0 -12
  227. /package/dist/{chunk-6rzb1g6h.js.map → chunk-2xvgy3x5.js.map} +0 -0
  228. /package/dist/{chunk-vn3yh259.js.map → chunk-4gmng3vf.js.map} +0 -0
  229. /package/dist/{chunk-gct3m1da.js.map → chunk-667x4drs.js.map} +0 -0
  230. /package/dist/{chunk-rzcjp5m2.js.map → chunk-69kt9q43.js.map} +0 -0
  231. /package/dist/{chunk-ypj2wqtj.js.map → chunk-70jmg2zx.js.map} +0 -0
  232. /package/dist/{chunk-m8zkvep1.js.map → chunk-7g2gjvah.js.map} +0 -0
  233. /package/dist/{chunk-pvgpckm1.js.map → chunk-8x74221e.js.map} +0 -0
  234. /package/dist/{chunk-ma1mhh7w.js.map → chunk-a7ne02hk.js.map} +0 -0
  235. /package/dist/{chunk-bxx3ms5t.js.map → chunk-b9y8hcm2.js.map} +0 -0
  236. /package/dist/{chunk-ww185kt6.js.map → chunk-chdg6eqq.js.map} +0 -0
  237. /package/dist/{chunk-y487ywrv.js.map → chunk-cq44v1a6.js.map} +0 -0
  238. /package/dist/{chunk-4ypbe95r.js.map → chunk-cxj8y8t0.js.map} +0 -0
  239. /package/dist/{chunk-3a338wrp.js.map → chunk-dp7yk20b.js.map} +0 -0
  240. /package/dist/{chunk-dv4ct8mp.js.map → chunk-dsv8kdgk.js.map} +0 -0
  241. /package/dist/{chunk-dsfw1bdr.js.map → chunk-f72rbvsb.js.map} +0 -0
  242. /package/dist/{chunk-4tnrzqqh.js.map → chunk-fj1dvp37.js.map} +0 -0
  243. /package/dist/{chunk-vef6qa14.js.map → chunk-gmdvns8f.js.map} +0 -0
  244. /package/dist/{chunk-yvf2jqj8.js.map → chunk-h866d223.js.map} +0 -0
  245. /package/dist/{chunk-bdhfn0ww.js.map → chunk-kkqwzy6h.js.map} +0 -0
  246. /package/dist/{chunk-wn7mznxc.js.map → chunk-kttr5ftm.js.map} +0 -0
  247. /package/dist/{chunk-kxea54yg.js.map → chunk-kvysp909.js.map} +0 -0
  248. /package/dist/{chunk-ffwvdgk1.js.map → chunk-nj0020ay.js.map} +0 -0
  249. /package/dist/{chunk-q2xghyft.js.map → chunk-nkbev3tr.js.map} +0 -0
  250. /package/dist/{chunk-cbn96bve.js.map → chunk-nvymebc1.js.map} +0 -0
  251. /package/dist/{chunk-2fv8sajb.js.map → chunk-qnd7ehe5.js.map} +0 -0
  252. /package/dist/{chunk-jfdggg1p.js.map → chunk-sbcm1b92.js.map} +0 -0
  253. /package/dist/{chunk-d8yes9yx.js.map → chunk-swxzncrv.js.map} +0 -0
  254. /package/dist/{chunk-drz59ve0.js.map → chunk-tkdbge6v.js.map} +0 -0
  255. /package/dist/{chunk-ky7zpbtt.js.map → chunk-tnvafr7g.js.map} +0 -0
  256. /package/dist/{chunk-y6vnvayj.js.map → chunk-vjcd8d27.js.map} +0 -0
  257. /package/dist/{chunk-z9h698s8.js.map → chunk-vsvrv7n8.js.map} +0 -0
  258. /package/dist/{chunk-xgptywp0.js.map → chunk-y2aq6ag9.js.map} +0 -0
  259. /package/dist/{chunk-e2c5yxfe.js.map → chunk-zb47r1c8.js.map} +0 -0
@@ -1,12 +1,12 @@
1
1
  // @bun
2
2
  import {
3
3
  parseSixbFailure2
4
- } from "./chunk-rzkr70gr.js";
4
+ } from "./chunk-6fsr7y93.js";
5
5
  import {
6
6
  PROJECTION_RUN_FAILURE_CODES2,
7
7
  PROJECTION_RUN_PROGRESS_KEYS2,
8
8
  zeroProjectionRunProgress2
9
- } from "./chunk-qma80ych.js";
9
+ } from "./chunk-hn2r7z41.js";
10
10
  import {
11
11
  findPrimitiveRunExecution
12
12
  } from "./chunk-ey1nk510.js";
@@ -276,9 +276,21 @@ function failProjectionRunEnqueue2(record, input, now = new Date) {
276
276
  error
277
277
  };
278
278
  }
279
+ function parseProjectionAttemptFailure2(record, error) {
280
+ assertProjectionRunRunning2(record);
281
+ return parseSixbFailure2(error, PROJECTION_RUN_FAILURE_CODES2);
282
+ }
279
283
  function canRequeueProjectionRunAfterEnqueueFailure2(record, input) {
280
284
  return record.status === "failed" && record.error?.code === "queue.enqueue_failed" && record.error.retryable && record.executionId === input.executionId && projectionRunIdentitiesEqual(record.identity, input.identity) && projectionTargetsEqual(record.target, input.target) && record.telemetryCheckpoint?.fixedBatchSize === input.fixedBatchSize;
281
285
  }
286
+ var SUPERSEDING_PROJECTION_RUN_STATUSES2 = [
287
+ "queued",
288
+ "running",
289
+ "succeeded"
290
+ ];
291
+ function projectionRunSupersedes2(newer, run) {
292
+ return run.identity.protocol === "replacement" && newer.identity.protocol === "replacement" && newer.projectId === run.projectId && newer.identity.projectionId === run.identity.projectionId && newer.identity.datasetVersion.createdAt > run.identity.datasetVersion.createdAt && SUPERSEDING_PROJECTION_RUN_STATUSES2.includes(newer.status);
293
+ }
282
294
  function restoreProjectionRun2(row) {
283
295
  assertProjectionRunNonEmpty2(row.id, "id");
284
296
  assertProjectionRunNonEmpty2(row.projectId, "projectId");
@@ -395,7 +407,7 @@ function assertPersistedLifecycle(row) {
395
407
  return;
396
408
  }
397
409
  if (row.status === "running") {
398
- if (row.attempt < 1 || row.startedAt === undefined || row.finishedAt !== undefined || row.executionToken === undefined || hasError) {
410
+ if (row.attempt < 1 || row.startedAt === undefined || row.finishedAt !== undefined || row.executionToken === undefined) {
399
411
  throw incompleteProjectionRun(row.id);
400
412
  }
401
413
  return;
@@ -412,7 +424,7 @@ function assertPersistedLifecycle(row) {
412
424
  return;
413
425
  }
414
426
  }
415
- if (row.attempt < 1 || row.startedAt === undefined || row.status === "succeeded" && hasError) {
427
+ if (row.attempt < 1 || row.startedAt === undefined || (row.status === "succeeded" || row.status === "superseded") && hasError || row.status === "superseded" && row.protocol !== "replacement") {
416
428
  throw incompleteProjectionRun(row.id);
417
429
  }
418
430
  }
@@ -421,6 +433,9 @@ function assertProjectionRunDate(value, fieldName) {
421
433
  throw new ProjectionRunError2(`[Sixb] Projection run ${fieldName} is invalid.`);
422
434
  }
423
435
  }
436
+ function isProjectionRunTerminalStatus(status) {
437
+ return status === "succeeded" || status === "failed" || status === "cancelled" || status === "superseded";
438
+ }
424
439
  function isProjectionKind(value) {
425
440
  return value === "object" || value === "link" || value === "telemetry";
426
441
  }
@@ -456,7 +471,7 @@ function assertProjectionRunProgress(progress) {
456
471
  }
457
472
  }
458
473
  function assertFinishDecision(record, input) {
459
- if (input.status !== "succeeded" && input.status !== "failed" && input.status !== "cancelled") {
474
+ if (!isProjectionRunTerminalStatus(input.status)) {
460
475
  throw new ProjectionRunError2(`[Sixb] Projection run '${record.id}' finish status must be terminal.`);
461
476
  }
462
477
  if (input.protocol !== "replacement" && input.protocol !== "telemetry") {
@@ -465,6 +480,9 @@ function assertFinishDecision(record, input) {
465
480
  if (input.protocol !== record.identity.protocol) {
466
481
  throw new ProjectionRunError2(`[Sixb] Projection run '${record.id}' finish protocol does not match its identity.`);
467
482
  }
483
+ if (input.status === "superseded" && input.protocol !== "replacement") {
484
+ throw new ProjectionRunError2(`[Sixb] Telemetry projection run '${record.id}' cannot be superseded.`);
485
+ }
468
486
  const inputExhausted = "inputExhausted" in input ? input.inputExhausted : undefined;
469
487
  if (input.status === "succeeded" && input.protocol === "telemetry") {
470
488
  if (inputExhausted === true)
@@ -587,6 +605,6 @@ async function assertProjectionRunDurableExecution2(input) {
587
605
  }
588
606
  }
589
607
 
590
- export { ProjectionRunError2, assertProjectionRunNonEmpty2, assertProjectionRunCounter2, assertProjectionRunListWindow2, addProjectionRunCounter2, assertProjectionRunIdentity2, assertProjectionRunIdentityMatches2, assertProjectionRunTargetMatches2, assertProjectionRunStartInput2, assertProjectionRunQueueInput2, planProjectionRunReclaim2, createProjectionRunRecord2, assertProjectionRunRunning2, assertProjectionRunAttempt2, nextProjectionRunAttempt2, mergeProjectionRunProgress2, assertGenericProgressDoesNotAdvanceTelemetry2, advanceProjectionTelemetry2, planProjectionRunFinish2, finishProjectionRunRecord2, failProjectionRunEnqueue2, canRequeueProjectionRunAfterEnqueueFailure2, restoreProjectionRun2, publicProjectionRunRecord2, createProjectionRunClaim2, requireProjectionRunExecutionToken2, staleProjectionRunExecution2, projectionRunNotFound2, immutableDatasetVersionConflict2, assertProjectionMissingTarget2, requireTelemetryProjectionRun2, assertProjectionRunDurableExecution2 };
608
+ export { ProjectionRunError2, assertProjectionRunNonEmpty2, assertProjectionRunCounter2, assertProjectionRunListWindow2, addProjectionRunCounter2, assertProjectionRunIdentity2, assertProjectionRunIdentityMatches2, assertProjectionRunTargetMatches2, assertProjectionRunStartInput2, assertProjectionRunQueueInput2, planProjectionRunReclaim2, createProjectionRunRecord2, assertProjectionRunRunning2, assertProjectionRunAttempt2, nextProjectionRunAttempt2, mergeProjectionRunProgress2, assertGenericProgressDoesNotAdvanceTelemetry2, advanceProjectionTelemetry2, planProjectionRunFinish2, finishProjectionRunRecord2, failProjectionRunEnqueue2, parseProjectionAttemptFailure2, canRequeueProjectionRunAfterEnqueueFailure2, SUPERSEDING_PROJECTION_RUN_STATUSES2, projectionRunSupersedes2, restoreProjectionRun2, publicProjectionRunRecord2, createProjectionRunClaim2, requireProjectionRunExecutionToken2, staleProjectionRunExecution2, projectionRunNotFound2, immutableDatasetVersionConflict2, assertProjectionMissingTarget2, requireTelemetryProjectionRun2, assertProjectionRunDurableExecution2 };
591
609
 
592
- //# debugId=12DA83947054E7D364756E2164756E21
610
+ //# debugId=9F76147C7312E1A964756E2164756E21
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/storage/projection-runs/errors.ts", "../src/storage/projection-runs/lifecycle.ts", "../src/storage/projection-runs/provider.ts"],
4
+ "sourcesContent": [
5
+ "import {\n MaterializationConflictError,\n type MaterializationConflictKind,\n} from \"../../materialization/errors\"\n\n/**\n * Base error for projection-run storage operations.\n */\nexport class ProjectionRunError extends MaterializationConflictError {\n readonly name = \"ProjectionRunError\"\n\n constructor(message: string, kind: MaterializationConflictKind = \"run-correlation\") {\n super(kind, message)\n }\n}\n",
6
+ "import { parseSixbFailure } from \"../../errors/internal\"\nimport type { SixbFailure } from \"../../errors/types\"\nimport type {\n ProjectionMaterializationIdentity,\n ProjectionRunTerminalDecision,\n} from \"../../materialization/model\"\nimport type {\n ProjectionKind,\n ProjectionRunFailureCode,\n ProjectionTarget,\n} from \"../../projections/types\"\nimport { PROJECTION_RUN_FAILURE_CODES } from \"../../projections/types\"\nimport { ProjectionRunError } from \"./errors\"\nimport type {\n AdvanceProjectionTelemetryCheckpointInput,\n FailProjectionRunEnqueueInput,\n FinishProjectionRunInput,\n ProjectionMissingTarget,\n ProjectionRunClaim,\n ProjectionRunProgress,\n ProjectionRunRecord,\n ProjectionRunStatus,\n ProjectionTelemetryCheckpoint,\n QueueProjectionRunInput,\n StartOrReclaimProjectionRunInput,\n TelemetryProjectionRunRecord,\n} from \"./types\"\nimport { PROJECTION_RUN_PROGRESS_KEYS, zeroProjectionRunProgress } from \"./types\"\n\nexport type StoredProjectionRunRecord = ProjectionRunRecord & {\n readonly executionToken?: string\n}\n\nexport interface PersistedProjectionRunRecord {\n readonly id: string\n readonly projectId: string\n readonly executionId: string\n readonly projectionId: string\n readonly projectionKind: ProjectionKind\n readonly protocol?: \"replacement\" | \"telemetry\"\n readonly datasetId: string\n readonly datasetVersionId: string\n readonly datasetVersionCreatedAt?: string\n readonly ontologyRevision?: string\n readonly projectionRevision?: string\n readonly ownershipHash?: string\n readonly objectTypeId?: string\n readonly sourceObjectTypeId?: string\n readonly targetObjectTypeId?: string\n readonly status: ProjectionRunStatus\n readonly queuedAt: Date\n readonly startedAt?: Date\n readonly finishedAt?: Date\n readonly attempt: number\n readonly executionToken?: string\n readonly fixedBatchSize?: number\n readonly nextBatchOrdinal?: number\n readonly nextRowOffset?: number\n readonly inputExhausted?: boolean\n readonly missingTargetObjectTypeId?: string\n readonly missingTargetObjectId?: string\n readonly missingTargetBatchOrdinal?: number\n readonly missingTargetFirstSeenAt?: Date\n readonly progress: ProjectionRunProgress\n readonly error?: unknown\n}\n\nexport interface ProjectionTelemetryAdvance {\n readonly progress: ProjectionRunProgress\n readonly checkpoint: ProjectionTelemetryCheckpoint\n}\n\nexport interface ProjectionRunFinishPlan {\n readonly status: Exclude<ProjectionRunStatus, \"queued\" | \"running\">\n readonly finishedAt: Date\n readonly progress: ProjectionRunProgress\n readonly inputExhausted?: true\n readonly error?: SixbFailure<ProjectionRunFailureCode>\n}\n\n// ── Scalar and identity validation ──────────────────────────\n\nexport function assertProjectionRunNonEmpty(value: string, fieldName: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new ProjectionRunError(`[Sixb] Projection run ${fieldName} must not be empty.`)\n }\n}\n\nexport function assertProjectionRunCounter(value: number, fieldName: string): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new ProjectionRunError(\n `[Sixb] Projection run ${fieldName} must be a non-negative safe integer.`\n )\n }\n}\n\nexport function assertProjectionRunListWindow(value: number | undefined, fieldName: string): void {\n if (value !== undefined && (!Number.isSafeInteger(value) || value < 0)) {\n throw new ProjectionRunError(`[Sixb] Projection run list ${fieldName} must be >= 0.`)\n }\n}\n\nexport function addProjectionRunCounter(left: number, right: number, fieldName: string): number {\n const result = left + right\n if (!Number.isSafeInteger(result)) {\n throw new ProjectionRunError(`[Sixb] Projection run ${fieldName} exceeds safe integer range.`)\n }\n return result\n}\n\nexport function assertProjectionRunIdentity(identity: ProjectionMaterializationIdentity): void {\n assertProjectionRunNonEmpty(identity.projectionId, \"projectionId\")\n if (!isProjectionKind(identity.projectionKind)) {\n throw new ProjectionRunError(\n \"[Sixb] Projection run projectionKind must be 'object', 'link', or 'telemetry'.\"\n )\n }\n if (identity.protocol !== \"replacement\" && identity.protocol !== \"telemetry\") {\n throw new ProjectionRunError(\n \"[Sixb] Projection run protocol must be 'replacement' or 'telemetry'.\"\n )\n }\n assertProjectionRunNonEmpty(identity.datasetVersion.datasetId, \"datasetId\")\n assertProjectionRunNonEmpty(identity.datasetVersion.versionId, \"datasetVersionId\")\n assertCanonicalTimestamp(identity.datasetVersion.createdAt, \"datasetVersionCreatedAt\")\n assertProjectionRunNonEmpty(identity.ontologyRevision, \"ontologyRevision\")\n assertProjectionRunNonEmpty(identity.projectionRevision, \"projectionRevision\")\n assertProjectionRunNonEmpty(identity.ownershipHash, \"ownershipHash\")\n if ((identity.protocol === \"telemetry\") !== (identity.projectionKind === \"telemetry\")) {\n throw new ProjectionRunError(\n `[Sixb] Projection run protocol '${identity.protocol}' is incompatible with kind '${identity.projectionKind}'.`\n )\n }\n}\n\nexport function assertProjectionRunIdentityMatches(\n record: Pick<ProjectionRunRecord, \"id\" | \"identity\">,\n identity: ProjectionMaterializationIdentity\n): void {\n if (projectionRunIdentitiesEqual(record.identity, identity)) return\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' materialization identity does not match.`\n )\n}\n\nexport function assertProjectionRunTargetMatches(\n record: Pick<ProjectionRunRecord, \"id\" | \"target\">,\n target: ProjectionTarget\n): void {\n if (projectionTargetsEqual(record.target, target)) return\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' target object types do not match.`\n )\n}\n\nexport function assertProjectionRunStartInput(input: StartOrReclaimProjectionRunInput): void {\n assertProjectionRunNonEmpty(input.id, \"id\")\n assertProjectionRunNonEmpty(input.projectId, \"projectId\")\n assertProjectionRunIdentityAndTarget(input)\n if (input.startedAt) assertProjectionRunDate(input.startedAt, \"startedAt\")\n}\n\nexport function assertProjectionRunQueueInput(input: QueueProjectionRunInput): void {\n assertProjectionRunNonEmpty(input.id, \"id\")\n assertProjectionRunNonEmpty(input.projectId, \"projectId\")\n assertProjectionRunNonEmpty(input.executionId, \"executionId\")\n assertProjectionRunIdentityAndTarget(input)\n if (input.queuedAt) assertProjectionRunDate(input.queuedAt, \"queuedAt\")\n}\n\nfunction assertProjectionRunIdentityAndTarget(\n input: QueueProjectionRunInput | StartOrReclaimProjectionRunInput\n): void {\n assertProjectionRunIdentity(input.identity)\n assertProjectionTarget(input.identity.projectionKind, input.target)\n if (input.identity.projectionKind === \"telemetry\") {\n const telemetry = input as ProjectionRunIdentityInput<\"telemetry\">\n assertPositiveCounter(telemetry.fixedBatchSize, \"fixedBatchSize\")\n } else if (input.fixedBatchSize !== undefined) {\n throw new ProjectionRunError(\n \"[Sixb] Replacement projection runs cannot declare a telemetry fixedBatchSize.\"\n )\n }\n}\n\nexport function planProjectionRunReclaim(\n record: StoredProjectionRunRecord,\n input: StartOrReclaimProjectionRunInput\n): { readonly attempt: number } {\n if (record.status !== \"queued\" && record.status !== \"running\") {\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' cannot start from status '${record.status}'.`\n )\n }\n assertProjectionRunIdentityMatches(record, input.identity)\n assertProjectionRunTargetMatches(record, input.target)\n if (record.telemetryCheckpoint?.fixedBatchSize !== input.fixedBatchSize) {\n throw new ProjectionRunError(\n `[Sixb] Projection run '${input.id}' fixed batch size does not match.`\n )\n }\n return { attempt: record.status === \"queued\" ? 1 : nextProjectionRunAttempt(record.attempt) }\n}\n\n// ── Lifecycle transitions ───────────────────────────────────\n\nexport function createProjectionRunRecord(\n input: QueueProjectionRunInput,\n now: Date = new Date()\n): ProjectionRunRecord {\n assertProjectionRunQueueInput(input)\n const base = {\n id: input.id,\n projectId: input.projectId,\n executionId: input.executionId,\n status: \"queued\" as const,\n attempt: 0,\n progress: zeroProjectionRunProgress(),\n queuedAt: new Date(input.queuedAt ?? now),\n }\n switch (input.identity.projectionKind) {\n case \"object\": {\n const object = input as ProjectionRunAdmission<\"object\">\n return { ...base, identity: object.identity, target: object.target }\n }\n case \"link\": {\n const link = input as ProjectionRunAdmission<\"link\">\n return { ...base, identity: link.identity, target: link.target }\n }\n case \"telemetry\": {\n const telemetry = input as ProjectionRunAdmission<\"telemetry\">\n return {\n ...base,\n identity: telemetry.identity,\n target: telemetry.target,\n telemetryCheckpoint: {\n fixedBatchSize: telemetry.fixedBatchSize,\n nextBatchOrdinal: 0,\n nextRowOffset: 0,\n inputExhausted: false,\n },\n }\n }\n }\n}\n\nexport function assertProjectionRunRunning(\n record: Pick<ProjectionRunRecord, \"id\" | \"projectId\" | \"status\">\n): void {\n if (record.status === \"running\") return\n if (record.status !== \"queued\") {\n throw new ProjectionRunError(`[Sixb] Projection run '${record.id}' is already terminal.`)\n }\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' for project '${record.projectId}' is not running.`\n )\n}\n\nexport function assertProjectionRunAttempt(\n record: StoredProjectionRunRecord,\n input: {\n readonly id: string\n readonly executionToken: string\n readonly identity: ProjectionMaterializationIdentity\n }\n): asserts record is StoredProjectionRunRecord & { readonly executionToken: string } {\n assertProjectionRunNonEmpty(input.executionToken, \"executionToken\")\n assertProjectionRunIdentity(input.identity)\n assertProjectionRunRunning(record)\n assertProjectionRunIdentityMatches(record, input.identity)\n if (record.executionToken !== input.executionToken) {\n throw staleProjectionRunExecution(input.id)\n }\n}\n\nexport function nextProjectionRunAttempt(current: number): number {\n assertProjectionRunCounter(current, \"attempt\")\n return addProjectionRunCounter(current, 1, \"attempt\")\n}\n\nexport function mergeProjectionRunProgress(\n current: ProjectionRunProgress,\n patch: Partial<ProjectionRunProgress>\n): ProjectionRunProgress {\n const progress = { ...current }\n for (const key of PROJECTION_RUN_PROGRESS_KEYS) {\n const value = patch[key]\n if (value === undefined) continue\n assertProjectionRunCounter(value, key)\n if (value < (current[key] ?? 0)) {\n throw new ProjectionRunError(`[Sixb] Projection run ${key} must not decrease.`)\n }\n progress[key] = value\n }\n assertProjectionRunProgress(progress)\n return progress\n}\n\nexport function assertGenericProgressDoesNotAdvanceTelemetry(\n record: Pick<ProjectionRunRecord, \"id\" | \"identity\" | \"progress\">,\n patch: Partial<ProjectionRunProgress>\n): void {\n if (record.identity.protocol !== \"telemetry\") return\n for (const key of PROJECTION_RUN_PROGRESS_KEYS) {\n if (patch[key] !== undefined && patch[key] !== record.progress[key]) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' progress can only advance with its checkpoint.`\n )\n }\n }\n}\n\nexport function advanceProjectionTelemetry(\n record: ProjectionRunRecord,\n input: AdvanceProjectionTelemetryCheckpointInput\n): ProjectionTelemetryAdvance {\n const telemetry = requireTelemetryProjectionRun(record)\n const checkpoint = telemetry.telemetryCheckpoint\n assertProjectionRunCounter(input.batchOrdinal, \"batchOrdinal\")\n assertPositiveCounter(input.batchRowCount, \"batchRowCount\")\n assertProjectionRunCounter(input.batchRowsSkipped, \"batchRowsSkipped\")\n if (input.batchRowsSkipped > input.batchRowCount) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' skipped rows exceed its batch row count.`\n )\n }\n if (input.batchOrdinal !== checkpoint.nextBatchOrdinal) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' expected batch ordinal ${checkpoint.nextBatchOrdinal}, got ${input.batchOrdinal}.`\n )\n }\n if (input.batchRowCount > checkpoint.fixedBatchSize) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' batch exceeds its fixed size.`\n )\n }\n if (!input.inputExhausted && input.batchRowCount !== checkpoint.fixedBatchSize) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' cannot advance past a partial non-final batch.`\n )\n }\n if (checkpoint.inputExhausted) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' has already exhausted its input.`\n )\n }\n\n const nextRowOffset = addProjectionRunCounter(\n checkpoint.nextRowOffset,\n input.batchRowCount,\n \"nextRowOffset\"\n )\n return {\n progress: {\n sourceRowsRead: nextRowOffset,\n sourceRowsSkipped: addProjectionRunCounter(\n telemetry.progress.sourceRowsSkipped,\n input.batchRowsSkipped,\n \"sourceRowsSkipped\"\n ),\n },\n checkpoint: {\n ...checkpoint,\n nextBatchOrdinal: addProjectionRunCounter(checkpoint.nextBatchOrdinal, 1, \"nextBatchOrdinal\"),\n nextRowOffset,\n inputExhausted: input.inputExhausted,\n },\n }\n}\n\nexport function planProjectionRunFinish(\n record: ProjectionRunRecord,\n input: FinishProjectionRunInput,\n now: Date = new Date()\n): ProjectionRunFinishPlan {\n assertFinishDecision(record, input)\n const patch = input.progress ?? {}\n assertGenericProgressDoesNotAdvanceTelemetry(record, patch)\n const progress = mergeProjectionRunProgress(record.progress, patch)\n const finishedAt = new Date(input.finishedAt ?? now)\n assertProjectionRunDate(finishedAt, \"finishedAt\")\n return {\n status: input.status,\n finishedAt,\n progress,\n ...(input.status === \"succeeded\" && input.protocol === \"telemetry\"\n ? { inputExhausted: true as const }\n : {}),\n ...(input.status === \"succeeded\" || input.error === undefined\n ? {}\n : { error: parseSixbFailure(input.error, PROJECTION_RUN_FAILURE_CODES) }),\n }\n}\n\nexport function finishProjectionRunRecord(\n record: StoredProjectionRunRecord,\n input: FinishProjectionRunInput,\n now: Date = new Date()\n): StoredProjectionRunRecord {\n const plan = planProjectionRunFinish(record, input, now)\n const terminal = {\n executionToken: undefined,\n status: plan.status,\n finishedAt: plan.finishedAt,\n progress: plan.progress,\n error: plan.error,\n }\n if (plan.inputExhausted) {\n const telemetry = requireTelemetryProjectionRun(record)\n return {\n ...telemetry,\n ...terminal,\n telemetryCheckpoint: { ...telemetry.telemetryCheckpoint, inputExhausted: true },\n }\n }\n return { ...record, ...terminal }\n}\n\nexport function failProjectionRunEnqueue(\n record: StoredProjectionRunRecord,\n input: FailProjectionRunEnqueueInput,\n now: Date = new Date()\n): StoredProjectionRunRecord {\n if (record.status !== \"queued\") {\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' cannot fail enqueue from status '${record.status}'.`\n )\n }\n const error = parseSixbFailure(input.error, PROJECTION_RUN_FAILURE_CODES)\n if (error.code !== \"queue.enqueue_failed\") {\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' enqueue failure must use code 'queue.enqueue_failed'.`\n )\n }\n const finishedAt = new Date(input.finishedAt ?? now)\n assertProjectionRunDate(finishedAt, \"finishedAt\")\n return {\n ...record,\n status: \"failed\",\n finishedAt,\n error,\n }\n}\n\n/** Validates the failure of an attempt that leaves its run running, before it is stored. */\nexport function parseProjectionAttemptFailure(\n record: Pick<ProjectionRunRecord, \"id\" | \"projectId\" | \"status\">,\n error: SixbFailure<ProjectionRunFailureCode>\n): SixbFailure<ProjectionRunFailureCode> {\n assertProjectionRunRunning(record)\n return parseSixbFailure(error, PROJECTION_RUN_FAILURE_CODES)\n}\n\nexport function canRequeueProjectionRunAfterEnqueueFailure(\n record: ProjectionRunRecord,\n input: QueueProjectionRunInput\n): boolean {\n return (\n record.status === \"failed\" &&\n record.error?.code === \"queue.enqueue_failed\" &&\n record.error.retryable &&\n record.executionId === input.executionId &&\n projectionRunIdentitiesEqual(record.identity, input.identity) &&\n projectionTargetsEqual(record.target, input.target) &&\n record.telemetryCheckpoint?.fixedBatchSize === input.fixedBatchSize\n )\n}\n\n/**\n * Statuses of a run that still stands to replace its projection's source. A later run in one of\n * them makes an earlier run stale; a failed or cancelled one replaces nothing.\n */\nexport const SUPERSEDING_PROJECTION_RUN_STATUSES = [\n \"queued\",\n \"running\",\n \"succeeded\",\n] as const satisfies readonly ProjectionRunStatus[]\n\n/**\n * Whether `newer` makes `run` stale. Dataset version timestamps are canonical UTC ISO strings, so\n * they order as text; SQL adapters compare them under a binary collation for the same reason.\n */\nexport function projectionRunSupersedes(\n newer: ProjectionRunRecord,\n run: ProjectionRunRecord\n): boolean {\n return (\n run.identity.protocol === \"replacement\" &&\n newer.identity.protocol === \"replacement\" &&\n newer.projectId === run.projectId &&\n newer.identity.projectionId === run.identity.projectionId &&\n newer.identity.datasetVersion.createdAt > run.identity.datasetVersion.createdAt &&\n (SUPERSEDING_PROJECTION_RUN_STATUSES as readonly ProjectionRunStatus[]).includes(newer.status)\n )\n}\n\n// ── Persistence mapping ─────────────────────────────────────\n\nexport function restoreProjectionRun(row: PersistedProjectionRunRecord): StoredProjectionRunRecord {\n assertProjectionRunNonEmpty(row.id, \"id\")\n assertProjectionRunNonEmpty(row.projectId, \"projectId\")\n assertProjectionRunNonEmpty(row.executionId, \"executionId\")\n assertProjectionRunCounter(row.attempt, \"attempt\")\n assertProjectionRunProgress(row.progress)\n assertValidDate(row.queuedAt, \"queuedAt\")\n if (row.startedAt) assertValidDate(row.startedAt, \"startedAt\")\n if (row.finishedAt) assertValidDate(row.finishedAt, \"finishedAt\")\n assertPersistedLifecycle(row)\n\n const identity = restoreIdentity(row)\n const base = {\n id: row.id,\n projectId: row.projectId,\n executionId: row.executionId,\n identity,\n status: row.status,\n queuedAt: new Date(row.queuedAt),\n startedAt: row.startedAt ? new Date(row.startedAt) : undefined,\n finishedAt: row.finishedAt ? new Date(row.finishedAt) : undefined,\n attempt: row.attempt,\n progress: { ...row.progress },\n error:\n row.error === undefined\n ? undefined\n : parseSixbFailure(row.error, PROJECTION_RUN_FAILURE_CODES),\n executionToken: row.executionToken,\n }\n\n if (identity.projectionKind === \"link\") {\n if (!row.sourceObjectTypeId || !row.targetObjectTypeId || row.objectTypeId) {\n throw invalidProjectionRunTarget(row.id)\n }\n assertNoCheckpoint(row)\n return {\n ...base,\n identity,\n target: {\n sourceObjectTypeId: row.sourceObjectTypeId,\n targetObjectTypeId: row.targetObjectTypeId,\n },\n }\n }\n if (!row.objectTypeId || row.sourceObjectTypeId || row.targetObjectTypeId) {\n throw invalidProjectionRunTarget(row.id)\n }\n if (identity.projectionKind === \"telemetry\") {\n const telemetryCheckpoint = restoreCheckpoint(row)\n if (row.progress.sourceRowsRead !== telemetryCheckpoint.nextRowOffset) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${row.id}' progress does not match its checkpoint.`\n )\n }\n if (row.status === \"succeeded\" && !telemetryCheckpoint.inputExhausted) {\n throw incompleteProjectionRun(row.id)\n }\n const missingTarget = restoreMissingTarget(row, telemetryCheckpoint)\n return {\n ...base,\n identity,\n target: { objectTypeId: row.objectTypeId },\n telemetryCheckpoint,\n ...(missingTarget ? { missingTarget } : {}),\n }\n }\n assertNoCheckpoint(row)\n return { ...base, identity, target: { objectTypeId: row.objectTypeId } }\n}\n\nexport function publicProjectionRunRecord(record: StoredProjectionRunRecord): ProjectionRunRecord {\n const cloned = structuredClone(record)\n Reflect.deleteProperty(cloned, \"executionToken\")\n return cloned\n}\n\nexport function createProjectionRunClaim(record: StoredProjectionRunRecord): ProjectionRunClaim {\n assertProjectionRunRunning(record)\n const executionToken = requireProjectionRunExecutionToken(record)\n return {\n run: publicProjectionRunRecord(record),\n execution: { projectionRunId: record.id, executionToken },\n }\n}\n\nexport function requireProjectionRunExecutionToken(record: StoredProjectionRunRecord): string {\n if (record.executionToken) return record.executionToken\n throw incompleteProjectionRun(record.id)\n}\n\nexport function staleProjectionRunExecution(id: string): ProjectionRunError {\n return new ProjectionRunError(\n `[Sixb] Projection run '${id}' execution token is stale.`,\n \"execution-lost\"\n )\n}\n\nexport function projectionRunNotFound(projectId: string, id: string): ProjectionRunError {\n return new ProjectionRunError(\n `[Sixb] Projection run '${id}' not found for project '${projectId}'.`\n )\n}\n\nexport function immutableDatasetVersionConflict(\n identity: ProjectionMaterializationIdentity\n): ProjectionRunError {\n return new ProjectionRunError(\n `[Sixb] Dataset version '${identity.datasetVersion.versionId}' reused an immutable dataset version id with different metadata.`\n )\n}\n\n// ── Private helpers ─────────────────────────────────────────\n\nfunction assertPositiveCounter(value: number, fieldName: string): void {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new ProjectionRunError(\n `[Sixb] Projection run ${fieldName} must be a positive safe integer.`\n )\n }\n}\n\nfunction assertCanonicalTimestamp(value: string, fieldName: string): void {\n const milliseconds = Date.parse(value)\n if (!Number.isFinite(milliseconds) || new Date(milliseconds).toISOString() !== value) {\n throw new ProjectionRunError(\n `[Sixb] Projection run ${fieldName} must be a canonical UTC timestamp.`\n )\n }\n}\n\nfunction assertValidDate(value: Date, fieldName: string): void {\n if (!Number.isFinite(value.getTime())) {\n throw new ProjectionRunError(`[Sixb] Projection run persisted ${fieldName} is invalid.`)\n }\n}\n\nfunction assertPersistedLifecycle(row: PersistedProjectionRunRecord): void {\n const hasError = row.error !== undefined\n\n if (row.status === \"queued\") {\n if (\n row.attempt !== 0 ||\n row.startedAt !== undefined ||\n row.finishedAt !== undefined ||\n row.executionToken !== undefined ||\n hasError\n ) {\n throw incompleteProjectionRun(row.id)\n }\n return\n }\n\n if (row.status === \"running\") {\n if (\n row.attempt < 1 ||\n row.startedAt === undefined ||\n row.finishedAt !== undefined ||\n row.executionToken === undefined\n ) {\n throw incompleteProjectionRun(row.id)\n }\n return\n }\n\n if (row.finishedAt === undefined || row.executionToken !== undefined) {\n throw incompleteProjectionRun(row.id)\n }\n if (row.error !== undefined) {\n const failure = parseSixbFailure(row.error, PROJECTION_RUN_FAILURE_CODES)\n if (failure.code === \"queue.enqueue_failed\") {\n if (\n !failure.retryable ||\n row.status !== \"failed\" ||\n row.attempt !== 0 ||\n row.startedAt !== undefined\n ) {\n throw incompleteProjectionRun(row.id)\n }\n return\n }\n }\n if (\n row.attempt < 1 ||\n row.startedAt === undefined ||\n ((row.status === \"succeeded\" || row.status === \"superseded\") && hasError) ||\n (row.status === \"superseded\" && row.protocol !== \"replacement\")\n ) {\n throw incompleteProjectionRun(row.id)\n }\n}\n\nfunction assertProjectionRunDate(value: Date, fieldName: string): void {\n if (!Number.isFinite(value.getTime())) {\n throw new ProjectionRunError(`[Sixb] Projection run ${fieldName} is invalid.`)\n }\n}\n\nfunction isProjectionRunTerminalStatus(\n status: unknown\n): status is ProjectionRunFinishPlan[\"status\"] {\n return (\n status === \"succeeded\" ||\n status === \"failed\" ||\n status === \"cancelled\" ||\n status === \"superseded\"\n )\n}\n\nfunction isProjectionKind(value: unknown): value is ProjectionKind {\n return value === \"object\" || value === \"link\" || value === \"telemetry\"\n}\n\nfunction assertProjectionTarget(kind: ProjectionKind, target: ProjectionTarget): void {\n if (kind === \"link\") {\n if (!(\"sourceObjectTypeId\" in target)) {\n throw new ProjectionRunError(\n \"[Sixb] Link projection runs must declare source and target object types.\"\n )\n }\n assertProjectionRunNonEmpty(target.sourceObjectTypeId, \"sourceObjectTypeId\")\n assertProjectionRunNonEmpty(target.targetObjectTypeId, \"targetObjectTypeId\")\n return\n }\n if (!(\"objectTypeId\" in target)) {\n throw new ProjectionRunError(\n \"[Sixb] Object and telemetry projection runs must declare one object type.\"\n )\n }\n assertProjectionRunNonEmpty(target.objectTypeId, \"objectTypeId\")\n}\n\nfunction projectionRunIdentitiesEqual(\n left: ProjectionMaterializationIdentity,\n right: ProjectionMaterializationIdentity\n): boolean {\n return (\n left.projectionId === right.projectionId &&\n left.projectionKind === right.projectionKind &&\n left.protocol === right.protocol &&\n left.datasetVersion.datasetId === right.datasetVersion.datasetId &&\n left.datasetVersion.versionId === right.datasetVersion.versionId &&\n left.datasetVersion.createdAt === right.datasetVersion.createdAt &&\n left.ontologyRevision === right.ontologyRevision &&\n left.projectionRevision === right.projectionRevision &&\n left.ownershipHash === right.ownershipHash\n )\n}\n\nfunction projectionTargetsEqual(left: ProjectionTarget, right: ProjectionTarget): boolean {\n if (\"sourceObjectTypeId\" in left || \"sourceObjectTypeId\" in right) {\n return (\n \"sourceObjectTypeId\" in left &&\n \"sourceObjectTypeId\" in right &&\n left.sourceObjectTypeId === right.sourceObjectTypeId &&\n left.targetObjectTypeId === right.targetObjectTypeId\n )\n }\n return left.objectTypeId === right.objectTypeId\n}\n\nfunction assertProjectionRunProgress(progress: ProjectionRunProgress): void {\n for (const key of PROJECTION_RUN_PROGRESS_KEYS) {\n assertProjectionRunCounter(\n key === \"sourceChangesRead\" ? (progress[key] ?? 0) : progress[key],\n key\n )\n }\n if (progress.sourceRowsSkipped > progress.sourceRowsRead) {\n throw new ProjectionRunError(\n \"[Sixb] Projection run sourceRowsSkipped must not exceed sourceRowsRead.\"\n )\n }\n}\n\nfunction assertFinishDecision(\n record: ProjectionRunRecord,\n input: ProjectionRunTerminalDecision\n): void {\n if (!isProjectionRunTerminalStatus(input.status)) {\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' finish status must be terminal.`\n )\n }\n if (input.protocol !== \"replacement\" && input.protocol !== \"telemetry\") {\n throw new ProjectionRunError(`[Sixb] Projection run '${record.id}' finish protocol is invalid.`)\n }\n if (input.protocol !== record.identity.protocol) {\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' finish protocol does not match its identity.`\n )\n }\n if (input.status === \"superseded\" && input.protocol !== \"replacement\") {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' cannot be superseded.`\n )\n }\n const inputExhausted = \"inputExhausted\" in input ? input.inputExhausted : undefined\n if (input.status === \"succeeded\" && input.protocol === \"telemetry\") {\n if (inputExhausted === true) return\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' cannot succeed before input exhaustion.`\n )\n }\n if (inputExhausted !== undefined) {\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' contains telemetry-only completion metadata.`\n )\n }\n}\n\nfunction restoreIdentity(row: PersistedProjectionRunRecord): ProjectionMaterializationIdentity {\n if (\n !row.protocol ||\n !row.datasetVersionCreatedAt ||\n !row.ontologyRevision ||\n !row.projectionRevision ||\n !row.ownershipHash\n ) {\n throw incompleteProjectionRun(row.id)\n }\n const identity = {\n projectionId: row.projectionId,\n projectionKind: row.projectionKind,\n protocol: row.protocol,\n datasetVersion: {\n datasetId: row.datasetId,\n versionId: row.datasetVersionId,\n createdAt: row.datasetVersionCreatedAt,\n },\n ontologyRevision: row.ontologyRevision,\n projectionRevision: row.projectionRevision,\n ownershipHash: row.ownershipHash,\n } as ProjectionMaterializationIdentity\n assertProjectionRunIdentity(identity)\n return identity\n}\n\nfunction restoreCheckpoint(row: PersistedProjectionRunRecord): ProjectionTelemetryCheckpoint {\n if (\n row.fixedBatchSize === undefined ||\n row.nextBatchOrdinal === undefined ||\n row.nextRowOffset === undefined ||\n row.inputExhausted === undefined\n ) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${row.id}' has incomplete checkpoint state.`\n )\n }\n assertPositiveCounter(row.fixedBatchSize, \"fixedBatchSize\")\n assertProjectionRunCounter(row.nextBatchOrdinal, \"nextBatchOrdinal\")\n assertProjectionRunCounter(row.nextRowOffset, \"nextRowOffset\")\n return {\n fixedBatchSize: row.fixedBatchSize,\n nextBatchOrdinal: row.nextBatchOrdinal,\n nextRowOffset: row.nextRowOffset,\n inputExhausted: row.inputExhausted,\n }\n}\n\n/**\n * A wait is either fully persisted or absent. A partially written one would read as \"waiting since\n * the epoch\" or \"waiting for nothing\", and both would decide a run's fate.\n */\nfunction restoreMissingTarget(\n row: PersistedProjectionRunRecord,\n checkpoint: ProjectionTelemetryCheckpoint\n): ProjectionMissingTarget | undefined {\n const columns = [\n row.missingTargetObjectTypeId,\n row.missingTargetObjectId,\n row.missingTargetBatchOrdinal,\n row.missingTargetFirstSeenAt,\n ]\n if (columns.every((column) => column === undefined)) return undefined\n if (\n row.missingTargetObjectTypeId === undefined ||\n row.missingTargetObjectId === undefined ||\n row.missingTargetBatchOrdinal === undefined ||\n row.missingTargetFirstSeenAt === undefined\n ) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${row.id}' has a partially persisted missing target.`\n )\n }\n const missingTarget: ProjectionMissingTarget = {\n objectTypeId: row.missingTargetObjectTypeId,\n objectId: row.missingTargetObjectId,\n batchOrdinal: row.missingTargetBatchOrdinal,\n firstSeenAt: new Date(row.missingTargetFirstSeenAt),\n }\n assertValidDate(missingTarget.firstSeenAt, \"missingTarget.firstSeenAt\")\n assertProjectionRunCounter(missingTarget.batchOrdinal, \"missingTarget.batchOrdinal\")\n if (missingTarget.batchOrdinal !== checkpoint.nextBatchOrdinal) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${row.id}' is waiting on a batch it has already passed.`\n )\n }\n if (missingTarget.objectTypeId !== row.objectTypeId) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${row.id}' is waiting on an object type it does not write.`\n )\n }\n return missingTarget\n}\n\nfunction assertNoCheckpoint(row: PersistedProjectionRunRecord): void {\n if (\n row.fixedBatchSize === undefined &&\n row.nextBatchOrdinal === undefined &&\n row.nextRowOffset === undefined &&\n row.inputExhausted === undefined\n ) {\n return\n }\n throw new ProjectionRunError(\n `[Sixb] Replacement projection run '${row.id}' contains a telemetry checkpoint.`\n )\n}\n\nfunction incompleteProjectionRun(id: string): ProjectionRunError {\n return new ProjectionRunError(\n `[Sixb] Projection run '${id}' has incomplete materialization state.`\n )\n}\n\nfunction invalidProjectionRunTarget(id: string): ProjectionRunError {\n return new ProjectionRunError(`[Sixb] Projection run '${id}' has an invalid target.`)\n}\n\n/**\n * Validates a wait before it is stored, so every adapter refuses the same shapes and the SQL\n * `CHECK` behind them never has to be the thing that catches it.\n *\n * The ordinal has to be the batch the run is actually stuck on: anchored to a stale one, a wait\n * would survive the progress that resolved it and fail a run that is working. The object type\n * has to be the one this run writes, since that is the only type its telemetry can reference.\n */\nexport function assertProjectionMissingTarget(\n record: TelemetryProjectionRunRecord,\n missingTarget: ProjectionMissingTarget\n): ProjectionMissingTarget {\n assertProjectionRunNonEmpty(missingTarget.objectTypeId, \"missingTarget.objectTypeId\")\n assertProjectionRunNonEmpty(missingTarget.objectId, \"missingTarget.objectId\")\n assertProjectionRunCounter(missingTarget.batchOrdinal, \"missingTarget.batchOrdinal\")\n if (Number.isNaN(missingTarget.firstSeenAt.getTime())) {\n throw new ProjectionRunError(\"[Sixb] Projection run missingTarget.firstSeenAt is invalid.\")\n }\n if (missingTarget.objectTypeId !== record.target.objectTypeId) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' cannot wait on '${missingTarget.objectTypeId}'; it writes '${record.target.objectTypeId}'.`\n )\n }\n if (missingTarget.batchOrdinal !== record.telemetryCheckpoint.nextBatchOrdinal) {\n throw new ProjectionRunError(\n `[Sixb] Telemetry projection run '${record.id}' cannot wait on batch ${missingTarget.batchOrdinal}; it is at ${record.telemetryCheckpoint.nextBatchOrdinal}.`\n )\n }\n return missingTarget\n}\n\nexport function requireTelemetryProjectionRun<TRecord extends ProjectionRunRecord>(\n record: TRecord\n): TRecord & TelemetryProjectionRunRecord {\n if (isTelemetryProjectionRun(record)) return record as TRecord & TelemetryProjectionRunRecord\n throw new ProjectionRunError(\n `[Sixb] Projection run '${record.id}' does not have a telemetry checkpoint.`\n )\n}\n\ntype ProjectionRunIdentityInput<TKind extends ProjectionKind> = Extract<\n QueueProjectionRunInput | StartOrReclaimProjectionRunInput,\n { readonly identity: { readonly projectionKind: TKind } }\n>\n\ntype ProjectionRunAdmission<TKind extends ProjectionKind> = Extract<\n QueueProjectionRunInput,\n { readonly identity: { readonly projectionKind: TKind } }\n>\n\nfunction isTelemetryProjectionRun(\n record: ProjectionRunRecord\n): record is TelemetryProjectionRunRecord {\n return record.identity.projectionKind === \"telemetry\"\n}\n",
7
+ "import type { ExecutionStorage } from \"../executions\"\nimport { findPrimitiveRunExecution } from \"../executions/run-link\"\nimport { ProjectionRunError } from \"./errors\"\n\nexport * from \"./lifecycle\"\n\n/** Validate the semantic link between a durable Projection run and its immutable execution. */\nexport async function assertProjectionRunDurableExecution(input: {\n readonly executions: ExecutionStorage\n readonly projectId: string\n readonly executionId: string\n readonly runId: string\n readonly projectionId: string\n readonly datasetId: string\n readonly datasetVersionId: string\n}): Promise<void> {\n const execution = await findPrimitiveRunExecution({\n executions: input.executions,\n projectId: input.projectId,\n executionId: input.executionId,\n primitive: { kind: \"projection\", id: input.projectionId, runId: input.runId },\n sourceTypes: [\"datasetVersion\"],\n })\n if (\n !execution ||\n execution.source.type !== \"datasetVersion\" ||\n execution.source.datasetId !== input.datasetId ||\n execution.source.versionId !== input.datasetVersionId\n ) {\n throw new ProjectionRunError(\n `[Sixb] Execution '${input.executionId}' does not authorize Projection run '${input.runId}'.`\n )\n }\n}\n"
8
+ ],
9
+ "mappings": "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",
10
+ "debugId": "9F76147C7312E1A964756E2164756E21",
11
+ "names": []
12
+ }
@@ -3,14 +3,14 @@ import {
3
3
  AuthStorageError2,
4
4
  SYSTEM_PRINCIPAL2,
5
5
  principalsEqual2
6
- } from "./chunk-6rzb1g6h.js";
6
+ } from "./chunk-2xvgy3x5.js";
7
7
  import {
8
8
  agentServiceAccountId2,
9
9
  resolveAuthorizationContext2
10
- } from "./chunk-rzcjp5m2.js";
10
+ } from "./chunk-69kt9q43.js";
11
11
  import {
12
12
  createSixbError2
13
- } from "./chunk-rzkr70gr.js";
13
+ } from "./chunk-6fsr7y93.js";
14
14
  import {
15
15
  findPrimitiveRunExecution,
16
16
  findAgentRunExecution
@@ -1,14 +1,14 @@
1
1
  // @bun
2
2
  import {
3
3
  createSixbError2
4
- } from "./chunk-rzkr70gr.js";
4
+ } from "./chunk-6fsr7y93.js";
5
5
  import {
6
6
  compileSelectedObjectReadScope2
7
7
  } from "./chunk-v4jbb3rs.js";
8
8
  import {
9
9
  findPrimitiveSchema,
10
10
  resolveSemanticType2
11
- } from "./chunk-d8yes9yx.js";
11
+ } from "./chunk-swxzncrv.js";
12
12
  import {
13
13
  kernelOperationId,
14
14
  kernelOperationFromId
@@ -6,7 +6,7 @@ import {
6
6
  // src/materialization/dataset-watermark.ts
7
7
  function comparePinnedDatasetWatermarks2(active, next) {
8
8
  if (active.datasetId !== next.datasetId)
9
- return "dataset-mismatch";
9
+ return null;
10
10
  if (active.versionId === next.versionId && active.createdAt !== next.createdAt) {
11
11
  return "version-metadata-mismatch";
12
12
  }
@@ -27,8 +27,6 @@ function assertPinnedDatasetWatermark2(active, next, subject) {
27
27
  }
28
28
  function pinnedDatasetWatermarkConflictMessage(conflict, subject) {
29
29
  switch (conflict) {
30
- case "dataset-mismatch":
31
- return `${subject} dataset does not match the active source dataset.`;
32
30
  case "version-metadata-mismatch":
33
31
  return `${subject} reused an immutable dataset version id with different metadata.`;
34
32
  case "older-version":
@@ -40,4 +38,4 @@ function pinnedDatasetWatermarkConflictMessage(conflict, subject) {
40
38
 
41
39
  export { comparePinnedDatasetWatermarks2, assertPinnedDatasetWatermark2 };
42
40
 
43
- //# debugId=76FA48CB1D1BE09F64756E2164756E21
41
+ //# debugId=29E6A60E8B2B90FF64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/materialization/dataset-watermark.ts"],
4
+ "sourcesContent": [
5
+ "import { MaterializationConflictError } from \"./errors\"\nimport type { PinnedDatasetVersion } from \"./model\"\n\nexport type PinnedDatasetWatermarkConflict =\n | \"version-metadata-mismatch\"\n | \"older-version\"\n | \"ambiguous-version\"\n\n/**\n * Orders versions of one dataset. A projection rebound to a different dataset starts a new\n * watermark: versions of two datasets have no order, and whether a run may read that dataset is\n * decided by the registered definition, which rejects runs pinned to any other dataset.\n */\nexport function comparePinnedDatasetWatermarks(\n active: PinnedDatasetVersion,\n next: PinnedDatasetVersion\n): PinnedDatasetWatermarkConflict | null {\n if (active.datasetId !== next.datasetId) return null\n if (active.versionId === next.versionId && active.createdAt !== next.createdAt) {\n return \"version-metadata-mismatch\"\n }\n\n const activeAt = Date.parse(active.createdAt)\n const nextAt = Date.parse(next.createdAt)\n if (nextAt < activeAt) return \"older-version\"\n if (nextAt === activeAt && next.versionId !== active.versionId) return \"ambiguous-version\"\n return null\n}\n\nexport function assertPinnedDatasetWatermark(\n active: PinnedDatasetVersion,\n next: PinnedDatasetVersion,\n subject: string\n): void {\n const conflict = comparePinnedDatasetWatermarks(active, next)\n if (!conflict) return\n\n const message = pinnedDatasetWatermarkConflictMessage(conflict, subject)\n throw new MaterializationConflictError(\"projection-fence\", message)\n}\n\nfunction pinnedDatasetWatermarkConflictMessage(\n conflict: PinnedDatasetWatermarkConflict,\n subject: string\n): string {\n switch (conflict) {\n case \"version-metadata-mismatch\":\n return `${subject} reused an immutable dataset version id with different metadata.`\n case \"older-version\":\n return `${subject} dataset version is older than the active watermark.`\n case \"ambiguous-version\":\n return `${subject} dataset watermark is ambiguous.`\n }\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;AAaO,SAAS,+BAA8B,CAC5C,QACA,MACuC;AAAA,EACvC,IAAI,OAAO,cAAc,KAAK;AAAA,IAAW,OAAO;AAAA,EAChD,IAAI,OAAO,cAAc,KAAK,aAAa,OAAO,cAAc,KAAK,WAAW;AAAA,IAC9E,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,WAAW,KAAK,MAAM,OAAO,SAAS;AAAA,EAC5C,MAAM,SAAS,KAAK,MAAM,KAAK,SAAS;AAAA,EACxC,IAAI,SAAS;AAAA,IAAU,OAAO;AAAA,EAC9B,IAAI,WAAW,YAAY,KAAK,cAAc,OAAO;AAAA,IAAW,OAAO;AAAA,EACvE,OAAO;AAAA;AAGF,SAAS,6BAA4B,CAC1C,QACA,MACA,SACM;AAAA,EACN,MAAM,WAAW,gCAA+B,QAAQ,IAAI;AAAA,EAC5D,IAAI,CAAC;AAAA,IAAU;AAAA,EAEf,MAAM,UAAU,sCAAsC,UAAU,OAAO;AAAA,EACvE,MAAM,IAAI,8BAA6B,oBAAoB,OAAO;AAAA;AAGpE,SAAS,qCAAqC,CAC5C,UACA,SACQ;AAAA,EACR,QAAQ;AAAA,SACD;AAAA,MACH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA,SACP;AAAA,MACH,OAAO,GAAG;AAAA;AAAA;",
8
+ "debugId": "29E6A60E8B2B90FF64756E2164756E21",
9
+ "names": []
10
+ }
@@ -192,6 +192,10 @@ var SIXB_ERROR_DEFINITIONS = {
192
192
  publicMessage: "The embedding call was interrupted; its outcome and charges may be unknown.",
193
193
  retryable: false
194
194
  },
195
+ "storage.unavailable": {
196
+ publicMessage: "Storage is temporarily unavailable.",
197
+ retryable: true
198
+ },
195
199
  "sync.execution_failed": {
196
200
  publicMessage: "Sync execution failed.",
197
201
  retryable: false
@@ -560,4 +564,4 @@ function truncateUtf8(value, maxBytes) {
560
564
 
561
565
  export { ActionValidationError2, ActionRunFailedError2, ActionRunTimeoutError2, SIXB_ERROR_CODES2, SIXB_FAILURE_MAX_MESSAGE_BYTES2, SIXB_FAILURE_MAX_SERIALIZED_BYTES2, createSixbError2, captureSixbFailure2, isSixbError2, toSixbFailure2, serializeSixbFailure2, parseSixbFailure2, summarizeErrorMessage2 };
562
566
 
563
- //# debugId=618327CB3FBDBD4A64756E2164756E21
567
+ //# debugId=80A913EE33C4C2F664756E2164756E21
@@ -3,11 +3,11 @@
3
3
  "sources": ["../src/objects/action/errors.ts", "../src/errors/catalog.ts", "../src/errors/redaction.ts", "../src/errors/internal.ts"],
4
4
  "sourcesContent": [
5
5
  "import type { ActionSubject } from \"../../actions\"\nimport type { ActionRunFailure } from \"../../storage\"\n\nexport class ActionValidationError extends Error {\n readonly name = \"ActionValidationError\"\n readonly actionId: string\n readonly subject: ActionSubject\n readonly primaryId?: string\n\n constructor(message: string, params: { actionId: string; subject: ActionSubject }) {\n super(message)\n this.actionId = params.actionId\n this.subject = params.subject\n this.primaryId = params.subject.kind === \"object\" ? params.subject.primaryId : undefined\n }\n}\n\nexport class ActionRunFailedError extends Error {\n readonly name = \"ActionRunFailedError\"\n readonly runId: string\n readonly actionId: string\n readonly subject: ActionSubject\n readonly objectTypeId?: string\n readonly primaryId?: string\n readonly error: ActionRunFailure\n readonly finishedAt: string\n\n constructor(payload: {\n runId: string\n actionId: string\n subject: ActionSubject\n error: ActionRunFailure\n finishedAt: string\n }) {\n super(payload.error.message)\n this.runId = payload.runId\n this.actionId = payload.actionId\n this.subject = payload.subject\n this.objectTypeId = payload.subject.kind === \"object\" ? payload.subject.objectTypeId : undefined\n this.primaryId = payload.subject.kind === \"object\" ? payload.subject.primaryId : undefined\n this.error = payload.error\n this.finishedAt = payload.finishedAt\n }\n}\n\nexport class ActionRunTimeoutError extends Error {\n readonly name = \"ActionRunTimeoutError\"\n readonly runId: string\n readonly timeoutMs: number\n\n constructor(params: { runId: string; timeoutMs: number }) {\n super(`Action run '${params.runId}' did not finish within ${params.timeoutMs}ms.`)\n this.runId = params.runId\n this.timeoutMs = params.timeoutMs\n }\n}\n",
6
- "interface SixbErrorDefinition {\n readonly publicMessage: string\n readonly retryable: boolean\n}\n\n/**\n * Source of truth for stable Sixb error codes and their framework-level policy.\n *\n * Keep this catalog internal. Consumers receive the `SixbErrorCode` union and persisted\n * `SixbFailure` values, not a mutable registry.\n */\nexport const SIXB_ERROR_DEFINITIONS = {\n \"action.phase_failed\": {\n publicMessage: \"Action execution failed.\",\n retryable: false,\n },\n \"action.read_conflict\": {\n publicMessage: \"Data the Action read changed before its commit.\",\n retryable: true,\n },\n \"agent.execution_failed\": {\n publicMessage: \"Agent execution failed.\",\n retryable: false,\n },\n \"ai.usage_limit_exceeded\": {\n publicMessage: \"AI usage limit exceeded.\",\n retryable: false,\n },\n \"ai.usage_limit_unavailable\": {\n publicMessage: \"AI usage limit could not be evaluated.\",\n retryable: true,\n },\n \"connector.adapter_invalid\": {\n publicMessage: \"Connector adapter returned an invalid result.\",\n retryable: false,\n },\n \"connector.authorization_invalid\": {\n publicMessage: \"Connector authorization is invalid.\",\n retryable: false,\n },\n \"connector.authorization_required\": {\n publicMessage: \"Connector authorization is required.\",\n retryable: false,\n },\n \"connector.configuration_invalid\": {\n publicMessage: \"Connector configuration is invalid.\",\n retryable: false,\n },\n \"connector.credentials_unavailable\": {\n publicMessage: \"Connector credentials are unavailable.\",\n retryable: false,\n },\n \"connector.not_found\": {\n publicMessage: \"Connector resource not found.\",\n retryable: false,\n },\n \"connector.operation_conflict\": {\n publicMessage: \"Connector operation conflicts with the current state.\",\n retryable: false,\n },\n \"connector.operation_in_progress\": {\n publicMessage: \"Another connector credential operation is in progress.\",\n retryable: true,\n },\n \"connector.provider_failed\": {\n publicMessage: \"Connector provider operation failed.\",\n retryable: false,\n },\n \"connector.provider_unavailable\": {\n publicMessage: \"Connector provider is temporarily unavailable.\",\n retryable: true,\n },\n \"connector.replacement_required\": {\n publicMessage: \"Connector selection requires explicit replacement.\",\n retryable: false,\n },\n \"connector.revocation_pending\": {\n publicMessage: \"Connector revocation is pending.\",\n retryable: true,\n },\n \"dataset.not_found\": {\n publicMessage: \"Dataset not found.\",\n retryable: false,\n },\n \"dataset.version_incompatible\": {\n publicMessage: \"Dataset version is incompatible.\",\n retryable: false,\n },\n \"dataset.version_not_found\": {\n publicMessage: \"Dataset version not found.\",\n retryable: false,\n },\n \"dataset.version_read_inconsistent\": {\n publicMessage: \"Dataset version could not be read consistently.\",\n retryable: true,\n },\n \"event.delivery_failed\": {\n publicMessage: \"Event delivery failed.\",\n retryable: true,\n },\n \"internal.unexpected\": {\n publicMessage: \"An unexpected internal error occurred.\",\n retryable: false,\n },\n \"queue.enqueue_failed\": {\n publicMessage: \"The job could not be enqueued.\",\n retryable: true,\n },\n \"pipeline.step_failed\": {\n publicMessage: \"Pipeline step execution failed.\",\n retryable: false,\n },\n \"projection.definition_invalid\": {\n publicMessage: \"Projection definition is invalid.\",\n retryable: false,\n },\n \"projection.execution_failed\": {\n publicMessage: \"Projection execution failed.\",\n retryable: false,\n },\n \"projection.not_found\": {\n publicMessage: \"Projection not found.\",\n retryable: false,\n },\n \"projection.run_already_terminal\": {\n publicMessage: \"Projection run is already terminal.\",\n retryable: false,\n },\n \"projection.run_identity_mismatch\": {\n publicMessage: \"Projection run identity does not match the queued job.\",\n retryable: false,\n },\n \"runtime.cancelled\": {\n publicMessage: \"Execution was cancelled.\",\n retryable: false,\n },\n \"vector.model_unavailable\": {\n publicMessage: \"The embedding model configured for this vector profile is unavailable.\",\n retryable: false,\n },\n \"vector.response_invalid\": {\n publicMessage: \"The embedding response is invalid for this vector profile.\",\n retryable: false,\n },\n \"vector.outcome_unknown\": {\n publicMessage: \"The embedding call was interrupted; its outcome and charges may be unknown.\",\n retryable: false,\n },\n \"sync.execution_failed\": {\n publicMessage: \"Sync execution failed.\",\n retryable: false,\n },\n \"webhook.delivery_failed\": {\n publicMessage: \"Webhook delivery failed.\",\n retryable: true,\n },\n \"webhook.delivery_rejected\": {\n publicMessage: \"Webhook delivery was rejected.\",\n retryable: false,\n },\n \"workflow.node_failed\": {\n publicMessage: \"Workflow node execution failed.\",\n retryable: false,\n },\n} as const satisfies Readonly<Record<string, SixbErrorDefinition>>\n\ntype CatalogErrorCode = keyof typeof SIXB_ERROR_DEFINITIONS\n\n/** Runtime counterpart of `SixbErrorCode` for internal schema boundaries. */\nexport const SIXB_ERROR_CODES = Object.freeze(Object.keys(SIXB_ERROR_DEFINITIONS)) as readonly [\n CatalogErrorCode,\n ...CatalogErrorCode[],\n]\n",
6
+ "interface SixbErrorDefinition {\n readonly publicMessage: string\n readonly retryable: boolean\n}\n\n/**\n * Source of truth for stable Sixb error codes and their framework-level policy.\n *\n * Keep this catalog internal. Consumers receive the `SixbErrorCode` union and persisted\n * `SixbFailure` values, not a mutable registry.\n */\nexport const SIXB_ERROR_DEFINITIONS = {\n \"action.phase_failed\": {\n publicMessage: \"Action execution failed.\",\n retryable: false,\n },\n \"action.read_conflict\": {\n publicMessage: \"Data the Action read changed before its commit.\",\n retryable: true,\n },\n \"agent.execution_failed\": {\n publicMessage: \"Agent execution failed.\",\n retryable: false,\n },\n \"ai.usage_limit_exceeded\": {\n publicMessage: \"AI usage limit exceeded.\",\n retryable: false,\n },\n \"ai.usage_limit_unavailable\": {\n publicMessage: \"AI usage limit could not be evaluated.\",\n retryable: true,\n },\n \"connector.adapter_invalid\": {\n publicMessage: \"Connector adapter returned an invalid result.\",\n retryable: false,\n },\n \"connector.authorization_invalid\": {\n publicMessage: \"Connector authorization is invalid.\",\n retryable: false,\n },\n \"connector.authorization_required\": {\n publicMessage: \"Connector authorization is required.\",\n retryable: false,\n },\n \"connector.configuration_invalid\": {\n publicMessage: \"Connector configuration is invalid.\",\n retryable: false,\n },\n \"connector.credentials_unavailable\": {\n publicMessage: \"Connector credentials are unavailable.\",\n retryable: false,\n },\n \"connector.not_found\": {\n publicMessage: \"Connector resource not found.\",\n retryable: false,\n },\n \"connector.operation_conflict\": {\n publicMessage: \"Connector operation conflicts with the current state.\",\n retryable: false,\n },\n \"connector.operation_in_progress\": {\n publicMessage: \"Another connector credential operation is in progress.\",\n retryable: true,\n },\n \"connector.provider_failed\": {\n publicMessage: \"Connector provider operation failed.\",\n retryable: false,\n },\n \"connector.provider_unavailable\": {\n publicMessage: \"Connector provider is temporarily unavailable.\",\n retryable: true,\n },\n \"connector.replacement_required\": {\n publicMessage: \"Connector selection requires explicit replacement.\",\n retryable: false,\n },\n \"connector.revocation_pending\": {\n publicMessage: \"Connector revocation is pending.\",\n retryable: true,\n },\n \"dataset.not_found\": {\n publicMessage: \"Dataset not found.\",\n retryable: false,\n },\n \"dataset.version_incompatible\": {\n publicMessage: \"Dataset version is incompatible.\",\n retryable: false,\n },\n \"dataset.version_not_found\": {\n publicMessage: \"Dataset version not found.\",\n retryable: false,\n },\n \"dataset.version_read_inconsistent\": {\n publicMessage: \"Dataset version could not be read consistently.\",\n retryable: true,\n },\n \"event.delivery_failed\": {\n publicMessage: \"Event delivery failed.\",\n retryable: true,\n },\n \"internal.unexpected\": {\n publicMessage: \"An unexpected internal error occurred.\",\n retryable: false,\n },\n \"queue.enqueue_failed\": {\n publicMessage: \"The job could not be enqueued.\",\n retryable: true,\n },\n \"pipeline.step_failed\": {\n publicMessage: \"Pipeline step execution failed.\",\n retryable: false,\n },\n \"projection.definition_invalid\": {\n publicMessage: \"Projection definition is invalid.\",\n retryable: false,\n },\n \"projection.execution_failed\": {\n publicMessage: \"Projection execution failed.\",\n retryable: false,\n },\n \"projection.not_found\": {\n publicMessage: \"Projection not found.\",\n retryable: false,\n },\n \"projection.run_already_terminal\": {\n publicMessage: \"Projection run is already terminal.\",\n retryable: false,\n },\n \"projection.run_identity_mismatch\": {\n publicMessage: \"Projection run identity does not match the queued job.\",\n retryable: false,\n },\n \"runtime.cancelled\": {\n publicMessage: \"Execution was cancelled.\",\n retryable: false,\n },\n \"vector.model_unavailable\": {\n publicMessage: \"The embedding model configured for this vector profile is unavailable.\",\n retryable: false,\n },\n \"vector.response_invalid\": {\n publicMessage: \"The embedding response is invalid for this vector profile.\",\n retryable: false,\n },\n \"vector.outcome_unknown\": {\n publicMessage: \"The embedding call was interrupted; its outcome and charges may be unknown.\",\n retryable: false,\n },\n \"storage.unavailable\": {\n publicMessage: \"Storage is temporarily unavailable.\",\n retryable: true,\n },\n \"sync.execution_failed\": {\n publicMessage: \"Sync execution failed.\",\n retryable: false,\n },\n \"webhook.delivery_failed\": {\n publicMessage: \"Webhook delivery failed.\",\n retryable: true,\n },\n \"webhook.delivery_rejected\": {\n publicMessage: \"Webhook delivery was rejected.\",\n retryable: false,\n },\n \"workflow.node_failed\": {\n publicMessage: \"Workflow node execution failed.\",\n retryable: false,\n },\n} as const satisfies Readonly<Record<string, SixbErrorDefinition>>\n\ntype CatalogErrorCode = keyof typeof SIXB_ERROR_DEFINITIONS\n\n/** Runtime counterpart of `SixbErrorCode` for internal schema boundaries. */\nexport const SIXB_ERROR_CODES = Object.freeze(Object.keys(SIXB_ERROR_DEFINITIONS)) as readonly [\n CatalogErrorCode,\n ...CatalogErrorCode[],\n]\n",
7
7
  "import type { ReadonlyJsonValue } from \"../json\"\n\nconst REDACTED = \"[REDACTED]\"\nconst MAX_CONTEXT_DEPTH = 12\nconst MAX_CONTEXT_ENTRIES = 1024\nconst SENSITIVE_KEY =\n /password|passwd|passphrase|secret|token|credential|authorization|cookie|privatekey|apikey|accesskey|connectionstring|databaseurl|clientassertion|signature/i\nconst PRIVATE_CONTAINER =\n /^(?:request|response)(?:body|headers)?$|^(?:headers|body|payload|env|environment)$/i\n\nfunction isSensitiveKey(key: string): boolean {\n const normalized = key.replace(/[^a-z0-9]/gi, \"\")\n return SENSITIVE_KEY.test(normalized) || PRIVATE_CONTAINER.test(normalized)\n}\n\n/** Runtime credentials are additional protection for context; never a license to copy errors. */\nfunction environmentSecrets(): string[] {\n return Object.entries(process.env)\n .filter(([key, value]) => isSensitiveKey(key) && value !== undefined && value.length >= 4)\n .map(([, value]) => value as string)\n .sort((a, b) => b.length - a.length)\n}\n\nexport function createFailureRedactor() {\n const secrets = environmentSecrets()\n let redacted = false\n let truncated = false\n let entries = 0\n\n const text = (input: string): string => {\n let value = input\n for (const secret of secrets) {\n value = value\n .split(REDACTED)\n .map((part) => part.split(secret).join(REDACTED))\n .join(REDACTED)\n }\n value = value\n .replace(\n /-----BEGIN [^-]*PRIVATE KEY-----[\\s\\S]*?(?:-----END [^-]*PRIVATE KEY-----|$)/g,\n REDACTED\n )\n .replace(/\\b(?:Bearer|Basic)\\s+[A-Za-z0-9+/_.~=-]+/gi, REDACTED)\n .replace(/\\beyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b/g, REDACTED)\n .replace(\n /\\b(?:sk[-_](?:live[-_]|test[-_]|proj[-_])?[A-Za-z0-9_-]{12,}|gh[pousr]_[A-Za-z0-9_]{20,}|github_pat_[A-Za-z0-9_]+|AKIA[A-Z0-9]{16})\\b/g,\n REDACTED\n )\n // URLs may carry userinfo, signed query parameters, or credentials in the path.\n .replace(/\\b[a-z][a-z0-9+.-]*:\\/\\/[^\\s<>\"']+/gi, REDACTED)\n .replace(\n /[\"']?\\b(?:password|passwd|passphrase|[a-z_-]*secret|[a-z_-]*token|api[-_]?key|authorization|cookie|credential|signature)[\"']?\\s*[=:]\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'|[^\\s,;]+)/gi,\n REDACTED\n )\n if (value !== input) redacted = true\n return value\n }\n\n const context = (value: ReadonlyJsonValue, depth = 0): ReadonlyJsonValue => {\n if (depth > MAX_CONTEXT_DEPTH || entries++ >= MAX_CONTEXT_ENTRIES) {\n truncated = true\n return \"[TRUNCATED]\"\n }\n if (typeof value === \"string\") return text(value)\n if (value === null || typeof value !== \"object\") return value\n if (Array.isArray(value)) {\n const available = Math.max(0, MAX_CONTEXT_ENTRIES - entries)\n if (value.length > available) truncated = true\n return value.slice(0, available).map((entry) => context(entry, depth + 1))\n }\n const result: Record<string, ReadonlyJsonValue> = Object.create(null)\n for (const [key, entry] of Object.entries(value)) {\n if (entries >= MAX_CONTEXT_ENTRIES) {\n truncated = true\n break\n }\n if (isSensitiveKey(key)) {\n redacted = true\n entries++\n result[text(key)] = REDACTED\n } else {\n result[text(key)] = context(entry, depth + 1)\n }\n }\n return result\n }\n\n return {\n text,\n context,\n get redacted() {\n return redacted\n },\n get truncated() {\n return truncated\n },\n }\n}\n",
8
8
  "import { cloneJsonValue, isJsonValue, isPlainRecord, type ReadonlyJsonValue } from \"../json\"\nimport { ActionRunFailedError } from \"../objects/action/errors\"\nimport { SIXB_ERROR_CODES, SIXB_ERROR_DEFINITIONS } from \"./catalog\"\nimport { failureMessage } from \"./failure-message\"\nimport { createFailureRedactor } from \"./redaction\"\nimport type { SixbErrorCode, SixbFailure } from \"./types\"\n\nexport const SIXB_FAILURE_MAX_MESSAGE_BYTES = 4 * 1024\nexport const SIXB_FAILURE_MAX_SERIALIZED_BYTES = 32 * 1024\nconst TRUNCATION_SUFFIX = \"… [truncated]\"\nconst SIXB_ERROR_CODE_SET: ReadonlySet<string> = new Set(SIXB_ERROR_CODES)\n\ntype SixbErrorCodeTuple = readonly [SixbErrorCode, ...SixbErrorCode[]]\n\nexport { SIXB_ERROR_CODES }\n\nexport interface SixbErrorOptions {\n readonly cause?: unknown\n readonly details?: ReadonlyJsonValue\n}\n\n/** Internal structural view returned by the factory. The implementing class stays private. */\nexport interface SixbCodedError extends Error {\n readonly code: SixbErrorCode\n readonly retryable: boolean\n readonly details?: ReadonlyJsonValue\n readonly cause?: unknown\n}\n\nexport interface ToSixbFailureOptions {\n /** Timestamp for deterministic persistence. Defaults to the current time. */\n readonly at?: Date\n}\n\nexport interface ToScopedSixbFailureOptions<TCodes extends SixbErrorCodeTuple>\n extends ToSixbFailureOptions {\n /** Codes this boundary is allowed to expose. */\n readonly allowedCodes: TCodes\n}\n\nexport interface CaptureSixbFailureOptions<TCodes extends SixbErrorCodeTuple>\n extends ToScopedSixbFailureOptions<TCodes> {\n /** Code assigned when the captured value is uncoded or outside this boundary's contract. */\n readonly defaultCode: TCodes[number]\n /** Context attached only to the boundary error created for such a captured value. */\n readonly details?: ReadonlyJsonValue\n}\n\n/**\n * The canonical exception used inside Sixb.\n *\n * The class is deliberately not exported: repo-internal callers use the factory and consumers only\n * ever observe serializable `SixbFailure` values.\n */\nclass SixbError extends Error implements SixbCodedError {\n override readonly name = \"SixbError\"\n readonly retryable: boolean\n readonly details?: ReadonlyJsonValue\n\n constructor(\n readonly code: SixbErrorCode,\n message: string,\n options: SixbErrorOptions = {}\n ) {\n super(message, options.cause === undefined ? undefined : { cause: options.cause })\n this.retryable = SIXB_ERROR_DEFINITIONS[code].retryable\n if (options.details !== undefined) {\n this.details = cloneJsonValue(options.details, \"Sixb error details\")\n }\n }\n}\n\n/** Creates a coded internal error without exposing its runtime class. */\nexport function createSixbError(\n code: SixbErrorCode,\n message: string,\n options: SixbErrorOptions = {}\n): SixbCodedError {\n return new SixbError(code, message, options)\n}\n\n/**\n * Captures an unknown terminal error as a scoped durable failure.\n *\n * An already-coded error is preserved only when its code belongs to this boundary. Every other\n * value is wrapped once with the boundary's default code and context before serialization.\n */\nexport function captureSixbFailure<const TCodes extends SixbErrorCodeTuple>(\n error: unknown,\n options: CaptureSixbFailureOptions<TCodes>\n): SixbFailure<TCodes[number]> {\n const allowedCodes = new Set<SixbErrorCode>(options.allowedCodes)\n const codedError =\n isSixbError(error) && allowedCodes.has(error.code)\n ? error\n : createSixbError(options.defaultCode, summarizeErrorMessage(error), {\n cause: error,\n ...(options.details === undefined ? {} : { details: options.details }),\n })\n\n return toSixbFailure(codedError, {\n allowedCodes: options.allowedCodes,\n ...(options.at === undefined ? {} : { at: options.at }),\n })\n}\n\n/** Identifies errors created by Sixb without making their class part of the contract. */\nexport function isSixbError(error: unknown): error is SixbCodedError {\n try {\n return error instanceof SixbError\n } catch {\n return false\n }\n}\n\n/**\n * Takes a detached, serializable snapshot of a coded internal error.\n *\n * Use `captureSixbFailure()` instead when a terminal boundary receives an unknown thrown value.\n */\nexport function toSixbFailure<const TCodes extends SixbErrorCodeTuple>(\n error: SixbCodedError,\n options: ToScopedSixbFailureOptions<TCodes>\n): SixbFailure<TCodes[number]>\nexport function toSixbFailure(error: SixbCodedError, options?: ToSixbFailureOptions): SixbFailure\nexport function toSixbFailure(\n error: SixbCodedError,\n options: ToSixbFailureOptions | ToScopedSixbFailureOptions<SixbErrorCodeTuple> = {}\n): SixbFailure {\n if (!isSixbError(error)) {\n throw new Error(\"[Sixb] A durable failure can only be created from a coded Sixb error.\")\n }\n const allowedCodes = \"allowedCodes\" in options ? new Set(options.allowedCodes) : undefined\n if (allowedCodes && !allowedCodes.has(error.code)) {\n throw new Error(`[Sixb] Error code '${error.code}' is not allowed by this failure contract.`)\n }\n const code = error.code\n const redactor = createFailureRedactor()\n const details = error.details === undefined ? undefined : redactor.context(error.details)\n const { detail, truncated, redacted } = findFailureDetail(error, code)\n const summary = SIXB_ERROR_DEFINITIONS[code].publicMessage\n const explanation = detail?.message ?? summary\n const message = truncateUtf8(\n redactor.text(\n explanation === summary || explanation.startsWith(`${summary} `)\n ? explanation\n : `${summary} ${explanation}`\n ),\n SIXB_FAILURE_MAX_MESSAGE_BYTES\n )\n const failure: SixbFailure = {\n code,\n message: message.value,\n retryable: SIXB_ERROR_DEFINITIONS[code].retryable,\n at: failureTimestamp(options.at),\n ...(details === undefined ? {} : { details: cloneJsonValue(details, \"Sixb failure details\") }),\n ...(detail?.httpStatus === undefined ? {} : { httpStatus: detail.httpStatus }),\n ...(redactor.redacted || redacted ? { redacted: true } : {}),\n ...(message.truncated || truncated || redactor.truncated ? { truncated: true } : {}),\n }\n\n if (serializedByteLength(failure) <= SIXB_FAILURE_MAX_SERIALIZED_BYTES) return failure\n\n return {\n code: failure.code,\n message: failure.message,\n retryable: failure.retryable,\n at: failure.at,\n ...(failure.httpStatus === undefined ? {} : { httpStatus: failure.httpStatus }),\n ...(failure.redacted ? { redacted: true } : {}),\n truncated: true,\n }\n}\n\nconst NETWORK_MESSAGES: Readonly<Record<string, string>> = {\n ECONNREFUSED: \"The remote service refused the connection.\",\n ECONNRESET: \"The remote service reset the connection.\",\n ENOTFOUND: \"The remote host could not be resolved.\",\n EAI_AGAIN: \"DNS resolution temporarily failed.\",\n ETIMEDOUT: \"The connection timed out.\",\n}\n\nfunction isHttpStatus(value: unknown): value is number {\n return typeof value === \"number\" && Number.isInteger(value) && value >= 100 && value <= 599\n}\n\n/** Follow the causal chain without exposing arbitrary messages or discarding deeper statuses. */\nfunction findFailureDetail(\n error: SixbCodedError,\n boundaryCode: SixbErrorCode\n): {\n detail?: { message: string; httpStatus?: number }\n truncated: boolean\n redacted: boolean\n} {\n const seen = new Set<object>()\n const messages = new Set<string>()\n let catalogMessage: string | undefined\n let httpStatus: number | undefined\n let truncated = false\n let redacted = false\n let current: unknown = error\n while (typeof current === \"object\" && current !== null && !seen.has(current)) {\n if (seen.size === 8) {\n truncated = true\n break\n }\n seen.add(current)\n const explanation = failureMessage(current)\n if (explanation) messages.add(explanation)\n try {\n if (current instanceof ActionRunFailedError) {\n // This is an already durable child failure, not arbitrary provider prose. Revalidate it\n // before propagation; do not copy its context over the parent's identity or retry policy.\n const child = parseSixbFailure(Object.getOwnPropertyDescriptor(current, \"error\")?.value)\n messages.add(child.message)\n httpStatus ??= child.httpStatus\n redacted ||= child.redacted === true\n truncated ||= child.truncated === true\n }\n if (\n isSixbError(current) &&\n current.code !== boundaryCode &&\n current.code !== \"internal.unexpected\"\n ) {\n catalogMessage = SIXB_ERROR_DEFINITIONS[current.code].publicMessage\n }\n // Read data properties only: provider accessors, messages and payloads remain private.\n const status =\n Object.getOwnPropertyDescriptor(current, \"status\")?.value ??\n Object.getOwnPropertyDescriptor(current, \"statusCode\")?.value\n if (httpStatus === undefined && isHttpStatus(status)) httpStatus = status\n const code = Object.getOwnPropertyDescriptor(current, \"code\")?.value\n if (typeof code === \"string\" && Object.hasOwn(NETWORK_MESSAGES, code)) {\n messages.add(NETWORK_MESSAGES[code])\n }\n current = Object.getOwnPropertyDescriptor(current, \"cause\")?.value\n } catch {\n break\n }\n }\n if (messages.size === 0 && catalogMessage) messages.add(catalogMessage)\n if (httpStatus !== undefined) {\n const statusMessage = `Upstream request returned HTTP ${httpStatus}.`\n if (![...messages].some((message) => message.includes(statusMessage)))\n messages.add(statusMessage)\n }\n return {\n ...(messages.size === 0 ? {} : { detail: { message: [...messages].join(\" \"), httpStatus } }),\n truncated,\n redacted,\n }\n}\n\n/** Serializes a validated failure for durable storage. */\nexport function serializeSixbFailure<const TCodes extends SixbErrorCodeTuple>(\n failure: SixbFailure<TCodes[number]>,\n allowedCodes: TCodes\n): string\nexport function serializeSixbFailure(failure: SixbFailure): string\nexport function serializeSixbFailure(\n failure: SixbFailure,\n allowedCodes?: SixbErrorCodeTuple\n): string {\n const parsed = allowedCodes ? parseSixbFailure(failure, allowedCodes) : parseSixbFailure(failure)\n return JSON.stringify(parsed)\n}\n\n/**\n * Validates and detaches a failure read from a storage boundary.\n *\n * Strings are accepted for SQLite; PostgreSQL adapters can pass their decoded JSON value directly.\n */\nexport function parseSixbFailure<const TCodes extends SixbErrorCodeTuple>(\n value: unknown,\n allowedCodes: TCodes\n): SixbFailure<TCodes[number]>\nexport function parseSixbFailure(value: unknown): SixbFailure\nexport function parseSixbFailure(\n value: unknown,\n allowedCodes: SixbErrorCodeTuple = SIXB_ERROR_CODES\n): SixbFailure {\n const candidate = parseStoredFailureValue(value)\n if (!isPlainRecord(candidate)) {\n throw invalidStoredFailure(\"expected a JSON object\")\n }\n\n const { code, message, retryable, at, details, httpStatus, redacted, truncated } = candidate\n if (typeof code !== \"string\" || !SIXB_ERROR_CODE_SET.has(code)) {\n throw invalidStoredFailure(\"code is not a known Sixb error code\")\n }\n if (!(allowedCodes as readonly string[]).includes(code)) {\n throw invalidStoredFailure(\"code is not allowed by this failure contract\")\n }\n if (typeof message !== \"string\") {\n throw invalidStoredFailure(\"message is not a string\")\n }\n if (utf8ByteLength(message) > SIXB_FAILURE_MAX_MESSAGE_BYTES) {\n throw invalidStoredFailure(`message exceeds ${SIXB_FAILURE_MAX_MESSAGE_BYTES} UTF-8 bytes`)\n }\n if (typeof retryable !== \"boolean\") {\n throw invalidStoredFailure(\"retryable is not a boolean\")\n }\n if (retryable !== SIXB_ERROR_DEFINITIONS[code as SixbErrorCode].retryable) {\n throw invalidStoredFailure(\"retryable does not match the error code policy\")\n }\n if (typeof at !== \"string\" || !isCanonicalIsoTimestamp(at)) {\n throw invalidStoredFailure(\"at is not a canonical ISO-8601 timestamp\")\n }\n if (details !== undefined && !isJsonValue(details)) {\n throw invalidStoredFailure(\"details is not a JSON value\")\n }\n if (truncated !== undefined && truncated !== true) {\n throw invalidStoredFailure(\"truncated must be true when present\")\n }\n\n if (redacted !== undefined && redacted !== true) {\n throw invalidStoredFailure(\"redacted must be true when present\")\n }\n if (httpStatus !== undefined && !isHttpStatus(httpStatus)) {\n throw invalidStoredFailure(\"httpStatus must be an integer HTTP status\")\n }\n const redactor = createFailureRedactor()\n const safeMessage = truncateUtf8(redactor.text(message), SIXB_FAILURE_MAX_MESSAGE_BYTES)\n const safeDetails =\n details === undefined ? undefined : redactor.context(details as ReadonlyJsonValue)\n\n const failure: SixbFailure = {\n code: code as SixbErrorCode,\n message: safeMessage.value,\n retryable,\n at,\n ...(safeDetails === undefined\n ? {}\n : { details: cloneJsonValue(safeDetails, \"Stored Sixb failure details\") }),\n ...(httpStatus === undefined ? {} : { httpStatus: httpStatus as number }),\n ...(redacted || redactor.redacted ? { redacted: true } : {}),\n ...(truncated || redactor.truncated || safeMessage.truncated ? { truncated: true } : {}),\n }\n if (serializedByteLength(failure) > SIXB_FAILURE_MAX_SERIALIZED_BYTES) {\n throw invalidStoredFailure(\n `record exceeds ${SIXB_FAILURE_MAX_SERIALIZED_BYTES} serialized UTF-8 bytes`\n )\n }\n return failure\n}\n\nfunction parseStoredFailureValue(value: unknown): unknown {\n if (typeof value !== \"string\") return value\n try {\n return JSON.parse(value) as unknown\n } catch {\n throw invalidStoredFailure(\"value is not valid JSON\")\n }\n}\n\nfunction isCanonicalIsoTimestamp(value: string): boolean {\n const timestamp = new Date(value)\n return Number.isFinite(timestamp.getTime()) && timestamp.toISOString() === value\n}\n\nfunction invalidStoredFailure(reason: string): Error {\n return new Error(`[Sixb] Stored failure is invalid: ${reason}.`)\n}\n\n/**\n * Extracts a diagnostic message for an internal error or log entry.\n *\n * The result can contain provider data and must not be persisted or returned by an API.\n * `toSixbFailure()` constructs a message from recognized HTTP, network, or Sixb information instead.\n */\nexport function summarizeErrorMessage(value: unknown, fallback?: string): string {\n const message = readStringProperty(value, \"message\")\n if (message !== undefined) return message\n if (typeof value === \"string\") return value\n return fallback ?? safeString(value)\n}\n\nfunction readStringProperty(value: unknown, property: \"message\"): string | undefined {\n if (!isObjectLike(value)) return undefined\n try {\n const result = Reflect.get(value, property)\n return typeof result === \"string\" ? result : undefined\n } catch {\n return undefined\n }\n}\n\nfunction isObjectLike(value: unknown): value is object {\n return (typeof value === \"object\" && value !== null) || typeof value === \"function\"\n}\n\nfunction safeString(value: unknown): string {\n try {\n return String(value)\n } catch {\n return \"Unknown thrown value\"\n }\n}\n\nfunction failureTimestamp(at: Date | undefined): string {\n const timestamp = at ?? new Date()\n if (!Number.isFinite(timestamp.getTime())) {\n throw new Error(\"[Sixb] Failure timestamp must be a valid Date.\")\n }\n return timestamp.toISOString()\n}\n\nfunction serializedByteLength(value: SixbFailure): number {\n return utf8ByteLength(JSON.stringify(value))\n}\n\nfunction utf8ByteLength(value: string): number {\n return new TextEncoder().encode(value).byteLength\n}\n\nfunction truncateUtf8(value: string, maxBytes: number): { value: string; truncated: boolean } {\n if (utf8ByteLength(value) <= maxBytes) return { value, truncated: false }\n\n const suffixBytes = utf8ByteLength(TRUNCATION_SUFFIX)\n const characters = Array.from(value)\n let low = 0\n let high = characters.length\n while (low < high) {\n const middle = Math.ceil((low + high) / 2)\n if (utf8ByteLength(characters.slice(0, middle).join(\"\")) + suffixBytes <= maxBytes) {\n low = middle\n } else {\n high = middle - 1\n }\n }\n\n return { value: `${characters.slice(0, low).join(\"\")}${TRUNCATION_SUFFIX}`, truncated: true }\n}\n"
9
9
  ],
10
- "mappings": "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",
11
- "debugId": "618327CB3FBDBD4A64756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "80A913EE33C4C2F664756E2164756E21",
12
12
  "names": []
13
13
  }