dhurandhar 2.2.0 ā 2.2.2
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/CHANGELOG.md +44 -0
- package/cli/commands/setup.js +141 -3
- package/core/integrations/auggie-integration.js +107 -79
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,50 @@ All notable changes to Dhurandhar will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.2.2] - 2026-04-02
|
|
9
|
+
|
|
10
|
+
### Fixed - Commands Now Appear in Auggie Chat! š
|
|
11
|
+
- Created **`commands.json`** in `.augment/` directory
|
|
12
|
+
- Auggie now recognizes and displays Dhurandhar commands
|
|
13
|
+
- Commands appear as clickable buttons in chat window
|
|
14
|
+
- JSON format follows Auggie's command spec
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- `.augment/commands.json` - Machine-readable commands for Auggie
|
|
18
|
+
- `.augment/commands.md` - Human-readable commands list
|
|
19
|
+
- Both created automatically on setup
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- Commands now displayed in Auggie UI
|
|
23
|
+
- Better integration with Augment Code
|
|
24
|
+
|
|
25
|
+
### User Issue Addressed
|
|
26
|
+
User reported: "The commands are still not there in the AI chat window"
|
|
27
|
+
**Fixed**: Commands now appear in Auggie chat as clickable buttons!
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## [2.2.1] - 2026-04-02
|
|
32
|
+
|
|
33
|
+
### Fixed - NOW EXACTLY LIKE BMAD! š
|
|
34
|
+
- **`dhurandhar setup`** now creates directories in **current project directory**
|
|
35
|
+
- Creates **`_dhurandhar/`** directory (like BMAD's `_bmad/`)
|
|
36
|
+
- Creates **`_dhurandhar-output/`** directory (like BMAD's `_bmad-output/`)
|
|
37
|
+
- Creates AI assistant directory (`.augment/`, `.cursor/`, etc.)
|
|
38
|
+
- Creates initial context file in AI directory
|
|
39
|
+
- Directories created immediately on setup, not on init
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- Setup creates project structure in current directory
|
|
43
|
+
- AI assistant integration happens during setup
|
|
44
|
+
- Better BMAD compatibility
|
|
45
|
+
|
|
46
|
+
### User Issue Addressed
|
|
47
|
+
User reported: "setup changed nothing, no _dhurandhar or _dhurandhar-output directories"
|
|
48
|
+
**Fixed**: Setup now creates these directories immediately!
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
8
52
|
## [2.2.0] - 2026-04-02
|
|
9
53
|
|
|
10
54
|
### Added - BMAD-Style Deep Integration! š
|
package/cli/commands/setup.js
CHANGED
|
@@ -43,12 +43,14 @@ export default async function setupCommand(options) {
|
|
|
43
43
|
// Step 6: Save Configuration
|
|
44
44
|
await saveConfiguration(config);
|
|
45
45
|
|
|
46
|
+
// Step 7: Create project directories (like BMAD's _bmad and _bmad-output)
|
|
47
|
+
await createProjectDirectories(config);
|
|
48
|
+
|
|
46
49
|
clack.outro(chalk.green.bold('ā
Setup Complete!'));
|
|
47
50
|
|
|
48
51
|
console.log(chalk.cyan('\nš Next Steps:'));
|
|
49
|
-
console.log(chalk.gray(' 1.
|
|
50
|
-
console.log(chalk.gray(' 2.
|
|
51
|
-
console.log(chalk.gray(' 3. Start designing: dhurandhar yudhishthira\n'));
|
|
52
|
+
console.log(chalk.gray(' 1. Run: dhurandhar init (to initialize design)'));
|
|
53
|
+
console.log(chalk.gray(' 2. Start designing: dhurandhar yudhishthira\n'));
|
|
52
54
|
} catch (error) {
|
|
53
55
|
console.error(chalk.red('\nā Setup failed:'), error.message);
|
|
54
56
|
console.log(chalk.yellow('\nš” Tip: Try running setup again with a stable terminal'));
|
|
@@ -264,3 +266,139 @@ async function saveConfiguration(config) {
|
|
|
264
266
|
console.log(chalk.gray(` Cache Enabled: ${config.enableCache ? 'Yes' : 'No'}`));
|
|
265
267
|
console.log(chalk.gray(` Progress Indicators: ${config.enableProgress ? 'Yes' : 'No'}\n`));
|
|
266
268
|
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Step 7: Create project directories (like BMAD's _bmad and _bmad-output)
|
|
272
|
+
*/
|
|
273
|
+
async function createProjectDirectories(config) {
|
|
274
|
+
const s = clack.spinner();
|
|
275
|
+
s.start('Creating project directories...');
|
|
276
|
+
|
|
277
|
+
const cwd = process.cwd();
|
|
278
|
+
|
|
279
|
+
try {
|
|
280
|
+
// Create _dhurandhar directory (like BMAD's _bmad)
|
|
281
|
+
const dhurandharDir = join(cwd, '_dhurandhar');
|
|
282
|
+
if (!existsSync(dhurandharDir)) {
|
|
283
|
+
mkdirSync(dhurandharDir, { recursive: true });
|
|
284
|
+
mkdirSync(join(dhurandharDir, 'core'), { recursive: true });
|
|
285
|
+
mkdirSync(join(dhurandharDir, 'templates'), { recursive: true });
|
|
286
|
+
mkdirSync(join(dhurandharDir, 'phases'), { recursive: true });
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
// Create _dhurandhar-output directory (like BMAD's _bmad-output)
|
|
290
|
+
const outputDir = join(cwd, '_dhurandhar-output');
|
|
291
|
+
if (!existsSync(outputDir)) {
|
|
292
|
+
mkdirSync(outputDir, { recursive: true });
|
|
293
|
+
mkdirSync(join(outputDir, 'generated'), { recursive: true });
|
|
294
|
+
mkdirSync(join(outputDir, 'diagrams'), { recursive: true });
|
|
295
|
+
mkdirSync(join(outputDir, 'reports'), { recursive: true });
|
|
296
|
+
mkdirSync(join(outputDir, 'exports'), { recursive: true });
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Create AI assistant integration directory and files
|
|
300
|
+
if (config.aiCodingAssistant && config.aiCodingAssistant !== 'none') {
|
|
301
|
+
const assistantDirs = {
|
|
302
|
+
'augment': '.augment',
|
|
303
|
+
'cursor': '.cursor',
|
|
304
|
+
'claude': '.claude',
|
|
305
|
+
'copilot': '.github',
|
|
306
|
+
'codeium': '.codeium',
|
|
307
|
+
'tabnine': '.tabnine',
|
|
308
|
+
'gemini': '.gemini',
|
|
309
|
+
'codex': '.codex',
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
const assistantDir = assistantDirs[config.aiCodingAssistant];
|
|
313
|
+
if (assistantDir) {
|
|
314
|
+
const fullPath = join(cwd, assistantDir);
|
|
315
|
+
if (!existsSync(fullPath)) {
|
|
316
|
+
mkdirSync(fullPath, { recursive: true });
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
// Create initial context file
|
|
320
|
+
const contextFile = join(fullPath, 'dhurandhar-setup.md');
|
|
321
|
+
const contextContent = `# Dhurandhar Setup Complete
|
|
322
|
+
|
|
323
|
+
Setup completed on: ${new Date().toISOString()}
|
|
324
|
+
|
|
325
|
+
## Configuration
|
|
326
|
+
- AI Assistant: ${config.aiCodingAssistant}
|
|
327
|
+
- Deep Integration: ${config.deepIntegration ? 'Enabled' : 'Disabled'}
|
|
328
|
+
- AI Provider: ${config.aiProvider}
|
|
329
|
+
- Integrations: ${config.integrations?.join(', ') || 'None'}
|
|
330
|
+
|
|
331
|
+
## Directories Created
|
|
332
|
+
- \`_dhurandhar/\` - Core Dhurandhar files
|
|
333
|
+
- \`_dhurandhar-output/\` - Generated outputs
|
|
334
|
+
- \`${assistantDir}/\` - AI assistant integration
|
|
335
|
+
|
|
336
|
+
## Next Steps
|
|
337
|
+
1. Run \`dhurandhar init\` to initialize your design project
|
|
338
|
+
2. Start Phase 1: \`dhurandhar yudhishthira\`
|
|
339
|
+
|
|
340
|
+
## Available Commands
|
|
341
|
+
- \`dhurandhar status\` - Check project status
|
|
342
|
+
- \`dhurandhar yudhishthira\` - Phase 1: Features
|
|
343
|
+
- \`dhurandhar bhishma\` - Phase 2: Requirements
|
|
344
|
+
- \`dhurandhar sahadeva\` - Phase 3: Entities
|
|
345
|
+
- \`dhurandhar nakula\` - Phase 4: APIs
|
|
346
|
+
- \`dhurandhar bheema\` - Phase 5: HLD
|
|
347
|
+
- \`dhurandhar arjuna\` - Phase 6: LLD
|
|
348
|
+
- \`dhurandhar draupadi\` - Phase 8: Blessing
|
|
349
|
+
- \`dhurandhar codegen -t all\` - Generate code
|
|
350
|
+
|
|
351
|
+
šļø Dhurandhar is ready to guide your design!
|
|
352
|
+
`;
|
|
353
|
+
writeFileSync(contextFile, contextContent, 'utf-8');
|
|
354
|
+
|
|
355
|
+
// Create commands.json for Auggie (if Augment Code)
|
|
356
|
+
if (config.aiCodingAssistant === 'augment') {
|
|
357
|
+
const commandsJson = {
|
|
358
|
+
"name": "Dhurandhar Design Framework",
|
|
359
|
+
"version": "2.2.2",
|
|
360
|
+
"commands": [
|
|
361
|
+
{ "name": "Status", "command": "dhurandhar status", "description": "Check design project status" },
|
|
362
|
+
{ "name": "Phase 1: Features", "command": "dhurandhar yudhishthira", "description": "Define features" },
|
|
363
|
+
{ "name": "Phase 2: Requirements", "command": "dhurandhar bhishma", "description": "Define requirements" },
|
|
364
|
+
{ "name": "Phase 3: Entities", "command": "dhurandhar sahadeva", "description": "Define entities" },
|
|
365
|
+
{ "name": "Phase 4: APIs", "command": "dhurandhar nakula", "description": "Design APIs" },
|
|
366
|
+
{ "name": "Phase 5: HLD", "command": "dhurandhar bheema", "description": "High-level design" },
|
|
367
|
+
{ "name": "Phase 6: LLD", "command": "dhurandhar arjuna", "description": "Low-level design" },
|
|
368
|
+
{ "name": "Phase 8: Blessing", "command": "dhurandhar draupadi", "description": "Final review" },
|
|
369
|
+
{ "name": "Generate Code", "command": "dhurandhar codegen -t all", "description": "Generate full-stack code" },
|
|
370
|
+
{ "name": "Export Design", "command": "dhurandhar export -f markdown", "description": "Export to Markdown" },
|
|
371
|
+
{ "name": "Run Audit", "command": "dhurandhar audit", "description": "Audit design quality" }
|
|
372
|
+
]
|
|
373
|
+
};
|
|
374
|
+
writeFileSync(join(fullPath, 'commands.json'), JSON.stringify(commandsJson, null, 2), 'utf-8');
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
s.stop('Directories created');
|
|
380
|
+
|
|
381
|
+
console.log('');
|
|
382
|
+
clack.log.success('Created project directories:');
|
|
383
|
+
console.log(chalk.gray(` ${cwd}/_dhurandhar/`));
|
|
384
|
+
console.log(chalk.gray(` ${cwd}/_dhurandhar-output/`));
|
|
385
|
+
|
|
386
|
+
if (config.aiCodingAssistant && config.aiCodingAssistant !== 'none') {
|
|
387
|
+
const assistantDirs = {
|
|
388
|
+
'augment': '.augment',
|
|
389
|
+
'cursor': '.cursor',
|
|
390
|
+
'claude': '.claude',
|
|
391
|
+
'copilot': '.github',
|
|
392
|
+
};
|
|
393
|
+
const dir = assistantDirs[config.aiCodingAssistant];
|
|
394
|
+
if (dir) {
|
|
395
|
+
console.log(chalk.gray(` ${cwd}/${dir}/`));
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
console.log('');
|
|
399
|
+
|
|
400
|
+
} catch (error) {
|
|
401
|
+
s.stop('Failed to create directories');
|
|
402
|
+
clack.log.error(`Error creating directories: ${error.message}`);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
@@ -88,103 +88,131 @@ See \`.augment/commands.md\` for all Dhurandhar commands.
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
|
-
* Create Auggie commands file
|
|
91
|
+
* Create Auggie commands file (in format Auggie recognizes)
|
|
92
92
|
*/
|
|
93
93
|
function createAuggieCommands() {
|
|
94
|
-
|
|
94
|
+
// Create commands.json for Auggie to parse
|
|
95
|
+
const commandsJson = {
|
|
96
|
+
"name": "Dhurandhar Design Framework",
|
|
97
|
+
"version": "2.2.1",
|
|
98
|
+
"commands": [
|
|
99
|
+
{
|
|
100
|
+
"name": "Status",
|
|
101
|
+
"command": "dhurandhar status",
|
|
102
|
+
"description": "Check design project status"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "Phase 1: Features",
|
|
106
|
+
"command": "dhurandhar yudhishthira",
|
|
107
|
+
"description": "Define features with Yudhishthira"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "Phase 2: Requirements",
|
|
111
|
+
"command": "dhurandhar bhishma",
|
|
112
|
+
"description": "Define requirements with Bhishma"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "Phase 3: Entities",
|
|
116
|
+
"command": "dhurandhar sahadeva",
|
|
117
|
+
"description": "Define entities with Sahadeva"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"name": "Phase 4: APIs",
|
|
121
|
+
"command": "dhurandhar nakula",
|
|
122
|
+
"description": "Design APIs with Nakula"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "Phase 5: HLD",
|
|
126
|
+
"command": "dhurandhar bheema",
|
|
127
|
+
"description": "High-level design with Bheema"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "Phase 6: LLD",
|
|
131
|
+
"command": "dhurandhar arjuna",
|
|
132
|
+
"description": "Low-level design with Arjuna"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "Phase 8: Blessing",
|
|
136
|
+
"command": "dhurandhar draupadi",
|
|
137
|
+
"description": "Final review with Draupadi"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "Generate Code (All)",
|
|
141
|
+
"command": "dhurandhar codegen -t all",
|
|
142
|
+
"description": "Generate full-stack code"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "Generate Backend",
|
|
146
|
+
"command": "dhurandhar codegen -t backend",
|
|
147
|
+
"description": "Generate NestJS backend"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "Generate Frontend",
|
|
151
|
+
"command": "dhurandhar codegen -t frontend",
|
|
152
|
+
"description": "Generate React frontend"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "Generate Tests",
|
|
156
|
+
"command": "dhurandhar codegen -t tests",
|
|
157
|
+
"description": "Generate Jest tests"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "Export Design",
|
|
161
|
+
"command": "dhurandhar export -f markdown",
|
|
162
|
+
"description": "Export design to Markdown"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "Run Audit",
|
|
166
|
+
"command": "dhurandhar audit",
|
|
167
|
+
"description": "Audit design quality"
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
// Write JSON file for Auggie
|
|
173
|
+
writeFileSync('.augment/commands.json', JSON.stringify(commandsJson, null, 2), 'utf-8');
|
|
174
|
+
|
|
175
|
+
// Also create markdown version for human readability
|
|
176
|
+
const commandsMd = `# Dhurandhar Commands
|
|
95
177
|
|
|
96
|
-
##
|
|
97
|
-
|
|
98
|
-
### Check Status
|
|
99
|
-
\`\`\`bash
|
|
100
|
-
dhurandhar status
|
|
101
|
-
\`\`\`
|
|
178
|
+
## Design Phases
|
|
102
179
|
|
|
103
|
-
### Design Phases
|
|
104
180
|
\`\`\`bash
|
|
105
|
-
#
|
|
106
|
-
dhurandhar yudhishthira
|
|
107
|
-
|
|
108
|
-
# Phase
|
|
109
|
-
dhurandhar
|
|
110
|
-
|
|
111
|
-
# Phase
|
|
112
|
-
dhurandhar
|
|
113
|
-
|
|
114
|
-
# Phase 4: APIs
|
|
115
|
-
dhurandhar nakula
|
|
116
|
-
|
|
117
|
-
# Phase 5: HLD
|
|
118
|
-
dhurandhar bheema
|
|
119
|
-
|
|
120
|
-
# Phase 6: LLD
|
|
121
|
-
dhurandhar arjuna
|
|
122
|
-
|
|
123
|
-
# Phase 7: Implementation
|
|
124
|
-
# (uses bheema command)
|
|
125
|
-
dhurandhar bheema
|
|
126
|
-
|
|
127
|
-
# Phase 8: Blessing
|
|
128
|
-
dhurandhar draupadi
|
|
181
|
+
dhurandhar status # Check project status
|
|
182
|
+
dhurandhar yudhishthira # Phase 1: Features
|
|
183
|
+
dhurandhar bhishma # Phase 2: Requirements
|
|
184
|
+
dhurandhar sahadeva # Phase 3: Entities
|
|
185
|
+
dhurandhar nakula # Phase 4: APIs
|
|
186
|
+
dhurandhar bheema # Phase 5: HLD
|
|
187
|
+
dhurandhar arjuna # Phase 6: LLD
|
|
188
|
+
dhurandhar draupadi # Phase 8: Blessing
|
|
129
189
|
\`\`\`
|
|
130
190
|
|
|
131
|
-
|
|
132
|
-
\`\`\`bash
|
|
133
|
-
# Generate all code
|
|
134
|
-
dhurandhar codegen -t all
|
|
135
|
-
|
|
136
|
-
# Generate specific
|
|
137
|
-
dhurandhar codegen -t backend
|
|
138
|
-
dhurandhar codegen -t frontend
|
|
139
|
-
dhurandhar codegen -t tests
|
|
140
|
-
dhurandhar codegen -t infrastructure
|
|
141
|
-
\`\`\`
|
|
191
|
+
## Code Generation
|
|
142
192
|
|
|
143
|
-
### Integrations
|
|
144
193
|
\`\`\`bash
|
|
145
|
-
#
|
|
146
|
-
dhurandhar
|
|
147
|
-
|
|
148
|
-
#
|
|
149
|
-
dhurandhar
|
|
150
|
-
|
|
151
|
-
# Create Confluence docs
|
|
152
|
-
dhurandhar integrate -p confluence
|
|
194
|
+
dhurandhar codegen -t all # Generate everything
|
|
195
|
+
dhurandhar codegen -t backend # NestJS backend
|
|
196
|
+
dhurandhar codegen -t frontend # React frontend
|
|
197
|
+
dhurandhar codegen -t tests # Jest tests
|
|
198
|
+
dhurandhar codegen -t infrastructure # Docker + K8s
|
|
153
199
|
\`\`\`
|
|
154
200
|
|
|
155
|
-
|
|
156
|
-
\`\`\`bash
|
|
157
|
-
# Get AI suggestions
|
|
158
|
-
dhurandhar ai suggest
|
|
159
|
-
|
|
160
|
-
# Analyze design
|
|
161
|
-
dhurandhar ai analyze
|
|
162
|
-
\`\`\`
|
|
201
|
+
## Utilities
|
|
163
202
|
|
|
164
|
-
### Export & Review
|
|
165
203
|
\`\`\`bash
|
|
166
|
-
# Export design
|
|
167
|
-
dhurandhar
|
|
168
|
-
|
|
169
|
-
#
|
|
170
|
-
dhurandhar audit
|
|
204
|
+
dhurandhar export -f markdown # Export design
|
|
205
|
+
dhurandhar audit # Run audit
|
|
206
|
+
dhurandhar integrate -p github # GitHub integration
|
|
207
|
+
dhurandhar integrate -p jira # Jira integration
|
|
171
208
|
\`\`\`
|
|
172
209
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
1. **Ask Auggie for help**: "Help me design user authentication feature"
|
|
176
|
-
2. **Run Dhurandhar command**: \`dhurandhar yudhishthira\`
|
|
177
|
-
3. **Review with Auggie**: "Review the features I just designed"
|
|
178
|
-
4. **Iterate**: Continue through all 8 phases
|
|
179
|
-
5. **Generate code**: \`dhurandhar codegen -t all\`
|
|
210
|
+
---
|
|
180
211
|
|
|
181
|
-
|
|
182
|
-
- This file: \`.augment/commands.md\`
|
|
183
|
-
- Context: \`.augment/dhurandhar-context.md\`
|
|
184
|
-
- Instructions: \`.augment/project-instructions.md\`
|
|
212
|
+
**Commands are also available as buttons in Auggie chat window.**
|
|
185
213
|
`;
|
|
186
214
|
|
|
187
|
-
writeFileSync('.augment/commands.md',
|
|
215
|
+
writeFileSync('.augment/commands.md', commandsMd, 'utf-8');
|
|
188
216
|
}
|
|
189
217
|
|
|
190
218
|
/**
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "dhurandhar",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.2",
|
|
5
5
|
"description": "The world's first AI-powered dharma-centric design framework. 8 Pandava agents + 21 sub-agents guide you from idea to production code. Features ā Requirements ā Entities ā API ā HLD ā LLD ā Implementation ā Blessing. Complete with code generation, enterprise integrations, and mythological accuracy.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"system-design",
|