wiggum-cli 0.3.2 → 0.4.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.
- package/README.md +6 -4
- package/dist/ai/agents/codebase-analyst.d.ts +3 -0
- package/dist/ai/agents/codebase-analyst.d.ts.map +1 -1
- package/dist/ai/agents/codebase-analyst.js +3 -0
- package/dist/ai/agents/codebase-analyst.js.map +1 -1
- package/dist/ai/agents/context-enricher.d.ts +11 -0
- package/dist/ai/agents/context-enricher.d.ts.map +1 -0
- package/dist/ai/agents/context-enricher.js +163 -0
- package/dist/ai/agents/context-enricher.js.map +1 -0
- package/dist/ai/agents/evaluator-optimizer.d.ts +13 -0
- package/dist/ai/agents/evaluator-optimizer.d.ts.map +1 -0
- package/dist/ai/agents/evaluator-optimizer.js +231 -0
- package/dist/ai/agents/evaluator-optimizer.js.map +1 -0
- package/dist/ai/agents/index.d.ts +21 -3
- package/dist/ai/agents/index.d.ts.map +1 -1
- package/dist/ai/agents/index.js +148 -86
- package/dist/ai/agents/index.js.map +1 -1
- package/dist/ai/agents/mcp-detector.d.ts +26 -0
- package/dist/ai/agents/mcp-detector.d.ts.map +1 -0
- package/dist/ai/agents/mcp-detector.js +186 -0
- package/dist/ai/agents/mcp-detector.js.map +1 -0
- package/dist/ai/agents/orchestrator.d.ts +3 -0
- package/dist/ai/agents/orchestrator.d.ts.map +1 -1
- package/dist/ai/agents/orchestrator.js +3 -0
- package/dist/ai/agents/orchestrator.js.map +1 -1
- package/dist/ai/agents/planning-orchestrator.d.ts +12 -0
- package/dist/ai/agents/planning-orchestrator.d.ts.map +1 -0
- package/dist/ai/agents/planning-orchestrator.js +133 -0
- package/dist/ai/agents/planning-orchestrator.js.map +1 -0
- package/dist/ai/agents/stack-researcher.d.ts +3 -0
- package/dist/ai/agents/stack-researcher.d.ts.map +1 -1
- package/dist/ai/agents/stack-researcher.js +3 -0
- package/dist/ai/agents/stack-researcher.js.map +1 -1
- package/dist/ai/agents/stack-utils.d.ts +11 -0
- package/dist/ai/agents/stack-utils.d.ts.map +1 -0
- package/dist/ai/agents/stack-utils.js +27 -0
- package/dist/ai/agents/stack-utils.js.map +1 -0
- package/dist/ai/agents/synthesis-agent.d.ts +11 -0
- package/dist/ai/agents/synthesis-agent.d.ts.map +1 -0
- package/dist/ai/agents/synthesis-agent.js +202 -0
- package/dist/ai/agents/synthesis-agent.js.map +1 -0
- package/dist/ai/agents/tech-researcher.d.ts +16 -0
- package/dist/ai/agents/tech-researcher.d.ts.map +1 -0
- package/dist/ai/agents/tech-researcher.js +208 -0
- package/dist/ai/agents/tech-researcher.js.map +1 -0
- package/dist/ai/agents/types.d.ts +127 -0
- package/dist/ai/agents/types.d.ts.map +1 -1
- package/dist/ai/agents/types.js +6 -0
- package/dist/ai/agents/types.js.map +1 -1
- package/dist/ai/enhancer.d.ts +4 -0
- package/dist/ai/enhancer.d.ts.map +1 -1
- package/dist/ai/enhancer.js +3 -0
- package/dist/ai/enhancer.js.map +1 -1
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +14 -2
- package/dist/ai/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +20 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/utils/tracing.d.ts +5 -0
- package/dist/utils/tracing.d.ts.map +1 -1
- package/dist/utils/tracing.js +40 -1
- package/dist/utils/tracing.js.map +1 -1
- package/package.json +5 -2
- package/src/ai/agents/codebase-analyst.ts +3 -0
- package/src/ai/agents/context-enricher.ts +189 -0
- package/src/ai/agents/evaluator-optimizer.ts +277 -0
- package/src/ai/agents/index.ts +198 -111
- package/src/ai/agents/mcp-detector.test.ts +290 -0
- package/src/ai/agents/mcp-detector.ts +210 -0
- package/src/ai/agents/orchestrator.ts +3 -0
- package/src/ai/agents/planning-orchestrator.ts +140 -0
- package/src/ai/agents/stack-researcher.ts +3 -0
- package/src/ai/agents/stack-utils.ts +34 -0
- package/src/ai/agents/synthesis-agent.ts +240 -0
- package/src/ai/agents/tech-researcher.ts +262 -0
- package/src/ai/agents/types.ts +160 -0
- package/src/ai/enhancer.ts +6 -1
- package/src/ai/index.ts +26 -5
- package/src/commands/init.ts +20 -4
- package/src/utils/tracing.ts +44 -1
- package/tsconfig.json +1 -1
- package/vitest.config.ts +7 -0
package/dist/commands/init.js
CHANGED
|
@@ -12,6 +12,7 @@ import pc from 'picocolors';
|
|
|
12
12
|
import fs from 'fs';
|
|
13
13
|
import path from 'path';
|
|
14
14
|
import { simpson } from '../utils/colors.js';
|
|
15
|
+
import { flushTracing } from '../utils/tracing.js';
|
|
15
16
|
/**
|
|
16
17
|
* Save API keys to .env.local file
|
|
17
18
|
*/
|
|
@@ -71,8 +72,8 @@ async function collectApiKeys(projectRoot, options) {
|
|
|
71
72
|
const providerChoice = await prompts.select({
|
|
72
73
|
message: 'Select your AI provider:',
|
|
73
74
|
options: [
|
|
74
|
-
{ value: 'anthropic', label: 'Anthropic
|
|
75
|
-
{ value: 'openai', label: 'OpenAI
|
|
75
|
+
{ value: 'anthropic', label: 'Anthropic', hint: 'recommended' },
|
|
76
|
+
{ value: 'openai', label: 'OpenAI' },
|
|
76
77
|
{ value: 'openrouter', label: 'OpenRouter', hint: 'multiple providers' },
|
|
77
78
|
],
|
|
78
79
|
});
|
|
@@ -202,6 +203,7 @@ export async function initCommand(options) {
|
|
|
202
203
|
if (!apiKeys) {
|
|
203
204
|
// In --yes mode, null means missing API key (hard failure)
|
|
204
205
|
// In interactive mode, null means user cancelled
|
|
206
|
+
await flushTracing();
|
|
205
207
|
if (options.yes) {
|
|
206
208
|
process.exit(1);
|
|
207
209
|
}
|
|
@@ -220,6 +222,7 @@ export async function initCommand(options) {
|
|
|
220
222
|
catch (error) {
|
|
221
223
|
spinner.stop('Scan failed');
|
|
222
224
|
logger.error(`Failed to scan project: ${error instanceof Error ? error.message : String(error)}`);
|
|
225
|
+
await flushTracing();
|
|
223
226
|
process.exit(1);
|
|
224
227
|
}
|
|
225
228
|
// Step 3: Run multi-agent AI analysis
|
|
@@ -234,14 +237,23 @@ export async function initCommand(options) {
|
|
|
234
237
|
console.log(simpson.yellow(`─── AI Analysis (${apiKeys.provider} / ${modelLabel}) ───`));
|
|
235
238
|
console.log(pc.dim(`Capabilities: ${capabilities.join(' • ')}`));
|
|
236
239
|
console.log('');
|
|
237
|
-
spinner.start('
|
|
240
|
+
spinner.start('Starting AI analysis...');
|
|
238
241
|
const aiEnhancer = new AIEnhancer({
|
|
239
242
|
provider: apiKeys.provider,
|
|
240
243
|
model: apiKeys.model,
|
|
241
|
-
verbose:
|
|
244
|
+
verbose: false, // Disable verbose logging when using progress callback
|
|
242
245
|
agentic: true, // Always use agentic mode for deeper analysis
|
|
243
246
|
tavilyApiKey: apiKeys.tavilyKey,
|
|
244
247
|
context7ApiKey: apiKeys.context7Key,
|
|
248
|
+
onProgress: (phase, detail) => {
|
|
249
|
+
// Update spinner with current phase
|
|
250
|
+
if (detail) {
|
|
251
|
+
spinner.message(`${phase} - ${detail}`);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
spinner.message(phase);
|
|
255
|
+
}
|
|
256
|
+
},
|
|
245
257
|
});
|
|
246
258
|
let enhancedResult;
|
|
247
259
|
try {
|
|
@@ -273,6 +285,7 @@ export async function initCommand(options) {
|
|
|
273
285
|
initialValue: true,
|
|
274
286
|
});
|
|
275
287
|
if (prompts.isCancel(shouldContinue) || !shouldContinue) {
|
|
288
|
+
await flushTracing();
|
|
276
289
|
logger.info('Initialization cancelled');
|
|
277
290
|
return;
|
|
278
291
|
}
|
|
@@ -291,6 +304,8 @@ export async function initCommand(options) {
|
|
|
291
304
|
console.log('');
|
|
292
305
|
console.log(simpson.yellow('─── Generation Results ───'));
|
|
293
306
|
console.log(formatGenerationResult(generationResult));
|
|
307
|
+
// Flush tracing spans before completing
|
|
308
|
+
await flushTracing();
|
|
294
309
|
if (generationResult.success) {
|
|
295
310
|
console.log('');
|
|
296
311
|
logger.success('Ralph initialized successfully!');
|
|
@@ -308,6 +323,7 @@ export async function initCommand(options) {
|
|
|
308
323
|
catch (error) {
|
|
309
324
|
spinner.stop('Generation failed');
|
|
310
325
|
logger.error(`Failed to generate files: ${error instanceof Error ? error.message : String(error)}`);
|
|
326
|
+
await flushTracing();
|
|
311
327
|
process.exit(1);
|
|
312
328
|
}
|
|
313
329
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/tracing.d.ts
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
import * as ai from 'ai';
|
|
6
6
|
export { traced, currentSpan, wrapTraced } from 'braintrust';
|
|
7
7
|
export declare function initTracing(): void;
|
|
8
|
+
/**
|
|
9
|
+
* Flush all pending tracing spans to Braintrust
|
|
10
|
+
* Call this before process exit to ensure all spans are recorded
|
|
11
|
+
*/
|
|
12
|
+
export declare function flushTracing(): Promise<void>;
|
|
8
13
|
/**
|
|
9
14
|
* Check if tracing is enabled
|
|
10
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQ7D,wBAAgB,WAAW,IAAI,IAAI,CAqBlC;AA2BD;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAQlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;GAGG;AACH,wBAAgB,WAAW,cAS1B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACnE,EAAE,EAAE,CAAC,EACL,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,CAAC,CAUH"}
|
package/dist/utils/tracing.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Braintrust Tracing Utility
|
|
3
3
|
* Provides AI call tracing for debugging and analysis
|
|
4
4
|
*/
|
|
5
|
-
import { initLogger, wrapAISDK } from 'braintrust';
|
|
5
|
+
import { initLogger, wrapAISDK, flush as braintrustFlush } from 'braintrust';
|
|
6
6
|
import * as ai from 'ai';
|
|
7
7
|
// Re-export traced utilities
|
|
8
8
|
export { traced, currentSpan, wrapTraced } from 'braintrust';
|
|
@@ -10,6 +10,7 @@ export { traced, currentSpan, wrapTraced } from 'braintrust';
|
|
|
10
10
|
* Initialize Braintrust logger if API key is available
|
|
11
11
|
*/
|
|
12
12
|
let loggerInitialized = false;
|
|
13
|
+
let exitHandlersRegistered = false;
|
|
13
14
|
export function initTracing() {
|
|
14
15
|
if (loggerInitialized)
|
|
15
16
|
return;
|
|
@@ -24,11 +25,49 @@ export function initTracing() {
|
|
|
24
25
|
projectName: process.env.BRAINTRUST_PROJECT_NAME || 'wiggum-cli',
|
|
25
26
|
});
|
|
26
27
|
loggerInitialized = true;
|
|
28
|
+
// Register exit handlers to flush spans before process exits
|
|
29
|
+
registerExitHandlers();
|
|
27
30
|
}
|
|
28
31
|
catch {
|
|
29
32
|
// Silently fail if tracing can't be initialized
|
|
30
33
|
}
|
|
31
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Register process exit handlers to flush tracing spans
|
|
37
|
+
*/
|
|
38
|
+
function registerExitHandlers() {
|
|
39
|
+
if (exitHandlersRegistered)
|
|
40
|
+
return;
|
|
41
|
+
exitHandlersRegistered = true;
|
|
42
|
+
// Flush on normal exit
|
|
43
|
+
process.on('beforeExit', async () => {
|
|
44
|
+
await flushTracing();
|
|
45
|
+
});
|
|
46
|
+
// Flush on SIGINT (Ctrl+C)
|
|
47
|
+
process.on('SIGINT', async () => {
|
|
48
|
+
await flushTracing();
|
|
49
|
+
process.exit(0);
|
|
50
|
+
});
|
|
51
|
+
// Flush on SIGTERM
|
|
52
|
+
process.on('SIGTERM', async () => {
|
|
53
|
+
await flushTracing();
|
|
54
|
+
process.exit(0);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Flush all pending tracing spans to Braintrust
|
|
59
|
+
* Call this before process exit to ensure all spans are recorded
|
|
60
|
+
*/
|
|
61
|
+
export async function flushTracing() {
|
|
62
|
+
if (!loggerInitialized)
|
|
63
|
+
return;
|
|
64
|
+
try {
|
|
65
|
+
await braintrustFlush();
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Silently fail if flush fails
|
|
69
|
+
}
|
|
70
|
+
}
|
|
32
71
|
/**
|
|
33
72
|
* Check if tracing is enabled
|
|
34
73
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,6BAA6B;AAC7B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,IAAI,sBAAsB,GAAG,KAAK,CAAC;AAEnC,MAAM,UAAU,WAAW;IACzB,IAAI,iBAAiB;QAAE,OAAO;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,sCAAsC;QACtC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,UAAU,CAAC;YACT,MAAM;YACN,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,YAAY;SACjE,CAAC,CAAC;QACH,iBAAiB,GAAG,IAAI,CAAC;QAEzB,6DAA6D;QAC7D,oBAAoB,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,IAAI,sBAAsB;QAAE,OAAO;IACnC,sBAAsB,GAAG,IAAI,CAAC;IAE9B,uBAAuB;IACvB,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,iBAAiB;QAAE,OAAO;IAE/B,IAAI,CAAC;QACH,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,WAAW,EAAE,CAAC;IAEd,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,0DAA0D;IAC1D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,EAAK,EACL,UAA4C,EAAE;IAE9C,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,EAAE,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,WAAW;KAC7C,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wiggum-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "AI-powered feature development loop CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
"copy-templates": "cp -r src/templates dist/",
|
|
13
13
|
"dev": "tsc --watch",
|
|
14
14
|
"start": "node bin/ralph.js",
|
|
15
|
+
"test": "vitest run",
|
|
16
|
+
"test:watch": "vitest",
|
|
15
17
|
"prepublishOnly": "npm run build"
|
|
16
18
|
},
|
|
17
19
|
"keywords": [
|
|
@@ -39,7 +41,8 @@
|
|
|
39
41
|
},
|
|
40
42
|
"devDependencies": {
|
|
41
43
|
"@types/node": "^20.10.0",
|
|
42
|
-
"typescript": "^5.3.0"
|
|
44
|
+
"typescript": "^5.3.0",
|
|
45
|
+
"vitest": "^4.0.17"
|
|
43
46
|
},
|
|
44
47
|
"engines": {
|
|
45
48
|
"node": ">=18.0.0"
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Codebase Analyst Agent
|
|
3
3
|
* Explores the codebase to understand its structure and patterns
|
|
4
|
+
*
|
|
5
|
+
* @deprecated Use runContextEnricher from context-enricher.ts instead.
|
|
6
|
+
* This agent is kept for backward compatibility.
|
|
4
7
|
*/
|
|
5
8
|
|
|
6
9
|
import { stepCountIs, type LanguageModel } from 'ai';
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Enricher Worker (Phase 2)
|
|
3
|
+
* Explores the codebase to gather enriched context based on the analysis plan
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { stepCountIs, type LanguageModel } from 'ai';
|
|
7
|
+
import type { ContextEnricherInput, EnrichedContext } from './types.js';
|
|
8
|
+
import { createExplorationTools } from '../tools.js';
|
|
9
|
+
import { isReasoningModel } from '../providers.js';
|
|
10
|
+
import { logger } from '../../utils/logger.js';
|
|
11
|
+
import { parseJsonSafe } from '../../utils/json-repair.js';
|
|
12
|
+
import { getTracedAI } from '../../utils/tracing.js';
|
|
13
|
+
import { detectProjectType } from './stack-utils.js';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* System prompt for the Context Enricher worker
|
|
17
|
+
*/
|
|
18
|
+
const CONTEXT_ENRICHER_SYSTEM_PROMPT = `You are a Context Enricher worker. Your job is to explore specific areas of a codebase and answer specific questions.
|
|
19
|
+
|
|
20
|
+
## Your Mission
|
|
21
|
+
Based on the analysis plan, explore the codebase to:
|
|
22
|
+
1. Identify entry points and key files
|
|
23
|
+
2. Understand directory structure and purposes
|
|
24
|
+
3. Detect naming conventions
|
|
25
|
+
4. Find available commands (from package.json)
|
|
26
|
+
5. Answer the specific questions provided
|
|
27
|
+
|
|
28
|
+
## Tools Available
|
|
29
|
+
- searchCode: Search using ripgrep patterns
|
|
30
|
+
- readFile: Read file contents
|
|
31
|
+
- listDirectory: List directory structure
|
|
32
|
+
- getPackageInfo: Get package.json info
|
|
33
|
+
|
|
34
|
+
## Exploration Strategy
|
|
35
|
+
1. List the areas specified in the plan
|
|
36
|
+
2. Read package.json to understand scripts and dependencies
|
|
37
|
+
3. Search for patterns to answer the specific questions
|
|
38
|
+
4. Identify the project type based on structure
|
|
39
|
+
|
|
40
|
+
## Project Types
|
|
41
|
+
- MCP Server: Has @modelcontextprotocol dependencies
|
|
42
|
+
- REST API: Express/Fastify/Hono with route handlers
|
|
43
|
+
- React SPA: React with components, no server-side rendering
|
|
44
|
+
- Next.js App: Next.js with app or pages directory
|
|
45
|
+
- CLI Tool: Has bin entry in package.json
|
|
46
|
+
- Library: Published package without app entry
|
|
47
|
+
|
|
48
|
+
## Output Format
|
|
49
|
+
After exploration, output ONLY valid JSON:
|
|
50
|
+
{
|
|
51
|
+
"entryPoints": ["src/index.ts"],
|
|
52
|
+
"keyDirectories": {"src/routes": "API routes", "src/components": "UI components"},
|
|
53
|
+
"namingConventions": "camelCase files, PascalCase components",
|
|
54
|
+
"commands": {"test": "npm test", "build": "npm run build"},
|
|
55
|
+
"answeredQuestions": {"What is the auth strategy?": "NextAuth with JWT"},
|
|
56
|
+
"projectType": "Next.js App"
|
|
57
|
+
}`;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Run the Context Enricher worker
|
|
61
|
+
*/
|
|
62
|
+
export async function runContextEnricher(
|
|
63
|
+
model: LanguageModel,
|
|
64
|
+
modelId: string,
|
|
65
|
+
input: ContextEnricherInput,
|
|
66
|
+
verbose: boolean = false
|
|
67
|
+
): Promise<EnrichedContext> {
|
|
68
|
+
const tools = createExplorationTools(input.scanResult.projectRoot);
|
|
69
|
+
|
|
70
|
+
const prompt = `Explore this codebase and gather enriched context.
|
|
71
|
+
|
|
72
|
+
Project: ${input.scanResult.projectRoot}
|
|
73
|
+
|
|
74
|
+
## Areas to Explore
|
|
75
|
+
${input.areasToExplore.map(a => `- ${a}`).join('\n')}
|
|
76
|
+
|
|
77
|
+
## Questions to Answer
|
|
78
|
+
${input.questionsToAnswer.map(q => `- ${q}`).join('\n')}
|
|
79
|
+
|
|
80
|
+
Start by exploring the specified areas, then answer the questions and produce your analysis as JSON.`;
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
const { generateText } = getTracedAI();
|
|
84
|
+
|
|
85
|
+
const result = await generateText({
|
|
86
|
+
model,
|
|
87
|
+
system: CONTEXT_ENRICHER_SYSTEM_PROMPT,
|
|
88
|
+
prompt,
|
|
89
|
+
tools,
|
|
90
|
+
stopWhen: stepCountIs(5),
|
|
91
|
+
maxOutputTokens: 3000,
|
|
92
|
+
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
93
|
+
experimental_telemetry: {
|
|
94
|
+
isEnabled: true,
|
|
95
|
+
metadata: {
|
|
96
|
+
agent: 'context-enricher',
|
|
97
|
+
projectRoot: input.scanResult.projectRoot,
|
|
98
|
+
areasCount: input.areasToExplore.length,
|
|
99
|
+
questionsCount: input.questionsToAnswer.length,
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// Parse the response
|
|
105
|
+
const context = parseEnrichedContext(result.text, result.steps, verbose);
|
|
106
|
+
|
|
107
|
+
if (verbose) {
|
|
108
|
+
logger.info(`Context Enricher: Found ${context.entryPoints.length} entry points, answered ${Object.keys(context.answeredQuestions).length} questions`);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return context;
|
|
112
|
+
} catch (error) {
|
|
113
|
+
if (verbose) {
|
|
114
|
+
logger.error(`Context Enricher error: ${error instanceof Error ? error.message : String(error)}`);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return getDefaultEnrichedContext(input);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Parse the enriched context from agent response
|
|
123
|
+
*/
|
|
124
|
+
function parseEnrichedContext(
|
|
125
|
+
text: string,
|
|
126
|
+
steps: Array<{ text?: string }> | undefined,
|
|
127
|
+
verbose: boolean
|
|
128
|
+
): EnrichedContext {
|
|
129
|
+
// Try to get text from the result or steps
|
|
130
|
+
let textToParse = text;
|
|
131
|
+
|
|
132
|
+
if (!textToParse || textToParse.trim() === '') {
|
|
133
|
+
const stepsList = steps || [];
|
|
134
|
+
for (let i = stepsList.length - 1; i >= 0; i--) {
|
|
135
|
+
const step = stepsList[i];
|
|
136
|
+
if (step.text && step.text.trim() !== '') {
|
|
137
|
+
textToParse = step.text;
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (!textToParse || textToParse.trim() === '') {
|
|
144
|
+
if (verbose) {
|
|
145
|
+
logger.warn('Context Enricher: No text output found');
|
|
146
|
+
}
|
|
147
|
+
return getDefaultEnrichedContext();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Use safe JSON parser with repair capabilities
|
|
151
|
+
const parsed = parseJsonSafe<Partial<EnrichedContext>>(textToParse);
|
|
152
|
+
|
|
153
|
+
if (!parsed) {
|
|
154
|
+
if (verbose) {
|
|
155
|
+
logger.warn('Context Enricher: Failed to parse JSON response');
|
|
156
|
+
}
|
|
157
|
+
return getDefaultEnrichedContext();
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Build result with defaults for missing fields
|
|
161
|
+
return {
|
|
162
|
+
entryPoints: parsed.entryPoints || ['src/index.ts'],
|
|
163
|
+
keyDirectories: parsed.keyDirectories || { src: 'Source code' },
|
|
164
|
+
namingConventions: parsed.namingConventions || 'camelCase',
|
|
165
|
+
commands: parsed.commands || { build: 'npm run build' },
|
|
166
|
+
answeredQuestions: parsed.answeredQuestions || {},
|
|
167
|
+
projectType: parsed.projectType || 'Unknown',
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Get default enriched context when parsing fails
|
|
173
|
+
*/
|
|
174
|
+
function getDefaultEnrichedContext(input?: ContextEnricherInput): EnrichedContext {
|
|
175
|
+
const projectType = detectProjectType(input?.scanResult.stack);
|
|
176
|
+
|
|
177
|
+
return {
|
|
178
|
+
entryPoints: ['src/index.ts'],
|
|
179
|
+
keyDirectories: { src: 'Source code' },
|
|
180
|
+
namingConventions: 'camelCase',
|
|
181
|
+
commands: {
|
|
182
|
+
test: 'npm test',
|
|
183
|
+
build: 'npm run build',
|
|
184
|
+
dev: 'npm run dev',
|
|
185
|
+
},
|
|
186
|
+
answeredQuestions: {},
|
|
187
|
+
projectType,
|
|
188
|
+
};
|
|
189
|
+
}
|