codingbuddy 0.0.0-canary.20251219151055.e4122b3 → 0.0.0-dev.20251217094948.321eff2
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 +16 -140
- package/dist/src/keyword/keyword.module.js.map +1 -1
- package/dist/src/keyword/keyword.service.spec.d.ts +1 -0
- package/dist/src/keyword/keyword.service.spec.js +225 -0
- package/dist/src/keyword/keyword.service.spec.js.map +1 -0
- package/dist/src/main.js +0 -0
- package/dist/src/mcp/mcp.module.js +1 -2
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/mcp/mcp.service.d.ts +7 -16
- package/dist/src/mcp/mcp.service.js +65 -140
- package/dist/src/mcp/mcp.service.js.map +1 -1
- package/dist/src/rules/rules.service.js +2 -2
- package/dist/src/rules/rules.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +7 -22
- package/dist/src/analyzer/analyzer.module.d.ts +0 -2
- package/dist/src/analyzer/analyzer.module.js +0 -21
- package/dist/src/analyzer/analyzer.module.js.map +0 -1
- package/dist/src/analyzer/analyzer.service.d.ts +0 -10
- package/dist/src/analyzer/analyzer.service.js +0 -74
- package/dist/src/analyzer/analyzer.service.js.map +0 -1
- package/dist/src/analyzer/analyzer.types.d.ts +0 -70
- package/dist/src/analyzer/analyzer.types.js +0 -3
- package/dist/src/analyzer/analyzer.types.js.map +0 -1
- package/dist/src/analyzer/code.sampler.d.ts +0 -7
- package/dist/src/analyzer/code.sampler.js +0 -161
- package/dist/src/analyzer/code.sampler.js.map +0 -1
- package/dist/src/analyzer/config.analyzer.d.ts +0 -7
- package/dist/src/analyzer/config.analyzer.js +0 -182
- package/dist/src/analyzer/config.analyzer.js.map +0 -1
- package/dist/src/analyzer/directory.analyzer.d.ts +0 -12
- package/dist/src/analyzer/directory.analyzer.js +0 -156
- package/dist/src/analyzer/directory.analyzer.js.map +0 -1
- package/dist/src/analyzer/index.d.ts +0 -7
- package/dist/src/analyzer/index.js +0 -32
- package/dist/src/analyzer/index.js.map +0 -1
- package/dist/src/analyzer/package.analyzer.d.ts +0 -12
- package/dist/src/analyzer/package.analyzer.js +0 -126
- package/dist/src/analyzer/package.analyzer.js.map +0 -1
- package/dist/src/cli/cli.d.ts +0 -10
- package/dist/src/cli/cli.js +0 -98
- package/dist/src/cli/cli.js.map +0 -1
- package/dist/src/cli/cli.types.d.ts +0 -18
- package/dist/src/cli/cli.types.js +0 -3
- package/dist/src/cli/cli.types.js.map +0 -1
- package/dist/src/cli/index.d.ts +0 -6
- package/dist/src/cli/index.js +0 -15
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/init/config.generator.d.ts +0 -16
- package/dist/src/cli/init/config.generator.js +0 -70
- package/dist/src/cli/init/config.generator.js.map +0 -1
- package/dist/src/cli/init/config.writer.d.ts +0 -10
- package/dist/src/cli/init/config.writer.js +0 -43
- package/dist/src/cli/init/config.writer.js.map +0 -1
- package/dist/src/cli/init/index.d.ts +0 -5
- package/dist/src/cli/init/index.js +0 -16
- package/dist/src/cli/init/index.js.map +0 -1
- package/dist/src/cli/init/init.command.d.ts +0 -3
- package/dist/src/cli/init/init.command.js +0 -80
- package/dist/src/cli/init/init.command.js.map +0 -1
- package/dist/src/cli/init/prompt.builder.d.ts +0 -7
- package/dist/src/cli/init/prompt.builder.js +0 -225
- package/dist/src/cli/init/prompt.builder.js.map +0 -1
- package/dist/src/cli/utils/console.d.ts +0 -11
- package/dist/src/cli/utils/console.js +0 -33
- package/dist/src/cli/utils/console.js.map +0 -1
- package/dist/src/cli/utils/index.d.ts +0 -2
- package/dist/src/cli/utils/index.js +0 -7
- package/dist/src/cli/utils/index.js.map +0 -1
- package/dist/src/config/config.loader.d.ts +0 -22
- package/dist/src/config/config.loader.js +0 -105
- package/dist/src/config/config.loader.js.map +0 -1
- package/dist/src/config/config.module.d.ts +0 -2
- package/dist/src/config/config.module.js +0 -21
- package/dist/src/config/config.module.js.map +0 -1
- package/dist/src/config/config.schema.d.ts +0 -544
- package/dist/src/config/config.schema.js +0 -98
- package/dist/src/config/config.schema.js.map +0 -1
- package/dist/src/config/config.service.d.ts +0 -33
- package/dist/src/config/config.service.js +0 -126
- package/dist/src/config/config.service.js.map +0 -1
- package/dist/src/config/config.types.d.ts +0 -2
- package/dist/src/config/config.types.js +0 -6
- package/dist/src/config/config.types.js.map +0 -1
- package/dist/src/config/context.loader.d.ts +0 -23
- package/dist/src/config/context.loader.js +0 -146
- package/dist/src/config/context.loader.js.map +0 -1
- package/dist/src/config/ignore.parser.d.ts +0 -12
- package/dist/src/config/ignore.parser.js +0 -132
- package/dist/src/config/ignore.parser.js.map +0 -1
- package/dist/src/config/index.d.ts +0 -13
- package/dist/src/config/index.js +0 -41
- package/dist/src/config/index.js.map +0 -1
- package/dist/src/shared/file.utils.d.ts +0 -4
- package/dist/src/shared/file.utils.js +0 -37
- package/dist/src/shared/file.utils.js.map +0 -1
- package/dist/src/shared/path.utils.d.ts +0 -2
- package/dist/src/shared/path.utils.js +0 -14
- package/dist/src/shared/path.utils.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ARCHITECTURE_PATTERNS = void 0;
|
|
4
|
-
exports.categorizeDirectory = categorizeDirectory;
|
|
5
|
-
exports.detectArchitecturePatterns = detectArchitecturePatterns;
|
|
6
|
-
exports.analyzeDirectory = analyzeDirectory;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path = require("path");
|
|
9
|
-
const ignore_parser_1 = require("../config/ignore.parser");
|
|
10
|
-
const file_utils_1 = require("../shared/file.utils");
|
|
11
|
-
exports.ARCHITECTURE_PATTERNS = [
|
|
12
|
-
{
|
|
13
|
-
name: 'Next.js App Router',
|
|
14
|
-
indicators: ['app', 'components', 'lib', 'public'],
|
|
15
|
-
minIndicators: 2,
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'Next.js Pages Router',
|
|
19
|
-
indicators: ['pages', 'components', 'styles', 'public'],
|
|
20
|
-
minIndicators: 2,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'NestJS Modular',
|
|
24
|
-
indicators: ['src/modules', 'src/common', 'src/config', 'src/shared'],
|
|
25
|
-
minIndicators: 2,
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: 'Feature-Sliced Design',
|
|
29
|
-
indicators: [
|
|
30
|
-
'src/features',
|
|
31
|
-
'src/entities',
|
|
32
|
-
'src/shared',
|
|
33
|
-
'src/widgets',
|
|
34
|
-
'src/app',
|
|
35
|
-
],
|
|
36
|
-
minIndicators: 3,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: 'Component-Based',
|
|
40
|
-
indicators: ['src/components', 'src/hooks', 'src/utils', 'src/services'],
|
|
41
|
-
minIndicators: 2,
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'Monorepo',
|
|
45
|
-
indicators: ['packages', 'apps', 'libs'],
|
|
46
|
-
minIndicators: 1,
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: 'Clean Architecture',
|
|
50
|
-
indicators: [
|
|
51
|
-
'src/domain',
|
|
52
|
-
'src/application',
|
|
53
|
-
'src/infrastructure',
|
|
54
|
-
'src/presentation',
|
|
55
|
-
],
|
|
56
|
-
minIndicators: 3,
|
|
57
|
-
},
|
|
58
|
-
];
|
|
59
|
-
function categorizeDirectory(dirName) {
|
|
60
|
-
const lower = dirName.toLowerCase();
|
|
61
|
-
if (['src', 'lib', 'source', 'app'].includes(lower)) {
|
|
62
|
-
return 'source';
|
|
63
|
-
}
|
|
64
|
-
if (['test', 'tests', '__tests__', 'spec', 'specs', '__mocks__'].includes(lower)) {
|
|
65
|
-
return 'test';
|
|
66
|
-
}
|
|
67
|
-
if (lower === 'config' || lower.startsWith('.config')) {
|
|
68
|
-
return 'config';
|
|
69
|
-
}
|
|
70
|
-
if (['dist', 'build', 'out', '.next', '.nuxt', 'coverage', '.output'].includes(lower)) {
|
|
71
|
-
return 'build';
|
|
72
|
-
}
|
|
73
|
-
if (lower === 'node_modules' || lower === 'vendor') {
|
|
74
|
-
return 'dependencies';
|
|
75
|
-
}
|
|
76
|
-
if (['public', 'static', 'assets', 'images', 'media'].includes(lower)) {
|
|
77
|
-
return 'static';
|
|
78
|
-
}
|
|
79
|
-
return 'other';
|
|
80
|
-
}
|
|
81
|
-
function detectArchitecturePatterns(directories) {
|
|
82
|
-
const detected = [];
|
|
83
|
-
const normalizedDirs = new Set(directories.map(d => d.toLowerCase()));
|
|
84
|
-
for (const pattern of exports.ARCHITECTURE_PATTERNS) {
|
|
85
|
-
const matchingIndicators = pattern.indicators.filter(indicator => normalizedDirs.has(indicator.toLowerCase()));
|
|
86
|
-
if (matchingIndicators.length >= pattern.minIndicators) {
|
|
87
|
-
const confidence = matchingIndicators.length / pattern.indicators.length;
|
|
88
|
-
detected.push({
|
|
89
|
-
name: pattern.name,
|
|
90
|
-
confidence,
|
|
91
|
-
indicators: matchingIndicators,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return detected.sort((a, b) => b.confidence - a.confidence);
|
|
96
|
-
}
|
|
97
|
-
async function scanDirectory(rootPath, ignorePatterns, relativePath = '') {
|
|
98
|
-
const files = [];
|
|
99
|
-
const dirs = [];
|
|
100
|
-
const currentPath = relativePath
|
|
101
|
-
? path.join(rootPath, relativePath)
|
|
102
|
-
: rootPath;
|
|
103
|
-
if (!(0, fs_1.existsSync)(currentPath)) {
|
|
104
|
-
return { files, dirs };
|
|
105
|
-
}
|
|
106
|
-
const entries = await (0, file_utils_1.safeReadDirWithTypes)(currentPath);
|
|
107
|
-
for (const entry of entries) {
|
|
108
|
-
const entryRelativePath = relativePath
|
|
109
|
-
? `${relativePath}/${entry.name}`
|
|
110
|
-
: entry.name;
|
|
111
|
-
if ((0, ignore_parser_1.shouldIgnore)(entryRelativePath, ignorePatterns)) {
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if (entry.isDirectory()) {
|
|
115
|
-
dirs.push(entryRelativePath);
|
|
116
|
-
const subResult = await scanDirectory(rootPath, ignorePatterns, entryRelativePath);
|
|
117
|
-
files.push(...subResult.files);
|
|
118
|
-
dirs.push(...subResult.dirs);
|
|
119
|
-
}
|
|
120
|
-
else if (entry.isFile()) {
|
|
121
|
-
files.push(entryRelativePath);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return { files, dirs };
|
|
125
|
-
}
|
|
126
|
-
async function analyzeDirectory(projectRoot, customIgnorePatterns = []) {
|
|
127
|
-
const ignorePatterns = [
|
|
128
|
-
...(0, ignore_parser_1.getDefaultIgnorePatterns)(),
|
|
129
|
-
...customIgnorePatterns,
|
|
130
|
-
];
|
|
131
|
-
const { files, dirs } = await scanDirectory(projectRoot, ignorePatterns);
|
|
132
|
-
if (files.length === 0 && dirs.length === 0) {
|
|
133
|
-
if (!(0, fs_1.existsSync)(projectRoot)) {
|
|
134
|
-
return {
|
|
135
|
-
rootDirs: [],
|
|
136
|
-
rootFiles: [],
|
|
137
|
-
allFiles: [],
|
|
138
|
-
patterns: [],
|
|
139
|
-
totalFiles: 0,
|
|
140
|
-
totalDirs: 0,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
const rootFiles = files.filter(f => !f.includes('/'));
|
|
145
|
-
const rootDirs = dirs.filter(d => !d.includes('/'));
|
|
146
|
-
const patterns = detectArchitecturePatterns(dirs);
|
|
147
|
-
return {
|
|
148
|
-
rootDirs,
|
|
149
|
-
rootFiles,
|
|
150
|
-
allFiles: files,
|
|
151
|
-
patterns,
|
|
152
|
-
totalFiles: files.length,
|
|
153
|
-
totalDirs: dirs.length,
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=directory.analyzer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"directory.analyzer.js","sourceRoot":"","sources":["../../../src/analyzer/directory.analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type { ProjectAnalysis, PackageInfo, DetectedFramework, FrameworkCategory, DirectoryAnalysis, ArchitecturePattern, ConfigFilesSummary, TsConfigSummary, EslintSummary, PrettierSummary, CodeSample, CodeCategory, } from './analyzer.types';
|
|
2
|
-
export { analyzePackage, parsePackageJson, detectFrameworks, FRAMEWORK_DEFINITIONS, } from './package.analyzer';
|
|
3
|
-
export { analyzeDirectory, detectArchitecturePatterns, categorizeDirectory, ARCHITECTURE_PATTERNS, } from './directory.analyzer';
|
|
4
|
-
export { analyzeConfigs, parseTsConfig, parseEslintConfig, parsePrettierConfig, detectConfigFiles, CONFIG_FILE_PATTERNS, } from './config.analyzer';
|
|
5
|
-
export { sampleCode, selectSampleFiles, categorizeFile, detectLanguage, isCodeFile, LANGUAGE_EXTENSIONS, } from './code.sampler';
|
|
6
|
-
export { AnalyzerService, type AnalyzeOptions } from './analyzer.service';
|
|
7
|
-
export { AnalyzerModule } from './analyzer.module';
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AnalyzerModule = exports.AnalyzerService = exports.LANGUAGE_EXTENSIONS = exports.isCodeFile = exports.detectLanguage = exports.categorizeFile = exports.selectSampleFiles = exports.sampleCode = exports.CONFIG_FILE_PATTERNS = exports.detectConfigFiles = exports.parsePrettierConfig = exports.parseEslintConfig = exports.parseTsConfig = exports.analyzeConfigs = exports.ARCHITECTURE_PATTERNS = exports.categorizeDirectory = exports.detectArchitecturePatterns = exports.analyzeDirectory = exports.FRAMEWORK_DEFINITIONS = exports.detectFrameworks = exports.parsePackageJson = exports.analyzePackage = void 0;
|
|
4
|
-
var package_analyzer_1 = require("./package.analyzer");
|
|
5
|
-
Object.defineProperty(exports, "analyzePackage", { enumerable: true, get: function () { return package_analyzer_1.analyzePackage; } });
|
|
6
|
-
Object.defineProperty(exports, "parsePackageJson", { enumerable: true, get: function () { return package_analyzer_1.parsePackageJson; } });
|
|
7
|
-
Object.defineProperty(exports, "detectFrameworks", { enumerable: true, get: function () { return package_analyzer_1.detectFrameworks; } });
|
|
8
|
-
Object.defineProperty(exports, "FRAMEWORK_DEFINITIONS", { enumerable: true, get: function () { return package_analyzer_1.FRAMEWORK_DEFINITIONS; } });
|
|
9
|
-
var directory_analyzer_1 = require("./directory.analyzer");
|
|
10
|
-
Object.defineProperty(exports, "analyzeDirectory", { enumerable: true, get: function () { return directory_analyzer_1.analyzeDirectory; } });
|
|
11
|
-
Object.defineProperty(exports, "detectArchitecturePatterns", { enumerable: true, get: function () { return directory_analyzer_1.detectArchitecturePatterns; } });
|
|
12
|
-
Object.defineProperty(exports, "categorizeDirectory", { enumerable: true, get: function () { return directory_analyzer_1.categorizeDirectory; } });
|
|
13
|
-
Object.defineProperty(exports, "ARCHITECTURE_PATTERNS", { enumerable: true, get: function () { return directory_analyzer_1.ARCHITECTURE_PATTERNS; } });
|
|
14
|
-
var config_analyzer_1 = require("./config.analyzer");
|
|
15
|
-
Object.defineProperty(exports, "analyzeConfigs", { enumerable: true, get: function () { return config_analyzer_1.analyzeConfigs; } });
|
|
16
|
-
Object.defineProperty(exports, "parseTsConfig", { enumerable: true, get: function () { return config_analyzer_1.parseTsConfig; } });
|
|
17
|
-
Object.defineProperty(exports, "parseEslintConfig", { enumerable: true, get: function () { return config_analyzer_1.parseEslintConfig; } });
|
|
18
|
-
Object.defineProperty(exports, "parsePrettierConfig", { enumerable: true, get: function () { return config_analyzer_1.parsePrettierConfig; } });
|
|
19
|
-
Object.defineProperty(exports, "detectConfigFiles", { enumerable: true, get: function () { return config_analyzer_1.detectConfigFiles; } });
|
|
20
|
-
Object.defineProperty(exports, "CONFIG_FILE_PATTERNS", { enumerable: true, get: function () { return config_analyzer_1.CONFIG_FILE_PATTERNS; } });
|
|
21
|
-
var code_sampler_1 = require("./code.sampler");
|
|
22
|
-
Object.defineProperty(exports, "sampleCode", { enumerable: true, get: function () { return code_sampler_1.sampleCode; } });
|
|
23
|
-
Object.defineProperty(exports, "selectSampleFiles", { enumerable: true, get: function () { return code_sampler_1.selectSampleFiles; } });
|
|
24
|
-
Object.defineProperty(exports, "categorizeFile", { enumerable: true, get: function () { return code_sampler_1.categorizeFile; } });
|
|
25
|
-
Object.defineProperty(exports, "detectLanguage", { enumerable: true, get: function () { return code_sampler_1.detectLanguage; } });
|
|
26
|
-
Object.defineProperty(exports, "isCodeFile", { enumerable: true, get: function () { return code_sampler_1.isCodeFile; } });
|
|
27
|
-
Object.defineProperty(exports, "LANGUAGE_EXTENSIONS", { enumerable: true, get: function () { return code_sampler_1.LANGUAGE_EXTENSIONS; } });
|
|
28
|
-
var analyzer_service_1 = require("./analyzer.service");
|
|
29
|
-
Object.defineProperty(exports, "AnalyzerService", { enumerable: true, get: function () { return analyzer_service_1.AnalyzerService; } });
|
|
30
|
-
var analyzer_module_1 = require("./analyzer.module");
|
|
31
|
-
Object.defineProperty(exports, "AnalyzerModule", { enumerable: true, get: function () { return analyzer_module_1.AnalyzerModule; } });
|
|
32
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzer/index.ts"],"names":[],"mappings":";;;AAiBA,uDAK4B;AAJ1B,kHAAA,cAAc,OAAA;AACd,oHAAA,gBAAgB,OAAA;AAChB,oHAAA,gBAAgB,OAAA;AAChB,yHAAA,qBAAqB,OAAA;AAGvB,2DAK8B;AAJ5B,sHAAA,gBAAgB,OAAA;AAChB,gIAAA,0BAA0B,OAAA;AAC1B,yHAAA,mBAAmB,OAAA;AACnB,2HAAA,qBAAqB,OAAA;AAGvB,qDAO2B;AANzB,iHAAA,cAAc,OAAA;AACd,gHAAA,aAAa,OAAA;AACb,oHAAA,iBAAiB,OAAA;AACjB,sHAAA,mBAAmB,OAAA;AACnB,oHAAA,iBAAiB,OAAA;AACjB,uHAAA,oBAAoB,OAAA;AAGtB,+CAOwB;AANtB,0GAAA,UAAU,OAAA;AACV,iHAAA,iBAAiB,OAAA;AACjB,8GAAA,cAAc,OAAA;AACd,8GAAA,cAAc,OAAA;AACd,0GAAA,UAAU,OAAA;AACV,mHAAA,mBAAmB,OAAA;AAIrB,uDAA0E;AAAjE,mHAAA,eAAe,OAAA;AACxB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { PackageInfo, DetectedFramework, FrameworkCategory } from './analyzer.types';
|
|
2
|
-
interface FrameworkDefinition {
|
|
3
|
-
name: string;
|
|
4
|
-
packageName: string;
|
|
5
|
-
category: FrameworkCategory;
|
|
6
|
-
devOnly?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare const FRAMEWORK_DEFINITIONS: FrameworkDefinition[];
|
|
9
|
-
export declare function parsePackageJson(content: string): Omit<PackageInfo, 'detectedFrameworks'>;
|
|
10
|
-
export declare function detectFrameworks(dependencies: Record<string, string>, devDependencies: Record<string, string>): DetectedFramework[];
|
|
11
|
-
export declare function analyzePackage(projectRoot: string): Promise<PackageInfo | null>;
|
|
12
|
-
export {};
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FRAMEWORK_DEFINITIONS = void 0;
|
|
4
|
-
exports.parsePackageJson = parsePackageJson;
|
|
5
|
-
exports.detectFrameworks = detectFrameworks;
|
|
6
|
-
exports.analyzePackage = analyzePackage;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path = require("path");
|
|
9
|
-
const file_utils_1 = require("../shared/file.utils");
|
|
10
|
-
exports.FRAMEWORK_DEFINITIONS = [
|
|
11
|
-
{ name: 'React', packageName: 'react', category: 'frontend' },
|
|
12
|
-
{ name: 'Vue', packageName: 'vue', category: 'frontend' },
|
|
13
|
-
{ name: 'Angular', packageName: '@angular/core', category: 'frontend' },
|
|
14
|
-
{ name: 'Svelte', packageName: 'svelte', category: 'frontend' },
|
|
15
|
-
{ name: 'Solid', packageName: 'solid-js', category: 'frontend' },
|
|
16
|
-
{ name: 'Next.js', packageName: 'next', category: 'fullstack' },
|
|
17
|
-
{ name: 'Nuxt', packageName: 'nuxt', category: 'fullstack' },
|
|
18
|
-
{ name: 'Remix', packageName: '@remix-run/react', category: 'fullstack' },
|
|
19
|
-
{ name: 'Astro', packageName: 'astro', category: 'fullstack' },
|
|
20
|
-
{ name: 'NestJS', packageName: '@nestjs/core', category: 'backend' },
|
|
21
|
-
{ name: 'Express', packageName: 'express', category: 'backend' },
|
|
22
|
-
{ name: 'Fastify', packageName: 'fastify', category: 'backend' },
|
|
23
|
-
{ name: 'Hono', packageName: 'hono', category: 'backend' },
|
|
24
|
-
{ name: 'Koa', packageName: 'koa', category: 'backend' },
|
|
25
|
-
{ name: 'Jest', packageName: 'jest', category: 'testing', devOnly: true },
|
|
26
|
-
{ name: 'Vitest', packageName: 'vitest', category: 'testing', devOnly: true },
|
|
27
|
-
{ name: 'Mocha', packageName: 'mocha', category: 'testing', devOnly: true },
|
|
28
|
-
{
|
|
29
|
-
name: 'Playwright',
|
|
30
|
-
packageName: '@playwright/test',
|
|
31
|
-
category: 'testing',
|
|
32
|
-
devOnly: true,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'Cypress',
|
|
36
|
-
packageName: 'cypress',
|
|
37
|
-
category: 'testing',
|
|
38
|
-
devOnly: true,
|
|
39
|
-
},
|
|
40
|
-
{ name: 'Vite', packageName: 'vite', category: 'build', devOnly: true },
|
|
41
|
-
{ name: 'Webpack', packageName: 'webpack', category: 'build', devOnly: true },
|
|
42
|
-
{ name: 'esbuild', packageName: 'esbuild', category: 'build', devOnly: true },
|
|
43
|
-
{ name: 'Rollup', packageName: 'rollup', category: 'build', devOnly: true },
|
|
44
|
-
{ name: 'Turbopack', packageName: 'turbo', category: 'build', devOnly: true },
|
|
45
|
-
{ name: 'ESLint', packageName: 'eslint', category: 'linting', devOnly: true },
|
|
46
|
-
{
|
|
47
|
-
name: 'Prettier',
|
|
48
|
-
packageName: 'prettier',
|
|
49
|
-
category: 'linting',
|
|
50
|
-
devOnly: true,
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: 'Biome',
|
|
54
|
-
packageName: '@biomejs/biome',
|
|
55
|
-
category: 'linting',
|
|
56
|
-
devOnly: true,
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: 'Tailwind CSS',
|
|
60
|
-
packageName: 'tailwindcss',
|
|
61
|
-
category: 'styling',
|
|
62
|
-
devOnly: true,
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: 'Styled Components',
|
|
66
|
-
packageName: 'styled-components',
|
|
67
|
-
category: 'styling',
|
|
68
|
-
},
|
|
69
|
-
{ name: 'Emotion', packageName: '@emotion/react', category: 'styling' },
|
|
70
|
-
{ name: 'Sass', packageName: 'sass', category: 'styling', devOnly: true },
|
|
71
|
-
{ name: 'Prisma', packageName: '@prisma/client', category: 'database' },
|
|
72
|
-
{ name: 'TypeORM', packageName: 'typeorm', category: 'database' },
|
|
73
|
-
{ name: 'Drizzle', packageName: 'drizzle-orm', category: 'database' },
|
|
74
|
-
{ name: 'Mongoose', packageName: 'mongoose', category: 'database' },
|
|
75
|
-
];
|
|
76
|
-
function parsePackageJson(content) {
|
|
77
|
-
const raw = JSON.parse(content);
|
|
78
|
-
return {
|
|
79
|
-
name: raw.name ?? 'unknown',
|
|
80
|
-
version: raw.version ?? '0.0.0',
|
|
81
|
-
description: raw.description,
|
|
82
|
-
type: raw.type,
|
|
83
|
-
dependencies: raw.dependencies ?? {},
|
|
84
|
-
devDependencies: raw.devDependencies ?? {},
|
|
85
|
-
scripts: raw.scripts ?? {},
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
function detectFrameworks(dependencies, devDependencies) {
|
|
89
|
-
const allDeps = { ...dependencies, ...devDependencies };
|
|
90
|
-
const detected = [];
|
|
91
|
-
for (const def of exports.FRAMEWORK_DEFINITIONS) {
|
|
92
|
-
const version = def.devOnly
|
|
93
|
-
? devDependencies[def.packageName]
|
|
94
|
-
: allDeps[def.packageName];
|
|
95
|
-
if (version) {
|
|
96
|
-
detected.push({
|
|
97
|
-
name: def.name,
|
|
98
|
-
category: def.category,
|
|
99
|
-
version,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return detected;
|
|
104
|
-
}
|
|
105
|
-
async function analyzePackage(projectRoot) {
|
|
106
|
-
const packagePath = path.join(projectRoot, 'package.json');
|
|
107
|
-
if (!(0, fs_1.existsSync)(packagePath)) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
const content = await (0, file_utils_1.safeReadFile)(packagePath);
|
|
111
|
-
if (content === null) {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
try {
|
|
115
|
-
const parsed = parsePackageJson(content);
|
|
116
|
-
const frameworks = detectFrameworks(parsed.dependencies, parsed.devDependencies);
|
|
117
|
-
return {
|
|
118
|
-
...parsed,
|
|
119
|
-
detectedFrameworks: frameworks,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=package.analyzer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package.analyzer.js","sourceRoot":"","sources":["../../../src/analyzer/package.analyzer.ts"],"names":[],"mappings":";;;AA4HA,4CAcC;AAKD,4CAsBC;AAQD,wCA6BC;AA1MD,2BAAgC;AAChC,6BAA6B;AAM7B,qDAAoD;AAmBvC,QAAA,qBAAqB,GAA0B;IAE1D,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC7D,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE;IACzD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE;IACvE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;IAGhE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE;IAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE;IAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE;IACzE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;IAG9D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE;IACpE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;IAChE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;IAChE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE;IAC1D,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE;IAGxD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IACzE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7E,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3E;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,IAAI;KACd;IAGD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IACvE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7E,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3E,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAG7E,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7E;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,IAAI;KACd;IAGD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,SAAS;KACpB;IACD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE;IACvE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAGzE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE;IACvE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE;IACjE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE;IACrE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;CACpE,CAAC;AAkBF,SAAgB,gBAAgB,CAC9B,OAAe;IAEf,MAAM,GAAG,GAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEhD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;QAC3B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO;QAC/B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QACpC,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,EAAE;QAC1C,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;KAC3B,CAAC;AACJ,CAAC;AAKD,SAAgB,gBAAgB,CAC9B,YAAoC,EACpC,eAAuC;IAEvC,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,6BAAqB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO;YACzB,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE7B,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAQM,KAAK,UAAU,cAAc,CAClC,WAAmB;IAEnB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAE3D,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAY,EAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,gBAAgB,CACjC,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,eAAe,CACvB,CAAC;QAEF,OAAO;YACL,GAAG,MAAM;YACT,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/src/cli/cli.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import type { InitOptions } from './cli.types';
|
|
3
|
-
export interface ParsedArgs {
|
|
4
|
-
command: 'init' | 'help' | 'version';
|
|
5
|
-
options: Partial<InitOptions>;
|
|
6
|
-
}
|
|
7
|
-
export declare function parseArgs(args: string[]): ParsedArgs;
|
|
8
|
-
export declare function printUsage(): void;
|
|
9
|
-
export declare function printVersion(): void;
|
|
10
|
-
export declare function main(args?: string[]): Promise<void>;
|
package/dist/src/cli/cli.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.parseArgs = parseArgs;
|
|
5
|
-
exports.printUsage = printUsage;
|
|
6
|
-
exports.printVersion = printVersion;
|
|
7
|
-
exports.main = main;
|
|
8
|
-
const init_1 = require("./init");
|
|
9
|
-
const VERSION = '1.0.0';
|
|
10
|
-
function parseArgs(args) {
|
|
11
|
-
const options = {
|
|
12
|
-
projectRoot: process.cwd(),
|
|
13
|
-
format: 'js',
|
|
14
|
-
force: false,
|
|
15
|
-
};
|
|
16
|
-
if (args.includes('--help') || args.includes('-h')) {
|
|
17
|
-
return { command: 'help', options };
|
|
18
|
-
}
|
|
19
|
-
if (args.includes('--version') || args.includes('-v')) {
|
|
20
|
-
return { command: 'version', options };
|
|
21
|
-
}
|
|
22
|
-
const command = args[0];
|
|
23
|
-
if (command !== 'init') {
|
|
24
|
-
return { command: 'help', options };
|
|
25
|
-
}
|
|
26
|
-
for (let i = 1; i < args.length; i++) {
|
|
27
|
-
const arg = args[i];
|
|
28
|
-
if (arg === '--force' || arg === '-f') {
|
|
29
|
-
options.force = true;
|
|
30
|
-
}
|
|
31
|
-
else if (arg === '--format') {
|
|
32
|
-
const format = args[++i];
|
|
33
|
-
if (format === 'js' || format === 'json') {
|
|
34
|
-
options.format = format;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
else if (arg === '--api-key') {
|
|
38
|
-
options.apiKey = args[++i];
|
|
39
|
-
}
|
|
40
|
-
else if (!arg.startsWith('-')) {
|
|
41
|
-
options.projectRoot = arg;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return { command: 'init', options };
|
|
45
|
-
}
|
|
46
|
-
function printUsage() {
|
|
47
|
-
const usage = `
|
|
48
|
-
CodingBuddy CLI - AI-powered project configuration generator
|
|
49
|
-
|
|
50
|
-
Usage:
|
|
51
|
-
codingbuddy init [path] [options] Initialize configuration
|
|
52
|
-
codingbuddy --help Show this help
|
|
53
|
-
codingbuddy --version Show version
|
|
54
|
-
|
|
55
|
-
Options:
|
|
56
|
-
--format <js|json> Output format (default: js)
|
|
57
|
-
--force, -f Overwrite existing config
|
|
58
|
-
--api-key <key> Anthropic API key (or set ANTHROPIC_API_KEY env)
|
|
59
|
-
|
|
60
|
-
Examples:
|
|
61
|
-
codingbuddy init Initialize in current directory
|
|
62
|
-
codingbuddy init ./my-project Initialize in specific directory
|
|
63
|
-
codingbuddy init --format json Generate JSON config
|
|
64
|
-
codingbuddy init --force Overwrite existing config
|
|
65
|
-
|
|
66
|
-
Environment:
|
|
67
|
-
ANTHROPIC_API_KEY API key for AI generation
|
|
68
|
-
`;
|
|
69
|
-
process.stdout.write(usage + '\n');
|
|
70
|
-
}
|
|
71
|
-
function printVersion() {
|
|
72
|
-
process.stdout.write(`codingbuddy v${VERSION}\n`);
|
|
73
|
-
}
|
|
74
|
-
async function main(args = process.argv.slice(2)) {
|
|
75
|
-
const { command, options } = parseArgs(args);
|
|
76
|
-
switch (command) {
|
|
77
|
-
case 'help':
|
|
78
|
-
printUsage();
|
|
79
|
-
break;
|
|
80
|
-
case 'version':
|
|
81
|
-
printVersion();
|
|
82
|
-
break;
|
|
83
|
-
case 'init': {
|
|
84
|
-
const result = await (0, init_1.runInit)(options);
|
|
85
|
-
if (!result.success) {
|
|
86
|
-
process.exitCode = 1;
|
|
87
|
-
}
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
if (require.main === module) {
|
|
93
|
-
main().catch(error => {
|
|
94
|
-
console.error('Fatal error:', error);
|
|
95
|
-
process.exitCode = 1;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/src/cli/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export type CommandHandler = (args: string[]) => Promise<void>;
|
|
2
|
-
export interface CliCommand {
|
|
3
|
-
name: string;
|
|
4
|
-
description: string;
|
|
5
|
-
handler: CommandHandler;
|
|
6
|
-
}
|
|
7
|
-
export interface InitOptions {
|
|
8
|
-
projectRoot: string;
|
|
9
|
-
format: 'js' | 'json';
|
|
10
|
-
force: boolean;
|
|
11
|
-
apiKey?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface InitResult {
|
|
14
|
-
success: boolean;
|
|
15
|
-
configPath?: string;
|
|
16
|
-
error?: string;
|
|
17
|
-
}
|
|
18
|
-
export type LogLevel = 'info' | 'success' | 'warn' | 'error';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.types.js","sourceRoot":"","sources":["../../../src/cli/cli.types.ts"],"names":[],"mappings":""}
|
package/dist/src/cli/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { main, parseArgs, printUsage, printVersion } from './cli';
|
|
2
|
-
export type { ParsedArgs } from './cli';
|
|
3
|
-
export type { InitOptions, InitResult, CliCommand, CommandHandler, LogLevel, } from './cli.types';
|
|
4
|
-
export { runInit, getApiKey } from './init';
|
|
5
|
-
export { createConsoleUtils, consoleUtils } from './utils';
|
|
6
|
-
export type { ConsoleUtils } from './utils';
|
package/dist/src/cli/index.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.consoleUtils = exports.createConsoleUtils = exports.getApiKey = exports.runInit = exports.printVersion = exports.printUsage = exports.parseArgs = exports.main = void 0;
|
|
4
|
-
var cli_1 = require("./cli");
|
|
5
|
-
Object.defineProperty(exports, "main", { enumerable: true, get: function () { return cli_1.main; } });
|
|
6
|
-
Object.defineProperty(exports, "parseArgs", { enumerable: true, get: function () { return cli_1.parseArgs; } });
|
|
7
|
-
Object.defineProperty(exports, "printUsage", { enumerable: true, get: function () { return cli_1.printUsage; } });
|
|
8
|
-
Object.defineProperty(exports, "printVersion", { enumerable: true, get: function () { return cli_1.printVersion; } });
|
|
9
|
-
var init_1 = require("./init");
|
|
10
|
-
Object.defineProperty(exports, "runInit", { enumerable: true, get: function () { return init_1.runInit; } });
|
|
11
|
-
Object.defineProperty(exports, "getApiKey", { enumerable: true, get: function () { return init_1.getApiKey; } });
|
|
12
|
-
var utils_1 = require("./utils");
|
|
13
|
-
Object.defineProperty(exports, "createConsoleUtils", { enumerable: true, get: function () { return utils_1.createConsoleUtils; } });
|
|
14
|
-
Object.defineProperty(exports, "consoleUtils", { enumerable: true, get: function () { return utils_1.consoleUtils; } });
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":";;;AAAA,6BAAkE;AAAzD,2FAAA,IAAI,OAAA;AAAE,gGAAA,SAAS,OAAA;AAAE,iGAAA,UAAU,OAAA;AAAE,mGAAA,YAAY,OAAA;AASlD,+BAA4C;AAAnC,+FAAA,OAAO,OAAA;AAAE,iGAAA,SAAS,OAAA;AAC3B,iCAA2D;AAAlD,2GAAA,kBAAkB,OAAA;AAAE,qGAAA,YAAY,OAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { ProjectAnalysis } from '../../analyzer';
|
|
2
|
-
import type { CodingBuddyConfig } from '../../config';
|
|
3
|
-
export interface ConfigGeneratorOptions {
|
|
4
|
-
apiKey: string;
|
|
5
|
-
model?: string;
|
|
6
|
-
maxTokens?: number;
|
|
7
|
-
}
|
|
8
|
-
export declare function extractJsonFromResponse(response: string): string | null;
|
|
9
|
-
export declare function parseJsonResponse(response: string): CodingBuddyConfig;
|
|
10
|
-
export declare class ConfigGenerator {
|
|
11
|
-
private client;
|
|
12
|
-
private model;
|
|
13
|
-
private maxTokens;
|
|
14
|
-
constructor(options: ConfigGeneratorOptions);
|
|
15
|
-
generate(analysis: ProjectAnalysis): Promise<CodingBuddyConfig>;
|
|
16
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConfigGenerator = void 0;
|
|
4
|
-
exports.extractJsonFromResponse = extractJsonFromResponse;
|
|
5
|
-
exports.parseJsonResponse = parseJsonResponse;
|
|
6
|
-
const sdk_1 = require("@anthropic-ai/sdk");
|
|
7
|
-
const config_schema_1 = require("../../config/config.schema");
|
|
8
|
-
const prompt_builder_1 = require("./prompt.builder");
|
|
9
|
-
const DEFAULT_MODEL = 'claude-sonnet-4-20250514';
|
|
10
|
-
const DEFAULT_MAX_TOKENS = 4096;
|
|
11
|
-
function extractJsonFromResponse(response) {
|
|
12
|
-
const codeBlockMatch = response.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
13
|
-
if (codeBlockMatch) {
|
|
14
|
-
return codeBlockMatch[1].trim();
|
|
15
|
-
}
|
|
16
|
-
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
17
|
-
if (jsonMatch) {
|
|
18
|
-
return jsonMatch[0];
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
function parseJsonResponse(response) {
|
|
23
|
-
const jsonString = extractJsonFromResponse(response);
|
|
24
|
-
if (!jsonString) {
|
|
25
|
-
throw new Error('No valid JSON found in response');
|
|
26
|
-
}
|
|
27
|
-
let parsed;
|
|
28
|
-
try {
|
|
29
|
-
parsed = JSON.parse(jsonString);
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
throw new Error(`Invalid JSON in response: ${jsonString.substring(0, 100)}...`);
|
|
33
|
-
}
|
|
34
|
-
const validation = (0, config_schema_1.validateConfig)(parsed);
|
|
35
|
-
if (!validation.success) {
|
|
36
|
-
console.warn('Config validation warnings:', validation.errors);
|
|
37
|
-
}
|
|
38
|
-
return validation.data ?? parsed;
|
|
39
|
-
}
|
|
40
|
-
class ConfigGenerator {
|
|
41
|
-
constructor(options) {
|
|
42
|
-
this.client = new sdk_1.default({
|
|
43
|
-
apiKey: options.apiKey,
|
|
44
|
-
});
|
|
45
|
-
this.model = options.model ?? DEFAULT_MODEL;
|
|
46
|
-
this.maxTokens = options.maxTokens ?? DEFAULT_MAX_TOKENS;
|
|
47
|
-
}
|
|
48
|
-
async generate(analysis) {
|
|
49
|
-
const systemPrompt = (0, prompt_builder_1.buildSystemPrompt)();
|
|
50
|
-
const userPrompt = (0, prompt_builder_1.buildAnalysisPrompt)(analysis);
|
|
51
|
-
const response = await this.client.messages.create({
|
|
52
|
-
model: this.model,
|
|
53
|
-
max_tokens: this.maxTokens,
|
|
54
|
-
system: systemPrompt,
|
|
55
|
-
messages: [
|
|
56
|
-
{
|
|
57
|
-
role: 'user',
|
|
58
|
-
content: userPrompt,
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
});
|
|
62
|
-
const textContent = response.content.find(block => block.type === 'text');
|
|
63
|
-
if (!textContent || textContent.type !== 'text') {
|
|
64
|
-
throw new Error('No text content in AI response');
|
|
65
|
-
}
|
|
66
|
-
return parseJsonResponse(textContent.text);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
exports.ConfigGenerator = ConfigGenerator;
|
|
70
|
-
//# sourceMappingURL=config.generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.generator.js","sourceRoot":"","sources":["../../../../src/cli/init/config.generator.ts"],"names":[],"mappings":";;;AAqCA,0DAcC;AAKD,8CA0BC;AA5ED,2CAA0C;AAG1C,8DAA4D;AAC5D,qDAA0E;AAiB1E,MAAM,aAAa,GAAG,0BAA0B,CAAC;AAKjD,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAKhC,SAAgB,uBAAuB,CAAC,QAAgB;IAEtD,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtE,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAGD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,6BAA6B,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAC/D,CAAC;IACJ,CAAC;IAGD,MAAM,UAAU,GAAG,IAAA,8BAAc,EAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAGxB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,IAAK,MAA4B,CAAC;AAC1D,CAAC;AAKD,MAAa,eAAe;IAK1B,YAAY,OAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAS,CAAC;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC3D,CAAC;IAKD,KAAK,CAAC,QAAQ,CAAC,QAAyB;QACtC,MAAM,YAAY,GAAG,IAAA,kCAAiB,GAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAA,oCAAmB,EAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,UAAU;iBACpB;aACF;SACF,CAAC,CAAC;QAGH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAE1E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAzCD,0CAyCC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { CodingBuddyConfig } from '../../config';
|
|
2
|
-
export declare const CONFIG_FILE_NAMES: readonly ["codingbuddy.config.js", "codingbuddy.config.json"];
|
|
3
|
-
export type ConfigFormat = 'js' | 'json';
|
|
4
|
-
export interface WriteConfigOptions {
|
|
5
|
-
format?: ConfigFormat;
|
|
6
|
-
}
|
|
7
|
-
export declare function formatConfigAsJs(config: CodingBuddyConfig): string;
|
|
8
|
-
export declare function formatConfigAsJson(config: CodingBuddyConfig): string;
|
|
9
|
-
export declare function findExistingConfig(projectRoot: string): Promise<string | null>;
|
|
10
|
-
export declare function writeConfig(projectRoot: string, config: CodingBuddyConfig, options?: WriteConfigOptions): Promise<string>;
|