@canonical/pragma-cli 0.35.0 → 0.36.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 (230) 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 +16 -15
  13. package/dist/pragma.conf.js +236 -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/colophon/colophon.render.js +1 -1
  18. package/dist/src/capabilities/colophon/colophon.render.js.map +1 -1
  19. package/dist/src/capabilities/create/mount.js +4 -3
  20. package/dist/src/capabilities/create/mount.js.map +1 -1
  21. package/dist/src/capabilities/doctor/checks/checkPackageRefs.js +60 -4
  22. package/dist/src/capabilities/doctor/checks/checkPackageRefs.js.map +1 -1
  23. package/dist/src/capabilities/doctor/checks/checkShellCompletions.js +8 -8
  24. package/dist/src/capabilities/doctor/checks/checkShellCompletions.js.map +1 -1
  25. package/dist/src/capabilities/doctor/checks/harnessInventory.js +195 -0
  26. package/dist/src/capabilities/doctor/checks/harnessInventory.js.map +1 -0
  27. package/dist/src/capabilities/doctor/checks/index.js +6 -6
  28. package/dist/src/capabilities/doctor/checks/targetHealth.js +194 -50
  29. package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -1
  30. package/dist/src/capabilities/doctor/doctor.render.js +43 -64
  31. package/dist/src/capabilities/doctor/doctor.render.js.map +1 -1
  32. package/dist/src/capabilities/doctor/doctor.verb.js +6 -2
  33. package/dist/src/capabilities/doctor/doctor.verb.js.map +1 -1
  34. package/dist/src/capabilities/doctor/runChecks.js +14 -11
  35. package/dist/src/capabilities/doctor/runChecks.js.map +1 -1
  36. package/dist/src/capabilities/graph/query.render.js +2 -2
  37. package/dist/src/capabilities/graph/query.render.js.map +1 -1
  38. package/dist/src/capabilities/info/collectInfo.js +8 -2
  39. package/dist/src/capabilities/info/collectInfo.js.map +1 -1
  40. package/dist/src/capabilities/info/info.render.js +6 -2
  41. package/dist/src/capabilities/info/info.render.js.map +1 -1
  42. package/dist/src/capabilities/prompt/prompt.render.js +2 -2
  43. package/dist/src/capabilities/prompt/prompt.render.js.map +1 -1
  44. package/dist/src/capabilities/setup/buildPlan.js +43 -39
  45. package/dist/src/capabilities/setup/buildPlan.js.map +1 -1
  46. package/dist/src/capabilities/setup/mode.js +2 -2
  47. package/dist/src/capabilities/setup/operations/index.js +4 -4
  48. package/dist/src/capabilities/setup/operations/index.js.map +1 -1
  49. package/dist/src/capabilities/setup/operations/setupGenerator.js +92 -45
  50. package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -1
  51. package/dist/src/capabilities/setup/operations/setupLsp.js +88 -36
  52. package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -1
  53. package/dist/src/capabilities/setup/operations/setupMcp.js +97 -51
  54. package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -1
  55. package/dist/src/capabilities/setup/operations/setupSkills.js +325 -47
  56. package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -1
  57. package/dist/src/capabilities/setup/plan.js.map +1 -1
  58. package/dist/src/capabilities/setup/plan.render.js +144 -66
  59. package/dist/src/capabilities/setup/plan.render.js.map +1 -1
  60. package/dist/src/capabilities/setup/setup.render.js +1 -1
  61. package/dist/src/capabilities/setup/setup.verb.js +86 -33
  62. package/dist/src/capabilities/setup/setup.verb.js.map +1 -1
  63. package/dist/src/capabilities/setup/targets.js +110 -45
  64. package/dist/src/capabilities/setup/targets.js.map +1 -1
  65. package/dist/src/capabilities/shared/index.js +6 -5
  66. package/dist/src/capabilities/shared/index.js.map +1 -1
  67. package/dist/src/capabilities/shared/packageManager.js +300 -54
  68. package/dist/src/capabilities/shared/packageManager.js.map +1 -1
  69. package/dist/src/capabilities/skill/discover.js +97 -11
  70. package/dist/src/capabilities/skill/discover.js.map +1 -1
  71. package/dist/src/capabilities/skill/render.js +2 -2
  72. package/dist/src/capabilities/skill/render.js.map +1 -1
  73. package/dist/src/capabilities/sources/installSkills.js +145 -3
  74. package/dist/src/capabilities/sources/installSkills.js.map +1 -1
  75. package/dist/src/capabilities/sources/runUpdate.js +68 -2
  76. package/dist/src/capabilities/sources/runUpdate.js.map +1 -1
  77. package/dist/src/capabilities/sources/update.verb.js +3 -3
  78. package/dist/src/capabilities/sources/update.verb.js.map +1 -1
  79. package/dist/src/capabilities/upgrade/runUpgrade.js +43 -7
  80. package/dist/src/capabilities/upgrade/runUpgrade.js.map +1 -1
  81. package/dist/src/capabilities/upgrade/upgrade.render.js +10 -2
  82. package/dist/src/capabilities/upgrade/upgrade.render.js.map +1 -1
  83. package/dist/src/constants.js +6 -1
  84. package/dist/src/constants.js.map +1 -1
  85. package/dist/src/kernel/index.js +11 -2
  86. package/dist/src/kernel/index.js.map +1 -1
  87. package/dist/src/kernel/interactivity.js +68 -0
  88. package/dist/src/kernel/interactivity.js.map +1 -0
  89. package/dist/src/kernel/packs/renderPack.js +3 -3
  90. package/dist/src/kernel/packs/renderPack.js.map +1 -1
  91. package/dist/src/kernel/packs/resolveEntity.js +63 -12
  92. package/dist/src/kernel/packs/resolveEntity.js.map +1 -1
  93. package/dist/src/kernel/packs/runBodies.js +57 -4
  94. package/dist/src/kernel/packs/runBodies.js.map +1 -1
  95. package/dist/src/kernel/packs/schema.js +54 -2
  96. package/dist/src/kernel/packs/schema.js.map +1 -1
  97. package/dist/src/kernel/packs/sparql/applyFilters.js +104 -5
  98. package/dist/src/kernel/packs/sparql/applyFilters.js.map +1 -1
  99. package/dist/src/kernel/packs/sparql/buildLookupQuery.js +306 -43
  100. package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -1
  101. package/dist/src/kernel/packs/types.js.map +1 -1
  102. package/dist/src/kernel/project/cli/buildProgram.js +1 -1
  103. package/dist/src/kernel/project/cli/buildProgram.js.map +1 -1
  104. package/dist/src/kernel/project/cli/dispatch.js +23 -23
  105. package/dist/src/kernel/project/cli/dispatch.js.map +1 -1
  106. package/dist/src/kernel/project/cli/globalFlags.js +4 -1
  107. package/dist/src/kernel/project/cli/globalFlags.js.map +1 -1
  108. package/dist/src/kernel/project/cli/helpFormat.js +1 -2
  109. package/dist/src/kernel/project/cli/helpFormat.js.map +1 -1
  110. package/dist/src/kernel/project/cli/rootHelp.js +34 -4
  111. package/dist/src/kernel/project/cli/rootHelp.js.map +1 -1
  112. package/dist/src/kernel/project/mcp/registerVerb.js +16 -1
  113. package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -1
  114. package/dist/src/kernel/render/renderers.js +1 -1
  115. package/dist/src/kernel/render/style.js +29 -9
  116. package/dist/src/kernel/render/style.js.map +1 -1
  117. package/dist/src/kernel/render/vocabulary.js +174 -0
  118. package/dist/src/kernel/render/vocabulary.js.map +1 -0
  119. package/dist/src/kernel/spec/emitReference.js +1 -1
  120. package/dist/src/kernel/spec/emitReference.js.map +1 -1
  121. package/package.json +16 -15
  122. package/pragma.conf.ts +241 -34
  123. package/src/bin.ts +8 -1
  124. package/src/capabilities/block.parity.test.ts +25 -11
  125. package/src/capabilities/block.shipped.exec.test.ts +282 -0
  126. package/src/capabilities/block.tierRank.exec.test.ts +300 -0
  127. package/src/capabilities/colophon/colophon.render.ts +1 -2
  128. package/src/capabilities/colophon/colophon.test.ts +2 -2
  129. package/src/capabilities/create/createGrammar.test.ts +1 -1
  130. package/src/capabilities/create/mount.ts +3 -3
  131. package/src/capabilities/distribution.parity.test.ts +4 -0
  132. package/src/capabilities/doctor/checks/checkPackageRefs.ts +69 -4
  133. package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +6 -4
  134. package/src/capabilities/doctor/checks/checkShellCompletions.ts +8 -8
  135. package/src/capabilities/doctor/checks/harnessInventory.test.ts +219 -0
  136. package/src/capabilities/doctor/checks/harnessInventory.ts +298 -0
  137. package/src/capabilities/doctor/checks/index.ts +6 -6
  138. package/src/capabilities/doctor/checks/targetHealth.ts +229 -59
  139. package/src/capabilities/doctor/doctor.render.test.ts +108 -32
  140. package/src/capabilities/doctor/doctor.render.ts +56 -80
  141. package/src/capabilities/doctor/doctor.test.ts +247 -35
  142. package/src/capabilities/doctor/doctor.verb.ts +7 -2
  143. package/src/capabilities/doctor/runChecks.ts +14 -11
  144. package/src/capabilities/doctor/types.ts +15 -24
  145. package/src/capabilities/emptyRecovery.test.ts +10 -2
  146. package/src/capabilities/graph/query.render.ts +2 -2
  147. package/src/capabilities/info/collectInfo.ts +8 -1
  148. package/src/capabilities/info/info.render.ts +6 -2
  149. package/src/capabilities/info/info.test.ts +37 -1
  150. package/src/capabilities/info/types.ts +10 -2
  151. package/src/capabilities/prompt/prompt.render.ts +2 -2
  152. package/src/capabilities/renderVocabularySync.test.ts +82 -0
  153. package/src/capabilities/scopeTypeSync.test.ts +29 -15
  154. package/src/capabilities/setup/buildPlan.ts +45 -41
  155. package/src/capabilities/setup/index.ts +1 -1
  156. package/src/capabilities/setup/mode.ts +2 -2
  157. package/src/capabilities/setup/operations/index.ts +6 -1
  158. package/src/capabilities/setup/operations/setupGenerator.ts +144 -70
  159. package/src/capabilities/setup/operations/setupLsp.ts +129 -37
  160. package/src/capabilities/setup/operations/setupMcp.ts +132 -61
  161. package/src/capabilities/setup/operations/setupSkills.ts +392 -58
  162. package/src/capabilities/setup/plan.render.ts +171 -76
  163. package/src/capabilities/setup/plan.ts +17 -12
  164. package/src/capabilities/setup/setup.mcp.correctness.test.ts +9 -9
  165. package/src/capabilities/setup/setup.render.test.ts +50 -36
  166. package/src/capabilities/setup/setup.render.ts +1 -1
  167. package/src/capabilities/setup/setup.test.ts +881 -50
  168. package/src/capabilities/setup/setup.verb.ts +91 -33
  169. package/src/capabilities/setup/targets.ts +120 -52
  170. package/src/capabilities/setup/types.ts +10 -18
  171. package/src/capabilities/shared/index.ts +17 -6
  172. package/src/capabilities/shared/packageManager.test.ts +421 -6
  173. package/src/capabilities/shared/packageManager.ts +394 -59
  174. package/src/capabilities/skill/bundledSkills.test.ts +347 -0
  175. package/src/capabilities/skill/discover.ts +100 -11
  176. package/src/capabilities/skill/render.ts +2 -2
  177. package/src/capabilities/skill/skill.test.ts +17 -4
  178. package/src/capabilities/sources/installSkills.ts +181 -3
  179. package/src/capabilities/sources/runUpdate.ts +78 -2
  180. package/src/capabilities/sources/sources.test.ts +228 -0
  181. package/src/capabilities/sources/update.verb.ts +3 -3
  182. package/src/capabilities/surface.test.ts +2 -2
  183. package/src/capabilities/upgrade/runUpgrade.ts +45 -6
  184. package/src/capabilities/upgrade/types.ts +10 -2
  185. package/src/capabilities/upgrade/upgrade.render.ts +9 -2
  186. package/src/capabilities/upgrade/upgrade.test.ts +72 -0
  187. package/src/constants.ts +6 -1
  188. package/src/identity.test.ts +18 -5
  189. package/src/kernel/completion/entitySource.test.ts +15 -2
  190. package/src/kernel/completion/safety.test.ts +16 -9
  191. package/src/kernel/config/defaults.test.ts +2 -1
  192. package/src/kernel/index.ts +11 -2
  193. package/src/kernel/interactivity.test.ts +76 -0
  194. package/src/kernel/interactivity.ts +69 -0
  195. package/src/kernel/packs/compile.test.ts +92 -0
  196. package/src/kernel/packs/renderPack.ts +3 -3
  197. package/src/kernel/packs/resolveEntity.test.ts +75 -14
  198. package/src/kernel/packs/resolveEntity.ts +88 -24
  199. package/src/kernel/packs/runBodies.ts +84 -19
  200. package/src/kernel/packs/schema.ts +60 -4
  201. package/src/kernel/packs/sparql/applyFilters.ts +125 -4
  202. package/src/kernel/packs/sparql/buildLookupQuery.test.ts +290 -0
  203. package/src/kernel/packs/sparql/buildLookupQuery.ts +323 -45
  204. package/src/kernel/packs/toolDescription.test.ts +35 -1
  205. package/src/kernel/packs/types.ts +125 -2
  206. package/src/kernel/project/cli/buildProgram.test.ts +73 -2
  207. package/src/kernel/project/cli/buildProgram.ts +8 -1
  208. package/src/kernel/project/cli/dispatch.test.ts +5 -4
  209. package/src/kernel/project/cli/dispatch.ts +25 -24
  210. package/src/kernel/project/cli/globalFlags.ts +4 -1
  211. package/src/kernel/project/cli/helpFormat.ts +1 -2
  212. package/src/kernel/project/cli/rootHelp.ts +36 -3
  213. package/src/kernel/project/mcp/registerVerb.ts +20 -1
  214. package/src/kernel/render/renderers.ts +1 -1
  215. package/src/kernel/render/style.ts +32 -9
  216. package/src/kernel/render/vocabulary.ts +276 -0
  217. package/src/kernel/spec/emitReference.ts +1 -1
  218. package/src/kernel/spec/types.ts +35 -6
  219. package/src/testing/PARITY_GAPS.ts +9 -3
  220. package/src/testing/behavioral/docExamples.test.ts +4 -2
  221. package/src/testing/behavioral/errorMatrix.mcp.test.ts +110 -7
  222. package/src/testing/behavioral/journeys.firstInstall.test.ts +7 -2
  223. package/src/testing/behavioral/journeys.packageStories.test.ts +6 -3
  224. package/src/testing/eval/__snapshots__/eval.test.ts.snap +26 -1
  225. package/src/testing/eval/cases/readNouns.ts +245 -9
  226. package/src/testing/fixtures/blockGraph.ts +28 -13
  227. package/src/testing/fixtures/graph/canonical.ts +95 -12
  228. package/dist/src/capabilities/shared/bands.js +0 -16
  229. package/dist/src/capabilities/shared/bands.js.map +0 -1
  230. package/src/capabilities/shared/bands.ts +0 -16
@@ -5,7 +5,7 @@
5
5
  * gate, live progress, colours, and the shared cancel fixes by construction.
6
6
  *
7
7
  * The shape mirrors `create`: detection runs FOR REAL up front (once per
8
- * target/band, in `detectTargets`), then a PURE `generate` composes only the
8
+ * target/scope, in `detectTargets`), then a PURE `generate` composes only the
9
9
  * effects for the SELECTED rows. `generate` must stay re-interpretable —
10
10
  * `execute` invokes it more than once (the confirm-gate preview and the build) —
11
11
  * so it is composed from combinators and does no reads of its own.
@@ -36,8 +36,8 @@ const CHILD_ANSWER = {
36
36
  mcp: MCP_FILES_ANSWER,
37
37
  lsp: LSP_EDITORS_ANSWER,
38
38
  };
39
- /** A row's identity in an answer bag: band-qualified, so `both` stays unambiguous. */
40
- const rowKey = (band, target) => `${band}:${target}`;
39
+ /** A row's identity in an answer bag: scope-qualified, so `both` stays unambiguous. */
40
+ const rowKey = (scope, target) => `${scope}:${target}`;
41
41
  /**
42
42
  * Where a failed row's error lands during interpretation.
43
43
  *
@@ -87,11 +87,28 @@ const rowPragmaError = (error) => error.cause instanceof PragmaError
87
87
  * throw bypasses the trampoline's recovery frames — which is why the row bodies
88
88
  * raise via `checkExecOk`/`failPragma`, never a bare throw. Interruption bypasses
89
89
  * recovery by interpreter invariant, so Ctrl-C still stops the whole run.
90
+ *
91
+ * Each row is also BRACKETED with {@link RowEvent}s — `start` as its body is
92
+ * entered, `done`/`failed` as it settles — emitted from the continuations,
93
+ * which run at interpretation time. Like the sink writes beside them, the
94
+ * emits capture nothing IN the task: the composition stays pure and
95
+ * re-interpretable, and each drive simply narrates itself as it runs.
90
96
  */
91
- const runRowsIsolated = (sink, rows) => flatMap(pure(undefined), () => {
97
+ const runRowsIsolated = (sink, rows, emit) => flatMap(pure(undefined), () => {
92
98
  sink.clear();
93
- return sequence_(rows.map(({ key, task }) => recover(task, (error) => flatMap(warn(`The ${key.split(":")[1]} step did not complete — continuing with the remaining targets.`), () => {
99
+ return sequence_(rows.map(({ key, label, doneLabel, task }) => recover(flatMap(pure(undefined), () => {
100
+ emit({ key, label, status: "start" });
101
+ return flatMap(task, () => {
102
+ emit({ key, label: doneLabel, status: "done" });
103
+ return pure(undefined);
104
+ });
105
+ }), (error) => flatMap(warn(`The ${key.split(":")[1]} step did not complete — continuing with the remaining targets.`), () => {
94
106
  sink.record(key, error);
107
+ emit({
108
+ key,
109
+ label: `${label} — ${rowPragmaError(error).message}`,
110
+ status: "failed",
111
+ });
95
112
  return pure(undefined);
96
113
  }))));
97
114
  });
@@ -116,7 +133,7 @@ const buildRowsPrompt = (plan) => {
116
133
  .filter((row) => row.action !== "skip")
117
134
  .map((row) => ({
118
135
  label: `${row.target} — ${row.detail}${row.action === "none" ? " (already configured)" : ""}`,
119
- value: rowKey(row.band, row.target),
136
+ value: rowKey(row.scope, row.target),
120
137
  }));
121
138
  return {
122
139
  name: ROWS_ANSWER,
@@ -125,23 +142,26 @@ const buildRowsPrompt = (plan) => {
125
142
  choices,
126
143
  default: plan.rows
127
144
  .filter((row) => row.selected)
128
- .map((row) => rowKey(row.band, row.target)),
145
+ .map((row) => rowKey(row.scope, row.target)),
129
146
  };
130
147
  };
131
- /** The opt-in "customize which files" gate — defaults to false. */
132
- const buildCustomizePrompt = (when) => ({
133
- name: "customize",
134
- type: "confirm",
135
- message: `Customize which files ${BIN_NAME} configures?`,
136
- default: false,
137
- when,
138
- });
139
148
  /**
140
149
  * The per-file MCP multiselect — one row per deduplicated config file, across
141
- * every band the run covers. An already-current file is DEFAULT-DESELECTED; a
142
- * file that is absent or drifted stays selected. Retained unchanged from the
143
- * landed opt-in narrowing: it is row-level CHILD selection, which is exactly
144
- * what the plan's child rows are.
150
+ * every scope the run covers. An already-current file is DEFAULT-DESELECTED; a
151
+ * file that is absent or drifted stays selected. It is row-level CHILD
152
+ * selection, which is exactly what the plan's child rows are.
153
+ *
154
+ * It used to sit behind a meta-question — "Customize which files pragma
155
+ * configures?", answered no by default. That gate was read in exactly ONE place
156
+ * in the repo (this prompt's `when`) and nowhere else: not by `generate`, not by
157
+ * `applied`, not by any plan, recap, renderer or JSON projection. Answering no
158
+ * meant the child prompt was never asked, its key was absent from the answer
159
+ * bag, `readList` returned `undefined`, and the compose bodies read that as
160
+ * "all" — so everything detected was configured anyway. A meta-question in front
161
+ * of a direct question is one more thing to answer and no more control; the
162
+ * choices below already carry the detected state per child (`— unchanged`,
163
+ * `— add`, `— update`), which is the answer the meta-question was standing in
164
+ * front of.
145
165
  */
146
166
  const buildChildPrompt = (plan, target, message, when) => {
147
167
  const children = childrenOf(plan, target);
@@ -159,7 +179,7 @@ const buildChildPrompt = (plan, target, message, when) => {
159
179
  .map((child) => child.key),
160
180
  };
161
181
  };
162
- /** Every child row a target contributes, across the bands in the plan. */
182
+ /** Every child row a target contributes, across the scopes in the plan. */
163
183
  const childrenOf = (plan, target) => plan.rows
164
184
  .filter((row) => row.target === target)
165
185
  .flatMap((row) => row.children ?? []);
@@ -167,7 +187,7 @@ const childrenOf = (plan, target) => plan.rows
167
187
  const isChosen = (row, chosen) => row.action !== "skip" &&
168
188
  (chosen === undefined
169
189
  ? row.selected
170
- : chosen.includes(rowKey(row.band, row.target)));
190
+ : chosen.includes(rowKey(row.scope, row.target)));
171
191
  /**
172
192
  * What a row DID, as a past-tense word. The row's detail says what and where;
173
193
  * the note says what happened to it, so a progress line and a recap line read
@@ -211,7 +231,7 @@ function childNote(row, kept) {
211
231
  *
212
232
  * @param rt - The per-invocation runtime.
213
233
  * @param mode - The entry point: the run-all, or one target.
214
- * @param scope - The resolved band selection.
234
+ * @param scope - The resolved scope selection.
215
235
  * @param removal - Compose the removal (`--undo`) instead of the install.
216
236
  * @returns The plan, the generator, and the answers-to-plan projection.
217
237
  * @note Impure — runs every selected target's real detection.
@@ -233,22 +253,41 @@ export async function buildSetupRun(rt, mode, scope, removal = false) {
233
253
  ["mcp", "Configure MCP for which files?"],
234
254
  ["lsp", "Install the extension into which editors?"],
235
255
  ].filter(([target]) => !removal && childrenOf(plan, target).length > 1);
236
- if (narrowable.length > 0) {
237
- const anyChosen = (answers) => {
256
+ for (const [target, message] of narrowable) {
257
+ // Asked whenever the row it narrows is in the run — one direct question,
258
+ // no meta-question in front of it. Removing a prompt cannot break the
259
+ // non-interactive paths: `autoPrompt`/`mcpPrompt` return each question's
260
+ // default, so a smaller prompt list means a smaller answer bag, and the
261
+ // compose bodies already read an absent child answer as "all". (The
262
+ // asymmetry is the reason this direction is safe: ADDING a defaultless
263
+ // prompt would hard-fail with MISSING_REQUIRED_ANSWER.)
264
+ const rowChosen = (answers) => {
238
265
  const chosen = readList(answers, ROWS_ANSWER);
239
- return narrowable.some(([target]) => plan.rows.some((row) => row.target === target && isChosen(row, chosen)));
266
+ return plan.rows.some((row) => row.target === target && isChosen(row, chosen));
240
267
  };
241
- prompts.push(buildCustomizePrompt(anyChosen));
242
- for (const [target, message] of narrowable) {
243
- const rowChosen = (answers) => {
244
- const chosen = readList(answers, ROWS_ANSWER);
245
- return plan.rows.some((row) => row.target === target && isChosen(row, chosen));
246
- };
247
- prompts.push(buildChildPrompt(plan, target, message, (answers) => answers.customize === true && rowChosen(answers)));
248
- }
268
+ prompts.push(buildChildPrompt(plan, target, message, rowChosen));
249
269
  }
250
270
  /** The detection behind a row, for composing and for re-reading its draft. */
251
- const detectionFor = (row) => detected.find((d) => d.target.id === row.target && d.band === row.band);
271
+ const detectionFor = (row) => detected.find((d) => d.target.id === row.target && d.scope === row.scope);
272
+ /**
273
+ * The success note a row's completion carries — ONE derivation for the
274
+ * recap's outcome and the live row event's `done` label, so the sentence a
275
+ * watcher saw land is the sentence the recap repeats. A removal never
276
+ * borrows the forward child summary: its children are the files the entry is
277
+ * being taken OUT of, and counting them as `1 updated` described the
278
+ * opposite of what the run had just done.
279
+ */
280
+ const noteFor = (row, answers) => {
281
+ if (removal)
282
+ return ACTION_NOTES[row.action];
283
+ const childKey = CHILD_ANSWER[row.target];
284
+ const kept = childKey === undefined ? undefined : readList(answers, childKey);
285
+ return childNote(row, kept) ?? ACTION_NOTES[row.action];
286
+ };
287
+ /** The live row listener, when a wizard is watching. See {@link SetupRun}. */
288
+ let rowListener;
289
+ /** The id column width — the recap's own rule, so the columns agree. */
290
+ const idWidth = Math.max(...plan.rows.map((row) => row.target.length));
252
291
  const generator = {
253
292
  meta: buildMeta(rt, mode === "all" ? `${BIN_NAME} setup` : `${BIN_NAME} setup ${mode}`),
254
293
  prompts,
@@ -267,9 +306,21 @@ export async function buildSetupRun(rt, mode, scope, removal = false) {
267
306
  const task = removal
268
307
  ? hit.target.composeRemoval(hit.detection)
269
308
  : hit.target.compose(hit.detection, children);
270
- return [{ key: rowKey(row.band, row.target), task }];
309
+ // The row's progress sentence — the `target detail — note` shape
310
+ // `renderProgressLine` prints — so the live view and the recap say the
311
+ // same thing about the same row.
312
+ const label = `${row.target.padEnd(idWidth)} ${row.detail}`;
313
+ const note = noteFor(row, answers);
314
+ return [
315
+ {
316
+ key: rowKey(row.scope, row.target),
317
+ label,
318
+ doneLabel: note === undefined ? label : `${label} — ${note}`,
319
+ task,
320
+ },
321
+ ];
271
322
  });
272
- return runRowsIsolated(sink, tasks);
323
+ return runRowsIsolated(sink, tasks, (event) => rowListener?.(event));
273
324
  },
274
325
  };
275
326
  /** The outcome one row ended in, read off the sink and its own draft. */
@@ -298,7 +349,7 @@ export async function buildSetupRun(rt, mode, scope, removal = false) {
298
349
  return { status: "noop", note: "unchanged" };
299
350
  if (!isChosen(row, chosen))
300
351
  return undefined;
301
- const error = sink.get(rowKey(row.band, row.target));
352
+ const error = sink.get(rowKey(row.scope, row.target));
302
353
  if (error !== undefined) {
303
354
  const pragma = rowPragmaError(error);
304
355
  return {
@@ -311,14 +362,7 @@ export async function buildSetupRun(rt, mode, scope, removal = false) {
311
362
  }
312
363
  if (!isActionable(row.action))
313
364
  return { status: "noop" };
314
- // A removal never borrows the forward child summary: its children are the
315
- // files the entry is being taken OUT of, and counting them as "1 updated"
316
- // described the opposite of what the run had just done.
317
- const childKey = CHILD_ANSWER[row.target];
318
- const kept = childKey === undefined ? undefined : readList(answers, childKey);
319
- const note = removal
320
- ? ACTION_NOTES[row.action]
321
- : (childNote(row, kept) ?? ACTION_NOTES[row.action]);
365
+ const note = noteFor(row, answers);
322
366
  return {
323
367
  status: removal ? "removed" : "done",
324
368
  ...(note === undefined ? {} : { note }),
@@ -327,6 +371,9 @@ export async function buildSetupRun(rt, mode, scope, removal = false) {
327
371
  return {
328
372
  plan,
329
373
  generator,
374
+ setRowListener: (listener) => {
375
+ rowListener = listener;
376
+ },
330
377
  applied: (answers) => {
331
378
  const chosen = readList(answers, ROWS_ANSWER);
332
379
  return withRows(plan, plan.rows.map((row) => {
@@ -1 +1 @@
1
- {"version":3,"file":"setupGenerator.js","sourceRoot":"","sources":["../../../../../src/capabilities/setup/operations/setupGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setupGenerator.js","sourceRoot":"","sources":["../../../../../src/capabilities/setup/operations/setupGenerator.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,10 @@
12
12
  * VSCodium/Cursor/Windsurf/Antigravity machines unable to install at all.
13
13
  *
14
14
  * `detectLsp` probes FOR REAL up front, and spawns NOTHING: an editor is
15
- * "present" when its CLI resolves on PATH (the `editorClis` registry names
16
- * them), and "installed" when its extensions dir holds a
17
- * `canonical.terrazzo-lsp-extension-<version>/` entry. Running
15
+ * detected when its CLI resolves on PATH (the `editorClis` registry names
16
+ * them), carries the extension when its extensions dir holds a
17
+ * `canonical.terrazzo-lsp-extension-<version>/` entry, and is "installed" when
18
+ * that entry is also new enough to work. Running
18
19
  * `--list-extensions` instead would be the natural probe, but Cursor's Linux
19
20
  * launcher OPENS THE EDITOR on that flag — a detection step must never launch
20
21
  * an app, so the fs is the source of truth. The full extension id is matched
@@ -99,37 +100,41 @@ const compareVersions = (left, right) => {
99
100
  return 0;
100
101
  };
101
102
  /**
102
- * Whether an editor's extensions dir holds a copy new enough to WORK.
103
+ * The two facts an editor's extensions dir answers: is a copy THERE, and is it
104
+ * new enough to WORK.
103
105
  *
104
- * Version-aware on purpose. Matching any `canonical.terrazzo-lsp-extension-*`
105
- * entry meant a machine carrying a build whose server cannot start reported
106
- * `installed`, so `setup lsp` skipped it and `doctor` called it healthy —
107
- * a wrong skip that reads as correct, which is worse than a wrong failure and
108
- * is exactly the trap this module's docblock warns about elsewhere. Everyone
109
- * who ran `setup lsp` before {@link MIN_EXTENSION_VERSION} would have kept a
110
- * dead language server forever, with nothing telling them why.
106
+ * `current` is version-aware on purpose. Matching any
107
+ * `canonical.terrazzo-lsp-extension-*` entry meant a machine carrying a build
108
+ * whose server cannot start reported `installed`, so `setup lsp` skipped it and
109
+ * `doctor` called it healthy — a wrong skip that reads as correct, which is
110
+ * worse than a wrong failure. Everyone who ran `setup lsp` before
111
+ * {@link MIN_EXTENSION_VERSION} would have kept a dead language server forever,
112
+ * with nothing telling them why. An unparseable suffix counts as too old: a
113
+ * directory this function cannot read the version of is one it cannot vouch for.
111
114
  *
112
- * An unparseable suffix counts as too old: a directory this function cannot
113
- * read the version of is one it cannot vouch for.
115
+ * `present` is the same probe WITHOUT the version gate, and it exists because
116
+ * removal asks a different question. A pre-0.8.3 copy is not `current`, but it
117
+ * is unquestionably there, and it is a copy this command installed — so a
118
+ * removal keyed on `current` would leave the dead extension on disk while
119
+ * reporting success. See {@link DetectedEditor}.
114
120
  */
115
- const extensionInstalled = (editor, platform) => {
121
+ const extensionState = (editor, platform) => {
116
122
  let entries;
117
123
  try {
118
124
  entries = readdirSync(editor.extensionsDir(platform));
119
125
  }
120
126
  catch {
121
- return false; // No extensions dir — nothing installed.
127
+ return { present: false, current: false }; // No dir — nothing installed.
122
128
  }
123
129
  const prefix = `${EXTENSION_ID}-`;
124
- return entries.some((entry) => {
125
- const lower = entry.toLowerCase();
126
- if (!lower.startsWith(prefix))
127
- return false;
128
- const version = parseVersion(lower.slice(prefix.length));
130
+ const matching = entries.filter((entry) => entry.toLowerCase().startsWith(prefix));
131
+ const current = matching.some((entry) => {
132
+ const version = parseVersion(entry.toLowerCase().slice(prefix.length));
129
133
  if (version === undefined)
130
134
  return false; // Unreadable: cannot vouch for it.
131
135
  return compareVersions(version, MINIMUM) >= 0;
132
136
  });
137
+ return { present: matching.length > 0, current };
133
138
  };
134
139
  /**
135
140
  * Probe every registry editor: CLI presence via PATH lookup, installed-state
@@ -144,10 +149,15 @@ export async function detectLsp(_cwd) {
144
149
  const platform = readPlatformEnv();
145
150
  const editors = editorClis
146
151
  .filter((editor) => cliOnPath(executableCandidates(editor.cli, platform)))
147
- .map((editor) => ({
148
- editor,
149
- installed: extensionInstalled(editor, platform),
150
- }));
152
+ .map((editor) => {
153
+ const { present, current } = extensionState(editor, platform);
154
+ return {
155
+ editor,
156
+ present,
157
+ installed: current,
158
+ extensionsDir: editor.extensionsDir(platform),
159
+ };
160
+ });
151
161
  const state = editors.length === 0
152
162
  ? "unknown"
153
163
  : editors.every((e) => e.installed)
@@ -244,28 +254,70 @@ export function composeLsp(d, chosen) {
244
254
  return sequence_([fetchVsix, ...sideloads]);
245
255
  }
246
256
  /**
247
- * Compose the removal — deliberately empty. An extension install is an `exec`,
248
- * and an `exec` carries no reversal: pretending otherwise is what made
249
- * `setup lsp --undo` report a step count for work it never did. The honest
250
- * answer is the plan row's, which names the editor CLI that CAN uninstall it
251
- * (see {@link lspUninstallRemedy}) or states that this machine has none.
257
+ * The editors this command OWNS an extension copy in right now — every detected
258
+ * editor whose extensions dir holds a `canonical.terrazzo-lsp-extension-*`
259
+ * entry, version-gate deliberately NOT applied (see {@link DetectedEditor}).
252
260
  *
253
- * @param _d - The detection (unused; the shape is the table's).
254
- * @returns An empty Task.
261
+ * Named and shaped like `ownedMcpGroups` and `ownedSkillLinks`, and for the
262
+ * same reason those exist: a reversal is composed from what detection says this
263
+ * command owns, never from what a fresh forward plan would create.
264
+ *
265
+ * @param d - The detection gathered up front.
266
+ * @returns The editors carrying a copy.
255
267
  */
256
- export function composeLspRemoval(_d) {
257
- return sequence_([]);
268
+ export const ownedLspEditors = (d) => d.editors.filter((e) => e.present);
269
+ /**
270
+ * Compose the removal: one `<editor cli> --uninstall-extension <id>` per owned
271
+ * editor, carried as the `undo` of a forward no-op.
272
+ *
273
+ * The docblock this replaces claimed "an `exec` carries no reversal". That was
274
+ * factually wrong about the effect model — `Exec` has an `undo` slot and `exec`
275
+ * takes `UndoOptions`. What is true is that `exec` has no DEFAULT undo; the
276
+ * caller supplies one, exactly as `composeMcpRemoval` does for its `mkdir`.
277
+ *
278
+ * The carrier is copied from `composeMcpRemoval`, and its trap is the reason
279
+ * for the shape: `runUndo` collects undos by walking the FORWARD task with
280
+ * effects MOCKED, so the forward side must be walkable without reading or
281
+ * mutating anything. A `mkdir` of the editor's own extensions directory — which
282
+ * `present` proves already exists — reads nothing and is a genuine no-op. Phase
283
+ * two then runs the uninstall against the real editor.
284
+ *
285
+ * @param d - The detection gathered up front.
286
+ * @returns A Task whose undo uninstalls the extension from each owned editor.
287
+ */
288
+ export function composeLspRemoval(d) {
289
+ const owned = ownedLspEditors(d);
290
+ // Nothing on this machine carries a copy — there is no honest work to model,
291
+ // and the plan row says so. Same shape as the other rows' empty removals.
292
+ if (owned.length === 0)
293
+ return sequence_([]);
294
+ return sequence_(owned.map(({ editor, extensionsDir }) => {
295
+ const command = `${editor.cli} --uninstall-extension ${EXTENSION_ID}`;
296
+ return mkdir(extensionsDir, true, {
297
+ undo: guardMissingBinary(editor.cli, {
298
+ message: `The \`${editor.cli}\` CLI disappeared from PATH mid-run — restore it, then run \`${BIN_NAME} setup lsp --undo\` again.`,
299
+ }, flatMap(exec(editor.cli, ["--uninstall-extension", EXTENSION_ID], extensionsDir), (result) => checkExecOk(command, result, {
300
+ message: `${editor.name} refused the uninstall (its output is above). ` +
301
+ `Remove it by hand with \`${command}\`.`,
302
+ }))),
303
+ });
304
+ }));
258
305
  }
259
306
  /**
260
307
  * The uninstall instruction for a detection — a command that runs on THIS
261
- * machine, or `undefined` when no editor CLI was found and there is therefore
262
- * nothing honest to print.
308
+ * machine, or `undefined` when nothing here carries the extension and there is
309
+ * therefore nothing honest to print.
310
+ *
311
+ * It names an OWNING editor. Reading `d.editors.at(0)` named the first editor
312
+ * on PATH instead, so a machine with Cursor installed and the extension only in
313
+ * VSCodium printed a command against the wrong editor — one that would report
314
+ * success having uninstalled nothing.
263
315
  *
264
316
  * @param d - The detection gathered up front.
265
317
  * @returns The uninstall command, or undefined.
266
318
  */
267
319
  export function lspUninstallRemedy(d) {
268
- const cli = d.editors.at(0)?.editor.cli;
320
+ const cli = ownedLspEditors(d).at(0)?.editor.cli;
269
321
  return cli === undefined
270
322
  ? undefined
271
323
  : `${cli} --uninstall-extension ${EXTENSION_ID}`;
@@ -1 +1 @@
1
- {"version":3,"file":"setupLsp.js","sourceRoot":"","sources":["../../../../../src/capabilities/setup/operations/setupLsp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setupLsp.js","sourceRoot":"","sources":["../../../../../src/capabilities/setup/operations/setupLsp.ts"],"names":[],"mappings":"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"}