pi-daddy 0.28.0 → 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 (1005) hide show
  1. package/CHANGELOG.md +99 -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 +134 -28
  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 +73 -73
  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 +25 -11
  265. package/extensions/session-report.ts +60 -11
  266. package/extensions/session.ts +58 -34
  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 +4 -211
  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 -155
  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/activity-timeline.d.ts +0 -109
  405. package/dist/activity-timeline.d.ts.map +0 -1
  406. package/dist/activity-timeline.js +0 -208
  407. package/dist/activity-timeline.js.map +0 -1
  408. package/dist/approval-prompt.d.ts +0 -119
  409. package/dist/approval-prompt.d.ts.map +0 -1
  410. package/dist/approval-prompt.js +0 -133
  411. package/dist/approval-prompt.js.map +0 -1
  412. package/dist/approval-store.d.ts +0 -149
  413. package/dist/approval-store.d.ts.map +0 -1
  414. package/dist/approval-store.js +0 -314
  415. package/dist/approval-store.js.map +0 -1
  416. package/dist/approval.d.ts +0 -241
  417. package/dist/approval.d.ts.map +0 -1
  418. package/dist/approval.js +0 -268
  419. package/dist/approval.js.map +0 -1
  420. package/dist/capabilities.d.ts +0 -136
  421. package/dist/capabilities.d.ts.map +0 -1
  422. package/dist/capabilities.js +0 -203
  423. package/dist/capabilities.js.map +0 -1
  424. package/dist/catalog.d.ts +0 -98
  425. package/dist/catalog.d.ts.map +0 -1
  426. package/dist/catalog.js +0 -273
  427. package/dist/catalog.js.map +0 -1
  428. package/dist/chain.d.ts.map +0 -1
  429. package/dist/chain.js.map +0 -1
  430. package/dist/check-runner.d.ts +0 -66
  431. package/dist/check-runner.d.ts.map +0 -1
  432. package/dist/check-runner.js +0 -275
  433. package/dist/check-runner.js.map +0 -1
  434. package/dist/control-journal.d.ts +0 -20
  435. package/dist/control-journal.d.ts.map +0 -1
  436. package/dist/control-journal.js +0 -73
  437. package/dist/control-journal.js.map +0 -1
  438. package/dist/correlation.d.ts.map +0 -1
  439. package/dist/correlation.js +0 -231
  440. package/dist/correlation.js.map +0 -1
  441. package/dist/daily-dashboard-host.d.ts +0 -136
  442. package/dist/daily-dashboard-host.d.ts.map +0 -1
  443. package/dist/daily-dashboard-host.js +0 -164
  444. package/dist/daily-dashboard-host.js.map +0 -1
  445. package/dist/daily-panel.d.ts +0 -36
  446. package/dist/daily-panel.d.ts.map +0 -1
  447. package/dist/daily-panel.js +0 -84
  448. package/dist/daily-panel.js.map +0 -1
  449. package/dist/daily-view-input.d.ts +0 -44
  450. package/dist/daily-view-input.d.ts.map +0 -1
  451. package/dist/daily-view-input.js +0 -68
  452. package/dist/daily-view-input.js.map +0 -1
  453. package/dist/daily-view-render.d.ts +0 -5
  454. package/dist/daily-view-render.d.ts.map +0 -1
  455. package/dist/daily-view-render.js +0 -42
  456. package/dist/daily-view-render.js.map +0 -1
  457. package/dist/daily-view.d.ts +0 -77
  458. package/dist/daily-view.d.ts.map +0 -1
  459. package/dist/daily-view.js +0 -176
  460. package/dist/daily-view.js.map +0 -1
  461. package/dist/dashboard-cli.d.ts +0 -54
  462. package/dist/dashboard-cli.d.ts.map +0 -1
  463. package/dist/dashboard-cli.js +0 -367
  464. package/dist/dashboard-cli.js.map +0 -1
  465. package/dist/dashboard-display-controls.d.ts +0 -15
  466. package/dist/dashboard-display-controls.d.ts.map +0 -1
  467. package/dist/dashboard-display-controls.js +0 -34
  468. package/dist/dashboard-display-controls.js.map +0 -1
  469. package/dist/dashboard-handshake.d.ts +0 -42
  470. package/dist/dashboard-handshake.d.ts.map +0 -1
  471. package/dist/dashboard-handshake.js +0 -147
  472. package/dist/dashboard-handshake.js.map +0 -1
  473. package/dist/dashboard-harness.d.ts +0 -22
  474. package/dist/dashboard-harness.d.ts.map +0 -1
  475. package/dist/dashboard-harness.js +0 -89
  476. package/dist/dashboard-harness.js.map +0 -1
  477. package/dist/dashboard-herdr.d.ts +0 -55
  478. package/dist/dashboard-herdr.d.ts.map +0 -1
  479. package/dist/dashboard-herdr.js +0 -293
  480. package/dist/dashboard-herdr.js.map +0 -1
  481. package/dist/dashboard-host-contract.d.ts +0 -127
  482. package/dist/dashboard-host-contract.d.ts.map +0 -1
  483. package/dist/dashboard-host-contract.js +0 -14
  484. package/dist/dashboard-host-contract.js.map +0 -1
  485. package/dist/dashboard-host-transport.d.ts +0 -16
  486. package/dist/dashboard-host-transport.d.ts.map +0 -1
  487. package/dist/dashboard-host-transport.js +0 -127
  488. package/dist/dashboard-host-transport.js.map +0 -1
  489. package/dist/dashboard-host.d.ts +0 -239
  490. package/dist/dashboard-host.d.ts.map +0 -1
  491. package/dist/dashboard-host.js +0 -474
  492. package/dist/dashboard-host.js.map +0 -1
  493. package/dist/dashboard-menu.d.ts +0 -16
  494. package/dist/dashboard-menu.d.ts.map +0 -1
  495. package/dist/dashboard-menu.js +0 -33
  496. package/dist/dashboard-menu.js.map +0 -1
  497. package/dist/dashboard-observation.d.ts +0 -28
  498. package/dist/dashboard-observation.d.ts.map +0 -1
  499. package/dist/dashboard-observation.js +0 -87
  500. package/dist/dashboard-observation.js.map +0 -1
  501. package/dist/dashboard-projection.d.ts +0 -73
  502. package/dist/dashboard-projection.d.ts.map +0 -1
  503. package/dist/dashboard-projection.js +0 -294
  504. package/dist/dashboard-projection.js.map +0 -1
  505. package/dist/dashboard-render.d.ts.map +0 -1
  506. package/dist/dashboard-render.js +0 -212
  507. package/dist/dashboard-render.js.map +0 -1
  508. package/dist/debrief-contract.d.ts +0 -65
  509. package/dist/debrief-contract.d.ts.map +0 -1
  510. package/dist/debrief-contract.js +0 -151
  511. package/dist/debrief-contract.js.map +0 -1
  512. package/dist/debrief-fixture.d.ts +0 -16
  513. package/dist/debrief-fixture.d.ts.map +0 -1
  514. package/dist/debrief-fixture.js +0 -41
  515. package/dist/debrief-fixture.js.map +0 -1
  516. package/dist/debrief-host.d.ts +0 -59
  517. package/dist/debrief-host.d.ts.map +0 -1
  518. package/dist/debrief-host.js +0 -49
  519. package/dist/debrief-host.js.map +0 -1
  520. package/dist/debrief-render.d.ts +0 -5
  521. package/dist/debrief-render.d.ts.map +0 -1
  522. package/dist/debrief-render.js +0 -65
  523. package/dist/debrief-render.js.map +0 -1
  524. package/dist/debrief.d.ts +0 -90
  525. package/dist/debrief.d.ts.map +0 -1
  526. package/dist/debrief.js +0 -263
  527. package/dist/debrief.js.map +0 -1
  528. package/dist/definitions.d.ts.map +0 -1
  529. package/dist/definitions.js +0 -164
  530. package/dist/definitions.js.map +0 -1
  531. package/dist/delegate-types.d.ts +0 -154
  532. package/dist/delegate-types.d.ts.map +0 -1
  533. package/dist/delegate-types.js +0 -8
  534. package/dist/delegate-types.js.map +0 -1
  535. package/dist/delegate.d.ts.map +0 -1
  536. package/dist/delegate.js +0 -313
  537. package/dist/delegate.js.map +0 -1
  538. package/dist/delegation-approval.d.ts.map +0 -1
  539. package/dist/delegation-approval.js +0 -94
  540. package/dist/delegation-approval.js.map +0 -1
  541. package/dist/dispatch-control.d.ts +0 -45
  542. package/dist/dispatch-control.d.ts.map +0 -1
  543. package/dist/dispatch-control.js +0 -76
  544. package/dist/dispatch-control.js.map +0 -1
  545. package/dist/effect-profile-runtime.d.ts +0 -40
  546. package/dist/effect-profile-runtime.d.ts.map +0 -1
  547. package/dist/effect-profile-runtime.js +0 -51
  548. package/dist/effect-profile-runtime.js.map +0 -1
  549. package/dist/effect-profile.d.ts +0 -40
  550. package/dist/effect-profile.d.ts.map +0 -1
  551. package/dist/effect-profile.js +0 -152
  552. package/dist/effect-profile.js.map +0 -1
  553. package/dist/execution-id.d.ts.map +0 -1
  554. package/dist/execution-id.js.map +0 -1
  555. package/dist/execution-retention.d.ts +0 -90
  556. package/dist/execution-retention.d.ts.map +0 -1
  557. package/dist/execution-retention.js +0 -247
  558. package/dist/execution-retention.js.map +0 -1
  559. package/dist/executor.d.ts +0 -39
  560. package/dist/executor.d.ts.map +0 -1
  561. package/dist/executor.js +0 -94
  562. package/dist/executor.js.map +0 -1
  563. package/dist/experiment-contract.d.ts +0 -56
  564. package/dist/experiment-contract.d.ts.map +0 -1
  565. package/dist/experiment-contract.js +0 -80
  566. package/dist/experiment-contract.js.map +0 -1
  567. package/dist/experiment-state.d.ts +0 -22
  568. package/dist/experiment-state.d.ts.map +0 -1
  569. package/dist/experiment-state.js +0 -79
  570. package/dist/experiment-state.js.map +0 -1
  571. package/dist/experiment-store.d.ts +0 -30
  572. package/dist/experiment-store.d.ts.map +0 -1
  573. package/dist/experiment-store.js +0 -147
  574. package/dist/experiment-store.js.map +0 -1
  575. package/dist/experiment.d.ts +0 -65
  576. package/dist/experiment.d.ts.map +0 -1
  577. package/dist/experiment.js +0 -362
  578. package/dist/experiment.js.map +0 -1
  579. package/dist/factory-contract.d.ts +0 -79
  580. package/dist/factory-contract.d.ts.map +0 -1
  581. package/dist/factory-contract.js +0 -89
  582. package/dist/factory-contract.js.map +0 -1
  583. package/dist/factory-migration.d.ts +0 -20
  584. package/dist/factory-migration.d.ts.map +0 -1
  585. package/dist/factory-migration.js +0 -55
  586. package/dist/factory-migration.js.map +0 -1
  587. package/dist/factory-order.d.ts +0 -848
  588. package/dist/factory-order.d.ts.map +0 -1
  589. package/dist/factory-order.js +0 -83
  590. package/dist/factory-order.js.map +0 -1
  591. package/dist/factory-registry.d.ts +0 -121
  592. package/dist/factory-registry.d.ts.map +0 -1
  593. package/dist/factory-registry.js +0 -133
  594. package/dist/factory-registry.js.map +0 -1
  595. package/dist/fanout.d.ts.map +0 -1
  596. package/dist/fanout.js +0 -93
  597. package/dist/fanout.js.map +0 -1
  598. package/dist/file-lock.d.ts.map +0 -1
  599. package/dist/file-lock.js +0 -201
  600. package/dist/file-lock.js.map +0 -1
  601. package/dist/finalization.d.ts.map +0 -1
  602. package/dist/finalization.js.map +0 -1
  603. package/dist/git-identity.d.ts +0 -13
  604. package/dist/git-identity.d.ts.map +0 -1
  605. package/dist/git-identity.js +0 -47
  606. package/dist/git-identity.js.map +0 -1
  607. package/dist/grant-env.d.ts +0 -75
  608. package/dist/grant-env.d.ts.map +0 -1
  609. package/dist/grant-env.js +0 -154
  610. package/dist/grant-env.js.map +0 -1
  611. package/dist/grant-store.d.ts +0 -96
  612. package/dist/grant-store.d.ts.map +0 -1
  613. package/dist/grant-store.js +0 -188
  614. package/dist/grant-store.js.map +0 -1
  615. package/dist/herdr-cli.d.ts +0 -78
  616. package/dist/herdr-cli.d.ts.map +0 -1
  617. package/dist/herdr-cli.js +0 -113
  618. package/dist/herdr-cli.js.map +0 -1
  619. package/dist/herdr-name.d.ts.map +0 -1
  620. package/dist/herdr-name.js.map +0 -1
  621. package/dist/herdr-pi-lifecycle.d.ts.map +0 -1
  622. package/dist/herdr-pi-lifecycle.js +0 -22
  623. package/dist/herdr-pi-lifecycle.js.map +0 -1
  624. package/dist/herdr-poll.d.ts +0 -133
  625. package/dist/herdr-poll.d.ts.map +0 -1
  626. package/dist/herdr-poll.js +0 -222
  627. package/dist/herdr-poll.js.map +0 -1
  628. package/dist/herdr-stage.d.ts +0 -40
  629. package/dist/herdr-stage.d.ts.map +0 -1
  630. package/dist/herdr-stage.js +0 -54
  631. package/dist/herdr-stage.js.map +0 -1
  632. package/dist/herdr-start.d.ts.map +0 -1
  633. package/dist/herdr-start.js.map +0 -1
  634. package/dist/init.d.ts +0 -117
  635. package/dist/init.d.ts.map +0 -1
  636. package/dist/init.js +0 -323
  637. package/dist/init.js.map +0 -1
  638. package/dist/intent-application.d.ts +0 -17
  639. package/dist/intent-application.d.ts.map +0 -1
  640. package/dist/intent-application.js +0 -114
  641. package/dist/intent-application.js.map +0 -1
  642. package/dist/intent-control.d.ts +0 -201
  643. package/dist/intent-control.d.ts.map +0 -1
  644. package/dist/intent-control.js +0 -110
  645. package/dist/intent-control.js.map +0 -1
  646. package/dist/intent-scheduling.d.ts +0 -9
  647. package/dist/intent-scheduling.d.ts.map +0 -1
  648. package/dist/intent-scheduling.js +0 -15
  649. package/dist/intent-scheduling.js.map +0 -1
  650. package/dist/learning-connection.d.ts +0 -127
  651. package/dist/learning-connection.d.ts.map +0 -1
  652. package/dist/learning-connection.js +0 -54
  653. package/dist/learning-connection.js.map +0 -1
  654. package/dist/lease-helper.d.ts.map +0 -1
  655. package/dist/lease-helper.js +0 -94
  656. package/dist/lease-helper.js.map +0 -1
  657. package/dist/lease-record.d.ts +0 -90
  658. package/dist/lease-record.d.ts.map +0 -1
  659. package/dist/lease-record.js.map +0 -1
  660. package/dist/ledger-append.d.ts +0 -15
  661. package/dist/ledger-append.d.ts.map +0 -1
  662. package/dist/ledger-append.js +0 -94
  663. package/dist/ledger-append.js.map +0 -1
  664. package/dist/ledger-events.d.ts +0 -131
  665. package/dist/ledger-events.d.ts.map +0 -1
  666. package/dist/ledger-events.js +0 -107
  667. package/dist/ledger-events.js.map +0 -1
  668. package/dist/ledger-identifiers.d.ts.map +0 -1
  669. package/dist/ledger-identifiers.js.map +0 -1
  670. package/dist/ledger-report.d.ts +0 -134
  671. package/dist/ledger-report.d.ts.map +0 -1
  672. package/dist/ledger-report.js +0 -271
  673. package/dist/ledger-report.js.map +0 -1
  674. package/dist/ledger-v3-validation.d.ts +0 -11
  675. package/dist/ledger-v3-validation.d.ts.map +0 -1
  676. package/dist/ledger-v3-validation.js +0 -265
  677. package/dist/ledger-v3-validation.js.map +0 -1
  678. package/dist/ledger.d.ts +0 -242
  679. package/dist/ledger.d.ts.map +0 -1
  680. package/dist/ledger.js +0 -142
  681. package/dist/ledger.js.map +0 -1
  682. package/dist/measured-order.d.ts +0 -249
  683. package/dist/measured-order.d.ts.map +0 -1
  684. package/dist/measured-order.js +0 -309
  685. package/dist/measured-order.js.map +0 -1
  686. package/dist/measured-session.d.ts +0 -97
  687. package/dist/measured-session.d.ts.map +0 -1
  688. package/dist/measured-session.js +0 -134
  689. package/dist/measured-session.js.map +0 -1
  690. package/dist/model-preflight.d.ts +0 -13
  691. package/dist/model-preflight.d.ts.map +0 -1
  692. package/dist/model-preflight.js +0 -29
  693. package/dist/model-preflight.js.map +0 -1
  694. package/dist/native-session-target.d.ts +0 -9
  695. package/dist/native-session-target.d.ts.map +0 -1
  696. package/dist/native-session-target.js +0 -29
  697. package/dist/native-session-target.js.map +0 -1
  698. package/dist/native-session.d.ts +0 -59
  699. package/dist/native-session.d.ts.map +0 -1
  700. package/dist/native-session.js +0 -154
  701. package/dist/native-session.js.map +0 -1
  702. package/dist/order-schedule.d.ts +0 -37
  703. package/dist/order-schedule.d.ts.map +0 -1
  704. package/dist/order-schedule.js +0 -81
  705. package/dist/order-schedule.js.map +0 -1
  706. package/dist/ordinary-children.d.ts +0 -52
  707. package/dist/ordinary-children.d.ts.map +0 -1
  708. package/dist/ordinary-children.js +0 -93
  709. package/dist/ordinary-children.js.map +0 -1
  710. package/dist/pane-reaper.d.ts +0 -111
  711. package/dist/pane-reaper.d.ts.map +0 -1
  712. package/dist/pane-reaper.js +0 -242
  713. package/dist/pane-reaper.js.map +0 -1
  714. package/dist/pi-tools.d.ts.map +0 -1
  715. package/dist/pi-tools.js +0 -21
  716. package/dist/pi-tools.js.map +0 -1
  717. package/dist/producer-ipc-contract.d.ts +0 -29
  718. package/dist/producer-ipc-contract.d.ts.map +0 -1
  719. package/dist/producer-ipc-contract.js +0 -29
  720. package/dist/producer-ipc-contract.js.map +0 -1
  721. package/dist/producer-ipc.d.ts +0 -55
  722. package/dist/producer-ipc.d.ts.map +0 -1
  723. package/dist/producer-ipc.js +0 -143
  724. package/dist/producer-ipc.js.map +0 -1
  725. package/dist/product-files.d.ts +0 -6
  726. package/dist/product-files.d.ts.map +0 -1
  727. package/dist/product-files.js +0 -55
  728. package/dist/product-files.js.map +0 -1
  729. package/dist/progress.d.ts.map +0 -1
  730. package/dist/progress.js.map +0 -1
  731. package/dist/propagation.d.ts +0 -203
  732. package/dist/propagation.d.ts.map +0 -1
  733. package/dist/propagation.js +0 -279
  734. package/dist/propagation.js.map +0 -1
  735. package/dist/refusals.d.ts +0 -16
  736. package/dist/refusals.d.ts.map +0 -1
  737. package/dist/refusals.js +0 -55
  738. package/dist/refusals.js.map +0 -1
  739. package/dist/resolve.d.ts.map +0 -1
  740. package/dist/resolve.js +0 -211
  741. package/dist/resolve.js.map +0 -1
  742. package/dist/resource-budget.d.ts +0 -334
  743. package/dist/resource-budget.d.ts.map +0 -1
  744. package/dist/resource-budget.js +0 -415
  745. package/dist/resource-budget.js.map +0 -1
  746. package/dist/retention-contract.d.ts.map +0 -1
  747. package/dist/retention-contract.js +0 -104
  748. package/dist/retention-contract.js.map +0 -1
  749. package/dist/retention-json.d.ts.map +0 -1
  750. package/dist/retention-json.js.map +0 -1
  751. package/dist/routing-authority.d.ts.map +0 -1
  752. package/dist/routing-authority.js.map +0 -1
  753. package/dist/run-child.d.ts +0 -87
  754. package/dist/run-child.d.ts.map +0 -1
  755. package/dist/run-child.js +0 -248
  756. package/dist/run-child.js.map +0 -1
  757. package/dist/run-herdr.d.ts +0 -119
  758. package/dist/run-herdr.d.ts.map +0 -1
  759. package/dist/run-herdr.js +0 -335
  760. package/dist/run-herdr.js.map +0 -1
  761. package/dist/skill-packages.d.ts +0 -116
  762. package/dist/skill-packages.d.ts.map +0 -1
  763. package/dist/skill-packages.js +0 -295
  764. package/dist/skill-packages.js.map +0 -1
  765. package/dist/skill-resources.d.ts.map +0 -1
  766. package/dist/skill-resources.js +0 -52
  767. package/dist/skill-resources.js.map +0 -1
  768. package/dist/spawn.d.ts.map +0 -1
  769. package/dist/spawn.js.map +0 -1
  770. package/dist/vendor/adoption.d.ts +0 -129
  771. package/dist/vendor/adoption.d.ts.map +0 -1
  772. package/dist/vendor/adoption.js +0 -102
  773. package/dist/vendor/adoption.js.map +0 -1
  774. package/dist/vendor/herdr-pi-lifecycle.d.ts.map +0 -1
  775. package/dist/vendor/herdr-pi-lifecycle.js.map +0 -1
  776. package/dist/work-command.d.ts +0 -32
  777. package/dist/work-command.d.ts.map +0 -1
  778. package/dist/work-command.js +0 -179
  779. package/dist/work-command.js.map +0 -1
  780. package/dist/work-ledger-destination.d.ts +0 -20
  781. package/dist/work-ledger-destination.d.ts.map +0 -1
  782. package/dist/work-ledger-destination.js +0 -131
  783. package/dist/work-ledger-destination.js.map +0 -1
  784. package/dist/work-ledger-json.d.ts +0 -25
  785. package/dist/work-ledger-json.d.ts.map +0 -1
  786. package/dist/work-ledger-json.js +0 -267
  787. package/dist/work-ledger-json.js.map +0 -1
  788. package/dist/work-ledger-occurrences.d.ts +0 -227
  789. package/dist/work-ledger-occurrences.d.ts.map +0 -1
  790. package/dist/work-ledger-occurrences.js +0 -115
  791. package/dist/work-ledger-occurrences.js.map +0 -1
  792. package/dist/work-ledger-projection.d.ts +0 -295
  793. package/dist/work-ledger-projection.d.ts.map +0 -1
  794. package/dist/work-ledger-projection.js +0 -237
  795. package/dist/work-ledger-projection.js.map +0 -1
  796. package/dist/work-ledger-snapshot.d.ts +0 -29
  797. package/dist/work-ledger-snapshot.d.ts.map +0 -1
  798. package/dist/work-ledger-snapshot.js +0 -267
  799. package/dist/work-ledger-snapshot.js.map +0 -1
  800. package/dist/work-ledger-types.d.ts +0 -261
  801. package/dist/work-ledger-types.d.ts.map +0 -1
  802. package/dist/work-ledger-types.js +0 -13
  803. package/dist/work-ledger-types.js.map +0 -1
  804. package/dist/work-ledger-validation.d.ts +0 -14
  805. package/dist/work-ledger-validation.d.ts.map +0 -1
  806. package/dist/work-ledger-validation.js +0 -226
  807. package/dist/work-ledger-validation.js.map +0 -1
  808. package/dist/work-ledger.d.ts +0 -43
  809. package/dist/work-ledger.d.ts.map +0 -1
  810. package/dist/work-ledger.js +0 -225
  811. package/dist/work-ledger.js.map +0 -1
  812. package/dist/work-policy-registry.d.ts +0 -133
  813. package/dist/work-policy-registry.d.ts.map +0 -1
  814. package/dist/work-policy-registry.js +0 -128
  815. package/dist/work-policy-registry.js.map +0 -1
  816. package/dist/work-run.d.ts +0 -56
  817. package/dist/work-run.d.ts.map +0 -1
  818. package/dist/work-run.js +0 -102
  819. package/dist/work-run.js.map +0 -1
  820. package/dist/work-setup.d.ts +0 -40
  821. package/dist/work-setup.d.ts.map +0 -1
  822. package/dist/work-setup.js +0 -174
  823. package/dist/work-setup.js.map +0 -1
  824. package/dist/workflow-fact-id.d.ts +0 -4
  825. package/dist/workflow-fact-id.d.ts.map +0 -1
  826. package/dist/workflow-fact-id.js +0 -14
  827. package/dist/workflow-fact-id.js.map +0 -1
  828. package/dist/workflow-facts.d.ts +0 -34
  829. package/dist/workflow-facts.d.ts.map +0 -1
  830. package/dist/workflow-facts.js +0 -43
  831. package/dist/workflow-facts.js.map +0 -1
  832. package/dist/workspace-lease.d.ts +0 -40
  833. package/dist/workspace-lease.d.ts.map +0 -1
  834. package/dist/workspace-lease.js +0 -333
  835. package/dist/workspace-lease.js.map +0 -1
  836. package/dist/workspace.d.ts +0 -57
  837. package/dist/workspace.d.ts.map +0 -1
  838. package/dist/workspace.js +0 -216
  839. package/dist/workspace.js.map +0 -1
  840. package/extensions/daily-dashboard-session.ts +0 -48
  841. package/extensions/daily-work-session.ts +0 -20
  842. package/extensions/learning-outcome-session.ts +0 -38
  843. package/extensions/learning-session.ts +0 -59
  844. package/extensions/ordinary-runtime.ts +0 -14
  845. package/extensions/primary-shadow.ts +0 -11
  846. package/extensions/work-policy-session.ts +0 -139
  847. package/extensions/work-run-session.ts +0 -75
  848. package/extensions/work-runtime.ts +0 -44
  849. package/extensions/work-session.ts +0 -132
  850. package/src/activity-timeline.ts +0 -133
  851. package/src/approval-prompt.ts +0 -225
  852. package/src/approval-store.ts +0 -386
  853. package/src/approval.ts +0 -399
  854. package/src/capabilities.ts +0 -220
  855. package/src/catalog.ts +0 -306
  856. package/src/check-runner.ts +0 -387
  857. package/src/control-journal.ts +0 -26
  858. package/src/correlation.ts +0 -320
  859. package/src/daily-dashboard-host.ts +0 -105
  860. package/src/daily-panel.ts +0 -80
  861. package/src/daily-view-input.ts +0 -59
  862. package/src/daily-view-render.ts +0 -45
  863. package/src/daily-view.ts +0 -160
  864. package/src/dashboard-cli.ts +0 -340
  865. package/src/dashboard-display-controls.ts +0 -21
  866. package/src/dashboard-handshake.ts +0 -199
  867. package/src/dashboard-harness.ts +0 -37
  868. package/src/dashboard-herdr.ts +0 -363
  869. package/src/dashboard-host-contract.ts +0 -50
  870. package/src/dashboard-host-transport.ts +0 -43
  871. package/src/dashboard-host.ts +0 -244
  872. package/src/dashboard-menu.ts +0 -28
  873. package/src/dashboard-observation.ts +0 -46
  874. package/src/dashboard-projection.ts +0 -390
  875. package/src/dashboard-render.ts +0 -259
  876. package/src/debrief-contract.ts +0 -127
  877. package/src/debrief-fixture.ts +0 -29
  878. package/src/debrief-host.ts +0 -53
  879. package/src/debrief-render.ts +0 -49
  880. package/src/debrief.ts +0 -198
  881. package/src/definitions.ts +0 -211
  882. package/src/delegate-types.ts +0 -154
  883. package/src/delegate.ts +0 -348
  884. package/src/delegation-approval.ts +0 -126
  885. package/src/dispatch-control.ts +0 -81
  886. package/src/effect-profile-runtime.ts +0 -46
  887. package/src/effect-profile.ts +0 -129
  888. package/src/execution-retention.ts +0 -230
  889. package/src/executor.ts +0 -123
  890. package/src/experiment-contract.ts +0 -66
  891. package/src/experiment-state.ts +0 -44
  892. package/src/experiment-store.ts +0 -98
  893. package/src/experiment.ts +0 -236
  894. package/src/factory-contract.ts +0 -47
  895. package/src/factory-migration.ts +0 -29
  896. package/src/factory-order.ts +0 -56
  897. package/src/factory-registry.ts +0 -60
  898. package/src/fanout.ts +0 -106
  899. package/src/file-lock.ts +0 -178
  900. package/src/finalization.ts +0 -79
  901. package/src/git-identity.ts +0 -56
  902. package/src/grant-env.ts +0 -221
  903. package/src/grant-store.ts +0 -235
  904. package/src/herdr-cli.ts +0 -125
  905. package/src/herdr-pi-lifecycle.ts +0 -21
  906. package/src/herdr-poll.ts +0 -253
  907. package/src/herdr-stage.ts +0 -55
  908. package/src/init.ts +0 -389
  909. package/src/intent-application.ts +0 -91
  910. package/src/intent-control.ts +0 -107
  911. package/src/intent-scheduling.ts +0 -14
  912. package/src/learning-connection.ts +0 -70
  913. package/src/lease-helper.ts +0 -97
  914. package/src/lease-record.ts +0 -131
  915. package/src/ledger-append.ts +0 -72
  916. package/src/ledger-events.ts +0 -226
  917. package/src/ledger-report.ts +0 -357
  918. package/src/ledger-v3-validation.ts +0 -266
  919. package/src/ledger.ts +0 -369
  920. package/src/measured-order.ts +0 -72
  921. package/src/measured-session.ts +0 -70
  922. package/src/model-preflight.ts +0 -41
  923. package/src/native-session-target.ts +0 -23
  924. package/src/native-session.ts +0 -139
  925. package/src/order-schedule.ts +0 -42
  926. package/src/ordinary-children.ts +0 -59
  927. package/src/pane-reaper.ts +0 -270
  928. package/src/pi-tools.ts +0 -25
  929. package/src/producer-ipc-contract.ts +0 -26
  930. package/src/producer-ipc.ts +0 -107
  931. package/src/product-files.ts +0 -34
  932. package/src/propagation.ts +0 -333
  933. package/src/refusals.ts +0 -70
  934. package/src/resolve.ts +0 -267
  935. package/src/resource-budget.ts +0 -349
  936. package/src/retention-contract.ts +0 -84
  937. package/src/retention-json.ts +0 -20
  938. package/src/run-child.ts +0 -303
  939. package/src/run-herdr.ts +0 -386
  940. package/src/skill-packages.ts +0 -314
  941. package/src/skill-resources.ts +0 -48
  942. package/src/vendor/adoption.ts +0 -109
  943. package/src/work-command.ts +0 -197
  944. package/src/work-ledger-destination.ts +0 -113
  945. package/src/work-ledger-json.ts +0 -228
  946. package/src/work-ledger-occurrences.ts +0 -99
  947. package/src/work-ledger-projection.ts +0 -262
  948. package/src/work-ledger-snapshot.ts +0 -246
  949. package/src/work-ledger-types.ts +0 -229
  950. package/src/work-ledger-validation.ts +0 -174
  951. package/src/work-ledger.ts +0 -186
  952. package/src/work-policy-registry.ts +0 -81
  953. package/src/work-run.ts +0 -79
  954. package/src/work-setup.ts +0 -141
  955. package/src/workflow-fact-id.ts +0 -16
  956. package/src/workflow-facts.ts +0 -65
  957. package/src/workspace-lease.ts +0 -363
  958. package/src/workspace.ts +0 -308
  959. /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/capability-decision.json +0 -0
  960. /package/contracts/{ledger/v3 → ledger-record/v1}/fixtures/workspace-lease.json +0 -0
  961. /package/dist/{herdr-name.d.ts → executors/herdr-name.d.ts} +0 -0
  962. /package/dist/{herdr-name.js → executors/herdr-name.js} +0 -0
  963. /package/dist/{herdr-pi-lifecycle.d.ts → executors/herdr-pi-lifecycle.d.ts} +0 -0
  964. /package/dist/{herdr-start.d.ts → executors/herdr-start.d.ts} +0 -0
  965. /package/dist/{herdr-start.js → executors/herdr-start.js} +0 -0
  966. /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.d.ts +0 -0
  967. /package/dist/{vendor → executors/vendor}/herdr-pi-lifecycle.js +0 -0
  968. /package/dist/{file-lock.d.ts → governance/file-lock.d.ts} +0 -0
  969. /package/dist/{finalization.d.ts → governance/finalization.d.ts} +0 -0
  970. /package/dist/{finalization.js → governance/finalization.js} +0 -0
  971. /package/dist/{lease-helper.d.ts → governance/lease-helper.d.ts} +0 -0
  972. /package/dist/{lease-record.js → governance/lease-record.js} +0 -0
  973. /package/dist/{retention-contract.d.ts → governance/retention-contract.d.ts} +0 -0
  974. /package/dist/{retention-json.d.ts → governance/retention-json.d.ts} +0 -0
  975. /package/dist/{retention-json.js → governance/retention-json.js} +0 -0
  976. /package/dist/{chain.d.ts → kernel/chain.d.ts} +0 -0
  977. /package/dist/{chain.js → kernel/chain.js} +0 -0
  978. /package/dist/{correlation.d.ts → kernel/correlation.d.ts} +0 -0
  979. /package/dist/{definitions.d.ts → kernel/definitions.d.ts} +0 -0
  980. /package/dist/{delegate.d.ts → kernel/delegate.d.ts} +0 -0
  981. /package/dist/{delegation-approval.d.ts → kernel/delegation-approval.d.ts} +0 -0
  982. /package/dist/{execution-id.d.ts → kernel/execution-id.d.ts} +0 -0
  983. /package/dist/{execution-id.js → kernel/execution-id.js} +0 -0
  984. /package/dist/{fanout.d.ts → kernel/fanout.d.ts} +0 -0
  985. /package/dist/{ledger-identifiers.d.ts → kernel/ledger-identifiers.d.ts} +0 -0
  986. /package/dist/{ledger-identifiers.js → kernel/ledger-identifiers.js} +0 -0
  987. /package/dist/{pi-tools.d.ts → kernel/pi-tools.d.ts} +0 -0
  988. /package/dist/{progress.d.ts → kernel/progress.d.ts} +0 -0
  989. /package/dist/{progress.js → kernel/progress.js} +0 -0
  990. /package/dist/{resolve.d.ts → kernel/resolve.d.ts} +0 -0
  991. /package/dist/{routing-authority.d.ts → kernel/routing-authority.d.ts} +0 -0
  992. /package/dist/{routing-authority.js → kernel/routing-authority.js} +0 -0
  993. /package/dist/{skill-resources.d.ts → kernel/skill-resources.d.ts} +0 -0
  994. /package/dist/{spawn.d.ts → kernel/spawn.d.ts} +0 -0
  995. /package/dist/{spawn.js → kernel/spawn.js} +0 -0
  996. /package/dist/{dashboard-render.d.ts → products/dashboard-render.d.ts} +0 -0
  997. /package/src/{herdr-name.ts → executors/herdr-name.ts} +0 -0
  998. /package/src/{herdr-start.ts → executors/herdr-start.ts} +0 -0
  999. /package/src/{vendor → executors/vendor}/herdr-pi-lifecycle.ts +0 -0
  1000. /package/src/{chain.ts → kernel/chain.ts} +0 -0
  1001. /package/src/{execution-id.ts → kernel/execution-id.ts} +0 -0
  1002. /package/src/{ledger-identifiers.ts → kernel/ledger-identifiers.ts} +0 -0
  1003. /package/src/{progress.ts → kernel/progress.ts} +0 -0
  1004. /package/src/{routing-authority.ts → kernel/routing-authority.ts} +0 -0
  1005. /package/src/{spawn.ts → kernel/spawn.ts} +0 -0
package/dist/file-lock.js DELETED
@@ -1,201 +0,0 @@
1
- /**
2
- * One cross-process file lock, shared by producer ledgers and the approvals store.
3
- *
4
- * **Extracted rather than copied (R-49).** The ledger has had this lock since fan-out made a second writer
5
- * possible; the approvals store had an unlocked read-modify-write, so session 1 could load, session 2 could
6
- * revoke, and session 1's next save would **restore the revoked entry** — falsifying a property
7
- * `approval-store.ts` documents in so many words. The mitigation already existed twenty lines away. A
8
- * second implementation is how a fix comes to contain a smaller copy of the bug it fixed, which has happened
9
- * twice in this package (R-38's preview, ADR-0022's republish path), so there is exactly one of these.
10
- *
11
- * **The two callers want opposite failure behaviour, and that is the caller's decision, not this module's.**
12
- * A ledger write that cannot take the lock must fail the delegation closed — a child running with granted
13
- * capabilities and no audit line is the thing the ledger exists to prevent. An approvals write that cannot
14
- * take the lock must NOT fail the work: the human already said yes, and the store is a convenience cache
15
- * (ADR-0020). So this throws `LockTimeoutError`, distinguishable from every other failure, and each caller
16
- * decides what that means.
17
- */
18
- import { open, readFile, rm, stat } from "node:fs/promises";
19
- import { randomUUID } from "node:crypto";
20
- /** How long to wait for another writer to finish before giving up. Short: failing closed beats hanging. */
21
- export const LOCK_TIMEOUT_MS = 2000;
22
- /** A lock older than this is treated as abandoned by a killed process and broken. */
23
- export const STALE_LOCK_MS = 10_000;
24
- /**
25
- * Raised only when the wait ran out. Its own type so a caller can tell "somebody else is writing" from
26
- * "this filesystem rejected the write", which want different messages and, for the approvals store,
27
- * different outcomes.
28
- */
29
- export class LockTimeoutError extends Error {
30
- constructor(label) {
31
- super(`${label} is locked by another writer (waited ${LOCK_TIMEOUT_MS}ms)`);
32
- this.name = "LockTimeoutError";
33
- }
34
- }
35
- function lockPolicy(options) {
36
- if (options === undefined)
37
- return "age";
38
- const invalid = () => { throw new TypeError("invalid file lock options"); };
39
- if (options === null || typeof options !== "object" || Array.isArray(options) ||
40
- ![Object.prototype, null].includes(Object.getPrototypeOf(options)))
41
- return invalid();
42
- const keys = Reflect.ownKeys(options);
43
- if (keys.some(key => key !== "staleRecovery"))
44
- return invalid();
45
- if (!keys.length)
46
- return "age";
47
- const field = Object.getOwnPropertyDescriptor(options, "staleRecovery");
48
- if (!Object.hasOwn(field, "value") || !field.enumerable || !["age", "disabled"].includes(field.value))
49
- return invalid();
50
- return field.value;
51
- }
52
- /**
53
- * Run `work` while holding an exclusive lock beside `path`.
54
- * Explicit disabled recovery never reclaims by age/liveness. V4 selects it internally; an orphan
55
- * requires separately authorized quiescent recovery, not a timer or automatic operator action.
56
- * The age-based behavior described below remains the default for legacy callers.
57
- *
58
- * **Why a lock at all.** `O_APPEND` is atomic for one write to a regular file on a POSIX filesystem, and the
59
- * guarantee does **not** hold on drvfs (`/mnt/c` under WSL2) or NFS — which is exactly where this project
60
- * runs. The approvals store never had the guarantee anyway: read-modify-write is not one write.
61
- *
62
- * **A lock introduces its own failure mode and it is handled deliberately.** A process killed while holding
63
- * the lock would otherwise block every future write forever, so a lock older than `STALE_LOCK_MS` is broken.
64
- * Every delete proves ownership first (`removeIfOurs`) — see the token comment in the loop for the two
65
- * mutual-exclusion breaks that came from not doing so, both reproduced across real OS processes.
66
- *
67
- * **What staleness actually measures, stated because it is not what it sounds like.** `STALE_LOCK_MS`
68
- * compares the lock's mtime to now; it never checks whether the owner is alive. So *any* 10s stall of the
69
- * holder hands the lock on — a `SIGSTOP`, a laptop suspend, swap thrash, a debugger breakpoint, a long GC
70
- * pause. Measured on this project's own filesystems, no realistic `work()` comes near it: one ledger append
71
- * is 0.1ms on ext4 and 21ms on drvfs, and a 10,000-entry `saveApproval` is 30ms / 97ms. Sixteen-way
72
- * contention raises *waiters'* time, never the holder's — max hold measured at 49ms. So the threshold is
73
- * two orders of magnitude clear of normal operation and is not guarded against abnormal suspension.
74
- *
75
- * The timeout is short *on purpose*: work refused because a file was busy is recoverable and loud, while
76
- * work that hangs waiting for a lock is neither.
77
- */
78
- export async function withFileLock(path, label, work, options) {
79
- const staleRecovery = lockPolicy(options); // Detached once, before I/O or any wait.
80
- const lockPath = `${path}.lock`;
81
- const deadline = Date.now() + LOCK_TIMEOUT_MS;
82
- for (;;) {
83
- // **A token, and the reason mutual exclusion depends on it (R-67).** `rm(path)` deletes whatever is at
84
- // the path *now*, not the lock this process created — so the previous version broke its own invariant
85
- // two ways, both reproduced across real OS processes:
86
- //
87
- // - the stale-break `stat` and `rm` are two awaits, so a process descheduled between them could delete
88
- // a LIVE lock another waiter had just created, and then succeed at its own create: two holders;
89
- // - worse, the `finally` removed the lock unconditionally. A holder whose lock had been broken out
90
- // from under it still freed the NEW owner's lock on the way out — and the damage then propagated to
91
- // processes that raced nothing and observed nothing wrong, which is how one break became a chain.
92
- //
93
- // Writing a unique token and re-reading it before every delete makes both inexpressible: this process
94
- // only ever removes a file it can prove is its own. The docstring used to claim "whichever wins the
95
- // exclusive create proceeds, which is correct because only one can" — true of the create and false of
96
- // the delete, which is what made it convincing.
97
- const token = `${process.pid}:${randomUUID()}`;
98
- let handle;
99
- try {
100
- handle = await open(lockPath, "wx");
101
- await handle.writeFile(`${token}\n`, "utf8");
102
- }
103
- catch (error) {
104
- // The handle may exist even though the WRITE failed (ENOSPC, EDQUOT, EFBIG). The old code jumped
105
- // straight here and rethrew, so the already-created lock file was left on disk and its descriptor
106
- // leaked to GC — an orphan that blocks every writer for a full STALE_LOCK_MS and feeds the EMFILE
107
- // path below. Close and remove before doing anything else; `ours` is safe because we just made it.
108
- if (handle) {
109
- await handle.close().catch(() => undefined);
110
- await removeIfOurs(lockPath, token);
111
- handle = undefined;
112
- }
113
- const code = error.code;
114
- if (code !== "EEXIST")
115
- throw error;
116
- // Someone else holds it. Break it only if it is old enough to be abandoned — and only the exact file
117
- // we judged, so a lock created in the gap survives.
118
- if (staleRecovery === "age")
119
- try {
120
- const held = await stat(lockPath);
121
- if (Date.now() - held.mtimeMs > STALE_LOCK_MS) {
122
- const abandoned = await readFile(lockPath, "utf8").catch(() => undefined);
123
- if (abandoned !== undefined)
124
- await removeIfOurs(lockPath, abandoned.trim());
125
- }
126
- }
127
- catch {
128
- /* it vanished between the check and the stat — the next attempt will simply take it */
129
- }
130
- if (Date.now() >= deadline)
131
- throw new LockTimeoutError(label);
132
- await new Promise((r) => setTimeout(r, 25));
133
- continue;
134
- }
135
- let bodyFailed = false;
136
- try {
137
- return await work();
138
- }
139
- catch (error) {
140
- bodyFailed = true;
141
- throw error;
142
- }
143
- finally {
144
- if (staleRecovery === "disabled") {
145
- try {
146
- await releaseDisabledLock(handle, lockPath, token);
147
- }
148
- catch (error) {
149
- if (!bodyFailed)
150
- throw error;
151
- } // Preserve even a falsy primary rejection.
152
- }
153
- else {
154
- await handle.close().catch(() => undefined);
155
- // Legacy age policy remains best effort; never remove a demonstrably different token.
156
- await removeIfOurs(lockPath, token);
157
- }
158
- }
159
- }
160
- }
161
- /** Disabled ownership cannot silently manufacture an indefinite orphan after a successful body.
162
- * Try token-checked removal even if close failed; report the first failure after both attempts.
163
- * Appended bytes are not rolled back, and a primary body error takes precedence at the caller. */
164
- async function releaseDisabledLock(handle, lockPath, token) {
165
- let failure = null;
166
- try {
167
- await handle.close();
168
- }
169
- catch (error) {
170
- failure = { error };
171
- }
172
- try {
173
- await removeIfOurs(lockPath, token, true);
174
- }
175
- catch (error) {
176
- failure ??= { error };
177
- }
178
- if (failure)
179
- throw failure.error;
180
- }
181
- /**
182
- * Delete the lock only if it still holds `token`.
183
- *
184
- * Read-then-delete is itself two operations, so this is not atomic either — but it narrows the window from
185
- * "the whole of `work()`" to "between a read and an unlink", and it removes the *systematic* break entirely:
186
- * a process can no longer delete a lock it demonstrably never owned.
187
- */
188
- async function removeIfOurs(lockPath, token, strict = false) {
189
- try {
190
- const held = await readFile(lockPath, "utf8");
191
- if (held.trim() !== token)
192
- return;
193
- await rm(lockPath, { force: true });
194
- }
195
- catch (error) {
196
- if (strict)
197
- throw error; // No ownership inference or force-delete after a failed read.
198
- /* Legacy: already gone, or unreadable — this process must not force removal. */
199
- }
200
- }
201
- //# sourceMappingURL=file-lock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../src/file-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,2GAA2G;AAC3G,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,qFAAqF;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AAEpC;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,KAAa;QACvB,KAAK,CAAC,GAAG,KAAK,wCAAwC,eAAe,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAGD,SAAS,UAAU,CAAC,OAAoC;IACtD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,GAAU,EAAE,GAAG,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACzE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IACzF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,eAAe,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,eAAe,CAAE,CAAC;IACzE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IACxH,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,IAAY,EAAE,KAAa,EAAE,IAAsB,EAAE,OAAyB;IAClH,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,yCAAyC;IACpF,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IAE9C,SAAS,CAAC;QACR,uGAAuG;QACvG,sGAAsG;QACtG,sDAAsD;QACtD,EAAE;QACF,wGAAwG;QACxG,mGAAmG;QACnG,oGAAoG;QACpG,uGAAuG;QACvG,qGAAqG;QACrG,EAAE;QACF,sGAAsG;QACtG,oGAAoG;QACpG,sGAAsG;QACtG,gDAAgD;QAChD,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,CAAC;QAC/C,IAAI,MAAoD,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iGAAiG;YACjG,kGAAkG;YAClG,kGAAkG;YAClG,mGAAmG;YACnG,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACpC,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,IAAI,GAAI,KAA2B,CAAC,IAAI,CAAC;YAC/C,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAEnC,qGAAqG;YACrG,oDAAoD;YACpD,IAAI,aAAa,KAAK,KAAK;gBAAE,IAAI,CAAC;oBAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa,EAAE,CAAC;wBAC9C,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;wBAC1E,IAAI,SAAS,KAAK,SAAS;4BAAE,MAAM,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,uFAAuF;gBACzF,CAAC;YAED,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,UAAU,GAAG,IAAI,CAAC;YAAC,MAAM,KAAK,CAAC;QAAC,CAAC;gBAC3C,CAAC;YACP,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC;oBAAC,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAAC,CAAC;gBAC3D,OAAO,KAAK,EAAE,CAAC;oBAAC,IAAI,CAAC,UAAU;wBAAE,MAAM,KAAK,CAAC;gBAAC,CAAC,CAAC,2CAA2C;YAC7F,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5C,sFAAsF;gBACtF,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;kGAEkG;AAClG,KAAK,UAAU,mBAAmB,CAAC,MAAwC,EAAE,QAAgB,EAAE,KAAa;IAC1G,IAAI,OAAO,GAA8B,IAAI,CAAC;IAC9C,IAAI,CAAC;QAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC;IAAC,CAAC;IACpE,IAAI,CAAC;QAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAClD,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,KAAK,EAAE,KAAK,EAAE,CAAC;IAAC,CAAC;IACxC,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC,KAAK,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAa,EAAE,MAAM,GAAG,KAAK;IACzE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK;YAAE,OAAO;QAClC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM;YAAE,MAAM,KAAK,CAAC,CAAC,8DAA8D;QACvF,gFAAgF;IAClF,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"finalization.d.ts","sourceRoot":"","sources":["../src/finalization.ts"],"names":[],"mappings":"AAAA,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAMD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAiCpH;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAEjG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"finalization.js","sourceRoot":"","sources":["../src/finalization.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { ValidatedWorkspace } from "./workspace.ts";
2
- export interface GitCandidateIdentity {
3
- headSha: string;
4
- treeSha: string;
5
- }
6
- /** Compute HEAD plus NON-IGNORED tracked/untracked candidate content without changing the real index.
7
- *
8
- * NOT the exact working tree: `git add -A` honours `.gitignore`, `core.excludesFile` and
9
- * `$GIT_DIR/info/exclude`, and records only a gitlink for a submodule. And it is not read-only — it writes
10
- * blob objects into the real `.git/objects`. `docs/SPEC.md` retracted the word "exact"; this comment said
11
- * it for one more round. */
12
- export declare function computeGitCandidateIdentity(workspace: ValidatedWorkspace): Promise<GitCandidateIdentity>;
13
- //# sourceMappingURL=git-identity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-identity.d.ts","sourceRoot":"","sources":["../src/git-identity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIzD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;4BAK4B;AAC5B,wBAAsB,2BAA2B,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAiC9G"}
@@ -1,47 +0,0 @@
1
- import { execFile } from "node:child_process";
2
- import { mkdtemp, rm } from "node:fs/promises";
3
- import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
- import { promisify } from "node:util";
6
- import { runWithFinalizers } from "./finalization.js";
7
- import { GovernanceRefusal, refusal } from "./refusals.js";
8
- const execFileAsync = promisify(execFile);
9
- /** Compute HEAD plus NON-IGNORED tracked/untracked candidate content without changing the real index.
10
- *
11
- * NOT the exact working tree: `git add -A` honours `.gitignore`, `core.excludesFile` and
12
- * `$GIT_DIR/info/exclude`, and records only a gitlink for a submodule. And it is not read-only — it writes
13
- * blob objects into the real `.git/objects`. `docs/SPEC.md` retracted the word "exact"; this comment said
14
- * it for one more round. */
15
- export async function computeGitCandidateIdentity(workspace) {
16
- const dir = await mkdtemp(join(tmpdir(), "pi-daddy-index-"));
17
- const index = join(dir, "index");
18
- const env = {
19
- PATH: process.env.PATH,
20
- HOME: process.env.HOME,
21
- LANG: process.env.LANG,
22
- LC_ALL: process.env.LC_ALL,
23
- TMPDIR: process.env.TMPDIR,
24
- GIT_INDEX_FILE: index,
25
- };
26
- const git = async (args) => (await execFileAsync("git", ["-C", workspace.root, ...args], {
27
- env, encoding: "utf8", maxBuffer: 16 * 1024 * 1024,
28
- })).stdout.trim();
29
- return runWithFinalizers(async () => {
30
- try {
31
- const headSha = await git(["rev-parse", "HEAD"]);
32
- await git(["read-tree", "HEAD"]);
33
- await git(["add", "-A"]);
34
- const treeSha = await git(["write-tree"]);
35
- if (!/^[a-f0-9]{40,64}$/i.test(headSha) || !/^[a-f0-9]{40,64}$/i.test(treeSha))
36
- throw new Error("Git returned an invalid object id");
37
- return { headSha, treeSha };
38
- }
39
- catch (error) {
40
- throw new GovernanceRefusal(refusal("CHECK_IDENTITY_UNAVAILABLE", `could not compute exact Git head/candidate-tree identity for workspace ${workspace.workspaceId} (${String(error)})`, { workspace_id: workspace.workspaceId }));
41
- }
42
- }, [{
43
- label: "temporary Git index cleanup failed",
44
- run: () => rm(dir, { recursive: true, force: true }),
45
- }]);
46
- }
47
- //# sourceMappingURL=git-identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-identity.js","sourceRoot":"","sources":["../src/git-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG3D,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAO1C;;;;;4BAK4B;AAC5B,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,SAA6B;IAC7E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,GAAG,GAAsB;QAC7B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;QACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;QACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;QACtB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;QAC1B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;QAC1B,cAAc,EAAE,KAAK;KACtB,CAAC;IACF,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAE,EAAE,CAAC,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE;QACjG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KACnD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAClB,OAAO,iBAAiB,CAAC,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YACjD,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACrI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACjC,4BAA4B,EAC5B,0EAA0E,SAAS,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EACpH,EAAE,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE,CACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC;YACF,KAAK,EAAE,oCAAoC;YAC3C,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACrD,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,75 +0,0 @@
1
- /**
2
- * The `.pi/grants.env` an operator reads, edits and commits — and what `init` refuses to put in it live.
3
- *
4
- * Split out of `init.ts` when ADR-0029's grant-width rule pushed that file past the 400-line ceiling and
5
- * `test/file-size.test.ts` refused it. The seam is the natural one: `init.ts` decides *what is true about
6
- * the installed packages*, this file decides *how that is presented to a human for review*.
7
- *
8
- * **ADR-0029.** `init` used to emit the union of every declared ceiling as a live grant. A critic's reading
9
- * killed it in one sentence: the handoff's safety argument for a third party authoring `allowed-tools` is
10
- * that *"the operator's `PI_GRANTS_GRANT` still bounds it"* — and a generated union makes the bound and the
11
- * bounded have the same author, who is not the operator. So capabilities that can change a machine are
12
- * emitted **commented**, with the definitions that need them named. `init` + `source` yields a working
13
- * read-only setup; the wide ones cost one deliberate uncomment.
14
- *
15
- * That is a decision about the **starting grant**, which is a stronger act than choosing a ceiling and is
16
- * why it needed its own ADR rather than a paragraph in ADR-0028.
17
- */
18
- import { type Capability } from "./resolve.ts";
19
- /**
20
- * Capabilities `init` will never put LIVE in a generated grant.
21
- *
22
- * **This list is a judgement, and it is written down in one place so it can be argued with** — which is the
23
- * whole reason ADR-0029 exists. The rule behind it: a capability that can *change the machine* or *execute*
24
- * does not become live because a package asked for it. Everything else (reading, searching, listing) does.
25
- *
26
- * - `DEFAULT_GATED` — whatever a governed session already asks a human about. Today `tool:bash`, and taking
27
- * it from there rather than restating it means the two cannot drift apart.
28
- * - `tool:write`, `tool:edit`, `tool:edit-diff` — mutate the working tree, and **are not gated by default**,
29
- * so a source-and-go operator would hand them to a child with no dialog at all. That gap is exactly what
30
- * made "the union is mitigated by gating" untrue (R-76).
31
- * - `UNIVERSAL_CAPABILITIES` — confer the whole catalog by measurement (`docs/probes/pi-fabric-eval`).
32
- * `assertNarrowing` refuses a grant containing one anyway; leaving it out of the file keeps the operator
33
- * from ever holding it by accident.
34
- */
35
- export declare const WITHHELD_BY_DEFAULT: readonly Capability[];
36
- /** Would `init` put this capability in the live grant? */
37
- export declare function isLiveByDefault(capability: Capability): boolean;
38
- export declare class UnsafeGrantError extends Error {
39
- }
40
- /** Throw rather than write a grant string that could mean something to a shell. */
41
- export declare function assertGrantIsWritable(grant: Capability[]): void;
42
- /** One definition's declared ceiling, as far as the grant file is concerned. */
43
- export interface GrantEnvSkill {
44
- name: string;
45
- ceiling: Capability[];
46
- /** Present when the definition cannot be spawned at all; the string is why, for the reader. */
47
- unspawnable?: string;
48
- }
49
- export interface GrantEnvInput {
50
- skills: GrantEnvSkill[];
51
- /** Capabilities emitted live. */
52
- live: Capability[];
53
- /** Withheld capability → the definitions that declared it. Emitted commented, for a deliberate uncomment. */
54
- withheld: Map<Capability, string[]>;
55
- /** Definitions whose `agent:` id is withheld because they need a withheld capability. */
56
- withheldDefinitions: string[];
57
- /** `workspace:<id>` ids this project could route to (ADR-0035). Rendered commented, never granted. */
58
- routableWorkspaces?: Capability[];
59
- /** `agent:<name>` ids a ceiling names that `init` did not write here. Reported, never granted. */
60
- crossReferences: {
61
- from: string;
62
- capability: Capability;
63
- }[];
64
- cautions: string[];
65
- }
66
- /**
67
- * Render the file.
68
- *
69
- * Every capability is annotated with the definition it came from, because the whole claim of this feature is
70
- * that the capability decision is visible and diffable. A grant nobody can read is a grant nobody reviews.
71
- */
72
- export declare function renderGrantEnv(input: GrantEnvInput): string;
73
- /** The capability that must always be live, or the generated file is inert (S-5). */
74
- export declare const ALWAYS_LIVE: Capability;
75
- //# sourceMappingURL=grant-env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grant-env.d.ts","sourceRoot":"","sources":["../src/grant-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,UAAU,EAEpD,CAAC;AAEF,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAQ/D;AAaD,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAU/D;AAED,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,iCAAiC;IACjC,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,6GAA6G;IAC7G,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,yFAAyF;IACzF,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,sGAAsG;IACtG,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;IAClC,kGAAkG;IAClG,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,EAAE,CAAC;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CA6G3D;AAED,qFAAqF;AACrF,eAAO,MAAM,WAAW,EAAE,UAAgC,CAAC"}
package/dist/grant-env.js DELETED
@@ -1,154 +0,0 @@
1
- /**
2
- * The `.pi/grants.env` an operator reads, edits and commits — and what `init` refuses to put in it live.
3
- *
4
- * Split out of `init.ts` when ADR-0029's grant-width rule pushed that file past the 400-line ceiling and
5
- * `test/file-size.test.ts` refused it. The seam is the natural one: `init.ts` decides *what is true about
6
- * the installed packages*, this file decides *how that is presented to a human for review*.
7
- *
8
- * **ADR-0029.** `init` used to emit the union of every declared ceiling as a live grant. A critic's reading
9
- * killed it in one sentence: the handoff's safety argument for a third party authoring `allowed-tools` is
10
- * that *"the operator's `PI_GRANTS_GRANT` still bounds it"* — and a generated union makes the bound and the
11
- * bounded have the same author, who is not the operator. So capabilities that can change a machine are
12
- * emitted **commented**, with the definitions that need them named. `init` + `source` yields a working
13
- * read-only setup; the wide ones cost one deliberate uncomment.
14
- *
15
- * That is a decision about the **starting grant**, which is a stronger act than choosing a ceiling and is
16
- * why it needed its own ADR rather than a paragraph in ADR-0028.
17
- */
18
- import { DELEGATE_CAPABILITY } from "./capabilities.js";
19
- import { DEFAULT_GATED } from "./propagation.js";
20
- import { UNIVERSAL_CAPABILITIES } from "./resolve.js";
21
- /**
22
- * Capabilities `init` will never put LIVE in a generated grant.
23
- *
24
- * **This list is a judgement, and it is written down in one place so it can be argued with** — which is the
25
- * whole reason ADR-0029 exists. The rule behind it: a capability that can *change the machine* or *execute*
26
- * does not become live because a package asked for it. Everything else (reading, searching, listing) does.
27
- *
28
- * - `DEFAULT_GATED` — whatever a governed session already asks a human about. Today `tool:bash`, and taking
29
- * it from there rather than restating it means the two cannot drift apart.
30
- * - `tool:write`, `tool:edit`, `tool:edit-diff` — mutate the working tree, and **are not gated by default**,
31
- * so a source-and-go operator would hand them to a child with no dialog at all. That gap is exactly what
32
- * made "the union is mitigated by gating" untrue (R-76).
33
- * - `UNIVERSAL_CAPABILITIES` — confer the whole catalog by measurement (`docs/probes/pi-fabric-eval`).
34
- * `assertNarrowing` refuses a grant containing one anyway; leaving it out of the file keeps the operator
35
- * from ever holding it by accident.
36
- */
37
- export const WITHHELD_BY_DEFAULT = [
38
- ...new Set([...DEFAULT_GATED, "tool:write", "tool:edit", "tool:edit-diff", ...UNIVERSAL_CAPABILITIES]),
39
- ];
40
- /** Would `init` put this capability in the live grant? */
41
- export function isLiveByDefault(capability) {
42
- // No `workspace:<id>` is ever live by default (ADR-0035), and this is the same rule the list above states
43
- // rather than a new one: authority "does not become live because a package asked for it". A registry id is
44
- // a *choice of where a child runs*, which is the operator's to make and cannot be inferred from a
45
- // declaration — ADR-0028's whole position. Enumerated ids are unbounded, so this is a namespace test and
46
- // not a list membership.
47
- if (capability.startsWith("workspace:"))
48
- return false;
49
- return !WITHHELD_BY_DEFAULT.includes(capability);
50
- }
51
- /**
52
- * Every character allowed in a generated `PI_GRANTS_GRANT` value.
53
- *
54
- * **A structural backstop, not the main defence** (R-78). The per-entry whitelist in `skill-packages.ts` is
55
- * what refuses a hostile capability id; this refuses to write the FILE AT ALL if anything unexpected reached
56
- * the string regardless. R-77 and R-78 were the same defect found twice, on two channels into one
57
- * interpolation, so the third channel — whatever it turns out to be — should cost a refusal rather than an
58
- * injection. A guard that depends on my enumeration being complete is not a guard.
59
- */
60
- const GRANT_VALUE = /^[A-Za-z0-9:@,._/-]*$/;
61
- export class UnsafeGrantError extends Error {
62
- }
63
- /** Throw rather than write a grant string that could mean something to a shell. */
64
- export function assertGrantIsWritable(grant) {
65
- const value = grant.join(",");
66
- if (!GRANT_VALUE.test(value)) {
67
- throw new UnsafeGrantError(`refusing to write .pi/grants.env: the assembled grant contains characters that are not part of a ` +
68
- `capability id (${JSON.stringify(value)}). This file is meant to be sourced by a shell, so it is ` +
69
- `not written at all rather than written unsafely. Report this — a declared capability reached the ` +
70
- `grant that should have been refused at discovery.`);
71
- }
72
- }
73
- /**
74
- * Render the file.
75
- *
76
- * Every capability is annotated with the definition it came from, because the whole claim of this feature is
77
- * that the capability decision is visible and diffable. A grant nobody can read is a grant nobody reviews.
78
- */
79
- export function renderGrantEnv(input) {
80
- const lines = [
81
- "# .pi/grants.env — written by `pi-daddy init`. REVIEW IT, then commit it.",
82
- "#",
83
- "# Every capability below was read from a SKILL.md's own `allowed-tools`. pi-daddy chose none of them:",
84
- "# a ceiling belongs in a file a human reviews, not in a default applied when a sub-agent is spawned.",
85
- "# Delete an `agent:` id to withhold that definition; delete a `tool:` id to withhold that tool from",
86
- "# every child. You cannot grant a child what this session does not hold, so this file is the ceiling",
87
- "# over the whole delegation tree.",
88
- "#",
89
- ];
90
- const spawnable = input.skills.filter((s) => !s.unspawnable);
91
- if (spawnable.length > 0) {
92
- lines.push("# What each definition declares — a child receives this ∩ the grant below:");
93
- const width = Math.max(...spawnable.map((s) => s.name.length));
94
- for (const skill of spawnable) {
95
- lines.push(`# ${skill.name.padEnd(width)} ${skill.ceiling.join(", ") || "(nothing — a child with no tools)"}`);
96
- }
97
- lines.push("#");
98
- }
99
- const unspawnable = input.skills.filter((s) => s.unspawnable);
100
- if (unspawnable.length > 0) {
101
- lines.push("# NOT AUTHORISED — pi-daddy refuses to spawn these, so no `agent:` id is granted for them:");
102
- for (const skill of unspawnable)
103
- lines.push(`# ${skill.name}: ${skill.unspawnable}`);
104
- lines.push("#");
105
- }
106
- // ADR-0029. The wide capabilities, commented, with the definitions that need them named — so authorising
107
- // one is a deliberate act and reading the file tells you exactly what it buys and what it costs.
108
- if (input.withheld.size > 0) {
109
- lines.push("# WITHHELD BY DEFAULT — these can change your machine, so `pi-daddy init` does not grant them.", "# Uncomment a capability to authorise it for every child, then add the definitions that need it to", "# PI_GRANTS_GRANT below. `tool:bash` is asked about at spawn time as well; `tool:write` and", "# `tool:edit` are NOT, so granting them here is the whole decision.");
110
- const width = Math.max(...[...input.withheld.keys()].map((c) => c.length));
111
- for (const [capability, needed] of [...input.withheld].sort()) {
112
- lines.push(`# ${capability.padEnd(width)} (${needed.join(", ")})`);
113
- }
114
- lines.push("#");
115
- }
116
- // OUTSIDE the block above, and that is the fix. This is the file's only statement that a withheld
117
- // definition's `agent:` id must be granted too — and it used to render only when `withheld` was non-empty,
118
- // so a package whose sole withheld capability is a ROUTING id (the common read-only routing case) lost it
119
- // entirely once `workspace:` ids stopped going into that map. The reason line above still said "see below"
120
- // and pointed at nothing.
121
- if (input.withheldDefinitions.length > 0) {
122
- lines.push(`# …and then: ${input.withheldDefinitions.map((n) => `agent:${n}`).join(",")}`, "# Their `agent:` ids are withheld too: a definition that cannot receive what it declares would", "# be authorised to run and then refused, which is a worse answer than not being authorised.", "#");
123
- }
124
- // ADR-0035. Routing became a capability in 0.19.0, which made every existing grant that routes start
125
- // refusing — so the migration has to be visible from the file the operator already opens. Listed and NOT
126
- // granted: which worktree a child starts in is the operator's decision and cannot be read off a
127
- // declaration (ADR-0028), and granting one because a package named it is the "does not become live because
128
- // a package asked for it" rule that `WITHHELD_BY_DEFAULT` above states.
129
- if (input.routableWorkspaces && input.routableWorkspaces.length > 0) {
130
- lines.push("# ROUTABLE WORKSPACES — routing a child to a registered worktree needs the id in PI_GRANTS_GRANT", "# (ADR-0035, 0.19.0). Without it a delegation naming one is refused WORKSPACE_NOT_AUTHORIZED. Add the", "# ones this project's children may start in; a child can only pass on ids it holds itself, so this is", "# also the list of what any DESCENDANT could reach. Not granted for you: `workspace:*` exists but is", "# held and never inherited, which makes it the wrong answer for anything but a single-worktree setup.");
131
- for (const capability of input.routableWorkspaces)
132
- lines.push(`# ${capability}`);
133
- lines.push("#");
134
- }
135
- // A ceiling may legitimately name `agent:<other>` — that is how a delegator is told what IT may spawn.
136
- // Granting one for a definition `init` did not write would authorise a file from some other skill root
137
- // that the operator is not reviewing here, which is the same objection rule 3 makes to undeclared skills.
138
- if (input.crossReferences.length > 0) {
139
- lines.push("# NOT GRANTED — a definition here names another definition that pi-daddy did not write:");
140
- for (const ref of input.crossReferences) {
141
- lines.push(`# ${ref.from} declares ${ref.capability}, which is not one of the definitions above.`);
142
- }
143
- lines.push("# Add it by hand if you mean it — it would authorise spawning that name from ANY skill root,", "# including ~/.pi/agent/skills, which other tools install into.", "#");
144
- }
145
- for (const caution of input.cautions)
146
- lines.push(`# CAUTION: ${caution}`);
147
- if (input.cautions.length > 0)
148
- lines.push("#");
149
- lines.push("# tool:delegate is what registers the delegation tools at all — withhold it and this session is a leaf.", `export PI_GRANTS_GRANT="${input.live.join(",")}"`, "", "# Init enables this project ledger. It is LOAD-BEARING: a spawn that cannot be recorded is refused.", '# PI_GRANTS_LEDGER still overrides the stored default used by plain `pi` after `/grants init`.', 'export PI_GRANTS_LEDGER=".pi/grants.jsonl"', "", "# Optional. tool:bash is ALREADY gated by default, so this line only matters if you widen it:", "# gating is closed under subsumption, so gating tool:write also gates tool:bash (bash can write).", '#export PI_GRANTS_GATED="tool:bash,tool:write"', "");
150
- return lines.join("\n");
151
- }
152
- /** The capability that must always be live, or the generated file is inert (S-5). */
153
- export const ALWAYS_LIVE = DELEGATE_CAPABILITY;
154
- //# sourceMappingURL=grant-env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grant-env.js","sourceRoot":"","sources":["../src/grant-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAmB,MAAM,cAAc,CAAC;AAEvE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA0B;IACxD,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,CAAC;CACvG,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,eAAe,CAAC,UAAsB;IACpD,0GAA0G;IAC1G,2GAA2G;IAC3G,kGAAkG;IAClG,yGAAyG;IACzG,yBAAyB;IACzB,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,gBAAgB,CACxB,mGAAmG;YACjG,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,2DAA2D;YAClG,mGAAmG;YACnG,mDAAmD,CACtD,CAAC;IACJ,CAAC;AACH,CAAC;AAyBD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,MAAM,KAAK,GAAG;QACZ,2EAA2E;QAC3E,GAAG;QACH,uGAAuG;QACvG,sGAAsG;QACtG,qGAAqG;QACrG,sGAAsG;QACtG,mCAAmC;QACnC,GAAG;KACJ,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mCAAmC,EAAE,CAAC,CAAC;QACpH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QACzG,KAAK,MAAM,KAAK,IAAI,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,yGAAyG;IACzG,iGAAiG;IACjG,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CACR,gGAAgG,EAChG,oGAAoG,EACpG,6FAA6F,EAC7F,qEAAqE,CACtE,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,kGAAkG;IAClG,2GAA2G;IAC3G,0GAA0G;IAC1G,2GAA2G;IAC3G,0BAA0B;IAC1B,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CACR,kBAAkB,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAChF,kGAAkG,EAClG,+FAA+F,EAC/F,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,qGAAqG;IACrG,yGAAyG;IACzG,gGAAgG;IAChG,2GAA2G;IAC3G,wEAAwE;IACxE,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,KAAK,CAAC,IAAI,CACR,kGAAkG,EAClG,uGAAuG,EACvG,uGAAuG,EACvG,sGAAsG,EACtG,uGAAuG,CACxG,CAAC;QACF,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,kBAAkB;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,uGAAuG;IACvG,uGAAuG;IACvG,0GAA0G;IAC1G,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QACtG,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,UAAU,8CAA8C,CAAC,CAAC;QACvG,CAAC;QACD,KAAK,CAAC,IAAI,CACR,gGAAgG,EAChG,mEAAmE,EACnE,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/C,KAAK,CAAC,IAAI,CACR,yGAAyG,EACzG,2BAA2B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAClD,EAAE,EACF,qGAAqG,EACrG,gGAAgG,EAChG,4CAA4C,EAC5C,EAAE,EACF,+FAA+F,EAC/F,mGAAmG,EACnG,gDAAgD,EAChD,EAAE,CACH,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,WAAW,GAAe,mBAAmB,CAAC"}
@@ -1,96 +0,0 @@
1
- /**
2
- * The init choice for a directory, stored **outside** it: its grant and, in v2, explicit project-ledger
3
- * consent.
4
- *
5
- * `PI_GRANTS_GRANT` and `PI_GRANTS_LEDGER` remain the propagation channel to children — a parent writes them
6
- * and every child inherits them. The store is a root-session source only, so an operator does not have to
7
- * `source` a file and restart pi after making the project choice.
8
- *
9
- * **Outside the workspace, and that is the whole design.** A grant is a ceiling; a ceiling a governed child
10
- * can rewrite is not a ceiling. `<cwd>/.pi/grants.env` is writable by any child holding `tool:write`, so
11
- * storing the live grant there would let a child widen the *next* session's ceiling — ADR-0014's
12
- * self-defeating case verbatim, which is why persisted approvals were moved out of the workspace in the
13
- * first place. This reuses that pattern exactly: `$PI_CODING_AGENT_DIR/grants/<slug>-<hash>.json`, keyed by
14
- * the directory, unwritable by a narrowed child because a narrowed child holds no write access to `$HOME`.
15
- *
16
- * **It does not defend against a child holding `bash`** (ADR-0012). Nothing here does.
17
- *
18
- * `.pi/grants.env` is still written by `init` and is still worth committing — it is the *reviewable record*
19
- * of the decision, diffable in a PR. It is simply no longer the thing the enforcer reads.
20
- */
21
- import type { Capability } from "./resolve.ts";
22
- export interface StoredGrant {
23
- grant: Capability[];
24
- /** Whether a root session defaults to `<cwd>/.pi/grants.jsonl`. False for every legacy v1 store. */
25
- projectLedger: boolean;
26
- }
27
- export type GrantStoreRefusalReason = "malformed" | "unsupported-version" | "unreadable" | "wrong-cwd";
28
- export type StoredGrantState = {
29
- state: "absent";
30
- } | {
31
- state: "valid";
32
- stored: StoredGrant;
33
- } | {
34
- state: "refuse";
35
- reason: GrantStoreRefusalReason;
36
- };
37
- export interface SaveGrantOptions {
38
- projectLedger?: boolean;
39
- }
40
- /**
41
- * Where this directory's grant lives.
42
- *
43
- * Slug plus a 64-bit hash, exactly as `approvalsPath` does it and for the same two reasons: the basename
44
- * keeps the directory legible to a human reading it, and the hash is what makes it unambiguous, since two
45
- * checkouts can share a basename.
46
- */
47
- export declare function grantStorePath(cwd: string): string;
48
- /**
49
- * Parse a store file's text into its versioned project choice, or null.
50
- *
51
- * Split out from the readers so the **one** validation lives in one place: both the sync and async paths
52
- * must agree, and two parsers is how they come to disagree.
53
- *
54
- * Rejects every doubt at this parser boundary — it never constructs a partial ceiling. The session currently
55
- * treats absent and invalid stores alike (R-175), so do not call that wider behavior fail-closed. The `cwd`
56
- * check is R-27's: a copied file describes a directory nobody authorised it for.
57
- */
58
- export declare function parseStoredGrantState(text: string, cwd: string): StoredGrantState;
59
- export declare function parseStoredGrant(text: string, cwd: string): StoredGrant | null;
60
- /** Compatibility view for callers that need only the capability ceiling. */
61
- export declare function parseGrantFile(text: string, cwd: string): Capability[] | null;
62
- /**
63
- * Read this directory's stored grant, synchronously.
64
- *
65
- * **Sync on purpose, and this is the constraint that shapes the feature.** Whether `delegate` is registered
66
- * at all is decided when the extension factory runs (S-5: a session without `tool:delegate` must not be
67
- * offered the tool), and that is before any `await` is possible. An async read would resolve after the
68
- * decision it exists to inform, so the store would silently fail to grant delegation — the exact class of
69
- * defect R-38 and R-39 were.
70
- */
71
- export declare function loadStoredGrantStateSync(cwd: string): StoredGrantState;
72
- export declare function loadStoredGrantSync(cwd: string): StoredGrant | null;
73
- export declare function loadGrantSync(cwd: string): Capability[] | null;
74
- /** Async twin, for callers that already have one. Same parser, so they cannot disagree. */
75
- export declare function loadStoredGrantState(cwd: string): Promise<StoredGrantState>;
76
- export declare function loadStoredGrant(cwd: string): Promise<StoredGrant | null>;
77
- export declare function loadGrant(cwd: string): Promise<Capability[] | null>;
78
- /** The one project-local default ADR-0037 binds to an explicit v2 init choice. */
79
- export declare function projectLedgerPath(cwd: string): string;
80
- export type SaveOutcome = "saved" | "failed" | "busy";
81
- /**
82
- * Write this directory's grant and optional project-ledger consent as one atomic choice.
83
- *
84
- * Locked with the same lock the ledger and the approval store use, for the same reason: two sessions in one
85
- * directory running `/grants init` concurrently must not interleave. A lock this cannot take yields `busy`
86
- * and changes nothing — the caller reports it and the operator retries, which is the honest outcome for a
87
- * write that never looked at the file (R-68).
88
- *
89
- * `wx` on the temp file refuses to follow a pre-existing symlink, and `rename` is atomic within a
90
- * filesystem, so a reader never sees a half-written grant. Both copied from `writeFileSafely`, deliberately
91
- * — a second, subtly different atomic-write is how the two come to disagree about what "safe" meant.
92
- */
93
- export declare function saveGrant(cwd: string, grant: Capability[], options?: SaveGrantOptions): Promise<SaveOutcome>;
94
- /** Remove this directory's stored grant. True when a file was there to remove. */
95
- export declare function clearGrant(cwd: string): Promise<boolean>;
96
- //# sourceMappingURL=grant-store.d.ts.map