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.
- package/ARCHITECTURE.md +240 -0
- package/CHANGELOG.md +44 -0
- package/CONTRIBUTING.md +171 -0
- package/LICENSE +22 -0
- package/README.md +203 -0
- package/dist/ast-parser.d.ts +55 -0
- package/dist/ast-parser.d.ts.map +1 -0
- package/dist/ast-parser.js +331 -0
- package/dist/ast-parser.js.map +1 -0
- package/dist/benchmark.d.ts +39 -0
- package/dist/benchmark.d.ts.map +1 -0
- package/dist/benchmark.js +195 -0
- package/dist/benchmark.js.map +1 -0
- package/dist/cache.d.ts +45 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +182 -0
- package/dist/cache.js.map +1 -0
- package/dist/chat.d.ts +4 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +132 -0
- package/dist/chat.js.map +1 -0
- package/dist/code-analysis.d.ts +50 -0
- package/dist/code-analysis.d.ts.map +1 -0
- package/dist/code-analysis.js +327 -0
- package/dist/code-analysis.js.map +1 -0
- package/dist/context.d.ts +44 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +187 -0
- package/dist/context.js.map +1 -0
- package/dist/docs.d.ts +21 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/docs.js +147 -0
- package/dist/docs.js.map +1 -0
- package/dist/edit.d.ts +38 -0
- package/dist/edit.d.ts.map +1 -0
- package/dist/edit.js +594 -0
- package/dist/edit.js.map +1 -0
- package/dist/embed.d.ts +18 -0
- package/dist/embed.d.ts.map +1 -0
- package/dist/embed.js +479 -0
- package/dist/embed.js.map +1 -0
- package/dist/error-handler.d.ts +76 -0
- package/dist/error-handler.d.ts.map +1 -0
- package/dist/error-handler.js +213 -0
- package/dist/error-handler.js.map +1 -0
- package/dist/formatter.d.ts +25 -0
- package/dist/formatter.d.ts.map +1 -0
- package/dist/formatter.js +148 -0
- package/dist/formatter.js.map +1 -0
- package/dist/git.d.ts +55 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +198 -0
- package/dist/git.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +964 -0
- package/dist/index.js.map +1 -0
- package/dist/intelligent-retrieval.d.ts +41 -0
- package/dist/intelligent-retrieval.d.ts.map +1 -0
- package/dist/intelligent-retrieval.js +265 -0
- package/dist/intelligent-retrieval.js.map +1 -0
- package/dist/iterative-refinement.d.ts +31 -0
- package/dist/iterative-refinement.d.ts.map +1 -0
- package/dist/iterative-refinement.js +172 -0
- package/dist/iterative-refinement.js.map +1 -0
- package/dist/learning.d.ts +69 -0
- package/dist/learning.d.ts.map +1 -0
- package/dist/learning.js +233 -0
- package/dist/learning.js.map +1 -0
- package/dist/log.d.ts +4 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +31 -0
- package/dist/log.js.map +1 -0
- package/dist/migrate.d.ts +33 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +133 -0
- package/dist/migrate.js.map +1 -0
- package/dist/monitoring.d.ts +75 -0
- package/dist/monitoring.d.ts.map +1 -0
- package/dist/monitoring.js +248 -0
- package/dist/monitoring.js.map +1 -0
- package/dist/parallel-processor.d.ts +43 -0
- package/dist/parallel-processor.d.ts.map +1 -0
- package/dist/parallel-processor.js +308 -0
- package/dist/parallel-processor.js.map +1 -0
- package/dist/planner.d.ts +47 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +198 -0
- package/dist/planner.js.map +1 -0
- package/dist/policy.d.ts +3 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +26 -0
- package/dist/policy.js.map +1 -0
- package/dist/query-optimizer.d.ts +32 -0
- package/dist/query-optimizer.d.ts.map +1 -0
- package/dist/query-optimizer.js +205 -0
- package/dist/query-optimizer.js.map +1 -0
- package/dist/refactor.d.ts +27 -0
- package/dist/refactor.d.ts.map +1 -0
- package/dist/refactor.js +118 -0
- package/dist/refactor.js.map +1 -0
- package/dist/review.d.ts +31 -0
- package/dist/review.d.ts.map +1 -0
- package/dist/review.js +206 -0
- package/dist/review.js.map +1 -0
- package/dist/scaffold.d.ts +14 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +85 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/search.d.ts +19 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +198 -0
- package/dist/search.js.map +1 -0
- package/dist/session.d.ts +17 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +301 -0
- package/dist/session.js.map +1 -0
- package/dist/task-verification.d.ts +39 -0
- package/dist/task-verification.d.ts.map +1 -0
- package/dist/task-verification.js +336 -0
- package/dist/task-verification.js.map +1 -0
- package/dist/test_cohere.d.ts +2 -0
- package/dist/test_cohere.d.ts.map +1 -0
- package/dist/test_cohere.js +68 -0
- package/dist/test_cohere.js.map +1 -0
- package/dist/test_env.d.ts +2 -0
- package/dist/test_env.d.ts.map +1 -0
- package/dist/test_env.js +24 -0
- package/dist/test_env.js.map +1 -0
- package/dist/test_retrieval.d.ts +2 -0
- package/dist/test_retrieval.d.ts.map +1 -0
- package/dist/test_retrieval.js +84 -0
- package/dist/test_retrieval.js.map +1 -0
- package/dist/testgen.d.ts +24 -0
- package/dist/testgen.d.ts.map +1 -0
- package/dist/testgen.js +167 -0
- package/dist/testgen.js.map +1 -0
- package/dist/token-optimizer.d.ts +20 -0
- package/dist/token-optimizer.d.ts.map +1 -0
- package/dist/token-optimizer.js +277 -0
- package/dist/token-optimizer.js.map +1 -0
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui.d.ts +54 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +295 -0
- package/dist/ui.js.map +1 -0
- package/dist/verify_db.d.ts +2 -0
- package/dist/verify_db.d.ts.map +1 -0
- package/dist/verify_db.js +52 -0
- package/dist/verify_db.js.map +1 -0
- package/package.json +71 -0
- package/templates/next-page/app/layout.tsx +19 -0
- package/templates/next-page/app/page.tsx +10 -0
- package/templates/next-page/package.json +22 -0
- package/templates/node-api/index.js +57 -0
- package/templates/node-api/package.json +13 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Completion Verification System
|
|
3
|
+
* Verify code compiles, runs, meets requirements, rollback on failure
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
6
|
+
import { join, dirname } from 'path';
|
|
7
|
+
import { execSync } from 'child_process';
|
|
8
|
+
import { applyUnifiedDiff } from './edit.js';
|
|
9
|
+
/**
|
|
10
|
+
* Verify task completion
|
|
11
|
+
*/
|
|
12
|
+
export async function verifyTask(context) {
|
|
13
|
+
const result = {
|
|
14
|
+
success: false,
|
|
15
|
+
compiled: false,
|
|
16
|
+
testsPassed: false,
|
|
17
|
+
requirementsMet: false,
|
|
18
|
+
errors: [],
|
|
19
|
+
warnings: [],
|
|
20
|
+
rollbackRequired: false,
|
|
21
|
+
};
|
|
22
|
+
// Step 1: Check if code compiles
|
|
23
|
+
const compileResult = await verifyCompilation(context);
|
|
24
|
+
result.compiled = compileResult.success;
|
|
25
|
+
result.errors.push(...compileResult.errors);
|
|
26
|
+
result.warnings.push(...compileResult.warnings);
|
|
27
|
+
if (!result.compiled) {
|
|
28
|
+
result.rollbackRequired = true;
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
// Step 2: Check if tests pass
|
|
32
|
+
const testResult = await verifyTests(context);
|
|
33
|
+
result.testsPassed = testResult.success;
|
|
34
|
+
result.errors.push(...testResult.errors);
|
|
35
|
+
result.warnings.push(...testResult.warnings);
|
|
36
|
+
// Step 3: Check if requirements are met
|
|
37
|
+
if (context.requirements && context.requirements.length > 0) {
|
|
38
|
+
const reqResult = await verifyRequirements(context);
|
|
39
|
+
result.requirementsMet = reqResult.success;
|
|
40
|
+
result.errors.push(...reqResult.errors);
|
|
41
|
+
result.warnings.push(...reqResult.warnings);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
result.requirementsMet = true; // No requirements specified
|
|
45
|
+
}
|
|
46
|
+
// Overall success
|
|
47
|
+
result.success = result.compiled &&
|
|
48
|
+
(result.testsPassed || !testResult.ran) && // Tests optional if not run
|
|
49
|
+
result.requirementsMet;
|
|
50
|
+
if (!result.success) {
|
|
51
|
+
result.rollbackRequired = true;
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Verify code compiles
|
|
57
|
+
*/
|
|
58
|
+
async function verifyCompilation(context) {
|
|
59
|
+
const errors = [];
|
|
60
|
+
const warnings = [];
|
|
61
|
+
try {
|
|
62
|
+
const ext = context.filepath.split('.').pop()?.toLowerCase();
|
|
63
|
+
if (ext === 'ts' || ext === 'tsx') {
|
|
64
|
+
// TypeScript compilation check
|
|
65
|
+
const result = checkTypeScript(context.filepath);
|
|
66
|
+
if (!result.success) {
|
|
67
|
+
errors.push(...result.errors);
|
|
68
|
+
warnings.push(...result.warnings);
|
|
69
|
+
return { success: false, errors, warnings };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (ext === 'js' || ext === 'jsx') {
|
|
73
|
+
// JavaScript syntax check
|
|
74
|
+
const result = checkJavaScript(context.filepath);
|
|
75
|
+
if (!result.success) {
|
|
76
|
+
errors.push(...result.errors);
|
|
77
|
+
warnings.push(...result.warnings);
|
|
78
|
+
return { success: false, errors, warnings };
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return { success: true, errors, warnings };
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
errors.push(`Compilation check failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
85
|
+
return { success: false, errors, warnings };
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check TypeScript compilation
|
|
90
|
+
*/
|
|
91
|
+
function checkTypeScript(filepath) {
|
|
92
|
+
const errors = [];
|
|
93
|
+
const warnings = [];
|
|
94
|
+
try {
|
|
95
|
+
// Try to run tsc --noEmit on the file
|
|
96
|
+
const dir = dirname(filepath);
|
|
97
|
+
const result = execSync(`npx tsc --noEmit --skipLibCheck "${filepath}" 2>&1`, { cwd: dir, encoding: 'utf-8', stdio: 'pipe' });
|
|
98
|
+
// If there's output, there are errors
|
|
99
|
+
if (result.trim().length > 0) {
|
|
100
|
+
const lines = result.split('\n');
|
|
101
|
+
for (const line of lines) {
|
|
102
|
+
if (line.includes('error TS')) {
|
|
103
|
+
errors.push(line);
|
|
104
|
+
}
|
|
105
|
+
else if (line.includes('warning TS')) {
|
|
106
|
+
warnings.push(line);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
success: errors.length === 0,
|
|
112
|
+
errors,
|
|
113
|
+
warnings,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
// execSync throws on non-zero exit
|
|
118
|
+
const output = error.stdout || error.stderr || error.message || '';
|
|
119
|
+
const lines = output.split('\n');
|
|
120
|
+
for (const line of lines) {
|
|
121
|
+
if (line.includes('error TS')) {
|
|
122
|
+
errors.push(line);
|
|
123
|
+
}
|
|
124
|
+
else if (line.includes('warning TS')) {
|
|
125
|
+
warnings.push(line);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
success: false,
|
|
130
|
+
errors: errors.length > 0 ? errors : [output],
|
|
131
|
+
warnings,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Check JavaScript syntax
|
|
137
|
+
*/
|
|
138
|
+
function checkJavaScript(filepath) {
|
|
139
|
+
const errors = [];
|
|
140
|
+
const warnings = [];
|
|
141
|
+
try {
|
|
142
|
+
// Try to parse with node
|
|
143
|
+
const content = readFileSync(filepath, 'utf-8');
|
|
144
|
+
// Basic syntax check: try to parse
|
|
145
|
+
try {
|
|
146
|
+
// Use eval in a safe way to check syntax (just parsing, not execution)
|
|
147
|
+
new Function(content);
|
|
148
|
+
}
|
|
149
|
+
catch (parseError) {
|
|
150
|
+
errors.push(`Syntax error: ${parseError instanceof Error ? parseError.message : String(parseError)}`);
|
|
151
|
+
return { success: false, errors, warnings };
|
|
152
|
+
}
|
|
153
|
+
return { success: true, errors, warnings };
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
errors.push(`JavaScript check failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
157
|
+
return { success: false, errors, warnings };
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Verify tests pass
|
|
162
|
+
*/
|
|
163
|
+
async function verifyTests(context) {
|
|
164
|
+
const errors = [];
|
|
165
|
+
const warnings = [];
|
|
166
|
+
try {
|
|
167
|
+
// Look for test files
|
|
168
|
+
const testFiles = findTestFiles(context.filepath);
|
|
169
|
+
if (testFiles.length === 0) {
|
|
170
|
+
return { success: true, ran: false, errors, warnings }; // No tests to run
|
|
171
|
+
}
|
|
172
|
+
// Try to run tests
|
|
173
|
+
const dir = dirname(context.filepath);
|
|
174
|
+
let testCommand = '';
|
|
175
|
+
// Detect test framework
|
|
176
|
+
if (existsSync(join(dir, 'package.json'))) {
|
|
177
|
+
const packageJson = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf-8'));
|
|
178
|
+
const scripts = packageJson.scripts || {};
|
|
179
|
+
if (scripts.test) {
|
|
180
|
+
testCommand = scripts.test;
|
|
181
|
+
}
|
|
182
|
+
else if (scripts['test:unit']) {
|
|
183
|
+
testCommand = scripts['test:unit'];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (!testCommand) {
|
|
187
|
+
// Try common test commands
|
|
188
|
+
if (existsSync(join(dir, 'jest.config.js')) || existsSync(join(dir, 'jest.config.ts'))) {
|
|
189
|
+
testCommand = 'npx jest';
|
|
190
|
+
}
|
|
191
|
+
else if (existsSync(join(dir, 'vitest.config.ts'))) {
|
|
192
|
+
testCommand = 'npx vitest run';
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
return { success: true, ran: false, errors, warnings }; // Can't determine test framework
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const result = execSync(testCommand, {
|
|
200
|
+
cwd: dir,
|
|
201
|
+
encoding: 'utf-8',
|
|
202
|
+
stdio: 'pipe',
|
|
203
|
+
timeout: 30000, // 30 second timeout
|
|
204
|
+
});
|
|
205
|
+
// Check if tests passed (look for "PASS" or "✓" in output)
|
|
206
|
+
const passed = result.includes('PASS') ||
|
|
207
|
+
result.includes('✓') ||
|
|
208
|
+
(result.includes('passed') && !result.includes('failed'));
|
|
209
|
+
if (!passed) {
|
|
210
|
+
errors.push('Tests failed');
|
|
211
|
+
errors.push(result);
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
success: passed,
|
|
215
|
+
ran: true,
|
|
216
|
+
errors,
|
|
217
|
+
warnings,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
const output = error.stdout || error.stderr || error.message || '';
|
|
222
|
+
errors.push(`Test execution failed: ${output}`);
|
|
223
|
+
return { success: false, ran: true, errors, warnings };
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
warnings.push(`Could not verify tests: ${error instanceof Error ? error.message : String(error)}`);
|
|
228
|
+
return { success: true, ran: false, errors, warnings }; // Don't fail if we can't run tests
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Find test files for a given file
|
|
233
|
+
*/
|
|
234
|
+
function findTestFiles(filepath) {
|
|
235
|
+
const dir = dirname(filepath);
|
|
236
|
+
const basename = filepath.split('/').pop()?.replace(/\.[^.]+$/, '') || '';
|
|
237
|
+
const testPatterns = [
|
|
238
|
+
`${basename}.test.ts`,
|
|
239
|
+
`${basename}.test.js`,
|
|
240
|
+
`${basename}.spec.ts`,
|
|
241
|
+
`${basename}.spec.js`,
|
|
242
|
+
`__tests__/${basename}.ts`,
|
|
243
|
+
`__tests__/${basename}.js`,
|
|
244
|
+
];
|
|
245
|
+
const testFiles = [];
|
|
246
|
+
for (const pattern of testPatterns) {
|
|
247
|
+
const testPath = join(dir, pattern);
|
|
248
|
+
if (existsSync(testPath)) {
|
|
249
|
+
testFiles.push(testPath);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return testFiles;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Verify requirements are met
|
|
256
|
+
*/
|
|
257
|
+
async function verifyRequirements(context) {
|
|
258
|
+
const errors = [];
|
|
259
|
+
const warnings = [];
|
|
260
|
+
if (!context.requirements || context.requirements.length === 0) {
|
|
261
|
+
return { success: true, errors, warnings };
|
|
262
|
+
}
|
|
263
|
+
const content = context.modifiedContent.toLowerCase();
|
|
264
|
+
for (const requirement of context.requirements) {
|
|
265
|
+
const reqLower = requirement.toLowerCase();
|
|
266
|
+
// Simple keyword matching (can be enhanced with AI)
|
|
267
|
+
const keywords = reqLower.split(/\s+/).filter(w => w.length > 3);
|
|
268
|
+
const matches = keywords.filter(kw => content.includes(kw));
|
|
269
|
+
if (matches.length < keywords.length * 0.5) {
|
|
270
|
+
// Less than 50% of keywords found
|
|
271
|
+
warnings.push(`Requirement may not be met: ${requirement}`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return {
|
|
275
|
+
success: warnings.length === 0,
|
|
276
|
+
errors,
|
|
277
|
+
warnings,
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Rollback changes
|
|
282
|
+
*/
|
|
283
|
+
export function rollbackChanges(context) {
|
|
284
|
+
try {
|
|
285
|
+
writeFileSync(context.filepath, context.originalContent, 'utf-8');
|
|
286
|
+
}
|
|
287
|
+
catch (error) {
|
|
288
|
+
throw new Error(`Failed to rollback: ${error instanceof Error ? error.message : String(error)}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Apply changes with verification and rollback on failure
|
|
293
|
+
*/
|
|
294
|
+
export async function applyWithVerification(filepath, diff, instruction, requirements) {
|
|
295
|
+
// Read original content
|
|
296
|
+
const originalContent = readFileSync(filepath, 'utf-8');
|
|
297
|
+
// Apply diff
|
|
298
|
+
const modifiedContent = applyUnifiedDiff(originalContent, diff);
|
|
299
|
+
// Create context
|
|
300
|
+
const context = {
|
|
301
|
+
filepath,
|
|
302
|
+
originalContent,
|
|
303
|
+
modifiedContent,
|
|
304
|
+
diff,
|
|
305
|
+
instruction,
|
|
306
|
+
requirements,
|
|
307
|
+
};
|
|
308
|
+
// Write modified content temporarily
|
|
309
|
+
writeFileSync(filepath, modifiedContent, 'utf-8');
|
|
310
|
+
try {
|
|
311
|
+
// Verify
|
|
312
|
+
const result = await verifyTask(context);
|
|
313
|
+
if (!result.success || result.rollbackRequired) {
|
|
314
|
+
// Rollback
|
|
315
|
+
rollbackChanges(context);
|
|
316
|
+
return {
|
|
317
|
+
success: false,
|
|
318
|
+
verified: false,
|
|
319
|
+
result,
|
|
320
|
+
rolledBack: true,
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
return {
|
|
324
|
+
success: true,
|
|
325
|
+
verified: true,
|
|
326
|
+
result,
|
|
327
|
+
rolledBack: false,
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
// Rollback on error
|
|
332
|
+
rollbackChanges(context);
|
|
333
|
+
throw error;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=task-verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-verification.js","sourceRoot":"","sources":["../src/task-verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_cohere.d.ts","sourceRoot":"","sources":["../src/test_cohere.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { config } from 'dotenv';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import { CohereClient } from 'cohere-ai';
|
|
5
|
+
// Load environment variables
|
|
6
|
+
try {
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = dirname(__filename);
|
|
9
|
+
const agentDir = join(__dirname, '..');
|
|
10
|
+
config({ path: join(agentDir, '.env') });
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
// Fallback to current directory
|
|
14
|
+
}
|
|
15
|
+
config(); // Also try current directory
|
|
16
|
+
async function testCohere() {
|
|
17
|
+
const apiKey = process.env.COHERE_API_KEY;
|
|
18
|
+
if (!apiKey) {
|
|
19
|
+
console.error('❌ COHERE_API_KEY not found in environment');
|
|
20
|
+
console.error('Please create .env file with: COHERE_API_KEY=your_key');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
console.log('✓ COHERE_API_KEY found');
|
|
24
|
+
console.log('Testing Cohere connectivity...\n');
|
|
25
|
+
const cohere = new CohereClient({
|
|
26
|
+
token: apiKey,
|
|
27
|
+
});
|
|
28
|
+
try {
|
|
29
|
+
console.log('Calling cohere.embed(["hello world"])...');
|
|
30
|
+
const response = await cohere.embed({
|
|
31
|
+
texts: ['hello world'],
|
|
32
|
+
model: 'embed-english-v3.0',
|
|
33
|
+
inputType: 'search_document',
|
|
34
|
+
});
|
|
35
|
+
const embeddings = Array.isArray(response.embeddings)
|
|
36
|
+
? response.embeddings
|
|
37
|
+
: response.embeddings.embeddings || [];
|
|
38
|
+
const embedding = embeddings[0];
|
|
39
|
+
if (!embedding) {
|
|
40
|
+
console.error('❌ No embedding returned');
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
console.log('✓ Embedding successful!');
|
|
44
|
+
console.log(` Shape: [${embedding.length}]`);
|
|
45
|
+
console.log(` First 5 values: [${embedding.slice(0, 5).join(', ')}...]`);
|
|
46
|
+
console.log(` Min: ${Math.min(...embedding).toFixed(4)}`);
|
|
47
|
+
console.log(` Max: ${Math.max(...embedding).toFixed(4)}`);
|
|
48
|
+
console.log(` Mean: ${(embedding.reduce((a, b) => a + b, 0) / embedding.length).toFixed(4)}`);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error('❌ Cohere API error:');
|
|
52
|
+
if (error instanceof Error) {
|
|
53
|
+
console.error(` ${error.message}`);
|
|
54
|
+
if ('status' in error) {
|
|
55
|
+
console.error(` Status: ${error.status}`);
|
|
56
|
+
}
|
|
57
|
+
if ('body' in error) {
|
|
58
|
+
console.error(` Body: ${JSON.stringify(error.body, null, 2)}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.error(` ${String(error)}`);
|
|
63
|
+
}
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
testCohere();
|
|
68
|
+
//# sourceMappingURL=test_cohere.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_cohere.js","sourceRoot":"","sources":["../src/test_cohere.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_env.d.ts","sourceRoot":"","sources":["../src/test_env.ts"],"names":[],"mappings":""}
|
package/dist/test_env.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { config } from 'dotenv';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
// Load environment variables
|
|
5
|
+
try {
|
|
6
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
+
const __dirname = dirname(__filename);
|
|
8
|
+
const agentDir = join(__dirname, '..');
|
|
9
|
+
config({ path: join(agentDir, '.env') });
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
// Fallback to current directory
|
|
13
|
+
}
|
|
14
|
+
config(); // Also try current directory
|
|
15
|
+
console.log('Environment check:');
|
|
16
|
+
console.log('COHERE_API_KEY exists:', !!process.env.COHERE_API_KEY);
|
|
17
|
+
console.log('COHERE_API_KEY length:', process.env.COHERE_API_KEY?.length || 0);
|
|
18
|
+
if (process.env.COHERE_API_KEY) {
|
|
19
|
+
console.log('COHERE_API_KEY prefix:', process.env.COHERE_API_KEY.substring(0, 10) + '...');
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.log('⚠️ COHERE_API_KEY not found! Please create .env file with COHERE_API_KEY=your_key');
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=test_env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_env.js","sourceRoot":"","sources":["../src/test_env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,6BAA6B;AAC7B,IAAI,CAAC;IACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAAC,MAAM,CAAC;IACP,gCAAgC;AAClC,CAAC;AACD,MAAM,EAAE,CAAC,CAAC,6BAA6B;AAEvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAClC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpE,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;AAC/E,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;AAC7F,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AACpG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_retrieval.d.ts","sourceRoot":"","sources":["../src/test_retrieval.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import initSqlJs from 'sql.js';
|
|
2
|
+
import { readFileSync, existsSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { searchSimilar } from './search.js';
|
|
5
|
+
const DB_PATH = join(process.cwd(), 'agent', 'data', 'embeddings.sqlite');
|
|
6
|
+
async function testRetrieval() {
|
|
7
|
+
console.log('Testing retrieval system...\n');
|
|
8
|
+
// Test 1: Verify database structure
|
|
9
|
+
if (!existsSync(DB_PATH)) {
|
|
10
|
+
console.error('❌ Database file not found');
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
const SQL = await initSqlJs();
|
|
14
|
+
const buffer = readFileSync(DB_PATH);
|
|
15
|
+
const db = new SQL.Database(buffer);
|
|
16
|
+
// Count chunks
|
|
17
|
+
const countStmt = db.prepare('SELECT COUNT(*) as count FROM embeddings');
|
|
18
|
+
countStmt.step();
|
|
19
|
+
const totalChunks = countStmt.getAsObject().count;
|
|
20
|
+
countStmt.free();
|
|
21
|
+
// Count files
|
|
22
|
+
const filesStmt = db.prepare('SELECT COUNT(DISTINCT filepath) as count FROM embeddings');
|
|
23
|
+
filesStmt.step();
|
|
24
|
+
const totalFiles = filesStmt.getAsObject().count;
|
|
25
|
+
filesStmt.free();
|
|
26
|
+
// Check embedding vector consistency
|
|
27
|
+
const sampleStmt = db.prepare('SELECT embedding FROM embeddings LIMIT 10');
|
|
28
|
+
let validEmbeddings = 0;
|
|
29
|
+
let invalidEmbeddings = 0;
|
|
30
|
+
const embeddingLengths = [];
|
|
31
|
+
while (sampleStmt.step()) {
|
|
32
|
+
const row = sampleStmt.getAsObject();
|
|
33
|
+
try {
|
|
34
|
+
const embedding = JSON.parse(row.embedding);
|
|
35
|
+
if (Array.isArray(embedding) && embedding.length > 0) {
|
|
36
|
+
validEmbeddings++;
|
|
37
|
+
embeddingLengths.push(embedding.length);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
invalidEmbeddings++;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
invalidEmbeddings++;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
sampleStmt.free();
|
|
48
|
+
db.close();
|
|
49
|
+
console.log('Database Verification:');
|
|
50
|
+
console.log(` ✓ Total chunks: ${totalChunks}`);
|
|
51
|
+
console.log(` ✓ Total files: ${totalFiles}`);
|
|
52
|
+
console.log(` ✓ Valid embeddings: ${validEmbeddings}/10 samples`);
|
|
53
|
+
console.log(` ✓ Invalid embeddings: ${invalidEmbeddings}`);
|
|
54
|
+
if (embeddingLengths.length > 0) {
|
|
55
|
+
const uniqueLengths = [...new Set(embeddingLengths)];
|
|
56
|
+
console.log(` ✓ Embedding vector lengths: ${uniqueLengths.join(', ')}`);
|
|
57
|
+
}
|
|
58
|
+
// Test 2: Test retrieval
|
|
59
|
+
console.log('\nTesting retrieval...');
|
|
60
|
+
try {
|
|
61
|
+
const results = await searchSimilar('test function', 5);
|
|
62
|
+
console.log(` ✓ Retrieved ${results.length} chunks`);
|
|
63
|
+
if (results.length === 0) {
|
|
64
|
+
console.error(' ❌ No chunks retrieved!');
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
console.log(' ✓ Chunks retrieved:');
|
|
68
|
+
results.forEach((r, i) => {
|
|
69
|
+
console.log(` ${i + 1}. ${r.filepath} (score: ${r.score.toFixed(4)})`);
|
|
70
|
+
});
|
|
71
|
+
// Verify all chunks have content
|
|
72
|
+
const hasContent = results.every(r => r.content && r.content.length > 0);
|
|
73
|
+
const hasFilepath = results.every(r => r.filepath && r.filepath.length > 0);
|
|
74
|
+
console.log(` ✓ All chunks have content: ${hasContent}`);
|
|
75
|
+
console.log(` ✓ All chunks have filepath: ${hasFilepath}`);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error(' ❌ Retrieval failed:', error);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
console.log('\n✅ All retrieval tests passed!');
|
|
82
|
+
}
|
|
83
|
+
testRetrieval();
|
|
84
|
+
//# sourceMappingURL=test_retrieval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_retrieval.js","sourceRoot":"","sources":["../src/test_retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Generation System
|
|
3
|
+
* Generate comprehensive tests for code
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Generate tests for a file
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateTests(filepath: string, options?: {
|
|
9
|
+
framework?: string;
|
|
10
|
+
coverage?: 'unit' | 'integration' | 'both';
|
|
11
|
+
}): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Generate test file path
|
|
14
|
+
*/
|
|
15
|
+
export declare function getTestFilePath(filepath: string, framework?: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Save generated tests to file
|
|
18
|
+
*/
|
|
19
|
+
export declare function saveTests(filepath: string, testContent: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Improve existing tests
|
|
22
|
+
*/
|
|
23
|
+
export declare function improveTests(testFilepath: string): Promise<string>;
|
|
24
|
+
//# sourceMappingURL=testgen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testgen.d.ts","sourceRoot":"","sources":["../src/testgen.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;CACvC,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDvB;AAmCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAc5E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAUrE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwDxE"}
|