wiggum-cli 0.4.8 → 0.5.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.
- package/dist/ai/agents/codebase-analyzer.d.ts +24 -0
- package/dist/ai/agents/codebase-analyzer.d.ts.map +1 -0
- package/dist/ai/agents/codebase-analyzer.js +375 -0
- package/dist/ai/agents/codebase-analyzer.js.map +1 -0
- package/dist/ai/agents/context-enricher.d.ts +4 -0
- package/dist/ai/agents/context-enricher.d.ts.map +1 -1
- package/dist/ai/agents/context-enricher.js +12 -7
- package/dist/ai/agents/context-enricher.js.map +1 -1
- package/dist/ai/agents/evaluator-optimizer.d.ts +4 -0
- package/dist/ai/agents/evaluator-optimizer.d.ts.map +1 -1
- package/dist/ai/agents/evaluator-optimizer.js +4 -0
- package/dist/ai/agents/evaluator-optimizer.js.map +1 -1
- package/dist/ai/agents/index.d.ts +20 -14
- package/dist/ai/agents/index.d.ts.map +1 -1
- package/dist/ai/agents/index.js +38 -107
- package/dist/ai/agents/index.js.map +1 -1
- package/dist/ai/agents/planning-orchestrator.d.ts +4 -0
- package/dist/ai/agents/planning-orchestrator.d.ts.map +1 -1
- package/dist/ai/agents/planning-orchestrator.js +4 -0
- package/dist/ai/agents/planning-orchestrator.js.map +1 -1
- package/dist/ai/agents/synthesis-agent.d.ts +4 -0
- package/dist/ai/agents/synthesis-agent.d.ts.map +1 -1
- package/dist/ai/agents/synthesis-agent.js +4 -0
- package/dist/ai/agents/synthesis-agent.js.map +1 -1
- package/dist/ai/agents/tech-researcher.d.ts +4 -0
- package/dist/ai/agents/tech-researcher.d.ts.map +1 -1
- package/dist/ai/agents/tech-researcher.js +4 -0
- package/dist/ai/agents/tech-researcher.js.map +1 -1
- package/dist/ai/agents/types.d.ts +8 -0
- package/dist/ai/agents/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ai/agents/codebase-analyzer.test.ts +115 -0
- package/src/ai/agents/codebase-analyzer.ts +450 -0
- package/src/ai/agents/context-enricher.ts +12 -7
- package/src/ai/agents/evaluator-optimizer.ts +4 -0
- package/src/ai/agents/index.ts +45 -146
- package/src/ai/agents/planning-orchestrator.ts +4 -0
- package/src/ai/agents/synthesis-agent.ts +4 -0
- package/src/ai/agents/tech-researcher.ts +4 -0
- package/src/ai/agents/types.ts +9 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Codebase Analyzer (v0.5.0)
|
|
3
|
+
* Single agent that explores codebase and produces full analysis
|
|
4
|
+
* Replaces: planning-orchestrator + context-enricher + tech-researchers + synthesis-agent
|
|
5
|
+
*/
|
|
6
|
+
import { type LanguageModel } from 'ai';
|
|
7
|
+
import type { ScanResult } from '../../scanner/types.js';
|
|
8
|
+
import type { MultiAgentAnalysis } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Input for the Codebase Analyzer
|
|
11
|
+
*/
|
|
12
|
+
export interface CodebaseAnalyzerInput {
|
|
13
|
+
scanResult: ScanResult;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Run the unified Codebase Analyzer
|
|
17
|
+
*/
|
|
18
|
+
export declare function runCodebaseAnalyzer(model: LanguageModel, modelId: string, input: CodebaseAnalyzerInput, verbose?: boolean): Promise<MultiAgentAnalysis>;
|
|
19
|
+
/**
|
|
20
|
+
* Derive entry points from package.json
|
|
21
|
+
* Exported for testing
|
|
22
|
+
*/
|
|
23
|
+
export declare function deriveEntryPointsFromPackageJson(projectRoot: string): string[];
|
|
24
|
+
//# sourceMappingURL=codebase-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-analyzer.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/codebase-analyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAoD,MAAM,YAAY,CAAC;AAUvG;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAC;CACxB;AA0FD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,EAC5B,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAkF7B;AAoHD;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAkC9E"}
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Codebase Analyzer (v0.5.0)
|
|
3
|
+
* Single agent that explores codebase and produces full analysis
|
|
4
|
+
* Replaces: planning-orchestrator + context-enricher + tech-researchers + synthesis-agent
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
import { stepCountIs } from 'ai';
|
|
9
|
+
import { createExplorationTools } from '../tools.js';
|
|
10
|
+
import { isReasoningModel } from '../providers.js';
|
|
11
|
+
import { logger } from '../../utils/logger.js';
|
|
12
|
+
import { parseJsonSafe } from '../../utils/json-repair.js';
|
|
13
|
+
import { getTracedAI } from '../../utils/tracing.js';
|
|
14
|
+
import { detectProjectType } from './stack-utils.js';
|
|
15
|
+
import { detectRalphMcpServers, convertToLegacyMcpRecommendations } from './mcp-detector.js';
|
|
16
|
+
import { deriveCommandsFromScripts } from './context-enricher.js';
|
|
17
|
+
/**
|
|
18
|
+
* System prompt for the unified Codebase Analyzer
|
|
19
|
+
*/
|
|
20
|
+
const CODEBASE_ANALYZER_SYSTEM_PROMPT = `You are a Codebase Analyzer. Your job is to explore a codebase and produce a complete analysis for AI-assisted development.
|
|
21
|
+
|
|
22
|
+
## Your Mission
|
|
23
|
+
Explore the codebase with tools to discover:
|
|
24
|
+
1. Entry points (actual file paths from package.json bin/main/module)
|
|
25
|
+
2. Key directories and their purposes
|
|
26
|
+
3. Project type (CLI, MCP Server, Web App, Library, API)
|
|
27
|
+
4. Implementation patterns actually used in the code
|
|
28
|
+
5. Architecture flow (how data/control flows through the system)
|
|
29
|
+
|
|
30
|
+
## CRITICAL: Tool Usage Limits
|
|
31
|
+
- You have a MAXIMUM of 8 tool calls before you MUST output JSON
|
|
32
|
+
- Call getPackageInfo (no field) FIRST to get bin, main, scripts
|
|
33
|
+
- Call listDirectory on root to see actual structure
|
|
34
|
+
- Explore 1-2 key directories if needed
|
|
35
|
+
- After 5-6 tool calls, STOP exploring and OUTPUT your JSON
|
|
36
|
+
|
|
37
|
+
## Tools Available
|
|
38
|
+
- getPackageInfo: Get package.json info - call with NO field parameter first
|
|
39
|
+
- listDirectory: List directory structure
|
|
40
|
+
- readFile: Read file contents (use sparingly)
|
|
41
|
+
- searchCode: Search using ripgrep patterns (use sparingly)
|
|
42
|
+
|
|
43
|
+
## Project Types & Entry Point Patterns
|
|
44
|
+
- MCP Server: Has @modelcontextprotocol deps → main field or src/index.ts
|
|
45
|
+
- CLI Tool: Has bin entry in package.json → use bin paths directly
|
|
46
|
+
- Next.js App: next in deps → app/page.tsx or pages/index.tsx
|
|
47
|
+
- REST API: Express/Fastify/Hono → main field, app.ts, or server.ts
|
|
48
|
+
- Library: main/module fields → use those paths
|
|
49
|
+
|
|
50
|
+
## Output Requirements
|
|
51
|
+
- entryPoints: ONLY actual file paths discovered (never instructions)
|
|
52
|
+
- Priority: bin > main > module > framework conventions
|
|
53
|
+
- If nothing found, output empty array []
|
|
54
|
+
- keyDirectories: ONLY directories that actually exist with purposes
|
|
55
|
+
- implementationGuidelines: Describe DISCOVERED patterns (5-10 words each)
|
|
56
|
+
- Format: "[Pattern/Tool] for [purpose]"
|
|
57
|
+
- Examples: "Vitest configured for unit testing", "Zod schemas in src/schemas"
|
|
58
|
+
- NOT instructions like "Run npm test"
|
|
59
|
+
- architectureFlow: Describe data/control flow
|
|
60
|
+
- CLI: "CLI entry → command parser → handlers → output"
|
|
61
|
+
- MCP: "Transport → request router → tool handlers → response"
|
|
62
|
+
- API: "HTTP server → middleware → routes → handlers → data"
|
|
63
|
+
|
|
64
|
+
## Output Format
|
|
65
|
+
Output ONLY valid JSON:
|
|
66
|
+
{
|
|
67
|
+
"entryPoints": ["bin/cli.js", "src/index.ts"],
|
|
68
|
+
"keyDirectories": {
|
|
69
|
+
"src/commands": "CLI command implementations",
|
|
70
|
+
"src/handlers": "Request handlers"
|
|
71
|
+
},
|
|
72
|
+
"projectType": "CLI Tool",
|
|
73
|
+
"namingConventions": "camelCase files, PascalCase components",
|
|
74
|
+
"architectureFlow": "CLI parses args → routes to commands → handlers process → output formatted",
|
|
75
|
+
"implementationGuidelines": [
|
|
76
|
+
"Vitest configured for unit testing (npm test)",
|
|
77
|
+
"TypeScript strict mode enabled",
|
|
78
|
+
"Commander for CLI argument parsing",
|
|
79
|
+
"Zod for input validation"
|
|
80
|
+
],
|
|
81
|
+
"technologyNotes": {
|
|
82
|
+
"testingApproach": "Vitest with coverage",
|
|
83
|
+
"buildSystem": "tsup for bundling",
|
|
84
|
+
"keyPatterns": ["Command pattern for CLI", "Dependency injection"]
|
|
85
|
+
}
|
|
86
|
+
}`;
|
|
87
|
+
/**
|
|
88
|
+
* Run the unified Codebase Analyzer
|
|
89
|
+
*/
|
|
90
|
+
export async function runCodebaseAnalyzer(model, modelId, input, verbose = false) {
|
|
91
|
+
const tools = createExplorationTools(input.scanResult.projectRoot);
|
|
92
|
+
const stack = input.scanResult.stack;
|
|
93
|
+
// Build technology summary for context
|
|
94
|
+
const technologies = [];
|
|
95
|
+
if (stack.framework)
|
|
96
|
+
technologies.push(stack.framework.name);
|
|
97
|
+
if (stack.database)
|
|
98
|
+
technologies.push(stack.database.name);
|
|
99
|
+
if (stack.orm)
|
|
100
|
+
technologies.push(stack.orm.name);
|
|
101
|
+
if (stack.testing?.unit)
|
|
102
|
+
technologies.push(stack.testing.unit.name);
|
|
103
|
+
if (stack.testing?.e2e)
|
|
104
|
+
technologies.push(stack.testing.e2e.name);
|
|
105
|
+
if (stack.mcp?.isProject)
|
|
106
|
+
technologies.push('MCP Server');
|
|
107
|
+
const prompt = `Analyze this codebase and produce a complete analysis.
|
|
108
|
+
|
|
109
|
+
Project: ${input.scanResult.projectRoot}
|
|
110
|
+
|
|
111
|
+
## Already Detected (from scanner)
|
|
112
|
+
Framework: ${stack.framework?.name || 'Unknown'}
|
|
113
|
+
Database: ${stack.database?.name || 'None detected'}
|
|
114
|
+
Testing: ${stack.testing?.unit?.name || 'None detected'}
|
|
115
|
+
Package Manager: ${stack.packageManager?.name || 'npm'}
|
|
116
|
+
Technologies: ${technologies.join(', ') || 'None'}
|
|
117
|
+
${stack.mcp?.isProject ? 'This is an MCP Server project.' : ''}
|
|
118
|
+
|
|
119
|
+
Start by calling getPackageInfo() to discover entry points, then explore the structure.
|
|
120
|
+
After exploring, output your complete analysis as JSON.`;
|
|
121
|
+
try {
|
|
122
|
+
const { generateText } = getTracedAI();
|
|
123
|
+
const MAX_TOOL_CALLS = 10;
|
|
124
|
+
const result = await generateText({
|
|
125
|
+
model,
|
|
126
|
+
system: CODEBASE_ANALYZER_SYSTEM_PROMPT,
|
|
127
|
+
prompt,
|
|
128
|
+
tools,
|
|
129
|
+
stopWhen: stepCountIs(12), // Allow steps for tool calls + JSON output
|
|
130
|
+
maxOutputTokens: 4000,
|
|
131
|
+
prepareStep: ({ steps }) => {
|
|
132
|
+
const totalToolCalls = steps.reduce((sum, step) => sum + (step.toolCalls?.length || 0), 0);
|
|
133
|
+
if (totalToolCalls >= MAX_TOOL_CALLS) {
|
|
134
|
+
if (verbose) {
|
|
135
|
+
logger.info(`Codebase Analyzer: ${totalToolCalls} tool calls, disabling tools`);
|
|
136
|
+
}
|
|
137
|
+
return { activeTools: [], toolChoice: 'none' };
|
|
138
|
+
}
|
|
139
|
+
return {};
|
|
140
|
+
},
|
|
141
|
+
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
142
|
+
experimental_telemetry: {
|
|
143
|
+
isEnabled: true,
|
|
144
|
+
metadata: {
|
|
145
|
+
agent: 'codebase-analyzer',
|
|
146
|
+
projectRoot: input.scanResult.projectRoot,
|
|
147
|
+
framework: stack.framework?.name || 'unknown',
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
// Parse the response
|
|
152
|
+
const analyzerOutput = parseAnalyzerOutput(result.text, result.steps, verbose, input);
|
|
153
|
+
// Detect MCP servers (pure function)
|
|
154
|
+
const mcpServers = detectRalphMcpServers(stack, analyzerOutput.projectType);
|
|
155
|
+
// Build full MultiAgentAnalysis
|
|
156
|
+
return buildMultiAgentAnalysis(analyzerOutput, mcpServers, input);
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
if (verbose) {
|
|
160
|
+
logger.error(`Codebase Analyzer error: ${error instanceof Error ? error.message : String(error)}`);
|
|
161
|
+
}
|
|
162
|
+
// Return default analysis with derived data from package.json
|
|
163
|
+
return getDefaultMultiAgentAnalysis(input.scanResult);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Parse analyzer output from response text
|
|
168
|
+
*/
|
|
169
|
+
function parseAnalyzerOutput(text, steps, verbose, input) {
|
|
170
|
+
let textToParse = text;
|
|
171
|
+
// Try to get text from steps if main text is empty
|
|
172
|
+
if (!textToParse || textToParse.trim() === '') {
|
|
173
|
+
const stepsList = steps || [];
|
|
174
|
+
for (let i = stepsList.length - 1; i >= 0; i--) {
|
|
175
|
+
const step = stepsList[i];
|
|
176
|
+
if (step.text && step.text.trim() !== '') {
|
|
177
|
+
textToParse = step.text;
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (!textToParse || textToParse.trim() === '') {
|
|
183
|
+
if (verbose) {
|
|
184
|
+
logger.warn('Codebase Analyzer: No text output found');
|
|
185
|
+
}
|
|
186
|
+
return getDefaultAnalyzerOutput(input);
|
|
187
|
+
}
|
|
188
|
+
const parsed = parseJsonSafe(textToParse);
|
|
189
|
+
if (!parsed) {
|
|
190
|
+
if (verbose) {
|
|
191
|
+
logger.warn('Codebase Analyzer: Failed to parse JSON response');
|
|
192
|
+
}
|
|
193
|
+
return getDefaultAnalyzerOutput(input);
|
|
194
|
+
}
|
|
195
|
+
// Derive commands and entry points from package.json as fallback
|
|
196
|
+
const derivedCommands = deriveCommandsFromScripts(input.scanResult.projectRoot);
|
|
197
|
+
const derivedEntryPoints = deriveEntryPointsFromPackageJson(input.scanResult.projectRoot);
|
|
198
|
+
return {
|
|
199
|
+
entryPoints: parsed.entryPoints?.length ? parsed.entryPoints : derivedEntryPoints,
|
|
200
|
+
keyDirectories: parsed.keyDirectories || {},
|
|
201
|
+
projectType: parsed.projectType || detectProjectType(input.scanResult.stack),
|
|
202
|
+
namingConventions: parsed.namingConventions || 'unknown',
|
|
203
|
+
architectureFlow: parsed.architectureFlow || '',
|
|
204
|
+
implementationGuidelines: parsed.implementationGuidelines || [],
|
|
205
|
+
// Normalize technologyNotes to ensure all fields have defaults (handles partial objects)
|
|
206
|
+
technologyNotes: {
|
|
207
|
+
testingApproach: parsed.technologyNotes?.testingApproach || derivedCommands.test || 'npm test',
|
|
208
|
+
buildSystem: parsed.technologyNotes?.buildSystem || derivedCommands.build || 'npm run build',
|
|
209
|
+
keyPatterns: Array.isArray(parsed.technologyNotes?.keyPatterns) ? parsed.technologyNotes.keyPatterns : [],
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Build MultiAgentAnalysis from analyzer output
|
|
215
|
+
*/
|
|
216
|
+
function buildMultiAgentAnalysis(output, mcpServers, input) {
|
|
217
|
+
const derivedCommands = deriveCommandsFromScripts(input.scanResult.projectRoot);
|
|
218
|
+
const codebaseAnalysis = {
|
|
219
|
+
projectContext: {
|
|
220
|
+
entryPoints: output.entryPoints,
|
|
221
|
+
keyDirectories: output.keyDirectories,
|
|
222
|
+
namingConventions: output.namingConventions,
|
|
223
|
+
projectType: output.projectType,
|
|
224
|
+
},
|
|
225
|
+
commands: {
|
|
226
|
+
test: derivedCommands.test,
|
|
227
|
+
lint: derivedCommands.lint,
|
|
228
|
+
typecheck: derivedCommands.typecheck,
|
|
229
|
+
build: derivedCommands.build,
|
|
230
|
+
dev: derivedCommands.dev,
|
|
231
|
+
format: derivedCommands.format,
|
|
232
|
+
},
|
|
233
|
+
implementationGuidelines: output.implementationGuidelines.length > 0
|
|
234
|
+
? output.implementationGuidelines
|
|
235
|
+
: getDefaultGuidelines(output, derivedCommands),
|
|
236
|
+
possibleMissedTechnologies: [],
|
|
237
|
+
};
|
|
238
|
+
// Add architecture flow to guidelines if present
|
|
239
|
+
if (output.architectureFlow && !codebaseAnalysis.implementationGuidelines.some(g => g.includes('→'))) {
|
|
240
|
+
codebaseAnalysis.implementationGuidelines.unshift(`Architecture: ${output.architectureFlow}`);
|
|
241
|
+
}
|
|
242
|
+
const stackResearch = {
|
|
243
|
+
bestPractices: output.technologyNotes.keyPatterns.length > 0
|
|
244
|
+
? output.technologyNotes.keyPatterns
|
|
245
|
+
: ['Follow project conventions'],
|
|
246
|
+
antiPatterns: ['Avoid skipping tests'],
|
|
247
|
+
testingTools: [output.technologyNotes.testingApproach || derivedCommands.test || 'npm test'],
|
|
248
|
+
debuggingTools: ['console.log', 'debugger'],
|
|
249
|
+
validationTools: [derivedCommands.lint || 'npm run lint', derivedCommands.typecheck || 'npx tsc --noEmit'].filter(Boolean),
|
|
250
|
+
documentationHints: ['Check official docs'],
|
|
251
|
+
researchMode: 'knowledge-only',
|
|
252
|
+
};
|
|
253
|
+
return {
|
|
254
|
+
codebaseAnalysis,
|
|
255
|
+
stackResearch,
|
|
256
|
+
mcpServers: convertToLegacyMcpRecommendations(mcpServers),
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Derive entry points from package.json
|
|
261
|
+
* Exported for testing
|
|
262
|
+
*/
|
|
263
|
+
export function deriveEntryPointsFromPackageJson(projectRoot) {
|
|
264
|
+
const entryPoints = [];
|
|
265
|
+
const packageJsonPath = join(projectRoot, 'package.json');
|
|
266
|
+
if (!existsSync(packageJsonPath)) {
|
|
267
|
+
return entryPoints;
|
|
268
|
+
}
|
|
269
|
+
try {
|
|
270
|
+
const content = readFileSync(packageJsonPath, 'utf-8');
|
|
271
|
+
const pkg = JSON.parse(content);
|
|
272
|
+
// CLI tools: use bin field
|
|
273
|
+
if (pkg.bin) {
|
|
274
|
+
if (typeof pkg.bin === 'string') {
|
|
275
|
+
entryPoints.push(pkg.bin);
|
|
276
|
+
}
|
|
277
|
+
else if (typeof pkg.bin === 'object' && pkg.bin !== null) {
|
|
278
|
+
entryPoints.push(...Object.values(pkg.bin));
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// Libraries: use main/module fields
|
|
282
|
+
if (typeof pkg.main === 'string') {
|
|
283
|
+
entryPoints.push(pkg.main);
|
|
284
|
+
}
|
|
285
|
+
if (typeof pkg.module === 'string') {
|
|
286
|
+
entryPoints.push(pkg.module);
|
|
287
|
+
}
|
|
288
|
+
// Filter out compiled output (dist/) and dedupe
|
|
289
|
+
return [...new Set(entryPoints.filter(ep => ep && !ep.startsWith('dist/')))];
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
return entryPoints;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Get default analyzer output when parsing fails
|
|
297
|
+
*/
|
|
298
|
+
function getDefaultAnalyzerOutput(input) {
|
|
299
|
+
const projectType = detectProjectType(input.scanResult.stack);
|
|
300
|
+
const entryPoints = deriveEntryPointsFromPackageJson(input.scanResult.projectRoot);
|
|
301
|
+
const commands = deriveCommandsFromScripts(input.scanResult.projectRoot);
|
|
302
|
+
return {
|
|
303
|
+
entryPoints,
|
|
304
|
+
keyDirectories: {},
|
|
305
|
+
projectType,
|
|
306
|
+
namingConventions: 'unknown',
|
|
307
|
+
architectureFlow: '',
|
|
308
|
+
implementationGuidelines: [],
|
|
309
|
+
technologyNotes: {
|
|
310
|
+
testingApproach: commands.test || 'npm test',
|
|
311
|
+
buildSystem: commands.build || 'npm run build',
|
|
312
|
+
keyPatterns: [],
|
|
313
|
+
},
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Get default implementation guidelines
|
|
318
|
+
*/
|
|
319
|
+
function getDefaultGuidelines(output, commands) {
|
|
320
|
+
const guidelines = [];
|
|
321
|
+
if (commands.test) {
|
|
322
|
+
guidelines.push(`Testing with ${commands.test}`);
|
|
323
|
+
}
|
|
324
|
+
if (commands.build) {
|
|
325
|
+
guidelines.push(`Build using ${commands.build}`);
|
|
326
|
+
}
|
|
327
|
+
if (commands.lint) {
|
|
328
|
+
guidelines.push(`Linting with ${commands.lint}`);
|
|
329
|
+
}
|
|
330
|
+
guidelines.push('Follow existing code patterns');
|
|
331
|
+
guidelines.push('TypeScript strict mode recommended');
|
|
332
|
+
return guidelines.slice(0, 7);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Get default MultiAgentAnalysis when analyzer fails completely
|
|
336
|
+
*/
|
|
337
|
+
function getDefaultMultiAgentAnalysis(scanResult) {
|
|
338
|
+
const projectType = detectProjectType(scanResult.stack);
|
|
339
|
+
const entryPoints = deriveEntryPointsFromPackageJson(scanResult.projectRoot);
|
|
340
|
+
const commands = deriveCommandsFromScripts(scanResult.projectRoot);
|
|
341
|
+
const mcpServers = detectRalphMcpServers(scanResult.stack, projectType);
|
|
342
|
+
return {
|
|
343
|
+
codebaseAnalysis: {
|
|
344
|
+
projectContext: {
|
|
345
|
+
entryPoints: entryPoints.length > 0 ? entryPoints : ['src/index.ts'],
|
|
346
|
+
keyDirectories: { src: 'Source code' },
|
|
347
|
+
namingConventions: 'camelCase',
|
|
348
|
+
projectType,
|
|
349
|
+
},
|
|
350
|
+
commands: {
|
|
351
|
+
test: commands.test || 'npm test',
|
|
352
|
+
lint: commands.lint || 'npm run lint',
|
|
353
|
+
build: commands.build || 'npm run build',
|
|
354
|
+
dev: commands.dev || 'npm run dev',
|
|
355
|
+
},
|
|
356
|
+
implementationGuidelines: [
|
|
357
|
+
'Follow existing patterns',
|
|
358
|
+
'Run tests after changes',
|
|
359
|
+
'Use TypeScript strict mode',
|
|
360
|
+
],
|
|
361
|
+
possibleMissedTechnologies: [],
|
|
362
|
+
},
|
|
363
|
+
stackResearch: {
|
|
364
|
+
bestPractices: ['Follow project conventions'],
|
|
365
|
+
antiPatterns: ['Avoid skipping tests'],
|
|
366
|
+
testingTools: [commands.test || 'npm test'],
|
|
367
|
+
debuggingTools: ['console.log'],
|
|
368
|
+
validationTools: [commands.lint || 'npm run lint', 'npx tsc --noEmit'],
|
|
369
|
+
documentationHints: ['Check official docs'],
|
|
370
|
+
researchMode: 'knowledge-only',
|
|
371
|
+
},
|
|
372
|
+
mcpServers: convertToLegacyMcpRecommendations(mcpServers),
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
//# sourceMappingURL=codebase-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-analyzer.js","sourceRoot":"","sources":["../../../src/ai/agents/codebase-analyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;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;AAGrD,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;AACrD,OAAO,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AA0BlE;;GAEG;AACH,MAAM,+BAA+B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEtC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAoB,EACpB,OAAe,EACf,KAA4B,EAC5B,UAAmB,KAAK;IAExB,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;IAErC,uCAAuC;IACvC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,SAAS;QAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,QAAQ;QAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,GAAG;QAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI;QAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG;QAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,GAAG,EAAE,SAAS;QAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG;;WAEN,KAAK,CAAC,UAAU,CAAC,WAAW;;;aAG1B,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,SAAS;YACnC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,eAAe;WACxC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,eAAe;mBACpC,KAAK,CAAC,cAAc,EAAE,IAAI,IAAI,KAAK;gBACtC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;EAC/C,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE;;;wDAGN,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAC;QAEvC,MAAM,cAAc,GAAG,EAAE,CAAC;QAE1B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,KAAK;YACL,MAAM,EAAE,+BAA+B;YACvC,MAAM;YACN,KAAK;YACL,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,2CAA2C;YACtE,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACzB,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,EAClD,CAAC,CACF,CAAC;gBAEF,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;oBACrC,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,CAAC,IAAI,CAAC,sBAAsB,cAAc,8BAA8B,CAAC,CAAC;oBAClF,CAAC;oBACD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,MAAe,EAAE,CAAC;gBAC1D,CAAC;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;YAC1D,sBAAsB,EAAE;gBACtB,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE;oBACR,KAAK,EAAE,mBAAmB;oBAC1B,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW;oBACzC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,SAAS;iBAC9C;aACF;SACF,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAEtF,qCAAqC;QACrC,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;QAE5E,gCAAgC;QAChC,OAAO,uBAAuB,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;QAED,8DAA8D;QAC9D,OAAO,4BAA4B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,IAAY,EACZ,KAA2C,EAC3C,OAAgB,EAChB,KAA4B;IAE5B,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB,mDAAmD;IACnD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACzC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAA0B,WAAW,CAAC,CAAC;IAEnE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,iEAAiE;IACjE,MAAM,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAChF,MAAM,kBAAkB,GAAG,gCAAgC,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAE1F,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB;QACjF,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;QAC3C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAC5E,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,SAAS;QACxD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;QAC/C,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,IAAI,EAAE;QAC/D,yFAAyF;QACzF,eAAe,EAAE;YACf,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,eAAe,IAAI,eAAe,CAAC,IAAI,IAAI,UAAU;YAC9F,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE,WAAW,IAAI,eAAe,CAAC,KAAK,IAAI,eAAe;YAC5F,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;SAC1G;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,MAAsB,EACtB,UAA2B,EAC3B,KAA4B;IAE5B,MAAM,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEhF,MAAM,gBAAgB,GAAqB;QACzC,cAAc,EAAE;YACd,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,eAAe,CAAC,IAAI;YAC1B,IAAI,EAAE,eAAe,CAAC,IAAI;YAC1B,SAAS,EAAE,eAAe,CAAC,SAAS;YACpC,KAAK,EAAE,eAAe,CAAC,KAAK;YAC5B,GAAG,EAAE,eAAe,CAAC,GAAG;YACxB,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B;QACD,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC;YAClE,CAAC,CAAC,MAAM,CAAC,wBAAwB;YACjC,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,CAAC;QACjD,0BAA0B,EAAE,EAAE;KAC/B,CAAC;IAEF,iDAAiD;IACjD,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACrG,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,CAAC,iBAAiB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,aAAa,GAAkB;QACnC,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YAC1D,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW;YACpC,CAAC,CAAC,CAAC,4BAA4B,CAAC;QAClC,YAAY,EAAE,CAAC,sBAAsB,CAAC;QACtC,YAAY,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,IAAI,UAAU,CAAC;QAC5F,cAAc,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;QAC3C,eAAe,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,cAAc,EAAE,eAAe,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1H,kBAAkB,EAAE,CAAC,qBAAqB,CAAC;QAC3C,YAAY,EAAE,gBAAgB;KAC/B,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,aAAa;QACb,UAAU,EAAE,iCAAiC,CAAC,UAAU,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAAC,WAAmB;IAClE,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAE1D,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAE3D,2BAA2B;QAC3B,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAChC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC3D,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAA6B,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAED,gDAAgD;QAChD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,KAA4B;IAC5D,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,gCAAgC,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEzE,OAAO;QACL,WAAW;QACX,cAAc,EAAE,EAAE;QAClB,WAAW;QACX,iBAAiB,EAAE,SAAS;QAC5B,gBAAgB,EAAE,EAAE;QACpB,wBAAwB,EAAE,EAAE;QAC5B,eAAe,EAAE;YACf,eAAe,EAAE,QAAQ,CAAC,IAAI,IAAI,UAAU;YAC5C,WAAW,EAAE,QAAQ,CAAC,KAAK,IAAI,eAAe;YAC9C,WAAW,EAAE,EAAE;SAChB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAsB,EAAE,QAAgC;IACpF,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,UAAU,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,UAAU,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACjD,UAAU,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAEtD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,UAAsB;IAC1D,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,gCAAgC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,yBAAyB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAExE,OAAO;QACL,gBAAgB,EAAE;YAChB,cAAc,EAAE;gBACd,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACpE,cAAc,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;gBACtC,iBAAiB,EAAE,WAAW;gBAC9B,WAAW;aACZ;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,UAAU;gBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,cAAc;gBACrC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,eAAe;gBACxC,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,aAAa;aACnC;YACD,wBAAwB,EAAE;gBACxB,0BAA0B;gBAC1B,yBAAyB;gBACzB,4BAA4B;aAC7B;YACD,0BAA0B,EAAE,EAAE;SAC/B;QACD,aAAa,EAAE;YACb,aAAa,EAAE,CAAC,4BAA4B,CAAC;YAC7C,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC;YAC3C,cAAc,EAAE,CAAC,aAAa,CAAC;YAC/B,eAAe,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,cAAc,EAAE,kBAAkB,CAAC;YACtE,kBAAkB,EAAE,CAAC,qBAAqB,CAAC;YAC3C,YAAY,EAAE,gBAAgB;SAC/B;QACD,UAAU,EAAE,iCAAiC,CAAC,UAAU,CAAC;KAC1D,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Context Enricher Worker (Phase 2)
|
|
3
3
|
* Explores the codebase to gather enriched context based on the analysis plan
|
|
4
|
+
*
|
|
5
|
+
* @deprecated v0.5.0 - No longer used in main pipeline.
|
|
6
|
+
* The unified codebase-analyzer.ts replaces this agent.
|
|
7
|
+
* Kept for backward compatibility and reference.
|
|
4
8
|
*/
|
|
5
9
|
import { type LanguageModel } from 'ai';
|
|
6
10
|
import type { ContextEnricherInput, EnrichedContext } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-enricher.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"context-enricher.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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,CAwE1B;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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Context Enricher Worker (Phase 2)
|
|
3
3
|
* Explores the codebase to gather enriched context based on the analysis plan
|
|
4
|
+
*
|
|
5
|
+
* @deprecated v0.5.0 - No longer used in main pipeline.
|
|
6
|
+
* The unified codebase-analyzer.ts replaces this agent.
|
|
7
|
+
* Kept for backward compatibility and reference.
|
|
4
8
|
*/
|
|
5
9
|
import { existsSync, readFileSync } from 'node:fs';
|
|
6
10
|
import { join } from 'node:path';
|
|
@@ -109,23 +113,24 @@ ${input.questionsToAnswer.map(q => `- ${q}`).join('\n')}
|
|
|
109
113
|
Start by exploring the specified areas, then answer the questions and produce your analysis as JSON.`;
|
|
110
114
|
try {
|
|
111
115
|
const { generateText } = getTracedAI();
|
|
112
|
-
const MAX_TOOL_CALLS =
|
|
116
|
+
const MAX_TOOL_CALLS = 10; // Limit total tool calls to prevent token exhaustion
|
|
113
117
|
const result = await generateText({
|
|
114
118
|
model,
|
|
115
119
|
system: CONTEXT_ENRICHER_SYSTEM_PROMPT,
|
|
116
120
|
prompt,
|
|
117
121
|
tools,
|
|
118
|
-
stopWhen: stepCountIs(
|
|
119
|
-
maxOutputTokens: 4000,
|
|
120
|
-
prepareStep:
|
|
122
|
+
stopWhen: stepCountIs(8), // Allow more steps for model to output JSON after tools disabled
|
|
123
|
+
maxOutputTokens: 4000,
|
|
124
|
+
prepareStep: ({ steps, stepNumber }) => {
|
|
121
125
|
// Count total tool calls across all steps
|
|
122
126
|
const totalToolCalls = steps.reduce((sum, step) => sum + (step.toolCalls?.length || 0), 0);
|
|
123
|
-
// If too many tool calls,
|
|
127
|
+
// If too many tool calls, disable all tools to force JSON output
|
|
124
128
|
if (totalToolCalls >= MAX_TOOL_CALLS) {
|
|
125
129
|
if (verbose) {
|
|
126
|
-
logger.info(`Context Enricher:
|
|
130
|
+
logger.info(`Context Enricher: Step ${stepNumber}, ${totalToolCalls} tool calls, disabling tools`);
|
|
127
131
|
}
|
|
128
|
-
|
|
132
|
+
// Use both activeTools: [] AND toolChoice: 'none' for maximum enforcement
|
|
133
|
+
return { activeTools: [], toolChoice: 'none' };
|
|
129
134
|
}
|
|
130
135
|
return {};
|
|
131
136
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-enricher.js","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"context-enricher.js","sourceRoot":"","sources":["../../../src/ai/agents/context-enricher.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* Evaluator-Optimizer Agent (Phase 4)
|
|
3
3
|
* QA loop that validates and improves the analysis result
|
|
4
4
|
* Max 2 iterations to ensure quality without endless loops
|
|
5
|
+
*
|
|
6
|
+
* @deprecated v0.5.0 - No longer used in main pipeline.
|
|
7
|
+
* Quality is now handled by fallback derivation from package.json.
|
|
8
|
+
* Kept for backward compatibility and reference.
|
|
5
9
|
*/
|
|
6
10
|
import { type LanguageModel } from 'ai';
|
|
7
11
|
import type { ScanResult } from '../../scanner/types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator-optimizer.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/evaluator-optimizer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"evaluator-optimizer.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/evaluator-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AA6IvE;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,UAAU,EACtB,aAAa,GAAE,MAAU,EACzB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAsC7B"}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* Evaluator-Optimizer Agent (Phase 4)
|
|
3
3
|
* QA loop that validates and improves the analysis result
|
|
4
4
|
* Max 2 iterations to ensure quality without endless loops
|
|
5
|
+
*
|
|
6
|
+
* @deprecated v0.5.0 - No longer used in main pipeline.
|
|
7
|
+
* Quality is now handled by fallback derivation from package.json.
|
|
8
|
+
* Kept for backward compatibility and reference.
|
|
5
9
|
*/
|
|
6
10
|
import { z } from 'zod';
|
|
7
11
|
import { isReasoningModel } from '../providers.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator-optimizer.js","sourceRoot":"","sources":["../../../src/ai/agents/evaluator-optimizer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"evaluator-optimizer.js","sourceRoot":"","sources":["../../../src/ai/agents/evaluator-optimizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agents Index
|
|
3
|
-
*
|
|
2
|
+
* Agents Index (v0.5.0)
|
|
3
|
+
* Simplified single-agent analysis with MCP detection
|
|
4
4
|
*
|
|
5
5
|
* Architecture:
|
|
6
|
-
* Phase 1:
|
|
7
|
-
* Phase 2:
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Phase 1: Codebase Analyzer (unified agent with tools)
|
|
7
|
+
* Phase 2: MCP Detection (pure function)
|
|
8
|
+
*
|
|
9
|
+
* This replaces the complex 4-phase multi-agent system (v0.4.5-v0.4.9)
|
|
10
|
+
* which added overhead without improving output quality.
|
|
10
11
|
*/
|
|
11
|
-
export type { AnalysisPlan, EnrichedContext, TechResearchResult,
|
|
12
|
+
export type { CodebaseAnalyzerInput, RalphMcpServers, ProgressCallback, AnalysisPlan, EnrichedContext, TechResearchResult, EvaluationResult, ContextEnricherInput, TechResearcherInput, SynthesisInput, CodebaseAnalysis, StackResearch, McpRecommendations, MultiAgentAnalysis, AgentCapabilities, AgentOptions, CodebaseAnalystInput, StackResearcherInput, OrchestratorInput, } from './types.js';
|
|
13
|
+
export { runCodebaseAnalyzer } from './codebase-analyzer.js';
|
|
14
|
+
export { detectRalphMcpServers, convertToLegacyMcpRecommendations } from './mcp-detector.js';
|
|
15
|
+
export { detectProjectType } from './stack-utils.js';
|
|
12
16
|
export { runPlanningOrchestrator } from './planning-orchestrator.js';
|
|
13
17
|
export { runContextEnricher } from './context-enricher.js';
|
|
14
18
|
export { runTechResearcher, runTechResearchPool } from './tech-researcher.js';
|
|
15
|
-
export { detectRalphMcpServers, convertToLegacyMcpRecommendations } from './mcp-detector.js';
|
|
16
19
|
export { runSynthesisAgent } from './synthesis-agent.js';
|
|
17
20
|
export { runEvaluatorOptimizer } from './evaluator-optimizer.js';
|
|
18
|
-
export { detectProjectType } from './stack-utils.js';
|
|
19
21
|
export { runCodebaseAnalyst } from './codebase-analyst.js';
|
|
20
22
|
export { runStackResearcher } from './stack-researcher.js';
|
|
21
23
|
export { runOrchestrator, mergeAgentResults } from './orchestrator.js';
|
|
@@ -23,12 +25,16 @@ import type { LanguageModel } from 'ai';
|
|
|
23
25
|
import type { ScanResult } from '../../scanner/types.js';
|
|
24
26
|
import type { MultiAgentAnalysis, AgentOptions } from './types.js';
|
|
25
27
|
/**
|
|
26
|
-
* Run
|
|
28
|
+
* Run simplified multi-agent analysis pipeline (v0.5.0)
|
|
29
|
+
*
|
|
30
|
+
* Phase 1: Codebase Analyzer - Single agent explores codebase with tools
|
|
31
|
+
* Phase 2: MCP Detection - Pure function detects required MCP servers
|
|
27
32
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
33
|
+
* This simplified architecture reduces:
|
|
34
|
+
* - Token cost: ~15,000 → ~5,000
|
|
35
|
+
* - LLM calls: 7-11 → 2-3
|
|
36
|
+
* - Agents: 7 → 1
|
|
37
|
+
* - Failure points: Many → Few
|
|
32
38
|
*/
|
|
33
39
|
export declare function runMultiAgentAnalysis(model: LanguageModel, modelId: string, scanResult: ScanResult, options?: AgentOptions): Promise<MultiAgentAnalysis | null>;
|
|
34
40
|
//# sourceMappingURL=index.d.ts.map
|