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.
Files changed (35) hide show
  1. package/dist/ai/agents/context-enricher.d.ts +10 -0
  2. package/dist/ai/agents/context-enricher.d.ts.map +1 -1
  3. package/dist/ai/agents/context-enricher.js +63 -4
  4. package/dist/ai/agents/context-enricher.js.map +1 -1
  5. package/dist/ai/agents/index.js +3 -2
  6. package/dist/ai/agents/index.js.map +1 -1
  7. package/dist/ai/agents/mcp-detector.d.ts +3 -2
  8. package/dist/ai/agents/mcp-detector.d.ts.map +1 -1
  9. package/dist/ai/agents/mcp-detector.js +23 -3
  10. package/dist/ai/agents/mcp-detector.js.map +1 -1
  11. package/dist/ai/agents/stack-researcher.js +2 -0
  12. package/dist/ai/agents/stack-researcher.js.map +1 -1
  13. package/dist/ai/agents/synthesis-agent.d.ts.map +1 -1
  14. package/dist/ai/agents/synthesis-agent.js +32 -9
  15. package/dist/ai/agents/synthesis-agent.js.map +1 -1
  16. package/dist/ai/agents/tech-researcher.d.ts +11 -0
  17. package/dist/ai/agents/tech-researcher.d.ts.map +1 -1
  18. package/dist/ai/agents/tech-researcher.js +71 -1
  19. package/dist/ai/agents/tech-researcher.js.map +1 -1
  20. package/dist/ai/agents/types.d.ts +2 -0
  21. package/dist/ai/agents/types.d.ts.map +1 -1
  22. package/dist/ai/enhancer.js +1 -1
  23. package/dist/ai/enhancer.js.map +1 -1
  24. package/package.json +1 -1
  25. package/src/ai/agents/context-enricher.test.ts +190 -0
  26. package/src/ai/agents/context-enricher.ts +69 -4
  27. package/src/ai/agents/index.ts +3 -2
  28. package/src/ai/agents/mcp-detector.test.ts +64 -9
  29. package/src/ai/agents/mcp-detector.ts +23 -3
  30. package/src/ai/agents/stack-researcher.ts +2 -0
  31. package/src/ai/agents/synthesis-agent.ts +46 -9
  32. package/src/ai/agents/tech-researcher.test.ts +156 -0
  33. package/src/ai/agents/tech-researcher.ts +86 -1
  34. package/src/ai/agents/types.ts +2 -0
  35. 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;AA+ExE;;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"}
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": {"What is the auth strategy?": "NextAuth with JWT"},
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: parsed.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: {}, // Empty = not discovered
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":"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"}
1
+ {"version":3,"file":"context-enricher.js","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"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"}
@@ -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
- * - Playwright: Always recommended for E2E testing
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;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAsG3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,eAAe,GAAG;IAC5E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAkBA"}
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
- * - Playwright: Always recommended for E2E testing
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: 'playwright', // Always recommend Playwright for ralph loop
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":"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"}
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;AAiDpB;;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"}
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: [], // Not collected in new format
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":"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"}
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;AA8F3G;;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"}
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: [`Check official ${technology} documentation`],
292
+ documentationHints: getDocumentationHints(technology),
223
293
  researchMode,
224
294
  };
225
295
  }