ironbackend 1.0.0

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.
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ /**
3
+ * Export Command
4
+ * Export prompts to various formats
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.createExportCommand = createExportCommand;
44
+ const commander_1 = require("commander");
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ const chalk_1 = __importDefault(require("chalk"));
48
+ const ora_1 = __importDefault(require("ora"));
49
+ const core_1 = require("@ironbackend/core");
50
+ const prompts_1 = require("@ironbackend/prompts");
51
+ const IRONBACKEND_DIR = '.ironbackend';
52
+ const CONFIG_FILE = 'config.json';
53
+ /**
54
+ * Create the export command
55
+ */
56
+ function createExportCommand() {
57
+ const cmd = new commander_1.Command('export');
58
+ cmd.description('Export prompts and configurations');
59
+ // Export prompts
60
+ cmd
61
+ .command('prompts')
62
+ .description('Export AI prompt files')
63
+ .option('-o, --output <dir>', 'Output directory', '.ironbackend/prompts')
64
+ .option('-f, --format <format>', 'Output format (markdown, cursor, claude)', 'all')
65
+ .action(async (options) => {
66
+ await exportPrompts(options);
67
+ });
68
+ // Export config
69
+ cmd
70
+ .command('config')
71
+ .description('Export current configuration')
72
+ .option('-o, --output <file>', 'Output file', 'ironbackend.config.json')
73
+ .action(async (options) => {
74
+ await exportConfig(options);
75
+ });
76
+ return cmd;
77
+ }
78
+ async function exportPrompts(options) {
79
+ console.log(chalk_1.default.bold.blue('\nšŸ“¤ Exporting Prompts\n'));
80
+ const config = loadConfig();
81
+ if (!config.style || !config.stack) {
82
+ console.log(chalk_1.default.red('Style and stack must be selected before exporting.'));
83
+ console.log(chalk_1.default.yellow('Run: ironbackend select style <name>'));
84
+ console.log(chalk_1.default.yellow('Run: ironbackend select stack <name>'));
85
+ process.exit(1);
86
+ }
87
+ const spinner = (0, ora_1.default)('Generating prompts...').start();
88
+ try {
89
+ const prompts = (0, prompts_1.buildPromptSections)({
90
+ styleId: config.style,
91
+ stackId: config.stack,
92
+ ruleCategories: config.rules?.enabled || undefined
93
+ });
94
+ const cwd = process.cwd();
95
+ const outputPath = path.resolve(cwd, options.output);
96
+ fs.mkdirSync(outputPath, { recursive: true });
97
+ // Export based on format
98
+ if (options.format === 'all' || options.format === 'markdown') {
99
+ fs.writeFileSync(path.join(outputPath, 'system-prompt.md'), prompts.combined);
100
+ fs.writeFileSync(path.join(outputPath, 'style.md'), prompts.style);
101
+ fs.writeFileSync(path.join(outputPath, 'stack.md'), prompts.stack);
102
+ fs.writeFileSync(path.join(outputPath, 'rules.md'), prompts.rules);
103
+ }
104
+ if (options.format === 'all' || options.format === 'cursor') {
105
+ const cursorPath = path.join(cwd, '.cursor', 'rules');
106
+ fs.mkdirSync(cursorPath, { recursive: true });
107
+ const cursorPrompt = `---
108
+ description: IronBackend - Backend Architecture Intelligence
109
+ globs: ["**/*.ts", "**/*.js", "**/*.py", "**/*.java", "**/*.cs", "**/*.go"]
110
+ ---
111
+
112
+ ${prompts.combined}`;
113
+ fs.writeFileSync(path.join(cursorPath, 'ironbackend.mdc'), cursorPrompt);
114
+ fs.writeFileSync(path.join(outputPath, 'cursor-rules.mdc'), cursorPrompt);
115
+ }
116
+ if (options.format === 'all' || options.format === 'claude') {
117
+ const claudePrompt = `# Claude Project Prompt - IronBackend
118
+
119
+ ${prompts.combined}
120
+
121
+ ---
122
+
123
+ ## How to Use
124
+
125
+ Copy this entire prompt to your Claude project's custom instructions or include it at the start of your conversation.`;
126
+ fs.writeFileSync(path.join(outputPath, 'claude-project.md'), claudePrompt);
127
+ }
128
+ // Generate Copilot instructions
129
+ if (options.format === 'all') {
130
+ const copilotPrompt = `# GitHub Copilot Custom Instructions
131
+
132
+ ## Architecture: ${(0, core_1.getStyle)(config.style).name}
133
+ ## Stack: ${(0, core_1.getStack)(config.stack).name}
134
+
135
+ ${prompts.style}
136
+
137
+ ---
138
+
139
+ ${prompts.rules}`;
140
+ fs.writeFileSync(path.join(outputPath, 'copilot-instructions.md'), copilotPrompt);
141
+ }
142
+ spinner.succeed('Prompts exported successfully!');
143
+ console.log(chalk_1.default.bold('\nšŸ“ Exported files:'));
144
+ const files = fs.readdirSync(outputPath);
145
+ files.forEach(file => {
146
+ const stats = fs.statSync(path.join(outputPath, file));
147
+ const size = (stats.size / 1024).toFixed(1);
148
+ console.log(chalk_1.default.gray(` ${file} (${size} KB)`));
149
+ });
150
+ if (options.format === 'all' || options.format === 'cursor') {
151
+ console.log(chalk_1.default.gray(` .cursor/rules/ironbackend.mdc`));
152
+ }
153
+ console.log(chalk_1.default.bold('\nšŸš€ Usage:'));
154
+ console.log(chalk_1.default.cyan(' Cursor: Rules automatically applied from .cursor/rules/'));
155
+ console.log(chalk_1.default.cyan(' Claude: Copy claude-project.md to project instructions'));
156
+ console.log(chalk_1.default.cyan(' Copilot: Copy copilot-instructions.md to .github/copilot-instructions.md'));
157
+ }
158
+ catch (error) {
159
+ spinner.fail('Export failed');
160
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
161
+ process.exit(1);
162
+ }
163
+ }
164
+ async function exportConfig(options) {
165
+ console.log(chalk_1.default.bold.blue('\nšŸ“¤ Exporting Configuration\n'));
166
+ const config = loadConfig();
167
+ const cwd = process.cwd();
168
+ const outputPath = path.resolve(cwd, options.output);
169
+ const exportedConfig = {
170
+ $schema: 'https://ironbackend.dev/schema/config.json',
171
+ version: config.version,
172
+ style: config.style,
173
+ stack: config.stack,
174
+ rules: config.rules,
175
+ exportedAt: new Date().toISOString()
176
+ };
177
+ fs.writeFileSync(outputPath, JSON.stringify(exportedConfig, null, 2));
178
+ console.log(chalk_1.default.green(`āœ“ Configuration exported to: ${outputPath}`));
179
+ }
180
+ function loadConfig() {
181
+ const cwd = process.cwd();
182
+ const configPath = path.join(cwd, IRONBACKEND_DIR, CONFIG_FILE);
183
+ if (!fs.existsSync(configPath)) {
184
+ console.log(chalk_1.default.red('IronBackend not initialized. Run: ironbackend init'));
185
+ process.exit(1);
186
+ }
187
+ return JSON.parse(fs.readFileSync(configPath, 'utf-8'));
188
+ }
189
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * CLI Commands Export
3
+ */
4
+ export { createInitCommand } from './init.js';
5
+ export { createSelectCommand } from './select.js';
6
+ export { createExportCommand } from './export.js';
7
+ export { createDoctorCommand } from './doctor.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * CLI Commands Export
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createDoctorCommand = exports.createExportCommand = exports.createSelectCommand = exports.createInitCommand = void 0;
7
+ var init_js_1 = require("./init.js");
8
+ Object.defineProperty(exports, "createInitCommand", { enumerable: true, get: function () { return init_js_1.createInitCommand; } });
9
+ var select_js_1 = require("./select.js");
10
+ Object.defineProperty(exports, "createSelectCommand", { enumerable: true, get: function () { return select_js_1.createSelectCommand; } });
11
+ var export_js_1 = require("./export.js");
12
+ Object.defineProperty(exports, "createExportCommand", { enumerable: true, get: function () { return export_js_1.createExportCommand; } });
13
+ var doctor_js_1 = require("./doctor.js");
14
+ Object.defineProperty(exports, "createDoctorCommand", { enumerable: true, get: function () { return doctor_js_1.createDoctorCommand; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,yCAAkD;AAAzC,gHAAA,mBAAmB,OAAA;AAC5B,yCAAkD;AAAzC,gHAAA,mBAAmB,OAAA;AAC5B,yCAAkD;AAAzC,gHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Init Command
3
+ * Initialize IronBackend in a project for a specific AI tool
4
+ */
5
+ import { Command } from 'commander';
6
+ /**
7
+ * Create the init command
8
+ */
9
+ export declare function createInitCommand(): Command;
10
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAc3C"}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ /**
3
+ * Init Command
4
+ * Initialize IronBackend in a project for a specific AI tool
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.createInitCommand = createInitCommand;
44
+ const commander_1 = require("commander");
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ const chalk_1 = __importDefault(require("chalk"));
48
+ const inquirer_1 = __importDefault(require("inquirer"));
49
+ const ora_1 = __importDefault(require("ora"));
50
+ const core_1 = require("@ironbackend/core");
51
+ const prompts_1 = require("@ironbackend/prompts");
52
+ const ai_tools_js_1 = require("../ai-tools.js");
53
+ const IRONBACKEND_DIR = '.ironbackend';
54
+ const CONFIG_FILE = 'config.json';
55
+ /**
56
+ * Create the init command
57
+ */
58
+ function createInitCommand() {
59
+ const cmd = new commander_1.Command('init');
60
+ cmd
61
+ .description('Initialize IronBackend for a specific AI tool')
62
+ .argument('[tool]', `AI tool to initialize (${(0, ai_tools_js_1.getAIToolIds)().join(', ')})`)
63
+ .option('-y, --yes', 'Skip prompts and use defaults')
64
+ .option('-s, --style <style>', 'Architecture style to use')
65
+ .option('-t, --stack <stack>', 'Tech stack to use')
66
+ .action(async (tool, options) => {
67
+ await runInit(tool, options);
68
+ });
69
+ return cmd;
70
+ }
71
+ async function runInit(toolArg, options) {
72
+ console.log(chalk_1.default.bold.blue('\nšŸ”§ IronBackend Initialization\n'));
73
+ // Resolve AI tool
74
+ let selectedTool;
75
+ if (toolArg) {
76
+ selectedTool = (0, ai_tools_js_1.getAITool)(toolArg);
77
+ if (!selectedTool) {
78
+ console.log(chalk_1.default.red(`Unknown AI tool: ${toolArg}`));
79
+ console.log(chalk_1.default.yellow(`Available tools: ${(0, ai_tools_js_1.getAIToolIds)().join(', ')}`));
80
+ process.exit(1);
81
+ }
82
+ }
83
+ else if (!options.yes) {
84
+ // Interactive tool selection
85
+ const toolChoices = ai_tools_js_1.AI_TOOLS.map(t => ({
86
+ name: `${t.name} - ${t.description}`,
87
+ value: t.id
88
+ }));
89
+ const { tool } = await inquirer_1.default.prompt([{
90
+ type: 'list',
91
+ name: 'tool',
92
+ message: 'Select AI tool to initialize for:',
93
+ choices: toolChoices
94
+ }]);
95
+ selectedTool = (0, ai_tools_js_1.getAITool)(tool);
96
+ }
97
+ else {
98
+ console.log(chalk_1.default.red('Please specify an AI tool: ironbackend init <tool>'));
99
+ console.log(chalk_1.default.yellow(`Available tools: ${(0, ai_tools_js_1.getAIToolIds)().join(', ')}`));
100
+ process.exit(1);
101
+ }
102
+ if (!selectedTool) {
103
+ console.log(chalk_1.default.red('No AI tool selected'));
104
+ process.exit(1);
105
+ }
106
+ console.log(chalk_1.default.cyan(`Initializing for: ${selectedTool.name}\n`));
107
+ const cwd = process.cwd();
108
+ const ironbackendPath = path.join(cwd, IRONBACKEND_DIR);
109
+ // Check if already initialized
110
+ if (fs.existsSync(ironbackendPath)) {
111
+ const { overwrite } = await inquirer_1.default.prompt([{
112
+ type: 'confirm',
113
+ name: 'overwrite',
114
+ message: '.ironbackend directory already exists. Overwrite?',
115
+ default: false
116
+ }]);
117
+ if (!overwrite) {
118
+ console.log(chalk_1.default.yellow('Initialization cancelled.'));
119
+ return;
120
+ }
121
+ }
122
+ let selectedStyle = options.style || null;
123
+ let selectedStack = options.stack || null;
124
+ // Interactive prompts if not using --yes
125
+ if (!options.yes) {
126
+ // Style selection
127
+ if (!selectedStyle) {
128
+ const styleChoices = (0, core_1.getStyleIds)().map(id => {
129
+ const style = (0, core_1.getStyle)(id);
130
+ return { name: `${style.name} - ${style.description.slice(0, 50)}...`, value: id };
131
+ });
132
+ const { style } = await inquirer_1.default.prompt([{
133
+ type: 'list',
134
+ name: 'style',
135
+ message: 'Select an architecture style:',
136
+ choices: [{ name: 'Skip (select later)', value: null }, ...styleChoices]
137
+ }]);
138
+ selectedStyle = style;
139
+ }
140
+ // Stack selection
141
+ if (!selectedStack) {
142
+ const stackChoices = (0, core_1.getStackIds)().map(id => {
143
+ const stack = (0, core_1.getStack)(id);
144
+ return { name: `${stack.name}`, value: id };
145
+ });
146
+ const { stack } = await inquirer_1.default.prompt([{
147
+ type: 'list',
148
+ name: 'stack',
149
+ message: 'Select a tech stack:',
150
+ choices: [{ name: 'Skip (select later)', value: null }, ...stackChoices]
151
+ }]);
152
+ selectedStack = stack;
153
+ }
154
+ }
155
+ // Create directory structure
156
+ const spinner = (0, ora_1.default)('Creating IronBackend configuration...').start();
157
+ try {
158
+ // Create .ironbackend directory
159
+ fs.mkdirSync(ironbackendPath, { recursive: true });
160
+ fs.mkdirSync(path.join(ironbackendPath, 'prompts'), { recursive: true });
161
+ // Create config file
162
+ const config = {
163
+ version: core_1.VERSION,
164
+ tool: selectedTool.id,
165
+ style: selectedStyle,
166
+ stack: selectedStack,
167
+ rules: {
168
+ enabled: ['API', 'DOMAIN', 'ERROR_HANDLING', 'DATA_ACCESS', 'NAMING', 'VALIDATION', 'ASYNC'],
169
+ overrides: {}
170
+ },
171
+ createdAt: new Date().toISOString(),
172
+ updatedAt: new Date().toISOString()
173
+ };
174
+ fs.writeFileSync(path.join(ironbackendPath, CONFIG_FILE), JSON.stringify(config, null, 2));
175
+ // Generate prompts if style and stack are selected
176
+ if (selectedStyle && selectedStack) {
177
+ const prompts = (0, prompts_1.buildPromptSections)({
178
+ styleId: selectedStyle,
179
+ stackId: selectedStack
180
+ });
181
+ // Write prompt files to .ironbackend/prompts
182
+ fs.writeFileSync(path.join(ironbackendPath, 'prompts', 'system-prompt.md'), prompts.combined);
183
+ fs.writeFileSync(path.join(ironbackendPath, 'prompts', 'style.md'), prompts.style);
184
+ fs.writeFileSync(path.join(ironbackendPath, 'prompts', 'stack.md'), prompts.stack);
185
+ fs.writeFileSync(path.join(ironbackendPath, 'prompts', 'rules.md'), prompts.rules);
186
+ // Generate AI tool-specific file
187
+ const toolOutputPath = path.join(cwd, selectedTool.outputPath);
188
+ const toolOutputDir = path.dirname(toolOutputPath);
189
+ // Create directory if needed
190
+ if (toolOutputDir !== cwd) {
191
+ fs.mkdirSync(toolOutputDir, { recursive: true });
192
+ }
193
+ // Format content for the specific tool
194
+ const formattedContent = (0, ai_tools_js_1.formatForAITool)(selectedTool, prompts.combined);
195
+ fs.writeFileSync(toolOutputPath, formattedContent);
196
+ }
197
+ spinner.succeed('IronBackend initialized successfully!');
198
+ // Print summary
199
+ console.log(chalk_1.default.green('\nāœ“ Created .ironbackend/ directory'));
200
+ console.log(chalk_1.default.green('āœ“ Created config.json'));
201
+ if (selectedStyle && selectedStack) {
202
+ console.log(chalk_1.default.green('āœ“ Generated AI prompts'));
203
+ console.log(chalk_1.default.green(`āœ“ Created ${selectedTool.outputPath}`));
204
+ }
205
+ console.log(chalk_1.default.bold('\nšŸ“ Files created:'));
206
+ console.log(chalk_1.default.gray(' .ironbackend/'));
207
+ console.log(chalk_1.default.gray(' ā”œā”€ā”€ config.json'));
208
+ console.log(chalk_1.default.gray(' └── prompts/'));
209
+ if (selectedStyle && selectedStack) {
210
+ console.log(chalk_1.default.gray(' ā”œā”€ā”€ system-prompt.md'));
211
+ console.log(chalk_1.default.gray(' ā”œā”€ā”€ style.md'));
212
+ console.log(chalk_1.default.gray(' ā”œā”€ā”€ stack.md'));
213
+ console.log(chalk_1.default.gray(' └── rules.md'));
214
+ console.log(chalk_1.default.gray(` ${selectedTool.outputPath}`));
215
+ }
216
+ console.log(chalk_1.default.bold('\nšŸš€ Next steps:'));
217
+ if (!selectedStyle || !selectedStack) {
218
+ console.log(chalk_1.default.cyan(' 1. Select a style: ironbackend select style <name>'));
219
+ console.log(chalk_1.default.cyan(' 2. Select a stack: ironbackend select stack <name>'));
220
+ console.log(chalk_1.default.cyan(' 3. Export prompts: ironbackend export prompts'));
221
+ }
222
+ else {
223
+ console.log(chalk_1.default.cyan(` 1. Review generated prompts in ${selectedTool.outputPath}`));
224
+ console.log(chalk_1.default.cyan(` 2. Start coding with ${selectedTool.name}!`));
225
+ }
226
+ }
227
+ catch (error) {
228
+ spinner.fail('Initialization failed');
229
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
230
+ process.exit(1);
231
+ }
232
+ }
233
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Select Command
3
+ * Select architecture style or tech stack
4
+ */
5
+ import { Command } from 'commander';
6
+ /**
7
+ * Create the select command
8
+ */
9
+ export declare function createSelectCommand(): Command;
10
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/commands/select.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAsB7C"}