@nanocollective/nanocoder 1.17.2 → 1.18.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/README.md +3 -5
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/ai-sdk-client-empty-message.spec.d.ts +2 -0
- package/dist/ai-sdk-client-empty-message.spec.d.ts.map +1 -0
- package/dist/ai-sdk-client-empty-message.spec.js +124 -0
- package/dist/ai-sdk-client-empty-message.spec.js.map +1 -0
- package/dist/ai-sdk-client-error-handling.spec.d.ts +2 -0
- package/dist/ai-sdk-client-error-handling.spec.d.ts.map +1 -0
- package/dist/ai-sdk-client-error-handling.spec.js +108 -0
- package/dist/ai-sdk-client-error-handling.spec.js.map +1 -0
- package/dist/ai-sdk-client-maxretries.spec.d.ts +2 -0
- package/dist/ai-sdk-client-maxretries.spec.d.ts.map +1 -0
- package/dist/ai-sdk-client-maxretries.spec.js +96 -0
- package/dist/ai-sdk-client-maxretries.spec.js.map +1 -0
- package/dist/ai-sdk-client.d.ts +25 -2
- package/dist/ai-sdk-client.d.ts.map +1 -1
- package/dist/ai-sdk-client.js +187 -124
- package/dist/ai-sdk-client.js.map +1 -1
- package/dist/app/utils/appUtils.js +3 -3
- package/dist/app/utils/appUtils.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +22 -11
- package/dist/app.js.map +1 -1
- package/dist/commands/debugging.d.ts +3 -0
- package/dist/commands/debugging.d.ts.map +1 -0
- package/dist/commands/debugging.js +23 -0
- package/dist/commands/debugging.js.map +1 -0
- package/dist/commands/index.d.ts +3 -2
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -2
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/lsp.d.ts +15 -0
- package/dist/commands/lsp.d.ts.map +1 -0
- package/dist/commands/lsp.js +45 -0
- package/dist/commands/lsp.js.map +1 -0
- package/dist/commands/model-database.d.ts +8 -0
- package/dist/commands/model-database.d.ts.map +1 -0
- package/dist/commands/model-database.js +193 -0
- package/dist/commands/model-database.js.map +1 -0
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +1 -1
- package/dist/commands/usage.js.map +1 -1
- package/dist/components/assistant-message.d.ts.map +1 -1
- package/dist/components/assistant-message.js +3 -2
- package/dist/components/assistant-message.js.map +1 -1
- package/dist/components/status.d.ts +3 -0
- package/dist/components/status.d.ts.map +1 -1
- package/dist/components/status.js +24 -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 +2 -1
- package/dist/components/user-input.js.map +1 -1
- package/dist/config/preferences.d.ts +2 -2
- package/dist/config/preferences.js +5 -5
- package/dist/config/preferences.js.map +1 -1
- package/dist/context/mode-context.d.ts +12 -0
- package/dist/context/mode-context.d.ts.map +1 -0
- package/dist/context/mode-context.js +21 -0
- package/dist/context/mode-context.js.map +1 -0
- package/dist/context/mode-context.spec.d.ts +2 -0
- package/dist/context/mode-context.spec.d.ts.map +1 -0
- package/dist/context/mode-context.spec.js +61 -0
- package/dist/context/mode-context.spec.js.map +1 -0
- package/dist/hooks/useAppInitialization.d.ts +4 -2
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +102 -26
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useAppState.d.ts +7 -5
- package/dist/hooks/useAppState.d.ts.map +1 -1
- package/dist/hooks/useAppState.js +11 -7
- package/dist/hooks/useAppState.js.map +1 -1
- package/dist/hooks/useChatHandler.d.ts +2 -2
- package/dist/hooks/useChatHandler.d.ts.map +1 -1
- package/dist/hooks/useChatHandler.js +186 -111
- package/dist/hooks/useChatHandler.js.map +1 -1
- package/dist/hooks/useModeHandlers.d.ts +4 -4
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +9 -9
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +16 -6
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/message-handler.js +1 -1
- package/dist/message-handler.js.map +1 -1
- package/dist/model-database/database-engine.d.ts +25 -0
- package/dist/model-database/database-engine.d.ts.map +1 -0
- package/dist/model-database/database-engine.js +37 -0
- package/dist/model-database/database-engine.js.map +1 -0
- package/dist/model-database/database-engine.spec.d.ts +2 -0
- package/dist/model-database/database-engine.spec.d.ts.map +1 -0
- package/dist/model-database/database-engine.spec.js +413 -0
- package/dist/model-database/database-engine.spec.js.map +1 -0
- package/dist/model-database/model-database.d.ts +30 -0
- package/dist/model-database/model-database.d.ts.map +1 -0
- package/dist/model-database/model-database.js +82 -0
- package/dist/model-database/model-database.js.map +1 -0
- package/dist/model-database/model-database.spec.d.ts +2 -0
- package/dist/model-database/model-database.spec.d.ts.map +1 -0
- package/dist/model-database/model-database.spec.js +322 -0
- package/dist/model-database/model-database.spec.js.map +1 -0
- package/dist/model-database/model-engine.d.ts +25 -0
- package/dist/model-database/model-engine.d.ts.map +1 -0
- package/dist/model-database/model-engine.js +49 -0
- package/dist/model-database/model-engine.js.map +1 -0
- package/dist/model-database/model-engine.spec.d.ts +2 -0
- package/dist/model-database/model-engine.spec.d.ts.map +1 -0
- package/dist/model-database/model-engine.spec.js +381 -0
- package/dist/model-database/model-engine.spec.js.map +1 -0
- package/dist/model-database/model-fetcher.d.ts +14 -0
- package/dist/model-database/model-fetcher.d.ts.map +1 -0
- package/dist/model-database/model-fetcher.js +248 -0
- package/dist/model-database/model-fetcher.js.map +1 -0
- package/dist/model-database/model-fetcher.spec.d.ts +2 -0
- package/dist/model-database/model-fetcher.spec.d.ts.map +1 -0
- package/dist/model-database/model-fetcher.spec.js +498 -0
- package/dist/model-database/model-fetcher.spec.js.map +1 -0
- package/dist/models/models-dev-client.d.ts.map +1 -1
- package/dist/models/models-dev-client.js +8 -0
- package/dist/models/models-dev-client.js.map +1 -1
- package/dist/tool-calling/json-parser.d.ts.map +1 -1
- package/dist/tool-calling/json-parser.js +10 -4
- package/dist/tool-calling/json-parser.js.map +1 -1
- package/dist/tool-calling/tool-parser.d.ts.map +1 -1
- package/dist/tool-calling/tool-parser.js +37 -9
- package/dist/tool-calling/tool-parser.js.map +1 -1
- package/dist/tool-calling/tool-parser.spec.js +79 -1
- package/dist/tool-calling/tool-parser.spec.js.map +1 -1
- package/dist/tool-calling/xml-parser.d.ts.map +1 -1
- package/dist/tool-calling/xml-parser.js +21 -23
- package/dist/tool-calling/xml-parser.js.map +1 -1
- package/dist/tool-calling/xml-parser.spec.js +23 -3
- package/dist/tool-calling/xml-parser.spec.js.map +1 -1
- package/dist/tools/create-file.d.ts +24 -2
- package/dist/tools/create-file.d.ts.map +1 -1
- package/dist/tools/create-file.js +14 -10
- package/dist/tools/create-file.js.map +1 -1
- package/dist/tools/delete-lines.d.ts +18 -2
- package/dist/tools/delete-lines.d.ts.map +1 -1
- package/dist/tools/delete-lines.js +14 -9
- package/dist/tools/delete-lines.js.map +1 -1
- package/dist/tools/execute-bash.d.ts +2 -2
- package/dist/tools/execute-bash.d.ts.map +1 -1
- package/dist/tools/execute-bash.js +10 -9
- package/dist/tools/execute-bash.js.map +1 -1
- package/dist/tools/execute-function.spec.d.ts +2 -0
- package/dist/tools/execute-function.spec.d.ts.map +1 -0
- package/dist/tools/execute-function.spec.js +141 -0
- package/dist/tools/execute-function.spec.js.map +1 -0
- package/dist/tools/fetch-url.d.ts +16 -2
- package/dist/tools/fetch-url.d.ts.map +1 -1
- package/dist/tools/fetch-url.js +10 -10
- package/dist/tools/fetch-url.js.map +1 -1
- package/dist/tools/find-files.d.ts +18 -2
- package/dist/tools/find-files.d.ts.map +1 -1
- package/dist/tools/find-files.js +7 -5
- package/dist/tools/find-files.js.map +1 -1
- package/dist/tools/index.d.ts +2 -3
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +30 -20
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/insert-lines.d.ts +18 -2
- package/dist/tools/insert-lines.d.ts.map +1 -1
- package/dist/tools/insert-lines.js +14 -9
- package/dist/tools/insert-lines.js.map +1 -1
- package/dist/tools/lsp-get-diagnostics.d.ts +10 -2
- package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -1
- package/dist/tools/lsp-get-diagnostics.js +8 -6
- package/dist/tools/lsp-get-diagnostics.js.map +1 -1
- package/dist/tools/needs-approval.spec.d.ts +2 -0
- package/dist/tools/needs-approval.spec.d.ts.map +1 -0
- package/dist/tools/needs-approval.spec.js +308 -0
- package/dist/tools/needs-approval.spec.js.map +1 -0
- package/dist/tools/read-file.d.ts +2 -2
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +10 -12
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/replace-lines.d.ts +19 -2
- package/dist/tools/replace-lines.d.ts.map +1 -1
- package/dist/tools/replace-lines.js +14 -9
- package/dist/tools/replace-lines.js.map +1 -1
- package/dist/tools/search-file-contents.d.ts +20 -2
- package/dist/tools/search-file-contents.d.ts.map +1 -1
- package/dist/tools/search-file-contents.js +11 -8
- package/dist/tools/search-file-contents.js.map +1 -1
- package/dist/tools/web-search.d.ts +2 -2
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +10 -10
- package/dist/tools/web-search.js.map +1 -1
- package/dist/types/app.d.ts +1 -1
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/config.d.ts +4 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core-connection-status.spec.d.ts +2 -0
- package/dist/types/core-connection-status.spec.d.ts.map +1 -0
- package/dist/types/core-connection-status.spec.js +52 -0
- package/dist/types/core-connection-status.spec.js.map +1 -0
- package/dist/types/core.d.ts +33 -28
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/system.d.ts +5 -30
- package/dist/types/system.d.ts.map +1 -1
- package/dist/utils/prompt-processor.d.ts +2 -3
- package/dist/utils/prompt-processor.d.ts.map +1 -1
- package/dist/utils/prompt-processor.js +2 -50
- package/dist/utils/prompt-processor.js.map +1 -1
- package/dist/wizard/templates/provider-templates.d.ts.map +1 -1
- package/dist/wizard/templates/provider-templates.js +34 -2
- package/dist/wizard/templates/provider-templates.js.map +1 -1
- package/package.json +6 -5
- package/source/app/prompts/main-prompt.md +29 -96
- package/dist/commands/recommendations.d.ts +0 -8
- package/dist/commands/recommendations.d.ts.map +0 -1
- package/dist/commands/recommendations.js +0 -311
- package/dist/commands/recommendations.js.map +0 -1
- package/dist/commands/streaming.d.ts +0 -3
- package/dist/commands/streaming.d.ts.map +0 -1
- package/dist/commands/streaming.js +0 -23
- package/dist/commands/streaming.js.map +0 -1
- package/dist/components/thinking-indicator.d.ts +0 -3
- package/dist/components/thinking-indicator.d.ts.map +0 -1
- package/dist/components/thinking-indicator.js +0 -69
- package/dist/components/thinking-indicator.js.map +0 -1
- package/dist/recommendations/model-database.d.ts +0 -8
- package/dist/recommendations/model-database.d.ts.map +0 -1
- package/dist/recommendations/model-database.js +0 -514
- package/dist/recommendations/model-database.js.map +0 -1
- package/dist/recommendations/model-engine.d.ts +0 -16
- package/dist/recommendations/model-engine.d.ts.map +0 -1
- package/dist/recommendations/model-engine.js +0 -185
- package/dist/recommendations/model-engine.js.map +0 -1
- package/dist/recommendations/recommendation-engine.d.ts +0 -39
- package/dist/recommendations/recommendation-engine.d.ts.map +0 -1
- package/dist/recommendations/recommendation-engine.js +0 -144
- package/dist/recommendations/recommendation-engine.js.map +0 -1
- package/dist/system/detector.d.ts +0 -18
- package/dist/system/detector.d.ts.map +0 -1
- package/dist/system/detector.js +0 -140
- package/dist/system/detector.js.map +0 -1
package/dist/ai-sdk-client.js
CHANGED
|
@@ -1,17 +1,106 @@
|
|
|
1
1
|
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
|
|
2
|
-
import { generateText,
|
|
2
|
+
import { generateText, stepCountIs, RetryError, APICallError } from 'ai';
|
|
3
3
|
import { Agent, fetch as undiciFetch } from 'undici';
|
|
4
4
|
import { XMLToolCallParser } from './tool-calling/xml-parser.js';
|
|
5
5
|
import { getModelContextLimit } from './models/index.js';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Checks if an assistant message is empty (no content and no tool calls).
|
|
8
|
+
* Empty assistant messages cause API errors:
|
|
9
|
+
* "400 Bad Request: Assistant message must have either content or tool_calls, but not none."
|
|
10
|
+
*
|
|
11
|
+
* Exported for testing purposes.
|
|
12
|
+
*/
|
|
13
|
+
export function isEmptyAssistantMessage(message) {
|
|
14
|
+
if (message.role !== 'assistant') {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
// Check for content - handle both string and array content formats
|
|
18
|
+
const hasContent = Array.isArray(message.content)
|
|
19
|
+
? message.content.length > 0
|
|
20
|
+
: typeof message.content === 'string' && message.content.trim().length > 0;
|
|
21
|
+
// Tool calls are in a separate property for AI SDK messages
|
|
22
|
+
const hasToolCalls = 'toolCalls' in message &&
|
|
23
|
+
Array.isArray(message.toolCalls) &&
|
|
24
|
+
message.toolCalls.length > 0;
|
|
25
|
+
return !hasContent && !hasToolCalls;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Extracts the root cause error from AI SDK error wrappers.
|
|
29
|
+
* AI SDK wraps errors in RetryError which contains lastError.
|
|
30
|
+
*/
|
|
31
|
+
function extractRootError(error) {
|
|
32
|
+
// Handle AI SDK RetryError - extract the last error
|
|
33
|
+
if (RetryError.isInstance(error)) {
|
|
34
|
+
if (error.lastError) {
|
|
35
|
+
return extractRootError(error.lastError);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return error;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Parses API errors into user-friendly messages.
|
|
42
|
+
* Exported for testing purposes.
|
|
8
43
|
*/
|
|
9
|
-
function parseAPIError(error) {
|
|
10
|
-
|
|
44
|
+
export function parseAPIError(error) {
|
|
45
|
+
// First extract the root error from any wrappers
|
|
46
|
+
const rootError = extractRootError(error);
|
|
47
|
+
if (!(rootError instanceof Error)) {
|
|
11
48
|
return 'An unknown error occurred while communicating with the model';
|
|
12
49
|
}
|
|
13
|
-
|
|
14
|
-
|
|
50
|
+
// Handle AI SDK APICallError - it has statusCode and responseBody
|
|
51
|
+
if (APICallError.isInstance(rootError)) {
|
|
52
|
+
const statusCode = rootError.statusCode;
|
|
53
|
+
// Try to extract a clean message from responseBody or use the error message
|
|
54
|
+
let cleanMessage = rootError.message;
|
|
55
|
+
// Parse the response body if available for more details
|
|
56
|
+
if (rootError.responseBody) {
|
|
57
|
+
try {
|
|
58
|
+
const body = JSON.parse(rootError.responseBody);
|
|
59
|
+
if (body.error?.message) {
|
|
60
|
+
cleanMessage = body.error.message;
|
|
61
|
+
}
|
|
62
|
+
else if (body.message) {
|
|
63
|
+
cleanMessage = body.message;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// If not JSON, try to extract message from the raw response
|
|
68
|
+
const msgMatch = rootError.responseBody.match(/["']?message["']?\s*[:=]\s*["']([^"']+)["']/i);
|
|
69
|
+
if (msgMatch) {
|
|
70
|
+
cleanMessage = msgMatch[1];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Format based on status code
|
|
75
|
+
if (statusCode) {
|
|
76
|
+
switch (statusCode) {
|
|
77
|
+
case 400:
|
|
78
|
+
return `Bad request: ${cleanMessage}`;
|
|
79
|
+
case 401:
|
|
80
|
+
return 'Authentication failed: Invalid API key or credentials';
|
|
81
|
+
case 403:
|
|
82
|
+
return 'Access forbidden: Check your API permissions';
|
|
83
|
+
case 404:
|
|
84
|
+
return 'Model not found: The requested model may not exist or is unavailable';
|
|
85
|
+
case 429:
|
|
86
|
+
if (cleanMessage.includes('usage limit') ||
|
|
87
|
+
cleanMessage.includes('quota')) {
|
|
88
|
+
return `Rate limit: ${cleanMessage}`;
|
|
89
|
+
}
|
|
90
|
+
return 'Rate limit exceeded: Too many requests. Please wait and try again';
|
|
91
|
+
case 500:
|
|
92
|
+
case 502:
|
|
93
|
+
case 503:
|
|
94
|
+
return `Server error: ${cleanMessage}`;
|
|
95
|
+
default:
|
|
96
|
+
return `Request failed (${statusCode}): ${cleanMessage}`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const errorMessage = rootError.message;
|
|
101
|
+
// Extract status code and clean message from common error patterns FIRST
|
|
102
|
+
// This ensures HTTP status codes are properly parsed before falling through
|
|
103
|
+
// to more generic pattern matching (like Ollama-specific errors)
|
|
15
104
|
const statusMatch = errorMessage.match(/(?:Error: )?(\d{3})\s+(?:\d{3}\s+)?(?:Bad Request|[^:]+):\s*(.+)/i);
|
|
16
105
|
if (statusMatch) {
|
|
17
106
|
const [, statusCode, message] = statusMatch;
|
|
@@ -26,6 +115,11 @@ function parseAPIError(error) {
|
|
|
26
115
|
case '404':
|
|
27
116
|
return 'Model not found: The requested model may not exist or is unavailable';
|
|
28
117
|
case '429':
|
|
118
|
+
// Include the original message if it has useful details
|
|
119
|
+
if (cleanMessage.includes('usage limit') ||
|
|
120
|
+
cleanMessage.includes('quota')) {
|
|
121
|
+
return `Rate limit: ${cleanMessage}`;
|
|
122
|
+
}
|
|
29
123
|
return 'Rate limit exceeded: Too many requests. Please wait and try again';
|
|
30
124
|
case '500':
|
|
31
125
|
case '502':
|
|
@@ -35,6 +129,21 @@ function parseAPIError(error) {
|
|
|
35
129
|
return `Request failed (${statusCode}): ${cleanMessage}`;
|
|
36
130
|
}
|
|
37
131
|
}
|
|
132
|
+
// Handle Ollama-specific unmarshal/JSON parsing errors
|
|
133
|
+
// This runs AFTER status code parsing to avoid misclassifying HTTP errors
|
|
134
|
+
// that happen to contain JSON parsing error text in their message
|
|
135
|
+
if (errorMessage.includes('unmarshal') ||
|
|
136
|
+
(errorMessage.includes('invalid character') &&
|
|
137
|
+
errorMessage.includes('after top-level value'))) {
|
|
138
|
+
return ('Ollama server error: The model returned malformed JSON. ' +
|
|
139
|
+
'This usually indicates an issue with the Ollama server or model. ' +
|
|
140
|
+
'Try:\n' +
|
|
141
|
+
' 1. Restart Ollama: systemctl restart ollama (Linux) or restart the Ollama app\n' +
|
|
142
|
+
' 2. Re-pull the model: ollama pull <model-name>\n' +
|
|
143
|
+
' 3. Check Ollama logs for more details\n' +
|
|
144
|
+
' 4. Try a different model to see if the issue is model-specific\n' +
|
|
145
|
+
`Original error: ${errorMessage}`);
|
|
146
|
+
}
|
|
38
147
|
// Handle timeout errors
|
|
39
148
|
if (errorMessage.includes('timeout') || errorMessage.includes('ETIMEDOUT')) {
|
|
40
149
|
return 'Request timed out: The model took too long to respond';
|
|
@@ -107,11 +216,14 @@ export class AISDKClient {
|
|
|
107
216
|
providerConfig;
|
|
108
217
|
undiciAgent;
|
|
109
218
|
cachedContextSize;
|
|
219
|
+
maxRetries;
|
|
110
220
|
constructor(providerConfig) {
|
|
111
221
|
this.providerConfig = providerConfig;
|
|
112
222
|
this.availableModels = providerConfig.models;
|
|
113
223
|
this.currentModel = providerConfig.models[0] || '';
|
|
114
224
|
this.cachedContextSize = 0;
|
|
225
|
+
// Default to 2 retries (same as AI SDK default), or use configured value
|
|
226
|
+
this.maxRetries = providerConfig.maxRetries ?? 2;
|
|
115
227
|
const { requestTimeout, socketTimeout, connectionPool } = this.providerConfig;
|
|
116
228
|
const resolvedSocketTimeout = socketTimeout === -1
|
|
117
229
|
? 0
|
|
@@ -184,110 +296,16 @@ export class AISDKClient {
|
|
|
184
296
|
getContextSize() {
|
|
185
297
|
return this.cachedContextSize;
|
|
186
298
|
}
|
|
299
|
+
getMaxRetries() {
|
|
300
|
+
return this.maxRetries;
|
|
301
|
+
}
|
|
187
302
|
getAvailableModels() {
|
|
188
303
|
return Promise.resolve(this.availableModels);
|
|
189
304
|
}
|
|
190
|
-
async chat(messages, tools, signal) {
|
|
191
|
-
// Check if already aborted before starting
|
|
192
|
-
if (signal?.aborted) {
|
|
193
|
-
throw new Error('Operation was cancelled');
|
|
194
|
-
}
|
|
195
|
-
try {
|
|
196
|
-
// Get the language model instance from the provider
|
|
197
|
-
const model = this.provider(this.currentModel);
|
|
198
|
-
// Tools are already in AI SDK format - use directly
|
|
199
|
-
const aiTools = Object.keys(tools).length > 0 ? tools : undefined;
|
|
200
|
-
// Convert messages to AI SDK v5 ModelMessage format
|
|
201
|
-
const modelMessages = convertToModelMessages(messages);
|
|
202
|
-
// Use generateText for non-streaming
|
|
203
|
-
const result = await generateText({
|
|
204
|
-
model,
|
|
205
|
-
messages: modelMessages,
|
|
206
|
-
tools: aiTools,
|
|
207
|
-
abortSignal: signal,
|
|
208
|
-
});
|
|
209
|
-
// Extract tool calls from result
|
|
210
|
-
const toolCalls = [];
|
|
211
|
-
if (result.toolCalls && result.toolCalls.length > 0) {
|
|
212
|
-
for (const toolCall of result.toolCalls) {
|
|
213
|
-
toolCalls.push({
|
|
214
|
-
// Some providers (like Ollama) don't provide toolCallId, so generate one
|
|
215
|
-
id: toolCall.toolCallId ||
|
|
216
|
-
`tool_${Date.now()}_${Math.random().toString(36).substring(7)}`,
|
|
217
|
-
function: {
|
|
218
|
-
name: toolCall.toolName,
|
|
219
|
-
// AI SDK v5 uses 'input' for tool arguments
|
|
220
|
-
arguments: toolCall.input,
|
|
221
|
-
},
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
// If no native tool calls but tools are available, try XML parsing
|
|
226
|
-
let content = result.text;
|
|
227
|
-
if (Object.keys(tools).length > 0 && toolCalls.length === 0 && content) {
|
|
228
|
-
// First check for malformed XML tool calls
|
|
229
|
-
const malformedError = XMLToolCallParser.detectMalformedToolCall(content);
|
|
230
|
-
if (malformedError) {
|
|
231
|
-
// Return malformed tool call with validation error
|
|
232
|
-
// This mimics how validators work - returns tool call that will show error
|
|
233
|
-
toolCalls.push({
|
|
234
|
-
id: 'malformed_xml_validation',
|
|
235
|
-
function: {
|
|
236
|
-
name: '__xml_validation_error__',
|
|
237
|
-
arguments: {
|
|
238
|
-
error: malformedError.error,
|
|
239
|
-
},
|
|
240
|
-
},
|
|
241
|
-
});
|
|
242
|
-
content = ''; // Clear content since it was malformed
|
|
243
|
-
}
|
|
244
|
-
else if (XMLToolCallParser.hasToolCalls(content)) {
|
|
245
|
-
// Try to parse well-formed XML tool calls
|
|
246
|
-
const parsedToolCalls = XMLToolCallParser.parseToolCalls(content);
|
|
247
|
-
const xmlToolCalls = XMLToolCallParser.convertToToolCalls(parsedToolCalls);
|
|
248
|
-
const cleanedContent = XMLToolCallParser.removeToolCallsFromContent(content);
|
|
249
|
-
content = cleanedContent;
|
|
250
|
-
toolCalls.push(...xmlToolCalls);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
return {
|
|
254
|
-
choices: [
|
|
255
|
-
{
|
|
256
|
-
message: {
|
|
257
|
-
role: 'assistant',
|
|
258
|
-
content,
|
|
259
|
-
tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
260
|
-
},
|
|
261
|
-
},
|
|
262
|
-
],
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
// Check if this was a cancellation
|
|
267
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
268
|
-
throw new Error('Operation was cancelled');
|
|
269
|
-
}
|
|
270
|
-
// Check for AI SDK's NoOutputGeneratedError (thrown when stream is aborted)
|
|
271
|
-
if (error instanceof Error &&
|
|
272
|
-
(error.name === 'AI_NoOutputGeneratedError' ||
|
|
273
|
-
error.message.includes('No output generated'))) {
|
|
274
|
-
throw new Error('Operation was cancelled');
|
|
275
|
-
}
|
|
276
|
-
// Log detailed error for debugging
|
|
277
|
-
console.error('AI SDK Error:', error);
|
|
278
|
-
if (error instanceof Error) {
|
|
279
|
-
console.error('Error message:', error.message);
|
|
280
|
-
console.error('Error stack:', error.stack);
|
|
281
|
-
}
|
|
282
|
-
// Parse and throw a user-friendly error
|
|
283
|
-
const userMessage = parseAPIError(error);
|
|
284
|
-
throw new Error(userMessage);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
305
|
/**
|
|
288
306
|
* Stream chat with real-time token updates
|
|
289
307
|
*/
|
|
290
|
-
async
|
|
308
|
+
async chat(messages, tools, callbacks, signal) {
|
|
291
309
|
// Check if already aborted before starting
|
|
292
310
|
if (signal?.aborted) {
|
|
293
311
|
throw new Error('Operation was cancelled');
|
|
@@ -299,21 +317,63 @@ export class AISDKClient {
|
|
|
299
317
|
const aiTools = Object.keys(tools).length > 0 ? tools : undefined;
|
|
300
318
|
// Convert messages to AI SDK v5 ModelMessage format
|
|
301
319
|
const modelMessages = convertToModelMessages(messages);
|
|
302
|
-
//
|
|
303
|
-
|
|
320
|
+
// Tools with needsApproval: false auto-execute in the loop
|
|
321
|
+
// Tools with needsApproval: true cause interruptions for manual approval
|
|
322
|
+
// stopWhen controls when the tool loop stops (max 10 steps)
|
|
323
|
+
const result = await generateText({
|
|
304
324
|
model,
|
|
305
325
|
messages: modelMessages,
|
|
306
326
|
tools: aiTools,
|
|
307
327
|
abortSignal: signal,
|
|
328
|
+
maxRetries: this.maxRetries,
|
|
329
|
+
temperature: 0.6,
|
|
330
|
+
stopWhen: stepCountIs(10), // Allow up to 10 tool execution steps
|
|
331
|
+
// Can be used to add custom logging, metrics, or step tracking
|
|
332
|
+
onStepFinish(step) {
|
|
333
|
+
// Display formatters for auto-executed tools (after execution with results)
|
|
334
|
+
if (step.toolCalls &&
|
|
335
|
+
step.toolResults &&
|
|
336
|
+
step.toolCalls.length === step.toolResults.length) {
|
|
337
|
+
step.toolCalls.forEach((toolCall, idx) => {
|
|
338
|
+
const toolResult = step.toolResults[idx];
|
|
339
|
+
const tc = {
|
|
340
|
+
id: toolCall.toolCallId ||
|
|
341
|
+
`tool_${Date.now()}_${Math.random()
|
|
342
|
+
.toString(36)
|
|
343
|
+
.substring(7)}`,
|
|
344
|
+
function: {
|
|
345
|
+
name: toolCall.toolName,
|
|
346
|
+
arguments: toolCall.input,
|
|
347
|
+
},
|
|
348
|
+
};
|
|
349
|
+
const resultStr = typeof toolResult.output === 'string'
|
|
350
|
+
? toolResult.output
|
|
351
|
+
: JSON.stringify(toolResult.output);
|
|
352
|
+
callbacks.onToolExecuted?.(tc, resultStr);
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
prepareStep: ({ messages }) => {
|
|
357
|
+
// Filter out empty assistant messages that would cause API errors
|
|
358
|
+
// "Assistant message must have either content or tool_calls"
|
|
359
|
+
const filteredMessages = messages.filter(m => !isEmptyAssistantMessage(m));
|
|
360
|
+
// Return filtered messages if any were removed, otherwise no changes
|
|
361
|
+
if (filteredMessages.length !== messages.length) {
|
|
362
|
+
return { messages: filteredMessages };
|
|
363
|
+
}
|
|
364
|
+
return {}; // No modifications needed
|
|
365
|
+
},
|
|
308
366
|
});
|
|
309
|
-
//
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
callbacks.onToken?.(
|
|
367
|
+
// Get the full text from the result
|
|
368
|
+
const fullText = result.text;
|
|
369
|
+
// Send the complete text to the callback
|
|
370
|
+
if (fullText) {
|
|
371
|
+
callbacks.onToken?.(fullText);
|
|
314
372
|
}
|
|
315
|
-
//
|
|
316
|
-
const toolCallsResult =
|
|
373
|
+
// Get tool calls from result
|
|
374
|
+
const toolCallsResult = result.toolCalls;
|
|
375
|
+
// Can inspect result.steps to see auto-executed tool calls and results
|
|
376
|
+
// const steps = await result.steps;
|
|
317
377
|
// Extract tool calls
|
|
318
378
|
const toolCalls = [];
|
|
319
379
|
if (toolCallsResult && toolCallsResult.length > 0) {
|
|
@@ -329,7 +389,7 @@ export class AISDKClient {
|
|
|
329
389
|
},
|
|
330
390
|
};
|
|
331
391
|
toolCalls.push(tc);
|
|
332
|
-
|
|
392
|
+
// Note: onToolCall already fired in onStepFinish - no need to call again
|
|
333
393
|
}
|
|
334
394
|
}
|
|
335
395
|
// Check for XML tool calls if no native ones
|
|
@@ -379,23 +439,26 @@ export class AISDKClient {
|
|
|
379
439
|
};
|
|
380
440
|
}
|
|
381
441
|
catch (error) {
|
|
382
|
-
// Check if this was a cancellation
|
|
442
|
+
// Check if this was a user-initiated cancellation
|
|
383
443
|
if (error instanceof Error && error.name === 'AbortError') {
|
|
384
444
|
throw new Error('Operation was cancelled');
|
|
385
445
|
}
|
|
386
|
-
//
|
|
446
|
+
// AI SDK wraps errors in NoOutputGeneratedError with no useful cause
|
|
447
|
+
// Check if it's a cancellation without an underlying API error
|
|
387
448
|
if (error instanceof Error &&
|
|
388
449
|
(error.name === 'AI_NoOutputGeneratedError' ||
|
|
389
450
|
error.message.includes('No output generated'))) {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
451
|
+
// Check if there's an underlying RetryError with the real cause
|
|
452
|
+
const rootError = extractRootError(error);
|
|
453
|
+
if (rootError === error) {
|
|
454
|
+
// No underlying error - this is just a cancellation
|
|
455
|
+
throw new Error('Operation was cancelled');
|
|
456
|
+
}
|
|
457
|
+
// There's a real error underneath, parse it
|
|
458
|
+
const userMessage = parseAPIError(rootError);
|
|
459
|
+
throw new Error(userMessage);
|
|
397
460
|
}
|
|
398
|
-
// Parse
|
|
461
|
+
// Parse any other error (including RetryError and APICallError)
|
|
399
462
|
const userMessage = parseAPIError(error);
|
|
400
463
|
throw new Error(userMessage);
|
|
401
464
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-sdk-client.js","sourceRoot":"","sources":["../source/ai-sdk-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-sdk-client.js","sourceRoot":"","sources":["../source/ai-sdk-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import InfoMessage from '../../components/info-message.js';
|
|
|
6
6
|
import ToolMessage from '../../components/tool-message.js';
|
|
7
7
|
import ErrorMessage from '../../components/error-message.js';
|
|
8
8
|
export async function handleMessageSubmission(message, options) {
|
|
9
|
-
const { customCommandCache, customCommandLoader, customCommandExecutor, onClearMessages, onEnterModelSelectionMode, onEnterProviderSelectionMode, onEnterThemeSelectionMode,
|
|
9
|
+
const { customCommandCache, customCommandLoader, customCommandExecutor, onClearMessages, onEnterModelSelectionMode, onEnterProviderSelectionMode, onEnterThemeSelectionMode, onEnterModelDatabaseMode, onEnterConfigWizardMode, onShowStatus, onHandleChatMessage, onAddToChatQueue, componentKeyCounter, setMessages, messages, setIsBashExecuting, setCurrentBashCommand, } = options;
|
|
10
10
|
// Parse the input to determine its type
|
|
11
11
|
const parsedInput = parseInput(message);
|
|
12
12
|
// Handle bash commands (prefixed with !)
|
|
@@ -108,8 +108,8 @@ ${result.fullOutput || '(No output)'}`;
|
|
|
108
108
|
onEnterThemeSelectionMode();
|
|
109
109
|
return;
|
|
110
110
|
}
|
|
111
|
-
else if (commandName === '
|
|
112
|
-
|
|
111
|
+
else if (commandName === 'model-database') {
|
|
112
|
+
onEnterModelDatabaseMode();
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
115
|
else if (commandName === 'setup-config') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appUtils.js","sourceRoot":"","sources":["../../../source/app/utils/appUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AAItD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,OAAe,EACf,OAAiC;IAEjC,MAAM,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"appUtils.js","sourceRoot":"","sources":["../../../source/app/utils/appUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AAItD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,OAAe,EACf,OAAiC;IAEjC,MAAM,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,GACrB,GAAG,OAAO,CAAC;IAEZ,wCAAwC;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAExC,yCAAyC;IACzC,IAAI,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAE5C,2CAA2C;QAC3C,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACnC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC;YACJ,2BAA2B;YAC3B,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;gBACpD,OAAO,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,mBAAmB;YACnB,IAAI,MAAgD,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAG/B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,0CAA0C;gBAC1C,MAAM,GAAG;oBACR,UAAU,EAAE,YAAY;oBACxB,UAAU,EACT,YAAY,CAAC,MAAM,GAAG,IAAI;wBACzB,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;wBACjC,CAAC,CAAC,YAAY;iBAChB,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,MAAM,aAAa,GAAG,KAAK,WAAW;EACvC,MAAM,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC;YAEpC,mDAAmD;YACnD,gBAAgB,CACf,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;gBAChC,GAAG,EAAE,eAAe,mBAAmB,EAAE;gBACzC,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;aAChB,CAAC,CACF,CAAC;YAEF,sEAAsE;YACtE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAY;oBAC5B,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,mCAAmC,WAAW,KAAK,MAAM,CAAC,UAAU,UAAU;iBACvF,CAAC;gBACF,WAAW,CAAC,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YACzC,CAAC;YAED,6BAA6B;YAC7B,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1B,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO;QACR,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,sCAAsC;YACtC,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,gBAAgB,CACf,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE;gBACjC,GAAG,EAAE,cAAc,mBAAmB,EAAE;gBACxC,OAAO,EAAE,4BAA4B,YAAY,EAAE;aACnD,CAAC,CACF,CAAC;YAEF,6BAA6B;YAC7B,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1B,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAE1B,uCAAuC;YACvC,OAAO;QACR,CAAC;IACF,CAAC;IAED,4CAA4C;IAC5C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnD,iCAAiC;QACjC,MAAM,aAAa,GAClB,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC;YACnC,mBAAmB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,aAAa,EAAE,CAAC;YACnB,4CAA4C;YAC5C,MAAM,IAAI,GAAG,OAAO;iBAClB,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC7B,IAAI,EAAE;iBACN,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM,eAAe,GAAG,qBAAqB,EAAE,OAAO,CACrD,aAAa,EACb,IAAI,CACJ,CAAC;YAEF,sCAAsC;YACtC,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;aAAM,CAAC;YACP,qDAAqD;YACrD,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC7B,MAAM,eAAe,EAAE,CAAC;gBACxB,sCAAsC;YACvC,CAAC;iBAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBACpC,yBAAyB,EAAE,CAAC;gBAC5B,OAAO;YACR,CAAC;iBAAM,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;gBACvC,4BAA4B,EAAE,CAAC;gBAC/B,OAAO;YACR,CAAC;iBAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBACpC,yBAAyB,EAAE,CAAC;gBAC5B,OAAO;YACR,CAAC;iBAAM,IAAI,WAAW,KAAK,gBAAgB,EAAE,CAAC;gBAC7C,wBAAwB,EAAE,CAAC;gBAC3B,OAAO;YACR,CAAC;iBAAM,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;gBAC3C,uBAAuB,EAAE,CAAC;gBAC1B,OAAO;YACR,CAAC;iBAAM,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACrC,YAAY,EAAE,CAAC;gBACf,OAAO;YACR,CAAC;YAED,2BAA2B;YAC3B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EACjD,CAAC,CACD,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;gBACxE,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,WAAW;gBACnB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC1C,CAAC,CAAC;YACH,IAAI,MAAM,EAAE,CAAC;gBACZ,yCAAyC;gBACzC,wFAAwF;gBACxF,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,cAAc,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChD,CAAC;qBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBACxD,cAAc,CAAC,GAAG,EAAE,CACnB,gBAAgB,CACf,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;wBAChC,GAAG,EAAE,kBAAkB,mBAAmB,EAAE;wBAC5C,OAAO,EAAE,MAAM;wBACf,OAAO,EAAE,IAAI;qBACb,CAAC,CACF,CACD,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,sCAAsC;QACtC,OAAO;IACR,CAAC;IAED,yCAAyC;IACzC,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,WAA0C,EAC1C,MAAwB;IAExB,OAAO,KAAK,IAAI,EAAE;QACjB,2CAA2C;QAC3C,WAAW,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAC7B,CAAC;IACF,CAAC,CAAC;AACH,CAAC"}
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"AA0CA,UAAU,QAAQ;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAC,UAAkB,EAAE,UAAU,EAAC,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"AA0CA,UAAU,QAAQ;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAC,UAAkB,EAAE,UAAU,EAAC,EAAE,QAAQ,2CAicrE"}
|
package/dist/app.js
CHANGED
|
@@ -10,7 +10,6 @@ import ChatQueue from './components/chat-queue.js';
|
|
|
10
10
|
import ModelSelector from './components/model-selector.js';
|
|
11
11
|
import ProviderSelector from './components/provider-selector.js';
|
|
12
12
|
import ThemeSelector from './components/theme-selector.js';
|
|
13
|
-
import ThinkingIndicator from './components/thinking-indicator.js';
|
|
14
13
|
import CancellingIndicator from './components/cancelling-indicator.js';
|
|
15
14
|
import ToolConfirmation from './components/tool-confirmation.js';
|
|
16
15
|
import ToolExecutionIndicator from './components/tool-execution-indicator.js';
|
|
@@ -18,9 +17,10 @@ import BashExecutionIndicator from './components/bash-execution-indicator.js';
|
|
|
18
17
|
import { setGlobalMessageQueue } from './utils/message-queue.js';
|
|
19
18
|
import Spinner from 'ink-spinner';
|
|
20
19
|
import SecurityDisclaimer from './components/security-disclaimer.js';
|
|
21
|
-
import {
|
|
20
|
+
import { ModelDatabaseDisplay } from './commands/model-database.js';
|
|
22
21
|
import { ConfigWizard } from './wizard/config-wizard.js';
|
|
23
22
|
import { VSCodeExtensionPrompt, shouldPromptExtensionInstall, } from './components/vscode-extension-prompt.js';
|
|
23
|
+
import { setCurrentMode as setCurrentModeContext } from './context/mode-context.js';
|
|
24
24
|
// Import extracted hooks and utilities
|
|
25
25
|
import { useAppState } from './hooks/useAppState.js';
|
|
26
26
|
import { useChatHandler } from './hooks/useChatHandler.js';
|
|
@@ -37,6 +37,10 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
37
37
|
const appState = useAppState();
|
|
38
38
|
const { exit } = useApp();
|
|
39
39
|
const { isTrusted, handleConfirmTrust, isTrustLoading, isTrustedError } = useDirectoryTrust();
|
|
40
|
+
// Sync global mode context whenever development mode changes
|
|
41
|
+
React.useEffect(() => {
|
|
42
|
+
setCurrentModeContext(appState.developmentMode);
|
|
43
|
+
}, [appState.developmentMode]);
|
|
40
44
|
// VS Code extension installation prompt state
|
|
41
45
|
const [showExtensionPrompt, setShowExtensionPrompt] = React.useState(() => vscodeMode && shouldPromptExtensionInstall());
|
|
42
46
|
const [extensionPromptComplete, setExtensionPromptComplete] = React.useState(false);
|
|
@@ -79,8 +83,8 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
79
83
|
toolManager: appState.toolManager,
|
|
80
84
|
messages: appState.messages,
|
|
81
85
|
setMessages: appState.updateMessages,
|
|
86
|
+
currentProvider: appState.currentProvider,
|
|
82
87
|
currentModel: appState.currentModel,
|
|
83
|
-
setIsThinking: appState.setIsThinking,
|
|
84
88
|
setIsCancelling: appState.setIsCancelling,
|
|
85
89
|
addToChatQueue: appState.addToChatQueue,
|
|
86
90
|
componentKeyCounter: appState.componentKeyCounter,
|
|
@@ -132,6 +136,8 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
132
136
|
setStartChat: appState.setStartChat,
|
|
133
137
|
setMcpInitialized: appState.setMcpInitialized,
|
|
134
138
|
setUpdateInfo: appState.setUpdateInfo,
|
|
139
|
+
setMcpServersStatus: appState.setMcpServersStatus,
|
|
140
|
+
setLspServersStatus: appState.setLspServersStatus,
|
|
135
141
|
addToChatQueue: appState.addToChatQueue,
|
|
136
142
|
componentKeyCounter: appState.componentKeyCounter,
|
|
137
143
|
customCommandCache: appState.customCommandCache,
|
|
@@ -151,7 +157,7 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
151
157
|
setIsModelSelectionMode: appState.setIsModelSelectionMode,
|
|
152
158
|
setIsProviderSelectionMode: appState.setIsProviderSelectionMode,
|
|
153
159
|
setIsThemeSelectionMode: appState.setIsThemeSelectionMode,
|
|
154
|
-
|
|
160
|
+
setIsModelDatabaseMode: appState.setIsModelDatabaseMode,
|
|
155
161
|
setIsConfigWizardMode: appState.setIsConfigWizardMode,
|
|
156
162
|
addToChatQueue: appState.addToChatQueue,
|
|
157
163
|
componentKeyCounter: appState.componentKeyCounter,
|
|
@@ -174,11 +180,14 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
174
180
|
];
|
|
175
181
|
const currentIndex = modes.indexOf(currentMode);
|
|
176
182
|
const nextIndex = (currentIndex + 1) % modes.length;
|
|
177
|
-
|
|
183
|
+
const nextMode = modes[nextIndex];
|
|
184
|
+
// Sync global mode context for tool needsApproval logic
|
|
185
|
+
setCurrentModeContext(nextMode);
|
|
186
|
+
return nextMode;
|
|
178
187
|
});
|
|
179
188
|
}, [appState]);
|
|
180
189
|
const handleShowStatus = React.useCallback(() => {
|
|
181
|
-
appState.addToChatQueue(_jsx(Status, { provider: appState.currentProvider, model: appState.currentModel, theme: appState.currentTheme, updateInfo: appState.updateInfo }, `status-${appState.componentKeyCounter}`));
|
|
190
|
+
appState.addToChatQueue(_jsx(Status, { provider: appState.currentProvider, model: appState.currentModel, theme: appState.currentTheme, updateInfo: appState.updateInfo, mcpServersStatus: appState.mcpServersStatus, lspServersStatus: appState.lspServersStatus }, `status-${appState.componentKeyCounter}`));
|
|
182
191
|
}, [appState]);
|
|
183
192
|
const handleMessageSubmit = React.useCallback(async (message) => {
|
|
184
193
|
await handleMessageSubmission(message, {
|
|
@@ -189,7 +198,7 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
189
198
|
onEnterModelSelectionMode: modeHandlers.enterModelSelectionMode,
|
|
190
199
|
onEnterProviderSelectionMode: modeHandlers.enterProviderSelectionMode,
|
|
191
200
|
onEnterThemeSelectionMode: modeHandlers.enterThemeSelectionMode,
|
|
192
|
-
|
|
201
|
+
onEnterModelDatabaseMode: modeHandlers.enterModelDatabaseMode,
|
|
193
202
|
onEnterConfigWizardMode: modeHandlers.enterConfigWizardMode,
|
|
194
203
|
onShowStatus: handleShowStatus,
|
|
195
204
|
onHandleChatMessage: chatHandler.handleChatMessage,
|
|
@@ -213,7 +222,7 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
213
222
|
modeHandlers.enterModelSelectionMode,
|
|
214
223
|
modeHandlers.enterProviderSelectionMode,
|
|
215
224
|
modeHandlers.enterThemeSelectionMode,
|
|
216
|
-
modeHandlers.
|
|
225
|
+
modeHandlers.enterModelDatabaseMode,
|
|
217
226
|
modeHandlers.enterConfigWizardMode,
|
|
218
227
|
handleShowStatus,
|
|
219
228
|
chatHandler.handleChatMessage,
|
|
@@ -232,12 +241,14 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
232
241
|
// Memoize static components to prevent unnecessary re-renders
|
|
233
242
|
const staticComponents = React.useMemo(() => [
|
|
234
243
|
_jsx(WelcomeMessage, {}, "welcome"),
|
|
235
|
-
_jsx(Status, { provider: appState.currentProvider, model: appState.currentModel, theme: appState.currentTheme, updateInfo: appState.updateInfo }, "status"),
|
|
244
|
+
_jsx(Status, { provider: appState.currentProvider, model: appState.currentModel, theme: appState.currentTheme, updateInfo: appState.updateInfo, mcpServersStatus: appState.mcpServersStatus, lspServersStatus: appState.lspServersStatus }, "status"),
|
|
236
245
|
], [
|
|
237
246
|
appState.currentProvider,
|
|
238
247
|
appState.currentModel,
|
|
239
248
|
appState.currentTheme,
|
|
240
249
|
appState.updateInfo,
|
|
250
|
+
appState.mcpServersStatus,
|
|
251
|
+
appState.lspServersStatus,
|
|
241
252
|
]);
|
|
242
253
|
// Handle loading state for directory trust check
|
|
243
254
|
if (isTrustLoading) {
|
|
@@ -261,10 +272,10 @@ export default function App({ vscodeMode = false, vscodePort }) {
|
|
|
261
272
|
setExtensionPromptComplete(true);
|
|
262
273
|
} })] }) }));
|
|
263
274
|
}
|
|
264
|
-
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: _jsx(UIStateProvider, { children: _jsxs(Box, { flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Box, { flexGrow: 1, flexDirection: "column", minHeight: 0, children: appState.startChat && (_jsx(ChatQueue, { staticComponents: staticComponents, queuedComponents: appState.chatComponents })) }), appState.startChat && (_jsxs(Box, { flexDirection: "column", marginLeft: -1, children: [appState.isCancelling
|
|
275
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: _jsx(UIStateProvider, { children: _jsxs(Box, { flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Box, { flexGrow: 1, flexDirection: "column", minHeight: 0, children: appState.startChat && (_jsx(ChatQueue, { staticComponents: staticComponents, queuedComponents: appState.chatComponents })) }), appState.startChat && (_jsxs(Box, { flexDirection: "column", marginLeft: -1, children: [appState.isCancelling && _jsx(CancellingIndicator, {}), chatHandler.isStreaming && chatHandler.streamingContent && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: themeContextValue.colors.primary, bold: true, children: [appState.currentModel, ":"] }) }), _jsx(Text, { children: chatHandler.streamingContent })] })), appState.isModelSelectionMode ? (_jsx(ModelSelector, { client: appState.client, currentModel: appState.currentModel, onModelSelect: model => void modeHandlers.handleModelSelect(model), onCancel: modeHandlers.handleModelSelectionCancel })) : appState.isProviderSelectionMode ? (_jsx(ProviderSelector, { currentProvider: appState.currentProvider, onProviderSelect: provider => void modeHandlers.handleProviderSelect(provider), onCancel: modeHandlers.handleProviderSelectionCancel })) : appState.isThemeSelectionMode ? (_jsx(ThemeSelector, { onThemeSelect: modeHandlers.handleThemeSelect, onCancel: modeHandlers.handleThemeSelectionCancel })) : appState.isModelDatabaseMode ? (_jsx(ModelDatabaseDisplay, { onCancel: modeHandlers.handleModelDatabaseCancel })) : appState.isConfigWizardMode ? (_jsx(ConfigWizard, { projectDir: process.cwd(), onComplete: configPath => void modeHandlers.handleConfigWizardComplete(configPath), onCancel: modeHandlers.handleConfigWizardCancel })) : appState.isToolConfirmationMode &&
|
|
265
276
|
appState.pendingToolCalls[appState.currentToolIndex] ? (_jsx(ToolConfirmation, { toolCall: appState.pendingToolCalls[appState.currentToolIndex], onConfirm: toolHandler.handleToolConfirmation, onCancel: toolHandler.handleToolConfirmationCancel })) : appState.isToolExecuting &&
|
|
266
277
|
appState.pendingToolCalls[appState.currentToolIndex] ? (_jsx(ToolExecutionIndicator, { toolName: appState.pendingToolCalls[appState.currentToolIndex]
|
|
267
|
-
.function.name, currentIndex: appState.currentToolIndex, totalTools: appState.pendingToolCalls.length })) : appState.isBashExecuting ? (_jsx(BashExecutionIndicator, { command: appState.currentBashCommand })) : appState.mcpInitialized && appState.client ? (_jsx(UserInput, { customCommands: Array.from(appState.customCommandCache.keys()), onSubmit: msg => void handleMessageSubmit(msg), disabled:
|
|
278
|
+
.function.name, currentIndex: appState.currentToolIndex, totalTools: appState.pendingToolCalls.length })) : appState.isBashExecuting ? (_jsx(BashExecutionIndicator, { command: appState.currentBashCommand })) : appState.mcpInitialized && appState.client ? (_jsx(UserInput, { customCommands: Array.from(appState.customCommandCache.keys()), onSubmit: msg => void handleMessageSubmit(msg), disabled: chatHandler.isStreaming ||
|
|
268
279
|
appState.isToolExecuting ||
|
|
269
280
|
appState.isBashExecuting, onCancel: handleCancel, onToggleMode: handleToggleDevelopmentMode, developmentMode: appState.developmentMode })) : appState.mcpInitialized && !appState.client ? (_jsx(_Fragment, {})) : (_jsxs(Text, { color: themeContextValue.colors.secondary, children: [_jsx(Spinner, { type: "dots2" }), " Loading..."] }))] }))] }) }) }));
|
|
270
281
|
}
|