pi-daddy 0.22.0 → 0.23.0

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 (362) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/contracts/daily-view/v1/README.md +114 -0
  3. package/contracts/daily-view/v1/fixtures/view.json +525 -0
  4. package/contracts/daily-view/v1/fixtures/view.txt +75 -0
  5. package/contracts/daily-view/v1/fixtures/work.jsonl +17 -0
  6. package/contracts/daily-view/v1/p03/README.md +26 -0
  7. package/contracts/daily-view/v1/p03/fixtures/retained-executions.json +241 -0
  8. package/contracts/daily-view/v1/p03/projection.schema.json +194 -0
  9. package/contracts/daily-view/v1/p03/provenance.json +21 -0
  10. package/contracts/dashboard-host/v1/README.md +176 -0
  11. package/contracts/debrief/v1/README.md +146 -0
  12. package/contracts/debrief/v1/intervention/README.md +32 -0
  13. package/contracts/debrief/v1/intervention/fixtures/artifact-3ee11136beb864f518252e5024dae9197421fbf97b6e981d3243c782b5c44bd0.txt +1 -0
  14. package/contracts/debrief/v1/intervention/fixtures/artifact-58905d872dd3c54a9705f67b05fa82edbad7af6476ae8993faf1a7b9fadfb905.txt +1 -0
  15. package/contracts/debrief/v1/intervention/fixtures/assessment.json +29 -0
  16. package/contracts/debrief/v1/intervention/fixtures/blind-view.json +20 -0
  17. package/contracts/debrief/v1/intervention/fixtures/choice.json +7 -0
  18. package/contracts/debrief/v1/intervention/fixtures/manifest.json +57 -0
  19. package/contracts/debrief/v1/intervention/fixtures/reveal.json +39 -0
  20. package/contracts/debrief/v1/provenance.json +89 -0
  21. package/contracts/debrief/v1/work-capture/README.md +38 -0
  22. package/contracts/debrief/v1/work-capture/fixtures/batch.json +17 -0
  23. package/contracts/debrief/v1/work-capture/fixtures/cases.json +184 -0
  24. package/contracts/debrief/v1/work-capture/fixtures/review.json +184 -0
  25. package/contracts/debrief/v1/work-capture/review-request.schema.json +41 -0
  26. package/contracts/debrief/v1/work-capture/work-case.schema.json +190 -0
  27. package/contracts/debrief/v2/README.md +71 -0
  28. package/contracts/debrief/v2/input-pin.json +66 -0
  29. package/contracts/debrief/v2/intervention-upstream.md +40 -0
  30. package/contracts/debrief/v2/work-signals-upstream.md +22 -0
  31. package/contracts/dispatch-control/v1/README.md +109 -0
  32. package/contracts/dispatch-control/v1/request.schema.json +19 -0
  33. package/contracts/effect-profile/v1/README.md +124 -0
  34. package/contracts/execution-retention/v1/README.md +109 -0
  35. package/contracts/execution-retention/v2/README.md +148 -0
  36. package/contracts/execution-retention/v2/fixtures/interrupted-native-bytes.json +91 -0
  37. package/contracts/execution-retention/v2/fixtures/missing-native-session.json +91 -0
  38. package/contracts/execution-retention/v2/fixtures/native-file-unknown-branch.json +91 -0
  39. package/contracts/execution-retention/v2/fixtures/native-id-without-bytes.json +91 -0
  40. package/contracts/execution-retention/v2/fixtures/native-live-branch.json +90 -0
  41. package/contracts/execution-retention/v2/fixtures/replaced-native-session.json +92 -0
  42. package/contracts/execution-retention/v2/fixtures/result-82c620cdfeb8ca6b858cf653d7f5e2eedca5315d6244216d60e8b36f03223d6a.bin +1 -0
  43. package/contracts/execution-retention/v2/fixtures/session-2ec1f134bc739984434f7fca689e1c3d1c39fce2dcadae709e9b6faedfcc4ac7.bin +3 -0
  44. package/contracts/execution-retention/v2/fixtures/session-9bdb4bd16a901da31580acf056bda525225259e15ec409e0410480109011772f.bin +3 -0
  45. package/contracts/execution-retention/v2/manifest.schema.json +858 -0
  46. package/contracts/experiment/v1/README.md +164 -0
  47. package/contracts/factory-order/v1/README.md +151 -0
  48. package/contracts/factory-order/v1/adoption-pin.json +8 -0
  49. package/contracts/intent-control/v1/README.md +135 -0
  50. package/contracts/intent-control/v1/request.schema.json +1096 -0
  51. package/contracts/intent-control/v2/README.md +34 -0
  52. package/contracts/intent-control/v2/request.schema.json +1070 -0
  53. package/contracts/ledger/v4/README.md +241 -0
  54. package/contracts/ledger/v4/fixtures/layout-options.json +428 -0
  55. package/contracts/ledger/v4/fixtures/work-acceptance.json +57 -0
  56. package/contracts/ledger/v4/fixtures/work-occurrence.json +44 -0
  57. package/contracts/ledger/v4/fixtures/work-revision.json +26 -0
  58. package/contracts/ledger/v4/fixtures/work-snapshot.json +73 -0
  59. package/contracts/ledger/v4/ledger-event.schema.json +162 -0
  60. package/contracts/ordinary-control/v1/README.md +59 -0
  61. package/contracts/producer-ipc/v1/README.md +137 -0
  62. package/dist/check-runner.d.ts +5 -0
  63. package/dist/check-runner.d.ts.map +1 -1
  64. package/dist/check-runner.js +16 -2
  65. package/dist/check-runner.js.map +1 -1
  66. package/dist/control-journal.d.ts +20 -0
  67. package/dist/control-journal.d.ts.map +1 -0
  68. package/dist/control-journal.js +73 -0
  69. package/dist/control-journal.js.map +1 -0
  70. package/dist/daily-view-input.d.ts +44 -0
  71. package/dist/daily-view-input.d.ts.map +1 -0
  72. package/dist/daily-view-input.js +68 -0
  73. package/dist/daily-view-input.js.map +1 -0
  74. package/dist/daily-view-render.d.ts +4 -0
  75. package/dist/daily-view-render.d.ts.map +1 -0
  76. package/dist/daily-view-render.js +41 -0
  77. package/dist/daily-view-render.js.map +1 -0
  78. package/dist/daily-view.d.ts +74 -0
  79. package/dist/daily-view.d.ts.map +1 -0
  80. package/dist/daily-view.js +170 -0
  81. package/dist/daily-view.js.map +1 -0
  82. package/dist/dashboard-cli.d.ts +26 -1
  83. package/dist/dashboard-cli.d.ts.map +1 -1
  84. package/dist/dashboard-cli.js +121 -3
  85. package/dist/dashboard-cli.js.map +1 -1
  86. package/dist/dashboard-harness.d.ts +19 -0
  87. package/dist/dashboard-harness.d.ts.map +1 -0
  88. package/dist/dashboard-harness.js +75 -0
  89. package/dist/dashboard-harness.js.map +1 -0
  90. package/dist/dashboard-herdr.d.ts.map +1 -1
  91. package/dist/dashboard-herdr.js +7 -2
  92. package/dist/dashboard-herdr.js.map +1 -1
  93. package/dist/dashboard-host-contract.d.ts +111 -0
  94. package/dist/dashboard-host-contract.d.ts.map +1 -0
  95. package/dist/dashboard-host-contract.js +14 -0
  96. package/dist/dashboard-host-contract.js.map +1 -0
  97. package/dist/dashboard-host-transport.d.ts +15 -0
  98. package/dist/dashboard-host-transport.d.ts.map +1 -0
  99. package/dist/dashboard-host-transport.js +122 -0
  100. package/dist/dashboard-host-transport.js.map +1 -0
  101. package/dist/dashboard-host.d.ts +149 -0
  102. package/dist/dashboard-host.d.ts.map +1 -0
  103. package/dist/dashboard-host.js +329 -0
  104. package/dist/dashboard-host.js.map +1 -0
  105. package/dist/dashboard-observation.d.ts +28 -0
  106. package/dist/dashboard-observation.d.ts.map +1 -0
  107. package/dist/dashboard-observation.js +86 -0
  108. package/dist/dashboard-observation.js.map +1 -0
  109. package/dist/debrief-contract.d.ts +65 -0
  110. package/dist/debrief-contract.d.ts.map +1 -0
  111. package/dist/debrief-contract.js +151 -0
  112. package/dist/debrief-contract.js.map +1 -0
  113. package/dist/debrief-fixture.d.ts +16 -0
  114. package/dist/debrief-fixture.d.ts.map +1 -0
  115. package/dist/debrief-fixture.js +41 -0
  116. package/dist/debrief-fixture.js.map +1 -0
  117. package/dist/debrief-host.d.ts +59 -0
  118. package/dist/debrief-host.d.ts.map +1 -0
  119. package/dist/debrief-host.js +49 -0
  120. package/dist/debrief-host.js.map +1 -0
  121. package/dist/debrief-render.d.ts +5 -0
  122. package/dist/debrief-render.d.ts.map +1 -0
  123. package/dist/debrief-render.js +65 -0
  124. package/dist/debrief-render.js.map +1 -0
  125. package/dist/debrief.d.ts +90 -0
  126. package/dist/debrief.d.ts.map +1 -0
  127. package/dist/debrief.js +263 -0
  128. package/dist/debrief.js.map +1 -0
  129. package/dist/delegate-types.d.ts +2 -0
  130. package/dist/delegate-types.d.ts.map +1 -1
  131. package/dist/delegate-types.js.map +1 -1
  132. package/dist/delegate.d.ts.map +1 -1
  133. package/dist/delegate.js +1 -0
  134. package/dist/delegate.js.map +1 -1
  135. package/dist/dispatch-control.d.ts +45 -0
  136. package/dist/dispatch-control.d.ts.map +1 -0
  137. package/dist/dispatch-control.js +76 -0
  138. package/dist/dispatch-control.js.map +1 -0
  139. package/dist/effect-profile-runtime.d.ts +40 -0
  140. package/dist/effect-profile-runtime.d.ts.map +1 -0
  141. package/dist/effect-profile-runtime.js +51 -0
  142. package/dist/effect-profile-runtime.js.map +1 -0
  143. package/dist/effect-profile.d.ts +40 -0
  144. package/dist/effect-profile.d.ts.map +1 -0
  145. package/dist/effect-profile.js +152 -0
  146. package/dist/effect-profile.js.map +1 -0
  147. package/dist/execution-retention.d.ts +90 -0
  148. package/dist/execution-retention.d.ts.map +1 -0
  149. package/dist/execution-retention.js +247 -0
  150. package/dist/execution-retention.js.map +1 -0
  151. package/dist/experiment-contract.d.ts +56 -0
  152. package/dist/experiment-contract.d.ts.map +1 -0
  153. package/dist/experiment-contract.js +80 -0
  154. package/dist/experiment-contract.js.map +1 -0
  155. package/dist/experiment-state.d.ts +22 -0
  156. package/dist/experiment-state.d.ts.map +1 -0
  157. package/dist/experiment-state.js +79 -0
  158. package/dist/experiment-state.js.map +1 -0
  159. package/dist/experiment-store.d.ts +28 -0
  160. package/dist/experiment-store.d.ts.map +1 -0
  161. package/dist/experiment-store.js +130 -0
  162. package/dist/experiment-store.js.map +1 -0
  163. package/dist/experiment.d.ts +65 -0
  164. package/dist/experiment.d.ts.map +1 -0
  165. package/dist/experiment.js +357 -0
  166. package/dist/experiment.js.map +1 -0
  167. package/dist/factory-contract.d.ts +79 -0
  168. package/dist/factory-contract.d.ts.map +1 -0
  169. package/dist/factory-contract.js +89 -0
  170. package/dist/factory-contract.js.map +1 -0
  171. package/dist/factory-migration.d.ts +20 -0
  172. package/dist/factory-migration.d.ts.map +1 -0
  173. package/dist/factory-migration.js +55 -0
  174. package/dist/factory-migration.js.map +1 -0
  175. package/dist/factory-order.d.ts +848 -0
  176. package/dist/factory-order.d.ts.map +1 -0
  177. package/dist/factory-order.js +83 -0
  178. package/dist/factory-order.js.map +1 -0
  179. package/dist/factory-registry.d.ts +121 -0
  180. package/dist/factory-registry.d.ts.map +1 -0
  181. package/dist/factory-registry.js +133 -0
  182. package/dist/factory-registry.js.map +1 -0
  183. package/dist/file-lock.d.ts +8 -2
  184. package/dist/file-lock.d.ts.map +1 -1
  185. package/dist/file-lock.js +78 -19
  186. package/dist/file-lock.js.map +1 -1
  187. package/dist/herdr-poll.d.ts +8 -0
  188. package/dist/herdr-poll.d.ts.map +1 -1
  189. package/dist/herdr-poll.js +23 -0
  190. package/dist/herdr-poll.js.map +1 -1
  191. package/dist/index.d.ts +20 -0
  192. package/dist/index.d.ts.map +1 -1
  193. package/dist/index.js +20 -0
  194. package/dist/index.js.map +1 -1
  195. package/dist/intent-application.d.ts +17 -0
  196. package/dist/intent-application.d.ts.map +1 -0
  197. package/dist/intent-application.js +113 -0
  198. package/dist/intent-application.js.map +1 -0
  199. package/dist/intent-control.d.ts +201 -0
  200. package/dist/intent-control.d.ts.map +1 -0
  201. package/dist/intent-control.js +110 -0
  202. package/dist/intent-control.js.map +1 -0
  203. package/dist/intent-scheduling.d.ts +9 -0
  204. package/dist/intent-scheduling.d.ts.map +1 -0
  205. package/dist/intent-scheduling.js +15 -0
  206. package/dist/intent-scheduling.js.map +1 -0
  207. package/dist/ledger-append.d.ts +15 -0
  208. package/dist/ledger-append.d.ts.map +1 -0
  209. package/dist/ledger-append.js +94 -0
  210. package/dist/ledger-append.js.map +1 -0
  211. package/dist/ledger.d.ts +11 -0
  212. package/dist/ledger.d.ts.map +1 -1
  213. package/dist/ledger.js +3 -7
  214. package/dist/ledger.js.map +1 -1
  215. package/dist/native-session-target.d.ts +9 -0
  216. package/dist/native-session-target.d.ts.map +1 -0
  217. package/dist/native-session-target.js +29 -0
  218. package/dist/native-session-target.js.map +1 -0
  219. package/dist/native-session.d.ts +59 -0
  220. package/dist/native-session.d.ts.map +1 -0
  221. package/dist/native-session.js +154 -0
  222. package/dist/native-session.js.map +1 -0
  223. package/dist/order-schedule.d.ts +37 -0
  224. package/dist/order-schedule.d.ts.map +1 -0
  225. package/dist/order-schedule.js +81 -0
  226. package/dist/order-schedule.js.map +1 -0
  227. package/dist/ordinary-children.d.ts +52 -0
  228. package/dist/ordinary-children.d.ts.map +1 -0
  229. package/dist/ordinary-children.js +93 -0
  230. package/dist/ordinary-children.js.map +1 -0
  231. package/dist/producer-ipc-contract.d.ts +29 -0
  232. package/dist/producer-ipc-contract.d.ts.map +1 -0
  233. package/dist/producer-ipc-contract.js +29 -0
  234. package/dist/producer-ipc-contract.js.map +1 -0
  235. package/dist/producer-ipc.d.ts +55 -0
  236. package/dist/producer-ipc.d.ts.map +1 -0
  237. package/dist/producer-ipc.js +143 -0
  238. package/dist/producer-ipc.js.map +1 -0
  239. package/dist/resource-budget.d.ts +334 -0
  240. package/dist/resource-budget.d.ts.map +1 -0
  241. package/dist/resource-budget.js +415 -0
  242. package/dist/resource-budget.js.map +1 -0
  243. package/dist/retention-contract.d.ts +73 -0
  244. package/dist/retention-contract.d.ts.map +1 -0
  245. package/dist/retention-contract.js +104 -0
  246. package/dist/retention-contract.js.map +1 -0
  247. package/dist/retention-json.d.ts +3 -0
  248. package/dist/retention-json.d.ts.map +1 -0
  249. package/dist/retention-json.js +32 -0
  250. package/dist/retention-json.js.map +1 -0
  251. package/dist/run-child.d.ts +4 -0
  252. package/dist/run-child.d.ts.map +1 -1
  253. package/dist/run-child.js +16 -2
  254. package/dist/run-child.js.map +1 -1
  255. package/dist/run-herdr.d.ts +6 -0
  256. package/dist/run-herdr.d.ts.map +1 -1
  257. package/dist/run-herdr.js +19 -6
  258. package/dist/run-herdr.js.map +1 -1
  259. package/dist/vendor/adoption.d.ts +129 -0
  260. package/dist/vendor/adoption.d.ts.map +1 -0
  261. package/dist/vendor/adoption.js +102 -0
  262. package/dist/vendor/adoption.js.map +1 -0
  263. package/dist/work-ledger-destination.d.ts +20 -0
  264. package/dist/work-ledger-destination.d.ts.map +1 -0
  265. package/dist/work-ledger-destination.js +131 -0
  266. package/dist/work-ledger-destination.js.map +1 -0
  267. package/dist/work-ledger-json.d.ts +25 -0
  268. package/dist/work-ledger-json.d.ts.map +1 -0
  269. package/dist/work-ledger-json.js +267 -0
  270. package/dist/work-ledger-json.js.map +1 -0
  271. package/dist/work-ledger-occurrences.d.ts +227 -0
  272. package/dist/work-ledger-occurrences.d.ts.map +1 -0
  273. package/dist/work-ledger-occurrences.js +115 -0
  274. package/dist/work-ledger-occurrences.js.map +1 -0
  275. package/dist/work-ledger-projection.d.ts +295 -0
  276. package/dist/work-ledger-projection.d.ts.map +1 -0
  277. package/dist/work-ledger-projection.js +237 -0
  278. package/dist/work-ledger-projection.js.map +1 -0
  279. package/dist/work-ledger-snapshot.d.ts +29 -0
  280. package/dist/work-ledger-snapshot.d.ts.map +1 -0
  281. package/dist/work-ledger-snapshot.js +267 -0
  282. package/dist/work-ledger-snapshot.js.map +1 -0
  283. package/dist/work-ledger-types.d.ts +261 -0
  284. package/dist/work-ledger-types.d.ts.map +1 -0
  285. package/dist/work-ledger-types.js +13 -0
  286. package/dist/work-ledger-types.js.map +1 -0
  287. package/dist/work-ledger-validation.d.ts +14 -0
  288. package/dist/work-ledger-validation.d.ts.map +1 -0
  289. package/dist/work-ledger-validation.js +226 -0
  290. package/dist/work-ledger-validation.js.map +1 -0
  291. package/dist/work-ledger.d.ts +43 -0
  292. package/dist/work-ledger.d.ts.map +1 -0
  293. package/dist/work-ledger.js +225 -0
  294. package/dist/work-ledger.js.map +1 -0
  295. package/extensions/delegate-chain.ts +1 -0
  296. package/extensions/delegation-native.ts +12 -0
  297. package/extensions/delegation.ts +4 -3
  298. package/extensions/execute-child.ts +34 -4
  299. package/extensions/grants.ts +2 -0
  300. package/extensions/ordinary-runtime.ts +14 -0
  301. package/extensions/run-delegation.ts +7 -7
  302. package/extensions/session.ts +3 -1
  303. package/package.json +78 -4
  304. package/src/check-runner.ts +20 -2
  305. package/src/control-journal.ts +26 -0
  306. package/src/daily-view-input.ts +59 -0
  307. package/src/daily-view-render.ts +44 -0
  308. package/src/daily-view.ts +152 -0
  309. package/src/dashboard-cli.ts +103 -4
  310. package/src/dashboard-harness.ts +28 -0
  311. package/src/dashboard-herdr.ts +7 -2
  312. package/src/dashboard-host-contract.ts +42 -0
  313. package/src/dashboard-host-transport.ts +38 -0
  314. package/src/dashboard-host.ts +168 -0
  315. package/src/dashboard-observation.ts +44 -0
  316. package/src/debrief-contract.ts +127 -0
  317. package/src/debrief-fixture.ts +29 -0
  318. package/src/debrief-host.ts +53 -0
  319. package/src/debrief-render.ts +49 -0
  320. package/src/debrief.ts +198 -0
  321. package/src/delegate-types.ts +2 -0
  322. package/src/delegate.ts +1 -0
  323. package/src/dispatch-control.ts +81 -0
  324. package/src/effect-profile-runtime.ts +46 -0
  325. package/src/effect-profile.ts +129 -0
  326. package/src/execution-retention.ts +230 -0
  327. package/src/experiment-contract.ts +66 -0
  328. package/src/experiment-state.ts +44 -0
  329. package/src/experiment-store.ts +90 -0
  330. package/src/experiment.ts +231 -0
  331. package/src/factory-contract.ts +47 -0
  332. package/src/factory-migration.ts +29 -0
  333. package/src/factory-order.ts +56 -0
  334. package/src/factory-registry.ts +60 -0
  335. package/src/file-lock.ts +47 -11
  336. package/src/herdr-poll.ts +18 -0
  337. package/src/index.ts +32 -0
  338. package/src/intent-application.ts +90 -0
  339. package/src/intent-control.ts +107 -0
  340. package/src/intent-scheduling.ts +14 -0
  341. package/src/ledger-append.ts +72 -0
  342. package/src/ledger.ts +3 -9
  343. package/src/native-session-target.ts +23 -0
  344. package/src/native-session.ts +139 -0
  345. package/src/order-schedule.ts +42 -0
  346. package/src/ordinary-children.ts +59 -0
  347. package/src/producer-ipc-contract.ts +26 -0
  348. package/src/producer-ipc.ts +107 -0
  349. package/src/resource-budget.ts +349 -0
  350. package/src/retention-contract.ts +84 -0
  351. package/src/retention-json.ts +20 -0
  352. package/src/run-child.ts +13 -2
  353. package/src/run-herdr.ts +11 -7
  354. package/src/vendor/adoption.ts +109 -0
  355. package/src/work-ledger-destination.ts +113 -0
  356. package/src/work-ledger-json.ts +228 -0
  357. package/src/work-ledger-occurrences.ts +99 -0
  358. package/src/work-ledger-projection.ts +262 -0
  359. package/src/work-ledger-snapshot.ts +246 -0
  360. package/src/work-ledger-types.ts +229 -0
  361. package/src/work-ledger-validation.ts +174 -0
  362. package/src/work-ledger.ts +186 -0
@@ -0,0 +1,227 @@
1
+ import { type indexWorkLedgerText } from "./work-ledger-projection.ts";
2
+ import type { WorkFrozen, WorkSnapshot, WorkOccurrencePayload } from "./work-ledger-types.ts";
3
+ /** @internal One governed execution identity, many explicit work associations. No acceptance inferred. */
4
+ export declare function foldWorkOccurrences(index: ReturnType<typeof indexWorkLedgerText>, snapshot: WorkFrozen<WorkSnapshot>): {
5
+ runtime: {
6
+ readonly counts: {
7
+ readonly attempts: number;
8
+ readonly variants: number;
9
+ readonly observedCompletedAttempts: number;
10
+ };
11
+ readonly occurrences: readonly {
12
+ readonly event: {
13
+ readonly eventId: string;
14
+ readonly digest: string;
15
+ };
16
+ readonly payload: {
17
+ readonly scope: {
18
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
19
+ readonly id: string;
20
+ readonly revision: number;
21
+ readonly digest: string;
22
+ };
23
+ readonly obligation: {
24
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
25
+ readonly id: string;
26
+ readonly revision: number;
27
+ readonly digest: string;
28
+ };
29
+ readonly executionId: string;
30
+ readonly parentExecutionId: string | null;
31
+ readonly childId: string | null;
32
+ readonly variantId: string | null;
33
+ readonly artifact: {
34
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
35
+ readonly id: string;
36
+ readonly revision: number;
37
+ readonly digest: string;
38
+ } | null;
39
+ readonly provenance: "declared" | "observed";
40
+ readonly state: "unknown" | "starting" | "running" | "completed" | "failed";
41
+ readonly labels: {
42
+ readonly sessionId: string | null;
43
+ readonly branchLeafId: string | null;
44
+ readonly toolCallId: string | null;
45
+ readonly taskId: string | null;
46
+ readonly workspaceId: string | null;
47
+ readonly definitionDigest: string | null;
48
+ readonly configurationDigest: string | null;
49
+ readonly modelId: string | null;
50
+ readonly effortId: string | null;
51
+ };
52
+ };
53
+ }[];
54
+ readonly attempts: readonly {
55
+ readonly executionId: string;
56
+ readonly bindings: readonly {
57
+ readonly scope: {
58
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
59
+ readonly id: string;
60
+ readonly revision: number;
61
+ readonly digest: string;
62
+ };
63
+ readonly obligation: {
64
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
65
+ readonly id: string;
66
+ readonly revision: number;
67
+ readonly digest: string;
68
+ };
69
+ readonly variantIds: readonly string[];
70
+ readonly artifacts: readonly {
71
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
72
+ readonly id: string;
73
+ readonly revision: number;
74
+ readonly digest: string;
75
+ }[];
76
+ }[];
77
+ readonly parentExecutionId: string | null;
78
+ readonly childId: string | null;
79
+ readonly declaredLabels: readonly {
80
+ readonly sessionId: string | null;
81
+ readonly branchLeafId: string | null;
82
+ readonly toolCallId: string | null;
83
+ readonly taskId: string | null;
84
+ readonly workspaceId: string | null;
85
+ readonly definitionDigest: string | null;
86
+ readonly configurationDigest: string | null;
87
+ readonly modelId: string | null;
88
+ readonly effortId: string | null;
89
+ }[];
90
+ readonly observedLabels: readonly {
91
+ readonly sessionId: string | null;
92
+ readonly branchLeafId: string | null;
93
+ readonly toolCallId: string | null;
94
+ readonly taskId: string | null;
95
+ readonly workspaceId: string | null;
96
+ readonly definitionDigest: string | null;
97
+ readonly configurationDigest: string | null;
98
+ readonly modelId: string | null;
99
+ readonly effortId: string | null;
100
+ }[];
101
+ readonly effectiveLabels: {
102
+ readonly sessionId: string | null;
103
+ readonly branchLeafId: string | null;
104
+ readonly toolCallId: string | null;
105
+ readonly taskId: string | null;
106
+ readonly workspaceId: string | null;
107
+ readonly definitionDigest: string | null;
108
+ readonly configurationDigest: string | null;
109
+ readonly modelId: string | null;
110
+ readonly effortId: string | null;
111
+ };
112
+ readonly state: WorkOccurrencePayload["state"] | "conflicted";
113
+ readonly resolution: "resolved" | "unresolved";
114
+ readonly problems: readonly {
115
+ readonly code: import("./work-ledger-types.ts").WorkResolutionCode;
116
+ readonly reference: {
117
+ readonly type: "revision";
118
+ readonly ref: {
119
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
120
+ readonly id: string;
121
+ readonly revision: number;
122
+ readonly digest: string;
123
+ };
124
+ } | {
125
+ readonly type: "event";
126
+ readonly ref: {
127
+ readonly eventId: string;
128
+ readonly digest: string;
129
+ };
130
+ } | {
131
+ readonly type: "snapshot" | "authority" | "artifact-bytes" | "evidence-bytes";
132
+ readonly ref: {
133
+ readonly id: string;
134
+ readonly digest: string;
135
+ };
136
+ } | {
137
+ readonly type: "execution";
138
+ readonly id: string;
139
+ } | null;
140
+ readonly affectedObligations: readonly {
141
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
142
+ readonly id: string;
143
+ readonly revision: number;
144
+ readonly digest: string;
145
+ }[];
146
+ }[];
147
+ }[];
148
+ };
149
+ problems: {
150
+ readonly code: import("./work-ledger-types.ts").WorkResolutionCode;
151
+ readonly reference: {
152
+ readonly type: "revision";
153
+ readonly ref: {
154
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
155
+ readonly id: string;
156
+ readonly revision: number;
157
+ readonly digest: string;
158
+ };
159
+ } | {
160
+ readonly type: "event";
161
+ readonly ref: {
162
+ readonly eventId: string;
163
+ readonly digest: string;
164
+ };
165
+ } | {
166
+ readonly type: "snapshot" | "authority" | "artifact-bytes" | "evidence-bytes";
167
+ readonly ref: {
168
+ readonly id: string;
169
+ readonly digest: string;
170
+ };
171
+ } | {
172
+ readonly type: "execution";
173
+ readonly id: string;
174
+ } | null;
175
+ readonly affectedObligations: readonly {
176
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
177
+ readonly id: string;
178
+ readonly revision: number;
179
+ readonly digest: string;
180
+ }[];
181
+ }[];
182
+ conflicts: {
183
+ readonly kind: "event" | "receipt";
184
+ readonly id: string;
185
+ readonly digests: readonly string[];
186
+ readonly affectedObligations: readonly {
187
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
188
+ readonly id: string;
189
+ readonly revision: number;
190
+ readonly digest: string;
191
+ }[];
192
+ }[];
193
+ eventProblems: Map<string, readonly {
194
+ readonly code: import("./work-ledger-types.ts").WorkResolutionCode;
195
+ readonly reference: {
196
+ readonly type: "revision";
197
+ readonly ref: {
198
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
199
+ readonly id: string;
200
+ readonly revision: number;
201
+ readonly digest: string;
202
+ };
203
+ } | {
204
+ readonly type: "event";
205
+ readonly ref: {
206
+ readonly eventId: string;
207
+ readonly digest: string;
208
+ };
209
+ } | {
210
+ readonly type: "snapshot" | "authority" | "artifact-bytes" | "evidence-bytes";
211
+ readonly ref: {
212
+ readonly id: string;
213
+ readonly digest: string;
214
+ };
215
+ } | {
216
+ readonly type: "execution";
217
+ readonly id: string;
218
+ } | null;
219
+ readonly affectedObligations: readonly {
220
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
221
+ readonly id: string;
222
+ readonly revision: number;
223
+ readonly digest: string;
224
+ }[];
225
+ }[]>;
226
+ };
227
+ //# sourceMappingURL=work-ledger-occurrences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-ledger-occurrences.d.ts","sourceRoot":"","sources":["../src/work-ledger-occurrences.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,KAAK,EACV,UAAU,EAAE,YAAY,EAAuB,qBAAqB,EAErE,MAAM,wBAAwB,CAAC;AAQhC,0GAA0G;AAC1G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFpH"}
@@ -0,0 +1,115 @@
1
+ import { workResultKey as key, sortWorkResults as sorted, mergeWorkProblems } from "./work-ledger-json.js";
2
+ import { workEventConflictSources } from "./work-ledger-projection.js";
3
+ const eventRef = (e) => ({ eventId: e.eventId, digest: e.digest });
4
+ const emptyLabels = () => ({ sessionId: null, branchLeafId: null,
5
+ toolCallId: null, taskId: null, workspaceId: null, definitionDigest: null, configurationDigest: null, modelId: null, effortId: null });
6
+ /** @internal One governed execution identity, many explicit work associations. No acceptance inferred. */
7
+ export function foldWorkOccurrences(index, snapshot) {
8
+ const groups = new Map();
9
+ const effectiveRefs = new Set(index.effectiveEvents.map(e => key({ eventId: e.eventId, digest: e.digest })));
10
+ for (const event of index.candidates)
11
+ if (event.event === "work_occurrence") {
12
+ const group = groups.get(event.payload.executionId) ?? [];
13
+ group.push(event);
14
+ groups.set(event.payload.executionId, group);
15
+ }
16
+ const effective = new Map([...groups].map(([id, group]) => [id, group.filter(e => effectiveRefs.has(key(eventRef(e))))]));
17
+ const selectedObligations = new Set(snapshot.bindings.map(b => key(b.obligation)));
18
+ const selectedJoin = (e) => key(e.payload.scope) === key(snapshot.scope) && selectedObligations.has(key(e.payload.obligation));
19
+ const attempts = [], occurrences = [];
20
+ const allProblems = [], conflicts = [];
21
+ const eventProblems = new Map();
22
+ for (const [executionId, candidates] of groups) {
23
+ const clean = effective.get(executionId);
24
+ const bindings = new Map();
25
+ for (const event of clean.filter(selectedJoin)) {
26
+ const p = event.payload, id = key([p.scope, p.obligation]), prior = bindings.get(id);
27
+ bindings.set(id, { scope: p.scope, obligation: p.obligation,
28
+ variantIds: sorted([...(prior?.variantIds ?? []), ...(p.variantId ? [p.variantId] : [])]),
29
+ artifacts: sorted([...(prior?.artifacts ?? []), ...(p.artifact ? [p.artifact] : [])]),
30
+ });
31
+ }
32
+ const affected = sorted([...bindings.values()].map(b => b.obligation));
33
+ const problems = [];
34
+ const problem = (code, id = executionId) => problems.push({ code, reference: { type: "execution", id }, affectedObligations: affected });
35
+ const badSources = sorted(candidates.flatMap(e => workEventConflictSources(index, e)));
36
+ for (const ref of badSources)
37
+ problems.push({ code: "EVENT_CONFLICT", reference: { type: "event", ref }, affectedObligations: affected });
38
+ if (bindings.size)
39
+ for (const id of sorted(badSources.map(ref => ref.eventId))) {
40
+ conflicts.push({ kind: "event", id, digests: index.conflictingEvents.filter(ref => ref.eventId === id).map(ref => ref.digest), affectedObligations: affected });
41
+ }
42
+ const parents = sorted(clean.map(e => e.payload.parentExecutionId));
43
+ const children = sorted(clean.flatMap(e => e.payload.childId ? [e.payload.childId] : []));
44
+ const identityConflict = parents.length > 1 || children.length > 1;
45
+ if (identityConflict)
46
+ problem("OCCURRENCE_CONFLICT");
47
+ let parentExecutionId = parents.length === 1 ? parents[0] : null;
48
+ let childId = children.length === 1 ? children[0] : null;
49
+ const observed = clean.filter(e => e.payload.provenance === "observed");
50
+ const declaredLabels = sorted(clean.filter(e => e.payload.provenance === "declared").map(e => e.payload.labels));
51
+ const observedLabels = sorted(observed.map(e => e.payload.labels));
52
+ const effectiveLabels = emptyLabels();
53
+ for (const label of Object.keys(effectiveLabels)) {
54
+ const values = sorted(observed.flatMap(e => e.payload.labels[label] === null ? [] : [e.payload.labels[label]]));
55
+ if (values.length > 1)
56
+ problem("OBSERVATION_CONFLICT");
57
+ else
58
+ effectiveLabels[label] = values[0] ?? null;
59
+ }
60
+ const states = new Set(observed.map(e => e.payload.state));
61
+ const terminalConflict = states.has("completed") && states.has("failed");
62
+ if (terminalConflict)
63
+ problem("OBSERVATION_CONFLICT");
64
+ let state = terminalConflict ? "conflicted" : states.has("completed") ? "completed" :
65
+ states.has("failed") ? "failed" : states.has("running") ? "running" : states.has("starting") ? "starting" : "unknown";
66
+ if (identityConflict || badSources.length) {
67
+ state = "conflicted";
68
+ parentExecutionId = null;
69
+ childId = null;
70
+ Object.assign(effectiveLabels, emptyLabels());
71
+ }
72
+ else {
73
+ const seen = new Set([executionId]);
74
+ let parent = parentExecutionId;
75
+ while (parent !== null) {
76
+ if (seen.has(parent)) {
77
+ problem("PARENT_CYCLE", parent);
78
+ break;
79
+ }
80
+ seen.add(parent);
81
+ const bodies = effective.get(parent);
82
+ if (!bodies?.length) {
83
+ problem("PARENT_MISSING", parent);
84
+ break;
85
+ }
86
+ const alternatives = sorted(bodies.map(e => e.payload.parentExecutionId));
87
+ if (alternatives.length !== 1) {
88
+ problem("OCCURRENCE_CONFLICT", parent);
89
+ break;
90
+ }
91
+ parent = alternatives[0];
92
+ }
93
+ if (effectiveLabels.branchLeafId === null)
94
+ problem("BRANCH_UNKNOWN");
95
+ }
96
+ const rowProblems = mergeWorkProblems(problems);
97
+ // Support closure can name an occurrence even when its association is not selected. Keep its
98
+ // global identity diagnostics available internally; only selected joins become public attempts.
99
+ for (const candidate of candidates)
100
+ eventProblems.set(key(eventRef(candidate)), rowProblems);
101
+ if (!bindings.size)
102
+ continue;
103
+ allProblems.push(...rowProblems);
104
+ occurrences.push(...candidates.map(e => ({ event: eventRef(e), payload: e.payload })));
105
+ attempts.push({ executionId, bindings: sorted(bindings.values()), parentExecutionId, childId, declaredLabels,
106
+ observedLabels, effectiveLabels, state, resolution: rowProblems.length ? "unresolved" : "resolved", problems: rowProblems });
107
+ }
108
+ const runtime = { attempts: sorted(attempts), occurrences: sorted(occurrences), counts: {
109
+ attempts: attempts.length,
110
+ variants: new Set(attempts.flatMap(a => a.bindings.flatMap(b => b.variantIds))).size,
111
+ observedCompletedAttempts: attempts.filter(a => a.resolution === "resolved" && a.state === "completed").length,
112
+ } };
113
+ return { runtime, problems: mergeWorkProblems(allProblems), conflicts, eventProblems };
114
+ }
115
+ //# sourceMappingURL=work-ledger-occurrences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-ledger-occurrences.js","sourceRoot":"","sources":["../src/work-ledger-occurrences.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,295 @@
1
+ import type { EventRef, RevisionRef, WorkFrozen, WorkIngestion, WorkLedgerEvent, WorkProjectionContext, WorkAvailability } from "./work-ledger-types.ts";
2
+ import type { resolveWorkSnapshotText } from "./work-ledger-snapshot.ts";
3
+ import type { foldWorkOccurrences } from "./work-ledger-occurrences.ts";
4
+ type IndexedEvent = WorkFrozen<WorkLedgerEvent>;
5
+ /**
6
+ * Internal first-pass evidence index, NOT the public WorkProjection result.
7
+ * No selector, graph resolution, runtime counts or authority decisions are inferred here.
8
+ * Keep every candidate plus the exact conflicting event references: later reachability must
9
+ * inspect all alternatives, including nonselected associations and redelivered revision bodies.
10
+ */
11
+ interface WorkReplayIndex {
12
+ readonly ingestion: WorkFrozen<WorkIngestion>;
13
+ /** One body per validated (eventId,digest); includes quarantined evidence. */
14
+ readonly candidates: readonly IndexedEvent[];
15
+ /** Every alternative of every ID with multiple digests; not a chosen winner or receipt conflict. */
16
+ readonly conflictingEvents: ReadonlyArray<WorkFrozen<EventRef>>;
17
+ /** Exact revision bodies appearing in those conflicts, independent of delivery ID/timestamp. */
18
+ readonly quarantinedRevisions: ReadonlyArray<WorkFrozen<RevisionRef>>;
19
+ /** Central, frozen source index. Body keys point to IDs, not duplicated Cartesian candidate lists. */
20
+ readonly conflictSources: {
21
+ readonly bodies: Readonly<Record<string, readonly string[]>>;
22
+ readonly events: Readonly<Record<string, readonly WorkFrozen<EventRef>[]>>;
23
+ };
24
+ /** Clean delivery identities only; these are evidence, never proof of acceptance or a current head. */
25
+ readonly effectiveEvents: readonly IndexedEvent[];
26
+ }
27
+ type Sources = Pick<WorkReplayIndex, "conflictSources">;
28
+ /** @internal Only index-derived validated events/references. Raw alternatives remain diagnostic input. */
29
+ export declare function workEventConflictSources(index: Sources, event: IndexedEvent | WorkFrozen<EventRef>): WorkFrozen<EventRef>[];
30
+ /** @internal Exact revision references need not have a clean delivery to be quarantined. */
31
+ export declare function workRevisionConflictSources(index: Sources, ref: WorkFrozen<RevisionRef>): readonly WorkFrozen<EventRef>[];
32
+ /**
33
+ * @internal Strict text -> complete delivery grouping -> quarantine -> effective evidence.
34
+ * Deliberately not re-exported by work-ledger.ts: this is not an unchecked public projector.
35
+ * Raw serialized/archival byte hashes play no role in semantic delivery identity.
36
+ */
37
+ export declare function indexWorkLedgerText(text: string): WorkReplayIndex;
38
+ /** @internal Global receipt identity diagnostics exist even without a resolved work selector. */
39
+ export declare function indexWorkReceipts(authority: WorkFrozen<WorkProjectionContext>["authority"]): {
40
+ receipts: Map<string, Map<string, {
41
+ readonly receiptId: string;
42
+ readonly authorityId: string;
43
+ readonly claim: {
44
+ readonly eventId: string;
45
+ readonly digest: string;
46
+ };
47
+ readonly binding: {
48
+ readonly snapshot: {
49
+ readonly id: string;
50
+ readonly digest: string;
51
+ };
52
+ readonly scope: {
53
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
54
+ readonly id: string;
55
+ readonly revision: number;
56
+ readonly digest: string;
57
+ };
58
+ readonly intent: {
59
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
60
+ readonly id: string;
61
+ readonly revision: number;
62
+ readonly digest: string;
63
+ };
64
+ readonly obligation: {
65
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
66
+ readonly id: string;
67
+ readonly revision: number;
68
+ readonly digest: string;
69
+ };
70
+ readonly artifact: {
71
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
72
+ readonly id: string;
73
+ readonly revision: number;
74
+ readonly digest: string;
75
+ };
76
+ readonly artifactDigest: string;
77
+ readonly policy: {
78
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
79
+ readonly id: string;
80
+ readonly revision: number;
81
+ readonly digest: string;
82
+ };
83
+ readonly evidence: readonly {
84
+ readonly id: string;
85
+ readonly digest: string;
86
+ readonly event: {
87
+ readonly eventId: string;
88
+ readonly digest: string;
89
+ } | null;
90
+ }[];
91
+ };
92
+ readonly decision: "accept" | "reject";
93
+ }>>;
94
+ conflicts: {
95
+ readonly kind: "event" | "receipt";
96
+ readonly id: string;
97
+ readonly digests: readonly string[];
98
+ readonly affectedObligations: readonly {
99
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
100
+ readonly id: string;
101
+ readonly revision: number;
102
+ readonly digest: string;
103
+ }[];
104
+ }[];
105
+ };
106
+ /** @internal Conditional binding proof, not authentication. Only the separately supplied, validated
107
+ * host authority is a TCB input. No wire label, event, receipt-shaped payload or environment is trust. */
108
+ export declare function projectWorkAcceptance(index: WorkReplayIndex, structure: ReturnType<typeof resolveWorkSnapshotText>, authority: WorkFrozen<WorkProjectionContext>["authority"], runtime: ReturnType<typeof foldWorkOccurrences>): {
109
+ obligations: {
110
+ readonly binding: {
111
+ readonly intent: {
112
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
113
+ readonly id: string;
114
+ readonly revision: number;
115
+ readonly digest: string;
116
+ };
117
+ readonly obligation: {
118
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
119
+ readonly id: string;
120
+ readonly revision: number;
121
+ readonly digest: string;
122
+ };
123
+ readonly artifact: {
124
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
125
+ readonly id: string;
126
+ readonly revision: number;
127
+ readonly digest: string;
128
+ } | null;
129
+ readonly policy: {
130
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
131
+ readonly id: string;
132
+ readonly revision: number;
133
+ readonly digest: string;
134
+ };
135
+ };
136
+ readonly acceptance: import("./work-ledger-types.ts").WorkAcceptanceState;
137
+ readonly artifactCoverage: {
138
+ readonly state: WorkAvailability | "unselected";
139
+ readonly items: readonly {
140
+ readonly kind: "artifact" | "evidence";
141
+ readonly identity: {
142
+ readonly id: string;
143
+ readonly digest: string;
144
+ };
145
+ readonly state: WorkAvailability;
146
+ }[];
147
+ };
148
+ readonly evidenceCoverage: {
149
+ readonly state: WorkAvailability | "unselected";
150
+ readonly items: readonly {
151
+ readonly kind: "artifact" | "evidence";
152
+ readonly identity: {
153
+ readonly id: string;
154
+ readonly digest: string;
155
+ };
156
+ readonly state: WorkAvailability;
157
+ }[];
158
+ };
159
+ readonly claims: readonly {
160
+ readonly eventId: string;
161
+ readonly digest: string;
162
+ }[];
163
+ readonly problems: readonly {
164
+ readonly code: import("./work-ledger-types.ts").WorkResolutionCode;
165
+ readonly reference: {
166
+ readonly type: "revision";
167
+ readonly ref: {
168
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
169
+ readonly id: string;
170
+ readonly revision: number;
171
+ readonly digest: string;
172
+ };
173
+ } | {
174
+ readonly type: "event";
175
+ readonly ref: {
176
+ readonly eventId: string;
177
+ readonly digest: string;
178
+ };
179
+ } | {
180
+ readonly type: "snapshot" | "authority" | "artifact-bytes" | "evidence-bytes";
181
+ readonly ref: {
182
+ readonly id: string;
183
+ readonly digest: string;
184
+ };
185
+ } | {
186
+ readonly type: "execution";
187
+ readonly id: string;
188
+ } | null;
189
+ readonly affectedObligations: readonly {
190
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
191
+ readonly id: string;
192
+ readonly revision: number;
193
+ readonly digest: string;
194
+ }[];
195
+ }[];
196
+ }[];
197
+ claims: {
198
+ readonly claim: {
199
+ readonly eventId: string;
200
+ readonly digest: string;
201
+ };
202
+ readonly obligation: {
203
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
204
+ readonly id: string;
205
+ readonly revision: number;
206
+ readonly digest: string;
207
+ };
208
+ readonly applicability: import("./work-ledger-types.ts").WorkAcceptanceState | "superseded";
209
+ readonly matchedReceiptIds: readonly string[];
210
+ readonly problems: readonly {
211
+ readonly code: import("./work-ledger-types.ts").WorkResolutionCode;
212
+ readonly reference: {
213
+ readonly type: "revision";
214
+ readonly ref: {
215
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
216
+ readonly id: string;
217
+ readonly revision: number;
218
+ readonly digest: string;
219
+ };
220
+ } | {
221
+ readonly type: "event";
222
+ readonly ref: {
223
+ readonly eventId: string;
224
+ readonly digest: string;
225
+ };
226
+ } | {
227
+ readonly type: "snapshot" | "authority" | "artifact-bytes" | "evidence-bytes";
228
+ readonly ref: {
229
+ readonly id: string;
230
+ readonly digest: string;
231
+ };
232
+ } | {
233
+ readonly type: "execution";
234
+ readonly id: string;
235
+ } | null;
236
+ readonly affectedObligations: readonly {
237
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
238
+ readonly id: string;
239
+ readonly revision: number;
240
+ readonly digest: string;
241
+ }[];
242
+ }[];
243
+ }[];
244
+ supersededClaims: number;
245
+ conflicts: {
246
+ readonly kind: "event" | "receipt";
247
+ readonly id: string;
248
+ readonly digests: readonly string[];
249
+ readonly affectedObligations: readonly {
250
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
251
+ readonly id: string;
252
+ readonly revision: number;
253
+ readonly digest: string;
254
+ }[];
255
+ }[];
256
+ problems: {
257
+ readonly code: import("./work-ledger-types.ts").WorkResolutionCode;
258
+ readonly reference: {
259
+ readonly type: "revision";
260
+ readonly ref: {
261
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
262
+ readonly id: string;
263
+ readonly revision: number;
264
+ readonly digest: string;
265
+ };
266
+ } | {
267
+ readonly type: "event";
268
+ readonly ref: {
269
+ readonly eventId: string;
270
+ readonly digest: string;
271
+ };
272
+ } | {
273
+ readonly type: "snapshot" | "authority" | "artifact-bytes" | "evidence-bytes";
274
+ readonly ref: {
275
+ readonly id: string;
276
+ readonly digest: string;
277
+ };
278
+ } | {
279
+ readonly type: "execution";
280
+ readonly id: string;
281
+ } | null;
282
+ readonly affectedObligations: readonly {
283
+ readonly kind: import("./work-ledger-types.ts").RevisionKind;
284
+ readonly id: string;
285
+ readonly revision: number;
286
+ readonly digest: string;
287
+ }[];
288
+ }[];
289
+ progress: {
290
+ accepted: number;
291
+ total: number;
292
+ };
293
+ };
294
+ export {};
295
+ //# sourceMappingURL=work-ledger-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-ledger-projection.d.ts","sourceRoot":"","sources":["../src/work-ledger-projection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAEhE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,KAAK,YAAY,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,UAAU,eAAe;IACvB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,oGAAoG;IACpG,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChE,gGAAgG;IAChG,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACtE,sGAAsG;IACtG,QAAQ,CAAC,eAAe,EAAE;QACxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;KAC5E,CAAC;IACF,uGAAuG;IACvG,QAAQ,CAAC,eAAe,EAAE,SAAS,YAAY,EAAE,CAAC;CACnD;AAYD,KAAK,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAMxD,0GAA0G;AAC1G,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAE3H;AACD,4FAA4F;AAC5F,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,UAAU,CAAC,QAAQ,CAAC,EAAE,CAEzH;AAUD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAiDjE;AAYD,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa1F;AAED;0GAC0G;AAC1G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,EACjH,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6G3G"}