@wundr.io/cli 1.0.10 → 1.0.12
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 +8 -4
- package/package.json +23 -23
- package/src/ai/ai-service.ts +16 -17
- package/src/ai/claude-client.ts +16 -16
- package/src/ai/conversation-manager.ts +29 -29
- package/src/cli.ts +4 -4
- package/src/commands/ai.ts +246 -78
- package/src/commands/alignment.ts +74 -74
- package/src/commands/analyze-optimized.ts +111 -78
- package/src/commands/analyze.ts +14 -14
- package/src/commands/batch.ts +179 -42
- package/src/commands/chat.ts +37 -30
- package/src/commands/claude-init.ts +41 -45
- package/src/commands/claude-setup.ts +204 -119
- package/src/commands/computer-setup.ts +85 -43
- package/src/commands/create-command.ts +4 -4
- package/src/commands/create.ts +27 -27
- package/src/commands/dashboard.ts +24 -24
- package/src/commands/govern.ts +25 -25
- package/src/commands/governance.ts +34 -34
- package/src/commands/guardian.ts +56 -56
- package/src/commands/init.ts +25 -22
- package/src/commands/orchestrator.ts +68 -41
- package/src/commands/performance-optimizer.ts +34 -35
- package/src/commands/plugins.ts +27 -27
- package/src/commands/project-update.ts +175 -72
- package/src/commands/rag.ts +185 -78
- package/src/commands/session.ts +35 -35
- package/src/commands/setup.ts +40 -344
- package/src/commands/test-init.ts +3 -3
- package/src/commands/test.ts +4 -4
- package/src/commands/watch.ts +28 -29
- package/src/commands/worktree.ts +49 -49
- package/src/context/context-manager.ts +10 -10
- package/src/context/session-manager.ts +41 -41
- 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 +4 -4
- package/src/interactive/interactive-mode.ts +16 -16
- package/src/lib/conflict-resolution.ts +799 -9
- package/src/lib/merge-strategy.ts +529 -7
- package/src/lib/safety-mechanisms.ts +422 -18
- package/src/lib/state-detection.ts +1015 -13
- package/src/nlp/command-mapper.ts +29 -29
- package/src/nlp/command-parser.ts +17 -17
- package/src/nlp/intent-classifier.ts +7 -7
- package/src/nlp/intent-parser.ts +54 -52
- package/src/plugins/plugin-manager.ts +61 -39
- package/src/tests/computer-setup-integration.test.ts +46 -15
- package/src/types/modules.d.ts +424 -1
- package/src/utils/backup-rollback-manager.ts +11 -8
- package/src/utils/config-manager.ts +3 -3
- package/src/utils/error-handler.ts +2 -2
- package/src/utils/logger.ts +22 -22
- 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/LICENSE +0 -21
- package/dist/ai/ai-service.d.ts +0 -152
- package/dist/ai/ai-service.d.ts.map +0 -1
- package/dist/ai/ai-service.js +0 -430
- package/dist/ai/ai-service.js.map +0 -1
- package/dist/ai/claude-client.d.ts +0 -130
- package/dist/ai/claude-client.d.ts.map +0 -1
- package/dist/ai/claude-client.js +0 -340
- package/dist/ai/claude-client.js.map +0 -1
- package/dist/ai/conversation-manager.d.ts +0 -164
- package/dist/ai/conversation-manager.d.ts.map +0 -1
- package/dist/ai/conversation-manager.js +0 -614
- package/dist/ai/conversation-manager.js.map +0 -1
- package/dist/ai/index.d.ts +0 -5
- package/dist/ai/index.d.ts.map +0 -1
- package/dist/ai/index.js +0 -8
- package/dist/ai/index.js.map +0 -1
- package/dist/cli.d.ts +0 -36
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -192
- package/dist/cli.js.map +0 -1
- package/dist/commands/ai.d.ts +0 -89
- package/dist/commands/ai.d.ts.map +0 -1
- package/dist/commands/ai.js +0 -799
- package/dist/commands/ai.js.map +0 -1
- package/dist/commands/alignment.d.ts +0 -78
- package/dist/commands/alignment.d.ts.map +0 -1
- package/dist/commands/alignment.js +0 -817
- package/dist/commands/alignment.js.map +0 -1
- package/dist/commands/analyze-optimized.d.ts +0 -14
- package/dist/commands/analyze-optimized.d.ts.map +0 -1
- package/dist/commands/analyze-optimized.js +0 -600
- package/dist/commands/analyze-optimized.js.map +0 -1
- package/dist/commands/analyze.d.ts +0 -65
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js +0 -435
- package/dist/commands/analyze.js.map +0 -1
- package/dist/commands/batch.d.ts +0 -71
- package/dist/commands/batch.d.ts.map +0 -1
- package/dist/commands/batch.js +0 -738
- package/dist/commands/batch.js.map +0 -1
- package/dist/commands/chat.d.ts +0 -71
- package/dist/commands/chat.d.ts.map +0 -1
- package/dist/commands/chat.js +0 -674
- package/dist/commands/chat.js.map +0 -1
- package/dist/commands/claude-init.d.ts +0 -28
- package/dist/commands/claude-init.d.ts.map +0 -1
- package/dist/commands/claude-init.js +0 -591
- package/dist/commands/claude-init.js.map +0 -1
- package/dist/commands/claude-setup.d.ts +0 -119
- package/dist/commands/claude-setup.d.ts.map +0 -1
- package/dist/commands/claude-setup.js +0 -1073
- package/dist/commands/claude-setup.js.map +0 -1
- package/dist/commands/computer-setup-commands.d.ts +0 -53
- package/dist/commands/computer-setup-commands.d.ts.map +0 -1
- package/dist/commands/computer-setup-commands.js +0 -705
- package/dist/commands/computer-setup-commands.js.map +0 -1
- package/dist/commands/computer-setup.d.ts +0 -7
- package/dist/commands/computer-setup.d.ts.map +0 -1
- package/dist/commands/computer-setup.js +0 -849
- package/dist/commands/computer-setup.js.map +0 -1
- package/dist/commands/create-command.d.ts +0 -7
- package/dist/commands/create-command.d.ts.map +0 -1
- package/dist/commands/create-command.js +0 -158
- package/dist/commands/create-command.js.map +0 -1
- package/dist/commands/create.d.ts +0 -74
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js +0 -556
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/dashboard.d.ts +0 -91
- package/dist/commands/dashboard.d.ts.map +0 -1
- package/dist/commands/dashboard.js +0 -538
- package/dist/commands/dashboard.js.map +0 -1
- package/dist/commands/govern.d.ts +0 -70
- package/dist/commands/govern.d.ts.map +0 -1
- package/dist/commands/govern.js +0 -481
- package/dist/commands/govern.js.map +0 -1
- package/dist/commands/governance.d.ts +0 -17
- package/dist/commands/governance.d.ts.map +0 -1
- package/dist/commands/governance.js +0 -703
- package/dist/commands/governance.js.map +0 -1
- package/dist/commands/guardian.d.ts +0 -20
- package/dist/commands/guardian.d.ts.map +0 -1
- package/dist/commands/guardian.js +0 -597
- package/dist/commands/guardian.js.map +0 -1
- package/dist/commands/init.d.ts +0 -59
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -650
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/orchestrator.d.ts +0 -7
- package/dist/commands/orchestrator.d.ts.map +0 -1
- package/dist/commands/orchestrator.js +0 -571
- package/dist/commands/orchestrator.js.map +0 -1
- package/dist/commands/performance-optimizer.d.ts +0 -30
- package/dist/commands/performance-optimizer.d.ts.map +0 -1
- package/dist/commands/performance-optimizer.js +0 -650
- package/dist/commands/performance-optimizer.js.map +0 -1
- package/dist/commands/plugins.d.ts +0 -87
- package/dist/commands/plugins.d.ts.map +0 -1
- package/dist/commands/plugins.js +0 -685
- package/dist/commands/plugins.js.map +0 -1
- package/dist/commands/rag.d.ts +0 -7
- package/dist/commands/rag.d.ts.map +0 -1
- package/dist/commands/rag.js +0 -748
- package/dist/commands/rag.js.map +0 -1
- package/dist/commands/session.d.ts +0 -41
- package/dist/commands/session.d.ts.map +0 -1
- package/dist/commands/session.js +0 -441
- package/dist/commands/session.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -29
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -397
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/test-init.d.ts +0 -9
- package/dist/commands/test-init.d.ts.map +0 -1
- package/dist/commands/test-init.js +0 -222
- package/dist/commands/test-init.js.map +0 -1
- package/dist/commands/test.d.ts +0 -25
- package/dist/commands/test.d.ts.map +0 -1
- package/dist/commands/test.js +0 -217
- package/dist/commands/test.js.map +0 -1
- package/dist/commands/vp.d.ts +0 -7
- package/dist/commands/vp.d.ts.map +0 -1
- package/dist/commands/vp.js +0 -571
- package/dist/commands/vp.js.map +0 -1
- package/dist/commands/watch.d.ts +0 -76
- package/dist/commands/watch.d.ts.map +0 -1
- package/dist/commands/watch.js +0 -613
- package/dist/commands/watch.js.map +0 -1
- package/dist/commands/worktree.d.ts +0 -63
- package/dist/commands/worktree.d.ts.map +0 -1
- package/dist/commands/worktree.js +0 -774
- package/dist/commands/worktree.js.map +0 -1
- package/dist/context/context-manager.d.ts +0 -155
- package/dist/context/context-manager.d.ts.map +0 -1
- package/dist/context/context-manager.js +0 -383
- package/dist/context/context-manager.js.map +0 -1
- package/dist/context/index.d.ts +0 -3
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/index.js +0 -6
- package/dist/context/index.js.map +0 -1
- package/dist/context/session-manager.d.ts +0 -207
- package/dist/context/session-manager.d.ts.map +0 -1
- package/dist/context/session-manager.js +0 -686
- package/dist/context/session-manager.js.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -51
- package/dist/index.js.map +0 -1
- package/dist/interactive/interactive-mode.d.ts +0 -76
- package/dist/interactive/interactive-mode.d.ts.map +0 -1
- package/dist/interactive/interactive-mode.js +0 -732
- package/dist/interactive/interactive-mode.js.map +0 -1
- package/dist/nlp/command-mapper.d.ts +0 -174
- package/dist/nlp/command-mapper.d.ts.map +0 -1
- package/dist/nlp/command-mapper.js +0 -624
- package/dist/nlp/command-mapper.js.map +0 -1
- package/dist/nlp/command-parser.d.ts +0 -106
- package/dist/nlp/command-parser.d.ts.map +0 -1
- package/dist/nlp/command-parser.js +0 -417
- package/dist/nlp/command-parser.js.map +0 -1
- package/dist/nlp/index.d.ts +0 -5
- package/dist/nlp/index.d.ts.map +0 -1
- package/dist/nlp/index.js +0 -8
- package/dist/nlp/index.js.map +0 -1
- package/dist/nlp/intent-classifier.d.ts +0 -59
- package/dist/nlp/intent-classifier.d.ts.map +0 -1
- package/dist/nlp/intent-classifier.js +0 -384
- package/dist/nlp/intent-classifier.js.map +0 -1
- package/dist/nlp/intent-parser.d.ts +0 -152
- package/dist/nlp/intent-parser.d.ts.map +0 -1
- package/dist/nlp/intent-parser.js +0 -744
- package/dist/nlp/intent-parser.js.map +0 -1
- package/dist/plugins/plugin-manager.d.ts +0 -120
- package/dist/plugins/plugin-manager.d.ts.map +0 -1
- package/dist/plugins/plugin-manager.js +0 -595
- package/dist/plugins/plugin-manager.js.map +0 -1
- package/dist/types/index.d.ts +0 -224
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/utils/backup-rollback-manager.d.ts +0 -72
- package/dist/utils/backup-rollback-manager.d.ts.map +0 -1
- package/dist/utils/backup-rollback-manager.js +0 -289
- package/dist/utils/backup-rollback-manager.js.map +0 -1
- package/dist/utils/claude-config-installer.d.ts +0 -98
- package/dist/utils/claude-config-installer.d.ts.map +0 -1
- package/dist/utils/claude-config-installer.js +0 -678
- package/dist/utils/claude-config-installer.js.map +0 -1
- package/dist/utils/config-manager.d.ts +0 -73
- package/dist/utils/config-manager.d.ts.map +0 -1
- package/dist/utils/config-manager.js +0 -339
- package/dist/utils/config-manager.js.map +0 -1
- package/dist/utils/error-handler.d.ts +0 -46
- package/dist/utils/error-handler.d.ts.map +0 -1
- package/dist/utils/error-handler.js +0 -169
- package/dist/utils/error-handler.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -25
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -105
- package/dist/utils/logger.js.map +0 -1
- package/src/commands/computer-setup-commands.ts +0 -872
package/dist/ai/ai-service.d.ts
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import type { ChatSession, ChatMessage } from '../types';
|
|
2
|
-
import type { ConfigManager } from '../utils/config-manager';
|
|
3
|
-
/**
|
|
4
|
-
* AI service configuration
|
|
5
|
-
*/
|
|
6
|
-
export interface AIServiceConfig {
|
|
7
|
-
provider: 'claude' | 'openai' | 'local';
|
|
8
|
-
model: string;
|
|
9
|
-
apiKey?: string;
|
|
10
|
-
baseUrl?: string;
|
|
11
|
-
maxTokens?: number;
|
|
12
|
-
temperature?: number;
|
|
13
|
-
systemPrompt?: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* AI conversation context
|
|
17
|
-
*/
|
|
18
|
-
export interface ConversationContext {
|
|
19
|
-
projectPath?: string;
|
|
20
|
-
projectType?: string;
|
|
21
|
-
recentCommands?: string[];
|
|
22
|
-
currentGoal?: string;
|
|
23
|
-
userPreferences?: Record<string, any>;
|
|
24
|
-
sessionMetadata?: Record<string, any>;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* AI service for managing all AI interactions
|
|
28
|
-
*/
|
|
29
|
-
export declare class AIService {
|
|
30
|
-
private claudeClient?;
|
|
31
|
-
private config;
|
|
32
|
-
private configManager;
|
|
33
|
-
private conversationHistory;
|
|
34
|
-
constructor(configManager: ConfigManager);
|
|
35
|
-
/**
|
|
36
|
-
* Initialize AI provider based on configuration
|
|
37
|
-
*/
|
|
38
|
-
private initializeProvider;
|
|
39
|
-
/**
|
|
40
|
-
* Load AI configuration from config manager
|
|
41
|
-
*/
|
|
42
|
-
private loadAIConfig;
|
|
43
|
-
/**
|
|
44
|
-
* Send a message with conversation context
|
|
45
|
-
*/
|
|
46
|
-
sendMessage(sessionId: string, message: string, context?: ConversationContext): Promise<string>;
|
|
47
|
-
/**
|
|
48
|
-
* Stream a conversation response
|
|
49
|
-
*/
|
|
50
|
-
streamMessage(sessionId: string, message: string, context?: ConversationContext): AsyncGenerator<string, string, unknown>;
|
|
51
|
-
/**
|
|
52
|
-
* Analyze natural language input and convert to CLI command
|
|
53
|
-
*/
|
|
54
|
-
parseNaturalLanguageCommand(input: string, _context?: ConversationContext): Promise<{
|
|
55
|
-
intent: string;
|
|
56
|
-
command: string;
|
|
57
|
-
confidence: number;
|
|
58
|
-
parameters: Record<string, any>;
|
|
59
|
-
needsConfirmation: boolean;
|
|
60
|
-
clarificationQuestion?: string;
|
|
61
|
-
}>;
|
|
62
|
-
/**
|
|
63
|
-
* Generate contextual command suggestions
|
|
64
|
-
*/
|
|
65
|
-
suggestCommands(goal: string, context?: ConversationContext): Promise<Array<{
|
|
66
|
-
command: string;
|
|
67
|
-
description: string;
|
|
68
|
-
confidence: number;
|
|
69
|
-
rationale: string;
|
|
70
|
-
}>>;
|
|
71
|
-
/**
|
|
72
|
-
* Explain command results in natural language
|
|
73
|
-
*/
|
|
74
|
-
explainCommandResults(command: string, output: string, context?: ConversationContext): Promise<string>;
|
|
75
|
-
/**
|
|
76
|
-
* Generate contextual help for commands
|
|
77
|
-
*/
|
|
78
|
-
generateContextualHelp(command: string, context?: ConversationContext, userLevel?: 'beginner' | 'intermediate' | 'advanced'): Promise<string>;
|
|
79
|
-
/**
|
|
80
|
-
* Convert ChatSession to conversation history
|
|
81
|
-
*/
|
|
82
|
-
loadChatSession(session: ChatSession): void;
|
|
83
|
-
/**
|
|
84
|
-
* Export conversation history to ChatSession format
|
|
85
|
-
*/
|
|
86
|
-
exportChatSession(sessionId: string): ChatMessage[];
|
|
87
|
-
/**
|
|
88
|
-
* Clear conversation history for a session
|
|
89
|
-
*/
|
|
90
|
-
clearConversation(sessionId: string): void;
|
|
91
|
-
/**
|
|
92
|
-
* Get conversation history for a session
|
|
93
|
-
*/
|
|
94
|
-
private getConversationHistory;
|
|
95
|
-
/**
|
|
96
|
-
* Build system prompt with context
|
|
97
|
-
*/
|
|
98
|
-
private buildSystemPrompt;
|
|
99
|
-
/**
|
|
100
|
-
* Build project context string
|
|
101
|
-
*/
|
|
102
|
-
private buildProjectContext;
|
|
103
|
-
/**
|
|
104
|
-
* Validate AI service connection
|
|
105
|
-
*/
|
|
106
|
-
validateConnection(): Promise<{
|
|
107
|
-
connected: boolean;
|
|
108
|
-
error?: string;
|
|
109
|
-
provider: string;
|
|
110
|
-
model: string;
|
|
111
|
-
}>;
|
|
112
|
-
/**
|
|
113
|
-
* Ensure client is initialized and throw helpful error if not
|
|
114
|
-
*/
|
|
115
|
-
private ensureClientInitialized;
|
|
116
|
-
/**
|
|
117
|
-
* Setup AI configuration with API key
|
|
118
|
-
*/
|
|
119
|
-
setupAI(apiKey: string, provider?: string): Promise<void>;
|
|
120
|
-
/**
|
|
121
|
-
* Check if AI is ready to use
|
|
122
|
-
*/
|
|
123
|
-
isReady(): boolean;
|
|
124
|
-
/**
|
|
125
|
-
* Get configuration status
|
|
126
|
-
*/
|
|
127
|
-
getStatus(): {
|
|
128
|
-
configured: boolean;
|
|
129
|
-
provider: string;
|
|
130
|
-
model: string;
|
|
131
|
-
hasApiKey: boolean;
|
|
132
|
-
ready: boolean;
|
|
133
|
-
};
|
|
134
|
-
/**
|
|
135
|
-
* Update AI configuration
|
|
136
|
-
*/
|
|
137
|
-
updateConfig(updates: Partial<AIServiceConfig>): void;
|
|
138
|
-
/**
|
|
139
|
-
* Get current AI configuration
|
|
140
|
-
*/
|
|
141
|
-
getConfig(): AIServiceConfig;
|
|
142
|
-
/**
|
|
143
|
-
* Get provider-specific information
|
|
144
|
-
*/
|
|
145
|
-
getProviderInfo(): {
|
|
146
|
-
provider: string;
|
|
147
|
-
model: string;
|
|
148
|
-
connected: boolean;
|
|
149
|
-
capabilities: string[];
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
//# sourceMappingURL=ai-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../src/ai/ai-service.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/ai-service.js
DELETED
|
@@ -1,430 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AIService = void 0;
|
|
4
|
-
const claude_client_1 = require("./claude-client");
|
|
5
|
-
const logger_1 = require("../utils/logger");
|
|
6
|
-
/**
|
|
7
|
-
* AI service for managing all AI interactions
|
|
8
|
-
*/
|
|
9
|
-
class AIService {
|
|
10
|
-
claudeClient;
|
|
11
|
-
config;
|
|
12
|
-
configManager;
|
|
13
|
-
conversationHistory = new Map();
|
|
14
|
-
constructor(configManager) {
|
|
15
|
-
this.configManager = configManager;
|
|
16
|
-
this.config = this.loadAIConfig();
|
|
17
|
-
this.initializeProvider();
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Initialize AI provider based on configuration
|
|
21
|
-
*/
|
|
22
|
-
initializeProvider() {
|
|
23
|
-
try {
|
|
24
|
-
if (this.config.provider === 'claude') {
|
|
25
|
-
if (!this.config.apiKey) {
|
|
26
|
-
logger_1.logger.warn('Claude API key not configured. AI features will be limited.');
|
|
27
|
-
logger_1.logger.info('Configure your API key using: wundr ai setup');
|
|
28
|
-
logger_1.logger.info('Or set the CLAUDE_API_KEY environment variable');
|
|
29
|
-
return; // Don't throw error, just warn
|
|
30
|
-
}
|
|
31
|
-
this.claudeClient = new claude_client_1.ClaudeClient({
|
|
32
|
-
apiKey: this.config.apiKey,
|
|
33
|
-
model: this.config.model || 'claude-3-opus-20240229',
|
|
34
|
-
maxTokens: this.config.maxTokens || 4096,
|
|
35
|
-
temperature: this.config.temperature || 0.7,
|
|
36
|
-
baseUrl: this.config.baseUrl,
|
|
37
|
-
});
|
|
38
|
-
logger_1.logger.info(`Initialized Claude client with model: ${this.config.model}`);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
throw new Error(`Unsupported AI provider: ${this.config.provider}`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
logger_1.logger.error('Failed to initialize AI provider:', error);
|
|
46
|
-
// Don't re-throw to avoid breaking CLI startup
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Load AI configuration from config manager
|
|
51
|
-
*/
|
|
52
|
-
loadAIConfig() {
|
|
53
|
-
try {
|
|
54
|
-
const wundrConfig = this.configManager.getConfig();
|
|
55
|
-
const apiKey = this.configManager.getAIApiKey();
|
|
56
|
-
return {
|
|
57
|
-
provider: (wundrConfig.ai?.provider || 'claude'),
|
|
58
|
-
model: wundrConfig.ai?.model || 'claude-3-opus-20240229',
|
|
59
|
-
apiKey: apiKey,
|
|
60
|
-
maxTokens: 4096,
|
|
61
|
-
temperature: 0.7,
|
|
62
|
-
systemPrompt: 'You are a helpful CLI assistant for the Wundr development platform.',
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
logger_1.logger.warn('Failed to load AI configuration, using defaults');
|
|
67
|
-
return {
|
|
68
|
-
provider: 'claude',
|
|
69
|
-
model: 'claude-3-opus-20240229',
|
|
70
|
-
apiKey: process.env['CLAUDE_API_KEY'],
|
|
71
|
-
maxTokens: 4096,
|
|
72
|
-
temperature: 0.7,
|
|
73
|
-
systemPrompt: 'You are a helpful CLI assistant for the Wundr development platform.',
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Send a message with conversation context
|
|
79
|
-
*/
|
|
80
|
-
async sendMessage(sessionId, message, context) {
|
|
81
|
-
this.ensureClientInitialized();
|
|
82
|
-
try {
|
|
83
|
-
const conversationMessages = this.getConversationHistory(sessionId);
|
|
84
|
-
// Add user message to history
|
|
85
|
-
conversationMessages.push({
|
|
86
|
-
role: 'user',
|
|
87
|
-
content: message,
|
|
88
|
-
});
|
|
89
|
-
const systemPrompt = this.buildSystemPrompt(context);
|
|
90
|
-
const response = await this.claudeClient.sendConversation(conversationMessages, systemPrompt);
|
|
91
|
-
// Add AI response to history
|
|
92
|
-
conversationMessages.push({
|
|
93
|
-
role: 'assistant',
|
|
94
|
-
content: response,
|
|
95
|
-
});
|
|
96
|
-
// Store updated conversation history
|
|
97
|
-
this.conversationHistory.set(sessionId, conversationMessages);
|
|
98
|
-
return response;
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
logger_1.logger.error('Failed to send message:', error);
|
|
102
|
-
throw error;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Stream a conversation response
|
|
107
|
-
*/
|
|
108
|
-
async *streamMessage(sessionId, message, context) {
|
|
109
|
-
this.ensureClientInitialized();
|
|
110
|
-
try {
|
|
111
|
-
const conversationMessages = this.getConversationHistory(sessionId);
|
|
112
|
-
// Add user message to history
|
|
113
|
-
conversationMessages.push({
|
|
114
|
-
role: 'user',
|
|
115
|
-
content: message,
|
|
116
|
-
});
|
|
117
|
-
const systemPrompt = this.buildSystemPrompt(context);
|
|
118
|
-
let fullResponse = '';
|
|
119
|
-
for await (const chunk of this.claudeClient.streamConversation(conversationMessages, systemPrompt)) {
|
|
120
|
-
fullResponse += chunk;
|
|
121
|
-
yield chunk;
|
|
122
|
-
}
|
|
123
|
-
// Add AI response to history
|
|
124
|
-
conversationMessages.push({
|
|
125
|
-
role: 'assistant',
|
|
126
|
-
content: fullResponse,
|
|
127
|
-
});
|
|
128
|
-
// Store updated conversation history
|
|
129
|
-
this.conversationHistory.set(sessionId, conversationMessages);
|
|
130
|
-
return fullResponse;
|
|
131
|
-
}
|
|
132
|
-
catch (error) {
|
|
133
|
-
logger_1.logger.error('Failed to stream message:', error);
|
|
134
|
-
throw error;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Analyze natural language input and convert to CLI command
|
|
139
|
-
*/
|
|
140
|
-
async parseNaturalLanguageCommand(input, _context) {
|
|
141
|
-
this.ensureClientInitialized();
|
|
142
|
-
try {
|
|
143
|
-
const availableCommands = [
|
|
144
|
-
'wundr init',
|
|
145
|
-
'wundr create',
|
|
146
|
-
'wundr analyze',
|
|
147
|
-
'wundr govern',
|
|
148
|
-
'wundr dashboard',
|
|
149
|
-
'wundr watch',
|
|
150
|
-
'wundr batch',
|
|
151
|
-
'wundr plugins',
|
|
152
|
-
];
|
|
153
|
-
const result = await this.claudeClient.analyzeIntent(input, availableCommands);
|
|
154
|
-
return {
|
|
155
|
-
intent: result.intent,
|
|
156
|
-
command: result.command || '',
|
|
157
|
-
confidence: result.confidence,
|
|
158
|
-
parameters: result.parameters || {},
|
|
159
|
-
needsConfirmation: result.confidence < 0.8,
|
|
160
|
-
clarificationQuestion: result.clarification,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
catch (error) {
|
|
164
|
-
logger_1.logger.error('Failed to parse natural language command:', error);
|
|
165
|
-
throw error;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Generate contextual command suggestions
|
|
170
|
-
*/
|
|
171
|
-
async suggestCommands(goal, context) {
|
|
172
|
-
this.ensureClientInitialized();
|
|
173
|
-
try {
|
|
174
|
-
const projectContext = this.buildProjectContext(context);
|
|
175
|
-
const availableCommands = [
|
|
176
|
-
'wundr init - Initialize project or configuration',
|
|
177
|
-
'wundr create - Create new components, services, templates',
|
|
178
|
-
'wundr analyze - Analyze code, dependencies, quality',
|
|
179
|
-
'wundr govern - Apply governance rules and compliance',
|
|
180
|
-
'wundr dashboard - Start dashboard and visualization',
|
|
181
|
-
'wundr watch - Monitor files and run automated tasks',
|
|
182
|
-
'wundr batch - Execute batch operations',
|
|
183
|
-
'wundr plugins - Manage CLI plugins',
|
|
184
|
-
'wundr chat - Interactive AI assistance',
|
|
185
|
-
];
|
|
186
|
-
const result = await this.claudeClient.suggestCommands(projectContext, goal, availableCommands);
|
|
187
|
-
return result.suggestions.map(suggestion => ({
|
|
188
|
-
...suggestion,
|
|
189
|
-
rationale: `Based on your goal and project context, this command will help you ${suggestion.description.toLowerCase()}`,
|
|
190
|
-
}));
|
|
191
|
-
}
|
|
192
|
-
catch (error) {
|
|
193
|
-
logger_1.logger.error('Failed to generate command suggestions:', error);
|
|
194
|
-
throw error;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Explain command results in natural language
|
|
199
|
-
*/
|
|
200
|
-
async explainCommandResults(command, output, context) {
|
|
201
|
-
this.ensureClientInitialized();
|
|
202
|
-
try {
|
|
203
|
-
const contextString = context
|
|
204
|
-
? this.buildProjectContext(context)
|
|
205
|
-
: undefined;
|
|
206
|
-
return await this.claudeClient.explainResults(command, output, contextString);
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
logger_1.logger.error('Failed to explain command results:', error);
|
|
210
|
-
throw error;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Generate contextual help for commands
|
|
215
|
-
*/
|
|
216
|
-
async generateContextualHelp(command, context, userLevel = 'intermediate') {
|
|
217
|
-
this.ensureClientInitialized();
|
|
218
|
-
try {
|
|
219
|
-
const userContext = this.buildProjectContext(context);
|
|
220
|
-
return await this.claudeClient.generateHelp(command, userContext, userLevel);
|
|
221
|
-
}
|
|
222
|
-
catch (error) {
|
|
223
|
-
logger_1.logger.error('Failed to generate contextual help:', error);
|
|
224
|
-
throw error;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Convert ChatSession to conversation history
|
|
229
|
-
*/
|
|
230
|
-
loadChatSession(session) {
|
|
231
|
-
const messages = session.history.map(msg => ({
|
|
232
|
-
role: msg.role,
|
|
233
|
-
content: msg.content,
|
|
234
|
-
}));
|
|
235
|
-
this.conversationHistory.set(session.id, messages);
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* Export conversation history to ChatSession format
|
|
239
|
-
*/
|
|
240
|
-
exportChatSession(sessionId) {
|
|
241
|
-
const messages = this.conversationHistory.get(sessionId) || [];
|
|
242
|
-
return messages.map(msg => ({
|
|
243
|
-
role: msg.role,
|
|
244
|
-
content: msg.content,
|
|
245
|
-
timestamp: new Date(),
|
|
246
|
-
metadata: {},
|
|
247
|
-
}));
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Clear conversation history for a session
|
|
251
|
-
*/
|
|
252
|
-
clearConversation(sessionId) {
|
|
253
|
-
this.conversationHistory.delete(sessionId);
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Get conversation history for a session
|
|
257
|
-
*/
|
|
258
|
-
getConversationHistory(sessionId) {
|
|
259
|
-
return this.conversationHistory.get(sessionId) || [];
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Build system prompt with context
|
|
263
|
-
*/
|
|
264
|
-
buildSystemPrompt(context) {
|
|
265
|
-
let systemPrompt = this.config.systemPrompt ||
|
|
266
|
-
'You are a helpful CLI assistant for the Wundr development platform.';
|
|
267
|
-
if (context) {
|
|
268
|
-
systemPrompt += '\n\nContext Information:';
|
|
269
|
-
if (context.projectPath) {
|
|
270
|
-
systemPrompt += `\n- Project Path: ${context.projectPath}`;
|
|
271
|
-
}
|
|
272
|
-
if (context.projectType) {
|
|
273
|
-
systemPrompt += `\n- Project Type: ${context.projectType}`;
|
|
274
|
-
}
|
|
275
|
-
if (context.recentCommands?.length) {
|
|
276
|
-
systemPrompt += `\n- Recent Commands: ${context.recentCommands.join(', ')}`;
|
|
277
|
-
}
|
|
278
|
-
if (context.currentGoal) {
|
|
279
|
-
systemPrompt += `\n- Current Goal: ${context.currentGoal}`;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
systemPrompt += `\n\nYou should:
|
|
283
|
-
1. Provide helpful, accurate responses
|
|
284
|
-
2. Suggest appropriate CLI commands when relevant
|
|
285
|
-
3. Explain technical concepts clearly
|
|
286
|
-
4. Ask for clarification when needed
|
|
287
|
-
5. Focus on practical, actionable advice`;
|
|
288
|
-
return systemPrompt;
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Build project context string
|
|
292
|
-
*/
|
|
293
|
-
buildProjectContext(context) {
|
|
294
|
-
if (!context) {
|
|
295
|
-
return 'No project context available';
|
|
296
|
-
}
|
|
297
|
-
const parts = [];
|
|
298
|
-
if (context.projectPath) {
|
|
299
|
-
parts.push(`Project: ${context.projectPath}`);
|
|
300
|
-
}
|
|
301
|
-
if (context.projectType) {
|
|
302
|
-
parts.push(`Type: ${context.projectType}`);
|
|
303
|
-
}
|
|
304
|
-
if (context.recentCommands?.length) {
|
|
305
|
-
parts.push(`Recent commands: ${context.recentCommands.join(', ')}`);
|
|
306
|
-
}
|
|
307
|
-
if (context.currentGoal) {
|
|
308
|
-
parts.push(`Goal: ${context.currentGoal}`);
|
|
309
|
-
}
|
|
310
|
-
return parts.join(' | ') || 'Standard development project';
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Validate AI service connection
|
|
314
|
-
*/
|
|
315
|
-
async validateConnection() {
|
|
316
|
-
if (!this.claudeClient) {
|
|
317
|
-
return {
|
|
318
|
-
connected: false,
|
|
319
|
-
error: 'AI client not initialized. API key may be missing.',
|
|
320
|
-
provider: this.config.provider,
|
|
321
|
-
model: this.config.model,
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
try {
|
|
325
|
-
const isValid = await this.claudeClient.validateConnection();
|
|
326
|
-
return {
|
|
327
|
-
connected: isValid,
|
|
328
|
-
provider: this.config.provider,
|
|
329
|
-
model: this.config.model,
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
catch (error) {
|
|
333
|
-
logger_1.logger.error('AI connection validation failed:', error);
|
|
334
|
-
return {
|
|
335
|
-
connected: false,
|
|
336
|
-
error: error.message || 'Connection validation failed',
|
|
337
|
-
provider: this.config.provider,
|
|
338
|
-
model: this.config.model,
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Ensure client is initialized and throw helpful error if not
|
|
344
|
-
*/
|
|
345
|
-
ensureClientInitialized() {
|
|
346
|
-
if (!this.claudeClient) {
|
|
347
|
-
const configuredKey = this.configManager.getAIApiKey();
|
|
348
|
-
if (!configuredKey) {
|
|
349
|
-
throw new Error('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');
|
|
350
|
-
}
|
|
351
|
-
throw new Error('AI client failed to initialize. Please check your configuration.');
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
/**
|
|
355
|
-
* Setup AI configuration with API key
|
|
356
|
-
*/
|
|
357
|
-
async setupAI(apiKey, provider = 'claude') {
|
|
358
|
-
try {
|
|
359
|
-
// Save API key to config
|
|
360
|
-
await this.configManager.setAIApiKey(apiKey, provider);
|
|
361
|
-
// Update service configuration
|
|
362
|
-
this.config = this.loadAIConfig();
|
|
363
|
-
// Re-initialize provider
|
|
364
|
-
this.initializeProvider();
|
|
365
|
-
logger_1.logger.success(`AI configured successfully with ${provider} provider`);
|
|
366
|
-
}
|
|
367
|
-
catch (error) {
|
|
368
|
-
logger_1.logger.error('Failed to setup AI configuration:', error);
|
|
369
|
-
throw error;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Check if AI is ready to use
|
|
374
|
-
*/
|
|
375
|
-
isReady() {
|
|
376
|
-
return !!this.claudeClient && !!this.config.apiKey;
|
|
377
|
-
}
|
|
378
|
-
/**
|
|
379
|
-
* Get configuration status
|
|
380
|
-
*/
|
|
381
|
-
getStatus() {
|
|
382
|
-
const hasApiKey = !!this.config.apiKey;
|
|
383
|
-
return {
|
|
384
|
-
configured: this.configManager.isAIConfigured(),
|
|
385
|
-
provider: this.config.provider,
|
|
386
|
-
model: this.config.model,
|
|
387
|
-
hasApiKey,
|
|
388
|
-
ready: this.isReady(),
|
|
389
|
-
};
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
* Update AI configuration
|
|
393
|
-
*/
|
|
394
|
-
updateConfig(updates) {
|
|
395
|
-
this.config = { ...this.config, ...updates };
|
|
396
|
-
if (this.config.provider === 'claude' && this.claudeClient) {
|
|
397
|
-
this.claudeClient.updateConfig({
|
|
398
|
-
apiKey: this.config.apiKey,
|
|
399
|
-
model: this.config.model,
|
|
400
|
-
maxTokens: this.config.maxTokens,
|
|
401
|
-
temperature: this.config.temperature,
|
|
402
|
-
});
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* Get current AI configuration
|
|
407
|
-
*/
|
|
408
|
-
getConfig() {
|
|
409
|
-
return { ...this.config };
|
|
410
|
-
}
|
|
411
|
-
/**
|
|
412
|
-
* Get provider-specific information
|
|
413
|
-
*/
|
|
414
|
-
getProviderInfo() {
|
|
415
|
-
return {
|
|
416
|
-
provider: this.config.provider,
|
|
417
|
-
model: this.config.model,
|
|
418
|
-
connected: !!this.claudeClient,
|
|
419
|
-
capabilities: [
|
|
420
|
-
'natural-language-parsing',
|
|
421
|
-
'command-suggestions',
|
|
422
|
-
'result-explanation',
|
|
423
|
-
'contextual-help',
|
|
424
|
-
'conversation-memory',
|
|
425
|
-
],
|
|
426
|
-
};
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
exports.AIService = AIService;
|
|
430
|
-
//# sourceMappingURL=ai-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-service.js","sourceRoot":"","sources":["../../src/ai/ai-service.ts"],"names":[],"mappings":"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"}
|