gnosys 5.9.2 → 5.9.4

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 (136) hide show
  1. package/dist/cli.js +311 -147
  2. package/dist/cli.js.map +1 -1
  3. package/dist/lib/chat/index.d.ts.map +1 -1
  4. package/dist/lib/chat/index.js +5 -0
  5. package/dist/lib/chat/index.js.map +1 -1
  6. package/dist/lib/cleanup.d.ts +52 -0
  7. package/dist/lib/cleanup.d.ts.map +1 -0
  8. package/dist/lib/cleanup.js +168 -0
  9. package/dist/lib/cleanup.js.map +1 -0
  10. package/dist/lib/config.d.ts +7 -0
  11. package/dist/lib/config.d.ts.map +1 -1
  12. package/dist/lib/config.js +41 -2
  13. package/dist/lib/config.js.map +1 -1
  14. package/dist/lib/dream.d.ts.map +1 -1
  15. package/dist/lib/dream.js +13 -2
  16. package/dist/lib/dream.js.map +1 -1
  17. package/dist/lib/paths.d.ts +8 -0
  18. package/dist/lib/paths.d.ts.map +1 -1
  19. package/dist/lib/paths.js +15 -0
  20. package/dist/lib/paths.js.map +1 -1
  21. package/dist/lib/remote.d.ts +11 -0
  22. package/dist/lib/remote.d.ts.map +1 -1
  23. package/dist/lib/remote.js +26 -2
  24. package/dist/lib/remote.js.map +1 -1
  25. package/dist/lib/remoteWizard.d.ts.map +1 -1
  26. package/dist/lib/remoteWizard.js +112 -52
  27. package/dist/lib/remoteWizard.js.map +1 -1
  28. package/dist/lib/setup/coldStart.d.ts +71 -0
  29. package/dist/lib/setup/coldStart.d.ts.map +1 -0
  30. package/dist/lib/setup/coldStart.js +122 -0
  31. package/dist/lib/setup/coldStart.js.map +1 -0
  32. package/dist/lib/setup/configSetRender.d.ts +26 -0
  33. package/dist/lib/setup/configSetRender.d.ts.map +1 -0
  34. package/dist/lib/setup/configSetRender.js +103 -0
  35. package/dist/lib/setup/configSetRender.js.map +1 -0
  36. package/dist/lib/setup/dreamRender.d.ts +44 -0
  37. package/dist/lib/setup/dreamRender.d.ts.map +1 -0
  38. package/dist/lib/setup/dreamRender.js +55 -0
  39. package/dist/lib/setup/dreamRender.js.map +1 -0
  40. package/dist/lib/setup/dreamState.d.ts +50 -0
  41. package/dist/lib/setup/dreamState.d.ts.map +1 -0
  42. package/dist/lib/setup/dreamState.js +68 -0
  43. package/dist/lib/setup/dreamState.js.map +1 -0
  44. package/dist/lib/setup/modelsRender.d.ts +25 -0
  45. package/dist/lib/setup/modelsRender.d.ts.map +1 -0
  46. package/dist/lib/setup/modelsRender.js +33 -0
  47. package/dist/lib/setup/modelsRender.js.map +1 -0
  48. package/dist/lib/setup/remoteRender.d.ts +43 -0
  49. package/dist/lib/setup/remoteRender.d.ts.map +1 -0
  50. package/dist/lib/setup/remoteRender.js +65 -0
  51. package/dist/lib/setup/remoteRender.js.map +1 -0
  52. package/dist/lib/setup/routingRender.d.ts +48 -0
  53. package/dist/lib/setup/routingRender.d.ts.map +1 -0
  54. package/dist/lib/setup/routingRender.js +114 -0
  55. package/dist/lib/setup/routingRender.js.map +1 -0
  56. package/dist/lib/setup/sections/ides.d.ts +8 -0
  57. package/dist/lib/setup/sections/ides.d.ts.map +1 -1
  58. package/dist/lib/setup/sections/ides.js +88 -33
  59. package/dist/lib/setup/sections/ides.js.map +1 -1
  60. package/dist/lib/setup/sections/preferences.d.ts +8 -0
  61. package/dist/lib/setup/sections/preferences.d.ts.map +1 -1
  62. package/dist/lib/setup/sections/preferences.js +54 -20
  63. package/dist/lib/setup/sections/preferences.js.map +1 -1
  64. package/dist/lib/setup/sections/routing.d.ts +0 -1
  65. package/dist/lib/setup/sections/routing.d.ts.map +1 -1
  66. package/dist/lib/setup/sections/routing.js +80 -38
  67. package/dist/lib/setup/sections/routing.js.map +1 -1
  68. package/dist/lib/setup/storePath.d.ts +30 -0
  69. package/dist/lib/setup/storePath.d.ts.map +1 -0
  70. package/dist/lib/setup/storePath.js +47 -0
  71. package/dist/lib/setup/storePath.js.map +1 -0
  72. package/dist/lib/setup/summary.d.ts +33 -19
  73. package/dist/lib/setup/summary.d.ts.map +1 -1
  74. package/dist/lib/setup/summary.js +148 -113
  75. package/dist/lib/setup/summary.js.map +1 -1
  76. package/dist/lib/setup/syncProjectsRender.d.ts +57 -0
  77. package/dist/lib/setup/syncProjectsRender.d.ts.map +1 -0
  78. package/dist/lib/setup/syncProjectsRender.js +184 -0
  79. package/dist/lib/setup/syncProjectsRender.js.map +1 -0
  80. package/dist/lib/setup/ui/diff.d.ts +19 -0
  81. package/dist/lib/setup/ui/diff.d.ts.map +1 -0
  82. package/dist/lib/setup/ui/diff.js +34 -0
  83. package/dist/lib/setup/ui/diff.js.map +1 -0
  84. package/dist/lib/setup/ui/footer.d.ts +11 -0
  85. package/dist/lib/setup/ui/footer.d.ts.map +1 -0
  86. package/dist/lib/setup/ui/footer.js +21 -0
  87. package/dist/lib/setup/ui/footer.js.map +1 -0
  88. package/dist/lib/setup/ui/header.d.ts +24 -0
  89. package/dist/lib/setup/ui/header.d.ts.map +1 -0
  90. package/dist/lib/setup/ui/header.js +49 -0
  91. package/dist/lib/setup/ui/header.js.map +1 -0
  92. package/dist/lib/setup/ui/index.d.ts +28 -0
  93. package/dist/lib/setup/ui/index.d.ts.map +1 -0
  94. package/dist/lib/setup/ui/index.js +19 -0
  95. package/dist/lib/setup/ui/index.js.map +1 -0
  96. package/dist/lib/setup/ui/menu.d.ts +27 -0
  97. package/dist/lib/setup/ui/menu.d.ts.map +1 -0
  98. package/dist/lib/setup/ui/menu.js +75 -0
  99. package/dist/lib/setup/ui/menu.js.map +1 -0
  100. package/dist/lib/setup/ui/panel.d.ts +23 -0
  101. package/dist/lib/setup/ui/panel.d.ts.map +1 -0
  102. package/dist/lib/setup/ui/panel.js +60 -0
  103. package/dist/lib/setup/ui/panel.js.map +1 -0
  104. package/dist/lib/setup/ui/prompt.d.ts +27 -0
  105. package/dist/lib/setup/ui/prompt.d.ts.map +1 -0
  106. package/dist/lib/setup/ui/prompt.js +38 -0
  107. package/dist/lib/setup/ui/prompt.js.map +1 -0
  108. package/dist/lib/setup/ui/safePrompt.d.ts +24 -0
  109. package/dist/lib/setup/ui/safePrompt.d.ts.map +1 -0
  110. package/dist/lib/setup/ui/safePrompt.js +71 -0
  111. package/dist/lib/setup/ui/safePrompt.js.map +1 -0
  112. package/dist/lib/setup/ui/spinner.d.ts +28 -0
  113. package/dist/lib/setup/ui/spinner.d.ts.map +1 -0
  114. package/dist/lib/setup/ui/spinner.js +87 -0
  115. package/dist/lib/setup/ui/spinner.js.map +1 -0
  116. package/dist/lib/setup/ui/status.d.ts +21 -0
  117. package/dist/lib/setup/ui/status.d.ts.map +1 -0
  118. package/dist/lib/setup/ui/status.js +49 -0
  119. package/dist/lib/setup/ui/status.js.map +1 -0
  120. package/dist/lib/setup/ui/table.d.ts +37 -0
  121. package/dist/lib/setup/ui/table.d.ts.map +1 -0
  122. package/dist/lib/setup/ui/table.js +82 -0
  123. package/dist/lib/setup/ui/table.js.map +1 -0
  124. package/dist/lib/setup/ui/title.d.ts +14 -0
  125. package/dist/lib/setup/ui/title.d.ts.map +1 -0
  126. package/dist/lib/setup/ui/title.js +24 -0
  127. package/dist/lib/setup/ui/title.js.map +1 -0
  128. package/dist/lib/setup/ui/tokens.d.ts +66 -0
  129. package/dist/lib/setup/ui/tokens.d.ts.map +1 -0
  130. package/dist/lib/setup/ui/tokens.js +87 -0
  131. package/dist/lib/setup/ui/tokens.js.map +1 -0
  132. package/dist/lib/setup.d.ts +38 -0
  133. package/dist/lib/setup.d.ts.map +1 -1
  134. package/dist/lib/setup.js +440 -308
  135. package/dist/lib/setup.js.map +1 -1
  136. package/package.json +1 -1
@@ -1,33 +1,50 @@
1
1
  /**
2
- * Setup summary-first wizard (v5.7.0).
2
+ * Setup summary-first wizard (v5.9.3 redesign).
3
3
  *
4
- * When the user runs `gnosys setup` and a config already exists, the first
5
- * screen is the current settings summary. The user picks a numbered option
6
- * to edit just that piece, returns to the summary with `✓ updated` next to
7
- * the changed line, and exits with `[D]one` (apply) or `[E]xit` (revert).
4
+ * When the user runs `gnosys setup` and a config already exists, the
5
+ * first screen is the current settings summary. The user picks a
6
+ * numbered option to edit just that piece, returns to the panel with
7
+ * `✓` next to the changed line for the rest of this sitting, and exits
8
+ * with `done` (Enter or `done`).
8
9
  *
9
- * Each section is a thin wrapper around the existing per-section function
10
- * in `setup.ts` (or a new section module). This file is the orchestrator
11
- * + summary screen it does not duplicate section logic.
10
+ * v5.9.3 changes:
11
+ * - Uses Phase A atoms: Header, Panel, Status, Footer, Prompt
12
+ * - Re-reads config from the ACTIVE store path (.gnosys/ if project
13
+ * scope, else ~/.gnosys/) before re-render — fixes the stale-display
14
+ * bug where switching provider via section 3 left the panel showing
15
+ * the old value because loadConfig was reading from project root
16
+ * rather than .gnosys/.
17
+ * - `[D]one` / `[E]xit` collapsed to single "done" action.
18
+ * - `maybeOfferProviderRepair` reworked to column-aligned detection
19
+ * block with no "pre-v5.8.4" history leak.
12
20
  */
13
21
  import { createInterface } from "readline/promises";
14
22
  import { stdin, stdout } from "process";
23
+ import fsSync from "fs";
15
24
  import { loadConfig, resolveTaskModel, updateConfig, } from "../config.js";
16
25
  import { GnosysDB } from "../db.js";
17
- // ─── ANSI ───────────────────────────────────────────────────────────────────
18
- const BOLD = "\x1b[1m";
19
- const DIM = "\x1b[2m";
20
- const GREEN = "\x1b[32m";
21
- const YELLOW = "\x1b[33m";
22
- const RESET = "\x1b[0m";
23
- const CHECK = `${GREEN}✓${RESET}`;
24
- // ─── Provider-revert repair (v5.8.5) ────────────────────────────────────────
26
+ import { resolveActiveStorePath } from "./storePath.js";
27
+ import { safeQuestion } from "./ui/safePrompt.js";
28
+ import { Header } from "./ui/header.js";
29
+ import { Panel } from "./ui/panel.js";
30
+ import { Status } from "./ui/status.js";
31
+ import { Footer } from "./ui/footer.js";
32
+ import { c, color, glyph } from "./ui/tokens.js";
33
+ // Read once at module init — used by Header().
34
+ const PKG_VERSION = (() => {
35
+ try {
36
+ const url = new URL("../../../package.json", import.meta.url);
37
+ const raw = fsSync.readFileSync(url, "utf-8");
38
+ return `v${JSON.parse(raw).version ?? "0.0.0"}`;
39
+ }
40
+ catch {
41
+ return undefined;
42
+ }
43
+ })();
44
+ // ─── Provider-revert repair ────────────────────────────────────────────────
25
45
  //
26
46
  // Detect the "gnosys.json says anthropic but no Anthropic key exists AND
27
- // another provider has a key" pattern. This is the fingerprint of the
28
- // pre-v5.8.4 updateConfig bug that silently seeded `defaultProvider:
29
- // anthropic` into ~/.gnosys/gnosys.json whenever any setup section was
30
- // written to a fresh store. Offer one-keystroke repair.
47
+ // another provider has a key" pattern. Offer one-keystroke repair.
31
48
  const PROVIDERS_WITH_KEYS = ["anthropic", "openai", "xai", "groq", "mistral"];
32
49
  async function maybeOfferProviderRepair(cfg, projectDir, rl) {
33
50
  if (cfg.llm.defaultProvider !== "anthropic")
@@ -35,7 +52,7 @@ async function maybeOfferProviderRepair(cfg, projectDir, rl) {
35
52
  const { getApiKeyForProvider } = await import("../setup.js");
36
53
  const anthropicKey = await getApiKeyForProvider("anthropic");
37
54
  if (anthropicKey)
38
- return; // user might really want Anthropic and just hasn't fully set up yet
55
+ return;
39
56
  const candidates = [];
40
57
  for (const p of PROVIDERS_WITH_KEYS) {
41
58
  if (p === "anthropic")
@@ -45,67 +62,56 @@ async function maybeOfferProviderRepair(cfg, projectDir, rl) {
45
62
  candidates.push(p);
46
63
  }
47
64
  if (candidates.length === 0)
48
- return; // no other provider has a key either
49
- // Pick the strongest candidate. Order in PROVIDERS_WITH_KEYS is the priority.
65
+ return;
50
66
  const suggestion = candidates[0];
51
- console.log("");
52
- console.log(`${YELLOW}⚠${RESET} Your gnosys.json says ${BOLD}defaultProvider: anthropic${RESET},`);
53
- console.log(` but no Anthropic API key is configured (env or keychain).`);
54
- console.log(` Found a key for ${BOLD}${suggestion}${RESET}${candidates.length > 1 ? ` (also: ${candidates.slice(1).join(", ")})` : ""}.`);
55
- console.log("");
56
- console.log(` This usually means a pre-v5.8.4 setup wizard seeded anthropic by mistake.`);
57
- console.log("");
58
- const answer = (await rl.question(`Switch the default to ${BOLD}${suggestion}${RESET}? [Y/n] `)).trim().toLowerCase();
67
+ const others = candidates.slice(1);
68
+ // Header for the provider-check sub-screen.
69
+ process.stdout.write(`${Header(["gnosys", "setup", "provider-check"], { version: PKG_VERSION })}\n\n`);
70
+ process.stdout.write(`${Status("warn", "default provider mismatch")}\n\n`);
71
+ // Column-aligned detection block.
72
+ const indent = " ";
73
+ const label = (s) => color(c.textDim, s.padEnd(20));
74
+ process.stdout.write(`${indent}${label("gnosys.json says")}${color(c.text, "anthropic")}\n`);
75
+ process.stdout.write(`${indent}${label("anthropic key")}${color(c.textMid, "not found in env or keychain")}\n`);
76
+ process.stdout.write(`${indent}${label("key found for")}${color(c.accentHi, suggestion)}\n`);
77
+ if (others.length > 0) {
78
+ process.stdout.write(`${indent}${label("")}${color(c.textDim, `(also available: ${others.join(", ")})`)}\n`);
79
+ }
80
+ process.stdout.write("\n");
81
+ const answer = (await safeQuestion(rl, ` ${color(c.accent, glyph.prompt)} switch the default to ${color(c.accentHi, suggestion)}? [Y/n] `))
82
+ .trim()
83
+ .toLowerCase();
59
84
  if (answer === "n" || answer === "no") {
60
- console.log(`${DIM}Left as anthropic. Run option 1 below to change explicitly.${RESET}`);
85
+ process.stdout.write(`${Status("warn", "keeping anthropic as the default", "edit via section 1 to change")}\n`);
61
86
  return;
62
87
  }
63
88
  try {
64
- // Write to the store that actually holds the current config so the
65
- // override lands at the right scope.
66
- const { getGnosysHome } = await import("../paths.js");
67
- const fs = await import("fs/promises");
68
- const path = await import("path");
69
- // Prefer project-level if it has a gnosys.json, else global.
70
- const projectStore = path.join(projectDir, ".gnosys");
71
- let storePath = getGnosysHome();
72
- try {
73
- const stat = await fs.stat(path.join(projectStore, "gnosys.json"));
74
- if (stat.isFile())
75
- storePath = projectStore;
76
- }
77
- catch {
78
- // fall back to global
79
- }
89
+ const storePath = resolveActiveStorePath(projectDir);
80
90
  await updateConfig(storePath, { llm: { defaultProvider: suggestion } });
81
- console.log(`${CHECK} Switched default to ${BOLD}${suggestion}${RESET}.`);
91
+ process.stdout.write(`${Status("ok", `default switched · ${suggestion} is now the active provider`)}\n`);
82
92
  }
83
93
  catch (err) {
84
- console.log(`${YELLOW}⚠${RESET} Failed to repair: ${err instanceof Error ? err.message : String(err)}`);
85
- console.log(`${DIM}Run 'gnosys setup models' to change manually.${RESET}`);
94
+ process.stdout.write(`${Status("warn", `failed to repair: ${err instanceof Error ? err.message : String(err)}`)}\n`);
95
+ process.stdout.write(`${Status("warn", "run 'gnosys setup models' to change manually", "fallback")}\n`);
86
96
  }
87
97
  }
88
- /**
89
- * Build the section list. Each `edit` calls into existing wizards via
90
- * dynamic import — keeps this file decoupled from the legacy setup.ts.
91
- */
92
98
  export function buildSections() {
93
99
  return [
94
100
  {
95
101
  key: "1",
96
- label: "Provider",
102
+ label: "provider",
97
103
  describe: (cfg) => cfg.llm.defaultProvider,
104
+ // v5.9.4 Bug 4 — row 1 now changes ONLY the provider; row 2 stays
105
+ // as the full model picker. Before, both routed to `runModelsSetup`.
98
106
  edit: async (rl, _cfg, projectDir) => {
99
- const { runModelsSetup } = await import("../setup.js");
100
- // v5.8.4: pass the summary's readline through so we don't open a
101
- // second one and double every keystroke.
102
- await runModelsSetup({ directory: projectDir, rl });
107
+ const { runProviderOnlySetup } = await import("../setup.js");
108
+ await runProviderOnlySetup({ directory: projectDir, rl });
103
109
  return true;
104
110
  },
105
111
  },
106
112
  {
107
113
  key: "2",
108
- label: "Models",
114
+ label: "models",
109
115
  describe: async (cfg) => {
110
116
  const synth = resolveTaskModel(cfg, "synthesis");
111
117
  return `${synth.provider} / ${synth.model}`;
@@ -118,7 +124,7 @@ export function buildSections() {
118
124
  },
119
125
  {
120
126
  key: "3",
121
- label: "Task Routing",
127
+ label: "task routing",
122
128
  describe: async (cfg) => {
123
129
  const provs = new Set([
124
130
  resolveTaskModel(cfg, "structuring").provider,
@@ -130,8 +136,8 @@ export function buildSections() {
130
136
  },
131
137
  {
132
138
  key: "4",
133
- label: "IDE Integrations",
134
- describe: async (_cfg) => {
139
+ label: "ide integrations",
140
+ describe: async () => {
135
141
  const { detectIDEs } = await import("../setup.js");
136
142
  const ides = await detectIDEs(process.cwd());
137
143
  return ides.length === 0 ? "none" : `${ides.length} configured`;
@@ -140,7 +146,7 @@ export function buildSections() {
140
146
  },
141
147
  {
142
148
  key: "5",
143
- label: "Multi-machine Sync",
149
+ label: "multi-machine sync",
144
150
  describe: () => {
145
151
  try {
146
152
  const db = GnosysDB.openLocal();
@@ -165,13 +171,29 @@ export function buildSections() {
165
171
  },
166
172
  {
167
173
  key: "6",
168
- label: "Dream Mode",
169
- describe: (cfg) => {
170
- if (!cfg.dream?.enabled)
171
- return "disabled";
172
- const provider = cfg.dream.provider ?? "ollama";
173
- const model = cfg.dream.model ?? "default";
174
- return `${provider} / ${model}`;
174
+ label: "dream mode",
175
+ // v5.9.4 Bug 7 — reconcile config + local-DB so the panel reflects
176
+ // state set elsewhere (e.g. a dream wizard run on this machine).
177
+ // We use the cfg already loaded by the summary loop (no second read)
178
+ // and ignore DB read errors so test mocks without dream helpers still
179
+ // render the configured value cleanly.
180
+ describe: async (cfg) => {
181
+ const { getDreamState, describeDreamState } = await import("./dreamState.js");
182
+ let localDb = null;
183
+ try {
184
+ localDb = GnosysDB.openLocal();
185
+ }
186
+ catch {
187
+ // DB unavailable — fall through with null
188
+ }
189
+ const state = getDreamState(cfg, localDb);
190
+ try {
191
+ localDb?.close();
192
+ }
193
+ catch {
194
+ // ignore
195
+ }
196
+ return describeDreamState(state);
175
197
  },
176
198
  edit: async (rl, _cfg, projectDir) => {
177
199
  const { runDreamSetup } = await import("../setup.js");
@@ -181,7 +203,7 @@ export function buildSections() {
181
203
  },
182
204
  {
183
205
  key: "7",
184
- label: "User Preferences",
206
+ label: "user preferences",
185
207
  describe: async () => {
186
208
  const { listUserPreferences } = await import("./sections/preferences.js");
187
209
  const prefs = await listUserPreferences();
@@ -194,23 +216,46 @@ export function buildSections() {
194
216
  },
195
217
  ];
196
218
  }
197
- // ─── Section editors that don't yet have standalone wizards ────────────────
198
- /**
199
- * Per-task routing editor. The legacy `runSetup` walks all 5 tasks in step 4
200
- * — this lets the user revisit the choice without redoing provider/models.
201
- */
202
219
  async function editRouting(rl, projectDir) {
203
220
  const { runRoutingSetup } = await import("./sections/routing.js");
204
221
  return runRoutingSetup({ rl, directory: projectDir });
205
222
  }
206
- /** IDE selection editor — same prompt as step 5 in the linear wizard. */
207
223
  async function editIDEs(rl, projectDir) {
208
224
  const { runIdesSetup } = await import("./sections/ides.js");
209
225
  return runIdesSetup({ rl, directory: projectDir });
210
226
  }
227
+ // ─── Rendering ─────────────────────────────────────────────────────────────
228
+ /**
229
+ * Render the panel body — one menu-shaped row per section. Returns the
230
+ * row strings (already colored) ready to hand to Panel().
231
+ */
232
+ async function renderPanelRows(cfg, sections) {
233
+ const labelW = Math.max(...sections.map((s) => s.label.length));
234
+ const rows = [];
235
+ for (const s of sections) {
236
+ const value = await s.describe(cfg);
237
+ const numTxt = color(c.textDim, s.key);
238
+ const labelTxt = color(c.text, s.label.padEnd(labelW));
239
+ const valueTxt = color(c.textMid, value);
240
+ rows.push(` ${numTxt} ${labelTxt} ${valueTxt}`);
241
+ }
242
+ return rows;
243
+ }
244
+ /**
245
+ * Build the `trailing` map of `✓` marks for sections edited this sitting.
246
+ */
247
+ function buildTrailingMap(updated, sections) {
248
+ const trailing = {};
249
+ sections.forEach((s, idx) => {
250
+ if (updated.has(s.key)) {
251
+ trailing[idx] = color(c.ok, glyph.ok);
252
+ }
253
+ });
254
+ return trailing;
255
+ }
211
256
  /**
212
- * Run the summary-first wizard. Loops until the user picks Done or Exit.
213
- * Returns `true` if any section was edited and committed.
257
+ * Run the summary-first wizard. Loops until the user picks "done"
258
+ * (Enter or `done`). Returns true if any section was edited.
214
259
  */
215
260
  export async function runSummaryWizard(opts = {}) {
216
261
  const projectDir = opts.directory ?? process.cwd();
@@ -222,47 +267,35 @@ export async function runSummaryWizard(opts = {}) {
222
267
  let revertCheckDone = false;
223
268
  try {
224
269
  while (true) {
225
- // Reload config each iteration so the displayed values reflect any
226
- // section edit that just happened.
227
- const cfg = await loadConfig(projectDir);
228
- // v5.8.5: detect the "config says anthropic but no Anthropic key is
229
- // configured anywhere AND another provider has a key" pattern. This
230
- // is the fingerprint of the pre-v5.8.4 updateConfig bug that silently
231
- // seeded `defaultProvider: anthropic` into ~/.gnosys/gnosys.json when
232
- // any section was written to a fresh store. Offer one-keystroke repair.
270
+ // Always re-read from the ACTIVE store path so any section edit is
271
+ // reflected immediately. The previous bug used the projectDir root,
272
+ // which didn't contain gnosys.json — only the .gnosys/ subdir did.
273
+ const storePath = resolveActiveStorePath(projectDir);
274
+ const cfg = await loadConfig(storePath);
233
275
  if (!revertCheckDone) {
234
276
  revertCheckDone = true;
235
277
  await maybeOfferProviderRepair(cfg, projectDir, rl);
236
278
  }
237
- console.log("");
238
- console.log(`${BOLD}┌─────────────────────────────────────────────┐${RESET}`);
239
- console.log(`${BOLD}│ Gnosys Settings │${RESET}`);
240
- console.log(`${BOLD}├─────────────────────────────────────────────┤${RESET}`);
241
- for (const s of sections) {
242
- const value = await s.describe(cfg);
243
- const marker = updated.has(s.key) ? ` ${CHECK}` : " ";
244
- const line = ` ${s.key}. ${s.label.padEnd(18)} ${DIM}${value}${RESET}${marker}`;
245
- console.log(line);
246
- }
247
- console.log(`${BOLD}└─────────────────────────────────────────────┘${RESET}`);
248
- console.log("");
249
- console.log(` Pick a number to edit · ${BOLD}D${RESET}one · ${BOLD}E${RESET}xit`);
250
- const answer = (await rl.question("> ")).trim().toLowerCase();
251
- if (!answer || answer === "d" || answer === "done") {
252
- return anyChange;
253
- }
254
- if (answer === "e" || answer === "exit") {
255
- if (anyChange) {
256
- console.log(`${DIM}(any changes already committed during section edits stay applied)${RESET}`);
257
- }
279
+ // Render header + panel.
280
+ process.stdout.write("\n");
281
+ process.stdout.write(`${Header(["gnosys", "setup"], { version: PKG_VERSION })}\n\n`);
282
+ const rows = await renderPanelRows(cfg, sections);
283
+ const trailing = buildTrailingMap(updated, sections);
284
+ process.stdout.write(`${Panel("gnosys settings", rows, { trailing })}\n\n`);
285
+ process.stdout.write(`${Footer(`1–${sections.length} · edit enter · done`)}\n`);
286
+ const answer = (await safeQuestion(rl, ` ${color(c.accent, glyph.prompt)} `))
287
+ .trim()
288
+ .toLowerCase();
289
+ if (!answer || answer === "done") {
258
290
  return anyChange;
259
291
  }
260
292
  const section = sections.find((s) => s.key === answer);
261
293
  if (!section) {
262
- console.log(`${DIM}Unknown choice: ${answer}${RESET}`);
294
+ process.stdout.write(`${Status("warn", `unknown choice: ${answer}`)}\n`);
263
295
  continue;
264
296
  }
265
- const cfgForEdit = await loadConfig(projectDir);
297
+ // Pass a fresh config snapshot to the editor.
298
+ const cfgForEdit = await loadConfig(storePath);
266
299
  try {
267
300
  const changed = await section.edit(rl, cfgForEdit, projectDir);
268
301
  if (changed) {
@@ -271,7 +304,7 @@ export async function runSummaryWizard(opts = {}) {
271
304
  }
272
305
  }
273
306
  catch (err) {
274
- console.log(`${DIM}Section editor failed: ${err instanceof Error ? err.message : String(err)}${RESET}`);
307
+ process.stdout.write(`${Status("fail", `section editor failed: ${err instanceof Error ? err.message : String(err)}`)}\n`);
275
308
  }
276
309
  }
277
310
  }
@@ -280,4 +313,6 @@ export async function runSummaryWizard(opts = {}) {
280
313
  rl.close();
281
314
  }
282
315
  }
316
+ // Internal helpers exported for tests.
317
+ export const __test = { resolveActiveStorePath, renderPanelRows, buildTrailingMap };
283
318
  //# sourceMappingURL=summary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/lib/setup/summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/lib/setup/summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /** One project row, as used by the upgraded/skipped sections. */
2
+ export interface ProjectRow {
3
+ /** Friendly project name (registry title or basename). */
4
+ title: string;
5
+ /** Full filesystem path. */
6
+ fullPath: string;
7
+ }
8
+ /** One machine row, as used by the connected-machines callout. */
9
+ export interface MachineRow {
10
+ hostname: string;
11
+ version: string;
12
+ lastSeen: string;
13
+ isCurrent: boolean;
14
+ }
15
+ /**
16
+ * Render the leading Header for the sync-projects screen.
17
+ * Caller follows with a blank line.
18
+ */
19
+ export declare function renderSyncHeader(version: string): string;
20
+ /**
21
+ * Collapse a long path with a leading `~/…` so it fits on screen.
22
+ * Returns the original path unchanged when already short enough.
23
+ */
24
+ export declare function collapsePath(p: string, homeDir?: string): string;
25
+ /**
26
+ * Render the "upgraded N projects" section. Returns an array of lines
27
+ * (with no trailing newline). Returns [] when there are no rows.
28
+ */
29
+ export declare function renderUpgradedSection(rows: ProjectRow[]): string[];
30
+ /**
31
+ * Render the "skipped N projects" section. Same shape as upgraded but
32
+ * uses the hollow dot glyph. Returns [] when empty.
33
+ */
34
+ export declare function renderSkippedSection(rows: ProjectRow[]): string[];
35
+ /**
36
+ * Render the "failed N projects" section. Renders all rows (no "more"
37
+ * collapse) since failures matter.
38
+ */
39
+ export declare function renderFailedSection(rows: ProjectRow[]): string[];
40
+ /**
41
+ * Render the connected-machines callout. Returns [] when there's only
42
+ * one machine (no callout needed). v5.9.4 — laid out via the `Table`
43
+ * atom; the dot/tag columns stay bespoke so the warning hue is preserved.
44
+ */
45
+ export declare function renderMachinesSection(rows: MachineRow[], currentVersion: string): string[];
46
+ /** Render a horizontal divider (1-col indent, thin rule). */
47
+ export declare function renderDivider(): string;
48
+ /**
49
+ * Final "done · central DB stamped vX.Y.Z" status line.
50
+ */
51
+ export declare function renderDoneLine(version: string): string;
52
+ /**
53
+ * Build the dashboard summary lines (printed after the divider when
54
+ * regeneration succeeded).
55
+ */
56
+ export declare function renderDashboardSummary(htmlPath: string, mdPath: string): string[];
57
+ //# sourceMappingURL=syncProjectsRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncProjectsRender.d.ts","sourceRoot":"","sources":["../../../src/lib/setup/syncProjectsRender.ts"],"names":[],"mappings":"AAyBA,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,MAAqB,GAAG,MAAM,CAY9E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAWlE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAWjE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAMhE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAuC1F;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMjF"}