daedalus-cli 1.54.0 → 1.56.0

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 (46) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +14 -0
  3. package/README.md +3 -2
  4. package/dist/agents/loop.d.ts.map +1 -1
  5. package/dist/agents/loop.js +9 -3
  6. package/dist/agents/loop.js.map +1 -1
  7. package/dist/agents/orchestrator.d.ts.map +1 -1
  8. package/dist/agents/orchestrator.js +6 -2
  9. package/dist/agents/orchestrator.js.map +1 -1
  10. package/dist/commands.d.ts.map +1 -1
  11. package/dist/commands.js +43 -0
  12. package/dist/commands.js.map +1 -1
  13. package/dist/commands.test.js +53 -0
  14. package/dist/commands.test.js.map +1 -1
  15. package/dist/formatting.d.ts.map +1 -1
  16. package/dist/formatting.js +6 -1
  17. package/dist/formatting.js.map +1 -1
  18. package/dist/index.js +4 -2
  19. package/dist/index.js.map +1 -1
  20. package/dist/indexing/indexer.d.ts +30 -0
  21. package/dist/indexing/indexer.d.ts.map +1 -1
  22. package/dist/indexing/indexer.js +438 -1
  23. package/dist/indexing/indexer.js.map +1 -1
  24. package/dist/indexing/indexer.test.js +63 -1
  25. package/dist/indexing/indexer.test.js.map +1 -1
  26. package/dist/model.test.js +1 -0
  27. package/dist/model.test.js.map +1 -1
  28. package/dist/tools/builtin/files.d.ts.map +1 -1
  29. package/dist/tools/builtin/files.js +2 -396
  30. package/dist/tools/builtin/files.js.map +1 -1
  31. package/dist/tools/builtin/patch-utils.d.ts +30 -0
  32. package/dist/tools/builtin/patch-utils.d.ts.map +1 -0
  33. package/dist/tools/builtin/patch-utils.js +390 -0
  34. package/dist/tools/builtin/patch-utils.js.map +1 -0
  35. package/dist/tools/builtin/terminal.js +2 -2
  36. package/dist/tools/builtin/terminal.js.map +1 -1
  37. package/dist/tui/index.d.ts.map +1 -1
  38. package/dist/tui/index.js.map +1 -1
  39. package/dist/tui/widgets/file-tree.d.ts.map +1 -1
  40. package/dist/tui/widgets/file-tree.js +3 -9
  41. package/dist/tui/widgets/file-tree.js.map +1 -1
  42. package/dist/tui/widgets/model-select.d.ts +1 -1
  43. package/dist/tui/widgets/model-select.d.ts.map +1 -1
  44. package/dist/tui/widgets/model-select.js +1 -1
  45. package/dist/tui/widgets/model-select.js.map +1 -1
  46. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.test.js","sourceRoot":"","sources":["../../src/indexing/indexer.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.test.js","sourceRoot":"","sources":["../../src/indexing/indexer.test.ts"],"names":[],"mappings":"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"}
@@ -219,6 +219,7 @@ describe('Single Agent Loop', () => {
219
219
  askLine,
220
220
  });
221
221
  const result = await callModelWithTools('loop test');
222
+ expect(result).toBeDefined();
222
223
  delete process.env.DAEDALUS_AUTO_APPROVE;
223
224
  expect(chatStreamMock).toHaveBeenCalledTimes(4);
224
225
  const warningMessage = messages.find(m => m.role === 'user' && m.content.includes('[SYSTEM WARNING]'));
@@ -1 +1 @@
1
- {"version":3,"file":"model.test.js","sourceRoot":"","sources":["../src/model.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.test.js","sourceRoot":"","sources":["../src/model.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA2dzD,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAgEjI;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmBxD;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA4DlH;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA2LhK;AAsCD,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAoDvL;AAuED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAwBjJ"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA8DzD,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAgEjI;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmBxD;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA4DlH;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA2LhK;AAsCD,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAoDvL;AAuED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAwBjJ"}
@@ -1,408 +1,14 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
- import { execSync, spawn, spawnSync } from 'child_process';
3
+ import { execSync, spawn } from 'child_process';
4
4
  import { guardGitPath } from '../git-guard.js';
5
5
  import { runDiffWorkflow } from './diff-ui.js';
6
+ import { findClosestBlock, fuzzyWhitespacePatch, computeChangedLines, syntaxCheck, checkWriteWithoutRead, checkCircuitBreaker, recordWriteSuccess, recordRevert, recordPatchFailure, runColocatedTests, buildPostWriteWarnings, } from './patch-utils.js';
6
7
  const DEFAULT_EXCLUDE_DIRS = [
7
8
  'node_modules', 'dist', 'build', '.git', 'target', 'coverage',
8
9
  'venv', '.venv', 'env', '.env', '__pycache__', '.pytest_cache',
9
10
  '.mypy_cache', '.next', 'out', '.cache'
10
11
  ];
11
- function normalizeWhitespace(str) {
12
- return str
13
- .split('\n')
14
- .map(line => (line.match(/^\s+/) ? ' ' : '') + line.trimStart().trimEnd())
15
- .join('\n');
16
- }
17
- function levenshtein(a, b) {
18
- const m = a.length;
19
- const n = b.length;
20
- const dp = Array.from({ length: n + 1 }, (_, i) => i);
21
- for (let i = 1; i <= m; i++) {
22
- let prev = dp[0];
23
- dp[0] = i;
24
- for (let j = 1; j <= n; j++) {
25
- const temp = dp[j];
26
- dp[j] = a[i - 1] === b[j - 1] ? prev : 1 + Math.min(prev, dp[j], dp[j - 1]);
27
- prev = temp;
28
- }
29
- }
30
- return dp[n];
31
- }
32
- function findClosestBlock(content, target) {
33
- const targetLines = target.split('\n');
34
- const windowSize = targetLines.length;
35
- const contentLines = content.split('\n');
36
- const searchLimit = Math.min(contentLines.length, 300);
37
- const normalTarget = normalizeWhitespace(target);
38
- const threshold = Math.ceil(normalTarget.length * 0.30);
39
- // Fast path: for files under 100 lines, scan everything
40
- if (contentLines.length <= 100) {
41
- return findClosestBlockScan(contentLines, windowSize, searchLimit, normalTarget, threshold);
42
- }
43
- // Chunk-based pre-filter: hash each chunk and compare to target hash
44
- const targetHash = simpleHash(normalTarget);
45
- const chunkSize = Math.max(windowSize, 5);
46
- const candidates = [];
47
- for (let i = 0; i <= searchLimit - chunkSize; i += Math.max(1, Math.floor(chunkSize / 2))) {
48
- const chunk = contentLines.slice(i, i + chunkSize).join('\n');
49
- const chunkNorm = normalizeWhitespace(chunk);
50
- if (simpleHash(chunkNorm) === targetHash) {
51
- candidates.push(i);
52
- }
53
- }
54
- // Also check exact overlap around each candidate
55
- const refinedCandidates = new Set();
56
- for (const start of candidates) {
57
- for (let di = -2; di <= 2; di++) {
58
- const idx = start + di;
59
- if (idx >= 0 && idx <= searchLimit - windowSize)
60
- refinedCandidates.add(idx);
61
- }
62
- }
63
- // Run Levenshtein on refined candidates only, plus fall back to full scan if none found
64
- let bestDist = Infinity;
65
- let bestLineNo = -1;
66
- let bestSnippet = '';
67
- const scanSet = refinedCandidates.size > 0 ? refinedCandidates : new Set(Array.from({ length: searchLimit - windowSize + 1 }, (_, i) => i));
68
- for (const i of Array.from(scanSet)) {
69
- const window = contentLines.slice(i, i + windowSize).join('\n');
70
- const dist = levenshtein(normalizeWhitespace(window), normalTarget);
71
- if (dist < bestDist) {
72
- bestDist = dist;
73
- bestLineNo = i + 1;
74
- bestSnippet = window;
75
- }
76
- }
77
- if (bestDist <= threshold) {
78
- return { snippet: bestSnippet, lineNo: bestLineNo };
79
- }
80
- return null;
81
- }
82
- function findClosestBlockScan(contentLines, windowSize, searchLimit, normalTarget, threshold) {
83
- let bestDist = Infinity;
84
- let bestLineNo = -1;
85
- let bestSnippet = '';
86
- for (let i = 0; i <= searchLimit - windowSize; i++) {
87
- const window = contentLines.slice(i, i + windowSize).join('\n');
88
- const dist = levenshtein(normalizeWhitespace(window), normalTarget);
89
- if (dist < bestDist) {
90
- bestDist = dist;
91
- bestLineNo = i + 1;
92
- bestSnippet = window;
93
- }
94
- }
95
- if (bestDist <= threshold) {
96
- return { snippet: bestSnippet, lineNo: bestLineNo };
97
- }
98
- return null;
99
- }
100
- function simpleHash(s) {
101
- let hash = 0;
102
- for (let i = 0; i < s.length; i++) {
103
- const char = s.charCodeAt(i);
104
- hash = ((hash << 5) - hash) + char;
105
- hash |= 0;
106
- }
107
- return hash;
108
- }
109
- function fuzzyWhitespacePatch(content, oldStr, newStr, replaceAll) {
110
- const normalOld = normalizeWhitespace(oldStr);
111
- const oldLineCount = oldStr.split('\n').length;
112
- const contentLines = content.split('\n');
113
- const matches = [];
114
- for (let i = 0; i <= contentLines.length - oldLineCount; i++) {
115
- const window = contentLines.slice(i, i + oldLineCount).join('\n');
116
- if (normalizeWhitespace(window) === normalOld) {
117
- const start = contentLines.slice(0, i).join('\n').length + (i > 0 ? 1 : 0);
118
- const end = start + window.length;
119
- matches.push({ start, end });
120
- }
121
- }
122
- if (matches.length === 0)
123
- return { error: 'no_fuzzy_match' };
124
- if (matches.length > 1 && !replaceAll) {
125
- return { error: `Fuzzy whitespace match found ${matches.length} ambiguous locations; add more surrounding context to make old_string unique.` };
126
- }
127
- if (replaceAll) {
128
- let result = content;
129
- for (let i = matches.length - 1; i >= 0; i--) {
130
- const { start, end } = matches[i];
131
- result = result.slice(0, start) + newStr + result.slice(end);
132
- }
133
- return { patched: result };
134
- }
135
- const { start, end } = matches[0];
136
- return { patched: content.slice(0, start) + newStr + content.slice(end) };
137
- }
138
- function computeChangedLines(oldContent, newContent) {
139
- const oldLines = oldContent.split('\n');
140
- const newLines = newContent.split('\n');
141
- const maxLen = Math.max(oldLines.length, newLines.length);
142
- const changed = [];
143
- for (let i = 0; i < maxLen; i++) {
144
- if ((oldLines[i] ?? '') !== (newLines[i] ?? '')) {
145
- changed.push(i + 1); // 1-indexed line numbers
146
- }
147
- }
148
- return changed;
149
- }
150
- async function syntaxCheck(filePath, projectRoot, modifiedLines) {
151
- const ext = path.extname(filePath).toLowerCase();
152
- if (ext === '.json') {
153
- try {
154
- JSON.parse(fs.readFileSync(filePath, 'utf8'));
155
- return null;
156
- }
157
- catch (e) {
158
- return `JSON syntax error: ${e.message}`;
159
- }
160
- }
161
- if (ext === '.yaml' || ext === '.yml') {
162
- const content = fs.readFileSync(filePath, 'utf8');
163
- const tabLine = content.split('\n').findIndex(l => l.includes('\t'));
164
- if (tabLine !== -1)
165
- return `YAML syntax error: tab character on line ${tabLine + 1} (YAML requires spaces)`;
166
- return null;
167
- }
168
- if (ext === '.ts' || ext === '.tsx') {
169
- // Walk up from the file's directory to find the nearest tsconfig.json
170
- let tsconfigDir = path.dirname(filePath);
171
- let tsconfigPath = null;
172
- while (true) {
173
- const candidate = path.join(tsconfigDir, 'tsconfig.json');
174
- if (fs.existsSync(candidate)) {
175
- tsconfigPath = candidate;
176
- break;
177
- }
178
- const parent = path.dirname(tsconfigDir);
179
- if (parent === tsconfigDir)
180
- break;
181
- tsconfigDir = parent;
182
- }
183
- if (!tsconfigPath)
184
- tsconfigPath = path.join(projectRoot, 'tsconfig.json');
185
- if (!fs.existsSync(tsconfigPath))
186
- return null;
187
- const tsconfigRoot = path.dirname(tsconfigPath);
188
- const runTsc = () => spawnSync('npx', ['tsc', '--noEmit', '--skipLibCheck'], {
189
- cwd: tsconfigRoot,
190
- timeout: 15000,
191
- encoding: 'utf8',
192
- shell: true,
193
- });
194
- let result = runTsc();
195
- if (result.status !== 0) {
196
- const output = (result.stdout ?? '') + (result.stderr ?? '');
197
- const lines = output.split('\n');
198
- const hasDeprecation = lines.some(l => /error TS5\d{3}/.test(l));
199
- if (hasDeprecation) {
200
- try {
201
- const raw = fs.readFileSync(tsconfigPath, 'utf8');
202
- const cfg = JSON.parse(raw);
203
- if (!cfg.compilerOptions)
204
- cfg.compilerOptions = {};
205
- if (!cfg.compilerOptions.ignoreDeprecations) {
206
- cfg.compilerOptions.ignoreDeprecations = '6.0';
207
- fs.writeFileSync(tsconfigPath, JSON.stringify(cfg, null, 2) + '\n', 'utf8');
208
- result = runTsc();
209
- }
210
- }
211
- catch { /* if tsconfig parse fails, leave it alone */ }
212
- }
213
- if (result.status !== 0) {
214
- const retryOutput = (result.stdout ?? '') + (result.stderr ?? '');
215
- const targetBase = path.basename(filePath);
216
- const filteredLines = retryOutput.split('\n').filter(l => {
217
- if (!/error TS/.test(l) || /error TS5\d{3}/.test(l))
218
- return false;
219
- if (!l.includes(targetBase))
220
- return false;
221
- if (modifiedLines && modifiedLines.length > 0) {
222
- const lineMatch = l.match(/\((\d+),\d+\)/);
223
- if (lineMatch) {
224
- const errLine = parseInt(lineMatch[1], 10);
225
- if (!modifiedLines.includes(errLine)) {
226
- return false; // pre-existing error on untouched line
227
- }
228
- }
229
- }
230
- return true;
231
- });
232
- const firstFiltered = filteredLines.find(l => /error TS/.test(l) && !/error TS5\d{3}/.test(l));
233
- if (firstFiltered)
234
- return firstFiltered;
235
- }
236
- }
237
- return null;
238
- }
239
- if (ext === '.js' || ext === '.mjs' || ext === '.cjs' || ext === '.ts' || ext === '.tsx') {
240
- const result = spawnSync(process.execPath, ['--check', filePath], {
241
- timeout: 10000,
242
- encoding: 'utf8',
243
- });
244
- if (result.status !== 0) {
245
- const output = (result.stderr ?? result.stdout ?? '').split('\n')[0];
246
- return output || 'Syntax error detected';
247
- }
248
- }
249
- return null;
250
- }
251
- function checkWriteWithoutRead(targetPath, context) {
252
- if (!context.sessionReadCache)
253
- return null;
254
- if (!fs.existsSync(targetPath))
255
- return null;
256
- const readMtime = context.sessionReadCache.get(targetPath);
257
- if (readMtime === undefined) {
258
- // Auto-read: populate cache so the write/patch proceeds without requiring a separate read_file
259
- context.sessionReadCache.set(targetPath, fs.statSync(targetPath).mtimeMs);
260
- return null;
261
- }
262
- const currentMtime = fs.statSync(targetPath).mtimeMs;
263
- if (currentMtime > readMtime + 500) {
264
- return `[STALE READ] ${path.basename(targetPath)} was modified after you last read it. Use read_file to get the current content before patching.`;
265
- }
266
- return null;
267
- }
268
- function checkCircuitBreaker(targetPath, context) {
269
- if (!context.patchFailureStreak)
270
- return null;
271
- const streak = context.patchFailureStreak.get(targetPath) ?? 0;
272
- if (streak >= 2) {
273
- return `[CIRCUIT BREAKER] patch failed ${streak} consecutive times on ${path.basename(targetPath)}. Use read_file to inspect the current state and reconstruct your patch from the actual content.`;
274
- }
275
- return null;
276
- }
277
- function recordWriteSuccess(targetPath, context) {
278
- context.patchFailureStreak?.set(targetPath, 0);
279
- if (context.sessionReadCache && fs.existsSync(targetPath)) {
280
- context.sessionReadCache.set(targetPath, fs.statSync(targetPath).mtimeMs);
281
- }
282
- }
283
- function recordRevert(targetPath, context) {
284
- if (context.sessionReadCache && fs.existsSync(targetPath)) {
285
- context.sessionReadCache.set(targetPath, fs.statSync(targetPath).mtimeMs);
286
- }
287
- }
288
- function recordPatchFailure(targetPath, context) {
289
- const streak = context.patchFailureStreak?.get(targetPath) ?? 0;
290
- context.patchFailureStreak?.set(targetPath, streak + 1);
291
- }
292
- function validateImports(filePath, projectRoot) {
293
- const ext = path.extname(filePath).toLowerCase();
294
- if (!['.ts', '.tsx', '.js', '.mjs', '.cjs'].includes(ext))
295
- return [];
296
- const content = fs.readFileSync(filePath, 'utf8');
297
- const warnings = [];
298
- const importRe = /^import\s+(?:[\s\S]*?from\s+)?['"]([^'"]+)['"]/gm;
299
- let match;
300
- while ((match = importRe.exec(content)) !== null) {
301
- const spec = match[1];
302
- if (spec.startsWith('.') || spec.startsWith('/')) {
303
- const candidates = [spec, `${spec}.ts`, `${spec}.js`, `${spec}/index.ts`, `${spec}/index.js`];
304
- const resolved = candidates.map(c => path.resolve(path.dirname(filePath), c));
305
- if (!resolved.some(r => fs.existsSync(r))) {
306
- warnings.push(`Local import not found: '${spec}'`);
307
- }
308
- }
309
- else {
310
- const pkg = spec.startsWith('@') ? spec.split('/').slice(0, 2).join('/') : spec.split('/')[0];
311
- const pkgJson = path.join(projectRoot, 'package.json');
312
- if (fs.existsSync(pkgJson)) {
313
- try {
314
- const { dependencies = {}, devDependencies = {} } = JSON.parse(fs.readFileSync(pkgJson, 'utf8'));
315
- if (!dependencies[pkg] && !devDependencies[pkg]) {
316
- const nmPath = path.join(projectRoot, 'node_modules', pkg);
317
- if (!fs.existsSync(nmPath)) {
318
- warnings.push(`npm package not in package.json: '${pkg}'`);
319
- }
320
- }
321
- }
322
- catch { /* ignored */ }
323
- }
324
- }
325
- }
326
- return warnings;
327
- }
328
- function validateExports(filePath) {
329
- const ext = path.extname(filePath).toLowerCase();
330
- if (!['.ts', '.tsx', '.js', '.mjs', '.cjs'].includes(ext))
331
- return [];
332
- const content = fs.readFileSync(filePath, 'utf8');
333
- const warnings = [];
334
- const namedExportRe = /^export\s+\{([^}]+)\}/gm;
335
- let match;
336
- while ((match = namedExportRe.exec(content)) !== null) {
337
- const names = match[1].split(',').map(s => s.trim().split(/\s+as\s+/)[0].trim()).filter(Boolean);
338
- for (const name of names) {
339
- const definedRe = new RegExp(`(?:function|class|const|let|var|type|interface|enum)\\s+${name}\\b`);
340
- if (!definedRe.test(content)) {
341
- warnings.push(`Exported name '${name}' is not defined in this file`);
342
- }
343
- }
344
- }
345
- return warnings;
346
- }
347
- async function runColocatedTests(filePath, projectRoot) {
348
- const ext = path.extname(filePath);
349
- const base = filePath.slice(0, -ext.length);
350
- const testCandidates = [`${base}.test${ext}`, `${base}.spec${ext}`];
351
- const testFile = testCandidates.find(t => fs.existsSync(t));
352
- if (!testFile)
353
- return null;
354
- const result = spawnSync('npx', ['vitest', 'run', testFile, '--reporter=verbose'], {
355
- cwd: projectRoot,
356
- timeout: 30000,
357
- encoding: 'utf8',
358
- shell: true,
359
- });
360
- if (result.status !== 0) {
361
- const output = ((result.stdout ?? '') + (result.stderr ?? '')).split('\n')
362
- .filter(l => l.match(/FAIL|×|Error|AssertionError/))
363
- .slice(0, 8)
364
- .join('\n');
365
- return `[TEST FAILURE] ${path.basename(testFile)} failed after this change:\n${output || result.stdout?.slice(0, 400) || 'unknown error'}\nFix the code to make the tests pass.`;
366
- }
367
- return null;
368
- }
369
- function checkPackageJsonAntiPatterns(filePath, _projectRoot) {
370
- if (!filePath.endsWith('package.json'))
371
- return [];
372
- try {
373
- const pkg = JSON.parse(fs.readFileSync(filePath, 'utf8'));
374
- const warnings = [];
375
- const pkgName = pkg.name || '';
376
- const allDeps = { ...(pkg.dependencies || {}), ...(pkg.devDependencies || {}) };
377
- // Deprecated `vscode` package (not @types/vscode)
378
- if (allDeps['vscode']) {
379
- warnings.push('Deprecated `vscode` npm package found in dependencies. Use only `@types/vscode` for type definitions.');
380
- }
381
- // Circular self-dependency
382
- if (allDeps[pkgName]) {
383
- warnings.push(`Circular dependency: package "${pkgName}" depends on itself. Remove "${pkgName}" from dependencies.`);
384
- }
385
- if (allDeps['daedalus-cli'] && !pkgName?.includes('daedalus-cli')) {
386
- warnings.push('Project should not depend on "daedalus-cli" — the CLI is spawned externally, not imported as a library.');
387
- }
388
- // Mismatched @types/vscode vs engines.vscode
389
- const vsCodeTypes = pkg.devDependencies?.['@types/vscode'];
390
- const vsCodeEngine = pkg.engines?.vscode;
391
- if (vsCodeTypes && vsCodeEngine && vsCodeTypes.replace(/^\^|\~/, '') !== vsCodeEngine.replace(/^\^|\~/, '')) {
392
- warnings.push(`@types/vscode version (${vsCodeTypes}) should match engines.vscode (${vsCodeEngine}) exactly.`);
393
- }
394
- return warnings;
395
- }
396
- catch {
397
- return [];
398
- }
399
- }
400
- function buildPostWriteWarnings(filePath, projectRoot) {
401
- const importWarnings = validateImports(filePath, projectRoot);
402
- const exportWarnings = validateExports(filePath);
403
- const antiPatterns = checkPackageJsonAntiPatterns(filePath, projectRoot);
404
- return [...importWarnings, ...exportWarnings, ...antiPatterns];
405
- }
406
12
  function resolvePath(p, projectRoot) {
407
13
  if (!p) {
408
14
  throw new Error('Path argument is empty or undefined');