pi-daddy 0.27.4 → 0.32.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 (1000) 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 +6 -4
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +108 -103
  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 +98 -0
  135. package/dist/kernel/catalog.d.ts.map +1 -0
  136. package/dist/kernel/catalog.js +280 -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 +314 -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.map +1 -0
  193. package/dist/kernel/resolve.js +201 -0
  194. package/dist/kernel/resolve.js.map +1 -0
  195. package/dist/kernel/routing-authority.d.ts.map +1 -0
  196. package/dist/kernel/routing-authority.js.map +1 -0
  197. package/dist/kernel/run-child.d.ts +111 -0
  198. package/dist/kernel/run-child.d.ts.map +1 -0
  199. package/dist/kernel/run-child.js +324 -0
  200. package/dist/kernel/run-child.js.map +1 -0
  201. package/dist/kernel/skill-packages.d.ts +116 -0
  202. package/dist/kernel/skill-packages.d.ts.map +1 -0
  203. package/dist/kernel/skill-packages.js +300 -0
  204. package/dist/kernel/skill-packages.js.map +1 -0
  205. package/dist/kernel/skill-resources.d.ts.map +1 -0
  206. package/dist/kernel/skill-resources.js +56 -0
  207. package/dist/kernel/skill-resources.js.map +1 -0
  208. package/dist/kernel/spawn.d.ts.map +1 -0
  209. package/dist/kernel/spawn.js.map +1 -0
  210. package/dist/kernel/workspace.d.ts +51 -0
  211. package/dist/kernel/workspace.d.ts.map +1 -0
  212. package/dist/kernel/workspace.js +223 -0
  213. package/dist/kernel/workspace.js.map +1 -0
  214. package/dist/products/activity-timeline.d.ts +126 -0
  215. package/dist/products/activity-timeline.d.ts.map +1 -0
  216. package/dist/products/activity-timeline.js +542 -0
  217. package/dist/products/activity-timeline.js.map +1 -0
  218. package/dist/products/dashboard-cli.d.ts +26 -0
  219. package/dist/products/dashboard-cli.d.ts.map +1 -0
  220. package/dist/products/dashboard-cli.js +224 -0
  221. package/dist/products/dashboard-cli.js.map +1 -0
  222. package/dist/products/dashboard-display-controls.d.ts +17 -0
  223. package/dist/products/dashboard-display-controls.d.ts.map +1 -0
  224. package/dist/products/dashboard-display-controls.js +38 -0
  225. package/dist/products/dashboard-display-controls.js.map +1 -0
  226. package/dist/products/dashboard-handshake.d.ts +42 -0
  227. package/dist/products/dashboard-handshake.d.ts.map +1 -0
  228. package/dist/products/dashboard-handshake.js +158 -0
  229. package/dist/products/dashboard-handshake.js.map +1 -0
  230. package/dist/products/dashboard-herdr.d.ts +55 -0
  231. package/dist/products/dashboard-herdr.d.ts.map +1 -0
  232. package/dist/products/dashboard-herdr.js +324 -0
  233. package/dist/products/dashboard-herdr.js.map +1 -0
  234. package/dist/products/dashboard-projection.d.ts +62 -0
  235. package/dist/products/dashboard-projection.d.ts.map +1 -0
  236. package/dist/products/dashboard-projection.js +305 -0
  237. package/dist/products/dashboard-projection.js.map +1 -0
  238. package/dist/products/dashboard-render.d.ts.map +1 -0
  239. package/dist/products/dashboard-render.js +208 -0
  240. package/dist/products/dashboard-render.js.map +1 -0
  241. package/extensions/activity-timeline.ts +196 -0
  242. package/extensions/approval-banking.ts +3 -3
  243. package/extensions/approvals.ts +18 -12
  244. package/extensions/chain-approval-facts.ts +9 -6
  245. package/extensions/chain-ledger.ts +4 -4
  246. package/extensions/chain-plan.ts +6 -6
  247. package/extensions/correlation-shape.ts +42 -33
  248. package/extensions/delegate-chain.ts +93 -45
  249. package/extensions/delegation-authority.ts +7 -3
  250. package/extensions/delegation-ledger.ts +2 -2
  251. package/extensions/delegation-native.ts +24 -7
  252. package/extensions/delegation.ts +91 -80
  253. package/extensions/execute-child.ts +440 -293
  254. package/extensions/execution-occurrence.ts +2 -2
  255. package/extensions/executor-session.ts +5 -5
  256. package/extensions/fanout-outcome.ts +8 -6
  257. package/extensions/grant-store-refusal.ts +24 -12
  258. package/extensions/grants-command.ts +41 -33
  259. package/extensions/grants-connected-command.ts +29 -15
  260. package/extensions/grants.ts +78 -77
  261. package/extensions/init-command.ts +18 -12
  262. package/extensions/reload-environment.ts +12 -5
  263. package/extensions/run-delegation.ts +29 -19
  264. package/extensions/session-environment.ts +31 -14
  265. package/extensions/session-report.ts +60 -10
  266. package/extensions/session.ts +76 -66
  267. package/extensions/spawn-summary.ts +5 -5
  268. package/extensions/stored-grant-session.ts +5 -5
  269. package/extensions/tripwire.ts +1 -1
  270. package/extensions/workspace-runtime.ts +26 -24
  271. package/herdr-plugin/herdr-plugin.toml +1 -1
  272. package/package.json +5 -212
  273. package/src/cli.ts +136 -89
  274. package/src/executors/activity-session.ts +54 -0
  275. package/src/executors/executor.ts +123 -0
  276. package/src/executors/herdr-cli.ts +132 -0
  277. package/src/executors/herdr-pi-lifecycle.ts +21 -0
  278. package/src/executors/herdr-poll.ts +305 -0
  279. package/src/executors/herdr-stage.ts +55 -0
  280. package/src/executors/native-session-target.ts +31 -0
  281. package/src/executors/pane-reaper.ts +270 -0
  282. package/src/executors/process-activity.ts +54 -0
  283. package/src/executors/run-herdr.ts +426 -0
  284. package/src/governance/approval-prompt.ts +225 -0
  285. package/src/governance/approval-store.ts +385 -0
  286. package/src/governance/execution-retention.ts +372 -0
  287. package/src/governance/file-lock.ts +210 -0
  288. package/src/governance/finalization.ts +82 -0
  289. package/src/governance/grant-store.ts +235 -0
  290. package/src/governance/init.ts +447 -0
  291. package/src/governance/lease-helper.ts +124 -0
  292. package/src/governance/lease-record.ts +131 -0
  293. package/src/governance/ledger-events.ts +222 -0
  294. package/src/governance/ledger-report.ts +396 -0
  295. package/src/governance/ledger-v3-validation.ts +384 -0
  296. package/src/governance/ledger.ts +419 -0
  297. package/src/governance/native-session.ts +264 -0
  298. package/src/governance/record.ts +294 -0
  299. package/src/governance/retention-contract.ts +201 -0
  300. package/src/governance/retention-json.ts +24 -0
  301. package/src/governance/workspace-lease.ts +429 -0
  302. package/src/index.ts +82 -92
  303. package/src/kernel/approval.ts +406 -0
  304. package/src/kernel/capabilities.ts +216 -0
  305. package/src/kernel/catalog.ts +313 -0
  306. package/src/kernel/correlation.ts +351 -0
  307. package/src/kernel/definitions.ts +215 -0
  308. package/src/kernel/delegate-types.ts +162 -0
  309. package/src/kernel/delegate.ts +370 -0
  310. package/src/kernel/delegation-approval.ts +126 -0
  311. package/src/kernel/env-names.ts +119 -0
  312. package/src/kernel/fanout.ts +106 -0
  313. package/src/kernel/grant-env.ts +174 -0
  314. package/src/kernel/model-preflight.ts +44 -0
  315. package/src/kernel/pi-tools.ts +32 -0
  316. package/src/kernel/project-paths.ts +97 -0
  317. package/src/kernel/propagation.ts +341 -0
  318. package/src/kernel/refusals.ts +64 -0
  319. package/src/kernel/resolve.ts +258 -0
  320. package/src/kernel/run-child.ts +418 -0
  321. package/src/kernel/skill-packages.ts +329 -0
  322. package/src/kernel/skill-resources.ts +64 -0
  323. package/src/kernel/workspace.ts +336 -0
  324. package/src/products/activity-timeline.ts +679 -0
  325. package/src/products/dashboard-cli.ts +250 -0
  326. package/src/products/dashboard-display-controls.ts +44 -0
  327. package/src/products/dashboard-handshake.ts +222 -0
  328. package/src/products/dashboard-herdr.ts +427 -0
  329. package/src/products/dashboard-projection.ts +389 -0
  330. package/src/products/dashboard-render.ts +260 -0
  331. package/PRODUCT-GUIDE.md +0 -136
  332. package/REQUIREMENTS.md +0 -41
  333. package/contracts/daily-view/v1/README.md +0 -114
  334. package/contracts/daily-view/v1/fixtures/view.json +0 -525
  335. package/contracts/daily-view/v1/fixtures/view.txt +0 -75
  336. package/contracts/daily-view/v1/fixtures/work.jsonl +0 -17
  337. package/contracts/daily-view/v1/p03/README.md +0 -26
  338. package/contracts/daily-view/v1/p03/fixtures/retained-executions.json +0 -241
  339. package/contracts/daily-view/v1/p03/projection.schema.json +0 -194
  340. package/contracts/daily-view/v1/p03/provenance.json +0 -21
  341. package/contracts/dashboard-host/v1/README.md +0 -176
  342. package/contracts/debrief/v1/README.md +0 -146
  343. package/contracts/debrief/v1/intervention/README.md +0 -32
  344. package/contracts/debrief/v1/intervention/fixtures/artifact-3ee11136beb864f518252e5024dae9197421fbf97b6e981d3243c782b5c44bd0.txt +0 -1
  345. package/contracts/debrief/v1/intervention/fixtures/artifact-58905d872dd3c54a9705f67b05fa82edbad7af6476ae8993faf1a7b9fadfb905.txt +0 -1
  346. package/contracts/debrief/v1/intervention/fixtures/assessment.json +0 -29
  347. package/contracts/debrief/v1/intervention/fixtures/blind-view.json +0 -20
  348. package/contracts/debrief/v1/intervention/fixtures/choice.json +0 -7
  349. package/contracts/debrief/v1/intervention/fixtures/manifest.json +0 -57
  350. package/contracts/debrief/v1/intervention/fixtures/reveal.json +0 -39
  351. package/contracts/debrief/v1/provenance.json +0 -89
  352. package/contracts/debrief/v1/work-capture/README.md +0 -38
  353. package/contracts/debrief/v1/work-capture/fixtures/batch.json +0 -17
  354. package/contracts/debrief/v1/work-capture/fixtures/cases.json +0 -184
  355. package/contracts/debrief/v1/work-capture/fixtures/review.json +0 -184
  356. package/contracts/debrief/v1/work-capture/review-request.schema.json +0 -41
  357. package/contracts/debrief/v1/work-capture/work-case.schema.json +0 -190
  358. package/contracts/debrief/v2/README.md +0 -71
  359. package/contracts/debrief/v2/input-pin.json +0 -66
  360. package/contracts/debrief/v2/intervention-upstream.md +0 -40
  361. package/contracts/debrief/v2/work-signals-upstream.md +0 -22
  362. package/contracts/dispatch-control/v1/README.md +0 -109
  363. package/contracts/dispatch-control/v1/request.schema.json +0 -19
  364. package/contracts/effect-profile/v1/README.md +0 -124
  365. package/contracts/execution-retention/v1/README.md +0 -109
  366. package/contracts/execution-retention/v2/README.md +0 -148
  367. package/contracts/execution-retention/v2/fixtures/interrupted-native-bytes.json +0 -91
  368. package/contracts/execution-retention/v2/fixtures/missing-native-session.json +0 -91
  369. package/contracts/execution-retention/v2/fixtures/native-file-unknown-branch.json +0 -91
  370. package/contracts/execution-retention/v2/fixtures/native-id-without-bytes.json +0 -91
  371. package/contracts/execution-retention/v2/fixtures/native-live-branch.json +0 -90
  372. package/contracts/execution-retention/v2/fixtures/replaced-native-session.json +0 -92
  373. package/contracts/execution-retention/v2/fixtures/result-82c620cdfeb8ca6b858cf653d7f5e2eedca5315d6244216d60e8b36f03223d6a.bin +0 -1
  374. package/contracts/execution-retention/v2/fixtures/session-2ec1f134bc739984434f7fca689e1c3d1c39fce2dcadae709e9b6faedfcc4ac7.bin +0 -3
  375. package/contracts/execution-retention/v2/fixtures/session-9bdb4bd16a901da31580acf056bda525225259e15ec409e0410480109011772f.bin +0 -3
  376. package/contracts/execution-retention/v2/manifest.schema.json +0 -858
  377. package/contracts/experiment/v1/README.md +0 -164
  378. package/contracts/factory-order/v1/README.md +0 -151
  379. package/contracts/factory-order/v1/adoption-pin.json +0 -8
  380. package/contracts/intent-control/v1/README.md +0 -135
  381. package/contracts/intent-control/v1/request.schema.json +0 -1096
  382. package/contracts/intent-control/v2/README.md +0 -34
  383. package/contracts/intent-control/v2/request.schema.json +0 -1070
  384. package/contracts/ledger/v2/README.md +0 -59
  385. package/contracts/ledger/v2/fixtures/capability-decision.json +0 -95
  386. package/contracts/ledger/v2/fixtures/check-receipt.json +0 -40
  387. package/contracts/ledger/v2/fixtures/child-lifecycle.json +0 -42
  388. package/contracts/ledger/v2/fixtures/workspace-lease.json +0 -41
  389. package/contracts/ledger/v2/ledger-event.schema.json +0 -633
  390. package/contracts/ledger/v3/README.md +0 -36
  391. package/contracts/ledger/v3/fixtures/check-receipt.json +0 -41
  392. package/contracts/ledger/v3/fixtures/child-lifecycle.json +0 -44
  393. package/contracts/ledger/v3/fixtures/workflow-fact.json +0 -40
  394. package/contracts/ledger/v3/ledger-event.schema.json +0 -955
  395. package/contracts/ledger/v4/README.md +0 -241
  396. package/contracts/ledger/v4/fixtures/layout-options.json +0 -428
  397. package/contracts/ledger/v4/fixtures/work-acceptance.json +0 -57
  398. package/contracts/ledger/v4/fixtures/work-occurrence.json +0 -44
  399. package/contracts/ledger/v4/fixtures/work-revision.json +0 -26
  400. package/contracts/ledger/v4/fixtures/work-snapshot.json +0 -73
  401. package/contracts/ledger/v4/ledger-event.schema.json +0 -162
  402. package/contracts/ordinary-control/v1/README.md +0 -59
  403. package/contracts/producer-ipc/v1/README.md +0 -137
  404. package/dist/approval-prompt.d.ts +0 -119
  405. package/dist/approval-prompt.d.ts.map +0 -1
  406. package/dist/approval-prompt.js +0 -133
  407. package/dist/approval-prompt.js.map +0 -1
  408. package/dist/approval-store.d.ts +0 -149
  409. package/dist/approval-store.d.ts.map +0 -1
  410. package/dist/approval-store.js +0 -314
  411. package/dist/approval-store.js.map +0 -1
  412. package/dist/approval.d.ts +0 -241
  413. package/dist/approval.d.ts.map +0 -1
  414. package/dist/approval.js +0 -268
  415. package/dist/approval.js.map +0 -1
  416. package/dist/capabilities.d.ts +0 -136
  417. package/dist/capabilities.d.ts.map +0 -1
  418. package/dist/capabilities.js +0 -203
  419. package/dist/capabilities.js.map +0 -1
  420. package/dist/catalog.d.ts +0 -98
  421. package/dist/catalog.d.ts.map +0 -1
  422. package/dist/catalog.js +0 -273
  423. package/dist/catalog.js.map +0 -1
  424. package/dist/chain.d.ts.map +0 -1
  425. package/dist/chain.js.map +0 -1
  426. package/dist/check-runner.d.ts +0 -66
  427. package/dist/check-runner.d.ts.map +0 -1
  428. package/dist/check-runner.js +0 -275
  429. package/dist/check-runner.js.map +0 -1
  430. package/dist/control-journal.d.ts +0 -20
  431. package/dist/control-journal.d.ts.map +0 -1
  432. package/dist/control-journal.js +0 -73
  433. package/dist/control-journal.js.map +0 -1
  434. package/dist/correlation.d.ts.map +0 -1
  435. package/dist/correlation.js +0 -231
  436. package/dist/correlation.js.map +0 -1
  437. package/dist/daily-dashboard-host.d.ts +0 -136
  438. package/dist/daily-dashboard-host.d.ts.map +0 -1
  439. package/dist/daily-dashboard-host.js +0 -164
  440. package/dist/daily-dashboard-host.js.map +0 -1
  441. package/dist/daily-panel.d.ts +0 -36
  442. package/dist/daily-panel.d.ts.map +0 -1
  443. package/dist/daily-panel.js +0 -84
  444. package/dist/daily-panel.js.map +0 -1
  445. package/dist/daily-view-input.d.ts +0 -44
  446. package/dist/daily-view-input.d.ts.map +0 -1
  447. package/dist/daily-view-input.js +0 -68
  448. package/dist/daily-view-input.js.map +0 -1
  449. package/dist/daily-view-render.d.ts +0 -5
  450. package/dist/daily-view-render.d.ts.map +0 -1
  451. package/dist/daily-view-render.js +0 -42
  452. package/dist/daily-view-render.js.map +0 -1
  453. package/dist/daily-view.d.ts +0 -77
  454. package/dist/daily-view.d.ts.map +0 -1
  455. package/dist/daily-view.js +0 -176
  456. package/dist/daily-view.js.map +0 -1
  457. package/dist/dashboard-cli.d.ts +0 -48
  458. package/dist/dashboard-cli.d.ts.map +0 -1
  459. package/dist/dashboard-cli.js +0 -331
  460. package/dist/dashboard-cli.js.map +0 -1
  461. package/dist/dashboard-display-controls.d.ts +0 -10
  462. package/dist/dashboard-display-controls.d.ts.map +0 -1
  463. package/dist/dashboard-display-controls.js +0 -25
  464. package/dist/dashboard-display-controls.js.map +0 -1
  465. package/dist/dashboard-handshake.d.ts +0 -37
  466. package/dist/dashboard-handshake.d.ts.map +0 -1
  467. package/dist/dashboard-handshake.js +0 -136
  468. package/dist/dashboard-handshake.js.map +0 -1
  469. package/dist/dashboard-harness.d.ts +0 -22
  470. package/dist/dashboard-harness.d.ts.map +0 -1
  471. package/dist/dashboard-harness.js +0 -89
  472. package/dist/dashboard-harness.js.map +0 -1
  473. package/dist/dashboard-herdr.d.ts +0 -55
  474. package/dist/dashboard-herdr.d.ts.map +0 -1
  475. package/dist/dashboard-herdr.js +0 -293
  476. package/dist/dashboard-herdr.js.map +0 -1
  477. package/dist/dashboard-host-contract.d.ts +0 -127
  478. package/dist/dashboard-host-contract.d.ts.map +0 -1
  479. package/dist/dashboard-host-contract.js +0 -14
  480. package/dist/dashboard-host-contract.js.map +0 -1
  481. package/dist/dashboard-host-transport.d.ts +0 -16
  482. package/dist/dashboard-host-transport.d.ts.map +0 -1
  483. package/dist/dashboard-host-transport.js +0 -127
  484. package/dist/dashboard-host-transport.js.map +0 -1
  485. package/dist/dashboard-host.d.ts +0 -239
  486. package/dist/dashboard-host.d.ts.map +0 -1
  487. package/dist/dashboard-host.js +0 -474
  488. package/dist/dashboard-host.js.map +0 -1
  489. package/dist/dashboard-menu.d.ts +0 -16
  490. package/dist/dashboard-menu.d.ts.map +0 -1
  491. package/dist/dashboard-menu.js +0 -33
  492. package/dist/dashboard-menu.js.map +0 -1
  493. package/dist/dashboard-observation.d.ts +0 -28
  494. package/dist/dashboard-observation.d.ts.map +0 -1
  495. package/dist/dashboard-observation.js +0 -87
  496. package/dist/dashboard-observation.js.map +0 -1
  497. package/dist/dashboard-projection.d.ts +0 -73
  498. package/dist/dashboard-projection.d.ts.map +0 -1
  499. package/dist/dashboard-projection.js +0 -294
  500. package/dist/dashboard-projection.js.map +0 -1
  501. package/dist/dashboard-render.d.ts.map +0 -1
  502. package/dist/dashboard-render.js +0 -212
  503. package/dist/dashboard-render.js.map +0 -1
  504. package/dist/debrief-contract.d.ts +0 -65
  505. package/dist/debrief-contract.d.ts.map +0 -1
  506. package/dist/debrief-contract.js +0 -151
  507. package/dist/debrief-contract.js.map +0 -1
  508. package/dist/debrief-fixture.d.ts +0 -16
  509. package/dist/debrief-fixture.d.ts.map +0 -1
  510. package/dist/debrief-fixture.js +0 -41
  511. package/dist/debrief-fixture.js.map +0 -1
  512. package/dist/debrief-host.d.ts +0 -59
  513. package/dist/debrief-host.d.ts.map +0 -1
  514. package/dist/debrief-host.js +0 -49
  515. package/dist/debrief-host.js.map +0 -1
  516. package/dist/debrief-render.d.ts +0 -5
  517. package/dist/debrief-render.d.ts.map +0 -1
  518. package/dist/debrief-render.js +0 -65
  519. package/dist/debrief-render.js.map +0 -1
  520. package/dist/debrief.d.ts +0 -90
  521. package/dist/debrief.d.ts.map +0 -1
  522. package/dist/debrief.js +0 -263
  523. package/dist/debrief.js.map +0 -1
  524. package/dist/definitions.d.ts.map +0 -1
  525. package/dist/definitions.js +0 -164
  526. package/dist/definitions.js.map +0 -1
  527. package/dist/delegate-types.d.ts +0 -146
  528. package/dist/delegate-types.d.ts.map +0 -1
  529. package/dist/delegate-types.js +0 -8
  530. package/dist/delegate-types.js.map +0 -1
  531. package/dist/delegate.d.ts.map +0 -1
  532. package/dist/delegate.js +0 -305
  533. package/dist/delegate.js.map +0 -1
  534. package/dist/delegation-approval.d.ts.map +0 -1
  535. package/dist/delegation-approval.js +0 -94
  536. package/dist/delegation-approval.js.map +0 -1
  537. package/dist/dispatch-control.d.ts +0 -45
  538. package/dist/dispatch-control.d.ts.map +0 -1
  539. package/dist/dispatch-control.js +0 -76
  540. package/dist/dispatch-control.js.map +0 -1
  541. package/dist/effect-profile-runtime.d.ts +0 -40
  542. package/dist/effect-profile-runtime.d.ts.map +0 -1
  543. package/dist/effect-profile-runtime.js +0 -51
  544. package/dist/effect-profile-runtime.js.map +0 -1
  545. package/dist/effect-profile.d.ts +0 -40
  546. package/dist/effect-profile.d.ts.map +0 -1
  547. package/dist/effect-profile.js +0 -152
  548. package/dist/effect-profile.js.map +0 -1
  549. package/dist/execution-id.d.ts.map +0 -1
  550. package/dist/execution-id.js.map +0 -1
  551. package/dist/execution-retention.d.ts +0 -90
  552. package/dist/execution-retention.d.ts.map +0 -1
  553. package/dist/execution-retention.js +0 -247
  554. package/dist/execution-retention.js.map +0 -1
  555. package/dist/executor.d.ts +0 -39
  556. package/dist/executor.d.ts.map +0 -1
  557. package/dist/executor.js +0 -94
  558. package/dist/executor.js.map +0 -1
  559. package/dist/experiment-contract.d.ts +0 -56
  560. package/dist/experiment-contract.d.ts.map +0 -1
  561. package/dist/experiment-contract.js +0 -80
  562. package/dist/experiment-contract.js.map +0 -1
  563. package/dist/experiment-state.d.ts +0 -22
  564. package/dist/experiment-state.d.ts.map +0 -1
  565. package/dist/experiment-state.js +0 -79
  566. package/dist/experiment-state.js.map +0 -1
  567. package/dist/experiment-store.d.ts +0 -30
  568. package/dist/experiment-store.d.ts.map +0 -1
  569. package/dist/experiment-store.js +0 -147
  570. package/dist/experiment-store.js.map +0 -1
  571. package/dist/experiment.d.ts +0 -65
  572. package/dist/experiment.d.ts.map +0 -1
  573. package/dist/experiment.js +0 -362
  574. package/dist/experiment.js.map +0 -1
  575. package/dist/factory-contract.d.ts +0 -79
  576. package/dist/factory-contract.d.ts.map +0 -1
  577. package/dist/factory-contract.js +0 -89
  578. package/dist/factory-contract.js.map +0 -1
  579. package/dist/factory-migration.d.ts +0 -20
  580. package/dist/factory-migration.d.ts.map +0 -1
  581. package/dist/factory-migration.js +0 -55
  582. package/dist/factory-migration.js.map +0 -1
  583. package/dist/factory-order.d.ts +0 -848
  584. package/dist/factory-order.d.ts.map +0 -1
  585. package/dist/factory-order.js +0 -83
  586. package/dist/factory-order.js.map +0 -1
  587. package/dist/factory-registry.d.ts +0 -121
  588. package/dist/factory-registry.d.ts.map +0 -1
  589. package/dist/factory-registry.js +0 -133
  590. package/dist/factory-registry.js.map +0 -1
  591. package/dist/fanout.d.ts.map +0 -1
  592. package/dist/fanout.js +0 -93
  593. package/dist/fanout.js.map +0 -1
  594. package/dist/file-lock.d.ts.map +0 -1
  595. package/dist/file-lock.js +0 -201
  596. package/dist/file-lock.js.map +0 -1
  597. package/dist/finalization.d.ts.map +0 -1
  598. package/dist/finalization.js.map +0 -1
  599. package/dist/git-identity.d.ts +0 -13
  600. package/dist/git-identity.d.ts.map +0 -1
  601. package/dist/git-identity.js +0 -47
  602. package/dist/git-identity.js.map +0 -1
  603. package/dist/grant-env.d.ts +0 -75
  604. package/dist/grant-env.d.ts.map +0 -1
  605. package/dist/grant-env.js +0 -154
  606. package/dist/grant-env.js.map +0 -1
  607. package/dist/grant-store.d.ts +0 -96
  608. package/dist/grant-store.d.ts.map +0 -1
  609. package/dist/grant-store.js +0 -188
  610. package/dist/grant-store.js.map +0 -1
  611. package/dist/herdr-cli.d.ts +0 -78
  612. package/dist/herdr-cli.d.ts.map +0 -1
  613. package/dist/herdr-cli.js +0 -113
  614. package/dist/herdr-cli.js.map +0 -1
  615. package/dist/herdr-name.d.ts.map +0 -1
  616. package/dist/herdr-name.js.map +0 -1
  617. package/dist/herdr-pi-lifecycle.d.ts.map +0 -1
  618. package/dist/herdr-pi-lifecycle.js +0 -22
  619. package/dist/herdr-pi-lifecycle.js.map +0 -1
  620. package/dist/herdr-poll.d.ts +0 -133
  621. package/dist/herdr-poll.d.ts.map +0 -1
  622. package/dist/herdr-poll.js +0 -222
  623. package/dist/herdr-poll.js.map +0 -1
  624. package/dist/herdr-stage.d.ts +0 -40
  625. package/dist/herdr-stage.d.ts.map +0 -1
  626. package/dist/herdr-stage.js +0 -54
  627. package/dist/herdr-stage.js.map +0 -1
  628. package/dist/herdr-start.d.ts.map +0 -1
  629. package/dist/herdr-start.js.map +0 -1
  630. package/dist/init.d.ts +0 -117
  631. package/dist/init.d.ts.map +0 -1
  632. package/dist/init.js +0 -323
  633. package/dist/init.js.map +0 -1
  634. package/dist/intent-application.d.ts +0 -17
  635. package/dist/intent-application.d.ts.map +0 -1
  636. package/dist/intent-application.js +0 -114
  637. package/dist/intent-application.js.map +0 -1
  638. package/dist/intent-control.d.ts +0 -201
  639. package/dist/intent-control.d.ts.map +0 -1
  640. package/dist/intent-control.js +0 -110
  641. package/dist/intent-control.js.map +0 -1
  642. package/dist/intent-scheduling.d.ts +0 -9
  643. package/dist/intent-scheduling.d.ts.map +0 -1
  644. package/dist/intent-scheduling.js +0 -15
  645. package/dist/intent-scheduling.js.map +0 -1
  646. package/dist/learning-connection.d.ts +0 -127
  647. package/dist/learning-connection.d.ts.map +0 -1
  648. package/dist/learning-connection.js +0 -54
  649. package/dist/learning-connection.js.map +0 -1
  650. package/dist/lease-helper.d.ts.map +0 -1
  651. package/dist/lease-helper.js +0 -94
  652. package/dist/lease-helper.js.map +0 -1
  653. package/dist/lease-record.d.ts +0 -90
  654. package/dist/lease-record.d.ts.map +0 -1
  655. package/dist/lease-record.js.map +0 -1
  656. package/dist/ledger-append.d.ts +0 -15
  657. package/dist/ledger-append.d.ts.map +0 -1
  658. package/dist/ledger-append.js +0 -94
  659. package/dist/ledger-append.js.map +0 -1
  660. package/dist/ledger-events.d.ts +0 -131
  661. package/dist/ledger-events.d.ts.map +0 -1
  662. package/dist/ledger-events.js +0 -107
  663. package/dist/ledger-events.js.map +0 -1
  664. package/dist/ledger-identifiers.d.ts.map +0 -1
  665. package/dist/ledger-identifiers.js.map +0 -1
  666. package/dist/ledger-report.d.ts +0 -134
  667. package/dist/ledger-report.d.ts.map +0 -1
  668. package/dist/ledger-report.js +0 -271
  669. package/dist/ledger-report.js.map +0 -1
  670. package/dist/ledger-v3-validation.d.ts +0 -11
  671. package/dist/ledger-v3-validation.d.ts.map +0 -1
  672. package/dist/ledger-v3-validation.js +0 -265
  673. package/dist/ledger-v3-validation.js.map +0 -1
  674. package/dist/ledger.d.ts +0 -242
  675. package/dist/ledger.d.ts.map +0 -1
  676. package/dist/ledger.js +0 -142
  677. package/dist/ledger.js.map +0 -1
  678. package/dist/measured-order.d.ts +0 -249
  679. package/dist/measured-order.d.ts.map +0 -1
  680. package/dist/measured-order.js +0 -309
  681. package/dist/measured-order.js.map +0 -1
  682. package/dist/measured-session.d.ts +0 -97
  683. package/dist/measured-session.d.ts.map +0 -1
  684. package/dist/measured-session.js +0 -134
  685. package/dist/measured-session.js.map +0 -1
  686. package/dist/model-preflight.d.ts +0 -13
  687. package/dist/model-preflight.d.ts.map +0 -1
  688. package/dist/model-preflight.js +0 -29
  689. package/dist/model-preflight.js.map +0 -1
  690. package/dist/native-session-target.d.ts +0 -9
  691. package/dist/native-session-target.d.ts.map +0 -1
  692. package/dist/native-session-target.js +0 -29
  693. package/dist/native-session-target.js.map +0 -1
  694. package/dist/native-session.d.ts +0 -59
  695. package/dist/native-session.d.ts.map +0 -1
  696. package/dist/native-session.js +0 -154
  697. package/dist/native-session.js.map +0 -1
  698. package/dist/order-schedule.d.ts +0 -37
  699. package/dist/order-schedule.d.ts.map +0 -1
  700. package/dist/order-schedule.js +0 -81
  701. package/dist/order-schedule.js.map +0 -1
  702. package/dist/ordinary-children.d.ts +0 -52
  703. package/dist/ordinary-children.d.ts.map +0 -1
  704. package/dist/ordinary-children.js +0 -93
  705. package/dist/ordinary-children.js.map +0 -1
  706. package/dist/pane-reaper.d.ts +0 -111
  707. package/dist/pane-reaper.d.ts.map +0 -1
  708. package/dist/pane-reaper.js +0 -242
  709. package/dist/pane-reaper.js.map +0 -1
  710. package/dist/pi-tools.d.ts.map +0 -1
  711. package/dist/pi-tools.js +0 -21
  712. package/dist/pi-tools.js.map +0 -1
  713. package/dist/producer-ipc-contract.d.ts +0 -29
  714. package/dist/producer-ipc-contract.d.ts.map +0 -1
  715. package/dist/producer-ipc-contract.js +0 -29
  716. package/dist/producer-ipc-contract.js.map +0 -1
  717. package/dist/producer-ipc.d.ts +0 -55
  718. package/dist/producer-ipc.d.ts.map +0 -1
  719. package/dist/producer-ipc.js +0 -143
  720. package/dist/producer-ipc.js.map +0 -1
  721. package/dist/product-files.d.ts +0 -6
  722. package/dist/product-files.d.ts.map +0 -1
  723. package/dist/product-files.js +0 -55
  724. package/dist/product-files.js.map +0 -1
  725. package/dist/progress.d.ts.map +0 -1
  726. package/dist/progress.js.map +0 -1
  727. package/dist/propagation.d.ts +0 -203
  728. package/dist/propagation.d.ts.map +0 -1
  729. package/dist/propagation.js +0 -279
  730. package/dist/propagation.js.map +0 -1
  731. package/dist/refusals.d.ts +0 -16
  732. package/dist/refusals.d.ts.map +0 -1
  733. package/dist/refusals.js +0 -55
  734. package/dist/refusals.js.map +0 -1
  735. package/dist/resolve.d.ts.map +0 -1
  736. package/dist/resolve.js +0 -211
  737. package/dist/resolve.js.map +0 -1
  738. package/dist/resource-budget.d.ts +0 -334
  739. package/dist/resource-budget.d.ts.map +0 -1
  740. package/dist/resource-budget.js +0 -415
  741. package/dist/resource-budget.js.map +0 -1
  742. package/dist/retention-contract.d.ts.map +0 -1
  743. package/dist/retention-contract.js +0 -104
  744. package/dist/retention-contract.js.map +0 -1
  745. package/dist/retention-json.d.ts.map +0 -1
  746. package/dist/retention-json.js.map +0 -1
  747. package/dist/routing-authority.d.ts.map +0 -1
  748. package/dist/routing-authority.js.map +0 -1
  749. package/dist/run-child.d.ts +0 -87
  750. package/dist/run-child.d.ts.map +0 -1
  751. package/dist/run-child.js +0 -248
  752. package/dist/run-child.js.map +0 -1
  753. package/dist/run-herdr.d.ts +0 -119
  754. package/dist/run-herdr.d.ts.map +0 -1
  755. package/dist/run-herdr.js +0 -335
  756. package/dist/run-herdr.js.map +0 -1
  757. package/dist/skill-packages.d.ts +0 -116
  758. package/dist/skill-packages.d.ts.map +0 -1
  759. package/dist/skill-packages.js +0 -295
  760. package/dist/skill-packages.js.map +0 -1
  761. package/dist/skill-resources.d.ts.map +0 -1
  762. package/dist/skill-resources.js +0 -52
  763. package/dist/skill-resources.js.map +0 -1
  764. package/dist/spawn.d.ts.map +0 -1
  765. package/dist/spawn.js.map +0 -1
  766. package/dist/vendor/adoption.d.ts +0 -129
  767. package/dist/vendor/adoption.d.ts.map +0 -1
  768. package/dist/vendor/adoption.js +0 -102
  769. package/dist/vendor/adoption.js.map +0 -1
  770. package/dist/vendor/herdr-pi-lifecycle.d.ts.map +0 -1
  771. package/dist/vendor/herdr-pi-lifecycle.js.map +0 -1
  772. package/dist/work-command.d.ts +0 -32
  773. package/dist/work-command.d.ts.map +0 -1
  774. package/dist/work-command.js +0 -179
  775. package/dist/work-command.js.map +0 -1
  776. package/dist/work-ledger-destination.d.ts +0 -20
  777. package/dist/work-ledger-destination.d.ts.map +0 -1
  778. package/dist/work-ledger-destination.js +0 -131
  779. package/dist/work-ledger-destination.js.map +0 -1
  780. package/dist/work-ledger-json.d.ts +0 -25
  781. package/dist/work-ledger-json.d.ts.map +0 -1
  782. package/dist/work-ledger-json.js +0 -267
  783. package/dist/work-ledger-json.js.map +0 -1
  784. package/dist/work-ledger-occurrences.d.ts +0 -227
  785. package/dist/work-ledger-occurrences.d.ts.map +0 -1
  786. package/dist/work-ledger-occurrences.js +0 -115
  787. package/dist/work-ledger-occurrences.js.map +0 -1
  788. package/dist/work-ledger-projection.d.ts +0 -295
  789. package/dist/work-ledger-projection.d.ts.map +0 -1
  790. package/dist/work-ledger-projection.js +0 -237
  791. package/dist/work-ledger-projection.js.map +0 -1
  792. package/dist/work-ledger-snapshot.d.ts +0 -29
  793. package/dist/work-ledger-snapshot.d.ts.map +0 -1
  794. package/dist/work-ledger-snapshot.js +0 -267
  795. package/dist/work-ledger-snapshot.js.map +0 -1
  796. package/dist/work-ledger-types.d.ts +0 -261
  797. package/dist/work-ledger-types.d.ts.map +0 -1
  798. package/dist/work-ledger-types.js +0 -13
  799. package/dist/work-ledger-types.js.map +0 -1
  800. package/dist/work-ledger-validation.d.ts +0 -14
  801. package/dist/work-ledger-validation.d.ts.map +0 -1
  802. package/dist/work-ledger-validation.js +0 -226
  803. package/dist/work-ledger-validation.js.map +0 -1
  804. package/dist/work-ledger.d.ts +0 -43
  805. package/dist/work-ledger.d.ts.map +0 -1
  806. package/dist/work-ledger.js +0 -225
  807. package/dist/work-ledger.js.map +0 -1
  808. package/dist/work-policy-registry.d.ts +0 -133
  809. package/dist/work-policy-registry.d.ts.map +0 -1
  810. package/dist/work-policy-registry.js +0 -128
  811. package/dist/work-policy-registry.js.map +0 -1
  812. package/dist/work-run.d.ts +0 -56
  813. package/dist/work-run.d.ts.map +0 -1
  814. package/dist/work-run.js +0 -102
  815. package/dist/work-run.js.map +0 -1
  816. package/dist/work-setup.d.ts +0 -40
  817. package/dist/work-setup.d.ts.map +0 -1
  818. package/dist/work-setup.js +0 -174
  819. package/dist/work-setup.js.map +0 -1
  820. package/dist/workflow-fact-id.d.ts +0 -4
  821. package/dist/workflow-fact-id.d.ts.map +0 -1
  822. package/dist/workflow-fact-id.js +0 -14
  823. package/dist/workflow-fact-id.js.map +0 -1
  824. package/dist/workflow-facts.d.ts +0 -34
  825. package/dist/workflow-facts.d.ts.map +0 -1
  826. package/dist/workflow-facts.js +0 -43
  827. package/dist/workflow-facts.js.map +0 -1
  828. package/dist/workspace-lease.d.ts +0 -40
  829. package/dist/workspace-lease.d.ts.map +0 -1
  830. package/dist/workspace-lease.js +0 -333
  831. package/dist/workspace-lease.js.map +0 -1
  832. package/dist/workspace.d.ts +0 -57
  833. package/dist/workspace.d.ts.map +0 -1
  834. package/dist/workspace.js +0 -216
  835. package/dist/workspace.js.map +0 -1
  836. package/extensions/daily-dashboard-session.ts +0 -48
  837. package/extensions/daily-work-session.ts +0 -20
  838. package/extensions/learning-outcome-session.ts +0 -38
  839. package/extensions/learning-session.ts +0 -59
  840. package/extensions/ordinary-runtime.ts +0 -14
  841. package/extensions/primary-shadow.ts +0 -11
  842. package/extensions/work-policy-session.ts +0 -139
  843. package/extensions/work-run-session.ts +0 -75
  844. package/extensions/work-runtime.ts +0 -44
  845. package/extensions/work-session.ts +0 -132
  846. package/src/approval-prompt.ts +0 -225
  847. package/src/approval-store.ts +0 -386
  848. package/src/approval.ts +0 -399
  849. package/src/capabilities.ts +0 -220
  850. package/src/catalog.ts +0 -306
  851. package/src/check-runner.ts +0 -387
  852. package/src/control-journal.ts +0 -26
  853. package/src/correlation.ts +0 -320
  854. package/src/daily-dashboard-host.ts +0 -105
  855. package/src/daily-panel.ts +0 -80
  856. package/src/daily-view-input.ts +0 -59
  857. package/src/daily-view-render.ts +0 -45
  858. package/src/daily-view.ts +0 -160
  859. package/src/dashboard-cli.ts +0 -315
  860. package/src/dashboard-display-controls.ts +0 -18
  861. package/src/dashboard-handshake.ts +0 -194
  862. package/src/dashboard-harness.ts +0 -37
  863. package/src/dashboard-herdr.ts +0 -363
  864. package/src/dashboard-host-contract.ts +0 -50
  865. package/src/dashboard-host-transport.ts +0 -43
  866. package/src/dashboard-host.ts +0 -244
  867. package/src/dashboard-menu.ts +0 -28
  868. package/src/dashboard-observation.ts +0 -46
  869. package/src/dashboard-projection.ts +0 -390
  870. package/src/dashboard-render.ts +0 -259
  871. package/src/debrief-contract.ts +0 -127
  872. package/src/debrief-fixture.ts +0 -29
  873. package/src/debrief-host.ts +0 -53
  874. package/src/debrief-render.ts +0 -49
  875. package/src/debrief.ts +0 -198
  876. package/src/definitions.ts +0 -211
  877. package/src/delegate-types.ts +0 -150
  878. package/src/delegate.ts +0 -341
  879. package/src/delegation-approval.ts +0 -126
  880. package/src/dispatch-control.ts +0 -81
  881. package/src/effect-profile-runtime.ts +0 -46
  882. package/src/effect-profile.ts +0 -129
  883. package/src/execution-retention.ts +0 -230
  884. package/src/executor.ts +0 -123
  885. package/src/experiment-contract.ts +0 -66
  886. package/src/experiment-state.ts +0 -44
  887. package/src/experiment-store.ts +0 -98
  888. package/src/experiment.ts +0 -236
  889. package/src/factory-contract.ts +0 -47
  890. package/src/factory-migration.ts +0 -29
  891. package/src/factory-order.ts +0 -56
  892. package/src/factory-registry.ts +0 -60
  893. package/src/fanout.ts +0 -106
  894. package/src/file-lock.ts +0 -178
  895. package/src/finalization.ts +0 -79
  896. package/src/git-identity.ts +0 -56
  897. package/src/grant-env.ts +0 -221
  898. package/src/grant-store.ts +0 -235
  899. package/src/herdr-cli.ts +0 -125
  900. package/src/herdr-pi-lifecycle.ts +0 -21
  901. package/src/herdr-poll.ts +0 -253
  902. package/src/herdr-stage.ts +0 -55
  903. package/src/init.ts +0 -389
  904. package/src/intent-application.ts +0 -91
  905. package/src/intent-control.ts +0 -107
  906. package/src/intent-scheduling.ts +0 -14
  907. package/src/learning-connection.ts +0 -70
  908. package/src/lease-helper.ts +0 -97
  909. package/src/lease-record.ts +0 -131
  910. package/src/ledger-append.ts +0 -72
  911. package/src/ledger-events.ts +0 -226
  912. package/src/ledger-report.ts +0 -357
  913. package/src/ledger-v3-validation.ts +0 -266
  914. package/src/ledger.ts +0 -369
  915. package/src/measured-order.ts +0 -72
  916. package/src/measured-session.ts +0 -70
  917. package/src/model-preflight.ts +0 -41
  918. package/src/native-session-target.ts +0 -23
  919. package/src/native-session.ts +0 -139
  920. package/src/order-schedule.ts +0 -42
  921. package/src/ordinary-children.ts +0 -59
  922. package/src/pane-reaper.ts +0 -270
  923. package/src/pi-tools.ts +0 -25
  924. package/src/producer-ipc-contract.ts +0 -26
  925. package/src/producer-ipc.ts +0 -107
  926. package/src/product-files.ts +0 -34
  927. package/src/propagation.ts +0 -333
  928. package/src/refusals.ts +0 -70
  929. package/src/resolve.ts +0 -267
  930. package/src/resource-budget.ts +0 -349
  931. package/src/retention-contract.ts +0 -84
  932. package/src/retention-json.ts +0 -20
  933. package/src/run-child.ts +0 -303
  934. package/src/run-herdr.ts +0 -386
  935. package/src/skill-packages.ts +0 -314
  936. package/src/skill-resources.ts +0 -48
  937. package/src/vendor/adoption.ts +0 -109
  938. package/src/work-command.ts +0 -197
  939. package/src/work-ledger-destination.ts +0 -113
  940. package/src/work-ledger-json.ts +0 -228
  941. package/src/work-ledger-occurrences.ts +0 -99
  942. package/src/work-ledger-projection.ts +0 -262
  943. package/src/work-ledger-snapshot.ts +0 -246
  944. package/src/work-ledger-types.ts +0 -229
  945. package/src/work-ledger-validation.ts +0 -174
  946. package/src/work-ledger.ts +0 -186
  947. package/src/work-policy-registry.ts +0 -81
  948. package/src/work-run.ts +0 -79
  949. package/src/work-setup.ts +0 -141
  950. package/src/workflow-fact-id.ts +0 -16
  951. package/src/workflow-facts.ts +0 -65
  952. package/src/workspace-lease.ts +0 -363
  953. package/src/workspace.ts +0 -308
  954. /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/capability-decision.json +0 -0
  955. /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/workspace-lease.json +0 -0
  956. /package/dist/{herdr-name.d.ts → executors/herdr-name.d.ts} +0 -0
  957. /package/dist/{herdr-name.js → executors/herdr-name.js} +0 -0
  958. /package/dist/{herdr-pi-lifecycle.d.ts → executors/herdr-pi-lifecycle.d.ts} +0 -0
  959. /package/dist/{herdr-start.d.ts → executors/herdr-start.d.ts} +0 -0
  960. /package/dist/{herdr-start.js → executors/herdr-start.js} +0 -0
  961. /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.d.ts +0 -0
  962. /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.js +0 -0
  963. /package/dist/{file-lock.d.ts → governance/file-lock.d.ts} +0 -0
  964. /package/dist/{finalization.d.ts → governance/finalization.d.ts} +0 -0
  965. /package/dist/{finalization.js → governance/finalization.js} +0 -0
  966. /package/dist/{lease-helper.d.ts → governance/lease-helper.d.ts} +0 -0
  967. /package/dist/{lease-record.js → governance/lease-record.js} +0 -0
  968. /package/dist/{retention-contract.d.ts → governance/retention-contract.d.ts} +0 -0
  969. /package/dist/{retention-json.d.ts → governance/retention-json.d.ts} +0 -0
  970. /package/dist/{retention-json.js → governance/retention-json.js} +0 -0
  971. /package/dist/{chain.d.ts → kernel/chain.d.ts} +0 -0
  972. /package/dist/{chain.js → kernel/chain.js} +0 -0
  973. /package/dist/{correlation.d.ts → kernel/correlation.d.ts} +0 -0
  974. /package/dist/{definitions.d.ts → kernel/definitions.d.ts} +0 -0
  975. /package/dist/{delegate.d.ts → kernel/delegate.d.ts} +0 -0
  976. /package/dist/{delegation-approval.d.ts → kernel/delegation-approval.d.ts} +0 -0
  977. /package/dist/{execution-id.d.ts → kernel/execution-id.d.ts} +0 -0
  978. /package/dist/{execution-id.js → kernel/execution-id.js} +0 -0
  979. /package/dist/{fanout.d.ts → kernel/fanout.d.ts} +0 -0
  980. /package/dist/{ledger-identifiers.d.ts → kernel/ledger-identifiers.d.ts} +0 -0
  981. /package/dist/{ledger-identifiers.js → kernel/ledger-identifiers.js} +0 -0
  982. /package/dist/{pi-tools.d.ts → kernel/pi-tools.d.ts} +0 -0
  983. /package/dist/{progress.d.ts → kernel/progress.d.ts} +0 -0
  984. /package/dist/{progress.js → kernel/progress.js} +0 -0
  985. /package/dist/{resolve.d.ts → kernel/resolve.d.ts} +0 -0
  986. /package/dist/{routing-authority.d.ts → kernel/routing-authority.d.ts} +0 -0
  987. /package/dist/{routing-authority.js → kernel/routing-authority.js} +0 -0
  988. /package/dist/{skill-resources.d.ts → kernel/skill-resources.d.ts} +0 -0
  989. /package/dist/{spawn.d.ts → kernel/spawn.d.ts} +0 -0
  990. /package/dist/{spawn.js → kernel/spawn.js} +0 -0
  991. /package/dist/{dashboard-render.d.ts → products/dashboard-render.d.ts} +0 -0
  992. /package/src/{herdr-name.ts → executors/herdr-name.ts} +0 -0
  993. /package/src/{herdr-start.ts → executors/herdr-start.ts} +0 -0
  994. /package/src/{vendor → executors/vendor}/herdr-pi-lifecycle.ts +0 -0
  995. /package/src/{chain.ts → kernel/chain.ts} +0 -0
  996. /package/src/{execution-id.ts → kernel/execution-id.ts} +0 -0
  997. /package/src/{ledger-identifiers.ts → kernel/ledger-identifiers.ts} +0 -0
  998. /package/src/{progress.ts → kernel/progress.ts} +0 -0
  999. /package/src/{routing-authority.ts → kernel/routing-authority.ts} +0 -0
  1000. /package/src/{spawn.ts → kernel/spawn.ts} +0 -0
@@ -1,14 +0,0 @@
1
- import { intentKey, intentSelection, intentPriorities, type IntentState, type IntentAdmission } from "./intent-control.ts";
2
- import { controlShape } from "./dispatch-control.ts";
3
- interface Charged { intent?: IntentAdmission }
4
- export function nextIntent(state: IntentState, records: readonly Charged[]) {
5
- return intentPriorities(state.priorities).find(p => !records.some(r => r.intent &&
6
- intentKey(r.intent.selection) === intentKey(state.selection) && intentKey(r.intent.obligation) === intentKey(p.obligation)))?.obligation ?? null;
7
- }
8
- /** Explicit once-per-selection primary dispatch policy. This is not completion/acceptance accounting. */
9
- export function intentAdmission(state: IntentState, records: readonly Charged[], input: IntentAdmission): IntentAdmission {
10
- controlShape(input, ["selection", "revision", "obligation"]);
11
- const selection = intentSelection(input.selection), obligation = intentPriorities([{ obligation: input.obligation, rank: 0 }])[0].obligation;
12
- if (input.revision !== state.revision || intentKey(selection) !== intentKey(state.selection) || intentKey(obligation) !== intentKey(nextIntent(state, records))) throw new Error("stale selection/revision or out-of-priority dispatch");
13
- return { selection, revision: input.revision, obligation };
14
- }
@@ -1,70 +0,0 @@
1
- import { join, resolve } from "node:path";
2
- import { intentKey } from "./intent-control.ts";
3
- import { loadDeclaredWork, type DeclaredWorkState } from "./work-command.ts";
4
- import { readProductJson, writeProductJson } from "./product-files.ts";
5
- import { loadedDashboardHarnessDigest } from "./dashboard-harness.ts";
6
- import type { DashboardHarness } from "./dashboard-host-contract.ts";
7
- import { buildAdoptionBinding, type AdoptionAuthority, type AdoptionBinding, type AdoptionFacts, type AdoptionReceipt, type RollbackRequest, type ProductionObservation } from "./vendor/adoption.ts";
8
-
9
- export interface LearningConfiguration { archiveRoot: string; scopeDigest: string; population: string; author: string }
10
- export interface LearningUI { select(title: string, choices: string[]): Promise<string | undefined>; input(title: string, initial?: string): Promise<string | undefined>; editor(title: string, text: string): Promise<string | undefined>; confirm(title: string, detail: string): Promise<boolean>; notify(text: string, level?: "info" | "warning" | "error"): void }
11
- export interface LearningComparisonContext { caseReference: unknown | null; hypothesisManifestId: string | null; adoptionBinding: AdoptionBinding | null }
12
- export interface LearningWorkspace {
13
- configuration(): LearningConfiguration;
14
- inspect(now: number): { version: string; configuration: LearningConfiguration; cases: { name: string; title: string; state?: string; reason?: string }[]; comparisons: { name: string; title: string; state?: string; reason?: string }[]; trust: Record<string, unknown>; [key: string]: unknown };
15
- dashboardBinding(): { trustDirectory: string | null; trustPolicyId: string | null };
16
- bindCases(input: { name: string; title: string; version: 2 | 3; batchId: string }): unknown;
17
- comparisonContext(name: string): LearningComparisonContext;
18
- linkComparisonContext(name:string, context:LearningComparisonContext):unknown;
19
- hypotheses(): {name:string;manifestId:string;hypothesis:{id:string}}[];
20
- decisionStatus(name:string):{current:{disposition:string}|null};
21
- reveal(name:string):{manifestId:string;choice:{kind:string;labels:readonly string[]};arms:readonly {label:string;configuration:{configuration:string}}[]};
22
- preparedAdoption(name: string): AdoptionReceipt | null;
23
- previewObservation(name: string, input: ProductionObservation): { observation: ProductionObservation; classification: unknown; digest: string };
24
- observe(name: string, input: ProductionObservation, authorized: readonly string[]): { manifestId: string };
25
- prepareAdoption(name: string, authority: AdoptionAuthority | null, facts: AdoptionFacts, now: number): AdoptionReceipt;
26
- linkActivation(name: string, manifest: string, independentlyAuthorized: readonly string[]): unknown;
27
- previewRollback(name: string, reason: "operator-request" | "confirmed-escape", evidence: string[], expiresAt?: number): RollbackRequest;
28
- prepareRollback(name: string, request: RollbackRequest, authority: AdoptionAuthority | null, now: number, current: { adoptionId: string; candidateDigest: string; scopeDigest: string }): unknown;
29
- linkRollback(name: string, manifest: string, independentlyAuthorized: readonly string[]): unknown;
30
- }
31
- export interface LearningHarness extends DashboardHarness {
32
- createLearningWorkspace(directory: string, input: LearningConfiguration): LearningWorkspace;
33
- openLearningWorkspace(directory: string): LearningWorkspace;
34
- runLearningWizard(input: { directory: string; cwd: string; ui: LearningUI }): Promise<unknown>;
35
- }
36
- export function learningHarness(harness: DashboardHarness): LearningHarness {
37
- if (!loadedDashboardHarnessDigest(harness) || ["createLearningWorkspace", "openLearningWorkspace", "runLearningWizard"].some(key => typeof (harness as unknown as Record<string, unknown>)[key] !== "function")) throw Error("Learning services are unavailable in the loaded skill-harness. Load the compatible learning-workspace-v1 release and start a fresh Pi session (the existing immutable bridge survives /reload); no private adapter is needed.");
38
- return harness as LearningHarness;
39
- }
40
- /** Author only the missing binding from validated public readback after a durable choice. No authority is generated. */
41
- export function bindLearningAdoption(workspace:LearningWorkspace,name:string,input:{candidateDigest:string;rollbackCandidateDigest:string;assessmentPolicyDigest:string;expiresAt:number}):AdoptionBinding {
42
- const context=workspace.comparisonContext(name);
43
- if(context.adoptionBinding)throw Error("Adoption proposal is already bound; it cannot be replaced");
44
- if(!context.caseReference||!context.hypothesisManifestId)throw Error("Link the comparison's original confirmed case and hypothesis in Learning first");
45
- const original=workspace.hypotheses().find(h=>h.manifestId===context.hypothesisManifestId);
46
- if(!original||workspace.decisionStatus(name).current?.disposition!=="adopt")throw Error("Retained original hypothesis and explicit adopt intent required");
47
- const reveal=workspace.reveal(name);
48
- if(!["one","tie"].includes(reveal.choice.kind)||!reveal.arms.some(a=>reveal.choice.labels.includes(a.label)&&a.configuration.configuration===input.candidateDigest))throw Error("Candidate is not the exact configuration selected by the full-artifact quality choice");
49
- const binding=buildAdoptionBinding({...input,hypothesisDigest:original.hypothesis.id,experimentDigest:reveal.manifestId,scopeDigest:workspace.configuration().scopeDigest,activationBoundary:"next-orders"});
50
- workspace.linkComparisonContext(name,{...context,adoptionBinding:binding});return binding;
51
- }
52
- export interface LearningConnection { version: "producer-learning-connection-v1"; directory: string; configuration: LearningConfiguration; selection: DeclaredWorkState["selectedSnapshot"] }
53
- export const learningScopeDigest = (state: DeclaredWorkState) => state.selectedSnapshot.snapshot.digest;
54
- export async function bindLearningConnection(cwd: string, state: DeclaredWorkState, directory: string, harness: LearningHarness, author: string): Promise<LearningConnection> {
55
- if (resolve(directory) !== directory) throw Error("absolute learning workspace directory required");
56
- const current=await loadDeclaredWork(state.statePath);
57
- if(intentKey(current?.selectedSnapshot??null)!==intentKey(state.selectedSnapshot))throw Error("selected work changed before learning connection; reopen Learning");
58
- const configuration = harness.openLearningWorkspace(directory).configuration();
59
- if (configuration.scopeDigest !== learningScopeDigest(state) || configuration.author !== author) throw Error("learning workspace belongs to another work scope or author; not rebound");
60
- const connection: LearningConnection = { version: "producer-learning-connection-v1", directory, configuration, selection: state.selectedSnapshot };
61
- await writeProductJson(join(resolve(cwd), ".pi", "learning-workspace.json"), connection, true); return connection;
62
- }
63
- export async function loadLearningConnection(cwd: string, state: DeclaredWorkState, harness: LearningHarness, author: string): Promise<{ connection: LearningConnection; workspace: LearningWorkspace } | null> {
64
- const c = await readProductJson(join(resolve(cwd), ".pi", "learning-workspace.json")) as LearningConnection | null;
65
- if (!c) return null;
66
- if (Object.keys(c).sort().join() !== "configuration,directory,selection,version" || c.version !== "producer-learning-connection-v1" || typeof c.directory !== "string" || resolve(c.directory) !== c.directory || intentKey(c.selection) !== intentKey(state.selectedSnapshot)) throw Error("Learning connection is stale for selected work. Reconnect deliberately with /grants learning; no evidence was carried forward.");
67
- const workspace = harness.openLearningWorkspace(c.directory), actual = workspace.configuration();
68
- if (intentKey(actual) !== intentKey(c.configuration) || actual.scopeDigest !== learningScopeDigest(state) || actual.author !== author) throw Error("learning archive/population/scope/author mismatch");
69
- return { connection: c, workspace };
70
- }
@@ -1,97 +0,0 @@
1
- /**
2
- * **The lock helper: a separate program, and the parent's side of its pipes.**
3
- *
4
- * Split out of `workspace-lease.ts` because `test/file-size.test.ts` refused that file — at 405 lines on the
5
- * ADR-0035 branch when PR #14 merged into it, and at 435 here once R-152's guards landed. Both branches take
6
- * the same seam so they converge rather than diverge, and the cap has never been raised: `delegate.ts` was
7
- * split at 413 the same way (rule: when a guard fails, obey it).
8
- *
9
- * The seam is not arbitrary. Everything here concerns the process that HOLDS the kernel lock — the source it
10
- * runs, the readiness token it prints, and the parent-side handles that keep it referenced.
11
- * `workspace-lease.ts` keeps the lease lifecycle that talks to it.
12
- */
13
-
14
- export const LEASE_READY = "PI_DADDY_LEASE_READY";
15
- // The lock holder also owns crash cleanup for the governed child. If the parent dies, stdin closes;
16
- // the helper signals the attached process, or closes the herdr tab, before releasing flock. A raw
17
- // descendant deliberately detached by bash remains ADR-0012's OS-containment boundary, not a lease
18
- // guarantee. The process branch SIGTERMs, escalates to SIGKILL at +500ms, and releases at +750ms
19
- // WITHOUT confirming death (R-101). The herdr branch retries `tab close` a BOUNDED number of times
20
- // and then releases anyway, leaving a marker file: an unreleasable lock strands a worktree forever
21
- // with no in-product recovery, which is strictly worse than a recorded failure to close (R-102).
22
- //
23
- // **Each attempt is bounded in WALL CLOCK, not just in count (R-146).** `execFile` with no `timeout`
24
- // never calls back if `herdr` accepts the close and does not answer, so the retry counter never
25
- // decrements, `giveUp` never runs and no marker is written — the lock is held forever. That was masked
26
- // while the parent could not exit, because the operator saw a hung `pi` instead; measured with a `herdr`
27
- // that sleeps, the parent then exited in 82ms and left a silent strand, which is R-102's rejected outcome
28
- // reached quietly. A bound on retries is not a bound on time.
29
- export const HELPER_SOURCE = `
30
- import { execFile } from "node:child_process";
31
- import { writeFileSync } from "node:fs";
32
- let clean=false, target=null, buffered="";
33
- process.stdout.write(${JSON.stringify(`${LEASE_READY}:`)}+process.pid+"\\n");
34
- process.stdin.setEncoding("utf8");
35
- process.stdin.on("data",chunk=>{buffered+=chunk;for(;;){const i=buffered.indexOf("\\n");if(i<0)break;const line=buffered.slice(0,i);buffered=buffered.slice(i+1);try{const value=JSON.parse(line);if(value.release)clean=true;else if(value.process_pid)target={process_pid:value.process_pid};else if(value.herdr_tab)target={herdr_tab:value.herdr_tab};}catch{}}});
36
- process.stdin.on("end",()=>{if(clean||!target)return process.exit(0);if(target.process_pid){try{process.kill(target.process_pid,"SIGTERM")}catch{return process.exit(0)}setTimeout(()=>{try{process.kill(target.process_pid,"SIGKILL")}catch{}},500);return setTimeout(()=>process.exit(0),750);}let left=Number(process.env.PI_DADDY_LEASE_CLOSE_ATTEMPTS||10);const giveUp=last=>{try{if(process.env.PI_DADDY_LEASE_MARKER)writeFileSync(process.env.PI_DADDY_LEASE_MARKER,JSON.stringify({reason:last&&(last.killed||last.signal==="SIGKILL")?"herdr-close-timeout":"herdr-close-failed",herdr_tab:target.herdr_tab})+"\\n")}catch{}process.exit(0)};const close=()=>execFile("herdr",["tab","close",target.herdr_tab],{timeout:Number(process.env.PI_DADDY_LEASE_CLOSE_TIMEOUT_MS||15000),killSignal:"SIGKILL"},error=>{if(!error)return process.exit(0);if(--left<=0)return giveUp(error);setTimeout(close,1000)});close();});
37
- process.stdin.resume();`;
38
-
39
- /**
40
- * `unref` the parent's end of one of the helper's pipes.
41
- *
42
- * A spawned pipe is a `net.Socket`, which has `unref`; `ChildProcess.stdin` is typed `Writable`, which does
43
- * not. Hence the narrow cast. The optional call is **defensive, not load-bearing** — the holder is spawned at
44
- * exactly one site with three pipes, so none of these is ever `null`, and an earlier version of this comment
45
- * claimed otherwise by citing a `stdio: "ignore"` caller that does not exist.
46
- *
47
- * Only `stdout` and `stderr` are unref'ed. `stdin` was too, until a line-by-line reversion showed the suite
48
- * stayed green without it — an unforced line inside the fix that exists to be forced, which is exactly the
49
- * shape R-122 was about.
50
- */
51
- export const unrefStream = (stream: unknown): void => {
52
- (stream as { unref?: () => void } | null)?.unref?.();
53
- };
54
-
55
- /**
56
- * The bounds on the helper's `herdr tab close` attempts live here, with the attempts they bound — moved out of
57
- * `workspace-lease.ts` when the line ceiling refused it at 402 lines, once both this branch's ADR-0035 work and
58
- * `main`'s R-152 guards had landed in it. Third time that guard has fired on this file and third time the
59
- * answer was a seam rather than a bigger cap.
60
- */
61
- /**
62
- * **A bound that is not a bound throws, and it throws a `RangeError` (R-146, R-152).**
63
- *
64
- * Both ends fail, in opposite directions and both silently:
65
- *
66
- * - `0` reads as "no limit" and Node agrees — `execFile` treats `timeout: 0` as *no* timeout (measured: the
67
- * callback for a 3s sleep arrives at 3004ms with no error), reinstating the unbounded hang the bound exists
68
- * to prevent. Negatives behave identically.
69
- * - anything above `2^31 - 1` truncates: `setTimeout` warns `TimeoutOverflowWarning … set to 1`, so
70
- * `Number.MAX_SAFE_INTEGER` — the plausible "effectively no limit" sentinel, given the argument about `0`
71
- * — SIGKILLs every `herdr tab close` after 1ms, before herdr can act. Measured: callback at 3ms.
72
- *
73
- * **Not a `GovernanceRefusal`.** It was one, carrying `WORKSPACE_LEASE_STALE`, which everywhere else in this
74
- * package means *the lease went stale or was lost* — so an ADR-0034 controller switching on codes (the reason
75
- * codes exist, R-103) would classify a permanent caller bug as transient and retry a call that can never
76
- * succeed. A refusal is a governance outcome that gets ledgered; a bad argument is neither.
77
- *
78
- * Checked for read leases too, which the first version did not: it sat below the read-lease early return, so a
79
- * controller smoke-testing its configuration against a read lease got a false all-clear.
80
- */
81
- export const assertCloseBounds = (input: { herdrCloseTimeoutMs?: number; herdrCloseAttempts?: number }): void => {
82
- const MAX_TIMER = 2_147_483_647;
83
- for (const [name, value, ceiling] of [
84
- ["herdrCloseTimeoutMs", input.herdrCloseTimeoutMs, MAX_TIMER],
85
- ["herdrCloseAttempts", input.herdrCloseAttempts, Number.MAX_SAFE_INTEGER],
86
- ] as const) {
87
- if (value === undefined) continue;
88
- if (!Number.isInteger(value) || value < 1 || value > ceiling) {
89
- throw new RangeError(
90
- `${name} must be a whole number between 1 and ${ceiling}, not ${String(value)}. Zero and negatives ` +
91
- `are not "no limit" but no bound at all, a value past ${MAX_TIMER} truncates to 1ms, and a ` +
92
- `fractional count is not a count — this bound exists so a hung herdr cannot hold the writer lock ` +
93
- `forever (R-146).`,
94
- );
95
- }
96
- }
97
- };
@@ -1,131 +0,0 @@
1
- /**
2
- * The lease's RECORD: what a workspace lease writes down about who holds it and how they let it go.
3
- *
4
- * Split from `./workspace-lease.ts` to stay under the 400-line module ceiling, along the seam this
5
- * review round kept finding defects on — absent vs unreadable metadata, a swallowed handover write, a
6
- * successor's token — all of which are about what the record SAYS rather than about the kernel lock.
7
- */
8
- import { createHash, randomUUID } from "node:crypto";
9
- import { readFile, rename, writeFile } from "node:fs/promises";
10
- import { join } from "node:path";
11
- import type { ValidatedWorkspace, WorkspaceAccess } from "./workspace.ts";
12
-
13
- export interface LeaseMetadata {
14
- version: 1;
15
- state: "active" | "released";
16
- token: string;
17
- owner_id: string;
18
- workspace_id: string;
19
- root: string;
20
- pid: number;
21
- acquired_at: string;
22
- released_at?: string;
23
- release_reason?: string;
24
- }
25
-
26
- export interface WorkspaceLease {
27
- workspace: ValidatedWorkspace;
28
- access: WorkspaceAccess;
29
- ownerId: string;
30
- /**
31
- * `true` only when the kernel lock was free but metadata said the prior owner never released.
32
- * `"unknown"` when the prior owner's record could not be read at all — that is not evidence of a
33
- * clean handover and must not be recorded as one (R-100).
34
- */
35
- recovered: boolean | "unknown";
36
- /** Attach the governed resource so parent death cleans it before the kernel lock is released. */
37
- attachProcess(pid: number): void;
38
- attachHerdrTab(tabId: string): void;
39
- /** Resolves only when the kernel-lock helper exits before explicit release. */
40
- lost: Promise<Error>;
41
- /**
42
- * NEVER throws. A cleanup function that can throw destroys its caller's return value — a completed
43
- * child's entire output was discarded this way (R-99) — so the outcome is a VALUE the caller records:
44
- * `"released"` the kernel lock was handed back and the handover recorded;
45
- * `"released-unrecorded"` the lock was handed back but the record failed, so the NEXT owner will
46
- * report a recovery that did not happen unless this is ledgered;
47
- * `"lost"` the helper was already gone, so this owner never released anything.
48
- */
49
- release(reason?: string): Promise<LeaseReleaseOutcome>;
50
- /**
51
- * Record that this lease is being kept deliberately, WITHOUT releasing the kernel lock.
52
- *
53
- * Needed because a retained lease never calls `release()`, so the metadata stays `state: "active"` and
54
- * whoever acquires next reports `recovered: true` — blaming a crash on a known-good path.
55
- */
56
- /**
57
- * Record that the lease is being KEPT rather than handed back, and answer what actually happened — the
58
- * caller ledgers this word (R-152). It is not always `retained`: a helper that has already died makes the
59
- * fact `lost`, and a lease already settled by `release()` keeps the outcome it had.
60
- */
61
- markRetained(reason?: string): Promise<LeaseReleaseOutcome>;
62
- /** Reads the give-up marker the helper leaves when it could not close a herdr writer tab. */
63
- readCloseFailure(): Promise<{ reason: string; herdr_tab?: string } | null>;
64
- }
65
-
66
- /**
67
- * What a release actually did. Six members rather than three, because the first version conflated facts
68
- * that call for different responses — and one of them is an alarm:
69
- * `released` the lock went back and THIS owner wrote its own handover;
70
- * `released-unrecorded` the lock went back and the record does not say so, so the next owner will report
71
- * a recovery that never happened unless the caller ledgers this. **The alarm.**
72
- * `released-superseded` the lock went back and a successor already owns the metadata, so we correctly
73
- * declined to overwrite it. Healthy, and previously indistinguishable from the
74
- * alarm above;
75
- * `not-held` a read lease, which never took a kernel lock — recording it as `released`
76
- * overstated how many handovers the kernel performed, which is R-105 on the
77
- * release side of the same defect;
78
- * `lost` the helper was already gone; this owner released nothing.
79
- */
80
- export type LeaseReleaseOutcome =
81
- | "released"
82
- | "released-unrecorded"
83
- | "released-superseded"
84
- | "not-held"
85
- | "lost"
86
- /**
87
- * The lease was RETAINED and is therefore already settled — `release()` after `markRetained()` answers
88
- * this instead of running the clean handshake (R-146). It was previously expressible only as the
89
- * `| "retained"` bolted onto two signatures, which is why `release()` could not say it and claimed
90
- * `released` instead: a clean handover for a lease kept precisely because a pane would not close.
91
- */
92
- | "retained";
93
-
94
- export function leasePaths(leaseDir: string, root: string) {
95
- // Canonical root, never caller-chosen workspace ID: aliases for one worktree must contend.
96
- const key = createHash("sha256").update(root, "utf8").digest("hex");
97
- return {
98
- lock: join(leaseDir, `${key}.lock`),
99
- metadata: join(leaseDir, `${key}.json`),
100
- marker: join(leaseDir, `${key}.close-failed.json`),
101
- };
102
- }
103
-
104
- export async function atomicMetadata(path: string, value: LeaseMetadata): Promise<void> {
105
- const temp = `${path}.${process.pid}.${randomUUID()}.tmp`;
106
- await writeFile(temp, `${JSON.stringify(value, null, 2)}\n`, { encoding: "utf8", flag: "wx", mode: 0o600 });
107
- await rename(temp, path);
108
- }
109
-
110
- /**
111
- * `null` means no prior owner was recorded. `"malformed"` means a record exists and cannot be read,
112
- * which is strictly LESS evidence than a readable "active" one and must never read as a clean handover
113
- * (R-100). Absent and unreadable are different facts; conflating them silently erases a real recovery.
114
- */
115
- export async function readMetadata(path: string): Promise<LeaseMetadata | null | "malformed"> {
116
- let raw: string;
117
- try {
118
- raw = await readFile(path, "utf8");
119
- } catch (error) {
120
- return (error as NodeJS.ErrnoException)?.code === "ENOENT" ? null : "malformed";
121
- }
122
- try {
123
- const value = JSON.parse(raw) as Partial<LeaseMetadata>;
124
- if (value?.version !== 1) return "malformed";
125
- if (value.state !== "active" && value.state !== "released") return "malformed";
126
- if (typeof value.token !== "string" || !value.token) return "malformed";
127
- return value as LeaseMetadata;
128
- } catch {
129
- return "malformed";
130
- }
131
- }
@@ -1,72 +0,0 @@
1
- import { appendFile, mkdir, open, type FileHandle } from "node:fs/promises";
2
- import { constants } from "node:fs";
3
- import { dirname } from "node:path";
4
- import { withFileLock } from "./file-lock.ts";
5
- import { recheckWorkDestination, workFsError, type WorkDestination } from "./work-ledger-destination.ts";
6
- import { WORK_TEXT_BYTES, WORK_RECORDS } from "./work-ledger-json.ts";
7
- import { WorkInputError } from "./work-ledger-types.ts";
8
- import { parseWorkLedgerText } from "./work-ledger.ts";
9
-
10
- /** Bounded descriptor read, including one detection byte; never trust a pre-read size alone. */
11
- export async function readWorkBytes(handle: FileHandle): Promise<Buffer> {
12
- const chunks: Buffer[] = []; let total = 0;
13
- for (;;) {
14
- const chunk = Buffer.alloc(Math.min(64 * 1024, WORK_TEXT_BYTES + 1 - total));
15
- const { bytesRead } = await handle.read(chunk, 0, chunk.length, total);
16
- if (bytesRead === 0) return Buffer.concat(chunks, total);
17
- total += bytesRead;
18
- if (total > WORK_TEXT_BYTES) throw new WorkInputError("WORK_LIMIT_EXCEEDED");
19
- chunks.push(chunk.subarray(0, bytesRead));
20
- }
21
- }
22
- /** A secondary filesystem close failure must not replace a primary content/capacity refusal. */
23
- export async function closeWorkHandle(handle: FileHandle, failed: boolean): Promise<void> {
24
- try { await handle.close(); }
25
- catch (error) { if (!failed || !workFsError(error)) throw error; }
26
- }
27
-
28
- /** Shared existing-producer persistence. Serialization and each caller's exception policy remain
29
- * outside this function. The private destination facts select v4 protection, never ambient defaults. */
30
- export async function appendLedgerLine(options: { readonly path: string }, line: string, destination?: WorkDestination, once?: { eventId: string; digest: string }): Promise<void> {
31
- await mkdir(dirname(options.path), { recursive: true });
32
- if (!destination) {
33
- // Retain even legacy path-property evaluation timing across waits; only v4 owns detached inputs.
34
- await withFileLock(options.path, "grant ledger", () => appendFile(options.path, line, { encoding: "utf8", flag: "a" }));
35
- return;
36
- }
37
- const path = destination.path;
38
- await recheckWorkDestination(destination);
39
- await withFileLock(path, "work ledger", async () => {
40
- await recheckWorkDestination(destination);
41
- let handle: FileHandle;
42
- try {
43
- handle = await open(path, constants.O_RDWR | constants.O_APPEND | constants.O_CREAT | constants.O_NOFOLLOW | constants.O_NONBLOCK, 0o600);
44
- } catch (error) {
45
- // A newly proven alias/unsafe kind retains its classification rather than becoming generic I/O.
46
- if (workFsError(error)) await recheckWorkDestination(destination);
47
- throw error;
48
- }
49
- let failed = false;
50
- try {
51
- await recheckWorkDestination(destination, handle);
52
- const bytes = await readWorkBytes(handle);
53
- const ingestion = parseWorkLedgerText(bytes.toString("utf8"));
54
- if (!ingestion.complete) throw new WorkInputError(ingestion.errors[0].code);
55
- if (bytes.length && bytes[bytes.length - 1] !== 10) throw new WorkInputError("WORK_JSON_INVALID");
56
- if (once) {
57
- const sameId = ingestion.events.filter(e => e.eventId === once.eventId);
58
- if (sameId.some(e => e.digest !== once.digest)) throw new WorkInputError("WORK_DIGEST_MISMATCH");
59
- if (sameId.length) { await handle.sync(); return; } // Reconcile an earlier complete but unacknowledged append.
60
- }
61
- if (bytes.length + Buffer.byteLength(line, "utf8") > WORK_TEXT_BYTES || ingestion.events.length + 1 > WORK_RECORDS) {
62
- throw new WorkInputError("WORK_LIMIT_EXCEEDED");
63
- }
64
- await recheckWorkDestination(destination, handle);
65
- // Same descriptor, same non-expiring lock, O_APPEND. A failed write may leave partial bytes;
66
- // preserve them and fail closed. Never truncate, repair or reserialize existing deliveries.
67
- await handle.writeFile(line, "utf8");
68
- if (once) await handle.sync(); // New application seam requires durable append before controller receipt.
69
- } catch (error) { failed = true; throw error; }
70
- finally { await closeWorkHandle(handle, failed); }
71
- }, { staleRecovery: "disabled" });
72
- }
@@ -1,226 +0,0 @@
1
- /**
2
- * The v3 runtime-event half of the ledger: workspace leases, child lifecycle and check receipts, with
3
- * their builders. Split out of `./ledger.ts` only to stay under the 400-line module ceiling this
4
- * project enforces mechanically; `./ledger.ts` re-exports everything here, so "the ledger module"
5
- * remains one import.
6
- */
7
- import { LEDGER_VERSION, type LedgerEventBase, type GrantRecord } from "./ledger.ts";
8
- import type { ExecutorKind } from "./executor.ts";
9
- import type { CorrelationMetadata } from "./correlation.ts";
10
- import type { StructuredRefusal } from "./refusals.ts";
11
- import { assertExecutionId } from "./execution-id.ts";
12
- import type { WorkflowFactEvent } from "./workflow-facts.ts";
13
- import { assertLedgerV3Wire } from "./ledger-v3-validation.ts";
14
-
15
- export const WORKSPACE_ACCESSES = ["read", "write"] as const;
16
- export type WorkspaceAccess = typeof WORKSPACE_ACCESSES[number];
17
-
18
- export const WORKSPACE_RECOVERY_VALUES = [false, true, "unknown"] as const;
19
- export type WorkspaceRecovery = typeof WORKSPACE_RECOVERY_VALUES[number];
20
-
21
- export const CHILD_LIFECYCLE_STATES = ["starting", "running", "completed", "failed"] as const;
22
- export type ChildLifecycleState = typeof CHILD_LIFECYCLE_STATES[number];
23
-
24
- /** The complete Node signal vocabulary accepted by a v3 child-lifecycle event. */
25
- export const CHILD_PROCESS_SIGNALS = [
26
- "SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCONT", "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGIO",
27
- "SIGIOT", "SIGKILL", "SIGPIPE", "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGSEGV", "SIGSTKFLT",
28
- "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGUNUSED", "SIGURG",
29
- "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", "SIGXCPU", "SIGXFSZ", "SIGBREAK", "SIGLOST", "SIGINFO",
30
- ] as const satisfies readonly NodeJS.Signals[];
31
- export type ChildProcessSignal = typeof CHILD_PROCESS_SIGNALS[number];
32
-
33
- /**
34
- * `released` is a handover this owner performed. FOUR members were added by the 0.18.0 review pass, and
35
- * they were not all previously recorded the same way — `uncontended` was recorded as an *acquisition*, and
36
- * `lost` was recorded as nothing at all, because the old `release()` threw before the append ran:
37
- * `lost` the kernel lock went away under a live governed writer — NOT the same fact as a user
38
- * cancelling, which is what it used to be indistinguishable from (R-103);
39
- * `retained` the lease was deliberately kept because a herdr writer tab would not close, so the
40
- * successor's `recovered: true` would otherwise blame a healthy path (R-104);
41
- * `uncontended` a read lease took no kernel lock at all, so counting it as an acquisition
42
- * overstated how many exclusions the kernel actually performed (R-105).
43
- */
44
- export const WORKSPACE_LEASE_OUTCOMES = [
45
- "acquired", "uncontended", "refused", "released", "released-unrecorded", "lost", "retained", "timeout",
46
- "recovered",
47
- ] as const;
48
- export type WorkspaceLeaseOutcome = typeof WORKSPACE_LEASE_OUTCOMES[number];
49
-
50
- export interface WorkspaceLeaseEvent extends LedgerEventBase {
51
- ledgerVersion: typeof LEDGER_VERSION;
52
- event: "workspace_lease";
53
- executionId: string;
54
- parentExecutionId: string | null;
55
- childId: string;
56
- workspaceId: string;
57
- root: string;
58
- access: WorkspaceAccess;
59
- outcome: WorkspaceLeaseOutcome;
60
- /** `"unknown"` when the prior owner's record was unreadable — not evidence of a clean handover. */
61
- recovered?: WorkspaceRecovery;
62
- releaseReason?: string;
63
- refusal?: StructuredRefusal;
64
- }
65
-
66
- export interface ChildLifecycleEvent extends LedgerEventBase {
67
- ledgerVersion: typeof LEDGER_VERSION;
68
- event: "child_lifecycle";
69
- executionId: string;
70
- parentExecutionId: string | null;
71
- childId: string;
72
- state: ChildLifecycleState;
73
- executor: ExecutorKind;
74
- /** Bound after which a non-terminal start is known to be incomplete. */
75
- deadlineAt?: string;
76
- /** Herdr runtime identity is observational and never an enforcement boundary. */
77
- herdrPaneId?: string;
78
- herdrAgentName?: string;
79
- exitCode?: number | null;
80
- signal?: ChildProcessSignal | null;
81
- timedOut?: true;
82
- aborted?: true;
83
- truncated?: true;
84
- reason?: string;
85
- }
86
-
87
- export interface CheckReceiptLedgerEvent extends LedgerEventBase {
88
- ledgerVersion: typeof LEDGER_VERSION;
89
- event: "check_receipt";
90
- executionId: string;
91
- parentExecutionId: string | null;
92
- childId: string;
93
- receiptId: string;
94
- workspaceId: string;
95
- checkId: string;
96
- treeSha: string;
97
- }
98
-
99
- export type CapabilityDecisionEvent = GrantRecord & {
100
- ledgerVersion: typeof LEDGER_VERSION;
101
- event: "capability_decision";
102
- executionId: string;
103
- parentExecutionId: string | null;
104
- taskDigest: string;
105
- };
106
-
107
- export type RuntimeLedgerEvent =
108
- | CapabilityDecisionEvent
109
- | WorkspaceLeaseEvent
110
- | ChildLifecycleEvent
111
- | CheckReceiptLedgerEvent
112
- | WorkflowFactEvent;
113
-
114
- export function buildWorkspaceLeaseEvent(args: {
115
- executionId: string;
116
- parentExecutionId: string | null;
117
- childId: string;
118
- workspaceId: string;
119
- root: string;
120
- access: WorkspaceAccess;
121
- outcome: WorkspaceLeaseOutcome;
122
- recovered?: WorkspaceRecovery;
123
- releaseReason?: string;
124
- refusal?: StructuredRefusal;
125
- correlation?: CorrelationMetadata;
126
- now: Date;
127
- }): WorkspaceLeaseEvent {
128
- assertEventIdentity(args);
129
- return assertLedgerV3Wire({
130
- ledgerVersion: LEDGER_VERSION,
131
- event: "workspace_lease",
132
- ts: args.now.toISOString(),
133
- executionId: args.executionId,
134
- parentExecutionId: args.parentExecutionId,
135
- childId: args.childId,
136
- workspaceId: args.workspaceId,
137
- root: args.root,
138
- access: args.access,
139
- outcome: args.outcome,
140
- // `!== undefined`, not truthiness. `recovered: false` — a POSITIVE assertion that the predecessor
141
- // handed over cleanly — was dropped while the truthy `"unknown"` survived, so absence meant both
142
- // "clean" and "never supplied". R-100's whole argument is that absence of evidence is not evidence,
143
- // and this was the one line discarding the evidence.
144
- ...(args.recovered !== undefined ? { recovered: args.recovered } : {}),
145
- ...(args.releaseReason ? { releaseReason: args.releaseReason } : {}),
146
- ...(args.refusal ? { refusal: structuredClone(args.refusal) } : {}),
147
- ...(args.correlation ? { correlation: structuredClone(args.correlation) } : {}),
148
- });
149
- }
150
-
151
- export function buildCheckReceiptLedgerEvent(args: {
152
- executionId: string;
153
- parentExecutionId: string | null;
154
- childId: string;
155
- receiptId: string;
156
- workspaceId: string;
157
- checkId: string;
158
- treeSha: string;
159
- correlation?: CorrelationMetadata;
160
- now: Date;
161
- }): CheckReceiptLedgerEvent {
162
- assertEventIdentity(args);
163
- if (!/^[a-f0-9]{64}$/i.test(args.receiptId)) {
164
- throw new TypeError("receiptId must be a SHA-256 hex digest");
165
- }
166
- return assertLedgerV3Wire({
167
- ledgerVersion: LEDGER_VERSION,
168
- event: "check_receipt",
169
- ts: args.now.toISOString(),
170
- executionId: args.executionId,
171
- parentExecutionId: args.parentExecutionId,
172
- childId: args.childId,
173
- receiptId: args.receiptId,
174
- workspaceId: args.workspaceId,
175
- checkId: args.checkId,
176
- treeSha: args.treeSha,
177
- ...(args.correlation ? { correlation: structuredClone(args.correlation) } : {}),
178
- });
179
- }
180
-
181
- export function buildChildLifecycleEvent(args: {
182
- executionId: string;
183
- parentExecutionId: string | null;
184
- childId: string;
185
- state: ChildLifecycleState;
186
- executor: ExecutorKind;
187
- deadlineAt?: string;
188
- herdrPaneId?: string;
189
- herdrAgentName?: string;
190
- exitCode?: number | null;
191
- signal?: ChildProcessSignal | null;
192
- timedOut?: boolean;
193
- aborted?: boolean;
194
- truncated?: boolean;
195
- reason?: string;
196
- correlation?: CorrelationMetadata;
197
- now: Date;
198
- }): ChildLifecycleEvent {
199
- assertEventIdentity(args);
200
- return assertLedgerV3Wire({
201
- ledgerVersion: LEDGER_VERSION,
202
- event: "child_lifecycle",
203
- ts: args.now.toISOString(),
204
- executionId: args.executionId,
205
- parentExecutionId: args.parentExecutionId,
206
- childId: args.childId,
207
- state: args.state,
208
- executor: args.executor,
209
- ...(args.deadlineAt ? { deadlineAt: args.deadlineAt } : {}),
210
- ...(args.herdrPaneId ? { herdrPaneId: args.herdrPaneId } : {}),
211
- ...(args.herdrAgentName ? { herdrAgentName: args.herdrAgentName } : {}),
212
- ...(args.exitCode !== undefined ? { exitCode: args.exitCode } : {}),
213
- ...(args.signal !== undefined ? { signal: args.signal } : {}),
214
- ...(args.timedOut ? { timedOut: true } : {}),
215
- ...(args.aborted ? { aborted: true } : {}),
216
- ...(args.truncated ? { truncated: true } : {}),
217
- ...(args.reason ? { reason: args.reason } : {}),
218
- ...(args.correlation ? { correlation: structuredClone(args.correlation) } : {}),
219
- });
220
- }
221
-
222
- function assertEventIdentity(args: { executionId: string; parentExecutionId: string | null }): void {
223
- assertExecutionId(args.executionId);
224
- if (args.parentExecutionId !== null) assertExecutionId(args.parentExecutionId, "parentExecutionId");
225
- if (args.parentExecutionId === args.executionId) throw new TypeError("an execution cannot be its own parent");
226
- }