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,162 @@
1
+ /**
2
+ * The shapes `planDelegation` consumes and produces. Split out of `./delegate.ts` only to stay under the
3
+ * 400-line module ceiling this project enforces mechanically; `./delegate.ts` re-exports all three, so
4
+ * "the delegate module" remains one import for every caller.
5
+ */
6
+ import type { Capability, ResolveResult } from "./resolve.ts";
7
+ import type { DefinitionDigest, SkillDefinition } from "./definitions.ts";
8
+ import type { InheritableApproval } from "./approval.ts";
9
+ import type { Catalog } from "./catalog.ts";
10
+ import type { ApprovalBinding, CorrelationMetadata } from "./correlation.ts";
11
+ import type { StructuredRefusal } from "./refusals.ts";
12
+
13
+ /** The two ways a child can be started. Defined here, below the executors, so the ledger and the planner can name it without importing an executor (ADR-0076 layering). */
14
+ export const EXECUTOR_KINDS = ["process", "herdr"] as const;
15
+ export type ExecutorKind = (typeof EXECUTOR_KINDS)[number];
16
+
17
+ export interface DelegationRequest {
18
+ task: string;
19
+ /**
20
+ * Capabilities the delegator wants the child to hold.
21
+ *
22
+ * Optional since ADR-0016: prefer `agent`, which names an operator-authored definition. This form
23
+ * lets the MODEL choose the capability set, which is the weaker arrangement — it is still bounded by
24
+ * the session grant (ADR-0008), so it cannot escalate, but nothing about it was reviewed by a human.
25
+ */
26
+ tools?: string[];
27
+ /**
28
+ * Name of a `SKILL.md` definition to spawn (ADR-0016).
29
+ *
30
+ * When given, the definition's `allowed-tools` is the ceiling and its body is the child's system
31
+ * prompt. The model chooses only *which* definition and *what* task; the capability set is the
32
+ * operator's, written down in a file.
33
+ */
34
+ agent?: string;
35
+ model?: string;
36
+ provider?: string;
37
+ thinking?: string;
38
+ /** Optional external join metadata. It never participates in capability authority. */
39
+ correlation?: CorrelationMetadata;
40
+ /**
41
+ * Trusted binding scope, supplied by the caller that actually resolved and leased the
42
+ * workspace. Deliberately separate from `correlation`, whose values are a model-supplied
43
+ * claim: reading the workspace id out of correlation let a bound approval be spent outside
44
+ * the workspace it named (R-110).
45
+ */
46
+ boundWorkspaceId?: string;
47
+ boundContextId?: string;
48
+ }
49
+
50
+ export interface DelegationContext {
51
+ ownGrant: Capability[];
52
+ depth: number;
53
+ maxDepth: number;
54
+ gated: Capability[];
55
+ /**
56
+ * Approvals in force for this delegation, with subject and scope (ADR-0014).
57
+ *
58
+ * One source of truth for two different questions. The **gate check here** honours every entry,
59
+ * including `once` — that approval applies to *this* spawn, which is exactly what the human said yes
60
+ * to. What crosses to the CHILD is `inheritApprovals`, which drops `once` and keeps the subject, so
61
+ * the same list cannot silently authorise a subtree.
62
+ */
63
+ approved?: InheritableApproval[];
64
+ ledgerPath?: string;
65
+ /** Path to this extension, so a child granted `tool:delegate` can delegate in turn. */
66
+ extensionPath?: string;
67
+ /** No-tool activity observer injected only for governed leaf children. */
68
+ observerExtensionPath?: string;
69
+ /**
70
+ * Extra per-child environment supplied by the composition layer (today: the activity timeline's local
71
+ * observation identity). Evaluated once the child's execution id is known. The kernel refuses any key in
72
+ * the `PI_DADDY_` namespace, so nothing supplied here can widen a grant, a depth or an approval
73
+ * (ADR-0076: the kernel imports no product; products contribute through this hook).
74
+ */
75
+ childEnv?: (child: { childExecutionId?: string }) => Readonly<Record<string, string>>;
76
+ /** Live capability catalog. When supplied, capabilities absent from it are refused as unknown. */
77
+ catalog?: Catalog;
78
+ /**
79
+ * Absolute path per skill NAME, from the catalog's `source` field (R-32).
80
+ *
81
+ * Without it every granted `skill:` capability is unresolvable and the delegation is refused, which
82
+ * is the correct direction: a caller that cannot say where a skill lives cannot honestly grant it.
83
+ */
84
+ skillPaths?: Record<string, string>;
85
+ /** Let the child load `AGENTS.md` / `CLAUDE.md`. Default false — see `planSpawn`. */
86
+ contextFiles?: boolean;
87
+ /** Known `SKILL.md` definitions by name, for `DelegationRequest.agent` (ADR-0016). */
88
+ definitions?: Map<string, SkillDefinition>;
89
+ /**
90
+ * Build an INTERACTIVE plan — no `--print` — for an executor that drives the child after starting it.
91
+ *
92
+ * `runHerdrPane` requires this: `--print` makes pi process the prompt and exit, so it never reaches the
93
+ * interactive readiness `herdr agent start` waits for and the agent is never detected. Default is the
94
+ * non-interactive plan, because a governed child should not sit waiting for a human by accident.
95
+ */
96
+ interactive?: boolean;
97
+ /** Explicit host-owned pi persistence target; never model-facing and never enabled by archive observation. */
98
+ sessionFile?: string;
99
+ /**
100
+ * Total descendants this session may still create (`src/kernel/fanout.ts`). Split among children by the caller.
101
+ *
102
+ * Omitted means unbounded, which is the pre-fan-out behaviour and correct for a single blocking
103
+ * delegation — the accident that used to bound cardinality to one.
104
+ */
105
+ fanoutBudget?: number;
106
+ /** This session's ledger id, so a child's `parentId` names its real parent (F8). */
107
+ spawnId?: string;
108
+ /** Ledger id assigned to THIS child, distinguishing logical siblings (F8). */
109
+ childSpawnId?: string;
110
+ /** Unique identity assigned to THIS execution occurrence; never derive joins from childSpawnId. */
111
+ childExecutionId?: string;
112
+ }
113
+
114
+ export interface Delegation {
115
+ ok: boolean;
116
+ reason?: string;
117
+ /** Stable machine-readable refusal accompanying the unchanged human diagnostic. */
118
+ refusal?: StructuredRefusal;
119
+ args: string[];
120
+ /** Per-child environment — never merged into the parent's process.env. */
121
+ env: Record<string, string>;
122
+ effective: Capability[];
123
+ /**
124
+ * The result this plan was made from. **Required** (B-I3): while it was optional the extension
125
+ * guarded its ledger write with `if (ledgerPath && plan.result)`, silently dropping every refusal
126
+ * that returned before `resolve()` ran. The type is what keeps a new early exit auditable.
127
+ */
128
+ result: ResolveResult;
129
+ childDepth: number;
130
+ /**
131
+ * The capabilities this delegation asked for, whatever route named them.
132
+ *
133
+ * Carried on the plan rather than re-derived by the caller (the B-I3 lesson): with `agent`, the
134
+ * request names a DEFINITION and the capabilities come from its `allowed-tools`, so a ledger that
135
+ * read the tool parameters would record an empty request for every definition spawn.
136
+ */
137
+ requested: Capability[];
138
+ /** Ledger id for this child's readable logical position, if the caller assigned one (F8). */
139
+ childId?: string;
140
+ /** Unique identity for this occurrence, if the caller assigned one. */
141
+ executionId?: string;
142
+ /**
143
+ * Which operator-authored instructions this spawn used (ADR-0018).
144
+ *
145
+ * Absent for a `tools:`-style delegation, which has no definition and therefore no instructions to
146
+ * identify — and absent on an ADR-0017 authorisation refusal, which is decided before the file is read.
147
+ */
148
+ definitionDigest?: DefinitionDigest;
149
+ /** Trusted SHA-256 of the exact model-authored task. The task text itself is never stored. */
150
+ taskDigest: string;
151
+ /** Non-authoritative external join metadata, snapshotted at planning time. */
152
+ correlation?: CorrelationMetadata;
153
+ /** Exact approval scope, present when correlation/workspace context requested task-bound approval. */
154
+ approvalBinding?: ApprovalBinding;
155
+ }
156
+
157
+ /**
158
+ * Plan a governed delegation. Pure: returns argv and env, spawns nothing.
159
+ *
160
+ * Fails closed on depth, on any requested capability the delegator does not hold, on gated capabilities
161
+ * without approval, and on a grant that cannot narrow (a universal capability slipping through).
162
+ */
@@ -0,0 +1,375 @@
1
+ /**
2
+ * Governed delegation planning. Owning the spawn makes the grant an argument; each child receives its own
3
+ * environment, and `tool:delegate` determines whether it is a delegator or a leaf.
4
+ */
5
+
6
+ import { planSpawn } from "./spawn.ts";
7
+ import { ceilingForDefinition, digestDefinition, type DefinitionDigest, type SkillDefinition } from "./definitions.ts";
8
+ import { assertNarrowing, type Capability, type ResolveResult } from "./resolve.ts";
9
+ import { checkRoutingAuthority, checkWorkspaceWildcardRequest } from "./routing-authority.ts";
10
+ import { DELEGATE_CAPABILITY, agentCapability, maySpawnDefinition, normaliseCapability } from "./capabilities.ts";
11
+
12
+ // Re-exported so the split stays internal: `delegate.ts` has been the import site for these since 0.6.0 and
13
+ // four modules plus the test suite name it. Moving the definitions without moving the door would be churn
14
+ // charged to every caller for a line count they did not cause.
15
+ export { DELEGATE_CAPABILITY, agentCapability, maySpawnDefinition, normaliseCapability } from "./capabilities.ts";
16
+ import {
17
+ ENV_APPROVED,
18
+ ENV_DEPTH,
19
+ ENV_EXECUTION_ID,
20
+ ENV_FANOUT,
21
+ ENV_GATED,
22
+ ENV_GRANT,
23
+ ENV_LEDGER,
24
+ ENV_MAX_DEPTH,
25
+ ENV_PARENT_ID,
26
+ inheritableGrant,
27
+ } from "./propagation.ts";
28
+ import { inheritApprovals, type InheritableApproval } from "./approval.ts";
29
+ import { explainDoubledNamespace, suggestForUnknown, unknownCapabilities, type Catalog } from "./catalog.ts";
30
+ import { GovernanceRefusal, refusal, type RefusalCode, type StructuredRefusal } from "./refusals.ts";
31
+ import { digestTask, normaliseCorrelation, type ApprovalBinding, type CorrelationMetadata } from "./correlation.ts";
32
+ import { resolveDelegationApproval } from "./delegation-approval.ts";
33
+ import type { Delegation, DelegationContext, DelegationRequest } from "./delegate-types.ts";
34
+ import { assertCapabilitiesArePropagatable } from "./capabilities.ts";
35
+ export type { Delegation, DelegationContext, DelegationRequest } from "./delegate-types.ts";
36
+ import { GOVERNANCE_ENV_KEYS } from "./env-names.ts";
37
+
38
+ export function planDelegation(request: DelegationRequest, ctx: DelegationContext): Delegation {
39
+ const childDepth = ctx.depth + 1;
40
+ const denied = (plan: Delegation, code: RefusalCode): Delegation =>
41
+ plan.reason ? { ...plan, refusal: refusal(code, plan.reason) } : plan;
42
+ // G6 / B-I3: every refusal carries a result, including the four below that return before `resolve()`
43
+ // is ever called. The extension guarded its ledger write with `if (ledgerPath && plan.result)`, so
44
+ // those four governance decisions — disabled, too deep, no task, unknown capability — were never
45
+ // audited at all. An empty result is the honest record: nothing was resolved, and that is the fact.
46
+ // Bounded/whitelisted correlation is a REFUSAL, not an exception escaping the planner. It is reachable
47
+ // from a model-facing tool parameter on all three delegation tools, and throwing from here produced a
48
+ // governed refusal with no code and no ledger line at all — the ledger file was never even created
49
+ // (R-112). Caught here so it becomes an ordinary recorded decision.
50
+ let correlation: CorrelationMetadata | undefined;
51
+ let correlationRefused: StructuredRefusal | undefined;
52
+ try {
53
+ correlation = normaliseCorrelation(request.correlation);
54
+ } catch (error) {
55
+ correlationRefused =
56
+ error instanceof GovernanceRefusal
57
+ ? { code: error.code, message: error.message, ...(error.details ? { details: error.details } : {}) }
58
+ : refusal("CORRELATION_INVALID", String(error instanceof Error ? error.message : error));
59
+ }
60
+ const taskDigest = digestTask(request.task ?? "");
61
+ const empty: Delegation = {
62
+ ok: false,
63
+ args: [],
64
+ env: {},
65
+ effective: [],
66
+ childDepth,
67
+ requested: [],
68
+ taskDigest,
69
+ ...(correlation ? { correlation } : {}),
70
+ result: { effective: [], denied: [], clipped: [], gatedBlocked: [], universal: [], subsumedBy: [] },
71
+ };
72
+
73
+ if (correlationRefused) {
74
+ return { ...empty, reason: correlationRefused.message, refusal: correlationRefused };
75
+ }
76
+ if (ctx.maxDepth <= 0) {
77
+ return denied({ ...empty, reason: "delegation is disabled (maxDepth 0)" }, "DEPTH_EXCEEDED");
78
+ }
79
+ if (childDepth > ctx.maxDepth) {
80
+ return denied({ ...empty, reason: `delegation depth limit reached (${ctx.maxDepth})` }, "DEPTH_EXCEEDED");
81
+ }
82
+ if (!request.task?.trim()) return denied({ ...empty, reason: "a delegation needs a task" }, "TASK_MISSING");
83
+
84
+ // ADR-0035's routing guards live in `routing-authority.ts` with their rationale; both are checked here,
85
+ // before anything is said about the target, because they are governance questions about the SESSION.
86
+ const routing = checkRoutingAuthority(request.boundWorkspaceId, ctx.ownGrant);
87
+ if (routing) {
88
+ return denied(
89
+ {
90
+ ...empty,
91
+ ...(routing.denied ? { requested: routing.denied, result: { ...empty.result, denied: routing.denied } } : {}),
92
+ reason: routing.reason,
93
+ },
94
+ routing.code,
95
+ );
96
+ }
97
+
98
+ // ADR-0016. A named definition replaces the model's tool list with an operator-authored ceiling.
99
+ let requested: Capability[];
100
+ let systemPrompt: string | undefined;
101
+ let definitionDigest: DefinitionDigest | undefined;
102
+ /** The definition being spawned, hoisted so the gate below can name its authorising id (ADR-0024). */
103
+ let spawned: SkillDefinition | undefined;
104
+
105
+ if (request.agent) {
106
+ const definition = ctx.definitions?.get(request.agent);
107
+ spawned = definition;
108
+ // No fallback, deliberately. pi-subagents resolves an unknown type to `general-purpose`, whose
109
+ // omitted tool list means EVERY tool — so a typo there granted the full surface. An unknown name
110
+ // here is simply an error.
111
+ if (!definition) {
112
+ const known = [...(ctx.definitions?.keys() ?? [])].sort();
113
+ return denied(
114
+ {
115
+ ...empty,
116
+ reason:
117
+ `unknown agent "${request.agent}"` +
118
+ (known.length > 0 ? ` — known definitions: ${known.join(", ")}` : " — no definitions were found"),
119
+ },
120
+ "UNKNOWN_DEFINITION",
121
+ );
122
+ }
123
+
124
+ // ADR-0017: authorisation comes BEFORE anything is said about the file. Which definitions this
125
+ // session may spawn is a governance question about the SESSION; whether the file declares its tools
126
+ // properly is a diagnostic about the DEFINITION, and answering the second one first would report a
127
+ // malformed-file error to a caller who was never allowed to spawn it either way.
128
+ //
129
+ // Recorded as a denial rather than a bare refusal, deliberately: `denied` is the escalation signal
130
+ // ADR-0008 designates, and asking to run a definition this session was not granted IS an attempt to
131
+ // exceed the grant. A refusal that left `denied` empty would keep it out of every audit query.
132
+ if (!maySpawnDefinition(ctx.ownGrant, definition.name)) {
133
+ const authorising = agentCapability(definition.name);
134
+ const held = ctx.ownGrant.filter((c) => c.startsWith("agent:")).sort();
135
+ return denied(
136
+ {
137
+ ...empty,
138
+ requested: [authorising],
139
+ result: { ...empty.result, denied: [authorising] },
140
+ reason:
141
+ `cannot spawn "${definition.name}" — this session does not hold ${authorising} ` +
142
+ `(the definition lives at ${definition.source}). ` +
143
+ (held.length > 0
144
+ ? `It may spawn: ${held.join(", ")}.`
145
+ : `It may spawn no definitions at all; add ${authorising} to its grant to allow this one.`),
146
+ },
147
+ "DEFINITION_NOT_AUTHORIZED",
148
+ );
149
+ }
150
+
151
+ // ADR-0018. Recorded from here on — after authorisation, because the digest is a fact about a file
152
+ // this caller was allowed to read, and before every remaining outcome, because a spawn refused for a
153
+ // malformed declaration is still a spawn of THIS version of the definition.
154
+ //
155
+ // Assigned into `empty`, which every subsequent refusal spreads. That is the R-28 discipline applied
156
+ // to a record field rather than an argument: instead of eight `definitionDigest` spellings that a
157
+ // ninth return could forget, there is one, and forgetting it is not expressible. The success return
158
+ // does not spread `empty`, so it names the field explicitly.
159
+ definitionDigest = digestDefinition(definition);
160
+ Object.assign(empty, { definitionDigest });
161
+
162
+ const ceiling = ceilingForDefinition(definition);
163
+ if (ceiling.undeclared) {
164
+ return denied(
165
+ {
166
+ ...empty,
167
+ reason:
168
+ `agent "${definition.name}" declares no \`allowed-tools\`, so it cannot be spawned — add one ` +
169
+ `to ${definition.source}. An undeclared capability set is treated as NONE, never as everything.`,
170
+ },
171
+ "UNDECLARED_TOOLS",
172
+ );
173
+ }
174
+ if (ceiling.patterns.length > 0) {
175
+ return denied(
176
+ {
177
+ ...empty,
178
+ reason:
179
+ `agent "${definition.name}" restricts a tool with a pattern (${ceiling.patterns.join(", ")}), ` +
180
+ `which pi's --tools cannot express — it matches whole tool names only. Granting the bare tool ` +
181
+ `would widen the declaration and dropping it would silently narrow, so neither is done.`,
182
+ },
183
+ "CEILING_PATTERNS_UNRESOLVED",
184
+ );
185
+ }
186
+ requested = ceiling.capabilities;
187
+ systemPrompt = definition.body;
188
+ } else {
189
+ requested = (request.tools ?? []).map(normaliseCapability);
190
+ }
191
+
192
+ // Unknown is reported before denied, and separately: "does not exist here" and "you lack authority"
193
+ // have different causes and different fixes. Collapsing them hides typos and stale grants.
194
+ if (ctx.catalog) {
195
+ const unknown = unknownCapabilities(requested, ctx.catalog);
196
+ if (unknown.length > 0) {
197
+ // Name the likely intent where there is one. `ceilingForDefinition` refuses to TRANSLATE names
198
+ // (lowercasing and no more), so an author who wrote Claude Code's `Glob` gets `tool:glob` and a
199
+ // refusal — correct, and previously unhelpful, because pi's equivalent is `find` and no amount of
200
+ // staring at "not present in this session's catalog" says so. The hint changes nothing about the
201
+ // refusal; it just stops the author having to guess which of nine built-ins was meant.
202
+ // A doubled namespace is answered first and instead: it is not a guess about what the author meant
203
+ // but a statement of what the field did, and "did you mean tool:read?" beside `tool:tool:read` shows
204
+ // the author a correction without ever saying that `allowed-tools` supplies the `tool:` itself.
205
+ const hints = unknown
206
+ .map((c) => {
207
+ const doubled = explainDoubledNamespace(c);
208
+ if (doubled !== null) return doubled;
209
+ const s = suggestForUnknown(c, ctx.catalog!);
210
+ return s === null ? null : `${c} → did you mean ${s}?`;
211
+ })
212
+ .filter((h): h is string => h !== null);
213
+ return denied(
214
+ {
215
+ ...empty,
216
+ requested,
217
+ reason:
218
+ `unknown capabilit${unknown.length === 1 ? "y" : "ies"}: ${unknown.join(", ")} — not present in ` +
219
+ `this session's catalog (typo, or an uninstalled package?)` +
220
+ (hints.length > 0 ? ` — ${hints.join("; ")}` : ""),
221
+ },
222
+ "UNKNOWN_TOOL",
223
+ );
224
+ }
225
+ }
226
+
227
+ // See `checkWorkspaceWildcardRequest`: refused for a HOLDER (the ledger must not record authority the
228
+ // child will not receive), and left to `resolve()` for anyone else, so the probe lands in `denied`.
229
+ const wildcardRequest = checkWorkspaceWildcardRequest(requested, ctx.ownGrant);
230
+ if (wildcardRequest) {
231
+ return denied({ ...empty, requested, reason: wildcardRequest.reason }, wildcardRequest.code);
232
+ }
233
+
234
+ const { result, approvalBinding, bindingMismatch } = resolveDelegationApproval({
235
+ task: request.task,
236
+ agent: request.agent,
237
+ boundWorkspaceId: request.boundWorkspaceId,
238
+ boundContextId: request.boundContextId,
239
+ requested,
240
+ parentGrant: ctx.ownGrant,
241
+ gated: ctx.gated,
242
+ approved: ctx.approved,
243
+ spawned,
244
+ definitionDigest,
245
+ correlation,
246
+ parentId: ctx.spawnId ?? `d${ctx.depth}`,
247
+ });
248
+ if (approvalBinding) Object.assign(empty, { approvalBinding });
249
+
250
+ if (result.denied.length > 0) {
251
+ return denied(
252
+ {
253
+ ...empty,
254
+ requested,
255
+ result,
256
+ reason: `cannot grant ${result.denied.join(", ")} — this session does not hold it (capability escalation blocked)`,
257
+ },
258
+ "CAPABILITY_ESCALATION",
259
+ );
260
+ }
261
+ // ADR-0011: narrowing is checked BEFORE the gate, and the order is load-bearing rather than
262
+ // stylistic. `assertNarrowing` refuses regardless of approval, so with the old order this returned
263
+ // "requires explicit approval" for a delegation that could never be approved — telling the operator
264
+ // to go and find a human who cannot help. `shouldSeekApproval` now also refuses to prompt in this
265
+ // case; this reordering makes the reported *reason* agree with what actually blocks the spawn.
266
+ try {
267
+ assertNarrowing(result);
268
+ } catch (error) {
269
+ // ADR-0011's narrowing invariant is the hardest rule this package enforces, and it was the one
270
+ // refusal an external controller could not identify by code (R-109).
271
+ return denied(
272
+ { ...empty, requested, result, reason: String(error instanceof Error ? error.message : error) },
273
+ "NARROWING_VIOLATED",
274
+ );
275
+ }
276
+ if (result.gatedBlocked.length > 0) {
277
+ const code = bindingMismatch ? "APPROVAL_SCOPE_MISMATCH" : "GATED_UNAPPROVED";
278
+ const suffix = bindingMismatch ? " (an approval exists, but its task/workspace/context scope does not match)" : "";
279
+ return denied(
280
+ { ...empty, requested, result, reason: `${result.gatedBlocked.join(", ")} requires explicit approval${suffix}` },
281
+ code,
282
+ );
283
+ }
284
+
285
+ const canSubDelegate = result.effective.includes(DELEGATE_CAPABILITY);
286
+ const plan = planSpawn({
287
+ effective: result.effective,
288
+ prompt: request.task,
289
+ model: request.model,
290
+ provider: request.provider,
291
+ thinking: request.thinking,
292
+ skillPaths: ctx.skillPaths,
293
+ contextFiles: ctx.contextFiles,
294
+ systemPrompt,
295
+ sessionFile: ctx.sessionFile,
296
+ print: ctx.interactive ? false : undefined,
297
+ });
298
+
299
+ // R-32. A `skill:` capability the catalog cannot place is refused rather than dropped. Dropping it
300
+ // would hand back a child whose grant claims a skill it does not have — the ledger would record a
301
+ // capability that never reached the process, which is precisely the kind of lie an audit trail must
302
+ // not contain. `unknownCapabilities` above catches names absent from the catalog entirely; this
303
+ // catches one that is known but whose path we could not resolve, which is a different fault.
304
+ if (plan.unresolvedSkills.length > 0) {
305
+ return denied(
306
+ {
307
+ ...empty,
308
+ requested,
309
+ result,
310
+ reason:
311
+ `cannot locate ${plan.unresolvedSkills.join(", ")} on disk — granted but unresolvable, so the ` +
312
+ `child would silently lack it`,
313
+ },
314
+ "DEFINITION_UNREADABLE",
315
+ );
316
+ }
317
+
318
+ // `-e` loads even under `--no-extensions`. A delegate-capable child loads the governance extension;
319
+ // a leaf gets only the no-tool observer. Neither path alters --tools or the computed grant.
320
+ const args = [...plan.args];
321
+ const observer = canSubDelegate ? ctx.extensionPath : ctx.observerExtensionPath;
322
+ if (observer) args.splice(args.length - 1, 0, "-e", observer);
323
+
324
+ // `inheritableGrant`, not `result.effective` directly: this is the path a DELEGATED child's grant
325
+ // actually travels, and the "held but never inherited" rule for `tool:*` and `workspace:*` was enforced
326
+ // only in `childEnv`. A parent holding `workspace:*` could request it for its child and this line handed
327
+ // it over, so the rule ADR-0035 advertises held by accident — masked downstream rather than enforced
328
+ // here. One spelling of the rule, called from both paths.
329
+ const inheritable = inheritableGrant(result.effective);
330
+ const env: Record<string, string> = {
331
+ [ENV_GRANT]: (assertCapabilitiesArePropagatable(inheritable), inheritable.join(",")),
332
+ [ENV_DEPTH]: String(childDepth),
333
+ [ENV_MAX_DEPTH]: String(ctx.maxDepth),
334
+ };
335
+ // The child's own share of the subtree budget, and its identity. Both attenuate downward like depth: a
336
+ // child can never be handed more budget than its parent had left, so the total bound holds across
337
+ // process boundaries with no shared state.
338
+ if (ctx.fanoutBudget !== undefined) env[ENV_FANOUT] = String(ctx.fanoutBudget);
339
+ if (ctx.childSpawnId) env[ENV_PARENT_ID] = ctx.childSpawnId;
340
+ if (ctx.childExecutionId) env[ENV_EXECUTION_ID] = ctx.childExecutionId;
341
+ if (ctx.gated.length > 0) env[ENV_GATED] = ctx.gated.join(",");
342
+ // Approvals ride down with the grant, but only ever for what this child actually received — so
343
+ // `approved ⊆ grant` holds at every level (ADR-0010). Written even when empty, so this object states
344
+ // the child's approval set outright rather than leaving it to whatever the caller merges over; see
345
+ // `mergeChildEnv`, which is what actually stops the parent's value leaking through.
346
+ // Clamped to what the child actually INHERITS, not to what it was granted. The two differ only for a
347
+ // non-inheritable wildcard, and passing down an approval for a capability the child does not hold would
348
+ // leave banked authority with nothing to spend it on — `childEnv` clamps to `inheritable` for the same
349
+ // reason on the other path.
350
+ env[ENV_APPROVED] = inheritApprovals(ctx.approved ?? [], inheritable).join(",");
351
+ if (ctx.ledgerPath) env[ENV_LEDGER] = ctx.ledgerPath;
352
+ // Composition-supplied per-child environment (the activity timeline's observation identity today).
353
+ // Never process-global grant state: a key in the governance namespace is a programming error in the
354
+ // caller, refused loudly rather than letting a product widen what the child inherits.
355
+ for (const [key, value] of Object.entries(ctx.childEnv?.({ childExecutionId: ctx.childExecutionId }) ?? {})) {
356
+ if (GOVERNANCE_ENV_KEYS.includes(key) || key in env) throw new Error(`childEnv may not set governance key ${key}`);
357
+ env[key] = value;
358
+ }
359
+
360
+ return {
361
+ ok: true,
362
+ args,
363
+ env,
364
+ effective: result.effective,
365
+ result,
366
+ childDepth,
367
+ requested,
368
+ childId: ctx.childSpawnId,
369
+ executionId: ctx.childExecutionId,
370
+ taskDigest,
371
+ ...(correlation ? { correlation } : {}),
372
+ ...(approvalBinding ? { approvalBinding } : {}),
373
+ ...(definitionDigest ? { definitionDigest } : {}),
374
+ };
375
+ }
@@ -0,0 +1,126 @@
1
+ import { DELEGATE_SUBJECT, type InheritableApproval } from "./approval.ts";
2
+ import { agentCapability, workspaceCapability } from "./capabilities.ts";
3
+ import {
4
+ approvalBindingsEqual,
5
+ buildApprovalBinding,
6
+ type ApprovalBinding,
7
+ type CorrelationMetadata,
8
+ } from "./correlation.ts";
9
+ import type { DefinitionDigest, SkillDefinition } from "./definitions.ts";
10
+ import { AGENT_WILDCARD, WORKSPACE_WILDCARD, resolve, type Capability, type ResolveResult } from "./resolve.ts";
11
+
12
+ /**
13
+ * Resolve the approval half of one delegation after its requested capability set is known.
14
+ *
15
+ * Kept as one function because the ordering is security-relevant: compute the unapproved and potential
16
+ * effective sets first, derive the exact binding from those trusted values, then decide which approvals
17
+ * match. An approval must never define the scope against which it is checked.
18
+ */
19
+ export function resolveDelegationApproval(input: {
20
+ task: string;
21
+ agent?: string;
22
+ requested: Capability[];
23
+ parentGrant: Capability[];
24
+ gated: Capability[];
25
+ approved?: InheritableApproval[];
26
+ spawned?: SkillDefinition;
27
+ definitionDigest?: DefinitionDigest;
28
+ /**
29
+ * Present iff this call is task-bound. Most values remain labels; optional tree_sha/last_change_seq enter
30
+ * the binding only to narrow a supplied approval to the upstream tree state that was reviewed.
31
+ */
32
+ correlation?: CorrelationMetadata;
33
+ /** Trusted: an id that was resolved against the operator registry and leased. Never a caller claim. */
34
+ boundWorkspaceId?: string;
35
+ /** Caller-declared label. Narrows the binding only; asserts nothing about enforcement. */
36
+ boundContextId?: string;
37
+ parentId: string;
38
+ }): { result: ResolveResult; approvalBinding?: ApprovalBinding; bindingMismatch: boolean } {
39
+ const subject = input.agent ?? DELEGATE_SUBJECT;
40
+ const unapproved = resolve({
41
+ requested: input.requested,
42
+ parentGrant: input.parentGrant,
43
+ gated: input.gated,
44
+ approved: [],
45
+ });
46
+
47
+ /**
48
+ * Authorities the PARENT is spending on this one delegation, gated as such.
49
+ *
50
+ * ADR-0024 established the shape for `agent:<name>`: the id is gated as the parent's authority to run
51
+ * that definition *now*, and never joins requested/effective, because that would hand the child authority
52
+ * to recursively spawn itself. ADR-0035 added a second member of the category — `workspace:<id>`, the
53
+ * authority to route this child somewhere — and shipped without it, so `PI_DADDY_GATED=workspace:prod`
54
+ * was accepted, recorded, and silently inert: no human was ever asked. The ADR claimed the opposite in
55
+ * three places.
56
+ *
57
+ * A LIST rather than two variables on purpose. This is the third namespace whose authorising id is gated
58
+ * per-delegation rather than granted downward, and the first two were written as one special case each;
59
+ * a fourth should extend an array, not add a third `if` and a third field to thread through.
60
+ */
61
+ const authorisingCapabilities: Capability[] = [];
62
+ const gateAuthority = (authorising: Capability, wildcard: Capability) => {
63
+ if (input.gated.includes(authorising) || input.gated.includes(wildcard)) {
64
+ authorisingCapabilities.push(authorising);
65
+ unapproved.gatedBlocked = [...unapproved.gatedBlocked, authorising];
66
+ }
67
+ };
68
+ if (input.spawned) gateAuthority(agentCapability(input.spawned.name), AGENT_WILDCARD);
69
+ // Trusted: `boundWorkspaceId` is set only from a routing spec resolved against the operator registry,
70
+ // never from a model-supplied `correlation` claim (R-110).
71
+ if (input.boundWorkspaceId) {
72
+ gateAuthority(workspaceCapability(input.boundWorkspaceId), WORKSPACE_WILDCARD);
73
+ }
74
+
75
+ const potential = resolve({
76
+ requested: input.requested,
77
+ parentGrant: input.parentGrant,
78
+ gated: input.gated,
79
+ // If the definition also declares its own authorising `agent:<name>`, the same approval unblocks
80
+ // that requested child capability too; excluding it here would bind a smaller set than we provision.
81
+ approved: unapproved.gatedBlocked,
82
+ });
83
+ const approvalBinding = input.correlation
84
+ ? buildApprovalBinding({
85
+ task: input.task,
86
+ requested: input.requested,
87
+ effective: potential.effective,
88
+ definitionSha256: input.definitionDigest?.sha256,
89
+ parentId: input.parentId,
90
+ workspaceId: input.boundWorkspaceId,
91
+ contextId: input.boundContextId,
92
+ treeSha: input.correlation?.tree_sha,
93
+ lastChangeSeq: input.correlation?.last_change_seq,
94
+ })
95
+ : undefined;
96
+
97
+ const forSubject = (input.approved ?? []).filter((approval) => approval.subject === subject);
98
+ const approvedCapabilities = forSubject
99
+ .filter((approval) =>
100
+ approvalBinding ? approvalBindingsEqual(approval.binding, approvalBinding) : approval.binding === undefined,
101
+ )
102
+ .map((approval) => approval.capability);
103
+ const bindingMismatch =
104
+ approvalBinding !== undefined &&
105
+ forSubject.some(
106
+ (approval) => approval.binding !== undefined && !approvalBindingsEqual(approval.binding, approvalBinding),
107
+ );
108
+ const result = resolve({
109
+ requested: input.requested,
110
+ parentGrant: input.parentGrant,
111
+ gated: input.gated,
112
+ approved: approvedCapabilities,
113
+ });
114
+ // Filtered against what `resolve()` already listed, not just against approvals. In the ORDINARY chained
115
+ // configuration — route the child to `prod` AND grant it `workspace:prod` so it can route onward — the
116
+ // authorising id and the requested id are spelled identically, so appending unconditionally produced
117
+ // `gatedBlocked: ["workspace:prod","workspace:prod"]`, which reached the refusal text a model reads
118
+ // (*"workspace:prod, workspace:prod requires explicit approval"*) and the append-only ledger, whose schema
119
+ // has no `uniqueItems`. The old `agent:`-only code had the same shape and never hit it, because a
120
+ // self-recursive `agent:X` ceiling is not a thing anybody writes.
121
+ const stillGated = authorisingCapabilities.filter(
122
+ (c) => !approvedCapabilities.includes(c) && !result.gatedBlocked.includes(c),
123
+ );
124
+ if (stillGated.length > 0) result.gatedBlocked = [...result.gatedBlocked, ...stillGated];
125
+ return { result, ...(approvalBinding ? { approvalBinding } : {}), bindingMismatch };
126
+ }