wiggum-cli 0.2.2 → 0.2.5
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/enhancer.d.ts +44 -35
- package/dist/ai/enhancer.d.ts.map +1 -1
- package/dist/ai/enhancer.js +138 -91
- package/dist/ai/enhancer.js.map +1 -1
- package/dist/ai/index.d.ts +3 -2
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +3 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/prompts.d.ts +6 -2
- package/dist/ai/prompts.d.ts.map +1 -1
- package/dist/ai/prompts.js +74 -43
- package/dist/ai/prompts.js.map +1 -1
- package/dist/ai/providers.d.ts +4 -0
- package/dist/ai/providers.d.ts.map +1 -1
- package/dist/ai/providers.js +16 -0
- package/dist/ai/providers.js.map +1 -1
- package/dist/ai/tools.d.ts +47 -0
- package/dist/ai/tools.d.ts.map +1 -0
- package/dist/ai/tools.js +253 -0
- package/dist/ai/tools.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +16 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/generator/templates.d.ts +8 -0
- package/dist/generator/templates.d.ts.map +1 -1
- package/dist/generator/templates.js +90 -4
- package/dist/generator/templates.js.map +1 -1
- package/dist/templates/guides/AGENTS.md.tmpl +39 -22
- package/package.json +3 -2
- package/src/ai/enhancer.ts +191 -139
- package/src/ai/index.ts +10 -5
- package/src/ai/prompts.ts +75 -43
- package/src/ai/providers.ts +18 -0
- package/src/ai/tools.ts +278 -0
- package/src/commands/init.ts +21 -1
- package/src/generator/templates.ts +139 -6
- package/src/templates/guides/AGENTS.md.tmpl +39 -22
package/dist/ai/enhancer.d.ts
CHANGED
|
@@ -5,52 +5,50 @@
|
|
|
5
5
|
import type { ScanResult } from '../scanner/types.js';
|
|
6
6
|
import { type AIProvider } from './providers.js';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Project context from AI analysis - key structure information
|
|
9
9
|
*/
|
|
10
|
-
export interface
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
export interface ProjectContext {
|
|
11
|
+
/** Key entry point files */
|
|
12
|
+
entryPoints?: string[];
|
|
13
|
+
/** Important directories and their purposes */
|
|
14
|
+
keyDirectories?: Record<string, string>;
|
|
15
|
+
/** Naming conventions used in the project */
|
|
16
|
+
namingConventions?: string;
|
|
14
17
|
}
|
|
15
18
|
/**
|
|
16
|
-
*
|
|
19
|
+
* Detected commands from package.json scripts or common patterns
|
|
17
20
|
*/
|
|
18
|
-
export interface
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
export interface DetectedCommands {
|
|
22
|
+
test?: string;
|
|
23
|
+
lint?: string;
|
|
24
|
+
typecheck?: string;
|
|
25
|
+
build?: string;
|
|
26
|
+
dev?: string;
|
|
27
|
+
format?: string;
|
|
22
28
|
}
|
|
23
29
|
/**
|
|
24
|
-
*
|
|
30
|
+
* MCP server recommendations (categorized)
|
|
25
31
|
*/
|
|
26
|
-
export interface
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
export interface McpRecommendations {
|
|
33
|
+
/** Essential MCP servers for this stack */
|
|
34
|
+
essential?: string[];
|
|
35
|
+
/** Recommended but optional MCP servers */
|
|
36
|
+
recommended?: string[];
|
|
29
37
|
}
|
|
30
38
|
/**
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
|
-
export interface McpRecommendation {
|
|
34
|
-
name: string;
|
|
35
|
-
reason: string;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Additional detection suggestions
|
|
39
|
-
*/
|
|
40
|
-
export interface AdditionalDetections {
|
|
41
|
-
possibleMissed?: string[];
|
|
42
|
-
refinements?: string[];
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* AI analysis result
|
|
39
|
+
* AI analysis result - focused on actionable outputs
|
|
46
40
|
*/
|
|
47
41
|
export interface AIAnalysisResult {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
42
|
+
/** Project structure and context */
|
|
43
|
+
projectContext?: ProjectContext;
|
|
44
|
+
/** Detected commands from package.json */
|
|
45
|
+
commands?: DetectedCommands;
|
|
46
|
+
/** Short, actionable implementation guidelines */
|
|
47
|
+
implementationGuidelines?: string[];
|
|
48
|
+
/** MCP server recommendations */
|
|
49
|
+
mcpServers?: McpRecommendations;
|
|
50
|
+
/** Additional technologies that may have been missed */
|
|
51
|
+
possibleMissedTechnologies?: string[];
|
|
54
52
|
}
|
|
55
53
|
/**
|
|
56
54
|
* Enhanced scan result with AI insights
|
|
@@ -68,6 +66,8 @@ export interface EnhancerOptions {
|
|
|
68
66
|
provider?: AIProvider;
|
|
69
67
|
model?: string;
|
|
70
68
|
verbose?: boolean;
|
|
69
|
+
/** Use agentic mode with tools for deeper codebase exploration */
|
|
70
|
+
agentic?: boolean;
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
73
|
* AI Enhancer class
|
|
@@ -77,6 +77,7 @@ export declare class AIEnhancer {
|
|
|
77
77
|
private provider;
|
|
78
78
|
private model?;
|
|
79
79
|
private verbose;
|
|
80
|
+
private agentic;
|
|
80
81
|
constructor(options?: EnhancerOptions);
|
|
81
82
|
/**
|
|
82
83
|
* Check if AI enhancement is available
|
|
@@ -90,6 +91,14 @@ export declare class AIEnhancer {
|
|
|
90
91
|
* Enhance scan results with AI analysis
|
|
91
92
|
*/
|
|
92
93
|
enhance(scanResult: ScanResult): Promise<EnhancedScanResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Simple enhancement mode - analyze detected stack without tools
|
|
96
|
+
*/
|
|
97
|
+
private enhanceSimple;
|
|
98
|
+
/**
|
|
99
|
+
* Agentic enhancement mode - use tools to explore codebase
|
|
100
|
+
*/
|
|
101
|
+
private enhanceAgentic;
|
|
93
102
|
}
|
|
94
103
|
/**
|
|
95
104
|
* Convenience function to enhance scan results with AI
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancer.d.ts","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAY,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"enhancer.d.ts","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAY,KAAK,UAAU,EAAgD,MAAM,gBAAgB,CAAC;AAKzG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,kDAAkD;IAClD,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,iCAAiC;IACjC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,wDAAwD;IACxD,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA4DD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,GAAE,eAAoB;IAOzC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgElE;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,cAAc;CAoD7B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAG7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAwEnE"}
|
package/dist/ai/enhancer.js
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* AI Enhancer Module
|
|
3
3
|
* Uses AI to analyze the codebase for deeper insights
|
|
4
4
|
*/
|
|
5
|
-
import { generateText } from 'ai';
|
|
6
|
-
import { getModel, hasApiKey, getApiKeyEnvVar } from './providers.js';
|
|
7
|
-
import { SYSTEM_PROMPT, createAnalysisPrompt } from './prompts.js';
|
|
5
|
+
import { generateText, stepCountIs } from 'ai';
|
|
6
|
+
import { getModel, hasApiKey, getApiKeyEnvVar, isReasoningModel } from './providers.js';
|
|
7
|
+
import { SYSTEM_PROMPT, SYSTEM_PROMPT_AGENTIC, createAnalysisPrompt } from './prompts.js';
|
|
8
|
+
import { createExplorationTools } from './tools.js';
|
|
8
9
|
import { logger } from '../utils/logger.js';
|
|
9
10
|
/**
|
|
10
11
|
* Parse AI response JSON safely
|
|
@@ -36,32 +37,22 @@ function parseAIResponse(text) {
|
|
|
36
37
|
*/
|
|
37
38
|
function applyEnhancements(stack, analysis) {
|
|
38
39
|
const enhanced = { ...stack };
|
|
39
|
-
// Enhance
|
|
40
|
-
if (analysis.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
analysis.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
// Enhance MCP recommendations from AI analysis
|
|
41
|
+
if (analysis.mcpServers) {
|
|
42
|
+
const aiRecommended = [
|
|
43
|
+
...(analysis.mcpServers.essential || []),
|
|
44
|
+
...(analysis.mcpServers.recommended || []),
|
|
45
|
+
];
|
|
46
|
+
if (aiRecommended.length > 0) {
|
|
47
|
+
enhanced.mcp = {
|
|
48
|
+
...enhanced.mcp,
|
|
49
|
+
recommended: [
|
|
50
|
+
...(enhanced.mcp?.recommended || []),
|
|
51
|
+
...aiRecommended.filter(r => !enhanced.mcp?.recommended?.includes(r)),
|
|
50
52
|
],
|
|
51
53
|
};
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
|
-
// Enhance MCP recommendations
|
|
55
|
-
if (analysis.recommendedMcpServers && analysis.recommendedMcpServers.length > 0) {
|
|
56
|
-
const aiRecommended = analysis.recommendedMcpServers.map(r => r.name);
|
|
57
|
-
enhanced.mcp = {
|
|
58
|
-
...enhanced.mcp,
|
|
59
|
-
recommended: [
|
|
60
|
-
...(enhanced.mcp?.recommended || []),
|
|
61
|
-
...aiRecommended.filter(r => !enhanced.mcp?.recommended?.includes(r)),
|
|
62
|
-
],
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
56
|
return enhanced;
|
|
66
57
|
}
|
|
67
58
|
/**
|
|
@@ -72,10 +63,12 @@ export class AIEnhancer {
|
|
|
72
63
|
provider;
|
|
73
64
|
model;
|
|
74
65
|
verbose;
|
|
66
|
+
agentic;
|
|
75
67
|
constructor(options = {}) {
|
|
76
68
|
this.provider = options.provider || 'anthropic';
|
|
77
69
|
this.model = options.model;
|
|
78
70
|
this.verbose = options.verbose || false;
|
|
71
|
+
this.agentic = options.agentic || false;
|
|
79
72
|
}
|
|
80
73
|
/**
|
|
81
74
|
* Check if AI enhancement is available
|
|
@@ -107,19 +100,19 @@ export class AIEnhancer {
|
|
|
107
100
|
const { model, provider, modelId } = getModel(this.provider, this.model);
|
|
108
101
|
if (this.verbose) {
|
|
109
102
|
logger.info(`Using AI provider: ${provider} (${modelId})`);
|
|
103
|
+
if (this.agentic) {
|
|
104
|
+
logger.info('Agentic mode enabled - AI will explore the codebase with tools');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
let analysis;
|
|
108
|
+
if (this.agentic) {
|
|
109
|
+
// Agentic mode: use tools to explore codebase
|
|
110
|
+
analysis = await this.enhanceAgentic(model, modelId, scanResult);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// Simple mode: just analyze detected stack
|
|
114
|
+
analysis = await this.enhanceSimple(model, modelId, scanResult);
|
|
110
115
|
}
|
|
111
|
-
// Create the analysis prompt
|
|
112
|
-
const prompt = createAnalysisPrompt(scanResult);
|
|
113
|
-
// Call the AI model
|
|
114
|
-
const { text } = await generateText({
|
|
115
|
-
model,
|
|
116
|
-
system: SYSTEM_PROMPT,
|
|
117
|
-
prompt,
|
|
118
|
-
maxOutputTokens: 2000,
|
|
119
|
-
temperature: 0.3, // Lower temperature for more consistent output
|
|
120
|
-
});
|
|
121
|
-
// Parse the response
|
|
122
|
-
const analysis = parseAIResponse(text);
|
|
123
116
|
if (!analysis) {
|
|
124
117
|
return {
|
|
125
118
|
...scanResult,
|
|
@@ -149,6 +142,69 @@ export class AIEnhancer {
|
|
|
149
142
|
};
|
|
150
143
|
}
|
|
151
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Simple enhancement mode - analyze detected stack without tools
|
|
147
|
+
*/
|
|
148
|
+
async enhanceSimple(model, modelId, scanResult) {
|
|
149
|
+
const prompt = createAnalysisPrompt(scanResult);
|
|
150
|
+
const { text } = await generateText({
|
|
151
|
+
model,
|
|
152
|
+
system: SYSTEM_PROMPT,
|
|
153
|
+
prompt,
|
|
154
|
+
maxOutputTokens: 2000,
|
|
155
|
+
// Reasoning models don't support temperature
|
|
156
|
+
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
157
|
+
});
|
|
158
|
+
return parseAIResponse(text);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Agentic enhancement mode - use tools to explore codebase
|
|
162
|
+
*/
|
|
163
|
+
async enhanceAgentic(model, modelId, scanResult) {
|
|
164
|
+
const tools = createExplorationTools(scanResult.projectRoot);
|
|
165
|
+
const prompt = `Analyze this codebase and produce configuration for AI-assisted development.
|
|
166
|
+
|
|
167
|
+
Project: ${scanResult.projectRoot}
|
|
168
|
+
|
|
169
|
+
Start by exploring the codebase structure, then produce your analysis.
|
|
170
|
+
When done exploring, output your final analysis as valid JSON matching this structure:
|
|
171
|
+
|
|
172
|
+
{
|
|
173
|
+
"projectContext": {
|
|
174
|
+
"entryPoints": ["src/index.ts"],
|
|
175
|
+
"keyDirectories": {"src/routes": "API routes"},
|
|
176
|
+
"namingConventions": "camelCase files, PascalCase components"
|
|
177
|
+
},
|
|
178
|
+
"commands": {
|
|
179
|
+
"test": "npm test",
|
|
180
|
+
"lint": "npm run lint",
|
|
181
|
+
"build": "npm run build",
|
|
182
|
+
"dev": "npm run dev"
|
|
183
|
+
},
|
|
184
|
+
"implementationGuidelines": [
|
|
185
|
+
"Run npm test after changes",
|
|
186
|
+
"Use Zod for validation"
|
|
187
|
+
],
|
|
188
|
+
"mcpServers": {
|
|
189
|
+
"essential": ["filesystem", "git"],
|
|
190
|
+
"recommended": ["docker"]
|
|
191
|
+
},
|
|
192
|
+
"possibleMissedTechnologies": ["Redis"]
|
|
193
|
+
}`;
|
|
194
|
+
// Use agentic loop - AI will call tools until it has enough info
|
|
195
|
+
// stopWhen: stepCountIs(10) allows up to 10 tool-calling steps
|
|
196
|
+
const { text } = await generateText({
|
|
197
|
+
model,
|
|
198
|
+
system: SYSTEM_PROMPT_AGENTIC,
|
|
199
|
+
prompt,
|
|
200
|
+
tools,
|
|
201
|
+
stopWhen: stepCountIs(10),
|
|
202
|
+
maxOutputTokens: 4000,
|
|
203
|
+
// Reasoning models don't support temperature
|
|
204
|
+
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
205
|
+
});
|
|
206
|
+
return parseAIResponse(text);
|
|
207
|
+
}
|
|
152
208
|
}
|
|
153
209
|
/**
|
|
154
210
|
* Convenience function to enhance scan results with AI
|
|
@@ -162,74 +218,65 @@ export async function enhanceWithAI(scanResult, options) {
|
|
|
162
218
|
*/
|
|
163
219
|
export function formatAIAnalysis(analysis) {
|
|
164
220
|
const lines = [];
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
221
|
+
// Project context
|
|
222
|
+
if (analysis.projectContext) {
|
|
223
|
+
const ctx = analysis.projectContext;
|
|
224
|
+
if (ctx.entryPoints && ctx.entryPoints.length > 0) {
|
|
225
|
+
lines.push('Entry Points:');
|
|
226
|
+
for (const entry of ctx.entryPoints) {
|
|
227
|
+
lines.push(` ${entry}`);
|
|
228
|
+
}
|
|
229
|
+
lines.push('');
|
|
172
230
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
231
|
+
if (ctx.keyDirectories && Object.keys(ctx.keyDirectories).length > 0) {
|
|
232
|
+
lines.push('Key Directories:');
|
|
233
|
+
for (const [dir, purpose] of Object.entries(ctx.keyDirectories)) {
|
|
234
|
+
lines.push(` ${dir} → ${purpose}`);
|
|
235
|
+
}
|
|
236
|
+
lines.push('');
|
|
176
237
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
if (analysis.architecturalPatterns && analysis.architecturalPatterns.length > 0) {
|
|
181
|
-
lines.push('Architectural Patterns:');
|
|
182
|
-
for (const pattern of analysis.architecturalPatterns) {
|
|
183
|
-
lines.push(` - ${pattern.pattern} [${pattern.confidence}]`);
|
|
184
|
-
lines.push(` Evidence: ${pattern.evidence}`);
|
|
238
|
+
if (ctx.namingConventions) {
|
|
239
|
+
lines.push(`Naming: ${ctx.namingConventions}`);
|
|
240
|
+
lines.push('');
|
|
185
241
|
}
|
|
186
|
-
lines.push('');
|
|
187
242
|
}
|
|
188
|
-
//
|
|
189
|
-
if (analysis.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
lines.push(
|
|
243
|
+
// Detected commands
|
|
244
|
+
if (analysis.commands) {
|
|
245
|
+
const cmds = analysis.commands;
|
|
246
|
+
const cmdList = Object.entries(cmds).filter(([_, v]) => v);
|
|
247
|
+
if (cmdList.length > 0) {
|
|
248
|
+
lines.push('Commands:');
|
|
249
|
+
for (const [name, cmd] of cmdList) {
|
|
250
|
+
lines.push(` ${name}: ${cmd}`);
|
|
251
|
+
}
|
|
252
|
+
lines.push('');
|
|
194
253
|
}
|
|
195
|
-
lines.push('');
|
|
196
254
|
}
|
|
197
|
-
//
|
|
198
|
-
if (analysis.
|
|
199
|
-
lines.push('
|
|
200
|
-
for (const
|
|
201
|
-
lines.push(`
|
|
202
|
-
lines.push(` Reason: ${server.reason}`);
|
|
255
|
+
// Implementation guidelines (the most important part)
|
|
256
|
+
if (analysis.implementationGuidelines && analysis.implementationGuidelines.length > 0) {
|
|
257
|
+
lines.push('Implementation Guidelines:');
|
|
258
|
+
for (const guideline of analysis.implementationGuidelines) {
|
|
259
|
+
lines.push(` • ${guideline}`);
|
|
203
260
|
}
|
|
204
261
|
lines.push('');
|
|
205
262
|
}
|
|
206
|
-
//
|
|
207
|
-
if (analysis.
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
lines.push(` - ${suggestion}`);
|
|
263
|
+
// MCP servers
|
|
264
|
+
if (analysis.mcpServers) {
|
|
265
|
+
if (analysis.mcpServers.essential && analysis.mcpServers.essential.length > 0) {
|
|
266
|
+
lines.push(`MCP (essential): ${analysis.mcpServers.essential.join(', ')}`);
|
|
211
267
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
// Additional detections
|
|
215
|
-
if (analysis.additionalDetections) {
|
|
216
|
-
if (analysis.additionalDetections.possibleMissed &&
|
|
217
|
-
analysis.additionalDetections.possibleMissed.length > 0) {
|
|
218
|
-
lines.push('Possibly Missed Technologies:');
|
|
219
|
-
for (const tech of analysis.additionalDetections.possibleMissed) {
|
|
220
|
-
lines.push(` - ${tech}`);
|
|
221
|
-
}
|
|
222
|
-
lines.push('');
|
|
268
|
+
if (analysis.mcpServers.recommended && analysis.mcpServers.recommended.length > 0) {
|
|
269
|
+
lines.push(`MCP (optional): ${analysis.mcpServers.recommended.join(', ')}`);
|
|
223
270
|
}
|
|
224
|
-
if (analysis.
|
|
225
|
-
analysis.additionalDetections.refinements.length > 0) {
|
|
226
|
-
lines.push('Detection Refinements:');
|
|
227
|
-
for (const refinement of analysis.additionalDetections.refinements) {
|
|
228
|
-
lines.push(` - ${refinement}`);
|
|
229
|
-
}
|
|
271
|
+
if (analysis.mcpServers.essential?.length || analysis.mcpServers.recommended?.length) {
|
|
230
272
|
lines.push('');
|
|
231
273
|
}
|
|
232
274
|
}
|
|
275
|
+
// Possibly missed technologies (brief)
|
|
276
|
+
if (analysis.possibleMissedTechnologies && analysis.possibleMissedTechnologies.length > 0) {
|
|
277
|
+
lines.push(`May also use: ${analysis.possibleMissedTechnologies.join(', ')}`);
|
|
278
|
+
lines.push('');
|
|
279
|
+
}
|
|
233
280
|
return lines.join('\n');
|
|
234
281
|
}
|
|
235
282
|
//# sourceMappingURL=enhancer.js.map
|
package/dist/ai/enhancer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancer.js","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"enhancer.js","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Main export for AI-enhanced analysis functionality
|
|
4
4
|
*/
|
|
5
5
|
export { type AIProvider, type ProviderConfig, getModel, hasApiKey, getAvailableProvider, getApiKeyEnvVar, } from './providers.js';
|
|
6
|
-
export { formatStackForPrompt, SYSTEM_PROMPT, createAnalysisPrompt, createValidationPrompt, createRecommendationsPrompt, } from './prompts.js';
|
|
7
|
-
export {
|
|
6
|
+
export { formatStackForPrompt, SYSTEM_PROMPT, SYSTEM_PROMPT_AGENTIC, createAnalysisPrompt, createValidationPrompt, createRecommendationsPrompt, } from './prompts.js';
|
|
7
|
+
export { createExplorationTools, RIPGREP_SKILL, } from './tools.js';
|
|
8
|
+
export { type ProjectContext, type DetectedCommands, type McpRecommendations, type AIAnalysisResult, type EnhancedScanResult, type EnhancerOptions, AIEnhancer, enhanceWithAI, formatAIAnalysis, } from './enhancer.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,sBAAsB,EACtB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
package/dist/ai/index.js
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
// Provider configuration
|
|
6
6
|
export { getModel, hasApiKey, getAvailableProvider, getApiKeyEnvVar, } from './providers.js';
|
|
7
7
|
// Analysis prompts
|
|
8
|
-
export { formatStackForPrompt, SYSTEM_PROMPT, createAnalysisPrompt, createValidationPrompt, createRecommendationsPrompt, } from './prompts.js';
|
|
8
|
+
export { formatStackForPrompt, SYSTEM_PROMPT, SYSTEM_PROMPT_AGENTIC, createAnalysisPrompt, createValidationPrompt, createRecommendationsPrompt, } from './prompts.js';
|
|
9
|
+
// Tools for agentic exploration
|
|
10
|
+
export { createExplorationTools, RIPGREP_SKILL, } from './tools.js';
|
|
9
11
|
// AI enhancer
|
|
10
12
|
export { AIEnhancer, enhanceWithAI, formatAIAnalysis, } from './enhancer.js';
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yBAAyB;AACzB,OAAO,EAGL,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,cAAc;AACd,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yBAAyB;AACzB,OAAO,EAGL,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,gCAAgC;AAChC,OAAO,EACL,sBAAsB,EACtB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,cAAc;AACd,OAAO,EAOL,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
package/dist/ai/prompts.d.ts
CHANGED
|
@@ -8,9 +8,13 @@ import type { ScanResult, DetectedStack } from '../scanner/types.js';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function formatStackForPrompt(stack: DetectedStack): string;
|
|
10
10
|
/**
|
|
11
|
-
* System prompt for codebase analysis
|
|
11
|
+
* System prompt for codebase analysis (agentic mode)
|
|
12
12
|
*/
|
|
13
|
-
export declare const
|
|
13
|
+
export declare const SYSTEM_PROMPT_AGENTIC = "You are an expert codebase analyst with tools to explore the project.\n\nYour goal is to thoroughly understand the codebase structure and produce actionable configuration for AI-assisted development.\n\n## Exploration Strategy\n1. First, list the root directory to understand project structure\n2. Read package.json to understand scripts and dependencies\n3. Search for key patterns: entry points, routes, components, tests\n4. Identify naming conventions by examining existing files\n5. Look for existing documentation (.md files, README)\n\n## Tools Available\nYou have these tools to explore the codebase:\n- searchCode: Search using ripgrep patterns\n- readFile: Read file contents\n- listDirectory: List directory structure\n- getPackageInfo: Get package.json info\n\n\n## ripgrep Code Search Skill\n\n### Essential Patterns\n\n**Find definitions:**\n- Python functions: pattern=\"^def \\w+\\(\", fileType=\"py\"\n- JS/TS functions: pattern=\"^(export )?(function|const) \\w+\", fileType=\"ts\"\n- Classes: pattern=\"^class \\w+\", fileType=\"py\"\n\n**Find symbol usage (CRITICAL: use word boundaries):**\n- Exact word: pattern=\"\\bSymbolName\\b\"\n- Literal string: pattern=\"exact.string\", literal=true\n\n**Find imports:**\n- ES imports: pattern=\"^import.*from\", fileType=\"ts\"\n- CommonJS: pattern=\"require\\(\", fileType=\"js\"\n\n**File type options:**\n- py (Python)\n- js (JavaScript)\n- ts (TypeScript)\n- rust (Rust)\n- go (Go)\n\n**Performance tips:**\n1. Always use fileType when possible\n2. Use literal=true for exact strings\n3. Use \\b for word boundaries (prevents partial matches)\n4. Keep maxResults reasonable\n\n**Word boundaries are critical:**\n- WITHOUT: pattern=\"log\" matches \"logger\", \"blogger\", \"catalog\"\n- WITH: pattern=\"\\blog\\b\" matches only \"log\"\n\n\n## Output Requirements\nAfter exploration, output valid JSON with:\n- projectContext: entry points, key directories, naming conventions\n- commands: test, lint, build, dev commands from package.json\n- implementationGuidelines: short actionable rules (5-10 words each, max 7)\n- mcpServers: essential and recommended servers\n- possibleMissedTechnologies: technologies that might be in use\n\nBe concise. Focus on WHAT TO DO, not what exists.";
|
|
14
|
+
/**
|
|
15
|
+
* System prompt for codebase analysis (simple mode - no tools)
|
|
16
|
+
*/
|
|
17
|
+
export declare const SYSTEM_PROMPT = "You are analyzing a codebase to help configure AI-assisted development tools.\n\nYour goal is to produce SHORT, ACTIONABLE output that helps AI coding assistants work effectively on this codebase.\n\nRules:\n- Output valid JSON only\n- Be extremely concise (5-10 words per item max)\n- Focus on WHAT TO DO, not what exists\n- Include specific file paths and commands\n- Max 5-7 items per array\n- No explanations, just actionable rules";
|
|
14
18
|
/**
|
|
15
19
|
* Create the codebase analysis prompt
|
|
16
20
|
*/
|
package/dist/ai/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CA4EjE;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,gtEA4BgB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,aAAa,wbAUe,CAAC;AAE1C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA6CnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA2BrE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA0B1E"}
|