gnosys 5.9.2 → 5.9.3

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 (117) 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 +7 -1
  13. package/dist/lib/config.js.map +1 -1
  14. package/dist/lib/paths.d.ts +8 -0
  15. package/dist/lib/paths.d.ts.map +1 -1
  16. package/dist/lib/paths.js +15 -0
  17. package/dist/lib/paths.js.map +1 -1
  18. package/dist/lib/remoteWizard.d.ts.map +1 -1
  19. package/dist/lib/remoteWizard.js +112 -52
  20. package/dist/lib/remoteWizard.js.map +1 -1
  21. package/dist/lib/setup/coldStart.d.ts +71 -0
  22. package/dist/lib/setup/coldStart.d.ts.map +1 -0
  23. package/dist/lib/setup/coldStart.js +122 -0
  24. package/dist/lib/setup/coldStart.js.map +1 -0
  25. package/dist/lib/setup/configSetRender.d.ts +26 -0
  26. package/dist/lib/setup/configSetRender.d.ts.map +1 -0
  27. package/dist/lib/setup/configSetRender.js +103 -0
  28. package/dist/lib/setup/configSetRender.js.map +1 -0
  29. package/dist/lib/setup/dreamRender.d.ts +44 -0
  30. package/dist/lib/setup/dreamRender.d.ts.map +1 -0
  31. package/dist/lib/setup/dreamRender.js +55 -0
  32. package/dist/lib/setup/dreamRender.js.map +1 -0
  33. package/dist/lib/setup/modelsRender.d.ts +25 -0
  34. package/dist/lib/setup/modelsRender.d.ts.map +1 -0
  35. package/dist/lib/setup/modelsRender.js +33 -0
  36. package/dist/lib/setup/modelsRender.js.map +1 -0
  37. package/dist/lib/setup/remoteRender.d.ts +43 -0
  38. package/dist/lib/setup/remoteRender.d.ts.map +1 -0
  39. package/dist/lib/setup/remoteRender.js +65 -0
  40. package/dist/lib/setup/remoteRender.js.map +1 -0
  41. package/dist/lib/setup/routingRender.d.ts +44 -0
  42. package/dist/lib/setup/routingRender.d.ts.map +1 -0
  43. package/dist/lib/setup/routingRender.js +97 -0
  44. package/dist/lib/setup/routingRender.js.map +1 -0
  45. package/dist/lib/setup/sections/ides.d.ts +8 -0
  46. package/dist/lib/setup/sections/ides.d.ts.map +1 -1
  47. package/dist/lib/setup/sections/ides.js +49 -27
  48. package/dist/lib/setup/sections/ides.js.map +1 -1
  49. package/dist/lib/setup/sections/preferences.d.ts +8 -0
  50. package/dist/lib/setup/sections/preferences.d.ts.map +1 -1
  51. package/dist/lib/setup/sections/preferences.js +40 -19
  52. package/dist/lib/setup/sections/preferences.js.map +1 -1
  53. package/dist/lib/setup/sections/routing.d.ts +0 -1
  54. package/dist/lib/setup/sections/routing.d.ts.map +1 -1
  55. package/dist/lib/setup/sections/routing.js +49 -29
  56. package/dist/lib/setup/sections/routing.js.map +1 -1
  57. package/dist/lib/setup/summary.d.ts +33 -19
  58. package/dist/lib/setup/summary.d.ts.map +1 -1
  59. package/dist/lib/setup/summary.js +135 -105
  60. package/dist/lib/setup/summary.js.map +1 -1
  61. package/dist/lib/setup/syncProjectsRender.d.ts +56 -0
  62. package/dist/lib/setup/syncProjectsRender.d.ts.map +1 -0
  63. package/dist/lib/setup/syncProjectsRender.js +168 -0
  64. package/dist/lib/setup/syncProjectsRender.js.map +1 -0
  65. package/dist/lib/setup/ui/diff.d.ts +19 -0
  66. package/dist/lib/setup/ui/diff.d.ts.map +1 -0
  67. package/dist/lib/setup/ui/diff.js +34 -0
  68. package/dist/lib/setup/ui/diff.js.map +1 -0
  69. package/dist/lib/setup/ui/footer.d.ts +11 -0
  70. package/dist/lib/setup/ui/footer.d.ts.map +1 -0
  71. package/dist/lib/setup/ui/footer.js +21 -0
  72. package/dist/lib/setup/ui/footer.js.map +1 -0
  73. package/dist/lib/setup/ui/header.d.ts +24 -0
  74. package/dist/lib/setup/ui/header.d.ts.map +1 -0
  75. package/dist/lib/setup/ui/header.js +49 -0
  76. package/dist/lib/setup/ui/header.js.map +1 -0
  77. package/dist/lib/setup/ui/index.d.ts +26 -0
  78. package/dist/lib/setup/ui/index.d.ts.map +1 -0
  79. package/dist/lib/setup/ui/index.js +18 -0
  80. package/dist/lib/setup/ui/index.js.map +1 -0
  81. package/dist/lib/setup/ui/menu.d.ts +27 -0
  82. package/dist/lib/setup/ui/menu.d.ts.map +1 -0
  83. package/dist/lib/setup/ui/menu.js +75 -0
  84. package/dist/lib/setup/ui/menu.js.map +1 -0
  85. package/dist/lib/setup/ui/panel.d.ts +23 -0
  86. package/dist/lib/setup/ui/panel.d.ts.map +1 -0
  87. package/dist/lib/setup/ui/panel.js +53 -0
  88. package/dist/lib/setup/ui/panel.js.map +1 -0
  89. package/dist/lib/setup/ui/prompt.d.ts +27 -0
  90. package/dist/lib/setup/ui/prompt.d.ts.map +1 -0
  91. package/dist/lib/setup/ui/prompt.js +38 -0
  92. package/dist/lib/setup/ui/prompt.js.map +1 -0
  93. package/dist/lib/setup/ui/safePrompt.d.ts +24 -0
  94. package/dist/lib/setup/ui/safePrompt.d.ts.map +1 -0
  95. package/dist/lib/setup/ui/safePrompt.js +71 -0
  96. package/dist/lib/setup/ui/safePrompt.js.map +1 -0
  97. package/dist/lib/setup/ui/spinner.d.ts +28 -0
  98. package/dist/lib/setup/ui/spinner.d.ts.map +1 -0
  99. package/dist/lib/setup/ui/spinner.js +87 -0
  100. package/dist/lib/setup/ui/spinner.js.map +1 -0
  101. package/dist/lib/setup/ui/status.d.ts +21 -0
  102. package/dist/lib/setup/ui/status.d.ts.map +1 -0
  103. package/dist/lib/setup/ui/status.js +49 -0
  104. package/dist/lib/setup/ui/status.js.map +1 -0
  105. package/dist/lib/setup/ui/title.d.ts +14 -0
  106. package/dist/lib/setup/ui/title.d.ts.map +1 -0
  107. package/dist/lib/setup/ui/title.js +24 -0
  108. package/dist/lib/setup/ui/title.js.map +1 -0
  109. package/dist/lib/setup/ui/tokens.d.ts +66 -0
  110. package/dist/lib/setup/ui/tokens.d.ts.map +1 -0
  111. package/dist/lib/setup/ui/tokens.js +87 -0
  112. package/dist/lib/setup/ui/tokens.js.map +1 -0
  113. package/dist/lib/setup.d.ts +7 -0
  114. package/dist/lib/setup.d.ts.map +1 -1
  115. package/dist/lib/setup.js +204 -230
  116. package/dist/lib/setup.js.map +1 -1
  117. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/lib/setup/summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAmB,SAAS,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,cAAc,CAAC;AAgFtB,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,QAAQ,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,6EAA6E;IAC7E,IAAI,EAAE,CAAC,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1F;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,cAAc,EAAE,CAqGhD;AAqBD,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,EAAE,CAAC,EAAE,iBAAiB,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuElF"}
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/lib/setup/summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAmB,SAAS,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAIpF,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,cAAc,CAAC;AA4BtB,iBAAS,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI1D;AAiED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1F;AAED,wBAAgB,aAAa,IAAI,cAAc,EAAE,CAmGhD;AAcD;;;GAGG;AACH,iBAAe,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAW/F;AAED;;GAEG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQlG;AAID,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,iBAAiB,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CA2DlF;AAGD,eAAO,MAAM,MAAM;;;;CAAgE,CAAC"}
@@ -1,33 +1,63 @@
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";
24
+ import path from "path";
15
25
  import { loadConfig, resolveTaskModel, updateConfig, } from "../config.js";
16
26
  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) ────────────────────────────────────────
27
+ import { getGnosysHome } from "../paths.js";
28
+ import { safeQuestion } from "./ui/safePrompt.js";
29
+ import { Header } from "./ui/header.js";
30
+ import { Panel } from "./ui/panel.js";
31
+ import { Status } from "./ui/status.js";
32
+ import { Footer } from "./ui/footer.js";
33
+ import { c, color, glyph } from "./ui/tokens.js";
34
+ // Read once at module init — used by Header().
35
+ const PKG_VERSION = (() => {
36
+ try {
37
+ const url = new URL("../../../package.json", import.meta.url);
38
+ const raw = fsSync.readFileSync(url, "utf-8");
39
+ return `v${JSON.parse(raw).version ?? "0.0.0"}`;
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ })();
45
+ // ─── Active store path ─────────────────────────────────────────────────────
46
+ //
47
+ // loadConfig() reads `<storePath>/gnosys.json`. The active store is either
48
+ // `<projectDir>/.gnosys/` (if that gnosys.json exists) or `~/.gnosys/`
49
+ // (global). Always prefer the project-level one when present so writes by
50
+ // the section editors are visible to the summary re-render.
51
+ function resolveActiveStorePath(projectDir) {
52
+ const projectStore = path.join(projectDir, ".gnosys");
53
+ if (fsSync.existsSync(path.join(projectStore, "gnosys.json")))
54
+ return projectStore;
55
+ return getGnosysHome();
56
+ }
57
+ // ─── Provider-revert repair ────────────────────────────────────────────────
25
58
  //
26
59
  // 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.
60
+ // another provider has a key" pattern. Offer one-keystroke repair.
31
61
  const PROVIDERS_WITH_KEYS = ["anthropic", "openai", "xai", "groq", "mistral"];
32
62
  async function maybeOfferProviderRepair(cfg, projectDir, rl) {
33
63
  if (cfg.llm.defaultProvider !== "anthropic")
@@ -35,7 +65,7 @@ async function maybeOfferProviderRepair(cfg, projectDir, rl) {
35
65
  const { getApiKeyForProvider } = await import("../setup.js");
36
66
  const anthropicKey = await getApiKeyForProvider("anthropic");
37
67
  if (anthropicKey)
38
- return; // user might really want Anthropic and just hasn't fully set up yet
68
+ return;
39
69
  const candidates = [];
40
70
  for (const p of PROVIDERS_WITH_KEYS) {
41
71
  if (p === "anthropic")
@@ -45,67 +75,54 @@ async function maybeOfferProviderRepair(cfg, projectDir, rl) {
45
75
  candidates.push(p);
46
76
  }
47
77
  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.
78
+ return;
50
79
  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();
80
+ const others = candidates.slice(1);
81
+ // Header for the provider-check sub-screen.
82
+ process.stdout.write(`${Header(["gnosys", "setup", "provider-check"], { version: PKG_VERSION })}\n\n`);
83
+ process.stdout.write(`${Status("warn", "default provider mismatch")}\n\n`);
84
+ // Column-aligned detection block.
85
+ const indent = " ";
86
+ const label = (s) => color(c.textDim, s.padEnd(20));
87
+ process.stdout.write(`${indent}${label("gnosys.json says")}${color(c.text, "anthropic")}\n`);
88
+ process.stdout.write(`${indent}${label("anthropic key")}${color(c.textMid, "not found in env or keychain")}\n`);
89
+ process.stdout.write(`${indent}${label("key found for")}${color(c.accentHi, suggestion)}\n`);
90
+ if (others.length > 0) {
91
+ process.stdout.write(`${indent}${label("")}${color(c.textDim, `(also available: ${others.join(", ")})`)}\n`);
92
+ }
93
+ process.stdout.write("\n");
94
+ const answer = (await safeQuestion(rl, ` ${color(c.accent, glyph.prompt)} switch the default to ${color(c.accentHi, suggestion)}? [Y/n] `))
95
+ .trim()
96
+ .toLowerCase();
59
97
  if (answer === "n" || answer === "no") {
60
- console.log(`${DIM}Left as anthropic. Run option 1 below to change explicitly.${RESET}`);
98
+ process.stdout.write(`${Status("warn", "keeping anthropic as the default", "edit via section 1 to change")}\n`);
61
99
  return;
62
100
  }
63
101
  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
- }
102
+ const storePath = resolveActiveStorePath(projectDir);
80
103
  await updateConfig(storePath, { llm: { defaultProvider: suggestion } });
81
- console.log(`${CHECK} Switched default to ${BOLD}${suggestion}${RESET}.`);
104
+ process.stdout.write(`${Status("ok", `default switched · ${suggestion} is now the active provider`)}\n`);
82
105
  }
83
106
  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}`);
107
+ process.stdout.write(`${Status("warn", `failed to repair: ${err instanceof Error ? err.message : String(err)}`)}\n`);
108
+ process.stdout.write(`${Status("warn", "run 'gnosys setup models' to change manually", "fallback")}\n`);
86
109
  }
87
110
  }
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
111
  export function buildSections() {
93
112
  return [
94
113
  {
95
114
  key: "1",
96
- label: "Provider",
115
+ label: "provider",
97
116
  describe: (cfg) => cfg.llm.defaultProvider,
98
117
  edit: async (rl, _cfg, projectDir) => {
99
118
  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
119
  await runModelsSetup({ directory: projectDir, rl });
103
120
  return true;
104
121
  },
105
122
  },
106
123
  {
107
124
  key: "2",
108
- label: "Models",
125
+ label: "models",
109
126
  describe: async (cfg) => {
110
127
  const synth = resolveTaskModel(cfg, "synthesis");
111
128
  return `${synth.provider} / ${synth.model}`;
@@ -118,7 +135,7 @@ export function buildSections() {
118
135
  },
119
136
  {
120
137
  key: "3",
121
- label: "Task Routing",
138
+ label: "task routing",
122
139
  describe: async (cfg) => {
123
140
  const provs = new Set([
124
141
  resolveTaskModel(cfg, "structuring").provider,
@@ -130,8 +147,8 @@ export function buildSections() {
130
147
  },
131
148
  {
132
149
  key: "4",
133
- label: "IDE Integrations",
134
- describe: async (_cfg) => {
150
+ label: "ide integrations",
151
+ describe: async () => {
135
152
  const { detectIDEs } = await import("../setup.js");
136
153
  const ides = await detectIDEs(process.cwd());
137
154
  return ides.length === 0 ? "none" : `${ides.length} configured`;
@@ -140,7 +157,7 @@ export function buildSections() {
140
157
  },
141
158
  {
142
159
  key: "5",
143
- label: "Multi-machine Sync",
160
+ label: "multi-machine sync",
144
161
  describe: () => {
145
162
  try {
146
163
  const db = GnosysDB.openLocal();
@@ -165,7 +182,7 @@ export function buildSections() {
165
182
  },
166
183
  {
167
184
  key: "6",
168
- label: "Dream Mode",
185
+ label: "dream mode",
169
186
  describe: (cfg) => {
170
187
  if (!cfg.dream?.enabled)
171
188
  return "disabled";
@@ -181,7 +198,7 @@ export function buildSections() {
181
198
  },
182
199
  {
183
200
  key: "7",
184
- label: "User Preferences",
201
+ label: "user preferences",
185
202
  describe: async () => {
186
203
  const { listUserPreferences } = await import("./sections/preferences.js");
187
204
  const prefs = await listUserPreferences();
@@ -194,23 +211,46 @@ export function buildSections() {
194
211
  },
195
212
  ];
196
213
  }
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
214
  async function editRouting(rl, projectDir) {
203
215
  const { runRoutingSetup } = await import("./sections/routing.js");
204
216
  return runRoutingSetup({ rl, directory: projectDir });
205
217
  }
206
- /** IDE selection editor — same prompt as step 5 in the linear wizard. */
207
218
  async function editIDEs(rl, projectDir) {
208
219
  const { runIdesSetup } = await import("./sections/ides.js");
209
220
  return runIdesSetup({ rl, directory: projectDir });
210
221
  }
222
+ // ─── Rendering ─────────────────────────────────────────────────────────────
211
223
  /**
212
- * Run the summary-first wizard. Loops until the user picks Done or Exit.
213
- * Returns `true` if any section was edited and committed.
224
+ * Render the panel body one menu-shaped row per section. Returns the
225
+ * row strings (already colored) ready to hand to Panel().
226
+ */
227
+ async function renderPanelRows(cfg, sections) {
228
+ const labelW = Math.max(...sections.map((s) => s.label.length));
229
+ const rows = [];
230
+ for (const s of sections) {
231
+ const value = await s.describe(cfg);
232
+ const numTxt = color(c.textDim, s.key);
233
+ const labelTxt = color(c.text, s.label.padEnd(labelW));
234
+ const valueTxt = color(c.textMid, value);
235
+ rows.push(` ${numTxt} ${labelTxt} ${valueTxt}`);
236
+ }
237
+ return rows;
238
+ }
239
+ /**
240
+ * Build the `trailing` map of `✓` marks for sections edited this sitting.
241
+ */
242
+ function buildTrailingMap(updated, sections) {
243
+ const trailing = {};
244
+ sections.forEach((s, idx) => {
245
+ if (updated.has(s.key)) {
246
+ trailing[idx] = color(c.ok, glyph.ok);
247
+ }
248
+ });
249
+ return trailing;
250
+ }
251
+ /**
252
+ * Run the summary-first wizard. Loops until the user picks "done"
253
+ * (Enter or `done`). Returns true if any section was edited.
214
254
  */
215
255
  export async function runSummaryWizard(opts = {}) {
216
256
  const projectDir = opts.directory ?? process.cwd();
@@ -222,47 +262,35 @@ export async function runSummaryWizard(opts = {}) {
222
262
  let revertCheckDone = false;
223
263
  try {
224
264
  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.
265
+ // Always re-read from the ACTIVE store path so any section edit is
266
+ // reflected immediately. The previous bug used the projectDir root,
267
+ // which didn't contain gnosys.json — only the .gnosys/ subdir did.
268
+ const storePath = resolveActiveStorePath(projectDir);
269
+ const cfg = await loadConfig(storePath);
233
270
  if (!revertCheckDone) {
234
271
  revertCheckDone = true;
235
272
  await maybeOfferProviderRepair(cfg, projectDir, rl);
236
273
  }
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
- }
274
+ // Render header + panel.
275
+ process.stdout.write("\n");
276
+ process.stdout.write(`${Header(["gnosys", "setup"], { version: PKG_VERSION })}\n\n`);
277
+ const rows = await renderPanelRows(cfg, sections);
278
+ const trailing = buildTrailingMap(updated, sections);
279
+ process.stdout.write(`${Panel("gnosys settings", rows, { trailing })}\n\n`);
280
+ process.stdout.write(`${Footer(`1–${sections.length} · edit enter · done`)}\n`);
281
+ const answer = (await safeQuestion(rl, ` ${color(c.accent, glyph.prompt)} `))
282
+ .trim()
283
+ .toLowerCase();
284
+ if (!answer || answer === "done") {
258
285
  return anyChange;
259
286
  }
260
287
  const section = sections.find((s) => s.key === answer);
261
288
  if (!section) {
262
- console.log(`${DIM}Unknown choice: ${answer}${RESET}`);
289
+ process.stdout.write(`${Status("warn", `unknown choice: ${answer}`)}\n`);
263
290
  continue;
264
291
  }
265
- const cfgForEdit = await loadConfig(projectDir);
292
+ // Pass a fresh config snapshot to the editor.
293
+ const cfgForEdit = await loadConfig(storePath);
266
294
  try {
267
295
  const changed = await section.edit(rl, cfgForEdit, projectDir);
268
296
  if (changed) {
@@ -271,7 +299,7 @@ export async function runSummaryWizard(opts = {}) {
271
299
  }
272
300
  }
273
301
  catch (err) {
274
- console.log(`${DIM}Section editor failed: ${err instanceof Error ? err.message : String(err)}${RESET}`);
302
+ process.stdout.write(`${Status("fail", `section editor failed: ${err instanceof Error ? err.message : String(err)}`)}\n`);
275
303
  }
276
304
  }
277
305
  }
@@ -280,4 +308,6 @@ export async function runSummaryWizard(opts = {}) {
280
308
  rl.close();
281
309
  }
282
310
  }
311
+ // Internal helpers exported for tests.
312
+ export const __test = { resolveActiveStorePath, renderPanelRows, buildTrailingMap };
283
313
  //# 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,56 @@
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).
43
+ */
44
+ export declare function renderMachinesSection(rows: MachineRow[], currentVersion: string): string[];
45
+ /** Render a horizontal divider (1-col indent, thin rule). */
46
+ export declare function renderDivider(): string;
47
+ /**
48
+ * Final "done · central DB stamped vX.Y.Z" status line.
49
+ */
50
+ export declare function renderDoneLine(version: string): string;
51
+ /**
52
+ * Build the dashboard summary lines (printed after the divider when
53
+ * regeneration succeeded).
54
+ */
55
+ export declare function renderDashboardSummary(htmlPath: string, mdPath: string): string[];
56
+ //# sourceMappingURL=syncProjectsRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncProjectsRender.d.ts","sourceRoot":"","sources":["../../../src/lib/setup/syncProjectsRender.ts"],"names":[],"mappings":"AAwBA,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,CAalE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAajE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAQhE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB1F;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"}