daedalus-cli 1.70.0 → 1.71.1

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 (36) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +64 -33
  3. package/dist/__tests__/gitAwareTest.test.d.ts +2 -0
  4. package/dist/__tests__/gitAwareTest.test.d.ts.map +1 -0
  5. package/dist/__tests__/gitAwareTest.test.js +15 -0
  6. package/dist/__tests__/gitAwareTest.test.js.map +1 -0
  7. package/dist/__tests__/mcpExplore.test.d.ts +2 -0
  8. package/dist/__tests__/mcpExplore.test.d.ts.map +1 -0
  9. package/dist/__tests__/mcpExplore.test.js +10 -0
  10. package/dist/__tests__/mcpExplore.test.js.map +1 -0
  11. package/dist/__tests__/stats.test.d.ts +2 -0
  12. package/dist/__tests__/stats.test.d.ts.map +1 -0
  13. package/dist/__tests__/stats.test.js +13 -0
  14. package/dist/__tests__/stats.test.js.map +1 -0
  15. package/dist/__tests__/watchCommand.test.d.ts +2 -0
  16. package/dist/__tests__/watchCommand.test.d.ts.map +1 -0
  17. package/dist/__tests__/watchCommand.test.js +10 -0
  18. package/dist/__tests__/watchCommand.test.js.map +1 -0
  19. package/dist/commands.d.ts.map +1 -1
  20. package/dist/commands.js +66 -4
  21. package/dist/commands.js.map +1 -1
  22. package/dist/docs.test.js +59 -11
  23. package/dist/docs.test.js.map +1 -1
  24. package/dist/router/fallback.test.d.ts +2 -0
  25. package/dist/router/fallback.test.d.ts.map +1 -0
  26. package/dist/router/fallback.test.js +77 -0
  27. package/dist/router/fallback.test.js.map +1 -0
  28. package/dist/router/index.d.ts +1 -1
  29. package/dist/router/index.d.ts.map +1 -1
  30. package/dist/router/index.js +61 -38
  31. package/dist/router/index.js.map +1 -1
  32. package/dist/utils/gitAwareTest.d.ts +10 -0
  33. package/dist/utils/gitAwareTest.d.ts.map +1 -0
  34. package/dist/utils/gitAwareTest.js +56 -0
  35. package/dist/utils/gitAwareTest.js.map +1 -0
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"docs.test.js","sourceRoot":"","sources":["../src/docs.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.test.js","sourceRoot":"","sources":["../src/docs.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fallback.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.test.d.ts","sourceRoot":"","sources":["../../src/router/fallback.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { LocalRouter } from './index.js';
3
+ import * as health from './health.js';
4
+ describe('Multi-Model Fallback Chain (Sprint 1)', () => {
5
+ beforeEach(() => {
6
+ vi.restoreAllMocks();
7
+ });
8
+ it('excludes previously failed model when fallback occurs during route()', async () => {
9
+ const config = {
10
+ strategy: 'priority',
11
+ chain: [
12
+ { name: 'primary-model', endpoint: 'http://localhost:1111/v1', model: 'm1', priority: 1, enabled: true },
13
+ { name: 'secondary-model', endpoint: 'http://localhost:2222/v1', model: 'm2', priority: 2, enabled: true },
14
+ ],
15
+ healthCheckInterval: 30000,
16
+ requestTimeout: 120000,
17
+ defaultRateLimit: { rpm: 60, tpm: 100000 },
18
+ };
19
+ for (const m of config.chain) {
20
+ health.markHealthy(m, 10);
21
+ }
22
+ const router = new LocalRouter(config);
23
+ // Initial route selects primary-model
24
+ const firstRoute = await router.route({ messages: [] });
25
+ expect(firstRoute.model.name).toBe('primary-model');
26
+ // Route with excluded set excludes primary-model and falls back to secondary-model
27
+ const excluded = new Set(['primary-model']);
28
+ const secondRoute = await router.route({ messages: [] }, excluded);
29
+ expect(secondRoute.model.name).toBe('secondary-model');
30
+ });
31
+ it('falls back to secondary model in chatCompletion if primary fails with an error', async () => {
32
+ const config = {
33
+ strategy: 'priority',
34
+ chain: [
35
+ { name: 'failing-primary', endpoint: 'http://localhost:1111/v1', model: 'm1', priority: 1, enabled: true },
36
+ { name: 'working-secondary', endpoint: 'http://localhost:2222/v1', model: 'm2', priority: 2, enabled: true },
37
+ ],
38
+ healthCheckInterval: 30000,
39
+ requestTimeout: 120000,
40
+ defaultRateLimit: { rpm: 60, tpm: 100000 },
41
+ };
42
+ for (const m of config.chain) {
43
+ health.markHealthy(m, 10);
44
+ }
45
+ const router = new LocalRouter(config);
46
+ // Mock client calls: primary throws API error, secondary succeeds
47
+ const mockPrimaryClient = {
48
+ chat: {
49
+ completions: {
50
+ create: vi.fn().mockRejectedValue(new Error('Rate limit 429 exceeded')),
51
+ },
52
+ },
53
+ models: { list: vi.fn() },
54
+ };
55
+ const mockSecondaryClient = {
56
+ chat: {
57
+ completions: {
58
+ create: vi.fn().mockResolvedValue({
59
+ id: 'res-2',
60
+ choices: [{ message: { role: 'assistant', content: 'Fallback response' } }],
61
+ }),
62
+ },
63
+ },
64
+ models: { list: vi.fn() },
65
+ };
66
+ // Override getOrCreateClient behavior internally
67
+ router.getOrCreateClient = (model) => {
68
+ if (model.name === 'failing-primary')
69
+ return mockPrimaryClient;
70
+ return mockSecondaryClient;
71
+ };
72
+ const response = await router.chatCompletion({ messages: [{ role: 'user', content: 'Hello' }] });
73
+ expect(response.choices[0].message.content).toBe('Fallback response');
74
+ expect(router.lastRoutedModelName).toBe('working-secondary');
75
+ });
76
+ });
77
+ //# sourceMappingURL=fallback.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.test.js","sourceRoot":"","sources":["../../src/router/fallback.test.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare class LocalRouter {
17
17
  private runHealthChecks;
18
18
  getEnabledModels(): ModelEntry[];
19
19
  getHealthyModels(): ModelEntry[];
20
- route(request: ChatRequest): Promise<RouteResult>;
20
+ route(request: ChatRequest, excludedModels?: Set<string>): Promise<RouteResult>;
21
21
  private estimateTokens;
22
22
  chatCompletion(request: ChatRequest): Promise<ChatResponse>;
23
23
  chatStream(request: ChatRequest): AsyncGenerator<StreamChunk>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAIxD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,YAAY,CAAgE;IACpF,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAkC;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;gBAExB,MAAM,EAAE,YAAY;IAKhC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,iBAAiB;IAenB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;YAOzB,eAAe;IAoB7B,gBAAgB,IAAI,UAAU,EAAE;IAIhC,gBAAgB,IAAI,UAAU,EAAE;IAQ1B,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAuJvD,OAAO,CAAC,cAAc;IAuBhB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAwD1D,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;YA+CtD,aAAa;IAmBrB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAcrC,SAAS,IAAI,YAAY;IAIzB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAgBjD,IAAI,IAAI;;8BAGgB,WAAW;;MAGlC;CACF;AAWD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,GAAG,EAAE,CA2ClF;AAGD,wBAAgB,YAAY,CAAC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,WAAW,CAU5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAIxD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,YAAY,CAAgE;IACpF,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAkC;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;gBAExB,MAAM,EAAE,YAAY;IAKhC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,iBAAiB;IAenB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;YAOzB,eAAe;IAoB7B,gBAAgB,IAAI,UAAU,EAAE;IAIhC,gBAAgB,IAAI,UAAU,EAAE;IAQ1B,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IA2JrF,OAAO,CAAC,cAAc;IAuBhB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA2D1D,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;YAiEtD,aAAa;IAmBrB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAcrC,SAAS,IAAI,YAAY;IAIzB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAgBjD,IAAI,IAAI;;8BAGgB,WAAW;;MAGlC;CACF;AAWD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,GAAG,EAAE,CA2ClF;AAGD,wBAAgB,YAAY,CAAC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,WAAW,CAU5E"}
@@ -90,10 +90,13 @@ export class LocalRouter {
90
90
  return health?.healthy !== false; // Unknown = assume healthy
91
91
  });
92
92
  }
93
- async route(request) {
93
+ async route(request, excludedModels) {
94
94
  let healthyModels = this.getHealthyModels();
95
+ if (excludedModels && excludedModels.size > 0) {
96
+ healthyModels = healthyModels.filter(m => !excludedModels.has(m.name) && !excludedModels.has(m.model));
97
+ }
95
98
  if (healthyModels.length === 0) {
96
- healthyModels = this.config.chain.filter(m => m.enabled);
99
+ healthyModels = this.config.chain.filter(m => m.enabled && (!excludedModels || (!excludedModels.has(m.name) && !excludedModels.has(m.model))));
97
100
  }
98
101
  if (healthyModels.length === 0) {
99
102
  throw new Error('No healthy models available. Check your local servers (LM Studio, Ollama, etc.)');
@@ -253,11 +256,12 @@ export class LocalRouter {
253
256
  let attempts = 0;
254
257
  const maxAttempts = 3;
255
258
  let lastError;
259
+ const excludedModels = new Set();
256
260
  while (attempts < maxAttempts) {
257
261
  attempts++;
258
262
  let selectedModel;
259
263
  try {
260
- const { model } = await this.route(request);
264
+ const { model } = await this.route(request, excludedModels);
261
265
  selectedModel = model;
262
266
  const client = this.getOrCreateClient(model);
263
267
  const key = `${model.endpoint}|${model.model}`;
@@ -293,49 +297,68 @@ export class LocalRouter {
293
297
  throw err;
294
298
  if (selectedModel) {
295
299
  markUnhealthy(selectedModel, err.message);
300
+ excludedModels.add(selectedModel.name);
301
+ excludedModels.add(selectedModel.model);
296
302
  }
297
303
  }
298
304
  }
299
305
  throw lastError || new Error('All model attempts failed.');
300
306
  }
301
307
  async *chatStream(request) {
302
- const { model } = await this.route(request);
303
- const client = this.getOrCreateClient(model);
304
- const key = `${model.endpoint}|${model.model}`;
305
- const actualModel = model.model === 'auto'
306
- ? await this.discoverModel(client, key)
307
- : model.model;
308
- this.lastRoutedModel = model.name === actualModel ? model.name : `${model.name} (${actualModel})`;
309
- this.lastRoutedModelName = model.name;
310
- const { signal, ...body } = request;
311
- const isOfficialOpenAI = model.endpoint.includes('api.openai.com');
312
- if (body.tool_choice === 'required' && !isOfficialOpenAI) {
313
- body.tool_choice = 'auto';
314
- }
315
- if (body.frequency_penalty === undefined) {
316
- body.frequency_penalty = 0.2;
317
- }
318
- if (body.presence_penalty === undefined) {
319
- body.presence_penalty = 0.1;
320
- }
321
- const sanitizedMessages = sanitizeMessagesForModel(body.messages, model);
322
- try {
323
- const start = Date.now();
324
- const stream = await client.chat.completions.create({
325
- ...body,
326
- messages: sanitizedMessages,
327
- model: actualModel,
328
- stream: true,
329
- }, { signal });
330
- for await (const chunk of stream) {
331
- yield chunk;
308
+ let attempts = 0;
309
+ const maxAttempts = 3;
310
+ let lastError;
311
+ const excludedModels = new Set();
312
+ while (attempts < maxAttempts) {
313
+ attempts++;
314
+ let selectedModel;
315
+ try {
316
+ const { model } = await this.route(request, excludedModels);
317
+ selectedModel = model;
318
+ const client = this.getOrCreateClient(model);
319
+ const key = `${model.endpoint}|${model.model}`;
320
+ const actualModel = model.model === 'auto'
321
+ ? await this.discoverModel(client, key)
322
+ : model.model;
323
+ this.lastRoutedModel = model.name === actualModel ? model.name : `${model.name} (${actualModel})`;
324
+ this.lastRoutedModelName = model.name;
325
+ const { signal, ...body } = request;
326
+ const isOfficialOpenAI = model.endpoint.includes('api.openai.com');
327
+ if (body.tool_choice === 'required' && !isOfficialOpenAI) {
328
+ body.tool_choice = 'auto';
329
+ }
330
+ if (body.frequency_penalty === undefined) {
331
+ body.frequency_penalty = 0.2;
332
+ }
333
+ if (body.presence_penalty === undefined) {
334
+ body.presence_penalty = 0.1;
335
+ }
336
+ const sanitizedMessages = sanitizeMessagesForModel(body.messages, model);
337
+ const start = Date.now();
338
+ const stream = await client.chat.completions.create({
339
+ ...body,
340
+ messages: sanitizedMessages,
341
+ model: actualModel,
342
+ stream: true,
343
+ }, { signal });
344
+ for await (const chunk of stream) {
345
+ yield chunk;
346
+ }
347
+ markHealthy(model, Date.now() - start);
348
+ return;
349
+ }
350
+ catch (err) {
351
+ lastError = err;
352
+ if (err.name === 'AbortError' || err.name === 'APIUserAbortError')
353
+ throw err;
354
+ if (selectedModel) {
355
+ markUnhealthy(selectedModel, err.message);
356
+ excludedModels.add(selectedModel.name);
357
+ excludedModels.add(selectedModel.model);
358
+ }
332
359
  }
333
- markHealthy(model, Date.now() - start);
334
- }
335
- catch (err) {
336
- markUnhealthy(model, err.message);
337
- throw err;
338
360
  }
361
+ throw lastError || new Error('All model streaming attempts failed.');
339
362
  }
340
363
  async discoverModel(client, cacheKey) {
341
364
  const cached = this.discoveredModels.get(cacheKey);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface GitAwareResult {
2
+ modifiedFiles: string[];
3
+ testFiles: string[];
4
+ command: string;
5
+ }
6
+ /**
7
+ * Inspects git status to find modified source files and map them to relevant test files.
8
+ */
9
+ export declare function getGitAwareTestCommand(cwd?: string, defaultCmd?: string): GitAwareResult;
10
+ //# sourceMappingURL=gitAwareTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitAwareTest.d.ts","sourceRoot":"","sources":["../../src/utils/gitAwareTest.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAsB,EAAE,UAAU,GAAE,MAAmB,GAAG,cAAc,CAyDnH"}
@@ -0,0 +1,56 @@
1
+ import { execSync } from 'node:child_process';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ /**
5
+ * Inspects git status to find modified source files and map them to relevant test files.
6
+ */
7
+ export function getGitAwareTestCommand(cwd = process.cwd(), defaultCmd = 'npm test') {
8
+ let diffOutput;
9
+ try {
10
+ diffOutput = execSync('git status --short', { cwd, encoding: 'utf8' });
11
+ }
12
+ catch {
13
+ return { modifiedFiles: [], testFiles: [], command: defaultCmd };
14
+ }
15
+ const lines = diffOutput
16
+ .split('\n')
17
+ .map(line => line.trim())
18
+ .filter(Boolean);
19
+ const modifiedFiles = [];
20
+ const testFilesSet = new Set();
21
+ for (const line of lines) {
22
+ const parts = line.split(/\s+/);
23
+ const filePath = parts[parts.length - 1];
24
+ if (!filePath)
25
+ continue;
26
+ modifiedFiles.push(filePath);
27
+ if (filePath.endsWith('.test.ts') || filePath.endsWith('.spec.ts') || filePath.endsWith('.test.js')) {
28
+ testFilesSet.add(filePath);
29
+ continue;
30
+ }
31
+ // Map source file to potential test files
32
+ const ext = path.extname(filePath);
33
+ const baseWithoutExt = filePath.slice(0, -ext.length);
34
+ const candidates = [
35
+ `${baseWithoutExt}.test${ext}`,
36
+ `${baseWithoutExt}.spec${ext}`,
37
+ path.join(path.dirname(filePath), '__tests__', `${path.basename(baseWithoutExt)}.test${ext}`),
38
+ ];
39
+ for (const cand of candidates) {
40
+ if (fs.existsSync(path.join(cwd, cand))) {
41
+ testFilesSet.add(cand);
42
+ }
43
+ }
44
+ }
45
+ const testFiles = Array.from(testFilesSet);
46
+ let command = defaultCmd;
47
+ if (testFiles.length > 0) {
48
+ command = `npx vitest run ${testFiles.join(' ')}`;
49
+ }
50
+ return {
51
+ modifiedFiles,
52
+ testFiles,
53
+ command,
54
+ };
55
+ }
56
+ //# sourceMappingURL=gitAwareTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitAwareTest.js","sourceRoot":"","sources":["../../src/utils/gitAwareTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE,EAAE,aAAqB,UAAU;IACjG,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACnE,CAAC;IAED,MAAM,KAAK,GAAG,UAAU;SACrB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7B,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG;YACjB,GAAG,cAAc,QAAQ,GAAG,EAAE;YAC9B,GAAG,cAAc,QAAQ,GAAG,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAC;SAC9F,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBACxC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE3C,IAAI,OAAO,GAAG,UAAU,CAAC;IACzB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,kBAAkB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,OAAO;QACL,aAAa;QACb,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"daedalus-cli","version":"1.70.0","description":"Local-first AI coding CLI with embedded model router, multi-agent orchestration, and codebase indexing","type":"module","bin":{"daedalus":"dist/index.js"},"files":["dist/","Daedalus.bat","README.md","CHANGELOG.md","CONTRIBUTING.md","CODE_OF_CONDUCT.md","SECURITY.md","AGENTS.md","scripts/postinstall.js"],"scripts":{"start":"tsx src/index.ts","bot":"tsx src/bot.ts","dev":"tsx watch src/index.ts","build":"tsc","prepublishOnly":"npm run build","test":"vitest run","lint":"eslint src --ext .ts","sync-docs":"tsx scripts/sync-docs.ts","postinstall":"node scripts/postinstall.js"},"engines":{"node":">=20.0.0"},"repository":{"type":"git","url":"git+https://github.com/bgill55/daedalus.git"},"homepage":"https://github.com/bgill55/daedalus#readme","bugs":{"url":"https://github.com/bgill55/daedalus/issues"},"keywords":["cli","ai","coding","assistant","local","llm","lm-studio","ollama","mcp","developer-tools"],"license":"MIT","dependencies":{"better-sqlite3":"^12.10.0","cli-highlight":"^2.1.11","diff":"^7.0.0","discord.js":"^14.27.0","dotenv":"^17.4.2","neo-blessed":"^0.2.0","openai":"^4.85.4","pdf-parse":"^2.4.5","picocolors":"^1.1.1","puppeteer-core":"^25.1.0","zod":"^3.23.8"},"devDependencies":{"@eslint/js":"^10.0.1","@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@semantic-release/npm":"^12.0.2","@types/better-sqlite3":"^7.6.13","@types/blessed":"^0.1.27","@types/diff":"^6.0.0","@types/node":"^22.15.3","conventional-changelog-conventionalcommits":"^8.0.0","esbuild":"^0.24.0","eslint":"^10.5.0","globals":"^16.5.0","semantic-release":"^25.0.5","tsx":"^4.19.4","typescript":"^5.8.3","typescript-eslint":"^8.61.1","vitest":"^2.1.8"}}
1
+ {"name":"daedalus-cli","version":"1.71.1","description":"Local-first AI coding CLI with embedded model router, multi-agent orchestration, and codebase indexing","type":"module","bin":{"daedalus":"dist/index.js"},"files":["dist/","Daedalus.bat","README.md","CHANGELOG.md","CONTRIBUTING.md","CODE_OF_CONDUCT.md","SECURITY.md","AGENTS.md","scripts/postinstall.js"],"scripts":{"start":"tsx src/index.ts","bot":"tsx src/bot.ts","dev":"tsx watch src/index.ts","build":"tsc","prepublishOnly":"npm run build","test":"vitest run","lint":"eslint src --ext .ts","sync-docs":"tsx scripts/sync-docs.ts","postinstall":"node scripts/postinstall.js"},"engines":{"node":">=20.0.0"},"repository":{"type":"git","url":"git+https://github.com/bgill55/daedalus.git"},"homepage":"https://github.com/bgill55/daedalus#readme","bugs":{"url":"https://github.com/bgill55/daedalus/issues"},"keywords":["cli","ai","coding","assistant","local","llm","lm-studio","ollama","mcp","developer-tools"],"license":"MIT","dependencies":{"better-sqlite3":"^12.10.0","cli-highlight":"^2.1.11","diff":"^7.0.0","discord.js":"^14.27.0","dotenv":"^17.4.2","neo-blessed":"^0.2.0","openai":"^4.85.4","pdf-parse":"^2.4.5","picocolors":"^1.1.1","puppeteer-core":"^25.1.0","zod":"^3.23.8"},"devDependencies":{"@eslint/js":"^10.0.1","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^7.1.0","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@semantic-release/npm":"^12.0.2","@types/better-sqlite3":"^7.6.13","@types/blessed":"^0.1.27","@types/diff":"^6.0.0","@types/node":"^22.15.3","conventional-changelog-conventionalcommits":"^8.0.0","esbuild":"^0.24.0","eslint":"^10.5.0","globals":"^16.5.0","semantic-release":"^25.0.5","tsx":"^4.19.4","typescript":"^5.8.3","typescript-eslint":"^8.61.1","vitest":"^2.1.8"}}