@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.
Files changed (248) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +100 -70
  3. package/assets/nanocoder-vscode.vsix +0 -0
  4. package/dist/ai-sdk-client/chat/chat-handler.d.ts +1 -0
  5. package/dist/ai-sdk-client/chat/chat-handler.d.ts.map +1 -1
  6. package/dist/ai-sdk-client/chat/chat-handler.js +65 -7
  7. package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
  8. package/dist/ai-sdk-client/error-handling/tool-error-detector.d.ts +8 -0
  9. package/dist/ai-sdk-client/error-handling/tool-error-detector.d.ts.map +1 -0
  10. package/dist/ai-sdk-client/error-handling/tool-error-detector.js +52 -0
  11. package/dist/ai-sdk-client/error-handling/tool-error-detector.js.map +1 -0
  12. package/dist/ai-sdk-client/tools/tool-prompt-formatter.d.ts +8 -0
  13. package/dist/ai-sdk-client/tools/tool-prompt-formatter.d.ts.map +1 -0
  14. package/dist/ai-sdk-client/tools/tool-prompt-formatter.js +97 -0
  15. package/dist/ai-sdk-client/tools/tool-prompt-formatter.js.map +1 -0
  16. package/dist/app/App.d.ts.map +1 -1
  17. package/dist/app/App.js +11 -1
  18. package/dist/app/App.js.map +1 -1
  19. package/dist/app/components/modal-selectors.d.ts +7 -1
  20. package/dist/app/components/modal-selectors.d.ts.map +1 -1
  21. package/dist/app/components/modal-selectors.js +11 -3
  22. package/dist/app/components/modal-selectors.js.map +1 -1
  23. package/dist/app/utils/app-util.d.ts.map +1 -1
  24. package/dist/app/utils/app-util.js +174 -4
  25. package/dist/app/utils/app-util.js.map +1 -1
  26. package/dist/cli.js +22 -0
  27. package/dist/cli.js.map +1 -1
  28. package/dist/client-factory.d.ts.map +1 -1
  29. package/dist/client-factory.js +19 -20
  30. package/dist/client-factory.js.map +1 -1
  31. package/dist/commands/compact.d.ts +24 -0
  32. package/dist/commands/compact.d.ts.map +1 -0
  33. package/dist/commands/compact.js +31 -0
  34. package/dist/commands/compact.js.map +1 -0
  35. package/dist/commands/exit.d.ts +1 -0
  36. package/dist/commands/exit.d.ts.map +1 -1
  37. package/dist/commands/exit.js +14 -0
  38. package/dist/commands/exit.js.map +1 -1
  39. package/dist/commands/help.js +1 -1
  40. package/dist/commands/help.js.map +1 -1
  41. package/dist/commands/index.d.ts +4 -1
  42. package/dist/commands/index.d.ts.map +1 -1
  43. package/dist/commands/index.js +4 -1
  44. package/dist/commands/index.js.map +1 -1
  45. package/dist/commands/mcp.d.ts.map +1 -1
  46. package/dist/commands/mcp.js +15 -21
  47. package/dist/commands/mcp.js.map +1 -1
  48. package/dist/commands/nanocoder-shape.d.ts +3 -0
  49. package/dist/commands/nanocoder-shape.d.ts.map +1 -0
  50. package/dist/commands/nanocoder-shape.js +46 -0
  51. package/dist/commands/nanocoder-shape.js.map +1 -0
  52. package/dist/commands/setup-mcp.d.ts +3 -0
  53. package/dist/commands/setup-mcp.d.ts.map +1 -0
  54. package/dist/commands/setup-mcp.js +15 -0
  55. package/dist/commands/setup-mcp.js.map +1 -0
  56. package/dist/commands/setup-providers.d.ts +3 -0
  57. package/dist/commands/setup-providers.d.ts.map +1 -0
  58. package/dist/commands/{setup-config.js → setup-providers.js} +4 -4
  59. package/dist/commands/setup-providers.js.map +1 -0
  60. package/dist/components/nanocoder-shape-selector.d.ts +8 -0
  61. package/dist/components/nanocoder-shape-selector.d.ts.map +1 -0
  62. package/dist/components/nanocoder-shape-selector.js +61 -0
  63. package/dist/components/nanocoder-shape-selector.js.map +1 -0
  64. package/dist/components/status.d.ts +11 -0
  65. package/dist/components/status.d.ts.map +1 -1
  66. package/dist/components/status.js +3 -3
  67. package/dist/components/status.js.map +1 -1
  68. package/dist/components/user-input.d.ts.map +1 -1
  69. package/dist/components/user-input.js +1 -14
  70. package/dist/components/user-input.js.map +1 -1
  71. package/dist/components/welcome-message.d.ts.map +1 -1
  72. package/dist/components/welcome-message.js +6 -2
  73. package/dist/components/welcome-message.js.map +1 -1
  74. package/dist/config/index.d.ts +7 -1
  75. package/dist/config/index.d.ts.map +1 -1
  76. package/dist/config/index.js +100 -16
  77. package/dist/config/index.js.map +1 -1
  78. package/dist/config/mcp-config-loader.d.ts +31 -0
  79. package/dist/config/mcp-config-loader.d.ts.map +1 -0
  80. package/dist/config/mcp-config-loader.js +341 -0
  81. package/dist/config/mcp-config-loader.js.map +1 -0
  82. package/dist/config/nanocoder-tools-config.d.ts +7 -0
  83. package/dist/config/nanocoder-tools-config.d.ts.map +1 -0
  84. package/dist/config/nanocoder-tools-config.js +14 -0
  85. package/dist/config/nanocoder-tools-config.js.map +1 -0
  86. package/dist/config/preferences.d.ts +3 -0
  87. package/dist/config/preferences.d.ts.map +1 -1
  88. package/dist/config/preferences.js +9 -0
  89. package/dist/config/preferences.js.map +1 -1
  90. package/dist/config/validation.d.ts +11 -0
  91. package/dist/config/validation.d.ts.map +1 -0
  92. package/dist/config/validation.js +71 -0
  93. package/dist/config/validation.js.map +1 -0
  94. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +2 -1
  95. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
  96. package/dist/hooks/chat-handler/conversation/conversation-loop.js +43 -18
  97. package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
  98. package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
  99. package/dist/hooks/chat-handler/useChatHandler.js +2 -0
  100. package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
  101. package/dist/hooks/useAppHandlers.d.ts +2 -0
  102. package/dist/hooks/useAppHandlers.d.ts.map +1 -1
  103. package/dist/hooks/useAppHandlers.js +66 -2
  104. package/dist/hooks/useAppHandlers.js.map +1 -1
  105. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  106. package/dist/hooks/useAppInitialization.js +9 -2
  107. package/dist/hooks/useAppInitialization.js.map +1 -1
  108. package/dist/hooks/useAppState.d.ts +4 -0
  109. package/dist/hooks/useAppState.d.ts.map +1 -1
  110. package/dist/hooks/useAppState.js +6 -0
  111. package/dist/hooks/useAppState.js.map +1 -1
  112. package/dist/hooks/useModeHandlers.d.ts +10 -2
  113. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  114. package/dist/hooks/useModeHandlers.js +50 -2
  115. package/dist/hooks/useModeHandlers.js.map +1 -1
  116. package/dist/hooks/useTerminalWidth.d.ts +1 -1
  117. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  118. package/dist/hooks/useTerminalWidth.js +2 -2
  119. package/dist/hooks/useTerminalWidth.js.map +1 -1
  120. package/dist/mcp/mcp-client.d.ts +2 -0
  121. package/dist/mcp/mcp-client.d.ts.map +1 -1
  122. package/dist/mcp/mcp-client.js +13 -1
  123. package/dist/mcp/mcp-client.js.map +1 -1
  124. package/dist/mcp/transport-factory.d.ts.map +1 -1
  125. package/dist/mcp/transport-factory.js +7 -1
  126. package/dist/mcp/transport-factory.js.map +1 -1
  127. package/dist/models/models-dev-client.d.ts.map +1 -1
  128. package/dist/models/models-dev-client.js +4 -0
  129. package/dist/models/models-dev-client.js.map +1 -1
  130. package/dist/services/bash-executor.d.ts.map +1 -1
  131. package/dist/services/bash-executor.js +7 -0
  132. package/dist/services/bash-executor.js.map +1 -1
  133. package/dist/test-utils/cli-test-harness.d.ts +181 -0
  134. package/dist/test-utils/cli-test-harness.d.ts.map +1 -0
  135. package/dist/test-utils/cli-test-harness.js +413 -0
  136. package/dist/test-utils/cli-test-harness.js.map +1 -0
  137. package/dist/tools/execute-bash.d.ts.map +1 -1
  138. package/dist/tools/execute-bash.js +10 -2
  139. package/dist/tools/execute-bash.js.map +1 -1
  140. package/dist/tools/string-replace.d.ts.map +1 -1
  141. package/dist/tools/string-replace.js +6 -1
  142. package/dist/tools/string-replace.js.map +1 -1
  143. package/dist/tools/tool-manager.d.ts +1 -0
  144. package/dist/tools/tool-manager.d.ts.map +1 -1
  145. package/dist/tools/write-file.d.ts.map +1 -1
  146. package/dist/tools/write-file.js +6 -1
  147. package/dist/tools/write-file.js.map +1 -1
  148. package/dist/types/app.d.ts +2 -0
  149. package/dist/types/app.d.ts.map +1 -1
  150. package/dist/types/config.d.ts +48 -27
  151. package/dist/types/config.d.ts.map +1 -1
  152. package/dist/types/mcp.d.ts +1 -0
  153. package/dist/types/mcp.d.ts.map +1 -1
  154. package/dist/types/ui.d.ts +1 -0
  155. package/dist/types/ui.d.ts.map +1 -1
  156. package/dist/utils/auto-compact.d.ts +23 -0
  157. package/dist/utils/auto-compact.d.ts.map +1 -0
  158. package/dist/utils/auto-compact.js +149 -0
  159. package/dist/utils/auto-compact.js.map +1 -0
  160. package/dist/utils/compression-backup.d.ts +14 -0
  161. package/dist/utils/compression-backup.d.ts.map +1 -0
  162. package/dist/utils/compression-backup.js +31 -0
  163. package/dist/utils/compression-backup.js.map +1 -0
  164. package/dist/utils/logging/config.d.ts +11 -0
  165. package/dist/utils/logging/config.d.ts.map +1 -1
  166. package/dist/utils/logging/config.js +19 -4
  167. package/dist/utils/logging/config.js.map +1 -1
  168. package/dist/utils/logging/logger-provider.d.ts +15 -0
  169. package/dist/utils/logging/logger-provider.d.ts.map +1 -1
  170. package/dist/utils/logging/logger-provider.js +48 -24
  171. package/dist/utils/logging/logger-provider.js.map +1 -1
  172. package/dist/utils/message-compression.d.ts +55 -0
  173. package/dist/utils/message-compression.d.ts.map +1 -0
  174. package/dist/utils/message-compression.js +401 -0
  175. package/dist/utils/message-compression.js.map +1 -0
  176. package/dist/wizards/mcp-wizard.d.ts +8 -0
  177. package/dist/wizards/mcp-wizard.d.ts.map +1 -0
  178. package/dist/wizards/mcp-wizard.js +256 -0
  179. package/dist/wizards/mcp-wizard.js.map +1 -0
  180. package/dist/wizards/provider-wizard.d.ts +8 -0
  181. package/dist/wizards/provider-wizard.d.ts.map +1 -0
  182. package/dist/wizards/provider-wizard.js +254 -0
  183. package/dist/wizards/provider-wizard.js.map +1 -0
  184. package/dist/wizards/steps/location-step.d.ts +10 -0
  185. package/dist/wizards/steps/location-step.d.ts.map +1 -0
  186. package/dist/{wizard → wizards}/steps/location-step.js +7 -10
  187. package/dist/wizards/steps/location-step.js.map +1 -0
  188. package/dist/{wizard → wizards}/steps/mcp-step.d.ts +3 -1
  189. package/dist/wizards/steps/mcp-step.d.ts.map +1 -0
  190. package/dist/{wizard → wizards}/steps/mcp-step.js +14 -11
  191. package/dist/wizards/steps/mcp-step.js.map +1 -0
  192. package/dist/wizards/steps/provider-step.d.ts +11 -0
  193. package/dist/wizards/steps/provider-step.d.ts.map +1 -0
  194. package/dist/{wizard → wizards}/steps/provider-step.js +12 -10
  195. package/dist/wizards/steps/provider-step.js.map +1 -0
  196. package/dist/{wizard → wizards}/steps/summary-step.d.ts +3 -2
  197. package/dist/wizards/steps/summary-step.d.ts.map +1 -0
  198. package/dist/{wizard → wizards}/steps/summary-step.js +2 -2
  199. package/dist/wizards/steps/summary-step.js.map +1 -0
  200. package/dist/{wizard → wizards}/templates/mcp-templates.d.ts +1 -0
  201. package/dist/wizards/templates/mcp-templates.d.ts.map +1 -0
  202. package/dist/wizards/templates/mcp-templates.js.map +1 -0
  203. package/dist/wizards/templates/provider-templates.d.ts.map +1 -0
  204. package/dist/{wizard → wizards}/templates/provider-templates.js +3 -14
  205. package/dist/wizards/templates/provider-templates.js.map +1 -0
  206. package/dist/wizards/utils/fetch-cloud-models.d.ts.map +1 -0
  207. package/dist/wizards/utils/fetch-cloud-models.js.map +1 -0
  208. package/dist/wizards/utils/fetch-local-models.d.ts.map +1 -0
  209. package/dist/wizards/utils/fetch-local-models.js.map +1 -0
  210. package/dist/wizards/validation.d.ts +70 -0
  211. package/dist/wizards/validation.d.ts.map +1 -0
  212. package/dist/{wizard → wizards}/validation.js +58 -1
  213. package/dist/wizards/validation.js.map +1 -0
  214. package/package.json +19 -7
  215. package/dist/commands/setup-config.d.ts +0 -3
  216. package/dist/commands/setup-config.d.ts.map +0 -1
  217. package/dist/commands/setup-config.js.map +0 -1
  218. package/dist/wizard/config-wizard.d.ts +0 -8
  219. package/dist/wizard/config-wizard.d.ts.map +0 -1
  220. package/dist/wizard/config-wizard.js +0 -212
  221. package/dist/wizard/config-wizard.js.map +0 -1
  222. package/dist/wizard/steps/location-step.d.ts +0 -9
  223. package/dist/wizard/steps/location-step.d.ts.map +0 -1
  224. package/dist/wizard/steps/location-step.js.map +0 -1
  225. package/dist/wizard/steps/mcp-step.d.ts.map +0 -1
  226. package/dist/wizard/steps/mcp-step.js.map +0 -1
  227. package/dist/wizard/steps/provider-step.d.ts +0 -9
  228. package/dist/wizard/steps/provider-step.d.ts.map +0 -1
  229. package/dist/wizard/steps/provider-step.js.map +0 -1
  230. package/dist/wizard/steps/summary-step.d.ts.map +0 -1
  231. package/dist/wizard/steps/summary-step.js.map +0 -1
  232. package/dist/wizard/templates/mcp-templates.d.ts.map +0 -1
  233. package/dist/wizard/templates/mcp-templates.js.map +0 -1
  234. package/dist/wizard/templates/provider-templates.d.ts.map +0 -1
  235. package/dist/wizard/templates/provider-templates.js.map +0 -1
  236. package/dist/wizard/utils/fetch-cloud-models.d.ts.map +0 -1
  237. package/dist/wizard/utils/fetch-cloud-models.js.map +0 -1
  238. package/dist/wizard/utils/fetch-local-models.d.ts.map +0 -1
  239. package/dist/wizard/utils/fetch-local-models.js.map +0 -1
  240. package/dist/wizard/validation.d.ts +0 -64
  241. package/dist/wizard/validation.d.ts.map +0 -1
  242. package/dist/wizard/validation.js.map +0 -1
  243. /package/dist/{wizard → wizards}/templates/mcp-templates.js +0 -0
  244. /package/dist/{wizard → wizards}/templates/provider-templates.d.ts +0 -0
  245. /package/dist/{wizard → wizards}/utils/fetch-cloud-models.d.ts +0 -0
  246. /package/dist/{wizard → wizards}/utils/fetch-cloud-models.js +0 -0
  247. /package/dist/{wizard → wizards}/utils/fetch-local-models.d.ts +0 -0
  248. /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":"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"}
@@ -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"}