@dewtech/dare-cli 0.2.0 โ†’ 0.3.1

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.
@@ -32,13 +32,49 @@ export const initCommand = new Command('init')
32
32
  { name: '๐Ÿ—๏ธ Monorepo (backend + frontend)', value: 'monorepo' },
33
33
  { name: 'โš™๏ธ Backend only', value: 'backend' },
34
34
  { name: '๐ŸŽจ Frontend only', value: 'frontend' },
35
+ { name: '๐Ÿ”Œ MCP Server', value: 'mcp-server' },
35
36
  ],
36
37
  },
38
+ // โ”€โ”€ MCP Server questions โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
39
+ {
40
+ type: 'list',
41
+ name: 'mcpLanguage',
42
+ message: 'MCP server language:',
43
+ when: (ans) => ans.structure === 'mcp-server',
44
+ choices: [
45
+ { name: '๐ŸŸฆ TypeScript / Node.js', value: 'node-ts' },
46
+ { name: '๐Ÿ Python', value: 'python' },
47
+ ],
48
+ },
49
+ {
50
+ type: 'list',
51
+ name: 'mcpTransport',
52
+ message: 'Transport type:',
53
+ when: (ans) => ans.structure === 'mcp-server',
54
+ choices: [
55
+ { name: '๐Ÿ“Ÿ stdio (CLI tools, local agents)', value: 'stdio' },
56
+ { name: '๐ŸŒ SSE (web integrations, remote)', value: 'sse' },
57
+ { name: 'โšก HTTP Stream (streamable HTTP)', value: 'http-stream' },
58
+ ],
59
+ },
60
+ {
61
+ type: 'checkbox',
62
+ name: 'mcpFeatures',
63
+ message: 'MCP capabilities to include:',
64
+ when: (ans) => ans.structure === 'mcp-server',
65
+ choices: [
66
+ { name: '๐Ÿ”ง Tools (callable functions)', value: 'tools', checked: true },
67
+ { name: '๐Ÿ“ฆ Resources (readable context)', value: 'resources', checked: false },
68
+ { name: '๐Ÿ’ฌ Prompts (prompt templates)', value: 'prompts', checked: false },
69
+ ],
70
+ validate: (selected) => selected.length > 0 || 'Select at least one capability',
71
+ },
72
+ // โ”€โ”€ Standard backend / frontend questions โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
37
73
  {
38
74
  type: 'list',
39
75
  name: 'backend',
40
76
  message: 'Backend stack:',
41
- when: (ans) => ans.structure !== 'frontend',
77
+ when: (ans) => ans.structure !== 'frontend' && ans.structure !== 'mcp-server',
42
78
  choices: [
43
79
  { name: '๐Ÿฆ€ Rust / Axum', value: 'rust-axum' },
44
80
  { name: '๐ŸŸข Node.js / NestJS', value: 'node-nestjs' },
@@ -50,12 +86,13 @@ export const initCommand = new Command('init')
50
86
  type: 'list',
51
87
  name: 'frontend',
52
88
  message: 'Frontend stack:',
53
- when: (ans) => ans.structure !== 'backend',
89
+ when: (ans) => ans.structure !== 'backend' && ans.structure !== 'mcp-server',
54
90
  choices: [
55
91
  { name: 'โš›๏ธ React 18+', value: 'react' },
56
92
  { name: '๐Ÿ’š Vue 3+', value: 'vue' },
57
93
  ],
58
94
  },
95
+ // โ”€โ”€ Common questions โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
59
96
  {
60
97
  type: 'list',
61
98
  name: 'ide',
@@ -79,7 +116,7 @@ export const initCommand = new Command('init')
79
116
  {
80
117
  type: 'confirm',
81
118
  name: 'mcp',
82
- message: 'Enable MCP Server for context queries?',
119
+ message: 'Enable DARE MCP Server for context queries?',
83
120
  default: true,
84
121
  },
85
122
  ]);
@@ -91,6 +128,9 @@ export const initCommand = new Command('init')
91
128
  structure: answers.structure,
92
129
  backend: answers.backend,
93
130
  frontend: answers.frontend,
131
+ mcpTransport: answers.mcpTransport,
132
+ mcpLanguage: answers.mcpLanguage,
133
+ mcpFeatures: answers.mcpFeatures,
94
134
  ide: answers.ide,
95
135
  graphrag: answers.graphrag,
96
136
  mcp: answers.mcp,
@@ -99,9 +139,24 @@ export const initCommand = new Command('init')
99
139
  spinner.succeed(chalk.green(`Project ${chalk.bold(name)} created successfully!`));
100
140
  console.log(chalk.cyan('\n๐Ÿ“‹ Next steps:\n'));
101
141
  console.log(` ${chalk.gray('1.')} cd ${name}`);
102
- console.log(` ${chalk.gray('2.')} dare design "Describe your project here"`);
103
- console.log(` ${chalk.gray('3.')} dare blueprint`);
104
- console.log(` ${chalk.gray('4.')} dare execute --parallel\n`);
142
+ if (answers.structure === 'mcp-server') {
143
+ const installCmd = answers.mcpLanguage === 'python' ? 'pip install -r requirements.txt' : 'npm install';
144
+ const devCmd = answers.mcpLanguage === 'python' ? 'python main.py' : 'npm run dev';
145
+ const inspectCmd = answers.mcpLanguage === 'python'
146
+ ? 'npx @modelcontextprotocol/inspector python main.py'
147
+ : 'npm run inspect';
148
+ console.log(` ${chalk.gray('2.')} ${installCmd}`);
149
+ console.log(` ${chalk.gray('3.')} dare design "Describe what this MCP server exposes"`);
150
+ console.log(` ${chalk.gray('4.')} dare blueprint`);
151
+ console.log(` ${chalk.gray('5.')} dare execute --parallel`);
152
+ console.log(` ${chalk.gray('6.')} ${inspectCmd} ${chalk.gray('โ† test with MCP Inspector')}`);
153
+ console.log(` ${chalk.gray('7.')} ${devCmd}\n`);
154
+ }
155
+ else {
156
+ console.log(` ${chalk.gray('2.')} dare design "Describe your project here"`);
157
+ console.log(` ${chalk.gray('3.')} dare blueprint`);
158
+ console.log(` ${chalk.gray('4.')} dare execute --parallel\n`);
159
+ }
105
160
  }
106
161
  catch (err) {
107
162
  spinner.fail(chalk.red('Failed to create project'));
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface DetectedProject {
2
+ structure: 'monorepo' | 'backend' | 'frontend' | 'mcp-server' | 'unknown';
3
+ backend?: string;
4
+ frontend?: string;
5
+ mcpLanguage?: 'node-ts' | 'python';
6
+ mcpTransport?: 'stdio' | 'sse' | 'http-stream';
7
+ name: string;
8
+ hasDare: boolean;
9
+ dareConfig?: Record<string, unknown>;
10
+ confidence: 'high' | 'medium' | 'low';
11
+ evidence: string[];
12
+ }
13
+ export declare function detectProject(dir: string): Promise<DetectedProject>;
14
+ export declare function formatDetectionReport(detected: DetectedProject): string;
15
+ //# sourceMappingURL=project-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4MzE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAiBvE"}
@@ -0,0 +1,243 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ export async function detectProject(dir) {
4
+ const evidence = [];
5
+ let structure = 'unknown';
6
+ let backend;
7
+ let frontend;
8
+ let mcpLanguage;
9
+ let mcpTransport;
10
+ let confidence = 'low';
11
+ // Detect project name from directory
12
+ const name = path.basename(dir).replace(/[^a-z0-9-_]/gi, '-').toLowerCase();
13
+ // Check if DARE is already installed
14
+ const dareConfigPath = path.join(dir, 'dare.config.json');
15
+ const hasDare = await fs.pathExists(dareConfigPath);
16
+ let dareConfig;
17
+ if (hasDare) {
18
+ dareConfig = await fs.readJSON(dareConfigPath);
19
+ evidence.push('dare.config.json found (DARE already installed)');
20
+ }
21
+ // โ”€โ”€ Check for monorepo indicators first โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
22
+ const hasBackendDir = await fs.pathExists(path.join(dir, 'backend'));
23
+ const hasFrontendDir = await fs.pathExists(path.join(dir, 'frontend'));
24
+ const hasPnpmWorkspace = await fs.pathExists(path.join(dir, 'pnpm-workspace.yaml'));
25
+ const hasLernaJson = await fs.pathExists(path.join(dir, 'lerna.json'));
26
+ if ((hasBackendDir && hasFrontendDir) || hasPnpmWorkspace || hasLernaJson) {
27
+ structure = 'monorepo';
28
+ confidence = 'medium';
29
+ if (hasBackendDir && hasFrontendDir)
30
+ evidence.push('backend/ and frontend/ directories found');
31
+ if (hasPnpmWorkspace)
32
+ evidence.push('pnpm-workspace.yaml found');
33
+ if (hasLernaJson)
34
+ evidence.push('lerna.json found');
35
+ }
36
+ // โ”€โ”€ Check package.json โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
37
+ const packageJsonPath = path.join(dir, 'package.json');
38
+ if (await fs.pathExists(packageJsonPath)) {
39
+ const pkg = await fs.readJSON(packageJsonPath).catch(() => ({}));
40
+ const deps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
41
+ const pkgName = pkg.name;
42
+ // MCP detection โ€” highest priority
43
+ if (deps['@modelcontextprotocol/sdk'] || deps['@modelcontextprotocol/server']) {
44
+ structure = 'mcp-server';
45
+ mcpLanguage = 'node-ts';
46
+ confidence = 'high';
47
+ evidence.push('@modelcontextprotocol/sdk found in package.json');
48
+ // Detect transport from scripts or deps
49
+ if (deps['express'] || deps['fastify']) {
50
+ mcpTransport = 'sse';
51
+ evidence.push('express/fastify found โ†’ likely SSE transport');
52
+ }
53
+ else {
54
+ mcpTransport = 'stdio';
55
+ evidence.push('no HTTP framework found โ†’ likely stdio transport');
56
+ }
57
+ }
58
+ else if (deps['@nestjs/core'] || deps['@nestjs/common']) {
59
+ if (structure === 'unknown')
60
+ structure = 'backend';
61
+ backend = 'node-nestjs';
62
+ confidence = 'high';
63
+ evidence.push('@nestjs/core found in package.json');
64
+ }
65
+ else if (deps['express'] && structure !== 'monorepo') {
66
+ if (structure === 'unknown')
67
+ structure = 'backend';
68
+ backend = 'node-express';
69
+ confidence = 'medium';
70
+ evidence.push('express found in package.json');
71
+ }
72
+ else if (deps['react']) {
73
+ if (structure === 'unknown')
74
+ structure = 'frontend';
75
+ frontend = 'react';
76
+ confidence = 'high';
77
+ evidence.push('react found in package.json');
78
+ }
79
+ else if (deps['vue']) {
80
+ if (structure === 'unknown')
81
+ structure = 'frontend';
82
+ frontend = 'vue';
83
+ confidence = 'high';
84
+ evidence.push('vue found in package.json');
85
+ }
86
+ else if (deps['nuxt']) {
87
+ if (structure === 'unknown')
88
+ structure = 'frontend';
89
+ frontend = 'nuxt';
90
+ confidence = 'high';
91
+ evidence.push('nuxt found in package.json');
92
+ }
93
+ else if (pkg.name) {
94
+ evidence.push(`package.json found (name: ${pkgName})`);
95
+ }
96
+ }
97
+ // โ”€โ”€ Check Cargo.toml (Rust) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
98
+ const cargoPath = path.join(dir, 'Cargo.toml');
99
+ if (await fs.pathExists(cargoPath)) {
100
+ if (structure === 'unknown')
101
+ structure = 'backend';
102
+ backend = 'rust-axum';
103
+ confidence = 'high';
104
+ evidence.push('Cargo.toml found');
105
+ // Check if it's an MCP server built in Rust
106
+ const cargoContent = await fs.readFile(cargoPath, 'utf-8').catch(() => '');
107
+ if (cargoContent.includes('rmcp') || cargoContent.includes('mcp')) {
108
+ structure = 'mcp-server';
109
+ mcpLanguage = 'node-ts'; // closest we have, will ask
110
+ evidence.push('MCP dependency found in Cargo.toml');
111
+ }
112
+ }
113
+ // โ”€โ”€ Check Python โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
114
+ const requirementsPath = path.join(dir, 'requirements.txt');
115
+ const pyprojectPath = path.join(dir, 'pyproject.toml');
116
+ const mainPyPath = path.join(dir, 'main.py');
117
+ const hasPython = await fs.pathExists(requirementsPath) || await fs.pathExists(pyprojectPath);
118
+ if (hasPython) {
119
+ let pyContent = '';
120
+ if (await fs.pathExists(requirementsPath)) {
121
+ pyContent += await fs.readFile(requirementsPath, 'utf-8').catch(() => '');
122
+ evidence.push('requirements.txt found');
123
+ }
124
+ if (await fs.pathExists(pyprojectPath)) {
125
+ pyContent += await fs.readFile(pyprojectPath, 'utf-8').catch(() => '');
126
+ evidence.push('pyproject.toml found');
127
+ }
128
+ if (await fs.pathExists(mainPyPath)) {
129
+ const mainContent = await fs.readFile(mainPyPath, 'utf-8').catch(() => '');
130
+ pyContent += mainContent;
131
+ }
132
+ const mcpPyPattern = /\bmcp\b|FastMCP|mcp\.server|@mcp\.tool/;
133
+ const fastApiPattern = /fastapi/i;
134
+ if (mcpPyPattern.test(pyContent)) {
135
+ structure = 'mcp-server';
136
+ mcpLanguage = 'python';
137
+ confidence = 'high';
138
+ evidence.push('mcp/FastMCP found in Python files');
139
+ if (pyContent.includes('sse') || pyContent.includes('transport="sse"')) {
140
+ mcpTransport = 'sse';
141
+ evidence.push('SSE transport detected in Python files');
142
+ }
143
+ else {
144
+ mcpTransport = 'stdio';
145
+ }
146
+ }
147
+ else if (fastApiPattern.test(pyContent)) {
148
+ if (structure === 'unknown')
149
+ structure = 'backend';
150
+ backend = 'python-fastapi';
151
+ confidence = 'high';
152
+ evidence.push('fastapi found in Python requirements');
153
+ }
154
+ else {
155
+ if (structure === 'unknown')
156
+ structure = 'backend';
157
+ if (!backend)
158
+ backend = 'python-fastapi';
159
+ confidence = 'medium';
160
+ }
161
+ }
162
+ // โ”€โ”€ Check PHP / Laravel โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
163
+ const composerPath = path.join(dir, 'composer.json');
164
+ if (await fs.pathExists(composerPath)) {
165
+ if (structure === 'unknown')
166
+ structure = 'backend';
167
+ backend = 'php-laravel';
168
+ confidence = 'high';
169
+ evidence.push('composer.json found');
170
+ const composer = await fs.readJSON(composerPath).catch(() => ({}));
171
+ const require = composer.require ?? {};
172
+ if (require['laravel/framework']) {
173
+ evidence.push('laravel/framework found in composer.json');
174
+ }
175
+ }
176
+ // โ”€โ”€ Detect frontend within a monorepo โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
177
+ if (structure === 'monorepo' && hasFrontendDir) {
178
+ const frontendPkg = path.join(dir, 'frontend', 'package.json');
179
+ if (await fs.pathExists(frontendPkg)) {
180
+ const pkg = await fs.readJSON(frontendPkg).catch(() => ({}));
181
+ const deps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
182
+ if (deps['react']) {
183
+ frontend = 'react';
184
+ evidence.push('react found in frontend/package.json');
185
+ }
186
+ else if (deps['vue']) {
187
+ frontend = 'vue';
188
+ evidence.push('vue found in frontend/package.json');
189
+ }
190
+ else if (deps['nuxt']) {
191
+ frontend = 'nuxt';
192
+ evidence.push('nuxt found in frontend/package.json');
193
+ }
194
+ }
195
+ }
196
+ if (structure === 'monorepo' && hasBackendDir) {
197
+ const backendPkg = path.join(dir, 'backend', 'package.json');
198
+ if (await fs.pathExists(backendPkg)) {
199
+ const pkg = await fs.readJSON(backendPkg).catch(() => ({}));
200
+ const deps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
201
+ if (deps['@nestjs/core']) {
202
+ backend = 'node-nestjs';
203
+ evidence.push('nestjs found in backend/package.json');
204
+ }
205
+ }
206
+ }
207
+ if (evidence.length === 0) {
208
+ evidence.push('No recognizable project files found');
209
+ }
210
+ return {
211
+ name,
212
+ structure,
213
+ backend,
214
+ frontend,
215
+ mcpLanguage,
216
+ mcpTransport,
217
+ hasDare,
218
+ dareConfig,
219
+ confidence,
220
+ evidence,
221
+ };
222
+ }
223
+ export function formatDetectionReport(detected) {
224
+ const lines = [];
225
+ const confidenceColor = detected.confidence === 'high' ? 'โœ…' : detected.confidence === 'medium' ? 'โš ๏ธ' : 'โ“';
226
+ lines.push(` Structure: ${detected.structure} ${confidenceColor}`);
227
+ if (detected.backend)
228
+ lines.push(` Backend: ${detected.backend}`);
229
+ if (detected.frontend)
230
+ lines.push(` Frontend: ${detected.frontend}`);
231
+ if (detected.mcpLanguage)
232
+ lines.push(` MCP Lang: ${detected.mcpLanguage}`);
233
+ if (detected.mcpTransport)
234
+ lines.push(` Transport: ${detected.mcpTransport}`);
235
+ lines.push(` DARE: ${detected.hasDare ? 'โœ… installed' : 'โŒ not installed'}`);
236
+ lines.push('');
237
+ lines.push(' Evidence:');
238
+ for (const e of detected.evidence) {
239
+ lines.push(` ยท ${e}`);
240
+ }
241
+ return lines.join('\n');
242
+ }
243
+ //# sourceMappingURL=project-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  export interface ProjectConfig {
2
2
  name: string;
3
- structure: 'monorepo' | 'backend' | 'frontend';
3
+ structure: 'monorepo' | 'backend' | 'frontend' | 'mcp-server';
4
4
  backend?: string;
5
5
  frontend?: string;
6
+ mcpTransport?: 'stdio' | 'sse' | 'http-stream';
7
+ mcpLanguage?: 'node-ts' | 'python';
8
+ mcpFeatures?: ('tools' | 'resources' | 'prompts')[];
6
9
  ide: 'cursor' | 'antigravity' | 'hybrid';
7
10
  graphrag: 'sqlite' | 'json' | 'neo4j';
8
11
  mcp: boolean;
9
12
  outputDir: string;
10
13
  }
11
14
  export declare function generateProjectStructure(config: ProjectConfig): Promise<void>;
15
+ export declare function installDareToExistingProject(projectDir: string, config: Omit<ProjectConfig, 'outputDir'>): Promise<void>;
12
16
  //# sourceMappingURL=project-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-generator.d.ts","sourceRoot":"","sources":["../../src/utils/project-generator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,QAAQ,CAAC;IACzC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FnF"}
1
+ {"version":3,"file":"project-generator.d.ts","sourceRoot":"","sources":["../../src/utils/project-generator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAC/C,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACnC,WAAW,CAAC,EAAE,CAAC,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IACpD,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,QAAQ,CAAC;IACzC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqGnF;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CA+Df"}