@nanocollective/nanocoder 1.20.3 → 1.21.0
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/LICENSE.md +1 -1
- package/README.md +100 -70
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/ai-sdk-client/chat/chat-handler.d.ts +1 -0
- package/dist/ai-sdk-client/chat/chat-handler.d.ts.map +1 -1
- package/dist/ai-sdk-client/chat/chat-handler.js +65 -7
- package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
- package/dist/ai-sdk-client/error-handling/tool-error-detector.d.ts +8 -0
- package/dist/ai-sdk-client/error-handling/tool-error-detector.d.ts.map +1 -0
- package/dist/ai-sdk-client/error-handling/tool-error-detector.js +52 -0
- package/dist/ai-sdk-client/error-handling/tool-error-detector.js.map +1 -0
- package/dist/ai-sdk-client/tools/tool-prompt-formatter.d.ts +8 -0
- package/dist/ai-sdk-client/tools/tool-prompt-formatter.d.ts.map +1 -0
- package/dist/ai-sdk-client/tools/tool-prompt-formatter.js +97 -0
- package/dist/ai-sdk-client/tools/tool-prompt-formatter.js.map +1 -0
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/App.js +11 -1
- package/dist/app/App.js.map +1 -1
- package/dist/app/components/modal-selectors.d.ts +7 -1
- package/dist/app/components/modal-selectors.d.ts.map +1 -1
- package/dist/app/components/modal-selectors.js +11 -3
- package/dist/app/components/modal-selectors.js.map +1 -1
- package/dist/app/utils/app-util.d.ts.map +1 -1
- package/dist/app/utils/app-util.js +174 -4
- package/dist/app/utils/app-util.js.map +1 -1
- package/dist/cli.js +22 -0
- package/dist/cli.js.map +1 -1
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +19 -20
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/compact.d.ts +24 -0
- package/dist/commands/compact.d.ts.map +1 -0
- package/dist/commands/compact.js +31 -0
- package/dist/commands/compact.js.map +1 -0
- package/dist/commands/exit.d.ts +1 -0
- package/dist/commands/exit.d.ts.map +1 -1
- package/dist/commands/exit.js +14 -0
- package/dist/commands/exit.js.map +1 -1
- package/dist/commands/help.js +1 -1
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +4 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +4 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +15 -21
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/nanocoder-shape.d.ts +3 -0
- package/dist/commands/nanocoder-shape.d.ts.map +1 -0
- package/dist/commands/nanocoder-shape.js +46 -0
- package/dist/commands/nanocoder-shape.js.map +1 -0
- package/dist/commands/setup-mcp.d.ts +3 -0
- package/dist/commands/setup-mcp.d.ts.map +1 -0
- package/dist/commands/setup-mcp.js +15 -0
- package/dist/commands/setup-mcp.js.map +1 -0
- package/dist/commands/setup-providers.d.ts +3 -0
- package/dist/commands/setup-providers.d.ts.map +1 -0
- package/dist/commands/{setup-config.js → setup-providers.js} +4 -4
- package/dist/commands/setup-providers.js.map +1 -0
- package/dist/components/nanocoder-shape-selector.d.ts +8 -0
- package/dist/components/nanocoder-shape-selector.d.ts.map +1 -0
- package/dist/components/nanocoder-shape-selector.js +61 -0
- package/dist/components/nanocoder-shape-selector.js.map +1 -0
- package/dist/components/status.d.ts +11 -0
- package/dist/components/status.d.ts.map +1 -1
- package/dist/components/status.js +3 -3
- package/dist/components/status.js.map +1 -1
- package/dist/components/user-input.d.ts.map +1 -1
- package/dist/components/user-input.js +1 -14
- package/dist/components/user-input.js.map +1 -1
- package/dist/components/welcome-message.d.ts.map +1 -1
- package/dist/components/welcome-message.js +6 -2
- package/dist/components/welcome-message.js.map +1 -1
- package/dist/config/index.d.ts +7 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +100 -16
- package/dist/config/index.js.map +1 -1
- package/dist/config/mcp-config-loader.d.ts +31 -0
- package/dist/config/mcp-config-loader.d.ts.map +1 -0
- package/dist/config/mcp-config-loader.js +341 -0
- package/dist/config/mcp-config-loader.js.map +1 -0
- package/dist/config/nanocoder-tools-config.d.ts +7 -0
- package/dist/config/nanocoder-tools-config.d.ts.map +1 -0
- package/dist/config/nanocoder-tools-config.js +14 -0
- package/dist/config/nanocoder-tools-config.js.map +1 -0
- package/dist/config/preferences.d.ts +3 -0
- package/dist/config/preferences.d.ts.map +1 -1
- package/dist/config/preferences.js +9 -0
- package/dist/config/preferences.js.map +1 -1
- package/dist/config/validation.d.ts +11 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +71 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +2 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.js +43 -18
- package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.js +2 -0
- package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
- package/dist/hooks/useAppHandlers.d.ts +2 -0
- package/dist/hooks/useAppHandlers.d.ts.map +1 -1
- package/dist/hooks/useAppHandlers.js +66 -2
- package/dist/hooks/useAppHandlers.js.map +1 -1
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +9 -2
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useAppState.d.ts +4 -0
- package/dist/hooks/useAppState.d.ts.map +1 -1
- package/dist/hooks/useAppState.js +6 -0
- package/dist/hooks/useAppState.js.map +1 -1
- package/dist/hooks/useModeHandlers.d.ts +10 -2
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +50 -2
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/hooks/useTerminalWidth.d.ts +1 -1
- package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
- package/dist/hooks/useTerminalWidth.js +2 -2
- package/dist/hooks/useTerminalWidth.js.map +1 -1
- package/dist/mcp/mcp-client.d.ts +2 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +13 -1
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/mcp/transport-factory.d.ts.map +1 -1
- package/dist/mcp/transport-factory.js +7 -1
- package/dist/mcp/transport-factory.js.map +1 -1
- package/dist/models/models-dev-client.d.ts.map +1 -1
- package/dist/models/models-dev-client.js +4 -0
- package/dist/models/models-dev-client.js.map +1 -1
- package/dist/services/bash-executor.d.ts.map +1 -1
- package/dist/services/bash-executor.js +7 -0
- package/dist/services/bash-executor.js.map +1 -1
- package/dist/test-utils/cli-test-harness.d.ts +181 -0
- package/dist/test-utils/cli-test-harness.d.ts.map +1 -0
- package/dist/test-utils/cli-test-harness.js +413 -0
- package/dist/test-utils/cli-test-harness.js.map +1 -0
- package/dist/tools/execute-bash.d.ts.map +1 -1
- package/dist/tools/execute-bash.js +10 -2
- package/dist/tools/execute-bash.js.map +1 -1
- package/dist/tools/string-replace.d.ts.map +1 -1
- package/dist/tools/string-replace.js +6 -1
- package/dist/tools/string-replace.js.map +1 -1
- package/dist/tools/tool-manager.d.ts +1 -0
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/write-file.d.ts.map +1 -1
- package/dist/tools/write-file.js +6 -1
- package/dist/tools/write-file.js.map +1 -1
- package/dist/types/app.d.ts +2 -0
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/config.d.ts +48 -27
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/mcp.d.ts +1 -0
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/ui.d.ts +1 -0
- package/dist/types/ui.d.ts.map +1 -1
- package/dist/utils/auto-compact.d.ts +23 -0
- package/dist/utils/auto-compact.d.ts.map +1 -0
- package/dist/utils/auto-compact.js +149 -0
- package/dist/utils/auto-compact.js.map +1 -0
- package/dist/utils/compression-backup.d.ts +14 -0
- package/dist/utils/compression-backup.d.ts.map +1 -0
- package/dist/utils/compression-backup.js +31 -0
- package/dist/utils/compression-backup.js.map +1 -0
- package/dist/utils/logging/config.d.ts +11 -0
- package/dist/utils/logging/config.d.ts.map +1 -1
- package/dist/utils/logging/config.js +19 -4
- package/dist/utils/logging/config.js.map +1 -1
- package/dist/utils/logging/logger-provider.d.ts +15 -0
- package/dist/utils/logging/logger-provider.d.ts.map +1 -1
- package/dist/utils/logging/logger-provider.js +48 -24
- package/dist/utils/logging/logger-provider.js.map +1 -1
- package/dist/utils/message-compression.d.ts +55 -0
- package/dist/utils/message-compression.d.ts.map +1 -0
- package/dist/utils/message-compression.js +401 -0
- package/dist/utils/message-compression.js.map +1 -0
- package/dist/wizards/mcp-wizard.d.ts +8 -0
- package/dist/wizards/mcp-wizard.d.ts.map +1 -0
- package/dist/wizards/mcp-wizard.js +256 -0
- package/dist/wizards/mcp-wizard.js.map +1 -0
- package/dist/wizards/provider-wizard.d.ts +8 -0
- package/dist/wizards/provider-wizard.d.ts.map +1 -0
- package/dist/wizards/provider-wizard.js +254 -0
- package/dist/wizards/provider-wizard.js.map +1 -0
- package/dist/wizards/steps/location-step.d.ts +10 -0
- package/dist/wizards/steps/location-step.d.ts.map +1 -0
- package/dist/{wizard → wizards}/steps/location-step.js +7 -10
- package/dist/wizards/steps/location-step.js.map +1 -0
- package/dist/{wizard → wizards}/steps/mcp-step.d.ts +3 -1
- package/dist/wizards/steps/mcp-step.d.ts.map +1 -0
- package/dist/{wizard → wizards}/steps/mcp-step.js +14 -11
- package/dist/wizards/steps/mcp-step.js.map +1 -0
- package/dist/wizards/steps/provider-step.d.ts +11 -0
- package/dist/wizards/steps/provider-step.d.ts.map +1 -0
- package/dist/{wizard → wizards}/steps/provider-step.js +12 -10
- package/dist/wizards/steps/provider-step.js.map +1 -0
- package/dist/{wizard → wizards}/steps/summary-step.d.ts +3 -2
- package/dist/wizards/steps/summary-step.d.ts.map +1 -0
- package/dist/{wizard → wizards}/steps/summary-step.js +2 -2
- package/dist/wizards/steps/summary-step.js.map +1 -0
- package/dist/{wizard → wizards}/templates/mcp-templates.d.ts +1 -0
- package/dist/wizards/templates/mcp-templates.d.ts.map +1 -0
- package/dist/wizards/templates/mcp-templates.js.map +1 -0
- package/dist/wizards/templates/provider-templates.d.ts.map +1 -0
- package/dist/{wizard → wizards}/templates/provider-templates.js +3 -14
- package/dist/wizards/templates/provider-templates.js.map +1 -0
- package/dist/wizards/utils/fetch-cloud-models.d.ts.map +1 -0
- package/dist/wizards/utils/fetch-cloud-models.js.map +1 -0
- package/dist/wizards/utils/fetch-local-models.d.ts.map +1 -0
- package/dist/wizards/utils/fetch-local-models.js.map +1 -0
- package/dist/wizards/validation.d.ts +70 -0
- package/dist/wizards/validation.d.ts.map +1 -0
- package/dist/{wizard → wizards}/validation.js +58 -1
- package/dist/wizards/validation.js.map +1 -0
- package/package.json +19 -7
- package/dist/commands/setup-config.d.ts +0 -3
- package/dist/commands/setup-config.d.ts.map +0 -1
- package/dist/commands/setup-config.js.map +0 -1
- package/dist/wizard/config-wizard.d.ts +0 -8
- package/dist/wizard/config-wizard.d.ts.map +0 -1
- package/dist/wizard/config-wizard.js +0 -212
- package/dist/wizard/config-wizard.js.map +0 -1
- package/dist/wizard/steps/location-step.d.ts +0 -9
- package/dist/wizard/steps/location-step.d.ts.map +0 -1
- package/dist/wizard/steps/location-step.js.map +0 -1
- package/dist/wizard/steps/mcp-step.d.ts.map +0 -1
- package/dist/wizard/steps/mcp-step.js.map +0 -1
- package/dist/wizard/steps/provider-step.d.ts +0 -9
- package/dist/wizard/steps/provider-step.d.ts.map +0 -1
- package/dist/wizard/steps/provider-step.js.map +0 -1
- package/dist/wizard/steps/summary-step.d.ts.map +0 -1
- package/dist/wizard/steps/summary-step.js.map +0 -1
- package/dist/wizard/templates/mcp-templates.d.ts.map +0 -1
- package/dist/wizard/templates/mcp-templates.js.map +0 -1
- package/dist/wizard/templates/provider-templates.d.ts.map +0 -1
- package/dist/wizard/templates/provider-templates.js.map +0 -1
- package/dist/wizard/utils/fetch-cloud-models.d.ts.map +0 -1
- package/dist/wizard/utils/fetch-cloud-models.js.map +0 -1
- package/dist/wizard/utils/fetch-local-models.d.ts.map +0 -1
- package/dist/wizard/utils/fetch-local-models.js.map +0 -1
- package/dist/wizard/validation.d.ts +0 -64
- package/dist/wizard/validation.d.ts.map +0 -1
- package/dist/wizard/validation.js.map +0 -1
- /package/dist/{wizard → wizards}/templates/mcp-templates.js +0 -0
- /package/dist/{wizard → wizards}/templates/provider-templates.d.ts +0 -0
- /package/dist/{wizard → wizards}/utils/fetch-cloud-models.d.ts +0 -0
- /package/dist/{wizard → wizards}/utils/fetch-cloud-models.js +0 -0
- /package/dist/{wizard → wizards}/utils/fetch-local-models.d.ts +0 -0
- /package/dist/{wizard → wizards}/utils/fetch-local-models.js +0 -0
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compression configuration constants
|
|
3
|
+
*/
|
|
4
|
+
export const COMPRESSION_CONSTANTS = {
|
|
5
|
+
/** Default number of recent messages to keep at full detail */
|
|
6
|
+
DEFAULT_KEEP_RECENT_MESSAGES: 2,
|
|
7
|
+
/** Character threshold for compressing user messages */
|
|
8
|
+
USER_MESSAGE_COMPRESSION_THRESHOLD: 500,
|
|
9
|
+
/** Character threshold for compressing assistant messages with tool_calls */
|
|
10
|
+
ASSISTANT_WITH_TOOLS_THRESHOLD: 300,
|
|
11
|
+
/** Target length for aggressive text truncation */
|
|
12
|
+
AGGRESSIVE_TRUNCATION_LIMIT: 100,
|
|
13
|
+
/** Target length for default text truncation */
|
|
14
|
+
DEFAULT_TRUNCATION_LIMIT: 200,
|
|
15
|
+
/** Target length for aggressive assistant message truncation */
|
|
16
|
+
AGGRESSIVE_ASSISTANT_LIMIT: 150,
|
|
17
|
+
/** Target length for default assistant message truncation */
|
|
18
|
+
DEFAULT_ASSISTANT_LIMIT: 300,
|
|
19
|
+
/** Minimum valid auto-compact threshold percentage */
|
|
20
|
+
MIN_THRESHOLD_PERCENT: 50,
|
|
21
|
+
/** Maximum valid auto-compact threshold percentage */
|
|
22
|
+
MAX_THRESHOLD_PERCENT: 95,
|
|
23
|
+
/** Character threshold for compressing user messages in conservative mode */
|
|
24
|
+
CONSERVATIVE_USER_MESSAGE_THRESHOLD: 1000,
|
|
25
|
+
/** Target length for conservative mode text truncation */
|
|
26
|
+
CONSERVATIVE_TRUNCATION_LIMIT: 500,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Compress message history while preserving essential information
|
|
30
|
+
* @param messages - Original messages to compress
|
|
31
|
+
* @param tokenizer - Tokenizer for counting tokens
|
|
32
|
+
* @param options - Compression options
|
|
33
|
+
* @returns Compression result with compressed messages and statistics
|
|
34
|
+
*/
|
|
35
|
+
export function compressMessages(messages, tokenizer, options) {
|
|
36
|
+
if (messages.length === 0) {
|
|
37
|
+
return {
|
|
38
|
+
compressedMessages: [],
|
|
39
|
+
originalTokenCount: 0,
|
|
40
|
+
compressedTokenCount: 0,
|
|
41
|
+
reductionPercentage: 0,
|
|
42
|
+
preservedInfo: {
|
|
43
|
+
keyDecisions: 0,
|
|
44
|
+
fileModifications: 0,
|
|
45
|
+
toolResults: 0,
|
|
46
|
+
recentMessages: 0,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const keepRecent = options.keepRecentMessages ??
|
|
51
|
+
COMPRESSION_CONSTANTS.DEFAULT_KEEP_RECENT_MESSAGES;
|
|
52
|
+
const originalTokenCount = countTotalTokens(messages, tokenizer);
|
|
53
|
+
// Separate messages into: system, compressible, and recent (keep full)
|
|
54
|
+
const systemMessages = [];
|
|
55
|
+
const compressibleMessages = [];
|
|
56
|
+
const recentMessages = [];
|
|
57
|
+
for (let i = 0; i < messages.length; i++) {
|
|
58
|
+
const msg = messages[i];
|
|
59
|
+
if (msg.role === 'system') {
|
|
60
|
+
systemMessages.push(msg);
|
|
61
|
+
}
|
|
62
|
+
else if (i >= messages.length - keepRecent) {
|
|
63
|
+
recentMessages.push(msg);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
compressibleMessages.push(msg);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Compress the compressible messages
|
|
70
|
+
const compressed = compressMessageSegment(compressibleMessages, options.mode);
|
|
71
|
+
// Combine: system + compressed + recent
|
|
72
|
+
const compressedMessages = [
|
|
73
|
+
...systemMessages,
|
|
74
|
+
...compressed,
|
|
75
|
+
...recentMessages,
|
|
76
|
+
];
|
|
77
|
+
const compressedTokenCount = countTotalTokens(compressedMessages, tokenizer);
|
|
78
|
+
const reductionPercentage = originalTokenCount > 0
|
|
79
|
+
? ((originalTokenCount - compressedTokenCount) / originalTokenCount) * 100
|
|
80
|
+
: 0;
|
|
81
|
+
// Count preserved information
|
|
82
|
+
const preservedInfo = {
|
|
83
|
+
keyDecisions: countKeyDecisions(compressed),
|
|
84
|
+
fileModifications: countFileModifications(compressed),
|
|
85
|
+
toolResults: countToolResults(compressed),
|
|
86
|
+
recentMessages: recentMessages.length,
|
|
87
|
+
};
|
|
88
|
+
return {
|
|
89
|
+
compressedMessages,
|
|
90
|
+
originalTokenCount,
|
|
91
|
+
compressedTokenCount,
|
|
92
|
+
reductionPercentage,
|
|
93
|
+
preservedInfo,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// Compress a segment of messages excluding system and recent
|
|
97
|
+
function compressMessageSegment(messages, mode) {
|
|
98
|
+
if (messages.length === 0) {
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
const compressed = [];
|
|
102
|
+
let i = 0;
|
|
103
|
+
while (i < messages.length) {
|
|
104
|
+
const msg = messages[i];
|
|
105
|
+
// Handle tool messages
|
|
106
|
+
if (msg.role === 'tool') {
|
|
107
|
+
const compressedTool = compressToolResult(msg, mode);
|
|
108
|
+
compressed.push(compressedTool);
|
|
109
|
+
i++;
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
// Handle assistant messages with tool calls
|
|
113
|
+
if (msg.role === 'assistant' &&
|
|
114
|
+
msg.tool_calls &&
|
|
115
|
+
msg.tool_calls.length > 0) {
|
|
116
|
+
// Keep assistant message with tool calls, but compress content if verbose
|
|
117
|
+
const compressedMsg = compressAssistantMessage(msg, mode);
|
|
118
|
+
compressed.push(compressedMsg);
|
|
119
|
+
i++;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
// Handle user messages, summarize if verbose
|
|
123
|
+
if (msg.role === 'user') {
|
|
124
|
+
const compressedUser = compressUserMessage(msg, mode);
|
|
125
|
+
compressed.push(compressedUser);
|
|
126
|
+
i++;
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
// Handle assistant messages, summarize if verbose
|
|
130
|
+
if (msg.role === 'assistant') {
|
|
131
|
+
const compressedAssistant = compressAssistantMessage(msg, mode);
|
|
132
|
+
compressed.push(compressedAssistant);
|
|
133
|
+
i++;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
// Unknown role keep
|
|
137
|
+
compressed.push(msg);
|
|
138
|
+
i++;
|
|
139
|
+
}
|
|
140
|
+
return compressed;
|
|
141
|
+
}
|
|
142
|
+
// Compress a tool result message, Keep things like facts,terminal logs, verbose JSON, etc.
|
|
143
|
+
function compressToolResult(msg, mode) {
|
|
144
|
+
if (msg.role !== 'tool' || !msg.name) {
|
|
145
|
+
return msg;
|
|
146
|
+
}
|
|
147
|
+
const toolName = msg.name;
|
|
148
|
+
const content = msg.content || '';
|
|
149
|
+
// Extract error status
|
|
150
|
+
const hasError = checkForError(content);
|
|
151
|
+
// Compress based on mode
|
|
152
|
+
let compressedContent;
|
|
153
|
+
if (mode === 'aggressive') {
|
|
154
|
+
// Most aggressive: just outcome
|
|
155
|
+
compressedContent = hasError
|
|
156
|
+
? compressToolError(toolName, content)
|
|
157
|
+
: `Tool: ${toolName}\nResult: success`;
|
|
158
|
+
}
|
|
159
|
+
else if (mode === 'conservative') {
|
|
160
|
+
// Conservative: keep more detail
|
|
161
|
+
compressedContent = compressToolResultConservative(toolName, content);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
// Default: balanced
|
|
165
|
+
compressedContent = compressToolResultDefault(toolName, content);
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
...msg,
|
|
169
|
+
content: compressedContent,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
// Compress tool result in default mode
|
|
173
|
+
function compressToolResultDefault(toolName, content) {
|
|
174
|
+
const error = extractErrorInfo(content);
|
|
175
|
+
if (error) {
|
|
176
|
+
return `Tool: ${toolName}\nError: ${error.type}\n${error.details}\nResolved: ${error.resolved ? 'yes' : 'no'}`;
|
|
177
|
+
}
|
|
178
|
+
// Check for success indicators
|
|
179
|
+
if (isSuccess(content)) {
|
|
180
|
+
return `Tool: ${toolName}\nResult: success`;
|
|
181
|
+
}
|
|
182
|
+
// Extract key information like first line, key metrics, etc.
|
|
183
|
+
const lines = content.split('\n');
|
|
184
|
+
const firstLine = lines[0] || '';
|
|
185
|
+
const keyInfo = extractKeyInfo(content);
|
|
186
|
+
if (keyInfo) {
|
|
187
|
+
return `Tool: ${toolName}\nResult: ${keyInfo}`;
|
|
188
|
+
}
|
|
189
|
+
// Fallback: truncate to first meaningful line
|
|
190
|
+
return `Tool: ${toolName}\nResult: ${firstLine.substring(0, 100)}`;
|
|
191
|
+
}
|
|
192
|
+
// Compress tool result in conservative mode
|
|
193
|
+
function compressToolResultConservative(toolName, content) {
|
|
194
|
+
const error = extractErrorInfo(content);
|
|
195
|
+
if (error) {
|
|
196
|
+
return `Tool: ${toolName}\nError: ${error.type}\n${error.details}\nResolved: ${error.resolved ? 'yes' : 'no'}`;
|
|
197
|
+
}
|
|
198
|
+
// Keep first few lines and summary
|
|
199
|
+
const lines = content.split('\n').filter(line => line.trim());
|
|
200
|
+
const importantLines = lines.slice(0, 3);
|
|
201
|
+
const summary = importantLines.join('\n');
|
|
202
|
+
return `Tool: ${toolName}\nResult: ${summary}${lines.length > 3 ? '...' : ''}`;
|
|
203
|
+
}
|
|
204
|
+
// Compress tool error
|
|
205
|
+
function compressToolError(toolName, content) {
|
|
206
|
+
const error = extractErrorInfo(content);
|
|
207
|
+
if (error) {
|
|
208
|
+
return `Tool: ${toolName}\nError: ${error.type}\n${error.details}\nResolved: ${error.resolved ? 'yes' : 'no'}`;
|
|
209
|
+
}
|
|
210
|
+
return `Tool: ${toolName}\nError: (error occurred)`;
|
|
211
|
+
}
|
|
212
|
+
// Extract error information from tool result
|
|
213
|
+
function extractErrorInfo(content) {
|
|
214
|
+
// Look for common error patterns
|
|
215
|
+
const errorPatterns = [/Error:\s*(\w+)/i, /(\w+Error):/i, /(\w+Exception):/i];
|
|
216
|
+
for (const pattern of errorPatterns) {
|
|
217
|
+
const match = content.match(pattern);
|
|
218
|
+
if (match) {
|
|
219
|
+
const errorType = match[1];
|
|
220
|
+
// Try to extract file and line if present
|
|
221
|
+
const fileMatch = content.match(/File:\s*([^\n]+)/i);
|
|
222
|
+
const lineMatch = content.match(/Line:\s*(\d+)/i);
|
|
223
|
+
let details = errorType;
|
|
224
|
+
if (fileMatch) {
|
|
225
|
+
details += ` in ${fileMatch[1]}`;
|
|
226
|
+
if (lineMatch) {
|
|
227
|
+
details += `:${lineMatch[1]}`;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Check if resolved
|
|
231
|
+
const resolved = /fixed|resolved|success|working/i.test(content) &&
|
|
232
|
+
!/failed|error|broken/i.test(content.slice(content.indexOf(match[0]) + match[0].length));
|
|
233
|
+
return {
|
|
234
|
+
type: errorType,
|
|
235
|
+
details,
|
|
236
|
+
resolved,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
// Check if content indicates success
|
|
243
|
+
function isSuccess(content) {
|
|
244
|
+
const successPatterns = [
|
|
245
|
+
/^success$/i,
|
|
246
|
+
/^ok$/i,
|
|
247
|
+
/^done$/i,
|
|
248
|
+
/completed successfully/i,
|
|
249
|
+
/no errors/i,
|
|
250
|
+
];
|
|
251
|
+
return successPatterns.some(pattern => pattern.test(content));
|
|
252
|
+
}
|
|
253
|
+
// Check for error in content
|
|
254
|
+
function checkForError(content) {
|
|
255
|
+
return /error|exception|failed|failure/i.test(content);
|
|
256
|
+
}
|
|
257
|
+
// Extract key information from tool result
|
|
258
|
+
function extractKeyInfo(content) {
|
|
259
|
+
// Look for key metrics or summary lines
|
|
260
|
+
const lines = content.split('\n').filter(line => line.trim());
|
|
261
|
+
if (lines.length === 0) {
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
264
|
+
// Prefer short, informative lines
|
|
265
|
+
for (const line of lines.slice(0, 5)) {
|
|
266
|
+
if (line.length < 100 && !line.includes('...') && !line.includes('node:')) {
|
|
267
|
+
return line;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return null;
|
|
271
|
+
}
|
|
272
|
+
// Compress user message
|
|
273
|
+
function compressUserMessage(msg, mode) {
|
|
274
|
+
if (msg.role !== 'user') {
|
|
275
|
+
return msg;
|
|
276
|
+
}
|
|
277
|
+
const content = msg.content || '';
|
|
278
|
+
// Conservative mode: only compress very long messages (>1000 chars)
|
|
279
|
+
if (mode === 'conservative') {
|
|
280
|
+
if (content.length > COMPRESSION_CONSTANTS.CONSERVATIVE_USER_MESSAGE_THRESHOLD) {
|
|
281
|
+
const summary = summarizeText(content, COMPRESSION_CONSTANTS.CONSERVATIVE_TRUNCATION_LIMIT);
|
|
282
|
+
return {
|
|
283
|
+
...msg,
|
|
284
|
+
content: summary,
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
return msg;
|
|
288
|
+
}
|
|
289
|
+
// Default/Aggressive: summarize if very long
|
|
290
|
+
if (content.length > COMPRESSION_CONSTANTS.USER_MESSAGE_COMPRESSION_THRESHOLD) {
|
|
291
|
+
const summary = summarizeText(content, mode === 'aggressive'
|
|
292
|
+
? COMPRESSION_CONSTANTS.AGGRESSIVE_TRUNCATION_LIMIT
|
|
293
|
+
: COMPRESSION_CONSTANTS.DEFAULT_TRUNCATION_LIMIT);
|
|
294
|
+
return {
|
|
295
|
+
...msg,
|
|
296
|
+
content: summary,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
return msg;
|
|
300
|
+
}
|
|
301
|
+
// Compress assistant message
|
|
302
|
+
function compressAssistantMessage(msg, mode) {
|
|
303
|
+
if (msg.role !== 'assistant') {
|
|
304
|
+
return msg;
|
|
305
|
+
}
|
|
306
|
+
const content = msg.content || '';
|
|
307
|
+
// Keep tool calls as is
|
|
308
|
+
if (msg.tool_calls && msg.tool_calls.length > 0) {
|
|
309
|
+
// Compress content if verbose, but keep tool calls
|
|
310
|
+
if (content.length > COMPRESSION_CONSTANTS.ASSISTANT_WITH_TOOLS_THRESHOLD &&
|
|
311
|
+
mode !== 'conservative') {
|
|
312
|
+
return {
|
|
313
|
+
...msg,
|
|
314
|
+
content: summarizeText(content, mode === 'aggressive'
|
|
315
|
+
? COMPRESSION_CONSTANTS.AGGRESSIVE_TRUNCATION_LIMIT
|
|
316
|
+
: COMPRESSION_CONSTANTS.DEFAULT_TRUNCATION_LIMIT),
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
return msg;
|
|
320
|
+
}
|
|
321
|
+
// Conservative mode: keep as is
|
|
322
|
+
if (mode === 'conservative') {
|
|
323
|
+
return msg;
|
|
324
|
+
}
|
|
325
|
+
// Default/Aggressive: summarize if very long
|
|
326
|
+
if (content.length > COMPRESSION_CONSTANTS.USER_MESSAGE_COMPRESSION_THRESHOLD) {
|
|
327
|
+
const summary = summarizeText(content, mode === 'aggressive'
|
|
328
|
+
? COMPRESSION_CONSTANTS.AGGRESSIVE_ASSISTANT_LIMIT
|
|
329
|
+
: COMPRESSION_CONSTANTS.DEFAULT_ASSISTANT_LIMIT);
|
|
330
|
+
return {
|
|
331
|
+
...msg,
|
|
332
|
+
content: summary,
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
return msg;
|
|
336
|
+
}
|
|
337
|
+
// Summarize text to target length
|
|
338
|
+
function summarizeText(text, targetLength) {
|
|
339
|
+
if (text.length <= targetLength) {
|
|
340
|
+
return text;
|
|
341
|
+
}
|
|
342
|
+
// Try to keep first sentence/paragraph
|
|
343
|
+
const sentences = text.split(/[.!?]\s+/);
|
|
344
|
+
let summary = '';
|
|
345
|
+
for (const sentence of sentences) {
|
|
346
|
+
if ((summary + sentence).length <= targetLength - 3) {
|
|
347
|
+
summary += sentence + '. ';
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
break;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if (summary) {
|
|
354
|
+
return summary.trim() + '...';
|
|
355
|
+
}
|
|
356
|
+
// Fallback
|
|
357
|
+
return text.substring(0, targetLength - 3) + '...';
|
|
358
|
+
}
|
|
359
|
+
// Count total tokens in messages
|
|
360
|
+
function countTotalTokens(messages, tokenizer) {
|
|
361
|
+
let total = 0;
|
|
362
|
+
for (const msg of messages) {
|
|
363
|
+
total += tokenizer.countTokens(msg);
|
|
364
|
+
}
|
|
365
|
+
return total;
|
|
366
|
+
}
|
|
367
|
+
// Count key decisions in compressed messages
|
|
368
|
+
function countKeyDecisions(messages) {
|
|
369
|
+
// Look for messages with decision indicators
|
|
370
|
+
let count = 0;
|
|
371
|
+
for (const msg of messages) {
|
|
372
|
+
if (msg.role === 'user' || msg.role === 'assistant') {
|
|
373
|
+
const content = (msg.content || '').toLowerCase();
|
|
374
|
+
if (/decided|decision|chose|chosen|will use|using|selected|choose/i.test(content)) {
|
|
375
|
+
count++;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return count;
|
|
380
|
+
}
|
|
381
|
+
// Count file modifications
|
|
382
|
+
function countFileModifications(messages) {
|
|
383
|
+
let count = 0;
|
|
384
|
+
for (const msg of messages) {
|
|
385
|
+
if (msg.role === 'tool' && msg.name) {
|
|
386
|
+
const toolName = msg.name.toLowerCase();
|
|
387
|
+
if (toolName.includes('write') ||
|
|
388
|
+
toolName.includes('edit') ||
|
|
389
|
+
toolName.includes('create') ||
|
|
390
|
+
toolName.includes('modify')) {
|
|
391
|
+
count++;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return count;
|
|
396
|
+
}
|
|
397
|
+
// Count tool results
|
|
398
|
+
function countToolResults(messages) {
|
|
399
|
+
return messages.filter(msg => msg.role === 'tool').length;
|
|
400
|
+
}
|
|
401
|
+
//# sourceMappingURL=message-compression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-compression.js","sourceRoot":"","sources":["../../source/utils/message-compression.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACpC,+DAA+D;IAC/D,4BAA4B,EAAE,CAAC;IAC/B,wDAAwD;IACxD,kCAAkC,EAAE,GAAG;IACvC,6EAA6E;IAC7E,8BAA8B,EAAE,GAAG;IACnC,mDAAmD;IACnD,2BAA2B,EAAE,GAAG;IAChC,gDAAgD;IAChD,wBAAwB,EAAE,GAAG;IAC7B,gEAAgE;IAChE,0BAA0B,EAAE,GAAG;IAC/B,6DAA6D;IAC7D,uBAAuB,EAAE,GAAG;IAC5B,sDAAsD;IACtD,qBAAqB,EAAE,EAAE;IACzB,sDAAsD;IACtD,qBAAqB,EAAE,EAAE;IACzB,6EAA6E;IAC7E,mCAAmC,EAAE,IAAI;IACzC,0DAA0D;IAC1D,6BAA6B,EAAE,GAAG;CACzB,CAAC;AAoBX;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC/B,QAAmB,EACnB,SAAoB,EACpB,OAA2B;IAE3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACN,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,CAAC;YACrB,oBAAoB,EAAE,CAAC;YACvB,mBAAmB,EAAE,CAAC;YACtB,aAAa,EAAE;gBACd,YAAY,EAAE,CAAC;gBACf,iBAAiB,EAAE,CAAC;gBACpB,WAAW,EAAE,CAAC;gBACd,cAAc,EAAE,CAAC;aACjB;SACD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GACf,OAAO,CAAC,kBAAkB;QAC1B,qBAAqB,CAAC,4BAA4B,CAAC;IACpD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjE,uEAAuE;IACvE,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,MAAM,oBAAoB,GAAc,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAc,EAAE,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YAC9C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAED,qCAAqC;IACrC,MAAM,UAAU,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9E,wCAAwC;IACxC,MAAM,kBAAkB,GAAG;QAC1B,GAAG,cAAc;QACjB,GAAG,UAAU;QACb,GAAG,cAAc;KACjB,CAAC;IAEF,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAC7E,MAAM,mBAAmB,GACxB,kBAAkB,GAAG,CAAC;QACrB,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,GAAG,kBAAkB,CAAC,GAAG,GAAG;QAC1E,CAAC,CAAC,CAAC,CAAC;IAEN,8BAA8B;IAC9B,MAAM,aAAa,GAAG;QACrB,YAAY,EAAE,iBAAiB,CAAC,UAAU,CAAC;QAC3C,iBAAiB,EAAE,sBAAsB,CAAC,UAAU,CAAC;QACrD,WAAW,EAAE,gBAAgB,CAAC,UAAU,CAAC;QACzC,cAAc,EAAE,cAAc,CAAC,MAAM;KACrC,CAAC;IAEF,OAAO;QACN,kBAAkB;QAClB,kBAAkB;QAClB,oBAAoB;QACpB,mBAAmB;QACnB,aAAa;KACb,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAS,sBAAsB,CAC9B,QAAmB,EACnB,IAAqB;IAErB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,UAAU,GAAc,EAAE,CAAC;IACjC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExB,uBAAuB;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChC,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QAED,4CAA4C;QAC5C,IACC,GAAG,CAAC,IAAI,KAAK,WAAW;YACxB,GAAG,CAAC,UAAU;YACd,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACxB,CAAC;YACF,0EAA0E;YAC1E,MAAM,aAAa,GAAG,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1D,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/B,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QAED,6CAA6C;QAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChC,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QAED,kDAAkD;QAClD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAChE,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACrC,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QAED,oBAAoB;QACpB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,EAAE,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,2FAA2F;AAC3F,SAAS,kBAAkB,CAAC,GAAY,EAAE,IAAqB;IAC9D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAElC,uBAAuB;IACvB,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAExC,yBAAyB;IACzB,IAAI,iBAAyB,CAAC;IAE9B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC3B,gCAAgC;QAChC,iBAAiB,GAAG,QAAQ;YAC3B,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC;YACtC,CAAC,CAAC,SAAS,QAAQ,mBAAmB,CAAC;IACzC,CAAC;SAAM,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QACpC,iCAAiC;QACjC,iBAAiB,GAAG,8BAA8B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACP,oBAAoB;QACpB,iBAAiB,GAAG,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACN,GAAG,GAAG;QACN,OAAO,EAAE,iBAAiB;KAC1B,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,SAAS,yBAAyB,CAAC,QAAgB,EAAE,OAAe;IACnE,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,QAAQ,YAAY,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,eAAe,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChH,CAAC;IAED,+BAA+B;IAC/B,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,QAAQ,mBAAmB,CAAC;IAC7C,CAAC;IAED,6DAA6D;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,QAAQ,aAAa,OAAO,EAAE,CAAC;IAChD,CAAC;IAED,8CAA8C;IAC9C,OAAO,SAAS,QAAQ,aAAa,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,4CAA4C;AAC5C,SAAS,8BAA8B,CACtC,QAAgB,EAChB,OAAe;IAEf,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,QAAQ,YAAY,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,eAAe,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChH,CAAC;IAED,mCAAmC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1C,OAAO,SAAS,QAAQ,aAAa,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAChF,CAAC;AAED,sBAAsB;AACtB,SAAS,iBAAiB,CAAC,QAAgB,EAAE,OAAe;IAC3D,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,QAAQ,YAAY,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,eAAe,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChH,CAAC;IAED,OAAO,SAAS,QAAQ,2BAA2B,CAAC;AACrD,CAAC;AAED,6CAA6C;AAC7C,SAAS,gBAAgB,CAAC,OAAe;IAKxC,iCAAiC;IACjC,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAE9E,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,0CAA0C;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAElD,IAAI,OAAO,GAAG,SAAS,CAAC;YACxB,IAAI,SAAS,EAAE,CAAC;gBACf,OAAO,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,IAAI,SAAS,EAAE,CAAC;oBACf,OAAO,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,CAAC;YACF,CAAC;YAED,oBAAoB;YACpB,MAAM,QAAQ,GACb,iCAAiC,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC/C,CAAC,sBAAsB,CAAC,IAAI,CAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAC1D,CAAC;YAEH,OAAO;gBACN,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,QAAQ;aACR,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,qCAAqC;AACrC,SAAS,SAAS,CAAC,OAAe;IACjC,MAAM,eAAe,GAAG;QACvB,YAAY;QACZ,OAAO;QACP,SAAS;QACT,yBAAyB;QACzB,YAAY;KACZ,CAAC;IACF,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,6BAA6B;AAC7B,SAAS,aAAa,CAAC,OAAe;IACrC,OAAO,iCAAiC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,2CAA2C;AAC3C,SAAS,cAAc,CAAC,OAAe;IACtC,wCAAwC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,wBAAwB;AACxB,SAAS,mBAAmB,CAAC,GAAY,EAAE,IAAqB;IAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAElC,oEAAoE;IACpE,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC7B,IACC,OAAO,CAAC,MAAM,GAAG,qBAAqB,CAAC,mCAAmC,EACzE,CAAC;YACF,MAAM,OAAO,GAAG,aAAa,CAC5B,OAAO,EACP,qBAAqB,CAAC,6BAA6B,CACnD,CAAC;YACF,OAAO;gBACN,GAAG,GAAG;gBACN,OAAO,EAAE,OAAO;aAChB,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,6CAA6C;IAC7C,IACC,OAAO,CAAC,MAAM,GAAG,qBAAqB,CAAC,kCAAkC,EACxE,CAAC;QACF,MAAM,OAAO,GAAG,aAAa,CAC5B,OAAO,EACP,IAAI,KAAK,YAAY;YACpB,CAAC,CAAC,qBAAqB,CAAC,2BAA2B;YACnD,CAAC,CAAC,qBAAqB,CAAC,wBAAwB,CACjD,CAAC;QACF,OAAO;YACN,GAAG,GAAG;YACN,OAAO,EAAE,OAAO;SAChB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,6BAA6B;AAC7B,SAAS,wBAAwB,CAChC,GAAY,EACZ,IAAqB;IAErB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAElC,wBAAwB;IACxB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,mDAAmD;QACnD,IACC,OAAO,CAAC,MAAM,GAAG,qBAAqB,CAAC,8BAA8B;YACrE,IAAI,KAAK,cAAc,EACtB,CAAC;YACF,OAAO;gBACN,GAAG,GAAG;gBACN,OAAO,EAAE,aAAa,CACrB,OAAO,EACP,IAAI,KAAK,YAAY;oBACpB,CAAC,CAAC,qBAAqB,CAAC,2BAA2B;oBACnD,CAAC,CAAC,qBAAqB,CAAC,wBAAwB,CACjD;aACD,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,6CAA6C;IAC7C,IACC,OAAO,CAAC,MAAM,GAAG,qBAAqB,CAAC,kCAAkC,EACxE,CAAC;QACF,MAAM,OAAO,GAAG,aAAa,CAC5B,OAAO,EACP,IAAI,KAAK,YAAY;YACpB,CAAC,CAAC,qBAAqB,CAAC,0BAA0B;YAClD,CAAC,CAAC,qBAAqB,CAAC,uBAAuB,CAChD,CAAC;QACF,OAAO;YACN,GAAG,GAAG;YACN,OAAO,EAAE,OAAO;SAChB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,kCAAkC;AAClC,SAAS,aAAa,CAAC,IAAY,EAAE,YAAoB;IACxD,IAAI,IAAI,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uCAAuC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,MAAM,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,QAAQ,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,MAAM;QACP,CAAC;IACF,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,WAAW;IACX,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACpD,CAAC;AAED,iCAAiC;AACjC,SAAS,gBAAgB,CAAC,QAAmB,EAAE,SAAoB;IAClE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,KAAK,IAAI,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,6CAA6C;AAC7C,SAAS,iBAAiB,CAAC,QAAmB;IAC7C,6CAA6C;IAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAClD,IACC,+DAA+D,CAAC,IAAI,CACnE,OAAO,CACP,EACA,CAAC;gBACF,KAAK,EAAE,CAAC;YACT,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,2BAA2B;AAC3B,SAAS,sBAAsB,CAAC,QAAmB;IAClD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IACC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACzB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC3B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC1B,CAAC;gBACF,KAAK,EAAE,CAAC;YACT,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,qBAAqB;AACrB,SAAS,gBAAgB,CAAC,QAAmB;IAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface McpWizardProps {
|
|
2
|
+
projectDir: string;
|
|
3
|
+
onComplete: (configPath: string) => void;
|
|
4
|
+
onCancel?: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function McpWizard({ projectDir, onComplete, onCancel }: McpWizardProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=mcp-wizard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-wizard.d.ts","sourceRoot":"","sources":["../../source/wizards/mcp-wizard.tsx"],"names":[],"mappings":"AAuBA,UAAU,cAAc;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAWD,wBAAgB,SAAS,CAAC,EAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAC,EAAE,cAAc,2CAka3E"}
|