@nanocollective/nanocoder 1.17.3 → 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 +2 -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.d.ts +18 -2
- package/dist/ai-sdk-client.d.ts.map +1 -1
- package/dist/ai-sdk-client.js +159 -122
- 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 +2 -2
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +2 -2
- package/dist/commands/index.js.map +1 -1
- 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 +101 -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 +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.js +2 -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/README.md
CHANGED
|
@@ -423,7 +423,6 @@ Preferences follow the same location hierarchy as configuration files:
|
|
|
423
423
|
- **Last model per provider**: Your preferred model for each provider
|
|
424
424
|
- **Session continuity**: Automatically switches back to your preferred provider/model when restarting
|
|
425
425
|
- **Last theme used**: The theme you last selected
|
|
426
|
-
- **Streaming preference**: Whether response streaming is enabled (toggle with `/streaming` command)
|
|
427
426
|
|
|
428
427
|
**Manual management:**
|
|
429
428
|
|
|
@@ -451,8 +450,7 @@ You can override this directory using `NANOCODER_DATA_DIR`.
|
|
|
451
450
|
- `/model` - Switch between available models
|
|
452
451
|
- `/provider` - Switch between configured AI providers
|
|
453
452
|
- `/status` - Display current status (CWD, provider, model, theme, available updates, AGENTS setup)
|
|
454
|
-
- `/
|
|
455
|
-
- `/recommendations` - Get AI model recommendations based on your system capabilities (RAM, GPU, network)
|
|
453
|
+
- `/model-database` - Browse coding models from OpenRouter (searchable, filterable by open/proprietary)
|
|
456
454
|
- `/mcp` - Show connected MCP servers and their tools
|
|
457
455
|
- `/custom-commands` - List all custom commands
|
|
458
456
|
- `/exit` - Exit the application
|
|
@@ -536,7 +534,7 @@ Generate comprehensive unit tests for {{component}}. Include:
|
|
|
536
534
|
- **Smart autocomplete**: Tab completion for commands with real-time suggestions
|
|
537
535
|
- **Colorized output**: Syntax highlighting and structured display
|
|
538
536
|
- **Session persistence**: Maintains context and preferences across sessions
|
|
539
|
-
- **Real-time streaming**: Live token-by-token streaming of AI responses
|
|
537
|
+
- **Real-time streaming**: Live token-by-token streaming of AI responses
|
|
540
538
|
- **Real-time indicators**: Shows token usage, timing, and processing status
|
|
541
539
|
- **First-time directory security disclaimer**: Prompts on first run and stores a per-project trust decision to prevent accidental exposure of local code or secrets.
|
|
542
540
|
- **Development modes**: Three modes to control tool execution behavior (toggle with Shift+Tab)
|
|
@@ -588,6 +586,5 @@ Nanocoder could benefit from help all across the board. Such as:
|
|
|
588
586
|
- Reporting bugs or suggesting features
|
|
589
587
|
- Marketing and getting the word out
|
|
590
588
|
- Design and building more great software
|
|
591
|
-
- Model cards for our recommendations database
|
|
592
589
|
|
|
593
590
|
All contributions and community participation are welcome!
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-sdk-client-empty-message.spec.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client-empty-message.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import test from 'ava';
|
|
2
|
+
import { isEmptyAssistantMessage } from './ai-sdk-client.js';
|
|
3
|
+
// Tests for isEmptyAssistantMessage function
|
|
4
|
+
// This function is used to filter out empty assistant messages that would cause API errors:
|
|
5
|
+
// "400 Bad Request: Assistant message must have either content or tool_calls, but not none."
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Non-assistant messages should never be considered empty
|
|
8
|
+
// ============================================================================
|
|
9
|
+
test('isEmptyAssistantMessage - user message is not empty', t => {
|
|
10
|
+
const message = {
|
|
11
|
+
role: 'user',
|
|
12
|
+
content: '',
|
|
13
|
+
};
|
|
14
|
+
t.false(isEmptyAssistantMessage(message));
|
|
15
|
+
});
|
|
16
|
+
test('isEmptyAssistantMessage - system message is not empty', t => {
|
|
17
|
+
const message = {
|
|
18
|
+
role: 'system',
|
|
19
|
+
content: '',
|
|
20
|
+
};
|
|
21
|
+
t.false(isEmptyAssistantMessage(message));
|
|
22
|
+
});
|
|
23
|
+
test('isEmptyAssistantMessage - tool message is not empty', t => {
|
|
24
|
+
const message = {
|
|
25
|
+
role: 'tool',
|
|
26
|
+
content: '',
|
|
27
|
+
};
|
|
28
|
+
t.false(isEmptyAssistantMessage(message));
|
|
29
|
+
});
|
|
30
|
+
// ============================================================================
|
|
31
|
+
// Empty assistant messages (should be filtered out)
|
|
32
|
+
// ============================================================================
|
|
33
|
+
test('isEmptyAssistantMessage - assistant with empty string content is empty', t => {
|
|
34
|
+
const message = {
|
|
35
|
+
role: 'assistant',
|
|
36
|
+
content: '',
|
|
37
|
+
};
|
|
38
|
+
t.true(isEmptyAssistantMessage(message));
|
|
39
|
+
});
|
|
40
|
+
test('isEmptyAssistantMessage - assistant with whitespace-only content is empty', t => {
|
|
41
|
+
const message = {
|
|
42
|
+
role: 'assistant',
|
|
43
|
+
content: ' \n\t ',
|
|
44
|
+
};
|
|
45
|
+
t.true(isEmptyAssistantMessage(message));
|
|
46
|
+
});
|
|
47
|
+
test('isEmptyAssistantMessage - assistant with empty array content is empty', t => {
|
|
48
|
+
const message = {
|
|
49
|
+
role: 'assistant',
|
|
50
|
+
content: [],
|
|
51
|
+
};
|
|
52
|
+
t.true(isEmptyAssistantMessage(message));
|
|
53
|
+
});
|
|
54
|
+
test('isEmptyAssistantMessage - assistant with empty content and empty toolCalls is empty', t => {
|
|
55
|
+
const message = {
|
|
56
|
+
role: 'assistant',
|
|
57
|
+
content: '',
|
|
58
|
+
toolCalls: [],
|
|
59
|
+
};
|
|
60
|
+
t.true(isEmptyAssistantMessage(message));
|
|
61
|
+
});
|
|
62
|
+
test('isEmptyAssistantMessage - assistant with undefined toolCalls is empty', t => {
|
|
63
|
+
const message = {
|
|
64
|
+
role: 'assistant',
|
|
65
|
+
content: '',
|
|
66
|
+
toolCalls: undefined,
|
|
67
|
+
};
|
|
68
|
+
t.true(isEmptyAssistantMessage(message));
|
|
69
|
+
});
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// Valid assistant messages (should NOT be filtered out)
|
|
72
|
+
// ============================================================================
|
|
73
|
+
test('isEmptyAssistantMessage - assistant with text content is not empty', t => {
|
|
74
|
+
const message = {
|
|
75
|
+
role: 'assistant',
|
|
76
|
+
content: 'Hello, how can I help you?',
|
|
77
|
+
};
|
|
78
|
+
t.false(isEmptyAssistantMessage(message));
|
|
79
|
+
});
|
|
80
|
+
test('isEmptyAssistantMessage - assistant with single character content is not empty', t => {
|
|
81
|
+
const message = {
|
|
82
|
+
role: 'assistant',
|
|
83
|
+
content: 'a',
|
|
84
|
+
};
|
|
85
|
+
t.false(isEmptyAssistantMessage(message));
|
|
86
|
+
});
|
|
87
|
+
test('isEmptyAssistantMessage - assistant with array content is not empty', t => {
|
|
88
|
+
const message = {
|
|
89
|
+
role: 'assistant',
|
|
90
|
+
content: [{ type: 'text', text: 'Hello' }],
|
|
91
|
+
};
|
|
92
|
+
t.false(isEmptyAssistantMessage(message));
|
|
93
|
+
});
|
|
94
|
+
test('isEmptyAssistantMessage - assistant with toolCalls is not empty', t => {
|
|
95
|
+
const message = {
|
|
96
|
+
role: 'assistant',
|
|
97
|
+
content: '',
|
|
98
|
+
toolCalls: [
|
|
99
|
+
{ toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
|
|
100
|
+
],
|
|
101
|
+
};
|
|
102
|
+
t.false(isEmptyAssistantMessage(message));
|
|
103
|
+
});
|
|
104
|
+
test('isEmptyAssistantMessage - assistant with content and toolCalls is not empty', t => {
|
|
105
|
+
const message = {
|
|
106
|
+
role: 'assistant',
|
|
107
|
+
content: 'Let me read that file for you.',
|
|
108
|
+
toolCalls: [
|
|
109
|
+
{ toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
|
|
110
|
+
],
|
|
111
|
+
};
|
|
112
|
+
t.false(isEmptyAssistantMessage(message));
|
|
113
|
+
});
|
|
114
|
+
test('isEmptyAssistantMessage - assistant with whitespace content but toolCalls is not empty', t => {
|
|
115
|
+
const message = {
|
|
116
|
+
role: 'assistant',
|
|
117
|
+
content: ' ',
|
|
118
|
+
toolCalls: [
|
|
119
|
+
{ toolName: 'read_file', toolCallId: '123', input: { path: 'test.txt' } },
|
|
120
|
+
],
|
|
121
|
+
};
|
|
122
|
+
t.false(isEmptyAssistantMessage(message));
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=ai-sdk-client-empty-message.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-sdk-client-empty-message.spec.js","sourceRoot":"","sources":["../source/ai-sdk-client-empty-message.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/ai-sdk-client.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
import type { AIProviderConfig, LLMChatResponse, LLMClient, Message, AISDKCoreTool, StreamCallbacks } from './types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Message type used for testing the empty assistant message filter.
|
|
4
|
+
* This is a simplified version of the AI SDK's internal message format.
|
|
5
|
+
*/
|
|
6
|
+
export interface TestableMessage {
|
|
7
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
8
|
+
content: string | unknown[];
|
|
9
|
+
toolCalls?: unknown[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Checks if an assistant message is empty (no content and no tool calls).
|
|
13
|
+
* Empty assistant messages cause API errors:
|
|
14
|
+
* "400 Bad Request: Assistant message must have either content or tool_calls, but not none."
|
|
15
|
+
*
|
|
16
|
+
* Exported for testing purposes.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isEmptyAssistantMessage(message: TestableMessage): boolean;
|
|
2
19
|
/**
|
|
3
20
|
* Parses API errors into user-friendly messages.
|
|
4
21
|
* Exported for testing purposes.
|
|
@@ -24,11 +41,10 @@ export declare class AISDKClient implements LLMClient {
|
|
|
24
41
|
getContextSize(): number;
|
|
25
42
|
getMaxRetries(): number;
|
|
26
43
|
getAvailableModels(): Promise<string[]>;
|
|
27
|
-
chat(messages: Message[], tools: Record<string, AISDKCoreTool>, signal?: AbortSignal): Promise<LLMChatResponse>;
|
|
28
44
|
/**
|
|
29
45
|
* Stream chat with real-time token updates
|
|
30
46
|
*/
|
|
31
|
-
|
|
47
|
+
chat(messages: Message[], tools: Record<string, AISDKCoreTool>, callbacks: StreamCallbacks, signal?: AbortSignal): Promise<LLMChatResponse>;
|
|
32
48
|
clearContext(): Promise<void>;
|
|
33
49
|
}
|
|
34
50
|
//# sourceMappingURL=ai-sdk-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-sdk-client.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,OAAO,EAEP,aAAa,EACb,eAAe,EACf,MAAM,eAAe,CAAC;AAIvB;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ai-sdk-client.d.ts","sourceRoot":"","sources":["../source/ai-sdk-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,OAAO,EAEP,aAAa,EACb,eAAe,EACf,MAAM,eAAe,CAAC;AAIvB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAczE;AAgBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAyJpD;AAmDD,qBAAa,WAAY,YAAW,SAAS;IAC5C,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,UAAU,CAAS;gBAEf,cAAc,EAAE,gBAAgB;IAgC5C;;OAEG;YACW,iBAAiB;IAU/B,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAKrE,OAAO,CAAC,cAAc;IAgCtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIvC;;OAEG;IACG,IAAI,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACpC,SAAS,EAAE,eAAe,EAC1B,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC;IAyLrB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
|
package/dist/ai-sdk-client.js
CHANGED
|
@@ -1,17 +1,103 @@
|
|
|
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
|
+
/**
|
|
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
|
+
}
|
|
6
40
|
/**
|
|
7
41
|
* Parses API errors into user-friendly messages.
|
|
8
42
|
* Exported for testing purposes.
|
|
9
43
|
*/
|
|
10
44
|
export function parseAPIError(error) {
|
|
11
|
-
|
|
45
|
+
// First extract the root error from any wrappers
|
|
46
|
+
const rootError = extractRootError(error);
|
|
47
|
+
if (!(rootError instanceof Error)) {
|
|
12
48
|
return 'An unknown error occurred while communicating with the model';
|
|
13
49
|
}
|
|
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;
|
|
15
101
|
// Extract status code and clean message from common error patterns FIRST
|
|
16
102
|
// This ensures HTTP status codes are properly parsed before falling through
|
|
17
103
|
// to more generic pattern matching (like Ollama-specific errors)
|
|
@@ -29,6 +115,11 @@ export function parseAPIError(error) {
|
|
|
29
115
|
case '404':
|
|
30
116
|
return 'Model not found: The requested model may not exist or is unavailable';
|
|
31
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
|
+
}
|
|
32
123
|
return 'Rate limit exceeded: Too many requests. Please wait and try again';
|
|
33
124
|
case '500':
|
|
34
125
|
case '502':
|
|
@@ -211,108 +302,10 @@ export class AISDKClient {
|
|
|
211
302
|
getAvailableModels() {
|
|
212
303
|
return Promise.resolve(this.availableModels);
|
|
213
304
|
}
|
|
214
|
-
async chat(messages, tools, signal) {
|
|
215
|
-
// Check if already aborted before starting
|
|
216
|
-
if (signal?.aborted) {
|
|
217
|
-
throw new Error('Operation was cancelled');
|
|
218
|
-
}
|
|
219
|
-
try {
|
|
220
|
-
// Get the language model instance from the provider
|
|
221
|
-
const model = this.provider(this.currentModel);
|
|
222
|
-
// Tools are already in AI SDK format - use directly
|
|
223
|
-
const aiTools = Object.keys(tools).length > 0 ? tools : undefined;
|
|
224
|
-
// Convert messages to AI SDK v5 ModelMessage format
|
|
225
|
-
const modelMessages = convertToModelMessages(messages);
|
|
226
|
-
// Use generateText for non-streaming
|
|
227
|
-
const result = await generateText({
|
|
228
|
-
model,
|
|
229
|
-
messages: modelMessages,
|
|
230
|
-
tools: aiTools,
|
|
231
|
-
abortSignal: signal,
|
|
232
|
-
maxRetries: this.maxRetries,
|
|
233
|
-
});
|
|
234
|
-
// Extract tool calls from result
|
|
235
|
-
const toolCalls = [];
|
|
236
|
-
if (result.toolCalls && result.toolCalls.length > 0) {
|
|
237
|
-
for (const toolCall of result.toolCalls) {
|
|
238
|
-
toolCalls.push({
|
|
239
|
-
// Some providers (like Ollama) don't provide toolCallId, so generate one
|
|
240
|
-
id: toolCall.toolCallId ||
|
|
241
|
-
`tool_${Date.now()}_${Math.random().toString(36).substring(7)}`,
|
|
242
|
-
function: {
|
|
243
|
-
name: toolCall.toolName,
|
|
244
|
-
// AI SDK v5 uses 'input' for tool arguments
|
|
245
|
-
arguments: toolCall.input,
|
|
246
|
-
},
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
// If no native tool calls but tools are available, try XML parsing
|
|
251
|
-
let content = result.text;
|
|
252
|
-
if (Object.keys(tools).length > 0 && toolCalls.length === 0 && content) {
|
|
253
|
-
// First check for malformed XML tool calls
|
|
254
|
-
const malformedError = XMLToolCallParser.detectMalformedToolCall(content);
|
|
255
|
-
if (malformedError) {
|
|
256
|
-
// Return malformed tool call with validation error
|
|
257
|
-
// This mimics how validators work - returns tool call that will show error
|
|
258
|
-
toolCalls.push({
|
|
259
|
-
id: 'malformed_xml_validation',
|
|
260
|
-
function: {
|
|
261
|
-
name: '__xml_validation_error__',
|
|
262
|
-
arguments: {
|
|
263
|
-
error: malformedError.error,
|
|
264
|
-
},
|
|
265
|
-
},
|
|
266
|
-
});
|
|
267
|
-
content = ''; // Clear content since it was malformed
|
|
268
|
-
}
|
|
269
|
-
else if (XMLToolCallParser.hasToolCalls(content)) {
|
|
270
|
-
// Try to parse well-formed XML tool calls
|
|
271
|
-
const parsedToolCalls = XMLToolCallParser.parseToolCalls(content);
|
|
272
|
-
const xmlToolCalls = XMLToolCallParser.convertToToolCalls(parsedToolCalls);
|
|
273
|
-
const cleanedContent = XMLToolCallParser.removeToolCallsFromContent(content);
|
|
274
|
-
content = cleanedContent;
|
|
275
|
-
toolCalls.push(...xmlToolCalls);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
return {
|
|
279
|
-
choices: [
|
|
280
|
-
{
|
|
281
|
-
message: {
|
|
282
|
-
role: 'assistant',
|
|
283
|
-
content,
|
|
284
|
-
tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
285
|
-
},
|
|
286
|
-
},
|
|
287
|
-
],
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
catch (error) {
|
|
291
|
-
// Check if this was a cancellation
|
|
292
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
293
|
-
throw new Error('Operation was cancelled');
|
|
294
|
-
}
|
|
295
|
-
// Check for AI SDK's NoOutputGeneratedError (thrown when stream is aborted)
|
|
296
|
-
if (error instanceof Error &&
|
|
297
|
-
(error.name === 'AI_NoOutputGeneratedError' ||
|
|
298
|
-
error.message.includes('No output generated'))) {
|
|
299
|
-
throw new Error('Operation was cancelled');
|
|
300
|
-
}
|
|
301
|
-
// Log detailed error for debugging
|
|
302
|
-
console.error('AI SDK Error:', error);
|
|
303
|
-
if (error instanceof Error) {
|
|
304
|
-
console.error('Error message:', error.message);
|
|
305
|
-
console.error('Error stack:', error.stack);
|
|
306
|
-
}
|
|
307
|
-
// Parse and throw a user-friendly error
|
|
308
|
-
const userMessage = parseAPIError(error);
|
|
309
|
-
throw new Error(userMessage);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
305
|
/**
|
|
313
306
|
* Stream chat with real-time token updates
|
|
314
307
|
*/
|
|
315
|
-
async
|
|
308
|
+
async chat(messages, tools, callbacks, signal) {
|
|
316
309
|
// Check if already aborted before starting
|
|
317
310
|
if (signal?.aborted) {
|
|
318
311
|
throw new Error('Operation was cancelled');
|
|
@@ -324,22 +317,63 @@ export class AISDKClient {
|
|
|
324
317
|
const aiTools = Object.keys(tools).length > 0 ? tools : undefined;
|
|
325
318
|
// Convert messages to AI SDK v5 ModelMessage format
|
|
326
319
|
const modelMessages = convertToModelMessages(messages);
|
|
327
|
-
//
|
|
328
|
-
|
|
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({
|
|
329
324
|
model,
|
|
330
325
|
messages: modelMessages,
|
|
331
326
|
tools: aiTools,
|
|
332
327
|
abortSignal: signal,
|
|
333
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
|
+
},
|
|
334
366
|
});
|
|
335
|
-
//
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
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);
|
|
340
372
|
}
|
|
341
|
-
//
|
|
342
|
-
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;
|
|
343
377
|
// Extract tool calls
|
|
344
378
|
const toolCalls = [];
|
|
345
379
|
if (toolCallsResult && toolCallsResult.length > 0) {
|
|
@@ -355,7 +389,7 @@ export class AISDKClient {
|
|
|
355
389
|
},
|
|
356
390
|
};
|
|
357
391
|
toolCalls.push(tc);
|
|
358
|
-
|
|
392
|
+
// Note: onToolCall already fired in onStepFinish - no need to call again
|
|
359
393
|
}
|
|
360
394
|
}
|
|
361
395
|
// Check for XML tool calls if no native ones
|
|
@@ -405,23 +439,26 @@ export class AISDKClient {
|
|
|
405
439
|
};
|
|
406
440
|
}
|
|
407
441
|
catch (error) {
|
|
408
|
-
// Check if this was a cancellation
|
|
442
|
+
// Check if this was a user-initiated cancellation
|
|
409
443
|
if (error instanceof Error && error.name === 'AbortError') {
|
|
410
444
|
throw new Error('Operation was cancelled');
|
|
411
445
|
}
|
|
412
|
-
//
|
|
446
|
+
// AI SDK wraps errors in NoOutputGeneratedError with no useful cause
|
|
447
|
+
// Check if it's a cancellation without an underlying API error
|
|
413
448
|
if (error instanceof Error &&
|
|
414
449
|
(error.name === 'AI_NoOutputGeneratedError' ||
|
|
415
450
|
error.message.includes('No output generated'))) {
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
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);
|
|
423
460
|
}
|
|
424
|
-
// Parse
|
|
461
|
+
// Parse any other error (including RetryError and APICallError)
|
|
425
462
|
const userMessage = parseAPIError(error);
|
|
426
463
|
throw new Error(userMessage);
|
|
427
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') {
|