pi-daddy 0.28.0 → 0.32.1

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 (1012) hide show
  1. package/CHANGELOG.md +108 -124
  2. package/README.md +18 -896
  3. package/THIRD_PARTY_NOTICES.md +1 -1
  4. package/contracts/ledger-record/v1/README.md +44 -0
  5. package/contracts/ledger-record/v1/fixtures/child-lifecycle.json +45 -0
  6. package/contracts/ledger-record/v1/fixtures/ledger-record.jsonl +3 -0
  7. package/contracts/ledger-record/v1/governance-event.schema.json +747 -0
  8. package/contracts/ledger-record/v1/record.schema.json +91 -0
  9. package/dist/cli.d.ts +10 -4
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +120 -106
  12. package/dist/cli.js.map +1 -1
  13. package/dist/executors/activity-session.d.ts +12 -0
  14. package/dist/executors/activity-session.d.ts.map +1 -0
  15. package/dist/executors/activity-session.js +43 -0
  16. package/dist/executors/activity-session.js.map +1 -0
  17. package/dist/executors/executor.d.ts +39 -0
  18. package/dist/executors/executor.d.ts.map +1 -0
  19. package/dist/executors/executor.js +95 -0
  20. package/dist/executors/executor.js.map +1 -0
  21. package/dist/executors/herdr-cli.d.ts +78 -0
  22. package/dist/executors/herdr-cli.d.ts.map +1 -0
  23. package/dist/executors/herdr-cli.js +114 -0
  24. package/dist/executors/herdr-cli.js.map +1 -0
  25. package/dist/executors/herdr-name.d.ts.map +1 -0
  26. package/dist/executors/herdr-name.js.map +1 -0
  27. package/dist/executors/herdr-pi-lifecycle.d.ts.map +1 -0
  28. package/dist/executors/herdr-pi-lifecycle.js +22 -0
  29. package/dist/executors/herdr-pi-lifecycle.js.map +1 -0
  30. package/dist/executors/herdr-poll.d.ts +140 -0
  31. package/dist/executors/herdr-poll.d.ts.map +1 -0
  32. package/dist/executors/herdr-poll.js +252 -0
  33. package/dist/executors/herdr-poll.js.map +1 -0
  34. package/dist/executors/herdr-stage.d.ts +40 -0
  35. package/dist/executors/herdr-stage.d.ts.map +1 -0
  36. package/dist/executors/herdr-stage.js +54 -0
  37. package/dist/executors/herdr-stage.js.map +1 -0
  38. package/dist/executors/herdr-start.d.ts.map +1 -0
  39. package/dist/executors/herdr-start.js.map +1 -0
  40. package/dist/executors/native-session-target.d.ts +9 -0
  41. package/dist/executors/native-session-target.d.ts.map +1 -0
  42. package/dist/executors/native-session-target.js +30 -0
  43. package/dist/executors/native-session-target.js.map +1 -0
  44. package/dist/executors/pane-reaper.d.ts +111 -0
  45. package/dist/executors/pane-reaper.d.ts.map +1 -0
  46. package/dist/executors/pane-reaper.js +242 -0
  47. package/dist/executors/pane-reaper.js.map +1 -0
  48. package/dist/executors/process-activity.d.ts +3 -0
  49. package/dist/executors/process-activity.d.ts.map +1 -0
  50. package/dist/executors/process-activity.js +59 -0
  51. package/dist/executors/process-activity.js.map +1 -0
  52. package/dist/executors/run-herdr.d.ts +122 -0
  53. package/dist/executors/run-herdr.d.ts.map +1 -0
  54. package/dist/executors/run-herdr.js +341 -0
  55. package/dist/executors/run-herdr.js.map +1 -0
  56. package/dist/executors/vendor/herdr-pi-lifecycle.d.ts.map +1 -0
  57. package/dist/executors/vendor/herdr-pi-lifecycle.js.map +1 -0
  58. package/dist/governance/approval-prompt.d.ts +119 -0
  59. package/dist/governance/approval-prompt.d.ts.map +1 -0
  60. package/dist/governance/approval-prompt.js +133 -0
  61. package/dist/governance/approval-prompt.js.map +1 -0
  62. package/dist/governance/approval-store.d.ts +149 -0
  63. package/dist/governance/approval-store.d.ts.map +1 -0
  64. package/dist/governance/approval-store.js +309 -0
  65. package/dist/governance/approval-store.js.map +1 -0
  66. package/dist/governance/execution-retention.d.ts +90 -0
  67. package/dist/governance/execution-retention.d.ts.map +1 -0
  68. package/dist/governance/execution-retention.js +317 -0
  69. package/dist/governance/execution-retention.js.map +1 -0
  70. package/dist/governance/file-lock.d.ts.map +1 -0
  71. package/dist/governance/file-lock.js +205 -0
  72. package/dist/governance/file-lock.js.map +1 -0
  73. package/dist/governance/finalization.d.ts.map +1 -0
  74. package/dist/governance/finalization.js.map +1 -0
  75. package/dist/governance/grant-store.d.ts +96 -0
  76. package/dist/governance/grant-store.d.ts.map +1 -0
  77. package/dist/governance/grant-store.js +186 -0
  78. package/dist/governance/grant-store.js.map +1 -0
  79. package/dist/governance/init.d.ts +129 -0
  80. package/dist/governance/init.d.ts.map +1 -0
  81. package/dist/governance/init.js +360 -0
  82. package/dist/governance/init.js.map +1 -0
  83. package/dist/governance/lease-helper.d.ts.map +1 -0
  84. package/dist/governance/lease-helper.js +121 -0
  85. package/dist/governance/lease-helper.js.map +1 -0
  86. package/dist/governance/lease-record.d.ts +90 -0
  87. package/dist/governance/lease-record.d.ts.map +1 -0
  88. package/dist/governance/lease-record.js.map +1 -0
  89. package/dist/governance/ledger-events.d.ts +111 -0
  90. package/dist/governance/ledger-events.d.ts.map +1 -0
  91. package/dist/governance/ledger-events.js +129 -0
  92. package/dist/governance/ledger-events.js.map +1 -0
  93. package/dist/governance/ledger-report.d.ts +134 -0
  94. package/dist/governance/ledger-report.d.ts.map +1 -0
  95. package/dist/governance/ledger-report.js +294 -0
  96. package/dist/governance/ledger-report.js.map +1 -0
  97. package/dist/governance/ledger-v3-validation.d.ts +21 -0
  98. package/dist/governance/ledger-v3-validation.d.ts.map +1 -0
  99. package/dist/governance/ledger-v3-validation.js +353 -0
  100. package/dist/governance/ledger-v3-validation.js.map +1 -0
  101. package/dist/governance/ledger.d.ts +258 -0
  102. package/dist/governance/ledger.d.ts.map +1 -0
  103. package/dist/governance/ledger.js +201 -0
  104. package/dist/governance/ledger.js.map +1 -0
  105. package/dist/governance/native-session.d.ts +59 -0
  106. package/dist/governance/native-session.d.ts.map +1 -0
  107. package/dist/governance/native-session.js +208 -0
  108. package/dist/governance/native-session.js.map +1 -0
  109. package/dist/governance/record.d.ts +65 -0
  110. package/dist/governance/record.d.ts.map +1 -0
  111. package/dist/governance/record.js +259 -0
  112. package/dist/governance/record.js.map +1 -0
  113. package/dist/governance/retention-contract.d.ts.map +1 -0
  114. package/dist/governance/retention-contract.js +187 -0
  115. package/dist/governance/retention-contract.js.map +1 -0
  116. package/dist/governance/retention-json.d.ts.map +1 -0
  117. package/dist/governance/retention-json.js.map +1 -0
  118. package/dist/governance/workspace-lease.d.ts +40 -0
  119. package/dist/governance/workspace-lease.d.ts.map +1 -0
  120. package/dist/governance/workspace-lease.js +357 -0
  121. package/dist/governance/workspace-lease.js.map +1 -0
  122. package/dist/index.d.ts +59 -42
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +61 -42
  125. package/dist/index.js.map +1 -1
  126. package/dist/kernel/approval.d.ts +241 -0
  127. package/dist/kernel/approval.d.ts.map +1 -0
  128. package/dist/kernel/approval.js +270 -0
  129. package/dist/kernel/approval.js.map +1 -0
  130. package/dist/kernel/capabilities.d.ts +136 -0
  131. package/dist/kernel/capabilities.d.ts.map +1 -0
  132. package/dist/kernel/capabilities.js +199 -0
  133. package/dist/kernel/capabilities.js.map +1 -0
  134. package/dist/kernel/catalog.d.ts +125 -0
  135. package/dist/kernel/catalog.d.ts.map +1 -0
  136. package/dist/kernel/catalog.js +338 -0
  137. package/dist/kernel/catalog.js.map +1 -0
  138. package/dist/kernel/chain.d.ts.map +1 -0
  139. package/dist/kernel/chain.js.map +1 -0
  140. package/dist/kernel/correlation.d.ts.map +1 -0
  141. package/dist/kernel/correlation.js +267 -0
  142. package/dist/kernel/correlation.js.map +1 -0
  143. package/dist/kernel/definitions.d.ts.map +1 -0
  144. package/dist/kernel/definitions.js +164 -0
  145. package/dist/kernel/definitions.js.map +1 -0
  146. package/dist/kernel/delegate-types.d.ts +160 -0
  147. package/dist/kernel/delegate-types.d.ts.map +1 -0
  148. package/dist/kernel/delegate-types.js +9 -0
  149. package/dist/kernel/delegate-types.js.map +1 -0
  150. package/dist/kernel/delegate.d.ts.map +1 -0
  151. package/dist/kernel/delegate.js +320 -0
  152. package/dist/kernel/delegate.js.map +1 -0
  153. package/dist/kernel/delegation-approval.d.ts.map +1 -0
  154. package/dist/kernel/delegation-approval.js +93 -0
  155. package/dist/kernel/delegation-approval.js.map +1 -0
  156. package/dist/kernel/env-names.d.ts +51 -0
  157. package/dist/kernel/env-names.d.ts.map +1 -0
  158. package/dist/kernel/env-names.js +112 -0
  159. package/dist/kernel/env-names.js.map +1 -0
  160. package/dist/kernel/execution-id.d.ts.map +1 -0
  161. package/dist/kernel/execution-id.js.map +1 -0
  162. package/dist/kernel/fanout.d.ts.map +1 -0
  163. package/dist/kernel/fanout.js +93 -0
  164. package/dist/kernel/fanout.js.map +1 -0
  165. package/dist/kernel/grant-env.d.ts +118 -0
  166. package/dist/kernel/grant-env.d.ts.map +1 -0
  167. package/dist/kernel/grant-env.js +104 -0
  168. package/dist/kernel/grant-env.js.map +1 -0
  169. package/dist/kernel/ledger-identifiers.d.ts.map +1 -0
  170. package/dist/kernel/ledger-identifiers.js.map +1 -0
  171. package/dist/kernel/model-preflight.d.ts +13 -0
  172. package/dist/kernel/model-preflight.d.ts.map +1 -0
  173. package/dist/kernel/model-preflight.js +30 -0
  174. package/dist/kernel/model-preflight.js.map +1 -0
  175. package/dist/kernel/pi-tools.d.ts.map +1 -0
  176. package/dist/kernel/pi-tools.js +29 -0
  177. package/dist/kernel/pi-tools.js.map +1 -0
  178. package/dist/kernel/progress.d.ts.map +1 -0
  179. package/dist/kernel/progress.js.map +1 -0
  180. package/dist/kernel/project-paths.d.ts +43 -0
  181. package/dist/kernel/project-paths.d.ts.map +1 -0
  182. package/dist/kernel/project-paths.js +81 -0
  183. package/dist/kernel/project-paths.js.map +1 -0
  184. package/dist/kernel/propagation.d.ts +195 -0
  185. package/dist/kernel/propagation.d.ts.map +1 -0
  186. package/dist/kernel/propagation.js +275 -0
  187. package/dist/kernel/propagation.js.map +1 -0
  188. package/dist/kernel/refusals.d.ts +16 -0
  189. package/dist/kernel/refusals.d.ts.map +1 -0
  190. package/dist/kernel/refusals.js +53 -0
  191. package/dist/kernel/refusals.js.map +1 -0
  192. package/dist/kernel/resolve.d.ts +120 -0
  193. package/dist/kernel/resolve.d.ts.map +1 -0
  194. package/dist/kernel/resolve.js +201 -0
  195. package/dist/kernel/resolve.js.map +1 -0
  196. package/dist/kernel/routing-authority.d.ts +71 -0
  197. package/dist/kernel/routing-authority.d.ts.map +1 -0
  198. package/dist/kernel/routing-authority.js +100 -0
  199. package/dist/kernel/routing-authority.js.map +1 -0
  200. package/dist/kernel/run-child.d.ts +111 -0
  201. package/dist/kernel/run-child.d.ts.map +1 -0
  202. package/dist/kernel/run-child.js +324 -0
  203. package/dist/kernel/run-child.js.map +1 -0
  204. package/dist/kernel/skill-packages.d.ts +116 -0
  205. package/dist/kernel/skill-packages.d.ts.map +1 -0
  206. package/dist/kernel/skill-packages.js +300 -0
  207. package/dist/kernel/skill-packages.js.map +1 -0
  208. package/dist/kernel/skill-resources.d.ts.map +1 -0
  209. package/dist/kernel/skill-resources.js +56 -0
  210. package/dist/kernel/skill-resources.js.map +1 -0
  211. package/dist/kernel/spawn.d.ts +60 -0
  212. package/dist/kernel/spawn.d.ts.map +1 -0
  213. package/dist/kernel/spawn.js +116 -0
  214. package/dist/kernel/spawn.js.map +1 -0
  215. package/dist/kernel/workspace.d.ts +51 -0
  216. package/dist/kernel/workspace.d.ts.map +1 -0
  217. package/dist/kernel/workspace.js +223 -0
  218. package/dist/kernel/workspace.js.map +1 -0
  219. package/dist/products/activity-timeline.d.ts +126 -0
  220. package/dist/products/activity-timeline.d.ts.map +1 -0
  221. package/dist/products/activity-timeline.js +542 -0
  222. package/dist/products/activity-timeline.js.map +1 -0
  223. package/dist/products/dashboard-cli.d.ts +26 -0
  224. package/dist/products/dashboard-cli.d.ts.map +1 -0
  225. package/dist/products/dashboard-cli.js +224 -0
  226. package/dist/products/dashboard-cli.js.map +1 -0
  227. package/dist/products/dashboard-display-controls.d.ts +17 -0
  228. package/dist/products/dashboard-display-controls.d.ts.map +1 -0
  229. package/dist/products/dashboard-display-controls.js +38 -0
  230. package/dist/products/dashboard-display-controls.js.map +1 -0
  231. package/dist/products/dashboard-handshake.d.ts +42 -0
  232. package/dist/products/dashboard-handshake.d.ts.map +1 -0
  233. package/dist/products/dashboard-handshake.js +158 -0
  234. package/dist/products/dashboard-handshake.js.map +1 -0
  235. package/dist/products/dashboard-herdr.d.ts +55 -0
  236. package/dist/products/dashboard-herdr.d.ts.map +1 -0
  237. package/dist/products/dashboard-herdr.js +324 -0
  238. package/dist/products/dashboard-herdr.js.map +1 -0
  239. package/dist/products/dashboard-projection.d.ts +62 -0
  240. package/dist/products/dashboard-projection.d.ts.map +1 -0
  241. package/dist/products/dashboard-projection.js +305 -0
  242. package/dist/products/dashboard-projection.js.map +1 -0
  243. package/dist/products/dashboard-render.d.ts.map +1 -0
  244. package/dist/products/dashboard-render.js +208 -0
  245. package/dist/products/dashboard-render.js.map +1 -0
  246. package/extensions/activity-timeline.ts +134 -28
  247. package/extensions/approval-banking.ts +3 -3
  248. package/extensions/approvals.ts +18 -12
  249. package/extensions/chain-approval-facts.ts +9 -6
  250. package/extensions/chain-ledger.ts +4 -4
  251. package/extensions/chain-plan.ts +6 -6
  252. package/extensions/correlation-shape.ts +42 -33
  253. package/extensions/delegate-chain.ts +93 -45
  254. package/extensions/delegation-authority.ts +7 -3
  255. package/extensions/delegation-ledger.ts +2 -2
  256. package/extensions/delegation-native.ts +24 -7
  257. package/extensions/delegation.ts +91 -80
  258. package/extensions/execute-child.ts +440 -293
  259. package/extensions/execution-occurrence.ts +2 -2
  260. package/extensions/executor-session.ts +5 -5
  261. package/extensions/fanout-outcome.ts +8 -6
  262. package/extensions/grant-store-refusal.ts +24 -12
  263. package/extensions/grants-command.ts +42 -34
  264. package/extensions/grants-connected-command.ts +29 -15
  265. package/extensions/grants.ts +73 -73
  266. package/extensions/init-command.ts +18 -12
  267. package/extensions/reload-environment.ts +12 -5
  268. package/extensions/run-delegation.ts +29 -19
  269. package/extensions/session-environment.ts +25 -11
  270. package/extensions/session-report.ts +61 -12
  271. package/extensions/session.ts +58 -34
  272. package/extensions/spawn-summary.ts +5 -5
  273. package/extensions/stored-grant-session.ts +5 -5
  274. package/extensions/tripwire.ts +1 -1
  275. package/extensions/workspace-runtime.ts +26 -24
  276. package/herdr-plugin/herdr-plugin.toml +1 -1
  277. package/package.json +4 -211
  278. package/src/cli.ts +149 -92
  279. package/src/executors/activity-session.ts +54 -0
  280. package/src/executors/executor.ts +123 -0
  281. package/src/executors/herdr-cli.ts +132 -0
  282. package/src/executors/herdr-pi-lifecycle.ts +21 -0
  283. package/src/executors/herdr-poll.ts +305 -0
  284. package/src/executors/herdr-stage.ts +55 -0
  285. package/src/executors/native-session-target.ts +31 -0
  286. package/src/executors/pane-reaper.ts +270 -0
  287. package/src/executors/process-activity.ts +54 -0
  288. package/src/executors/run-herdr.ts +426 -0
  289. package/src/governance/approval-prompt.ts +225 -0
  290. package/src/governance/approval-store.ts +385 -0
  291. package/src/governance/execution-retention.ts +372 -0
  292. package/src/governance/file-lock.ts +210 -0
  293. package/src/governance/finalization.ts +82 -0
  294. package/src/governance/grant-store.ts +235 -0
  295. package/src/governance/init.ts +447 -0
  296. package/src/governance/lease-helper.ts +124 -0
  297. package/src/governance/lease-record.ts +131 -0
  298. package/src/governance/ledger-events.ts +222 -0
  299. package/src/governance/ledger-report.ts +396 -0
  300. package/src/governance/ledger-v3-validation.ts +384 -0
  301. package/src/governance/ledger.ts +419 -0
  302. package/src/governance/native-session.ts +264 -0
  303. package/src/governance/record.ts +294 -0
  304. package/src/governance/retention-contract.ts +201 -0
  305. package/src/governance/retention-json.ts +24 -0
  306. package/src/governance/workspace-lease.ts +429 -0
  307. package/src/index.ts +82 -92
  308. package/src/kernel/approval.ts +406 -0
  309. package/src/kernel/capabilities.ts +216 -0
  310. package/src/kernel/catalog.ts +373 -0
  311. package/src/kernel/correlation.ts +351 -0
  312. package/src/kernel/definitions.ts +215 -0
  313. package/src/kernel/delegate-types.ts +162 -0
  314. package/src/kernel/delegate.ts +375 -0
  315. package/src/kernel/delegation-approval.ts +126 -0
  316. package/src/kernel/env-names.ts +119 -0
  317. package/src/kernel/fanout.ts +106 -0
  318. package/src/kernel/grant-env.ts +174 -0
  319. package/src/kernel/model-preflight.ts +44 -0
  320. package/src/kernel/pi-tools.ts +32 -0
  321. package/src/kernel/project-paths.ts +97 -0
  322. package/src/kernel/propagation.ts +341 -0
  323. package/src/kernel/refusals.ts +64 -0
  324. package/src/kernel/resolve.ts +258 -0
  325. package/src/kernel/routing-authority.ts +121 -0
  326. package/src/kernel/run-child.ts +418 -0
  327. package/src/kernel/skill-packages.ts +329 -0
  328. package/src/kernel/skill-resources.ts +64 -0
  329. package/src/kernel/spawn.ts +156 -0
  330. package/src/kernel/workspace.ts +336 -0
  331. package/src/products/activity-timeline.ts +679 -0
  332. package/src/products/dashboard-cli.ts +250 -0
  333. package/src/products/dashboard-display-controls.ts +44 -0
  334. package/src/products/dashboard-handshake.ts +222 -0
  335. package/src/products/dashboard-herdr.ts +427 -0
  336. package/src/products/dashboard-projection.ts +389 -0
  337. package/src/products/dashboard-render.ts +260 -0
  338. package/PRODUCT-GUIDE.md +0 -155
  339. package/REQUIREMENTS.md +0 -41
  340. package/contracts/daily-view/v1/README.md +0 -114
  341. package/contracts/daily-view/v1/fixtures/view.json +0 -525
  342. package/contracts/daily-view/v1/fixtures/view.txt +0 -75
  343. package/contracts/daily-view/v1/fixtures/work.jsonl +0 -17
  344. package/contracts/daily-view/v1/p03/README.md +0 -26
  345. package/contracts/daily-view/v1/p03/fixtures/retained-executions.json +0 -241
  346. package/contracts/daily-view/v1/p03/projection.schema.json +0 -194
  347. package/contracts/daily-view/v1/p03/provenance.json +0 -21
  348. package/contracts/dashboard-host/v1/README.md +0 -176
  349. package/contracts/debrief/v1/README.md +0 -146
  350. package/contracts/debrief/v1/intervention/README.md +0 -32
  351. package/contracts/debrief/v1/intervention/fixtures/artifact-3ee11136beb864f518252e5024dae9197421fbf97b6e981d3243c782b5c44bd0.txt +0 -1
  352. package/contracts/debrief/v1/intervention/fixtures/artifact-58905d872dd3c54a9705f67b05fa82edbad7af6476ae8993faf1a7b9fadfb905.txt +0 -1
  353. package/contracts/debrief/v1/intervention/fixtures/assessment.json +0 -29
  354. package/contracts/debrief/v1/intervention/fixtures/blind-view.json +0 -20
  355. package/contracts/debrief/v1/intervention/fixtures/choice.json +0 -7
  356. package/contracts/debrief/v1/intervention/fixtures/manifest.json +0 -57
  357. package/contracts/debrief/v1/intervention/fixtures/reveal.json +0 -39
  358. package/contracts/debrief/v1/provenance.json +0 -89
  359. package/contracts/debrief/v1/work-capture/README.md +0 -38
  360. package/contracts/debrief/v1/work-capture/fixtures/batch.json +0 -17
  361. package/contracts/debrief/v1/work-capture/fixtures/cases.json +0 -184
  362. package/contracts/debrief/v1/work-capture/fixtures/review.json +0 -184
  363. package/contracts/debrief/v1/work-capture/review-request.schema.json +0 -41
  364. package/contracts/debrief/v1/work-capture/work-case.schema.json +0 -190
  365. package/contracts/debrief/v2/README.md +0 -71
  366. package/contracts/debrief/v2/input-pin.json +0 -66
  367. package/contracts/debrief/v2/intervention-upstream.md +0 -40
  368. package/contracts/debrief/v2/work-signals-upstream.md +0 -22
  369. package/contracts/dispatch-control/v1/README.md +0 -109
  370. package/contracts/dispatch-control/v1/request.schema.json +0 -19
  371. package/contracts/effect-profile/v1/README.md +0 -124
  372. package/contracts/execution-retention/v1/README.md +0 -109
  373. package/contracts/execution-retention/v2/README.md +0 -148
  374. package/contracts/execution-retention/v2/fixtures/interrupted-native-bytes.json +0 -91
  375. package/contracts/execution-retention/v2/fixtures/missing-native-session.json +0 -91
  376. package/contracts/execution-retention/v2/fixtures/native-file-unknown-branch.json +0 -91
  377. package/contracts/execution-retention/v2/fixtures/native-id-without-bytes.json +0 -91
  378. package/contracts/execution-retention/v2/fixtures/native-live-branch.json +0 -90
  379. package/contracts/execution-retention/v2/fixtures/replaced-native-session.json +0 -92
  380. package/contracts/execution-retention/v2/fixtures/result-82c620cdfeb8ca6b858cf653d7f5e2eedca5315d6244216d60e8b36f03223d6a.bin +0 -1
  381. package/contracts/execution-retention/v2/fixtures/session-2ec1f134bc739984434f7fca689e1c3d1c39fce2dcadae709e9b6faedfcc4ac7.bin +0 -3
  382. package/contracts/execution-retention/v2/fixtures/session-9bdb4bd16a901da31580acf056bda525225259e15ec409e0410480109011772f.bin +0 -3
  383. package/contracts/execution-retention/v2/manifest.schema.json +0 -858
  384. package/contracts/experiment/v1/README.md +0 -164
  385. package/contracts/factory-order/v1/README.md +0 -151
  386. package/contracts/factory-order/v1/adoption-pin.json +0 -8
  387. package/contracts/intent-control/v1/README.md +0 -135
  388. package/contracts/intent-control/v1/request.schema.json +0 -1096
  389. package/contracts/intent-control/v2/README.md +0 -34
  390. package/contracts/intent-control/v2/request.schema.json +0 -1070
  391. package/contracts/ledger/v2/README.md +0 -59
  392. package/contracts/ledger/v2/fixtures/capability-decision.json +0 -95
  393. package/contracts/ledger/v2/fixtures/check-receipt.json +0 -40
  394. package/contracts/ledger/v2/fixtures/child-lifecycle.json +0 -42
  395. package/contracts/ledger/v2/fixtures/workspace-lease.json +0 -41
  396. package/contracts/ledger/v2/ledger-event.schema.json +0 -633
  397. package/contracts/ledger/v3/README.md +0 -36
  398. package/contracts/ledger/v3/fixtures/check-receipt.json +0 -41
  399. package/contracts/ledger/v3/fixtures/child-lifecycle.json +0 -44
  400. package/contracts/ledger/v3/fixtures/workflow-fact.json +0 -40
  401. package/contracts/ledger/v3/ledger-event.schema.json +0 -955
  402. package/contracts/ledger/v4/README.md +0 -241
  403. package/contracts/ledger/v4/fixtures/layout-options.json +0 -428
  404. package/contracts/ledger/v4/fixtures/work-acceptance.json +0 -57
  405. package/contracts/ledger/v4/fixtures/work-occurrence.json +0 -44
  406. package/contracts/ledger/v4/fixtures/work-revision.json +0 -26
  407. package/contracts/ledger/v4/fixtures/work-snapshot.json +0 -73
  408. package/contracts/ledger/v4/ledger-event.schema.json +0 -162
  409. package/contracts/ordinary-control/v1/README.md +0 -59
  410. package/contracts/producer-ipc/v1/README.md +0 -137
  411. package/dist/activity-timeline.d.ts +0 -109
  412. package/dist/activity-timeline.d.ts.map +0 -1
  413. package/dist/activity-timeline.js +0 -208
  414. package/dist/activity-timeline.js.map +0 -1
  415. package/dist/approval-prompt.d.ts +0 -119
  416. package/dist/approval-prompt.d.ts.map +0 -1
  417. package/dist/approval-prompt.js +0 -133
  418. package/dist/approval-prompt.js.map +0 -1
  419. package/dist/approval-store.d.ts +0 -149
  420. package/dist/approval-store.d.ts.map +0 -1
  421. package/dist/approval-store.js +0 -314
  422. package/dist/approval-store.js.map +0 -1
  423. package/dist/approval.d.ts +0 -241
  424. package/dist/approval.d.ts.map +0 -1
  425. package/dist/approval.js +0 -268
  426. package/dist/approval.js.map +0 -1
  427. package/dist/capabilities.d.ts +0 -136
  428. package/dist/capabilities.d.ts.map +0 -1
  429. package/dist/capabilities.js +0 -203
  430. package/dist/capabilities.js.map +0 -1
  431. package/dist/catalog.d.ts +0 -98
  432. package/dist/catalog.d.ts.map +0 -1
  433. package/dist/catalog.js +0 -273
  434. package/dist/catalog.js.map +0 -1
  435. package/dist/chain.d.ts.map +0 -1
  436. package/dist/chain.js.map +0 -1
  437. package/dist/check-runner.d.ts +0 -66
  438. package/dist/check-runner.d.ts.map +0 -1
  439. package/dist/check-runner.js +0 -275
  440. package/dist/check-runner.js.map +0 -1
  441. package/dist/control-journal.d.ts +0 -20
  442. package/dist/control-journal.d.ts.map +0 -1
  443. package/dist/control-journal.js +0 -73
  444. package/dist/control-journal.js.map +0 -1
  445. package/dist/correlation.d.ts.map +0 -1
  446. package/dist/correlation.js +0 -231
  447. package/dist/correlation.js.map +0 -1
  448. package/dist/daily-dashboard-host.d.ts +0 -136
  449. package/dist/daily-dashboard-host.d.ts.map +0 -1
  450. package/dist/daily-dashboard-host.js +0 -164
  451. package/dist/daily-dashboard-host.js.map +0 -1
  452. package/dist/daily-panel.d.ts +0 -36
  453. package/dist/daily-panel.d.ts.map +0 -1
  454. package/dist/daily-panel.js +0 -84
  455. package/dist/daily-panel.js.map +0 -1
  456. package/dist/daily-view-input.d.ts +0 -44
  457. package/dist/daily-view-input.d.ts.map +0 -1
  458. package/dist/daily-view-input.js +0 -68
  459. package/dist/daily-view-input.js.map +0 -1
  460. package/dist/daily-view-render.d.ts +0 -5
  461. package/dist/daily-view-render.d.ts.map +0 -1
  462. package/dist/daily-view-render.js +0 -42
  463. package/dist/daily-view-render.js.map +0 -1
  464. package/dist/daily-view.d.ts +0 -77
  465. package/dist/daily-view.d.ts.map +0 -1
  466. package/dist/daily-view.js +0 -176
  467. package/dist/daily-view.js.map +0 -1
  468. package/dist/dashboard-cli.d.ts +0 -54
  469. package/dist/dashboard-cli.d.ts.map +0 -1
  470. package/dist/dashboard-cli.js +0 -367
  471. package/dist/dashboard-cli.js.map +0 -1
  472. package/dist/dashboard-display-controls.d.ts +0 -15
  473. package/dist/dashboard-display-controls.d.ts.map +0 -1
  474. package/dist/dashboard-display-controls.js +0 -34
  475. package/dist/dashboard-display-controls.js.map +0 -1
  476. package/dist/dashboard-handshake.d.ts +0 -42
  477. package/dist/dashboard-handshake.d.ts.map +0 -1
  478. package/dist/dashboard-handshake.js +0 -147
  479. package/dist/dashboard-handshake.js.map +0 -1
  480. package/dist/dashboard-harness.d.ts +0 -22
  481. package/dist/dashboard-harness.d.ts.map +0 -1
  482. package/dist/dashboard-harness.js +0 -89
  483. package/dist/dashboard-harness.js.map +0 -1
  484. package/dist/dashboard-herdr.d.ts +0 -55
  485. package/dist/dashboard-herdr.d.ts.map +0 -1
  486. package/dist/dashboard-herdr.js +0 -293
  487. package/dist/dashboard-herdr.js.map +0 -1
  488. package/dist/dashboard-host-contract.d.ts +0 -127
  489. package/dist/dashboard-host-contract.d.ts.map +0 -1
  490. package/dist/dashboard-host-contract.js +0 -14
  491. package/dist/dashboard-host-contract.js.map +0 -1
  492. package/dist/dashboard-host-transport.d.ts +0 -16
  493. package/dist/dashboard-host-transport.d.ts.map +0 -1
  494. package/dist/dashboard-host-transport.js +0 -127
  495. package/dist/dashboard-host-transport.js.map +0 -1
  496. package/dist/dashboard-host.d.ts +0 -239
  497. package/dist/dashboard-host.d.ts.map +0 -1
  498. package/dist/dashboard-host.js +0 -474
  499. package/dist/dashboard-host.js.map +0 -1
  500. package/dist/dashboard-menu.d.ts +0 -16
  501. package/dist/dashboard-menu.d.ts.map +0 -1
  502. package/dist/dashboard-menu.js +0 -33
  503. package/dist/dashboard-menu.js.map +0 -1
  504. package/dist/dashboard-observation.d.ts +0 -28
  505. package/dist/dashboard-observation.d.ts.map +0 -1
  506. package/dist/dashboard-observation.js +0 -87
  507. package/dist/dashboard-observation.js.map +0 -1
  508. package/dist/dashboard-projection.d.ts +0 -73
  509. package/dist/dashboard-projection.d.ts.map +0 -1
  510. package/dist/dashboard-projection.js +0 -294
  511. package/dist/dashboard-projection.js.map +0 -1
  512. package/dist/dashboard-render.d.ts.map +0 -1
  513. package/dist/dashboard-render.js +0 -212
  514. package/dist/dashboard-render.js.map +0 -1
  515. package/dist/debrief-contract.d.ts +0 -65
  516. package/dist/debrief-contract.d.ts.map +0 -1
  517. package/dist/debrief-contract.js +0 -151
  518. package/dist/debrief-contract.js.map +0 -1
  519. package/dist/debrief-fixture.d.ts +0 -16
  520. package/dist/debrief-fixture.d.ts.map +0 -1
  521. package/dist/debrief-fixture.js +0 -41
  522. package/dist/debrief-fixture.js.map +0 -1
  523. package/dist/debrief-host.d.ts +0 -59
  524. package/dist/debrief-host.d.ts.map +0 -1
  525. package/dist/debrief-host.js +0 -49
  526. package/dist/debrief-host.js.map +0 -1
  527. package/dist/debrief-render.d.ts +0 -5
  528. package/dist/debrief-render.d.ts.map +0 -1
  529. package/dist/debrief-render.js +0 -65
  530. package/dist/debrief-render.js.map +0 -1
  531. package/dist/debrief.d.ts +0 -90
  532. package/dist/debrief.d.ts.map +0 -1
  533. package/dist/debrief.js +0 -263
  534. package/dist/debrief.js.map +0 -1
  535. package/dist/definitions.d.ts.map +0 -1
  536. package/dist/definitions.js +0 -164
  537. package/dist/definitions.js.map +0 -1
  538. package/dist/delegate-types.d.ts +0 -154
  539. package/dist/delegate-types.d.ts.map +0 -1
  540. package/dist/delegate-types.js +0 -8
  541. package/dist/delegate-types.js.map +0 -1
  542. package/dist/delegate.d.ts.map +0 -1
  543. package/dist/delegate.js +0 -313
  544. package/dist/delegate.js.map +0 -1
  545. package/dist/delegation-approval.d.ts.map +0 -1
  546. package/dist/delegation-approval.js +0 -94
  547. package/dist/delegation-approval.js.map +0 -1
  548. package/dist/dispatch-control.d.ts +0 -45
  549. package/dist/dispatch-control.d.ts.map +0 -1
  550. package/dist/dispatch-control.js +0 -76
  551. package/dist/dispatch-control.js.map +0 -1
  552. package/dist/effect-profile-runtime.d.ts +0 -40
  553. package/dist/effect-profile-runtime.d.ts.map +0 -1
  554. package/dist/effect-profile-runtime.js +0 -51
  555. package/dist/effect-profile-runtime.js.map +0 -1
  556. package/dist/effect-profile.d.ts +0 -40
  557. package/dist/effect-profile.d.ts.map +0 -1
  558. package/dist/effect-profile.js +0 -152
  559. package/dist/effect-profile.js.map +0 -1
  560. package/dist/execution-id.d.ts.map +0 -1
  561. package/dist/execution-id.js.map +0 -1
  562. package/dist/execution-retention.d.ts +0 -90
  563. package/dist/execution-retention.d.ts.map +0 -1
  564. package/dist/execution-retention.js +0 -247
  565. package/dist/execution-retention.js.map +0 -1
  566. package/dist/executor.d.ts +0 -39
  567. package/dist/executor.d.ts.map +0 -1
  568. package/dist/executor.js +0 -94
  569. package/dist/executor.js.map +0 -1
  570. package/dist/experiment-contract.d.ts +0 -56
  571. package/dist/experiment-contract.d.ts.map +0 -1
  572. package/dist/experiment-contract.js +0 -80
  573. package/dist/experiment-contract.js.map +0 -1
  574. package/dist/experiment-state.d.ts +0 -22
  575. package/dist/experiment-state.d.ts.map +0 -1
  576. package/dist/experiment-state.js +0 -79
  577. package/dist/experiment-state.js.map +0 -1
  578. package/dist/experiment-store.d.ts +0 -30
  579. package/dist/experiment-store.d.ts.map +0 -1
  580. package/dist/experiment-store.js +0 -147
  581. package/dist/experiment-store.js.map +0 -1
  582. package/dist/experiment.d.ts +0 -65
  583. package/dist/experiment.d.ts.map +0 -1
  584. package/dist/experiment.js +0 -362
  585. package/dist/experiment.js.map +0 -1
  586. package/dist/factory-contract.d.ts +0 -79
  587. package/dist/factory-contract.d.ts.map +0 -1
  588. package/dist/factory-contract.js +0 -89
  589. package/dist/factory-contract.js.map +0 -1
  590. package/dist/factory-migration.d.ts +0 -20
  591. package/dist/factory-migration.d.ts.map +0 -1
  592. package/dist/factory-migration.js +0 -55
  593. package/dist/factory-migration.js.map +0 -1
  594. package/dist/factory-order.d.ts +0 -848
  595. package/dist/factory-order.d.ts.map +0 -1
  596. package/dist/factory-order.js +0 -83
  597. package/dist/factory-order.js.map +0 -1
  598. package/dist/factory-registry.d.ts +0 -121
  599. package/dist/factory-registry.d.ts.map +0 -1
  600. package/dist/factory-registry.js +0 -133
  601. package/dist/factory-registry.js.map +0 -1
  602. package/dist/fanout.d.ts.map +0 -1
  603. package/dist/fanout.js +0 -93
  604. package/dist/fanout.js.map +0 -1
  605. package/dist/file-lock.d.ts.map +0 -1
  606. package/dist/file-lock.js +0 -201
  607. package/dist/file-lock.js.map +0 -1
  608. package/dist/finalization.d.ts.map +0 -1
  609. package/dist/finalization.js.map +0 -1
  610. package/dist/git-identity.d.ts +0 -13
  611. package/dist/git-identity.d.ts.map +0 -1
  612. package/dist/git-identity.js +0 -47
  613. package/dist/git-identity.js.map +0 -1
  614. package/dist/grant-env.d.ts +0 -75
  615. package/dist/grant-env.d.ts.map +0 -1
  616. package/dist/grant-env.js +0 -154
  617. package/dist/grant-env.js.map +0 -1
  618. package/dist/grant-store.d.ts +0 -96
  619. package/dist/grant-store.d.ts.map +0 -1
  620. package/dist/grant-store.js +0 -188
  621. package/dist/grant-store.js.map +0 -1
  622. package/dist/herdr-cli.d.ts +0 -78
  623. package/dist/herdr-cli.d.ts.map +0 -1
  624. package/dist/herdr-cli.js +0 -113
  625. package/dist/herdr-cli.js.map +0 -1
  626. package/dist/herdr-name.d.ts.map +0 -1
  627. package/dist/herdr-name.js.map +0 -1
  628. package/dist/herdr-pi-lifecycle.d.ts.map +0 -1
  629. package/dist/herdr-pi-lifecycle.js +0 -22
  630. package/dist/herdr-pi-lifecycle.js.map +0 -1
  631. package/dist/herdr-poll.d.ts +0 -133
  632. package/dist/herdr-poll.d.ts.map +0 -1
  633. package/dist/herdr-poll.js +0 -222
  634. package/dist/herdr-poll.js.map +0 -1
  635. package/dist/herdr-stage.d.ts +0 -40
  636. package/dist/herdr-stage.d.ts.map +0 -1
  637. package/dist/herdr-stage.js +0 -54
  638. package/dist/herdr-stage.js.map +0 -1
  639. package/dist/herdr-start.d.ts.map +0 -1
  640. package/dist/herdr-start.js.map +0 -1
  641. package/dist/init.d.ts +0 -117
  642. package/dist/init.d.ts.map +0 -1
  643. package/dist/init.js +0 -323
  644. package/dist/init.js.map +0 -1
  645. package/dist/intent-application.d.ts +0 -17
  646. package/dist/intent-application.d.ts.map +0 -1
  647. package/dist/intent-application.js +0 -114
  648. package/dist/intent-application.js.map +0 -1
  649. package/dist/intent-control.d.ts +0 -201
  650. package/dist/intent-control.d.ts.map +0 -1
  651. package/dist/intent-control.js +0 -110
  652. package/dist/intent-control.js.map +0 -1
  653. package/dist/intent-scheduling.d.ts +0 -9
  654. package/dist/intent-scheduling.d.ts.map +0 -1
  655. package/dist/intent-scheduling.js +0 -15
  656. package/dist/intent-scheduling.js.map +0 -1
  657. package/dist/learning-connection.d.ts +0 -127
  658. package/dist/learning-connection.d.ts.map +0 -1
  659. package/dist/learning-connection.js +0 -54
  660. package/dist/learning-connection.js.map +0 -1
  661. package/dist/lease-helper.d.ts.map +0 -1
  662. package/dist/lease-helper.js +0 -94
  663. package/dist/lease-helper.js.map +0 -1
  664. package/dist/lease-record.d.ts +0 -90
  665. package/dist/lease-record.d.ts.map +0 -1
  666. package/dist/lease-record.js.map +0 -1
  667. package/dist/ledger-append.d.ts +0 -15
  668. package/dist/ledger-append.d.ts.map +0 -1
  669. package/dist/ledger-append.js +0 -94
  670. package/dist/ledger-append.js.map +0 -1
  671. package/dist/ledger-events.d.ts +0 -131
  672. package/dist/ledger-events.d.ts.map +0 -1
  673. package/dist/ledger-events.js +0 -107
  674. package/dist/ledger-events.js.map +0 -1
  675. package/dist/ledger-identifiers.d.ts.map +0 -1
  676. package/dist/ledger-identifiers.js.map +0 -1
  677. package/dist/ledger-report.d.ts +0 -134
  678. package/dist/ledger-report.d.ts.map +0 -1
  679. package/dist/ledger-report.js +0 -271
  680. package/dist/ledger-report.js.map +0 -1
  681. package/dist/ledger-v3-validation.d.ts +0 -11
  682. package/dist/ledger-v3-validation.d.ts.map +0 -1
  683. package/dist/ledger-v3-validation.js +0 -265
  684. package/dist/ledger-v3-validation.js.map +0 -1
  685. package/dist/ledger.d.ts +0 -242
  686. package/dist/ledger.d.ts.map +0 -1
  687. package/dist/ledger.js +0 -142
  688. package/dist/ledger.js.map +0 -1
  689. package/dist/measured-order.d.ts +0 -249
  690. package/dist/measured-order.d.ts.map +0 -1
  691. package/dist/measured-order.js +0 -309
  692. package/dist/measured-order.js.map +0 -1
  693. package/dist/measured-session.d.ts +0 -97
  694. package/dist/measured-session.d.ts.map +0 -1
  695. package/dist/measured-session.js +0 -134
  696. package/dist/measured-session.js.map +0 -1
  697. package/dist/model-preflight.d.ts +0 -13
  698. package/dist/model-preflight.d.ts.map +0 -1
  699. package/dist/model-preflight.js +0 -29
  700. package/dist/model-preflight.js.map +0 -1
  701. package/dist/native-session-target.d.ts +0 -9
  702. package/dist/native-session-target.d.ts.map +0 -1
  703. package/dist/native-session-target.js +0 -29
  704. package/dist/native-session-target.js.map +0 -1
  705. package/dist/native-session.d.ts +0 -59
  706. package/dist/native-session.d.ts.map +0 -1
  707. package/dist/native-session.js +0 -154
  708. package/dist/native-session.js.map +0 -1
  709. package/dist/order-schedule.d.ts +0 -37
  710. package/dist/order-schedule.d.ts.map +0 -1
  711. package/dist/order-schedule.js +0 -81
  712. package/dist/order-schedule.js.map +0 -1
  713. package/dist/ordinary-children.d.ts +0 -52
  714. package/dist/ordinary-children.d.ts.map +0 -1
  715. package/dist/ordinary-children.js +0 -93
  716. package/dist/ordinary-children.js.map +0 -1
  717. package/dist/pane-reaper.d.ts +0 -111
  718. package/dist/pane-reaper.d.ts.map +0 -1
  719. package/dist/pane-reaper.js +0 -242
  720. package/dist/pane-reaper.js.map +0 -1
  721. package/dist/pi-tools.d.ts.map +0 -1
  722. package/dist/pi-tools.js +0 -21
  723. package/dist/pi-tools.js.map +0 -1
  724. package/dist/producer-ipc-contract.d.ts +0 -29
  725. package/dist/producer-ipc-contract.d.ts.map +0 -1
  726. package/dist/producer-ipc-contract.js +0 -29
  727. package/dist/producer-ipc-contract.js.map +0 -1
  728. package/dist/producer-ipc.d.ts +0 -55
  729. package/dist/producer-ipc.d.ts.map +0 -1
  730. package/dist/producer-ipc.js +0 -143
  731. package/dist/producer-ipc.js.map +0 -1
  732. package/dist/product-files.d.ts +0 -6
  733. package/dist/product-files.d.ts.map +0 -1
  734. package/dist/product-files.js +0 -55
  735. package/dist/product-files.js.map +0 -1
  736. package/dist/progress.d.ts.map +0 -1
  737. package/dist/progress.js.map +0 -1
  738. package/dist/propagation.d.ts +0 -203
  739. package/dist/propagation.d.ts.map +0 -1
  740. package/dist/propagation.js +0 -279
  741. package/dist/propagation.js.map +0 -1
  742. package/dist/refusals.d.ts +0 -16
  743. package/dist/refusals.d.ts.map +0 -1
  744. package/dist/refusals.js +0 -55
  745. package/dist/refusals.js.map +0 -1
  746. package/dist/resolve.d.ts +0 -120
  747. package/dist/resolve.d.ts.map +0 -1
  748. package/dist/resolve.js +0 -211
  749. package/dist/resolve.js.map +0 -1
  750. package/dist/resource-budget.d.ts +0 -334
  751. package/dist/resource-budget.d.ts.map +0 -1
  752. package/dist/resource-budget.js +0 -415
  753. package/dist/resource-budget.js.map +0 -1
  754. package/dist/retention-contract.d.ts.map +0 -1
  755. package/dist/retention-contract.js +0 -104
  756. package/dist/retention-contract.js.map +0 -1
  757. package/dist/retention-json.d.ts.map +0 -1
  758. package/dist/retention-json.js.map +0 -1
  759. package/dist/routing-authority.d.ts +0 -71
  760. package/dist/routing-authority.d.ts.map +0 -1
  761. package/dist/routing-authority.js +0 -100
  762. package/dist/routing-authority.js.map +0 -1
  763. package/dist/run-child.d.ts +0 -87
  764. package/dist/run-child.d.ts.map +0 -1
  765. package/dist/run-child.js +0 -248
  766. package/dist/run-child.js.map +0 -1
  767. package/dist/run-herdr.d.ts +0 -119
  768. package/dist/run-herdr.d.ts.map +0 -1
  769. package/dist/run-herdr.js +0 -335
  770. package/dist/run-herdr.js.map +0 -1
  771. package/dist/skill-packages.d.ts +0 -116
  772. package/dist/skill-packages.d.ts.map +0 -1
  773. package/dist/skill-packages.js +0 -295
  774. package/dist/skill-packages.js.map +0 -1
  775. package/dist/skill-resources.d.ts.map +0 -1
  776. package/dist/skill-resources.js +0 -52
  777. package/dist/skill-resources.js.map +0 -1
  778. package/dist/spawn.d.ts +0 -60
  779. package/dist/spawn.d.ts.map +0 -1
  780. package/dist/spawn.js +0 -116
  781. package/dist/spawn.js.map +0 -1
  782. package/dist/vendor/adoption.d.ts +0 -129
  783. package/dist/vendor/adoption.d.ts.map +0 -1
  784. package/dist/vendor/adoption.js +0 -102
  785. package/dist/vendor/adoption.js.map +0 -1
  786. package/dist/vendor/herdr-pi-lifecycle.d.ts.map +0 -1
  787. package/dist/vendor/herdr-pi-lifecycle.js.map +0 -1
  788. package/dist/work-command.d.ts +0 -32
  789. package/dist/work-command.d.ts.map +0 -1
  790. package/dist/work-command.js +0 -179
  791. package/dist/work-command.js.map +0 -1
  792. package/dist/work-ledger-destination.d.ts +0 -20
  793. package/dist/work-ledger-destination.d.ts.map +0 -1
  794. package/dist/work-ledger-destination.js +0 -131
  795. package/dist/work-ledger-destination.js.map +0 -1
  796. package/dist/work-ledger-json.d.ts +0 -25
  797. package/dist/work-ledger-json.d.ts.map +0 -1
  798. package/dist/work-ledger-json.js +0 -267
  799. package/dist/work-ledger-json.js.map +0 -1
  800. package/dist/work-ledger-occurrences.d.ts +0 -227
  801. package/dist/work-ledger-occurrences.d.ts.map +0 -1
  802. package/dist/work-ledger-occurrences.js +0 -115
  803. package/dist/work-ledger-occurrences.js.map +0 -1
  804. package/dist/work-ledger-projection.d.ts +0 -295
  805. package/dist/work-ledger-projection.d.ts.map +0 -1
  806. package/dist/work-ledger-projection.js +0 -237
  807. package/dist/work-ledger-projection.js.map +0 -1
  808. package/dist/work-ledger-snapshot.d.ts +0 -29
  809. package/dist/work-ledger-snapshot.d.ts.map +0 -1
  810. package/dist/work-ledger-snapshot.js +0 -267
  811. package/dist/work-ledger-snapshot.js.map +0 -1
  812. package/dist/work-ledger-types.d.ts +0 -261
  813. package/dist/work-ledger-types.d.ts.map +0 -1
  814. package/dist/work-ledger-types.js +0 -13
  815. package/dist/work-ledger-types.js.map +0 -1
  816. package/dist/work-ledger-validation.d.ts +0 -14
  817. package/dist/work-ledger-validation.d.ts.map +0 -1
  818. package/dist/work-ledger-validation.js +0 -226
  819. package/dist/work-ledger-validation.js.map +0 -1
  820. package/dist/work-ledger.d.ts +0 -43
  821. package/dist/work-ledger.d.ts.map +0 -1
  822. package/dist/work-ledger.js +0 -225
  823. package/dist/work-ledger.js.map +0 -1
  824. package/dist/work-policy-registry.d.ts +0 -133
  825. package/dist/work-policy-registry.d.ts.map +0 -1
  826. package/dist/work-policy-registry.js +0 -128
  827. package/dist/work-policy-registry.js.map +0 -1
  828. package/dist/work-run.d.ts +0 -56
  829. package/dist/work-run.d.ts.map +0 -1
  830. package/dist/work-run.js +0 -102
  831. package/dist/work-run.js.map +0 -1
  832. package/dist/work-setup.d.ts +0 -40
  833. package/dist/work-setup.d.ts.map +0 -1
  834. package/dist/work-setup.js +0 -174
  835. package/dist/work-setup.js.map +0 -1
  836. package/dist/workflow-fact-id.d.ts +0 -4
  837. package/dist/workflow-fact-id.d.ts.map +0 -1
  838. package/dist/workflow-fact-id.js +0 -14
  839. package/dist/workflow-fact-id.js.map +0 -1
  840. package/dist/workflow-facts.d.ts +0 -34
  841. package/dist/workflow-facts.d.ts.map +0 -1
  842. package/dist/workflow-facts.js +0 -43
  843. package/dist/workflow-facts.js.map +0 -1
  844. package/dist/workspace-lease.d.ts +0 -40
  845. package/dist/workspace-lease.d.ts.map +0 -1
  846. package/dist/workspace-lease.js +0 -333
  847. package/dist/workspace-lease.js.map +0 -1
  848. package/dist/workspace.d.ts +0 -57
  849. package/dist/workspace.d.ts.map +0 -1
  850. package/dist/workspace.js +0 -216
  851. package/dist/workspace.js.map +0 -1
  852. package/extensions/daily-dashboard-session.ts +0 -48
  853. package/extensions/daily-work-session.ts +0 -20
  854. package/extensions/learning-outcome-session.ts +0 -38
  855. package/extensions/learning-session.ts +0 -59
  856. package/extensions/ordinary-runtime.ts +0 -14
  857. package/extensions/primary-shadow.ts +0 -11
  858. package/extensions/work-policy-session.ts +0 -139
  859. package/extensions/work-run-session.ts +0 -75
  860. package/extensions/work-runtime.ts +0 -44
  861. package/extensions/work-session.ts +0 -132
  862. package/src/activity-timeline.ts +0 -133
  863. package/src/approval-prompt.ts +0 -225
  864. package/src/approval-store.ts +0 -386
  865. package/src/approval.ts +0 -399
  866. package/src/capabilities.ts +0 -220
  867. package/src/catalog.ts +0 -306
  868. package/src/check-runner.ts +0 -387
  869. package/src/control-journal.ts +0 -26
  870. package/src/correlation.ts +0 -320
  871. package/src/daily-dashboard-host.ts +0 -105
  872. package/src/daily-panel.ts +0 -80
  873. package/src/daily-view-input.ts +0 -59
  874. package/src/daily-view-render.ts +0 -45
  875. package/src/daily-view.ts +0 -160
  876. package/src/dashboard-cli.ts +0 -340
  877. package/src/dashboard-display-controls.ts +0 -21
  878. package/src/dashboard-handshake.ts +0 -199
  879. package/src/dashboard-harness.ts +0 -37
  880. package/src/dashboard-herdr.ts +0 -363
  881. package/src/dashboard-host-contract.ts +0 -50
  882. package/src/dashboard-host-transport.ts +0 -43
  883. package/src/dashboard-host.ts +0 -244
  884. package/src/dashboard-menu.ts +0 -28
  885. package/src/dashboard-observation.ts +0 -46
  886. package/src/dashboard-projection.ts +0 -390
  887. package/src/dashboard-render.ts +0 -259
  888. package/src/debrief-contract.ts +0 -127
  889. package/src/debrief-fixture.ts +0 -29
  890. package/src/debrief-host.ts +0 -53
  891. package/src/debrief-render.ts +0 -49
  892. package/src/debrief.ts +0 -198
  893. package/src/definitions.ts +0 -211
  894. package/src/delegate-types.ts +0 -154
  895. package/src/delegate.ts +0 -348
  896. package/src/delegation-approval.ts +0 -126
  897. package/src/dispatch-control.ts +0 -81
  898. package/src/effect-profile-runtime.ts +0 -46
  899. package/src/effect-profile.ts +0 -129
  900. package/src/execution-retention.ts +0 -230
  901. package/src/executor.ts +0 -123
  902. package/src/experiment-contract.ts +0 -66
  903. package/src/experiment-state.ts +0 -44
  904. package/src/experiment-store.ts +0 -98
  905. package/src/experiment.ts +0 -236
  906. package/src/factory-contract.ts +0 -47
  907. package/src/factory-migration.ts +0 -29
  908. package/src/factory-order.ts +0 -56
  909. package/src/factory-registry.ts +0 -60
  910. package/src/fanout.ts +0 -106
  911. package/src/file-lock.ts +0 -178
  912. package/src/finalization.ts +0 -79
  913. package/src/git-identity.ts +0 -56
  914. package/src/grant-env.ts +0 -221
  915. package/src/grant-store.ts +0 -235
  916. package/src/herdr-cli.ts +0 -125
  917. package/src/herdr-pi-lifecycle.ts +0 -21
  918. package/src/herdr-poll.ts +0 -253
  919. package/src/herdr-stage.ts +0 -55
  920. package/src/init.ts +0 -389
  921. package/src/intent-application.ts +0 -91
  922. package/src/intent-control.ts +0 -107
  923. package/src/intent-scheduling.ts +0 -14
  924. package/src/learning-connection.ts +0 -70
  925. package/src/lease-helper.ts +0 -97
  926. package/src/lease-record.ts +0 -131
  927. package/src/ledger-append.ts +0 -72
  928. package/src/ledger-events.ts +0 -226
  929. package/src/ledger-report.ts +0 -357
  930. package/src/ledger-v3-validation.ts +0 -266
  931. package/src/ledger.ts +0 -369
  932. package/src/measured-order.ts +0 -72
  933. package/src/measured-session.ts +0 -70
  934. package/src/model-preflight.ts +0 -41
  935. package/src/native-session-target.ts +0 -23
  936. package/src/native-session.ts +0 -139
  937. package/src/order-schedule.ts +0 -42
  938. package/src/ordinary-children.ts +0 -59
  939. package/src/pane-reaper.ts +0 -270
  940. package/src/pi-tools.ts +0 -25
  941. package/src/producer-ipc-contract.ts +0 -26
  942. package/src/producer-ipc.ts +0 -107
  943. package/src/product-files.ts +0 -34
  944. package/src/propagation.ts +0 -333
  945. package/src/refusals.ts +0 -70
  946. package/src/resolve.ts +0 -267
  947. package/src/resource-budget.ts +0 -349
  948. package/src/retention-contract.ts +0 -84
  949. package/src/retention-json.ts +0 -20
  950. package/src/routing-authority.ts +0 -121
  951. package/src/run-child.ts +0 -303
  952. package/src/run-herdr.ts +0 -386
  953. package/src/skill-packages.ts +0 -314
  954. package/src/skill-resources.ts +0 -48
  955. package/src/spawn.ts +0 -156
  956. package/src/vendor/adoption.ts +0 -109
  957. package/src/work-command.ts +0 -197
  958. package/src/work-ledger-destination.ts +0 -113
  959. package/src/work-ledger-json.ts +0 -228
  960. package/src/work-ledger-occurrences.ts +0 -99
  961. package/src/work-ledger-projection.ts +0 -262
  962. package/src/work-ledger-snapshot.ts +0 -246
  963. package/src/work-ledger-types.ts +0 -229
  964. package/src/work-ledger-validation.ts +0 -174
  965. package/src/work-ledger.ts +0 -186
  966. package/src/work-policy-registry.ts +0 -81
  967. package/src/work-run.ts +0 -79
  968. package/src/work-setup.ts +0 -141
  969. package/src/workflow-fact-id.ts +0 -16
  970. package/src/workflow-facts.ts +0 -65
  971. package/src/workspace-lease.ts +0 -363
  972. package/src/workspace.ts +0 -308
  973. /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/capability-decision.json +0 -0
  974. /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/workspace-lease.json +0 -0
  975. /package/dist/{herdr-name.d.ts → executors/herdr-name.d.ts} +0 -0
  976. /package/dist/{herdr-name.js → executors/herdr-name.js} +0 -0
  977. /package/dist/{herdr-pi-lifecycle.d.ts → executors/herdr-pi-lifecycle.d.ts} +0 -0
  978. /package/dist/{herdr-start.d.ts → executors/herdr-start.d.ts} +0 -0
  979. /package/dist/{herdr-start.js → executors/herdr-start.js} +0 -0
  980. /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.d.ts +0 -0
  981. /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.js +0 -0
  982. /package/dist/{file-lock.d.ts → governance/file-lock.d.ts} +0 -0
  983. /package/dist/{finalization.d.ts → governance/finalization.d.ts} +0 -0
  984. /package/dist/{finalization.js → governance/finalization.js} +0 -0
  985. /package/dist/{lease-helper.d.ts → governance/lease-helper.d.ts} +0 -0
  986. /package/dist/{lease-record.js → governance/lease-record.js} +0 -0
  987. /package/dist/{retention-contract.d.ts → governance/retention-contract.d.ts} +0 -0
  988. /package/dist/{retention-json.d.ts → governance/retention-json.d.ts} +0 -0
  989. /package/dist/{retention-json.js → governance/retention-json.js} +0 -0
  990. /package/dist/{chain.d.ts → kernel/chain.d.ts} +0 -0
  991. /package/dist/{chain.js → kernel/chain.js} +0 -0
  992. /package/dist/{correlation.d.ts → kernel/correlation.d.ts} +0 -0
  993. /package/dist/{definitions.d.ts → kernel/definitions.d.ts} +0 -0
  994. /package/dist/{delegate.d.ts → kernel/delegate.d.ts} +0 -0
  995. /package/dist/{delegation-approval.d.ts → kernel/delegation-approval.d.ts} +0 -0
  996. /package/dist/{execution-id.d.ts → kernel/execution-id.d.ts} +0 -0
  997. /package/dist/{execution-id.js → kernel/execution-id.js} +0 -0
  998. /package/dist/{fanout.d.ts → kernel/fanout.d.ts} +0 -0
  999. /package/dist/{ledger-identifiers.d.ts → kernel/ledger-identifiers.d.ts} +0 -0
  1000. /package/dist/{ledger-identifiers.js → kernel/ledger-identifiers.js} +0 -0
  1001. /package/dist/{pi-tools.d.ts → kernel/pi-tools.d.ts} +0 -0
  1002. /package/dist/{progress.d.ts → kernel/progress.d.ts} +0 -0
  1003. /package/dist/{progress.js → kernel/progress.js} +0 -0
  1004. /package/dist/{skill-resources.d.ts → kernel/skill-resources.d.ts} +0 -0
  1005. /package/dist/{dashboard-render.d.ts → products/dashboard-render.d.ts} +0 -0
  1006. /package/src/{herdr-name.ts → executors/herdr-name.ts} +0 -0
  1007. /package/src/{herdr-start.ts → executors/herdr-start.ts} +0 -0
  1008. /package/src/{vendor → executors/vendor}/herdr-pi-lifecycle.ts +0 -0
  1009. /package/src/{chain.ts → kernel/chain.ts} +0 -0
  1010. /package/src/{execution-id.ts → kernel/execution-id.ts} +0 -0
  1011. /package/src/{ledger-identifiers.ts → kernel/ledger-identifiers.ts} +0 -0
  1012. /package/src/{progress.ts → kernel/progress.ts} +0 -0
@@ -1,357 +0,0 @@
1
- /**
2
- * Reading a ledger back — integrity, instruction versions, and the ADR-0020 approval tally.
3
- *
4
- * Split from `ledger.ts` when the file-size guard refused it at 419 lines. The seam is real rather than
5
- * arbitrary: `ledger.ts` **writes** one record at a time and fails closed when it cannot, while everything
6
- * here **reads** a whole file and must never fail at all — a report is a diagnostic, and a diagnostic that
7
- * throws on damaged input is useless on exactly the input it exists for. Every defect this half has had
8
- * (R-63's bias, R-64's three malformed shapes) was a *reporting* defect, and none of them could have
9
- * touched the write path.
10
- *
11
- * Re-exported from `./ledger` so the published subpath is unchanged.
12
- */
13
-
14
- import { readFile } from "node:fs/promises";
15
- import type { Capability } from "./resolve.ts";
16
- import { DELEGATE_SUBJECT } from "./approval.ts";
17
- import type { ApprovalSource } from "./approval.ts";
18
- import type { GrantRecord } from "./ledger.ts";
19
- import { isEscalationAttempt } from "./ledger.ts";
20
- import type { WorkspaceLeaseOutcome } from "./ledger-events.ts";
21
- import { isExecutionId } from "./execution-id.ts";
22
- import { validateLedgerV3Event } from "./ledger-v3-validation.ts";
23
-
24
- export interface LedgerReport {
25
- /** False when the file is absent — a configuration state, not damage. */
26
- exists: boolean;
27
- /** Capability-decision records (legacy, v2, or v3). */
28
- records: number;
29
- /** Every parsed ledger event, including lifecycle and lease events. */
30
- events: number;
31
- workspaceLeases: {
32
- acquired: number; uncontended: number; refused: number; released: number;
33
- releasedUnrecorded: number; lost: number; retained: number; timeout: number; recovered: number;
34
- };
35
- lifecycle: { starting: number; running: number; completed: number; failed: number };
36
- /** Planned/observed/controller-validated facts; never counted as enforced child executions. */
37
- workflowFacts: number;
38
- /** Lines that did not, with 1-based line numbers so the report is actionable. */
39
- corrupt: Array<{ line: number; reason: string }>;
40
- /** Records where an agent asked for more than it held — ADR-0008's designated signal. */
41
- escalationAttempts: number;
42
- /**
43
- * How many records ran under each executor, plus how many name none — ADR-0031.
44
- *
45
- * **Added because the field was written and never read, which is R-51's shape exactly.** R-51 was
46
- * `definitionDigest`: recorded from the start, absent from every report, so the questions ADR-0018 advertised
47
- * needed hand-written `jq`. `executor` arrived the same way — `src/ledger.ts` justifies making it *required*
48
- * with "reading it back is the only reason it exists", and nothing read it back. `docs/SPEC.md` claims the
49
- * executor is "announced three times… per child in the ledger"; without this the third announcement was to
50
- * `jq` only.
51
- *
52
- * `unknown` counts pre-0.16 lines, which have no such field. Reported rather than folded into `process`,
53
- * because "written before the executor was recorded" and "ran as a subprocess" are different facts.
54
- */
55
- executors: { herdr: number; process: number; unknown: number };
56
- /**
57
- * Every distinct set of instructions this ledger saw run, with how many spawns used it (R-51).
58
- *
59
- * ADR-0018 advertises that a record answers *"did these four children run the same instructions?"* and
60
- * *"has this definition changed since?"* — and until this existed **nothing read `definitionDigest` at
61
- * all**, so both questions required hand-written `jq` and the second was not even reproducible with
62
- * `sha256sum`, because the digest covers the body and not the frontmatter. A field no tool reads is a
63
- * field that quietly becomes decoration.
64
- *
65
- * Grouped by `name` + `sha256`, so two entries with one name are exactly the evidence that a definition
66
- * changed mid-ledger. Sorted by name then digest so two runs of the same fan-out produce a diffable
67
- * report, like the ids themselves.
68
- */
69
- definitions: Array<{ name: string; source: string; sha256: string; spawns: number }>;
70
- /**
71
- * Where the yes came from, per approved capability, tallied across the whole ledger.
72
- *
73
- * **This is the measurement ADR-0020 asks for.** That ADR keeps the persistence layer on R-25's fatigue
74
- * argument with *no number behind it*, and named the evidence that would settle it: counting `persisted`
75
- * against `prompt` over a few weeks of real use. It also said this "needs no new machinery" — true of the
76
- * data and false of the answer, which required hand-written `jq`. Same shape as R-51: a field no tool
77
- * reads becomes decoration, and a measurement nobody can run does not get run.
78
- *
79
- * **`bySource` counts RECORDS and is an upper bound, not an answer.** Deleting the persistence layer does
80
- * not turn every `persisted` record back into a prompt: precedence is `inherited → session → persisted →
81
- * prompt`, and `session` approvals live in memory and do not depend on the store at all. So a session that
82
- * spawns `deploy` twenty times under one persisted entry writes twenty `persisted` records, while without
83
- * the store it would raise **one** prompt and satisfy the other nineteen from the session cache. Reporting
84
- * twenty prompts avoided would overstate the layer's value twentyfold, on the one number that decides
85
- * whether to keep it — the same direction of bias `unattributed` exists to avoid, arrived at a different way.
86
- *
87
- * `distinctBySource` is the closer estimate: distinct `capability@subject` pairs, which bounds the cost of
88
- * deletion at one prompt per pair per session. The ledger carries no session id, so the exact figure is not
89
- * computable from it; both numbers are printed and labelled rather than one being presented as the truth.
90
- *
91
- * Counted from `approvalSources` **only**. `approvalSource` is deliberately not used as a fallback: before
92
- * 0.11.1 that scalar was written for the whole set even when the sources differed (R-46), so folding it in
93
- * would report humans as having been asked about capabilities they were never asked about — biasing the
94
- * one direction this measurement must not be biased in. Those records are counted as `unattributed`
95
- * instead, so the sample size is visible rather than silently smaller.
96
- */
97
- approvals: {
98
- /** Raw record counts. An UPPER bound on prompts avoided — see above before quoting one. */
99
- bySource: Record<ApprovalSource, number>;
100
- /** Distinct `capability@subject` pairs per source. The closer estimate. */
101
- distinctBySource: Record<ApprovalSource, number>;
102
- /** Records carrying approvals from before per-capability sources existed. Not attributable; see above. */
103
- unattributed: number;
104
- /** Records where a human was asked and said no — the fatigue argument's other half. */
105
- humanDenied: number;
106
- /**
107
- * Distinct `capability@subject` pairs a human declined.
108
- *
109
- * Same reason `distinctBySource` exists: R-29 shares a decline across every concurrent caller, so one
110
- * click of *Deny* under an eight-wide fan-out writes eight `humanDenied` records. Reporting the raw
111
- * count as "times a human declined" is the per-record bias R-63 removed from `persisted`, left in place
112
- * on the number that argues hardest FOR the layer — which is the direction that flatters this package's
113
- * own gating and therefore the one to be most careful with.
114
- */
115
- humanDeniedPairs: number;
116
- };
117
- ok: boolean;
118
- }
119
-
120
- /**
121
- * Read the ledger back and report what is wrong with it.
122
- *
123
- * **This is the gap that mattered most.** `appendRecord`'s strict mode catches write *errors*, never
124
- * corruption, and nothing in this package had ever read a ledger back — so a torn line was silently
125
- * indistinguishable from a spawn that never happened. An audit trail whose damage is invisible is not a
126
- * compensating control, and ADR-0008 leans on the ledger as exactly that.
127
- *
128
- * Deliberately reports rather than repairs. A corrupt line is evidence; rewriting the file to make it parse
129
- * would destroy the one artifact an investigation has.
130
- */
131
- // Keyed by the UNION, not by `string`. Typed loosely, adding a `WorkspaceLeaseOutcome` member without a
132
- // counter compiled fine and then made `verifyLedger` file the package's own valid event as CORRUPTION —
133
- // the worst available outcome for an integrity signal, since real damage becomes noise.
134
- const LEASE_OUTCOME_COUNTERS: Record<WorkspaceLeaseOutcome, keyof LedgerReport["workspaceLeases"]> = {
135
- acquired: "acquired",
136
- uncontended: "uncontended",
137
- refused: "refused",
138
- released: "released",
139
- "released-unrecorded": "releasedUnrecorded",
140
- lost: "lost",
141
- retained: "retained",
142
- timeout: "timeout",
143
- recovered: "recovered",
144
- };
145
-
146
- function requireVersioned(event: Record<string, unknown>, fields: string[]): void {
147
- if ((event.ledgerVersion !== 2 && event.ledgerVersion !== 3) || typeof event.ts !== "string" ||
148
- fields.some((field) => typeof event[field] !== "string" || event[field] === "")) {
149
- throw new Error("invalid versioned ledger event");
150
- }
151
- if (event.ledgerVersion === 3 &&
152
- (!isExecutionId(event.executionId) ||
153
- (event.parentExecutionId !== null && !isExecutionId(event.parentExecutionId)))) {
154
- throw new Error("invalid v3 execution identity");
155
- }
156
- }
157
-
158
- function requireCapabilityDecision(event: Record<string, unknown>): void {
159
- requireVersioned(event, ["parentId", "childId", "executor", "taskDigest"]);
160
- for (const field of ["requested", "parentGrant", "effective", "denied", "clipped", "gatedBlocked"]) {
161
- if (!Array.isArray(event[field]) || !(event[field] as unknown[]).every((value) => typeof value === "string")) {
162
- throw new Error("invalid capability decision arrays");
163
- }
164
- }
165
- if (!Number.isInteger(event.depth) || typeof event.blocked !== "boolean" || !/^[a-f0-9]{64}$/i.test(String(event.taskDigest))) {
166
- throw new Error("invalid capability decision identity");
167
- }
168
- }
169
-
170
- export async function verifyLedger(path: string): Promise<LedgerReport> {
171
- let text: string;
172
- try {
173
- text = await readFile(path, "utf8");
174
- } catch (error) {
175
- if ((error as { code?: string }).code === "ENOENT") {
176
- return {
177
- exists: false,
178
- records: 0,
179
- events: 0,
180
- workspaceLeases: { acquired: 0, uncontended: 0, refused: 0, released: 0, releasedUnrecorded: 0, lost: 0, retained: 0, timeout: 0, recovered: 0 },
181
- lifecycle: { starting: 0, running: 0, completed: 0, failed: 0 },
182
- workflowFacts: 0,
183
- corrupt: [],
184
- escalationAttempts: 0,
185
- executors: { herdr: 0, process: 0, unknown: 0 },
186
- definitions: [],
187
- approvals: {
188
- bySource: { prompt: 0, session: 0, persisted: 0, inherited: 0 },
189
- distinctBySource: { prompt: 0, session: 0, persisted: 0, inherited: 0 },
190
- unattributed: 0,
191
- humanDenied: 0,
192
- humanDeniedPairs: 0,
193
- },
194
- ok: true,
195
- };
196
- }
197
- throw error;
198
- }
199
-
200
- const corrupt: Array<{ line: number; reason: string }> = [];
201
- // Keyed by name+digest: one name with two entries is the signal that the definition changed mid-ledger.
202
- const digests = new Map<string, { name: string; source: string; sha256: string; spawns: number }>();
203
- let records = 0;
204
- let events = 0;
205
- const workspaceLeases = { acquired: 0, uncontended: 0, refused: 0, released: 0, releasedUnrecorded: 0, lost: 0, retained: 0, timeout: 0, recovered: 0 };
206
- const lifecycle = { starting: 0, running: 0, completed: 0, failed: 0 };
207
- let workflowFacts = 0;
208
- let escalationAttempts = 0;
209
- const executors = { herdr: 0, process: 0, unknown: 0 };
210
- const bySource: Record<ApprovalSource, number> = { prompt: 0, session: 0, persisted: 0, inherited: 0 };
211
- // `capability@subject` seen per source, so the report can state a bound as well as a raw count.
212
- const distinct: Record<ApprovalSource, Set<string>> = {
213
- prompt: new Set(),
214
- session: new Set(),
215
- persisted: new Set(),
216
- inherited: new Set(),
217
- };
218
- let unattributed = 0;
219
- let humanDenied = 0;
220
- const deniedPairs = new Set<string>();
221
-
222
- const lines = text.split("\n");
223
- lines.forEach((raw, index) => {
224
- // A trailing newline yields one empty final element, which is normal rather than damage.
225
- if (raw.trim().length === 0) return;
226
- try {
227
- const event = JSON.parse(raw) as Record<string, unknown>;
228
- if (event.ledgerVersion !== undefined) {
229
- if (event.event === undefined) throw new Error("versioned ledger line has no event discriminator");
230
- if (event.ledgerVersion !== 2 && event.ledgerVersion !== 3) throw new Error("unsupported ledger version");
231
- if (event.ledgerVersion === 3 && validateLedgerV3Event(event)) throw new Error("invalid ledger v3 event");
232
- }
233
- if (event.event === "workflow_fact") {
234
- // v2 has no workflow facts; the exact v3 validator above already checked its vocabulary,
235
- // correlation and provenance/state relation.
236
- if (event.ledgerVersion !== 3) throw new Error("invalid workflow fact event");
237
- workflowFacts += 1;
238
- events += 1;
239
- return;
240
- }
241
- if (event.event === "workspace_lease") {
242
- requireVersioned(event, ["childId", "workspaceId", "root", "access"]);
243
- const outcome = typeof event.outcome === "string" ? event.outcome : "";
244
- // Explicit map, not a name match: the ledger's outcome vocabulary and these counter names are
245
- // allowed to differ, and a valid event must never be counted as corruption because a counter
246
- // happens to be spelled differently.
247
- const counter = Object.hasOwn(LEASE_OUTCOME_COUNTERS, outcome)
248
- ? LEASE_OUTCOME_COUNTERS[outcome as WorkspaceLeaseOutcome]
249
- : undefined;
250
- if (!counter) throw new Error("invalid workspace lease event");
251
- workspaceLeases[counter] += 1;
252
- events += 1;
253
- return;
254
- }
255
- if (event.event === "child_lifecycle") {
256
- requireVersioned(event, ["childId", "executor"]);
257
- const state = typeof event.state === "string" ? event.state : "";
258
- if (!Object.hasOwn(lifecycle, state)) throw new Error("invalid child lifecycle event");
259
- lifecycle[state as keyof typeof lifecycle] += 1;
260
- events += 1;
261
- return;
262
- }
263
- if (event.event === "check_receipt") {
264
- requireVersioned(event, ["childId", "receiptId", "workspaceId", "checkId", "treeSha"]);
265
- events += 1;
266
- return;
267
- }
268
- if (event.event !== undefined && event.event !== "capability_decision") throw new Error("unknown ledger event");
269
- const parsed = event as unknown as GrantRecord;
270
- if (event.event === "capability_decision") requireCapabilityDecision(event);
271
- if (!Array.isArray(parsed.denied)) throw new Error("not a grant record");
272
- records += 1;
273
- events += 1;
274
- if (isEscalationAttempt(parsed)) escalationAttempts += 1;
275
- const executor = (parsed as { executor?: unknown }).executor;
276
- if (executor === "herdr") executors.herdr += 1;
277
- else if (executor === "process") executors.process += 1;
278
- else executors.unknown += 1;
279
- if (parsed.humanDenied) {
280
- humanDenied += 1;
281
- const subject = parsed.agentType === undefined || parsed.agentType === "delegate" ? DELEGATE_SUBJECT : parsed.agentType;
282
- for (const capability of parsed.gatedBlocked ?? []) deniedPairs.add(`${capability}@${subject}`);
283
- }
284
- // A **plain, non-empty** object. Three shapes were accepted here that must not be, all of them
285
- // reachable from a torn, hand-edited or foreign line — which is the input class `verifyLedger` exists
286
- // for, so "this package never writes that" is not a defence:
287
- // - `{}` beside a non-empty `approved` counted NOWHERE, silently shrinking the sample the comment
288
- // below promises to keep visible;
289
- // - an ARRAY passed `typeof === "object"` and was tallied with numeric indices as capability names;
290
- // - `null` is an object.
291
- const rawSources = parsed.approvalSources;
292
- const sources =
293
- rawSources && typeof rawSources === "object" && !Array.isArray(rawSources) && Object.keys(rawSources).length > 0
294
- ? rawSources
295
- : undefined;
296
- if (sources) {
297
- // The subject half of `capability@subject`. `agentType` is the definition's name, or the literal
298
- // `"delegate"` for the `tools:` form — which is NOT `DELEGATE_SUBJECT`, the `<delegate>` the approval
299
- // layer keys on. Mapped here rather than at the write site so old ledgers read correctly too.
300
- // **Stated limit:** a definition genuinely named `delegate` is indistinguishable from the `tools:`
301
- // form in this field, and their two distinct approvals count as one pair. `DELEGATE_SUBJECT`'s own
302
- // angle brackets exist to make that collision impossible, and the ledger drops them.
303
- const subject = parsed.agentType === undefined || parsed.agentType === "delegate" ? DELEGATE_SUBJECT : parsed.agentType;
304
- for (const [capability, source] of Object.entries(sources)) {
305
- // `Object.hasOwn`, never `in`: `in` walks the prototype, so a source of `"toString"` or
306
- // `"valueOf"` passed the check, wrote a STRING into a counter, made `attributed` a string, and
307
- // deleted the entire measurement from the report while marking an intact ledger corrupt.
308
- // An unrecognised source is counted as unattributed rather than dropped: a tally that silently
309
- // ignores what it does not understand reports a smaller sample as a cleaner one.
310
- if (Object.hasOwn(bySource, source)) {
311
- bySource[source] += 1;
312
- distinct[source].add(`${capability}@${subject}`);
313
- } else unattributed += 1;
314
- }
315
- } else if (parsed.approved && parsed.approved.length > 0) {
316
- unattributed += parsed.approved.length;
317
- }
318
- const d = parsed.definitionDigest;
319
- if (d?.name && d.sha256) {
320
- const key = `${d.name}\u0000${d.sha256}`;
321
- const seen = digests.get(key);
322
- if (seen) seen.spawns += 1;
323
- else digests.set(key, { name: d.name, source: d.source, sha256: d.sha256, spawns: 1 });
324
- }
325
- } catch {
326
- // Content-free by contract: a torn or foreign line can contain exactly the task/output material the
327
- // ledger and dashboard promise never to expose. The line number locates the evidence without copying it.
328
- corrupt.push({ line: index + 1, reason: "invalid ledger line" });
329
- }
330
- });
331
-
332
- return {
333
- exists: true,
334
- records,
335
- events,
336
- workspaceLeases,
337
- lifecycle,
338
- workflowFacts,
339
- corrupt,
340
- escalationAttempts,
341
- executors,
342
- definitions: [...digests.values()].sort((a, b) => a.name.localeCompare(b.name) || a.sha256.localeCompare(b.sha256)),
343
- approvals: {
344
- bySource,
345
- distinctBySource: {
346
- prompt: distinct.prompt.size,
347
- session: distinct.session.size,
348
- persisted: distinct.persisted.size,
349
- inherited: distinct.inherited.size,
350
- },
351
- unattributed,
352
- humanDenied,
353
- humanDeniedPairs: deniedPairs.size,
354
- },
355
- ok: corrupt.length === 0,
356
- };
357
- }
@@ -1,266 +0,0 @@
1
- import { normaliseCorrelation, type CorrelationMetadata } from "./correlation.ts";
2
- import { isExecutionId } from "./execution-id.ts";
3
- import { REFUSAL_CODES } from "./refusals.ts";
4
- import { isWorkflowFactId, isWorkflowIdentifier, workflowFactStateMatches } from "./workflow-fact-id.ts";
5
- import { isLedgerCapabilityIdentifier, isLedgerDisplayIdentifier } from "./ledger-identifiers.ts";
6
-
7
- export type LedgerV3Object = Record<string, unknown>;
8
-
9
- const SHA256_RE = /^[a-f0-9]{64}$/i;
10
- const EXECUTORS = new Set(["process", "herdr"]);
11
- const APPROVAL_SOURCES = new Set(["prompt", "session", "persisted", "inherited"]);
12
- const APPROVAL_SCOPES = new Set(["once", "session", "always"]);
13
- const GATE_OUTCOMES = new Set(["declined", "dismissed", "no-ui", "error"]);
14
- const LEASE_OUTCOMES = new Set([
15
- "acquired", "uncontended", "refused", "released", "released-unrecorded", "lost", "retained", "timeout", "recovered",
16
- ]);
17
- const PROCESS_SIGNALS = new Set([
18
- "SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCONT", "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGIO",
19
- "SIGIOT", "SIGKILL", "SIGPIPE", "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGSEGV", "SIGSTKFLT",
20
- "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGUNUSED", "SIGURG",
21
- "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", "SIGXCPU", "SIGXFSZ", "SIGBREAK", "SIGLOST", "SIGINFO",
22
- ]);
23
-
24
- const FIELDS = {
25
- capability_decision: new Set([
26
- "ledgerVersion", "event", "ts", "executionId", "parentExecutionId", "parentId", "childId", "depth",
27
- "agentType", "requested", "parentGrant", "effective", "denied", "clipped", "gatedBlocked", "blocked",
28
- "reason", "approved", "approvalSource", "approvalSources", "approvalScopes", "approvalExpiresAt",
29
- "approvalUses", "approvalScope", "humanDenied", "gateOutcome", "definitionDigest", "executor", "taskFrom",
30
- "taskFromExecutionId", "taskDigest", "correlation", "refusal",
31
- ]),
32
- workspace_lease: new Set([
33
- "ledgerVersion", "event", "ts", "executionId", "parentExecutionId", "childId", "workspaceId", "root",
34
- "access", "outcome", "recovered", "releaseReason", "refusal", "correlation",
35
- ]),
36
- child_lifecycle: new Set([
37
- "ledgerVersion", "event", "ts", "executionId", "parentExecutionId", "childId", "state", "executor",
38
- "exitCode", "signal", "timedOut", "aborted", "truncated", "reason", "deadlineAt", "herdrPaneId",
39
- "herdrAgentName", "correlation",
40
- ]),
41
- check_receipt: new Set([
42
- "ledgerVersion", "event", "ts", "executionId", "parentExecutionId", "childId", "receiptId", "workspaceId",
43
- "checkId", "treeSha", "correlation",
44
- ]),
45
- workflow_fact: new Set([
46
- "ledgerVersion", "event", "ts", "factId", "source", "provenance", "kind", "subject", "state", "correlation",
47
- ]),
48
- } as const;
49
- type EventKind = keyof typeof FIELDS;
50
-
51
- export function isLedgerObject(value: unknown): value is LedgerV3Object {
52
- if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
53
- const prototype = Object.getPrototypeOf(value);
54
- return prototype === Object.prototype || prototype === null;
55
- }
56
-
57
- export function isNonEmptyString(value: unknown): value is string {
58
- return typeof value === "string" && value.length > 0;
59
- }
60
-
61
- /** Ledger timestamp profile: JSON Schema `date-time`, narrowed to seconds 00-59 for JS date arithmetic. */
62
- export function isTimestamp(value: unknown): value is string {
63
- if (typeof value !== "string") return false;
64
- const match = /^(\d{4})-(\d{2})-(\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:[Zz]|([+-])(\d{2}):(\d{2}))$/.exec(value);
65
- if (!match) return false;
66
- const [, yearText, monthText, dayText, hourText, minuteText, secondText, , offsetHourText, offsetMinuteText] = match;
67
- const year = Number(yearText);
68
- const month = Number(monthText);
69
- const day = Number(dayText);
70
- const hour = Number(hourText);
71
- const minute = Number(minuteText);
72
- const second = Number(secondText);
73
- if (month < 1 || month > 12 || hour > 23 || minute > 59 || second > 59) return false;
74
- const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
75
- const days = [31, leap ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
76
- if (day < 1 || day > days[month - 1]) return false;
77
- return offsetHourText === undefined || (Number(offsetHourText) <= 23 && Number(offsetMinuteText) <= 59);
78
- }
79
-
80
- export function isStringArray(value: unknown): value is string[] {
81
- return Array.isArray(value) && value.every((item) => typeof item === "string");
82
- }
83
-
84
- function optional(event: LedgerV3Object, field: string, valid: (value: unknown) => boolean): boolean {
85
- return !Object.hasOwn(event, field) || valid(event[field]);
86
- }
87
-
88
- function stringMap(value: unknown, valid: (entry: unknown) => boolean): boolean {
89
- return isLedgerObject(value) && Object.values(value).every(valid);
90
- }
91
-
92
- function capabilityMap(value: unknown, valid: (entry: unknown) => boolean): boolean {
93
- return isLedgerObject(value) && Object.keys(value).every(isLedgerCapabilityIdentifier) && Object.values(value).every(valid);
94
- }
95
-
96
- function validCorrelation(value: unknown): boolean {
97
- if (!isLedgerObject(value)) return false;
98
- try {
99
- const normalised = normaliseCorrelation(value as CorrelationMetadata);
100
- // `normaliseCorrelation` drops nulls. The closed schema does not, so equality is part of validation.
101
- return JSON.stringify(normalised) === JSON.stringify(value);
102
- } catch {
103
- return false;
104
- }
105
- }
106
-
107
- function validRefusal(value: unknown): boolean {
108
- if (!isLedgerObject(value) || Object.keys(value).some((key) => !["code", "message", "details"].includes(key))) return false;
109
- if (!REFUSAL_CODES.includes(value.code as never) || typeof value.message !== "string") return false;
110
- return optional(value, "details", (details) => isLedgerObject(details) && Object.values(details).every(
111
- (entry) => entry === null || ["string", "number", "boolean"].includes(typeof entry),
112
- ));
113
- }
114
-
115
- function validDefinitionDigest(value: unknown): boolean {
116
- return isLedgerObject(value) &&
117
- Object.keys(value).every((key) => ["name", "source", "sha256"].includes(key)) &&
118
- typeof value.name === "string" && typeof value.source === "string" && SHA256_RE.test(String(value.sha256));
119
- }
120
-
121
- function validApprovalUse(value: unknown): boolean {
122
- return isLedgerObject(value) && Object.keys(value).every((key) => ["max", "remaining"].includes(key)) &&
123
- Number.isInteger(value.max) && (value.max as number) >= 0 &&
124
- Number.isInteger(value.remaining) && (value.remaining as number) >= 0;
125
- }
126
-
127
- function validateBase(event: LedgerV3Object): string | null {
128
- if (!isTimestamp(event.ts)) return "ts must be an RFC 3339 timestamp";
129
- if (!isExecutionId(event.executionId)) return "executionId is missing or invalid";
130
- if (event.parentExecutionId !== null && !isExecutionId(event.parentExecutionId)) {
131
- return "parentExecutionId must be an execution id or null";
132
- }
133
- if (event.parentExecutionId === event.executionId) return "an execution cannot be its own parent";
134
- if (!isLedgerDisplayIdentifier(event.childId)) return "childId is missing or invalid";
135
- return null;
136
- }
137
-
138
- function validateCapabilityDecision(event: LedgerV3Object): string | null {
139
- if (!isLedgerDisplayIdentifier(event.parentId) || !Number.isInteger(event.depth) || (event.depth as number) < 0) {
140
- return "capability decision identity is invalid";
141
- }
142
- for (const field of ["requested", "parentGrant", "effective", "denied", "clipped", "gatedBlocked"]) {
143
- if (!isStringArray(event[field]) || !event[field].every(isLedgerCapabilityIdentifier)) {
144
- return `capability decision ${field} must contain capability identifiers`;
145
- }
146
- }
147
- if (typeof event.blocked !== "boolean" || !EXECUTORS.has(String(event.executor)) || !SHA256_RE.test(String(event.taskDigest))) {
148
- return "capability decision required fields are invalid";
149
- }
150
- if (!optional(event, "agentType", isLedgerDisplayIdentifier) ||
151
- !optional(event, "reason", (value) => typeof value === "string") ||
152
- !optional(event, "approved", (value) => isStringArray(value) && value.every(isLedgerCapabilityIdentifier)) ||
153
- !optional(event, "approvalSource", (value) => APPROVAL_SOURCES.has(String(value))) ||
154
- !optional(event, "approvalSources", (value) => capabilityMap(value, (entry) => APPROVAL_SOURCES.has(String(entry)))) ||
155
- !optional(event, "approvalScopes", (value) => capabilityMap(value, (entry) => APPROVAL_SCOPES.has(String(entry)))) ||
156
- !optional(event, "approvalExpiresAt", (value) => capabilityMap(value, isTimestamp)) ||
157
- !optional(event, "approvalUses", (value) => capabilityMap(value, validApprovalUse)) ||
158
- !optional(event, "approvalScope", (value) => APPROVAL_SCOPES.has(String(value))) ||
159
- !optional(event, "humanDenied", (value) => value === true) ||
160
- !optional(event, "gateOutcome", (value) => GATE_OUTCOMES.has(String(value))) ||
161
- !optional(event, "definitionDigest", validDefinitionDigest) ||
162
- !optional(event, "taskFrom", isLedgerDisplayIdentifier) ||
163
- !optional(event, "taskFromExecutionId", isExecutionId) ||
164
- !optional(event, "correlation", validCorrelation) ||
165
- !optional(event, "refusal", validRefusal)) {
166
- return "capability decision optional fields are invalid";
167
- }
168
- return null;
169
- }
170
-
171
- function validateWorkspaceLease(event: LedgerV3Object): string | null {
172
- if (!isLedgerDisplayIdentifier(event.workspaceId) || !isNonEmptyString(event.root) ||
173
- !["read", "write"].includes(String(event.access)) || !LEASE_OUTCOMES.has(String(event.outcome))) {
174
- return "workspace lease required fields are invalid";
175
- }
176
- if (!optional(event, "recovered", (value) => value === true || value === false || value === "unknown") ||
177
- !optional(event, "releaseReason", (value) => typeof value === "string") ||
178
- !optional(event, "refusal", validRefusal) || !optional(event, "correlation", validCorrelation)) {
179
- return "workspace lease optional fields are invalid";
180
- }
181
- return null;
182
- }
183
-
184
- function validateChildLifecycle(event: LedgerV3Object): string | null {
185
- if (!["starting", "running", "completed", "failed"].includes(String(event.state)) || !EXECUTORS.has(String(event.executor))) {
186
- return "child lifecycle required fields are invalid";
187
- }
188
- if (["starting", "running"].includes(String(event.state)) && !isTimestamp(event.deadlineAt)) {
189
- return "deadlineAt is required and must be an RFC 3339 timestamp for a non-terminal lifecycle";
190
- }
191
- if (!optional(event, "deadlineAt", isTimestamp) ||
192
- !optional(event, "exitCode", (value) => value === null || Number.isInteger(value)) ||
193
- !optional(event, "signal", (value) => value === null || PROCESS_SIGNALS.has(String(value))) ||
194
- !optional(event, "timedOut", (value) => value === true) ||
195
- !optional(event, "aborted", (value) => value === true) ||
196
- !optional(event, "truncated", (value) => value === true) ||
197
- !optional(event, "reason", (value) => typeof value === "string") ||
198
- !optional(event, "correlation", validCorrelation)) {
199
- return "child lifecycle optional fields are invalid";
200
- }
201
- if (!optional(event, "herdrPaneId", isLedgerDisplayIdentifier) ||
202
- !optional(event, "herdrAgentName", isLedgerDisplayIdentifier)) {
203
- return "Herdr runtime identity is invalid";
204
- }
205
- if (Object.hasOwn(event, "herdrPaneId") !== Object.hasOwn(event, "herdrAgentName")) {
206
- return "Herdr runtime identity must be paired";
207
- }
208
- if (Object.hasOwn(event, "herdrPaneId") && event.executor !== "herdr") {
209
- return "Herdr runtime identity requires the Herdr executor";
210
- }
211
- return null;
212
- }
213
-
214
- function validateCheckReceipt(event: LedgerV3Object): string | null {
215
- if (!SHA256_RE.test(String(event.receiptId)) || !isLedgerDisplayIdentifier(event.workspaceId) ||
216
- !isLedgerDisplayIdentifier(event.checkId) || !isNonEmptyString(event.treeSha) ||
217
- !optional(event, "correlation", validCorrelation)) {
218
- return "check receipt required fields are invalid";
219
- }
220
- return null;
221
- }
222
-
223
- function validateWorkflowFact(event: LedgerV3Object): string | null {
224
- if (!isTimestamp(event.ts) || !isWorkflowFactId(event.factId) ||
225
- !isWorkflowIdentifier(event.source) || !isWorkflowIdentifier(event.subject) ||
226
- !["planned", "observed", "controller_validated"].includes(String(event.provenance)) ||
227
- !["workflow_phase", "inline_skill", "transition"].includes(String(event.kind)) ||
228
- !["pending", "observed", "started", "completed", "blocked"].includes(String(event.state)) ||
229
- !validCorrelation(event.correlation) ||
230
- !isNonEmptyString((event.correlation as LedgerV3Object).run_id)) {
231
- return "workflow fact required fields are invalid";
232
- }
233
- return workflowFactStateMatches(event.provenance, event.state)
234
- ? null
235
- : "workflow fact provenance contradicts its state";
236
- }
237
-
238
- /** Exact, content-free runtime validation for one closed ledger v3 event. */
239
- export function validateLedgerV3Event(event: LedgerV3Object): string | null {
240
- if (event.ledgerVersion !== 3) return "unsupported ledger version";
241
- const kind = event.event;
242
- if (typeof kind !== "string" || !Object.hasOwn(FIELDS, kind)) return "unknown ledger event discriminator";
243
- const allowed = FIELDS[kind as EventKind];
244
- if (Object.keys(event).some((field) => !allowed.has(field))) return "ledger v3 contains an unsupported field";
245
- if (kind === "workflow_fact") return validateWorkflowFact(event);
246
- const base = validateBase(event);
247
- if (base) return base;
248
- if (kind === "capability_decision") return validateCapabilityDecision(event);
249
- if (kind === "workspace_lease") return validateWorkspaceLease(event);
250
- if (kind === "child_lifecycle") return validateChildLifecycle(event);
251
- return validateCheckReceipt(event);
252
- }
253
-
254
- /** Ensure a public builder cannot emit bytes the closed v3 reader would reject. */
255
- export function assertLedgerV3Wire<T extends object>(event: T): T {
256
- let wire: unknown;
257
- try {
258
- wire = JSON.parse(JSON.stringify(event));
259
- } catch (error) {
260
- throw new TypeError(`invalid ledger v3 event: ${String(error)}`);
261
- }
262
- if (!isLedgerObject(wire)) throw new TypeError("invalid ledger v3 event: event is not a JSON object");
263
- const invalid = validateLedgerV3Event(wire);
264
- if (invalid) throw new TypeError(`invalid ledger v3 event: ${invalid}`);
265
- return event;
266
- }