@clossys/launcher 0.3.1 → 0.5.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 (290) hide show
  1. package/README.md +1373 -60
  2. package/contracts/conversation-contract.md +2 -2
  3. package/contracts/product-ci-workflow.yml +74 -0
  4. package/contracts/repository-inventory.json +53 -0
  5. package/dist/admission-fixture.d.ts +168 -0
  6. package/dist/admission-fixture.d.ts.map +1 -0
  7. package/dist/admission-fixture.js +467 -0
  8. package/dist/admission-fixture.js.map +1 -0
  9. package/dist/admission.d.ts +124 -0
  10. package/dist/admission.d.ts.map +1 -0
  11. package/dist/admission.js +804 -0
  12. package/dist/admission.js.map +1 -0
  13. package/dist/agents-guide.d.ts +9 -0
  14. package/dist/agents-guide.d.ts.map +1 -0
  15. package/dist/agents-guide.js +26 -0
  16. package/dist/agents-guide.js.map +1 -0
  17. package/dist/apply-command-options.check.d.ts +12 -0
  18. package/dist/apply-command-options.check.d.ts.map +1 -0
  19. package/dist/apply-command-options.check.js +20 -0
  20. package/dist/apply-command-options.check.js.map +1 -0
  21. package/dist/apply-plan-cli.d.ts +39 -1
  22. package/dist/apply-plan-cli.d.ts.map +1 -1
  23. package/dist/apply-plan-cli.js +432 -15
  24. package/dist/apply-plan-cli.js.map +1 -1
  25. package/dist/apply-plan.d.ts +46 -59
  26. package/dist/apply-plan.d.ts.map +1 -1
  27. package/dist/apply-plan.js +112 -97
  28. package/dist/apply-plan.js.map +1 -1
  29. package/dist/apply-step-fixture.d.ts +87 -0
  30. package/dist/apply-step-fixture.d.ts.map +1 -0
  31. package/dist/apply-step-fixture.js +199 -0
  32. package/dist/apply-step-fixture.js.map +1 -0
  33. package/dist/apply-store.d.ts +93 -0
  34. package/dist/apply-store.d.ts.map +1 -0
  35. package/dist/apply-store.js +625 -0
  36. package/dist/apply-store.js.map +1 -0
  37. package/dist/approval-sheet.d.ts +21 -0
  38. package/dist/approval-sheet.d.ts.map +1 -0
  39. package/dist/approval-sheet.js +163 -0
  40. package/dist/approval-sheet.js.map +1 -0
  41. package/dist/body-command.d.ts +42 -0
  42. package/dist/body-command.d.ts.map +1 -0
  43. package/dist/body-command.js +143 -0
  44. package/dist/body-command.js.map +1 -0
  45. package/dist/change-set-contract.d.ts +403 -0
  46. package/dist/change-set-contract.d.ts.map +1 -0
  47. package/dist/change-set-contract.js +781 -0
  48. package/dist/change-set-contract.js.map +1 -0
  49. package/dist/change-set-digest.d.ts +28 -0
  50. package/dist/change-set-digest.d.ts.map +1 -0
  51. package/dist/change-set-digest.js +65 -0
  52. package/dist/change-set-digest.js.map +1 -0
  53. package/dist/check-cli.d.ts.map +1 -1
  54. package/dist/check-cli.js +14 -3
  55. package/dist/check-cli.js.map +1 -1
  56. package/dist/cli.d.ts +17 -6
  57. package/dist/cli.d.ts.map +1 -1
  58. package/dist/cli.js +84 -23
  59. package/dist/cli.js.map +1 -1
  60. package/dist/core.d.ts +79 -22
  61. package/dist/core.d.ts.map +1 -1
  62. package/dist/core.js +843 -268
  63. package/dist/core.js.map +1 -1
  64. package/dist/dry-materialize.d.ts +63 -0
  65. package/dist/dry-materialize.d.ts.map +1 -0
  66. package/dist/dry-materialize.js +330 -0
  67. package/dist/dry-materialize.js.map +1 -0
  68. package/dist/existing-declaration-adoption.check.d.ts +2 -0
  69. package/dist/existing-declaration-adoption.check.d.ts.map +1 -0
  70. package/dist/existing-declaration-adoption.check.js +10 -0
  71. package/dist/existing-declaration-adoption.check.js.map +1 -0
  72. package/dist/generated/contract-schema.generated.d.ts +97 -0
  73. package/dist/generated/contract-schema.generated.d.ts.map +1 -0
  74. package/dist/generated/contract-schema.generated.js +496 -0
  75. package/dist/generated/contract-schema.generated.js.map +1 -0
  76. package/dist/generated/package-scope.generated.d.ts +6 -0
  77. package/dist/generated/package-scope.generated.d.ts.map +1 -0
  78. package/dist/generated/package-scope.generated.js +10 -0
  79. package/dist/generated/package-scope.generated.js.map +1 -0
  80. package/dist/generated/plan-contracts.generated.d.ts +3 -0
  81. package/dist/generated/plan-contracts.generated.d.ts.map +1 -0
  82. package/dist/generated/plan-contracts.generated.js +3101 -0
  83. package/dist/generated/plan-contracts.generated.js.map +1 -0
  84. package/dist/host.d.ts.map +1 -1
  85. package/dist/host.js +11 -0
  86. package/dist/host.js.map +1 -1
  87. package/dist/identity.d.ts +15 -0
  88. package/dist/identity.d.ts.map +1 -0
  89. package/dist/identity.js +48 -0
  90. package/dist/identity.js.map +1 -0
  91. package/dist/index.d.ts +35 -5
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +19 -2
  94. package/dist/index.js.map +1 -1
  95. package/dist/inventory-adoption.d.ts +24 -5
  96. package/dist/inventory-adoption.d.ts.map +1 -1
  97. package/dist/inventory-adoption.js +70 -25
  98. package/dist/inventory-adoption.js.map +1 -1
  99. package/dist/inventory-choice.d.ts +40 -0
  100. package/dist/inventory-choice.d.ts.map +1 -0
  101. package/dist/inventory-choice.js +156 -0
  102. package/dist/inventory-choice.js.map +1 -0
  103. package/dist/inventory-contract.d.ts +89 -0
  104. package/dist/inventory-contract.d.ts.map +1 -0
  105. package/dist/inventory-contract.js +121 -0
  106. package/dist/inventory-contract.js.map +1 -0
  107. package/dist/key-editor.d.ts +30 -0
  108. package/dist/key-editor.d.ts.map +1 -0
  109. package/dist/key-editor.js +445 -0
  110. package/dist/key-editor.js.map +1 -0
  111. package/dist/ledger-contract.d.ts +190 -0
  112. package/dist/ledger-contract.d.ts.map +1 -0
  113. package/dist/ledger-contract.js +555 -0
  114. package/dist/ledger-contract.js.map +1 -0
  115. package/dist/ledger-trust.d.ts +90 -0
  116. package/dist/ledger-trust.d.ts.map +1 -0
  117. package/dist/ledger-trust.js +203 -0
  118. package/dist/ledger-trust.js.map +1 -0
  119. package/dist/lockfile-invariants.d.ts +48 -0
  120. package/dist/lockfile-invariants.d.ts.map +1 -0
  121. package/dist/lockfile-invariants.js +375 -0
  122. package/dist/lockfile-invariants.js.map +1 -0
  123. package/dist/lockfile-readers.d.ts +72 -0
  124. package/dist/lockfile-readers.d.ts.map +1 -0
  125. package/dist/lockfile-readers.js +713 -0
  126. package/dist/lockfile-readers.js.map +1 -0
  127. package/dist/lockfile-regen.d.ts +106 -0
  128. package/dist/lockfile-regen.d.ts.map +1 -0
  129. package/dist/lockfile-regen.js +760 -0
  130. package/dist/lockfile-regen.js.map +1 -0
  131. package/dist/lockfile-tool-env.d.ts +29 -0
  132. package/dist/lockfile-tool-env.d.ts.map +1 -0
  133. package/dist/lockfile-tool-env.js +111 -0
  134. package/dist/lockfile-tool-env.js.map +1 -0
  135. package/dist/materialize.d.ts +113 -0
  136. package/dist/materialize.d.ts.map +1 -0
  137. package/dist/materialize.js +881 -0
  138. package/dist/materialize.js.map +1 -0
  139. package/dist/observe-repository.d.ts +90 -0
  140. package/dist/observe-repository.d.ts.map +1 -0
  141. package/dist/observe-repository.js +1367 -0
  142. package/dist/observe-repository.js.map +1 -0
  143. package/dist/plan-bundle-setup-fixture.d.ts +68 -0
  144. package/dist/plan-bundle-setup-fixture.d.ts.map +1 -0
  145. package/dist/plan-bundle-setup-fixture.js +167 -0
  146. package/dist/plan-bundle-setup-fixture.js.map +1 -0
  147. package/dist/plan-bundle.d.ts +256 -0
  148. package/dist/plan-bundle.d.ts.map +1 -0
  149. package/dist/plan-bundle.js +882 -0
  150. package/dist/plan-bundle.js.map +1 -0
  151. package/dist/plan-command.d.ts +29 -0
  152. package/dist/plan-command.d.ts.map +1 -0
  153. package/dist/plan-command.js +523 -0
  154. package/dist/plan-command.js.map +1 -0
  155. package/dist/plan-contract.d.ts +153 -0
  156. package/dist/plan-contract.d.ts.map +1 -0
  157. package/dist/plan-contract.js +61 -0
  158. package/dist/plan-contract.js.map +1 -0
  159. package/dist/plan-digest.d.ts +25 -0
  160. package/dist/plan-digest.d.ts.map +1 -0
  161. package/dist/plan-digest.js +106 -0
  162. package/dist/plan-digest.js.map +1 -0
  163. package/dist/plan-rules.d.ts +23 -0
  164. package/dist/plan-rules.d.ts.map +1 -0
  165. package/dist/plan-rules.js +177 -0
  166. package/dist/plan-rules.js.map +1 -0
  167. package/dist/planned-bundle.d.ts +20 -0
  168. package/dist/planned-bundle.d.ts.map +1 -0
  169. package/dist/planned-bundle.js +191 -0
  170. package/dist/planned-bundle.js.map +1 -0
  171. package/dist/product-repository.d.ts +4 -0
  172. package/dist/product-repository.d.ts.map +1 -1
  173. package/dist/product-repository.js +9 -1
  174. package/dist/product-repository.js.map +1 -1
  175. package/dist/provenance-gate.d.ts +48 -0
  176. package/dist/provenance-gate.d.ts.map +1 -0
  177. package/dist/provenance-gate.js +324 -0
  178. package/dist/provenance-gate.js.map +1 -0
  179. package/dist/pull-request-body.d.ts +45 -0
  180. package/dist/pull-request-body.d.ts.map +1 -0
  181. package/dist/pull-request-body.js +232 -0
  182. package/dist/pull-request-body.js.map +1 -0
  183. package/dist/registry-snapshot.d.ts +141 -0
  184. package/dist/registry-snapshot.d.ts.map +1 -0
  185. package/dist/registry-snapshot.js +483 -0
  186. package/dist/registry-snapshot.js.map +1 -0
  187. package/dist/release-age-edit.d.ts +52 -0
  188. package/dist/release-age-edit.d.ts.map +1 -0
  189. package/dist/release-age-edit.js +413 -0
  190. package/dist/release-age-edit.js.map +1 -0
  191. package/dist/root-entries.d.ts +36 -0
  192. package/dist/root-entries.d.ts.map +1 -0
  193. package/dist/root-entries.js +80 -0
  194. package/dist/root-entries.js.map +1 -0
  195. package/dist/setup-template-scripts.d.ts +36 -0
  196. package/dist/setup-template-scripts.d.ts.map +1 -0
  197. package/dist/setup-template-scripts.js +568 -0
  198. package/dist/setup-template-scripts.js.map +1 -0
  199. package/dist/setup-templates.d.ts +55 -0
  200. package/dist/setup-templates.d.ts.map +1 -0
  201. package/dist/setup-templates.js +438 -0
  202. package/dist/setup-templates.js.map +1 -0
  203. package/dist/skills.d.ts +34 -1
  204. package/dist/skills.d.ts.map +1 -1
  205. package/dist/skills.js +129 -17
  206. package/dist/skills.js.map +1 -1
  207. package/dist/status.d.ts +63 -0
  208. package/dist/status.d.ts.map +1 -0
  209. package/dist/status.js +539 -0
  210. package/dist/status.js.map +1 -0
  211. package/dist/types.d.ts +151 -13
  212. package/dist/types.d.ts.map +1 -1
  213. package/package.json +4 -4
  214. package/skeleton/README.md +14 -9
  215. package/skeleton/package.json +2 -1
  216. package/skill/SKILL.md +23 -7
  217. package/skill-catalogue/advisor/SKILL.md +59 -6
  218. package/skill-catalogue/architect/SKILL.md +2 -2
  219. package/skill-catalogue/bouncer/SKILL.md +2 -2
  220. package/skill-catalogue/builder/SKILL.md +2 -2
  221. package/skill-catalogue/butler/SKILL.md +2 -2
  222. package/skill-catalogue/controller/SKILL.md +2 -2
  223. package/skill-catalogue/customer/SKILL.md +2 -2
  224. package/skill-catalogue/designer/SKILL.md +4 -2
  225. package/skill-catalogue/giver/SKILL.md +2 -2
  226. package/skill-catalogue/influencer/SKILL.md +2 -2
  227. package/skill-catalogue/inspector/SKILL.md +2 -2
  228. package/skill-catalogue/integrator/SKILL.md +2 -2
  229. package/skill-catalogue/keeper/SKILL.md +2 -2
  230. package/skill-catalogue/launcher/SKILL.md +23 -7
  231. package/skill-catalogue/locksmith/SKILL.md +2 -2
  232. package/skill-catalogue/messenger/SKILL.md +2 -2
  233. package/skill-catalogue/observer/SKILL.md +2 -2
  234. package/skill-catalogue/publisher/SKILL.md +2 -2
  235. package/skill-catalogue/starter/SKILL.md +3 -2
  236. package/skill-catalogue/strategist/SKILL.md +12 -4
  237. package/skill-catalogue/writer/SKILL.md +2 -2
  238. package/src/admission-fixture.ts +585 -0
  239. package/src/admission.ts +819 -0
  240. package/src/agents-guide.ts +29 -0
  241. package/src/apply-command-options.check.ts +27 -0
  242. package/src/apply-plan-cli.ts +454 -14
  243. package/src/apply-plan.ts +112 -124
  244. package/src/apply-step-fixture.ts +236 -0
  245. package/src/apply-store.ts +584 -0
  246. package/src/approval-sheet.ts +170 -0
  247. package/src/body-command.ts +162 -0
  248. package/src/change-set-contract.ts +987 -0
  249. package/src/change-set-digest.ts +70 -0
  250. package/src/check-cli.ts +14 -3
  251. package/src/cli.ts +90 -22
  252. package/src/core.ts +973 -275
  253. package/src/dry-materialize.ts +353 -0
  254. package/src/existing-declaration-adoption.check.ts +12 -0
  255. package/src/generated/contract-schema.generated.ts +520 -0
  256. package/src/generated/package-scope.generated.ts +10 -0
  257. package/src/generated/plan-contracts.generated.ts +3101 -0
  258. package/src/host.ts +10 -0
  259. package/src/identity.ts +51 -0
  260. package/src/index.ts +74 -3
  261. package/src/inventory-adoption.ts +107 -29
  262. package/src/inventory-choice.ts +172 -0
  263. package/src/inventory-contract.ts +166 -0
  264. package/src/key-editor.ts +446 -0
  265. package/src/ledger-contract.ts +660 -0
  266. package/src/ledger-trust.ts +272 -0
  267. package/src/lockfile-invariants.ts +421 -0
  268. package/src/lockfile-readers.ts +749 -0
  269. package/src/lockfile-regen.ts +851 -0
  270. package/src/lockfile-tool-env.ts +131 -0
  271. package/src/materialize.ts +915 -0
  272. package/src/observe-repository.ts +1365 -0
  273. package/src/plan-bundle-setup-fixture.ts +200 -0
  274. package/src/plan-bundle.ts +1014 -0
  275. package/src/plan-command.ts +532 -0
  276. package/src/plan-contract.ts +179 -0
  277. package/src/plan-digest.ts +102 -0
  278. package/src/plan-rules.ts +188 -0
  279. package/src/planned-bundle.ts +211 -0
  280. package/src/product-repository.ts +10 -1
  281. package/src/provenance-gate.ts +352 -0
  282. package/src/pull-request-body.ts +261 -0
  283. package/src/registry-snapshot.ts +534 -0
  284. package/src/release-age-edit.ts +430 -0
  285. package/src/root-entries.ts +81 -0
  286. package/src/setup-template-scripts.ts +580 -0
  287. package/src/setup-templates.ts +479 -0
  288. package/src/skills.ts +161 -18
  289. package/src/status.ts +557 -0
  290. package/src/types.ts +148 -13
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-bundle.js","sourceRoot":"","sources":["../src/plan-bundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { ReadinessRunner } from "./admission.js";
2
+ import type { DryMaterializePorts } from "./dry-materialize.js";
3
+ import type { RepositoryObservationPorts } from "./observe-repository.js";
4
+ export declare const PLAN_USAGE = "Usage: launcher-apply-plan plan [--agent codex|claude|cursor] [--adopt-existing <consent.json>] [--help]\n\n--agent selects the authoring agent namespace for generated apply branches.\nThe choice is covered by the change-set and approval digests. Omitting it\npreserves legacy clossys/apply branches and stored change sets. Use the same\nchoice when recomputing an approved bundle.\n\n--adopt-existing reads an explicit repository-to-proof-row mapping for setup.\nIt supplies scope, not approval, and requires Starter 0.3.x. Omit it for apply;\nthe protected setup ledger supplies the frozen scope automatically.\n\nRun in the hub. Computes the apply bundle for the plan file in the working\ntree, reports whether that file is the one committed at HEAD, and prints the\napproval sheet: the bundle and plan digests, whether the plan is committed, the\nmode, the execution authorization, the line to approve, one row for each item of each\nrepository's change set, and every item deferred, refused or skipped.\n\nReads, in the hub: clossys/advisor/plan.json and brief.json, the composed\n.agents/skills/clossys-<role>/SKILL.md of each staffed role and of the Advisor\nvoice, the stored change sets, the inventory, the exact @clossys/advisor and\n@clossys/integrator versions in package.json with their lockfile integrity,\nand the execution authorization committed in\nclossys/advisor/assessment-input.json. Observes the committed default branch\nof each staffed repository's clone, a sibling directory of the hub, and\nnever writes in a clone.\n\nA repository whose change set changes a lockfile and is otherwise satisfied is\ndry-materialized: its committed tree and its change set are written into a\ntemporary directory (never the clone), the lockfile is regenerated there with\ninstall scripts off (V6), and, only when that passes, the hub's installed\n@clossys/integrator provenance check runs on that same tree (V9). The\ntemporary directory is removed before the command ends. A tool that changes\nanything but the lockfile, a submodule, a link that leaves the tree, or an\noversized tree is refused, and no rule names a path, an id or tool output.\n\nWhen the plan file is the one committed at an attached HEAD and that committed\nplan carries an approval for this plan digest, the mode is planned: for each\nrepository the hub decides the binding from what it holds (the approved\nbundle, the stored change sets, the base ledger and tree), and runs its own\nadvisor-execution-readiness for a set that installs packages. A repository is\nplanned only when every check V1 to V9 is satisfied and an approval binds its\nchange set; one the hub refuses is violated (V3, exit 1) or indeterminate\n(exit 2), with a fixed rule, and is never bound. With no such approval the mode\nis report, the checks are as above, and nothing is run for readiness. A\nreport never replaces the stored planned bundle of the same digest: that\nrefusal is \"store-failed\".\n\nWrites only under clossys/.state/apply/: each change set, then the bundle.\nThe sheet holds ids and digests only, never plan or brief text. This\ncomputes and records no approval: the approval is the plan's decision, made\nin the hub, for the subject digest the sheet names. The digests and the change\nsets do not depend on the mode. Nor does the sheet, except its Mode line and,\nunder \"Checks not satisfied\", the V3 row of a repository the hub refuses (and\nthe V9 row of a set that changes a lockfile, when the dry tree ran no\nprovenance check), which only planned mode adds.\n\nEvery refusal is a fixed word and names nothing from the files it read. A\nrefusal before anything is stored ends \"; nothing was stored\"; \"store-failed\"\nand an unexpected failure do not, because some sets may already be stored.\n\nExit codes: 0 = every repository is satisfied, 1 = a repository is violated,\n2 = an input could not be read, the planner refused, or a repository is\nindeterminate. A bundle that was computed is stored and printed whatever the\nexit code.";
5
+ export interface PlanCommandOptions {
6
+ /** The hub root; the process's cwd by default. */
7
+ readonly cwd?: string;
8
+ /** The instant the bundle is computed at; the wall clock by default. */
9
+ readonly now?: () => Date;
10
+ /** How a repository's node id and visibility are read; read-only `gh api` by default. */
11
+ readonly ports?: RepositoryObservationPorts;
12
+ /** This package's version, the producer of every set; read from this package's manifest by default. */
13
+ readonly producerVersion?: string;
14
+ /** Where the sheet goes; standard output by default. */
15
+ readonly stdout?: (text: string) => void;
16
+ /** Where a refusal goes, one line; standard error by default. */
17
+ readonly stderr?: (line: string) => void;
18
+ /** How the package manager and the hub's provenance check are launched for the dry tree; the real runners by default. Not reachable from a CLI. */
19
+ readonly spawn?: Pick<DryMaterializePorts, "lockfileSpawn" | "provenanceSpawn">;
20
+ /** How advisor-execution-readiness is run for a set that installs packages in planned mode; the hub's own bin by default. Not reachable from a CLI. */
21
+ readonly runReadiness?: ReadinessRunner;
22
+ }
23
+ /**
24
+ * The `plan` subcommand. Never throws: every refusal prints one line naming a
25
+ * fixed reason and returns 2, and nothing is written unless a bundle was
26
+ * computed and its sheet rendered.
27
+ */
28
+ export declare function planMain(argv: readonly string[], options?: PlanCommandOptions): Promise<number>;
29
+ //# sourceMappingURL=plan-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-command.d.ts","sourceRoot":"","sources":["../src/plan-command.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAQtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAOhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAM1E,eAAO,MAAM,UAAU,y7HA+DZ,CAAC;AAEZ,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,KAAK,CAAC,EAAE,0BAA0B,CAAC;IAC5C,uGAAuG;IACvG,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mJAAmJ;IACnJ,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,GAAG,iBAAiB,CAAC,CAAC;IAChF,uJAAuJ;IACvJ,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC;CACzC;AAyTD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4FzG"}
@@ -0,0 +1,523 @@
1
+ // `launcher-apply-plan plan` (issue #1178, step 2): the command that runs the
2
+ // pure planner. It reads the hub -- the plan, the brief, the composed skills,
3
+ // the change-set store, the inventory, the engine pins and the execution
4
+ // authorization -- and observes each staffed clone's committed default
5
+ // branch, hands all of it to planApplyBundle(), stores the change sets and
6
+ // then the bundle, and prints the approval sheet.
7
+ //
8
+ // It writes only under clossys/.state/apply/ in the hub, through the store
9
+ // (which refuses a symbolic link in that path), and writes nothing in any
10
+ // clone. It computes and records no approval: no option carries one. The
11
+ // bundle is a report unless the hub's committed plan is approved for this plan
12
+ // digest; then it is planned, and each set's binding is decided from the hub,
13
+ // by admission (planned-bundle.ts). Every refusal is a fixed token that echoes
14
+ // no plan, brief, skill or repository text.
15
+ import { spawnSync } from "node:child_process";
16
+ import { lstatSync, readFileSync, realpathSync } from "node:fs";
17
+ import { dirname, join, resolve, sep } from "node:path";
18
+ import { renderApprovalSheet, ApprovalSheetError } from "./approval-sheet.js";
19
+ import { listStoredChangeSets, storeApplyBundle, storeChangeSet } from "./apply-store.js";
20
+ import { ID_TOKEN, skillPath } from "./change-set-contract.js";
21
+ import { ADVISOR_PACKAGE, INTEGRATOR_PACKAGE, WORKSPACE_INVENTORY_REL, readInventoryRepositories } from "./core.js";
22
+ import { readContractDocument } from "./generated/contract-schema.generated.js";
23
+ import { dryMaterializeBundle } from "./dry-materialize.js";
24
+ import { createNodeHost } from "./host.js";
25
+ import { sameRepository } from "./identity.js";
26
+ import { isUnreadable, readLockfile } from "./lockfile-readers.js";
27
+ import { observeRepository } from "./observe-repository.js";
28
+ import { plannedBundle } from "./planned-bundle.js";
29
+ import { planApplyBundle } from "./plan-bundle.js";
30
+ import { validateAdvisorPlan, validateEngagementBrief } from "./plan-contract.js";
31
+ export const PLAN_USAGE = `Usage: launcher-apply-plan plan [--agent codex|claude|cursor] [--adopt-existing <consent.json>] [--help]
32
+
33
+ --agent selects the authoring agent namespace for generated apply branches.
34
+ The choice is covered by the change-set and approval digests. Omitting it
35
+ preserves legacy clossys/apply branches and stored change sets. Use the same
36
+ choice when recomputing an approved bundle.
37
+
38
+ --adopt-existing reads an explicit repository-to-proof-row mapping for setup.
39
+ It supplies scope, not approval, and requires Starter 0.3.x. Omit it for apply;
40
+ the protected setup ledger supplies the frozen scope automatically.
41
+
42
+ Run in the hub. Computes the apply bundle for the plan file in the working
43
+ tree, reports whether that file is the one committed at HEAD, and prints the
44
+ approval sheet: the bundle and plan digests, whether the plan is committed, the
45
+ mode, the execution authorization, the line to approve, one row for each item of each
46
+ repository's change set, and every item deferred, refused or skipped.
47
+
48
+ Reads, in the hub: clossys/advisor/plan.json and brief.json, the composed
49
+ .agents/skills/clossys-<role>/SKILL.md of each staffed role and of the Advisor
50
+ voice, the stored change sets, the inventory, the exact @clossys/advisor and
51
+ @clossys/integrator versions in package.json with their lockfile integrity,
52
+ and the execution authorization committed in
53
+ clossys/advisor/assessment-input.json. Observes the committed default branch
54
+ of each staffed repository's clone, a sibling directory of the hub, and
55
+ never writes in a clone.
56
+
57
+ A repository whose change set changes a lockfile and is otherwise satisfied is
58
+ dry-materialized: its committed tree and its change set are written into a
59
+ temporary directory (never the clone), the lockfile is regenerated there with
60
+ install scripts off (V6), and, only when that passes, the hub's installed
61
+ @clossys/integrator provenance check runs on that same tree (V9). The
62
+ temporary directory is removed before the command ends. A tool that changes
63
+ anything but the lockfile, a submodule, a link that leaves the tree, or an
64
+ oversized tree is refused, and no rule names a path, an id or tool output.
65
+
66
+ When the plan file is the one committed at an attached HEAD and that committed
67
+ plan carries an approval for this plan digest, the mode is planned: for each
68
+ repository the hub decides the binding from what it holds (the approved
69
+ bundle, the stored change sets, the base ledger and tree), and runs its own
70
+ advisor-execution-readiness for a set that installs packages. A repository is
71
+ planned only when every check V1 to V9 is satisfied and an approval binds its
72
+ change set; one the hub refuses is violated (V3, exit 1) or indeterminate
73
+ (exit 2), with a fixed rule, and is never bound. With no such approval the mode
74
+ is report, the checks are as above, and nothing is run for readiness. A
75
+ report never replaces the stored planned bundle of the same digest: that
76
+ refusal is "store-failed".
77
+
78
+ Writes only under clossys/.state/apply/: each change set, then the bundle.
79
+ The sheet holds ids and digests only, never plan or brief text. This
80
+ computes and records no approval: the approval is the plan's decision, made
81
+ in the hub, for the subject digest the sheet names. The digests and the change
82
+ sets do not depend on the mode. Nor does the sheet, except its Mode line and,
83
+ under "Checks not satisfied", the V3 row of a repository the hub refuses (and
84
+ the V9 row of a set that changes a lockfile, when the dry tree ran no
85
+ provenance check), which only planned mode adds.
86
+
87
+ Every refusal is a fixed word and names nothing from the files it read. A
88
+ refusal before anything is stored ends "; nothing was stored"; "store-failed"
89
+ and an unexpected failure do not, because some sets may already be stored.
90
+
91
+ Exit codes: 0 = every repository is satisfied, 1 = a repository is violated,
92
+ 2 = an input could not be read, the planner refused, or a repository is
93
+ indeterminate. A bundle that was computed is stored and printed whatever the
94
+ exit code.`;
95
+ class PlanRefused extends Error {
96
+ token;
97
+ constructor(token) {
98
+ super(token);
99
+ this.token = token;
100
+ }
101
+ }
102
+ function refuse(token) {
103
+ throw new PlanRefused(token);
104
+ }
105
+ const PLAN_REL = "clossys/advisor/plan.json";
106
+ const BRIEF_REL = "clossys/advisor/brief.json";
107
+ const ASSESSMENT_REL = "clossys/advisor/assessment-input.json";
108
+ const ADVISOR_VOICE = "advisor";
109
+ const EXACT_VERSION = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?$/u;
110
+ const INTEGRITY = /^sha512-[A-Za-z0-9+/]{86}==$/u;
111
+ const OBJECT_ID = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u;
112
+ const VISIBILITIES = ["private", "internal", "public"];
113
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
114
+ // ---------------------------------------------------------------------------
115
+ // reading the hub
116
+ /** Reads a regular file below the hub, never through a symbolic link; the bytes, or null. */
117
+ function readHubFile(hub, rel) {
118
+ try {
119
+ const path = join(hub, rel);
120
+ if (!lstatSync(path).isFile())
121
+ return null;
122
+ const real = realpathSync(path);
123
+ if (!real.startsWith(`${hub}${sep}`))
124
+ return null;
125
+ return readFileSync(path);
126
+ }
127
+ catch {
128
+ return null;
129
+ }
130
+ }
131
+ function readStrictJson(bytes) {
132
+ return readContractDocument(bytes);
133
+ }
134
+ const DROPPED_GIT_ENV = [
135
+ "GIT_DIR",
136
+ "GIT_WORK_TREE",
137
+ "GIT_INDEX_FILE",
138
+ "GIT_OBJECT_DIRECTORY",
139
+ "GIT_ALTERNATE_OBJECT_DIRECTORIES",
140
+ "GIT_COMMON_DIR",
141
+ "GIT_NAMESPACE",
142
+ "GIT_PREFIX",
143
+ "GIT_SHALLOW_FILE",
144
+ "GIT_GRAFT_FILE",
145
+ ];
146
+ function runGit(cwd, args) {
147
+ const env = { ...process.env };
148
+ for (const name of DROPPED_GIT_ENV)
149
+ delete env[name];
150
+ env.GIT_LITERAL_PATHSPECS = "1";
151
+ env.GIT_TERMINAL_PROMPT = "0";
152
+ env.GIT_OPTIONAL_LOCKS = "0";
153
+ const run = spawnSync("git", ["--no-replace-objects", ...args], { cwd, env, stdio: ["ignore", "pipe", "ignore"], maxBuffer: 64 * 1024 * 1024 });
154
+ if (run.error !== undefined || run.stdout === null || run.stdout === undefined)
155
+ return { status: null, stdout: Buffer.alloc(0) };
156
+ return { status: run.status, stdout: run.stdout };
157
+ }
158
+ /**
159
+ * The bytes of a regular, non-executable file at `rel` in the tree of the
160
+ * hub's HEAD, or null. HEAD must be attached to a branch, the path must be one
161
+ * blob of mode 100644 (a symbolic link is refused), and the read goes through
162
+ * the blob's object id, so the working tree is never consulted.
163
+ */
164
+ function readCommittedBlob(hub, rel) {
165
+ const head = runGit(hub, ["symbolic-ref", "-q", "HEAD"]);
166
+ if (head.status !== 0 || !head.stdout.toString("utf8").trim().startsWith("refs/heads/"))
167
+ return null;
168
+ const listed = runGit(hub, ["ls-tree", "-z", "HEAD", "--", rel]);
169
+ if (listed.status !== 0)
170
+ return null;
171
+ const records = listed.stdout.toString("utf8").split("\0").filter((record) => record !== "");
172
+ if (records.length !== 1)
173
+ return null;
174
+ const record = records[0];
175
+ const tab = record.indexOf("\t");
176
+ if (tab === -1 || record.slice(tab + 1) !== rel)
177
+ return null;
178
+ const [mode, type, oid, ...rest] = record.slice(0, tab).split(" ");
179
+ if (mode !== "100644" || type !== "blob" || oid === undefined || rest.length > 0 || !OBJECT_ID.test(oid))
180
+ return null;
181
+ const blob = runGit(hub, ["cat-file", "blob", oid]);
182
+ return blob.status === 0 ? blob.stdout : null;
183
+ }
184
+ /** The hub inventory's repository ids, read through readHubFile (no link, nothing outside the hub); an absent file lists none. */
185
+ function readInventory(hub) {
186
+ const path = join(hub, WORKSPACE_INVENTORY_REL);
187
+ try {
188
+ if (lstatSync(path, { throwIfNoEntry: false }) === undefined)
189
+ return [];
190
+ }
191
+ catch {
192
+ return refuse("inventory-unreadable");
193
+ }
194
+ if (readHubFile(hub, WORKSPACE_INVENTORY_REL) === null)
195
+ return refuse("inventory-unreadable");
196
+ try {
197
+ return readInventoryRepositories(createNodeHost(hub), path, "the hub inventory");
198
+ }
199
+ catch {
200
+ return refuse("inventory-unreadable");
201
+ }
202
+ }
203
+ function readPlan(hub) {
204
+ const bytes = readHubFile(hub, PLAN_REL);
205
+ if (bytes === null)
206
+ return refuse("plan-unreadable");
207
+ let document;
208
+ try {
209
+ document = readStrictJson(bytes);
210
+ }
211
+ catch {
212
+ return refuse("plan-unreadable");
213
+ }
214
+ if (!validateAdvisorPlan(document).valid)
215
+ return refuse("plan-invalid");
216
+ return { plan: document, bytes };
217
+ }
218
+ function readBrief(hub) {
219
+ const bytes = readHubFile(hub, BRIEF_REL);
220
+ if (bytes === null)
221
+ return refuse("brief-unreadable");
222
+ let document;
223
+ try {
224
+ document = readStrictJson(bytes);
225
+ }
226
+ catch {
227
+ return refuse("brief-unreadable");
228
+ }
229
+ if (!validateEngagementBrief(document).valid)
230
+ return refuse("brief-invalid");
231
+ return document;
232
+ }
233
+ /** The composed skill of every staffed role, and of the Advisor voice, as UTF-8 text. */
234
+ function readSkills(hub, plan) {
235
+ const roles = [...new Set([...(plan.staffing ?? []).flatMap((entry) => entry.roles), ADVISOR_VOICE])];
236
+ const decoder = new TextDecoder("utf-8", { fatal: true });
237
+ return roles.map((role) => {
238
+ if (!ID_TOKEN.test(role))
239
+ return refuse("skill-unreadable");
240
+ const bytes = readHubFile(hub, skillPath(role));
241
+ if (bytes === null)
242
+ return refuse("skill-unreadable");
243
+ try {
244
+ return { role, content: decoder.decode(bytes) };
245
+ }
246
+ catch {
247
+ return refuse("skill-unreadable");
248
+ }
249
+ });
250
+ }
251
+ /**
252
+ * The hub's pin of one engine package: the exact version its package.json
253
+ * names, and the integrity the hub's lockfile resolves that version to.
254
+ */
255
+ function readPin(manifest, lockfile, name) {
256
+ if (isUnreadable(lockfile))
257
+ return refuse("engine-pin-unreadable");
258
+ const buckets = ["dependencies", "devDependencies"].map((bucket) => manifest[bucket]).filter((bucket) => bucket !== undefined);
259
+ const declared = buckets.flatMap((bucket) => (isRecord(bucket) && Object.hasOwn(bucket, name) ? [bucket[name]] : []));
260
+ if (declared.length !== 1)
261
+ return refuse("engine-pin-unreadable");
262
+ const version = declared[0];
263
+ if (typeof version !== "string" || !EXACT_VERSION.test(version))
264
+ return refuse("engine-pin-unreadable");
265
+ const resolved = lockfile.root.filter((entry) => entry.name === name && !entry.link);
266
+ if (resolved.length !== 1 || resolved[0].version !== version)
267
+ return refuse("engine-pin-unreadable");
268
+ const integrity = resolved[0].integrity;
269
+ if (integrity === null || !INTEGRITY.test(integrity))
270
+ return refuse("engine-pin-unreadable");
271
+ return { name, version, integrity };
272
+ }
273
+ function readPins(hub) {
274
+ const manifestBytes = readHubFile(hub, "package.json");
275
+ if (manifestBytes === null)
276
+ return refuse("engine-pin-unreadable");
277
+ let manifest;
278
+ try {
279
+ manifest = readStrictJson(manifestBytes);
280
+ }
281
+ catch {
282
+ return refuse("engine-pin-unreadable");
283
+ }
284
+ if (!isRecord(manifest))
285
+ return refuse("engine-pin-unreadable");
286
+ const candidates = [
287
+ { format: "npm", rel: "package-lock.json" },
288
+ { format: "pnpm", rel: "pnpm-lock.yaml" },
289
+ ];
290
+ const present = candidates.flatMap((candidate) => {
291
+ const bytes = readHubFile(hub, candidate.rel);
292
+ return bytes === null ? [] : [{ format: candidate.format, bytes }];
293
+ });
294
+ if (present.length !== 1)
295
+ return refuse("engine-pin-unreadable");
296
+ let text;
297
+ try {
298
+ text = new TextDecoder("utf-8", { fatal: true }).decode(present[0].bytes);
299
+ }
300
+ catch {
301
+ return refuse("engine-pin-unreadable");
302
+ }
303
+ const lockfile = readLockfile(present[0].format, text);
304
+ return { engine: readPin(manifest, lockfile, ADVISOR_PACKAGE), integrator: readPin(manifest, lockfile, INTEGRATOR_PACKAGE) };
305
+ }
306
+ /**
307
+ * The execution authorization committed at the hub's HEAD, or null when there
308
+ * is no committed assessment or it holds no `engagement.executionAuthorization`.
309
+ * Only the two fields the bundle records are judged: a value that is present
310
+ * and is not an object holding a string `planDigest` and `expiresAt` refuses.
311
+ * Whether it permits the plan's acts is the planner's V3 check, and admission's.
312
+ */
313
+ function readAuthorization(hub) {
314
+ const bytes = readCommittedBlob(hub, ASSESSMENT_REL);
315
+ if (bytes === null)
316
+ return null;
317
+ let document;
318
+ try {
319
+ document = readStrictJson(bytes);
320
+ }
321
+ catch {
322
+ return refuse("authorization-malformed");
323
+ }
324
+ if (!isRecord(document))
325
+ return refuse("authorization-malformed");
326
+ const engagement = document.engagement;
327
+ if (engagement === undefined)
328
+ return null;
329
+ if (!isRecord(engagement))
330
+ return refuse("authorization-malformed");
331
+ const authorization = engagement.executionAuthorization;
332
+ if (authorization === undefined)
333
+ return null;
334
+ if (!isRecord(authorization) || typeof authorization.planDigest !== "string" || typeof authorization.expiresAt !== "string")
335
+ return refuse("authorization-malformed");
336
+ return { planDigest: authorization.planDigest, expiresAt: authorization.expiresAt };
337
+ }
338
+ function readProducerVersion(options) {
339
+ if (options.producerVersion !== undefined)
340
+ return options.producerVersion;
341
+ try {
342
+ const manifest = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8"));
343
+ if (isRecord(manifest) && typeof manifest.version === "string" && manifest.version !== "")
344
+ return manifest.version;
345
+ }
346
+ catch {
347
+ /* handled below */
348
+ }
349
+ return refuse("producer-unreadable");
350
+ }
351
+ // ---------------------------------------------------------------------------
352
+ // observing the clones
353
+ function ghApi(id, field) {
354
+ const run = spawnSync("gh", ["api", `repos/${id}`, "--jq", field], { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"], timeout: 60_000 });
355
+ if (run.status !== 0)
356
+ throw new Error("gh api failed");
357
+ return run.stdout.trim();
358
+ }
359
+ const DEFAULT_PORTS = {
360
+ nodeId: (id) => {
361
+ if (!id.includes("/"))
362
+ throw new Error("no owner");
363
+ return ghApi(id, ".node_id");
364
+ },
365
+ visibility: (id) => {
366
+ if (!id.includes("/"))
367
+ throw new Error("no owner");
368
+ const visibility = ghApi(id, ".visibility");
369
+ if (!VISIBILITIES.includes(visibility))
370
+ throw new Error("unknown visibility");
371
+ return visibility;
372
+ },
373
+ };
374
+ /** The sibling directory of the hub that holds a repository's clone. */
375
+ const cloneOf = (hub, id) => resolve(dirname(hub), id.slice(id.indexOf("/") + 1));
376
+ async function observeStaffed(hub, plan, inventory, ports) {
377
+ const observations = [];
378
+ const seen = new Set();
379
+ for (const entry of plan.staffing ?? []) {
380
+ const id = entry.repository;
381
+ if (seen.has(id))
382
+ continue;
383
+ seen.add(id);
384
+ if (!inventory.some((listed) => sameRepository(listed, id))) {
385
+ observations.push({ id, skipped: "not-in-inventory", verdict: "indeterminate" });
386
+ continue;
387
+ }
388
+ observations.push(await observeRepository({ id, clone: cloneOf(hub, id), ports }));
389
+ }
390
+ return observations;
391
+ }
392
+ // ---------------------------------------------------------------------------
393
+ // the command
394
+ function exitCodeOf(bundle) {
395
+ const verdicts = bundle.repositories.map((entry) => entry.verdict);
396
+ if (verdicts.includes("violated"))
397
+ return 1;
398
+ return verdicts.includes("indeterminate") ? 2 : 0;
399
+ }
400
+ function store(hub, result) {
401
+ try {
402
+ for (const set of result.changeSets)
403
+ storeChangeSet(hub, set);
404
+ storeApplyBundle(hub, result.bundle);
405
+ }
406
+ catch {
407
+ refuse("store-failed");
408
+ }
409
+ }
410
+ /**
411
+ * The `plan` subcommand. Never throws: every refusal prints one line naming a
412
+ * fixed reason and returns 2, and nothing is written unless a bundle was
413
+ * computed and its sheet rendered.
414
+ */
415
+ export async function planMain(argv, options = {}) {
416
+ const stdout = options.stdout ?? ((text) => void process.stdout.write(text));
417
+ const stderr = options.stderr ?? ((line) => console.error(line));
418
+ try {
419
+ if (argv.length === 1 && (argv[0] === "--help" || argv[0] === "-h")) {
420
+ stdout(`${PLAN_USAGE}\n`);
421
+ return 0;
422
+ }
423
+ let agentProvenance;
424
+ let adoptionPath;
425
+ for (let index = 0; index < argv.length; index += 2) {
426
+ const flag = argv[index];
427
+ const value = argv[index + 1];
428
+ if (flag === "--agent" && agentProvenance === undefined && value !== undefined && ["codex", "claude", "cursor"].includes(value))
429
+ agentProvenance = value;
430
+ else if (flag === "--adopt-existing" && adoptionPath === undefined && value !== undefined)
431
+ adoptionPath = value;
432
+ else
433
+ return refuse("usage");
434
+ }
435
+ let existingDeclarationAdoptions;
436
+ if (adoptionPath !== undefined) {
437
+ try {
438
+ existingDeclarationAdoptions = readContractDocument(readFileSync(adoptionPath));
439
+ }
440
+ catch {
441
+ return refuse("usage");
442
+ }
443
+ }
444
+ let hub;
445
+ try {
446
+ hub = realpathSync(options.cwd ?? process.cwd());
447
+ }
448
+ catch {
449
+ return refuse("hub-unreadable");
450
+ }
451
+ const { plan, bytes: planBytes } = readPlan(hub);
452
+ const hubBrief = readBrief(hub);
453
+ const skills = readSkills(hub, plan);
454
+ let heldChangeSets;
455
+ try {
456
+ heldChangeSets = listStoredChangeSets(hub);
457
+ }
458
+ catch {
459
+ return refuse("store-unreadable");
460
+ }
461
+ const inventory = readInventory(hub);
462
+ const { engine, integrator } = readPins(hub);
463
+ const authorization = readAuthorization(hub);
464
+ const committedPlan = readCommittedBlob(hub, PLAN_REL);
465
+ const planCommitted = committedPlan !== null && committedPlan.equals(planBytes);
466
+ const producerVersion = readProducerVersion(options);
467
+ const repositories = await observeStaffed(hub, plan, inventory, options.ports ?? DEFAULT_PORTS);
468
+ const computedAt = (options.now ?? (() => new Date()))().toISOString();
469
+ let result;
470
+ try {
471
+ result = planApplyBundle({
472
+ plan,
473
+ hubBrief,
474
+ repositories,
475
+ skills,
476
+ producer: { name: "@clossys/launcher", version: producerVersion },
477
+ engine,
478
+ integrator,
479
+ planCommitted,
480
+ authorization,
481
+ computedAt,
482
+ heldChangeSets,
483
+ ...(agentProvenance !== undefined ? { agentProvenance } : {}),
484
+ ...(existingDeclarationAdoptions !== undefined ? { existingDeclarationAdoptions } : {}),
485
+ });
486
+ }
487
+ catch {
488
+ return refuse("planner-refused");
489
+ }
490
+ // The part of V6 the planner cannot run, and V9: on a temporary tree, never in a clone.
491
+ try {
492
+ result = await dryMaterializeBundle(result, { hub, cloneFor: (id) => cloneOf(hub, id), now: options.now ?? (() => new Date()), ports: { lockfileSpawn: options.spawn?.lockfileSpawn, provenanceSpawn: options.spawn?.provenanceSpawn } });
493
+ }
494
+ catch {
495
+ return refuse("planner-refused");
496
+ }
497
+ // An approval that binds exactly what was planned: only from the hub's committed, approved plan, only through admission.
498
+ try {
499
+ result = await plannedBundle(result, { hub, cloneFor: (id) => cloneOf(hub, id), heldChangeSets, now: options.now ?? (() => new Date()), runReadiness: options.runReadiness });
500
+ }
501
+ catch {
502
+ return refuse("planner-refused");
503
+ }
504
+ let sheet;
505
+ try {
506
+ sheet = renderApprovalSheet({ bundle: result.bundle, changeSets: result.changeSets });
507
+ }
508
+ catch (cause) {
509
+ if (cause instanceof ApprovalSheetError)
510
+ return refuse("sheet-refused");
511
+ throw cause;
512
+ }
513
+ store(hub, result);
514
+ stdout(sheet);
515
+ return exitCodeOf(result.bundle);
516
+ }
517
+ catch (cause) {
518
+ const token = cause instanceof PlanRefused ? cause.token : "failed";
519
+ stderr(`launcher-apply-plan plan: ${token}${token === "store-failed" ? "" : "; nothing was stored"}`);
520
+ return 2;
521
+ }
522
+ }
523
+ //# sourceMappingURL=plan-command.js.map