wiggum-cli 0.4.0 → 0.4.2
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/dist/ai/agents/context-enricher.d.ts.map +1 -1
- package/dist/ai/agents/context-enricher.js +37 -17
- package/dist/ai/agents/context-enricher.js.map +1 -1
- package/dist/ai/agents/evaluator-optimizer.d.ts.map +1 -1
- package/dist/ai/agents/evaluator-optimizer.js +77 -14
- package/dist/ai/agents/evaluator-optimizer.js.map +1 -1
- package/dist/ai/agents/index.d.ts +1 -1
- package/dist/ai/agents/index.d.ts.map +1 -1
- package/dist/ai/agents/index.js +25 -32
- package/dist/ai/agents/index.js.map +1 -1
- package/dist/ai/agents/mcp-detector.d.ts +6 -0
- package/dist/ai/agents/mcp-detector.d.ts.map +1 -1
- package/dist/ai/agents/mcp-detector.js +11 -4
- package/dist/ai/agents/mcp-detector.js.map +1 -1
- package/dist/ai/agents/stack-researcher.d.ts.map +1 -1
- package/dist/ai/agents/stack-researcher.js +29 -12
- package/dist/ai/agents/stack-researcher.js.map +1 -1
- package/dist/ai/agents/synthesis-agent.js +1 -1
- package/dist/ai/agents/synthesis-agent.js.map +1 -1
- package/dist/ai/agents/tech-researcher.d.ts.map +1 -1
- package/dist/ai/agents/tech-researcher.js +29 -11
- package/dist/ai/agents/tech-researcher.js.map +1 -1
- package/dist/ai/agents/types.d.ts +6 -0
- package/dist/ai/agents/types.d.ts.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 +1 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/tools/context7.d.ts +18 -24
- package/dist/ai/tools/context7.d.ts.map +1 -1
- package/dist/ai/tools/context7.js +14 -122
- package/dist/ai/tools/context7.js.map +1 -1
- package/dist/ai/tools/index.d.ts +1 -1
- package/dist/ai/tools/index.d.ts.map +1 -1
- package/dist/ai/tools/index.js +1 -1
- package/dist/ai/tools/index.js.map +1 -1
- package/dist/ai/tools/tavily.d.ts +1 -0
- package/dist/ai/tools/tavily.d.ts.map +1 -1
- package/dist/ai/tools/tavily.js +13 -8
- package/dist/ai/tools/tavily.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +11 -2
- package/dist/commands/init.js.map +1 -1
- package/package.json +2 -1
- package/src/ai/agents/context-enricher.ts +38 -18
- package/src/ai/agents/evaluator-optimizer.ts +81 -14
- package/src/ai/agents/index.ts +27 -33
- package/src/ai/agents/mcp-detector.ts +11 -4
- package/src/ai/agents/stack-researcher.ts +30 -12
- package/src/ai/agents/synthesis-agent.ts +1 -1
- package/src/ai/agents/tech-researcher.ts +30 -11
- package/src/ai/agents/types.ts +7 -0
- package/src/ai/enhancer.ts +6 -1
- package/src/ai/index.ts +1 -1
- package/src/ai/tools/context7.ts +17 -152
- package/src/ai/tools/index.ts +1 -3
- package/src/ai/tools/tavily.ts +13 -8
- package/src/commands/init.ts +10 -2
package/dist/ai/tools/index.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Exports all tools for agent use
|
|
4
4
|
*/
|
|
5
5
|
export { createTavilySearchTool, canUseTavily, } from './tavily.js';
|
|
6
|
-
export {
|
|
6
|
+
export { createContext7Tools, canUseContext7, } from './context7.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,sBAAsB,EACtB,YAAY,GAEb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,sBAAsB,EACtB,YAAY,GAEb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,cAAc,GACf,MAAM,eAAe,CAAC"}
|
|
@@ -19,6 +19,7 @@ export declare function createTavilySearchTool(apiKey: string): import("ai").Too
|
|
|
19
19
|
query: string;
|
|
20
20
|
searchDepth?: "basic" | "advanced" | undefined;
|
|
21
21
|
maxResults?: number | undefined;
|
|
22
|
+
timeRange?: "day" | "week" | "month" | "year" | undefined;
|
|
22
23
|
}, string>;
|
|
23
24
|
/**
|
|
24
25
|
* Create a function that checks if Tavily search can be performed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tavily.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/tavily.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAWD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"tavily.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/tavily.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAWD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM;;;;;WAmEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAErD"}
|
package/dist/ai/tools/tavily.js
CHANGED
|
@@ -10,20 +10,24 @@ import { z } from 'zod';
|
|
|
10
10
|
*/
|
|
11
11
|
export function createTavilySearchTool(apiKey) {
|
|
12
12
|
return tool({
|
|
13
|
-
description: `Search the web for current
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
13
|
+
description: `Search the web for current information.
|
|
14
|
+
|
|
15
|
+
USAGE TIPS:
|
|
16
|
+
- Keep queries concise and specific (not conversational)
|
|
17
|
+
- Use timeRange: "year" for recent best practices
|
|
18
|
+
- Break complex research into focused individual searches
|
|
19
|
+
- Good: "Express middleware error handling patterns"
|
|
20
|
+
- Bad: "best practices production 2024 testing documentation"`,
|
|
19
21
|
inputSchema: zodSchema(z.object({
|
|
20
|
-
query: z.string().describe('Search query - be specific
|
|
22
|
+
query: z.string().describe('Search query - be specific and concise'),
|
|
21
23
|
searchDepth: z.enum(['basic', 'advanced']).optional()
|
|
22
24
|
.describe('Search depth - use "advanced" for comprehensive results'),
|
|
23
25
|
maxResults: z.number().min(1).max(10).optional()
|
|
24
26
|
.describe('Maximum number of results (default 5)'),
|
|
27
|
+
timeRange: z.enum(['day', 'week', 'month', 'year']).optional()
|
|
28
|
+
.describe('Time filter for results. Use "year" for recent best practices'),
|
|
25
29
|
})),
|
|
26
|
-
execute: async ({ query, searchDepth, maxResults }) => {
|
|
30
|
+
execute: async ({ query, searchDepth, maxResults, timeRange }) => {
|
|
27
31
|
try {
|
|
28
32
|
const response = await fetch('https://api.tavily.com/search', {
|
|
29
33
|
method: 'POST',
|
|
@@ -35,6 +39,7 @@ Use this to find:
|
|
|
35
39
|
query,
|
|
36
40
|
search_depth: searchDepth || 'basic',
|
|
37
41
|
max_results: maxResults || 5,
|
|
42
|
+
...(timeRange && { time_range: timeRange }),
|
|
38
43
|
include_answer: true,
|
|
39
44
|
include_raw_content: false,
|
|
40
45
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tavily.js","sourceRoot":"","sources":["../../../src/ai/tools/tavily.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,OAAO,IAAI,CAAC;QACV,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"tavily.js","sourceRoot":"","sources":["../../../src/ai/tools/tavily.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,gBAAgB,CAAC;AAiBxB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAsND;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,gBAAgB,CAAC;AAiBxB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAsND;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJrE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -237,14 +237,23 @@ export async function initCommand(options) {
|
|
|
237
237
|
console.log(simpson.yellow(`─── AI Analysis (${apiKeys.provider} / ${modelLabel}) ───`));
|
|
238
238
|
console.log(pc.dim(`Capabilities: ${capabilities.join(' • ')}`));
|
|
239
239
|
console.log('');
|
|
240
|
-
spinner.start('
|
|
240
|
+
spinner.start('Starting AI analysis...');
|
|
241
241
|
const aiEnhancer = new AIEnhancer({
|
|
242
242
|
provider: apiKeys.provider,
|
|
243
243
|
model: apiKeys.model,
|
|
244
|
-
verbose:
|
|
244
|
+
verbose: false, // Disable verbose logging when using progress callback
|
|
245
245
|
agentic: true, // Always use agentic mode for deeper analysis
|
|
246
246
|
tavilyApiKey: apiKeys.tavilyKey,
|
|
247
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
|
+
},
|
|
248
257
|
});
|
|
249
258
|
let enhancedResult;
|
|
250
259
|
try {
|
|
@@ -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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wiggum-cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "AI-powered feature development loop CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"@ai-sdk/openai": "^3.0.12",
|
|
33
33
|
"@braintrust/otel": "^0.2.0",
|
|
34
34
|
"@clack/prompts": "^0.7.0",
|
|
35
|
+
"@upstash/context7-tools-ai-sdk": "^0.2.1",
|
|
35
36
|
"ai": "^6.0.41",
|
|
36
37
|
"braintrust": "^2.0.2",
|
|
37
38
|
"cfonts": "^3.2.0",
|
|
@@ -15,7 +15,7 @@ import { detectProjectType } from './stack-utils.js';
|
|
|
15
15
|
/**
|
|
16
16
|
* System prompt for the Context Enricher worker
|
|
17
17
|
*/
|
|
18
|
-
const CONTEXT_ENRICHER_SYSTEM_PROMPT = `You are a Context Enricher worker. Your job is to explore specific areas of a codebase and
|
|
18
|
+
const CONTEXT_ENRICHER_SYSTEM_PROMPT = `You are a Context Enricher worker. Your job is to explore specific areas of a codebase and discover ACTUAL file paths and structures.
|
|
19
19
|
|
|
20
20
|
## Your Mission
|
|
21
21
|
Based on the analysis plan, explore the codebase to:
|
|
@@ -32,28 +32,48 @@ Based on the analysis plan, explore the codebase to:
|
|
|
32
32
|
- getPackageInfo: Get package.json info
|
|
33
33
|
|
|
34
34
|
## Exploration Strategy
|
|
35
|
-
1.
|
|
36
|
-
2.
|
|
37
|
-
3.
|
|
38
|
-
4.
|
|
39
|
-
|
|
40
|
-
## Project Types
|
|
41
|
-
- MCP Server: Has @modelcontextprotocol
|
|
42
|
-
- REST API: Express/Fastify/Hono
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
35
|
+
1. Read package.json FIRST for main/bin entries - these are authoritative entry points
|
|
36
|
+
2. List root directory to discover actual structure (src/, app/, pages/, lib/, cmd/, etc.)
|
|
37
|
+
3. Explore discovered directories to understand their purpose
|
|
38
|
+
4. Search for patterns to answer specific questions
|
|
39
|
+
|
|
40
|
+
## Project Types & Entry Point Patterns
|
|
41
|
+
- MCP Server: Has @modelcontextprotocol deps → main field or src/index.ts
|
|
42
|
+
- REST API: Express/Fastify/Hono → main field, app.ts, server.ts, or src/
|
|
43
|
+
- Next.js App: next in deps → app/page.tsx, pages/index.tsx, or pages/_app.tsx
|
|
44
|
+
- CLI Tool: Has bin entry in package.json → use the bin paths directly
|
|
45
|
+
- Library: main/module fields → use those paths
|
|
46
|
+
- Python: main.py, app.py, or __main__.py at root
|
|
47
|
+
- Go: main.go or cmd/*/main.go
|
|
48
|
+
|
|
49
|
+
## CRITICAL: Output Requirements
|
|
50
|
+
- entryPoints: ONLY actual file paths you discovered
|
|
51
|
+
- NEVER output instructions like "Check package.json..."
|
|
52
|
+
- NEVER output suggestions like "If exists, use..."
|
|
53
|
+
- Priority order for discovery:
|
|
54
|
+
1. package.json "bin" field paths (for CLI tools)
|
|
55
|
+
2. package.json "main" or "module" field paths
|
|
56
|
+
3. Framework conventions (app/page.tsx, pages/index.tsx)
|
|
57
|
+
4. Common patterns you find (index.ts, main.ts, app.ts)
|
|
58
|
+
- If truly nothing found, use empty array [] - don't guess
|
|
59
|
+
- keyDirectories: ONLY directories that actually exist with their discovered purpose
|
|
60
|
+
- First list root to find actual directories (don't assume src/ exists)
|
|
61
|
+
- Map each real directory to its purpose based on file contents
|
|
62
|
+
- Example: {"src/commands": "CLI commands", "app": "Next.js app router"}
|
|
47
63
|
|
|
48
64
|
## Output Format
|
|
49
|
-
|
|
65
|
+
Output ONLY valid JSON with discovered facts, not exploration instructions:
|
|
50
66
|
{
|
|
51
|
-
"entryPoints": ["
|
|
52
|
-
"keyDirectories": {
|
|
67
|
+
"entryPoints": ["bin/cli.js", "dist/index.js"],
|
|
68
|
+
"keyDirectories": {
|
|
69
|
+
"src": "TypeScript source code",
|
|
70
|
+
"bin": "CLI entry scripts",
|
|
71
|
+
"lib": "Compiled output"
|
|
72
|
+
},
|
|
53
73
|
"namingConventions": "camelCase files, PascalCase components",
|
|
54
74
|
"commands": {"test": "npm test", "build": "npm run build"},
|
|
55
75
|
"answeredQuestions": {"What is the auth strategy?": "NextAuth with JWT"},
|
|
56
|
-
"projectType": "
|
|
76
|
+
"projectType": "CLI Tool"
|
|
57
77
|
}`;
|
|
58
78
|
|
|
59
79
|
/**
|
|
@@ -87,7 +107,7 @@ Start by exploring the specified areas, then answer the questions and produce yo
|
|
|
87
107
|
system: CONTEXT_ENRICHER_SYSTEM_PROMPT,
|
|
88
108
|
prompt,
|
|
89
109
|
tools,
|
|
90
|
-
stopWhen: stepCountIs(
|
|
110
|
+
stopWhen: stepCountIs(8), // Increased from 5 to allow proper directory exploration
|
|
91
111
|
maxOutputTokens: 3000,
|
|
92
112
|
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
93
113
|
experimental_telemetry: {
|
|
@@ -35,10 +35,59 @@ const evaluationSchema = z.object({
|
|
|
35
35
|
*/
|
|
36
36
|
const optimizerOutputSchema = z.object({
|
|
37
37
|
improvedGuidelines: z.array(z.string()).describe('Improved implementation guidelines'),
|
|
38
|
-
additionalEntryPoints: z.array(z.string()).
|
|
39
|
-
additionalMcpServers: z.array(z.string()).
|
|
38
|
+
additionalEntryPoints: z.array(z.string()).describe('Additional entry points to add (empty array if none)'),
|
|
39
|
+
additionalMcpServers: z.array(z.string()).describe('Additional MCP servers to recommend (empty array if none)'),
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Patterns that indicate an entry point is an instruction, not a real path
|
|
44
|
+
*/
|
|
45
|
+
const INVALID_ENTRY_POINT_PATTERNS = [
|
|
46
|
+
/^check /i,
|
|
47
|
+
/^if /i,
|
|
48
|
+
/^open /i,
|
|
49
|
+
/^look /i,
|
|
50
|
+
/^search /i,
|
|
51
|
+
/^find /i,
|
|
52
|
+
/^inspect /i,
|
|
53
|
+
/^run /i,
|
|
54
|
+
/^see /i,
|
|
55
|
+
/^review /i,
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Check if a single entry point looks like an actual file path (not an instruction)
|
|
60
|
+
*/
|
|
61
|
+
function isValidEntryPoint(ep: string): boolean {
|
|
62
|
+
// Must look like a file path
|
|
63
|
+
const looksLikePath = ep.includes('/') || ep.includes('.') || ep.startsWith('src') || ep.startsWith('app') || ep.startsWith('pages');
|
|
64
|
+
// Must not start with instruction words
|
|
65
|
+
const isNotInstruction = !INVALID_ENTRY_POINT_PATTERNS.some(pattern => pattern.test(ep));
|
|
66
|
+
return looksLikePath && isNotInstruction;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Check if entry points look like actual file paths (not instructions)
|
|
71
|
+
*/
|
|
72
|
+
function hasValidEntryPoints(entryPoints: string[]): boolean {
|
|
73
|
+
if (entryPoints.length === 0) return false;
|
|
74
|
+
return entryPoints.every(isValidEntryPoint);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Filter entry points to only include valid file paths
|
|
79
|
+
*/
|
|
80
|
+
function filterValidEntryPoints(entryPoints: string[]): string[] {
|
|
81
|
+
return entryPoints.filter(isValidEntryPoint);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Normalize MCP names (strip parenthetical explanations)
|
|
86
|
+
*/
|
|
87
|
+
function normalizeMcpName(name: string): string {
|
|
88
|
+
return name.split('(')[0].trim().toLowerCase();
|
|
89
|
+
}
|
|
90
|
+
|
|
42
91
|
/**
|
|
43
92
|
* System prompt for the Evaluator
|
|
44
93
|
*/
|
|
@@ -58,10 +107,16 @@ Evaluate the analysis result for:
|
|
|
58
107
|
- 3-4: Incomplete, vague, or partially incorrect
|
|
59
108
|
- 1-2: Poor, missing critical information
|
|
60
109
|
|
|
61
|
-
## Quality Checks
|
|
62
|
-
- Entry points
|
|
63
|
-
-
|
|
64
|
-
-
|
|
110
|
+
## Quality Checks - IMPORTANT
|
|
111
|
+
- Entry points MUST be actual file paths (e.g., "src/index.ts", "src/cli.ts")
|
|
112
|
+
- FAIL if they contain instructions like "Check", "If", "Open", "Look"
|
|
113
|
+
- FAIL if they don't look like file paths (no / or . characters)
|
|
114
|
+
- Key directories MUST map actual directories to their purposes
|
|
115
|
+
- FAIL if only generic entries like {"src": "Source code"}
|
|
116
|
+
- Guidelines MUST be actionable commands, not exploration tasks
|
|
117
|
+
- Good: "Run npm test", "Check API routes in src/routes"
|
|
118
|
+
- Bad: "Investigate the codebase", "Look for patterns"
|
|
119
|
+
- MCP servers MUST be single-word identifiers only (no parenthetical explanations)
|
|
65
120
|
|
|
66
121
|
Be constructive but honest. If it's good, say so. If it needs work, explain why.`;
|
|
67
122
|
|
|
@@ -80,7 +135,13 @@ Based on the evaluation feedback, improve:
|
|
|
80
135
|
- Keep guidelines to 5-10 words
|
|
81
136
|
- Start with action verbs
|
|
82
137
|
- Be specific to the detected stack
|
|
83
|
-
- Don't remove good content, only add or improve
|
|
138
|
+
- Don't remove good content, only add or improve
|
|
139
|
+
|
|
140
|
+
## MCP Server Names
|
|
141
|
+
- Use ONLY single-word identifiers: "playwright", "supabase", "postgres"
|
|
142
|
+
- NEVER add explanations in parentheses
|
|
143
|
+
- NEVER add descriptions after the name
|
|
144
|
+
- If unsure, omit rather than guess`;
|
|
84
145
|
|
|
85
146
|
/**
|
|
86
147
|
* Run the Evaluator-Optimizer QA loop
|
|
@@ -107,10 +168,11 @@ export async function runEvaluatorOptimizer(
|
|
|
107
168
|
}
|
|
108
169
|
}
|
|
109
170
|
|
|
110
|
-
// Check if quality meets threshold
|
|
171
|
+
// Check if quality meets threshold (including valid entry point paths)
|
|
111
172
|
if (
|
|
112
173
|
evaluation.qualityScore >= QUALITY_THRESHOLD &&
|
|
113
174
|
evaluation.hasEntryPoints &&
|
|
175
|
+
hasValidEntryPoints(currentResult.codebaseAnalysis.projectContext.entryPoints) &&
|
|
114
176
|
evaluation.hasImplementationGuidelines
|
|
115
177
|
) {
|
|
116
178
|
if (verbose) {
|
|
@@ -248,16 +310,21 @@ Provide improved guidelines and any additional entry points or MCP servers.`;
|
|
|
248
310
|
: result.codebaseAnalysis.implementationGuidelines,
|
|
249
311
|
projectContext: {
|
|
250
312
|
...result.codebaseAnalysis.projectContext,
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
313
|
+
// Filter invalid entry points (instructions) and merge with new ones
|
|
314
|
+
entryPoints: filterValidEntryPoints([
|
|
315
|
+
...result.codebaseAnalysis.projectContext.entryPoints,
|
|
316
|
+
...improvements.additionalEntryPoints,
|
|
317
|
+
]).filter((ep, i, arr) => arr.indexOf(ep) === i), // dedupe
|
|
254
318
|
},
|
|
255
319
|
},
|
|
256
320
|
mcpServers: {
|
|
257
321
|
...result.mcpServers,
|
|
258
|
-
recommended: improvements.additionalMcpServers
|
|
259
|
-
? [...new Set([
|
|
260
|
-
|
|
322
|
+
recommended: improvements.additionalMcpServers.length > 0
|
|
323
|
+
? [...new Set([
|
|
324
|
+
...result.mcpServers.recommended.map(normalizeMcpName),
|
|
325
|
+
...improvements.additionalMcpServers.map(normalizeMcpName)
|
|
326
|
+
])]
|
|
327
|
+
: result.mcpServers.recommended.map(normalizeMcpName),
|
|
261
328
|
},
|
|
262
329
|
};
|
|
263
330
|
|
package/src/ai/agents/index.ts
CHANGED
|
@@ -20,6 +20,7 @@ export type {
|
|
|
20
20
|
ContextEnricherInput,
|
|
21
21
|
TechResearcherInput,
|
|
22
22
|
SynthesisInput,
|
|
23
|
+
ProgressCallback,
|
|
23
24
|
// Legacy types (backward compatibility)
|
|
24
25
|
CodebaseAnalysis,
|
|
25
26
|
StackResearch,
|
|
@@ -78,7 +79,16 @@ export async function runMultiAgentAnalysis(
|
|
|
78
79
|
scanResult: ScanResult,
|
|
79
80
|
options: AgentOptions = {}
|
|
80
81
|
): Promise<MultiAgentAnalysis | null> {
|
|
81
|
-
const { tavilyApiKey, context7ApiKey, verbose = false } = options;
|
|
82
|
+
const { tavilyApiKey, context7ApiKey, verbose = false, onProgress } = options;
|
|
83
|
+
|
|
84
|
+
// Helper to report progress (uses callback or falls back to logger)
|
|
85
|
+
const report = (phase: string, detail?: string) => {
|
|
86
|
+
if (onProgress) {
|
|
87
|
+
onProgress(phase, detail);
|
|
88
|
+
} else if (verbose) {
|
|
89
|
+
logger.info(detail ? `${phase}: ${detail}` : phase);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
82
92
|
|
|
83
93
|
// Determine capabilities
|
|
84
94
|
const capabilities: AgentCapabilities = {
|
|
@@ -86,7 +96,7 @@ export async function runMultiAgentAnalysis(
|
|
|
86
96
|
hasContext7: !!context7ApiKey,
|
|
87
97
|
};
|
|
88
98
|
|
|
89
|
-
if (verbose) {
|
|
99
|
+
if (verbose && !onProgress) {
|
|
90
100
|
logger.info('Starting multi-agent analysis (4-phase architecture)...');
|
|
91
101
|
logger.info(`Capabilities: Tavily=${capabilities.hasTavily}, Context7=${capabilities.hasContext7}`);
|
|
92
102
|
}
|
|
@@ -95,22 +105,17 @@ export async function runMultiAgentAnalysis(
|
|
|
95
105
|
// ═══════════════════════════════════════════════════════════════
|
|
96
106
|
// PHASE 1: Planning Orchestrator
|
|
97
107
|
// ═══════════════════════════════════════════════════════════════
|
|
98
|
-
|
|
99
|
-
logger.info('Phase 1: Creating analysis plan...');
|
|
100
|
-
}
|
|
108
|
+
report('Phase 1/4: Planning');
|
|
101
109
|
|
|
102
|
-
const plan = await runPlanningOrchestrator(model, modelId, scanResult, verbose);
|
|
110
|
+
const plan = await runPlanningOrchestrator(model, modelId, scanResult, verbose && !onProgress);
|
|
103
111
|
|
|
104
|
-
|
|
105
|
-
logger.info(`Plan: ${plan.areasToExplore.length} areas, ${plan.technologiesToResearch.length} techs, complexity=${plan.estimatedComplexity}`);
|
|
106
|
-
}
|
|
112
|
+
report('Phase 1/4: Planning', `${plan.areasToExplore.length} areas, ${plan.technologiesToResearch.length} technologies`);
|
|
107
113
|
|
|
108
114
|
// ═══════════════════════════════════════════════════════════════
|
|
109
115
|
// PHASE 2: Parallel Workers
|
|
110
116
|
// ═══════════════════════════════════════════════════════════════
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
117
|
+
const workerCount = plan.technologiesToResearch.length + 1; // tech researchers + context enricher
|
|
118
|
+
report('Phase 2/4: Analyzing', `${workerCount} parallel workers`);
|
|
114
119
|
|
|
115
120
|
// Run context enricher and tech researchers in parallel with error recovery
|
|
116
121
|
const [contextResult, researchResult] = await Promise.allSettled([
|
|
@@ -122,14 +127,14 @@ export async function runMultiAgentAnalysis(
|
|
|
122
127
|
areasToExplore: plan.areasToExplore,
|
|
123
128
|
questionsToAnswer: plan.questionsToAnswer,
|
|
124
129
|
},
|
|
125
|
-
verbose
|
|
130
|
+
verbose && !onProgress
|
|
126
131
|
),
|
|
127
132
|
runTechResearchPool(
|
|
128
133
|
model,
|
|
129
134
|
modelId,
|
|
130
135
|
plan.technologiesToResearch,
|
|
131
136
|
{ tavilyApiKey, context7ApiKey },
|
|
132
|
-
verbose
|
|
137
|
+
verbose && !onProgress
|
|
133
138
|
),
|
|
134
139
|
]);
|
|
135
140
|
|
|
@@ -150,25 +155,16 @@ export async function runMultiAgentAnalysis(
|
|
|
150
155
|
logger.warn(`Tech Research Pool failed: ${researchResult.reason instanceof Error ? researchResult.reason.message : String(researchResult.reason)}`);
|
|
151
156
|
}
|
|
152
157
|
|
|
153
|
-
|
|
154
|
-
logger.info(`Context: ${enrichedContext.entryPoints.length} entry points, type=${enrichedContext.projectType}`);
|
|
155
|
-
logger.info(`Research: ${techResearch.length} technologies researched`);
|
|
156
|
-
}
|
|
158
|
+
report('Phase 2/4: Analyzing', 'complete');
|
|
157
159
|
|
|
158
160
|
// ═══════════════════════════════════════════════════════════════
|
|
159
161
|
// PHASE 3: Synthesis + MCP Detection
|
|
160
162
|
// ═══════════════════════════════════════════════════════════════
|
|
161
|
-
|
|
162
|
-
logger.info('Phase 3: Synthesizing results...');
|
|
163
|
-
}
|
|
163
|
+
report('Phase 3/4: Synthesizing');
|
|
164
164
|
|
|
165
165
|
// Detect MCPs (pure function, no LLM)
|
|
166
166
|
const mcpServers = detectRalphMcpServers(scanResult.stack);
|
|
167
167
|
|
|
168
|
-
if (verbose) {
|
|
169
|
-
logger.info(`MCPs: e2e=${mcpServers.e2eTesting}, db=${mcpServers.database || 'none'}, additional=${mcpServers.additional.length}`);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
168
|
// Run synthesis agent
|
|
173
169
|
const synthesizedResult = await runSynthesisAgent(
|
|
174
170
|
model,
|
|
@@ -180,15 +176,15 @@ export async function runMultiAgentAnalysis(
|
|
|
180
176
|
plan,
|
|
181
177
|
stack: scanResult.stack,
|
|
182
178
|
},
|
|
183
|
-
verbose
|
|
179
|
+
verbose && !onProgress
|
|
184
180
|
);
|
|
185
181
|
|
|
182
|
+
report('Phase 3/4: Synthesizing', 'complete');
|
|
183
|
+
|
|
186
184
|
// ═══════════════════════════════════════════════════════════════
|
|
187
185
|
// PHASE 4: Evaluator-Optimizer QA Loop
|
|
188
186
|
// ═══════════════════════════════════════════════════════════════
|
|
189
|
-
|
|
190
|
-
logger.info('Phase 4: Running QA evaluation...');
|
|
191
|
-
}
|
|
187
|
+
report('Phase 4/4: Quality check');
|
|
192
188
|
|
|
193
189
|
const finalResult = await runEvaluatorOptimizer(
|
|
194
190
|
model,
|
|
@@ -196,12 +192,10 @@ export async function runMultiAgentAnalysis(
|
|
|
196
192
|
synthesizedResult,
|
|
197
193
|
scanResult,
|
|
198
194
|
2, // Max 2 iterations
|
|
199
|
-
verbose
|
|
195
|
+
verbose && !onProgress
|
|
200
196
|
);
|
|
201
197
|
|
|
202
|
-
|
|
203
|
-
logger.info('Multi-agent analysis complete (4-phase architecture)');
|
|
204
|
-
}
|
|
198
|
+
report('Phase 4/4: Quality check', 'complete');
|
|
205
199
|
|
|
206
200
|
return finalResult;
|
|
207
201
|
} catch (error) {
|
|
@@ -177,26 +177,33 @@ export function detectRalphMcpServers(stack: DetectedStack): RalphMcpServers {
|
|
|
177
177
|
/**
|
|
178
178
|
* Convert RalphMcpServers to the legacy McpRecommendations format
|
|
179
179
|
* for backward compatibility with existing code
|
|
180
|
+
*
|
|
181
|
+
* Ralph loop essentials only:
|
|
182
|
+
* - Playwright for E2E testing (always)
|
|
183
|
+
* - Database MCP if detected (Supabase, Convex, Postgres, etc.)
|
|
184
|
+
*
|
|
185
|
+
* Note: filesystem and git are assumed available in Claude Code
|
|
180
186
|
*/
|
|
181
187
|
export function convertToLegacyMcpRecommendations(ralphMcp: RalphMcpServers): {
|
|
182
188
|
essential: string[];
|
|
183
189
|
recommended: string[];
|
|
184
190
|
} {
|
|
185
|
-
const essential: string[] = [
|
|
191
|
+
const essential: string[] = [];
|
|
186
192
|
|
|
187
|
-
//
|
|
193
|
+
// Ralph loop essentials only
|
|
194
|
+
// 1. Playwright for E2E testing (always)
|
|
188
195
|
if (ralphMcp.e2eTesting) {
|
|
189
196
|
essential.push(ralphMcp.e2eTesting);
|
|
190
197
|
}
|
|
191
198
|
|
|
192
|
-
//
|
|
199
|
+
// 2. Database MCP if detected (Supabase, Convex, Postgres, etc.)
|
|
193
200
|
if (ralphMcp.database) {
|
|
194
201
|
essential.push(ralphMcp.database);
|
|
195
202
|
}
|
|
196
203
|
|
|
197
204
|
return {
|
|
198
205
|
essential,
|
|
199
|
-
recommended:
|
|
206
|
+
recommended: [], // No optional MCPs - keep focused on Ralph loop
|
|
200
207
|
};
|
|
201
208
|
}
|
|
202
209
|
|