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
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Talking to herdr: one command, one JSON envelope, plus the two questions ADR-0031 needs answered.
3
+ *
4
+ * Lifted out of `src/executors/run-herdr.ts`, which was at 357 of the 400-line ceiling and gains output polling under
5
+ * ADR-0032. But the split is not only about lines: **the probe is not an executor concern**. It runs at session
6
+ * start, before any delegation exists, to decide *which* executor a session will use — so leaving it inside the
7
+ * herdr executor would mean the session imported the thing it was deciding whether to use.
8
+ *
9
+ * Every rule here is tested against an injected `exec`, so the suite stays fast, pi-free and herdr-free. The
10
+ * facts the fakes reproduce were measured against real herdr 0.7.5 (probe `g16-herdr`).
11
+ */
12
+
13
+ import { execFile } from "node:child_process";
14
+ import { ENV_HERDR_WORKSPACE } from "../kernel/env-names.ts";
15
+ export { ENV_HERDR_WORKSPACE } from "../kernel/env-names.ts";
16
+
17
+ /** One herdr CLI invocation. Injectable so every rule below is testable without herdr installed. */
18
+ export type HerdrExec = (args: string[]) => Promise<{ code: number | null; stdout: string; stderr: string }>;
19
+
20
+ export const defaultExec: HerdrExec = (args) =>
21
+ new Promise((settle) => {
22
+ execFile("herdr", args, { maxBuffer: 32 * 1024 * 1024 }, (error, stdout, stderr) => {
23
+ const raw = (error as { code?: unknown } | null)?.code;
24
+ const code = typeof raw === "number" ? raw : error ? 1 : 0;
25
+ // **A string `code` is a spawn failure, and it used to be thrown away.** `ENOENT` — herdr not installed —
26
+ // arrives as `code: "ENOENT"`, so the numeric test failed, the message was dropped, and an operator with
27
+ // `PI_DADDY_HERDR=1` on a machine without herdr was told *"herdr is not answering (unparseable herdr
28
+ // reply: (no output))"* rather than that the binary is missing. Rule 8 wants the loud version, and this is
29
+ // the first diagnostic such an operator meets.
30
+ const spawnFailure = typeof raw === "string" ? `herdr could not be run (${raw}): ${error?.message ?? ""}` : "";
31
+ settle({ code, stdout: String(stdout), stderr: spawnFailure || String(stderr) });
32
+ });
33
+ });
34
+
35
+ /**
36
+ * Parse herdr's JSON envelope. Every command replies `{id, result}` or `{id, error:{code,message}}`.
37
+ *
38
+ * `stderr` is folded into the message because the first end-to-end run failed with an EMPTY stdout and the
39
+ * real reason on stderr, producing the useless diagnostic "unparseable herdr reply: ". A wrapper that
40
+ * hides the substrate's own error message costs more time than it saves.
41
+ */
42
+ export function parseReply(reply: { stdout: string; stderr: string }): {
43
+ result?: Record<string, unknown>;
44
+ error?: string;
45
+ } {
46
+ try {
47
+ const parsed = JSON.parse(reply.stdout) as {
48
+ result?: Record<string, unknown>;
49
+ error?: { message?: string; code?: string };
50
+ };
51
+ if (parsed.error) return { error: parsed.error.message ?? parsed.error.code ?? "herdr reported an error" };
52
+ return { result: parsed.result };
53
+ } catch {
54
+ // A non-JSON reply is a herdr-version or PATH problem, not a governance decision. Surfaced as a spawn
55
+ // error so the caller reports "could not start" rather than "the child produced nothing".
56
+ const detail = [reply.stdout.trim(), reply.stderr.trim()].filter((t) => t.length > 0).join(" | ");
57
+ return { error: `unparseable herdr reply: ${detail.slice(0, 300) || "(no output)"}` };
58
+ }
59
+ }
60
+
61
+ /** Bound on the session-start probe. Short: it sits in front of the operator's first prompt. */
62
+ export const PROBE_TIMEOUT_MS = 2000;
63
+
64
+ export interface HerdrProbe {
65
+ ok: boolean;
66
+ /** herdr's own words when it is not reachable. Carried so the disclosure line can name the reason. */
67
+ error?: string;
68
+ }
69
+
70
+ /**
71
+ * Is there a herdr server that will answer right now? — ADR-0031's selection input.
72
+ *
73
+ * **`tab list`, not `which herdr`.** ADR-0031 rejects `PATH` detection as option C by name: a binary on `PATH`
74
+ * with no server behind it would make every delegation fail at `tab create`, on a path the operator never
75
+ * chose, and the diagnostic would arrive at the first delegation rather than at startup. Only a parsed
76
+ * `result` envelope counts as reachable; an `error` envelope, a non-JSON reply, a timeout and a throwing
77
+ * `exec` are all "not reachable" with the reason preserved.
78
+ *
79
+ * **Zero tabs is a successful answer**, deliberately: a fresh herdr with nothing open is reachable.
80
+ *
81
+ * Never throws. A probe that threw out of `session_start` would cancel every control after it, which is
82
+ * R-60's shape exactly — and this one runs *before* the line that discloses what it decided.
83
+ */
84
+ export async function probeHerdr(options: { exec?: HerdrExec; timeoutMs?: number } = {}): Promise<HerdrProbe> {
85
+ const exec = options.exec ?? defaultExec;
86
+ const timeoutMs = options.timeoutMs ?? PROBE_TIMEOUT_MS;
87
+
88
+ let timer: NodeJS.Timeout | undefined;
89
+ try {
90
+ return await Promise.race<HerdrProbe>([
91
+ exec(["tab", "list"]).then((reply) => {
92
+ const parsed = parseReply(reply);
93
+ return parsed.error ? { ok: false, error: parsed.error } : { ok: true };
94
+ }),
95
+ new Promise<HerdrProbe>((settle) => {
96
+ timer = setTimeout(() => settle({ ok: false, error: `probe timed out after ${timeoutMs}ms` }), timeoutMs);
97
+ }),
98
+ ]);
99
+ } catch (error) {
100
+ return { ok: false, error: String(error) };
101
+ } finally {
102
+ // Cleared whichever branch won, so a fast probe does not hold the event loop open for the timeout's
103
+ // remainder — which would add up to two seconds to every `node --test` run of this file.
104
+ if (timer) clearTimeout(timer);
105
+ }
106
+ }
107
+
108
+ /** herdr's own variable, set in every pane it creates. Measured 2026-08-17; documented nowhere. */
109
+ export const ENV_PARENT_WORKSPACE = "HERDR_WORKSPACE_ID";
110
+
111
+ /** The operator's explicit override. Defined here because this is the only module that reads it. */
112
+
113
+ /**
114
+ * Which herdr workspace a governed child's pane belongs in.
115
+ *
116
+ * **Defaults to the parent's own workspace.** herdr tells a pane which workspace it is in
117
+ * (`HERDR_WORKSPACE_ID`, alongside `HERDR_TAB_ID` and `HERDR_PANE_ID`), and a child placed in a *different*
118
+ * workspace from the pi session that spawned it turns "switch between them" into a workspace hop — which is
119
+ * the entire feature ADR-0032 exists to deliver. The previous behaviour was "omitted lets herdr choose",
120
+ * which is that failure by default on any machine with more than one workspace.
121
+ *
122
+ * `PI_DADDY_HERDR_WORKSPACE` still wins: it is the operator saying so explicitly, and an explicit answer
123
+ * beating an inference is this package's standing rule (ADR-0030 says it about the grant itself).
124
+ *
125
+ * Blank is treated as absent rather than passed through — `--workspace ""` is not a workspace, and it would
126
+ * fail `tab create` on a path nobody chose.
127
+ */
128
+ export function resolveWorkspace(env: NodeJS.ProcessEnv): string | undefined {
129
+ const explicit = env[ENV_HERDR_WORKSPACE]?.trim();
130
+ if (explicit) return explicit;
131
+ return env[ENV_PARENT_WORKSPACE]?.trim() || undefined;
132
+ }
@@ -0,0 +1,21 @@
1
+ /** Locate the pinned, lifecycle-only Herdr Pi integration shipped with this package. */
2
+ import { existsSync } from "node:fs";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ /**
6
+ * Explicit `-e` survives Pi's `--no-extensions`; only this audited source is loaded for a Herdr child.
7
+ *
8
+ * Source-loaded tests resolve the adjacent vendor file. Installed builds resolve the packed `src/` copy,
9
+ * deliberately rather than discovering an operator's extension directory.
10
+ */
11
+ export function bundledHerdrPiLifecycleExtension(): string {
12
+ const candidates = [
13
+ new URL("./vendor/herdr-pi-lifecycle.ts", import.meta.url),
14
+ new URL("../../src/executors/vendor/herdr-pi-lifecycle.ts", import.meta.url),
15
+ ];
16
+ for (const candidate of candidates) {
17
+ const path = fileURLToPath(candidate);
18
+ if (existsSync(path)) return path;
19
+ }
20
+ throw new Error("the bundled Herdr Pi lifecycle integration is missing from this package");
21
+ }
@@ -0,0 +1,305 @@
1
+ /**
2
+ * Waiting for a herdr agent to settle, and reading what it printed on the way.
3
+ *
4
+ * Split out of `src/executors/run-herdr.ts` when that file hit **404 of the 400-line ceiling** adding ADR-0032's output
5
+ * polling. The seam was named in the plan before it was needed, and it is a real one: this module is about
6
+ * *observing* an agent, `run-herdr.ts` is about *starting and cleaning up after* one. Nothing here creates or
7
+ * destroys anything.
8
+ *
9
+ * The two facts it is built on were measured against real herdr 0.7.5 (probe `g16-herdr`) and both are
10
+ * counter-intuitive enough to be worth the module comment: `agent wait --until idle` matches the state the
11
+ * agent was **already** in, and `agent read` is the one command that does **not** return a JSON envelope.
12
+ */
13
+
14
+ import { parseReply, type HerdrExec } from "./herdr-cli.ts";
15
+ import { herdrSessionReference } from "../governance/native-session.ts";
16
+
17
+ /**
18
+ * What `waitForSettled` needs from a run request.
19
+ *
20
+ * Declared here rather than importing `HerdrRunRequest`, which would make the two modules mutually dependent
21
+ * for no benefit. `HerdrRunRequest` satisfies it structurally, so the call site needs no adapter.
22
+ */
23
+ export interface PollTarget {
24
+ /** herdr agent name. */
25
+ name: string;
26
+ nativePaneId?: string;
27
+ onSessionReference?: (reference: NonNullable<ReturnType<typeof herdrSessionReference>>) => void;
28
+ signal?: AbortSignal;
29
+ /**
30
+ * The pane's last few lines, re-reported on every poll — a SNAPSHOT, not a stream (ADR-0032).
31
+ *
32
+ * The consumer must **replace** what it holds rather than append. `agent read` returns a snapshot of a
33
+ * bounded terminal, and treating it as append-only is what produced an 89,000× amplification; see
34
+ * `tailLines`.
35
+ */
36
+ onSnapshot?: (lines: string[]) => void;
37
+ /** Reuses already-requested pane bytes; never adds an observation-only RPC. */
38
+ onObservation?: (bytes: Uint8Array) => void;
39
+ /** How many lines the display wants. Bounds the per-poll cost regardless of how big the pane is. */
40
+ snapshotLines?: number;
41
+ /** Poll cadence override. Exists so tests do not wait `POLL_INTERVAL_MS` per state transition. */
42
+ pollIntervalMs?: number;
43
+ /**
44
+ * Inactivity bound (PR 3e). Activity on this executor is a change in the pane's text or in what `activityProbe`
45
+ * returns (the child's pi session file). Undefined means the wall-clock deadline alone applies.
46
+ */
47
+ idleTimeoutMs?: number;
48
+ activityProbe?: () => Promise<string | number | undefined> | string | number | undefined;
49
+ }
50
+
51
+ /** Statuses herdr reports for a settled agent. `blocked` counts: it is waiting for a human, not working. */
52
+ const TERMINAL = new Set(["idle", "done", "blocked"]);
53
+
54
+ /** The pre-prompt sequence from the native start reply; absent is unknown, never zero. */
55
+ export function observeHerdrSession(
56
+ agent: unknown,
57
+ pane: string | undefined,
58
+ sink: PollTarget["onSessionReference"],
59
+ ): void {
60
+ if (!pane || !sink) return;
61
+ try {
62
+ const reference = herdrSessionReference(agent, pane);
63
+ if (reference) sink(reference);
64
+ } catch {
65
+ /* optional observation */
66
+ }
67
+ }
68
+
69
+ export function seqOf(result: Record<string, unknown> | undefined): number {
70
+ const agent = (result?.agent ?? {}) as { state_change_seq?: number };
71
+ return typeof agent.state_change_seq === "number" ? agent.state_change_seq : -1;
72
+ }
73
+
74
+ /** How often to poll `agent get` while waiting for the child to settle. */
75
+ export const POLL_INTERVAL_MS = 750;
76
+ /**
77
+ * A prompt accepted from a terminal state must produce an observable lifecycle change promptly.
78
+ *
79
+ * Herdr 0.8's `agent prompt --wait` documents this same five-second bound. We retain polling because it
80
+ * supplies the bounded live pane snapshots, but refuse rather than holding a parent for the whole child timeout when
81
+ * the only reported state remains the pre-prompt terminal state. That is a detector/integration failure, not
82
+ * evidence that a child settled.
83
+ */
84
+ export const FRESH_LIFECYCLE_TIMEOUT_MS = 5_000;
85
+ /** Lines of pane tail reported per poll. Matches the status block's own tail, so nothing is fetched unused. */
86
+ export const DEFAULT_SNAPSHOT_LINES = 3;
87
+
88
+ /**
89
+ * Wait for the child to settle, without accepting the state it was already in.
90
+ *
91
+ * **R-33, measured.** `herdr agent wait --until idle` called right after `agent prompt` returned
92
+ * *immediately*, matching the agent's **pre-existing** idle state with `state_change_seq` unchanged — a
93
+ * reply indistinguishable from a completed run. For fan-out that is not an inconvenience but a
94
+ * correctness bug: an orchestrator would "collect" N children that never ran and merge N empty results
95
+ * into a confident summary (R-03 with a new cause).
96
+ *
97
+ * So this polls `agent get` and requires **both** that the status is terminal **and** that
98
+ * `state_change_seq` has advanced past the value observed before prompting. `agent wait` is deliberately
99
+ * not used at all: its contract cannot express "settled *after* this point".
100
+ */
101
+ /**
102
+ * Establish the bundled Pi lifecycle reporter's idle baseline before prompt dispatch.
103
+ *
104
+ * `screen_detection_skipped` is Herdr's reported fact that a full lifecycle authority owns this pane.
105
+ * Waiting for it prevents the reporter's asynchronously queued initial idle report from becoming a
106
+ * post-prompt sequence advance. This is not completion: no prompt has been sent at this point.
107
+ */
108
+ export async function waitForLifecycleBaseline(
109
+ exec: HerdrExec,
110
+ request: PollTarget,
111
+ deadline: number,
112
+ ): Promise<{ before?: number; aborted?: boolean; spawnError?: string }> {
113
+ const interval = request.pollIntervalMs ?? POLL_INTERVAL_MS;
114
+ for (;;) {
115
+ if (request.signal?.aborted) return { aborted: true };
116
+ if (Date.now() >= deadline)
117
+ return { spawnError: "Herdr did not activate the bundled Pi lifecycle reporter before prompt dispatch" };
118
+ const reply = parseReply(await exec(["agent", "get", request.name]));
119
+ if (reply.error) return { spawnError: `herdr agent get failed: ${reply.error}` };
120
+ const agent = (reply.result?.agent ?? reply.result ?? {}) as {
121
+ agent_status?: string;
122
+ state_change_seq?: number;
123
+ screen_detection_skipped?: boolean;
124
+ };
125
+ const seq = typeof agent.state_change_seq === "number" ? agent.state_change_seq : -1;
126
+ if (agent.screen_detection_skipped === true && agent.agent_status && TERMINAL.has(agent.agent_status) && seq >= 0)
127
+ return { before: seq };
128
+ await new Promise<void>((resolve) => setTimeout(resolve, Math.min(interval, Math.max(0, deadline - Date.now()))));
129
+ }
130
+ }
131
+
132
+ export async function waitForSettled(
133
+ exec: HerdrExec,
134
+ request: PollTarget,
135
+ before: number,
136
+ deadline: number,
137
+ maxOutputBytes: number,
138
+ ): Promise<{ status?: string; timedOut?: boolean; idle?: true; aborted?: boolean; spawnError?: string }> {
139
+ const interval = request.pollIntervalMs ?? POLL_INTERVAL_MS;
140
+ let lastActivityAt = Date.now();
141
+ let lastPane: string | undefined;
142
+ let lastMarker: string | number | undefined;
143
+ // ADR-0032. The pane is read on every poll so the parent can show what the child is doing, rather than the
144
+ // one word `delegate` for up to sixty minutes by default.
145
+ //
146
+ // No cross-poll state is kept, deliberately: the previous design remembered what it had reported so it could
147
+ // send a diff, and that is what broke — see `tailLines`. A snapshot needs no memory.
148
+ const keep = request.snapshotLines ?? DEFAULT_SNAPSHOT_LINES;
149
+ let staleTerminalSince: number | undefined;
150
+
151
+ for (;;) {
152
+ if (request.signal?.aborted) return { aborted: true };
153
+ if (Date.now() >= deadline) return { timedOut: true };
154
+ if (request.idleTimeoutMs !== undefined && Date.now() - lastActivityAt >= request.idleTimeoutMs)
155
+ return { timedOut: true, idle: true };
156
+
157
+ const reply = parseReply(await exec(["agent", "get", request.name]));
158
+ if (reply.error) return { spawnError: `herdr agent get failed: ${reply.error}` };
159
+
160
+ const agent = (reply.result?.agent ?? reply.result ?? {}) as { agent_status?: string; state_change_seq?: number };
161
+ if (request.idleTimeoutMs !== undefined) {
162
+ // The pane is read below only when a display wants it; the probe is the executor-independent signal.
163
+ let marker: string | number | undefined;
164
+ try {
165
+ marker = await request.activityProbe?.();
166
+ } catch {
167
+ marker = undefined; // unreadable is "no activity seen", never a control decision
168
+ }
169
+ if (marker !== undefined && marker !== lastMarker) {
170
+ lastMarker = marker;
171
+ lastActivityAt = Date.now();
172
+ }
173
+ }
174
+ observeHerdrSession(agent, request.nativePaneId, request.onSessionReference);
175
+ const status = agent.agent_status;
176
+ const seq = typeof agent.state_change_seq === "number" ? agent.state_change_seq : -1;
177
+
178
+ if (request.onSnapshot) {
179
+ // Read BEFORE the terminal check returns, so a child that settles on this iteration still has its last
180
+ // output shown. `readFailed` is passed so a failed read renders as such instead of silently freezing the
181
+ // block on the previous frame — and, crucially, is never mistaken for the child's output.
182
+ const read = await readPane(exec, request.name, maxOutputBytes);
183
+ if (!read.readFailed && read.text !== lastPane) {
184
+ lastPane = read.text;
185
+ lastActivityAt = Date.now();
186
+ }
187
+ if (!read.readFailed) {
188
+ try {
189
+ request.onObservation?.(Buffer.from(read.text));
190
+ } catch {
191
+ /* observation only */
192
+ }
193
+ }
194
+ try {
195
+ request.onSnapshot(read.readFailed ? ["[pane could not be read]"] : tailLines(read.text, keep));
196
+ } catch {
197
+ /* display only — a renderer must not break a governed run */
198
+ }
199
+ }
200
+
201
+ if (status && TERMINAL.has(status)) {
202
+ if (seq > before) return { status };
203
+ // Do not turn this pane's text into a completion signal. A known agent whose screen rule misses a new
204
+ // UI shape falls back to idle, precisely the state R-33 says is unsafe to accept. A stable stale
205
+ // terminal state for this bounded interval is instead a loud compatibility refusal (issue #43).
206
+ staleTerminalSince ??= Date.now();
207
+ if (Date.now() - staleTerminalSince >= FRESH_LIFECYCLE_TIMEOUT_MS) {
208
+ return {
209
+ spawnError:
210
+ `herdr reported ${status} without a post-prompt lifecycle change for ${FRESH_LIFECYCLE_TIMEOUT_MS}ms; ` +
211
+ "refusing to treat the pre-prompt terminal state as completion. Update Herdr's Pi detector or inspect its lifecycle reporting.",
212
+ };
213
+ }
214
+ } else {
215
+ staleTerminalSince = undefined;
216
+ }
217
+
218
+ await new Promise<void>((resolve) => setTimeout(resolve, Math.min(interval, Math.max(0, deadline - Date.now()))));
219
+ }
220
+ }
221
+
222
+ /**
223
+ * The last `keep` non-blank lines of a pane snapshot — what the display actually needs.
224
+ *
225
+ * **This replaces a `newSuffix` diff, and the replacement is a correction rather than a tune-up.** The old
226
+ * design treated `agent read` as a *stream* and tried to report only what was new, by testing whether the new
227
+ * text extended the old. That is wrong about the substrate: `agent read` returns a **snapshot of a bounded
228
+ * terminal**, and a snapshot is not an append-only log. Two ordinary things break the prefix test forever —
229
+ * the pane **scrolling** (its top lines are gone, so the new text is not an extension of the old) and
230
+ * `readPane` **truncating to the tail** past `maxOutputBytes` (each read is a different window of a growing
231
+ * buffer). Once either happens, every poll reported the whole buffer.
232
+ *
233
+ * Measured before the fix: **51 MiB streamed for ~600 bytes of real output — 89,000× amplification** in 37
234
+ * seconds, per child, with a scrolling pane also delivering the same real lines three times each. The old
235
+ * docstring named that exact failure as the thing it prevented.
236
+ *
237
+ * So the herdr path now reports a **bounded snapshot** and the consumer *replaces* rather than appends. There
238
+ * is no diff to get wrong, the per-poll cost is `keep` lines regardless of buffer size, and a scrolling pane
239
+ * simply shows its current tail — which is what a human looking at that pane would see.
240
+ */
241
+ export function tailLines(snapshot: string, keep: number): string[] {
242
+ if (keep <= 0) return [];
243
+ const lines: string[] = [];
244
+ // Walked from the END, so a 1 MiB buffer costs the last few lines rather than a full split.
245
+ let end = snapshot.length;
246
+ while (end > 0 && lines.length < keep) {
247
+ const start = snapshot.lastIndexOf("\n", end - 1);
248
+ const line = snapshot
249
+ .slice(start + 1, end)
250
+ .replace(/\r/g, "")
251
+ .trimEnd();
252
+ if (line.length > 0) lines.unshift(line);
253
+ if (start === -1) break;
254
+ end = start;
255
+ }
256
+ return lines;
257
+ }
258
+
259
+ /**
260
+ * Read the pane's contents.
261
+ *
262
+ * `agent read` is the ONE command that does not return herdr's JSON envelope — it writes the terminal's
263
+ * text straight to stdout. Running it through `parseReply` turned every successful read into
264
+ * "unparseable herdr reply", i.e. reported the child's actual answer as a failure to read it. Found by the
265
+ * end-to-end run; the unit fake had been written to the envelope shape and so agreed with the bug.
266
+ *
267
+ * A JSON envelope is still accepted first, because an `error` reply here IS JSON and must not be mistaken
268
+ * for terminal output.
269
+ *
270
+ * **`readFailed` is separate from `text`, and that separation is the fix for an R-03 defect.** A failed read
271
+ * used to return its own diagnostic *as* `text` — so `runHerdrPane` returned
272
+ * `[grants] could not read the agent pane: pane is gone` **as the child's answer, with `code: 0`**, and the
273
+ * orchestrator read a failure message as a completed sub-agent's report. Measured. It mattered little when this
274
+ * ran once per child; ADR-0032 made it run on every poll, up to 800 times for a ten-minute child, so a
275
+ * transient failure went from unlikely to expected. The caller must now decide, and it cannot do so by
276
+ * inspecting a string.
277
+ */
278
+ export async function readPane(
279
+ exec: HerdrExec,
280
+ name: string,
281
+ maxOutputBytes: number,
282
+ ): Promise<{ text: string; truncated: boolean; readFailed?: string }> {
283
+ const reply = await exec(["agent", "read", name]);
284
+ let text: string;
285
+ try {
286
+ const parsed = JSON.parse(reply.stdout) as { result?: Record<string, unknown>; error?: { message?: string } };
287
+ if (parsed.error) {
288
+ return { text: "", truncated: false, readFailed: parsed.error.message ?? "unknown error" };
289
+ }
290
+ const raw = parsed.result?.output ?? parsed.result?.text ?? parsed.result?.content ?? "";
291
+ text = typeof raw === "string" ? raw : JSON.stringify(raw);
292
+ } catch {
293
+ text = reply.stdout;
294
+ }
295
+ if (Buffer.byteLength(text) <= maxOutputBytes) return { text, truncated: false };
296
+ // Keep the TAIL, not the head: a terminal's useful content is its most recent output, and the head is
297
+ // the startup banner. `runChild` keeps the head because it streams and must stop a runaway producer;
298
+ // here the output is already complete, so the choice is free and the tail is the answer.
299
+ //
300
+ // Sliced by BYTES via a Buffer round trip rather than by code units, for `takeBytes`'s reason in
301
+ // `run-child.ts`: `slice(-maxOutputBytes)` on a CJK pane overran the cap by three times. `toString` repairs
302
+ // a character split at the cut by replacing it, which is the right trade for a tail — one replacement
303
+ // character at the boundary, versus a cap that does not hold.
304
+ return { text: Buffer.from(text, "utf8").subarray(-maxOutputBytes).toString("utf8"), truncated: true };
305
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Staging a definition's instructions to a file, because herdr cannot carry them in argv.
3
+ *
4
+ * Split out of `src/executors/run-herdr.ts` at the 400-line ceiling. A real seam rather than an arbitrary cut: this is
5
+ * the one place that works around a **herdr encoding limit**, and it is the only part of the herdr path that
6
+ * touches the filesystem. `run-herdr.ts` starts and reaps agents; this prepares one argument.
7
+ */
8
+
9
+ import { mkdtemp, writeFile } from "node:fs/promises";
10
+ import { tmpdir } from "node:os";
11
+ import { join } from "node:path";
12
+
13
+ /**
14
+ * Move a multi-line `--append-system-prompt` out of argv, because herdr cannot encode it.
15
+ *
16
+ * **Measured.** `herdr agent start` types the argv into the pane's shell, so a value containing newlines
17
+ * is rejected outright: `invalid_agent_argument — agent arguments cannot be encoded safely for the target
18
+ * shell`. A definition's `SKILL.md` body is always multi-line, so every `delegate({agent})` spawn would
19
+ * fail on this path.
20
+ *
21
+ * pi accepts a **file path** there as readily as literal text (`resolvePromptInput` + `existsSync` in
22
+ * `dist/core/resource-loader.js`), so the fix is to write the body to a temp file and pass its path — one
23
+ * short, shell-safe argument.
24
+ *
25
+ * The split lives here rather than in `planSpawn` because the constraint is **herdr's**, not pi's: the
26
+ * direct executor passes the same text inline with no trouble, and a plan builder that pre-emptively wrote
27
+ * temp files for everybody would be paying one executor's tax on both paths.
28
+ */
29
+ export function splitSystemPrompt(args: string[]): { args: string[]; systemPrompt?: string } {
30
+ const at = args.indexOf("--append-system-prompt");
31
+ if (at === -1 || at + 1 >= args.length) return { args };
32
+ return { args: [...args.slice(0, at), ...args.slice(at + 2)], systemPrompt: args[at + 1] };
33
+ }
34
+
35
+ /**
36
+ * Move a multi-line system prompt into a temp file and return argv pointing at it.
37
+ *
38
+ * Returns the directory so the caller can remove it — and **every** early return on the herdr path must, because
39
+ * nothing else can: a reviewer measured a permanent `/tmp/grants-herdr-*` per failed `tab create`, unreachable by
40
+ * either pane sweep because the pane it belonged to never existed.
41
+ */
42
+ export async function stageSystemPrompt(
43
+ args: string[],
44
+ ): Promise<{ args: string[]; promptDir?: string; error?: string }> {
45
+ const split = splitSystemPrompt(args);
46
+ if (split.systemPrompt === undefined) return { args: split.args };
47
+ try {
48
+ const promptDir = await mkdtemp(join(tmpdir(), "grants-herdr-"));
49
+ const file = join(promptDir, "system-prompt.md");
50
+ await writeFile(file, split.systemPrompt, "utf8");
51
+ return { args: [...split.args, "--append-system-prompt", file], promptDir };
52
+ } catch (error) {
53
+ return { args: split.args, error: `could not stage the system prompt for herdr: ${String(error)}` };
54
+ }
55
+ }
@@ -0,0 +1,31 @@
1
+ import { lstat, realpath, mkdir } from "node:fs/promises";
2
+ import { dirname, isAbsolute, join, parse, resolve } from "node:path";
3
+ import { createHash } from "node:crypto";
4
+ import { ENV_NATIVE_SESSION_ROOT } from "../governance/native-session.ts";
5
+ import { ENV_RETAIN_NATIVE_SESSIONS } from "../kernel/env-names.ts";
6
+ export { ENV_RETAIN_NATIVE_SESSIONS } from "../kernel/env-names.ts";
7
+ export interface NativeSessionHost {
8
+ /** Explicit host opt-in captured once, not model-supplied. */ readonly nativeSessionRoot?: string;
9
+ }
10
+ export const nativeSessionRootFromEnv = (env: NodeJS.ProcessEnv) =>
11
+ env[ENV_RETAIN_NATIVE_SESSIONS] === "1" ? (env[ENV_NATIVE_SESSION_ROOT] ?? "") : undefined;
12
+ /** Explicit ordinary-host opt-in only. Never read a destination from tool/model parameters.
13
+ * Allocate a fresh per-occurrence directory; no scan, existing-session takeover or transcript creation. */
14
+ export async function allocateNativeSessionTarget(root: string, executionId: string): Promise<string> {
15
+ if (!isAbsolute(root) || resolve(root) !== root || !/^[a-zA-Z0-9:_-]{1,128}$/.test(executionId))
16
+ throw new Error("explicit native root/execution identity required");
17
+ for (let p = root; ; p = dirname(p)) {
18
+ const s = await lstat(p);
19
+ if (!s.isDirectory() || s.isSymbolicLink()) throw new Error("native target ancestor changed");
20
+ if (p === parse(p).root) break;
21
+ }
22
+ const before = await lstat(root);
23
+ if ((await realpath(root)) !== root || before.mode & 0o077 || before.uid !== process.getuid?.())
24
+ throw new Error("private owned native target root required");
25
+ const directory = join(root, "execution-" + createHash("sha256").update(executionId).digest("hex"));
26
+ await mkdir(directory, { mode: 0o700 }); // EEXIST is a refusal, never permission to append an old occurrence.
27
+ const after = await lstat(root);
28
+ if (before.dev !== after.dev || before.ino !== after.ino || (await realpath(directory)) !== directory)
29
+ throw new Error("native target root replaced");
30
+ return join(directory, "session.jsonl");
31
+ }