codingbuddy 0.2.5 โ†’ 0.2.7

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 (54) hide show
  1. package/dist/src/cli/cli.types.d.ts +2 -0
  2. package/dist/src/cli/init/config.writer.d.ts +2 -1
  3. package/dist/src/cli/init/config.writer.js +11 -1
  4. package/dist/src/cli/init/config.writer.js.map +1 -1
  5. package/dist/src/cli/init/init.command.js +92 -36
  6. package/dist/src/cli/init/init.command.js.map +1 -1
  7. package/dist/src/cli/init/templates/frameworks/default.template.d.ts +2 -0
  8. package/dist/src/cli/init/templates/frameworks/default.template.js +75 -0
  9. package/dist/src/cli/init/templates/frameworks/default.template.js.map +1 -0
  10. package/dist/src/cli/init/templates/frameworks/express.template.d.ts +2 -0
  11. package/dist/src/cli/init/templates/frameworks/express.template.js +58 -0
  12. package/dist/src/cli/init/templates/frameworks/express.template.js.map +1 -0
  13. package/dist/src/cli/init/templates/frameworks/index.d.ts +9 -0
  14. package/dist/src/cli/init/templates/frameworks/index.js +24 -0
  15. package/dist/src/cli/init/templates/frameworks/index.js.map +1 -0
  16. package/dist/src/cli/init/templates/frameworks/nestjs.template.d.ts +2 -0
  17. package/dist/src/cli/init/templates/frameworks/nestjs.template.js +62 -0
  18. package/dist/src/cli/init/templates/frameworks/nestjs.template.js.map +1 -0
  19. package/dist/src/cli/init/templates/frameworks/nextjs.template.d.ts +2 -0
  20. package/dist/src/cli/init/templates/frameworks/nextjs.template.js +68 -0
  21. package/dist/src/cli/init/templates/frameworks/nextjs.template.js.map +1 -0
  22. package/dist/src/cli/init/templates/frameworks/node.template.d.ts +2 -0
  23. package/dist/src/cli/init/templates/frameworks/node.template.js +55 -0
  24. package/dist/src/cli/init/templates/frameworks/node.template.js.map +1 -0
  25. package/dist/src/cli/init/templates/frameworks/react.template.d.ts +2 -0
  26. package/dist/src/cli/init/templates/frameworks/react.template.js +61 -0
  27. package/dist/src/cli/init/templates/frameworks/react.template.js.map +1 -0
  28. package/dist/src/cli/init/templates/index.d.ts +4 -0
  29. package/dist/src/cli/init/templates/index.js +13 -0
  30. package/dist/src/cli/init/templates/index.js.map +1 -0
  31. package/dist/src/cli/init/templates/template.renderer.d.ts +3 -0
  32. package/dist/src/cli/init/templates/template.renderer.js +162 -0
  33. package/dist/src/cli/init/templates/template.renderer.js.map +1 -0
  34. package/dist/src/cli/init/templates/template.selector.d.ts +5 -0
  35. package/dist/src/cli/init/templates/template.selector.js +60 -0
  36. package/dist/src/cli/init/templates/template.selector.js.map +1 -0
  37. package/dist/src/cli/init/templates/template.types.d.ts +33 -0
  38. package/dist/src/cli/init/templates/template.types.js +3 -0
  39. package/dist/src/cli/init/templates/template.types.js.map +1 -0
  40. package/dist/src/config/config-diff.service.d.ts +23 -0
  41. package/dist/src/config/config-diff.service.js +166 -0
  42. package/dist/src/config/config-diff.service.js.map +1 -0
  43. package/dist/src/config/config.module.js +3 -2
  44. package/dist/src/config/config.module.js.map +1 -1
  45. package/dist/src/config/index.d.ts +2 -0
  46. package/dist/src/config/index.js +3 -1
  47. package/dist/src/config/index.js.map +1 -1
  48. package/dist/src/mcp/mcp.module.js +7 -1
  49. package/dist/src/mcp/mcp.module.js.map +1 -1
  50. package/dist/src/mcp/mcp.service.d.ts +6 -1
  51. package/dist/src/mcp/mcp.service.js +37 -2
  52. package/dist/src/mcp/mcp.service.js.map +1 -1
  53. package/dist/tsconfig.build.tsbuildinfo +1 -1
  54. package/package.json +2 -2
@@ -8,7 +8,9 @@ export interface InitOptions {
8
8
  projectRoot: string;
9
9
  format: 'js' | 'json';
10
10
  force: boolean;
11
+ useAi?: boolean;
11
12
  apiKey?: string;
13
+ language?: string;
12
14
  }
13
15
  export interface InitResult {
14
16
  success: boolean;
@@ -3,8 +3,9 @@ export declare const CONFIG_FILE_NAMES: readonly ["codingbuddy.config.js", "codi
3
3
  export type ConfigFormat = 'js' | 'json';
4
4
  export interface WriteConfigOptions {
5
5
  format?: ConfigFormat;
6
+ raw?: boolean;
6
7
  }
7
8
  export declare function formatConfigAsJs(config: CodingBuddyConfig): string;
8
9
  export declare function formatConfigAsJson(config: CodingBuddyConfig): string;
9
10
  export declare function findExistingConfig(projectRoot: string): Promise<string | null>;
10
- export declare function writeConfig(projectRoot: string, config: CodingBuddyConfig, options?: WriteConfigOptions): Promise<string>;
11
+ export declare function writeConfig(projectRoot: string, config: CodingBuddyConfig | string, options?: WriteConfigOptions): Promise<string>;
@@ -35,7 +35,17 @@ async function findExistingConfig(projectRoot) {
35
35
  async function writeConfig(projectRoot, config, options = {}) {
36
36
  const format = options.format ?? 'js';
37
37
  const fileName = format === 'json' ? 'codingbuddy.config.json' : 'codingbuddy.config.js';
38
- const content = format === 'json' ? formatConfigAsJson(config) : formatConfigAsJs(config);
38
+ let content;
39
+ if (options.raw && typeof config === 'string') {
40
+ content = config;
41
+ }
42
+ else if (typeof config === 'object') {
43
+ content =
44
+ format === 'json' ? formatConfigAsJson(config) : formatConfigAsJs(config);
45
+ }
46
+ else {
47
+ throw new Error('Invalid config: expected object or string with raw option');
48
+ }
39
49
  const filePath = path.join(projectRoot, fileName);
40
50
  await fs.writeFile(filePath, content, 'utf-8');
41
51
  return filePath;
@@ -1 +1 @@
1
- {"version":3,"file":"config.writer.js","sourceRoot":"","sources":["../../../../src/cli/init/config.writer.ts"],"names":[],"mappings":";;;AAkCA,4CAMC;AAKD,gDAEC;AAOD,gDAaC;AAUD,kCAkBC;AAzFD,kCAAkC;AAClC,6BAA6B;AAMhB,QAAA,iBAAiB,GAAG;IAC/B,uBAAuB;IACvB,yBAAyB;CACjB,CAAC;AAkBX,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,CACtC,WAAmB;IAEnB,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,GACZ,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAE1E,MAAM,OAAO,GACX,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE5E,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
+ {"version":3,"file":"config.writer.js","sourceRoot":"","sources":["../../../../src/cli/init/config.writer.ts"],"names":[],"mappings":";;;AAoCA,4CAMC;AAKD,gDAEC;AAOD,gDAaC;AAUD,kCA8BC;AAvGD,kCAAkC;AAClC,6BAA6B;AAMhB,QAAA,iBAAiB,GAAG;IAC/B,uBAAuB;IACvB,yBAAyB;CACjB,CAAC;AAoBX,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,CACtC,WAAmB;IAEnB,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,MAAkC,EAClC,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IAEtC,MAAM,QAAQ,GACZ,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAE1E,IAAI,OAAe,CAAC;IAEpB,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAE9C,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAEtC,OAAO;YACL,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IAED,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"}
@@ -6,6 +6,7 @@ const analyzer_1 = require("../../analyzer");
6
6
  const config_generator_1 = require("./config.generator");
7
7
  const config_writer_1 = require("./config.writer");
8
8
  const console_1 = require("../utils/console");
9
+ const templates_1 = require("./templates");
9
10
  function getApiKey(options) {
10
11
  if (options.apiKey) {
11
12
  return options.apiKey;
@@ -15,18 +16,97 @@ function getApiKey(options) {
15
16
  }
16
17
  return null;
17
18
  }
19
+ async function runTemplateInit(options, console) {
20
+ console.log.step('๐Ÿ”', 'Analyzing project...');
21
+ const analyzer = new analyzer_1.AnalyzerService();
22
+ const analysis = await analyzer.analyzeProject(options.projectRoot);
23
+ console.log.success('Project analysis complete');
24
+ if (analysis.packageInfo) {
25
+ console.log.step('๐Ÿ“ฆ', `Package: ${analysis.packageInfo.name}`);
26
+ }
27
+ if (analysis.detectedPatterns.length > 0) {
28
+ console.log.step('๐Ÿ—๏ธ', `Patterns: ${analysis.detectedPatterns.join(', ')}`);
29
+ }
30
+ console.log.step('๐Ÿ“', `Files: ${analysis.directoryStructure.totalFiles}`);
31
+ console.log.step('๐Ÿ“‹', 'Selecting template...');
32
+ const { template, reason, detectedFrameworks } = (0, templates_1.selectTemplate)(analysis);
33
+ console.log.success(`Template: ${template.metadata.name}`);
34
+ console.log.info(` ${reason}`);
35
+ if (detectedFrameworks.length > 0) {
36
+ console.log.info(` Detected: ${detectedFrameworks.join(', ')}`);
37
+ }
38
+ console.log.step('โœจ', 'Generating configuration...');
39
+ const projectName = analysis.packageInfo?.name;
40
+ const renderOptions = {
41
+ projectName,
42
+ language: options.language,
43
+ };
44
+ const configContent = options.format === 'json'
45
+ ? (0, templates_1.renderConfigAsJson)(template, renderOptions)
46
+ : (0, templates_1.renderConfigAsJs)(template, renderOptions);
47
+ console.log.step('๐Ÿ’พ', 'Writing configuration file...');
48
+ const configPath = await (0, config_writer_1.writeConfig)(options.projectRoot, configContent, {
49
+ format: options.format,
50
+ raw: true,
51
+ });
52
+ console.log.success(`Configuration saved to ${configPath}`);
53
+ console.log.success('');
54
+ console.log.step('โœ…', `codingbuddy.config.${options.format} created!`);
55
+ console.log.info('');
56
+ console.log.info('Please review the generated configuration.');
57
+ console.log.info('');
58
+ console.log.info('๐Ÿ’ก TIP: Use MCP tools to get config update suggestions');
59
+ console.log.info(' as your project evolves.');
60
+ return {
61
+ success: true,
62
+ configPath,
63
+ };
64
+ }
65
+ async function runAiInit(options, console) {
66
+ const apiKey = getApiKey(options);
67
+ if (!apiKey) {
68
+ console.log.error('No API key provided for AI generation.');
69
+ console.log.info('Set ANTHROPIC_API_KEY environment variable or use --api-key option.');
70
+ console.log.info('');
71
+ console.log.info('๐Ÿ’ก TIP: Run without --ai flag to use template-based generation');
72
+ console.log.info(' (no API key required)');
73
+ return {
74
+ success: false,
75
+ error: 'No API key provided. Set ANTHROPIC_API_KEY or remove --ai flag for template mode.',
76
+ };
77
+ }
78
+ console.log.step('๐Ÿ”', 'Analyzing project...');
79
+ const analyzer = new analyzer_1.AnalyzerService();
80
+ const analysis = await analyzer.analyzeProject(options.projectRoot);
81
+ console.log.success('Project analysis complete');
82
+ if (analysis.packageInfo) {
83
+ console.log.step('๐Ÿ“ฆ', `Package: ${analysis.packageInfo.name}`);
84
+ }
85
+ if (analysis.detectedPatterns.length > 0) {
86
+ console.log.step('๐Ÿ—๏ธ', `Patterns: ${analysis.detectedPatterns.join(', ')}`);
87
+ }
88
+ console.log.step('๐Ÿ“', `Files: ${analysis.directoryStructure.totalFiles}`);
89
+ console.log.step('๐Ÿค–', 'AI is generating configuration...');
90
+ const generator = new config_generator_1.ConfigGenerator({ apiKey });
91
+ const config = await generator.generate(analysis);
92
+ console.log.success('Configuration generated');
93
+ console.log.step('๐Ÿ’พ', 'Writing configuration file...');
94
+ const configPath = await (0, config_writer_1.writeConfig)(options.projectRoot, config, {
95
+ format: options.format,
96
+ });
97
+ console.log.success(`Configuration saved to ${configPath}`);
98
+ console.log.success('');
99
+ console.log.step('โœ…', `codingbuddy.config.${options.format} created!`);
100
+ console.log.info('');
101
+ console.log.info('Please review the generated configuration.');
102
+ return {
103
+ success: true,
104
+ configPath,
105
+ };
106
+ }
18
107
  async function runInit(options) {
19
108
  const console = (0, console_1.createConsoleUtils)();
20
109
  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
110
  const existingConfig = await (0, config_writer_1.findExistingConfig)(options.projectRoot);
31
111
  if (existingConfig && !options.force) {
32
112
  console.log.error(`Configuration file already exists: ${existingConfig}`);
@@ -39,34 +119,10 @@ async function runInit(options) {
39
119
  if (existingConfig && options.force) {
40
120
  console.log.warn(`Overwriting existing config: ${existingConfig}`);
41
121
  }
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(', ')}`);
122
+ if (options.useAi) {
123
+ return await runAiInit(options, console);
51
124
  }
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
- };
125
+ return await runTemplateInit(options, console);
70
126
  }
71
127
  catch (error) {
72
128
  const message = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ConfigTemplate } from '../template.types';
2
+ export declare const defaultTemplate: ConfigTemplate;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultTemplate = void 0;
4
+ exports.defaultTemplate = {
5
+ metadata: {
6
+ id: 'default',
7
+ name: 'Default',
8
+ description: 'Generic project template',
9
+ matchPatterns: [],
10
+ },
11
+ config: {
12
+ language: 'ko',
13
+ techStack: {},
14
+ architecture: {},
15
+ conventions: {
16
+ naming: {
17
+ files: 'kebab-case',
18
+ functions: 'camelCase',
19
+ },
20
+ },
21
+ testStrategy: {
22
+ approach: 'tdd',
23
+ coverage: 90,
24
+ mockingStrategy: 'minimal',
25
+ },
26
+ },
27
+ comments: {
28
+ header: `// ============================================================
29
+ // CodingBuddy Configuration
30
+ // Project Configuration File
31
+ //
32
+ // This file is used by AI coding assistants to understand project context.
33
+ // Modify the values to match your project.
34
+ // ============================================================`,
35
+ language: `// ๐ŸŒ Language Setting
36
+ // Specify the language for AI responses. ('ko', 'en', 'ja', etc.)`,
37
+ projectInfo: `// ๐Ÿ“ฆ Project Information
38
+ // projectName: Project name
39
+ // description: Project description`,
40
+ techStack: `// ๐Ÿ› ๏ธ Tech Stack
41
+ // Define the technologies used in your project.
42
+ //
43
+ // techStack: {
44
+ // languages: ['TypeScript', 'Python'],
45
+ // frontend: ['React', 'Next.js'],
46
+ // backend: ['NestJS', 'FastAPI'],
47
+ // database: ['PostgreSQL', 'Redis'],
48
+ // infrastructure: ['Docker', 'AWS'],
49
+ // tools: ['GitHub Actions', 'Sentry'],
50
+ // }`,
51
+ architecture: `// ๐Ÿ—๏ธ Architecture
52
+ // Define your project structure and patterns.
53
+ //
54
+ // architecture: {
55
+ // pattern: 'feature-based', // 'layered', 'clean', 'modular'
56
+ // componentStyle: 'grouped', // 'flat', 'feature-based'
57
+ // structure: ['src', 'lib', 'tests'],
58
+ // }`,
59
+ conventions: `// ๐Ÿ“ Coding Conventions
60
+ // Define naming rules and code style.`,
61
+ testStrategy: `// ๐Ÿงช Test Strategy
62
+ // approach: 'tdd' (test first) | 'test-after' (implement then test) | 'mixed'
63
+ // coverage: Target test coverage (%)
64
+ // mockingStrategy: 'minimal' | 'no-mocks' | 'extensive'`,
65
+ footer: `// ============================================================
66
+ // ๐Ÿ’ก TIP: Sync with MCP
67
+ //
68
+ // codingbuddy MCP analyzes your project and suggests config updates.
69
+ // When your project changes, use 'suggest_config_updates' tool to check.
70
+ //
71
+ // ๐Ÿ“š Docs: https://github.com/JeremyDev87/codingbuddy
72
+ // ============================================================`,
73
+ },
74
+ };
75
+ //# sourceMappingURL=default.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/default.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,eAAe,GAAmB;IAC7C,QAAQ,EAAE;QACR,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,0BAA0B;QACvC,aAAa,EAAE,EAAE;KAClB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE;qEACuD;QACjE,WAAW,EAAE;;sCAEqB;QAClC,SAAS,EAAE;;;;;;;;;;OAUR;QACH,YAAY,EAAE;;;;;;;OAOX;QACH,WAAW,EAAE;yCACwB;QACrC,YAAY,EAAE;;;2DAGyC;QACvD,MAAM,EAAE;;;;;;;kEAOsD;KAC/D;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ConfigTemplate } from '../template.types';
2
+ export declare const expressTemplate: ConfigTemplate;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.expressTemplate = void 0;
4
+ exports.expressTemplate = {
5
+ metadata: {
6
+ id: 'express',
7
+ name: 'Express',
8
+ description: 'Express.js backend API server',
9
+ matchPatterns: ['express', 'fastify', 'koa'],
10
+ },
11
+ config: {
12
+ language: 'ko',
13
+ techStack: {
14
+ languages: ['TypeScript'],
15
+ backend: ['Express'],
16
+ },
17
+ architecture: {
18
+ pattern: 'layered',
19
+ structure: ['routes', 'controllers', 'services', 'models'],
20
+ },
21
+ conventions: {
22
+ naming: {
23
+ files: 'kebab-case',
24
+ functions: 'camelCase',
25
+ },
26
+ },
27
+ testStrategy: {
28
+ approach: 'tdd',
29
+ coverage: 90,
30
+ mockingStrategy: 'minimal',
31
+ },
32
+ },
33
+ comments: {
34
+ header: `// ============================================================
35
+ // CodingBuddy Configuration
36
+ // Express Project Configuration File
37
+ //
38
+ // This file is used by AI coding assistants to understand project context.
39
+ // Modify the values to match your project.
40
+ // ============================================================`,
41
+ language: `// ๐ŸŒ Language Setting`,
42
+ projectInfo: `// ๐Ÿ“ฆ Project Information`,
43
+ techStack: `// ๐Ÿ› ๏ธ Tech Stack
44
+ // Add middleware and databases.
45
+ // Example: backend: ['Express', 'Passport'], database: ['MongoDB']`,
46
+ architecture: `// ๐Ÿ—๏ธ Architecture
47
+ // Express recommends routes โ†’ controllers โ†’ services โ†’ models pattern.`,
48
+ conventions: `// ๐Ÿ“ Coding Conventions`,
49
+ testStrategy: `// ๐Ÿงช Test Strategy
50
+ // Recommended to use supertest for API testing.`,
51
+ footer: `// ============================================================
52
+ // ๐Ÿ’ก TIP: Sync with MCP
53
+ //
54
+ // codingbuddy MCP analyzes your project and suggests config updates.
55
+ // ============================================================`,
56
+ },
57
+ };
58
+ //# sourceMappingURL=express.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"express.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/express.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,eAAe,GAAmB;IAC7C,QAAQ,EAAE;QACR,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+BAA+B;QAC5C,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;KAC7C;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,YAAY,CAAC;YACzB,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC;SAC3D;QACD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE,wBAAwB;QAClC,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE;;sEAEuD;QAClE,YAAY,EAAE;0EACwD;QACtE,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE;mDACiC;QAC/C,MAAM,EAAE;;;;kEAIsD;KAC/D;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ConfigTemplate } from '../template.types';
2
+ import { nextjsTemplate } from './nextjs.template';
3
+ import { reactTemplate } from './react.template';
4
+ import { nestjsTemplate } from './nestjs.template';
5
+ import { expressTemplate } from './express.template';
6
+ import { nodeTemplate } from './node.template';
7
+ import { defaultTemplate } from './default.template';
8
+ export declare const TEMPLATES: ConfigTemplate[];
9
+ export { nextjsTemplate, reactTemplate, nestjsTemplate, expressTemplate, nodeTemplate, defaultTemplate, };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultTemplate = exports.nodeTemplate = exports.expressTemplate = exports.nestjsTemplate = exports.reactTemplate = exports.nextjsTemplate = exports.TEMPLATES = void 0;
4
+ const nextjs_template_1 = require("./nextjs.template");
5
+ Object.defineProperty(exports, "nextjsTemplate", { enumerable: true, get: function () { return nextjs_template_1.nextjsTemplate; } });
6
+ const react_template_1 = require("./react.template");
7
+ Object.defineProperty(exports, "reactTemplate", { enumerable: true, get: function () { return react_template_1.reactTemplate; } });
8
+ const nestjs_template_1 = require("./nestjs.template");
9
+ Object.defineProperty(exports, "nestjsTemplate", { enumerable: true, get: function () { return nestjs_template_1.nestjsTemplate; } });
10
+ const express_template_1 = require("./express.template");
11
+ Object.defineProperty(exports, "expressTemplate", { enumerable: true, get: function () { return express_template_1.expressTemplate; } });
12
+ const node_template_1 = require("./node.template");
13
+ Object.defineProperty(exports, "nodeTemplate", { enumerable: true, get: function () { return node_template_1.nodeTemplate; } });
14
+ const default_template_1 = require("./default.template");
15
+ Object.defineProperty(exports, "defaultTemplate", { enumerable: true, get: function () { return default_template_1.defaultTemplate; } });
16
+ exports.TEMPLATES = [
17
+ nextjs_template_1.nextjsTemplate,
18
+ react_template_1.reactTemplate,
19
+ nestjs_template_1.nestjsTemplate,
20
+ express_template_1.expressTemplate,
21
+ node_template_1.nodeTemplate,
22
+ default_template_1.defaultTemplate,
23
+ ];
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/index.ts"],"names":[],"mappings":";;;AAOA,uDAAmD;AAqBjD,+FArBO,gCAAc,OAqBP;AApBhB,qDAAiD;AAqB/C,8FArBO,8BAAa,OAqBP;AApBf,uDAAmD;AAqBjD,+FArBO,gCAAc,OAqBP;AApBhB,yDAAqD;AAqBnD,gGArBO,kCAAe,OAqBP;AApBjB,mDAA+C;AAqB7C,6FArBO,4BAAY,OAqBP;AApBd,yDAAqD;AAqBnD,gGArBO,kCAAe,OAqBP;AAhBJ,QAAA,SAAS,GAAqB;IACzC,gCAAc;IACd,8BAAa;IACb,gCAAc;IACd,kCAAe;IACf,4BAAY;IACZ,kCAAe;CAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ConfigTemplate } from '../template.types';
2
+ export declare const nestjsTemplate: ConfigTemplate;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nestjsTemplate = void 0;
4
+ exports.nestjsTemplate = {
5
+ metadata: {
6
+ id: 'nestjs',
7
+ name: 'NestJS',
8
+ description: 'NestJS backend framework with dependency injection',
9
+ matchPatterns: ['@nestjs/core', 'nestjs'],
10
+ },
11
+ config: {
12
+ language: 'ko',
13
+ techStack: {
14
+ languages: ['TypeScript'],
15
+ backend: ['NestJS'],
16
+ },
17
+ architecture: {
18
+ pattern: 'layered',
19
+ structure: ['modules', 'controllers', 'services', 'repositories'],
20
+ },
21
+ conventions: {
22
+ naming: {
23
+ files: 'kebab-case',
24
+ components: 'PascalCase',
25
+ functions: 'camelCase',
26
+ },
27
+ },
28
+ testStrategy: {
29
+ approach: 'tdd',
30
+ coverage: 90,
31
+ mockingStrategy: 'minimal',
32
+ },
33
+ },
34
+ comments: {
35
+ header: `// ============================================================
36
+ // CodingBuddy Configuration
37
+ // NestJS Project Configuration File
38
+ //
39
+ // This file is used by AI coding assistants to understand project context.
40
+ // Modify the values to match your project.
41
+ // ============================================================`,
42
+ language: `// ๐ŸŒ Language Setting`,
43
+ projectInfo: `// ๐Ÿ“ฆ Project Information`,
44
+ techStack: `// ๐Ÿ› ๏ธ Tech Stack
45
+ // Add NestJS modules and databases.
46
+ // Example: backend: ['NestJS', 'TypeORM'], database: ['PostgreSQL']`,
47
+ architecture: `// ๐Ÿ—๏ธ Architecture
48
+ // NestJS uses module-based layered architecture.
49
+ // structure: Project layer structure`,
50
+ conventions: `// ๐Ÿ“ Coding Conventions
51
+ // Follows NestJS official style guide.`,
52
+ testStrategy: `// ๐Ÿงช Test Strategy
53
+ // Uses NestJS @nestjs/testing module.
54
+ // e2e tests are located in the test/ directory.`,
55
+ footer: `// ============================================================
56
+ // ๐Ÿ’ก TIP: Sync with MCP
57
+ //
58
+ // codingbuddy MCP analyzes your project and suggests config updates.
59
+ // ============================================================`,
60
+ },
61
+ };
62
+ //# sourceMappingURL=nestjs.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestjs.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/nestjs.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,cAAc,GAAmB;IAC5C,QAAQ,EAAE;QACR,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oDAAoD;QACjE,aAAa,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;KAC1C;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,YAAY,CAAC;YACzB,OAAO,EAAE,CAAC,QAAQ,CAAC;SACpB;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,CAAC;SAClE;QACD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,YAAY;gBACxB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE,wBAAwB;QAClC,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE;;uEAEwD;QACnE,YAAY,EAAE;;wCAEsB;QACpC,WAAW,EAAE;0CACyB;QACtC,YAAY,EAAE;;mDAEiC;QAC/C,MAAM,EAAE;;;;kEAIsD;KAC/D;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ConfigTemplate } from '../template.types';
2
+ export declare const nextjsTemplate: ConfigTemplate;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nextjsTemplate = void 0;
4
+ exports.nextjsTemplate = {
5
+ metadata: {
6
+ id: 'nextjs',
7
+ name: 'Next.js',
8
+ description: 'Next.js fullstack React framework with App Router',
9
+ matchPatterns: ['next', 'nextjs'],
10
+ },
11
+ config: {
12
+ language: 'ko',
13
+ techStack: {
14
+ languages: ['TypeScript'],
15
+ frontend: ['React', 'Next.js'],
16
+ },
17
+ architecture: {
18
+ pattern: 'feature-based',
19
+ componentStyle: 'grouped',
20
+ },
21
+ conventions: {
22
+ naming: {
23
+ files: 'kebab-case',
24
+ components: 'PascalCase',
25
+ functions: 'camelCase',
26
+ },
27
+ },
28
+ testStrategy: {
29
+ approach: 'tdd',
30
+ coverage: 90,
31
+ mockingStrategy: 'minimal',
32
+ },
33
+ },
34
+ comments: {
35
+ header: `// ============================================================
36
+ // CodingBuddy Configuration
37
+ // Next.js Project Configuration File
38
+ //
39
+ // This file is used by AI coding assistants to understand project context.
40
+ // Modify the values to match your project.
41
+ // ============================================================`,
42
+ language: `// ๐ŸŒ Language Setting
43
+ // Specify the language for AI responses. ('ko', 'en', 'ja', etc.)`,
44
+ projectInfo: `// ๐Ÿ“ฆ Project Information
45
+ // projectName and description are auto-detected. Modify if needed.`,
46
+ techStack: `// ๐Ÿ› ๏ธ Tech Stack
47
+ // Auto-detected values. Add additional technologies to the arrays.
48
+ // Example: backend: ['Prisma', 'tRPC'], database: ['PostgreSQL']`,
49
+ architecture: `// ๐Ÿ—๏ธ Architecture
50
+ // pattern: 'feature-based' | 'layered' | 'clean' | 'modular'
51
+ // componentStyle: 'flat' | 'grouped' | 'feature-based'`,
52
+ conventions: `// ๐Ÿ“ Coding Conventions
53
+ // Define naming rules for your project.`,
54
+ testStrategy: `// ๐Ÿงช Test Strategy
55
+ // approach: 'tdd' (test first) | 'test-after' | 'mixed'
56
+ // coverage: Target test coverage (%)
57
+ // mockingStrategy: 'minimal' | 'no-mocks' | 'extensive'`,
58
+ footer: `// ============================================================
59
+ // ๐Ÿ’ก TIP: Sync with MCP
60
+ //
61
+ // codingbuddy MCP analyzes your project and suggests config updates.
62
+ // When adding new dependencies, use 'suggest_config_updates' tool to check.
63
+ //
64
+ // ๐Ÿ“š Docs: https://github.com/JeremyDev87/codingbuddy
65
+ // ============================================================`,
66
+ },
67
+ };
68
+ //# sourceMappingURL=nextjs.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/nextjs.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,cAAc,GAAmB;IAC5C,QAAQ,EAAE;QACR,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mDAAmD;QAChE,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KAClC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,YAAY,CAAC;YACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;SAC/B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,eAAe;YACxB,cAAc,EAAE,SAAS;SAC1B;QACD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,YAAY;gBACxB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE;qEACuD;QACjE,WAAW,EAAE;sEACqD;QAClE,SAAS,EAAE;;oEAEqD;QAChE,YAAY,EAAE;;0DAEwC;QACtD,WAAW,EAAE;2CAC0B;QACvC,YAAY,EAAE;;;2DAGyC;QACvD,MAAM,EAAE;;;;;;;kEAOsD;KAC/D;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ConfigTemplate } from '../template.types';
2
+ export declare const nodeTemplate: ConfigTemplate;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nodeTemplate = void 0;
4
+ exports.nodeTemplate = {
5
+ metadata: {
6
+ id: 'node',
7
+ name: 'Node.js',
8
+ description: 'Generic Node.js project (CLI tools, libraries, etc.)',
9
+ matchPatterns: ['node', 'nodejs'],
10
+ },
11
+ config: {
12
+ language: 'ko',
13
+ techStack: {
14
+ languages: ['TypeScript'],
15
+ },
16
+ architecture: {
17
+ pattern: 'modular',
18
+ },
19
+ conventions: {
20
+ naming: {
21
+ files: 'kebab-case',
22
+ functions: 'camelCase',
23
+ },
24
+ },
25
+ testStrategy: {
26
+ approach: 'tdd',
27
+ coverage: 90,
28
+ mockingStrategy: 'minimal',
29
+ },
30
+ },
31
+ comments: {
32
+ header: `// ============================================================
33
+ // CodingBuddy Configuration
34
+ // Node.js Project Configuration File
35
+ //
36
+ // This file is used by AI coding assistants to understand project context.
37
+ // Modify the values to match your project.
38
+ // ============================================================`,
39
+ language: `// ๐ŸŒ Language Setting`,
40
+ projectInfo: `// ๐Ÿ“ฆ Project Information`,
41
+ techStack: `// ๐Ÿ› ๏ธ Tech Stack
42
+ // Add libraries you use.
43
+ // Example: tools: ['Commander', 'Chalk']`,
44
+ architecture: `// ๐Ÿ—๏ธ Architecture
45
+ // pattern: 'modular' | 'layered' | 'plugin-based'`,
46
+ conventions: `// ๐Ÿ“ Coding Conventions`,
47
+ testStrategy: `// ๐Ÿงช Test Strategy`,
48
+ footer: `// ============================================================
49
+ // ๐Ÿ’ก TIP: Sync with MCP
50
+ //
51
+ // codingbuddy MCP analyzes your project and suggests config updates.
52
+ // ============================================================`,
53
+ },
54
+ };
55
+ //# sourceMappingURL=node.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/node.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,YAAY,GAAmB;IAC1C,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,sDAAsD;QACnE,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KAClC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,SAAS;SACnB;QACD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE,wBAAwB;QAClC,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE;;4CAE6B;QACxC,YAAY,EAAE;qDACmC;QACjD,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE,qBAAqB;QACnC,MAAM,EAAE;;;;kEAIsD;KAC/D;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ConfigTemplate } from '../template.types';
2
+ export declare const reactTemplate: ConfigTemplate;