@canonical/pragma-cli 0.35.0 → 0.37.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 (295) hide show
  1. package/README.md +2 -2
  2. package/bundled-skills/add-standard/SKILL.md +338 -0
  3. package/bundled-skills/adoption-a1-styles/SKILL.md +269 -0
  4. package/bundled-skills/adoption-a2-components/SKILL.md +291 -0
  5. package/bundled-skills/adoption-a3-forms/SKILL.md +260 -0
  6. package/bundled-skills/anatomy-author/ANATOMY_DSL_SPEC.md +406 -0
  7. package/bundled-skills/anatomy-author/SKILL.md +1226 -0
  8. package/bundled-skills/design-auditor/SKILL.md +455 -0
  9. package/bundled-skills/implement-component/SKILL.md +333 -0
  10. package/bundled-skills/specify-component/SKILL.md +331 -0
  11. package/bundled-skills/specify-pattern/SKILL.md +292 -0
  12. package/dist/package.json +24 -20
  13. package/dist/pragma.conf.js +266 -34
  14. package/dist/pragma.conf.js.map +1 -1
  15. package/dist/src/bin.js +1 -1
  16. package/dist/src/bin.js.map +1 -1
  17. package/dist/src/capabilities/capabilities/hints.js +1 -1
  18. package/dist/src/capabilities/capabilities/hints.js.map +1 -1
  19. package/dist/src/capabilities/colophon/colophon.render.js +1 -1
  20. package/dist/src/capabilities/colophon/colophon.render.js.map +1 -1
  21. package/dist/src/capabilities/create/create.verb.js +2 -1
  22. package/dist/src/capabilities/create/create.verb.js.map +1 -1
  23. package/dist/src/capabilities/create/createSurface.generated.js +23 -1
  24. package/dist/src/capabilities/create/createSurface.generated.js.map +1 -1
  25. package/dist/src/capabilities/create/mount.js +4 -3
  26. package/dist/src/capabilities/create/mount.js.map +1 -1
  27. package/dist/src/capabilities/doctor/checks/checkNodeVersion.js +11 -6
  28. package/dist/src/capabilities/doctor/checks/checkNodeVersion.js.map +1 -1
  29. package/dist/src/capabilities/doctor/checks/checkPackageRefs.js +60 -4
  30. package/dist/src/capabilities/doctor/checks/checkPackageRefs.js.map +1 -1
  31. package/dist/src/capabilities/doctor/checks/checkShellCompletions.js +8 -8
  32. package/dist/src/capabilities/doctor/checks/checkShellCompletions.js.map +1 -1
  33. package/dist/src/capabilities/doctor/checks/harnessInventory.js +195 -0
  34. package/dist/src/capabilities/doctor/checks/harnessInventory.js.map +1 -0
  35. package/dist/src/capabilities/doctor/checks/index.js +6 -6
  36. package/dist/src/capabilities/doctor/checks/isSupportedNodeVersion.js +38 -0
  37. package/dist/src/capabilities/doctor/checks/isSupportedNodeVersion.js.map +1 -0
  38. package/dist/src/capabilities/doctor/checks/targetHealth.js +194 -50
  39. package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -1
  40. package/dist/src/capabilities/doctor/doctor.render.js +43 -64
  41. package/dist/src/capabilities/doctor/doctor.render.js.map +1 -1
  42. package/dist/src/capabilities/doctor/doctor.verb.js +6 -2
  43. package/dist/src/capabilities/doctor/doctor.verb.js.map +1 -1
  44. package/dist/src/capabilities/doctor/runChecks.js +14 -11
  45. package/dist/src/capabilities/doctor/runChecks.js.map +1 -1
  46. package/dist/src/capabilities/graph/query.render.js +2 -2
  47. package/dist/src/capabilities/graph/query.render.js.map +1 -1
  48. package/dist/src/capabilities/info/collectInfo.js +8 -2
  49. package/dist/src/capabilities/info/collectInfo.js.map +1 -1
  50. package/dist/src/capabilities/info/info.render.js +6 -2
  51. package/dist/src/capabilities/info/info.render.js.map +1 -1
  52. package/dist/src/capabilities/prompt/prompt.render.js +2 -2
  53. package/dist/src/capabilities/prompt/prompt.render.js.map +1 -1
  54. package/dist/src/capabilities/setup/buildPlan.js +43 -39
  55. package/dist/src/capabilities/setup/buildPlan.js.map +1 -1
  56. package/dist/src/capabilities/setup/mode.js +2 -2
  57. package/dist/src/capabilities/setup/operations/index.js +4 -4
  58. package/dist/src/capabilities/setup/operations/index.js.map +1 -1
  59. package/dist/src/capabilities/setup/operations/setupCompletions.js +6 -2
  60. package/dist/src/capabilities/setup/operations/setupCompletions.js.map +1 -1
  61. package/dist/src/capabilities/setup/operations/setupConfig.js +4 -2
  62. package/dist/src/capabilities/setup/operations/setupConfig.js.map +1 -1
  63. package/dist/src/capabilities/setup/operations/setupGenerator.js +156 -58
  64. package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -1
  65. package/dist/src/capabilities/setup/operations/setupLsp.js +136 -38
  66. package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -1
  67. package/dist/src/capabilities/setup/operations/setupMcp.js +101 -52
  68. package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -1
  69. package/dist/src/capabilities/setup/operations/setupSkills.js +329 -49
  70. package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -1
  71. package/dist/src/capabilities/setup/plan.js.map +1 -1
  72. package/dist/src/capabilities/setup/plan.render.js +144 -66
  73. package/dist/src/capabilities/setup/plan.render.js.map +1 -1
  74. package/dist/src/capabilities/setup/setup.render.js +1 -1
  75. package/dist/src/capabilities/setup/setup.verb.js +165 -63
  76. package/dist/src/capabilities/setup/setup.verb.js.map +1 -1
  77. package/dist/src/capabilities/setup/targets.js +122 -51
  78. package/dist/src/capabilities/setup/targets.js.map +1 -1
  79. package/dist/src/capabilities/shared/index.js +7 -6
  80. package/dist/src/capabilities/shared/index.js.map +1 -1
  81. package/dist/src/capabilities/shared/packageManager.js +300 -54
  82. package/dist/src/capabilities/shared/packageManager.js.map +1 -1
  83. package/dist/src/capabilities/skill/discover.js +97 -11
  84. package/dist/src/capabilities/skill/discover.js.map +1 -1
  85. package/dist/src/capabilities/skill/render.js +2 -2
  86. package/dist/src/capabilities/skill/render.js.map +1 -1
  87. package/dist/src/capabilities/sources/installSkills.js +145 -3
  88. package/dist/src/capabilities/sources/installSkills.js.map +1 -1
  89. package/dist/src/capabilities/sources/runUpdate.js +68 -2
  90. package/dist/src/capabilities/sources/runUpdate.js.map +1 -1
  91. package/dist/src/capabilities/sources/update.verb.js +3 -3
  92. package/dist/src/capabilities/sources/update.verb.js.map +1 -1
  93. package/dist/src/capabilities/upgrade/runUpgrade.js +43 -7
  94. package/dist/src/capabilities/upgrade/runUpgrade.js.map +1 -1
  95. package/dist/src/capabilities/upgrade/upgrade.render.js +10 -2
  96. package/dist/src/capabilities/upgrade/upgrade.render.js.map +1 -1
  97. package/dist/src/constants.js +13 -2
  98. package/dist/src/constants.js.map +1 -1
  99. package/dist/src/kernel/index.js +11 -2
  100. package/dist/src/kernel/index.js.map +1 -1
  101. package/dist/src/kernel/interactivity.js +68 -0
  102. package/dist/src/kernel/interactivity.js.map +1 -0
  103. package/dist/src/kernel/packs/renderPack.js +3 -3
  104. package/dist/src/kernel/packs/renderPack.js.map +1 -1
  105. package/dist/src/kernel/packs/resolveEntity.js +63 -12
  106. package/dist/src/kernel/packs/resolveEntity.js.map +1 -1
  107. package/dist/src/kernel/packs/runBodies.js +57 -4
  108. package/dist/src/kernel/packs/runBodies.js.map +1 -1
  109. package/dist/src/kernel/packs/schema.js +54 -2
  110. package/dist/src/kernel/packs/schema.js.map +1 -1
  111. package/dist/src/kernel/packs/sparql/applyFilters.js +104 -5
  112. package/dist/src/kernel/packs/sparql/applyFilters.js.map +1 -1
  113. package/dist/src/kernel/packs/sparql/buildLookupQuery.js +310 -43
  114. package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -1
  115. package/dist/src/kernel/packs/types.js.map +1 -1
  116. package/dist/src/kernel/project/cli/buildProgram.js +1 -1
  117. package/dist/src/kernel/project/cli/buildProgram.js.map +1 -1
  118. package/dist/src/kernel/project/cli/dispatch.js +46 -24
  119. package/dist/src/kernel/project/cli/dispatch.js.map +1 -1
  120. package/dist/src/kernel/project/cli/globalFlags.js +4 -1
  121. package/dist/src/kernel/project/cli/globalFlags.js.map +1 -1
  122. package/dist/src/kernel/project/cli/helpFormat.js +1 -2
  123. package/dist/src/kernel/project/cli/helpFormat.js.map +1 -1
  124. package/dist/src/kernel/project/cli/rootHelp.js +42 -9
  125. package/dist/src/kernel/project/cli/rootHelp.js.map +1 -1
  126. package/dist/src/kernel/project/mcp/registerVerb.js +16 -1
  127. package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -1
  128. package/dist/src/kernel/render/renderers.js +1 -1
  129. package/dist/src/kernel/render/style.js +29 -9
  130. package/dist/src/kernel/render/style.js.map +1 -1
  131. package/dist/src/kernel/render/vocabulary.js +174 -0
  132. package/dist/src/kernel/render/vocabulary.js.map +1 -0
  133. package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js +2 -3
  134. package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js.map +1 -1
  135. package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js +1 -1
  136. package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js.map +1 -1
  137. package/dist/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.js +4 -0
  138. package/dist/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.js.map +1 -0
  139. package/dist/src/kernel/runtime/graphpack/embedded.js +13 -6
  140. package/dist/src/kernel/runtime/graphpack/embedded.js.map +1 -1
  141. package/dist/src/kernel/runtime/graphpack/read.js +14 -9
  142. package/dist/src/kernel/runtime/graphpack/read.js.map +1 -1
  143. package/dist/src/kernel/runtime/loadSession.js +3 -1
  144. package/dist/src/kernel/runtime/loadSession.js.map +1 -1
  145. package/dist/src/kernel/runtime/probe.js +1 -1
  146. package/dist/src/kernel/runtime/probe.js.map +1 -1
  147. package/dist/src/kernel/runtime/refs/parseRef.js +17 -1
  148. package/dist/src/kernel/runtime/refs/parseRef.js.map +1 -1
  149. package/dist/src/kernel/runtime/refs/resolve.js +9 -3
  150. package/dist/src/kernel/runtime/refs/resolve.js.map +1 -1
  151. package/dist/src/kernel/spec/emitReference.js +1 -1
  152. package/dist/src/kernel/spec/emitReference.js.map +1 -1
  153. package/package.json +24 -20
  154. package/pragma.conf.ts +272 -34
  155. package/src/bin.ts +8 -1
  156. package/src/capabilities/block.parity.test.ts +25 -11
  157. package/src/capabilities/block.shipped.exec.test.ts +282 -0
  158. package/src/capabilities/block.tierRank.exec.test.ts +300 -0
  159. package/src/capabilities/capabilities/hints.ts +1 -1
  160. package/src/capabilities/colophon/colophon.render.ts +1 -2
  161. package/src/capabilities/colophon/colophon.test.ts +2 -2
  162. package/src/capabilities/config/collectConfigShow.test.ts +1 -0
  163. package/src/capabilities/create/byteEquality.test.ts +28 -1
  164. package/src/capabilities/create/create.test.ts +1 -0
  165. package/src/capabilities/create/create.verb.ts +2 -1
  166. package/src/capabilities/create/createGrammar.test.ts +5 -2
  167. package/src/capabilities/create/createSurface.generated.ts +23 -1
  168. package/src/capabilities/create/crossCli.subprocess.test.ts +10 -3
  169. package/src/capabilities/create/mount.ts +3 -3
  170. package/src/capabilities/distribution.parity.test.ts +4 -0
  171. package/src/capabilities/doctor/checks/checkNodeVersion.test.ts +49 -0
  172. package/src/capabilities/doctor/checks/checkNodeVersion.ts +11 -7
  173. package/src/capabilities/doctor/checks/checkPackageRefs.ts +69 -4
  174. package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +6 -4
  175. package/src/capabilities/doctor/checks/checkShellCompletions.ts +8 -8
  176. package/src/capabilities/doctor/checks/harnessInventory.test.ts +219 -0
  177. package/src/capabilities/doctor/checks/harnessInventory.ts +298 -0
  178. package/src/capabilities/doctor/checks/index.ts +6 -6
  179. package/src/capabilities/doctor/checks/isSupportedNodeVersion.test.ts +111 -0
  180. package/src/capabilities/doctor/checks/isSupportedNodeVersion.ts +34 -0
  181. package/src/capabilities/doctor/checks/mcpCommand.test.ts +7 -1
  182. package/src/capabilities/doctor/checks/targetHealth.ts +229 -59
  183. package/src/capabilities/doctor/doctor.render.test.ts +108 -32
  184. package/src/capabilities/doctor/doctor.render.ts +56 -80
  185. package/src/capabilities/doctor/doctor.test.ts +247 -35
  186. package/src/capabilities/doctor/doctor.verb.ts +7 -2
  187. package/src/capabilities/doctor/runChecks.ts +14 -11
  188. package/src/capabilities/doctor/types.ts +15 -24
  189. package/src/capabilities/emptyRecovery.test.ts +10 -2
  190. package/src/capabilities/graph/query.render.ts +2 -2
  191. package/src/capabilities/info/collectInfo.ts +8 -1
  192. package/src/capabilities/info/info.render.ts +6 -2
  193. package/src/capabilities/info/info.test.ts +37 -1
  194. package/src/capabilities/info/types.ts +10 -2
  195. package/src/capabilities/lazy.test.ts +26 -2
  196. package/src/capabilities/listLookup.shipped.exec.test.ts +340 -0
  197. package/src/capabilities/prompt/prompt.render.ts +2 -2
  198. package/src/capabilities/renderVocabularySync.test.ts +82 -0
  199. package/src/capabilities/resources/resources.test.ts +38 -2
  200. package/src/capabilities/scopeTypeSync.test.ts +29 -15
  201. package/src/capabilities/setup/buildPlan.ts +45 -41
  202. package/src/capabilities/setup/index.ts +1 -1
  203. package/src/capabilities/setup/mode.ts +2 -2
  204. package/src/capabilities/setup/operations/index.ts +6 -1
  205. package/src/capabilities/setup/operations/setupCompletions.ts +9 -2
  206. package/src/capabilities/setup/operations/setupConfig.ts +7 -2
  207. package/src/capabilities/setup/operations/setupGenerator.ts +227 -84
  208. package/src/capabilities/setup/operations/setupLsp.ts +203 -38
  209. package/src/capabilities/setup/operations/setupMcp.ts +139 -62
  210. package/src/capabilities/setup/operations/setupSkills.ts +399 -60
  211. package/src/capabilities/setup/plan.render.ts +171 -76
  212. package/src/capabilities/setup/plan.ts +17 -12
  213. package/src/capabilities/setup/setup.mcp.correctness.test.ts +9 -9
  214. package/src/capabilities/setup/setup.render.test.ts +50 -36
  215. package/src/capabilities/setup/setup.render.ts +1 -1
  216. package/src/capabilities/setup/setup.test.ts +1126 -50
  217. package/src/capabilities/setup/setup.verb.ts +174 -68
  218. package/src/capabilities/setup/targets.ts +138 -60
  219. package/src/capabilities/setup/types.ts +10 -18
  220. package/src/capabilities/shared/index.ts +18 -6
  221. package/src/capabilities/shared/packageManager.test.ts +421 -6
  222. package/src/capabilities/shared/packageManager.ts +394 -59
  223. package/src/capabilities/skill/bundledSkills.test.ts +347 -0
  224. package/src/capabilities/skill/discover.ts +100 -11
  225. package/src/capabilities/skill/render.ts +2 -2
  226. package/src/capabilities/skill/skill.test.ts +17 -4
  227. package/src/capabilities/sources/installSkills.ts +181 -3
  228. package/src/capabilities/sources/runUpdate.ts +78 -2
  229. package/src/capabilities/sources/sources.test.ts +228 -0
  230. package/src/capabilities/sources/update.verb.ts +3 -3
  231. package/src/capabilities/surface.test.ts +14 -6
  232. package/src/capabilities/upgrade/runUpgrade.ts +45 -6
  233. package/src/capabilities/upgrade/types.ts +10 -2
  234. package/src/capabilities/upgrade/upgrade.render.ts +9 -2
  235. package/src/capabilities/upgrade/upgrade.test.ts +72 -0
  236. package/src/constants.ts +14 -1
  237. package/src/identity.test.ts +18 -5
  238. package/src/kernel/completion/entitySource.test.ts +15 -2
  239. package/src/kernel/completion/safety.test.ts +16 -9
  240. package/src/kernel/config/defaults.test.ts +19 -3
  241. package/src/kernel/config/readConfig.test.ts +1 -1
  242. package/src/kernel/index.ts +11 -2
  243. package/src/kernel/interactivity.test.ts +76 -0
  244. package/src/kernel/interactivity.ts +69 -0
  245. package/src/kernel/packs/compile.test.ts +92 -0
  246. package/src/kernel/packs/renderPack.ts +3 -3
  247. package/src/kernel/packs/resolveEntity.test.ts +75 -14
  248. package/src/kernel/packs/resolveEntity.ts +88 -24
  249. package/src/kernel/packs/runBodies.ts +84 -19
  250. package/src/kernel/packs/schema.ts +60 -4
  251. package/src/kernel/packs/sparql/applyFilters.ts +125 -4
  252. package/src/kernel/packs/sparql/buildLookupQuery.test.ts +290 -0
  253. package/src/kernel/packs/sparql/buildLookupQuery.ts +327 -45
  254. package/src/kernel/packs/toolDescription.test.ts +35 -1
  255. package/src/kernel/packs/types.ts +125 -2
  256. package/src/kernel/project/cli/buildProgram.test.ts +73 -2
  257. package/src/kernel/project/cli/buildProgram.ts +8 -1
  258. package/src/kernel/project/cli/dispatch.test.ts +5 -4
  259. package/src/kernel/project/cli/dispatch.ts +48 -25
  260. package/src/kernel/project/cli/globalFlags.ts +4 -1
  261. package/src/kernel/project/cli/helpFormat.ts +1 -2
  262. package/src/kernel/project/cli/rootHelp.ts +44 -8
  263. package/src/kernel/project/mcp/registerVerb.ts +20 -1
  264. package/src/kernel/render/prefixes.test.ts +2 -0
  265. package/src/kernel/render/renderers.ts +1 -1
  266. package/src/kernel/render/style.ts +32 -9
  267. package/src/kernel/render/vocabulary.ts +276 -0
  268. package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +2 -3
  269. package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +1 -1
  270. package/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.ts +3 -0
  271. package/src/kernel/runtime/graphpack/embedded.ts +14 -6
  272. package/src/kernel/runtime/graphpack/graphpack.test.ts +31 -5
  273. package/src/kernel/runtime/graphpack/read.ts +14 -12
  274. package/src/kernel/runtime/loadSession.ts +3 -1
  275. package/src/kernel/runtime/probe.ts +1 -1
  276. package/src/kernel/runtime/refs/parseRef.test.ts +49 -1
  277. package/src/kernel/runtime/refs/parseRef.ts +25 -1
  278. package/src/kernel/runtime/refs/resolve.ts +9 -3
  279. package/src/kernel/runtime/types.ts +17 -0
  280. package/src/kernel/spec/emitReference.ts +1 -1
  281. package/src/kernel/spec/types.ts +35 -6
  282. package/src/testing/PARITY_GAPS.ts +9 -3
  283. package/src/testing/behavioral/docExamples.test.ts +4 -2
  284. package/src/testing/behavioral/errorMatrix.mcp.test.ts +110 -7
  285. package/src/testing/behavioral/journeys.firstInstall.test.ts +7 -2
  286. package/src/testing/behavioral/journeys.packageStories.test.ts +6 -3
  287. package/src/testing/eval/__snapshots__/eval.test.ts.snap +26 -1
  288. package/src/testing/eval/cases/readNouns.ts +245 -9
  289. package/src/testing/fixtures/blockGraph.ts +28 -13
  290. package/src/testing/fixtures/graph/canonical.ts +95 -12
  291. package/src/testing/helpers/runCli.test.ts +44 -0
  292. package/src/testing/helpers/runCli.ts +27 -3
  293. package/dist/src/capabilities/shared/bands.js +0 -16
  294. package/dist/src/capabilities/shared/bands.js.map +0 -1
  295. package/src/capabilities/shared/bands.ts +0 -16
@@ -9,18 +9,18 @@
9
9
  * only the self-verb is an MCP tool. `destructive: false` keeps MCP from
10
10
  * advertising the tool as destructive.
11
11
  *
12
- * THE BAND DEFAULT IS GLOBAL. `--scope` used to default to `both`, and `both`
13
- * runs each harness's own default band — which is `project` for most of the
12
+ * THE SCOPE DEFAULT IS GLOBAL. `--scope` used to default to `both`, and `both`
13
+ * runs each harness's own default scope — which is `project` for most of the
14
14
  * registry — so a bare `setup` scattered `.mcp.json`, `.gemini/settings.json`
15
15
  * and `opencode.json` into whatever directory you happened to be standing in.
16
- * The user band is what a machine-level installer configures; the project band
16
+ * The user scope is what a machine-level installer configures; the project scope
17
17
  * is a deliberate, checked-in, team-shared choice, and is now chosen with
18
18
  * `--local` rather than assumed.
19
19
  *
20
- * Every sub-verb registers the scope flags UNIFORMLY. That is what lets the band
20
+ * Every sub-verb registers the scope flags UNIFORMLY. That is what lets the scope
21
21
  * answer come from the table instead of per-verb flag wiring — previously
22
22
  * `setup completions --local` died as an unknown option, while `setup mcp
23
- * --local` worked, for no reason a user could see. Asking a target for a band it
23
+ * --local` worked, for no reason a user could see. Asking a target for a scope it
24
24
  * cannot honour is a usage error (exit 2) with the corrected command; asking the
25
25
  * RUN-ALL for such a band merely filters, and the out-of-band target still shows
26
26
  * as a named row.
@@ -34,14 +34,14 @@ import { BIN_NAME } from "../../constants.js";
34
34
  import { PragmaError } from "../../kernel/error/index.js";
35
35
  import { asVerb } from "../../kernel/spec/asVerb.js";
36
36
  import { resolveSetupMode, setupModeInput } from "./mode.js";
37
- import { planExitFailed, planTally, TARGET_IDS, } from "./plan.js";
38
- import { renderProgressLine, renderRecap } from "./plan.render.js";
37
+ import { isActionable, planExitFailed, planTally, TARGET_IDS, } from "./plan.js";
38
+ import { renderDetectionSummary, renderProgressLine, renderRecap, } from "./plan.render.js";
39
39
  import { renderDryRun, setupFormatters } from "./setup.render.js";
40
40
  /**
41
41
  * The `--scope` flag + its `--global`/`--local` boolean sugars. Registered by
42
- * EVERY setup verb, including the single-band ones: a flag that exists on some
43
- * sub-verbs and not others is a grammar the user has to memorise, and the band
44
- * a single-band target can honour is a question the target table answers.
42
+ * EVERY setup verb, including the single-scope ones: a flag that exists on some
43
+ * sub-verbs and not others is a grammar the user has to memorise, and the scope
44
+ * a single-scope target can honour is a question the target table answers.
45
45
  *
46
46
  * `--global` is a synonym of the default; it stays for scripts and for symmetry
47
47
  * with `--local`.
@@ -50,19 +50,19 @@ const SCOPE_PARAMS = [
50
50
  {
51
51
  kind: "enum",
52
52
  name: "scope",
53
- doc: "Which config band(s) to configure: global (the default), project, or both.",
53
+ doc: "Where to configure: global (your home directory, the default), project (this repository), or both.",
54
54
  values: ["project", "global", "both"],
55
55
  default: "global",
56
56
  },
57
57
  {
58
58
  kind: "boolean",
59
59
  name: "global",
60
- doc: "Shorthand for --scope global (configure the user/home band).",
60
+ doc: "Shorthand for --scope global — configure your home directory.",
61
61
  },
62
62
  {
63
63
  kind: "boolean",
64
64
  name: "local",
65
- doc: "Shorthand for --scope project (configure the per-project band).",
65
+ doc: "Shorthand for --scope project — configure this project only.",
66
66
  },
67
67
  ];
68
68
  /**
@@ -81,32 +81,33 @@ function resolveScope(params) {
81
81
  return scope === "project" || scope === "both" ? scope : "global";
82
82
  }
83
83
  /**
84
- * Reject a sub-verb asked for a band its target cannot hold.
84
+ * Reject a sub-verb asked for a scope its target cannot hold.
85
85
  *
86
86
  * This is a usage error, not a skip: the user typed a contradiction, and
87
- * correcting it is exactly what exit 2 means. The message names the band the
87
+ * correcting it is exactly what exit 2 means. The message names the scope the
88
88
  * target DOES have and prints the command that works, so the correction is one
89
89
  * paste rather than one manual page.
90
90
  *
91
91
  * @param mode - The sub-verb's target, or `all`.
92
92
  * @param scope - The resolved selection.
93
- * @throws PragmaError INVALID_INPUT when the target has no such band.
93
+ * @throws PragmaError INVALID_INPUT when the target has no such scope.
94
94
  */
95
- async function assertBandIsPossible(mode, scope) {
95
+ async function assertScopeIsPossible(mode, scope) {
96
96
  if (mode === "all" || scope === "both")
97
97
  return;
98
98
  const { findTarget } = await import("./targets.js");
99
99
  const target = findTarget(mode);
100
- if (target === undefined || target.bands.includes(scope))
100
+ if (target === undefined || target.scopes.includes(scope))
101
101
  return;
102
- const only = target.bands[0];
103
- const level = only === "global" ? "user-level" : "project-level";
102
+ const only = target.scopes[0];
103
+ const level = only === "global" ? "global only" : "per-project only";
104
+ const asked = scope === "global" ? "globally" : "per project";
104
105
  const corrected = only === "global"
105
106
  ? `${BIN_NAME} setup ${mode}`
106
107
  : `${BIN_NAME} setup ${mode} --local`;
107
108
  throw new PragmaError({
108
109
  code: "INVALID_INPUT",
109
- message: `${mode} is ${level} — it has no ${scope} band.`,
110
+ message: `${mode} is ${level} — it cannot be configured ${asked}.`,
110
111
  recovery: { message: `Run: ${corrected}` },
111
112
  });
112
113
  }
@@ -149,12 +150,12 @@ const SUB_CAPABILITY = {
149
150
  *
150
151
  * @param mode - Which entry point (`all` or one target).
151
152
  * @param rt - The per-invocation runtime (mutated: `rt.exec` and `rt.planData`).
152
- * @param scope - The resolved band selection.
153
+ * @param scope - The resolved scope selection.
153
154
  * @returns The `Task<SetupPlan>` the dispatcher/MCP handler interprets.
154
155
  * @note Impure — runs every target's real detection before returning a Task.
155
156
  */
156
157
  async function runSetup(mode, rt, scope) {
157
- await assertBandIsPossible(mode, scope);
158
+ await assertScopeIsPossible(mode, scope);
158
159
  // Lazy dynamic imports (lazy-React discipline): summon-core's barrel is
159
160
  // React-free, and the non-TTY branch picks autoPrompt/mcpPrompt (never mounts
160
161
  // Ink), so `setup --yes` loads no React — the guard test enforces this.
@@ -174,12 +175,76 @@ async function runSetup(mode, rt, scope) {
174
175
  // — that is what makes the preview honest — so anything it says out loud has
175
176
  // to know which of the two it is.
176
177
  const previewing = interactionMode === "batch-dry-run";
178
+ // The undo truth channel. A real `--undo` interprets this verb's task ONLY
179
+ // as the undo interpreter's mocked collection walk — every exec exits 0,
180
+ // every prompt answers its default, and the OutcomeSink is never written —
181
+ // so nothing the task body could report describes what the collected
182
+ // reversals later did. The body therefore says NOTHING on the undo path
183
+ // (see the guard in the gen body below); the kernel calls this seam after
184
+ // the reversals actually ran, handing over the interpreter's per-undo
185
+ // outcomes, and `appliedUndo` projects them onto the rows through the SAME
186
+ // sink + `applied` path the forward run reports through. One outcome
187
+ // model, both directions.
188
+ if (!previewing && input.undo) {
189
+ rt.undoReport = (outcomes) => {
190
+ const applied = run.appliedUndo(outcomes);
191
+ const width = Math.max(...applied.rows.map((row) => row.target.length));
192
+ for (const row of applied.rows) {
193
+ if (row.outcome === undefined)
194
+ continue;
195
+ rt.report?.(renderProgressLine(row, width));
196
+ }
197
+ if (planExitFailed(applied)) {
198
+ rt.report?.(renderRecap(applied, "Removed"));
199
+ raiseFailedRows(applied, true);
200
+ }
201
+ };
202
+ }
203
+ // A CONVERGED machine has no question to ask. Every row is `none` or `skip`,
204
+ // so nothing composes an effect — and the wizard's confirm gate then mounted
205
+ // Ink to render summon-core's "No operations planned." above a "Proceed?"
206
+ // over an empty tally. For a sub-verb, whose prompt list is empty, that
207
+ // contentless gate was the FIRST AND ONLY thing the user ever saw. The
208
+ // explanation existed the whole time (each row's `none` detail, one child row
209
+ // per file/editor marked `unchanged`) and was dropped at the render seam.
210
+ //
211
+ // So: report the plan instead of asking a question with no content. There is
212
+ // no `preview: true` here — the run really did complete. `applied({})` marks
213
+ // each `none` row `{status:"noop", note:"unchanged"}`, `wasApplied` is then
214
+ // true, and `setupFormatters.plain` renders the recap. That also retires a
215
+ // second defect: a non-interactive converged run used to print the misleading
216
+ // "Nothing was applied. Run again with --yes to apply." over an all-`none`
217
+ // plan. A run whose every DETECTION threw is not converged in this sense —
218
+ // its rows are skips that report `failed` — so it falls through to the normal
219
+ // path, which is the one that raises.
220
+ if (!previewing && run.plan.rows.every((row) => !isActionable(row.action))) {
221
+ const converged = run.applied({});
222
+ if (!planExitFailed(converged))
223
+ return pure(converged);
224
+ }
177
225
  // Adaptation (b): a non-interactive run without `--yes` previews rather than
178
226
  // mutating. It is the same plan the dry-run prints, plus one hint line, at
179
227
  // exit 0 — the invocation completed a real read-only unit of work.
180
228
  if (interactionMode === "refuse") {
181
229
  return pure({ ...run.plan, preview: true });
182
230
  }
231
+ // Say what was DETECTED before asking anything about it. The data has been
232
+ // sitting in `run.plan` since before the prompt list was built — `inkPrompt`
233
+ // mounts no React until the first Prompt effect — so this is a rendering gap,
234
+ // not an ordering one, and closing it is nearly free.
235
+ //
236
+ // It MUST be emitted here, before `execute` is driven: the summary and the
237
+ // Ink frame both write to stderr, and only a line written first lands in
238
+ // scrollback ABOVE the frame. `rt.report` is the non-Ink seam — `--quiet`
239
+ // silences it and it is a no-op over MCP — so no React is loaded to print it.
240
+ // A preview says nothing here: the plan table IS its output.
241
+ if (!previewing) {
242
+ const summary = renderDetectionSummary(run.plan, {
243
+ verbose: rt.globalFlags.verbose,
244
+ });
245
+ if (summary !== undefined)
246
+ rt.report?.(summary);
247
+ }
183
248
  const { transport, yes, signal, abort } = rt.interaction ?? {
184
249
  isTTY: false,
185
250
  transport: "cli",
@@ -195,6 +260,19 @@ async function runSetup(mode, rt, scope) {
195
260
  signal,
196
261
  onCancel: abort,
197
262
  });
263
+ // Live progress in the PLAN's units, not the interpreter's: the wizard's
264
+ // default execution view is the per-effect transcript — right for `create`,
265
+ // whose unit of work IS the file, and wrong here, where one unit is one
266
+ // configured target and the transcript renders eighteen symlink rows for
267
+ // the row the plan called `skills link 9 skills → 2 folders`. Each row
268
+ // event carries the SAME sentence `renderProgressLine` prints, so the
269
+ // watcher and the recap reader see one dialect. `--verbose` withholds the
270
+ // listener, which falls the wizard back to the full effect transcript —
271
+ // the same detected-only-unless-verbose rule the detection summary and
272
+ // doctor already follow.
273
+ if (rt.globalFlags.verbose !== true) {
274
+ run.setRowListener((event) => session.reportStep(event));
275
+ }
198
276
  rt.exec = {
199
277
  promptHandler: session.promptHandler,
200
278
  onEffectStart: session.onEffectStart,
@@ -222,6 +300,16 @@ async function runSetup(mode, rt, scope) {
222
300
  return gen(function* () {
223
301
  const result = yield* $(task);
224
302
  const applied = run.applied(result.answers);
303
+ // A real `--undo` only ever drives this body under the undo
304
+ // interpreter's COLLECTION walk, with every effect mocked. `applied` is
305
+ // then a projection of the mocked walk (`removed` rows for reversals
306
+ // that have not run yet), so reporting it here printed green checks
307
+ // before anything happened. Say nothing; the kernel hands the executed
308
+ // reversals' outcomes to `rt.undoReport` afterwards, and `appliedUndo`
309
+ // grades the rows from those. (`--undo --dry-run` stays on the shared
310
+ // preview path below, where the same suppressions already apply.)
311
+ if (input.undo && !previewing)
312
+ return applied;
225
313
  // Progress: one line per row on stderr for an unattended run (the Ink
226
314
  // session already draws them for the wizard). stdout stays the data stream.
227
315
  //
@@ -242,40 +330,54 @@ async function runSetup(mode, rt, scope) {
242
330
  // stdout on a failing run.
243
331
  if (planExitFailed(applied)) {
244
332
  rt.report?.(renderRecap(applied));
245
- const failed = applied.rows.filter((row) => row.outcome?.status === "failed");
246
- // ONE failure reports itself. The row already carries the cause it was
247
- // given ("`bun` is not found on your PATH") and a remedy that runs on
248
- // this machine; replacing them with a count would throw away the only
249
- // two sentences that say what is wrong and what to do about it.
250
- const only = failed.length === 1 ? failed[0] : undefined;
251
- if (only?.outcome !== undefined) {
252
- throw new PragmaError({
253
- code: "UNSUPPORTED",
254
- message: `${only.target}: ${only.outcome.note ?? "the step did not complete"}`,
255
- ...(only.outcome.remedy === undefined
256
- ? {}
257
- : { recovery: { message: only.outcome.remedy } }),
258
- });
259
- }
260
- // Several failures: name every one with its own cause, then point at the
261
- // recap above. A bare list of target names would make the reader re-run
262
- // each one to find out why it failed.
263
- const named = failed
264
- .map((row) => `${row.target} (${row.outcome?.note ?? "no cause recorded"})`)
265
- .join("; ");
266
- throw new PragmaError({
267
- code: "UNSUPPORTED",
268
- message: `${failed.length} of ${planTally(applied).accountable} targets did not complete: ${named}.`,
269
- recovery: {
270
- message: `The other targets are configured. Re-run the ones that did not complete: ${failed
271
- .map((row) => `\`${BIN_NAME} setup ${row.target}\``)
272
- .join(", ")}.`,
273
- },
274
- });
333
+ raiseFailedRows(applied);
275
334
  }
276
335
  return applied;
277
336
  });
278
337
  }
338
+ /**
339
+ * Raise the run's failure from its rows — shared by the forward run's recap
340
+ * and the post-undo truth report, so the two paths name a shortfall in the
341
+ * same words. `undo` only re-words the multi-failure recovery line: the
342
+ * command that retries a removal is `setup <target> --undo`, not the
343
+ * installer.
344
+ *
345
+ * @param applied - The plan with outcomes filled in (at least one `failed`).
346
+ * @param undo - Whether the failed run was a removal.
347
+ * @throws PragmaError naming the failed row(s), always.
348
+ */
349
+ function raiseFailedRows(applied, undo = false) {
350
+ const failed = applied.rows.filter((row) => row.outcome?.status === "failed");
351
+ // ONE failure reports itself. The row already carries the cause it was
352
+ // given ("`bun` is not found on your PATH") and a remedy that runs on
353
+ // this machine; replacing them with a count would throw away the only
354
+ // two sentences that say what is wrong and what to do about it.
355
+ const only = failed.length === 1 ? failed[0] : undefined;
356
+ if (only?.outcome !== undefined) {
357
+ throw new PragmaError({
358
+ code: "UNSUPPORTED",
359
+ message: `${only.target}: ${only.outcome.note ?? "the step did not complete"}`,
360
+ ...(only.outcome.remedy === undefined
361
+ ? {}
362
+ : { recovery: { message: only.outcome.remedy } }),
363
+ });
364
+ }
365
+ // Several failures: name every one with its own cause, then point at the
366
+ // recap above. A bare list of target names would make the reader re-run
367
+ // each one to find out why it failed.
368
+ const named = failed
369
+ .map((row) => `${row.target} (${row.outcome?.note ?? "no cause recorded"})`)
370
+ .join("; ");
371
+ throw new PragmaError({
372
+ code: "UNSUPPORTED",
373
+ message: `${failed.length} of ${planTally(applied).accountable} targets did not complete: ${named}.`,
374
+ recovery: {
375
+ message: `The other targets are ${undo ? "removed" : "configured"}. Re-run the ones that did not complete: ${failed
376
+ .map((row) => `\`${BIN_NAME} setup ${row.target}${undo ? " --undo" : ""}\``)
377
+ .join(", ")}.`,
378
+ },
379
+ });
380
+ }
279
381
  /** Build a setup verb bound to its {@link SetupMode}. */
280
382
  function setupVerb(path, summary, mode, capability, extras = {}) {
281
383
  return {
@@ -294,29 +396,29 @@ function setupVerb(path, summary, mode, capability, extras = {}) {
294
396
  run: (params, rt) => runSetup(mode, rt, resolveScope(params)),
295
397
  };
296
398
  }
297
- const setupAllVerb = setupVerb(["setup"], "Configure the global config, completions, the LSP, MCP, and skills.", "all", SELF_CAPABILITY, {
298
- doc: "Plans every target in the selected band, then applies the ones you keep. The user/home band is the default; the scope option chooses the per-project band, or both. A run with no attended terminal prints the plan and applies nothing unless the run is confirmed.",
399
+ const setupAllVerb = setupVerb(["setup"], "Set up your config file, TAB completion, the editor extension, MCP, and skills.", "all", SELF_CAPABILITY, {
400
+ doc: "Shows what each target needs, then applies the ones you keep. Everything is configured in your home directory by default; the scope option moves the run to this project alone, or covers both. Without an attended terminal the plan is printed and nothing is written unless the run is explicitly confirmed.",
299
401
  examples: [
300
402
  { cmd: `${BIN_NAME} setup` },
301
403
  {
302
404
  cmd: `${BIN_NAME} setup --dry-run`,
303
- note: "print the plan, write nothing",
405
+ note: "show the plan, write nothing",
304
406
  },
305
407
  {
306
408
  cmd: `${BIN_NAME} setup --local`,
307
- note: "configure the project band instead",
409
+ note: "configure this project instead of your home directory",
308
410
  },
309
411
  {
310
412
  cmd: `${BIN_NAME} setup mcp`,
311
- note: "just the MCP server registration",
413
+ note: "only register the MCP server",
312
414
  },
313
415
  ],
314
416
  });
315
- const configVerb = setupVerb(["setup", "config"], "Create the global config file with its defaults.", "config", SUB_CAPABILITY);
316
- const mcpVerb = setupVerb(["setup", "mcp"], `Register the ${BIN_NAME} MCP server in detected AI harnesses.`, "mcp", SUB_CAPABILITY);
317
- const completionsVerb = setupVerb(["setup", "completions"], "Install the shell-completion script for your shell.", "completions", SUB_CAPABILITY);
318
- const skillsVerb = setupVerb(["setup", "skills"], "Symlink discovered skills into each AI harness.", "skills", SUB_CAPABILITY);
319
- const lspVerb = setupVerb(["setup", "lsp"], "Ensure the Terrazzo LSP VS Code extension is installed.", "lsp", SUB_CAPABILITY);
417
+ const configVerb = setupVerb(["setup", "config"], "Create your global config file, filled in with the defaults.", "config", SUB_CAPABILITY);
418
+ const mcpVerb = setupVerb(["setup", "mcp"], `Register the ${BIN_NAME} MCP server with the AI harnesses on this machine.`, "mcp", SUB_CAPABILITY);
419
+ const completionsVerb = setupVerb(["setup", "completions"], "Install TAB completion for the shell you are running.", "completions", SUB_CAPABILITY);
420
+ const skillsVerb = setupVerb(["setup", "skills"], "Link the skills you have installed into every AI harness that reads them.", "skills", SUB_CAPABILITY);
421
+ const lspVerb = setupVerb(["setup", "lsp"], "Install the Terrazzo design-token extension into your VS Code-family editors.", "lsp", SUB_CAPABILITY);
320
422
  /** The `setup` capability module (run-all self-verb + five CLI-only sub-verbs). */
321
423
  export const setupModule = {
322
424
  name: "setup",
@@ -1 +1 @@
1
- {"version":3,"file":"setup.verb.js","sourceRoot":"","sources":["../../../../src/capabilities/setup/setup.verb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.verb.js","sourceRoot":"","sources":["../../../../src/capabilities/setup/setup.verb.ts"],"names":[],"mappings":"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"}