codingbuddy 0.0.0-canary.20251219125853.fb2b0fd → 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.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 +1 -10
- 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 +6 -8
- 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 -73
- 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 -158
- 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 -172
- 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 -140
- 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 -121
- 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 -40
- 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 -222
- 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 -96
- 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,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,121 +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
|
-
{ name: 'Biome', packageName: '@biomejs/biome', category: 'linting', devOnly: true },
|
|
53
|
-
{
|
|
54
|
-
name: 'Tailwind CSS',
|
|
55
|
-
packageName: 'tailwindcss',
|
|
56
|
-
category: 'styling',
|
|
57
|
-
devOnly: true,
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
name: 'Styled Components',
|
|
61
|
-
packageName: 'styled-components',
|
|
62
|
-
category: 'styling',
|
|
63
|
-
},
|
|
64
|
-
{ name: 'Emotion', packageName: '@emotion/react', category: 'styling' },
|
|
65
|
-
{ name: 'Sass', packageName: 'sass', category: 'styling', devOnly: true },
|
|
66
|
-
{ name: 'Prisma', packageName: '@prisma/client', category: 'database' },
|
|
67
|
-
{ name: 'TypeORM', packageName: 'typeorm', category: 'database' },
|
|
68
|
-
{ name: 'Drizzle', packageName: 'drizzle-orm', category: 'database' },
|
|
69
|
-
{ name: 'Mongoose', packageName: 'mongoose', category: 'database' },
|
|
70
|
-
];
|
|
71
|
-
function parsePackageJson(content) {
|
|
72
|
-
const raw = JSON.parse(content);
|
|
73
|
-
return {
|
|
74
|
-
name: raw.name ?? 'unknown',
|
|
75
|
-
version: raw.version ?? '0.0.0',
|
|
76
|
-
description: raw.description,
|
|
77
|
-
type: raw.type,
|
|
78
|
-
dependencies: raw.dependencies ?? {},
|
|
79
|
-
devDependencies: raw.devDependencies ?? {},
|
|
80
|
-
scripts: raw.scripts ?? {},
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
function detectFrameworks(dependencies, devDependencies) {
|
|
84
|
-
const allDeps = { ...dependencies, ...devDependencies };
|
|
85
|
-
const detected = [];
|
|
86
|
-
for (const def of exports.FRAMEWORK_DEFINITIONS) {
|
|
87
|
-
const version = def.devOnly
|
|
88
|
-
? devDependencies[def.packageName]
|
|
89
|
-
: allDeps[def.packageName];
|
|
90
|
-
if (version) {
|
|
91
|
-
detected.push({
|
|
92
|
-
name: def.name,
|
|
93
|
-
category: def.category,
|
|
94
|
-
version,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return detected;
|
|
99
|
-
}
|
|
100
|
-
async function analyzePackage(projectRoot) {
|
|
101
|
-
const packagePath = path.join(projectRoot, 'package.json');
|
|
102
|
-
if (!(0, fs_1.existsSync)(packagePath)) {
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
const content = await (0, file_utils_1.safeReadFile)(packagePath);
|
|
106
|
-
if (content === null) {
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
try {
|
|
110
|
-
const parsed = parsePackageJson(content);
|
|
111
|
-
const frameworks = detectFrameworks(parsed.dependencies, parsed.devDependencies);
|
|
112
|
-
return {
|
|
113
|
-
...parsed,
|
|
114
|
-
detectedFrameworks: frameworks,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
catch {
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=package.analyzer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package.analyzer.js","sourceRoot":"","sources":["../../../src/analyzer/package.analyzer.ts"],"names":[],"mappings":"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"}
|
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;AAGlD,+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,8CAwBC;AA1ED,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,CAAC,6BAA6B,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAClF,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,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAE5E,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>;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CONFIG_FILE_NAMES = void 0;
|
|
4
|
-
exports.formatConfigAsJs = formatConfigAsJs;
|
|
5
|
-
exports.formatConfigAsJson = formatConfigAsJson;
|
|
6
|
-
exports.findExistingConfig = findExistingConfig;
|
|
7
|
-
exports.writeConfig = writeConfig;
|
|
8
|
-
const fs = require("fs/promises");
|
|
9
|
-
const path = require("path");
|
|
10
|
-
exports.CONFIG_FILE_NAMES = ['codingbuddy.config.js', 'codingbuddy.config.json'];
|
|
11
|
-
function formatConfigAsJs(config) {
|
|
12
|
-
const jsonContent = JSON.stringify(config, null, 2);
|
|
13
|
-
return `/** @type {import('codingbuddy').CodingBuddyConfig} */
|
|
14
|
-
module.exports = ${jsonContent};
|
|
15
|
-
`;
|
|
16
|
-
}
|
|
17
|
-
function formatConfigAsJson(config) {
|
|
18
|
-
return JSON.stringify(config, null, 2) + '\n';
|
|
19
|
-
}
|
|
20
|
-
async function findExistingConfig(projectRoot) {
|
|
21
|
-
for (const fileName of exports.CONFIG_FILE_NAMES) {
|
|
22
|
-
const filePath = path.join(projectRoot, fileName);
|
|
23
|
-
try {
|
|
24
|
-
await fs.access(filePath);
|
|
25
|
-
return filePath;
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
async function writeConfig(projectRoot, config, options = {}) {
|
|
33
|
-
const format = options.format ?? 'js';
|
|
34
|
-
const fileName = format === 'json' ? 'codingbuddy.config.json' : 'codingbuddy.config.js';
|
|
35
|
-
const content = format === 'json' ? formatConfigAsJson(config) : formatConfigAsJs(config);
|
|
36
|
-
const filePath = path.join(projectRoot, fileName);
|
|
37
|
-
await fs.writeFile(filePath, content, 'utf-8');
|
|
38
|
-
return filePath;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=config.writer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.writer.js","sourceRoot":"","sources":["../../../../src/cli/init/config.writer.ts"],"names":[],"mappings":";;;AA+BA,4CAMC;AAKD,gDAEC;AAOD,gDAWC;AAUD,kCAgBC;AAlFD,kCAAkC;AAClC,6BAA6B;AAMhB,QAAA,iBAAiB,GAAG,CAAC,uBAAuB,EAAE,yBAAyB,CAAU,CAAC;AAkB/F,SAAgB,gBAAgB,CAAC,MAAyB;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpD,OAAO;mBACU,WAAW;CAC7B,CAAC;AACF,CAAC;AAKD,SAAgB,kBAAkB,CAAC,MAAyB;IAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC;AAOM,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,KAAK,MAAM,QAAQ,IAAI,yBAAiB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAUM,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,MAAyB,EACzB,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IAEtC,MAAM,QAAQ,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAEzF,MAAM,OAAO,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE1F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAElD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE/C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { runInit, getApiKey } from './init.command';
|
|
2
|
-
export { buildSystemPrompt, buildAnalysisPrompt } from './prompt.builder';
|
|
3
|
-
export { ConfigGenerator } from './config.generator';
|
|
4
|
-
export { writeConfig, findExistingConfig, CONFIG_FILE_NAMES } from './config.writer';
|
|
5
|
-
export type { ConfigFormat, WriteConfigOptions } from './config.writer';
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CONFIG_FILE_NAMES = exports.findExistingConfig = exports.writeConfig = exports.ConfigGenerator = exports.buildAnalysisPrompt = exports.buildSystemPrompt = exports.getApiKey = exports.runInit = void 0;
|
|
4
|
-
var init_command_1 = require("./init.command");
|
|
5
|
-
Object.defineProperty(exports, "runInit", { enumerable: true, get: function () { return init_command_1.runInit; } });
|
|
6
|
-
Object.defineProperty(exports, "getApiKey", { enumerable: true, get: function () { return init_command_1.getApiKey; } });
|
|
7
|
-
var prompt_builder_1 = require("./prompt.builder");
|
|
8
|
-
Object.defineProperty(exports, "buildSystemPrompt", { enumerable: true, get: function () { return prompt_builder_1.buildSystemPrompt; } });
|
|
9
|
-
Object.defineProperty(exports, "buildAnalysisPrompt", { enumerable: true, get: function () { return prompt_builder_1.buildAnalysisPrompt; } });
|
|
10
|
-
var config_generator_1 = require("./config.generator");
|
|
11
|
-
Object.defineProperty(exports, "ConfigGenerator", { enumerable: true, get: function () { return config_generator_1.ConfigGenerator; } });
|
|
12
|
-
var config_writer_1 = require("./config.writer");
|
|
13
|
-
Object.defineProperty(exports, "writeConfig", { enumerable: true, get: function () { return config_writer_1.writeConfig; } });
|
|
14
|
-
Object.defineProperty(exports, "findExistingConfig", { enumerable: true, get: function () { return config_writer_1.findExistingConfig; } });
|
|
15
|
-
Object.defineProperty(exports, "CONFIG_FILE_NAMES", { enumerable: true, get: function () { return config_writer_1.CONFIG_FILE_NAMES; } });
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/init/index.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AAA3C,uGAAA,OAAO,OAAA;AAAE,yGAAA,SAAS,OAAA;AAC3B,mDAA0E;AAAjE,mHAAA,iBAAiB,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAC/C,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,iDAAqF;AAA5E,4GAAA,WAAW,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AAAE,kHAAA,iBAAiB,OAAA"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getApiKey = getApiKey;
|
|
4
|
-
exports.runInit = runInit;
|
|
5
|
-
const analyzer_1 = require("../../analyzer");
|
|
6
|
-
const config_generator_1 = require("./config.generator");
|
|
7
|
-
const config_writer_1 = require("./config.writer");
|
|
8
|
-
const console_1 = require("../utils/console");
|
|
9
|
-
function getApiKey(options) {
|
|
10
|
-
if (options.apiKey) {
|
|
11
|
-
return options.apiKey;
|
|
12
|
-
}
|
|
13
|
-
if (process.env.ANTHROPIC_API_KEY) {
|
|
14
|
-
return process.env.ANTHROPIC_API_KEY;
|
|
15
|
-
}
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
async function runInit(options) {
|
|
19
|
-
const console = (0, console_1.createConsoleUtils)();
|
|
20
|
-
try {
|
|
21
|
-
const apiKey = getApiKey(options);
|
|
22
|
-
if (!apiKey) {
|
|
23
|
-
console.log.error('No API key provided.');
|
|
24
|
-
console.log.info('Set ANTHROPIC_API_KEY environment variable or use --api-key option.');
|
|
25
|
-
return {
|
|
26
|
-
success: false,
|
|
27
|
-
error: 'No API key provided. Set ANTHROPIC_API_KEY environment variable.',
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
const existingConfig = await (0, config_writer_1.findExistingConfig)(options.projectRoot);
|
|
31
|
-
if (existingConfig && !options.force) {
|
|
32
|
-
console.log.error(`Configuration file already exists: ${existingConfig}`);
|
|
33
|
-
console.log.info('Use --force to overwrite.');
|
|
34
|
-
return {
|
|
35
|
-
success: false,
|
|
36
|
-
error: `Configuration file already exists: ${existingConfig}`,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
if (existingConfig && options.force) {
|
|
40
|
-
console.log.warn(`Overwriting existing config: ${existingConfig}`);
|
|
41
|
-
}
|
|
42
|
-
console.log.step('🔍', 'Analyzing project...');
|
|
43
|
-
const analyzer = new analyzer_1.AnalyzerService();
|
|
44
|
-
const analysis = await analyzer.analyzeProject(options.projectRoot);
|
|
45
|
-
console.log.success('Project analysis complete');
|
|
46
|
-
if (analysis.packageInfo) {
|
|
47
|
-
console.log.step('📦', `Package: ${analysis.packageInfo.name}`);
|
|
48
|
-
}
|
|
49
|
-
if (analysis.detectedPatterns.length > 0) {
|
|
50
|
-
console.log.step('🏗️', `Patterns: ${analysis.detectedPatterns.join(', ')}`);
|
|
51
|
-
}
|
|
52
|
-
console.log.step('📁', `Files: ${analysis.directoryStructure.totalFiles}`);
|
|
53
|
-
console.log.step('🤖', 'AI is generating configuration...');
|
|
54
|
-
const generator = new config_generator_1.ConfigGenerator({ apiKey });
|
|
55
|
-
const config = await generator.generate(analysis);
|
|
56
|
-
console.log.success('Configuration generated');
|
|
57
|
-
console.log.step('💾', 'Writing configuration file...');
|
|
58
|
-
const configPath = await (0, config_writer_1.writeConfig)(options.projectRoot, config, {
|
|
59
|
-
format: options.format,
|
|
60
|
-
});
|
|
61
|
-
console.log.success(`Configuration saved to ${configPath}`);
|
|
62
|
-
console.log.success('');
|
|
63
|
-
console.log.step('✅', `codingbuddy.config.${options.format} created!`);
|
|
64
|
-
console.log.info('');
|
|
65
|
-
console.log.info('Please review the generated configuration.');
|
|
66
|
-
return {
|
|
67
|
-
success: true,
|
|
68
|
-
configPath,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
73
|
-
console.log.error(message);
|
|
74
|
-
return {
|
|
75
|
-
success: false,
|
|
76
|
-
error: message,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=init.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { ProjectAnalysis, PackageInfo, DirectoryAnalysis, ConfigFilesSummary, CodeSample } from '../../analyzer';
|
|
2
|
-
export declare function buildSystemPrompt(): string;
|
|
3
|
-
export declare function buildAnalysisPrompt(analysis: ProjectAnalysis): string;
|
|
4
|
-
export declare function formatPackageInfo(info: PackageInfo): string;
|
|
5
|
-
export declare function formatDirectoryStructure(dir: DirectoryAnalysis): string;
|
|
6
|
-
export declare function formatConfigFiles(config: ConfigFilesSummary): string;
|
|
7
|
-
export declare function formatCodeSamples(samples: CodeSample[]): string;
|