@wundr.io/cli 1.0.11 → 1.0.13

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.
Files changed (180) hide show
  1. package/bin/wundr.js +8 -4
  2. package/dist/ai/ai-service.d.ts.map +1 -1
  3. package/dist/ai/ai-service.js.map +1 -1
  4. package/dist/ai/claude-client.js.map +1 -1
  5. package/dist/ai/conversation-manager.js.map +1 -1
  6. package/dist/commands/ai.d.ts.map +1 -1
  7. package/dist/commands/ai.js +179 -24
  8. package/dist/commands/ai.js.map +1 -1
  9. package/dist/commands/analyze-optimized.d.ts.map +1 -1
  10. package/dist/commands/analyze-optimized.js +15 -6
  11. package/dist/commands/analyze-optimized.js.map +1 -1
  12. package/dist/commands/batch.d.ts +22 -0
  13. package/dist/commands/batch.d.ts.map +1 -1
  14. package/dist/commands/batch.js +130 -14
  15. package/dist/commands/batch.js.map +1 -1
  16. package/dist/commands/chat.d.ts +1 -0
  17. package/dist/commands/chat.d.ts.map +1 -1
  18. package/dist/commands/chat.js +7 -3
  19. package/dist/commands/chat.js.map +1 -1
  20. package/dist/commands/claude-init.d.ts +1 -1
  21. package/dist/commands/claude-init.d.ts.map +1 -1
  22. package/dist/commands/claude-init.js +16 -16
  23. package/dist/commands/claude-init.js.map +1 -1
  24. package/dist/commands/claude-setup.d.ts +5 -5
  25. package/dist/commands/claude-setup.d.ts.map +1 -1
  26. package/dist/commands/claude-setup.js +65 -59
  27. package/dist/commands/claude-setup.js.map +1 -1
  28. package/dist/commands/computer-setup.d.ts +1 -0
  29. package/dist/commands/computer-setup.d.ts.map +1 -1
  30. package/dist/commands/computer-setup.js +35 -7
  31. package/dist/commands/computer-setup.js.map +1 -1
  32. package/dist/commands/dashboard.js.map +1 -1
  33. package/dist/commands/govern.js.map +1 -1
  34. package/dist/commands/init.d.ts.map +1 -1
  35. package/dist/commands/init.js +3 -3
  36. package/dist/commands/init.js.map +1 -1
  37. package/dist/commands/orchestrator.d.ts.map +1 -1
  38. package/dist/commands/orchestrator.js +11 -4
  39. package/dist/commands/orchestrator.js.map +1 -1
  40. package/dist/commands/performance-optimizer.d.ts.map +1 -1
  41. package/dist/commands/performance-optimizer.js.map +1 -1
  42. package/dist/commands/rag.d.ts.map +1 -1
  43. package/dist/commands/rag.js +9 -6
  44. package/dist/commands/rag.js.map +1 -1
  45. package/dist/commands/setup.d.ts +5 -10
  46. package/dist/commands/setup.d.ts.map +1 -1
  47. package/dist/commands/setup.js +35 -260
  48. package/dist/commands/setup.js.map +1 -1
  49. package/dist/commands/watch.d.ts.map +1 -1
  50. package/dist/commands/watch.js.map +1 -1
  51. package/dist/context/session-manager.js.map +1 -1
  52. package/dist/framework/command-interface.d.ts +349 -0
  53. package/dist/framework/command-interface.d.ts.map +1 -0
  54. package/dist/framework/command-interface.js +101 -0
  55. package/dist/framework/command-interface.js.map +1 -0
  56. package/dist/framework/command-registry.d.ts +173 -0
  57. package/dist/framework/command-registry.d.ts.map +1 -0
  58. package/dist/framework/command-registry.js +734 -0
  59. package/dist/framework/command-registry.js.map +1 -0
  60. package/dist/framework/completion-exporter.d.ts +79 -0
  61. package/dist/framework/completion-exporter.d.ts.map +1 -0
  62. package/dist/framework/completion-exporter.js +259 -0
  63. package/dist/framework/completion-exporter.js.map +1 -0
  64. package/dist/framework/debug-logger.d.ts +163 -0
  65. package/dist/framework/debug-logger.d.ts.map +1 -0
  66. package/dist/framework/debug-logger.js +373 -0
  67. package/dist/framework/debug-logger.js.map +1 -0
  68. package/dist/framework/error-handler.d.ts +196 -0
  69. package/dist/framework/error-handler.d.ts.map +1 -0
  70. package/dist/framework/error-handler.js +613 -0
  71. package/dist/framework/error-handler.js.map +1 -0
  72. package/dist/framework/help-generator.d.ts +78 -0
  73. package/dist/framework/help-generator.d.ts.map +1 -0
  74. package/dist/framework/help-generator.js +414 -0
  75. package/dist/framework/help-generator.js.map +1 -0
  76. package/dist/framework/index.d.ts +62 -0
  77. package/dist/framework/index.d.ts.map +1 -0
  78. package/dist/framework/index.js +95 -0
  79. package/dist/framework/index.js.map +1 -0
  80. package/dist/framework/interactive-repl.d.ts +138 -0
  81. package/dist/framework/interactive-repl.d.ts.map +1 -0
  82. package/dist/framework/interactive-repl.js +567 -0
  83. package/dist/framework/interactive-repl.js.map +1 -0
  84. package/dist/framework/output-formatter.d.ts +274 -0
  85. package/dist/framework/output-formatter.d.ts.map +1 -0
  86. package/dist/framework/output-formatter.js +545 -0
  87. package/dist/framework/output-formatter.js.map +1 -0
  88. package/dist/framework/progress-manager.d.ts +192 -0
  89. package/dist/framework/progress-manager.d.ts.map +1 -0
  90. package/dist/framework/progress-manager.js +408 -0
  91. package/dist/framework/progress-manager.js.map +1 -0
  92. package/dist/interactive/interactive-mode.js.map +1 -1
  93. package/dist/nlp/command-mapper.js.map +1 -1
  94. package/dist/nlp/command-parser.js.map +1 -1
  95. package/dist/nlp/intent-parser.d.ts.map +1 -1
  96. package/dist/nlp/intent-parser.js +4 -2
  97. package/dist/nlp/intent-parser.js.map +1 -1
  98. package/dist/plugins/plugin-manager.d.ts +2 -1
  99. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  100. package/dist/plugins/plugin-manager.js +30 -19
  101. package/dist/plugins/plugin-manager.js.map +1 -1
  102. package/dist/utils/backup-rollback-manager.d.ts.map +1 -1
  103. package/dist/utils/backup-rollback-manager.js +1 -2
  104. package/dist/utils/backup-rollback-manager.js.map +1 -1
  105. package/dist/utils/logger.js.map +1 -1
  106. package/package.json +6 -6
  107. package/src/ai/ai-service.ts +16 -17
  108. package/src/ai/claude-client.ts +16 -16
  109. package/src/ai/conversation-manager.ts +29 -29
  110. package/src/cli.ts +4 -4
  111. package/src/commands/ai.ts +246 -78
  112. package/src/commands/alignment.ts +74 -74
  113. package/src/commands/analyze-optimized.ts +111 -78
  114. package/src/commands/analyze.ts +14 -14
  115. package/src/commands/batch.ts +179 -42
  116. package/src/commands/chat.ts +37 -30
  117. package/src/commands/claude-init.ts +41 -45
  118. package/src/commands/claude-setup.ts +204 -119
  119. package/src/commands/computer-setup.ts +85 -43
  120. package/src/commands/create-command.ts +4 -4
  121. package/src/commands/create.ts +27 -27
  122. package/src/commands/dashboard.ts +24 -24
  123. package/src/commands/govern.ts +25 -25
  124. package/src/commands/governance.ts +34 -34
  125. package/src/commands/guardian.ts +56 -56
  126. package/src/commands/init.ts +25 -22
  127. package/src/commands/orchestrator.ts +68 -41
  128. package/src/commands/performance-optimizer.ts +34 -35
  129. package/src/commands/plugins.ts +27 -27
  130. package/src/commands/project-update.ts +175 -72
  131. package/src/commands/rag.ts +185 -78
  132. package/src/commands/session.ts +35 -35
  133. package/src/commands/setup.ts +40 -344
  134. package/src/commands/test-init.ts +3 -3
  135. package/src/commands/test.ts +4 -4
  136. package/src/commands/watch.ts +28 -29
  137. package/src/commands/worktree.ts +49 -49
  138. package/src/context/context-manager.ts +10 -10
  139. package/src/context/session-manager.ts +41 -41
  140. package/src/framework/command-interface.ts +520 -0
  141. package/src/framework/command-registry.ts +942 -0
  142. package/src/framework/completion-exporter.ts +383 -0
  143. package/src/framework/debug-logger.ts +519 -0
  144. package/src/framework/error-handler.ts +867 -0
  145. package/src/framework/help-generator.ts +540 -0
  146. package/src/framework/index.ts +169 -0
  147. package/src/framework/interactive-repl.ts +703 -0
  148. package/src/framework/output-formatter.ts +834 -0
  149. package/src/framework/progress-manager.ts +539 -0
  150. package/src/index.ts +4 -4
  151. package/src/interactive/interactive-mode.ts +16 -16
  152. package/src/lib/conflict-resolution.ts +799 -9
  153. package/src/lib/merge-strategy.ts +529 -7
  154. package/src/lib/safety-mechanisms.ts +422 -18
  155. package/src/lib/state-detection.ts +1015 -13
  156. package/src/nlp/command-mapper.ts +29 -29
  157. package/src/nlp/command-parser.ts +17 -17
  158. package/src/nlp/intent-classifier.ts +7 -7
  159. package/src/nlp/intent-parser.ts +54 -52
  160. package/src/plugins/plugin-manager.ts +61 -39
  161. package/src/tests/computer-setup-integration.test.ts +46 -15
  162. package/src/types/modules.d.ts +424 -1
  163. package/src/utils/backup-rollback-manager.ts +11 -8
  164. package/src/utils/config-manager.ts +3 -3
  165. package/src/utils/error-handler.ts +2 -2
  166. package/src/utils/logger.ts +22 -22
  167. package/templates/batch/ci-cd.yaml +7 -7
  168. package/test-suites/api/health.spec.ts +20 -23
  169. package/test-suites/helpers/test-config.ts +14 -13
  170. package/test-suites/ui/accessibility.spec.ts +27 -22
  171. package/test-suites/ui/smoke.spec.ts +26 -21
  172. package/dist/commands/computer-setup-commands.d.ts +0 -53
  173. package/dist/commands/computer-setup-commands.d.ts.map +0 -1
  174. package/dist/commands/computer-setup-commands.js +0 -705
  175. package/dist/commands/computer-setup-commands.js.map +0 -1
  176. package/dist/commands/vp.d.ts +0 -7
  177. package/dist/commands/vp.d.ts.map +0 -1
  178. package/dist/commands/vp.js +0 -571
  179. package/dist/commands/vp.js.map +0 -1
  180. package/src/commands/computer-setup-commands.ts +0 -872
@@ -164,7 +164,7 @@ Examples:
164
164
  ${chalk.green('wundr session pause <sessionId>')} Pause a running session
165
165
  ${chalk.green('wundr session resume <sessionId>')}Resume a paused session
166
166
  ${chalk.green('wundr session kill <sessionId>')} Terminate a session
167
- `),
167
+ `)
168
168
  );
169
169
 
170
170
  // List command (default)
@@ -174,7 +174,7 @@ Examples:
174
174
  .option('-a, --all', 'Show all sessions including completed and terminated')
175
175
  .option(
176
176
  '-s, --status <status>',
177
- 'Filter by status (active, paused, completed, error, terminated)',
177
+ 'Filter by status (active, paused, completed, error, terminated)'
178
178
  )
179
179
  .option('-f, --format <format>', 'Output format (table, json)', 'table')
180
180
  .action(async options => {
@@ -236,7 +236,7 @@ async function listSessions(options: {
236
236
  } else if (!options.all) {
237
237
  // By default, only show active and paused sessions
238
238
  sessions = sessions.filter(
239
- s => s.status === 'active' || s.status === 'paused',
239
+ s => s.status === 'active' || s.status === 'paused'
240
240
  );
241
241
  }
242
242
 
@@ -251,8 +251,8 @@ async function listSessions(options: {
251
251
  sessions: sessions,
252
252
  },
253
253
  null,
254
- 2,
255
- ),
254
+ 2
255
+ )
256
256
  );
257
257
  return;
258
258
  }
@@ -264,7 +264,7 @@ async function listSessions(options: {
264
264
  console.log(chalk.yellow('\nNo sessions found.'));
265
265
  if (!options.all && !options.status) {
266
266
  console.log(
267
- chalk.gray('Use --all to show completed and terminated sessions.'),
267
+ chalk.gray('Use --all to show completed and terminated sessions.')
268
268
  );
269
269
  }
270
270
  console.log('');
@@ -278,8 +278,8 @@ async function listSessions(options: {
278
278
  padRight('Status', 12) +
279
279
  padRight('Started At', 22) +
280
280
  padRight('Slot ID', 10) +
281
- padRight('Worktree Path', 36),
282
- ),
281
+ padRight('Worktree Path', 36)
282
+ )
283
283
  );
284
284
  console.log(chalk.gray('-'.repeat(100)));
285
285
 
@@ -294,7 +294,7 @@ async function listSessions(options: {
294
294
  statusColor(padRight(getStatusIcon(session.status), 12)) +
295
295
  padRight(startedAt, 22) +
296
296
  padRight(session.slotId, 10) +
297
- chalk.gray(padRight(worktreePath, 36)),
297
+ chalk.gray(padRight(worktreePath, 36))
298
298
  );
299
299
  }
300
300
 
@@ -304,14 +304,14 @@ async function listSessions(options: {
304
304
  } catch (error) {
305
305
  spinner.fail('Failed to load sessions');
306
306
  console.error(
307
- chalk.red(error instanceof Error ? error.message : String(error)),
307
+ chalk.red(error instanceof Error ? error.message : String(error))
308
308
  );
309
309
  }
310
310
  }
311
311
 
312
312
  async function showSessionInfo(
313
313
  sessionId: string,
314
- options: { format?: 'table' | 'json' },
314
+ options: { format?: 'table' | 'json' }
315
315
  ): Promise<void> {
316
316
  const spinner = ora(`Loading session ${sessionId}...`).start();
317
317
 
@@ -337,32 +337,32 @@ async function showSessionInfo(
337
337
  // Basic info
338
338
  const statusColor = getStatusColor(session.status);
339
339
  console.log(
340
- chalk.white('Session ID: ') + chalk.green(session.sessionId),
340
+ chalk.white('Session ID: ') + chalk.green(session.sessionId)
341
341
  );
342
342
  console.log(
343
343
  chalk.white('Status: ') +
344
- statusColor(getStatusIcon(session.status)),
344
+ statusColor(getStatusIcon(session.status))
345
345
  );
346
346
  console.log(chalk.white('Slot ID: ') + session.slotId);
347
347
  console.log(
348
- chalk.white('Worktree Path: ') + chalk.gray(session.worktreePath),
348
+ chalk.white('Worktree Path: ') + chalk.gray(session.worktreePath)
349
349
  );
350
350
  console.log(
351
351
  chalk.white('Started At: ') +
352
- new Date(session.startedAt).toLocaleString(),
352
+ new Date(session.startedAt).toLocaleString()
353
353
  );
354
354
 
355
355
  if (session.pausedAt) {
356
356
  console.log(
357
357
  chalk.white('Paused At: ') +
358
- new Date(session.pausedAt).toLocaleString(),
358
+ new Date(session.pausedAt).toLocaleString()
359
359
  );
360
360
  }
361
361
 
362
362
  if (session.lastActivity) {
363
363
  console.log(
364
364
  chalk.white('Last Activity: ') +
365
- new Date(session.lastActivity).toLocaleString(),
365
+ new Date(session.lastActivity).toLocaleString()
366
366
  );
367
367
  }
368
368
 
@@ -397,8 +397,8 @@ async function showSessionInfo(
397
397
  padRight('Agent ID', 15) +
398
398
  padRight('Type', 15) +
399
399
  padRight('Status', 12) +
400
- padRight('Tasks', 8),
401
- ),
400
+ padRight('Tasks', 8)
401
+ )
402
402
  );
403
403
  console.log(chalk.gray('-'.repeat(50)));
404
404
 
@@ -413,7 +413,7 @@ async function showSessionInfo(
413
413
  padRight(agent.agentId, 15) +
414
414
  padRight(agent.type, 15) +
415
415
  agentStatusColor(padRight(`[${agent.status.toUpperCase()}]`, 12)) +
416
- padRight(String(agent.taskCount), 8),
416
+ padRight(String(agent.taskCount), 8)
417
417
  );
418
418
  }
419
419
  } else {
@@ -426,17 +426,17 @@ async function showSessionInfo(
426
426
  console.log(chalk.cyan('Session Metrics'));
427
427
  console.log(
428
428
  chalk.white('Tasks: ') +
429
- `${session.metrics.tasksCompleted}/${session.metrics.tasksTotal}`,
429
+ `${session.metrics.tasksCompleted}/${session.metrics.tasksTotal}`
430
430
  );
431
431
  console.log(
432
- chalk.white('Duration: ') + formatDuration(session.metrics.duration),
432
+ chalk.white('Duration: ') + formatDuration(session.metrics.duration)
433
433
  );
434
434
  console.log(
435
- chalk.white('Tokens: ') + session.metrics.tokensUsed.toLocaleString(),
435
+ chalk.white('Tokens: ') + session.metrics.tokensUsed.toLocaleString()
436
436
  );
437
437
  console.log(
438
438
  chalk.white('Errors: ') +
439
- (session.metrics.errors > 0 ? chalk.red(session.metrics.errors) : '0'),
439
+ (session.metrics.errors > 0 ? chalk.red(session.metrics.errors) : '0')
440
440
  );
441
441
  }
442
442
 
@@ -445,7 +445,7 @@ async function showSessionInfo(
445
445
  } catch (error) {
446
446
  spinner.fail('Failed to load session info');
447
447
  console.error(
448
- chalk.red(error instanceof Error ? error.message : String(error)),
448
+ chalk.red(error instanceof Error ? error.message : String(error))
449
449
  );
450
450
  }
451
451
  }
@@ -456,7 +456,7 @@ async function pauseSession(sessionId: string): Promise<void> {
456
456
  try {
457
457
  const state = await loadSessionsState();
458
458
  const sessionIndex = state.sessions.findIndex(
459
- s => s.sessionId === sessionId,
459
+ s => s.sessionId === sessionId
460
460
  );
461
461
 
462
462
  if (sessionIndex === -1) {
@@ -486,13 +486,13 @@ async function pauseSession(sessionId: string): Promise<void> {
486
486
 
487
487
  spinner.succeed(`Session paused: ${sessionId}`);
488
488
  console.log(
489
- chalk.gray('Use "wundr session resume ' + sessionId + '" to resume.'),
489
+ chalk.gray('Use "wundr session resume ' + sessionId + '" to resume.')
490
490
  );
491
491
  console.log('');
492
492
  } catch (error) {
493
493
  spinner.fail('Failed to pause session');
494
494
  console.error(
495
- chalk.red(error instanceof Error ? error.message : String(error)),
495
+ chalk.red(error instanceof Error ? error.message : String(error))
496
496
  );
497
497
  }
498
498
  }
@@ -503,7 +503,7 @@ async function resumeSession(sessionId: string): Promise<void> {
503
503
  try {
504
504
  const state = await loadSessionsState();
505
505
  const sessionIndex = state.sessions.findIndex(
506
- s => s.sessionId === sessionId,
506
+ s => s.sessionId === sessionId
507
507
  );
508
508
 
509
509
  if (sessionIndex === -1) {
@@ -537,21 +537,21 @@ async function resumeSession(sessionId: string): Promise<void> {
537
537
  } catch (error) {
538
538
  spinner.fail('Failed to resume session');
539
539
  console.error(
540
- chalk.red(error instanceof Error ? error.message : String(error)),
540
+ chalk.red(error instanceof Error ? error.message : String(error))
541
541
  );
542
542
  }
543
543
  }
544
544
 
545
545
  async function killSession(
546
546
  sessionId: string,
547
- options: { force?: boolean },
547
+ options: { force?: boolean }
548
548
  ): Promise<void> {
549
549
  const spinner = ora(`Terminating session ${sessionId}...`).start();
550
550
 
551
551
  try {
552
552
  const state = await loadSessionsState();
553
553
  const sessionIndex = state.sessions.findIndex(
554
- s => s.sessionId === sessionId,
554
+ s => s.sessionId === sessionId
555
555
  );
556
556
 
557
557
  if (sessionIndex === -1) {
@@ -610,19 +610,19 @@ async function killSession(
610
610
  console.log(chalk.gray('\nCleanup completed:'));
611
611
  if (session.subAgents && session.subAgents.length > 0) {
612
612
  console.log(
613
- chalk.gray(` - Terminated ${session.subAgents.length} sub-agent(s)`),
613
+ chalk.gray(` - Terminated ${session.subAgents.length} sub-agent(s)`)
614
614
  );
615
615
  }
616
616
  if (session.memoryBankPath) {
617
617
  console.log(
618
- chalk.gray(` - Memory bank preserved at: ${session.memoryBankPath}`),
618
+ chalk.gray(` - Memory bank preserved at: ${session.memoryBankPath}`)
619
619
  );
620
620
  }
621
621
  console.log('');
622
622
  } catch (error) {
623
623
  spinner.fail('Failed to terminate session');
624
624
  console.error(
625
- chalk.red(error instanceof Error ? error.message : String(error)),
625
+ chalk.red(error instanceof Error ? error.message : String(error))
626
626
  );
627
627
  }
628
628
  }