codingbuddy 0.0.0-canary.20251218092617.9981b9d → 0.0.0-canary.20251219020448.5f0fa81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/src/analyzer/code.sampler.js +2 -0
  2. package/dist/src/analyzer/code.sampler.js.map +1 -1
  3. package/dist/src/analyzer/code.sampler.spec.js +4 -0
  4. package/dist/src/analyzer/code.sampler.spec.js.map +1 -1
  5. package/dist/src/cli/cli.d.ts +10 -0
  6. package/dist/src/cli/cli.js +98 -0
  7. package/dist/src/cli/cli.js.map +1 -0
  8. package/dist/src/cli/cli.spec.d.ts +1 -0
  9. package/dist/src/cli/cli.spec.js +84 -0
  10. package/dist/src/cli/cli.spec.js.map +1 -0
  11. package/dist/src/cli/cli.types.d.ts +18 -0
  12. package/dist/src/cli/cli.types.js +3 -0
  13. package/dist/src/cli/cli.types.js.map +1 -0
  14. package/dist/src/cli/index.d.ts +6 -0
  15. package/dist/src/cli/index.js +15 -0
  16. package/dist/src/cli/index.js.map +1 -0
  17. package/dist/src/cli/init/config.generator.d.ts +16 -0
  18. package/dist/src/cli/init/config.generator.js +70 -0
  19. package/dist/src/cli/init/config.generator.js.map +1 -0
  20. package/dist/src/cli/init/config.generator.spec.d.ts +1 -0
  21. package/dist/src/cli/init/config.generator.spec.js +182 -0
  22. package/dist/src/cli/init/config.generator.spec.js.map +1 -0
  23. package/dist/src/cli/init/config.writer.d.ts +10 -0
  24. package/dist/src/cli/init/config.writer.js +40 -0
  25. package/dist/src/cli/init/config.writer.js.map +1 -0
  26. package/dist/src/cli/init/config.writer.spec.d.ts +1 -0
  27. package/dist/src/cli/init/config.writer.spec.js +112 -0
  28. package/dist/src/cli/init/config.writer.spec.js.map +1 -0
  29. package/dist/src/cli/init/index.d.ts +5 -0
  30. package/dist/src/cli/init/index.js +16 -0
  31. package/dist/src/cli/init/index.js.map +1 -0
  32. package/dist/src/cli/init/init.command.d.ts +3 -0
  33. package/dist/src/cli/init/init.command.js +80 -0
  34. package/dist/src/cli/init/init.command.js.map +1 -0
  35. package/dist/src/cli/init/init.command.spec.d.ts +1 -0
  36. package/dist/src/cli/init/init.command.spec.js +227 -0
  37. package/dist/src/cli/init/init.command.spec.js.map +1 -0
  38. package/dist/src/cli/init/prompt.builder.d.ts +7 -0
  39. package/dist/src/cli/init/prompt.builder.js +222 -0
  40. package/dist/src/cli/init/prompt.builder.js.map +1 -0
  41. package/dist/src/cli/init/prompt.builder.spec.d.ts +1 -0
  42. package/dist/src/cli/init/prompt.builder.spec.js +199 -0
  43. package/dist/src/cli/init/prompt.builder.spec.js.map +1 -0
  44. package/dist/src/cli/utils/console.d.ts +18 -0
  45. package/dist/src/cli/utils/console.js +83 -0
  46. package/dist/src/cli/utils/console.js.map +1 -0
  47. package/dist/src/cli/utils/console.spec.d.ts +1 -0
  48. package/dist/src/cli/utils/console.spec.js +100 -0
  49. package/dist/src/cli/utils/console.spec.js.map +1 -0
  50. package/dist/src/cli/utils/index.d.ts +2 -0
  51. package/dist/src/cli/utils/index.js +7 -0
  52. package/dist/src/cli/utils/index.js.map +1 -0
  53. package/dist/src/config/config.schema.d.ts +30 -30
  54. package/dist/src/main.js +0 -0
  55. package/dist/src/mcp/mcp.module.js +2 -1
  56. package/dist/src/mcp/mcp.module.js.map +1 -1
  57. package/dist/src/mcp/mcp.service.d.ts +10 -1
  58. package/dist/src/mcp/mcp.service.js +139 -64
  59. package/dist/src/mcp/mcp.service.js.map +1 -1
  60. package/dist/src/mcp/mcp.service.spec.d.ts +1 -0
  61. package/dist/src/mcp/mcp.service.spec.js +262 -0
  62. package/dist/src/mcp/mcp.service.spec.js.map +1 -0
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/package.json +7 -5
@@ -48,6 +48,8 @@ exports.LANGUAGE_EXTENSIONS = {
48
48
  '.sql': 'sql',
49
49
  '.graphql': 'graphql',
50
50
  '.gql': 'graphql',
51
+ '.vue': 'vue',
52
+ '.svelte': 'svelte',
51
53
  };
52
54
  const CODE_EXTENSIONS = new Set([
53
55
  '.ts',
@@ -1 +1 @@
1
- {"version":3,"file":"code.sampler.js","sourceRoot":"","sources":["../../../src/analyzer/code.sampler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code.sampler.js","sourceRoot":"","sources":["../../../src/analyzer/code.sampler.ts"],"names":[],"mappings":";;;AAkHA,wCAGC;AAKD,gCAGC;AAiBD,wCA0EC;AAMD,8CA+CC;AAoBD,gCAmCC;AApUD,kCAAkC;AAClC,6BAA6B;AAMhB,QAAA,mBAAmB,GAA2B;IAEzD,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IAGpB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IAGpB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAGhB,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAGhB,KAAK,EAAE,IAAI;IAGX,KAAK,EAAE,MAAM;IAGb,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IAGZ,KAAK,EAAE,QAAQ;IAGf,KAAK,EAAE,MAAM;IAGb,MAAM,EAAE,KAAK;IAGb,QAAQ,EAAE,OAAO;IAGjB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IAGf,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;IAGb,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IAGf,MAAM,EAAE,KAAK;IAGb,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,SAAS;IAGjB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,QAAQ;CACpB,CAAC;AAKF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAKH,SAAgB,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,2BAAmB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AAC/C,CAAC;AAKD,SAAgB,UAAU,CAAC,QAAgB;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAKD,SAAS,eAAe,CAAC,SAAiB,EAAE,OAAe;IACzD,OAAO,CACL,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAO,GAAG,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,KAAK,OAAO,IAAI,CAAC;QACpC,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC;QACnC,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,IAAI,CAAC,CACrC,CAAC;AACJ,CAAC;AAKD,SAAgB,cAAc,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAGvD,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,IACE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;QAC7B,QAAQ,KAAK,UAAU;QACvB,QAAQ,KAAK,UAAU,EACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,IAAI,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC3E,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,IAAI,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACzE,OAAO,WAAW,CAAC;IACrB,CAAC;IAGD,IACE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;QAC/B,QAAQ,KAAK,UAAU;QACvB,QAAQ,KAAK,SAAS;QACtB,QAAQ,KAAK,UAAU;QACvB,QAAQ,KAAK,SAAS,EACtB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,IACE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;QAC/B,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;QAC7B,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,EACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,IAAI,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAMD,SAAgB,iBAAiB,CAAC,KAAe,EAAE,UAAkB;IAEnE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,QAAQ,KAAK,MAAM,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAGD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjD,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,OAAO,QAAQ,CAAC,MAAM,GAAG,UAAU,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAG,CAAC,CAAC;YAExC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5B,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,aAAa,EAAE,CAAC;QAGhB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;IACrC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAKD,MAAM,aAAa,GAAG,EAAE,CAAC;AAKzB,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC;AAU1B,KAAK,UAAU,UAAU,CAC9B,WAAmB,EACnB,KAAe,EACf,aAAqB,CAAC;IAEtB,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAGtC,IAAI,KAAK,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC;gBACtC,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC;gBACtC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjD,SAAS,EAAE,KAAK,CAAC,MAAM;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -25,6 +25,10 @@ const code_sampler_1 = require("./code.sampler");
25
25
  (0, vitest_1.it)('should detect Python files', () => {
26
26
  (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('main.py')).toBe('python');
27
27
  });
28
+ (0, vitest_1.it)('should detect Vue and Svelte files', () => {
29
+ (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('App.vue')).toBe('vue');
30
+ (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('Component.svelte')).toBe('svelte');
31
+ });
28
32
  (0, vitest_1.it)('should return unknown for unrecognized extensions', () => {
29
33
  (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('file.xyz')).toBe('unknown');
30
34
  (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('noextension')).toBe('unknown');
@@ -1 +1 @@
1
- {"version":3,"file":"code.sampler.spec.js","sourceRoot":"","sources":["../../../src/analyzer/code.sampler.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code.sampler.spec.js","sourceRoot":"","sources":["../../../src/analyzer/code.sampler.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
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>;
@@ -0,0 +1,98 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":";;;AAwBA,8BA2CC;AAKD,gCAyBC;AAKD,oCAEC;AAKD,oBAoBC;AA1HD,iCAAiC;AAIjC,MAAM,OAAO,GAAG,OAAO,CAAC;AAaxB,SAAgB,SAAS,CAAC,IAAc;IACtC,MAAM,OAAO,GAAyB;QACpC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,KAAK;KACb,CAAC;IAGF,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAGD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACzC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAEhC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAKD,SAAgB,UAAU;IACxB,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBf,CAAC;IAEA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC;AAKD,SAAgB,YAAY;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;AACpD,CAAC;AAKM,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE7C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,UAAU,EAAE,CAAC;YACb,MAAM;QAER,KAAK,SAAS;YACZ,YAAY,EAAE,CAAC;YACf,MAAM;QAER,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,IAAA,cAAO,EAAC,OAAsB,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAGD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const cli_1 = require("./cli");
5
+ (0, vitest_1.describe)('cli', () => {
6
+ (0, vitest_1.describe)('parseArgs', () => {
7
+ (0, vitest_1.it)('should parse init command', () => {
8
+ const result = (0, cli_1.parseArgs)(['init']);
9
+ (0, vitest_1.expect)(result.command).toBe('init');
10
+ });
11
+ (0, vitest_1.it)('should parse init with --force flag', () => {
12
+ const result = (0, cli_1.parseArgs)(['init', '--force']);
13
+ (0, vitest_1.expect)(result.command).toBe('init');
14
+ (0, vitest_1.expect)(result.options.force).toBe(true);
15
+ });
16
+ (0, vitest_1.it)('should parse init with --format option', () => {
17
+ const result = (0, cli_1.parseArgs)(['init', '--format', 'json']);
18
+ (0, vitest_1.expect)(result.command).toBe('init');
19
+ (0, vitest_1.expect)(result.options.format).toBe('json');
20
+ });
21
+ (0, vitest_1.it)('should parse init with --api-key option', () => {
22
+ const result = (0, cli_1.parseArgs)(['init', '--api-key', 'test-key']);
23
+ (0, vitest_1.expect)(result.command).toBe('init');
24
+ (0, vitest_1.expect)(result.options.apiKey).toBe('test-key');
25
+ });
26
+ (0, vitest_1.it)('should parse help command', () => {
27
+ const result = (0, cli_1.parseArgs)(['--help']);
28
+ (0, vitest_1.expect)(result.command).toBe('help');
29
+ });
30
+ (0, vitest_1.it)('should parse version command', () => {
31
+ const result = (0, cli_1.parseArgs)(['--version']);
32
+ (0, vitest_1.expect)(result.command).toBe('version');
33
+ });
34
+ (0, vitest_1.it)('should return help for empty args', () => {
35
+ const result = (0, cli_1.parseArgs)([]);
36
+ (0, vitest_1.expect)(result.command).toBe('help');
37
+ });
38
+ (0, vitest_1.it)('should return help for unknown command', () => {
39
+ const result = (0, cli_1.parseArgs)(['unknown']);
40
+ (0, vitest_1.expect)(result.command).toBe('help');
41
+ });
42
+ (0, vitest_1.it)('should use current directory as default projectRoot', () => {
43
+ const result = (0, cli_1.parseArgs)(['init']);
44
+ (0, vitest_1.expect)(result.options.projectRoot).toBe(process.cwd());
45
+ });
46
+ (0, vitest_1.it)('should parse custom project root', () => {
47
+ const result = (0, cli_1.parseArgs)(['init', '/custom/path']);
48
+ (0, vitest_1.expect)(result.options.projectRoot).toBe('/custom/path');
49
+ });
50
+ });
51
+ (0, vitest_1.describe)('printUsage', () => {
52
+ let stdoutWrite;
53
+ (0, vitest_1.beforeEach)(() => {
54
+ stdoutWrite = vitest_1.vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
55
+ });
56
+ (0, vitest_1.afterEach)(() => {
57
+ vitest_1.vi.restoreAllMocks();
58
+ });
59
+ (0, vitest_1.it)('should print usage information', () => {
60
+ (0, cli_1.printUsage)();
61
+ (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
62
+ const output = stdoutWrite.mock.calls.map((c) => c[0]).join('');
63
+ (0, vitest_1.expect)(output).toContain('codingbuddy');
64
+ (0, vitest_1.expect)(output).toContain('init');
65
+ (0, vitest_1.expect)(output).toContain('--help');
66
+ });
67
+ });
68
+ (0, vitest_1.describe)('printVersion', () => {
69
+ let stdoutWrite;
70
+ (0, vitest_1.beforeEach)(() => {
71
+ stdoutWrite = vitest_1.vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
72
+ });
73
+ (0, vitest_1.afterEach)(() => {
74
+ vitest_1.vi.restoreAllMocks();
75
+ });
76
+ (0, vitest_1.it)('should print version', () => {
77
+ (0, cli_1.printVersion)();
78
+ (0, vitest_1.expect)(stdoutWrite).toHaveBeenCalled();
79
+ const output = stdoutWrite.mock.calls.map((c) => c[0]).join('');
80
+ (0, vitest_1.expect)(output).toMatch(/\d+\.\d+\.\d+/);
81
+ });
82
+ });
83
+ });
84
+ //# sourceMappingURL=cli.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.spec.js","sourceRoot":"","sources":["../../../src/cli/cli.spec.ts"],"names":[],"mappings":";;AAAA,mCAAyE;AACzE,+BAA4D;AAE5D,IAAA,iBAAQ,EAAC,KAAK,EAAE,GAAG,EAAE;IACnB,IAAA,iBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;QACzB,IAAA,WAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAEnC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAE9C,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAEvD,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YAE5D,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAErC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAExC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,EAAE,CAAC,CAAC;YAE7B,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAEtC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAEnC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,IAAA,eAAS,EAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;YAEnD,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,IAAI,WAAwC,CAAC;QAE7C,IAAA,mBAAU,EAAC,GAAG,EAAE;YACd,WAAW,GAAG,WAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;YACb,WAAE,CAAC,eAAe,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,IAAA,gBAAU,GAAE,CAAC;YAEb,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,IAAI,WAAwC,CAAC;QAE7C,IAAA,mBAAU,EAAC,GAAG,EAAE;YACd,WAAW,GAAG,WAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;YACb,WAAE,CAAC,eAAe,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,IAAA,kBAAY,GAAE,CAAC;YAEf,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
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';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cli.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.types.js","sourceRoot":"","sources":["../../../src/cli/cli.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
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';
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,16 @@
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
+ }
@@ -0,0 +1,70 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const config_generator_1 = require("./config.generator");
5
+ const mockCreate = vitest_1.vi.fn();
6
+ vitest_1.vi.mock('@anthropic-ai/sdk', () => ({
7
+ default: class MockAnthropic {
8
+ constructor() {
9
+ this.messages = {
10
+ create: mockCreate,
11
+ };
12
+ }
13
+ },
14
+ }));
15
+ (0, vitest_1.describe)('config.generator', () => {
16
+ const mockAnalysis = {
17
+ packageInfo: {
18
+ name: 'test-app',
19
+ version: '1.0.0',
20
+ dependencies: { react: '^18.0.0' },
21
+ devDependencies: { typescript: '^5.0.0' },
22
+ scripts: { dev: 'next dev' },
23
+ detectedFrameworks: [{ name: 'React', category: 'frontend', version: '^18.0.0' }],
24
+ },
25
+ directoryStructure: {
26
+ rootDirs: ['src', 'components'],
27
+ rootFiles: ['package.json'],
28
+ allFiles: ['src/index.ts'],
29
+ patterns: [],
30
+ totalFiles: 10,
31
+ totalDirs: 5,
32
+ },
33
+ configFiles: {
34
+ detected: ['tsconfig.json'],
35
+ },
36
+ codeSamples: [],
37
+ detectedPatterns: ['React Project'],
38
+ };
39
+ (0, vitest_1.describe)('extractJsonFromResponse', () => {
40
+ (0, vitest_1.it)('should extract JSON from plain JSON response', () => {
41
+ const response = '{"projectName": "test"}';
42
+ const result = (0, config_generator_1.extractJsonFromResponse)(response);
43
+ (0, vitest_1.expect)(result).toBe('{"projectName": "test"}');
44
+ });
45
+ (0, vitest_1.it)('should extract JSON from markdown code block', () => {
46
+ const response = '```json\n{"projectName": "test"}\n```';
47
+ const result = (0, config_generator_1.extractJsonFromResponse)(response);
48
+ (0, vitest_1.expect)(result).toBe('{"projectName": "test"}');
49
+ });
50
+ (0, vitest_1.it)('should extract JSON from response with surrounding text', () => {
51
+ const response = 'Here is the config:\n```json\n{"projectName": "test"}\n```\nEnjoy!';
52
+ const result = (0, config_generator_1.extractJsonFromResponse)(response);
53
+ (0, vitest_1.expect)(result).toBe('{"projectName": "test"}');
54
+ });
55
+ (0, vitest_1.it)('should handle response without code block markers', () => {
56
+ const response = 'Some text {"projectName": "test"} more text';
57
+ const result = (0, config_generator_1.extractJsonFromResponse)(response);
58
+ (0, vitest_1.expect)(result).toBe('{"projectName": "test"}');
59
+ });
60
+ (0, vitest_1.it)('should return null for invalid response', () => {
61
+ const response = 'No JSON here';
62
+ const result = (0, config_generator_1.extractJsonFromResponse)(response);
63
+ (0, vitest_1.expect)(result).toBeNull();
64
+ });
65
+ });
66
+ (0, vitest_1.describe)('parseJsonResponse', () => {
67
+ (0, vitest_1.it)('should parse valid JSON response', () => {
68
+ const response = '{"projectName": "test", "language": "ko"}';
69
+ const result = (0, config_generator_1.parseJsonResponse)(response);
70
+ (0, vitest_1.expect)(result).toEqual({ projectName: 'test', language: 'ko' });
71
+ });
72
+ (0, vitest_1.it)('should parse JSON from markdown code block', () => {
73
+ const response = '```json\n{"projectName": "test"}\n```';
74
+ const result = (0, config_generator_1.parseJsonResponse)(response);
75
+ (0, vitest_1.expect)(result).toEqual({ projectName: 'test' });
76
+ });
77
+ (0, vitest_1.it)('should parse complex nested config', () => {
78
+ const response = JSON.stringify({
79
+ projectName: 'my-app',
80
+ techStack: {
81
+ frontend: ['React', 'TypeScript'],
82
+ },
83
+ conventions: {
84
+ naming: {
85
+ files: 'kebab-case',
86
+ },
87
+ },
88
+ });
89
+ const result = (0, config_generator_1.parseJsonResponse)(response);
90
+ (0, vitest_1.expect)(result.projectName).toBe('my-app');
91
+ (0, vitest_1.expect)(result.techStack?.frontend).toContain('React');
92
+ (0, vitest_1.expect)(result.conventions?.naming?.files).toBe('kebab-case');
93
+ });
94
+ (0, vitest_1.it)('should throw on invalid JSON', () => {
95
+ const response = 'not valid json';
96
+ (0, vitest_1.expect)(() => (0, config_generator_1.parseJsonResponse)(response)).toThrow();
97
+ });
98
+ (0, vitest_1.it)('should validate against schema and filter invalid fields', () => {
99
+ const response = JSON.stringify({
100
+ projectName: 'test',
101
+ invalidField: 'should be ignored',
102
+ techStack: {
103
+ frontend: ['React'],
104
+ },
105
+ });
106
+ const result = (0, config_generator_1.parseJsonResponse)(response);
107
+ (0, vitest_1.expect)(result.projectName).toBe('test');
108
+ (0, vitest_1.expect)(result.techStack?.frontend).toContain('React');
109
+ });
110
+ });
111
+ (0, vitest_1.describe)('ConfigGenerator', () => {
112
+ let generator;
113
+ (0, vitest_1.beforeEach)(() => {
114
+ mockCreate.mockReset();
115
+ generator = new config_generator_1.ConfigGenerator({ apiKey: 'test-key' });
116
+ });
117
+ (0, vitest_1.it)('should generate config from analysis', async () => {
118
+ const mockResponse = {
119
+ content: [
120
+ {
121
+ type: 'text',
122
+ text: JSON.stringify({
123
+ projectName: 'test-app',
124
+ language: 'en',
125
+ techStack: {
126
+ frontend: ['React'],
127
+ },
128
+ }),
129
+ },
130
+ ],
131
+ };
132
+ mockCreate.mockResolvedValue(mockResponse);
133
+ const result = await generator.generate(mockAnalysis);
134
+ (0, vitest_1.expect)(result.projectName).toBe('test-app');
135
+ (0, vitest_1.expect)(result.techStack?.frontend).toContain('React');
136
+ });
137
+ (0, vitest_1.it)('should call Anthropic API with correct parameters', async () => {
138
+ const mockResponse = {
139
+ content: [{ type: 'text', text: '{"projectName": "test"}' }],
140
+ };
141
+ mockCreate.mockResolvedValue(mockResponse);
142
+ await generator.generate(mockAnalysis);
143
+ (0, vitest_1.expect)(mockCreate).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
144
+ model: vitest_1.expect.any(String),
145
+ max_tokens: vitest_1.expect.any(Number),
146
+ system: vitest_1.expect.any(String),
147
+ messages: vitest_1.expect.arrayContaining([
148
+ vitest_1.expect.objectContaining({
149
+ role: 'user',
150
+ content: vitest_1.expect.any(String),
151
+ }),
152
+ ]),
153
+ }));
154
+ });
155
+ (0, vitest_1.it)('should throw on API error', async () => {
156
+ mockCreate.mockRejectedValue(new Error('API Error'));
157
+ await (0, vitest_1.expect)(generator.generate(mockAnalysis)).rejects.toThrow('API Error');
158
+ });
159
+ (0, vitest_1.it)('should throw on empty response', async () => {
160
+ const mockResponse = {
161
+ content: [],
162
+ };
163
+ mockCreate.mockResolvedValue(mockResponse);
164
+ await (0, vitest_1.expect)(generator.generate(mockAnalysis)).rejects.toThrow();
165
+ });
166
+ (0, vitest_1.it)('should use custom model when specified', async () => {
167
+ const customGenerator = new config_generator_1.ConfigGenerator({
168
+ apiKey: 'test-key',
169
+ model: 'claude-3-opus-20240229',
170
+ });
171
+ const mockResponse = {
172
+ content: [{ type: 'text', text: '{"projectName": "test"}' }],
173
+ };
174
+ mockCreate.mockResolvedValue(mockResponse);
175
+ await customGenerator.generate(mockAnalysis);
176
+ (0, vitest_1.expect)(mockCreate).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
177
+ model: 'claude-3-opus-20240229',
178
+ }));
179
+ });
180
+ });
181
+ });
182
+ //# sourceMappingURL=config.generator.spec.js.map