pi-daddy 0.27.4 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1000) hide show
  1. package/CHANGELOG.md +108 -124
  2. package/README.md +18 -896
  3. package/THIRD_PARTY_NOTICES.md +1 -1
  4. package/contracts/ledger-record/v1/README.md +44 -0
  5. package/contracts/ledger-record/v1/fixtures/child-lifecycle.json +45 -0
  6. package/contracts/ledger-record/v1/fixtures/ledger-record.jsonl +3 -0
  7. package/contracts/ledger-record/v1/governance-event.schema.json +747 -0
  8. package/contracts/ledger-record/v1/record.schema.json +91 -0
  9. package/dist/cli.d.ts +6 -4
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +108 -103
  12. package/dist/cli.js.map +1 -1
  13. package/dist/executors/activity-session.d.ts +12 -0
  14. package/dist/executors/activity-session.d.ts.map +1 -0
  15. package/dist/executors/activity-session.js +43 -0
  16. package/dist/executors/activity-session.js.map +1 -0
  17. package/dist/executors/executor.d.ts +39 -0
  18. package/dist/executors/executor.d.ts.map +1 -0
  19. package/dist/executors/executor.js +95 -0
  20. package/dist/executors/executor.js.map +1 -0
  21. package/dist/executors/herdr-cli.d.ts +78 -0
  22. package/dist/executors/herdr-cli.d.ts.map +1 -0
  23. package/dist/executors/herdr-cli.js +114 -0
  24. package/dist/executors/herdr-cli.js.map +1 -0
  25. package/dist/executors/herdr-name.d.ts.map +1 -0
  26. package/dist/executors/herdr-name.js.map +1 -0
  27. package/dist/executors/herdr-pi-lifecycle.d.ts.map +1 -0
  28. package/dist/executors/herdr-pi-lifecycle.js +22 -0
  29. package/dist/executors/herdr-pi-lifecycle.js.map +1 -0
  30. package/dist/executors/herdr-poll.d.ts +140 -0
  31. package/dist/executors/herdr-poll.d.ts.map +1 -0
  32. package/dist/executors/herdr-poll.js +252 -0
  33. package/dist/executors/herdr-poll.js.map +1 -0
  34. package/dist/executors/herdr-stage.d.ts +40 -0
  35. package/dist/executors/herdr-stage.d.ts.map +1 -0
  36. package/dist/executors/herdr-stage.js +54 -0
  37. package/dist/executors/herdr-stage.js.map +1 -0
  38. package/dist/executors/herdr-start.d.ts.map +1 -0
  39. package/dist/executors/herdr-start.js.map +1 -0
  40. package/dist/executors/native-session-target.d.ts +9 -0
  41. package/dist/executors/native-session-target.d.ts.map +1 -0
  42. package/dist/executors/native-session-target.js +30 -0
  43. package/dist/executors/native-session-target.js.map +1 -0
  44. package/dist/executors/pane-reaper.d.ts +111 -0
  45. package/dist/executors/pane-reaper.d.ts.map +1 -0
  46. package/dist/executors/pane-reaper.js +242 -0
  47. package/dist/executors/pane-reaper.js.map +1 -0
  48. package/dist/executors/process-activity.d.ts +3 -0
  49. package/dist/executors/process-activity.d.ts.map +1 -0
  50. package/dist/executors/process-activity.js +59 -0
  51. package/dist/executors/process-activity.js.map +1 -0
  52. package/dist/executors/run-herdr.d.ts +122 -0
  53. package/dist/executors/run-herdr.d.ts.map +1 -0
  54. package/dist/executors/run-herdr.js +341 -0
  55. package/dist/executors/run-herdr.js.map +1 -0
  56. package/dist/executors/vendor/herdr-pi-lifecycle.d.ts.map +1 -0
  57. package/dist/executors/vendor/herdr-pi-lifecycle.js.map +1 -0
  58. package/dist/governance/approval-prompt.d.ts +119 -0
  59. package/dist/governance/approval-prompt.d.ts.map +1 -0
  60. package/dist/governance/approval-prompt.js +133 -0
  61. package/dist/governance/approval-prompt.js.map +1 -0
  62. package/dist/governance/approval-store.d.ts +149 -0
  63. package/dist/governance/approval-store.d.ts.map +1 -0
  64. package/dist/governance/approval-store.js +309 -0
  65. package/dist/governance/approval-store.js.map +1 -0
  66. package/dist/governance/execution-retention.d.ts +90 -0
  67. package/dist/governance/execution-retention.d.ts.map +1 -0
  68. package/dist/governance/execution-retention.js +317 -0
  69. package/dist/governance/execution-retention.js.map +1 -0
  70. package/dist/governance/file-lock.d.ts.map +1 -0
  71. package/dist/governance/file-lock.js +205 -0
  72. package/dist/governance/file-lock.js.map +1 -0
  73. package/dist/governance/finalization.d.ts.map +1 -0
  74. package/dist/governance/finalization.js.map +1 -0
  75. package/dist/governance/grant-store.d.ts +96 -0
  76. package/dist/governance/grant-store.d.ts.map +1 -0
  77. package/dist/governance/grant-store.js +186 -0
  78. package/dist/governance/grant-store.js.map +1 -0
  79. package/dist/governance/init.d.ts +129 -0
  80. package/dist/governance/init.d.ts.map +1 -0
  81. package/dist/governance/init.js +360 -0
  82. package/dist/governance/init.js.map +1 -0
  83. package/dist/governance/lease-helper.d.ts.map +1 -0
  84. package/dist/governance/lease-helper.js +121 -0
  85. package/dist/governance/lease-helper.js.map +1 -0
  86. package/dist/governance/lease-record.d.ts +90 -0
  87. package/dist/governance/lease-record.d.ts.map +1 -0
  88. package/dist/governance/lease-record.js.map +1 -0
  89. package/dist/governance/ledger-events.d.ts +111 -0
  90. package/dist/governance/ledger-events.d.ts.map +1 -0
  91. package/dist/governance/ledger-events.js +129 -0
  92. package/dist/governance/ledger-events.js.map +1 -0
  93. package/dist/governance/ledger-report.d.ts +134 -0
  94. package/dist/governance/ledger-report.d.ts.map +1 -0
  95. package/dist/governance/ledger-report.js +294 -0
  96. package/dist/governance/ledger-report.js.map +1 -0
  97. package/dist/governance/ledger-v3-validation.d.ts +21 -0
  98. package/dist/governance/ledger-v3-validation.d.ts.map +1 -0
  99. package/dist/governance/ledger-v3-validation.js +353 -0
  100. package/dist/governance/ledger-v3-validation.js.map +1 -0
  101. package/dist/governance/ledger.d.ts +258 -0
  102. package/dist/governance/ledger.d.ts.map +1 -0
  103. package/dist/governance/ledger.js +201 -0
  104. package/dist/governance/ledger.js.map +1 -0
  105. package/dist/governance/native-session.d.ts +59 -0
  106. package/dist/governance/native-session.d.ts.map +1 -0
  107. package/dist/governance/native-session.js +208 -0
  108. package/dist/governance/native-session.js.map +1 -0
  109. package/dist/governance/record.d.ts +65 -0
  110. package/dist/governance/record.d.ts.map +1 -0
  111. package/dist/governance/record.js +259 -0
  112. package/dist/governance/record.js.map +1 -0
  113. package/dist/governance/retention-contract.d.ts.map +1 -0
  114. package/dist/governance/retention-contract.js +187 -0
  115. package/dist/governance/retention-contract.js.map +1 -0
  116. package/dist/governance/retention-json.d.ts.map +1 -0
  117. package/dist/governance/retention-json.js.map +1 -0
  118. package/dist/governance/workspace-lease.d.ts +40 -0
  119. package/dist/governance/workspace-lease.d.ts.map +1 -0
  120. package/dist/governance/workspace-lease.js +357 -0
  121. package/dist/governance/workspace-lease.js.map +1 -0
  122. package/dist/index.d.ts +59 -42
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +61 -42
  125. package/dist/index.js.map +1 -1
  126. package/dist/kernel/approval.d.ts +241 -0
  127. package/dist/kernel/approval.d.ts.map +1 -0
  128. package/dist/kernel/approval.js +270 -0
  129. package/dist/kernel/approval.js.map +1 -0
  130. package/dist/kernel/capabilities.d.ts +136 -0
  131. package/dist/kernel/capabilities.d.ts.map +1 -0
  132. package/dist/kernel/capabilities.js +199 -0
  133. package/dist/kernel/capabilities.js.map +1 -0
  134. package/dist/kernel/catalog.d.ts +98 -0
  135. package/dist/kernel/catalog.d.ts.map +1 -0
  136. package/dist/kernel/catalog.js +280 -0
  137. package/dist/kernel/catalog.js.map +1 -0
  138. package/dist/kernel/chain.d.ts.map +1 -0
  139. package/dist/kernel/chain.js.map +1 -0
  140. package/dist/kernel/correlation.d.ts.map +1 -0
  141. package/dist/kernel/correlation.js +267 -0
  142. package/dist/kernel/correlation.js.map +1 -0
  143. package/dist/kernel/definitions.d.ts.map +1 -0
  144. package/dist/kernel/definitions.js +164 -0
  145. package/dist/kernel/definitions.js.map +1 -0
  146. package/dist/kernel/delegate-types.d.ts +160 -0
  147. package/dist/kernel/delegate-types.d.ts.map +1 -0
  148. package/dist/kernel/delegate-types.js +9 -0
  149. package/dist/kernel/delegate-types.js.map +1 -0
  150. package/dist/kernel/delegate.d.ts.map +1 -0
  151. package/dist/kernel/delegate.js +314 -0
  152. package/dist/kernel/delegate.js.map +1 -0
  153. package/dist/kernel/delegation-approval.d.ts.map +1 -0
  154. package/dist/kernel/delegation-approval.js +93 -0
  155. package/dist/kernel/delegation-approval.js.map +1 -0
  156. package/dist/kernel/env-names.d.ts +51 -0
  157. package/dist/kernel/env-names.d.ts.map +1 -0
  158. package/dist/kernel/env-names.js +112 -0
  159. package/dist/kernel/env-names.js.map +1 -0
  160. package/dist/kernel/execution-id.d.ts.map +1 -0
  161. package/dist/kernel/execution-id.js.map +1 -0
  162. package/dist/kernel/fanout.d.ts.map +1 -0
  163. package/dist/kernel/fanout.js +93 -0
  164. package/dist/kernel/fanout.js.map +1 -0
  165. package/dist/kernel/grant-env.d.ts +118 -0
  166. package/dist/kernel/grant-env.d.ts.map +1 -0
  167. package/dist/kernel/grant-env.js +104 -0
  168. package/dist/kernel/grant-env.js.map +1 -0
  169. package/dist/kernel/ledger-identifiers.d.ts.map +1 -0
  170. package/dist/kernel/ledger-identifiers.js.map +1 -0
  171. package/dist/kernel/model-preflight.d.ts +13 -0
  172. package/dist/kernel/model-preflight.d.ts.map +1 -0
  173. package/dist/kernel/model-preflight.js +30 -0
  174. package/dist/kernel/model-preflight.js.map +1 -0
  175. package/dist/kernel/pi-tools.d.ts.map +1 -0
  176. package/dist/kernel/pi-tools.js +29 -0
  177. package/dist/kernel/pi-tools.js.map +1 -0
  178. package/dist/kernel/progress.d.ts.map +1 -0
  179. package/dist/kernel/progress.js.map +1 -0
  180. package/dist/kernel/project-paths.d.ts +43 -0
  181. package/dist/kernel/project-paths.d.ts.map +1 -0
  182. package/dist/kernel/project-paths.js +81 -0
  183. package/dist/kernel/project-paths.js.map +1 -0
  184. package/dist/kernel/propagation.d.ts +195 -0
  185. package/dist/kernel/propagation.d.ts.map +1 -0
  186. package/dist/kernel/propagation.js +275 -0
  187. package/dist/kernel/propagation.js.map +1 -0
  188. package/dist/kernel/refusals.d.ts +16 -0
  189. package/dist/kernel/refusals.d.ts.map +1 -0
  190. package/dist/kernel/refusals.js +53 -0
  191. package/dist/kernel/refusals.js.map +1 -0
  192. package/dist/kernel/resolve.d.ts.map +1 -0
  193. package/dist/kernel/resolve.js +201 -0
  194. package/dist/kernel/resolve.js.map +1 -0
  195. package/dist/kernel/routing-authority.d.ts.map +1 -0
  196. package/dist/kernel/routing-authority.js.map +1 -0
  197. package/dist/kernel/run-child.d.ts +111 -0
  198. package/dist/kernel/run-child.d.ts.map +1 -0
  199. package/dist/kernel/run-child.js +324 -0
  200. package/dist/kernel/run-child.js.map +1 -0
  201. package/dist/kernel/skill-packages.d.ts +116 -0
  202. package/dist/kernel/skill-packages.d.ts.map +1 -0
  203. package/dist/kernel/skill-packages.js +300 -0
  204. package/dist/kernel/skill-packages.js.map +1 -0
  205. package/dist/kernel/skill-resources.d.ts.map +1 -0
  206. package/dist/kernel/skill-resources.js +56 -0
  207. package/dist/kernel/skill-resources.js.map +1 -0
  208. package/dist/kernel/spawn.d.ts.map +1 -0
  209. package/dist/kernel/spawn.js.map +1 -0
  210. package/dist/kernel/workspace.d.ts +51 -0
  211. package/dist/kernel/workspace.d.ts.map +1 -0
  212. package/dist/kernel/workspace.js +223 -0
  213. package/dist/kernel/workspace.js.map +1 -0
  214. package/dist/products/activity-timeline.d.ts +126 -0
  215. package/dist/products/activity-timeline.d.ts.map +1 -0
  216. package/dist/products/activity-timeline.js +542 -0
  217. package/dist/products/activity-timeline.js.map +1 -0
  218. package/dist/products/dashboard-cli.d.ts +26 -0
  219. package/dist/products/dashboard-cli.d.ts.map +1 -0
  220. package/dist/products/dashboard-cli.js +224 -0
  221. package/dist/products/dashboard-cli.js.map +1 -0
  222. package/dist/products/dashboard-display-controls.d.ts +17 -0
  223. package/dist/products/dashboard-display-controls.d.ts.map +1 -0
  224. package/dist/products/dashboard-display-controls.js +38 -0
  225. package/dist/products/dashboard-display-controls.js.map +1 -0
  226. package/dist/products/dashboard-handshake.d.ts +42 -0
  227. package/dist/products/dashboard-handshake.d.ts.map +1 -0
  228. package/dist/products/dashboard-handshake.js +158 -0
  229. package/dist/products/dashboard-handshake.js.map +1 -0
  230. package/dist/products/dashboard-herdr.d.ts +55 -0
  231. package/dist/products/dashboard-herdr.d.ts.map +1 -0
  232. package/dist/products/dashboard-herdr.js +324 -0
  233. package/dist/products/dashboard-herdr.js.map +1 -0
  234. package/dist/products/dashboard-projection.d.ts +62 -0
  235. package/dist/products/dashboard-projection.d.ts.map +1 -0
  236. package/dist/products/dashboard-projection.js +305 -0
  237. package/dist/products/dashboard-projection.js.map +1 -0
  238. package/dist/products/dashboard-render.d.ts.map +1 -0
  239. package/dist/products/dashboard-render.js +208 -0
  240. package/dist/products/dashboard-render.js.map +1 -0
  241. package/extensions/activity-timeline.ts +196 -0
  242. package/extensions/approval-banking.ts +3 -3
  243. package/extensions/approvals.ts +18 -12
  244. package/extensions/chain-approval-facts.ts +9 -6
  245. package/extensions/chain-ledger.ts +4 -4
  246. package/extensions/chain-plan.ts +6 -6
  247. package/extensions/correlation-shape.ts +42 -33
  248. package/extensions/delegate-chain.ts +93 -45
  249. package/extensions/delegation-authority.ts +7 -3
  250. package/extensions/delegation-ledger.ts +2 -2
  251. package/extensions/delegation-native.ts +24 -7
  252. package/extensions/delegation.ts +91 -80
  253. package/extensions/execute-child.ts +440 -293
  254. package/extensions/execution-occurrence.ts +2 -2
  255. package/extensions/executor-session.ts +5 -5
  256. package/extensions/fanout-outcome.ts +8 -6
  257. package/extensions/grant-store-refusal.ts +24 -12
  258. package/extensions/grants-command.ts +41 -33
  259. package/extensions/grants-connected-command.ts +29 -15
  260. package/extensions/grants.ts +78 -77
  261. package/extensions/init-command.ts +18 -12
  262. package/extensions/reload-environment.ts +12 -5
  263. package/extensions/run-delegation.ts +29 -19
  264. package/extensions/session-environment.ts +31 -14
  265. package/extensions/session-report.ts +60 -10
  266. package/extensions/session.ts +76 -66
  267. package/extensions/spawn-summary.ts +5 -5
  268. package/extensions/stored-grant-session.ts +5 -5
  269. package/extensions/tripwire.ts +1 -1
  270. package/extensions/workspace-runtime.ts +26 -24
  271. package/herdr-plugin/herdr-plugin.toml +1 -1
  272. package/package.json +5 -212
  273. package/src/cli.ts +136 -89
  274. package/src/executors/activity-session.ts +54 -0
  275. package/src/executors/executor.ts +123 -0
  276. package/src/executors/herdr-cli.ts +132 -0
  277. package/src/executors/herdr-pi-lifecycle.ts +21 -0
  278. package/src/executors/herdr-poll.ts +305 -0
  279. package/src/executors/herdr-stage.ts +55 -0
  280. package/src/executors/native-session-target.ts +31 -0
  281. package/src/executors/pane-reaper.ts +270 -0
  282. package/src/executors/process-activity.ts +54 -0
  283. package/src/executors/run-herdr.ts +426 -0
  284. package/src/governance/approval-prompt.ts +225 -0
  285. package/src/governance/approval-store.ts +385 -0
  286. package/src/governance/execution-retention.ts +372 -0
  287. package/src/governance/file-lock.ts +210 -0
  288. package/src/governance/finalization.ts +82 -0
  289. package/src/governance/grant-store.ts +235 -0
  290. package/src/governance/init.ts +447 -0
  291. package/src/governance/lease-helper.ts +124 -0
  292. package/src/governance/lease-record.ts +131 -0
  293. package/src/governance/ledger-events.ts +222 -0
  294. package/src/governance/ledger-report.ts +396 -0
  295. package/src/governance/ledger-v3-validation.ts +384 -0
  296. package/src/governance/ledger.ts +419 -0
  297. package/src/governance/native-session.ts +264 -0
  298. package/src/governance/record.ts +294 -0
  299. package/src/governance/retention-contract.ts +201 -0
  300. package/src/governance/retention-json.ts +24 -0
  301. package/src/governance/workspace-lease.ts +429 -0
  302. package/src/index.ts +82 -92
  303. package/src/kernel/approval.ts +406 -0
  304. package/src/kernel/capabilities.ts +216 -0
  305. package/src/kernel/catalog.ts +313 -0
  306. package/src/kernel/correlation.ts +351 -0
  307. package/src/kernel/definitions.ts +215 -0
  308. package/src/kernel/delegate-types.ts +162 -0
  309. package/src/kernel/delegate.ts +370 -0
  310. package/src/kernel/delegation-approval.ts +126 -0
  311. package/src/kernel/env-names.ts +119 -0
  312. package/src/kernel/fanout.ts +106 -0
  313. package/src/kernel/grant-env.ts +174 -0
  314. package/src/kernel/model-preflight.ts +44 -0
  315. package/src/kernel/pi-tools.ts +32 -0
  316. package/src/kernel/project-paths.ts +97 -0
  317. package/src/kernel/propagation.ts +341 -0
  318. package/src/kernel/refusals.ts +64 -0
  319. package/src/kernel/resolve.ts +258 -0
  320. package/src/kernel/run-child.ts +418 -0
  321. package/src/kernel/skill-packages.ts +329 -0
  322. package/src/kernel/skill-resources.ts +64 -0
  323. package/src/kernel/workspace.ts +336 -0
  324. package/src/products/activity-timeline.ts +679 -0
  325. package/src/products/dashboard-cli.ts +250 -0
  326. package/src/products/dashboard-display-controls.ts +44 -0
  327. package/src/products/dashboard-handshake.ts +222 -0
  328. package/src/products/dashboard-herdr.ts +427 -0
  329. package/src/products/dashboard-projection.ts +389 -0
  330. package/src/products/dashboard-render.ts +260 -0
  331. package/PRODUCT-GUIDE.md +0 -136
  332. package/REQUIREMENTS.md +0 -41
  333. package/contracts/daily-view/v1/README.md +0 -114
  334. package/contracts/daily-view/v1/fixtures/view.json +0 -525
  335. package/contracts/daily-view/v1/fixtures/view.txt +0 -75
  336. package/contracts/daily-view/v1/fixtures/work.jsonl +0 -17
  337. package/contracts/daily-view/v1/p03/README.md +0 -26
  338. package/contracts/daily-view/v1/p03/fixtures/retained-executions.json +0 -241
  339. package/contracts/daily-view/v1/p03/projection.schema.json +0 -194
  340. package/contracts/daily-view/v1/p03/provenance.json +0 -21
  341. package/contracts/dashboard-host/v1/README.md +0 -176
  342. package/contracts/debrief/v1/README.md +0 -146
  343. package/contracts/debrief/v1/intervention/README.md +0 -32
  344. package/contracts/debrief/v1/intervention/fixtures/artifact-3ee11136beb864f518252e5024dae9197421fbf97b6e981d3243c782b5c44bd0.txt +0 -1
  345. package/contracts/debrief/v1/intervention/fixtures/artifact-58905d872dd3c54a9705f67b05fa82edbad7af6476ae8993faf1a7b9fadfb905.txt +0 -1
  346. package/contracts/debrief/v1/intervention/fixtures/assessment.json +0 -29
  347. package/contracts/debrief/v1/intervention/fixtures/blind-view.json +0 -20
  348. package/contracts/debrief/v1/intervention/fixtures/choice.json +0 -7
  349. package/contracts/debrief/v1/intervention/fixtures/manifest.json +0 -57
  350. package/contracts/debrief/v1/intervention/fixtures/reveal.json +0 -39
  351. package/contracts/debrief/v1/provenance.json +0 -89
  352. package/contracts/debrief/v1/work-capture/README.md +0 -38
  353. package/contracts/debrief/v1/work-capture/fixtures/batch.json +0 -17
  354. package/contracts/debrief/v1/work-capture/fixtures/cases.json +0 -184
  355. package/contracts/debrief/v1/work-capture/fixtures/review.json +0 -184
  356. package/contracts/debrief/v1/work-capture/review-request.schema.json +0 -41
  357. package/contracts/debrief/v1/work-capture/work-case.schema.json +0 -190
  358. package/contracts/debrief/v2/README.md +0 -71
  359. package/contracts/debrief/v2/input-pin.json +0 -66
  360. package/contracts/debrief/v2/intervention-upstream.md +0 -40
  361. package/contracts/debrief/v2/work-signals-upstream.md +0 -22
  362. package/contracts/dispatch-control/v1/README.md +0 -109
  363. package/contracts/dispatch-control/v1/request.schema.json +0 -19
  364. package/contracts/effect-profile/v1/README.md +0 -124
  365. package/contracts/execution-retention/v1/README.md +0 -109
  366. package/contracts/execution-retention/v2/README.md +0 -148
  367. package/contracts/execution-retention/v2/fixtures/interrupted-native-bytes.json +0 -91
  368. package/contracts/execution-retention/v2/fixtures/missing-native-session.json +0 -91
  369. package/contracts/execution-retention/v2/fixtures/native-file-unknown-branch.json +0 -91
  370. package/contracts/execution-retention/v2/fixtures/native-id-without-bytes.json +0 -91
  371. package/contracts/execution-retention/v2/fixtures/native-live-branch.json +0 -90
  372. package/contracts/execution-retention/v2/fixtures/replaced-native-session.json +0 -92
  373. package/contracts/execution-retention/v2/fixtures/result-82c620cdfeb8ca6b858cf653d7f5e2eedca5315d6244216d60e8b36f03223d6a.bin +0 -1
  374. package/contracts/execution-retention/v2/fixtures/session-2ec1f134bc739984434f7fca689e1c3d1c39fce2dcadae709e9b6faedfcc4ac7.bin +0 -3
  375. package/contracts/execution-retention/v2/fixtures/session-9bdb4bd16a901da31580acf056bda525225259e15ec409e0410480109011772f.bin +0 -3
  376. package/contracts/execution-retention/v2/manifest.schema.json +0 -858
  377. package/contracts/experiment/v1/README.md +0 -164
  378. package/contracts/factory-order/v1/README.md +0 -151
  379. package/contracts/factory-order/v1/adoption-pin.json +0 -8
  380. package/contracts/intent-control/v1/README.md +0 -135
  381. package/contracts/intent-control/v1/request.schema.json +0 -1096
  382. package/contracts/intent-control/v2/README.md +0 -34
  383. package/contracts/intent-control/v2/request.schema.json +0 -1070
  384. package/contracts/ledger/v2/README.md +0 -59
  385. package/contracts/ledger/v2/fixtures/capability-decision.json +0 -95
  386. package/contracts/ledger/v2/fixtures/check-receipt.json +0 -40
  387. package/contracts/ledger/v2/fixtures/child-lifecycle.json +0 -42
  388. package/contracts/ledger/v2/fixtures/workspace-lease.json +0 -41
  389. package/contracts/ledger/v2/ledger-event.schema.json +0 -633
  390. package/contracts/ledger/v3/README.md +0 -36
  391. package/contracts/ledger/v3/fixtures/check-receipt.json +0 -41
  392. package/contracts/ledger/v3/fixtures/child-lifecycle.json +0 -44
  393. package/contracts/ledger/v3/fixtures/workflow-fact.json +0 -40
  394. package/contracts/ledger/v3/ledger-event.schema.json +0 -955
  395. package/contracts/ledger/v4/README.md +0 -241
  396. package/contracts/ledger/v4/fixtures/layout-options.json +0 -428
  397. package/contracts/ledger/v4/fixtures/work-acceptance.json +0 -57
  398. package/contracts/ledger/v4/fixtures/work-occurrence.json +0 -44
  399. package/contracts/ledger/v4/fixtures/work-revision.json +0 -26
  400. package/contracts/ledger/v4/fixtures/work-snapshot.json +0 -73
  401. package/contracts/ledger/v4/ledger-event.schema.json +0 -162
  402. package/contracts/ordinary-control/v1/README.md +0 -59
  403. package/contracts/producer-ipc/v1/README.md +0 -137
  404. package/dist/approval-prompt.d.ts +0 -119
  405. package/dist/approval-prompt.d.ts.map +0 -1
  406. package/dist/approval-prompt.js +0 -133
  407. package/dist/approval-prompt.js.map +0 -1
  408. package/dist/approval-store.d.ts +0 -149
  409. package/dist/approval-store.d.ts.map +0 -1
  410. package/dist/approval-store.js +0 -314
  411. package/dist/approval-store.js.map +0 -1
  412. package/dist/approval.d.ts +0 -241
  413. package/dist/approval.d.ts.map +0 -1
  414. package/dist/approval.js +0 -268
  415. package/dist/approval.js.map +0 -1
  416. package/dist/capabilities.d.ts +0 -136
  417. package/dist/capabilities.d.ts.map +0 -1
  418. package/dist/capabilities.js +0 -203
  419. package/dist/capabilities.js.map +0 -1
  420. package/dist/catalog.d.ts +0 -98
  421. package/dist/catalog.d.ts.map +0 -1
  422. package/dist/catalog.js +0 -273
  423. package/dist/catalog.js.map +0 -1
  424. package/dist/chain.d.ts.map +0 -1
  425. package/dist/chain.js.map +0 -1
  426. package/dist/check-runner.d.ts +0 -66
  427. package/dist/check-runner.d.ts.map +0 -1
  428. package/dist/check-runner.js +0 -275
  429. package/dist/check-runner.js.map +0 -1
  430. package/dist/control-journal.d.ts +0 -20
  431. package/dist/control-journal.d.ts.map +0 -1
  432. package/dist/control-journal.js +0 -73
  433. package/dist/control-journal.js.map +0 -1
  434. package/dist/correlation.d.ts.map +0 -1
  435. package/dist/correlation.js +0 -231
  436. package/dist/correlation.js.map +0 -1
  437. package/dist/daily-dashboard-host.d.ts +0 -136
  438. package/dist/daily-dashboard-host.d.ts.map +0 -1
  439. package/dist/daily-dashboard-host.js +0 -164
  440. package/dist/daily-dashboard-host.js.map +0 -1
  441. package/dist/daily-panel.d.ts +0 -36
  442. package/dist/daily-panel.d.ts.map +0 -1
  443. package/dist/daily-panel.js +0 -84
  444. package/dist/daily-panel.js.map +0 -1
  445. package/dist/daily-view-input.d.ts +0 -44
  446. package/dist/daily-view-input.d.ts.map +0 -1
  447. package/dist/daily-view-input.js +0 -68
  448. package/dist/daily-view-input.js.map +0 -1
  449. package/dist/daily-view-render.d.ts +0 -5
  450. package/dist/daily-view-render.d.ts.map +0 -1
  451. package/dist/daily-view-render.js +0 -42
  452. package/dist/daily-view-render.js.map +0 -1
  453. package/dist/daily-view.d.ts +0 -77
  454. package/dist/daily-view.d.ts.map +0 -1
  455. package/dist/daily-view.js +0 -176
  456. package/dist/daily-view.js.map +0 -1
  457. package/dist/dashboard-cli.d.ts +0 -48
  458. package/dist/dashboard-cli.d.ts.map +0 -1
  459. package/dist/dashboard-cli.js +0 -331
  460. package/dist/dashboard-cli.js.map +0 -1
  461. package/dist/dashboard-display-controls.d.ts +0 -10
  462. package/dist/dashboard-display-controls.d.ts.map +0 -1
  463. package/dist/dashboard-display-controls.js +0 -25
  464. package/dist/dashboard-display-controls.js.map +0 -1
  465. package/dist/dashboard-handshake.d.ts +0 -37
  466. package/dist/dashboard-handshake.d.ts.map +0 -1
  467. package/dist/dashboard-handshake.js +0 -136
  468. package/dist/dashboard-handshake.js.map +0 -1
  469. package/dist/dashboard-harness.d.ts +0 -22
  470. package/dist/dashboard-harness.d.ts.map +0 -1
  471. package/dist/dashboard-harness.js +0 -89
  472. package/dist/dashboard-harness.js.map +0 -1
  473. package/dist/dashboard-herdr.d.ts +0 -55
  474. package/dist/dashboard-herdr.d.ts.map +0 -1
  475. package/dist/dashboard-herdr.js +0 -293
  476. package/dist/dashboard-herdr.js.map +0 -1
  477. package/dist/dashboard-host-contract.d.ts +0 -127
  478. package/dist/dashboard-host-contract.d.ts.map +0 -1
  479. package/dist/dashboard-host-contract.js +0 -14
  480. package/dist/dashboard-host-contract.js.map +0 -1
  481. package/dist/dashboard-host-transport.d.ts +0 -16
  482. package/dist/dashboard-host-transport.d.ts.map +0 -1
  483. package/dist/dashboard-host-transport.js +0 -127
  484. package/dist/dashboard-host-transport.js.map +0 -1
  485. package/dist/dashboard-host.d.ts +0 -239
  486. package/dist/dashboard-host.d.ts.map +0 -1
  487. package/dist/dashboard-host.js +0 -474
  488. package/dist/dashboard-host.js.map +0 -1
  489. package/dist/dashboard-menu.d.ts +0 -16
  490. package/dist/dashboard-menu.d.ts.map +0 -1
  491. package/dist/dashboard-menu.js +0 -33
  492. package/dist/dashboard-menu.js.map +0 -1
  493. package/dist/dashboard-observation.d.ts +0 -28
  494. package/dist/dashboard-observation.d.ts.map +0 -1
  495. package/dist/dashboard-observation.js +0 -87
  496. package/dist/dashboard-observation.js.map +0 -1
  497. package/dist/dashboard-projection.d.ts +0 -73
  498. package/dist/dashboard-projection.d.ts.map +0 -1
  499. package/dist/dashboard-projection.js +0 -294
  500. package/dist/dashboard-projection.js.map +0 -1
  501. package/dist/dashboard-render.d.ts.map +0 -1
  502. package/dist/dashboard-render.js +0 -212
  503. package/dist/dashboard-render.js.map +0 -1
  504. package/dist/debrief-contract.d.ts +0 -65
  505. package/dist/debrief-contract.d.ts.map +0 -1
  506. package/dist/debrief-contract.js +0 -151
  507. package/dist/debrief-contract.js.map +0 -1
  508. package/dist/debrief-fixture.d.ts +0 -16
  509. package/dist/debrief-fixture.d.ts.map +0 -1
  510. package/dist/debrief-fixture.js +0 -41
  511. package/dist/debrief-fixture.js.map +0 -1
  512. package/dist/debrief-host.d.ts +0 -59
  513. package/dist/debrief-host.d.ts.map +0 -1
  514. package/dist/debrief-host.js +0 -49
  515. package/dist/debrief-host.js.map +0 -1
  516. package/dist/debrief-render.d.ts +0 -5
  517. package/dist/debrief-render.d.ts.map +0 -1
  518. package/dist/debrief-render.js +0 -65
  519. package/dist/debrief-render.js.map +0 -1
  520. package/dist/debrief.d.ts +0 -90
  521. package/dist/debrief.d.ts.map +0 -1
  522. package/dist/debrief.js +0 -263
  523. package/dist/debrief.js.map +0 -1
  524. package/dist/definitions.d.ts.map +0 -1
  525. package/dist/definitions.js +0 -164
  526. package/dist/definitions.js.map +0 -1
  527. package/dist/delegate-types.d.ts +0 -146
  528. package/dist/delegate-types.d.ts.map +0 -1
  529. package/dist/delegate-types.js +0 -8
  530. package/dist/delegate-types.js.map +0 -1
  531. package/dist/delegate.d.ts.map +0 -1
  532. package/dist/delegate.js +0 -305
  533. package/dist/delegate.js.map +0 -1
  534. package/dist/delegation-approval.d.ts.map +0 -1
  535. package/dist/delegation-approval.js +0 -94
  536. package/dist/delegation-approval.js.map +0 -1
  537. package/dist/dispatch-control.d.ts +0 -45
  538. package/dist/dispatch-control.d.ts.map +0 -1
  539. package/dist/dispatch-control.js +0 -76
  540. package/dist/dispatch-control.js.map +0 -1
  541. package/dist/effect-profile-runtime.d.ts +0 -40
  542. package/dist/effect-profile-runtime.d.ts.map +0 -1
  543. package/dist/effect-profile-runtime.js +0 -51
  544. package/dist/effect-profile-runtime.js.map +0 -1
  545. package/dist/effect-profile.d.ts +0 -40
  546. package/dist/effect-profile.d.ts.map +0 -1
  547. package/dist/effect-profile.js +0 -152
  548. package/dist/effect-profile.js.map +0 -1
  549. package/dist/execution-id.d.ts.map +0 -1
  550. package/dist/execution-id.js.map +0 -1
  551. package/dist/execution-retention.d.ts +0 -90
  552. package/dist/execution-retention.d.ts.map +0 -1
  553. package/dist/execution-retention.js +0 -247
  554. package/dist/execution-retention.js.map +0 -1
  555. package/dist/executor.d.ts +0 -39
  556. package/dist/executor.d.ts.map +0 -1
  557. package/dist/executor.js +0 -94
  558. package/dist/executor.js.map +0 -1
  559. package/dist/experiment-contract.d.ts +0 -56
  560. package/dist/experiment-contract.d.ts.map +0 -1
  561. package/dist/experiment-contract.js +0 -80
  562. package/dist/experiment-contract.js.map +0 -1
  563. package/dist/experiment-state.d.ts +0 -22
  564. package/dist/experiment-state.d.ts.map +0 -1
  565. package/dist/experiment-state.js +0 -79
  566. package/dist/experiment-state.js.map +0 -1
  567. package/dist/experiment-store.d.ts +0 -30
  568. package/dist/experiment-store.d.ts.map +0 -1
  569. package/dist/experiment-store.js +0 -147
  570. package/dist/experiment-store.js.map +0 -1
  571. package/dist/experiment.d.ts +0 -65
  572. package/dist/experiment.d.ts.map +0 -1
  573. package/dist/experiment.js +0 -362
  574. package/dist/experiment.js.map +0 -1
  575. package/dist/factory-contract.d.ts +0 -79
  576. package/dist/factory-contract.d.ts.map +0 -1
  577. package/dist/factory-contract.js +0 -89
  578. package/dist/factory-contract.js.map +0 -1
  579. package/dist/factory-migration.d.ts +0 -20
  580. package/dist/factory-migration.d.ts.map +0 -1
  581. package/dist/factory-migration.js +0 -55
  582. package/dist/factory-migration.js.map +0 -1
  583. package/dist/factory-order.d.ts +0 -848
  584. package/dist/factory-order.d.ts.map +0 -1
  585. package/dist/factory-order.js +0 -83
  586. package/dist/factory-order.js.map +0 -1
  587. package/dist/factory-registry.d.ts +0 -121
  588. package/dist/factory-registry.d.ts.map +0 -1
  589. package/dist/factory-registry.js +0 -133
  590. package/dist/factory-registry.js.map +0 -1
  591. package/dist/fanout.d.ts.map +0 -1
  592. package/dist/fanout.js +0 -93
  593. package/dist/fanout.js.map +0 -1
  594. package/dist/file-lock.d.ts.map +0 -1
  595. package/dist/file-lock.js +0 -201
  596. package/dist/file-lock.js.map +0 -1
  597. package/dist/finalization.d.ts.map +0 -1
  598. package/dist/finalization.js.map +0 -1
  599. package/dist/git-identity.d.ts +0 -13
  600. package/dist/git-identity.d.ts.map +0 -1
  601. package/dist/git-identity.js +0 -47
  602. package/dist/git-identity.js.map +0 -1
  603. package/dist/grant-env.d.ts +0 -75
  604. package/dist/grant-env.d.ts.map +0 -1
  605. package/dist/grant-env.js +0 -154
  606. package/dist/grant-env.js.map +0 -1
  607. package/dist/grant-store.d.ts +0 -96
  608. package/dist/grant-store.d.ts.map +0 -1
  609. package/dist/grant-store.js +0 -188
  610. package/dist/grant-store.js.map +0 -1
  611. package/dist/herdr-cli.d.ts +0 -78
  612. package/dist/herdr-cli.d.ts.map +0 -1
  613. package/dist/herdr-cli.js +0 -113
  614. package/dist/herdr-cli.js.map +0 -1
  615. package/dist/herdr-name.d.ts.map +0 -1
  616. package/dist/herdr-name.js.map +0 -1
  617. package/dist/herdr-pi-lifecycle.d.ts.map +0 -1
  618. package/dist/herdr-pi-lifecycle.js +0 -22
  619. package/dist/herdr-pi-lifecycle.js.map +0 -1
  620. package/dist/herdr-poll.d.ts +0 -133
  621. package/dist/herdr-poll.d.ts.map +0 -1
  622. package/dist/herdr-poll.js +0 -222
  623. package/dist/herdr-poll.js.map +0 -1
  624. package/dist/herdr-stage.d.ts +0 -40
  625. package/dist/herdr-stage.d.ts.map +0 -1
  626. package/dist/herdr-stage.js +0 -54
  627. package/dist/herdr-stage.js.map +0 -1
  628. package/dist/herdr-start.d.ts.map +0 -1
  629. package/dist/herdr-start.js.map +0 -1
  630. package/dist/init.d.ts +0 -117
  631. package/dist/init.d.ts.map +0 -1
  632. package/dist/init.js +0 -323
  633. package/dist/init.js.map +0 -1
  634. package/dist/intent-application.d.ts +0 -17
  635. package/dist/intent-application.d.ts.map +0 -1
  636. package/dist/intent-application.js +0 -114
  637. package/dist/intent-application.js.map +0 -1
  638. package/dist/intent-control.d.ts +0 -201
  639. package/dist/intent-control.d.ts.map +0 -1
  640. package/dist/intent-control.js +0 -110
  641. package/dist/intent-control.js.map +0 -1
  642. package/dist/intent-scheduling.d.ts +0 -9
  643. package/dist/intent-scheduling.d.ts.map +0 -1
  644. package/dist/intent-scheduling.js +0 -15
  645. package/dist/intent-scheduling.js.map +0 -1
  646. package/dist/learning-connection.d.ts +0 -127
  647. package/dist/learning-connection.d.ts.map +0 -1
  648. package/dist/learning-connection.js +0 -54
  649. package/dist/learning-connection.js.map +0 -1
  650. package/dist/lease-helper.d.ts.map +0 -1
  651. package/dist/lease-helper.js +0 -94
  652. package/dist/lease-helper.js.map +0 -1
  653. package/dist/lease-record.d.ts +0 -90
  654. package/dist/lease-record.d.ts.map +0 -1
  655. package/dist/lease-record.js.map +0 -1
  656. package/dist/ledger-append.d.ts +0 -15
  657. package/dist/ledger-append.d.ts.map +0 -1
  658. package/dist/ledger-append.js +0 -94
  659. package/dist/ledger-append.js.map +0 -1
  660. package/dist/ledger-events.d.ts +0 -131
  661. package/dist/ledger-events.d.ts.map +0 -1
  662. package/dist/ledger-events.js +0 -107
  663. package/dist/ledger-events.js.map +0 -1
  664. package/dist/ledger-identifiers.d.ts.map +0 -1
  665. package/dist/ledger-identifiers.js.map +0 -1
  666. package/dist/ledger-report.d.ts +0 -134
  667. package/dist/ledger-report.d.ts.map +0 -1
  668. package/dist/ledger-report.js +0 -271
  669. package/dist/ledger-report.js.map +0 -1
  670. package/dist/ledger-v3-validation.d.ts +0 -11
  671. package/dist/ledger-v3-validation.d.ts.map +0 -1
  672. package/dist/ledger-v3-validation.js +0 -265
  673. package/dist/ledger-v3-validation.js.map +0 -1
  674. package/dist/ledger.d.ts +0 -242
  675. package/dist/ledger.d.ts.map +0 -1
  676. package/dist/ledger.js +0 -142
  677. package/dist/ledger.js.map +0 -1
  678. package/dist/measured-order.d.ts +0 -249
  679. package/dist/measured-order.d.ts.map +0 -1
  680. package/dist/measured-order.js +0 -309
  681. package/dist/measured-order.js.map +0 -1
  682. package/dist/measured-session.d.ts +0 -97
  683. package/dist/measured-session.d.ts.map +0 -1
  684. package/dist/measured-session.js +0 -134
  685. package/dist/measured-session.js.map +0 -1
  686. package/dist/model-preflight.d.ts +0 -13
  687. package/dist/model-preflight.d.ts.map +0 -1
  688. package/dist/model-preflight.js +0 -29
  689. package/dist/model-preflight.js.map +0 -1
  690. package/dist/native-session-target.d.ts +0 -9
  691. package/dist/native-session-target.d.ts.map +0 -1
  692. package/dist/native-session-target.js +0 -29
  693. package/dist/native-session-target.js.map +0 -1
  694. package/dist/native-session.d.ts +0 -59
  695. package/dist/native-session.d.ts.map +0 -1
  696. package/dist/native-session.js +0 -154
  697. package/dist/native-session.js.map +0 -1
  698. package/dist/order-schedule.d.ts +0 -37
  699. package/dist/order-schedule.d.ts.map +0 -1
  700. package/dist/order-schedule.js +0 -81
  701. package/dist/order-schedule.js.map +0 -1
  702. package/dist/ordinary-children.d.ts +0 -52
  703. package/dist/ordinary-children.d.ts.map +0 -1
  704. package/dist/ordinary-children.js +0 -93
  705. package/dist/ordinary-children.js.map +0 -1
  706. package/dist/pane-reaper.d.ts +0 -111
  707. package/dist/pane-reaper.d.ts.map +0 -1
  708. package/dist/pane-reaper.js +0 -242
  709. package/dist/pane-reaper.js.map +0 -1
  710. package/dist/pi-tools.d.ts.map +0 -1
  711. package/dist/pi-tools.js +0 -21
  712. package/dist/pi-tools.js.map +0 -1
  713. package/dist/producer-ipc-contract.d.ts +0 -29
  714. package/dist/producer-ipc-contract.d.ts.map +0 -1
  715. package/dist/producer-ipc-contract.js +0 -29
  716. package/dist/producer-ipc-contract.js.map +0 -1
  717. package/dist/producer-ipc.d.ts +0 -55
  718. package/dist/producer-ipc.d.ts.map +0 -1
  719. package/dist/producer-ipc.js +0 -143
  720. package/dist/producer-ipc.js.map +0 -1
  721. package/dist/product-files.d.ts +0 -6
  722. package/dist/product-files.d.ts.map +0 -1
  723. package/dist/product-files.js +0 -55
  724. package/dist/product-files.js.map +0 -1
  725. package/dist/progress.d.ts.map +0 -1
  726. package/dist/progress.js.map +0 -1
  727. package/dist/propagation.d.ts +0 -203
  728. package/dist/propagation.d.ts.map +0 -1
  729. package/dist/propagation.js +0 -279
  730. package/dist/propagation.js.map +0 -1
  731. package/dist/refusals.d.ts +0 -16
  732. package/dist/refusals.d.ts.map +0 -1
  733. package/dist/refusals.js +0 -55
  734. package/dist/refusals.js.map +0 -1
  735. package/dist/resolve.d.ts.map +0 -1
  736. package/dist/resolve.js +0 -211
  737. package/dist/resolve.js.map +0 -1
  738. package/dist/resource-budget.d.ts +0 -334
  739. package/dist/resource-budget.d.ts.map +0 -1
  740. package/dist/resource-budget.js +0 -415
  741. package/dist/resource-budget.js.map +0 -1
  742. package/dist/retention-contract.d.ts.map +0 -1
  743. package/dist/retention-contract.js +0 -104
  744. package/dist/retention-contract.js.map +0 -1
  745. package/dist/retention-json.d.ts.map +0 -1
  746. package/dist/retention-json.js.map +0 -1
  747. package/dist/routing-authority.d.ts.map +0 -1
  748. package/dist/routing-authority.js.map +0 -1
  749. package/dist/run-child.d.ts +0 -87
  750. package/dist/run-child.d.ts.map +0 -1
  751. package/dist/run-child.js +0 -248
  752. package/dist/run-child.js.map +0 -1
  753. package/dist/run-herdr.d.ts +0 -119
  754. package/dist/run-herdr.d.ts.map +0 -1
  755. package/dist/run-herdr.js +0 -335
  756. package/dist/run-herdr.js.map +0 -1
  757. package/dist/skill-packages.d.ts +0 -116
  758. package/dist/skill-packages.d.ts.map +0 -1
  759. package/dist/skill-packages.js +0 -295
  760. package/dist/skill-packages.js.map +0 -1
  761. package/dist/skill-resources.d.ts.map +0 -1
  762. package/dist/skill-resources.js +0 -52
  763. package/dist/skill-resources.js.map +0 -1
  764. package/dist/spawn.d.ts.map +0 -1
  765. package/dist/spawn.js.map +0 -1
  766. package/dist/vendor/adoption.d.ts +0 -129
  767. package/dist/vendor/adoption.d.ts.map +0 -1
  768. package/dist/vendor/adoption.js +0 -102
  769. package/dist/vendor/adoption.js.map +0 -1
  770. package/dist/vendor/herdr-pi-lifecycle.d.ts.map +0 -1
  771. package/dist/vendor/herdr-pi-lifecycle.js.map +0 -1
  772. package/dist/work-command.d.ts +0 -32
  773. package/dist/work-command.d.ts.map +0 -1
  774. package/dist/work-command.js +0 -179
  775. package/dist/work-command.js.map +0 -1
  776. package/dist/work-ledger-destination.d.ts +0 -20
  777. package/dist/work-ledger-destination.d.ts.map +0 -1
  778. package/dist/work-ledger-destination.js +0 -131
  779. package/dist/work-ledger-destination.js.map +0 -1
  780. package/dist/work-ledger-json.d.ts +0 -25
  781. package/dist/work-ledger-json.d.ts.map +0 -1
  782. package/dist/work-ledger-json.js +0 -267
  783. package/dist/work-ledger-json.js.map +0 -1
  784. package/dist/work-ledger-occurrences.d.ts +0 -227
  785. package/dist/work-ledger-occurrences.d.ts.map +0 -1
  786. package/dist/work-ledger-occurrences.js +0 -115
  787. package/dist/work-ledger-occurrences.js.map +0 -1
  788. package/dist/work-ledger-projection.d.ts +0 -295
  789. package/dist/work-ledger-projection.d.ts.map +0 -1
  790. package/dist/work-ledger-projection.js +0 -237
  791. package/dist/work-ledger-projection.js.map +0 -1
  792. package/dist/work-ledger-snapshot.d.ts +0 -29
  793. package/dist/work-ledger-snapshot.d.ts.map +0 -1
  794. package/dist/work-ledger-snapshot.js +0 -267
  795. package/dist/work-ledger-snapshot.js.map +0 -1
  796. package/dist/work-ledger-types.d.ts +0 -261
  797. package/dist/work-ledger-types.d.ts.map +0 -1
  798. package/dist/work-ledger-types.js +0 -13
  799. package/dist/work-ledger-types.js.map +0 -1
  800. package/dist/work-ledger-validation.d.ts +0 -14
  801. package/dist/work-ledger-validation.d.ts.map +0 -1
  802. package/dist/work-ledger-validation.js +0 -226
  803. package/dist/work-ledger-validation.js.map +0 -1
  804. package/dist/work-ledger.d.ts +0 -43
  805. package/dist/work-ledger.d.ts.map +0 -1
  806. package/dist/work-ledger.js +0 -225
  807. package/dist/work-ledger.js.map +0 -1
  808. package/dist/work-policy-registry.d.ts +0 -133
  809. package/dist/work-policy-registry.d.ts.map +0 -1
  810. package/dist/work-policy-registry.js +0 -128
  811. package/dist/work-policy-registry.js.map +0 -1
  812. package/dist/work-run.d.ts +0 -56
  813. package/dist/work-run.d.ts.map +0 -1
  814. package/dist/work-run.js +0 -102
  815. package/dist/work-run.js.map +0 -1
  816. package/dist/work-setup.d.ts +0 -40
  817. package/dist/work-setup.d.ts.map +0 -1
  818. package/dist/work-setup.js +0 -174
  819. package/dist/work-setup.js.map +0 -1
  820. package/dist/workflow-fact-id.d.ts +0 -4
  821. package/dist/workflow-fact-id.d.ts.map +0 -1
  822. package/dist/workflow-fact-id.js +0 -14
  823. package/dist/workflow-fact-id.js.map +0 -1
  824. package/dist/workflow-facts.d.ts +0 -34
  825. package/dist/workflow-facts.d.ts.map +0 -1
  826. package/dist/workflow-facts.js +0 -43
  827. package/dist/workflow-facts.js.map +0 -1
  828. package/dist/workspace-lease.d.ts +0 -40
  829. package/dist/workspace-lease.d.ts.map +0 -1
  830. package/dist/workspace-lease.js +0 -333
  831. package/dist/workspace-lease.js.map +0 -1
  832. package/dist/workspace.d.ts +0 -57
  833. package/dist/workspace.d.ts.map +0 -1
  834. package/dist/workspace.js +0 -216
  835. package/dist/workspace.js.map +0 -1
  836. package/extensions/daily-dashboard-session.ts +0 -48
  837. package/extensions/daily-work-session.ts +0 -20
  838. package/extensions/learning-outcome-session.ts +0 -38
  839. package/extensions/learning-session.ts +0 -59
  840. package/extensions/ordinary-runtime.ts +0 -14
  841. package/extensions/primary-shadow.ts +0 -11
  842. package/extensions/work-policy-session.ts +0 -139
  843. package/extensions/work-run-session.ts +0 -75
  844. package/extensions/work-runtime.ts +0 -44
  845. package/extensions/work-session.ts +0 -132
  846. package/src/approval-prompt.ts +0 -225
  847. package/src/approval-store.ts +0 -386
  848. package/src/approval.ts +0 -399
  849. package/src/capabilities.ts +0 -220
  850. package/src/catalog.ts +0 -306
  851. package/src/check-runner.ts +0 -387
  852. package/src/control-journal.ts +0 -26
  853. package/src/correlation.ts +0 -320
  854. package/src/daily-dashboard-host.ts +0 -105
  855. package/src/daily-panel.ts +0 -80
  856. package/src/daily-view-input.ts +0 -59
  857. package/src/daily-view-render.ts +0 -45
  858. package/src/daily-view.ts +0 -160
  859. package/src/dashboard-cli.ts +0 -315
  860. package/src/dashboard-display-controls.ts +0 -18
  861. package/src/dashboard-handshake.ts +0 -194
  862. package/src/dashboard-harness.ts +0 -37
  863. package/src/dashboard-herdr.ts +0 -363
  864. package/src/dashboard-host-contract.ts +0 -50
  865. package/src/dashboard-host-transport.ts +0 -43
  866. package/src/dashboard-host.ts +0 -244
  867. package/src/dashboard-menu.ts +0 -28
  868. package/src/dashboard-observation.ts +0 -46
  869. package/src/dashboard-projection.ts +0 -390
  870. package/src/dashboard-render.ts +0 -259
  871. package/src/debrief-contract.ts +0 -127
  872. package/src/debrief-fixture.ts +0 -29
  873. package/src/debrief-host.ts +0 -53
  874. package/src/debrief-render.ts +0 -49
  875. package/src/debrief.ts +0 -198
  876. package/src/definitions.ts +0 -211
  877. package/src/delegate-types.ts +0 -150
  878. package/src/delegate.ts +0 -341
  879. package/src/delegation-approval.ts +0 -126
  880. package/src/dispatch-control.ts +0 -81
  881. package/src/effect-profile-runtime.ts +0 -46
  882. package/src/effect-profile.ts +0 -129
  883. package/src/execution-retention.ts +0 -230
  884. package/src/executor.ts +0 -123
  885. package/src/experiment-contract.ts +0 -66
  886. package/src/experiment-state.ts +0 -44
  887. package/src/experiment-store.ts +0 -98
  888. package/src/experiment.ts +0 -236
  889. package/src/factory-contract.ts +0 -47
  890. package/src/factory-migration.ts +0 -29
  891. package/src/factory-order.ts +0 -56
  892. package/src/factory-registry.ts +0 -60
  893. package/src/fanout.ts +0 -106
  894. package/src/file-lock.ts +0 -178
  895. package/src/finalization.ts +0 -79
  896. package/src/git-identity.ts +0 -56
  897. package/src/grant-env.ts +0 -221
  898. package/src/grant-store.ts +0 -235
  899. package/src/herdr-cli.ts +0 -125
  900. package/src/herdr-pi-lifecycle.ts +0 -21
  901. package/src/herdr-poll.ts +0 -253
  902. package/src/herdr-stage.ts +0 -55
  903. package/src/init.ts +0 -389
  904. package/src/intent-application.ts +0 -91
  905. package/src/intent-control.ts +0 -107
  906. package/src/intent-scheduling.ts +0 -14
  907. package/src/learning-connection.ts +0 -70
  908. package/src/lease-helper.ts +0 -97
  909. package/src/lease-record.ts +0 -131
  910. package/src/ledger-append.ts +0 -72
  911. package/src/ledger-events.ts +0 -226
  912. package/src/ledger-report.ts +0 -357
  913. package/src/ledger-v3-validation.ts +0 -266
  914. package/src/ledger.ts +0 -369
  915. package/src/measured-order.ts +0 -72
  916. package/src/measured-session.ts +0 -70
  917. package/src/model-preflight.ts +0 -41
  918. package/src/native-session-target.ts +0 -23
  919. package/src/native-session.ts +0 -139
  920. package/src/order-schedule.ts +0 -42
  921. package/src/ordinary-children.ts +0 -59
  922. package/src/pane-reaper.ts +0 -270
  923. package/src/pi-tools.ts +0 -25
  924. package/src/producer-ipc-contract.ts +0 -26
  925. package/src/producer-ipc.ts +0 -107
  926. package/src/product-files.ts +0 -34
  927. package/src/propagation.ts +0 -333
  928. package/src/refusals.ts +0 -70
  929. package/src/resolve.ts +0 -267
  930. package/src/resource-budget.ts +0 -349
  931. package/src/retention-contract.ts +0 -84
  932. package/src/retention-json.ts +0 -20
  933. package/src/run-child.ts +0 -303
  934. package/src/run-herdr.ts +0 -386
  935. package/src/skill-packages.ts +0 -314
  936. package/src/skill-resources.ts +0 -48
  937. package/src/vendor/adoption.ts +0 -109
  938. package/src/work-command.ts +0 -197
  939. package/src/work-ledger-destination.ts +0 -113
  940. package/src/work-ledger-json.ts +0 -228
  941. package/src/work-ledger-occurrences.ts +0 -99
  942. package/src/work-ledger-projection.ts +0 -262
  943. package/src/work-ledger-snapshot.ts +0 -246
  944. package/src/work-ledger-types.ts +0 -229
  945. package/src/work-ledger-validation.ts +0 -174
  946. package/src/work-ledger.ts +0 -186
  947. package/src/work-policy-registry.ts +0 -81
  948. package/src/work-run.ts +0 -79
  949. package/src/work-setup.ts +0 -141
  950. package/src/workflow-fact-id.ts +0 -16
  951. package/src/workflow-facts.ts +0 -65
  952. package/src/workspace-lease.ts +0 -363
  953. package/src/workspace.ts +0 -308
  954. /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/capability-decision.json +0 -0
  955. /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/workspace-lease.json +0 -0
  956. /package/dist/{herdr-name.d.ts → executors/herdr-name.d.ts} +0 -0
  957. /package/dist/{herdr-name.js → executors/herdr-name.js} +0 -0
  958. /package/dist/{herdr-pi-lifecycle.d.ts → executors/herdr-pi-lifecycle.d.ts} +0 -0
  959. /package/dist/{herdr-start.d.ts → executors/herdr-start.d.ts} +0 -0
  960. /package/dist/{herdr-start.js → executors/herdr-start.js} +0 -0
  961. /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.d.ts +0 -0
  962. /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.js +0 -0
  963. /package/dist/{file-lock.d.ts → governance/file-lock.d.ts} +0 -0
  964. /package/dist/{finalization.d.ts → governance/finalization.d.ts} +0 -0
  965. /package/dist/{finalization.js → governance/finalization.js} +0 -0
  966. /package/dist/{lease-helper.d.ts → governance/lease-helper.d.ts} +0 -0
  967. /package/dist/{lease-record.js → governance/lease-record.js} +0 -0
  968. /package/dist/{retention-contract.d.ts → governance/retention-contract.d.ts} +0 -0
  969. /package/dist/{retention-json.d.ts → governance/retention-json.d.ts} +0 -0
  970. /package/dist/{retention-json.js → governance/retention-json.js} +0 -0
  971. /package/dist/{chain.d.ts → kernel/chain.d.ts} +0 -0
  972. /package/dist/{chain.js → kernel/chain.js} +0 -0
  973. /package/dist/{correlation.d.ts → kernel/correlation.d.ts} +0 -0
  974. /package/dist/{definitions.d.ts → kernel/definitions.d.ts} +0 -0
  975. /package/dist/{delegate.d.ts → kernel/delegate.d.ts} +0 -0
  976. /package/dist/{delegation-approval.d.ts → kernel/delegation-approval.d.ts} +0 -0
  977. /package/dist/{execution-id.d.ts → kernel/execution-id.d.ts} +0 -0
  978. /package/dist/{execution-id.js → kernel/execution-id.js} +0 -0
  979. /package/dist/{fanout.d.ts → kernel/fanout.d.ts} +0 -0
  980. /package/dist/{ledger-identifiers.d.ts → kernel/ledger-identifiers.d.ts} +0 -0
  981. /package/dist/{ledger-identifiers.js → kernel/ledger-identifiers.js} +0 -0
  982. /package/dist/{pi-tools.d.ts → kernel/pi-tools.d.ts} +0 -0
  983. /package/dist/{progress.d.ts → kernel/progress.d.ts} +0 -0
  984. /package/dist/{progress.js → kernel/progress.js} +0 -0
  985. /package/dist/{resolve.d.ts → kernel/resolve.d.ts} +0 -0
  986. /package/dist/{routing-authority.d.ts → kernel/routing-authority.d.ts} +0 -0
  987. /package/dist/{routing-authority.js → kernel/routing-authority.js} +0 -0
  988. /package/dist/{skill-resources.d.ts → kernel/skill-resources.d.ts} +0 -0
  989. /package/dist/{spawn.d.ts → kernel/spawn.d.ts} +0 -0
  990. /package/dist/{spawn.js → kernel/spawn.js} +0 -0
  991. /package/dist/{dashboard-render.d.ts → products/dashboard-render.d.ts} +0 -0
  992. /package/src/{herdr-name.ts → executors/herdr-name.ts} +0 -0
  993. /package/src/{herdr-start.ts → executors/herdr-start.ts} +0 -0
  994. /package/src/{vendor → executors/vendor}/herdr-pi-lifecycle.ts +0 -0
  995. /package/src/{chain.ts → kernel/chain.ts} +0 -0
  996. /package/src/{execution-id.ts → kernel/execution-id.ts} +0 -0
  997. /package/src/{ledger-identifiers.ts → kernel/ledger-identifiers.ts} +0 -0
  998. /package/src/{progress.ts → kernel/progress.ts} +0 -0
  999. /package/src/{routing-authority.ts → kernel/routing-authority.ts} +0 -0
  1000. /package/src/{spawn.ts → kernel/spawn.ts} +0 -0
@@ -1,107 +0,0 @@
1
- import { Readable } from "node:stream";
2
- import { createHash } from "node:crypto";
3
- import { performance } from "node:perf_hooks";
4
- import { claimResourcePermit, type ResourcePermit, type openResourceBudget } from "./resource-budget.ts";
5
- import { digestRuntime, digestNamespaceArgs } from "./effect-profile-runtime.ts";
6
- import { runChild, type ChildRunResult } from "./run-child.ts";
7
- import { ipcShape, ipcReferences, producerIpcBinding, producerIpcBindingDigest, producerIpcDemand, producerIpcFrame, PRODUCER_IPC_LIMITS as LIMITS, type ProducerIpcBinding, type ProducerIpcReferences } from "./producer-ipc-contract.ts";
8
- export { producerIpcBinding, producerIpcBindingDigest, producerIpcDemand, PRODUCER_IPC_LIMITS, type ProducerIpcBinding, type ProducerIpcReferences } from "./producer-ipc-contract.ts";
9
- type Owner = ReturnType<typeof openResourceBudget>;
10
- export interface ProducerIpcContext { readonly binding:Readonly<ProducerIpcBinding>; readonly signal:AbortSignal }
11
- export interface ProducerIpcHost { readonly binding:Readonly<ProducerIpcBinding> }
12
- interface HostState { owner:Owner; exchange:(frames:Readable,context:ProducerIpcContext)=>Promise<ProducerIpcReferences>; used:boolean }
13
- const hosts = new WeakMap<ProducerIpcHost,HostState>();
14
- /** Trusted host-only capability constructor, NOT approval/entitlement discovery. */
15
- export function createProducerIpcHost(input:{owner:Owner;binding:ProducerIpcBinding;exchange:HostState["exchange"]}):ProducerIpcHost {
16
- ipcShape(input,["owner","binding","exchange"]);
17
- if(typeof input.exchange!=="function")throw new TypeError("original host exchange required");
18
- const port=Object.freeze({binding:producerIpcBinding(input.binding)});
19
- hosts.set(port,{owner:input.owner,exchange:input.exchange,used:false});return port;
20
- }
21
- export interface ProducerIpcSnapshot {
22
- readonly binding:Readonly<ProducerIpcBinding>;
23
- readonly outcome:"pending"|"completed"|"failed"|"cancelled"|"timed-out";
24
- readonly reason:null|"ADMISSION_FAILED"|"RUNTIME_FAILED"|"CHILD_FAILED"|"FRAME_INVALID"|"HOST_FAILED"|"CANCELLED"|"DEADLINE";
25
- readonly child:Readonly<ChildRunResult>|null;
26
- readonly childState:"pending"|"not-spawned"|"settled"|"unknown";
27
- readonly hostState:"not-called"|"pending"|"acknowledged"|"failed";
28
- readonly frameSha256:string|null;
29
- readonly references:Readonly<ProducerIpcReferences>|null;
30
- readonly settlement:"pending"|"acknowledged"|"failed-or-unknown";
31
- readonly acceptance:"not-assessed";
32
- }
33
- export interface ProducerIpcRun {
34
- readonly started:Promise<"spawned"|"not-spawned">;
35
- readonly readiness:Promise<"frame-ready"|"not-ready">;
36
- readonly child:Promise<ChildRunResult|null>;
37
- /** Bounded effect observation, NOT a resource-release/child-settlement receipt. */
38
- readonly result:Promise<ProducerIpcSnapshot>;
39
- /** May remain pending if original child, host or required accounting does not acknowledge. */
40
- readonly completion:Promise<ProducerIpcSnapshot>;
41
- inspect():ProducerIpcSnapshot;
42
- }
43
- // This is a separate fixed model-free emitter, not a new operation on linux-bwrap-digest-v1.
44
- const WORKER = "/* producer-ipc-v1 */process.stdout.write(Buffer.from(process.argv[1],'base64'));";
45
- function deferred<T>() { let resolve!:(value:T)=>void;const promise=new Promise<T>(r=>{resolve=r;});return {promise,resolve}; }
46
- export async function startProducerIpc(input:{owner:Owner;permit:ResourcePermit;binding:ProducerIpcBinding;host:ProducerIpcHost;signal:AbortSignal;timeoutMs:number}):Promise<ProducerIpcRun> {
47
- ipcShape(input,["owner","permit","binding","host","signal","timeoutMs"]);
48
- const binding=producerIpcBinding(input.binding), host=hosts.get(input.host);
49
- if(!host || host.used || host.owner!==input.owner || producerIpcBindingDigest(input.host.binding)!==producerIpcBindingDigest(binding))throw Error("original unused host with exact owner/charter/invocation required");
50
- if(!(input.signal instanceof AbortSignal) || !Number.isSafeInteger(input.timeoutMs) || input.timeoutMs<50 || input.timeoutMs>LIMITS.maxElapsedMs)throw new TypeError("bounded original cancellation/deadline required");
51
- const permit=claimResourcePermit(input.owner,input.permit,binding.budgetDigest,producerIpcDemand(binding));host.used=true;
52
- const caller=input.signal, deadline=performance.now()+input.timeoutMs, abort=new AbortController(), signal=AbortSignal.any([caller,abort.signal]);
53
- const started=deferred<"spawned"|"not-spawned">(), readiness=deferred<"frame-ready"|"not-ready">(), result=deferred<ProducerIpcSnapshot>();
54
- let outcome:ProducerIpcSnapshot["outcome"]="pending", reason:ProducerIpcSnapshot["reason"]=null, child:ChildRunResult|null=null;
55
- let childState:ProducerIpcSnapshot["childState"]="pending",hostState:ProducerIpcSnapshot["hostState"]="not-called",settlement:ProducerIpcSnapshot["settlement"]="pending";
56
- let references:Readonly<ProducerIpcReferences>|null=null,frameSha256:string|null=null,frames:Readable|undefined,timer:NodeJS.Timeout|undefined;
57
- const inspect=():ProducerIpcSnapshot=>Object.freeze({binding,outcome,reason,child:child?Object.freeze({...child}):null,childState,hostState,frameSha256,references,settlement,acceptance:"not-assessed"});
58
- const latch=(next:Exclude<ProducerIpcSnapshot["outcome"],"pending">,why:ProducerIpcSnapshot["reason"])=>{
59
- if(outcome!=="pending")return;outcome=next;reason=why;clearTimeout(timer);caller.removeEventListener("abort",cancel);result.resolve(inspect());
60
- };
61
- const cancel=()=>{latch("cancelled","CANCELLED");abort.abort();frames?.destroy();};
62
- const expire=()=>{latch("timed-out","DEADLINE");abort.abort();frames?.destroy();};
63
- const current=()=>{if(outcome!=="pending")return false;if(caller.aborted)cancel();else if(performance.now()>=deadline)expire();return outcome==="pending";};
64
- timer=setTimeout(expire,input.timeoutMs);caller.addEventListener("abort",cancel,{once:true});if(caller.aborted)cancel();
65
- let stdout=Buffer.alloc(0),overflow=false,eof=false,spawned=false;
66
- const childPromise=(async()=>{
67
- try {await permit.admission;} catch {latch("failed","ADMISSION_FAILED");return null;}
68
- if(!current())return null;
69
- try {
70
- const runtime=await digestRuntime();
71
- if(!current())return null;
72
- return Object.freeze(await runChild({command:"/usr/bin/bwrap",args:digestNamespaceArgs(runtime,WORKER,[producerIpcFrame(binding).toString("base64")]),env:{},cwd:"/",signal,
73
- timeoutMs:LIMITS.childMs,killGraceMs:LIMITS.graceMs,hardDeadlineAt:Date.now()+LIMITS.childMs+500,maxOutputBytes:LIMITS.frameBytes,
74
- onSpawn:()=>{spawned=true;started.resolve("spawned");},onStreamEnd:s=>{if(s==="stdout")eof=true;},
75
- onObservation:(s,b)=>{if(s!=="stdout"||overflow)return;if(stdout.length+b.length>LIMITS.frameBytes){overflow=true;return;}stdout=Buffer.concat([stdout,Buffer.from(b)]);}}));
76
- } catch {latch("failed","RUNTIME_FAILED");return null;}
77
- })();
78
- const completion=(async()=>{
79
- child=await childPromise;childState=spawned?(child?"settled":"unknown"):"not-spawned";started.resolve("not-spawned");
80
- if(childState==="unknown"){readiness.resolve("not-ready");settlement="failed-or-unknown";return inspect();}
81
- if(current()) {
82
- if(!child || child.code!==0 || child.aborted || child.timedOut || child.truncated || child.spawnError || child.signal)latch("failed","CHILD_FAILED");
83
- else if(!eof || overflow || !stdout.equals(producerIpcFrame(binding)))latch("failed","FRAME_INVALID");
84
- else {
85
- frameSha256=createHash("sha256").update(stdout).digest("hex");readiness.resolve("frame-ready");
86
- // Replay ONLY exact bytes from the original completed pipe; never reconstruct a host-authored frame.
87
- frames=Readable.from([Buffer.from(stdout)]);
88
- try {
89
- if(current()) {
90
- hostState="pending";references=ipcReferences(await host.exchange(frames,Object.freeze({binding,signal})));
91
- if(!frames.readableEnded)throw Error("original host frame not consumed");
92
- hostState="acknowledged";if(current())latch("completed",null);
93
- }
94
- }
95
- catch {hostState="failed";if(current())latch("failed","HOST_FAILED");}
96
- finally {frames.destroy();}
97
- }
98
- }
99
- readiness.resolve("not-ready");
100
- // Observation timeout never reaches here until the ORIGINAL child and invoked host have acknowledged.
101
- const terminal=inspect().outcome;
102
- try {await permit.settle(terminal==="completed"?"completed":terminal==="cancelled"?"cancelled":"failed");settlement="acknowledged";}
103
- catch {settlement="failed-or-unknown";}
104
- clearTimeout(timer);caller.removeEventListener("abort",cancel);return inspect();
105
- })();
106
- return Object.freeze({started:started.promise,readiness:readiness.promise,child:childPromise,result:result.promise,completion,inspect});
107
- }
@@ -1,34 +0,0 @@
1
- import { lstat, mkdir, realpath, rename, rm, writeFile } from "node:fs/promises";
2
- import { basename, dirname, resolve } from "node:path";
3
- import { randomUUID } from "node:crypto";
4
- import { readDailySnapshot } from "./daily-view-input.ts";
5
- import { parseRetentionJson } from "./retention-json.ts";
6
- import { runWithFinalizers } from "./finalization.ts";
7
-
8
- export const privateDirectory = (path:string) => directory(path,true);
9
- /** Pi's shared resource directory may be searchable; retained text files/subdirectories remain owner-only. */
10
- export const projectProductDirectory = (path:string) => directory(path,false);
11
- async function directory(path: string, ownerOnly:boolean): Promise<void> {
12
- if (resolve(path) !== path) throw Error("absolute canonical product directory required");
13
- try { await mkdir(path, { mode: 0o700 }); }
14
- catch (error) { if ((error as NodeJS.ErrnoException).code !== "EEXIST") throw error; }
15
- const state = await lstat(path);
16
- if (!state.isDirectory() || state.isSymbolicLink() || state.mode & (ownerOnly?0o077:0o022) || state.uid !== process.getuid?.() || await realpath(path) !== path) throw Error(`owned non-writable${ownerOnly?" private":""} directory required: ${path}; existing permissions were not changed`);
17
- }
18
- export async function readProductJson(path: string, limit = 128 * 1024): Promise<unknown | null> {
19
- try { const state = await lstat(path); if (!state.isFile() || state.isSymbolicLink() || state.mode & 0o077 || state.uid !== process.getuid?.() || state.nlink !== 1 || await realpath(path) !== path) throw Error(`private regular product file required: ${path}`); }
20
- catch (error) { if ((error as NodeJS.ErrnoException).code === "ENOENT") return null; throw error; }
21
- const snapshot = await readDailySnapshot(path, limit);
22
- if (snapshot.status !== "read") throw Error(`product file unavailable: ${path}`);
23
- const state = await lstat(path);
24
- if (state.mode & 0o077 || state.uid !== process.getuid?.() || state.nlink !== 1 || await realpath(path) !== path) throw Error(`private regular product file required: ${path}`);
25
- return parseRetentionJson(new TextDecoder("utf-8", { fatal: true }).decode(snapshot.bytes), limit);
26
- }
27
- export async function writeProductJson(path: string, value: unknown, replace = false): Promise<void> {
28
- await (basename(dirname(path))===".pi"?projectProductDirectory:privateDirectory)(dirname(path));
29
- const text = JSON.stringify(value, null, 2) + "\n";
30
- if (Buffer.byteLength(text) > 128 * 1024) throw Error("product file bound exceeded");
31
- if (!replace) { await writeFile(path, text, { mode: 0o600, flag: "wx" }); return; }
32
- const temporary = `${path}.${randomUUID()}.tmp`;
33
- await runWithFinalizers(async()=>{await writeFile(temporary, text, { mode: 0o600, flag: "wx" }); await rename(temporary, path);},[{label:"product temporary cleanup",run:async()=>{await rm(temporary,{force:true});}}]);
34
- }
@@ -1,333 +0,0 @@
1
- /**
2
- * Race-free grant propagation.
3
- *
4
- * The first implementation wrote each child's computed grant into `process.env` inside the `tool_call`
5
- * handler. The environment is process-global, so two concurrent spawns could read each other's values —
6
- * a real hole in a security control.
7
- *
8
- * The fix removes the need for a per-child channel entirely, rather than trying to build one:
9
- *
10
- * 1. Everything pushed to children is a property of the PARENT, not of the individual spawn — the
11
- * parent's own grant, the child depth (parent depth + 1), and the configured bounds. Those are
12
- * identical for every sibling, so concurrent spawns cannot disagree and there is nothing to race.
13
- * `ENV_APPROVED` (approvals a human granted at or above this level) is safe on the same global
14
- * channel for the same reason: it is intersected with the parent's own grant before being written,
15
- * which is itself a parent-level fact, so it too is identical for every sibling.
16
- * 2. Each child derives ITS OWN grant on arrival: `inheritedParentGrant ∩ ownObservedTools`, where the
17
- * observed set comes from the `tools` array of its first provider request — authoritative, because
18
- * it is literally what pi sent the model.
19
- *
20
- * The environment is therefore written ONCE per session, before any spawn can occur (the first provider
21
- * request precedes any tool call), and never mutated per spawn.
22
- *
23
- * The invariant still holds transitively: own = observed ∩ inheritedParent ⊆ inheritedParent, so no
24
- * descendant can exceed the root. It is also defence in depth — even if a spawn slipped past the
25
- * interceptor and pi handed the child more than the parent held, the intersection clamps it back.
26
- */
27
-
28
- import type { Capability } from "./resolve.ts";
29
- import { WILDCARD } from "./pi-tools.ts";
30
- import { WORKSPACE_WILDCARD } from "./resolve.ts";
31
- import { inheritApprovals, type InheritableApproval } from "./approval.ts";
32
- import { assertCapabilitiesArePropagatable } from "./capabilities.ts";
33
-
34
- export const ENV_GRANT = "PI_GRANTS_GRANT";
35
- /**
36
- * Total descendants this session may create in its whole subtree (`src/fanout.ts`).
37
- *
38
- * In `GRANT_ENV_KEYS` and therefore stripped from a child's environment and re-supplied only by the spawn
39
- * plan — like depth, and for the same reason: it is capability state that must ATTENUATE downward, not an
40
- * operator preference that should inherit. `PI_GRANTS_CHILD_TIMEOUT` is deliberately the other kind.
41
- */
42
- export const ENV_FANOUT = "PI_GRANTS_FANOUT";
43
- /**
44
- * This session's ledger id, so a child's records name their real parent (review finding F8).
45
- *
46
- * Without it every level restarts at `d0` and the ledger cannot be joined into a tree across processes.
47
- */
48
- export const ENV_PARENT_ID = "PI_GRANTS_PARENT_ID";
49
- /** Unique identity of this governed execution occurrence; unlike ENV_PARENT_ID it is never reused. */
50
- export const ENV_EXECUTION_ID = "PI_GRANTS_EXECUTION_ID";
51
- export const ENV_DEPTH = "PI_GRANTS_DEPTH";
52
- export const ENV_MAX_DEPTH = "PI_GRANTS_MAX_DEPTH";
53
- export const ENV_GATED = "PI_GRANTS_GATED";
54
- export const ENV_LEDGER = "PI_GRANTS_LEDGER";
55
- export const ENV_APPROVED = "PI_GRANTS_APPROVED";
56
-
57
- /**
58
- * Every variable this package uses to push governance state at a child.
59
- *
60
- * Named as a set so `mergeChildEnv` can guarantee that none of them survives from the parent's own
61
- * environment into a child's — a governance variable a child inherits by accident is one nobody decided
62
- * to give it.
63
- */
64
- export const GRANT_ENV_KEYS = [
65
- ENV_GRANT,
66
- ENV_DEPTH,
67
- ENV_MAX_DEPTH,
68
- ENV_GATED,
69
- ENV_LEDGER,
70
- ENV_APPROVED,
71
- ENV_FANOUT,
72
- ENV_PARENT_ID,
73
- ENV_EXECUTION_ID,
74
- ] as const;
75
-
76
- export const parseList = (raw: string | undefined): Capability[] =>
77
- (raw ?? "").split(",").map((s) => s.trim()).filter((s) => s.length > 0);
78
-
79
- /** Does a bare pi tool name correspond to this capability? `read` matches `tool:read` and `ext:pkg/read`. */
80
- function matchesToolName(capability: Capability, toolName: string): boolean {
81
- if (capability === `tool:${toolName}`) return true;
82
- return capability.startsWith("ext:") && capability.slice(capability.lastIndexOf("/") + 1) === toolName;
83
- }
84
-
85
- /**
86
- * Is this capability something an observed tool array can speak about at all? (R-36, ADR-0017 step 1.)
87
- *
88
- * `tool:` and `ext:` name tools, so a tool array that omits one is evidence the session does not have it.
89
- * `skill:` and `agent:` name a loadable instruction file and a spawnable definition — neither is ever a
90
- * tool, so an observation says **nothing** about them and must not be read as evidence of absence.
91
- */
92
- const isToolCapability = (capability: Capability): boolean =>
93
- capability.startsWith("tool:") || capability.startsWith("ext:");
94
-
95
- /**
96
- * Derive this session's own grant from what it inherited and what pi actually gave it.
97
- *
98
- * `observedTools` is the bare tool-name list from the session's own provider payload, or null when it
99
- * has not been observed yet — in which case the inherited grant is used unchanged (it is already an
100
- * upper bound, so this is safe, just less tight).
101
- *
102
- * A wildcard holder stays a wildcard holder: an enumerated observation must not silently downgrade an
103
- * explicitly unlimited grant, or a root session would lose the authority it was configured with.
104
- *
105
- * **R-36 / ADR-0017 step 1: only tool-shaped capabilities are filtered.** The observation is a list of
106
- * TOOLS, so it is evidence about `tool:` and `ext:` and about nothing else. Until this was fixed, a child
107
- * inheriting `tool:read, skill:review` held only `tool:read` from its first provider request onward — it
108
- * still *had* the skill (it arrives as `--skill`), but could not re-grant it and `/grants` stopped listing
109
- * it. Silently, and in the narrowing direction, which is why it survived: nothing fails when a grant
110
- * quietly shrinks. It also made ADR-0017's `agent:` prerequisite unsatisfiable below the root.
111
- */
112
- export function deriveOwnGrant(
113
- inheritedParentGrant: Capability[],
114
- observedTools: string[] | null,
115
- ): Capability[] {
116
- if (observedTools === null) return [...inheritedParentGrant];
117
- // Capabilities an observation cannot speak about ride through both branches untouched.
118
- const nonTool = inheritedParentGrant.filter((c) => !isToolCapability(c) && c !== WILDCARD);
119
- if (inheritedParentGrant.includes(WILDCARD)) {
120
- // Keep the wildcard, and additionally enumerate what was observed so descendants can be checked
121
- // against concrete names too.
122
- const enumerated = observedTools.map((t) => `tool:${t}`);
123
- return [...new Set([WILDCARD, ...enumerated, ...nonTool])].sort();
124
- }
125
- return [
126
- ...inheritedParentGrant.filter(
127
- (c) => isToolCapability(c) && observedTools.some((t) => matchesToolName(c, t)),
128
- ),
129
- ...nonTool,
130
- ].sort();
131
- }
132
-
133
- /**
134
- * Parse a bound from the environment, distinguishing **absent** from **malformed**.
135
- *
136
- * G7 / A-S4 + B-I4. `Number.parseInt` is the wrong tool for reading configuration: it accepts a numeric
137
- * prefix (`parseInt("2abc")` is `2`), returns `NaN` for anything else, and `NaN` silently passes every
138
- * comparison as false — so a malformed `PI_GRANTS_MAX_DEPTH` did not tighten the limit, it removed it.
139
- *
140
- * The three-way return is the point. `undefined` means "not configured, use the documented default";
141
- * `null` means "configured wrongly", which callers must treat as a failure rather than a default,
142
- * because a value someone tried to set and mistyped is not the same as one they never set.
143
- */
144
- export function parseBound(raw: string | undefined): number | null | undefined {
145
- if (raw === undefined) return undefined;
146
- const trimmed = raw.trim();
147
- // Exact non-negative decimal integers only: no signs, no fractions, no 0x, no numeric prefixes.
148
- if (!/^\d+$/.test(trimmed)) return null;
149
- const value = Number(trimmed);
150
- return Number.isSafeInteger(value) ? value : null;
151
- }
152
-
153
- export interface DepthConfig {
154
- depth: number;
155
- maxDepth: number;
156
- /** Names of the variables that were set but unreadable, for an operator-facing warning. */
157
- malformed: string[];
158
- }
159
-
160
- /**
161
- * Resolve this session's depth bounds, failing closed on anything malformed.
162
- *
163
- * **Malformed input disables spawning entirely (`maxDepth: 0`)** rather than falling back to a default,
164
- * and that applies to a bad `PI_GRANTS_DEPTH` just as much as a bad `PI_GRANTS_MAX_DEPTH`. The old
165
- * `|| 0` guard on depth failed open in a subtler way than the missing guard on maxDepth: a session that
166
- * could not read its own depth was treated as a **root**, which is the most permissive answer available
167
- * and precisely the value an attacker would choose. If we do not know how deep we are, we must not spawn.
168
- */
169
- export function depthConfig(depthRaw: string | undefined, maxDepthRaw: string | undefined): DepthConfig {
170
- const depth = parseBound(depthRaw);
171
- const maxDepth = parseBound(maxDepthRaw);
172
- const malformed: string[] = [];
173
- if (depth === null) malformed.push(ENV_DEPTH);
174
- if (maxDepth === null) malformed.push(ENV_MAX_DEPTH);
175
-
176
- if (malformed.length > 0) return { depth: depth ?? 0, maxDepth: 0, malformed };
177
- return { depth: depth ?? 0, maxDepth: maxDepth ?? DEFAULT_MAX_DEPTH, malformed };
178
- }
179
-
180
- /** The documented default child-depth bound when `PI_GRANTS_MAX_DEPTH` is not set. */
181
- export const DEFAULT_MAX_DEPTH = 2;
182
-
183
- /**
184
- * Gated by default in a governed session (ADR-0012).
185
- *
186
- * `bash` is not one capability among others; it is an execution primitive. A child holding it can run
187
- * `env -u PI_GRANTS_GRANT pi …` and obtain a completely **ungoverned** descendant — measured, not
188
- * theorised (`docs/probes/g5-bash-escape`). Handing that down silently is the thing worth changing.
189
- *
190
- * Subsumption-aware gating (also ADR-0012) means this single entry covers `write`, `edit`, `read`,
191
- * `grep`, `find` and `ls` as well, since `bash` confers all of them.
192
- */
193
- export const DEFAULT_GATED: Capability[] = ["tool:bash"];
194
-
195
- /**
196
- * Read the gate list, distinguishing **absent** from **explicitly empty**.
197
- *
198
- * `parseList` alone cannot: it maps both `undefined` and `""` to `[]`. That distinction is the operator's
199
- * only way to turn the default off — without it, someone who wants no gates would have to stop governing
200
- * altogether, which is strictly worse than the thing they were trying to avoid.
201
- */
202
- export function gatedFromEnv(raw: string | undefined): Capability[] {
203
- if (raw === undefined) return [...DEFAULT_GATED];
204
- return parseList(raw);
205
- }
206
-
207
- export interface ChildEnvInput {
208
- /** This session's own grant — becomes the child's inherited parent grant. */
209
- ownGrant: Capability[];
210
- /** This session's depth; children are one deeper. */
211
- depth: number;
212
- maxDepth: number;
213
- gated: Capability[];
214
- /**
215
- * Gated capabilities a human approved at or above this level.
216
- *
217
- * Safe to push on the GLOBAL channel because it is intersected with THIS session's own grant, which is
218
- * a parent-level fact — identical for every sibling, so there is nothing to race on. Each child then
219
- * re-intersects with its own grant on arrival, exactly as it does for the grant itself.
220
- */
221
- /**
222
- * Approvals eligible to cross the boundary (ADR-0014): capability, subject and scope. `once` is
223
- * dropped by `inheritApprovals`, and the subject is preserved so it cannot satisfy another one.
224
- */
225
- approved?: InheritableApproval[];
226
- ledgerPath?: string;
227
- /**
228
- * Whether THIS session is governed — i.e. `PI_GRANTS_GRANT` was set for it.
229
- *
230
- * G7 / B-I8. Governance is opt-in: with the variable unset the README promises "nothing is blocked".
231
- * That was true of the session itself and false of its children, because this function still exported
232
- * a grant, a depth and a bound, so an ungoverned parent silently started governing its descendants —
233
- * and the grant it exported was its own observed tool surface, which is a real restriction arrived at
234
- * by accident. An ungoverned session must be transparent, not a source of policy.
235
- *
236
- * Defaults to `true` so that every existing caller keeps publishing; only the extension, which alone
237
- * knows whether the variable was set, passes `false`.
238
- */
239
- governed?: boolean;
240
- }
241
-
242
- /**
243
- * The environment a child should inherit. Constant across all of this session's children by
244
- * construction, which is what makes concurrent spawning safe.
245
- *
246
- * **The wildcard is never inherited.** A root may HOLD `tool:*` — that is authority to grant anything —
247
- * but handing it down would let every descendant reacquire the full catalog, which makes attenuation
248
- * meaningless below the root. Children therefore inherit the ENUMERATED grant only.
249
- *
250
- * Consequence, deliberate: a wildcard root that has not yet observed its own tools hands children an
251
- * empty grant, so they can spawn nothing. That fails closed. It is also unreachable in normal flow,
252
- * because a session's first provider request always precedes its first tool call.
253
- */
254
- /**
255
- * The part of a grant a child may inherit: everything but the wildcards that are HELD, never handed down.
256
- *
257
- * `tool:*` for R-26's reason — a root that handed it down let every descendant reacquire the full catalog.
258
- * `workspace:*` for the same reason one namespace over (R-131): a descendant holding it could route anywhere
259
- * the registry lists, which is the attenuation failure ADR-0035 exists to close. `agent:*` is deliberately
260
- * NOT stripped — ADR-0023 decided that a session authorised for any definition passes that on, because
261
- * definitions are ceilings rather than roots.
262
- *
263
- * **Exported, and there is exactly one spelling of this rule on purpose.** It shipped as a filter inline in
264
- * `childEnv` and nowhere else, so a grant travelling the OTHER path — `delegate.ts` building a child's
265
- * `PI_GRANTS_GRANT` from `result.effective` — carried `workspace:*` straight down. The test written beside
266
- * that fix exercised `childEnv`, which is not the path a delegated child's grant travels, so it could not
267
- * catch it. R-28's shape: two routes for one rule, with the guard on the quieter one. Both call this now.
268
- */
269
- export function inheritableGrant(grant: readonly Capability[]): Capability[] {
270
- return grant.filter((c) => c !== WILDCARD && c !== WORKSPACE_WILDCARD);
271
- }
272
-
273
- export function childEnv(input: ChildEnvInput): Record<string, string> {
274
- if (input.governed === false) return {};
275
- const inheritable = inheritableGrant(input.ownGrant);
276
- const env: Record<string, string> = {
277
- [ENV_GRANT]: (assertCapabilitiesArePropagatable(inheritable), inheritable.join(",")),
278
- [ENV_DEPTH]: String(input.depth + 1),
279
- [ENV_MAX_DEPTH]: String(input.maxDepth),
280
- };
281
- if (input.gated.length > 0) env[ENV_GATED] = input.gated.join(",");
282
- // ALWAYS written, empty string included. This is the one value that changes during a session (a human
283
- // approves something, or the session's own grant narrows on observation), and the interceptor path
284
- // publishes it by ASSIGNING into the process-global `process.env`. Omitting it when empty would leave
285
- // whatever was there before — the parent's own, unclamped `PI_GRANTS_APPROVED` — visible to every child.
286
- // `parseList("")` is `[]`, so an empty value reads back exactly as an absent one.
287
- env[ENV_APPROVED] = inheritApprovals(input.approved ?? [], inheritable).join(",");
288
- // Empty is an explicit one-run ledger opt-out and must overwrite a prior publication too.
289
- if (input.ledgerPath !== undefined) env[ENV_LEDGER] = input.ledgerPath;
290
- return env;
291
- }
292
-
293
- /**
294
- * The environment for a child this process spawns itself: the parent's environment with every governance
295
- * variable stripped, then the per-child plan applied.
296
- *
297
- * Spreading `{ ...process.env, ...plan.env }` is not enough. `plan.env` omits keys that do not apply to
298
- * this child (an empty approval set, no gated list), and an omitted key does not overwrite — so the
299
- * parent's own value survives into the child. Stripping first makes the plan the ONLY source of every
300
- * governance variable, which is what `delegate.ts`'s "nothing is written to the shared `process.env`"
301
- * claim actually requires. Consumers re-clamp anyway; this is the defence in depth behind that.
302
- */
303
- export function mergeChildEnv(
304
- parentEnv: NodeJS.ProcessEnv,
305
- planEnv: Record<string, string>,
306
- ): NodeJS.ProcessEnv {
307
- const merged: NodeJS.ProcessEnv = { ...parentEnv };
308
- for (const key of GRANT_ENV_KEYS) delete merged[key];
309
- return { ...merged, ...planEnv };
310
- }
311
-
312
- /** Extract bare tool names from a provider payload's tool array, tolerating provider shape differences. */
313
- export function observeToolNames(payload: unknown): string[] | null {
314
- if (!payload || typeof payload !== "object") return null;
315
- const record = payload as Record<string, unknown>;
316
- for (const key of ["tools", "functions"]) {
317
- const candidate = record[key];
318
- if (!Array.isArray(candidate)) continue;
319
- const names = candidate
320
- .map((entry) => {
321
- if (!entry || typeof entry !== "object") return undefined;
322
- const e = entry as Record<string, unknown>;
323
- // Anthropic/OpenAI tool objects, and OpenAI's nested `function.name` form.
324
- const nested = e.function as Record<string, unknown> | undefined;
325
- const name = e.name ?? nested?.name;
326
- return typeof name === "string" ? name : undefined;
327
- })
328
- .filter((n): n is string => Boolean(n));
329
- // An empty tools array is a real observation (the session has no tools), not a failure to observe.
330
- return names;
331
- }
332
- return null;
333
- }
package/src/refusals.ts DELETED
@@ -1,70 +0,0 @@
1
- export const REFUSAL_CODES = [
2
- "CAPABILITY_ESCALATION",
3
- "GRANT_ID_MALFORMED",
4
- "DEFINITION_NOT_AUTHORIZED",
5
- "UNDECLARED_TOOLS",
6
- "UNKNOWN_TOOL",
7
- "GATED_UNAPPROVED",
8
- "APPROVAL_EXPIRED",
9
- "APPROVAL_SCOPE_MISMATCH",
10
- "APPROVAL_FLOW_FAILED",
11
- "DEPTH_EXCEEDED",
12
- "FANOUT_EXCEEDED",
13
- "EXECUTOR_UNAVAILABLE",
14
- "MODEL_UNRESOLVED",
15
- "GRANT_STORE_INVALID",
16
- // Execution-phase outcomes. Without these, an external controller could distinguish a policy refusal
17
- // from an internal error but not a lost writer lease from a user pressing stop (R-103).
18
- "CHILD_TIMED_OUT",
19
- "CHILD_CANCELLED",
20
- "CHILD_EXIT_NONZERO",
21
- // Planner refusals that previously carried a message and no code at all — including the narrowing
22
- // violation, which is the hardest rule this package enforces (R-109).
23
- "TASK_MISSING",
24
- "UNKNOWN_DEFINITION",
25
- "CEILING_PATTERNS_UNRESOLVED",
26
- "NARROWING_VIOLATED",
27
- "DEFINITION_UNREADABLE",
28
- "CORRELATION_TOO_LARGE",
29
- "CORRELATION_INVALID",
30
- "LEDGER_WRITE_FAILED",
31
- "FANOUT_FAILED",
32
- "WORKSPACE_NOT_REGISTERED",
33
- "WORKSPACE_NOT_AUTHORIZED",
34
- "WORKSPACE_WRITE_CONFLICT",
35
- "WORKSPACE_LEASE_STALE",
36
- "CHECK_NOT_CONFIGURED",
37
- "CHECK_CONFIGURATION_INVALID",
38
- "CHECK_IDENTITY_UNAVAILABLE",
39
- "CHECK_IDENTITY_MISMATCH",
40
- ] as const;
41
-
42
- export type RefusalCode = (typeof REFUSAL_CODES)[number];
43
-
44
- export interface StructuredRefusal {
45
- code: RefusalCode;
46
- /** Existing actionable diagnostic. Codes accompany rather than replace it. */
47
- message: string;
48
- details?: Record<string, string | number | boolean | null>;
49
- }
50
-
51
- export function refusal(
52
- code: RefusalCode,
53
- message: string,
54
- details?: StructuredRefusal["details"],
55
- ): StructuredRefusal {
56
- return { code, message, ...(details && Object.keys(details).length > 0 ? { details: { ...details } } : {}) };
57
- }
58
-
59
- /** Error shape for API callers. pi-facing tools still throw, as pi requires, while retaining a stable code. */
60
- export class GovernanceRefusal extends Error {
61
- readonly code: RefusalCode;
62
- readonly details?: StructuredRefusal["details"];
63
-
64
- constructor(value: StructuredRefusal) {
65
- super(value.message);
66
- this.name = "GovernanceRefusal";
67
- this.code = value.code;
68
- this.details = value.details;
69
- }
70
- }