gnosys 4.4.4 → 4.4.7
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/README.md +12 -7
- package/dist/cli.js +126 -16
- package/dist/cli.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +38 -6
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/setup.d.ts +11 -2
- package/dist/lib/setup.d.ts.map +1 -1
- package/dist/lib/setup.js +254 -81
- package/dist/lib/setup.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,QAAA,MAAM,eAAe;;;;;;;;;EAA4F,CAAC;AAClH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AA6E9D,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;iBAmBrB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI5D,QAAA,MAAM,kBAAkB;;;;iBAOtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;iBA2BnB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgF7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,eAAO,MAAM,cAAc,EAAE,YAA2C,CAAC;AAIzE;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,aAAa,GAAG,WAAW,GAChC;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoB9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,CAYxF;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.js
CHANGED
|
@@ -234,17 +234,49 @@ export function getProviderModel(config, provider) {
|
|
|
234
234
|
default: return config.llm.anthropic.model;
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Resolve an API key from multiple sources in priority order:
|
|
239
|
+
* 1. Config (gnosys.json)
|
|
240
|
+
* 2. GNOSYS_<PROVIDER>_KEY env var (new convention)
|
|
241
|
+
* 3. macOS Keychain (if on macOS)
|
|
242
|
+
* 4. Legacy env var (ANTHROPIC_API_KEY, etc.)
|
|
243
|
+
* 5. ~/.config/gnosys/.env (read at startup)
|
|
244
|
+
*/
|
|
245
|
+
function resolveApiKey(configKey, gnosysEnvVar, legacyEnvVar) {
|
|
246
|
+
// 1. Config value
|
|
247
|
+
if (configKey)
|
|
248
|
+
return configKey;
|
|
249
|
+
// 2. New GNOSYS_*_KEY env var
|
|
250
|
+
if (process.env[gnosysEnvVar])
|
|
251
|
+
return process.env[gnosysEnvVar];
|
|
252
|
+
// 3. macOS Keychain
|
|
253
|
+
if (process.platform === "darwin") {
|
|
254
|
+
try {
|
|
255
|
+
const { execSync } = require("child_process");
|
|
256
|
+
const result = execSync(`security find-generic-password -a "$USER" -s "${gnosysEnvVar}" -w 2>/dev/null`, { stdio: "pipe", encoding: "utf-8", timeout: 2000 }).trim();
|
|
257
|
+
if (result)
|
|
258
|
+
return result;
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
// Not in keychain — fall through
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// 4. Legacy env var
|
|
265
|
+
if (legacyEnvVar && process.env[legacyEnvVar])
|
|
266
|
+
return process.env[legacyEnvVar];
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
237
269
|
/**
|
|
238
270
|
* Get the Groq API key, checking config first then env var.
|
|
239
271
|
*/
|
|
240
272
|
export function getGroqApiKey(config) {
|
|
241
|
-
return config.llm.groq.apiKey
|
|
273
|
+
return resolveApiKey(config.llm.groq.apiKey, "GNOSYS_GROQ_KEY", "GROQ_API_KEY");
|
|
242
274
|
}
|
|
243
275
|
/**
|
|
244
276
|
* Get the OpenAI API key, checking config first then env var.
|
|
245
277
|
*/
|
|
246
278
|
export function getOpenAIApiKey(config) {
|
|
247
|
-
return config.llm.openai.apiKey
|
|
279
|
+
return resolveApiKey(config.llm.openai.apiKey, "GNOSYS_OPENAI_KEY", "OPENAI_API_KEY");
|
|
248
280
|
}
|
|
249
281
|
/**
|
|
250
282
|
* Get the OpenAI base URL from config.
|
|
@@ -262,7 +294,7 @@ export function getLMStudioBaseUrl(config) {
|
|
|
262
294
|
* Get the Anthropic API key, checking config first then env var.
|
|
263
295
|
*/
|
|
264
296
|
export function getAnthropicApiKey(config) {
|
|
265
|
-
return config.llm.anthropic.apiKey
|
|
297
|
+
return resolveApiKey(config.llm.anthropic.apiKey, "GNOSYS_ANTHROPIC_KEY", "ANTHROPIC_API_KEY");
|
|
266
298
|
}
|
|
267
299
|
/**
|
|
268
300
|
* Get the Ollama base URL from config.
|
|
@@ -274,19 +306,19 @@ export function getOllamaBaseUrl(config) {
|
|
|
274
306
|
* Get the xAI API key, checking config first then env var.
|
|
275
307
|
*/
|
|
276
308
|
export function getXAIApiKey(config) {
|
|
277
|
-
return config.llm.xai.apiKey
|
|
309
|
+
return resolveApiKey(config.llm.xai.apiKey, "GNOSYS_XAI_KEY", "XAI_API_KEY");
|
|
278
310
|
}
|
|
279
311
|
/**
|
|
280
312
|
* Get the Mistral API key, checking config first then env var.
|
|
281
313
|
*/
|
|
282
314
|
export function getMistralApiKey(config) {
|
|
283
|
-
return config.llm.mistral.apiKey
|
|
315
|
+
return resolveApiKey(config.llm.mistral.apiKey, "GNOSYS_MISTRAL_KEY", "MISTRAL_API_KEY");
|
|
284
316
|
}
|
|
285
317
|
/**
|
|
286
318
|
* Get the Custom provider API key, checking config first then env var.
|
|
287
319
|
*/
|
|
288
320
|
export function getCustomApiKey(config) {
|
|
289
|
-
return config.llm.custom?.apiKey
|
|
321
|
+
return resolveApiKey(config.llm.custom?.apiKey, "GNOSYS_CUSTOM_KEY", "GNOSYS_LLM_API_KEY");
|
|
290
322
|
}
|
|
291
323
|
// ─── Migration ───────────────────────────────────────────────────────────
|
|
292
324
|
/**
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,2EAA2E;AAE3E,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGlH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,0CAA0C;CAC1E,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC;IACpD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,qCAAqC;CACrE,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,uCAAuC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC;CACzD,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC;IACrD,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACxE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IAC5F,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACpE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACnG,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACjG,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpD,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAClE,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,2EAA2E;AAE3E,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,6EAA6E;IAC7E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,sEAAsE;IACtE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CACrD,CAAC,CAAC;AAEH,0EAA0E;AAE1E,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,sEAAsE;IACtE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,yDAAyD;IACzD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,sDAAsD;IACtD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/D,+CAA+C;IAC/C,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3C,yEAAyE;IACzE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,kEAAkE;IAClE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,yCAAyC;IACzC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5C,qDAAqD;IACrD,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD,mDAAmD;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAC;AAIH,0EAA0E;AAE1E,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,4FAA4F;IAC5F,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrC,sCAAsC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,gHAAgH;IAChH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CACpD,CAAC,CAAC;AAIH,2EAA2E;AAE3E,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,mDAAmD;IACnD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACnE,qCAAqC;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,6CAA6C;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,+BAA+B;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,2CAA2C;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;IAC5C,kDAAkD;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClE,uCAAuC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;QACnD,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,UAAU;KAC1B,CAAC;IACF,kDAAkD;IAClD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,2DAA2D;IAC3D,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjC,sCAAsC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,8DAA8D;IAC9D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CAC7C,CAAC,CAAC;AAIH,2EAA2E;AAE3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,wBAAwB;IACxB,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC;QAC3B,eAAe,EAAE,WAAW;QAC5B,SAAS,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;QACzC,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,wBAAwB,EAAE;QAChE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE;QAC1C,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,2BAA2B,EAAE;QACvE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,EAAE;QACnE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;QAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;KACtC,CAAC;IAEF,oCAAoC;IACpC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IAExC,0FAA0F;IAC1F,kDAAkD;IAClD,kBAAkB,EAAE,CAAC;SAClB,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC/C,QAAQ,EAAE;IAEb,sEAAsE;IACtE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEnC,sDAAsD;IACtD,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAEvE,uCAAuC;IACvC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7D,iEAAiE;IACjE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAErC,+CAA+C;IAC/C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5D,+DAA+D;IAC/D,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEvE,2CAA2C;IAC3C,aAAa,EAAE,CAAC;SACb,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;SACjC,OAAO,CAAC,IAAI,CAAC;IAEhB,8CAA8C;IAC9C,gBAAgB,EAAE,CAAC;SAChB,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;SACtD,OAAO,CAAC,UAAU,CAAC;IAEtB,0DAA0D;IAC1D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAExD,kEAAkE;IAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEhC,uCAAuC;IACvC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;IAE/E,wDAAwD;IACxD,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC;QACjC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,GAAG;KAClB,CAAC;IAEF,6DAA6D;IAC7D,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;QAC/B,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,EAAE;QACf,iBAAiB,EAAE,EAAE;QACrB,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,IAAI;QACvB,qBAAqB,EAAE,IAAI;QAC3B,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,8EAA8E;IAC9E,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAIH,4EAA4E;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAiB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEzE,4EAA4E;AAE5E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAoB,EACpB,IAAiC;IAEjC,4BAA4B;IAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IAED,sCAAsC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IAE5C,sFAAsF;IACtF,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC7E,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IACxE,CAAC;IAED,yCAAyC;IACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEjD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,QAAyB;IAC9E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;QACpD,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClD,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACxC,KAAK,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;QAChD,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CACpB,SAA6B,EAC7B,YAAoB,EACpB,YAAqB;IAErB,kBAAkB;IAClB,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,8BAA8B;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEhE,oBAAoB;IACpB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CACrB,iDAAiD,YAAY,kBAAkB,EAC/E,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CACpD,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEhF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AACxF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;AACjG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;AAC3F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;AAC7F,CAAC;AAED,4EAA4E;AAE5E;;;GAGG;AACH,SAAS,aAAa,CAAC,GAA4B;IACjD,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAE5B,0DAA0D;IAC1D,IAAI,QAAQ,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,kBAA4B,CAAC;QACvD,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtD,QAAQ,CAAC,GAAG,GAAG;gBACb,eAAe,EAAE,QAAQ;gBACzB,GAAG,CAAC,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IAAI,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC3C,QAAQ,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;IACjE,CAAC;SAAM,IAAI,QAAQ,CAAC,YAAY,IAAI,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QAC9F,MAAM,GAAG,GAAG,QAAQ,CAAC,GAA8B,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,GAAG,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,4EAA4E;AAE5E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9F,gCAAgC;YAChC,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,mBAAmB,UAAU,KAAK,GAAG,CAAC,OAAO,EAAE,CAChD,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM;iBACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;iBACnD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,KAAK,CACb,0BAA0B,UAAU,MAAM,MAAM,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,MAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,OAAgC;IAEhC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IACnF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,GAAG,EAAE;YACH,eAAe,EAAE,WAAW;YAC5B,SAAS,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACzC,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,wBAAwB,EAAE;YAChE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE;YAC1C,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,2BAA2B,EAAE;YACvE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,EAAE;YACnE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;YAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;SACtC;QACD,UAAU,EAAE,EAAE;QACd,sBAAsB,EAAE,GAAG;QAC3B,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,IAAI;QAChB,gBAAgB,EAAE,CAAC;QACnB,mBAAmB,EAAE,IAAI;QACzB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,UAAU;QAC5B,iBAAiB,EAAE,GAAG;QACtB,OAAO,EAAE;YACP,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,GAAG;SACnB;QACD,MAAM,EAAE;YACN,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,GAAG;SAClB;QACD,KAAK,EAAE;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,EAAE;YACf,iBAAiB,EAAE,EAAE;YACrB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,IAAI;YAClB,iBAAiB,EAAE,IAAI;YACvB,qBAAqB,EAAE,IAAI;YAC3B,WAAW,EAAE,EAAE;SAChB;KACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsB,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC"}
|
package/dist/lib/setup.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Gnosys Interactive Setup Wizard.
|
|
3
3
|
*
|
|
4
4
|
* Guides users through provider selection, model tier, API key storage,
|
|
5
|
-
* IDE integration
|
|
5
|
+
* IDE integration. Web knowledge base is set up separately via: gnosys web init
|
|
6
6
|
*
|
|
7
7
|
* Uses Node.js built-in readline/promises — no external dependencies.
|
|
8
8
|
*/
|
|
@@ -19,10 +19,19 @@ export interface SetupResult {
|
|
|
19
19
|
structuringModel: string;
|
|
20
20
|
apiKeyWritten: boolean;
|
|
21
21
|
ides: string[];
|
|
22
|
-
mode: "agent"
|
|
22
|
+
mode: "agent";
|
|
23
23
|
upgraded: boolean;
|
|
24
24
|
}
|
|
25
25
|
export declare const PROVIDER_TIERS: Record<string, ModelTier[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Fetch models from OpenRouter, cache for 24 hours, fall back to hardcoded.
|
|
28
|
+
* Returns updated PROVIDER_TIERS for cloud providers only.
|
|
29
|
+
*/
|
|
30
|
+
export declare function fetchDynamicModels(): Promise<Record<string, ModelTier[]>>;
|
|
31
|
+
/**
|
|
32
|
+
* Get model tiers for a provider — tries dynamic first, falls back to hardcoded.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getModelTiers(provider: string): Promise<ModelTier[]>;
|
|
26
35
|
/**
|
|
27
36
|
* Returns the cheapest capable model for structuring tasks.
|
|
28
37
|
* Structuring (keyword extraction, tagging) doesn't need a flagship model.
|
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;;;;;;;GAOG;AAwCH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwCH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAkCtD,CAAC;AAyBF;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CA2F/E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAM1E;AAsCD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAUjF;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC9E;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BtE;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAsEhD;AA8HD,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,WAAW,CAAC,CA+cvB"}
|
package/dist/lib/setup.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Gnosys Interactive Setup Wizard.
|
|
3
3
|
*
|
|
4
4
|
* Guides users through provider selection, model tier, API key storage,
|
|
5
|
-
* IDE integration
|
|
5
|
+
* IDE integration. Web knowledge base is set up separately via: gnosys web init
|
|
6
6
|
*
|
|
7
7
|
* Uses Node.js built-in readline/promises — no external dependencies.
|
|
8
8
|
*/
|
|
@@ -71,6 +71,120 @@ export const PROVIDER_TIERS = {
|
|
|
71
71
|
],
|
|
72
72
|
custom: [],
|
|
73
73
|
};
|
|
74
|
+
// ─── Dynamic Model Fetching (OpenRouter) ─────────────────────────────────────
|
|
75
|
+
const OPENROUTER_API = "https://openrouter.ai/api/v1/models";
|
|
76
|
+
const CACHE_FILE = path.join(os.homedir(), ".config", "gnosys", "models-cache.json");
|
|
77
|
+
const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
78
|
+
// Map OpenRouter provider prefixes to our provider names
|
|
79
|
+
const OPENROUTER_PREFIX_MAP = {
|
|
80
|
+
anthropic: "anthropic",
|
|
81
|
+
openai: "openai",
|
|
82
|
+
"x-ai": "xai",
|
|
83
|
+
mistralai: "mistral",
|
|
84
|
+
// groq models are on OpenRouter under meta-llama but groq-hosted
|
|
85
|
+
// We skip dynamic for groq/ollama/lmstudio since they're local or have specific APIs
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Fetch models from OpenRouter, cache for 24 hours, fall back to hardcoded.
|
|
89
|
+
* Returns updated PROVIDER_TIERS for cloud providers only.
|
|
90
|
+
*/
|
|
91
|
+
export async function fetchDynamicModels() {
|
|
92
|
+
// Check cache first
|
|
93
|
+
try {
|
|
94
|
+
const stat = await fs.stat(CACHE_FILE);
|
|
95
|
+
if (Date.now() - stat.mtimeMs < CACHE_TTL_MS) {
|
|
96
|
+
const cached = JSON.parse(await fs.readFile(CACHE_FILE, "utf-8"));
|
|
97
|
+
if (cached && typeof cached === "object")
|
|
98
|
+
return cached;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// No cache or expired
|
|
103
|
+
}
|
|
104
|
+
// Fetch from OpenRouter
|
|
105
|
+
try {
|
|
106
|
+
const controller = new AbortController();
|
|
107
|
+
const timeout = setTimeout(() => controller.abort(), 5000);
|
|
108
|
+
const resp = await fetch(OPENROUTER_API, { signal: controller.signal });
|
|
109
|
+
clearTimeout(timeout);
|
|
110
|
+
if (!resp.ok)
|
|
111
|
+
throw new Error(`HTTP ${resp.status}`);
|
|
112
|
+
const data = (await resp.json());
|
|
113
|
+
const result = {};
|
|
114
|
+
for (const [prefix, ourProvider] of Object.entries(OPENROUTER_PREFIX_MAP)) {
|
|
115
|
+
const models = data.data
|
|
116
|
+
.filter((m) => m.id.startsWith(prefix + "/"))
|
|
117
|
+
.map((m) => {
|
|
118
|
+
const modelId = m.id.slice(prefix.length + 1);
|
|
119
|
+
const input = parseFloat(m.pricing?.prompt ?? "0") * 1e6;
|
|
120
|
+
const output = parseFloat(m.pricing?.completion ?? "0") * 1e6;
|
|
121
|
+
return { modelId, name: m.name ?? modelId, input, output, ctx: m.context_length ?? 0 };
|
|
122
|
+
})
|
|
123
|
+
.filter((m) => m.input > 0 || m.output > 0) // skip free/broken entries
|
|
124
|
+
.filter((m) => !m.modelId.includes("preview") || m.modelId.includes("flash")) // skip most previews
|
|
125
|
+
.filter((m) => !m.modelId.includes(":") || m.modelId.includes(":thinking")) // skip variants except thinking
|
|
126
|
+
.sort((a, b) => a.input - b.input);
|
|
127
|
+
if (models.length === 0)
|
|
128
|
+
continue;
|
|
129
|
+
// Auto-categorize into tiers by price quartiles
|
|
130
|
+
const tiers = [];
|
|
131
|
+
const cheapest = models[0];
|
|
132
|
+
const midIdx = Math.floor(models.length / 2);
|
|
133
|
+
const mid = models[midIdx] ?? cheapest;
|
|
134
|
+
const expensive = models[models.length - 1];
|
|
135
|
+
// Pick up to 5 distinct price points: cheapest, 25th, median, 75th, most expensive
|
|
136
|
+
const seen = new Set();
|
|
137
|
+
const picks = [
|
|
138
|
+
{ m: cheapest, label: "Budget" },
|
|
139
|
+
{ m: models[Math.floor(models.length * 0.25)] ?? cheapest, label: "Economy" },
|
|
140
|
+
{ m: mid, label: "Balanced" },
|
|
141
|
+
{ m: models[Math.floor(models.length * 0.75)] ?? expensive, label: "Advanced" },
|
|
142
|
+
{ m: expensive, label: "Premium" },
|
|
143
|
+
];
|
|
144
|
+
for (const pick of picks) {
|
|
145
|
+
if (seen.has(pick.m.modelId))
|
|
146
|
+
continue;
|
|
147
|
+
seen.add(pick.m.modelId);
|
|
148
|
+
const isRecommended = pick.m.modelId === mid.modelId;
|
|
149
|
+
tiers.push({
|
|
150
|
+
name: pick.label,
|
|
151
|
+
model: pick.m.modelId,
|
|
152
|
+
input: Math.round(pick.m.input * 100) / 100,
|
|
153
|
+
output: Math.round(pick.m.output * 100) / 100,
|
|
154
|
+
recommended: isRecommended,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
// Ensure at least one is recommended
|
|
158
|
+
if (!tiers.some((t) => t.recommended) && tiers.length > 0) {
|
|
159
|
+
tiers[Math.floor(tiers.length / 2)].recommended = true;
|
|
160
|
+
}
|
|
161
|
+
result[ourProvider] = tiers;
|
|
162
|
+
}
|
|
163
|
+
// Cache the result
|
|
164
|
+
try {
|
|
165
|
+
await fs.mkdir(path.dirname(CACHE_FILE), { recursive: true });
|
|
166
|
+
await fs.writeFile(CACHE_FILE, JSON.stringify(result, null, 2), "utf-8");
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
// Non-critical
|
|
170
|
+
}
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
// Offline or error — return empty (caller falls back to hardcoded)
|
|
175
|
+
return {};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get model tiers for a provider — tries dynamic first, falls back to hardcoded.
|
|
180
|
+
*/
|
|
181
|
+
export async function getModelTiers(provider) {
|
|
182
|
+
const dynamic = await fetchDynamicModels();
|
|
183
|
+
if (dynamic[provider] && dynamic[provider].length > 0) {
|
|
184
|
+
return dynamic[provider];
|
|
185
|
+
}
|
|
186
|
+
return PROVIDER_TIERS[provider] ?? [];
|
|
187
|
+
}
|
|
74
188
|
// ─── Provider display names and env var mapping ─────────────────────────────
|
|
75
189
|
const PROVIDER_DISPLAY = {
|
|
76
190
|
anthropic: "Anthropic (Claude)",
|
|
@@ -83,12 +197,12 @@ const PROVIDER_DISPLAY = {
|
|
|
83
197
|
custom: "Custom (any OpenAI-compatible API)",
|
|
84
198
|
};
|
|
85
199
|
const PROVIDER_ENV_VAR = {
|
|
86
|
-
anthropic: "
|
|
87
|
-
openai: "
|
|
88
|
-
groq: "
|
|
89
|
-
xai: "
|
|
90
|
-
mistral: "
|
|
91
|
-
custom: "
|
|
200
|
+
anthropic: "GNOSYS_ANTHROPIC_KEY",
|
|
201
|
+
openai: "GNOSYS_OPENAI_KEY",
|
|
202
|
+
groq: "GNOSYS_GROQ_KEY",
|
|
203
|
+
xai: "GNOSYS_XAI_KEY",
|
|
204
|
+
mistral: "GNOSYS_MISTRAL_KEY",
|
|
205
|
+
custom: "GNOSYS_CUSTOM_KEY",
|
|
92
206
|
};
|
|
93
207
|
// Ordered list for the menu
|
|
94
208
|
const PROVIDER_ORDER = [
|
|
@@ -459,18 +573,21 @@ export async function runSetup(opts) {
|
|
|
459
573
|
}
|
|
460
574
|
}
|
|
461
575
|
}
|
|
462
|
-
// ───
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
576
|
+
// ─── Pre-fetch dynamic models ─────────────────────────────────────
|
|
577
|
+
console.log(`${DIM}Fetching latest model pricing...${RESET}`);
|
|
578
|
+
const dynamicModels = await fetchDynamicModels();
|
|
579
|
+
if (Object.keys(dynamicModels).length > 0) {
|
|
580
|
+
console.log(`${DIM}${CHECK} Live pricing loaded from OpenRouter${RESET}`);
|
|
581
|
+
}
|
|
582
|
+
else {
|
|
583
|
+
console.log(`${DIM}Using bundled model data (offline or fetch failed)${RESET}`);
|
|
584
|
+
}
|
|
585
|
+
console.log();
|
|
586
|
+
// ─── Step 1/4 — Provider ──────────────────────────────────────────
|
|
470
587
|
const providerOptions = PROVIDER_ORDER.map((key) => {
|
|
471
|
-
const tiers = PROVIDER_TIERS[key];
|
|
588
|
+
const tiers = dynamicModels[key] ?? PROVIDER_TIERS[key];
|
|
472
589
|
const display = PROVIDER_DISPLAY[key];
|
|
473
|
-
if (tiers.length === 0)
|
|
590
|
+
if (!tiers || tiers.length === 0)
|
|
474
591
|
return display;
|
|
475
592
|
const minIn = Math.min(...tiers.map((t) => t.input));
|
|
476
593
|
const maxOut = Math.max(...tiers.map((t) => t.output));
|
|
@@ -480,13 +597,13 @@ export async function runSetup(opts) {
|
|
|
480
597
|
});
|
|
481
598
|
// Add "Skip" option
|
|
482
599
|
providerOptions.push("Skip (core memory works without LLM)");
|
|
483
|
-
const providerIndex = await askChoice(rl, `${BOLD}Step
|
|
600
|
+
const providerIndex = await askChoice(rl, `${BOLD}Step 1/4${RESET} ${DIM}\u2014${RESET} Choose your LLM provider`, providerOptions);
|
|
484
601
|
const isSkip = providerIndex === PROVIDER_ORDER.length; // last option
|
|
485
602
|
const provider = isSkip ? "skip" : PROVIDER_ORDER[providerIndex];
|
|
486
|
-
// ─── Step
|
|
603
|
+
// ─── Step 2/4 — Model tier ────────────────────────────────────────
|
|
487
604
|
let model = "";
|
|
488
605
|
if (!isSkip && provider !== "custom") {
|
|
489
|
-
const tiers = PROVIDER_TIERS[provider];
|
|
606
|
+
const tiers = dynamicModels[provider] ?? PROVIDER_TIERS[provider];
|
|
490
607
|
if (tiers.length > 0) {
|
|
491
608
|
const isLocal = provider === "ollama" || provider === "lmstudio";
|
|
492
609
|
const tierOptions = tiers.map((t) => {
|
|
@@ -496,14 +613,14 @@ export async function runSetup(opts) {
|
|
|
496
613
|
}
|
|
497
614
|
return `${t.name} (${t.model}) ${DIM}${formatPrice(t.input, t.output)}${RESET}${rec}`;
|
|
498
615
|
});
|
|
499
|
-
const tierIndex = await askChoice(rl, `${BOLD}Step
|
|
616
|
+
const tierIndex = await askChoice(rl, `${BOLD}Step 2/4${RESET} ${DIM}\u2014${RESET} Choose model tier`, tierOptions);
|
|
500
617
|
model = tiers[tierIndex].model;
|
|
501
618
|
}
|
|
502
619
|
}
|
|
503
620
|
else if (provider === "custom") {
|
|
504
621
|
// Custom: ask for base URL and model name
|
|
505
622
|
console.log();
|
|
506
|
-
console.log(`${BOLD}Step
|
|
623
|
+
console.log(`${BOLD}Step 2/4${RESET} ${DIM}\u2014${RESET} Custom provider details`);
|
|
507
624
|
console.log();
|
|
508
625
|
const baseUrl = await askInput(rl, "Base URL (OpenAI-compatible)");
|
|
509
626
|
model = await askInput(rl, "Model name");
|
|
@@ -540,33 +657,134 @@ export async function runSetup(opts) {
|
|
|
540
657
|
else if (isSkip) {
|
|
541
658
|
// Skip step 3 entirely
|
|
542
659
|
console.log();
|
|
543
|
-
console.log(`${DIM}Step
|
|
660
|
+
console.log(`${DIM}Step 2/4 \u2014 Model tier: skipped${RESET}`);
|
|
544
661
|
}
|
|
545
|
-
// ─── Step 4
|
|
662
|
+
// ─── Step 3/4 — API key ───────────────────────────────────────────
|
|
546
663
|
let apiKeyWritten = false;
|
|
664
|
+
let apiKeySource = "";
|
|
547
665
|
const needsKey = !isSkip &&
|
|
548
666
|
provider !== "ollama" &&
|
|
549
667
|
provider !== "lmstudio";
|
|
668
|
+
// Determine the env var name for this provider
|
|
669
|
+
const envVarName = provider === "custom" ? "GNOSYS_CUSTOM_KEY" :
|
|
670
|
+
`GNOSYS_${provider.toUpperCase()}_KEY`;
|
|
671
|
+
// Also check legacy env var names
|
|
672
|
+
const legacyEnvVars = {
|
|
673
|
+
anthropic: "ANTHROPIC_API_KEY",
|
|
674
|
+
openai: "OPENAI_API_KEY",
|
|
675
|
+
groq: "GROQ_API_KEY",
|
|
676
|
+
xai: "XAI_API_KEY",
|
|
677
|
+
mistral: "MISTRAL_API_KEY",
|
|
678
|
+
};
|
|
679
|
+
const legacyEnvVar = legacyEnvVars[provider] ?? "";
|
|
550
680
|
if (needsKey) {
|
|
551
681
|
console.log();
|
|
552
|
-
console.log(`${BOLD}Step 4
|
|
682
|
+
console.log(`${BOLD}Step 3/4${RESET} ${DIM}\u2014${RESET} API Key`);
|
|
553
683
|
console.log();
|
|
554
|
-
|
|
555
|
-
const
|
|
556
|
-
if (
|
|
557
|
-
|
|
558
|
-
console.log(
|
|
684
|
+
// Check if key already exists in environment
|
|
685
|
+
const existingKey = process.env[envVarName] || (legacyEnvVar ? process.env[legacyEnvVar] : "");
|
|
686
|
+
if (existingKey) {
|
|
687
|
+
const source = process.env[envVarName] ? envVarName : legacyEnvVar;
|
|
688
|
+
console.log(` ${CHECK} Found existing key in $${source} (${maskKey(existingKey)})`);
|
|
559
689
|
apiKeyWritten = true;
|
|
690
|
+
apiKeySource = "env";
|
|
560
691
|
}
|
|
561
692
|
else {
|
|
562
|
-
console.log(
|
|
693
|
+
console.log(` Provider: ${GREEN}${provider}${RESET}`);
|
|
694
|
+
console.log(` Env var: ${GREEN}${envVarName}${RESET}`);
|
|
695
|
+
console.log();
|
|
696
|
+
const isMac = process.platform === "darwin";
|
|
697
|
+
const shell = path.basename(process.env.SHELL ?? "zsh");
|
|
698
|
+
const profileFile = shell === "bash" ? "~/.bash_profile" : "~/.zshrc";
|
|
699
|
+
const options = [];
|
|
700
|
+
if (isMac) {
|
|
701
|
+
options.push(`Store in macOS Keychain (recommended \u2014 most secure, no plaintext on disk)`);
|
|
702
|
+
}
|
|
703
|
+
options.push(`Set via environment variable (${profileFile})`, `Save to ~/.config/gnosys/.env (\u26a0 plaintext on disk \u2014 least secure)`, `Skip (configure later)`);
|
|
704
|
+
const keyChoice = await askChoice(rl, "", options);
|
|
705
|
+
// Adjust index based on whether macOS Keychain option was shown
|
|
706
|
+
const keychainIdx = isMac ? 0 : -1;
|
|
707
|
+
const envIdx = isMac ? 1 : 0;
|
|
708
|
+
const dotenvIdx = isMac ? 2 : 1;
|
|
709
|
+
const skipIdx = isMac ? 3 : 2;
|
|
710
|
+
if (keyChoice === keychainIdx) {
|
|
711
|
+
// macOS Keychain
|
|
712
|
+
console.log();
|
|
713
|
+
console.log(` Run this in a ${BOLD}separate terminal${RESET}:`);
|
|
714
|
+
console.log();
|
|
715
|
+
console.log(` ${GREEN}security add-generic-password -a "$USER" -s "${envVarName}" -w "your-key-here"${RESET}`);
|
|
716
|
+
console.log();
|
|
717
|
+
console.log(` ${DIM}Replace "your-key-here" with your actual API key.${RESET}`);
|
|
718
|
+
console.log(` ${DIM}Gnosys will read it automatically at runtime.${RESET}`);
|
|
719
|
+
console.log();
|
|
720
|
+
await askInput(rl, "Press Enter after setting the key...", { default: "" });
|
|
721
|
+
// Verify the key was set
|
|
722
|
+
try {
|
|
723
|
+
const { execSync } = await import("child_process");
|
|
724
|
+
const result = execSync(`security find-generic-password -a "$USER" -s "${envVarName}" -w`, { stdio: "pipe", encoding: "utf-8" }).trim();
|
|
725
|
+
if (result) {
|
|
726
|
+
console.log(` ${CHECK} Key verified in macOS Keychain (${maskKey(result)})`);
|
|
727
|
+
apiKeyWritten = true;
|
|
728
|
+
apiKeySource = "keychain";
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
catch {
|
|
732
|
+
console.log(` ${WARN} Could not verify key in Keychain. You can set it later.`);
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
else if (keyChoice === envIdx) {
|
|
736
|
+
// Environment variable
|
|
737
|
+
console.log();
|
|
738
|
+
console.log(` Run this in a ${BOLD}separate terminal${RESET}:`);
|
|
739
|
+
console.log();
|
|
740
|
+
console.log(` ${GREEN}echo 'export ${envVarName}=your-key-here' >> ${profileFile} && source ${profileFile}${RESET}`);
|
|
741
|
+
console.log();
|
|
742
|
+
console.log(` ${DIM}Replace "your-key-here" with your actual API key.${RESET}`);
|
|
743
|
+
console.log(` ${DIM}The key is stored in your shell profile (${profileFile}).${RESET}`);
|
|
744
|
+
console.log();
|
|
745
|
+
await askInput(rl, "Press Enter after setting the key...", { default: "" });
|
|
746
|
+
// Verify
|
|
747
|
+
// Note: we can't detect it in this process since env was set in another terminal
|
|
748
|
+
console.log(` ${DIM}Key will be available in new terminal sessions.${RESET}`);
|
|
749
|
+
apiKeyWritten = true;
|
|
750
|
+
apiKeySource = "env";
|
|
751
|
+
}
|
|
752
|
+
else if (keyChoice === dotenvIdx) {
|
|
753
|
+
// .env file (least secure)
|
|
754
|
+
console.log();
|
|
755
|
+
console.log(` ${WARN} ${BOLD}Security warning:${RESET} This stores your key as plaintext in`);
|
|
756
|
+
console.log(` ~/.config/gnosys/.env. Anyone with access to your user account`);
|
|
757
|
+
console.log(` can read it. If this directory syncs to a cloud service (iCloud,`);
|
|
758
|
+
console.log(` Dropbox), the key will be uploaded in plaintext.`);
|
|
759
|
+
console.log();
|
|
760
|
+
const confirm = await askYesNo(rl, "Continue with plaintext storage?", false);
|
|
761
|
+
if (confirm) {
|
|
762
|
+
const key = await askInput(rl, `Enter your API key`);
|
|
763
|
+
if (key) {
|
|
764
|
+
await writeApiKey(provider, key);
|
|
765
|
+
console.log(` ${CHECK} Key saved to ~/.config/gnosys/.env (${maskKey(key)})`);
|
|
766
|
+
apiKeyWritten = true;
|
|
767
|
+
apiKeySource = "dotenv";
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
else {
|
|
771
|
+
console.log(` ${DIM}Skipped. Choose a different method next time.${RESET}`);
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
else {
|
|
775
|
+
// Skip
|
|
776
|
+
console.log(` ${DIM}Skipped. Set your key later using one of these methods:`);
|
|
777
|
+
console.log(` \u2022 macOS Keychain: security add-generic-password -a "$USER" -s "${envVarName}" -w "key"${isMac ? "" : " (macOS only)"}`);
|
|
778
|
+
console.log(` \u2022 Shell profile: echo 'export ${envVarName}=key' >> ${profileFile}`);
|
|
779
|
+
console.log(` \u2022 Dotenv file: echo '${envVarName}=key' >> ~/.config/gnosys/.env${RESET}`);
|
|
780
|
+
}
|
|
563
781
|
}
|
|
564
782
|
}
|
|
565
783
|
else {
|
|
566
784
|
console.log();
|
|
567
|
-
console.log(`${DIM}Step 4
|
|
785
|
+
console.log(`${DIM}Step 3/4 \u2014 API key: not needed (local provider)${RESET}`);
|
|
568
786
|
}
|
|
569
|
-
// ─── Step
|
|
787
|
+
// ─── Step 4/4 — IDE integration ───────────────────────────────────
|
|
570
788
|
const detectedIdes = await detectIDEs(projectDir);
|
|
571
789
|
const configuredIdes = [];
|
|
572
790
|
if (detectedIdes.length > 0) {
|
|
@@ -577,7 +795,7 @@ export async function runSetup(opts) {
|
|
|
577
795
|
};
|
|
578
796
|
const detectedNames = detectedIdes.map((id) => ideLabels[id] ?? id).join(", ");
|
|
579
797
|
console.log();
|
|
580
|
-
console.log(`${BOLD}Step
|
|
798
|
+
console.log(`${BOLD}Step 4/4${RESET} ${DIM}\u2014${RESET} IDE Integration`);
|
|
581
799
|
console.log();
|
|
582
800
|
console.log(`Detected: ${GREEN}${detectedNames}${RESET}`);
|
|
583
801
|
const ideOptions = [];
|
|
@@ -625,46 +843,7 @@ export async function runSetup(opts) {
|
|
|
625
843
|
}
|
|
626
844
|
else {
|
|
627
845
|
console.log();
|
|
628
|
-
console.log(`${DIM}Step
|
|
629
|
-
}
|
|
630
|
-
// ─── Web extra steps (only if mode is web or both) ────────────────
|
|
631
|
-
let sitemapUrl = "";
|
|
632
|
-
let outputDir = "";
|
|
633
|
-
let llmEnrich = true;
|
|
634
|
-
if (mode === "web" || mode === "both") {
|
|
635
|
-
console.log();
|
|
636
|
-
console.log(`${BOLD}Web Knowledge Base Configuration${RESET}`);
|
|
637
|
-
console.log();
|
|
638
|
-
console.log(`${DIM}The web knowledge base is independent from agent memory.`);
|
|
639
|
-
console.log(`It doesn't use your central gnosys.db or the API key you just set.`);
|
|
640
|
-
console.log(`It runs from your web project repo and uses its own LLM key (set`);
|
|
641
|
-
console.log(`in CI/CD secrets or the web project's gnosys.json).`);
|
|
642
|
-
console.log();
|
|
643
|
-
console.log(`You can skip this now and set it up later from your web project:`);
|
|
644
|
-
console.log(` cd your-web-project && gnosys init && gnosys web init`);
|
|
645
|
-
console.log();
|
|
646
|
-
console.log(`If your site is already deployed, enter the sitemap URL.`);
|
|
647
|
-
console.log(`For local dev, use your local server URL.`);
|
|
648
|
-
console.log(` \u2022 Deployed: https://yoursite.com/sitemap.xml`);
|
|
649
|
-
console.log(` \u2022 Local dev: http://localhost:3000/sitemap.xml`);
|
|
650
|
-
console.log(` \u2022 Skip: press Enter${RESET}`);
|
|
651
|
-
console.log();
|
|
652
|
-
sitemapUrl = await askInput(rl, "Sitemap URL");
|
|
653
|
-
console.log();
|
|
654
|
-
console.log(`${DIM}The knowledge folder is created inside your project and should`);
|
|
655
|
-
console.log(`be committed to git. It deploys with your app \u2014 no database needed.${RESET}`);
|
|
656
|
-
console.log();
|
|
657
|
-
outputDir = await askInput(rl, "Output directory", { default: "./knowledge" });
|
|
658
|
-
llmEnrich = await askYesNo(rl, "Enable LLM enrichment for ingested pages?", true);
|
|
659
|
-
console.log();
|
|
660
|
-
console.log(`${DIM}Tip: Add "postbuild": "gnosys web build" to package.json`);
|
|
661
|
-
console.log(`so every deploy automatically re-crawls and rebuilds the index.${RESET}`);
|
|
662
|
-
console.log();
|
|
663
|
-
if (sitemapUrl) {
|
|
664
|
-
console.log(` ${CHECK} Sitemap: ${sitemapUrl}`);
|
|
665
|
-
}
|
|
666
|
-
console.log(` ${CHECK} Output: ${outputDir}`);
|
|
667
|
-
console.log(` ${CHECK} LLM enrichment: ${llmEnrich ? "enabled" : "disabled"}`);
|
|
846
|
+
console.log(`${DIM}Step 4/4 \u2014 IDE integration: no IDEs detected${RESET}`);
|
|
668
847
|
}
|
|
669
848
|
// ─── Compute structuring model ────────────────────────────────────
|
|
670
849
|
const structuringModel = isSkip ? "" : getStructuringModel(provider, model);
|
|
@@ -684,12 +863,6 @@ export async function runSetup(opts) {
|
|
|
684
863
|
const ideNames = configuredIdes.map((id) => ideLabels[id] ?? id).join(", ");
|
|
685
864
|
summaryRows.push(["IDEs:", ideNames]);
|
|
686
865
|
}
|
|
687
|
-
if (mode === "web" || mode === "both") {
|
|
688
|
-
summaryRows.push(["Mode:", mode]);
|
|
689
|
-
if (sitemapUrl)
|
|
690
|
-
summaryRows.push(["Sitemap:", sitemapUrl]);
|
|
691
|
-
summaryRows.push(["Output:", outputDir || "./knowledge"]);
|
|
692
|
-
}
|
|
693
866
|
printBox("Setup Complete", summaryRows);
|
|
694
867
|
console.log(`Next: Run ${CYAN}gnosys init${RESET} in any project to start using memory.`);
|
|
695
868
|
console.log();
|
|
@@ -701,7 +874,7 @@ export async function runSetup(opts) {
|
|
|
701
874
|
structuringModel,
|
|
702
875
|
apiKeyWritten,
|
|
703
876
|
ides: configuredIdes,
|
|
704
|
-
mode,
|
|
877
|
+
mode: "agent",
|
|
705
878
|
upgraded,
|
|
706
879
|
};
|
|
707
880
|
}
|