gnosys 5.8.3 → 5.8.5
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.
- package/dist/cli.js +60 -13
- package/dist/cli.js.map +1 -1
- package/dist/lib/config.d.ts +8 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +14 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/projectIdentity.d.ts.map +1 -1
- package/dist/lib/projectIdentity.js +42 -9
- package/dist/lib/projectIdentity.js.map +1 -1
- package/dist/lib/setup/sections/preferences.d.ts +21 -12
- package/dist/lib/setup/sections/preferences.d.ts.map +1 -1
- package/dist/lib/setup/sections/preferences.js +139 -77
- package/dist/lib/setup/sections/preferences.js.map +1 -1
- package/dist/lib/setup/summary.d.ts.map +1 -1
- package/dist/lib/setup/summary.js +84 -7
- package/dist/lib/setup/summary.js.map +1 -1
- package/dist/lib/setup.d.ts +16 -0
- package/dist/lib/setup.d.ts.map +1 -1
- package/dist/lib/setup.js +91 -20
- package/dist/lib/setup.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Setup: User Preferences
|
|
2
|
+
* Setup: User Preferences.
|
|
3
3
|
*
|
|
4
|
-
* v5.6.0
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* v5.6.0 noted 4 imported user-scope memories that looked like prefs.
|
|
5
|
+
* v5.8.4 reshape: this wizard now manages actual preferences (memories
|
|
6
|
+
* with category=preferences, scope=user — the same shape `gnosys pref
|
|
7
|
+
* set` writes). Previous version listed ALL user-scope memories
|
|
8
|
+
* regardless of category, mixing imported notes with real preferences
|
|
9
|
+
* and producing a "0 stored" + "no actions available" dead end even
|
|
10
|
+
* when the user had user-scope memories.
|
|
9
11
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
12
|
+
* The wizard now lets you:
|
|
13
|
+
* - List existing preferences (filtered to category=preferences)
|
|
14
|
+
* - Set a new preference inline (key + value)
|
|
15
|
+
* - View / delete an existing preference
|
|
13
16
|
*/
|
|
14
17
|
import { GnosysDB } from "../../db.js";
|
|
18
|
+
import { setPreference, getAllPreferences, deletePreference, KNOWN_PREFERENCE_KEYS, } from "../../preferences.js";
|
|
15
19
|
const DIM = "\x1b[2m";
|
|
16
20
|
const GREEN = "\x1b[32m";
|
|
17
21
|
const RED = "\x1b[31m";
|
|
18
22
|
const YELLOW = "\x1b[33m";
|
|
23
|
+
const BOLD = "\x1b[1m";
|
|
19
24
|
const RESET = "\x1b[0m";
|
|
20
|
-
/** Inspect a memory ID and classify it. v5.x gnosys uses `prefix-ULID`
|
|
25
|
+
/** Inspect a memory ID and classify it. v5.x gnosys uses `prefix-ULID` or `pref-<key>`. */
|
|
21
26
|
function classifyId(id) {
|
|
22
27
|
if (/^pref-[a-z0-9-]+$/.test(id))
|
|
23
28
|
return "gnosys-native"; // explicit pref ID
|
|
@@ -27,7 +32,27 @@ function classifyId(id) {
|
|
|
27
32
|
return "imported"; // pre-gnosys timestamp+random
|
|
28
33
|
return "unknown";
|
|
29
34
|
}
|
|
30
|
-
|
|
35
|
+
function memoryToUserPreference(m) {
|
|
36
|
+
// pref-<key> id pattern → strip prefix; otherwise fall back to id as key.
|
|
37
|
+
const key = m.id.startsWith("pref-") ? m.id.slice("pref-".length) : m.id;
|
|
38
|
+
// Strip the leading "# Title\n\n" from content if present, leaving just the value.
|
|
39
|
+
const stripped = m.content.replace(/^#\s+[^\n]+\n+/, "").trim();
|
|
40
|
+
return {
|
|
41
|
+
id: m.id,
|
|
42
|
+
key,
|
|
43
|
+
title: m.title,
|
|
44
|
+
value: stripped || m.content,
|
|
45
|
+
created: m.created,
|
|
46
|
+
modified: m.modified,
|
|
47
|
+
source: classifyId(m.id),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Load every preference (memories with category=preferences AND scope=user).
|
|
52
|
+
*
|
|
53
|
+
* v5.8.4: now filters to category=preferences — matches what `setPreference`
|
|
54
|
+
* writes and what `getAllPreferences` reads.
|
|
55
|
+
*/
|
|
31
56
|
export async function listUserPreferences() {
|
|
32
57
|
const db = GnosysDB.openCentral();
|
|
33
58
|
if (!db.isAvailable()) {
|
|
@@ -35,15 +60,84 @@ export async function listUserPreferences() {
|
|
|
35
60
|
return [];
|
|
36
61
|
}
|
|
37
62
|
try {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
})
|
|
63
|
+
// getAllPreferences already filters to category=preferences + scope=user.
|
|
64
|
+
// Walk to raw memories via getMemory so we can build the UserPreference
|
|
65
|
+
// shape (which includes id, created/modified — fields not on Preference).
|
|
66
|
+
const refs = getAllPreferences(db);
|
|
67
|
+
return refs
|
|
68
|
+
.map((p) => {
|
|
69
|
+
const mem = db.getMemory(`pref-${p.key}`);
|
|
70
|
+
return mem ? memoryToUserPreference(mem) : null;
|
|
71
|
+
})
|
|
72
|
+
.filter((p) => p !== null);
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
db.close();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async function setNewPreference(rl) {
|
|
79
|
+
console.log("");
|
|
80
|
+
console.log(`${BOLD}New preference${RESET}`);
|
|
81
|
+
console.log(`${DIM}Known keys: ${KNOWN_PREFERENCE_KEYS.slice(0, 5).join(", ")}, ...${RESET}`);
|
|
82
|
+
console.log(`${DIM}You can also use any custom key — just keep it kebab-case.${RESET}`);
|
|
83
|
+
console.log("");
|
|
84
|
+
const key = (await rl.question("Key (e.g. code-style): ")).trim();
|
|
85
|
+
if (!key) {
|
|
86
|
+
console.log(`${DIM}Cancelled.${RESET}`);
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
if (!/^[a-z0-9][a-z0-9-]*$/.test(key)) {
|
|
90
|
+
console.log(`${RED}Invalid key — use lowercase letters, digits, and dashes only.${RESET}`);
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
const value = (await rl.question("Value (one line or short paragraph): ")).trim();
|
|
94
|
+
if (!value) {
|
|
95
|
+
console.log(`${DIM}Cancelled.${RESET}`);
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
const db = GnosysDB.openCentral();
|
|
99
|
+
try {
|
|
100
|
+
setPreference(db, key, value);
|
|
101
|
+
console.log(`${GREEN}✓${RESET} Set ${key}`);
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
console.log(`${RED}✗${RESET} Failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
db.close();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async function viewAndMaybeDelete(rl, pref) {
|
|
113
|
+
console.log("");
|
|
114
|
+
console.log(`${BOLD}${pref.title}${RESET}`);
|
|
115
|
+
console.log(`${DIM}key: ${pref.key} id: ${pref.id}${RESET}`);
|
|
116
|
+
console.log(`${DIM}source: ${pref.source} created: ${pref.created.slice(0, 10)}${RESET}`);
|
|
117
|
+
console.log("");
|
|
118
|
+
console.log(pref.value);
|
|
119
|
+
console.log("");
|
|
120
|
+
const action = (await rl.question("[K]eep · [D]elete · [B]ack> ")).trim().toLowerCase();
|
|
121
|
+
if (action !== "d" && action !== "delete")
|
|
122
|
+
return false;
|
|
123
|
+
const confirm = (await rl.question(`Delete "${pref.title}"? [y/N] `)).trim().toLowerCase();
|
|
124
|
+
if (confirm !== "y" && confirm !== "yes")
|
|
125
|
+
return false;
|
|
126
|
+
const db = GnosysDB.openCentral();
|
|
127
|
+
try {
|
|
128
|
+
const ok = deletePreference(db, pref.key);
|
|
129
|
+
if (ok) {
|
|
130
|
+
console.log(`${GREEN}✓${RESET} Deleted ${pref.id}`);
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
// Fall back to direct memory delete for non-standard ids.
|
|
134
|
+
db.deleteMemory(pref.id);
|
|
135
|
+
console.log(`${GREEN}✓${RESET} Deleted ${pref.id} (legacy id format)`);
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
console.log(`${RED}✗${RESET} Failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
140
|
+
return false;
|
|
47
141
|
}
|
|
48
142
|
finally {
|
|
49
143
|
db.close();
|
|
@@ -51,78 +145,46 @@ export async function listUserPreferences() {
|
|
|
51
145
|
}
|
|
52
146
|
/**
|
|
53
147
|
* Run the interactive preferences review. Returns true if anything was
|
|
54
|
-
* changed (
|
|
148
|
+
* changed (added, edited, or deleted).
|
|
55
149
|
*/
|
|
56
150
|
export async function runPreferencesReview(rl) {
|
|
57
|
-
const prefs = await listUserPreferences();
|
|
58
151
|
let anyChange = false;
|
|
59
|
-
if (prefs.length === 0) {
|
|
60
|
-
console.log(`${DIM}No user-scope preferences stored.${RESET}`);
|
|
61
|
-
console.log(`${DIM}Set one with: gnosys pref set <key> <value>${RESET}`);
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
152
|
while (true) {
|
|
65
|
-
// Reload each iteration since deletions change the list
|
|
66
153
|
const current = await listUserPreferences();
|
|
67
|
-
if (current.length === 0)
|
|
68
|
-
return anyChange;
|
|
69
154
|
console.log("");
|
|
70
|
-
console.log(
|
|
71
|
-
current.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
155
|
+
console.log(`${BOLD}User Preferences${RESET}`);
|
|
156
|
+
if (current.length === 0) {
|
|
157
|
+
console.log(`${DIM}No preferences set. Pick [N] to add one.${RESET}`);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
current.forEach((p, i) => {
|
|
161
|
+
const tag = p.source === "imported"
|
|
162
|
+
? `${YELLOW}imported${RESET}`
|
|
163
|
+
: p.source === "gnosys-native"
|
|
164
|
+
? `${GREEN}native${RESET}`
|
|
165
|
+
: `${YELLOW}unknown${RESET}`;
|
|
166
|
+
const preview = p.value.replace(/\s+/g, " ").trim().slice(0, 60);
|
|
167
|
+
console.log(` ${i + 1}. [${tag}] ${BOLD}${p.key}${RESET} — ${p.title}`);
|
|
168
|
+
console.log(` ${DIM}${preview}${preview.length === 60 ? "..." : ""}${RESET}`);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
82
171
|
console.log("");
|
|
83
|
-
console.log(`
|
|
172
|
+
console.log(` [${BOLD}N${RESET}]ew · [${BOLD}1-${current.length || "N"}${RESET}] view/delete · [${BOLD}B${RESET}]ack`);
|
|
84
173
|
const answer = (await rl.question("> ")).trim().toLowerCase();
|
|
85
174
|
if (!answer || answer === "b" || answer === "back")
|
|
86
175
|
return anyChange;
|
|
176
|
+
if (answer === "n" || answer === "new") {
|
|
177
|
+
if (await setNewPreference(rl))
|
|
178
|
+
anyChange = true;
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
87
181
|
const idx = parseInt(answer, 10) - 1;
|
|
88
182
|
if (Number.isNaN(idx) || idx < 0 || idx >= current.length) {
|
|
89
183
|
console.log(`${DIM}Unknown choice: ${answer}${RESET}`);
|
|
90
184
|
continue;
|
|
91
185
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
console.log("");
|
|
95
|
-
console.log(`${pref.title}`);
|
|
96
|
-
console.log(`${DIM}id: ${pref.id} source: ${pref.source} created: ${pref.created.slice(0, 10)}${RESET}`);
|
|
97
|
-
console.log("");
|
|
98
|
-
console.log(pref.content);
|
|
99
|
-
console.log("");
|
|
100
|
-
const action = (await rl.question("[K]eep · [D]elete · [B]ack> ")).trim().toLowerCase();
|
|
101
|
-
if (action === "d" || action === "delete") {
|
|
102
|
-
const confirm = (await rl.question(`Delete "${pref.title}"? [y/N] `)).trim().toLowerCase();
|
|
103
|
-
if (confirm === "y" || confirm === "yes") {
|
|
104
|
-
const db = GnosysDB.openCentral();
|
|
105
|
-
try {
|
|
106
|
-
db.deleteMemory(pref.id);
|
|
107
|
-
db.logAudit({
|
|
108
|
-
timestamp: new Date().toISOString(),
|
|
109
|
-
operation: "delete",
|
|
110
|
-
memory_id: pref.id,
|
|
111
|
-
details: JSON.stringify({ source: "setup-preferences-review" }),
|
|
112
|
-
duration_ms: null,
|
|
113
|
-
trace_id: null,
|
|
114
|
-
});
|
|
115
|
-
console.log(`${GREEN}✓${RESET} Deleted ${pref.id}`);
|
|
116
|
-
anyChange = true;
|
|
117
|
-
}
|
|
118
|
-
catch (err) {
|
|
119
|
-
console.log(`${RED}✗${RESET} Failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
120
|
-
}
|
|
121
|
-
finally {
|
|
122
|
-
db.close();
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
186
|
+
if (await viewAndMaybeDelete(rl, current[idx]))
|
|
187
|
+
anyChange = true;
|
|
126
188
|
}
|
|
127
189
|
}
|
|
128
190
|
//# sourceMappingURL=preferences.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../../../src/lib/setup/sections/preferences.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../../../src/lib/setup/sections/preferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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"}
|
|
@@ -12,14 +12,79 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { createInterface } from "readline/promises";
|
|
14
14
|
import { stdin, stdout } from "process";
|
|
15
|
-
import { loadConfig, resolveTaskModel, } from "../config.js";
|
|
15
|
+
import { loadConfig, resolveTaskModel, updateConfig, } from "../config.js";
|
|
16
16
|
import { GnosysDB } from "../db.js";
|
|
17
17
|
// ─── ANSI ───────────────────────────────────────────────────────────────────
|
|
18
18
|
const BOLD = "\x1b[1m";
|
|
19
19
|
const DIM = "\x1b[2m";
|
|
20
20
|
const GREEN = "\x1b[32m";
|
|
21
|
+
const YELLOW = "\x1b[33m";
|
|
21
22
|
const RESET = "\x1b[0m";
|
|
22
23
|
const CHECK = `${GREEN}✓${RESET}`;
|
|
24
|
+
// ─── Provider-revert repair (v5.8.5) ────────────────────────────────────────
|
|
25
|
+
//
|
|
26
|
+
// 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.
|
|
31
|
+
const PROVIDERS_WITH_KEYS = ["anthropic", "openai", "xai", "groq", "mistral"];
|
|
32
|
+
async function maybeOfferProviderRepair(cfg, projectDir, rl) {
|
|
33
|
+
if (cfg.llm.defaultProvider !== "anthropic")
|
|
34
|
+
return;
|
|
35
|
+
const { getApiKeyForProvider } = await import("../setup.js");
|
|
36
|
+
const anthropicKey = await getApiKeyForProvider("anthropic");
|
|
37
|
+
if (anthropicKey)
|
|
38
|
+
return; // user might really want Anthropic and just hasn't fully set up yet
|
|
39
|
+
const candidates = [];
|
|
40
|
+
for (const p of PROVIDERS_WITH_KEYS) {
|
|
41
|
+
if (p === "anthropic")
|
|
42
|
+
continue;
|
|
43
|
+
const key = await getApiKeyForProvider(p);
|
|
44
|
+
if (key)
|
|
45
|
+
candidates.push(p);
|
|
46
|
+
}
|
|
47
|
+
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.
|
|
50
|
+
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();
|
|
59
|
+
if (answer === "n" || answer === "no") {
|
|
60
|
+
console.log(`${DIM}Left as anthropic. Run option 1 below to change explicitly.${RESET}`);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
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
|
+
}
|
|
80
|
+
await updateConfig(storePath, { llm: { defaultProvider: suggestion } });
|
|
81
|
+
console.log(`${CHECK} Switched default to ${BOLD}${suggestion}${RESET}.`);
|
|
82
|
+
}
|
|
83
|
+
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}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
23
88
|
/**
|
|
24
89
|
* Build the section list. Each `edit` calls into existing wizards via
|
|
25
90
|
* dynamic import — keeps this file decoupled from the legacy setup.ts.
|
|
@@ -30,9 +95,11 @@ export function buildSections() {
|
|
|
30
95
|
key: "1",
|
|
31
96
|
label: "Provider",
|
|
32
97
|
describe: (cfg) => cfg.llm.defaultProvider,
|
|
33
|
-
edit: async (
|
|
98
|
+
edit: async (rl, _cfg, projectDir) => {
|
|
34
99
|
const { runModelsSetup } = await import("../setup.js");
|
|
35
|
-
|
|
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 });
|
|
36
103
|
return true;
|
|
37
104
|
},
|
|
38
105
|
},
|
|
@@ -43,9 +110,9 @@ export function buildSections() {
|
|
|
43
110
|
const synth = resolveTaskModel(cfg, "synthesis");
|
|
44
111
|
return `${synth.provider} / ${synth.model}`;
|
|
45
112
|
},
|
|
46
|
-
edit: async (
|
|
113
|
+
edit: async (rl, _cfg, projectDir) => {
|
|
47
114
|
const { runModelsSetup } = await import("../setup.js");
|
|
48
|
-
await runModelsSetup({ directory: projectDir });
|
|
115
|
+
await runModelsSetup({ directory: projectDir, rl });
|
|
49
116
|
return true;
|
|
50
117
|
},
|
|
51
118
|
},
|
|
@@ -106,9 +173,9 @@ export function buildSections() {
|
|
|
106
173
|
const model = cfg.dream.model ?? "default";
|
|
107
174
|
return `${provider} / ${model}`;
|
|
108
175
|
},
|
|
109
|
-
edit: async (
|
|
176
|
+
edit: async (rl, _cfg, projectDir) => {
|
|
110
177
|
const { runDreamSetup } = await import("../setup.js");
|
|
111
|
-
await runDreamSetup({ directory: projectDir });
|
|
178
|
+
await runDreamSetup({ directory: projectDir, rl });
|
|
112
179
|
return true;
|
|
113
180
|
},
|
|
114
181
|
},
|
|
@@ -152,11 +219,21 @@ export async function runSummaryWizard(opts = {}) {
|
|
|
152
219
|
const sections = buildSections();
|
|
153
220
|
const updated = new Set();
|
|
154
221
|
let anyChange = false;
|
|
222
|
+
let revertCheckDone = false;
|
|
155
223
|
try {
|
|
156
224
|
while (true) {
|
|
157
225
|
// Reload config each iteration so the displayed values reflect any
|
|
158
226
|
// section edit that just happened.
|
|
159
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.
|
|
233
|
+
if (!revertCheckDone) {
|
|
234
|
+
revertCheckDone = true;
|
|
235
|
+
await maybeOfferProviderRepair(cfg, projectDir, rl);
|
|
236
|
+
}
|
|
160
237
|
console.log("");
|
|
161
238
|
console.log(`${BOLD}┌─────────────────────────────────────────────┐${RESET}`);
|
|
162
239
|
console.log(`${BOLD}│ Gnosys Settings │${RESET}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/lib/setup/summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACL,UAAU,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/lib/setup/summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,YAAY,GAGb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,+EAA+E;AAC/E,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;AAElC,+EAA+E;AAC/E,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,qEAAqE;AACrE,uEAAuE;AACvE,wDAAwD;AAExD,MAAM,mBAAmB,GAAsB,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAEjG,KAAK,UAAU,wBAAwB,CACrC,GAAiB,EACjB,UAAkB,EAClB,EAAqB;IAErB,IAAI,GAAG,CAAC,GAAG,CAAC,eAAe,KAAK,WAAW;QAAE,OAAO;IACpD,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,YAAY;QAAE,OAAO,CAAC,oEAAoE;IAE9F,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,WAAW;YAAE,SAAS;QAChC,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,qCAAqC;IAE1E,8EAA8E;IAC9E,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,0BAA0B,IAAI,6BAA6B,KAAK,GAAG,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3I,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,IAAI,GAAG,UAAU,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtH,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,8DAA8D,KAAK,EAAE,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,mEAAmE;QACnE,qCAAqC;QACrC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,6DAA6D;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,SAAS,GAAG,YAAY,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;QACD,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,wBAAwB,IAAI,GAAG,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,gDAAgD,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAgBD;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe;YAC1C,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBACnC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBACvD,iEAAiE;gBACjE,yCAAyC;gBACzC,MAAM,cAAc,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;SACF;QACD;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACtB,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBACjD,OAAO,GAAG,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9C,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBACnC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBACvD,MAAM,cAAc,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;SACF;QACD;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACtB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;oBACpB,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,QAAQ;oBAC7C,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,QAAQ;iBAC5C,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACxF,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC;SAClE;QACD;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,aAAa,CAAC;YAClE,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;SAC/D;QACD;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,oBAAoB;YAC3B,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;oBAC7C,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,UAAU,IAAI,gBAAgB,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,gBAAgB,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBACjB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,OAAO,MAAM,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACjD,CAAC;wBAAS,CAAC;oBACT,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;SACF;QACD;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO;oBAAE,OAAO,UAAU,CAAC;gBAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC;gBAChD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;gBAC3C,OAAO,GAAG,QAAQ,MAAM,KAAK,EAAE,CAAC;YAClC,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBACnC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBACtD,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC;SACF;QACD;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBAC1E,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC;gBAC1C,OAAO,GAAG,KAAK,CAAC,MAAM,SAAS,CAAC;YAClC,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBACjB,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBAC3E,OAAO,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E;;;GAGG;AACH,KAAK,UAAU,WAAW,CAAC,EAAqB,EAAE,UAAkB;IAClE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAClE,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,yEAAyE;AACzE,KAAK,UAAU,QAAQ,CAAC,EAAqB,EAAE,UAAkB;IAC/D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC5D,OAAO,YAAY,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACrD,CAAC;AAWD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAuB,EAAE;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAExE,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,mEAAmE;YACnE,mCAAmC;YACnC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;YAEzC,oEAAoE;YACpE,oEAAoE;YACpE,sEAAsE;YACtE,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,kDAAkD,KAAK,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,kDAAkD,KAAK,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,kDAAkD,KAAK,EAAE,CAAC,CAAC;YAC9E,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC;gBACjF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,kDAAkD,KAAK,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC;YAEnF,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9D,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACnD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxC,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,oEAAoE,KAAK,EAAE,CAAC,CAAC;gBACjG,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,mBAAmB,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;gBACvD,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBAC/D,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzB,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,MAAM;YAAE,EAAE,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
|
package/dist/lib/setup.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Uses Node.js built-in readline/promises — no external dependencies.
|
|
9
9
|
*/
|
|
10
|
+
import { Interface as ReadlineInterface } from "readline/promises";
|
|
10
11
|
export interface ModelTier {
|
|
11
12
|
name: string;
|
|
12
13
|
model: string;
|
|
@@ -85,6 +86,12 @@ export interface ModelsSetupOpts {
|
|
|
85
86
|
model?: string;
|
|
86
87
|
validate?: boolean;
|
|
87
88
|
directory?: string;
|
|
89
|
+
/**
|
|
90
|
+
* v5.8.4: accept the caller's readline (e.g. from the summary wizard).
|
|
91
|
+
* When provided, we don't open or close one of our own — preventing two
|
|
92
|
+
* readlines from racing for stdin and doubling every keystroke.
|
|
93
|
+
*/
|
|
94
|
+
rl?: ReadlineInterface;
|
|
88
95
|
}
|
|
89
96
|
/**
|
|
90
97
|
* Models-only configuration — prompts for provider, model, and key (or accepts
|
|
@@ -107,6 +114,8 @@ export interface ModelsCommandOpts {
|
|
|
107
114
|
export declare function runModelsCommand(opts?: ModelsCommandOpts): Promise<void>;
|
|
108
115
|
export interface DreamSetupOpts {
|
|
109
116
|
directory?: string;
|
|
117
|
+
/** v5.8.4: reuse the caller's readline (e.g. summary wizard) to avoid stdin races. */
|
|
118
|
+
rl?: ReadlineInterface;
|
|
110
119
|
}
|
|
111
120
|
/**
|
|
112
121
|
* Walks the user through configuring dream mode. Handles:
|
|
@@ -122,7 +131,14 @@ export interface DreamSetupOpts {
|
|
|
122
131
|
export declare function runDreamSetup(opts?: DreamSetupOpts): Promise<void>;
|
|
123
132
|
interface ChatSetupOpts {
|
|
124
133
|
directory?: string;
|
|
134
|
+
/** v5.8.4: reuse the caller's readline (e.g. summary wizard) to avoid stdin races. */
|
|
135
|
+
rl?: ReadlineInterface;
|
|
125
136
|
}
|
|
126
137
|
export declare function runChatSetup(opts?: ChatSetupOpts): Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* Best-effort lookup of the API key for a provider. Used by the dream setup
|
|
140
|
+
* wizard to power the validation step. Mirrors the resolveApiKey precedence.
|
|
141
|
+
*/
|
|
142
|
+
export declare function getApiKeyForProvider(provider: string): Promise<string>;
|
|
127
143
|
export {};
|
|
128
144
|
//# sourceMappingURL=setup.d.ts.map
|
package/dist/lib/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
|