@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.
- package/README.md +178 -104
- package/dist/bin/dare.js +2 -0
- package/dist/bin/dare.js.map +1 -1
- package/dist/commands/discover.d.ts +3 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +234 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +61 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/utils/project-detector.d.ts +15 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +243 -0
- package/dist/utils/project-detector.js.map +1 -0
- package/dist/utils/project-generator.d.ts +5 -1
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +310 -28
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/templates.d.ts +9 -0
- package/dist/utils/templates.d.ts.map +1 -1
- package/dist/utils/templates.js +95 -0
- package/dist/utils/templates.js.map +1 -1
- package/package.json +12 -12
- package/LICENSE +0 -21
package/README.md
CHANGED
|
@@ -1,104 +1,178 @@
|
|
|
1
|
-
# @dewtech/dare-cli
|
|
2
|
-
|
|
3
|
-
CLI tool for DARE Framework
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- `dare.config.json`
|
|
37
|
-
- `
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
dare
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
dare
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
1
|
+
# @dewtech/dare-cli
|
|
2
|
+
|
|
3
|
+
CLI tool for the **DARE Framework** — Design, Architect, Review, Execute.
|
|
4
|
+
|
|
5
|
+
A structured methodology for AI-assisted software development with mandatory human-in-the-loop reviews and parallel task execution.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@dewtech/dare-cli)
|
|
8
|
+
[](https://github.com/dewtech-technologies/dare-method/blob/main/LICENSE)
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install -g @dewtech/dare-cli
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Commands
|
|
17
|
+
|
|
18
|
+
### `dare init`
|
|
19
|
+
|
|
20
|
+
Interactive project initialization — creates the full project structure with DARE methodology files, IDE rules and stack templates.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
dare init my-project
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Prompts:
|
|
27
|
+
- **Structure:** Monorepo · Backend only · Frontend only · **MCP Server** ← new
|
|
28
|
+
- **MCP Server:** language (TypeScript / Python), transport (stdio / SSE / HTTP Stream), capabilities (Tools / Resources / Prompts)
|
|
29
|
+
- **Backend stack:** Rust/Axum · Node.js/NestJS · Python/FastAPI · PHP/Laravel
|
|
30
|
+
- **Frontend stack:** React 18+ · Vue 3+
|
|
31
|
+
- **IDE / Agent:** Cursor · Antigravity · Hybrid
|
|
32
|
+
- **GraphRAG backend:** SQLite · JSON · Neo4j
|
|
33
|
+
- **DARE MCP Server:** context query server (saves ~95% tokens)
|
|
34
|
+
|
|
35
|
+
Generates:
|
|
36
|
+
- `dare.config.json` — project config
|
|
37
|
+
- `.cursorrules` / `.antigravityrules` — global IDE rules
|
|
38
|
+
- `.cursor/rules/*.mdc` — stack-specific skills
|
|
39
|
+
- `.cursor/commands/` — DARE slash commands
|
|
40
|
+
- `.agents/skills/` — Antigravity agent skills
|
|
41
|
+
- `DARE/` — methodology directory (DESIGN, BLUEPRINT, TASKS, dag)
|
|
42
|
+
- Full project template ready to run (MCP server, backend or frontend)
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### `dare discover` ← new in v0.3.0
|
|
47
|
+
|
|
48
|
+
Detects an existing project's stack automatically and installs DARE files without touching your source code.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Run inside an existing project
|
|
52
|
+
cd my-existing-project
|
|
53
|
+
dare discover
|
|
54
|
+
|
|
55
|
+
# Inspect only, no changes
|
|
56
|
+
dare discover --check
|
|
57
|
+
|
|
58
|
+
# Target a specific directory
|
|
59
|
+
dare discover --dir ./path/to/project
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Auto-detects from: `package.json`, `Cargo.toml`, `requirements.txt`, `pyproject.toml`, `composer.json`.
|
|
63
|
+
|
|
64
|
+
Recognizes: NestJS · React · Vue · Nuxt · Rust/Axum · FastAPI · Laravel · **MCP Server** (`@modelcontextprotocol/sdk`, `FastMCP`).
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
### `dare design`
|
|
69
|
+
|
|
70
|
+
Generate `DARE/DESIGN.md` from a project description.
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
dare design "Build a REST API for user authentication with JWT"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### `dare blueprint`
|
|
79
|
+
|
|
80
|
+
Generate `DARE/BLUEPRINT.md`, `dare-dag.yaml` and `TASKS.md` from `DESIGN.md`.
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
dare blueprint
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### `dare execute`
|
|
89
|
+
|
|
90
|
+
Execute tasks from the DAG with optional parallel execution.
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Execute all tasks in parallel (75% faster)
|
|
94
|
+
dare execute --parallel --runner cursor
|
|
95
|
+
|
|
96
|
+
# Execute a specific task
|
|
97
|
+
dare execute task-001
|
|
98
|
+
|
|
99
|
+
# Sequential execution
|
|
100
|
+
dare execute
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Full Workflow
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# New project
|
|
109
|
+
dare init my-project
|
|
110
|
+
cd my-project
|
|
111
|
+
dare design "Describe what you're building"
|
|
112
|
+
dare blueprint
|
|
113
|
+
dare execute --parallel
|
|
114
|
+
|
|
115
|
+
# Existing project
|
|
116
|
+
cd my-existing-project
|
|
117
|
+
dare discover
|
|
118
|
+
dare design "Describe what you're building"
|
|
119
|
+
dare blueprint
|
|
120
|
+
dare execute --parallel
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## MCP Server Workflow
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
dare init my-mcp-server
|
|
127
|
+
# → Structure: MCP Server
|
|
128
|
+
# → Language: TypeScript
|
|
129
|
+
# → Transport: stdio
|
|
130
|
+
# → Capabilities: Tools, Resources
|
|
131
|
+
|
|
132
|
+
cd my-mcp-server
|
|
133
|
+
npm install
|
|
134
|
+
dare design "MCP server that exposes ZIP code lookup tools"
|
|
135
|
+
dare blueprint
|
|
136
|
+
dare execute --parallel
|
|
137
|
+
|
|
138
|
+
# Test with MCP Inspector
|
|
139
|
+
npm run inspect
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Performance
|
|
145
|
+
|
|
146
|
+
| Mode | Estimated Time |
|
|
147
|
+
|------|----------------|
|
|
148
|
+
| Sequential | ~280 minutes |
|
|
149
|
+
| Parallel DAG | ~70 minutes |
|
|
150
|
+
| **Improvement** | **75% faster** |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Supported Stacks
|
|
155
|
+
|
|
156
|
+
| Type | Options |
|
|
157
|
+
|------|---------|
|
|
158
|
+
| **Backend** | Rust/Axum · Node.js/NestJS · Python/FastAPI · PHP/Laravel |
|
|
159
|
+
| **Frontend** | React 18+ · Vue 3+ |
|
|
160
|
+
| **MCP Server** | TypeScript/Node.js · Python — stdio / SSE / HTTP Stream |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Related packages
|
|
165
|
+
|
|
166
|
+
| Package | Description |
|
|
167
|
+
|---------|-------------|
|
|
168
|
+
| [`@dewtech/dare-mcp-server`](https://www.npmjs.com/package/@dewtech/dare-mcp-server) | Local MCP context server (~95% token savings) |
|
|
169
|
+
| [`@dewtech/dare-graphrag`](https://www.npmjs.com/package/@dewtech/dare-graphrag) | Knowledge graph engine (SQLite + FTS5) |
|
|
170
|
+
| [`@dewtech/dare-core`](https://www.npmjs.com/package/@dewtech/dare-core) | Shared types and utilities |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Links
|
|
175
|
+
|
|
176
|
+
- [GitHub](https://github.com/dewtech-technologies/dare-method)
|
|
177
|
+
- [DARE Methodology](https://github.com/dewtech-technologies/dare-method#-o-método)
|
|
178
|
+
- [Dewtech](https://dewtech.tech)
|
package/dist/bin/dare.js
CHANGED
|
@@ -4,12 +4,14 @@ import { initCommand } from '../commands/init.js';
|
|
|
4
4
|
import { designCommand } from '../commands/design.js';
|
|
5
5
|
import { blueprintCommand } from '../commands/blueprint.js';
|
|
6
6
|
import { executeCommand } from '../commands/execute.js';
|
|
7
|
+
import { discoverCommand } from '../commands/discover.js';
|
|
7
8
|
const program = new Command();
|
|
8
9
|
program
|
|
9
10
|
.name('dare')
|
|
10
11
|
.description('DARE Framework - Design, Architect, Review, Execute methodology for AI-assisted development')
|
|
11
12
|
.version('0.1.0');
|
|
12
13
|
program.addCommand(initCommand);
|
|
14
|
+
program.addCommand(discoverCommand);
|
|
13
15
|
program.addCommand(designCommand);
|
|
14
16
|
program.addCommand(blueprintCommand);
|
|
15
17
|
program.addCommand(executeCommand);
|
package/dist/bin/dare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dare.js","sourceRoot":"","sources":["../../src/bin/dare.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"dare.js","sourceRoot":"","sources":["../../src/bin/dare.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,6FAA6F,CAAC;KAC1G,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,eAAe,SAgOxB,CAAC"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import ora from 'ora';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import { detectProject, formatDetectionReport } from '../utils/project-detector.js';
|
|
7
|
+
import { installDareToExistingProject } from '../utils/project-generator.js';
|
|
8
|
+
export const discoverCommand = new Command('discover')
|
|
9
|
+
.description('Detect an existing project and install DARE methodology files')
|
|
10
|
+
.option('-d, --dir <path>', 'Target directory (default: current directory)')
|
|
11
|
+
.option('--check', 'Only show detection results without installing')
|
|
12
|
+
.action(async (opts) => {
|
|
13
|
+
const targetDir = path.resolve(opts.dir ?? process.cwd());
|
|
14
|
+
console.log(chalk.blue.bold('\n🔍 DARE Framework - Project Discovery\n'));
|
|
15
|
+
console.log(chalk.gray(` Scanning: ${targetDir}\n`));
|
|
16
|
+
const spinner = ora('Analyzing project...').start();
|
|
17
|
+
const detected = await detectProject(targetDir);
|
|
18
|
+
spinner.stop();
|
|
19
|
+
// ── Show detection results ─────────────────────────────────────────────
|
|
20
|
+
console.log(chalk.yellow('Detection results:\n'));
|
|
21
|
+
console.log(formatDetectionReport(detected));
|
|
22
|
+
console.log('');
|
|
23
|
+
if (opts.check) {
|
|
24
|
+
if (detected.hasDare) {
|
|
25
|
+
console.log(chalk.green('✅ DARE is already installed in this project.'));
|
|
26
|
+
if (detected.dareConfig) {
|
|
27
|
+
console.log(chalk.gray('\nCurrent dare.config.json:'));
|
|
28
|
+
console.log(chalk.gray(JSON.stringify(detected.dareConfig, null, 2)));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.log(chalk.yellow('⚠️ DARE is not installed. Run `dare discover` without --check to install it.'));
|
|
33
|
+
}
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
// ── Already installed — offer reconfigure ─────────────────────────────
|
|
37
|
+
if (detected.hasDare) {
|
|
38
|
+
console.log(chalk.green('✅ DARE is already installed in this project.\n'));
|
|
39
|
+
const { action } = await inquirer.prompt([
|
|
40
|
+
{
|
|
41
|
+
type: 'list',
|
|
42
|
+
name: 'action',
|
|
43
|
+
message: 'What would you like to do?',
|
|
44
|
+
choices: [
|
|
45
|
+
{ name: '🔄 Reconfigure DARE (update rules and config)', value: 'reconfigure' },
|
|
46
|
+
{ name: '🚪 Exit', value: 'exit' },
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
]);
|
|
50
|
+
if (action === 'exit')
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// ── Confirm or correct detected values ────────────────────────────────
|
|
54
|
+
console.log(chalk.cyan('Confirm project details (press Enter to accept detected values):\n'));
|
|
55
|
+
const structureChoices = [
|
|
56
|
+
{ name: '🏗️ Monorepo (backend + frontend)', value: 'monorepo' },
|
|
57
|
+
{ name: '⚙️ Backend only', value: 'backend' },
|
|
58
|
+
{ name: '🎨 Frontend only', value: 'frontend' },
|
|
59
|
+
{ name: '🔌 MCP Server', value: 'mcp-server' },
|
|
60
|
+
{ name: '❓ Unknown / Other', value: 'unknown' },
|
|
61
|
+
];
|
|
62
|
+
const answers = await inquirer.prompt([
|
|
63
|
+
{
|
|
64
|
+
type: 'input',
|
|
65
|
+
name: 'name',
|
|
66
|
+
message: 'Project name:',
|
|
67
|
+
default: detected.name,
|
|
68
|
+
validate: (input) => {
|
|
69
|
+
if (!input.trim())
|
|
70
|
+
return 'Project name cannot be empty';
|
|
71
|
+
return true;
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'list',
|
|
76
|
+
name: 'structure',
|
|
77
|
+
message: 'Project structure:',
|
|
78
|
+
default: detected.structure !== 'unknown' ? detected.structure : 'backend',
|
|
79
|
+
choices: structureChoices,
|
|
80
|
+
},
|
|
81
|
+
// ── MCP-specific ────────────────────────────────────────────────────
|
|
82
|
+
{
|
|
83
|
+
type: 'list',
|
|
84
|
+
name: 'mcpLanguage',
|
|
85
|
+
message: 'MCP server language:',
|
|
86
|
+
when: (ans) => ans.structure === 'mcp-server',
|
|
87
|
+
default: detected.mcpLanguage ?? 'node-ts',
|
|
88
|
+
choices: [
|
|
89
|
+
{ name: '🟦 TypeScript / Node.js', value: 'node-ts' },
|
|
90
|
+
{ name: '🐍 Python', value: 'python' },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'list',
|
|
95
|
+
name: 'mcpTransport',
|
|
96
|
+
message: 'Transport type:',
|
|
97
|
+
when: (ans) => ans.structure === 'mcp-server',
|
|
98
|
+
default: detected.mcpTransport ?? 'stdio',
|
|
99
|
+
choices: [
|
|
100
|
+
{ name: '📟 stdio (CLI tools, local agents)', value: 'stdio' },
|
|
101
|
+
{ name: '🌐 SSE (web integrations, remote)', value: 'sse' },
|
|
102
|
+
{ name: '⚡ HTTP Stream (streamable HTTP)', value: 'http-stream' },
|
|
103
|
+
],
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'checkbox',
|
|
107
|
+
name: 'mcpFeatures',
|
|
108
|
+
message: 'MCP capabilities present in this project:',
|
|
109
|
+
when: (ans) => ans.structure === 'mcp-server',
|
|
110
|
+
choices: [
|
|
111
|
+
{ name: '🔧 Tools (callable functions)', value: 'tools', checked: true },
|
|
112
|
+
{ name: '📦 Resources (readable context)', value: 'resources', checked: false },
|
|
113
|
+
{ name: '💬 Prompts (prompt templates)', value: 'prompts', checked: false },
|
|
114
|
+
],
|
|
115
|
+
validate: (selected) => selected.length > 0 || 'Select at least one capability',
|
|
116
|
+
},
|
|
117
|
+
// ── Backend stack ───────────────────────────────────────────────────
|
|
118
|
+
{
|
|
119
|
+
type: 'list',
|
|
120
|
+
name: 'backend',
|
|
121
|
+
message: 'Backend stack:',
|
|
122
|
+
when: (ans) => ans.structure === 'backend' || ans.structure === 'monorepo',
|
|
123
|
+
default: detected.backend ?? 'node-nestjs',
|
|
124
|
+
choices: [
|
|
125
|
+
{ name: '🦀 Rust / Axum', value: 'rust-axum' },
|
|
126
|
+
{ name: '🟢 Node.js / NestJS', value: 'node-nestjs' },
|
|
127
|
+
{ name: '🐍 Python / FastAPI', value: 'python-fastapi' },
|
|
128
|
+
{ name: '🐘 PHP / Laravel', value: 'php-laravel' },
|
|
129
|
+
{ name: '📦 Other / Not listed', value: 'other' },
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'list',
|
|
134
|
+
name: 'frontend',
|
|
135
|
+
message: 'Frontend stack:',
|
|
136
|
+
when: (ans) => ans.structure === 'frontend' || ans.structure === 'monorepo',
|
|
137
|
+
default: detected.frontend ?? 'react',
|
|
138
|
+
choices: [
|
|
139
|
+
{ name: '⚛️ React 18+', value: 'react' },
|
|
140
|
+
{ name: '💚 Vue 3+', value: 'vue' },
|
|
141
|
+
{ name: '💚 Nuxt 3', value: 'nuxt' },
|
|
142
|
+
{ name: '📦 Other / Not listed', value: 'other' },
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
// ── Common ──────────────────────────────────────────────────────────
|
|
146
|
+
{
|
|
147
|
+
type: 'list',
|
|
148
|
+
name: 'ide',
|
|
149
|
+
message: 'Primary IDE / Agent:',
|
|
150
|
+
choices: [
|
|
151
|
+
{ name: '🖱️ Cursor', value: 'cursor' },
|
|
152
|
+
{ name: '🚀 Antigravity', value: 'antigravity' },
|
|
153
|
+
{ name: '🔀 Both (Hybrid)', value: 'hybrid' },
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'list',
|
|
158
|
+
name: 'graphrag',
|
|
159
|
+
message: 'GraphRAG backend:',
|
|
160
|
+
choices: [
|
|
161
|
+
{ name: '🗄️ SQLite (recommended - fast, local)', value: 'sqlite' },
|
|
162
|
+
{ name: '📄 JSON Graph (simple, no dependencies)', value: 'json' },
|
|
163
|
+
{ name: '🐳 Neo4j Docker (enterprise)', value: 'neo4j' },
|
|
164
|
+
],
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'confirm',
|
|
168
|
+
name: 'mcp',
|
|
169
|
+
message: 'Enable DARE MCP Server for context queries?',
|
|
170
|
+
default: true,
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'confirm',
|
|
174
|
+
name: 'confirmInstall',
|
|
175
|
+
message: (ans) => {
|
|
176
|
+
const files = buildFileList(ans);
|
|
177
|
+
return `Ready to install DARE. Files to create:\n${files}\n Proceed?`;
|
|
178
|
+
},
|
|
179
|
+
default: true,
|
|
180
|
+
},
|
|
181
|
+
]);
|
|
182
|
+
if (!answers.confirmInstall) {
|
|
183
|
+
console.log(chalk.yellow('\nInstallation cancelled.\n'));
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const installSpinner = ora('Installing DARE...').start();
|
|
187
|
+
try {
|
|
188
|
+
await installDareToExistingProject(targetDir, {
|
|
189
|
+
name: answers.name,
|
|
190
|
+
structure: answers.structure,
|
|
191
|
+
backend: answers.backend,
|
|
192
|
+
frontend: answers.frontend,
|
|
193
|
+
mcpTransport: answers.mcpTransport,
|
|
194
|
+
mcpLanguage: answers.mcpLanguage,
|
|
195
|
+
mcpFeatures: answers.mcpFeatures,
|
|
196
|
+
ide: answers.ide,
|
|
197
|
+
graphrag: answers.graphrag,
|
|
198
|
+
mcp: answers.mcp,
|
|
199
|
+
});
|
|
200
|
+
installSpinner.succeed(chalk.green('DARE installed successfully!'));
|
|
201
|
+
console.log(chalk.cyan('\n📋 Next steps:\n'));
|
|
202
|
+
console.log(` ${chalk.gray('1.')} dare design "Describe what this project does"`);
|
|
203
|
+
console.log(` ${chalk.gray('2.')} dare blueprint`);
|
|
204
|
+
console.log(` ${chalk.gray('3.')} dare execute --parallel\n`);
|
|
205
|
+
if (answers.structure === 'mcp-server') {
|
|
206
|
+
const inspectCmd = answers.mcpLanguage === 'python'
|
|
207
|
+
? 'npx @modelcontextprotocol/inspector python main.py'
|
|
208
|
+
: 'npx @modelcontextprotocol/inspector node dist/index.js';
|
|
209
|
+
console.log(chalk.gray(` Tip: test your MCP server with: ${inspectCmd}\n`));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
installSpinner.fail(chalk.red('Failed to install DARE'));
|
|
214
|
+
console.error(err);
|
|
215
|
+
process.exit(1);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
function buildFileList(ans) {
|
|
219
|
+
const files = [
|
|
220
|
+
' · dare.config.json',
|
|
221
|
+
' · DARE/ (README.md, EXECUTION/)',
|
|
222
|
+
];
|
|
223
|
+
const ide = ans.ide;
|
|
224
|
+
if (ide === 'cursor' || ide === 'hybrid') {
|
|
225
|
+
files.push(' · .cursorrules');
|
|
226
|
+
files.push(' · .cursor/rules/ + .cursor/commands/');
|
|
227
|
+
}
|
|
228
|
+
if (ide === 'antigravity' || ide === 'hybrid') {
|
|
229
|
+
files.push(' · .antigravityrules');
|
|
230
|
+
files.push(' · .agents/skills/ + .agents/workflows/');
|
|
231
|
+
}
|
|
232
|
+
return files.join('\n');
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,WAAW,SAoKpB,CAAC"}
|