@entelligentsia/forgecli 0.19.0 → 0.20.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 (249) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/bin/config.js +9 -9
  3. package/dist/bin/config.js.map +1 -1
  4. package/dist/bin/forge.js +3 -3
  5. package/dist/bin/forge.js.map +1 -1
  6. package/dist/bin/update-cli.js +2 -1
  7. package/dist/bin/update-cli.js.map +1 -1
  8. package/dist/extensions/forgecli/add-pipeline.js.map +1 -1
  9. package/dist/extensions/forgecli/add-task.js.map +1 -1
  10. package/dist/extensions/forgecli/approve.d.ts +2 -2
  11. package/dist/extensions/forgecli/approve.js +2 -2
  12. package/dist/extensions/forgecli/approve.js.map +1 -1
  13. package/dist/extensions/forgecli/ask-user-tool.js.map +1 -1
  14. package/dist/extensions/forgecli/audience-gate.js.map +1 -1
  15. package/dist/extensions/forgecli/calibrate.d.ts +1 -1
  16. package/dist/extensions/forgecli/calibrate.js +8 -10
  17. package/dist/extensions/forgecli/calibrate.js.map +1 -1
  18. package/dist/extensions/forgecli/collate.d.ts +2 -2
  19. package/dist/extensions/forgecli/collate.js +2 -2
  20. package/dist/extensions/forgecli/collate.js.map +1 -1
  21. package/dist/extensions/forgecli/commit.d.ts +2 -2
  22. package/dist/extensions/forgecli/commit.js +2 -2
  23. package/dist/extensions/forgecli/commit.js.map +1 -1
  24. package/dist/extensions/forgecli/config-command.js.map +1 -1
  25. package/dist/extensions/forgecli/config-layer.js +4 -2
  26. package/dist/extensions/forgecli/config-layer.js.map +1 -1
  27. package/dist/extensions/forgecli/config-tui/component.d.ts +1 -1
  28. package/dist/extensions/forgecli/config-tui/component.js +25 -21
  29. package/dist/extensions/forgecli/config-tui/component.js.map +1 -1
  30. package/dist/extensions/forgecli/config-tui/handler.js +2 -6
  31. package/dist/extensions/forgecli/config-tui/handler.js.map +1 -1
  32. package/dist/extensions/forgecli/config-tui/keys.js.map +1 -1
  33. package/dist/extensions/forgecli/config-tui/plugin-config-reader.js.map +1 -1
  34. package/dist/extensions/forgecli/config-tui/screens/advanced-menu.d.ts +2 -2
  35. package/dist/extensions/forgecli/config-tui/screens/advanced-menu.js +10 -8
  36. package/dist/extensions/forgecli/config-tui/screens/advanced-menu.js.map +1 -1
  37. package/dist/extensions/forgecli/config-tui/screens/confirm-quit.d.ts +2 -2
  38. package/dist/extensions/forgecli/config-tui/screens/confirm-quit.js +2 -5
  39. package/dist/extensions/forgecli/config-tui/screens/confirm-quit.js.map +1 -1
  40. package/dist/extensions/forgecli/config-tui/screens/override-editor.d.ts +2 -2
  41. package/dist/extensions/forgecli/config-tui/screens/override-editor.js +15 -11
  42. package/dist/extensions/forgecli/config-tui/screens/override-editor.js.map +1 -1
  43. package/dist/extensions/forgecli/config-tui/screens/overrides-list-phases.d.ts +2 -2
  44. package/dist/extensions/forgecli/config-tui/screens/overrides-list-phases.js +15 -11
  45. package/dist/extensions/forgecli/config-tui/screens/overrides-list-phases.js.map +1 -1
  46. package/dist/extensions/forgecli/config-tui/screens/overrides-list.d.ts +2 -2
  47. package/dist/extensions/forgecli/config-tui/screens/overrides-list.js +7 -4
  48. package/dist/extensions/forgecli/config-tui/screens/overrides-list.js.map +1 -1
  49. package/dist/extensions/forgecli/config-tui/screens/persona-editor.d.ts +2 -2
  50. package/dist/extensions/forgecli/config-tui/screens/persona-editor.js +6 -12
  51. package/dist/extensions/forgecli/config-tui/screens/persona-editor.js.map +1 -1
  52. package/dist/extensions/forgecli/config-tui/screens/persona-picker.d.ts +2 -2
  53. package/dist/extensions/forgecli/config-tui/screens/persona-picker.js +3 -6
  54. package/dist/extensions/forgecli/config-tui/screens/persona-picker.js.map +1 -1
  55. package/dist/extensions/forgecli/config-tui/screens/personas-list.d.ts +2 -2
  56. package/dist/extensions/forgecli/config-tui/screens/personas-list.js +2 -2
  57. package/dist/extensions/forgecli/config-tui/screens/personas-list.js.map +1 -1
  58. package/dist/extensions/forgecli/config-tui/screens/shared.d.ts +1 -1
  59. package/dist/extensions/forgecli/config-tui/screens/shared.js +4 -5
  60. package/dist/extensions/forgecli/config-tui/screens/shared.js.map +1 -1
  61. package/dist/extensions/forgecli/config-tui/screens/show-resolved.d.ts +2 -2
  62. package/dist/extensions/forgecli/config-tui/screens/show-resolved.js +9 -11
  63. package/dist/extensions/forgecli/config-tui/screens/show-resolved.js.map +1 -1
  64. package/dist/extensions/forgecli/config-tui/screens/tier-menu.d.ts +2 -2
  65. package/dist/extensions/forgecli/config-tui/screens/tier-menu.js +2 -2
  66. package/dist/extensions/forgecli/config-tui/screens/tier-menu.js.map +1 -1
  67. package/dist/extensions/forgecli/config-tui/screens/tier-picker.d.ts +2 -2
  68. package/dist/extensions/forgecli/config-tui/screens/tier-picker.js +12 -3
  69. package/dist/extensions/forgecli/config-tui/screens/tier-picker.js.map +1 -1
  70. package/dist/extensions/forgecli/config-tui/screens/types.d.ts +1 -1
  71. package/dist/extensions/forgecli/config-tui/screens.d.ts +10 -10
  72. package/dist/extensions/forgecli/config-tui/screens.js +16 -16
  73. package/dist/extensions/forgecli/config-tui/screens.js.map +1 -1
  74. package/dist/extensions/forgecli/config-tui/state/buffer.d.ts +2 -2
  75. package/dist/extensions/forgecli/config-tui/state/buffer.js +1 -2
  76. package/dist/extensions/forgecli/config-tui/state/buffer.js.map +1 -1
  77. package/dist/extensions/forgecli/config-tui/state/constants.js.map +1 -1
  78. package/dist/extensions/forgecli/config-tui/state/index.d.ts +3 -3
  79. package/dist/extensions/forgecli/config-tui/state/index.js +2 -2
  80. package/dist/extensions/forgecli/config-tui/state/index.js.map +1 -1
  81. package/dist/extensions/forgecli/config-tui/state/init.js.map +1 -1
  82. package/dist/extensions/forgecli/config-tui/state/reducer.js +2 -4
  83. package/dist/extensions/forgecli/config-tui/state/reducer.js.map +1 -1
  84. package/dist/extensions/forgecli/config-tui/state/selectors.d.ts +1 -1
  85. package/dist/extensions/forgecli/config-tui/state/selectors.js +7 -6
  86. package/dist/extensions/forgecli/config-tui/state/selectors.js.map +1 -1
  87. package/dist/extensions/forgecli/config-tui/state.d.ts +3 -3
  88. package/dist/extensions/forgecli/config-tui/state.js +2 -2
  89. package/dist/extensions/forgecli/config-tui/state.js.map +1 -1
  90. package/dist/extensions/forgecli/config-tui/theme.js +1 -1
  91. package/dist/extensions/forgecli/config-tui/theme.js.map +1 -1
  92. package/dist/extensions/forgecli/config-tui/tier-meta.js.map +1 -1
  93. package/dist/extensions/forgecli/config-writer.js +4 -2
  94. package/dist/extensions/forgecli/config-writer.js.map +1 -1
  95. package/dist/extensions/forgecli/enhance.d.ts +2 -2
  96. package/dist/extensions/forgecli/enhance.js +3 -3
  97. package/dist/extensions/forgecli/enhance.js.map +1 -1
  98. package/dist/extensions/forgecli/fix-bug.d.ts +1 -1
  99. package/dist/extensions/forgecli/fix-bug.js +148 -58
  100. package/dist/extensions/forgecli/fix-bug.js.map +1 -1
  101. package/dist/extensions/forgecli/forge-artifact-tool.d.ts +8 -1
  102. package/dist/extensions/forgecli/forge-artifact-tool.js +85 -15
  103. package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -1
  104. package/dist/extensions/forgecli/forge-commands.js.map +1 -1
  105. package/dist/extensions/forgecli/forge-header.d.ts +1 -1
  106. package/dist/extensions/forgecli/forge-header.js +1 -1
  107. package/dist/extensions/forgecli/forge-header.js.map +1 -1
  108. package/dist/extensions/forgecli/forge-init/phase-descriptors.js +14 -5
  109. package/dist/extensions/forgecli/forge-init/phase-descriptors.js.map +1 -1
  110. package/dist/extensions/forgecli/forge-init/phase4-register.js +1 -1
  111. package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -1
  112. package/dist/extensions/forgecli/forge-init.js +5 -7
  113. package/dist/extensions/forgecli/forge-init.js.map +1 -1
  114. package/dist/extensions/forgecli/forge-subagent.d.ts +1 -1
  115. package/dist/extensions/forgecli/forge-subagent.js +4 -2
  116. package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
  117. package/dist/extensions/forgecli/forge-tools.js +10 -4
  118. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  119. package/dist/extensions/forgecli/forge-update-command.d.ts +32 -11
  120. package/dist/extensions/forgecli/forge-update-command.js +207 -155
  121. package/dist/extensions/forgecli/forge-update-command.js.map +1 -1
  122. package/dist/extensions/forgecli/friction-emit.js +3 -5
  123. package/dist/extensions/forgecli/friction-emit.js.map +1 -1
  124. package/dist/extensions/forgecli/health-check.js +10 -6
  125. package/dist/extensions/forgecli/health-check.js.map +1 -1
  126. package/dist/extensions/forgecli/hook-dispatcher.js +2 -2
  127. package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
  128. package/dist/extensions/forgecli/hooks/check-update.js.map +1 -1
  129. package/dist/extensions/forgecli/hooks/forge-permissions.js.map +1 -1
  130. package/dist/extensions/forgecli/hooks/post-init-hook.js +1 -1
  131. package/dist/extensions/forgecli/hooks/post-init-hook.js.map +1 -1
  132. package/dist/extensions/forgecli/hooks/post-sprint-hook.js +1 -1
  133. package/dist/extensions/forgecli/hooks/post-sprint-hook.js.map +1 -1
  134. package/dist/extensions/forgecli/hooks/write-guard.js +5 -3
  135. package/dist/extensions/forgecli/hooks/write-guard.js.map +1 -1
  136. package/dist/extensions/forgecli/implement.d.ts +2 -2
  137. package/dist/extensions/forgecli/implement.js +2 -2
  138. package/dist/extensions/forgecli/implement.js.map +1 -1
  139. package/dist/extensions/forgecli/index.js +47 -41
  140. package/dist/extensions/forgecli/index.js.map +1 -1
  141. package/dist/extensions/forgecli/input-router.js +4 -1
  142. package/dist/extensions/forgecli/input-router.js.map +1 -1
  143. package/dist/extensions/forgecli/lib/catalog-helpers.js +2 -1
  144. package/dist/extensions/forgecli/lib/catalog-helpers.js.map +1 -1
  145. package/dist/extensions/forgecli/lib/catalog-loader.js.map +1 -1
  146. package/dist/extensions/forgecli/lib/catalog-types.js +1 -6
  147. package/dist/extensions/forgecli/lib/catalog-types.js.map +1 -1
  148. package/dist/extensions/forgecli/lib/exec-helpers.js +1 -1
  149. package/dist/extensions/forgecli/lib/exec-helpers.js.map +1 -1
  150. package/dist/extensions/forgecli/lib/forge-config.js.map +1 -1
  151. package/dist/extensions/forgecli/lib/orchestrator-preflight.js.map +1 -1
  152. package/dist/extensions/forgecli/lib/parsers.js.map +1 -1
  153. package/dist/extensions/forgecli/lib/spawn-store-cli.js +17 -7
  154. package/dist/extensions/forgecli/lib/spawn-store-cli.js.map +1 -1
  155. package/dist/extensions/forgecli/materialize.js.map +1 -1
  156. package/dist/extensions/forgecli/migrate.js +1 -1
  157. package/dist/extensions/forgecli/migrate.js.map +1 -1
  158. package/dist/extensions/forgecli/migration-engine.js +3 -6
  159. package/dist/extensions/forgecli/migration-engine.js.map +1 -1
  160. package/dist/extensions/forgecli/model-resolver.js.map +1 -1
  161. package/dist/extensions/forgecli/model-validator.js.map +1 -1
  162. package/dist/extensions/forgecli/parsers/persona-skill-loader.js +1 -1
  163. package/dist/extensions/forgecli/parsers/workflow-loader.js +2 -6
  164. package/dist/extensions/forgecli/parsers/workflow-loader.js.map +1 -1
  165. package/dist/extensions/forgecli/paths/migrator.js +2 -7
  166. package/dist/extensions/forgecli/paths/migrator.js.map +1 -1
  167. package/dist/extensions/forgecli/plan.d.ts +2 -2
  168. package/dist/extensions/forgecli/plan.js +2 -2
  169. package/dist/extensions/forgecli/plan.js.map +1 -1
  170. package/dist/extensions/forgecli/quiz-agent.js.map +1 -1
  171. package/dist/extensions/forgecli/read-command.js +1 -1
  172. package/dist/extensions/forgecli/read-command.js.map +1 -1
  173. package/dist/extensions/forgecli/regenerate.js +1 -3
  174. package/dist/extensions/forgecli/regenerate.js.map +1 -1
  175. package/dist/extensions/forgecli/remove-command.js.map +1 -1
  176. package/dist/extensions/forgecli/report-bug.js +2 -2
  177. package/dist/extensions/forgecli/report-bug.js.map +1 -1
  178. package/dist/extensions/forgecli/retrospective.js +2 -2
  179. package/dist/extensions/forgecli/retrospective.js.map +1 -1
  180. package/dist/extensions/forgecli/review-code.d.ts +2 -2
  181. package/dist/extensions/forgecli/review-code.js +2 -2
  182. package/dist/extensions/forgecli/review-code.js.map +1 -1
  183. package/dist/extensions/forgecli/review-plan.d.ts +2 -2
  184. package/dist/extensions/forgecli/review-plan.js +2 -2
  185. package/dist/extensions/forgecli/review-plan.js.map +1 -1
  186. package/dist/extensions/forgecli/review-server.js +3 -5
  187. package/dist/extensions/forgecli/review-server.js.map +1 -1
  188. package/dist/extensions/forgecli/run-sprint.d.ts +1 -1
  189. package/dist/extensions/forgecli/run-sprint.js +27 -21
  190. package/dist/extensions/forgecli/run-sprint.js.map +1 -1
  191. package/dist/extensions/forgecli/run-task.js +102 -42
  192. package/dist/extensions/forgecli/run-task.js.map +1 -1
  193. package/dist/extensions/forgecli/session-registry.js.map +1 -1
  194. package/dist/extensions/forgecli/skill-curator-subagent.js +4 -8
  195. package/dist/extensions/forgecli/skill-curator-subagent.js.map +1 -1
  196. package/dist/extensions/forgecli/skill-retriever.js +1 -1
  197. package/dist/extensions/forgecli/skill-retriever.js.map +1 -1
  198. package/dist/extensions/forgecli/skill-usage-tracker.js +1 -1
  199. package/dist/extensions/forgecli/skill-usage-tracker.js.map +1 -1
  200. package/dist/extensions/forgecli/status-command.js.map +1 -1
  201. package/dist/extensions/forgecli/store-error-remediation.js +16 -8
  202. package/dist/extensions/forgecli/store-error-remediation.js.map +1 -1
  203. package/dist/extensions/forgecli/store-query.js.map +1 -1
  204. package/dist/extensions/forgecli/store-repair.js.map +1 -1
  205. package/dist/extensions/forgecli/store-resolver.js +1 -1
  206. package/dist/extensions/forgecli/store-resolver.js.map +1 -1
  207. package/dist/extensions/forgecli/store-validator.js +1 -1
  208. package/dist/extensions/forgecli/store-validator.js.map +1 -1
  209. package/dist/extensions/forgecli/subagent/agents.js +1 -1
  210. package/dist/extensions/forgecli/subagent/agents.js.map +1 -1
  211. package/dist/extensions/forgecli/subagent/index.js +1 -1
  212. package/dist/extensions/forgecli/subagent/index.js.map +1 -1
  213. package/dist/extensions/forgecli/test-orchestrate.js +1 -1
  214. package/dist/extensions/forgecli/test-orchestrate.js.map +1 -1
  215. package/dist/extensions/forgecli/thread-switcher.js +8 -18
  216. package/dist/extensions/forgecli/thread-switcher.js.map +1 -1
  217. package/dist/extensions/forgecli/transition-guard.js +1 -1
  218. package/dist/extensions/forgecli/transition-guard.js.map +1 -1
  219. package/dist/extensions/forgecli/update-tools.js +1 -2
  220. package/dist/extensions/forgecli/update-tools.js.map +1 -1
  221. package/dist/extensions/forgecli/validate.d.ts +2 -2
  222. package/dist/extensions/forgecli/validate.js +2 -2
  223. package/dist/extensions/forgecli/validate.js.map +1 -1
  224. package/dist/extensions/forgecli/viewport-events.js +2 -2
  225. package/dist/extensions/forgecli/viewport-events.js.map +1 -1
  226. package/dist/extensions/forgecli/wf-engine/engine.d.ts +1 -1
  227. package/dist/extensions/forgecli/wf-engine/engine.js +51 -31
  228. package/dist/extensions/forgecli/wf-engine/engine.js.map +1 -1
  229. package/dist/extensions/forgecli/wf-engine/event-parser.js.map +1 -1
  230. package/dist/extensions/forgecli/wf-engine/id-gen.js +4 -1
  231. package/dist/extensions/forgecli/wf-engine/id-gen.js.map +1 -1
  232. package/dist/extensions/forgecli/wf-engine/loader.js +7 -7
  233. package/dist/extensions/forgecli/wf-engine/loader.js.map +1 -1
  234. package/dist/extensions/forgecli/wf-engine/predicate.js +14 -7
  235. package/dist/extensions/forgecli/wf-engine/predicate.js.map +1 -1
  236. package/dist/extensions/forgecli/wf-engine/prompt-compiler.js.map +1 -1
  237. package/dist/extensions/forgecli/wf-engine/register.js +1 -1
  238. package/dist/extensions/forgecli/wf-engine/register.js.map +1 -1
  239. package/dist/extensions/forgecli/wf-engine/remit-check.js +3 -3
  240. package/dist/extensions/forgecli/wf-engine/remit-check.js.map +1 -1
  241. package/dist/extensions/forgecli/wf-engine/state-store.js +7 -3
  242. package/dist/extensions/forgecli/wf-engine/state-store.js.map +1 -1
  243. package/dist/extensions/forgecli/wf-engine/worker.js +3 -3
  244. package/dist/extensions/forgecli/wf-engine/worker.js.map +1 -1
  245. package/dist/extensions/forgecli/whats-new-widget.js +8 -6
  246. package/dist/extensions/forgecli/whats-new-widget.js.map +1 -1
  247. package/dist/extensions/forgecli/whats-new.js +1 -2
  248. package/dist/extensions/forgecli/whats-new.js.map +1 -1
  249. package/package.json +1 -1
@@ -1,21 +1,27 @@
1
- // Guided /forge:update command + bundled-forge drift prompt — FORGE-S16-T15.
2
- // Migration apply integration — FORGE-S23-T01.
1
+ // /forge:update CLI preflight + patched plugin-native flow (FORGE-BUG-039).
3
2
  //
4
- // Single update path: detect npm install method, refuse non-global, show
5
- // changelog from GitHub releases (Entelligentsia/forge-cli), confirm via
6
- // ctx.ui.confirm, then spawn `npm i -g @entelligentsia/forgecli@latest` via
7
- // execFile (argv array — no shell). After upgrade, prompt to run migrations
8
- // from the old bundled-forge version to the new one.
3
+ // Two-layer kickoff-shim architecture:
4
+ // Layer 1 (TypeScript): CLI-specific preflight install method detection,
5
+ // npm changelog + upgrade. NOT handled by the plugin's update.md.
6
+ // Layer 2 (agent follows update.md): Full 7-step plugin update workflow
7
+ // with surgical text patches for forge-cli context differences.
9
8
  //
10
- // Version detection uses the npm registry (authoritative); GitHub releases are
11
- // used only for the changelog body via a tag-specific URL.
9
+ // This replaces the previous monolithic TypeScript reimplementation that:
10
+ // - Missed generation-manifest checks (data loss risk)
11
+ // - Bypassed /forge:regenerate's modification guard + snapshot replay
12
+ // - Skipped Steps 5 (pipeline audit) and 7 (KB link refresh)
13
+ // - Always lagged behind the plugin's evolving workflow
14
+ //
15
+ // The patched update.md is read from the bundled payload at runtime,
16
+ // so plugin changes are automatically picked up. Patches are minimal
17
+ // and validated by tests.
12
18
  import { execFile } from "node:child_process";
13
- import { promises as fs, existsSync, readFileSync } from "node:fs";
19
+ import { existsSync, promises as fs, readFileSync } from "node:fs";
14
20
  import * as path from "node:path";
15
21
  import { promisify } from "node:util";
16
- import { getUserCacheDir } from "./paths/paths.js";
17
22
  import { getBundledPayloadRoot } from "./forge-init.js";
18
- import { runMigrations } from "./migration-engine.js";
23
+ import { sendKickoff } from "./kickoff.js";
24
+ import { getUserCacheDir } from "./paths/paths.js";
19
25
  const execFileAsync = promisify(execFile);
20
26
  const PKG_NAME = "@entelligentsia/forgecli";
21
27
  const NPM_DIST_TAGS_URL = "https://registry.npmjs.org/@entelligentsia/forgecli";
@@ -26,10 +32,6 @@ const PROBE_TIMEOUT_MS = 5000;
26
32
  const UPGRADE_TIMEOUT_MS = 120_000;
27
33
  const NPM_ROOT_TIMEOUT_MS = 5000;
28
34
  const BODY_EXCERPT_MAX = 1200;
29
- /**
30
- * Classify how the running forgecli was installed by inspecting its package
31
- * root path. Pure function — easy to unit-test.
32
- */
33
35
  export function detectInstallMethod(opts) {
34
36
  const norm = path.resolve(opts.pkgRoot);
35
37
  if (/[/\\]_npx[/\\]/.test(norm))
@@ -50,7 +52,6 @@ export async function getNpmGlobalRoot(runner) {
50
52
  }
51
53
  }
52
54
  export async function fetchChangelog(fetchImpl) {
53
- // Step 1: get latest version from npm (authoritative — GitHub releases may lag).
54
55
  const npmCtl = new AbortController();
55
56
  const npmTimer = setTimeout(() => npmCtl.abort(), PROBE_TIMEOUT_MS);
56
57
  let npmVersion = null;
@@ -74,7 +75,6 @@ export async function fetchChangelog(fetchImpl) {
74
75
  if (!npmVersion)
75
76
  return null;
76
77
  const version = npmVersion.startsWith("v") ? npmVersion.slice(1) : npmVersion;
77
- // Step 2: fetch changelog body from the tag-specific GitHub release (optional).
78
78
  const ghCtl = new AbortController();
79
79
  const ghTimer = setTimeout(() => ghCtl.abort(), PROBE_TIMEOUT_MS);
80
80
  let releaseBody = "";
@@ -150,13 +150,15 @@ export async function runUpgrade(spec, runner) {
150
150
  function truncate(s, max) {
151
151
  return s.length > max ? `${s.slice(0, max)}…` : s;
152
152
  }
153
- // ── Bundled-forge drift detection (Q7) ─────────────────────────────────────
153
+ // ── Bundled-forge drift detection (session-start hook) ──────────────────────
154
154
  //
155
155
  // On every session_start we compare the bundled-forge version recorded in the
156
156
  // drift cache against the current package.json forge.bundledVersion. If the
157
157
  // version changed and we have not already prompted for it, emit a one-shot
158
- // migration prompt. The cache is per-version idempotent: re-prompting only
159
- // happens after another change.
158
+ // migration prompt. The cache is per-version idempotent.
159
+ //
160
+ // This hook is independent of the /forge:update command — it runs at session
161
+ // start, before the user invokes any command.
160
162
  const DRIFT_CACHE_FILE = "drift-seen.json";
161
163
  function defaultCacheDir() {
162
164
  return getUserCacheDir();
@@ -206,163 +208,212 @@ export async function checkBundledForgeDrift(opts) {
206
208
  // fail-silent — banner already shown if applicable
207
209
  }
208
210
  }
211
+ /**
212
+ * Read the bundled update.md and apply forge-cli-specific patches.
213
+ *
214
+ * The plugin's update.md was written for Claude Code's plugin architecture.
215
+ * forge-cli uses a bundled payload instead of the Claude Code plugin cache,
216
+ * so we patch:
217
+ *
218
+ * 1. FORGE_ROOT: Replace CLAUDE_PLUGIN_ROOT with bundled payload path
219
+ * 2. IS_CANARY: Always true (bundle is never in /.claude/plugins/)
220
+ * 3. DISTRIBUTION: Always "forge@forge" (no marketplace detection)
221
+ * 4. migrations.json: Bundle puts it in .schemas/, not top-level
222
+ * 5. CLI preflight result: Instruct agent to skip Steps 1/2A/3
223
+ * 6. CLAUDE_PLUGIN_DATA: Replace with bundled payload path
224
+ *
225
+ * All patches are pure string replacements — no AST parsing needed.
226
+ * If a patch target isn't found, we log a warning but don't crash
227
+ * (the agent may still be able to follow the unpatched instructions
228
+ * partially).
229
+ */
230
+ export function composeUpdateKickoff(updateMd, bundleRoot, preflight) {
231
+ let patched = updateMd;
232
+ // Patch 1: FORGE_ROOT — replace Claude Code directive with literal path
233
+ // Original: FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
234
+ // Patched: FORGE_ROOT = <bundledPayloadRoot>
235
+ const forgeRootDirective = '!`echo "${CLAUDE_PLUGIN_ROOT}"`';
236
+ if (patched.includes(forgeRootDirective)) {
237
+ patched = patched.replaceAll(forgeRootDirective, bundleRoot);
238
+ }
239
+ // Patch 1b: Second occurrence is in Step 3's "Re-derive FORGE_ROOT"
240
+ // Same directive appears there. Already handled by replaceAll above.
241
+ // Patch 2: CLAUDE_PLUGIN_DATA — used for legacy cache fallback
242
+ // Replace with bundle root since forge-cli doesn't have plugin data dir
243
+ if (patched.includes("${CLAUDE_PLUGIN_DATA}")) {
244
+ patched = patched.replaceAll("${CLAUDE_PLUGIN_DATA}", bundleRoot);
245
+ }
246
+ // Patch 3: IS_CANARY — force to true. The plugin's canary detection
247
+ // checks for "/.claude/plugins/" in FORGE_ROOT, which never matches
248
+ // the bundled payload path. Setting IS_CANARY=true ensures:
249
+ // - Row 3 triggers (skip Step 2A — no plugin manager install)
250
+ // - Step 3 re-derivation is skipped (FORGE_ROOT doesn't change)
251
+ // We insert this right after the IS_CANARY detection paragraph.
252
+ const canaryAnchor = "**Canary / source install** (`IS_CANARY = true`)";
253
+ if (patched.includes(canaryAnchor)) {
254
+ patched = patched.replace(canaryAnchor, ` forge-cli: IS_CANARY is ALWAYS true — the bundled payload is never in the Claude Code plugin directory. ` +
255
+ "Row 3 of the decision table always applies: skip Step 2A, proceed to Step 2B. " +
256
+ "`IS_CANARY` = true");
257
+ }
258
+ // Patch 4: DISTRIBUTION — forge-cli always uses canary distribution
259
+ // Insert after the distribution table
260
+ const distAnchor = "| anything else | `forge@forge` / canary |";
261
+ if (patched.includes(distAnchor)) {
262
+ patched = patched.replace(distAnchor, distAnchor +
263
+ "\n\n> **forge-cli note:** The bundled payload is never in the Claude Code plugin cache, " +
264
+ 'so DISTRIBUTION is always `forge@forge` / canary. Set `DISTRIBUTION = "forge@forge"` now.');
265
+ }
266
+ // Patch 5: migrations.json path — bundle puts it in .schemas/, not top-level
267
+ // Step 2B reads: Read `$FORGE_ROOT/migrations.json` (local).
268
+ // Step 4 reads: Read `$FORGE_ROOT/migrations.json` (local — now updated after install).
269
+ if (patched.includes("$FORGE_ROOT/migrations.json")) {
270
+ patched = patched.replaceAll("$FORGE_ROOT/migrations.json", "$FORGE_ROOT/.schemas/migrations.json");
271
+ }
272
+ // Patch 6: CLI preflight result — inject before Step 1
273
+ // This tells the agent what the CLI preflight already did so it can
274
+ // skip the remote version check, Step 2A, and Step 3.
275
+ const cliResult = [
276
+ "",
277
+ "---",
278
+ "",
279
+ "## forge-cli: CLI Preflight Result",
280
+ "",
281
+ `Install method: **${preflight.method}**`,
282
+ preflight.upgraded
283
+ ? `CLI upgraded: **${preflight.cliOldVersion} → ${preflight.cliNewVersion}**`
284
+ : "No CLI upgrade needed (or not eligible).",
285
+ preflight.npmVersion
286
+ ? `Remote version (npm): **${preflight.npmVersion}**`
287
+ : preflight.npmFetchFailed
288
+ ? "Could not reach npm registry — proceeding with local version only."
289
+ : "",
290
+ `LOCAL_VERSION (bundled forge): **${preflight.bundledForgeVersion}**`,
291
+ "",
292
+ "**Action for the agent:**",
293
+ preflight.npmFetchFailed
294
+ ? "- Could not reach registry → use LOCAL_VERSION as both local and remote"
295
+ : "- Use LOCAL_VERSION and the npm version above for the decision table",
296
+ "- **Skip Step 2A** — CLI already handled npm upgrade (or not applicable)",
297
+ "- **Skip Step 3** — FORGE_ROOT does not change in forge-cli (npm path is stable)",
298
+ "- Resume detection (FR-002): check `.forge/update-check-cache.json` `updateStatus` as usual",
299
+ "- All other steps (1, 2B, 4, 5, 6, 7) proceed normally",
300
+ `- **FORGE_ROOT resolution**: When reading bundled commands or workflows (e.g. regenerate.md, update-tools.md), replace any Claude-Code plugin-root env-var reference with ${bundleRoot}. FORGE_ROOT = ${bundleRoot} in forge-cli.`,
301
+ `- **Step 6 migratedFrom**: Write migratedFrom: LOCAL_VERSION (the CURRENT version after update, e.g. ${preflight.bundledForgeVersion}), NOT the old baseline. This ensures subsequent updates correctly detect the project is up to date.`,
302
+ `- **substitute-placeholders base-pack path**: In forge-cli, the base-pack is at ${bundleRoot}/.base-pack/ (not init/base-pack). When invoking substitute-placeholders.cjs, pass --base-pack ${bundleRoot}/.base-pack to avoid "base-pack not found" errors.`,
303
+ "",
304
+ "---",
305
+ "",
306
+ ].join("\n");
307
+ // Insert before "## Step 1"
308
+ const step1Anchor = "## Step 1 — Check for updates";
309
+ if (patched.includes(step1Anchor)) {
310
+ patched = patched.replace(step1Anchor, cliResult + step1Anchor);
311
+ }
312
+ return patched;
313
+ }
209
314
  export function registerForgeUpdateCommand(pi, opts) {
210
315
  pi.registerCommand("forge:update", {
211
- description: "Guided upgrade for forgecli (npm i -g) + bundled forge migration prompts",
316
+ description: "Guided upgrade for forgecli (npm i -g) + project migration via plugin-native update workflow",
212
317
  async handler(_args, ctx) {
213
318
  const fetchImpl = opts.fetchImpl ?? fetch;
214
319
  const resolveGlobal = opts.globalRootResolver ?? (() => getNpmGlobalRoot());
215
320
  const upgrade = opts.upgradeRunner ?? ((spec) => runUpgrade(spec));
216
- // 1. Install method detection (AC#1)
321
+ // ── Layer 1: CLI Preflight ───────────────────────────────────────
217
322
  const globalRoot = await resolveGlobal();
218
323
  const method = detectInstallMethod({ pkgRoot: opts.pkgRoot, globalRoot });
324
+ let release = null;
325
+ let upgraded = false;
326
+ let cliOldVersion;
327
+ let cliNewVersion;
219
328
  if (method !== "global") {
220
- ctx.ui.notify(`forge:update — install method '${method}' is not eligible for guided upgrade. ` +
221
- `Only globally-installed forgecli is supported. ` +
222
- `To upgrade manually: npm i -g ${PKG_NAME}@latest`, "warning");
223
- return;
224
- }
225
- // 2. Fetch latest changelog (AC#2)
226
- ctx.ui.setStatus("forge:update", "Fetching latest release notes…");
227
- const release = await fetchChangelog(fetchImpl);
228
- ctx.ui.setStatus("forge:update", undefined);
229
- if (!release) {
230
- ctx.ui.notify("forge:update — could not reach the npm registry to check for updates. " +
231
- `Check your network and retry, or upgrade manually: npm i -g ${PKG_NAME}@latest`, "error");
232
- return;
233
- }
234
- // CLI npm-package upgrade and project↔bundle migration are orthogonal:
235
- // the bundle can drift even when the CLI is already at npm's latest
236
- // (locally-built CLI ahead of npm, fresh machine, cleared drift cache).
237
- // Run each gate independently — both fall through to the migration
238
- // block, only confirm-decline / npm-failure short-circuit. (#32 follow-up)
239
- const current = opts.currentCliVersion;
240
- if (!isUpgrade(current, release.version)) {
241
- ctx.ui.notify(`forge:update — already at the latest version (${current}; latest published: ${release.version}).`, "info");
329
+ ctx.ui.notify(`forge:update — install method '${method}' is not eligible for guided npm upgrade. ` +
330
+ `To upgrade the CLI manually: npm i -g ${PKG_NAME}@latest. ` +
331
+ "Proceeding to project update…", "warning");
242
332
  }
243
333
  else {
244
- // 3. Show changelog + confirm (AC#3)
245
- const summary = composeChangelogSummary(current, release.version, release.body);
246
- const proceed = await ctx.ui.confirm(`Upgrade forgecli ${current} → ${release.version}?`, summary);
247
- if (!proceed) {
248
- ctx.ui.notify("forge:update — cancelled.", "info");
249
- return;
250
- }
251
- // 4. Spawn npm i -g (AC#4 — execFile, no shell)
252
- ctx.ui.setStatus("forge:update", `Upgrading to ${release.version}…`);
253
- const result = await upgrade(`${PKG_NAME}@${release.version}`);
334
+ // Fetch latest changelog + confirm upgrade
335
+ ctx.ui.setStatus("forge:update", "Fetching latest release notes…");
336
+ release = await fetchChangelog(fetchImpl);
254
337
  ctx.ui.setStatus("forge:update", undefined);
255
- if (!result.ok) {
256
- ctx.ui.notify(`forge:update — npm i -g failed: ${truncate(result.stderr, 400)}. ` +
257
- "Check the error above; you may need elevated permissions to install globally.", "error");
258
- return;
338
+ if (!release) {
339
+ ctx.ui.notify("forge:update — could not reach the npm registry to check for updates. " +
340
+ `Check your network and retry, or upgrade manually: npm i -g ${PKG_NAME}@latest. ` +
341
+ "Proceeding to project update…", "warning");
259
342
  }
260
- ctx.ui.notify(`forge:update — installed ${PKG_NAME}@${release.version}. ` +
261
- "Restart your forge session for the new version to take effect.", "info");
262
- }
263
- // 5. Migration prompt offer to apply project migrations (§2A, §2D)
264
- // Only runs when the caller has opted into migration support by providing
265
- // migrationRunner or currentBundledForgeVersion. Without those the command
266
- // was invoked in a context where migrations are not wired (e.g. tests for
267
- // the base upgrade flow, or environments without a bundled payload).
268
- if (opts.migrationRunner === undefined && opts.currentBundledForgeVersion === undefined) {
269
- return;
270
- }
271
- // fromVersion comes from the drift cache (what the bundle was before upgrade).
272
- // toVersion comes from the newly installed bundle's plugin.json.
273
- const cacheDir = opts.driftCacheDir ?? defaultCacheDir();
274
- const driftCache = await readDriftCache(cacheDir);
275
- const fromVersion = driftCache.lastSeenBundledForgeVersion;
276
- // Read toVersion from the newly installed bundle's plugin.json
277
- let toVersion = opts.currentBundledForgeVersion ?? null;
278
- if (!toVersion) {
343
+ else {
344
+ const current = opts.currentCliVersion;
345
+ if (!isUpgrade(current, release.version)) {
346
+ ctx.ui.notify(`forge:updatealready at the latest version (${current}; latest published: ${release.version}).`, "info");
347
+ }
348
+ else {
349
+ const summary = composeChangelogSummary(current, release.version, release.body);
350
+ const proceed = await ctx.ui.confirm(`Upgrade forgecli ${current} ${release.version}?`, summary);
351
+ if (!proceed) {
352
+ ctx.ui.notify("forge:update — npm upgrade cancelled. Proceeding to project update…", "info");
353
+ }
354
+ else {
355
+ ctx.ui.setStatus("forge:update", `Upgrading to ${release.version}…`);
356
+ const result = await upgrade(`${PKG_NAME}@${release.version}`);
357
+ ctx.ui.setStatus("forge:update", undefined);
358
+ if (!result.ok) {
359
+ ctx.ui.notify(`forge:update npm i -g failed: ${truncate(result.stderr, 400)}. ` +
360
+ "Check the error above; you may need elevated permissions. " +
361
+ "Proceeding to project update…", "error");
362
+ }
363
+ else {
364
+ upgraded = true;
365
+ cliOldVersion = current;
366
+ cliNewVersion = release.version;
367
+ ctx.ui.notify(`forge:update — installed ${PKG_NAME}@${release.version}. ` +
368
+ "Restart your forge session for the new version to take effect.", "info");
369
+ }
370
+ }
371
+ }
372
+ }
373
+ } // end global-only branch
374
+ // ── Layer 2: Patched Plugin-Native Flow ──────────────────────────
375
+ const bundleRoot = getBundledPayloadRoot();
376
+ // Read bundled forge version for the preflight result
377
+ let bundledForgeVersion = opts.currentBundledForgeVersion ?? "";
378
+ if (!bundledForgeVersion) {
279
379
  try {
280
- const bundleRoot = getBundledPayloadRoot();
281
380
  const pluginJsonPath = path.join(bundleRoot, ".claude-plugin", "plugin.json");
282
381
  if (existsSync(pluginJsonPath)) {
283
382
  const pluginJson = JSON.parse(readFileSync(pluginJsonPath, "utf8"));
284
- toVersion = pluginJson.version ?? null;
383
+ bundledForgeVersion = pluginJson.version ?? "";
285
384
  }
286
385
  }
287
386
  catch {
288
- // Unable to read plugin.json — skip migration prompt
387
+ // unable to read
289
388
  }
290
389
  }
291
- if (fromVersion && toVersion && fromVersion !== toVersion) {
292
- // Determine whether to auto-apply (FORGE_NON_INTERACTIVE=1) or prompt
293
- const nonInteractive = process.env["FORGE_NON_INTERACTIVE"] === "1";
294
- let applyMigrations = nonInteractive;
295
- if (!nonInteractive) {
296
- applyMigrations = await ctx.ui.confirm(`Run migrations from v${fromVersion} to v${toVersion}?`, `The bundled forge plugin was updated from v${fromVersion} to v${toVersion}.\n` +
297
- `Applying migrations will regenerate any changed .forge/ files to match the new version.`);
298
- }
299
- if (applyMigrations) {
300
- ctx.ui.setStatus("forge:update", `Applying migrations v${fromVersion} → v${toVersion}…`);
301
- try {
302
- const migRunner = opts.migrationRunner ?? runMigrations;
303
- const bundleRoot = getBundledPayloadRoot();
304
- const projectRoot = opts.migrationProjectRoot ?? process.cwd();
305
- const migResult = await migRunner({
306
- bundleRoot,
307
- projectRoot,
308
- fromVersion,
309
- toVersion,
310
- });
311
- ctx.ui.setStatus("forge:update", undefined);
312
- // Emit SYS-migration event for each applied version (mandatory per §2D)
313
- // These are informational store events that survive post-session analysis.
314
- for (const applied of migResult.applied) {
315
- try {
316
- const payload = JSON.stringify({
317
- fromVersion: applied.fromVersion,
318
- toVersion: applied.toVersion,
319
- appliedCategories: applied.categories,
320
- timestamp: new Date().toISOString(),
321
- });
322
- await execFileAsync("node", [
323
- path.join(bundleRoot, "tools", "store-cli.cjs"),
324
- "emit",
325
- "SYS-migration",
326
- payload,
327
- ], { cwd: projectRoot }).catch(() => {
328
- // store-cli not available or project not initialized — non-fatal
329
- });
330
- }
331
- catch {
332
- // Non-fatal: event emission failure doesn't block migration result
333
- }
334
- }
335
- // Report results
336
- if (migResult.applied.length > 0) {
337
- ctx.ui.notify(`forge:update — applied ${migResult.applied.length} migration(s) from v${fromVersion} to v${toVersion}. ` +
338
- `${migResult.schemasRefreshed.length} schema file(s) refreshed.`, "info");
339
- }
340
- else {
341
- ctx.ui.notify(`forge:update — no migrations needed from v${fromVersion} to v${toVersion}.`, "info");
342
- }
343
- if (migResult.skippedBreaking.length > 0) {
344
- ctx.ui.notify(`forge:update — ${migResult.skippedBreaking.length} breaking migration(s) skipped. Manual review required.`, "warning");
345
- }
346
- if (migResult.manualSteps.length > 0) {
347
- const steps = migResult.manualSteps.flatMap((m) => m.steps);
348
- ctx.ui.notify(`forge:update — manual steps required:\n${steps.map((s) => ` • ${s}`).join("\n")}`, "warning");
349
- }
350
- // C-19: surface partial failures so the user knows some ops were skipped
351
- if (migResult.failedCategories.length > 0) {
352
- ctx.ui.notify(`forge:update — ${migResult.failedCategories.length} category(ies) could not be applied (source absent in bundle). ` +
353
- `Check .forge/ state manually or re-run after upgrade.`, "warning");
354
- }
355
- }
356
- catch (err) {
357
- ctx.ui.setStatus("forge:update", undefined);
358
- const msg = err instanceof Error ? err.message : String(err);
359
- ctx.ui.notify(`forge:update — migration failed: ${msg}. Check .forge/ state manually.`, "error");
360
- }
361
- }
362
- else if (!nonInteractive) {
363
- ctx.ui.notify(`forge:update — migrations skipped. Run /forge:update again to apply migrations from v${fromVersion} to v${toVersion}.`, "info");
364
- }
390
+ if (!bundledForgeVersion) {
391
+ ctx.ui.notify("forge:update could not determine bundled forge version. " +
392
+ "Run /forge:init first, or check the forge-payload installation.", "error");
393
+ return;
394
+ }
395
+ // Read and patch update.md from bundled payload
396
+ const updateMdPath = path.join(bundleRoot, "commands", "update.md");
397
+ let updateMd;
398
+ try {
399
+ updateMd = readFileSync(updateMdPath, "utf8");
400
+ }
401
+ catch {
402
+ ctx.ui.notify(`forge:update bundled update.md not found at ${updateMdPath}. ` +
403
+ "The bundled payload may be incomplete. Run /forge:init to repair.", "error");
404
+ return;
365
405
  }
406
+ const preflight = {
407
+ method,
408
+ upgraded,
409
+ cliOldVersion,
410
+ cliNewVersion,
411
+ npmVersion: release?.version,
412
+ npmFetchFailed: method === "global" && !release,
413
+ bundledForgeVersion,
414
+ };
415
+ const kickoffText = composeUpdateKickoff(updateMd, bundleRoot, preflight);
416
+ sendKickoff(pi, kickoffText);
366
417
  },
367
418
  });
368
419
  }
@@ -379,5 +430,6 @@ export const __test__ = {
379
430
  UPGRADE_TIMEOUT_MS,
380
431
  NPM_ROOT_TIMEOUT_MS,
381
432
  PROBE_TIMEOUT_MS,
433
+ composeUpdateKickoff,
382
434
  };
383
435
  //# sourceMappingURL=forge-update-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forge-update-command.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-update-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge-update-command.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-update-command.ts"],"names":[],"mappings":"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"}
@@ -36,10 +36,10 @@
36
36
  // retrieval overlaps. The caller (orchestrator handler in run-task.ts /
37
37
  // fix-bug.ts, gated by FORGE-S24-T12 flag) does that and passes the
38
38
  // shaped inputs in.
39
- import { isSkillCurationEnabled } from "./skill-curation-flag.js";
40
- import { spawnStoreCliEmit } from "./lib/spawn-store-cli.js";
41
39
  import { Type } from "typebox";
42
40
  import { Value } from "typebox/value";
41
+ import { spawnStoreCliEmit } from "./lib/spawn-store-cli.js";
42
+ import { isSkillCurationEnabled } from "./skill-curation-flag.js";
43
43
  // ── Public schemas ──────────────────────────────────────────────────────────
44
44
  /**
45
45
  * One retrieved-and-classified skill for the closed task. `retrieved`
@@ -151,9 +151,7 @@ export function computeFrictionSignals(inputs) {
151
151
  }
152
152
  // skill_missing — no skill retrieved AND task succeeded AND ≥2 tool errors.
153
153
  // Emitted once per task (no skillId — there's nothing to attribute).
154
- if (inputs.retrievedSkills.length === 0 &&
155
- inputs.taskSuccess &&
156
- inputs.toolErrorCount >= MISSING_TOOL_ERROR_FLOOR) {
154
+ if (inputs.retrievedSkills.length === 0 && inputs.taskSuccess && inputs.toolErrorCount >= MISSING_TOOL_ERROR_FLOOR) {
157
155
  signals.push({
158
156
  subkind: "skill_missing",
159
157
  skillId: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"friction-emit.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/friction-emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"friction-emit.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/friction-emit.ts"],"names":[],"mappings":"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"}
@@ -135,9 +135,7 @@ export async function runHealthCheck(cwd, bundleRoot, forgeRoot) {
135
135
  driftedSections.push(section);
136
136
  }
137
137
  }
138
- const driftDetail = driftedSections.length > 0
139
- ? ` Drifted sections: ${driftedSections.join(", ")}.`
140
- : "";
138
+ const driftDetail = driftedSections.length > 0 ? ` Drifted sections: ${driftedSections.join(", ")}.` : "";
141
139
  const message = `KB freshness: MASTER_INDEX.md hash has changed since last calibration — run /forge:calibrate to re-align.${driftDetail}` +
142
140
  "\n 💡 Re-calibrating keeps the knowledge base in sync with sprint/task changes." +
143
141
  "\n → Set FORGE_YES=1 or FORGE_NON_INTERACTIVE=1 for hands-free calibration.";
@@ -188,7 +186,9 @@ export async function runHealthCheck(cwd, bundleRoot, forgeRoot) {
188
186
  const warnCount = warnings.length;
189
187
  const summary = errorCount > 0
190
188
  ? `${errorCount} error(s)${warnCount > 0 ? `, ${warnCount} warning(s)` : ""}`
191
- : (warnCount > 0 ? `${warnCount} warning(s)` : "");
189
+ : warnCount > 0
190
+ ? `${warnCount} warning(s)`
191
+ : "";
192
192
  // Use shared remediation module to generate per-error hints and commands.
193
193
  const remediations = remediateValidationOutput(output);
194
194
  // Build user-friendly message with hints + commands.
@@ -214,7 +214,8 @@ export async function runHealthCheck(cwd, bundleRoot, forgeRoot) {
214
214
  }
215
215
  gaps.push({
216
216
  check: "store-integrity",
217
- severity: errorCount > 0 ? "error" : "warning", message,
217
+ severity: errorCount > 0 ? "error" : "warning",
218
+ message,
218
219
  });
219
220
  }
220
221
  }
@@ -417,7 +418,10 @@ export function checkStructure(cwd, bundleRoot) {
417
418
  // check-structure exits 0 when all files are present.
418
419
  // If it exits non-zero, the missing files are in stdout.
419
420
  if (result.trim()) {
420
- const lines = result.trim().split("\n").filter((l) => l.trim());
421
+ const lines = result
422
+ .trim()
423
+ .split("\n")
424
+ .filter((l) => l.trim());
421
425
  for (const line of lines) {
422
426
  gaps.push({
423
427
  check: "generated-structure",