@stackguide/mcp-server 3.2.0 → 3.3.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/README.md +59 -2
- package/dist/handlers/analyze.d.ts +11 -0
- package/dist/handlers/analyze.d.ts.map +1 -0
- package/dist/handlers/analyze.js +274 -0
- package/dist/handlers/analyze.js.map +1 -0
- package/dist/handlers/index.d.ts +1 -0
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/index.js +1 -0
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/setup.d.ts +1 -0
- package/dist/handlers/setup.d.ts.map +1 -1
- package/dist/handlers/setup.js +42 -0
- package/dist/handlers/setup.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/services/intelligence/configGenerator.d.ts +28 -0
- package/dist/services/intelligence/configGenerator.d.ts.map +1 -0
- package/dist/services/intelligence/configGenerator.js +404 -0
- package/dist/services/intelligence/configGenerator.js.map +1 -0
- package/dist/services/intelligence/dependencyAdvisor.d.ts +24 -0
- package/dist/services/intelligence/dependencyAdvisor.d.ts.map +1 -0
- package/dist/services/intelligence/dependencyAdvisor.js +404 -0
- package/dist/services/intelligence/dependencyAdvisor.js.map +1 -0
- package/dist/services/intelligence/index.d.ts +12 -0
- package/dist/services/intelligence/index.d.ts.map +1 -0
- package/dist/services/intelligence/index.js +16 -0
- package/dist/services/intelligence/index.js.map +1 -0
- package/dist/services/intelligence/projectIntelligence.d.ts +26 -0
- package/dist/services/intelligence/projectIntelligence.d.ts.map +1 -0
- package/dist/services/intelligence/projectIntelligence.js +344 -0
- package/dist/services/intelligence/projectIntelligence.js.map +1 -0
- package/dist/services/intelligence/structureAnalyzer.d.ts +27 -0
- package/dist/services/intelligence/structureAnalyzer.d.ts.map +1 -0
- package/dist/services/intelligence/structureAnalyzer.js +286 -0
- package/dist/services/intelligence/structureAnalyzer.js.map +1 -0
- package/dist/services/intelligence/templates.d.ts +22 -0
- package/dist/services/intelligence/templates.d.ts.map +1 -0
- package/dist/services/intelligence/templates.js +521 -0
- package/dist/services/intelligence/templates.js.map +1 -0
- package/dist/services/intelligence/types.d.ts +222 -0
- package/dist/services/intelligence/types.d.ts.map +1 -0
- package/dist/services/intelligence/types.js +7 -0
- package/dist/services/intelligence/types.js.map +1 -0
- package/dist/tools/definitions.d.ts +87 -0
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +34 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework Templates - Optimal structure definitions per framework
|
|
3
|
+
* @version 3.3.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Base dependencies recommended for all JavaScript/TypeScript projects
|
|
7
|
+
*/
|
|
8
|
+
const JS_BASE_DEV_DEPS = [
|
|
9
|
+
{ name: 'eslint', reason: 'Code linting and quality', category: 'linting', priority: 'high' },
|
|
10
|
+
{ name: 'prettier', reason: 'Code formatting', category: 'dx', priority: 'high' },
|
|
11
|
+
{ name: 'typescript', reason: 'Type safety', category: 'types', priority: 'high' }
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Testing dependencies
|
|
15
|
+
*/
|
|
16
|
+
const TESTING_DEPS = [
|
|
17
|
+
{ name: 'vitest', reason: 'Fast unit testing', category: 'testing', priority: 'high' },
|
|
18
|
+
{ name: '@testing-library/react', reason: 'React component testing', category: 'testing', priority: 'medium' }
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* ESLint base config
|
|
22
|
+
*/
|
|
23
|
+
const ESLINT_CONFIG = {
|
|
24
|
+
type: 'eslint',
|
|
25
|
+
filename: 'eslint.config.js',
|
|
26
|
+
content: `import js from '@eslint/js';
|
|
27
|
+
import typescript from '@typescript-eslint/eslint-plugin';
|
|
28
|
+
import typescriptParser from '@typescript-eslint/parser';
|
|
29
|
+
|
|
30
|
+
export default [
|
|
31
|
+
js.configs.recommended,
|
|
32
|
+
{
|
|
33
|
+
files: ['**/*.ts', '**/*.tsx'],
|
|
34
|
+
languageOptions: {
|
|
35
|
+
parser: typescriptParser,
|
|
36
|
+
parserOptions: {
|
|
37
|
+
ecmaVersion: 'latest',
|
|
38
|
+
sourceType: 'module'
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
plugins: {
|
|
42
|
+
'@typescript-eslint': typescript
|
|
43
|
+
},
|
|
44
|
+
rules: {
|
|
45
|
+
'@typescript-eslint/no-unused-vars': 'error',
|
|
46
|
+
'@typescript-eslint/no-explicit-any': 'warn',
|
|
47
|
+
'no-console': 'warn'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
];`,
|
|
51
|
+
description: 'Modern flat ESLint config with TypeScript support',
|
|
52
|
+
customizations: [
|
|
53
|
+
{
|
|
54
|
+
key: 'strictness',
|
|
55
|
+
description: 'How strict should linting be?',
|
|
56
|
+
options: [
|
|
57
|
+
{ value: 'relaxed', label: 'Relaxed', description: 'Minimal rules, mostly errors only' },
|
|
58
|
+
{ value: 'recommended', label: 'Recommended', description: 'Balanced rules for most projects' },
|
|
59
|
+
{ value: 'strict', label: 'Strict', description: 'Maximum type safety and best practices' }
|
|
60
|
+
],
|
|
61
|
+
default: 'recommended'
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Prettier config
|
|
67
|
+
*/
|
|
68
|
+
const PRETTIER_CONFIG = {
|
|
69
|
+
type: 'prettier',
|
|
70
|
+
filename: '.prettierrc',
|
|
71
|
+
content: JSON.stringify({
|
|
72
|
+
semi: true,
|
|
73
|
+
singleQuote: true,
|
|
74
|
+
tabWidth: 2,
|
|
75
|
+
trailingComma: 'es5',
|
|
76
|
+
printWidth: 100,
|
|
77
|
+
bracketSpacing: true
|
|
78
|
+
}, null, 2),
|
|
79
|
+
description: 'Prettier configuration for consistent code formatting',
|
|
80
|
+
customizations: [
|
|
81
|
+
{
|
|
82
|
+
key: 'semi',
|
|
83
|
+
description: 'Use semicolons?',
|
|
84
|
+
options: [
|
|
85
|
+
{ value: true, label: 'Yes', description: 'Always use semicolons' },
|
|
86
|
+
{ value: false, label: 'No', description: 'Omit semicolons (ASI)' }
|
|
87
|
+
],
|
|
88
|
+
default: true
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
key: 'singleQuote',
|
|
92
|
+
description: 'Use single quotes?',
|
|
93
|
+
options: [
|
|
94
|
+
{ value: true, label: 'Single', description: 'Use single quotes' },
|
|
95
|
+
{ value: false, label: 'Double', description: 'Use double quotes' }
|
|
96
|
+
],
|
|
97
|
+
default: true
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* TypeScript strict config
|
|
103
|
+
*/
|
|
104
|
+
const TSCONFIG_STRICT = {
|
|
105
|
+
type: 'tsconfig',
|
|
106
|
+
filename: 'tsconfig.json',
|
|
107
|
+
content: JSON.stringify({
|
|
108
|
+
compilerOptions: {
|
|
109
|
+
target: 'ES2022',
|
|
110
|
+
module: 'NodeNext',
|
|
111
|
+
moduleResolution: 'NodeNext',
|
|
112
|
+
lib: ['ES2022'],
|
|
113
|
+
strict: true,
|
|
114
|
+
esModuleInterop: true,
|
|
115
|
+
skipLibCheck: true,
|
|
116
|
+
forceConsistentCasingInFileNames: true,
|
|
117
|
+
declaration: true,
|
|
118
|
+
declarationMap: true,
|
|
119
|
+
sourceMap: true,
|
|
120
|
+
outDir: './dist',
|
|
121
|
+
rootDir: './src',
|
|
122
|
+
noUnusedLocals: true,
|
|
123
|
+
noUnusedParameters: true,
|
|
124
|
+
noImplicitReturns: true,
|
|
125
|
+
noFallthroughCasesInSwitch: true,
|
|
126
|
+
noUncheckedIndexedAccess: true
|
|
127
|
+
},
|
|
128
|
+
include: ['src/**/*'],
|
|
129
|
+
exclude: ['node_modules', 'dist']
|
|
130
|
+
}, null, 2),
|
|
131
|
+
description: 'Strict TypeScript configuration for maximum type safety',
|
|
132
|
+
customizations: [
|
|
133
|
+
{
|
|
134
|
+
key: 'strict',
|
|
135
|
+
description: 'Enable all strict type checking options?',
|
|
136
|
+
options: [
|
|
137
|
+
{ value: true, label: 'Yes', description: 'Maximum type safety' },
|
|
138
|
+
{ value: false, label: 'No', description: 'Relaxed type checking' }
|
|
139
|
+
],
|
|
140
|
+
default: true
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* EditorConfig
|
|
146
|
+
*/
|
|
147
|
+
const EDITORCONFIG = {
|
|
148
|
+
type: 'editorconfig',
|
|
149
|
+
filename: '.editorconfig',
|
|
150
|
+
content: `# EditorConfig helps maintain consistent coding styles
|
|
151
|
+
root = true
|
|
152
|
+
|
|
153
|
+
[*]
|
|
154
|
+
indent_style = space
|
|
155
|
+
indent_size = 2
|
|
156
|
+
end_of_line = lf
|
|
157
|
+
charset = utf-8
|
|
158
|
+
trim_trailing_whitespace = true
|
|
159
|
+
insert_final_newline = true
|
|
160
|
+
|
|
161
|
+
[*.md]
|
|
162
|
+
trim_trailing_whitespace = false
|
|
163
|
+
|
|
164
|
+
[*.{yaml,yml}]
|
|
165
|
+
indent_size = 2
|
|
166
|
+
|
|
167
|
+
[Makefile]
|
|
168
|
+
indent_style = tab
|
|
169
|
+
`,
|
|
170
|
+
description: 'EditorConfig for consistent editor settings',
|
|
171
|
+
customizations: []
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Gitignore for Node.js projects
|
|
175
|
+
*/
|
|
176
|
+
const GITIGNORE_NODE = {
|
|
177
|
+
type: 'gitignore',
|
|
178
|
+
filename: '.gitignore',
|
|
179
|
+
content: `# Dependencies
|
|
180
|
+
node_modules/
|
|
181
|
+
.pnp
|
|
182
|
+
.pnp.js
|
|
183
|
+
|
|
184
|
+
# Build outputs
|
|
185
|
+
dist/
|
|
186
|
+
build/
|
|
187
|
+
out/
|
|
188
|
+
.next/
|
|
189
|
+
.nuxt/
|
|
190
|
+
|
|
191
|
+
# Testing
|
|
192
|
+
coverage/
|
|
193
|
+
.nyc_output/
|
|
194
|
+
|
|
195
|
+
# Environment
|
|
196
|
+
.env
|
|
197
|
+
.env.local
|
|
198
|
+
.env.*.local
|
|
199
|
+
|
|
200
|
+
# Logs
|
|
201
|
+
logs/
|
|
202
|
+
*.log
|
|
203
|
+
npm-debug.log*
|
|
204
|
+
yarn-debug.log*
|
|
205
|
+
yarn-error.log*
|
|
206
|
+
|
|
207
|
+
# Editor
|
|
208
|
+
.idea/
|
|
209
|
+
.vscode/
|
|
210
|
+
*.swp
|
|
211
|
+
*.swo
|
|
212
|
+
.DS_Store
|
|
213
|
+
|
|
214
|
+
# Cache
|
|
215
|
+
.cache/
|
|
216
|
+
.eslintcache
|
|
217
|
+
.prettiercache
|
|
218
|
+
*.tsbuildinfo
|
|
219
|
+
`,
|
|
220
|
+
description: 'Comprehensive .gitignore for Node.js projects',
|
|
221
|
+
customizations: []
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Framework template definitions
|
|
225
|
+
*/
|
|
226
|
+
export const FRAMEWORK_TEMPLATES = {
|
|
227
|
+
'react-typescript': {
|
|
228
|
+
projectType: 'react-typescript',
|
|
229
|
+
name: 'React TypeScript',
|
|
230
|
+
requiredDirs: ['src', 'src/components', 'public'],
|
|
231
|
+
optionalDirs: [
|
|
232
|
+
'src/hooks',
|
|
233
|
+
'src/utils',
|
|
234
|
+
'src/types',
|
|
235
|
+
'src/services',
|
|
236
|
+
'src/contexts',
|
|
237
|
+
'src/styles',
|
|
238
|
+
'tests'
|
|
239
|
+
],
|
|
240
|
+
requiredFiles: ['package.json', 'tsconfig.json', 'src/index.tsx'],
|
|
241
|
+
optionalFiles: [
|
|
242
|
+
'.eslintrc.js',
|
|
243
|
+
'.prettierrc',
|
|
244
|
+
'.editorconfig',
|
|
245
|
+
'.gitignore',
|
|
246
|
+
'README.md',
|
|
247
|
+
'src/App.tsx',
|
|
248
|
+
'src/types/index.ts'
|
|
249
|
+
],
|
|
250
|
+
recommendedDependencies: [
|
|
251
|
+
...JS_BASE_DEV_DEPS,
|
|
252
|
+
...TESTING_DEPS,
|
|
253
|
+
{ name: 'react', reason: 'Core React library', category: 'dx', priority: 'high' },
|
|
254
|
+
{ name: 'react-dom', reason: 'React DOM rendering', category: 'dx', priority: 'high' },
|
|
255
|
+
{ name: '@types/react', reason: 'React type definitions', category: 'types', priority: 'high' },
|
|
256
|
+
{ name: '@types/react-dom', reason: 'React DOM types', category: 'types', priority: 'high' }
|
|
257
|
+
],
|
|
258
|
+
configTemplates: [ESLINT_CONFIG, PRETTIER_CONFIG, TSCONFIG_STRICT, EDITORCONFIG, GITIGNORE_NODE]
|
|
259
|
+
},
|
|
260
|
+
'nextjs': {
|
|
261
|
+
projectType: 'nextjs',
|
|
262
|
+
name: 'Next.js',
|
|
263
|
+
requiredDirs: ['app', 'public'],
|
|
264
|
+
optionalDirs: [
|
|
265
|
+
'app/api',
|
|
266
|
+
'app/(routes)',
|
|
267
|
+
'components',
|
|
268
|
+
'lib',
|
|
269
|
+
'hooks',
|
|
270
|
+
'types',
|
|
271
|
+
'styles',
|
|
272
|
+
'tests'
|
|
273
|
+
],
|
|
274
|
+
requiredFiles: ['package.json', 'next.config.js', 'tsconfig.json'],
|
|
275
|
+
optionalFiles: [
|
|
276
|
+
'.eslintrc.json',
|
|
277
|
+
'.prettierrc',
|
|
278
|
+
'.env.local',
|
|
279
|
+
'middleware.ts',
|
|
280
|
+
'tailwind.config.js'
|
|
281
|
+
],
|
|
282
|
+
recommendedDependencies: [
|
|
283
|
+
...JS_BASE_DEV_DEPS,
|
|
284
|
+
{ name: 'next', reason: 'Next.js framework', category: 'dx', priority: 'high' },
|
|
285
|
+
{ name: '@next/eslint-plugin-next', reason: 'Next.js ESLint rules', category: 'linting', priority: 'high' },
|
|
286
|
+
{ name: 'tailwindcss', reason: 'Utility-first CSS', category: 'dx', priority: 'medium' }
|
|
287
|
+
],
|
|
288
|
+
configTemplates: [ESLINT_CONFIG, PRETTIER_CONFIG, TSCONFIG_STRICT, EDITORCONFIG]
|
|
289
|
+
},
|
|
290
|
+
'nestjs': {
|
|
291
|
+
projectType: 'nestjs',
|
|
292
|
+
name: 'NestJS',
|
|
293
|
+
requiredDirs: ['src', 'src/modules', 'test'],
|
|
294
|
+
optionalDirs: [
|
|
295
|
+
'src/common',
|
|
296
|
+
'src/config',
|
|
297
|
+
'src/guards',
|
|
298
|
+
'src/interceptors',
|
|
299
|
+
'src/filters',
|
|
300
|
+
'src/pipes',
|
|
301
|
+
'src/decorators'
|
|
302
|
+
],
|
|
303
|
+
requiredFiles: ['package.json', 'tsconfig.json', 'nest-cli.json', 'src/main.ts', 'src/app.module.ts'],
|
|
304
|
+
optionalFiles: [
|
|
305
|
+
'.eslintrc.js',
|
|
306
|
+
'.prettierrc',
|
|
307
|
+
'test/jest-e2e.json',
|
|
308
|
+
'src/app.controller.ts',
|
|
309
|
+
'src/app.service.ts'
|
|
310
|
+
],
|
|
311
|
+
recommendedDependencies: [
|
|
312
|
+
...JS_BASE_DEV_DEPS,
|
|
313
|
+
{ name: '@nestjs/core', reason: 'NestJS core', category: 'dx', priority: 'high' },
|
|
314
|
+
{ name: '@nestjs/common', reason: 'NestJS common utilities', category: 'dx', priority: 'high' },
|
|
315
|
+
{ name: '@nestjs/testing', reason: 'NestJS testing utilities', category: 'testing', priority: 'high' },
|
|
316
|
+
{ name: 'class-validator', reason: 'DTO validation', category: 'security', priority: 'high' },
|
|
317
|
+
{ name: 'class-transformer', reason: 'Object transformation', category: 'dx', priority: 'medium' }
|
|
318
|
+
],
|
|
319
|
+
configTemplates: [ESLINT_CONFIG, PRETTIER_CONFIG, TSCONFIG_STRICT, EDITORCONFIG]
|
|
320
|
+
},
|
|
321
|
+
'express': {
|
|
322
|
+
projectType: 'express',
|
|
323
|
+
name: 'Express.js',
|
|
324
|
+
requiredDirs: ['src', 'src/routes', 'src/middleware'],
|
|
325
|
+
optionalDirs: [
|
|
326
|
+
'src/controllers',
|
|
327
|
+
'src/services',
|
|
328
|
+
'src/models',
|
|
329
|
+
'src/utils',
|
|
330
|
+
'src/config',
|
|
331
|
+
'tests'
|
|
332
|
+
],
|
|
333
|
+
requiredFiles: ['package.json', 'src/index.ts'],
|
|
334
|
+
optionalFiles: [
|
|
335
|
+
'tsconfig.json',
|
|
336
|
+
'.eslintrc.js',
|
|
337
|
+
'.env',
|
|
338
|
+
'src/app.ts',
|
|
339
|
+
'Dockerfile'
|
|
340
|
+
],
|
|
341
|
+
recommendedDependencies: [
|
|
342
|
+
...JS_BASE_DEV_DEPS,
|
|
343
|
+
{ name: 'express', reason: 'Express framework', category: 'dx', priority: 'high' },
|
|
344
|
+
{ name: '@types/express', reason: 'Express types', category: 'types', priority: 'high' },
|
|
345
|
+
{ name: 'helmet', reason: 'Security headers', category: 'security', priority: 'high' },
|
|
346
|
+
{ name: 'cors', reason: 'CORS support', category: 'security', priority: 'high' },
|
|
347
|
+
{ name: 'express-rate-limit', reason: 'Rate limiting', category: 'security', priority: 'medium' }
|
|
348
|
+
],
|
|
349
|
+
configTemplates: [ESLINT_CONFIG, PRETTIER_CONFIG, TSCONFIG_STRICT, EDITORCONFIG, GITIGNORE_NODE]
|
|
350
|
+
},
|
|
351
|
+
'python-fastapi': {
|
|
352
|
+
projectType: 'python-fastapi',
|
|
353
|
+
name: 'FastAPI',
|
|
354
|
+
requiredDirs: ['app', 'app/api', 'app/models', 'tests'],
|
|
355
|
+
optionalDirs: [
|
|
356
|
+
'app/core',
|
|
357
|
+
'app/schemas',
|
|
358
|
+
'app/services',
|
|
359
|
+
'app/db',
|
|
360
|
+
'app/utils',
|
|
361
|
+
'alembic'
|
|
362
|
+
],
|
|
363
|
+
requiredFiles: ['pyproject.toml', 'app/main.py'],
|
|
364
|
+
optionalFiles: [
|
|
365
|
+
'requirements.txt',
|
|
366
|
+
'.env',
|
|
367
|
+
'Dockerfile',
|
|
368
|
+
'app/__init__.py',
|
|
369
|
+
'app/api/__init__.py',
|
|
370
|
+
'app/api/routes.py',
|
|
371
|
+
'tests/conftest.py'
|
|
372
|
+
],
|
|
373
|
+
recommendedDependencies: [
|
|
374
|
+
{ name: 'fastapi', reason: 'FastAPI framework', category: 'dx', priority: 'high' },
|
|
375
|
+
{ name: 'uvicorn', reason: 'ASGI server', category: 'dx', priority: 'high' },
|
|
376
|
+
{ name: 'pydantic', reason: 'Data validation', category: 'types', priority: 'high' },
|
|
377
|
+
{ name: 'pytest', reason: 'Testing framework', category: 'testing', priority: 'high' },
|
|
378
|
+
{ name: 'black', reason: 'Code formatting', category: 'dx', priority: 'high' },
|
|
379
|
+
{ name: 'ruff', reason: 'Fast Python linter', category: 'linting', priority: 'high' },
|
|
380
|
+
{ name: 'mypy', reason: 'Type checking', category: 'types', priority: 'medium' }
|
|
381
|
+
],
|
|
382
|
+
configTemplates: []
|
|
383
|
+
},
|
|
384
|
+
'python-django': {
|
|
385
|
+
projectType: 'python-django',
|
|
386
|
+
name: 'Django',
|
|
387
|
+
requiredDirs: ['project_name', 'apps', 'templates', 'static'],
|
|
388
|
+
optionalDirs: [
|
|
389
|
+
'project_name/settings',
|
|
390
|
+
'media',
|
|
391
|
+
'locale',
|
|
392
|
+
'tests',
|
|
393
|
+
'docs'
|
|
394
|
+
],
|
|
395
|
+
requiredFiles: ['manage.py', 'requirements.txt'],
|
|
396
|
+
optionalFiles: [
|
|
397
|
+
'pyproject.toml',
|
|
398
|
+
'.env',
|
|
399
|
+
'Dockerfile',
|
|
400
|
+
'docker-compose.yml',
|
|
401
|
+
'pytest.ini'
|
|
402
|
+
],
|
|
403
|
+
recommendedDependencies: [
|
|
404
|
+
{ name: 'django', reason: 'Django framework', category: 'dx', priority: 'high' },
|
|
405
|
+
{ name: 'djangorestframework', reason: 'REST API support', category: 'dx', priority: 'high' },
|
|
406
|
+
{ name: 'django-cors-headers', reason: 'CORS support', category: 'security', priority: 'high' },
|
|
407
|
+
{ name: 'pytest-django', reason: 'Django testing', category: 'testing', priority: 'high' },
|
|
408
|
+
{ name: 'black', reason: 'Code formatting', category: 'dx', priority: 'high' },
|
|
409
|
+
{ name: 'ruff', reason: 'Fast Python linter', category: 'linting', priority: 'high' }
|
|
410
|
+
],
|
|
411
|
+
configTemplates: []
|
|
412
|
+
},
|
|
413
|
+
'golang': {
|
|
414
|
+
projectType: 'golang',
|
|
415
|
+
name: 'Go',
|
|
416
|
+
requiredDirs: ['cmd', 'internal', 'pkg'],
|
|
417
|
+
optionalDirs: [
|
|
418
|
+
'api',
|
|
419
|
+
'configs',
|
|
420
|
+
'scripts',
|
|
421
|
+
'test',
|
|
422
|
+
'docs',
|
|
423
|
+
'internal/handlers',
|
|
424
|
+
'internal/services',
|
|
425
|
+
'internal/models'
|
|
426
|
+
],
|
|
427
|
+
requiredFiles: ['go.mod', 'main.go'],
|
|
428
|
+
optionalFiles: [
|
|
429
|
+
'go.sum',
|
|
430
|
+
'Makefile',
|
|
431
|
+
'Dockerfile',
|
|
432
|
+
'.golangci.yml',
|
|
433
|
+
'README.md'
|
|
434
|
+
],
|
|
435
|
+
recommendedDependencies: [],
|
|
436
|
+
configTemplates: []
|
|
437
|
+
},
|
|
438
|
+
'rust': {
|
|
439
|
+
projectType: 'rust',
|
|
440
|
+
name: 'Rust',
|
|
441
|
+
requiredDirs: ['src'],
|
|
442
|
+
optionalDirs: [
|
|
443
|
+
'src/bin',
|
|
444
|
+
'src/lib',
|
|
445
|
+
'tests',
|
|
446
|
+
'benches',
|
|
447
|
+
'examples',
|
|
448
|
+
'docs'
|
|
449
|
+
],
|
|
450
|
+
requiredFiles: ['Cargo.toml', 'src/main.rs'],
|
|
451
|
+
optionalFiles: [
|
|
452
|
+
'Cargo.lock',
|
|
453
|
+
'.rustfmt.toml',
|
|
454
|
+
'clippy.toml',
|
|
455
|
+
'README.md',
|
|
456
|
+
'.github/workflows/ci.yml'
|
|
457
|
+
],
|
|
458
|
+
recommendedDependencies: [
|
|
459
|
+
{ name: 'serde', reason: 'Serialization', category: 'dx', priority: 'high' },
|
|
460
|
+
{ name: 'tokio', reason: 'Async runtime', category: 'performance', priority: 'high' },
|
|
461
|
+
{ name: 'anyhow', reason: 'Error handling', category: 'dx', priority: 'medium' },
|
|
462
|
+
{ name: 'thiserror', reason: 'Custom errors', category: 'dx', priority: 'medium' }
|
|
463
|
+
],
|
|
464
|
+
configTemplates: []
|
|
465
|
+
},
|
|
466
|
+
'vue-node': {
|
|
467
|
+
projectType: 'vue-node',
|
|
468
|
+
name: 'Vue.js',
|
|
469
|
+
requiredDirs: ['src', 'src/components', 'public'],
|
|
470
|
+
optionalDirs: [
|
|
471
|
+
'src/views',
|
|
472
|
+
'src/stores',
|
|
473
|
+
'src/composables',
|
|
474
|
+
'src/utils',
|
|
475
|
+
'src/types',
|
|
476
|
+
'src/assets',
|
|
477
|
+
'tests'
|
|
478
|
+
],
|
|
479
|
+
requiredFiles: ['package.json', 'vite.config.ts', 'src/main.ts', 'src/App.vue'],
|
|
480
|
+
optionalFiles: [
|
|
481
|
+
'tsconfig.json',
|
|
482
|
+
'.eslintrc.js',
|
|
483
|
+
'env.d.ts',
|
|
484
|
+
'src/router/index.ts'
|
|
485
|
+
],
|
|
486
|
+
recommendedDependencies: [
|
|
487
|
+
...JS_BASE_DEV_DEPS,
|
|
488
|
+
{ name: 'vue', reason: 'Vue.js framework', category: 'dx', priority: 'high' },
|
|
489
|
+
{ name: 'vue-router', reason: 'Vue Router', category: 'dx', priority: 'high' },
|
|
490
|
+
{ name: 'pinia', reason: 'State management', category: 'dx', priority: 'medium' },
|
|
491
|
+
{ name: '@vitejs/plugin-vue', reason: 'Vite Vue plugin', category: 'dx', priority: 'high' }
|
|
492
|
+
],
|
|
493
|
+
configTemplates: [ESLINT_CONFIG, PRETTIER_CONFIG, TSCONFIG_STRICT, EDITORCONFIG]
|
|
494
|
+
}
|
|
495
|
+
};
|
|
496
|
+
/**
|
|
497
|
+
* Get template for a project type
|
|
498
|
+
*/
|
|
499
|
+
export function getFrameworkTemplate(projectType) {
|
|
500
|
+
return FRAMEWORK_TEMPLATES[projectType];
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* Get all available templates
|
|
504
|
+
*/
|
|
505
|
+
export function getAllTemplates() {
|
|
506
|
+
return Object.values(FRAMEWORK_TEMPLATES);
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Get config template by type
|
|
510
|
+
*/
|
|
511
|
+
export function getConfigTemplate(configType) {
|
|
512
|
+
const templates = [
|
|
513
|
+
ESLINT_CONFIG,
|
|
514
|
+
PRETTIER_CONFIG,
|
|
515
|
+
TSCONFIG_STRICT,
|
|
516
|
+
EDITORCONFIG,
|
|
517
|
+
GITIGNORE_NODE
|
|
518
|
+
];
|
|
519
|
+
return templates.find(t => t.type === configType);
|
|
520
|
+
}
|
|
521
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/services/intelligence/templates.ts"],"names":[],"mappings":"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"}
|