@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.
- 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
|
@@ -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":"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"}
|
package/dist/ai/claude-client.js
DELETED
|
@@ -1,340 +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
|
-
}
|
|
102
|
-
try {
|
|
103
|
-
const parsed = JSON.parse(data);
|
|
104
|
-
const content = parsed.choices[0]?.delta?.content;
|
|
105
|
-
if (content) {
|
|
106
|
-
yield content;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
catch (e) {
|
|
110
|
-
// Skip malformed chunks
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
throw this.handleError(error, 'Failed to stream conversation with Claude');
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Analyze intent from natural language input
|
|
122
|
-
*/
|
|
123
|
-
async analyzeIntent(input, availableCommands) {
|
|
124
|
-
const systemPrompt = `You are a CLI intent analyzer. Analyze user input and determine:
|
|
125
|
-
1. The intended CLI command from available options: ${availableCommands.join(', ')}
|
|
126
|
-
2. Extracted parameters
|
|
127
|
-
3. Confidence level (0-1)
|
|
128
|
-
4. Whether clarification is needed
|
|
129
|
-
|
|
130
|
-
Respond with JSON only in this format:
|
|
131
|
-
{
|
|
132
|
-
"intent": "command_name",
|
|
133
|
-
"confidence": 0.9,
|
|
134
|
-
"command": "wundr analyze --path ./src",
|
|
135
|
-
"parameters": {"path": "./src"},
|
|
136
|
-
"clarification": "optional clarification question"
|
|
137
|
-
}`;
|
|
138
|
-
try {
|
|
139
|
-
const response = await this.sendMessage(input, systemPrompt, {
|
|
140
|
-
temperature: 0.2,
|
|
141
|
-
maxTokens: 1024,
|
|
142
|
-
});
|
|
143
|
-
return JSON.parse(response);
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
throw this.handleError(error, 'Failed to analyze intent');
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Generate command suggestions based on context
|
|
151
|
-
*/
|
|
152
|
-
async suggestCommands(projectContext, userGoal, availableCommands) {
|
|
153
|
-
const systemPrompt = `You are a CLI assistant. Based on the project context and user goal, suggest the most appropriate CLI commands.
|
|
154
|
-
|
|
155
|
-
Project Context: ${projectContext}
|
|
156
|
-
User Goal: ${userGoal}
|
|
157
|
-
Available Commands: ${availableCommands.join(', ')}
|
|
158
|
-
|
|
159
|
-
Respond with JSON only:
|
|
160
|
-
{
|
|
161
|
-
"suggestions": [
|
|
162
|
-
{
|
|
163
|
-
"command": "wundr analyze --focus dependencies",
|
|
164
|
-
"description": "Analyze project dependencies",
|
|
165
|
-
"confidence": 0.9
|
|
166
|
-
}
|
|
167
|
-
]
|
|
168
|
-
}`;
|
|
169
|
-
try {
|
|
170
|
-
const response = await this.sendMessage('', systemPrompt, {
|
|
171
|
-
temperature: 0.3,
|
|
172
|
-
maxTokens: 1024,
|
|
173
|
-
});
|
|
174
|
-
return JSON.parse(response);
|
|
175
|
-
}
|
|
176
|
-
catch (error) {
|
|
177
|
-
throw this.handleError(error, 'Failed to generate command suggestions');
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Explain command results in natural language
|
|
182
|
-
*/
|
|
183
|
-
async explainResults(command, output, context) {
|
|
184
|
-
const systemPrompt = `You are a helpful CLI assistant. Explain the results of a CLI command in clear, natural language. Focus on:
|
|
185
|
-
1. What the command did
|
|
186
|
-
2. Key findings or results
|
|
187
|
-
3. Next steps or recommendations
|
|
188
|
-
4. Any issues or warnings
|
|
189
|
-
|
|
190
|
-
Be concise but informative.`;
|
|
191
|
-
const message = `Command: ${command}
|
|
192
|
-
${context ? `Context: ${context}\n` : ''}Output:
|
|
193
|
-
${output}`;
|
|
194
|
-
try {
|
|
195
|
-
return await this.sendMessage(message, systemPrompt, {
|
|
196
|
-
temperature: 0.4,
|
|
197
|
-
maxTokens: 2048,
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
catch (error) {
|
|
201
|
-
throw this.handleError(error, 'Failed to explain results');
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Generate help content for commands
|
|
206
|
-
*/
|
|
207
|
-
async generateHelp(command, userContext, difficulty = 'intermediate') {
|
|
208
|
-
const systemPrompt = `You are a CLI documentation assistant. Generate helpful, contextual guidance for CLI commands. Adapt the explanation level to: ${difficulty}
|
|
209
|
-
|
|
210
|
-
Provide:
|
|
211
|
-
1. What the command does
|
|
212
|
-
2. When to use it
|
|
213
|
-
3. Common options and examples
|
|
214
|
-
4. Tips and best practices
|
|
215
|
-
5. Related commands
|
|
216
|
-
|
|
217
|
-
Keep it practical and actionable.`;
|
|
218
|
-
const message = `Command: ${command}
|
|
219
|
-
User Context: ${userContext}`;
|
|
220
|
-
try {
|
|
221
|
-
return await this.sendMessage(message, systemPrompt, {
|
|
222
|
-
temperature: 0.3,
|
|
223
|
-
maxTokens: 2048,
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
throw this.handleError(error, 'Failed to generate help content');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Validate and test the API connection
|
|
232
|
-
*/
|
|
233
|
-
async validateConnection() {
|
|
234
|
-
try {
|
|
235
|
-
await this.sendMessage('Hello', 'Respond with just "OK" if you can understand this message.', {
|
|
236
|
-
maxTokens: 10,
|
|
237
|
-
});
|
|
238
|
-
return true;
|
|
239
|
-
}
|
|
240
|
-
catch (error) {
|
|
241
|
-
logger_1.logger.error('Claude API connection validation failed:', error);
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Get model information
|
|
247
|
-
*/
|
|
248
|
-
getModelInfo() {
|
|
249
|
-
return {
|
|
250
|
-
model: this.config.model,
|
|
251
|
-
maxTokens: this.config.maxTokens,
|
|
252
|
-
temperature: this.config.temperature,
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Update configuration
|
|
257
|
-
*/
|
|
258
|
-
updateConfig(updates) {
|
|
259
|
-
this.config = { ...this.config, ...updates };
|
|
260
|
-
if (updates.apiKey) {
|
|
261
|
-
this.client.defaults.headers['x-api-key'] = updates.apiKey;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Extract content from Claude API response
|
|
266
|
-
*/
|
|
267
|
-
extractContent(response) {
|
|
268
|
-
if (!response.choices || response.choices.length === 0) {
|
|
269
|
-
throw new Error('No choices in Claude API response');
|
|
270
|
-
}
|
|
271
|
-
return response.choices?.[0]?.message?.content || '';
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Setup request/response interceptors
|
|
275
|
-
*/
|
|
276
|
-
setupInterceptors() {
|
|
277
|
-
// Request interceptor
|
|
278
|
-
this.client.interceptors.request.use((config) => {
|
|
279
|
-
logger_1.logger.debug(`Claude API Request: ${config.method?.toUpperCase()} ${config.url}`);
|
|
280
|
-
return config;
|
|
281
|
-
}, (error) => {
|
|
282
|
-
logger_1.logger.error('Claude API Request Error:', error);
|
|
283
|
-
return Promise.reject(error);
|
|
284
|
-
});
|
|
285
|
-
// Response interceptor
|
|
286
|
-
this.client.interceptors.response.use((response) => {
|
|
287
|
-
logger_1.logger.debug(`Claude API Response: ${response.status} ${response.statusText}`);
|
|
288
|
-
return response;
|
|
289
|
-
}, (error) => {
|
|
290
|
-
logger_1.logger.error('Claude API Response Error:', error);
|
|
291
|
-
return Promise.reject(error);
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Handle API errors and convert to WundrError
|
|
296
|
-
*/
|
|
297
|
-
handleError(error, message) {
|
|
298
|
-
logger_1.logger.error(`Claude API Error: ${message}`, error);
|
|
299
|
-
let errorCode = 'CLAUDE_API_ERROR';
|
|
300
|
-
let errorMessage = message;
|
|
301
|
-
let recoverable = false;
|
|
302
|
-
if (error.response) {
|
|
303
|
-
const status = error.response.status;
|
|
304
|
-
const data = error.response.data;
|
|
305
|
-
switch (status) {
|
|
306
|
-
case 401:
|
|
307
|
-
errorCode = 'CLAUDE_AUTH_ERROR';
|
|
308
|
-
errorMessage =
|
|
309
|
-
'Invalid API key. Please check your Claude API configuration.';
|
|
310
|
-
recoverable = true;
|
|
311
|
-
break;
|
|
312
|
-
case 429:
|
|
313
|
-
errorCode = 'CLAUDE_RATE_LIMIT';
|
|
314
|
-
errorMessage = 'Rate limit exceeded. Please try again in a moment.';
|
|
315
|
-
recoverable = true;
|
|
316
|
-
break;
|
|
317
|
-
case 500:
|
|
318
|
-
errorCode = 'CLAUDE_SERVER_ERROR';
|
|
319
|
-
errorMessage = 'Claude API server error. Please try again later.';
|
|
320
|
-
recoverable = true;
|
|
321
|
-
break;
|
|
322
|
-
default:
|
|
323
|
-
errorMessage = `${message}: ${data?.error?.message || error.message}`;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
else if (error.code === 'ECONNREFUSED' || error.code === 'ENOTFOUND') {
|
|
327
|
-
errorCode = 'CLAUDE_CONNECTION_ERROR';
|
|
328
|
-
errorMessage =
|
|
329
|
-
'Unable to connect to Claude API. Please check your internet connection.';
|
|
330
|
-
recoverable = true;
|
|
331
|
-
}
|
|
332
|
-
const wundrError = new Error(errorMessage);
|
|
333
|
-
wundrError.code = errorCode;
|
|
334
|
-
wundrError.context = { originalError: error };
|
|
335
|
-
wundrError.recoverable = recoverable;
|
|
336
|
-
return wundrError;
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
exports.ClaudeClient = ClaudeClient;
|
|
340
|
-
//# 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 type { ClaudeClient } from './claude-client';
|
|
3
|
-
import type { 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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"}
|