wiggum-cli 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +6 -4
  2. package/dist/ai/agents/codebase-analyst.d.ts +3 -0
  3. package/dist/ai/agents/codebase-analyst.d.ts.map +1 -1
  4. package/dist/ai/agents/codebase-analyst.js +3 -0
  5. package/dist/ai/agents/codebase-analyst.js.map +1 -1
  6. package/dist/ai/agents/context-enricher.d.ts +11 -0
  7. package/dist/ai/agents/context-enricher.d.ts.map +1 -0
  8. package/dist/ai/agents/context-enricher.js +163 -0
  9. package/dist/ai/agents/context-enricher.js.map +1 -0
  10. package/dist/ai/agents/evaluator-optimizer.d.ts +13 -0
  11. package/dist/ai/agents/evaluator-optimizer.d.ts.map +1 -0
  12. package/dist/ai/agents/evaluator-optimizer.js +231 -0
  13. package/dist/ai/agents/evaluator-optimizer.js.map +1 -0
  14. package/dist/ai/agents/index.d.ts +21 -3
  15. package/dist/ai/agents/index.d.ts.map +1 -1
  16. package/dist/ai/agents/index.js +158 -53
  17. package/dist/ai/agents/index.js.map +1 -1
  18. package/dist/ai/agents/mcp-detector.d.ts +26 -0
  19. package/dist/ai/agents/mcp-detector.d.ts.map +1 -0
  20. package/dist/ai/agents/mcp-detector.js +186 -0
  21. package/dist/ai/agents/mcp-detector.js.map +1 -0
  22. package/dist/ai/agents/orchestrator.d.ts +3 -0
  23. package/dist/ai/agents/orchestrator.d.ts.map +1 -1
  24. package/dist/ai/agents/orchestrator.js +3 -0
  25. package/dist/ai/agents/orchestrator.js.map +1 -1
  26. package/dist/ai/agents/planning-orchestrator.d.ts +12 -0
  27. package/dist/ai/agents/planning-orchestrator.d.ts.map +1 -0
  28. package/dist/ai/agents/planning-orchestrator.js +133 -0
  29. package/dist/ai/agents/planning-orchestrator.js.map +1 -0
  30. package/dist/ai/agents/stack-researcher.d.ts +3 -0
  31. package/dist/ai/agents/stack-researcher.d.ts.map +1 -1
  32. package/dist/ai/agents/stack-researcher.js +3 -0
  33. package/dist/ai/agents/stack-researcher.js.map +1 -1
  34. package/dist/ai/agents/stack-utils.d.ts +11 -0
  35. package/dist/ai/agents/stack-utils.d.ts.map +1 -0
  36. package/dist/ai/agents/stack-utils.js +27 -0
  37. package/dist/ai/agents/stack-utils.js.map +1 -0
  38. package/dist/ai/agents/synthesis-agent.d.ts +11 -0
  39. package/dist/ai/agents/synthesis-agent.d.ts.map +1 -0
  40. package/dist/ai/agents/synthesis-agent.js +202 -0
  41. package/dist/ai/agents/synthesis-agent.js.map +1 -0
  42. package/dist/ai/agents/tech-researcher.d.ts +16 -0
  43. package/dist/ai/agents/tech-researcher.d.ts.map +1 -0
  44. package/dist/ai/agents/tech-researcher.js +208 -0
  45. package/dist/ai/agents/tech-researcher.js.map +1 -0
  46. package/dist/ai/agents/types.d.ts +121 -0
  47. package/dist/ai/agents/types.d.ts.map +1 -1
  48. package/dist/ai/agents/types.js +6 -0
  49. package/dist/ai/agents/types.js.map +1 -1
  50. package/dist/ai/index.d.ts +1 -1
  51. package/dist/ai/index.d.ts.map +1 -1
  52. package/dist/ai/index.js +14 -2
  53. package/dist/ai/index.js.map +1 -1
  54. package/dist/commands/init.d.ts.map +1 -1
  55. package/dist/commands/init.js +9 -2
  56. package/dist/commands/init.js.map +1 -1
  57. package/dist/utils/json-repair.d.ts.map +1 -1
  58. package/dist/utils/json-repair.js +43 -0
  59. package/dist/utils/json-repair.js.map +1 -1
  60. package/dist/utils/tracing.d.ts +5 -0
  61. package/dist/utils/tracing.d.ts.map +1 -1
  62. package/dist/utils/tracing.js +40 -1
  63. package/dist/utils/tracing.js.map +1 -1
  64. package/package.json +5 -2
  65. package/src/ai/agents/codebase-analyst.ts +3 -0
  66. package/src/ai/agents/context-enricher.ts +189 -0
  67. package/src/ai/agents/evaluator-optimizer.ts +277 -0
  68. package/src/ai/agents/index.ts +205 -77
  69. package/src/ai/agents/mcp-detector.test.ts +290 -0
  70. package/src/ai/agents/mcp-detector.ts +210 -0
  71. package/src/ai/agents/orchestrator.ts +3 -0
  72. package/src/ai/agents/planning-orchestrator.ts +140 -0
  73. package/src/ai/agents/stack-researcher.ts +3 -0
  74. package/src/ai/agents/stack-utils.ts +34 -0
  75. package/src/ai/agents/synthesis-agent.ts +240 -0
  76. package/src/ai/agents/tech-researcher.ts +262 -0
  77. package/src/ai/agents/types.ts +153 -0
  78. package/src/ai/index.ts +26 -5
  79. package/src/commands/init.ts +10 -2
  80. package/src/utils/json-repair.ts +50 -0
  81. package/src/utils/tracing.ts +44 -1
  82. package/tsconfig.json +1 -1
  83. package/vitest.config.ts +7 -0
@@ -1,17 +1,40 @@
1
1
  /**
2
2
  * Agents Index
3
- * Exports all agent types and functions
3
+ * Multi-agent analysis with Orchestrator-Worker + Evaluator-Optimizer pattern
4
+ *
5
+ * Architecture:
6
+ * Phase 1: Planning Orchestrator (creates analysis plan)
7
+ * Phase 2: Parallel Workers (context enricher + tech researchers)
8
+ * Phase 3: Synthesis (merge results + MCP detection)
9
+ * Phase 4: Evaluator-Optimizer (QA loop)
4
10
  */
5
- // Agents
11
+ // New architecture exports
12
+ export { runPlanningOrchestrator } from './planning-orchestrator.js';
13
+ export { runContextEnricher } from './context-enricher.js';
14
+ export { runTechResearcher, runTechResearchPool } from './tech-researcher.js';
15
+ export { detectRalphMcpServers, convertToLegacyMcpRecommendations } from './mcp-detector.js';
16
+ export { runSynthesisAgent } from './synthesis-agent.js';
17
+ export { runEvaluatorOptimizer } from './evaluator-optimizer.js';
18
+ export { detectProjectType } from './stack-utils.js';
19
+ // Legacy exports (for backward compatibility during migration)
6
20
  export { runCodebaseAnalyst } from './codebase-analyst.js';
7
21
  export { runStackResearcher } from './stack-researcher.js';
8
22
  export { runOrchestrator, mergeAgentResults } from './orchestrator.js';
9
- import { runCodebaseAnalyst } from './codebase-analyst.js';
10
- import { runStackResearcher } from './stack-researcher.js';
11
- import { runOrchestrator, mergeAgentResults } from './orchestrator.js';
23
+ import { runPlanningOrchestrator } from './planning-orchestrator.js';
24
+ import { runContextEnricher } from './context-enricher.js';
25
+ import { runTechResearchPool } from './tech-researcher.js';
26
+ import { detectRalphMcpServers } from './mcp-detector.js';
27
+ import { runSynthesisAgent } from './synthesis-agent.js';
28
+ import { runEvaluatorOptimizer } from './evaluator-optimizer.js';
29
+ import { detectProjectType } from './stack-utils.js';
12
30
  import { logger } from '../../utils/logger.js';
13
31
  /**
14
- * Run the full multi-agent analysis pipeline
32
+ * Run the full multi-agent analysis pipeline (new architecture)
33
+ *
34
+ * Phase 1: Planning Orchestrator - Creates focused analysis plan
35
+ * Phase 2: Parallel Workers - Context enricher + tech researchers run concurrently
36
+ * Phase 3: Synthesis - Merges results + detects MCPs
37
+ * Phase 4: Evaluator-Optimizer - QA loop (max 2 iterations)
15
38
  */
16
39
  export async function runMultiAgentAnalysis(model, modelId, scanResult, options = {}) {
17
40
  const { tavilyApiKey, context7ApiKey, verbose = false } = options;
@@ -21,65 +44,147 @@ export async function runMultiAgentAnalysis(model, modelId, scanResult, options
21
44
  hasContext7: !!context7ApiKey,
22
45
  };
23
46
  if (verbose) {
24
- logger.info('Starting multi-agent analysis...');
47
+ logger.info('Starting multi-agent analysis (4-phase architecture)...');
25
48
  logger.info(`Capabilities: Tavily=${capabilities.hasTavily}, Context7=${capabilities.hasContext7}`);
26
49
  }
27
- // Run Codebase Analyst
28
- if (verbose) {
29
- logger.info('Running Codebase Analyst...');
30
- }
31
- const codebaseAnalysis = await runCodebaseAnalyst(model, modelId, {
32
- scanResult,
33
- projectRoot: scanResult.projectRoot,
34
- }, verbose);
35
- if (!codebaseAnalysis) {
50
+ try {
51
+ // ═══════════════════════════════════════════════════════════════
52
+ // PHASE 1: Planning Orchestrator
53
+ // ═══════════════════════════════════════════════════════════════
36
54
  if (verbose) {
37
- logger.warn('Codebase Analyst failed, using defaults');
55
+ logger.info('Phase 1: Creating analysis plan...');
38
56
  }
39
- return null;
40
- }
41
- // Run Stack Researcher
42
- if (verbose) {
43
- logger.info('Running Stack Researcher...');
44
- }
45
- const stackResearch = await runStackResearcher(model, modelId, {
46
- stack: scanResult.stack,
47
- projectType: codebaseAnalysis.projectContext.projectType,
48
- capabilities,
49
- }, { tavilyApiKey, context7ApiKey }, verbose);
50
- if (!stackResearch) {
57
+ const plan = await runPlanningOrchestrator(model, modelId, scanResult, verbose);
51
58
  if (verbose) {
52
- logger.warn('Stack Researcher failed, using defaults');
59
+ logger.info(`Plan: ${plan.areasToExplore.length} areas, ${plan.technologiesToResearch.length} techs, complexity=${plan.estimatedComplexity}`);
53
60
  }
54
- // Continue with defaults - stack research is optional
55
- }
56
- // Run Orchestrator to merge results
57
- if (verbose) {
58
- logger.info('Running Orchestrator...');
61
+ // ═══════════════════════════════════════════════════════════════
62
+ // PHASE 2: Parallel Workers
63
+ // ═══════════════════════════════════════════════════════════════
64
+ if (verbose) {
65
+ logger.info('Phase 2: Running parallel workers...');
66
+ }
67
+ // Run context enricher and tech researchers in parallel with error recovery
68
+ const [contextResult, researchResult] = await Promise.allSettled([
69
+ runContextEnricher(model, modelId, {
70
+ scanResult,
71
+ areasToExplore: plan.areasToExplore,
72
+ questionsToAnswer: plan.questionsToAnswer,
73
+ }, verbose),
74
+ runTechResearchPool(model, modelId, plan.technologiesToResearch, { tavilyApiKey, context7ApiKey }, verbose),
75
+ ]);
76
+ // Extract results with fallbacks for failed workers
77
+ const enrichedContext = contextResult.status === 'fulfilled'
78
+ ? contextResult.value
79
+ : getDefaultEnrichedContext(scanResult);
80
+ const techResearch = researchResult.status === 'fulfilled'
81
+ ? researchResult.value
82
+ : [];
83
+ // Log any worker failures
84
+ if (contextResult.status === 'rejected') {
85
+ logger.warn(`Context Enricher failed: ${contextResult.reason instanceof Error ? contextResult.reason.message : String(contextResult.reason)}`);
86
+ }
87
+ if (researchResult.status === 'rejected') {
88
+ logger.warn(`Tech Research Pool failed: ${researchResult.reason instanceof Error ? researchResult.reason.message : String(researchResult.reason)}`);
89
+ }
90
+ if (verbose) {
91
+ logger.info(`Context: ${enrichedContext.entryPoints.length} entry points, type=${enrichedContext.projectType}`);
92
+ logger.info(`Research: ${techResearch.length} technologies researched`);
93
+ }
94
+ // ═══════════════════════════════════════════════════════════════
95
+ // PHASE 3: Synthesis + MCP Detection
96
+ // ═══════════════════════════════════════════════════════════════
97
+ if (verbose) {
98
+ logger.info('Phase 3: Synthesizing results...');
99
+ }
100
+ // Detect MCPs (pure function, no LLM)
101
+ const mcpServers = detectRalphMcpServers(scanResult.stack);
102
+ if (verbose) {
103
+ logger.info(`MCPs: e2e=${mcpServers.e2eTesting}, db=${mcpServers.database || 'none'}, additional=${mcpServers.additional.length}`);
104
+ }
105
+ // Run synthesis agent
106
+ const synthesizedResult = await runSynthesisAgent(model, modelId, {
107
+ enrichedContext,
108
+ techResearch,
109
+ mcpServers,
110
+ plan,
111
+ stack: scanResult.stack,
112
+ }, verbose);
113
+ // ═══════════════════════════════════════════════════════════════
114
+ // PHASE 4: Evaluator-Optimizer QA Loop
115
+ // ═══════════════════════════════════════════════════════════════
116
+ if (verbose) {
117
+ logger.info('Phase 4: Running QA evaluation...');
118
+ }
119
+ const finalResult = await runEvaluatorOptimizer(model, modelId, synthesizedResult, scanResult, 2, // Max 2 iterations
120
+ verbose);
121
+ if (verbose) {
122
+ logger.info('Multi-agent analysis complete (4-phase architecture)');
123
+ }
124
+ return finalResult;
59
125
  }
60
- const mcpServers = await runOrchestrator(model, modelId, {
61
- codebaseAnalysis,
62
- stackResearch: stackResearch || getDefaultStackResearch(),
63
- stack: scanResult.stack,
64
- }, verbose);
65
- // Merge all results
66
- const finalResult = mergeAgentResults(codebaseAnalysis, stackResearch || getDefaultStackResearch(), mcpServers);
67
- if (verbose) {
68
- logger.info('Multi-agent analysis complete');
126
+ catch (error) {
127
+ logger.error(`Multi-agent analysis failed: ${error instanceof Error ? error.message : String(error)}`);
128
+ // Fall back to default result
129
+ return getDefaultMultiAgentAnalysis(scanResult);
69
130
  }
70
- return finalResult;
71
131
  }
72
132
  /**
73
- * Get default stack research when agent fails
133
+ * Get default analysis result when pipeline fails
134
+ */
135
+ function getDefaultMultiAgentAnalysis(scanResult) {
136
+ const projectType = detectProjectType(scanResult.stack);
137
+ return {
138
+ codebaseAnalysis: {
139
+ projectContext: {
140
+ entryPoints: ['src/index.ts'],
141
+ keyDirectories: { src: 'Source code' },
142
+ namingConventions: 'camelCase',
143
+ projectType,
144
+ },
145
+ commands: {
146
+ test: 'npm test',
147
+ lint: 'npm run lint',
148
+ build: 'npm run build',
149
+ dev: 'npm run dev',
150
+ },
151
+ implementationGuidelines: [
152
+ 'Follow existing patterns',
153
+ 'Run tests after changes',
154
+ 'Use TypeScript strict mode',
155
+ ],
156
+ possibleMissedTechnologies: [],
157
+ },
158
+ stackResearch: {
159
+ bestPractices: ['Follow project conventions'],
160
+ antiPatterns: ['Avoid skipping tests'],
161
+ testingTools: ['npm test'],
162
+ debuggingTools: ['console.log'],
163
+ documentationHints: ['Check official docs'],
164
+ researchMode: 'knowledge-only',
165
+ },
166
+ mcpServers: {
167
+ essential: ['filesystem', 'git', 'playwright'],
168
+ recommended: [],
169
+ },
170
+ };
171
+ }
172
+ /**
173
+ * Get default enriched context when Context Enricher fails
74
174
  */
75
- function getDefaultStackResearch() {
175
+ function getDefaultEnrichedContext(scanResult) {
176
+ const projectType = detectProjectType(scanResult.stack);
76
177
  return {
77
- bestPractices: ['Follow project conventions'],
78
- antiPatterns: ['Avoid skipping tests'],
79
- testingTools: ['npm test'],
80
- debuggingTools: ['console.log'],
81
- documentationHints: ['Check official docs'],
82
- researchMode: 'knowledge-only',
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,
83
188
  };
84
189
  }
85
190
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/agents/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAUvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAoB,EACpB,OAAe,EACf,UAAsB,EACtB,UAAwB,EAAE;IAE1B,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAElE,yBAAyB;IACzB,MAAM,YAAY,GAAsB;QACtC,SAAS,EAAE,CAAC,CAAC,YAAY;QACzB,WAAW,EAAE,CAAC,CAAC,cAAc;KAC9B,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,wBAAwB,YAAY,CAAC,SAAS,cAAc,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAC/C,KAAK,EACL,OAAO,EACP;QACE,UAAU;QACV,WAAW,EAAE,UAAU,CAAC,WAAW;KACpC,EACD,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAC5C,KAAK,EACL,OAAO,EACP;QACE,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAAC,WAAW;QACxD,YAAY;KACb,EACD,EAAE,YAAY,EAAE,cAAc,EAAE,EAChC,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;QACD,sDAAsD;IACxD,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,eAAe,CACtC,KAAK,EACL,OAAO,EACP;QACE,gBAAgB;QAChB,aAAa,EAAE,aAAa,IAAI,uBAAuB,EAAE;QACzD,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,EACD,OAAO,CACR,CAAC;IAEF,oBAAoB;IACpB,MAAM,WAAW,GAAG,iBAAiB,CACnC,gBAAgB,EAChB,aAAa,IAAI,uBAAuB,EAAE,EAC1C,UAAU,CACX,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB;IAC9B,OAAO;QACL,aAAa,EAAE,CAAC,4BAA4B,CAAC;QAC7C,YAAY,EAAE,CAAC,sBAAsB,CAAC;QACtC,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,kBAAkB,EAAE,CAAC,qBAAqB,CAAC;QAC3C,YAAY,EAAE,gBAAyB;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/agents/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * MCP Detector (Phase 3 helper)
3
+ * Detects ralph-essential MCP servers based on the detected stack
4
+ *
5
+ * This is a pure function (no LLM) - uses rule-based detection for efficiency
6
+ */
7
+ import type { DetectedStack } from '../../scanner/types.js';
8
+ import type { RalphMcpServers } from './types.js';
9
+ /**
10
+ * Detect ralph-essential MCP servers from the stack
11
+ *
12
+ * Ralph loop essentials:
13
+ * - Playwright: Always recommended for E2E testing
14
+ * - Database MCP: If database is detected
15
+ * - Additional MCPs based on services and deployment
16
+ */
17
+ export declare function detectRalphMcpServers(stack: DetectedStack): RalphMcpServers;
18
+ /**
19
+ * Convert RalphMcpServers to the legacy McpRecommendations format
20
+ * for backward compatibility with existing code
21
+ */
22
+ export declare function convertToLegacyMcpRecommendations(ralphMcp: RalphMcpServers): {
23
+ essential: string[];
24
+ recommended: string[];
25
+ };
26
+ //# sourceMappingURL=mcp-detector.d.ts.map
@@ -0,0 +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;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,eAAe,GAAG;IAC5E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAiBA"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * MCP Detector (Phase 3 helper)
3
+ * Detects ralph-essential MCP servers based on the detected stack
4
+ *
5
+ * This is a pure function (no LLM) - uses rule-based detection for efficiency
6
+ */
7
+ /**
8
+ * Database name to MCP server mapping
9
+ */
10
+ const DATABASE_MCP_MAP = {
11
+ supabase: 'supabase',
12
+ convex: 'convex',
13
+ postgres: 'postgres',
14
+ postgresql: 'postgres',
15
+ sqlite: 'sqlite',
16
+ firebase: 'firebase',
17
+ firestore: 'firebase',
18
+ mongodb: 'mongodb',
19
+ mysql: 'mysql',
20
+ redis: 'redis',
21
+ planetscale: 'planetscale',
22
+ neon: 'postgres', // Neon is PostgreSQL-compatible
23
+ turso: 'sqlite', // Turso is SQLite-compatible
24
+ };
25
+ /**
26
+ * Framework-specific MCP recommendations
27
+ */
28
+ const FRAMEWORK_MCP_MAP = {
29
+ 'next.js': ['vercel'],
30
+ 'nextjs': ['vercel'],
31
+ 'vercel': ['vercel'],
32
+ 'remix': [],
33
+ 'astro': [],
34
+ 'nuxt': [],
35
+ 'sveltekit': [],
36
+ };
37
+ /**
38
+ * Service-specific MCP recommendations
39
+ */
40
+ const SERVICE_MCP_MAP = {
41
+ stripe: 'stripe',
42
+ clerk: 'clerk',
43
+ auth0: 'auth0',
44
+ github: 'github',
45
+ gitlab: 'gitlab',
46
+ aws: 'aws',
47
+ gcp: 'gcp',
48
+ azure: 'azure',
49
+ docker: 'docker',
50
+ kubernetes: 'kubernetes',
51
+ k8s: 'kubernetes',
52
+ posthog: 'posthog',
53
+ sentry: 'sentry',
54
+ resend: 'resend',
55
+ sendgrid: 'sendgrid',
56
+ twilio: 'twilio',
57
+ };
58
+ /**
59
+ * Detect ralph-essential MCP servers from the stack
60
+ *
61
+ * Ralph loop essentials:
62
+ * - Playwright: Always recommended for E2E testing
63
+ * - Database MCP: If database is detected
64
+ * - Additional MCPs based on services and deployment
65
+ */
66
+ export function detectRalphMcpServers(stack) {
67
+ const result = {
68
+ e2eTesting: 'playwright', // Always recommend Playwright for ralph loop
69
+ additional: [],
70
+ };
71
+ // Detect database MCP
72
+ if (stack.database) {
73
+ const dbName = stack.database.name.toLowerCase();
74
+ // Check direct mapping
75
+ for (const [key, mcp] of Object.entries(DATABASE_MCP_MAP)) {
76
+ if (dbName.includes(key)) {
77
+ result.database = mcp;
78
+ break;
79
+ }
80
+ }
81
+ }
82
+ // Check ORM for database hints
83
+ if (!result.database && stack.orm) {
84
+ const ormName = stack.orm.name.toLowerCase();
85
+ if (ormName.includes('prisma') || ormName.includes('drizzle')) {
86
+ // These ORMs often use PostgreSQL by default
87
+ // But we don't set a default - let it be detected from actual DB config
88
+ }
89
+ }
90
+ // Detect framework-specific MCPs
91
+ if (stack.framework) {
92
+ const frameworkName = stack.framework.name.toLowerCase();
93
+ for (const [key, mcps] of Object.entries(FRAMEWORK_MCP_MAP)) {
94
+ if (frameworkName.includes(key)) {
95
+ result.additional.push(...mcps);
96
+ break;
97
+ }
98
+ }
99
+ }
100
+ // Detect deployment MCPs
101
+ if (stack.deployment) {
102
+ for (const deploy of stack.deployment) {
103
+ const deployName = deploy.name.toLowerCase();
104
+ if (deployName.includes('docker')) {
105
+ addIfNotExists(result.additional, 'docker');
106
+ }
107
+ if (deployName.includes('vercel')) {
108
+ addIfNotExists(result.additional, 'vercel');
109
+ }
110
+ if (deployName.includes('railway')) {
111
+ addIfNotExists(result.additional, 'railway');
112
+ }
113
+ }
114
+ }
115
+ // Detect auth provider MCPs
116
+ if (stack.auth) {
117
+ const authName = stack.auth.name.toLowerCase();
118
+ for (const [key, mcp] of Object.entries(SERVICE_MCP_MAP)) {
119
+ if (authName.includes(key)) {
120
+ addIfNotExists(result.additional, mcp);
121
+ break;
122
+ }
123
+ }
124
+ }
125
+ // Detect analytics MCPs
126
+ if (stack.analytics) {
127
+ for (const analytics of stack.analytics) {
128
+ const analyticsName = analytics.name.toLowerCase();
129
+ for (const [key, mcp] of Object.entries(SERVICE_MCP_MAP)) {
130
+ if (analyticsName.includes(key)) {
131
+ addIfNotExists(result.additional, mcp);
132
+ break;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ // Detect payment MCPs
138
+ if (stack.payments) {
139
+ const paymentName = stack.payments.name.toLowerCase();
140
+ for (const [key, mcp] of Object.entries(SERVICE_MCP_MAP)) {
141
+ if (paymentName.includes(key)) {
142
+ addIfNotExists(result.additional, mcp);
143
+ break;
144
+ }
145
+ }
146
+ }
147
+ // Add any MCP recommendations from scanner
148
+ if (stack.mcp?.recommended) {
149
+ for (const rec of stack.mcp.recommended) {
150
+ const normalizedRec = rec.toLowerCase();
151
+ // Skip if it's the database or playwright (already handled)
152
+ if (normalizedRec !== result.database && normalizedRec !== 'playwright') {
153
+ addIfNotExists(result.additional, rec);
154
+ }
155
+ }
156
+ }
157
+ return result;
158
+ }
159
+ /**
160
+ * Convert RalphMcpServers to the legacy McpRecommendations format
161
+ * for backward compatibility with existing code
162
+ */
163
+ export function convertToLegacyMcpRecommendations(ralphMcp) {
164
+ const essential = ['filesystem', 'git'];
165
+ // Add E2E testing as essential for ralph
166
+ if (ralphMcp.e2eTesting) {
167
+ essential.push(ralphMcp.e2eTesting);
168
+ }
169
+ // Add database as essential if detected
170
+ if (ralphMcp.database) {
171
+ essential.push(ralphMcp.database);
172
+ }
173
+ return {
174
+ essential,
175
+ recommended: ralphMcp.additional,
176
+ };
177
+ }
178
+ /**
179
+ * Helper to add item to array if not already present
180
+ */
181
+ function addIfNotExists(arr, item) {
182
+ if (!arr.includes(item)) {
183
+ arr.push(item);
184
+ }
185
+ }
186
+ //# sourceMappingURL=mcp-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-detector.js","sourceRoot":"","sources":["../../../src/ai/agents/mcp-detector.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * Orchestrator Agent
3
3
  * Coordinates the multi-agent analysis and merges results
4
+ *
5
+ * @deprecated Use runPlanningOrchestrator + runSynthesisAgent instead.
6
+ * This agent is kept for backward compatibility.
4
7
  */
5
8
  import type { LanguageModel } from 'ai';
6
9
  import type { CodebaseAnalysis, StackResearch, MultiAgentAnalysis, McpRecommendations, OrchestratorInput } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA+CpB;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,kBAAkB,CAAC,CA2B7B;AA8GD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,kBAAkB,GAC7B,kBAAkB,CAMpB"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA+CpB;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,kBAAkB,CAAC,CA2B7B;AA8GD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,kBAAkB,GAC7B,kBAAkB,CAMpB"}
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * Orchestrator Agent
3
3
  * Coordinates the multi-agent analysis and merges results
4
+ *
5
+ * @deprecated Use runPlanningOrchestrator + runSynthesisAgent instead.
6
+ * This agent is kept for backward compatibility.
4
7
  */
5
8
  import { isReasoningModel } from '../providers.js';
6
9
  import { logger } from '../../utils/logger.js';
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/ai/agents/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/ai/agents/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Planning Orchestrator Agent (Phase 1)
3
+ * Creates an analysis plan that guides the parallel workers
4
+ */
5
+ import { type LanguageModel } from 'ai';
6
+ import type { ScanResult } from '../../scanner/types.js';
7
+ import type { AnalysisPlan } from './types.js';
8
+ /**
9
+ * Run the Planning Orchestrator to create an analysis plan
10
+ */
11
+ export declare function runPlanningOrchestrator(model: LanguageModel, modelId: string, scanResult: ScanResult, verbose?: boolean): Promise<AnalysisPlan>;
12
+ //# sourceMappingURL=planning-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/planning-orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwC/C;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,CA2DvB"}