@wundr.io/cli 1.0.1 → 1.0.2-dev.20260530174250.ef0ec927
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/bin/wundr.js +13 -5
- package/package.json +30 -9
- package/src/ai/ai-service.ts +6 -4
- package/src/ai/claude-client.ts +6 -2
- package/src/ai/conversation-manager.ts +12 -5
- package/src/cli.ts +42 -13
- package/src/commands/ai.ts +340 -64
- package/src/commands/alignment.ts +1212 -0
- package/src/commands/analyze-optimized.ts +371 -33
- package/src/commands/analyze.ts +8 -6
- package/src/commands/batch.ts +166 -26
- package/src/commands/chat.ts +20 -10
- package/src/commands/claude-init.ts +31 -27
- package/src/commands/claude-setup.ts +761 -81
- package/src/commands/computer-setup.ts +524 -12
- package/src/commands/create-command.ts +3 -3
- package/src/commands/create.ts +9 -6
- package/src/commands/dashboard.ts +11 -6
- package/src/commands/govern.ts +11 -6
- package/src/commands/governance.ts +1005 -0
- package/src/commands/guardian.ts +887 -0
- package/src/commands/init.ts +104 -11
- package/src/commands/orchestrator.ts +789 -0
- package/src/commands/performance-optimizer.ts +15 -10
- package/src/commands/plugins.ts +8 -5
- package/src/commands/project-update.ts +1156 -0
- package/src/commands/rag.ts +1011 -0
- package/src/commands/session.ts +631 -0
- package/src/commands/setup.ts +42 -344
- package/src/commands/test-init.ts +3 -2
- package/src/commands/test.ts +3 -2
- package/src/commands/watch.ts +21 -11
- package/src/commands/worktree.ts +1057 -0
- package/src/context/context-manager.ts +5 -2
- package/src/context/session-manager.ts +18 -7
- package/src/framework/command-interface.ts +520 -0
- package/src/framework/command-registry.ts +942 -0
- package/src/framework/completion-exporter.ts +383 -0
- package/src/framework/debug-logger.ts +519 -0
- package/src/framework/error-handler.ts +867 -0
- package/src/framework/help-generator.ts +540 -0
- package/src/framework/index.ts +169 -0
- package/src/framework/interactive-repl.ts +703 -0
- package/src/framework/output-formatter.ts +834 -0
- package/src/framework/progress-manager.ts +539 -0
- package/src/index.ts +3 -2
- package/src/interactive/interactive-mode.ts +14 -7
- package/src/lib/conflict-resolution.ts +818 -0
- package/src/lib/merge-strategy.ts +550 -0
- package/src/lib/safety-mechanisms.ts +451 -0
- package/src/lib/state-detection.ts +1030 -0
- package/src/nlp/command-mapper.ts +8 -3
- package/src/nlp/command-parser.ts +5 -2
- package/src/nlp/intent-parser.ts +23 -9
- package/src/plugins/plugin-manager.ts +50 -24
- package/src/tests/computer-setup-integration.test.ts +46 -15
- package/src/types/index.ts +1 -1
- package/src/types/modules.d.ts +425 -1
- package/src/utils/backup-rollback-manager.ts +19 -14
- package/src/utils/claude-config-installer.ts +119 -28
- package/src/utils/config-manager.ts +9 -6
- package/src/utils/error-handler.ts +3 -1
- package/src/utils/logger.ts +35 -12
- package/templates/batch/ci-cd.yaml +7 -7
- package/test-suites/api/health.spec.ts +20 -23
- package/test-suites/helpers/test-config.ts +14 -13
- package/test-suites/ui/accessibility.spec.ts +27 -22
- package/test-suites/ui/smoke.spec.ts +26 -21
- package/src/commands/computer-setup-commands.ts +0 -869
package/bin/wundr.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Wundr CLI Entry Point
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
6
|
* This is the main executable for the Wundr CLI tool.
|
|
7
7
|
* It handles cross-platform compatibility and bootstraps the CLI.
|
|
8
8
|
*/
|
|
@@ -26,14 +26,22 @@ if (isDevelopment && existsSync(srcPath)) {
|
|
|
26
26
|
if (existsSync(distPath)) {
|
|
27
27
|
require(distPath);
|
|
28
28
|
} else {
|
|
29
|
-
console.error(
|
|
29
|
+
console.error(
|
|
30
|
+
'No compiled JavaScript found. Please run "npm run build" first.'
|
|
31
|
+
);
|
|
30
32
|
process.exit(1);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
} else if (existsSync(distPath)) {
|
|
34
36
|
// Production: use compiled JavaScript
|
|
35
|
-
require(distPath);
|
|
37
|
+
const cli = require(distPath);
|
|
38
|
+
// Call main() since require.main check in index.js won't trigger
|
|
39
|
+
if (typeof cli.main === 'function') {
|
|
40
|
+
cli.main();
|
|
41
|
+
}
|
|
36
42
|
} else {
|
|
37
|
-
console.error(
|
|
43
|
+
console.error(
|
|
44
|
+
'Wundr CLI not properly installed. Please reinstall the package.'
|
|
45
|
+
);
|
|
38
46
|
process.exit(1);
|
|
39
|
-
}
|
|
47
|
+
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wundr.io/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2-dev.20260530174250.ef0ec927",
|
|
4
4
|
"description": "Unified CLI framework for the Wundr platform",
|
|
5
|
-
"keywords": [
|
|
5
|
+
"keywords": [
|
|
6
|
+
"wundr",
|
|
7
|
+
"cli",
|
|
8
|
+
"commander",
|
|
9
|
+
"interactive",
|
|
10
|
+
"tui",
|
|
11
|
+
"automation"
|
|
12
|
+
],
|
|
6
13
|
"homepage": "https://wundr.io",
|
|
7
14
|
"bugs": {
|
|
8
15
|
"url": "https://github.com/adapticai/wundr/issues"
|
|
@@ -23,7 +30,14 @@
|
|
|
23
30
|
"bin": {
|
|
24
31
|
"wundr": "./bin/wundr.js"
|
|
25
32
|
},
|
|
26
|
-
"files": [
|
|
33
|
+
"files": [
|
|
34
|
+
"dist",
|
|
35
|
+
"bin",
|
|
36
|
+
"src",
|
|
37
|
+
"templates",
|
|
38
|
+
"test-suites",
|
|
39
|
+
"README.md"
|
|
40
|
+
],
|
|
27
41
|
"scripts": {
|
|
28
42
|
"build": "tsc",
|
|
29
43
|
"build:watch": "tsc --watch",
|
|
@@ -37,18 +51,24 @@
|
|
|
37
51
|
"typecheck": "tsc --noEmit"
|
|
38
52
|
},
|
|
39
53
|
"dependencies": {
|
|
54
|
+
"@axe-core/playwright": "^4.10.0",
|
|
40
55
|
"@oclif/core": "^3.15.0",
|
|
41
56
|
"@oclif/plugin-help": "^6.0.0",
|
|
42
57
|
"@oclif/plugin-plugins": "^4.1.0",
|
|
58
|
+
"@playwright/test": "^1.48.0",
|
|
43
59
|
"@types/axios": "^0.9.36",
|
|
44
60
|
"@types/open": "^6.2.1",
|
|
45
|
-
"@wundr.io/computer-setup": "^1.0.
|
|
46
|
-
"@wundr.io/config": "^1.0.
|
|
47
|
-
"@wundr.io/core": "^1.0.
|
|
61
|
+
"@wundr.io/computer-setup": "^1.0.2-dev.20260530174250.ef0ec927",
|
|
62
|
+
"@wundr.io/config": "^1.0.2-dev.20260530174250.ef0ec927",
|
|
63
|
+
"@wundr.io/core": "^1.0.2-dev.20260530174250.ef0ec927",
|
|
64
|
+
"@wundr.io/governance": "^1.0.2-dev.20260530174250.ef0ec927",
|
|
65
|
+
"@wundr.io/guardian-dashboard": "^1.0.2-dev.20260530174250.ef0ec927",
|
|
66
|
+
"@wundr.io/vp-daemon": "^1.0.6",
|
|
48
67
|
"axios": "^1.11.0",
|
|
49
68
|
"blessed": "^0.1.81",
|
|
50
69
|
"blessed-contrib": "^4.11.0",
|
|
51
70
|
"chalk": "^5.3.0",
|
|
71
|
+
"chokidar": "^3.5.3",
|
|
52
72
|
"commander": "^11.1.0",
|
|
53
73
|
"conf": "^12.0.0",
|
|
54
74
|
"execa": "^8.0.1",
|
|
@@ -60,8 +80,6 @@
|
|
|
60
80
|
"node-pty": "^1.0.0",
|
|
61
81
|
"open": "^10.2.0",
|
|
62
82
|
"ora": "^8.0.1",
|
|
63
|
-
"@playwright/test": "^1.48.0",
|
|
64
|
-
"@axe-core/playwright": "^4.10.0",
|
|
65
83
|
"prompts": "^2.4.2",
|
|
66
84
|
"rxjs": "^7.8.1",
|
|
67
85
|
"terminal-kit": "^3.0.1",
|
|
@@ -90,7 +108,10 @@
|
|
|
90
108
|
"bin": "wundr",
|
|
91
109
|
"dirname": "wundr",
|
|
92
110
|
"commands": "./dist/commands",
|
|
93
|
-
"plugins": [
|
|
111
|
+
"plugins": [
|
|
112
|
+
"@oclif/plugin-help",
|
|
113
|
+
"@oclif/plugin-plugins"
|
|
114
|
+
],
|
|
94
115
|
"topicSeparator": ":",
|
|
95
116
|
"topics": {
|
|
96
117
|
"init": {
|
package/src/ai/ai-service.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { ClaudeClient
|
|
2
|
-
import { ConfigManager } from '../utils/config-manager';
|
|
1
|
+
import { ClaudeClient } from './claude-client';
|
|
3
2
|
import { logger } from '../utils/logger';
|
|
4
|
-
|
|
3
|
+
|
|
4
|
+
import type { ChatSession, ChatMessage } from '../types';
|
|
5
|
+
import type { ClaudeMessage } from './claude-client';
|
|
6
|
+
import type { ConfigManager } from '../utils/config-manager';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* AI service configuration
|
|
@@ -489,7 +491,7 @@ export class AIService {
|
|
|
489
491
|
|
|
490
492
|
if (!configuredKey) {
|
|
491
493
|
throw new Error(
|
|
492
|
-
|
|
494
|
+
'AI API key not configured.\n\nTo set up AI features:\n1. Run: wundr ai setup\n2. Or set environment variable: export CLAUDE_API_KEY=your_key_here\n3. Or add to config: wundr ai config set apiKey your_key_here'
|
|
493
495
|
);
|
|
494
496
|
}
|
|
495
497
|
|
package/src/ai/claude-client.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
|
|
2
3
|
import { logger } from '../utils/logger';
|
|
3
|
-
|
|
4
|
+
|
|
5
|
+
import type { WundrError } from '../types';
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* Claude API client configuration
|
|
@@ -183,7 +185,9 @@ export class ClaudeClient {
|
|
|
183
185
|
for (const line of lines) {
|
|
184
186
|
if (line.startsWith('data: ')) {
|
|
185
187
|
const data = line.slice(6);
|
|
186
|
-
if (data === '[DONE]')
|
|
188
|
+
if (data === '[DONE]') {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
187
191
|
|
|
188
192
|
try {
|
|
189
193
|
const parsed: ClaudeStreamChunk = JSON.parse(data);
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import fs from 'fs-extra';
|
|
3
2
|
import path from 'path';
|
|
4
|
-
|
|
5
|
-
import
|
|
3
|
+
|
|
4
|
+
import fs from 'fs-extra';
|
|
5
|
+
|
|
6
6
|
import { logger } from '../utils/logger';
|
|
7
7
|
|
|
8
|
+
import type { ClaudeClient, ClaudeMessage } from './claude-client';
|
|
9
|
+
import type { ChatSession, ChatMessage } from '../types';
|
|
10
|
+
|
|
8
11
|
/**
|
|
9
12
|
* Configuration for conversation management
|
|
10
13
|
*/
|
|
@@ -439,7 +442,9 @@ export class ConversationManager extends EventEmitter {
|
|
|
439
442
|
getSessionStats(sessionId?: string): any {
|
|
440
443
|
if (sessionId) {
|
|
441
444
|
const session = this.activeSessions.get(sessionId);
|
|
442
|
-
if (!session)
|
|
445
|
+
if (!session) {
|
|
446
|
+
return null;
|
|
447
|
+
}
|
|
443
448
|
|
|
444
449
|
return {
|
|
445
450
|
messageCount: session.history.length,
|
|
@@ -660,7 +665,9 @@ export class ConversationManager extends EventEmitter {
|
|
|
660
665
|
const recent = messages.slice(-recentCount);
|
|
661
666
|
const older = messages.slice(0, -recentCount);
|
|
662
667
|
|
|
663
|
-
if (older.length === 0)
|
|
668
|
+
if (older.length === 0) {
|
|
669
|
+
return recent;
|
|
670
|
+
}
|
|
664
671
|
|
|
665
672
|
const summary: ChatMessage = {
|
|
666
673
|
role: 'system',
|
package/src/cli.ts
CHANGED
|
@@ -1,26 +1,36 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
|
|
2
3
|
import { version } from '../package.json';
|
|
3
|
-
import { InteractiveMode } from './interactive/interactive-mode';
|
|
4
|
-
import { PluginManager } from './plugins/plugin-manager';
|
|
5
|
-
import { ConfigManager } from './utils/config-manager';
|
|
6
|
-
import { logger } from './utils/logger';
|
|
7
4
|
|
|
8
5
|
// Import command modules
|
|
9
|
-
import { InitCommands } from './commands/init';
|
|
10
|
-
import { CreateCommands } from './commands/create';
|
|
11
|
-
import { AnalyzeCommands } from './commands/analyze';
|
|
12
|
-
import { GovernCommands } from './commands/govern';
|
|
13
6
|
import { AICommands } from './commands/ai';
|
|
14
|
-
import {
|
|
15
|
-
import { WatchCommands } from './commands/watch';
|
|
7
|
+
import { AnalyzeCommands } from './commands/analyze';
|
|
16
8
|
import { BatchCommands } from './commands/batch';
|
|
17
9
|
import { ChatCommands } from './commands/chat';
|
|
10
|
+
import claudeInitCommand from './commands/claude-init';
|
|
11
|
+
import claudeSetupCommand from './commands/claude-setup';
|
|
12
|
+
import { createComputerSetupCommand } from './commands/computer-setup';
|
|
13
|
+
import { CreateCommands } from './commands/create';
|
|
14
|
+
import { createGuardianCommand } from './commands/guardian';
|
|
15
|
+
import { createRAGCommand } from './commands/rag';
|
|
16
|
+
import { createSessionCommand } from './commands/session';
|
|
17
|
+
import { createOrchestratorCommand } from './commands/orchestrator';
|
|
18
|
+
import { createWorktreeCommand } from './commands/worktree';
|
|
19
|
+
import { DashboardCommands } from './commands/dashboard';
|
|
20
|
+
import { GovernCommands } from './commands/govern';
|
|
21
|
+
import {
|
|
22
|
+
createGovernanceCommand,
|
|
23
|
+
createAlignmentCommand,
|
|
24
|
+
} from './commands/governance';
|
|
25
|
+
import { InitCommands } from './commands/init';
|
|
18
26
|
import { PluginCommands } from './commands/plugins';
|
|
19
27
|
import { SetupCommands } from './commands/setup';
|
|
20
|
-
import { createComputerSetupCommand } from './commands/computer-setup';
|
|
21
28
|
import { createTestCommand } from './commands/test';
|
|
22
|
-
import
|
|
23
|
-
import
|
|
29
|
+
import { WatchCommands } from './commands/watch';
|
|
30
|
+
import { InteractiveMode } from './interactive/interactive-mode';
|
|
31
|
+
import { PluginManager } from './plugins/plugin-manager';
|
|
32
|
+
import { ConfigManager } from './utils/config-manager';
|
|
33
|
+
import { logger } from './utils/logger';
|
|
24
34
|
|
|
25
35
|
/**
|
|
26
36
|
* Main CLI class that orchestrates all commands and modes
|
|
@@ -85,6 +95,10 @@ The Unified Developer Platform
|
|
|
85
95
|
new AnalyzeCommands(this.program, this.configManager, this.pluginManager);
|
|
86
96
|
new GovernCommands(this.program, this.configManager, this.pluginManager);
|
|
87
97
|
|
|
98
|
+
// IPRE Governance Commands (governance/gov, alignment)
|
|
99
|
+
this.program.addCommand(createGovernanceCommand());
|
|
100
|
+
this.program.addCommand(createAlignmentCommand());
|
|
101
|
+
|
|
88
102
|
// Project Management
|
|
89
103
|
new InitCommands(this.program, this.configManager, this.pluginManager);
|
|
90
104
|
new CreateCommands(this.program, this.configManager, this.pluginManager);
|
|
@@ -100,6 +114,21 @@ The Unified Developer Platform
|
|
|
100
114
|
// Testing
|
|
101
115
|
this.program.addCommand(createTestCommand());
|
|
102
116
|
|
|
117
|
+
// RAG (Retrieval-Augmented Generation)
|
|
118
|
+
this.program.addCommand(createRAGCommand());
|
|
119
|
+
|
|
120
|
+
// Session Management
|
|
121
|
+
this.program.addCommand(createSessionCommand());
|
|
122
|
+
|
|
123
|
+
// Orchestrator Daemon Management
|
|
124
|
+
this.program.addCommand(createOrchestratorCommand());
|
|
125
|
+
|
|
126
|
+
// Guardian Dashboard
|
|
127
|
+
this.program.addCommand(createGuardianCommand());
|
|
128
|
+
|
|
129
|
+
// Worktree Management
|
|
130
|
+
this.program.addCommand(createWorktreeCommand());
|
|
131
|
+
|
|
103
132
|
// Interactive Modes
|
|
104
133
|
new ChatCommands(this.program, this.configManager, this.pluginManager);
|
|
105
134
|
|