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 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! šŸŽ‰
@@ -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. cd to your project directory'));
50
- console.log(chalk.gray(' 2. Run: dhurandhar init'));
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.0",
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",