@defai.digital/ax-cli 4.0.0 → 4.0.2
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/README.md +32 -2
- package/config-defaults/prompts.yaml +5 -0
- package/dist/agent/execution/tool-executor.js +47 -1
- package/dist/agent/execution/tool-executor.js.map +1 -1
- package/dist/agent/llm-agent.js +4 -4
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/parallel-tools.js +1 -0
- package/dist/agent/parallel-tools.js.map +1 -1
- package/dist/commands/cache.js +37 -34
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/doctor.js +111 -65
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init/wizard.js +10 -12
- package/dist/commands/init/wizard.js.map +1 -1
- package/dist/commands/init.js +7 -9
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.js +106 -55
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/setup.js +26 -55
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/usage.js +45 -51
- package/dist/commands/usage.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/tools.d.ts +2 -23
- package/dist/llm/tools.js +6 -590
- package/dist/llm/tools.js.map +1 -1
- package/dist/mcp/content-length-transport.d.ts +18 -0
- package/dist/mcp/content-length-transport.js +121 -3
- package/dist/mcp/content-length-transport.js.map +1 -1
- package/dist/mcp/error-remediation.js +54 -17
- package/dist/mcp/error-remediation.js.map +1 -1
- package/dist/schemas/settings-schemas.d.ts +5 -0
- package/dist/schemas/settings-schemas.js +4 -0
- package/dist/schemas/settings-schemas.js.map +1 -1
- package/dist/tools/ax-agent.d.ts +32 -0
- package/dist/tools/ax-agent.js +105 -0
- package/dist/tools/ax-agent.js.map +1 -1
- package/dist/tools/definitions/ax-agent.d.ts +1 -0
- package/dist/tools/definitions/ax-agent.js +129 -2
- package/dist/tools/definitions/ax-agent.js.map +1 -1
- package/dist/tools/definitions/index.d.ts +12 -11
- package/dist/tools/definitions/index.js +5 -14
- package/dist/tools/definitions/index.js.map +1 -1
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.js +0 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.ts +0 -74
- package/dist/ui/components/status-bar.js +74 -67
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/hooks/use-input-handler.js +72 -0
- package/dist/ui/hooks/use-input-handler.js.map +1 -1
- package/dist/ui/themes/index.d.ts +5 -0
- package/dist/ui/themes/index.js +5 -0
- package/dist/ui/themes/index.js.map +1 -0
- package/dist/ui/themes/theme-registry.d.ts +52 -0
- package/dist/ui/themes/theme-registry.js +148 -0
- package/dist/ui/themes/theme-registry.js.map +1 -0
- package/dist/ui/utils/colors.d.ts +27 -1
- package/dist/ui/utils/colors.js +70 -1
- package/dist/ui/utils/colors.js.map +1 -1
- package/dist/ui/utils/image-handler.js +3 -0
- package/dist/ui/utils/image-handler.js.map +1 -1
- package/dist/utils/enhanced-error-messages.js +43 -23
- package/dist/utils/enhanced-error-messages.js.map +1 -1
- package/dist/utils/init-validator.d.ts +4 -0
- package/dist/utils/init-validator.js +17 -13
- package/dist/utils/init-validator.js.map +1 -1
- package/dist/utils/llm-optimized-instruction-generator.js +97 -136
- package/dist/utils/llm-optimized-instruction-generator.js.map +1 -1
- package/dist/utils/project-analyzer.d.ts +6 -0
- package/dist/utils/project-analyzer.js +92 -189
- package/dist/utils/project-analyzer.js.map +1 -1
- package/dist/utils/settings-manager.d.ts +13 -1
- package/dist/utils/settings-manager.js +30 -0
- package/dist/utils/settings-manager.js.map +1 -1
- package/dist/utils/template-manager.d.ts +8 -0
- package/dist/utils/template-manager.js +54 -110
- package/dist/utils/template-manager.js.map +1 -1
- package/package.json +1 -1
- package/dist/tools/result-enhancer.d.ts +0 -64
- package/dist/tools/result-enhancer.js +0 -215
- package/dist/tools/result-enhancer.js.map +0 -1
|
@@ -49,34 +49,28 @@ export class LLMOptimizedInstructionGenerator {
|
|
|
49
49
|
**Type:** ${projectInfo.projectType} | **Lang:** ${projectInfo.primaryLanguage}${version ? ` | **Ver:** ${version}` : ''}${stack}`;
|
|
50
50
|
}
|
|
51
51
|
generateCriticalRules(projectInfo) {
|
|
52
|
+
const { conventions, primaryLanguage, scripts } = projectInfo;
|
|
52
53
|
const rules = [];
|
|
53
|
-
//
|
|
54
|
-
if (
|
|
54
|
+
// Build rules based on project configuration
|
|
55
|
+
if (conventions.importExtension === '.js') {
|
|
55
56
|
rules.push('**ESM Imports:** Always use `.js` extension: `import { x } from \'./y.js\'`');
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
rules.push(`**Validation:** Use ${projectInfo.conventions.validation} for all external inputs`);
|
|
58
|
+
if (conventions.validation) {
|
|
59
|
+
rules.push(`**Validation:** Use ${conventions.validation} for all external inputs`);
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
if (projectInfo.primaryLanguage === 'TypeScript') {
|
|
61
|
+
if (primaryLanguage === 'TypeScript') {
|
|
63
62
|
rules.push('**Types:** Explicit return types required on all functions');
|
|
64
63
|
}
|
|
65
|
-
|
|
66
|
-
if (projectInfo.scripts.test) {
|
|
64
|
+
if (scripts.test) {
|
|
67
65
|
rules.push('**Testing:** 80%+ coverage, test error paths');
|
|
68
66
|
}
|
|
69
|
-
|
|
70
|
-
if (projectInfo.conventions.moduleSystem === 'esm') {
|
|
67
|
+
if (conventions.moduleSystem === 'esm') {
|
|
71
68
|
rules.push('**Modules:** Use `import/export` (not `require/module.exports`)');
|
|
72
69
|
}
|
|
73
|
-
// Rule 6: File Organization
|
|
74
70
|
rules.push('**File Organization:** Follow standardized output paths (see below)');
|
|
75
|
-
// Take only top N rules (increased to accommodate file organization)
|
|
76
71
|
const topRules = rules.slice(0, Math.max(this.config.criticalRulesCount, 6));
|
|
77
|
-
if (topRules.length === 0)
|
|
72
|
+
if (topRules.length === 0)
|
|
78
73
|
return '';
|
|
79
|
-
}
|
|
80
74
|
return `## 🎯 Critical Rules\n\n${topRules.map((rule, i) => `${i + 1}. ${rule}`).join('\n')}`;
|
|
81
75
|
}
|
|
82
76
|
generateProjectOverview(projectInfo) {
|
|
@@ -119,157 +113,124 @@ export class LLMOptimizedInstructionGenerator {
|
|
|
119
113
|
return parts.join('\n\n');
|
|
120
114
|
}
|
|
121
115
|
generateCodePatterns(projectInfo) {
|
|
122
|
-
|
|
116
|
+
const { primaryLanguage, conventions, projectType } = projectInfo;
|
|
117
|
+
const sections = ['## 🔧 Code Patterns'];
|
|
123
118
|
// TypeScript patterns with DO/DON'T
|
|
124
|
-
if (
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
if (
|
|
158
|
-
|
|
159
|
-
content += 'Commands should:\n';
|
|
160
|
-
content += '- Accept options via flags (`-f, --flag <value>`)\n';
|
|
161
|
-
content += '- Validate input before execution\n';
|
|
162
|
-
content += '- Provide clear error messages\n';
|
|
163
|
-
content += '- Return exit codes (0 = success, 1+ = error)';
|
|
164
|
-
}
|
|
165
|
-
else if (projectInfo.projectType === 'api') {
|
|
166
|
-
content += '\n\n### API Endpoints\n';
|
|
167
|
-
content += 'Endpoints should:\n';
|
|
168
|
-
content += '- Validate request body/params\n';
|
|
169
|
-
content += '- Use proper HTTP status codes\n';
|
|
170
|
-
content += '- Handle errors with consistent format\n';
|
|
171
|
-
content += '- Document with OpenAPI/Swagger';
|
|
172
|
-
}
|
|
173
|
-
else if (projectInfo.projectType === 'library') {
|
|
174
|
-
content += '\n\n### Library API\n';
|
|
175
|
-
content += 'Public API should:\n';
|
|
176
|
-
content += '- Have clear, typed interfaces\n';
|
|
177
|
-
content += '- Validate all inputs\n';
|
|
178
|
-
content += '- Avoid breaking changes\n';
|
|
179
|
-
content += '- Document all exports';
|
|
119
|
+
if (primaryLanguage === 'TypeScript' && this.config.includeDODONT) {
|
|
120
|
+
const doCode = [
|
|
121
|
+
'// Explicit types',
|
|
122
|
+
'function process(x: string): Promise<Result> { }',
|
|
123
|
+
...(conventions.importExtension === '.js' ? ['\n// ESM imports with .js extension', "import { foo } from './bar.js';"] : []),
|
|
124
|
+
];
|
|
125
|
+
const dontCode = [
|
|
126
|
+
'// No any types',
|
|
127
|
+
'function process(x: any) { } // ❌',
|
|
128
|
+
...(conventions.importExtension === '.js' ? ['\n// Missing .js extension', "import { foo } from './bar'; // ❌"] : []),
|
|
129
|
+
];
|
|
130
|
+
sections.push('### TypeScript\n', '✅ **DO:**', '```typescript', doCode.join('\n'), '```\n', '❌ **DON\'T:**', '```typescript', dontCode.join('\n'), '```');
|
|
131
|
+
}
|
|
132
|
+
// Validation patterns
|
|
133
|
+
if (conventions.validation && this.config.includeDODONT) {
|
|
134
|
+
sections.push(`### Validation (${conventions.validation})\n`, '✅ **DO:**', '```typescript', 'const result = schema.safeParse(data);', 'if (!result.success) {', ' return { success: false, error: result.error };', '}', '```');
|
|
135
|
+
}
|
|
136
|
+
// Project-specific patterns
|
|
137
|
+
const typePatterns = {
|
|
138
|
+
cli: {
|
|
139
|
+
title: '### CLI Commands\nCommands should:',
|
|
140
|
+
items: ['Accept options via flags (`-f, --flag <value>`)', 'Validate input before execution', 'Provide clear error messages', 'Return exit codes (0 = success, 1+ = error)'],
|
|
141
|
+
},
|
|
142
|
+
api: {
|
|
143
|
+
title: '### API Endpoints\nEndpoints should:',
|
|
144
|
+
items: ['Validate request body/params', 'Use proper HTTP status codes', 'Handle errors with consistent format', 'Document with OpenAPI/Swagger'],
|
|
145
|
+
},
|
|
146
|
+
library: {
|
|
147
|
+
title: '### Library API\nPublic API should:',
|
|
148
|
+
items: ['Have clear, typed interfaces', 'Validate all inputs', 'Avoid breaking changes', 'Document all exports'],
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
const pattern = typePatterns[projectType];
|
|
152
|
+
if (pattern) {
|
|
153
|
+
sections.push(`${pattern.title}\n${pattern.items.map(i => `- ${i}`).join('\n')}`);
|
|
180
154
|
}
|
|
181
|
-
return
|
|
155
|
+
return sections.join('\n');
|
|
182
156
|
}
|
|
183
157
|
generateWorkflow(projectInfo) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
if (projectInfo.scripts.build) {
|
|
205
|
-
afterSteps.push(`Build: \`${projectInfo.scripts.build}\``);
|
|
206
|
-
}
|
|
158
|
+
const { scripts, packageManager } = projectInfo;
|
|
159
|
+
const sections = [
|
|
160
|
+
'## 🔄 Workflow',
|
|
161
|
+
'**Before:**',
|
|
162
|
+
'- Read files to understand implementation',
|
|
163
|
+
'- Search for related patterns',
|
|
164
|
+
'- Review tests for expected behavior',
|
|
165
|
+
'',
|
|
166
|
+
'**Changes:**',
|
|
167
|
+
'- Edit existing files (never recreate)',
|
|
168
|
+
'- Keep changes focused and atomic',
|
|
169
|
+
'- Preserve code style',
|
|
170
|
+
'- Update tests when changing functionality',
|
|
171
|
+
];
|
|
172
|
+
// After steps
|
|
173
|
+
const afterSteps = [
|
|
174
|
+
scripts.lint && `Lint: \`${scripts.lint}\``,
|
|
175
|
+
scripts.test && `Test: \`${scripts.test}\``,
|
|
176
|
+
scripts.build && `Build: \`${scripts.build}\``,
|
|
177
|
+
].filter(Boolean);
|
|
207
178
|
if (afterSteps.length > 0) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
179
|
+
sections.push('', '**After:**', ...afterSteps.map((step, i) => `${i + 1}. ${step}`));
|
|
180
|
+
}
|
|
181
|
+
// Quick commands
|
|
182
|
+
if (packageManager && Object.keys(scripts).length > 0) {
|
|
183
|
+
const run = packageManager === 'npm' ? 'npm run' : packageManager;
|
|
184
|
+
const test = packageManager === 'npm' ? 'npm' : packageManager;
|
|
185
|
+
const cmds = [
|
|
186
|
+
scripts.dev && `${run} dev # Development`,
|
|
187
|
+
scripts.test && `${test} test # Run tests`,
|
|
188
|
+
scripts.build && `${run} build # Production build`,
|
|
189
|
+
].filter((cmd) => Boolean(cmd));
|
|
190
|
+
if (cmds.length > 0) {
|
|
191
|
+
sections.push('', '**Quick Commands:**', '```bash', ...cmds, '```');
|
|
219
192
|
}
|
|
220
|
-
if (projectInfo.scripts.test) {
|
|
221
|
-
workflow += `${test} test # Run tests\n`;
|
|
222
|
-
}
|
|
223
|
-
if (projectInfo.scripts.build) {
|
|
224
|
-
workflow += `${run} build # Production build\n`;
|
|
225
|
-
}
|
|
226
|
-
workflow += '```';
|
|
227
193
|
}
|
|
228
|
-
return
|
|
194
|
+
return sections.join('\n');
|
|
229
195
|
}
|
|
230
196
|
generateTroubleshooting(projectInfo) {
|
|
231
|
-
|
|
197
|
+
const { conventions, primaryLanguage } = projectInfo;
|
|
232
198
|
const issues = [];
|
|
233
|
-
//
|
|
234
|
-
if (
|
|
199
|
+
// Conditionally add issues based on project config
|
|
200
|
+
if (conventions.importExtension === '.js') {
|
|
235
201
|
issues.push({
|
|
236
202
|
problem: '"Module not found" errors',
|
|
237
203
|
solution: 'Add `.js` extension to imports (ESM requirement)',
|
|
238
|
-
code:
|
|
204
|
+
code: "// ✅ Correct\nimport { x } from './y.js';\n\n// ❌ Wrong\nimport { x } from './y'; // Missing .js",
|
|
239
205
|
});
|
|
240
206
|
}
|
|
241
|
-
|
|
242
|
-
if (projectInfo.conventions.validation) {
|
|
207
|
+
if (conventions.validation) {
|
|
243
208
|
issues.push({
|
|
244
|
-
problem: `${
|
|
209
|
+
problem: `${conventions.validation} validation errors`,
|
|
245
210
|
solution: 'Use `.safeParse()` for detailed error messages. Check schema matches data structure.',
|
|
246
211
|
});
|
|
247
212
|
}
|
|
248
|
-
|
|
249
|
-
if (projectInfo.conventions.testFramework) {
|
|
213
|
+
if (conventions.testFramework) {
|
|
250
214
|
issues.push({
|
|
251
215
|
problem: 'Tests fail locally but pass in CI',
|
|
252
|
-
solution:
|
|
216
|
+
solution: 'Check Node version, clear node_modules, check environment-specific code',
|
|
253
217
|
});
|
|
254
218
|
}
|
|
255
|
-
|
|
256
|
-
if (projectInfo.primaryLanguage === 'TypeScript') {
|
|
219
|
+
if (primaryLanguage === 'TypeScript') {
|
|
257
220
|
issues.push({
|
|
258
221
|
problem: 'TypeScript compilation errors',
|
|
259
222
|
solution: 'Check `tsconfig.json` settings, ensure all types are imported, verify `moduleResolution`',
|
|
260
223
|
});
|
|
261
224
|
}
|
|
262
|
-
if (issues.length === 0)
|
|
225
|
+
if (issues.length === 0)
|
|
263
226
|
return '';
|
|
227
|
+
const sections = ['## 🐛 Troubleshooting'];
|
|
228
|
+
for (const { problem, solution, code } of issues) {
|
|
229
|
+
sections.push(`### ${problem}`, `**Solution:** ${solution}`);
|
|
230
|
+
if (code)
|
|
231
|
+
sections.push(`\`\`\`typescript\n${code}\n\`\`\``);
|
|
264
232
|
}
|
|
265
|
-
|
|
266
|
-
content += `\n\n### ${issue.problem}\n`;
|
|
267
|
-
content += `**Solution:** ${issue.solution}`;
|
|
268
|
-
if (issue.code) {
|
|
269
|
-
content += `\n\`\`\`typescript\n${issue.code}\n\`\`\``;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
return content;
|
|
233
|
+
return sections.join('\n\n');
|
|
273
234
|
}
|
|
274
235
|
/**
|
|
275
236
|
* Generate project index JSON
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-optimized-instruction-generator.js","sourceRoot":"","sources":["../../src/utils/llm-optimized-instruction-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,OAAO,gCAAgC;IACnC,MAAM,CAAqB;IAEnC,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG;YACZ,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,UAAU;YACvD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;YACjD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,CAAC;YAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;YAC3C,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,IAAI;SAC9D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,WAAwB;QAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,sBAAsB;QACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAEhD,gCAAgC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,gDAAgD;QAChD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;QAE/C,gCAAgC;QAChC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;QAEzD,8BAA8B;QAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;QAEtD,mDAAmD;QACnD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;QAElD,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAEO,cAAc,CAAC,WAAwB;QAC7C,8DAA8D;QAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAC5C,CAAC,CAAC,gBAAgB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,KAAK,WAAW,CAAC,IAAI;;YAEpB,WAAW,CAAC,WAAW,gBAAgB,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACjI,CAAC;IAEO,qBAAqB,CAAC,WAAwB;QACpD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,
|
|
1
|
+
{"version":3,"file":"llm-optimized-instruction-generator.js","sourceRoot":"","sources":["../../src/utils/llm-optimized-instruction-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,10 @@ export declare class ProjectAnalyzer {
|
|
|
8
8
|
private packageJsonCache;
|
|
9
9
|
private tsConfigCache;
|
|
10
10
|
constructor(projectRoot?: string);
|
|
11
|
+
/** Helper to check if path exists relative to project root */
|
|
12
|
+
private pathExists;
|
|
13
|
+
/** Helper to get stat if path is directory */
|
|
14
|
+
private isDirectory;
|
|
11
15
|
/**
|
|
12
16
|
* Helper: Read and cache package.json
|
|
13
17
|
* Reduces file I/O from 8 reads to 1 read
|
|
@@ -27,6 +31,8 @@ export declare class ProjectAnalyzer {
|
|
|
27
31
|
private detectTechStack;
|
|
28
32
|
private detectProjectType;
|
|
29
33
|
private detectEntryPoint;
|
|
34
|
+
/** Helper to find first matching directory */
|
|
35
|
+
private findFirstDir;
|
|
30
36
|
private detectDirectories;
|
|
31
37
|
private detectKeyFiles;
|
|
32
38
|
private detectConventions;
|