@wundr.io/cli 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/README.md +696 -280
  2. package/package.json +4 -4
  3. package/src/commands/computer-setup-commands.ts +160 -0
  4. package/src/tests/computer-setup-integration.test.ts +439 -0
  5. package/src/utils/backup-rollback-manager.ts +361 -0
  6. package/src/utils/claude-config-installer.ts +732 -0
  7. package/dist/ai/ai-service.d.ts +0 -152
  8. package/dist/ai/ai-service.d.ts.map +0 -1
  9. package/dist/ai/ai-service.js +0 -430
  10. package/dist/ai/ai-service.js.map +0 -1
  11. package/dist/ai/claude-client.d.ts +0 -130
  12. package/dist/ai/claude-client.d.ts.map +0 -1
  13. package/dist/ai/claude-client.js +0 -339
  14. package/dist/ai/claude-client.js.map +0 -1
  15. package/dist/ai/conversation-manager.d.ts +0 -164
  16. package/dist/ai/conversation-manager.d.ts.map +0 -1
  17. package/dist/ai/conversation-manager.js +0 -612
  18. package/dist/ai/conversation-manager.js.map +0 -1
  19. package/dist/ai/index.d.ts +0 -5
  20. package/dist/ai/index.d.ts.map +0 -1
  21. package/dist/ai/index.js +0 -8
  22. package/dist/ai/index.js.map +0 -1
  23. package/dist/cli.d.ts +0 -36
  24. package/dist/cli.d.ts.map +0 -1
  25. package/dist/cli.js +0 -173
  26. package/dist/cli.js.map +0 -1
  27. package/dist/commands/ai.d.ts +0 -89
  28. package/dist/commands/ai.d.ts.map +0 -1
  29. package/dist/commands/ai.js +0 -735
  30. package/dist/commands/ai.js.map +0 -1
  31. package/dist/commands/analyze-optimized.d.ts +0 -14
  32. package/dist/commands/analyze-optimized.d.ts.map +0 -1
  33. package/dist/commands/analyze-optimized.js +0 -437
  34. package/dist/commands/analyze-optimized.js.map +0 -1
  35. package/dist/commands/analyze.d.ts +0 -65
  36. package/dist/commands/analyze.d.ts.map +0 -1
  37. package/dist/commands/analyze.js +0 -435
  38. package/dist/commands/analyze.js.map +0 -1
  39. package/dist/commands/batch.d.ts +0 -71
  40. package/dist/commands/batch.d.ts.map +0 -1
  41. package/dist/commands/batch.js +0 -738
  42. package/dist/commands/batch.js.map +0 -1
  43. package/dist/commands/chat.d.ts +0 -71
  44. package/dist/commands/chat.d.ts.map +0 -1
  45. package/dist/commands/chat.js +0 -674
  46. package/dist/commands/chat.js.map +0 -1
  47. package/dist/commands/claude-init.d.ts +0 -28
  48. package/dist/commands/claude-init.d.ts.map +0 -1
  49. package/dist/commands/claude-init.js +0 -587
  50. package/dist/commands/claude-init.js.map +0 -1
  51. package/dist/commands/claude-setup.d.ts +0 -32
  52. package/dist/commands/claude-setup.d.ts.map +0 -1
  53. package/dist/commands/claude-setup.js +0 -570
  54. package/dist/commands/claude-setup.js.map +0 -1
  55. package/dist/commands/computer-setup-commands.d.ts +0 -39
  56. package/dist/commands/computer-setup-commands.d.ts.map +0 -1
  57. package/dist/commands/computer-setup-commands.js +0 -563
  58. package/dist/commands/computer-setup-commands.js.map +0 -1
  59. package/dist/commands/computer-setup.d.ts +0 -7
  60. package/dist/commands/computer-setup.d.ts.map +0 -1
  61. package/dist/commands/computer-setup.js +0 -481
  62. package/dist/commands/computer-setup.js.map +0 -1
  63. package/dist/commands/create-command.d.ts +0 -7
  64. package/dist/commands/create-command.d.ts.map +0 -1
  65. package/dist/commands/create-command.js +0 -158
  66. package/dist/commands/create-command.js.map +0 -1
  67. package/dist/commands/create.d.ts +0 -74
  68. package/dist/commands/create.d.ts.map +0 -1
  69. package/dist/commands/create.js +0 -556
  70. package/dist/commands/create.js.map +0 -1
  71. package/dist/commands/dashboard.d.ts +0 -91
  72. package/dist/commands/dashboard.d.ts.map +0 -1
  73. package/dist/commands/dashboard.js +0 -537
  74. package/dist/commands/dashboard.js.map +0 -1
  75. package/dist/commands/govern.d.ts +0 -70
  76. package/dist/commands/govern.d.ts.map +0 -1
  77. package/dist/commands/govern.js +0 -480
  78. package/dist/commands/govern.js.map +0 -1
  79. package/dist/commands/init.d.ts +0 -55
  80. package/dist/commands/init.d.ts.map +0 -1
  81. package/dist/commands/init.js +0 -584
  82. package/dist/commands/init.js.map +0 -1
  83. package/dist/commands/performance-optimizer.d.ts +0 -30
  84. package/dist/commands/performance-optimizer.d.ts.map +0 -1
  85. package/dist/commands/performance-optimizer.js +0 -649
  86. package/dist/commands/performance-optimizer.js.map +0 -1
  87. package/dist/commands/plugins.d.ts +0 -87
  88. package/dist/commands/plugins.d.ts.map +0 -1
  89. package/dist/commands/plugins.js +0 -685
  90. package/dist/commands/plugins.js.map +0 -1
  91. package/dist/commands/setup.d.ts +0 -29
  92. package/dist/commands/setup.d.ts.map +0 -1
  93. package/dist/commands/setup.js +0 -399
  94. package/dist/commands/setup.js.map +0 -1
  95. package/dist/commands/test-init.d.ts +0 -9
  96. package/dist/commands/test-init.d.ts.map +0 -1
  97. package/dist/commands/test-init.js +0 -222
  98. package/dist/commands/test-init.js.map +0 -1
  99. package/dist/commands/test.d.ts +0 -25
  100. package/dist/commands/test.d.ts.map +0 -1
  101. package/dist/commands/test.js +0 -217
  102. package/dist/commands/test.js.map +0 -1
  103. package/dist/commands/watch.d.ts +0 -76
  104. package/dist/commands/watch.d.ts.map +0 -1
  105. package/dist/commands/watch.js +0 -610
  106. package/dist/commands/watch.js.map +0 -1
  107. package/dist/context/context-manager.d.ts +0 -155
  108. package/dist/context/context-manager.d.ts.map +0 -1
  109. package/dist/context/context-manager.js +0 -383
  110. package/dist/context/context-manager.js.map +0 -1
  111. package/dist/context/index.d.ts +0 -3
  112. package/dist/context/index.d.ts.map +0 -1
  113. package/dist/context/index.js +0 -6
  114. package/dist/context/index.js.map +0 -1
  115. package/dist/context/session-manager.d.ts +0 -207
  116. package/dist/context/session-manager.d.ts.map +0 -1
  117. package/dist/context/session-manager.js +0 -682
  118. package/dist/context/session-manager.js.map +0 -1
  119. package/dist/index.d.ts +0 -8
  120. package/dist/index.d.ts.map +0 -1
  121. package/dist/index.js +0 -51
  122. package/dist/index.js.map +0 -1
  123. package/dist/interactive/interactive-mode.d.ts +0 -76
  124. package/dist/interactive/interactive-mode.d.ts.map +0 -1
  125. package/dist/interactive/interactive-mode.js +0 -730
  126. package/dist/interactive/interactive-mode.js.map +0 -1
  127. package/dist/nlp/command-mapper.d.ts +0 -174
  128. package/dist/nlp/command-mapper.d.ts.map +0 -1
  129. package/dist/nlp/command-mapper.js +0 -623
  130. package/dist/nlp/command-mapper.js.map +0 -1
  131. package/dist/nlp/command-parser.d.ts +0 -106
  132. package/dist/nlp/command-parser.d.ts.map +0 -1
  133. package/dist/nlp/command-parser.js +0 -416
  134. package/dist/nlp/command-parser.js.map +0 -1
  135. package/dist/nlp/index.d.ts +0 -5
  136. package/dist/nlp/index.d.ts.map +0 -1
  137. package/dist/nlp/index.js +0 -8
  138. package/dist/nlp/index.js.map +0 -1
  139. package/dist/nlp/intent-classifier.d.ts +0 -59
  140. package/dist/nlp/intent-classifier.d.ts.map +0 -1
  141. package/dist/nlp/intent-classifier.js +0 -384
  142. package/dist/nlp/intent-classifier.js.map +0 -1
  143. package/dist/nlp/intent-parser.d.ts +0 -152
  144. package/dist/nlp/intent-parser.d.ts.map +0 -1
  145. package/dist/nlp/intent-parser.js +0 -739
  146. package/dist/nlp/intent-parser.js.map +0 -1
  147. package/dist/plugins/plugin-manager.d.ts +0 -120
  148. package/dist/plugins/plugin-manager.d.ts.map +0 -1
  149. package/dist/plugins/plugin-manager.js +0 -595
  150. package/dist/plugins/plugin-manager.js.map +0 -1
  151. package/dist/types/index.d.ts +0 -224
  152. package/dist/types/index.d.ts.map +0 -1
  153. package/dist/types/index.js +0 -3
  154. package/dist/types/index.js.map +0 -1
  155. package/dist/utils/config-manager.d.ts +0 -73
  156. package/dist/utils/config-manager.d.ts.map +0 -1
  157. package/dist/utils/config-manager.js +0 -339
  158. package/dist/utils/config-manager.js.map +0 -1
  159. package/dist/utils/error-handler.d.ts +0 -46
  160. package/dist/utils/error-handler.d.ts.map +0 -1
  161. package/dist/utils/error-handler.js +0 -169
  162. package/dist/utils/error-handler.js.map +0 -1
  163. package/dist/utils/logger.d.ts +0 -25
  164. package/dist/utils/logger.d.ts.map +0 -1
  165. package/dist/utils/logger.js +0 -94
  166. package/dist/utils/logger.js.map +0 -1
@@ -1,130 +0,0 @@
1
- /**
2
- * Claude API client configuration
3
- */
4
- export interface ClaudeConfig {
5
- apiKey: string;
6
- model: string;
7
- maxTokens: number;
8
- temperature: number;
9
- baseUrl?: string;
10
- }
11
- /**
12
- * Claude API message structure
13
- */
14
- export interface ClaudeMessage {
15
- role: 'user' | 'assistant' | 'system';
16
- content: string;
17
- }
18
- /**
19
- * Claude API response structure
20
- */
21
- export interface ClaudeResponse {
22
- id: string;
23
- object: string;
24
- created: number;
25
- model: string;
26
- choices: {
27
- index: number;
28
- message: ClaudeMessage;
29
- finish_reason: string;
30
- }[];
31
- usage: {
32
- prompt_tokens: number;
33
- completion_tokens: number;
34
- total_tokens: number;
35
- };
36
- }
37
- /**
38
- * Claude API streaming response
39
- */
40
- export interface ClaudeStreamChunk {
41
- id: string;
42
- object: string;
43
- created: number;
44
- model: string;
45
- choices: {
46
- index: number;
47
- delta: {
48
- role?: string;
49
- content?: string;
50
- };
51
- finish_reason?: string;
52
- }[];
53
- }
54
- /**
55
- * Claude API client for Claude-Opus-4.1 integration
56
- */
57
- export declare class ClaudeClient {
58
- private client;
59
- private config;
60
- constructor(config: ClaudeConfig);
61
- /**
62
- * Send a single message to Claude
63
- */
64
- sendMessage(message: string, systemPrompt?: string, options?: Partial<ClaudeConfig>): Promise<string>;
65
- /**
66
- * Send conversation history to Claude
67
- */
68
- sendConversation(messages: ClaudeMessage[], systemPrompt?: string, options?: Partial<ClaudeConfig>): Promise<string>;
69
- /**
70
- * Stream a conversation with Claude
71
- */
72
- streamConversation(messages: ClaudeMessage[], systemPrompt?: string, options?: Partial<ClaudeConfig>): AsyncGenerator<string, void, unknown>;
73
- /**
74
- * Analyze intent from natural language input
75
- */
76
- analyzeIntent(input: string, availableCommands: string[]): Promise<{
77
- intent: string;
78
- confidence: number;
79
- command?: string;
80
- parameters?: Record<string, any>;
81
- clarification?: string;
82
- }>;
83
- /**
84
- * Generate command suggestions based on context
85
- */
86
- suggestCommands(projectContext: string, userGoal: string, availableCommands: string[]): Promise<{
87
- suggestions: Array<{
88
- command: string;
89
- description: string;
90
- confidence: number;
91
- }>;
92
- }>;
93
- /**
94
- * Explain command results in natural language
95
- */
96
- explainResults(command: string, output: string, context?: string): Promise<string>;
97
- /**
98
- * Generate help content for commands
99
- */
100
- generateHelp(command: string, userContext: string, difficulty?: 'beginner' | 'intermediate' | 'advanced'): Promise<string>;
101
- /**
102
- * Validate and test the API connection
103
- */
104
- validateConnection(): Promise<boolean>;
105
- /**
106
- * Get model information
107
- */
108
- getModelInfo(): {
109
- model: string;
110
- maxTokens: number;
111
- temperature: number;
112
- };
113
- /**
114
- * Update configuration
115
- */
116
- updateConfig(updates: Partial<ClaudeConfig>): void;
117
- /**
118
- * Extract content from Claude API response
119
- */
120
- private extractContent;
121
- /**
122
- * Setup request/response interceptors
123
- */
124
- private setupInterceptors;
125
- /**
126
- * Handle API errors and convert to WundrError
127
- */
128
- private handleError;
129
- }
130
- //# sourceMappingURL=claude-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-client.d.ts","sourceRoot":"","sources":["../../src/ai/claude-client.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,aAAa,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,EAAE,CAAC;IACJ,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE;YACL,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;CACL;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAoBhC;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;IAuBlB;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;IAqBlB;;OAEG;IACI,kBAAkB,CACvB,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAsDxC;;OAEG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IA4BF;;OAEG;IACG,eAAe,CACnB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC;QACT,WAAW,EAAE,KAAK,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC,CAAC;KACJ,CAAC;IA8BF;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAuBlB;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,UAAU,GAAG,cAAc,GAAG,UAA2B,GACpE,OAAO,CAAC,MAAM,CAAC;IAyBlB;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB5C;;OAEG;IACH,YAAY,IAAI;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB;IAQD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAQlD;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACH,OAAO,CAAC,WAAW;CA6CpB"}
@@ -1,339 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClaudeClient = void 0;
4
- const tslib_1 = require("tslib");
5
- const axios_1 = tslib_1.__importDefault(require("axios"));
6
- const logger_1 = require("../utils/logger");
7
- /**
8
- * Claude API client for Claude-Opus-4.1 integration
9
- */
10
- class ClaudeClient {
11
- client;
12
- config;
13
- constructor(config) {
14
- this.config = {
15
- baseUrl: 'https://api.anthropic.com',
16
- ...config,
17
- };
18
- this.client = axios_1.default.create({
19
- baseURL: this.config.baseUrl,
20
- headers: {
21
- 'Content-Type': 'application/json',
22
- 'x-api-key': this.config.apiKey,
23
- 'anthropic-version': '2023-06-01',
24
- },
25
- timeout: 30000,
26
- });
27
- // Add request/response interceptors for logging and error handling
28
- this.setupInterceptors();
29
- }
30
- /**
31
- * Send a single message to Claude
32
- */
33
- async sendMessage(message, systemPrompt, options) {
34
- try {
35
- const messages = [];
36
- if (systemPrompt) {
37
- messages.push({ role: 'system', content: systemPrompt });
38
- }
39
- messages.push({ role: 'user', content: message });
40
- const response = await this.client.post('/v1/messages', {
41
- model: options?.model || this.config.model,
42
- max_tokens: options?.maxTokens || this.config.maxTokens,
43
- temperature: options?.temperature ?? this.config.temperature,
44
- messages,
45
- });
46
- return this.extractContent(response.data);
47
- }
48
- catch (error) {
49
- throw this.handleError(error, 'Failed to send message to Claude');
50
- }
51
- }
52
- /**
53
- * Send conversation history to Claude
54
- */
55
- async sendConversation(messages, systemPrompt, options) {
56
- try {
57
- const conversationMessages = [...messages];
58
- if (systemPrompt) {
59
- conversationMessages.unshift({ role: 'system', content: systemPrompt });
60
- }
61
- const response = await this.client.post('/v1/messages', {
62
- model: options?.model || this.config.model,
63
- max_tokens: options?.maxTokens || this.config.maxTokens,
64
- temperature: options?.temperature ?? this.config.temperature,
65
- messages: conversationMessages,
66
- });
67
- return this.extractContent(response.data);
68
- }
69
- catch (error) {
70
- throw this.handleError(error, 'Failed to send conversation to Claude');
71
- }
72
- }
73
- /**
74
- * Stream a conversation with Claude
75
- */
76
- async *streamConversation(messages, systemPrompt, options) {
77
- try {
78
- const conversationMessages = [...messages];
79
- if (systemPrompt) {
80
- conversationMessages.unshift({ role: 'system', content: systemPrompt });
81
- }
82
- const response = await this.client.post('/v1/messages', {
83
- model: options?.model || this.config.model,
84
- max_tokens: options?.maxTokens || this.config.maxTokens,
85
- temperature: options?.temperature ?? this.config.temperature,
86
- messages: conversationMessages,
87
- stream: true,
88
- }, {
89
- responseType: 'stream',
90
- });
91
- let buffer = '';
92
- for await (const chunk of response.data) {
93
- buffer += chunk.toString();
94
- const lines = buffer.split('\n');
95
- buffer = lines.pop() || '';
96
- for (const line of lines) {
97
- if (line.startsWith('data: ')) {
98
- const data = line.slice(6);
99
- if (data === '[DONE]')
100
- return;
101
- try {
102
- const parsed = JSON.parse(data);
103
- const content = parsed.choices[0]?.delta?.content;
104
- if (content) {
105
- yield content;
106
- }
107
- }
108
- catch (e) {
109
- // Skip malformed chunks
110
- }
111
- }
112
- }
113
- }
114
- }
115
- catch (error) {
116
- throw this.handleError(error, 'Failed to stream conversation with Claude');
117
- }
118
- }
119
- /**
120
- * Analyze intent from natural language input
121
- */
122
- async analyzeIntent(input, availableCommands) {
123
- const systemPrompt = `You are a CLI intent analyzer. Analyze user input and determine:
124
- 1. The intended CLI command from available options: ${availableCommands.join(', ')}
125
- 2. Extracted parameters
126
- 3. Confidence level (0-1)
127
- 4. Whether clarification is needed
128
-
129
- Respond with JSON only in this format:
130
- {
131
- "intent": "command_name",
132
- "confidence": 0.9,
133
- "command": "wundr analyze --path ./src",
134
- "parameters": {"path": "./src"},
135
- "clarification": "optional clarification question"
136
- }`;
137
- try {
138
- const response = await this.sendMessage(input, systemPrompt, {
139
- temperature: 0.2,
140
- maxTokens: 1024,
141
- });
142
- return JSON.parse(response);
143
- }
144
- catch (error) {
145
- throw this.handleError(error, 'Failed to analyze intent');
146
- }
147
- }
148
- /**
149
- * Generate command suggestions based on context
150
- */
151
- async suggestCommands(projectContext, userGoal, availableCommands) {
152
- const systemPrompt = `You are a CLI assistant. Based on the project context and user goal, suggest the most appropriate CLI commands.
153
-
154
- Project Context: ${projectContext}
155
- User Goal: ${userGoal}
156
- Available Commands: ${availableCommands.join(', ')}
157
-
158
- Respond with JSON only:
159
- {
160
- "suggestions": [
161
- {
162
- "command": "wundr analyze --focus dependencies",
163
- "description": "Analyze project dependencies",
164
- "confidence": 0.9
165
- }
166
- ]
167
- }`;
168
- try {
169
- const response = await this.sendMessage('', systemPrompt, {
170
- temperature: 0.3,
171
- maxTokens: 1024,
172
- });
173
- return JSON.parse(response);
174
- }
175
- catch (error) {
176
- throw this.handleError(error, 'Failed to generate command suggestions');
177
- }
178
- }
179
- /**
180
- * Explain command results in natural language
181
- */
182
- async explainResults(command, output, context) {
183
- const systemPrompt = `You are a helpful CLI assistant. Explain the results of a CLI command in clear, natural language. Focus on:
184
- 1. What the command did
185
- 2. Key findings or results
186
- 3. Next steps or recommendations
187
- 4. Any issues or warnings
188
-
189
- Be concise but informative.`;
190
- const message = `Command: ${command}
191
- ${context ? `Context: ${context}\n` : ''}Output:
192
- ${output}`;
193
- try {
194
- return await this.sendMessage(message, systemPrompt, {
195
- temperature: 0.4,
196
- maxTokens: 2048,
197
- });
198
- }
199
- catch (error) {
200
- throw this.handleError(error, 'Failed to explain results');
201
- }
202
- }
203
- /**
204
- * Generate help content for commands
205
- */
206
- async generateHelp(command, userContext, difficulty = 'intermediate') {
207
- const systemPrompt = `You are a CLI documentation assistant. Generate helpful, contextual guidance for CLI commands. Adapt the explanation level to: ${difficulty}
208
-
209
- Provide:
210
- 1. What the command does
211
- 2. When to use it
212
- 3. Common options and examples
213
- 4. Tips and best practices
214
- 5. Related commands
215
-
216
- Keep it practical and actionable.`;
217
- const message = `Command: ${command}
218
- User Context: ${userContext}`;
219
- try {
220
- return await this.sendMessage(message, systemPrompt, {
221
- temperature: 0.3,
222
- maxTokens: 2048,
223
- });
224
- }
225
- catch (error) {
226
- throw this.handleError(error, 'Failed to generate help content');
227
- }
228
- }
229
- /**
230
- * Validate and test the API connection
231
- */
232
- async validateConnection() {
233
- try {
234
- await this.sendMessage('Hello', 'Respond with just "OK" if you can understand this message.', {
235
- maxTokens: 10,
236
- });
237
- return true;
238
- }
239
- catch (error) {
240
- logger_1.logger.error('Claude API connection validation failed:', error);
241
- return false;
242
- }
243
- }
244
- /**
245
- * Get model information
246
- */
247
- getModelInfo() {
248
- return {
249
- model: this.config.model,
250
- maxTokens: this.config.maxTokens,
251
- temperature: this.config.temperature,
252
- };
253
- }
254
- /**
255
- * Update configuration
256
- */
257
- updateConfig(updates) {
258
- this.config = { ...this.config, ...updates };
259
- if (updates.apiKey) {
260
- this.client.defaults.headers['x-api-key'] = updates.apiKey;
261
- }
262
- }
263
- /**
264
- * Extract content from Claude API response
265
- */
266
- extractContent(response) {
267
- if (!response.choices || response.choices.length === 0) {
268
- throw new Error('No choices in Claude API response');
269
- }
270
- return response.choices?.[0]?.message?.content || '';
271
- }
272
- /**
273
- * Setup request/response interceptors
274
- */
275
- setupInterceptors() {
276
- // Request interceptor
277
- this.client.interceptors.request.use((config) => {
278
- logger_1.logger.debug(`Claude API Request: ${config.method?.toUpperCase()} ${config.url}`);
279
- return config;
280
- }, (error) => {
281
- logger_1.logger.error('Claude API Request Error:', error);
282
- return Promise.reject(error);
283
- });
284
- // Response interceptor
285
- this.client.interceptors.response.use((response) => {
286
- logger_1.logger.debug(`Claude API Response: ${response.status} ${response.statusText}`);
287
- return response;
288
- }, (error) => {
289
- logger_1.logger.error('Claude API Response Error:', error);
290
- return Promise.reject(error);
291
- });
292
- }
293
- /**
294
- * Handle API errors and convert to WundrError
295
- */
296
- handleError(error, message) {
297
- logger_1.logger.error(`Claude API Error: ${message}`, error);
298
- let errorCode = 'CLAUDE_API_ERROR';
299
- let errorMessage = message;
300
- let recoverable = false;
301
- if (error.response) {
302
- const status = error.response.status;
303
- const data = error.response.data;
304
- switch (status) {
305
- case 401:
306
- errorCode = 'CLAUDE_AUTH_ERROR';
307
- errorMessage =
308
- 'Invalid API key. Please check your Claude API configuration.';
309
- recoverable = true;
310
- break;
311
- case 429:
312
- errorCode = 'CLAUDE_RATE_LIMIT';
313
- errorMessage = 'Rate limit exceeded. Please try again in a moment.';
314
- recoverable = true;
315
- break;
316
- case 500:
317
- errorCode = 'CLAUDE_SERVER_ERROR';
318
- errorMessage = 'Claude API server error. Please try again later.';
319
- recoverable = true;
320
- break;
321
- default:
322
- errorMessage = `${message}: ${data?.error?.message || error.message}`;
323
- }
324
- }
325
- else if (error.code === 'ECONNREFUSED' || error.code === 'ENOTFOUND') {
326
- errorCode = 'CLAUDE_CONNECTION_ERROR';
327
- errorMessage =
328
- 'Unable to connect to Claude API. Please check your internet connection.';
329
- recoverable = true;
330
- }
331
- const wundrError = new Error(errorMessage);
332
- wundrError.code = errorCode;
333
- wundrError.context = { originalError: error };
334
- wundrError.recoverable = recoverable;
335
- return wundrError;
336
- }
337
- }
338
- exports.ClaudeClient = ClaudeClient;
339
- //# sourceMappingURL=claude-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-client.js","sourceRoot":"","sources":["../../src/ai/claude-client.ts"],"names":[],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import { ClaudeClient } from './claude-client';
3
- import { ChatSession, ChatMessage } from '../types';
4
- /**
5
- * Configuration for conversation management
6
- */
7
- export interface ConversationConfig {
8
- maxHistoryLength: number;
9
- contextWindowSize: number;
10
- sessionTimeout: number;
11
- persistencePath: string;
12
- autoSave: boolean;
13
- compressionThreshold: number;
14
- }
15
- /**
16
- * Session metadata for enhanced tracking
17
- */
18
- export interface SessionMetadata {
19
- tokenUsage: {
20
- total: number;
21
- prompt: number;
22
- completion: number;
23
- };
24
- performance: {
25
- averageResponseTime: number;
26
- totalRequests: number;
27
- errorCount: number;
28
- };
29
- context: {
30
- projectPath?: string;
31
- currentCommand?: string;
32
- userPreferences: Record<string, any>;
33
- workflow?: string[];
34
- };
35
- }
36
- /**
37
- * Enhanced chat session with metadata
38
- */
39
- export interface EnhancedChatSession extends ChatSession {
40
- metadata: SessionMetadata;
41
- tags: string[];
42
- archived: boolean;
43
- lastAccessed: Date;
44
- }
45
- /**
46
- * Conversation manager handles session persistence, context optimization, and memory management
47
- */
48
- export declare class ConversationManager extends EventEmitter {
49
- private activeSessions;
50
- private claudeClient;
51
- private config;
52
- private sessionCleanupTimer?;
53
- constructor(claudeClient: ClaudeClient, config?: Partial<ConversationConfig>);
54
- /**
55
- * Create a new conversation session
56
- */
57
- createSession(options?: {
58
- id?: string;
59
- model?: string;
60
- context?: string;
61
- tags?: string[];
62
- metadata?: Partial<SessionMetadata>;
63
- }): Promise<EnhancedChatSession>;
64
- /**
65
- * Load an existing session
66
- */
67
- loadSession(sessionId: string): Promise<EnhancedChatSession | null>;
68
- /**
69
- * Send a message in a conversation session
70
- */
71
- sendMessage(sessionId: string, message: string, options?: {
72
- systemPrompt?: string;
73
- streaming?: boolean;
74
- metadata?: Record<string, any>;
75
- }): Promise<string | AsyncGenerator<string, void, unknown>>;
76
- /**
77
- * Get conversation history with optional filtering
78
- */
79
- getHistory(sessionId: string, options?: {
80
- limit?: number;
81
- from?: Date;
82
- to?: Date;
83
- roles?: ('user' | 'assistant' | 'system')[];
84
- }): ChatMessage[];
85
- /**
86
- * Add context to a conversation session
87
- */
88
- addContext(sessionId: string, contextType: 'project' | 'command' | 'preference' | 'workflow', contextData: any): Promise<void>;
89
- /**
90
- * Archive old or inactive sessions
91
- */
92
- archiveSessions(criteria?: {
93
- olderThan?: number;
94
- inactiveFor?: number;
95
- maxSessions?: number;
96
- }): Promise<string[]>;
97
- /**
98
- * Search conversations by content or metadata
99
- */
100
- searchConversations(query: {
101
- text?: string;
102
- tags?: string[];
103
- dateRange?: {
104
- from: Date;
105
- to: Date;
106
- };
107
- model?: string;
108
- limit?: number;
109
- }): Promise<Array<{
110
- sessionId: string;
111
- matches: ChatMessage[];
112
- score: number;
113
- }>>;
114
- /**
115
- * Get session statistics
116
- */
117
- getSessionStats(sessionId?: string): any;
118
- /**
119
- * Clean up expired sessions
120
- */
121
- cleanup(): Promise<void>;
122
- /**
123
- * Export conversation data
124
- */
125
- exportSession(sessionId: string, format: 'json' | 'markdown' | 'csv'): Promise<string>;
126
- /**
127
- * Import conversation data
128
- */
129
- importSession(data: string, format: 'json'): Promise<string>;
130
- /**
131
- * List all sessions with pagination
132
- */
133
- listSessions(options?: {
134
- limit?: number;
135
- offset?: number;
136
- includeArchived?: boolean;
137
- sortBy?: 'created' | 'updated' | 'lastAccessed';
138
- sortOrder?: 'asc' | 'desc';
139
- }): Promise<{
140
- sessions: Array<Pick<EnhancedChatSession, 'id' | 'created' | 'updated' | 'lastAccessed' | 'tags' | 'archived'>>;
141
- total: number;
142
- hasMore: boolean;
143
- }>;
144
- private initializeManager;
145
- private optimizeContext;
146
- private compressHistory;
147
- private handleSyncResponse;
148
- private handleStreamingResponse;
149
- private updatePerformanceMetrics;
150
- private persistSession;
151
- private getSessionPath;
152
- private serializeSession;
153
- private deserializeSession;
154
- private searchSession;
155
- private calculateSearchScore;
156
- private sessionToMarkdown;
157
- private sessionToCsv;
158
- /**
159
- * Cleanup resources
160
- */
161
- destroy(): void;
162
- }
163
- export default ConversationManager;
164
- //# sourceMappingURL=conversation-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../../src/ai/conversation-manager.ts"],"names":[],"mappings":"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"}