codehere 0.1.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 (159) hide show
  1. package/ARCHITECTURE.md +240 -0
  2. package/CHANGELOG.md +44 -0
  3. package/CONTRIBUTING.md +171 -0
  4. package/LICENSE +22 -0
  5. package/README.md +203 -0
  6. package/dist/ast-parser.d.ts +55 -0
  7. package/dist/ast-parser.d.ts.map +1 -0
  8. package/dist/ast-parser.js +331 -0
  9. package/dist/ast-parser.js.map +1 -0
  10. package/dist/benchmark.d.ts +39 -0
  11. package/dist/benchmark.d.ts.map +1 -0
  12. package/dist/benchmark.js +195 -0
  13. package/dist/benchmark.js.map +1 -0
  14. package/dist/cache.d.ts +45 -0
  15. package/dist/cache.d.ts.map +1 -0
  16. package/dist/cache.js +182 -0
  17. package/dist/cache.js.map +1 -0
  18. package/dist/chat.d.ts +4 -0
  19. package/dist/chat.d.ts.map +1 -0
  20. package/dist/chat.js +132 -0
  21. package/dist/chat.js.map +1 -0
  22. package/dist/code-analysis.d.ts +50 -0
  23. package/dist/code-analysis.d.ts.map +1 -0
  24. package/dist/code-analysis.js +327 -0
  25. package/dist/code-analysis.js.map +1 -0
  26. package/dist/context.d.ts +44 -0
  27. package/dist/context.d.ts.map +1 -0
  28. package/dist/context.js +187 -0
  29. package/dist/context.js.map +1 -0
  30. package/dist/docs.d.ts +21 -0
  31. package/dist/docs.d.ts.map +1 -0
  32. package/dist/docs.js +147 -0
  33. package/dist/docs.js.map +1 -0
  34. package/dist/edit.d.ts +38 -0
  35. package/dist/edit.d.ts.map +1 -0
  36. package/dist/edit.js +594 -0
  37. package/dist/edit.js.map +1 -0
  38. package/dist/embed.d.ts +18 -0
  39. package/dist/embed.d.ts.map +1 -0
  40. package/dist/embed.js +479 -0
  41. package/dist/embed.js.map +1 -0
  42. package/dist/error-handler.d.ts +76 -0
  43. package/dist/error-handler.d.ts.map +1 -0
  44. package/dist/error-handler.js +213 -0
  45. package/dist/error-handler.js.map +1 -0
  46. package/dist/formatter.d.ts +25 -0
  47. package/dist/formatter.d.ts.map +1 -0
  48. package/dist/formatter.js +148 -0
  49. package/dist/formatter.js.map +1 -0
  50. package/dist/git.d.ts +55 -0
  51. package/dist/git.d.ts.map +1 -0
  52. package/dist/git.js +198 -0
  53. package/dist/git.js.map +1 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +964 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/intelligent-retrieval.d.ts +41 -0
  59. package/dist/intelligent-retrieval.d.ts.map +1 -0
  60. package/dist/intelligent-retrieval.js +265 -0
  61. package/dist/intelligent-retrieval.js.map +1 -0
  62. package/dist/iterative-refinement.d.ts +31 -0
  63. package/dist/iterative-refinement.d.ts.map +1 -0
  64. package/dist/iterative-refinement.js +172 -0
  65. package/dist/iterative-refinement.js.map +1 -0
  66. package/dist/learning.d.ts +69 -0
  67. package/dist/learning.d.ts.map +1 -0
  68. package/dist/learning.js +233 -0
  69. package/dist/learning.js.map +1 -0
  70. package/dist/log.d.ts +4 -0
  71. package/dist/log.d.ts.map +1 -0
  72. package/dist/log.js +31 -0
  73. package/dist/log.js.map +1 -0
  74. package/dist/migrate.d.ts +33 -0
  75. package/dist/migrate.d.ts.map +1 -0
  76. package/dist/migrate.js +133 -0
  77. package/dist/migrate.js.map +1 -0
  78. package/dist/monitoring.d.ts +75 -0
  79. package/dist/monitoring.d.ts.map +1 -0
  80. package/dist/monitoring.js +248 -0
  81. package/dist/monitoring.js.map +1 -0
  82. package/dist/parallel-processor.d.ts +43 -0
  83. package/dist/parallel-processor.d.ts.map +1 -0
  84. package/dist/parallel-processor.js +308 -0
  85. package/dist/parallel-processor.js.map +1 -0
  86. package/dist/planner.d.ts +47 -0
  87. package/dist/planner.d.ts.map +1 -0
  88. package/dist/planner.js +198 -0
  89. package/dist/planner.js.map +1 -0
  90. package/dist/policy.d.ts +3 -0
  91. package/dist/policy.d.ts.map +1 -0
  92. package/dist/policy.js +26 -0
  93. package/dist/policy.js.map +1 -0
  94. package/dist/query-optimizer.d.ts +32 -0
  95. package/dist/query-optimizer.d.ts.map +1 -0
  96. package/dist/query-optimizer.js +205 -0
  97. package/dist/query-optimizer.js.map +1 -0
  98. package/dist/refactor.d.ts +27 -0
  99. package/dist/refactor.d.ts.map +1 -0
  100. package/dist/refactor.js +118 -0
  101. package/dist/refactor.js.map +1 -0
  102. package/dist/review.d.ts +31 -0
  103. package/dist/review.d.ts.map +1 -0
  104. package/dist/review.js +206 -0
  105. package/dist/review.js.map +1 -0
  106. package/dist/scaffold.d.ts +14 -0
  107. package/dist/scaffold.d.ts.map +1 -0
  108. package/dist/scaffold.js +85 -0
  109. package/dist/scaffold.js.map +1 -0
  110. package/dist/search.d.ts +19 -0
  111. package/dist/search.d.ts.map +1 -0
  112. package/dist/search.js +198 -0
  113. package/dist/search.js.map +1 -0
  114. package/dist/session.d.ts +17 -0
  115. package/dist/session.d.ts.map +1 -0
  116. package/dist/session.js +301 -0
  117. package/dist/session.js.map +1 -0
  118. package/dist/task-verification.d.ts +39 -0
  119. package/dist/task-verification.d.ts.map +1 -0
  120. package/dist/task-verification.js +336 -0
  121. package/dist/task-verification.js.map +1 -0
  122. package/dist/test_cohere.d.ts +2 -0
  123. package/dist/test_cohere.d.ts.map +1 -0
  124. package/dist/test_cohere.js +68 -0
  125. package/dist/test_cohere.js.map +1 -0
  126. package/dist/test_env.d.ts +2 -0
  127. package/dist/test_env.d.ts.map +1 -0
  128. package/dist/test_env.js +24 -0
  129. package/dist/test_env.js.map +1 -0
  130. package/dist/test_retrieval.d.ts +2 -0
  131. package/dist/test_retrieval.d.ts.map +1 -0
  132. package/dist/test_retrieval.js +84 -0
  133. package/dist/test_retrieval.js.map +1 -0
  134. package/dist/testgen.d.ts +24 -0
  135. package/dist/testgen.d.ts.map +1 -0
  136. package/dist/testgen.js +167 -0
  137. package/dist/testgen.js.map +1 -0
  138. package/dist/token-optimizer.d.ts +20 -0
  139. package/dist/token-optimizer.d.ts.map +1 -0
  140. package/dist/token-optimizer.js +277 -0
  141. package/dist/token-optimizer.js.map +1 -0
  142. package/dist/types.d.ts +36 -0
  143. package/dist/types.d.ts.map +1 -0
  144. package/dist/types.js +2 -0
  145. package/dist/types.js.map +1 -0
  146. package/dist/ui.d.ts +54 -0
  147. package/dist/ui.d.ts.map +1 -0
  148. package/dist/ui.js +295 -0
  149. package/dist/ui.js.map +1 -0
  150. package/dist/verify_db.d.ts +2 -0
  151. package/dist/verify_db.d.ts.map +1 -0
  152. package/dist/verify_db.js +52 -0
  153. package/dist/verify_db.js.map +1 -0
  154. package/package.json +71 -0
  155. package/templates/next-page/app/layout.tsx +19 -0
  156. package/templates/next-page/app/page.tsx +10 -0
  157. package/templates/next-page/package.json +22 -0
  158. package/templates/node-api/index.js +57 -0
  159. package/templates/node-api/package.json +13 -0
package/dist/edit.js ADDED
@@ -0,0 +1,594 @@
1
+ import { readFileSync, writeFileSync, existsSync, unlinkSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { execSync } from 'child_process';
4
+ import { applyPatch, parsePatch } from 'diff';
5
+ import { generateDiff } from './chat.js';
6
+ import { checkPolicy } from './policy.js';
7
+ import { refineTask } from './iterative-refinement.js';
8
+ import { updateFileEmbeddings } from './embed.js';
9
+ export function parseDiffStats(diffText) {
10
+ const lines = diffText.split('\n');
11
+ let linesAdded = 0;
12
+ let linesRemoved = 0;
13
+ let filesChanged = 0;
14
+ let currentFile = '';
15
+ for (const line of lines) {
16
+ if (line.startsWith('---')) {
17
+ const fileMatch = line.match(/^---\s+(.+)$/);
18
+ if (fileMatch && fileMatch[1] !== '/dev/null') {
19
+ const file = fileMatch[1].replace(/^a\//, '');
20
+ if (file !== currentFile) {
21
+ filesChanged++;
22
+ currentFile = file;
23
+ }
24
+ }
25
+ }
26
+ else if (line.startsWith('+++')) {
27
+ const fileMatch = line.match(/^\+\+\+\s+(.+)$/);
28
+ if (fileMatch && fileMatch[1] !== '/dev/null') {
29
+ const file = fileMatch[1].replace(/^b\//, '');
30
+ if (file !== currentFile) {
31
+ filesChanged++;
32
+ currentFile = file;
33
+ }
34
+ }
35
+ }
36
+ else if (line.startsWith('+') && !line.startsWith('+++')) {
37
+ linesAdded++;
38
+ }
39
+ else if (line.startsWith('-') && !line.startsWith('---')) {
40
+ linesRemoved++;
41
+ }
42
+ }
43
+ return { linesAdded, linesRemoved, filesChanged };
44
+ }
45
+ export function applyUnifiedDiff(originalContent, diffText) {
46
+ try {
47
+ // Use the diff package's applyPatch function for reliable patch application
48
+ const patches = parsePatch(diffText);
49
+ if (!patches || patches.length === 0) {
50
+ // Fallback to original content if no valid patches
51
+ console.warn('No patches parsed from diff');
52
+ return originalContent;
53
+ }
54
+ // Apply all patches
55
+ let result = originalContent;
56
+ for (let i = 0; i < patches.length; i++) {
57
+ const patch = patches[i];
58
+ const applied = applyPatch(result, patch);
59
+ if (applied === false) {
60
+ // Patch application failed - try manual as fallback
61
+ console.warn(`Patch ${i} failed to apply, using manual fallback`);
62
+ const manualResult = applyUnifiedDiffManual(result, diffText);
63
+ // If manual also fails, return original
64
+ if (manualResult === result) {
65
+ console.warn('Manual diff application also failed, returning original content');
66
+ return originalContent;
67
+ }
68
+ result = manualResult;
69
+ }
70
+ else {
71
+ result = Array.isArray(applied) ? applied.join('\n') : String(applied);
72
+ }
73
+ }
74
+ // Post-process to fix duplicate module.exports
75
+ return fixDuplicateExports(result);
76
+ }
77
+ catch (error) {
78
+ // If patch application fails, try manual application
79
+ console.warn(`Patch application error: ${error instanceof Error ? error.message : String(error)}`);
80
+ return applyUnifiedDiffManual(originalContent, diffText);
81
+ }
82
+ }
83
+ /**
84
+ * Manual diff application as fallback when applyPatch fails
85
+ * More lenient parsing to handle AI-generated diffs
86
+ */
87
+ function applyUnifiedDiffManual(originalContent, diffText) {
88
+ // If diff is empty or invalid, return original
89
+ if (!diffText || !diffText.trim()) {
90
+ return originalContent;
91
+ }
92
+ const diffLines = diffText.split('\n');
93
+ const originalLines = originalContent.split('\n');
94
+ const result = [];
95
+ let originalIndex = 0;
96
+ let i = 0;
97
+ // Skip header lines (---, +++)
98
+ while (i < diffLines.length && (diffLines[i].startsWith('---') || diffLines[i].startsWith('+++'))) {
99
+ i++;
100
+ }
101
+ // Find first hunk
102
+ while (i < diffLines.length && !diffLines[i].startsWith('@@')) {
103
+ i++;
104
+ }
105
+ if (i >= diffLines.length) {
106
+ // No hunks found, return original
107
+ return originalContent;
108
+ }
109
+ while (i < diffLines.length) {
110
+ const line = diffLines[i];
111
+ if (line.startsWith('@@')) {
112
+ const match = line.match(/^@@\s+-(\d+)(?:,(\d+))?\s+\+(\d+)(?:,(\d+))?\s+@@/);
113
+ if (match) {
114
+ const oldStart = parseInt(match[1], 10) - 1; // Convert to 0-based
115
+ // Add lines before this hunk
116
+ while (originalIndex < oldStart && originalIndex < originalLines.length) {
117
+ result.push(originalLines[originalIndex]);
118
+ originalIndex++;
119
+ }
120
+ i++; // Move past hunk header
121
+ // Process hunk lines
122
+ while (i < diffLines.length) {
123
+ const hunkLine = diffLines[i];
124
+ // Check for next hunk
125
+ if (hunkLine.startsWith('@@')) {
126
+ break;
127
+ }
128
+ // Skip empty lines
129
+ if (hunkLine.trim() === '') {
130
+ i++;
131
+ continue;
132
+ }
133
+ if (hunkLine.startsWith('+') && !hunkLine.startsWith('+++')) {
134
+ // Added line
135
+ result.push(hunkLine.substring(1));
136
+ i++;
137
+ }
138
+ else if (hunkLine.startsWith('-') && !hunkLine.startsWith('---')) {
139
+ // Removed line - skip in original
140
+ originalIndex++;
141
+ i++;
142
+ }
143
+ else if (hunkLine.startsWith(' ')) {
144
+ // Context line - keep from original
145
+ if (originalIndex < originalLines.length) {
146
+ result.push(originalLines[originalIndex]);
147
+ }
148
+ originalIndex++;
149
+ i++;
150
+ }
151
+ else {
152
+ // Unknown line type - skip
153
+ i++;
154
+ }
155
+ }
156
+ }
157
+ else {
158
+ i++;
159
+ }
160
+ }
161
+ else {
162
+ i++;
163
+ }
164
+ }
165
+ // Add remaining original lines
166
+ while (originalIndex < originalLines.length) {
167
+ result.push(originalLines[originalIndex]);
168
+ originalIndex++;
169
+ }
170
+ const appliedContent = result.join('\n');
171
+ // Only apply post-processing if content actually changed
172
+ if (appliedContent === originalContent) {
173
+ return originalContent;
174
+ }
175
+ return fixDuplicateExports(appliedContent);
176
+ }
177
+ /**
178
+ * Validate JavaScript/TypeScript syntax
179
+ */
180
+ async function validateSyntax(content, ext, filepath) {
181
+ if (ext === 'js' || ext === 'jsx') {
182
+ // Use node --check for reliable syntax validation
183
+ try {
184
+ // Write to temp file and check
185
+ const tempFile = filepath + '.tmp';
186
+ writeFileSync(tempFile, content, 'utf-8');
187
+ try {
188
+ execSync(`node --check "${tempFile}"`, { stdio: 'pipe' });
189
+ // Clean up temp file
190
+ if (existsSync(tempFile)) {
191
+ unlinkSync(tempFile);
192
+ }
193
+ return { valid: true };
194
+ }
195
+ catch (error) {
196
+ // Clean up temp file
197
+ if (existsSync(tempFile)) {
198
+ unlinkSync(tempFile);
199
+ }
200
+ const errorMsg = error.stderr?.toString() || error.message || 'Unknown syntax error';
201
+ return { valid: false, error: errorMsg };
202
+ }
203
+ }
204
+ catch (error) {
205
+ // Fallback to Function constructor if node check fails
206
+ try {
207
+ new Function(content);
208
+ return { valid: true };
209
+ }
210
+ catch (syntaxError) {
211
+ return {
212
+ valid: false,
213
+ error: syntaxError instanceof Error ? syntaxError.message : String(syntaxError),
214
+ };
215
+ }
216
+ }
217
+ }
218
+ // For TypeScript, use tsc --noEmit
219
+ if (ext === 'ts' || ext === 'tsx') {
220
+ try {
221
+ // Write to temp file and check
222
+ const tempFile = filepath + '.tmp';
223
+ writeFileSync(tempFile, content, 'utf-8');
224
+ try {
225
+ // Try to find tsc in node_modules or use npx
226
+ execSync(`npx tsc --noEmit --skipLibCheck "${tempFile}" 2>&1`, { stdio: 'pipe' });
227
+ // Clean up temp file
228
+ if (existsSync(tempFile)) {
229
+ unlinkSync(tempFile);
230
+ }
231
+ return { valid: true };
232
+ }
233
+ catch (error) {
234
+ // Clean up temp file
235
+ if (existsSync(tempFile)) {
236
+ unlinkSync(tempFile);
237
+ }
238
+ const errorMsg = error.stderr?.toString() || error.stdout?.toString() || error.message || 'Unknown TypeScript error';
239
+ // If tsc is not found, that's okay - just skip validation
240
+ if (errorMsg.includes('command not found') || errorMsg.includes('Cannot find module')) {
241
+ return { valid: true }; // Skip if tsc not available
242
+ }
243
+ return { valid: false, error: errorMsg };
244
+ }
245
+ }
246
+ catch (error) {
247
+ // If tsc check fails entirely, skip validation
248
+ return { valid: true };
249
+ }
250
+ }
251
+ return { valid: true };
252
+ }
253
+ /**
254
+ * Fix duplicate module.exports lines and update exports when functions are renamed
255
+ */
256
+ function fixDuplicateExports(content) {
257
+ const lines = content.split('\n');
258
+ const moduleExportsLines = [];
259
+ // Find all module.exports lines
260
+ for (let i = 0; i < lines.length; i++) {
261
+ const line = lines[i].trim();
262
+ if (line.startsWith('module.exports') && (line.includes('=') || line.includes('{'))) {
263
+ moduleExportsLines.push(i);
264
+ }
265
+ }
266
+ // If we have duplicates, use the LAST one (most recent/newest)
267
+ if (moduleExportsLines.length > 1) {
268
+ // Get the last export line (this is the new/correct one)
269
+ const lastExportIdx = moduleExportsLines[moduleExportsLines.length - 1];
270
+ const lastExportLine = lines[lastExportIdx];
271
+ // Remove all duplicate lines (including the last one, we'll re-add it)
272
+ for (let i = moduleExportsLines.length - 1; i >= 0; i--) {
273
+ lines.splice(moduleExportsLines[i], 1);
274
+ }
275
+ // Insert the last export line at the position where the last duplicate was
276
+ // (usually at end of file)
277
+ const insertPos = lastExportIdx - (moduleExportsLines.length - 1); // Adjust for removed lines
278
+ lines.splice(insertPos, 0, lastExportLine);
279
+ }
280
+ // Now fix exports: find function definitions and update exports to match
281
+ const contentFixed = lines.join('\n');
282
+ return updateExportsForRenamedFunctions(contentFixed);
283
+ }
284
+ /**
285
+ * Update module.exports when functions are renamed
286
+ * Detects function renames and updates exports accordingly
287
+ */
288
+ function updateExportsForRenamedFunctions(content) {
289
+ const lines = content.split('\n');
290
+ // Find all function definitions
291
+ const functionDefs = new Map(); // name -> line number
292
+ for (let i = 0; i < lines.length; i++) {
293
+ const line = lines[i];
294
+ // Match: function functionName(...) {
295
+ const funcMatch = line.match(/function\s+(\w+)\s*\(/);
296
+ if (funcMatch) {
297
+ functionDefs.set(funcMatch[1], i);
298
+ }
299
+ }
300
+ // Find module.exports line
301
+ for (let i = 0; i < lines.length; i++) {
302
+ const line = lines[i];
303
+ if (line.trim().startsWith('module.exports') && line.includes('{')) {
304
+ // Extract exported names
305
+ const exportMatch = line.match(/module\.exports\s*=\s*\{([^}]+)\}/);
306
+ if (exportMatch) {
307
+ const exportedNames = exportMatch[1].split(',').map(n => n.trim()).filter(n => n);
308
+ // Check if any exported name doesn't exist as a function
309
+ const missingFunctions = [];
310
+ const validExports = [];
311
+ for (const exportName of exportedNames) {
312
+ if (functionDefs.has(exportName)) {
313
+ validExports.push(exportName);
314
+ }
315
+ else {
316
+ missingFunctions.push(exportName);
317
+ }
318
+ }
319
+ // If we have missing functions, try to find renamed versions
320
+ // This is a heuristic: if a function was renamed, the old name might still be in exports
321
+ if (missingFunctions.length > 0 && validExports.length > 0) {
322
+ // Check if there are functions that aren't exported but should be
323
+ const allFunctionNames = Array.from(functionDefs.keys());
324
+ const missingFromExports = allFunctionNames.filter(name => !exportedNames.includes(name));
325
+ // If we have exactly one missing function and one missing export, likely a rename
326
+ if (missingFunctions.length === 1 && missingFromExports.length === 1) {
327
+ // Replace old name with new name in exports
328
+ const oldName = missingFunctions[0];
329
+ const newName = missingFromExports[0];
330
+ const newExports = exportedNames.map(name => name === oldName ? newName : name);
331
+ lines[i] = line.replace(/\{([^}]+)\}/, `{ ${newExports.join(', ')} }`);
332
+ }
333
+ else {
334
+ // Just remove missing functions from exports
335
+ lines[i] = line.replace(/\{([^}]+)\}/, `{ ${validExports.join(', ')} }`);
336
+ }
337
+ }
338
+ }
339
+ break; // Only process first module.exports
340
+ }
341
+ }
342
+ return lines.join('\n');
343
+ }
344
+ /**
345
+ * Generate and validate diff without applying (for dry-run)
346
+ */
347
+ export async function generateEditDryRun(filepath, instruction) {
348
+ const fullPath = join(process.cwd(), filepath);
349
+ if (!existsSync(fullPath)) {
350
+ return {
351
+ success: false,
352
+ error: `File not found: ${filepath}`,
353
+ };
354
+ }
355
+ const originalContent = readFileSync(fullPath, 'utf-8');
356
+ // Generate diff
357
+ const diffText = await generateDiff(originalContent, instruction, filepath);
358
+ if (!diffText || diffText.trim().length === 0) {
359
+ return {
360
+ success: false,
361
+ error: 'No diff generated',
362
+ };
363
+ }
364
+ // Parse diff stats
365
+ const diffStats = parseDiffStats(diffText);
366
+ // Check policy
367
+ const policyResult = checkPolicy(filepath, diffStats);
368
+ if (!policyResult.allowed) {
369
+ return {
370
+ success: false,
371
+ diffText,
372
+ policyResult,
373
+ diffStats,
374
+ error: policyResult.reason,
375
+ };
376
+ }
377
+ // Apply diff to get new content (but don't write)
378
+ try {
379
+ const newContent = applyUnifiedDiff(originalContent, diffText);
380
+ // Check if content actually changed
381
+ if (newContent === originalContent) {
382
+ return {
383
+ success: false,
384
+ diffText,
385
+ diffStats,
386
+ policyResult,
387
+ error: 'Diff application resulted in no changes. The generated diff may be invalid or incompatible.',
388
+ };
389
+ }
390
+ // Validate syntax (for JS/TS files)
391
+ const ext = filepath.split('.').pop()?.toLowerCase();
392
+ let syntaxValid = true;
393
+ if (ext === 'js' || ext === 'jsx' || ext === 'ts' || ext === 'tsx') {
394
+ const syntaxCheck = await validateSyntax(newContent, ext, fullPath);
395
+ syntaxValid = syntaxCheck.valid;
396
+ if (!syntaxValid) {
397
+ return {
398
+ success: false,
399
+ diffText,
400
+ diffStats,
401
+ policyResult,
402
+ newContent,
403
+ syntaxValid: false,
404
+ error: `Syntax error in generated code: ${syntaxCheck.error}`,
405
+ };
406
+ }
407
+ }
408
+ return {
409
+ success: true,
410
+ diffText,
411
+ diffStats,
412
+ policyResult,
413
+ newContent,
414
+ syntaxValid: true,
415
+ };
416
+ }
417
+ catch (error) {
418
+ return {
419
+ success: false,
420
+ diffText,
421
+ diffStats,
422
+ policyResult,
423
+ error: `Failed to apply diff: ${error instanceof Error ? error.message : String(error)}`,
424
+ };
425
+ }
426
+ }
427
+ /**
428
+ * Legacy function - kept for backward compatibility
429
+ * Use generateAndApplyEditWithVerification() for new code
430
+ */
431
+ export async function generateAndApplyEdit(filepath, instruction) {
432
+ const fullPath = join(process.cwd(), filepath);
433
+ if (!existsSync(fullPath)) {
434
+ return {
435
+ success: false,
436
+ error: `File not found: ${filepath}`,
437
+ };
438
+ }
439
+ const originalContent = readFileSync(fullPath, 'utf-8');
440
+ // Generate diff
441
+ const diffText = await generateDiff(originalContent, instruction, filepath);
442
+ if (!diffText || diffText.trim().length === 0) {
443
+ return {
444
+ success: false,
445
+ error: 'No diff generated',
446
+ };
447
+ }
448
+ // Parse diff stats
449
+ const diffStats = parseDiffStats(diffText);
450
+ // Check policy
451
+ const policyResult = checkPolicy(filepath, diffStats);
452
+ if (!policyResult.allowed) {
453
+ return {
454
+ success: false,
455
+ policyResult,
456
+ diffStats,
457
+ error: policyResult.reason,
458
+ };
459
+ }
460
+ // Apply diff
461
+ try {
462
+ const newContent = applyUnifiedDiff(originalContent, diffText);
463
+ // Check if content actually changed
464
+ if (newContent === originalContent) {
465
+ return {
466
+ success: false,
467
+ diffStats,
468
+ policyResult,
469
+ error: 'Diff application resulted in no changes. The generated diff may be invalid or incompatible.',
470
+ };
471
+ }
472
+ // CRITICAL: Validate syntax BEFORE writing (for JS/TS files)
473
+ // Never write broken files to disk under any condition
474
+ const ext = filepath.split('.').pop()?.toLowerCase();
475
+ if (ext === 'js' || ext === 'jsx' || ext === 'ts' || ext === 'tsx') {
476
+ const syntaxCheck = await validateSyntax(newContent, ext, fullPath);
477
+ if (!syntaxCheck.valid) {
478
+ // Syntax invalid - DO NOT WRITE, return error immediately
479
+ return {
480
+ success: false,
481
+ diffStats,
482
+ policyResult,
483
+ error: `Syntax validation failed. File NOT modified. Error: ${syntaxCheck.error}`,
484
+ };
485
+ }
486
+ }
487
+ // Only write if syntax is valid (or not JS/TS)
488
+ writeFileSync(fullPath, newContent, 'utf-8');
489
+ // Update embeddings for this file (async, don't wait)
490
+ updateFileEmbeddings(filepath).catch(() => {
491
+ // Silently fail - embedding update is optional
492
+ });
493
+ return {
494
+ success: true,
495
+ diffStats,
496
+ policyResult,
497
+ };
498
+ }
499
+ catch (error) {
500
+ return {
501
+ success: false,
502
+ diffStats,
503
+ policyResult,
504
+ error: `Failed to apply diff: ${error instanceof Error ? error.message : String(error)}`,
505
+ };
506
+ }
507
+ }
508
+ /**
509
+ * NEW: Generate and apply edit with verification and iterative refinement
510
+ */
511
+ export async function generateAndApplyEditWithVerification(filepath, instruction, requirements) {
512
+ const fullPath = join(process.cwd(), filepath);
513
+ if (!existsSync(fullPath)) {
514
+ return {
515
+ success: false,
516
+ verified: false,
517
+ iterations: 0,
518
+ error: `File not found: ${filepath}`,
519
+ };
520
+ }
521
+ try {
522
+ // Read original content BEFORE modification
523
+ const originalContent = readFileSync(fullPath, 'utf-8');
524
+ // Use iterative refinement with verification
525
+ const refinementResult = await refineTask(fullPath, instruction, requirements, 3);
526
+ if (!refinementResult.success) {
527
+ // Rollback on failure
528
+ writeFileSync(fullPath, originalContent, 'utf-8');
529
+ return {
530
+ success: false,
531
+ verified: false,
532
+ iterations: refinementResult.iterations,
533
+ error: `Task failed after ${refinementResult.iterations} iterations`,
534
+ verificationErrors: refinementResult.finalResult.errors,
535
+ };
536
+ }
537
+ // Read final content and calculate actual diff stats
538
+ const finalContent = readFileSync(fullPath, 'utf-8');
539
+ // Calculate diff stats manually (more reliable than generating diff)
540
+ const originalLines = originalContent.split('\n');
541
+ const finalLines = finalContent.split('\n');
542
+ let linesAdded = 0;
543
+ let linesRemoved = 0;
544
+ // Simple line-by-line comparison
545
+ const maxLen = Math.max(originalLines.length, finalLines.length);
546
+ for (let i = 0; i < maxLen; i++) {
547
+ if (i >= originalLines.length) {
548
+ linesAdded++;
549
+ }
550
+ else if (i >= finalLines.length) {
551
+ linesRemoved++;
552
+ }
553
+ else if (originalLines[i] !== finalLines[i]) {
554
+ // Changed line - count as removed + added
555
+ linesRemoved++;
556
+ linesAdded++;
557
+ }
558
+ }
559
+ const diffStats = {
560
+ linesAdded,
561
+ linesRemoved,
562
+ filesChanged: 1,
563
+ };
564
+ // Check policy
565
+ const policyResult = checkPolicy(filepath, diffStats);
566
+ return {
567
+ success: true,
568
+ verified: refinementResult.finalResult.success,
569
+ iterations: refinementResult.iterations,
570
+ diffStats,
571
+ policyResult,
572
+ verificationErrors: refinementResult.finalResult.errors.length > 0 ? refinementResult.finalResult.errors : undefined,
573
+ };
574
+ }
575
+ catch (error) {
576
+ // Rollback on error
577
+ if (existsSync(fullPath)) {
578
+ try {
579
+ const originalContent = readFileSync(fullPath, 'utf-8');
580
+ // Try to restore if we have backup (refinement should have kept original)
581
+ }
582
+ catch {
583
+ // Ignore rollback errors
584
+ }
585
+ }
586
+ return {
587
+ success: false,
588
+ verified: false,
589
+ iterations: 0,
590
+ error: `Error during verification: ${error instanceof Error ? error.message : String(error)}`,
591
+ };
592
+ }
593
+ }
594
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../src/edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare function indexRepository(repoPath?: string): Promise<void>;
2
+ /**
3
+ * NEW: Parallel indexing with caching
4
+ */
5
+ export declare function indexRepositoryParallel(repoPath?: string, options?: {
6
+ useCache?: boolean;
7
+ maxConcurrency?: number;
8
+ }): Promise<{
9
+ indexed: number;
10
+ cached: number;
11
+ totalChunks: number;
12
+ timeMs: number;
13
+ }>;
14
+ /**
15
+ * Update embeddings for a single file (after edit)
16
+ */
17
+ export declare function updateFileEmbeddings(filepath: string): Promise<void>;
18
+ //# sourceMappingURL=embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AA+LA,wBAAsB,eAAe,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwQrF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB,GACL,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAkCD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2E1E"}