wiggum-cli 0.4.4 → 0.4.6
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 +10 -0
- package/dist/ai/agents/context-enricher.d.ts.map +1 -1
- package/dist/ai/agents/context-enricher.js +63 -4
- package/dist/ai/agents/context-enricher.js.map +1 -1
- package/dist/ai/agents/index.js +3 -2
- package/dist/ai/agents/index.js.map +1 -1
- package/dist/ai/agents/mcp-detector.d.ts +3 -2
- package/dist/ai/agents/mcp-detector.d.ts.map +1 -1
- package/dist/ai/agents/mcp-detector.js +23 -3
- package/dist/ai/agents/mcp-detector.js.map +1 -1
- package/dist/ai/agents/stack-researcher.js +2 -0
- package/dist/ai/agents/stack-researcher.js.map +1 -1
- package/dist/ai/agents/synthesis-agent.d.ts.map +1 -1
- package/dist/ai/agents/synthesis-agent.js +32 -9
- package/dist/ai/agents/synthesis-agent.js.map +1 -1
- package/dist/ai/agents/tech-researcher.d.ts +11 -0
- package/dist/ai/agents/tech-researcher.d.ts.map +1 -1
- package/dist/ai/agents/tech-researcher.js +71 -1
- package/dist/ai/agents/tech-researcher.js.map +1 -1
- package/dist/ai/agents/types.d.ts +2 -0
- package/dist/ai/agents/types.d.ts.map +1 -1
- package/dist/ai/enhancer.js +1 -1
- package/dist/ai/enhancer.js.map +1 -1
- package/package.json +1 -1
- package/src/ai/agents/context-enricher.test.ts +190 -0
- package/src/ai/agents/context-enricher.ts +69 -4
- package/src/ai/agents/index.ts +3 -2
- package/src/ai/agents/mcp-detector.test.ts +64 -9
- package/src/ai/agents/mcp-detector.ts +23 -3
- package/src/ai/agents/stack-researcher.ts +2 -0
- package/src/ai/agents/synthesis-agent.ts +46 -9
- package/src/ai/agents/tech-researcher.test.ts +156 -0
- package/src/ai/agents/tech-researcher.ts +86 -1
- package/src/ai/agents/types.ts +2 -0
- package/src/ai/enhancer.ts +1 -1
|
@@ -8,4 +8,14 @@ import type { ContextEnricherInput, EnrichedContext } from './types.js';
|
|
|
8
8
|
* Run the Context Enricher worker
|
|
9
9
|
*/
|
|
10
10
|
export declare function runContextEnricher(model: LanguageModel, modelId: string, input: ContextEnricherInput, verbose?: boolean): Promise<EnrichedContext>;
|
|
11
|
+
/**
|
|
12
|
+
* Script name patterns for command detection
|
|
13
|
+
* Exported for testing
|
|
14
|
+
*/
|
|
15
|
+
export declare const SCRIPT_MAPPINGS: Record<string, string[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Derive commands from package.json scripts when AI fails to discover them
|
|
18
|
+
* Exported for testing
|
|
19
|
+
*/
|
|
20
|
+
export declare function deriveCommandsFromScripts(projectRoot: string): Record<string, string>;
|
|
11
21
|
//# sourceMappingURL=context-enricher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-enricher.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"context-enricher.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyFxE;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,oBAAoB,EAC3B,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,eAAe,CAAC,CAoD1B;AA2DD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAOpD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BrF"}
|
|
@@ -67,6 +67,13 @@ Based on the analysis plan, explore the codebase to:
|
|
|
67
67
|
- Map each real directory to its purpose based on file contents
|
|
68
68
|
- Example: {"src/commands": "CLI commands", "app": "Next.js app router"}
|
|
69
69
|
|
|
70
|
+
## Architecture Discovery
|
|
71
|
+
Identify the data/control flow and include in answeredQuestions:
|
|
72
|
+
- For CLI tools: "CLI entry → command parser → handlers → output"
|
|
73
|
+
- For MCP servers: "Transport → request router → tool handlers → API client"
|
|
74
|
+
- For web apps: "Routes → controllers → services → database"
|
|
75
|
+
- For APIs: "HTTP server → middleware → routes → handlers → data layer"
|
|
76
|
+
|
|
70
77
|
## Output Format
|
|
71
78
|
Output ONLY valid JSON with discovered facts, not exploration instructions:
|
|
72
79
|
{
|
|
@@ -78,7 +85,10 @@ Output ONLY valid JSON with discovered facts, not exploration instructions:
|
|
|
78
85
|
},
|
|
79
86
|
"namingConventions": "camelCase files, PascalCase components",
|
|
80
87
|
"commands": {"test": "npm test", "build": "npm run build"},
|
|
81
|
-
"answeredQuestions": {
|
|
88
|
+
"answeredQuestions": {
|
|
89
|
+
"What is the auth strategy?": "NextAuth with JWT",
|
|
90
|
+
"architecture": "CLI parses commands via commander → calls API handlers → outputs results"
|
|
91
|
+
},
|
|
82
92
|
"projectType": "CLI Tool"
|
|
83
93
|
}`;
|
|
84
94
|
/**
|
|
@@ -161,16 +171,64 @@ function parseEnrichedContext(text, steps, verbose, input) {
|
|
|
161
171
|
}
|
|
162
172
|
return getDefaultEnrichedContext(input);
|
|
163
173
|
}
|
|
174
|
+
// Derive commands from package.json as fallback if AI didn't find them
|
|
175
|
+
const derivedCommands = input ? deriveCommandsFromScripts(input.scanResult.projectRoot) : {};
|
|
176
|
+
const commands = parsed.commands && Object.keys(parsed.commands).length > 0
|
|
177
|
+
? parsed.commands
|
|
178
|
+
: derivedCommands;
|
|
164
179
|
// Build result with empty defaults for missing fields (don't guess)
|
|
165
180
|
return {
|
|
166
181
|
entryPoints: parsed.entryPoints || [], // Empty = not found, not guessed
|
|
167
182
|
keyDirectories: parsed.keyDirectories || {}, // Empty = not found
|
|
168
183
|
namingConventions: parsed.namingConventions || 'unknown',
|
|
169
|
-
commands
|
|
184
|
+
commands, // Derived from package.json if AI didn't find them
|
|
170
185
|
answeredQuestions: parsed.answeredQuestions || {},
|
|
171
186
|
projectType: parsed.projectType || 'Unknown',
|
|
172
187
|
};
|
|
173
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Script name patterns for command detection
|
|
191
|
+
* Exported for testing
|
|
192
|
+
*/
|
|
193
|
+
export const SCRIPT_MAPPINGS = {
|
|
194
|
+
test: ['test', 'test:unit', 'vitest', 'jest'],
|
|
195
|
+
lint: ['lint', 'eslint', 'lint:fix'],
|
|
196
|
+
typecheck: ['typecheck', 'tsc', 'type-check', 'types'],
|
|
197
|
+
build: ['build', 'compile'],
|
|
198
|
+
dev: ['dev', 'start:dev', 'develop', 'watch'],
|
|
199
|
+
format: ['format', 'prettier', 'fmt'],
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Derive commands from package.json scripts when AI fails to discover them
|
|
203
|
+
* Exported for testing
|
|
204
|
+
*/
|
|
205
|
+
export function deriveCommandsFromScripts(projectRoot) {
|
|
206
|
+
const commands = {};
|
|
207
|
+
const packageJsonPath = join(projectRoot, 'package.json');
|
|
208
|
+
if (!existsSync(packageJsonPath)) {
|
|
209
|
+
return commands;
|
|
210
|
+
}
|
|
211
|
+
try {
|
|
212
|
+
const content = readFileSync(packageJsonPath, 'utf-8');
|
|
213
|
+
const pkg = JSON.parse(content);
|
|
214
|
+
const scripts = pkg.scripts;
|
|
215
|
+
if (!scripts) {
|
|
216
|
+
return commands;
|
|
217
|
+
}
|
|
218
|
+
for (const [command, patterns] of Object.entries(SCRIPT_MAPPINGS)) {
|
|
219
|
+
for (const pattern of patterns) {
|
|
220
|
+
if (scripts[pattern]) {
|
|
221
|
+
commands[command] = `npm run ${pattern}`;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return commands;
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return commands;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
174
232
|
/**
|
|
175
233
|
* Derive entry points from package.json when AI fails to discover them
|
|
176
234
|
*/
|
|
@@ -208,16 +266,17 @@ function deriveEntryPointsFromPackageJson(projectRoot) {
|
|
|
208
266
|
}
|
|
209
267
|
/**
|
|
210
268
|
* Get default enriched context when parsing fails
|
|
211
|
-
* Returns empty arrays instead of guesses, but derives entry points from package.json
|
|
269
|
+
* Returns empty arrays instead of guesses, but derives entry points and commands from package.json
|
|
212
270
|
*/
|
|
213
271
|
function getDefaultEnrichedContext(input) {
|
|
214
272
|
const projectType = detectProjectType(input?.scanResult.stack);
|
|
215
273
|
const entryPoints = input ? deriveEntryPointsFromPackageJson(input.scanResult.projectRoot) : [];
|
|
274
|
+
const commands = input ? deriveCommandsFromScripts(input.scanResult.projectRoot) : {};
|
|
216
275
|
return {
|
|
217
276
|
entryPoints, // Derived from package.json, not guessed
|
|
218
277
|
keyDirectories: {}, // Empty = not discovered
|
|
219
278
|
namingConventions: 'unknown',
|
|
220
|
-
commands
|
|
279
|
+
commands, // Derived from package.json scripts
|
|
221
280
|
answeredQuestions: {},
|
|
222
281
|
projectType,
|
|
223
282
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-enricher.js","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAsB,MAAM,IAAI,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,MAAM,8BAA8B,GAAG
|
|
1
|
+
{"version":3,"file":"context-enricher.js","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/agents/index.js
CHANGED
|
@@ -96,8 +96,8 @@ export async function runMultiAgentAnalysis(model, modelId, scanResult, options
|
|
|
96
96
|
// PHASE 3: Synthesis + MCP Detection
|
|
97
97
|
// ═══════════════════════════════════════════════════════════════
|
|
98
98
|
report('Phase 3/4: Synthesizing');
|
|
99
|
-
// Detect MCPs (pure function, no LLM)
|
|
100
|
-
const mcpServers = detectRalphMcpServers(scanResult.stack);
|
|
99
|
+
// Detect MCPs (pure function, no LLM) - pass project type for context-aware recommendations
|
|
100
|
+
const mcpServers = detectRalphMcpServers(scanResult.stack, enrichedContext.projectType);
|
|
101
101
|
// Run synthesis agent
|
|
102
102
|
const synthesizedResult = await runSynthesisAgent(model, modelId, {
|
|
103
103
|
enrichedContext,
|
|
@@ -153,6 +153,7 @@ function getDefaultMultiAgentAnalysis(scanResult) {
|
|
|
153
153
|
antiPatterns: ['Avoid skipping tests'],
|
|
154
154
|
testingTools: ['npm test'],
|
|
155
155
|
debuggingTools: ['console.log'],
|
|
156
|
+
validationTools: ['npm run lint', 'npx tsc --noEmit'],
|
|
156
157
|
documentationHints: ['Check official docs'],
|
|
157
158
|
researchMode: 'knowledge-only',
|
|
158
159
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/agents/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/agents/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,12 @@ import type { RalphMcpServers } from './types.js';
|
|
|
10
10
|
* Detect ralph-essential MCP servers from the stack
|
|
11
11
|
*
|
|
12
12
|
* Ralph loop essentials:
|
|
13
|
-
* -
|
|
13
|
+
* - For MCP Server projects: mcp-inspector for testing
|
|
14
|
+
* - For web apps with E2E: playwright for E2E testing
|
|
14
15
|
* - Database MCP: If database is detected
|
|
15
16
|
* - Additional MCPs based on services and deployment
|
|
16
17
|
*/
|
|
17
|
-
export declare function detectRalphMcpServers(stack: DetectedStack): RalphMcpServers;
|
|
18
|
+
export declare function detectRalphMcpServers(stack: DetectedStack, projectType?: string): RalphMcpServers;
|
|
18
19
|
/**
|
|
19
20
|
* Convert RalphMcpServers to the legacy McpRecommendations format
|
|
20
21
|
* for backward compatibility with existing code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-detector.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/mcp-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwDlD
|
|
1
|
+
{"version":3,"file":"mcp-detector.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/mcp-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwDlD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe,CAyHjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,eAAe,GAAG;IAC5E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAkBA"}
|
|
@@ -59,13 +59,33 @@ const SERVICE_MCP_MAP = {
|
|
|
59
59
|
* Detect ralph-essential MCP servers from the stack
|
|
60
60
|
*
|
|
61
61
|
* Ralph loop essentials:
|
|
62
|
-
* -
|
|
62
|
+
* - For MCP Server projects: mcp-inspector for testing
|
|
63
|
+
* - For web apps with E2E: playwright for E2E testing
|
|
63
64
|
* - Database MCP: If database is detected
|
|
64
65
|
* - Additional MCPs based on services and deployment
|
|
65
66
|
*/
|
|
66
|
-
export function detectRalphMcpServers(stack) {
|
|
67
|
+
export function detectRalphMcpServers(stack, projectType) {
|
|
68
|
+
// Determine appropriate E2E testing tool based on project type
|
|
69
|
+
const isMcpProject = stack.mcp?.isProject || projectType?.toLowerCase().includes('mcp');
|
|
70
|
+
const isWebApp = stack.framework?.name?.toLowerCase().includes('next') ||
|
|
71
|
+
stack.framework?.name?.toLowerCase().includes('react') ||
|
|
72
|
+
stack.framework?.name?.toLowerCase().includes('vue') ||
|
|
73
|
+
stack.framework?.name?.toLowerCase().includes('svelte') ||
|
|
74
|
+
stack.framework?.name?.toLowerCase().includes('nuxt') ||
|
|
75
|
+
stack.framework?.name?.toLowerCase().includes('remix');
|
|
76
|
+
// Choose E2E testing tool based on project type
|
|
77
|
+
let e2eTesting;
|
|
78
|
+
if (isMcpProject) {
|
|
79
|
+
e2eTesting = 'mcp-inspector'; // MCP projects use MCP Inspector
|
|
80
|
+
}
|
|
81
|
+
else if (isWebApp) {
|
|
82
|
+
e2eTesting = 'playwright'; // Web apps use Playwright
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
e2eTesting = 'playwright'; // Default to Playwright for CLI/other projects
|
|
86
|
+
}
|
|
67
87
|
const result = {
|
|
68
|
-
e2eTesting
|
|
88
|
+
e2eTesting,
|
|
69
89
|
additional: [],
|
|
70
90
|
};
|
|
71
91
|
// Detect database MCP
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-detector.js","sourceRoot":"","sources":["../../../src/ai/agents/mcp-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;IACrB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,UAAU,EAAE,gCAAgC;IAClD,KAAK,EAAE,QAAQ,EAAG,6BAA6B;CAChD,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAA6B;IAClD,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAA2B;IAC9C,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,YAAY;IACjB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"mcp-detector.js","sourceRoot":"","sources":["../../../src/ai/agents/mcp-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -269,6 +269,7 @@ function parseStackResearch(text, steps, researchMode, verbose) {
|
|
|
269
269
|
antiPatterns: parsed.antiPatterns || [],
|
|
270
270
|
testingTools: parsed.testingTools || [],
|
|
271
271
|
debuggingTools: parsed.debuggingTools || [],
|
|
272
|
+
validationTools: parsed.validationTools || [],
|
|
272
273
|
documentationHints: parsed.documentationHints || [],
|
|
273
274
|
researchMode: researchMode,
|
|
274
275
|
};
|
|
@@ -282,6 +283,7 @@ function getDefaultStackResearch(researchMode) {
|
|
|
282
283
|
antiPatterns: ['Avoid skipping tests', 'Don\'t ignore type errors'],
|
|
283
284
|
testingTools: ['npm test'],
|
|
284
285
|
debuggingTools: ['console.log', 'debugger statement'],
|
|
286
|
+
validationTools: ['npm run lint', 'npx tsc --noEmit'],
|
|
285
287
|
documentationHints: ['Check package.json for dependencies'],
|
|
286
288
|
researchMode,
|
|
287
289
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-researcher.js","sourceRoot":"","sources":["../../../src/ai/agents/stack-researcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stack-researcher.js","sourceRoot":"","sources":["../../../src/ai/agents/stack-researcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesis-agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/synthesis-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAInB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"synthesis-agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/synthesis-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAkEpB;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,kBAAkB,CAAC,CA8D7B"}
|
|
@@ -13,6 +13,11 @@ import { getTracedAI } from '../../utils/tracing.js';
|
|
|
13
13
|
const synthesisOutputSchema = z.object({
|
|
14
14
|
implementationGuidelines: z.array(z.string()).describe('Short, actionable implementation guidelines'),
|
|
15
15
|
possibleMissedTechnologies: z.array(z.string()).describe('Technologies that may have been missed (empty array if none)'),
|
|
16
|
+
technologyTools: z.object({
|
|
17
|
+
testing: z.array(z.string()).describe('Commands to run tests (e.g., "npm test", "npx vitest")'),
|
|
18
|
+
debugging: z.array(z.string()).describe('Debug flags, env vars, tools (e.g., "DEBUG=* npm run dev")'),
|
|
19
|
+
validation: z.array(z.string()).describe('Type checking, linting commands (e.g., "npm run lint", "npx tsc --noEmit")'),
|
|
20
|
+
}),
|
|
16
21
|
});
|
|
17
22
|
/**
|
|
18
23
|
* System prompt for the Synthesis Agent
|
|
@@ -23,6 +28,7 @@ const SYNTHESIS_AGENT_SYSTEM_PROMPT = `You are a Synthesis Agent that merges ana
|
|
|
23
28
|
Based on the enriched context and technology research, generate:
|
|
24
29
|
1. Short implementation guidelines (5-10 words each) describing DISCOVERED patterns
|
|
25
30
|
2. List any technologies that may have been missed
|
|
31
|
+
3. Technology tools for testing, debugging, and validation
|
|
26
32
|
|
|
27
33
|
## Guidelines Style
|
|
28
34
|
- Describe DISCOVERED patterns, not instructions to follow
|
|
@@ -36,6 +42,12 @@ Based on the enriched context and technology research, generate:
|
|
|
36
42
|
- Bad: "Use Zod for validation"
|
|
37
43
|
- Max 7 patterns, prioritize most distinctive features
|
|
38
44
|
|
|
45
|
+
## Technology Tools
|
|
46
|
+
Based on the detected stack and available commands, provide:
|
|
47
|
+
- testing: Commands to verify changes (e.g., "npm test", "npx vitest")
|
|
48
|
+
- debugging: How to debug (e.g., "DEBUG=* npm run dev", "--verbose flag", "NODE_DEBUG=http")
|
|
49
|
+
- validation: Pre-commit checks (e.g., "npm run lint", "npx tsc --noEmit")
|
|
50
|
+
|
|
39
51
|
## Example Output
|
|
40
52
|
{
|
|
41
53
|
"implementationGuidelines": [
|
|
@@ -45,7 +57,12 @@ Based on the enriched context and technology research, generate:
|
|
|
45
57
|
"Zod schemas in src/schemas for API validation",
|
|
46
58
|
"Playwright E2E tests in tests/e2e"
|
|
47
59
|
],
|
|
48
|
-
"possibleMissedTechnologies": ["Redis caching"]
|
|
60
|
+
"possibleMissedTechnologies": ["Redis caching"],
|
|
61
|
+
"technologyTools": {
|
|
62
|
+
"testing": ["npm test", "npx vitest --watch"],
|
|
63
|
+
"debugging": ["DEBUG=* npm run dev", "--verbose flag"],
|
|
64
|
+
"validation": ["npm run lint", "npx tsc --noEmit"]
|
|
65
|
+
}
|
|
49
66
|
}`;
|
|
50
67
|
/**
|
|
51
68
|
* Run the Synthesis Agent to merge results and generate guidelines
|
|
@@ -98,7 +115,7 @@ Generate concise, actionable implementation guidelines based on this analysis.`;
|
|
|
98
115
|
logger.info(`Synthesis Agent: Generated ${synthesis.implementationGuidelines.length} guidelines`);
|
|
99
116
|
}
|
|
100
117
|
// Convert to MultiAgentAnalysis format for backward compatibility
|
|
101
|
-
return buildMultiAgentAnalysis(input, synthesis.implementationGuidelines, synthesis.possibleMissedTechnologies);
|
|
118
|
+
return buildMultiAgentAnalysis(input, synthesis.implementationGuidelines, synthesis.possibleMissedTechnologies, synthesis.technologyTools);
|
|
102
119
|
}
|
|
103
120
|
catch (error) {
|
|
104
121
|
if (verbose) {
|
|
@@ -111,7 +128,7 @@ Generate concise, actionable implementation guidelines based on this analysis.`;
|
|
|
111
128
|
/**
|
|
112
129
|
* Build MultiAgentAnalysis from synthesis input and generated guidelines
|
|
113
130
|
*/
|
|
114
|
-
function buildMultiAgentAnalysis(input, implementationGuidelines, possibleMissedTechnologies) {
|
|
131
|
+
function buildMultiAgentAnalysis(input, implementationGuidelines, possibleMissedTechnologies, technologyTools) {
|
|
115
132
|
// Convert EnrichedContext to CodebaseAnalysis format
|
|
116
133
|
const codebaseAnalysis = {
|
|
117
134
|
projectContext: {
|
|
@@ -132,7 +149,7 @@ function buildMultiAgentAnalysis(input, implementationGuidelines, possibleMissed
|
|
|
132
149
|
possibleMissedTechnologies,
|
|
133
150
|
};
|
|
134
151
|
// Merge tech research into StackResearch format
|
|
135
|
-
const stackResearch = mergeTechResearch(input.techResearch);
|
|
152
|
+
const stackResearch = mergeTechResearch(input.techResearch, technologyTools);
|
|
136
153
|
// Convert MCP servers to legacy format
|
|
137
154
|
const mcpServers = convertToLegacyMcpRecommendations(input.mcpServers);
|
|
138
155
|
return {
|
|
@@ -144,13 +161,18 @@ function buildMultiAgentAnalysis(input, implementationGuidelines, possibleMissed
|
|
|
144
161
|
/**
|
|
145
162
|
* Merge multiple TechResearchResult into a single StackResearch
|
|
146
163
|
*/
|
|
147
|
-
function mergeTechResearch(techResearch) {
|
|
164
|
+
function mergeTechResearch(techResearch, technologyTools) {
|
|
165
|
+
// Use technologyTools from synthesis if available
|
|
166
|
+
const synthesisTesting = technologyTools?.testing || [];
|
|
167
|
+
const synthesisDebugging = technologyTools?.debugging || [];
|
|
168
|
+
const synthesisValidation = technologyTools?.validation || [];
|
|
148
169
|
if (techResearch.length === 0) {
|
|
149
170
|
return {
|
|
150
171
|
bestPractices: ['Follow project conventions'],
|
|
151
172
|
antiPatterns: ['Avoid skipping tests'],
|
|
152
|
-
testingTools: ['npm test'],
|
|
153
|
-
debuggingTools: ['console.log'],
|
|
173
|
+
testingTools: synthesisTesting.length > 0 ? synthesisTesting : ['npm test'],
|
|
174
|
+
debuggingTools: synthesisDebugging.length > 0 ? synthesisDebugging : ['console.log'],
|
|
175
|
+
validationTools: synthesisValidation.length > 0 ? synthesisValidation : ['npm run lint'],
|
|
154
176
|
documentationHints: ['Check official docs'],
|
|
155
177
|
researchMode: 'knowledge-only',
|
|
156
178
|
};
|
|
@@ -158,7 +180,7 @@ function mergeTechResearch(techResearch) {
|
|
|
158
180
|
// Merge all research results
|
|
159
181
|
const bestPractices = [];
|
|
160
182
|
const antiPatterns = [];
|
|
161
|
-
const testingTips = [];
|
|
183
|
+
const testingTips = [...synthesisTesting]; // Start with synthesis testing tools
|
|
162
184
|
const documentationHints = [];
|
|
163
185
|
let researchMode = 'knowledge-only';
|
|
164
186
|
for (const research of techResearch) {
|
|
@@ -179,7 +201,8 @@ function mergeTechResearch(techResearch) {
|
|
|
179
201
|
bestPractices: [...new Set(bestPractices)].slice(0, 10),
|
|
180
202
|
antiPatterns: [...new Set(antiPatterns)].slice(0, 10),
|
|
181
203
|
testingTools: [...new Set(testingTips)].slice(0, 5),
|
|
182
|
-
debuggingTools: [],
|
|
204
|
+
debuggingTools: [...new Set(synthesisDebugging)].slice(0, 5),
|
|
205
|
+
validationTools: [...new Set(synthesisValidation)].slice(0, 5),
|
|
183
206
|
documentationHints: [...new Set(documentationHints)].slice(0, 5),
|
|
184
207
|
researchMode,
|
|
185
208
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesis-agent.js","sourceRoot":"","sources":["../../../src/ai/agents/synthesis-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACrG,0BAA0B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC;
|
|
1
|
+
{"version":3,"file":"synthesis-agent.js","sourceRoot":"","sources":["../../../src/ai/agents/synthesis-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { type LanguageModel } from 'ai';
|
|
7
7
|
import type { TechResearcherInput, TechResearchResult, AgentOptions } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Documentation hints mapping for common technologies
|
|
10
|
+
* Used to provide useful links when AI research fails or as supplements
|
|
11
|
+
* Exported for testing
|
|
12
|
+
*/
|
|
13
|
+
export declare const DOCUMENTATION_HINTS: Record<string, string[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Get documentation hints for a technology
|
|
16
|
+
* Exported for testing
|
|
17
|
+
*/
|
|
18
|
+
export declare function getDocumentationHints(technology: string): string[];
|
|
8
19
|
/**
|
|
9
20
|
* Run a single Tech Researcher worker for one technology
|
|
10
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tech-researcher.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/tech-researcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,KAAK,aAAa,EAAa,MAAM,IAAI,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tech-researcher.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/tech-researcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,KAAK,aAAa,EAAa,MAAM,IAAI,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ3G;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAuCxD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAgClE;AAwFD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,kBAAkB,CAAC,CA0D7B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAiC/B"}
|
|
@@ -10,6 +10,75 @@ import { isReasoningModel } from '../providers.js';
|
|
|
10
10
|
import { logger } from '../../utils/logger.js';
|
|
11
11
|
import { parseJsonSafe } from '../../utils/json-repair.js';
|
|
12
12
|
import { getTracedAI } from '../../utils/tracing.js';
|
|
13
|
+
/**
|
|
14
|
+
* Documentation hints mapping for common technologies
|
|
15
|
+
* Used to provide useful links when AI research fails or as supplements
|
|
16
|
+
* Exported for testing
|
|
17
|
+
*/
|
|
18
|
+
export const DOCUMENTATION_HINTS = {
|
|
19
|
+
// MCP ecosystem
|
|
20
|
+
'MCP': ['https://modelcontextprotocol.io/docs', 'https://modelcontextprotocol.io/docs/tools/inspector'],
|
|
21
|
+
'MCP Server': ['https://modelcontextprotocol.io/docs', 'https://modelcontextprotocol.io/docs/tools/inspector'],
|
|
22
|
+
'@modelcontextprotocol/sdk': ['https://modelcontextprotocol.io/docs/tools/inspector'],
|
|
23
|
+
// Frontend frameworks
|
|
24
|
+
'Next.js': ['https://nextjs.org/docs/app', 'https://nextjs.org/docs/app/building-your-application'],
|
|
25
|
+
'React': ['https://react.dev', 'https://react.dev/learn'],
|
|
26
|
+
'Vue': ['https://vuejs.org/guide', 'https://vuejs.org/api'],
|
|
27
|
+
'Svelte': ['https://svelte.dev/docs', 'https://kit.svelte.dev/docs'],
|
|
28
|
+
'Nuxt': ['https://nuxt.com/docs', 'https://nuxt.com/docs/api'],
|
|
29
|
+
// Backend frameworks
|
|
30
|
+
'Express': ['https://expressjs.com/en/guide', 'https://expressjs.com/en/api.html'],
|
|
31
|
+
'Fastify': ['https://fastify.dev/docs/latest', 'https://fastify.dev/docs/latest/Guides/Getting-Started'],
|
|
32
|
+
'Hono': ['https://hono.dev/docs', 'https://hono.dev/docs/guides'],
|
|
33
|
+
'NestJS': ['https://docs.nestjs.com', 'https://docs.nestjs.com/first-steps'],
|
|
34
|
+
// Testing
|
|
35
|
+
'Vitest': ['https://vitest.dev/guide', 'https://vitest.dev/api'],
|
|
36
|
+
'Jest': ['https://jestjs.io/docs/getting-started', 'https://jestjs.io/docs/api'],
|
|
37
|
+
'Playwright': ['https://playwright.dev/docs/intro', 'https://playwright.dev/docs/api/class-test'],
|
|
38
|
+
// Validation
|
|
39
|
+
'Zod': ['https://zod.dev', 'https://zod.dev/?id=primitives'],
|
|
40
|
+
'Yup': ['https://github.com/jquense/yup#api'],
|
|
41
|
+
// Database
|
|
42
|
+
'Prisma': ['https://www.prisma.io/docs', 'https://www.prisma.io/docs/orm/prisma-client'],
|
|
43
|
+
'Drizzle': ['https://orm.drizzle.team/docs/overview', 'https://orm.drizzle.team/docs/sql-schema-declaration'],
|
|
44
|
+
'Supabase': ['https://supabase.com/docs', 'https://supabase.com/docs/guides/database'],
|
|
45
|
+
// TypeScript
|
|
46
|
+
'TypeScript': ['https://www.typescriptlang.org/docs', 'https://www.typescriptlang.org/docs/handbook'],
|
|
47
|
+
// CLI tools
|
|
48
|
+
'Commander': ['https://github.com/tj/commander.js#readme'],
|
|
49
|
+
'Yargs': ['https://yargs.js.org/docs'],
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Get documentation hints for a technology
|
|
53
|
+
* Exported for testing
|
|
54
|
+
*/
|
|
55
|
+
export function getDocumentationHints(technology) {
|
|
56
|
+
// Direct match
|
|
57
|
+
if (DOCUMENTATION_HINTS[technology]) {
|
|
58
|
+
return DOCUMENTATION_HINTS[technology];
|
|
59
|
+
}
|
|
60
|
+
// Empty string should return generic fallback
|
|
61
|
+
if (!technology.trim()) {
|
|
62
|
+
return [`Check official ${technology} documentation`];
|
|
63
|
+
}
|
|
64
|
+
const lowerTech = technology.toLowerCase();
|
|
65
|
+
// Case-insensitive exact match first
|
|
66
|
+
for (const [key, hints] of Object.entries(DOCUMENTATION_HINTS)) {
|
|
67
|
+
if (key.toLowerCase() === lowerTech) {
|
|
68
|
+
return hints;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Partial match - prefer longer keys to avoid "React" matching "React Native"
|
|
72
|
+
// Sort keys by length descending so longer/more specific matches win
|
|
73
|
+
const sortedKeys = Object.keys(DOCUMENTATION_HINTS).sort((a, b) => b.length - a.length);
|
|
74
|
+
for (const key of sortedKeys) {
|
|
75
|
+
const lowerKey = key.toLowerCase();
|
|
76
|
+
if (lowerTech.includes(lowerKey) || lowerKey.includes(lowerTech)) {
|
|
77
|
+
return DOCUMENTATION_HINTS[key];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return [`Check official ${technology} documentation`];
|
|
81
|
+
}
|
|
13
82
|
/**
|
|
14
83
|
* Get the current year for dynamic prompt generation
|
|
15
84
|
*/
|
|
@@ -212,6 +281,7 @@ function parseTechResearch(text, steps, technology, researchMode, verbose) {
|
|
|
212
281
|
}
|
|
213
282
|
/**
|
|
214
283
|
* Get default tech research when parsing fails
|
|
284
|
+
* Uses the DOCUMENTATION_HINTS mapping for relevant URLs
|
|
215
285
|
*/
|
|
216
286
|
function getDefaultTechResearch(technology, researchMode) {
|
|
217
287
|
return {
|
|
@@ -219,7 +289,7 @@ function getDefaultTechResearch(technology, researchMode) {
|
|
|
219
289
|
bestPractices: ['Follow official documentation', 'Use TypeScript for type safety'],
|
|
220
290
|
antiPatterns: ['Avoid deprecated APIs', 'Don\'t skip error handling'],
|
|
221
291
|
testingTips: ['Write unit tests for core logic', 'Test edge cases'],
|
|
222
|
-
documentationHints:
|
|
292
|
+
documentationHints: getDocumentationHints(technology),
|
|
223
293
|
researchMode,
|
|
224
294
|
};
|
|
225
295
|
}
|