codingbuddy 0.0.0-canary.20251219012535.c6f28a6 → 0.0.0-canary.20251219030126.ebde4da

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 (61) hide show
  1. package/README.md +132 -8
  2. package/dist/src/cli/cli.d.ts +10 -0
  3. package/dist/src/cli/cli.js +98 -0
  4. package/dist/src/cli/cli.js.map +1 -0
  5. package/dist/src/cli/cli.spec.d.ts +1 -0
  6. package/dist/src/cli/cli.spec.js +84 -0
  7. package/dist/src/cli/cli.spec.js.map +1 -0
  8. package/dist/src/cli/cli.types.d.ts +18 -0
  9. package/dist/src/cli/cli.types.js +3 -0
  10. package/dist/src/cli/cli.types.js.map +1 -0
  11. package/dist/src/cli/index.d.ts +6 -0
  12. package/dist/src/cli/index.js +15 -0
  13. package/dist/src/cli/index.js.map +1 -0
  14. package/dist/src/cli/init/config.generator.d.ts +16 -0
  15. package/dist/src/cli/init/config.generator.js +70 -0
  16. package/dist/src/cli/init/config.generator.js.map +1 -0
  17. package/dist/src/cli/init/config.generator.spec.d.ts +1 -0
  18. package/dist/src/cli/init/config.generator.spec.js +182 -0
  19. package/dist/src/cli/init/config.generator.spec.js.map +1 -0
  20. package/dist/src/cli/init/config.writer.d.ts +10 -0
  21. package/dist/src/cli/init/config.writer.js +40 -0
  22. package/dist/src/cli/init/config.writer.js.map +1 -0
  23. package/dist/src/cli/init/config.writer.spec.d.ts +1 -0
  24. package/dist/src/cli/init/config.writer.spec.js +112 -0
  25. package/dist/src/cli/init/config.writer.spec.js.map +1 -0
  26. package/dist/src/cli/init/index.d.ts +5 -0
  27. package/dist/src/cli/init/index.js +16 -0
  28. package/dist/src/cli/init/index.js.map +1 -0
  29. package/dist/src/cli/init/init.command.d.ts +3 -0
  30. package/dist/src/cli/init/init.command.js +80 -0
  31. package/dist/src/cli/init/init.command.js.map +1 -0
  32. package/dist/src/cli/init/init.command.spec.d.ts +1 -0
  33. package/dist/src/cli/init/init.command.spec.js +227 -0
  34. package/dist/src/cli/init/init.command.spec.js.map +1 -0
  35. package/dist/src/cli/init/prompt.builder.d.ts +7 -0
  36. package/dist/src/cli/init/prompt.builder.js +222 -0
  37. package/dist/src/cli/init/prompt.builder.js.map +1 -0
  38. package/dist/src/cli/init/prompt.builder.spec.d.ts +1 -0
  39. package/dist/src/cli/init/prompt.builder.spec.js +199 -0
  40. package/dist/src/cli/init/prompt.builder.spec.js.map +1 -0
  41. package/dist/src/cli/utils/console.d.ts +18 -0
  42. package/dist/src/cli/utils/console.js +83 -0
  43. package/dist/src/cli/utils/console.js.map +1 -0
  44. package/dist/src/cli/utils/console.spec.d.ts +1 -0
  45. package/dist/src/cli/utils/console.spec.js +100 -0
  46. package/dist/src/cli/utils/console.spec.js.map +1 -0
  47. package/dist/src/cli/utils/index.d.ts +2 -0
  48. package/dist/src/cli/utils/index.js +7 -0
  49. package/dist/src/cli/utils/index.js.map +1 -0
  50. package/dist/src/config/config.schema.d.ts +30 -30
  51. package/dist/src/main.js +0 -0
  52. package/dist/src/mcp/mcp.module.js +2 -1
  53. package/dist/src/mcp/mcp.module.js.map +1 -1
  54. package/dist/src/mcp/mcp.service.d.ts +10 -1
  55. package/dist/src/mcp/mcp.service.js +139 -64
  56. package/dist/src/mcp/mcp.service.js.map +1 -1
  57. package/dist/src/mcp/mcp.service.spec.d.ts +1 -0
  58. package/dist/src/mcp/mcp.service.spec.js +262 -0
  59. package/dist/src/mcp/mcp.service.spec.js.map +1 -0
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +7 -5
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const { mockAnalyzeProject, mockGenerate, mockFindExistingConfig, mockWriteConfig } = vitest_1.vi.hoisted(() => ({
5
+ mockAnalyzeProject: vitest_1.vi.fn(),
6
+ mockGenerate: vitest_1.vi.fn(),
7
+ mockFindExistingConfig: vitest_1.vi.fn(),
8
+ mockWriteConfig: vitest_1.vi.fn(),
9
+ }));
10
+ vitest_1.vi.mock('../../analyzer', () => ({
11
+ AnalyzerService: class MockAnalyzerService {
12
+ constructor() {
13
+ this.analyzeProject = mockAnalyzeProject;
14
+ }
15
+ },
16
+ }));
17
+ vitest_1.vi.mock('./config.generator', () => ({
18
+ ConfigGenerator: class MockConfigGenerator {
19
+ constructor() {
20
+ this.generate = mockGenerate;
21
+ }
22
+ },
23
+ }));
24
+ vitest_1.vi.mock('./config.writer', () => ({
25
+ findExistingConfig: mockFindExistingConfig,
26
+ writeConfig: mockWriteConfig,
27
+ }));
28
+ vitest_1.vi.mock('../utils/console', () => ({
29
+ createConsoleUtils: () => ({
30
+ log: {
31
+ info: vitest_1.vi.fn(),
32
+ success: vitest_1.vi.fn(),
33
+ warn: vitest_1.vi.fn(),
34
+ error: vitest_1.vi.fn(),
35
+ step: vitest_1.vi.fn(),
36
+ },
37
+ spinner: {
38
+ start: vitest_1.vi.fn(),
39
+ succeed: vitest_1.vi.fn(),
40
+ fail: vitest_1.vi.fn(),
41
+ stop: vitest_1.vi.fn(),
42
+ },
43
+ formatConfig: () => '{}',
44
+ }),
45
+ }));
46
+ const init_command_1 = require("./init.command");
47
+ (0, vitest_1.describe)('init.command', () => {
48
+ const mockAnalysis = {
49
+ packageInfo: {
50
+ name: 'test-app',
51
+ version: '1.0.0',
52
+ dependencies: {},
53
+ devDependencies: {},
54
+ scripts: {},
55
+ detectedFrameworks: [],
56
+ },
57
+ directoryStructure: {
58
+ rootDirs: ['src'],
59
+ rootFiles: ['package.json'],
60
+ allFiles: [],
61
+ patterns: [],
62
+ totalFiles: 5,
63
+ totalDirs: 2,
64
+ },
65
+ configFiles: { detected: [] },
66
+ codeSamples: [],
67
+ detectedPatterns: [],
68
+ };
69
+ const mockConfig = {
70
+ projectName: 'test-app',
71
+ language: 'en',
72
+ };
73
+ (0, vitest_1.beforeEach)(() => {
74
+ vitest_1.vi.clearAllMocks();
75
+ mockAnalyzeProject.mockResolvedValue(mockAnalysis);
76
+ mockGenerate.mockResolvedValue(mockConfig);
77
+ mockFindExistingConfig.mockResolvedValue(null);
78
+ mockWriteConfig.mockResolvedValue('/project/codingbuddy.config.js');
79
+ });
80
+ (0, vitest_1.describe)('getApiKey', () => {
81
+ const originalEnv = process.env;
82
+ (0, vitest_1.beforeEach)(() => {
83
+ process.env = { ...originalEnv };
84
+ });
85
+ (0, vitest_1.afterEach)(() => {
86
+ process.env = originalEnv;
87
+ });
88
+ (0, vitest_1.it)('should return API key from options if provided', () => {
89
+ const result = (0, init_command_1.getApiKey)({ apiKey: 'test-key' });
90
+ (0, vitest_1.expect)(result).toBe('test-key');
91
+ });
92
+ (0, vitest_1.it)('should return API key from ANTHROPIC_API_KEY env var', () => {
93
+ process.env.ANTHROPIC_API_KEY = 'env-key';
94
+ const result = (0, init_command_1.getApiKey)({});
95
+ (0, vitest_1.expect)(result).toBe('env-key');
96
+ });
97
+ (0, vitest_1.it)('should return null if no API key available', () => {
98
+ delete process.env.ANTHROPIC_API_KEY;
99
+ const result = (0, init_command_1.getApiKey)({});
100
+ (0, vitest_1.expect)(result).toBeNull();
101
+ });
102
+ });
103
+ (0, vitest_1.describe)('runInit', () => {
104
+ (0, vitest_1.it)('should complete successfully with valid options', async () => {
105
+ const options = {
106
+ projectRoot: '/project',
107
+ format: 'js',
108
+ force: false,
109
+ apiKey: 'test-key',
110
+ };
111
+ const result = await (0, init_command_1.runInit)(options);
112
+ (0, vitest_1.expect)(result.success).toBe(true);
113
+ (0, vitest_1.expect)(result.configPath).toBe('/project/codingbuddy.config.js');
114
+ });
115
+ (0, vitest_1.it)('should fail without API key', async () => {
116
+ const options = {
117
+ projectRoot: '/project',
118
+ format: 'js',
119
+ force: false,
120
+ };
121
+ const result = await (0, init_command_1.runInit)(options);
122
+ (0, vitest_1.expect)(result.success).toBe(false);
123
+ (0, vitest_1.expect)(result.error).toContain('API key');
124
+ });
125
+ (0, vitest_1.it)('should check for existing config', async () => {
126
+ const options = {
127
+ projectRoot: '/project',
128
+ format: 'js',
129
+ force: false,
130
+ apiKey: 'test-key',
131
+ };
132
+ await (0, init_command_1.runInit)(options);
133
+ (0, vitest_1.expect)(mockFindExistingConfig).toHaveBeenCalledWith('/project');
134
+ });
135
+ (0, vitest_1.it)('should fail if config exists and force is false', async () => {
136
+ mockFindExistingConfig.mockResolvedValue('/project/codingbuddy.config.js');
137
+ const options = {
138
+ projectRoot: '/project',
139
+ format: 'js',
140
+ force: false,
141
+ apiKey: 'test-key',
142
+ };
143
+ const result = await (0, init_command_1.runInit)(options);
144
+ (0, vitest_1.expect)(result.success).toBe(false);
145
+ (0, vitest_1.expect)(result.error).toContain('already exists');
146
+ });
147
+ (0, vitest_1.it)('should overwrite if config exists and force is true', async () => {
148
+ mockFindExistingConfig.mockResolvedValue('/project/codingbuddy.config.js');
149
+ const options = {
150
+ projectRoot: '/project',
151
+ format: 'js',
152
+ force: true,
153
+ apiKey: 'test-key',
154
+ };
155
+ const result = await (0, init_command_1.runInit)(options);
156
+ (0, vitest_1.expect)(result.success).toBe(true);
157
+ (0, vitest_1.expect)(mockWriteConfig).toHaveBeenCalled();
158
+ });
159
+ (0, vitest_1.it)('should call analyzer service', async () => {
160
+ const options = {
161
+ projectRoot: '/project',
162
+ format: 'js',
163
+ force: false,
164
+ apiKey: 'test-key',
165
+ };
166
+ await (0, init_command_1.runInit)(options);
167
+ (0, vitest_1.expect)(mockAnalyzeProject).toHaveBeenCalledWith('/project');
168
+ });
169
+ (0, vitest_1.it)('should call config generator', async () => {
170
+ const options = {
171
+ projectRoot: '/project',
172
+ format: 'js',
173
+ force: false,
174
+ apiKey: 'test-key',
175
+ };
176
+ await (0, init_command_1.runInit)(options);
177
+ (0, vitest_1.expect)(mockGenerate).toHaveBeenCalledWith(mockAnalysis);
178
+ });
179
+ (0, vitest_1.it)('should write config file', async () => {
180
+ const options = {
181
+ projectRoot: '/project',
182
+ format: 'js',
183
+ force: false,
184
+ apiKey: 'test-key',
185
+ };
186
+ await (0, init_command_1.runInit)(options);
187
+ (0, vitest_1.expect)(mockWriteConfig).toHaveBeenCalledWith('/project', mockConfig, { format: 'js' });
188
+ });
189
+ (0, vitest_1.it)('should handle analyzer error', async () => {
190
+ mockAnalyzeProject.mockRejectedValue(new Error('Analysis failed'));
191
+ const options = {
192
+ projectRoot: '/project',
193
+ format: 'js',
194
+ force: false,
195
+ apiKey: 'test-key',
196
+ };
197
+ const result = await (0, init_command_1.runInit)(options);
198
+ (0, vitest_1.expect)(result.success).toBe(false);
199
+ (0, vitest_1.expect)(result.error).toContain('Analysis failed');
200
+ });
201
+ (0, vitest_1.it)('should handle generator error', async () => {
202
+ mockGenerate.mockRejectedValue(new Error('Generation failed'));
203
+ const options = {
204
+ projectRoot: '/project',
205
+ format: 'js',
206
+ force: false,
207
+ apiKey: 'test-key',
208
+ };
209
+ const result = await (0, init_command_1.runInit)(options);
210
+ (0, vitest_1.expect)(result.success).toBe(false);
211
+ (0, vitest_1.expect)(result.error).toContain('Generation failed');
212
+ });
213
+ (0, vitest_1.it)('should handle write error', async () => {
214
+ mockWriteConfig.mockRejectedValue(new Error('Write failed'));
215
+ const options = {
216
+ projectRoot: '/project',
217
+ format: 'js',
218
+ force: false,
219
+ apiKey: 'test-key',
220
+ };
221
+ const result = await (0, init_command_1.runInit)(options);
222
+ (0, vitest_1.expect)(result.success).toBe(false);
223
+ (0, vitest_1.expect)(result.error).toContain('Write failed');
224
+ });
225
+ });
226
+ });
227
+ //# sourceMappingURL=init.command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.command.spec.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSystemPrompt = buildSystemPrompt;
4
+ exports.buildAnalysisPrompt = buildAnalysisPrompt;
5
+ exports.formatPackageInfo = formatPackageInfo;
6
+ exports.formatDirectoryStructure = formatDirectoryStructure;
7
+ exports.formatConfigFiles = formatConfigFiles;
8
+ exports.formatCodeSamples = formatCodeSamples;
9
+ function buildSystemPrompt() {
10
+ return `You are CodingBuddy, an AI assistant that generates project configuration files.
11
+
12
+ Your task is to analyze the provided project information and generate an optimal CodingBuddyConfig configuration.
13
+
14
+ ## Output Requirements
15
+
16
+ 1. Output ONLY valid JSON that conforms to the CodingBuddyConfig schema
17
+ 2. Do not include any explanation or markdown - just the raw JSON object
18
+ 3. All fields are optional - only include what's relevant to the project
19
+
20
+ ## CodingBuddyConfig Schema
21
+
22
+ \`\`\`typescript
23
+ interface CodingBuddyConfig {
24
+ // Basic Settings
25
+ language?: string; // Response language (e.g., 'ko', 'en')
26
+ projectName?: string; // Project name
27
+ description?: string; // Project description
28
+ repository?: string; // Repository URL
29
+
30
+ // Technical Configuration
31
+ techStack?: {
32
+ languages?: string[];
33
+ frontend?: string[];
34
+ backend?: string[];
35
+ database?: string[];
36
+ infrastructure?: string[];
37
+ tools?: string[];
38
+ };
39
+
40
+ architecture?: {
41
+ pattern?: string; // e.g., 'Next.js App Router', 'NestJS Modular'
42
+ structure?: string[]; // Directory structure
43
+ componentStyle?: 'flat' | 'grouped' | 'feature-based';
44
+ };
45
+
46
+ conventions?: {
47
+ style?: string;
48
+ naming?: {
49
+ files?: 'kebab-case' | 'camelCase' | 'PascalCase' | 'snake_case';
50
+ components?: 'PascalCase' | 'kebab-case';
51
+ functions?: 'camelCase' | 'snake_case';
52
+ variables?: 'camelCase' | 'snake_case';
53
+ constants?: 'UPPER_SNAKE_CASE' | 'camelCase';
54
+ };
55
+ importOrder?: string[];
56
+ maxLineLength?: number;
57
+ semicolons?: boolean;
58
+ quotes?: 'single' | 'double';
59
+ };
60
+
61
+ testStrategy?: {
62
+ approach?: 'tdd' | 'bdd' | 'test-after' | 'mixed';
63
+ frameworks?: string[];
64
+ coverage?: number;
65
+ unitTestPattern?: 'colocated' | 'separate';
66
+ mockingStrategy?: 'minimal' | 'extensive' | 'no-mocks';
67
+ };
68
+
69
+ // Additional Context
70
+ keyFiles?: string[]; // Important files to reference
71
+ avoid?: string[]; // Patterns/practices to avoid
72
+ }
73
+ \`\`\`
74
+
75
+ ## Guidelines
76
+
77
+ - Infer settings from the project analysis
78
+ - Use detected frameworks to determine tech stack
79
+ - Use config file analysis to determine conventions
80
+ - Use directory patterns to determine architecture
81
+ - Use test framework detection to suggest test strategy
82
+ - Keep the config concise - only include relevant sections`;
83
+ }
84
+ function buildAnalysisPrompt(analysis) {
85
+ const sections = [];
86
+ sections.push('# Project Analysis Results\n');
87
+ sections.push('## Package Information\n');
88
+ if (analysis.packageInfo) {
89
+ sections.push(formatPackageInfo(analysis.packageInfo));
90
+ }
91
+ else {
92
+ sections.push('No package.json found in the project.\n');
93
+ }
94
+ sections.push('\n## Directory Structure\n');
95
+ sections.push(formatDirectoryStructure(analysis.directoryStructure));
96
+ sections.push('\n## Configuration Files\n');
97
+ sections.push(formatConfigFiles(analysis.configFiles));
98
+ sections.push('\n## Code Samples\n');
99
+ if (analysis.codeSamples.length > 0) {
100
+ sections.push(formatCodeSamples(analysis.codeSamples));
101
+ }
102
+ else {
103
+ sections.push('No code samples available.\n');
104
+ }
105
+ sections.push('\n## Detected Patterns\n');
106
+ if (analysis.detectedPatterns.length > 0) {
107
+ sections.push(analysis.detectedPatterns.map((p) => `- ${p}`).join('\n'));
108
+ }
109
+ else {
110
+ sections.push('No specific patterns detected.');
111
+ }
112
+ sections.push('\n\n---\n');
113
+ sections.push('Based on this analysis, generate a CodingBuddyConfig JSON object.');
114
+ return sections.join('');
115
+ }
116
+ function formatPackageInfo(info) {
117
+ const lines = [];
118
+ lines.push(`- **Name**: ${info.name}`);
119
+ lines.push(`- **Version**: ${info.version}`);
120
+ if (info.description) {
121
+ lines.push(`- **Description**: ${info.description}`);
122
+ }
123
+ if (info.type) {
124
+ lines.push(`- **Module Type**: ${info.type}`);
125
+ }
126
+ if (info.detectedFrameworks.length > 0) {
127
+ lines.push('\n### Detected Frameworks');
128
+ for (const fw of info.detectedFrameworks) {
129
+ lines.push(`- ${fw.name} (${fw.category}): ${fw.version}`);
130
+ }
131
+ }
132
+ const scriptNames = Object.keys(info.scripts);
133
+ if (scriptNames.length > 0) {
134
+ lines.push('\n### Scripts');
135
+ for (const name of scriptNames) {
136
+ lines.push(`- \`${name}\`: ${info.scripts[name]}`);
137
+ }
138
+ }
139
+ const deps = Object.keys(info.dependencies);
140
+ if (deps.length > 0) {
141
+ lines.push('\n### Key Dependencies');
142
+ lines.push(deps.slice(0, 10).map((d) => `\`${d}\``).join(', '));
143
+ }
144
+ return lines.join('\n');
145
+ }
146
+ function formatDirectoryStructure(dir) {
147
+ const lines = [];
148
+ lines.push(`- **Total Files**: ${dir.totalFiles}`);
149
+ lines.push(`- **Total Directories**: ${dir.totalDirs}`);
150
+ lines.push('\n### Root Directories');
151
+ lines.push(dir.rootDirs.map((d) => `\`${d}\``).join(', '));
152
+ if (dir.patterns.length > 0) {
153
+ lines.push('\n### Architecture Patterns');
154
+ for (const pattern of dir.patterns) {
155
+ lines.push(`- **${pattern.name}** (confidence: ${pattern.confidence})`);
156
+ lines.push(` - Indicators: ${pattern.indicators.join(', ')}`);
157
+ }
158
+ }
159
+ return lines.join('\n');
160
+ }
161
+ function formatConfigFiles(config) {
162
+ const lines = [];
163
+ lines.push(`Detected config files: ${config.detected.join(', ')}\n`);
164
+ if (config.typescript) {
165
+ lines.push('### TypeScript Configuration');
166
+ lines.push(`- Path: \`${config.typescript.path}\``);
167
+ if (config.typescript.strict !== undefined) {
168
+ lines.push(`- Strict mode: ${config.typescript.strict ? 'enabled' : 'disabled'}`);
169
+ }
170
+ if (config.typescript.target) {
171
+ lines.push(`- Target: ${config.typescript.target}`);
172
+ }
173
+ if (config.typescript.module) {
174
+ lines.push(`- Module: ${config.typescript.module}`);
175
+ }
176
+ if (config.typescript.hasPathAliases) {
177
+ lines.push('- Has path aliases configured');
178
+ }
179
+ }
180
+ if (config.eslint) {
181
+ lines.push('\n### ESLint Configuration');
182
+ lines.push(`- Path: \`${config.eslint.path}\``);
183
+ lines.push(`- Format: ${config.eslint.format}`);
184
+ if (config.eslint.extends && config.eslint.extends.length > 0) {
185
+ lines.push(`- Extends: ${config.eslint.extends.join(', ')}`);
186
+ }
187
+ if (config.eslint.plugins && config.eslint.plugins.length > 0) {
188
+ lines.push(`- Plugins: ${config.eslint.plugins.join(', ')}`);
189
+ }
190
+ }
191
+ if (config.prettier) {
192
+ lines.push('\n### Prettier Configuration');
193
+ lines.push(`- Path: \`${config.prettier.path}\``);
194
+ if (config.prettier.tabWidth !== undefined) {
195
+ lines.push(`- Tab width: ${config.prettier.tabWidth}`);
196
+ }
197
+ if (config.prettier.semi !== undefined) {
198
+ lines.push(`- Semicolons: ${config.prettier.semi ? 'yes' : 'no'}`);
199
+ }
200
+ if (config.prettier.singleQuote !== undefined) {
201
+ lines.push(`- Quotes: ${config.prettier.singleQuote ? 'single' : 'double'}`);
202
+ }
203
+ if (config.prettier.trailingComma) {
204
+ lines.push(`- Trailing comma: ${config.prettier.trailingComma}`);
205
+ }
206
+ }
207
+ return lines.join('\n');
208
+ }
209
+ function formatCodeSamples(samples) {
210
+ const lines = [];
211
+ for (const sample of samples) {
212
+ lines.push(`### ${sample.path}`);
213
+ lines.push(`- Language: ${sample.language}`);
214
+ lines.push(`- Category: ${sample.category}`);
215
+ lines.push(`- Lines: ${sample.lineCount}`);
216
+ lines.push('\n```' + sample.language);
217
+ lines.push(sample.preview);
218
+ lines.push('```\n');
219
+ }
220
+ return lines.join('\n');
221
+ }
222
+ //# sourceMappingURL=prompt.builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.builder.js","sourceRoot":"","sources":["../../../../src/cli/init/prompt.builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};