dhurandhar 2.2.0 ā 2.2.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/CHANGELOG.md +21 -0
- package/cli/commands/setup.js +119 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@ 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.1] - 2026-04-02
|
|
9
|
+
|
|
10
|
+
### Fixed - NOW EXACTLY LIKE BMAD! š
|
|
11
|
+
- **`dhurandhar setup`** now creates directories in **current project directory**
|
|
12
|
+
- Creates **`_dhurandhar/`** directory (like BMAD's `_bmad/`)
|
|
13
|
+
- Creates **`_dhurandhar-output/`** directory (like BMAD's `_bmad-output/`)
|
|
14
|
+
- Creates AI assistant directory (`.augment/`, `.cursor/`, etc.)
|
|
15
|
+
- Creates initial context file in AI directory
|
|
16
|
+
- Directories created immediately on setup, not on init
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Setup creates project structure in current directory
|
|
20
|
+
- AI assistant integration happens during setup
|
|
21
|
+
- Better BMAD compatibility
|
|
22
|
+
|
|
23
|
+
### User Issue Addressed
|
|
24
|
+
User reported: "setup changed nothing, no _dhurandhar or _dhurandhar-output directories"
|
|
25
|
+
**Fixed**: Setup now creates these directories immediately!
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
8
29
|
## [2.2.0] - 2026-04-02
|
|
9
30
|
|
|
10
31
|
### 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,117 @@ 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
|
+
}
|
|
356
|
+
|
|
357
|
+
s.stop('Directories created');
|
|
358
|
+
|
|
359
|
+
console.log('');
|
|
360
|
+
clack.log.success('Created project directories:');
|
|
361
|
+
console.log(chalk.gray(` ${cwd}/_dhurandhar/`));
|
|
362
|
+
console.log(chalk.gray(` ${cwd}/_dhurandhar-output/`));
|
|
363
|
+
|
|
364
|
+
if (config.aiCodingAssistant && config.aiCodingAssistant !== 'none') {
|
|
365
|
+
const assistantDirs = {
|
|
366
|
+
'augment': '.augment',
|
|
367
|
+
'cursor': '.cursor',
|
|
368
|
+
'claude': '.claude',
|
|
369
|
+
'copilot': '.github',
|
|
370
|
+
};
|
|
371
|
+
const dir = assistantDirs[config.aiCodingAssistant];
|
|
372
|
+
if (dir) {
|
|
373
|
+
console.log(chalk.gray(` ${cwd}/${dir}/`));
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
console.log('');
|
|
377
|
+
|
|
378
|
+
} catch (error) {
|
|
379
|
+
s.stop('Failed to create directories');
|
|
380
|
+
clack.log.error(`Error creating directories: ${error.message}`);
|
|
381
|
+
}
|
|
382
|
+
}
|
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.1",
|
|
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",
|