@wundr.io/cli 1.0.11 → 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.
Files changed (269) hide show
  1. package/bin/wundr.js +8 -4
  2. package/package.json +23 -23
  3. package/src/ai/ai-service.ts +16 -17
  4. package/src/ai/claude-client.ts +16 -16
  5. package/src/ai/conversation-manager.ts +29 -29
  6. package/src/cli.ts +4 -4
  7. package/src/commands/ai.ts +246 -78
  8. package/src/commands/alignment.ts +74 -74
  9. package/src/commands/analyze-optimized.ts +111 -78
  10. package/src/commands/analyze.ts +14 -14
  11. package/src/commands/batch.ts +179 -42
  12. package/src/commands/chat.ts +37 -30
  13. package/src/commands/claude-init.ts +41 -45
  14. package/src/commands/claude-setup.ts +204 -119
  15. package/src/commands/computer-setup.ts +85 -43
  16. package/src/commands/create-command.ts +4 -4
  17. package/src/commands/create.ts +27 -27
  18. package/src/commands/dashboard.ts +24 -24
  19. package/src/commands/govern.ts +25 -25
  20. package/src/commands/governance.ts +34 -34
  21. package/src/commands/guardian.ts +56 -56
  22. package/src/commands/init.ts +25 -22
  23. package/src/commands/orchestrator.ts +68 -41
  24. package/src/commands/performance-optimizer.ts +34 -35
  25. package/src/commands/plugins.ts +27 -27
  26. package/src/commands/project-update.ts +175 -72
  27. package/src/commands/rag.ts +185 -78
  28. package/src/commands/session.ts +35 -35
  29. package/src/commands/setup.ts +40 -344
  30. package/src/commands/test-init.ts +3 -3
  31. package/src/commands/test.ts +4 -4
  32. package/src/commands/watch.ts +28 -29
  33. package/src/commands/worktree.ts +49 -49
  34. package/src/context/context-manager.ts +10 -10
  35. package/src/context/session-manager.ts +41 -41
  36. package/src/framework/command-interface.ts +520 -0
  37. package/src/framework/command-registry.ts +942 -0
  38. package/src/framework/completion-exporter.ts +383 -0
  39. package/src/framework/debug-logger.ts +519 -0
  40. package/src/framework/error-handler.ts +867 -0
  41. package/src/framework/help-generator.ts +540 -0
  42. package/src/framework/index.ts +169 -0
  43. package/src/framework/interactive-repl.ts +703 -0
  44. package/src/framework/output-formatter.ts +834 -0
  45. package/src/framework/progress-manager.ts +539 -0
  46. package/src/index.ts +4 -4
  47. package/src/interactive/interactive-mode.ts +16 -16
  48. package/src/lib/conflict-resolution.ts +799 -9
  49. package/src/lib/merge-strategy.ts +529 -7
  50. package/src/lib/safety-mechanisms.ts +422 -18
  51. package/src/lib/state-detection.ts +1015 -13
  52. package/src/nlp/command-mapper.ts +29 -29
  53. package/src/nlp/command-parser.ts +17 -17
  54. package/src/nlp/intent-classifier.ts +7 -7
  55. package/src/nlp/intent-parser.ts +54 -52
  56. package/src/plugins/plugin-manager.ts +61 -39
  57. package/src/tests/computer-setup-integration.test.ts +46 -15
  58. package/src/types/modules.d.ts +424 -1
  59. package/src/utils/backup-rollback-manager.ts +11 -8
  60. package/src/utils/config-manager.ts +3 -3
  61. package/src/utils/error-handler.ts +2 -2
  62. package/src/utils/logger.ts +22 -22
  63. package/templates/batch/ci-cd.yaml +7 -7
  64. package/test-suites/api/health.spec.ts +20 -23
  65. package/test-suites/helpers/test-config.ts +14 -13
  66. package/test-suites/ui/accessibility.spec.ts +27 -22
  67. package/test-suites/ui/smoke.spec.ts +26 -21
  68. package/LICENSE +0 -21
  69. package/dist/ai/ai-service.d.ts +0 -152
  70. package/dist/ai/ai-service.d.ts.map +0 -1
  71. package/dist/ai/ai-service.js +0 -430
  72. package/dist/ai/ai-service.js.map +0 -1
  73. package/dist/ai/claude-client.d.ts +0 -130
  74. package/dist/ai/claude-client.d.ts.map +0 -1
  75. package/dist/ai/claude-client.js +0 -340
  76. package/dist/ai/claude-client.js.map +0 -1
  77. package/dist/ai/conversation-manager.d.ts +0 -164
  78. package/dist/ai/conversation-manager.d.ts.map +0 -1
  79. package/dist/ai/conversation-manager.js +0 -614
  80. package/dist/ai/conversation-manager.js.map +0 -1
  81. package/dist/ai/index.d.ts +0 -5
  82. package/dist/ai/index.d.ts.map +0 -1
  83. package/dist/ai/index.js +0 -8
  84. package/dist/ai/index.js.map +0 -1
  85. package/dist/cli.d.ts +0 -36
  86. package/dist/cli.d.ts.map +0 -1
  87. package/dist/cli.js +0 -192
  88. package/dist/cli.js.map +0 -1
  89. package/dist/commands/ai.d.ts +0 -89
  90. package/dist/commands/ai.d.ts.map +0 -1
  91. package/dist/commands/ai.js +0 -799
  92. package/dist/commands/ai.js.map +0 -1
  93. package/dist/commands/alignment.d.ts +0 -78
  94. package/dist/commands/alignment.d.ts.map +0 -1
  95. package/dist/commands/alignment.js +0 -817
  96. package/dist/commands/alignment.js.map +0 -1
  97. package/dist/commands/analyze-optimized.d.ts +0 -14
  98. package/dist/commands/analyze-optimized.d.ts.map +0 -1
  99. package/dist/commands/analyze-optimized.js +0 -600
  100. package/dist/commands/analyze-optimized.js.map +0 -1
  101. package/dist/commands/analyze.d.ts +0 -65
  102. package/dist/commands/analyze.d.ts.map +0 -1
  103. package/dist/commands/analyze.js +0 -435
  104. package/dist/commands/analyze.js.map +0 -1
  105. package/dist/commands/batch.d.ts +0 -71
  106. package/dist/commands/batch.d.ts.map +0 -1
  107. package/dist/commands/batch.js +0 -738
  108. package/dist/commands/batch.js.map +0 -1
  109. package/dist/commands/chat.d.ts +0 -71
  110. package/dist/commands/chat.d.ts.map +0 -1
  111. package/dist/commands/chat.js +0 -674
  112. package/dist/commands/chat.js.map +0 -1
  113. package/dist/commands/claude-init.d.ts +0 -28
  114. package/dist/commands/claude-init.d.ts.map +0 -1
  115. package/dist/commands/claude-init.js +0 -591
  116. package/dist/commands/claude-init.js.map +0 -1
  117. package/dist/commands/claude-setup.d.ts +0 -119
  118. package/dist/commands/claude-setup.d.ts.map +0 -1
  119. package/dist/commands/claude-setup.js +0 -1073
  120. package/dist/commands/claude-setup.js.map +0 -1
  121. package/dist/commands/computer-setup-commands.d.ts +0 -53
  122. package/dist/commands/computer-setup-commands.d.ts.map +0 -1
  123. package/dist/commands/computer-setup-commands.js +0 -705
  124. package/dist/commands/computer-setup-commands.js.map +0 -1
  125. package/dist/commands/computer-setup.d.ts +0 -7
  126. package/dist/commands/computer-setup.d.ts.map +0 -1
  127. package/dist/commands/computer-setup.js +0 -849
  128. package/dist/commands/computer-setup.js.map +0 -1
  129. package/dist/commands/create-command.d.ts +0 -7
  130. package/dist/commands/create-command.d.ts.map +0 -1
  131. package/dist/commands/create-command.js +0 -158
  132. package/dist/commands/create-command.js.map +0 -1
  133. package/dist/commands/create.d.ts +0 -74
  134. package/dist/commands/create.d.ts.map +0 -1
  135. package/dist/commands/create.js +0 -556
  136. package/dist/commands/create.js.map +0 -1
  137. package/dist/commands/dashboard.d.ts +0 -91
  138. package/dist/commands/dashboard.d.ts.map +0 -1
  139. package/dist/commands/dashboard.js +0 -538
  140. package/dist/commands/dashboard.js.map +0 -1
  141. package/dist/commands/govern.d.ts +0 -70
  142. package/dist/commands/govern.d.ts.map +0 -1
  143. package/dist/commands/govern.js +0 -481
  144. package/dist/commands/govern.js.map +0 -1
  145. package/dist/commands/governance.d.ts +0 -17
  146. package/dist/commands/governance.d.ts.map +0 -1
  147. package/dist/commands/governance.js +0 -703
  148. package/dist/commands/governance.js.map +0 -1
  149. package/dist/commands/guardian.d.ts +0 -20
  150. package/dist/commands/guardian.d.ts.map +0 -1
  151. package/dist/commands/guardian.js +0 -597
  152. package/dist/commands/guardian.js.map +0 -1
  153. package/dist/commands/init.d.ts +0 -59
  154. package/dist/commands/init.d.ts.map +0 -1
  155. package/dist/commands/init.js +0 -650
  156. package/dist/commands/init.js.map +0 -1
  157. package/dist/commands/orchestrator.d.ts +0 -7
  158. package/dist/commands/orchestrator.d.ts.map +0 -1
  159. package/dist/commands/orchestrator.js +0 -571
  160. package/dist/commands/orchestrator.js.map +0 -1
  161. package/dist/commands/performance-optimizer.d.ts +0 -30
  162. package/dist/commands/performance-optimizer.d.ts.map +0 -1
  163. package/dist/commands/performance-optimizer.js +0 -650
  164. package/dist/commands/performance-optimizer.js.map +0 -1
  165. package/dist/commands/plugins.d.ts +0 -87
  166. package/dist/commands/plugins.d.ts.map +0 -1
  167. package/dist/commands/plugins.js +0 -685
  168. package/dist/commands/plugins.js.map +0 -1
  169. package/dist/commands/rag.d.ts +0 -7
  170. package/dist/commands/rag.d.ts.map +0 -1
  171. package/dist/commands/rag.js +0 -748
  172. package/dist/commands/rag.js.map +0 -1
  173. package/dist/commands/session.d.ts +0 -41
  174. package/dist/commands/session.d.ts.map +0 -1
  175. package/dist/commands/session.js +0 -441
  176. package/dist/commands/session.js.map +0 -1
  177. package/dist/commands/setup.d.ts +0 -29
  178. package/dist/commands/setup.d.ts.map +0 -1
  179. package/dist/commands/setup.js +0 -397
  180. package/dist/commands/setup.js.map +0 -1
  181. package/dist/commands/test-init.d.ts +0 -9
  182. package/dist/commands/test-init.d.ts.map +0 -1
  183. package/dist/commands/test-init.js +0 -222
  184. package/dist/commands/test-init.js.map +0 -1
  185. package/dist/commands/test.d.ts +0 -25
  186. package/dist/commands/test.d.ts.map +0 -1
  187. package/dist/commands/test.js +0 -217
  188. package/dist/commands/test.js.map +0 -1
  189. package/dist/commands/vp.d.ts +0 -7
  190. package/dist/commands/vp.d.ts.map +0 -1
  191. package/dist/commands/vp.js +0 -571
  192. package/dist/commands/vp.js.map +0 -1
  193. package/dist/commands/watch.d.ts +0 -76
  194. package/dist/commands/watch.d.ts.map +0 -1
  195. package/dist/commands/watch.js +0 -613
  196. package/dist/commands/watch.js.map +0 -1
  197. package/dist/commands/worktree.d.ts +0 -63
  198. package/dist/commands/worktree.d.ts.map +0 -1
  199. package/dist/commands/worktree.js +0 -774
  200. package/dist/commands/worktree.js.map +0 -1
  201. package/dist/context/context-manager.d.ts +0 -155
  202. package/dist/context/context-manager.d.ts.map +0 -1
  203. package/dist/context/context-manager.js +0 -383
  204. package/dist/context/context-manager.js.map +0 -1
  205. package/dist/context/index.d.ts +0 -3
  206. package/dist/context/index.d.ts.map +0 -1
  207. package/dist/context/index.js +0 -6
  208. package/dist/context/index.js.map +0 -1
  209. package/dist/context/session-manager.d.ts +0 -207
  210. package/dist/context/session-manager.d.ts.map +0 -1
  211. package/dist/context/session-manager.js +0 -686
  212. package/dist/context/session-manager.js.map +0 -1
  213. package/dist/index.d.ts +0 -8
  214. package/dist/index.d.ts.map +0 -1
  215. package/dist/index.js +0 -51
  216. package/dist/index.js.map +0 -1
  217. package/dist/interactive/interactive-mode.d.ts +0 -76
  218. package/dist/interactive/interactive-mode.d.ts.map +0 -1
  219. package/dist/interactive/interactive-mode.js +0 -732
  220. package/dist/interactive/interactive-mode.js.map +0 -1
  221. package/dist/nlp/command-mapper.d.ts +0 -174
  222. package/dist/nlp/command-mapper.d.ts.map +0 -1
  223. package/dist/nlp/command-mapper.js +0 -624
  224. package/dist/nlp/command-mapper.js.map +0 -1
  225. package/dist/nlp/command-parser.d.ts +0 -106
  226. package/dist/nlp/command-parser.d.ts.map +0 -1
  227. package/dist/nlp/command-parser.js +0 -417
  228. package/dist/nlp/command-parser.js.map +0 -1
  229. package/dist/nlp/index.d.ts +0 -5
  230. package/dist/nlp/index.d.ts.map +0 -1
  231. package/dist/nlp/index.js +0 -8
  232. package/dist/nlp/index.js.map +0 -1
  233. package/dist/nlp/intent-classifier.d.ts +0 -59
  234. package/dist/nlp/intent-classifier.d.ts.map +0 -1
  235. package/dist/nlp/intent-classifier.js +0 -384
  236. package/dist/nlp/intent-classifier.js.map +0 -1
  237. package/dist/nlp/intent-parser.d.ts +0 -152
  238. package/dist/nlp/intent-parser.d.ts.map +0 -1
  239. package/dist/nlp/intent-parser.js +0 -744
  240. package/dist/nlp/intent-parser.js.map +0 -1
  241. package/dist/plugins/plugin-manager.d.ts +0 -120
  242. package/dist/plugins/plugin-manager.d.ts.map +0 -1
  243. package/dist/plugins/plugin-manager.js +0 -595
  244. package/dist/plugins/plugin-manager.js.map +0 -1
  245. package/dist/types/index.d.ts +0 -224
  246. package/dist/types/index.d.ts.map +0 -1
  247. package/dist/types/index.js +0 -3
  248. package/dist/types/index.js.map +0 -1
  249. package/dist/utils/backup-rollback-manager.d.ts +0 -72
  250. package/dist/utils/backup-rollback-manager.d.ts.map +0 -1
  251. package/dist/utils/backup-rollback-manager.js +0 -289
  252. package/dist/utils/backup-rollback-manager.js.map +0 -1
  253. package/dist/utils/claude-config-installer.d.ts +0 -98
  254. package/dist/utils/claude-config-installer.d.ts.map +0 -1
  255. package/dist/utils/claude-config-installer.js +0 -678
  256. package/dist/utils/claude-config-installer.js.map +0 -1
  257. package/dist/utils/config-manager.d.ts +0 -73
  258. package/dist/utils/config-manager.d.ts.map +0 -1
  259. package/dist/utils/config-manager.js +0 -339
  260. package/dist/utils/config-manager.js.map +0 -1
  261. package/dist/utils/error-handler.d.ts +0 -46
  262. package/dist/utils/error-handler.d.ts.map +0 -1
  263. package/dist/utils/error-handler.js +0 -169
  264. package/dist/utils/error-handler.js.map +0 -1
  265. package/dist/utils/logger.d.ts +0 -25
  266. package/dist/utils/logger.d.ts.map +0 -1
  267. package/dist/utils/logger.js +0 -105
  268. package/dist/utils/logger.js.map +0 -1
  269. package/src/commands/computer-setup-commands.ts +0 -872
@@ -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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"}
@@ -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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"}