@defai.digital/ax-cli 3.15.26 → 4.0.1

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 (99) hide show
  1. package/README.md +67 -21
  2. package/config-defaults/prompts.yaml +5 -0
  3. package/dist/agent/execution/tool-executor.js +47 -1
  4. package/dist/agent/execution/tool-executor.js.map +1 -1
  5. package/dist/agent/llm-agent.js +4 -4
  6. package/dist/agent/llm-agent.js.map +1 -1
  7. package/dist/agent/parallel-tools.js +1 -0
  8. package/dist/agent/parallel-tools.js.map +1 -1
  9. package/dist/commands/cache.js +37 -34
  10. package/dist/commands/cache.js.map +1 -1
  11. package/dist/commands/doctor.js +111 -65
  12. package/dist/commands/doctor.js.map +1 -1
  13. package/dist/commands/init/wizard.js +10 -12
  14. package/dist/commands/init/wizard.js.map +1 -1
  15. package/dist/commands/init.d.ts +3 -3
  16. package/dist/commands/init.js +173 -25
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/mcp.js +106 -55
  19. package/dist/commands/mcp.js.map +1 -1
  20. package/dist/commands/setup.d.ts +0 -1
  21. package/dist/commands/setup.js +33 -194
  22. package/dist/commands/setup.js.map +1 -1
  23. package/dist/commands/usage.js +45 -51
  24. package/dist/commands/usage.js.map +1 -1
  25. package/dist/index.js +3 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/llm/tools.d.ts +2 -9
  28. package/dist/llm/tools.js +8 -579
  29. package/dist/llm/tools.js.map +1 -1
  30. package/dist/mcp/content-length-transport.d.ts +18 -0
  31. package/dist/mcp/content-length-transport.js +121 -3
  32. package/dist/mcp/content-length-transport.js.map +1 -1
  33. package/dist/mcp/error-remediation.js +54 -17
  34. package/dist/mcp/error-remediation.js.map +1 -1
  35. package/dist/planner/types.d.ts +4 -4
  36. package/dist/tools/ax-agent.d.ts +32 -0
  37. package/dist/tools/ax-agent.js +105 -0
  38. package/dist/tools/ax-agent.js.map +1 -1
  39. package/dist/tools/definitions/ask-user.d.ts +8 -0
  40. package/dist/tools/definitions/ask-user.js +168 -0
  41. package/dist/tools/definitions/ask-user.js.map +1 -0
  42. package/dist/tools/definitions/ax-agent.d.ts +8 -0
  43. package/dist/tools/definitions/ax-agent.js +276 -0
  44. package/dist/tools/definitions/ax-agent.js.map +1 -0
  45. package/dist/tools/definitions/bash-output.d.ts +7 -0
  46. package/dist/tools/definitions/bash-output.js +78 -0
  47. package/dist/tools/definitions/bash-output.js.map +1 -0
  48. package/dist/tools/definitions/bash.d.ts +8 -0
  49. package/dist/tools/definitions/bash.js +152 -0
  50. package/dist/tools/definitions/bash.js.map +1 -0
  51. package/dist/tools/definitions/create-file.d.ts +7 -0
  52. package/dist/tools/definitions/create-file.js +129 -0
  53. package/dist/tools/definitions/create-file.js.map +1 -0
  54. package/dist/tools/definitions/design.d.ts +12 -0
  55. package/dist/tools/definitions/design.js +368 -0
  56. package/dist/tools/definitions/design.js.map +1 -0
  57. package/dist/tools/definitions/index.d.ts +49 -0
  58. package/dist/tools/definitions/index.js +87 -0
  59. package/dist/tools/definitions/index.js.map +1 -0
  60. package/dist/tools/definitions/multi-edit.d.ts +7 -0
  61. package/dist/tools/definitions/multi-edit.js +123 -0
  62. package/dist/tools/definitions/multi-edit.js.map +1 -0
  63. package/dist/tools/definitions/search.d.ts +7 -0
  64. package/dist/tools/definitions/search.js +159 -0
  65. package/dist/tools/definitions/search.js.map +1 -0
  66. package/dist/tools/definitions/str-replace-editor.d.ts +7 -0
  67. package/dist/tools/definitions/str-replace-editor.js +145 -0
  68. package/dist/tools/definitions/str-replace-editor.js.map +1 -0
  69. package/dist/tools/definitions/todo.d.ts +8 -0
  70. package/dist/tools/definitions/todo.js +261 -0
  71. package/dist/tools/definitions/todo.js.map +1 -0
  72. package/dist/tools/definitions/view-file.d.ts +7 -0
  73. package/dist/tools/definitions/view-file.js +111 -0
  74. package/dist/tools/definitions/view-file.js.map +1 -0
  75. package/dist/tools/format-generators.d.ts +62 -0
  76. package/dist/tools/format-generators.js +291 -0
  77. package/dist/tools/format-generators.js.map +1 -0
  78. package/dist/tools/index.d.ts +3 -0
  79. package/dist/tools/index.js +5 -0
  80. package/dist/tools/index.js.map +1 -1
  81. package/dist/tools/types.d.ts +175 -0
  82. package/dist/tools/types.js +11 -0
  83. package/dist/tools/types.js.map +1 -0
  84. package/dist/ui/utils/image-handler.js +3 -0
  85. package/dist/ui/utils/image-handler.js.map +1 -1
  86. package/dist/utils/enhanced-error-messages.js +43 -23
  87. package/dist/utils/enhanced-error-messages.js.map +1 -1
  88. package/dist/utils/init-validator.d.ts +4 -0
  89. package/dist/utils/init-validator.js +17 -13
  90. package/dist/utils/init-validator.js.map +1 -1
  91. package/dist/utils/llm-optimized-instruction-generator.js +97 -136
  92. package/dist/utils/llm-optimized-instruction-generator.js.map +1 -1
  93. package/dist/utils/project-analyzer.d.ts +6 -0
  94. package/dist/utils/project-analyzer.js +92 -189
  95. package/dist/utils/project-analyzer.js.map +1 -1
  96. package/dist/utils/template-manager.d.ts +8 -0
  97. package/dist/utils/template-manager.js +54 -110
  98. package/dist/utils/template-manager.js.map +1 -1
  99. package/package.json +1 -1
@@ -76,7 +76,7 @@ const FILE_ERROR_PATTERNS = {
76
76
  },
77
77
  };
78
78
  /**
79
- * API error templates
79
+ * API error templates with actionable ax-cli commands
80
80
  */
81
81
  const API_ERROR_PATTERNS = {
82
82
  400: {
@@ -84,7 +84,7 @@ const API_ERROR_PATTERNS = {
84
84
  description: 'The API request was malformed or invalid',
85
85
  suggestions: [
86
86
  'Check the request parameters',
87
- 'Verify the model name is correct',
87
+ 'Verify the model name: ax-cli models',
88
88
  'Ensure the input is properly formatted',
89
89
  'Review the API documentation',
90
90
  ],
@@ -93,10 +93,10 @@ const API_ERROR_PATTERNS = {
93
93
  title: 'Authentication Failed',
94
94
  description: 'Your API key is invalid or missing',
95
95
  suggestions: [
96
- 'Run "ax setup" to configure your API key',
96
+ 'Run: ax-cli setup (to configure your API key)',
97
+ '→ Or run: ax-cli config set apiKey YOUR_API_KEY',
97
98
  'Verify your API key at the provider dashboard',
98
- 'Check if your API key has expired',
99
- 'Ensure the API key matches your provider',
99
+ 'Check if your API key has expired and regenerate if needed',
100
100
  ],
101
101
  learnMore: 'https://docs.ax-cli.dev/configuration#api-keys',
102
102
  },
@@ -104,20 +104,20 @@ const API_ERROR_PATTERNS = {
104
104
  title: 'Access Forbidden',
105
105
  description: 'You do not have permission to access this resource',
106
106
  suggestions: [
107
- 'Verify your account has access to this model',
108
- 'Check your subscription plan',
107
+ 'Verify your account has access to this model: ax-cli models',
108
+ 'Check your subscription plan at the provider dashboard',
109
+ '→ Run: ax-cli doctor (to diagnose configuration issues)',
109
110
  'Ensure your API key has the correct permissions',
110
- 'Contact your provider support',
111
111
  ],
112
112
  },
113
113
  404: {
114
114
  title: 'Resource Not Found',
115
115
  description: 'The requested model or endpoint does not exist',
116
116
  suggestions: [
117
- 'Verify the model name using: ax models',
118
- 'Check the base URL in your configuration',
117
+ ' Run: ax-cli models (to see available models)',
118
+ ' Run: ax-cli config get baseUrl (to check your API endpoint)',
119
119
  'Ensure the provider supports this model',
120
- 'Update to the latest version of ax-cli',
120
+ ' Run: ax-cli doctor (to verify configuration)',
121
121
  ],
122
122
  },
123
123
  429: {
@@ -126,8 +126,8 @@ const API_ERROR_PATTERNS = {
126
126
  suggestions: [
127
127
  'Wait a few minutes before retrying',
128
128
  'Check your rate limits at the provider dashboard',
129
+ '→ Run: ax-cli usage (to check your usage)',
129
130
  'Consider upgrading your API plan',
130
- 'Reduce the frequency of requests',
131
131
  ],
132
132
  learnMore: 'https://docs.ax-cli.dev/troubleshooting#rate-limits',
133
133
  },
@@ -137,7 +137,7 @@ const API_ERROR_PATTERNS = {
137
137
  suggestions: [
138
138
  'Wait a few moments and try again',
139
139
  'Check provider status page for outages',
140
- 'Try again with a smaller request',
140
+ ' Run: ax-cli doctor (to verify your configuration)',
141
141
  'Contact provider support if it persists',
142
142
  ],
143
143
  },
@@ -171,18 +171,18 @@ const API_ERROR_PATTERNS = {
171
171
  },
172
172
  };
173
173
  /**
174
- * MCP error templates
174
+ * MCP error templates with actionable ax-cli commands
175
175
  */
176
176
  const MCP_ERROR_PATTERNS = {
177
177
  CONNECTION_FAILED: {
178
178
  title: 'MCP Server Connection Failed',
179
179
  description: 'Unable to connect to the MCP server',
180
180
  suggestions: [
181
- 'Check if the MCP server is running',
182
- 'Verify the server configuration in .ax-cli/settings.json',
183
- 'Ensure the server command/URL is correct',
181
+ ' Run: ax-cli mcp list (to see configured servers)',
182
+ ' Run: ax-cli mcp test <server-name> (to test connection)',
183
+ ' Run: ax-cli mcp health (to check all server status)',
184
184
  'Check server logs for errors',
185
- 'Try restarting the MCP server',
185
+ ' Run: ax-cli mcp remove <server-name> && ax-cli mcp add <server-name> --template (to reinstall)',
186
186
  ],
187
187
  learnMore: 'https://docs.ax-cli.dev/mcp#troubleshooting',
188
188
  },
@@ -190,22 +190,42 @@ const MCP_ERROR_PATTERNS = {
190
190
  title: 'Invalid MCP Server Response',
191
191
  description: 'The MCP server returned an unexpected response',
192
192
  suggestions: [
193
+ '→ Run: ax-cli mcp test <server-name> (to verify server)',
194
+ '→ Run: ax-cli mcp tools <server-name> (to see available tools)',
193
195
  'Ensure the MCP server is up to date',
194
- 'Check server logs for errors',
195
- 'Verify the server implements the MCP protocol correctly',
196
- 'Try restarting the MCP server',
196
+ 'Check if the server implements the MCP protocol correctly',
197
197
  ],
198
198
  },
199
199
  TIMEOUT: {
200
200
  title: 'MCP Server Timeout',
201
201
  description: 'The MCP server did not respond in time',
202
202
  suggestions: [
203
+ '→ Run: ax-cli mcp health <server-name> (to check server status)',
204
+ '→ Run: ax-cli mcp test <server-name> (to test connection)',
203
205
  'Check if the server is overloaded',
204
- 'Increase the timeout in settings',
205
- 'Verify the server is running properly',
206
206
  'Try restarting the MCP server',
207
207
  ],
208
208
  },
209
+ AUTH_FAILED: {
210
+ title: 'MCP Server Authentication Failed',
211
+ description: 'The MCP server rejected the authentication credentials',
212
+ suggestions: [
213
+ '→ Run: ax-cli mcp add <server-name> --template --env TOKEN=YOUR_TOKEN (to re-add with token)',
214
+ 'Verify your API token/key is valid and not expired',
215
+ 'Check the environment variable is set correctly',
216
+ '→ Run: ax-cli mcp validate <server-name> (to check configuration)',
217
+ ],
218
+ },
219
+ ENV_MISSING: {
220
+ title: 'Missing Environment Variable',
221
+ description: 'A required environment variable is not set',
222
+ suggestions: [
223
+ '→ Run: ax-cli mcp add <name> --template --env VAR_NAME=VALUE (to provide directly)',
224
+ 'Or set in your shell: export VAR_NAME="your_value"',
225
+ 'Or add to ~/.bashrc or ~/.zshrc for persistence',
226
+ '→ Run: ax-cli mcp templates (to see required variables for each template)',
227
+ ],
228
+ },
209
229
  };
210
230
  /**
211
231
  * Bash command error templates
@@ -1 +1 @@
1
- {"version":3,"file":"enhanced-error-messages.js","sourceRoot":"","sources":["../../src/utils/enhanced-error-messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enhanced-error-messages.js","sourceRoot":"","sources":["../../src/utils/enhanced-error-messages.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ export interface ValidationChecks {
18
18
  export declare class InitValidator {
19
19
  private projectRoot;
20
20
  constructor(projectRoot: string);
21
+ /** Helper to resolve path relative to project root */
22
+ private resolvePath;
23
+ /** Helper to check if path exists */
24
+ private pathExists;
21
25
  /**
22
26
  * Run all validation checks
23
27
  */
@@ -9,6 +9,14 @@ export class InitValidator {
9
9
  constructor(projectRoot) {
10
10
  this.projectRoot = projectRoot;
11
11
  }
12
+ /** Helper to resolve path relative to project root */
13
+ resolvePath(...segments) {
14
+ return path.join(this.projectRoot, ...segments);
15
+ }
16
+ /** Helper to check if path exists */
17
+ pathExists(...segments) {
18
+ return fs.existsSync(this.resolvePath(...segments));
19
+ }
12
20
  /**
13
21
  * Run all validation checks
14
22
  */
@@ -41,8 +49,8 @@ export class InitValidator {
41
49
  * Check for package.json
42
50
  */
43
51
  checkPackageJson(result) {
44
- const packageJsonPath = path.join(this.projectRoot, 'package.json');
45
- if (!fs.existsSync(packageJsonPath)) {
52
+ const packageJsonPath = this.resolvePath('package.json');
53
+ if (!this.pathExists('package.json')) {
46
54
  result.warnings.push('No package.json found - may not be a Node.js project');
47
55
  result.suggestions.push('Run: npm init (if this is a Node.js project)');
48
56
  }
@@ -86,8 +94,7 @@ export class InitValidator {
86
94
  * Check for git repository
87
95
  */
88
96
  checkGitRepo(result) {
89
- const gitDir = path.join(this.projectRoot, '.git');
90
- if (!fs.existsSync(gitDir)) {
97
+ if (!this.pathExists('.git')) {
91
98
  result.warnings.push('Not a git repository');
92
99
  result.suggestions.push('Run: git init (for version control)');
93
100
  }
@@ -96,13 +103,11 @@ export class InitValidator {
96
103
  * Check for existing AX CLI configuration
97
104
  */
98
105
  checkExistingConfig(result) {
99
- const axCliDir = path.join(this.projectRoot, '.ax-cli');
100
- const customMdPath = path.join(axCliDir, 'CUSTOM.md');
101
- const indexPath = path.join(axCliDir, 'index.json');
102
- if (fs.existsSync(customMdPath)) {
106
+ if (this.pathExists('.ax-cli', 'CUSTOM.md')) {
103
107
  result.warnings.push('Existing CUSTOM.md found - will be overwritten unless --force is used');
104
108
  }
105
- if (fs.existsSync(indexPath)) {
109
+ if (this.pathExists('.ax-cli', 'index.json')) {
110
+ const indexPath = this.resolvePath('.ax-cli', 'index.json');
106
111
  const parseResult = parseJsonFile(indexPath);
107
112
  if (parseResult.success) {
108
113
  const indexData = parseResult.data;
@@ -125,8 +130,8 @@ export class InitValidator {
125
130
  */
126
131
  checkProjectStructure(result) {
127
132
  const commonDirs = ['src', 'lib', 'dist', 'build', 'test', 'tests', '__tests__'];
128
- const foundDirs = commonDirs.filter(dir => fs.existsSync(path.join(this.projectRoot, dir)));
129
- if (foundDirs.length === 0) {
133
+ const hasStandardDir = commonDirs.some(dir => this.pathExists(dir));
134
+ if (!hasStandardDir) {
130
135
  result.warnings.push('No standard project directories found (src/, lib/, etc.)');
131
136
  result.suggestions.push('Project may be empty or have non-standard structure');
132
137
  }
@@ -219,8 +224,7 @@ export class InitValidator {
219
224
  * Check if force flag is needed
220
225
  */
221
226
  needsForceFlag() {
222
- const customMdPath = path.join(this.projectRoot, '.ax-cli', 'CUSTOM.md');
223
- return fs.existsSync(customMdPath);
227
+ return this.pathExists('.ax-cli', 'CUSTOM.md');
224
228
  }
225
229
  /**
226
230
  * Get validation summary string
@@ -1 +1 @@
1
- {"version":3,"file":"init-validator.js","sourceRoot":"","sources":["../../src/utils/init-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-validator.js","sourceRoot":"","sources":["../../src/utils/init-validator.ts"],"names":[],"mappings":"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"}
@@ -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
- // Rule 1: ESM imports (if applicable)
54
- if (projectInfo.conventions.importExtension === '.js') {
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
- // Rule 2: Validation (if applicable)
58
- if (projectInfo.conventions.validation) {
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
- // Rule 3: TypeScript types (if applicable)
62
- if (projectInfo.primaryLanguage === 'TypeScript') {
61
+ if (primaryLanguage === 'TypeScript') {
63
62
  rules.push('**Types:** Explicit return types required on all functions');
64
63
  }
65
- // Rule 4: Testing coverage
66
- if (projectInfo.scripts.test) {
64
+ if (scripts.test) {
67
65
  rules.push('**Testing:** 80%+ coverage, test error paths');
68
66
  }
69
- // Rule 5: Module system
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
- let content = '## 🔧 Code Patterns';
116
+ const { primaryLanguage, conventions, projectType } = projectInfo;
117
+ const sections = ['## 🔧 Code Patterns'];
123
118
  // TypeScript patterns with DO/DON'T
124
- if (projectInfo.primaryLanguage === 'TypeScript' && this.config.includeDODONT) {
125
- content += '\n\n### TypeScript\n';
126
- content += '\n✅ **DO:**\n';
127
- content += '```typescript\n';
128
- content += '// Explicit types\n';
129
- content += 'function process(x: string): Promise<Result> { }\n';
130
- if (projectInfo.conventions.importExtension === '.js') {
131
- content += '\n// ESM imports with .js extension\n';
132
- content += 'import { foo } from \'./bar.js\';\n';
133
- }
134
- content += '```\n';
135
- content += '\n❌ **DON\'T:**\n';
136
- content += '```typescript\n';
137
- content += '// No any types\n';
138
- content += 'function process(x: any) { } // ❌\n';
139
- if (projectInfo.conventions.importExtension === '.js') {
140
- content += '\n// Missing .js extension\n';
141
- content += 'import { foo } from \'./bar\'; // ❌\n';
142
- }
143
- content += '```';
144
- }
145
- // Validation patterns (if applicable)
146
- if (projectInfo.conventions.validation && this.config.includeDODONT) {
147
- content += `\n\n### Validation (${projectInfo.conventions.validation})\n`;
148
- content += '\n✅ **DO:**\n';
149
- content += '```typescript\n';
150
- content += `const result = schema.safeParse(data);\n`;
151
- content += 'if (!result.success) {\n';
152
- content += ' return { success: false, error: result.error };\n';
153
- content += '}\n';
154
- content += '```';
155
- }
156
- // Project-specific patterns based on type
157
- if (projectInfo.projectType === 'cli') {
158
- content += '\n\n### CLI Commands\n';
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 content;
155
+ return sections.join('\n');
182
156
  }
183
157
  generateWorkflow(projectInfo) {
184
- let workflow = '## 🔄 Workflow';
185
- // Before (compressed, tool-agnostic)
186
- workflow += '\n\n**Before:**\n';
187
- workflow += '- Read files to understand implementation\n';
188
- workflow += '- Search for related patterns\n';
189
- workflow += '- Review tests for expected behavior';
190
- // Changes (compressed)
191
- workflow += '\n\n**Changes:**\n';
192
- workflow += '- Edit existing files (never recreate)\n';
193
- workflow += '- Keep changes focused and atomic\n';
194
- workflow += '- Preserve code style\n';
195
- workflow += '- Update tests when changing functionality';
196
- // After (compressed with actual commands)
197
- const afterSteps = [];
198
- if (projectInfo.scripts.lint) {
199
- afterSteps.push(`Lint: \`${projectInfo.scripts.lint}\``);
200
- }
201
- if (projectInfo.scripts.test) {
202
- afterSteps.push(`Test: \`${projectInfo.scripts.test}\``);
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
- workflow += '\n\n**After:**\n';
209
- workflow += afterSteps.map((step, i) => `${i + 1}. ${step}`).join('\n');
210
- }
211
- // Quick commands (compressed)
212
- if (projectInfo.packageManager && Object.keys(projectInfo.scripts).length > 0) {
213
- workflow += '\n\n**Quick Commands:**\n```bash\n';
214
- const pm = projectInfo.packageManager;
215
- const run = pm === 'npm' ? 'npm run' : pm;
216
- const test = pm === 'npm' ? 'npm' : pm;
217
- if (projectInfo.scripts.dev) {
218
- workflow += `${run} dev # Development\n`;
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 workflow;
194
+ return sections.join('\n');
229
195
  }
230
196
  generateTroubleshooting(projectInfo) {
231
- let content = '## 🐛 Troubleshooting';
197
+ const { conventions, primaryLanguage } = projectInfo;
232
198
  const issues = [];
233
- // ESM import issues
234
- if (projectInfo.conventions.importExtension === '.js') {
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: `// ✅ Correct\nimport { x } from './y.js';\n\n// ❌ Wrong\nimport { x } from './y'; // Missing .js`,
204
+ code: "// ✅ Correct\nimport { x } from './y.js';\n\n// ❌ Wrong\nimport { x } from './y'; // Missing .js",
239
205
  });
240
206
  }
241
- // Validation errors
242
- if (projectInfo.conventions.validation) {
207
+ if (conventions.validation) {
243
208
  issues.push({
244
- problem: `${projectInfo.conventions.validation} validation errors`,
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
- // Test failures
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: `Check Node version, clear node_modules, check environment-specific code`,
216
+ solution: 'Check Node version, clear node_modules, check environment-specific code',
253
217
  });
254
218
  }
255
- // TypeScript errors
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
- for (const issue of issues) {
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