snow-ai 0.4.16 → 0.4.17
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/bundle/cli.mjs +477445 -0
- package/bundle/sql-wasm.wasm +0 -0
- package/package.json +31 -26
- package/dist/agents/codebaseIndexAgent.d.ts +0 -102
- package/dist/agents/codebaseIndexAgent.js +0 -641
- package/dist/agents/codebaseReviewAgent.d.ts +0 -61
- package/dist/agents/codebaseReviewAgent.js +0 -301
- package/dist/agents/compactAgent.d.ts +0 -55
- package/dist/agents/compactAgent.js +0 -306
- package/dist/agents/promptOptimizeAgent.d.ts +0 -54
- package/dist/agents/promptOptimizeAgent.js +0 -268
- package/dist/agents/reviewAgent.d.ts +0 -50
- package/dist/agents/reviewAgent.js +0 -265
- package/dist/agents/summaryAgent.d.ts +0 -57
- package/dist/agents/summaryAgent.js +0 -260
- package/dist/api/anthropic.d.ts +0 -44
- package/dist/api/anthropic.js +0 -598
- package/dist/api/chat.d.ts +0 -73
- package/dist/api/chat.js +0 -386
- package/dist/api/embedding.d.ts +0 -34
- package/dist/api/embedding.js +0 -80
- package/dist/api/gemini.d.ts +0 -31
- package/dist/api/gemini.js +0 -445
- package/dist/api/models.d.ts +0 -15
- package/dist/api/models.js +0 -139
- package/dist/api/responses.d.ts +0 -38
- package/dist/api/responses.js +0 -515
- package/dist/api/systemPrompt.d.ts +0 -4
- package/dist/api/systemPrompt.js +0 -408
- package/dist/api/types.d.ts +0 -53
- package/dist/api/types.js +0 -4
- package/dist/app.d.ts +0 -8
- package/dist/app.js +0 -112
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +0 -199
- package/dist/hooks/useAgentPicker.d.ts +0 -14
- package/dist/hooks/useAgentPicker.js +0 -119
- package/dist/hooks/useClipboard.d.ts +0 -4
- package/dist/hooks/useClipboard.js +0 -175
- package/dist/hooks/useCommandHandler.d.ts +0 -35
- package/dist/hooks/useCommandHandler.js +0 -346
- package/dist/hooks/useCommandPanel.d.ts +0 -17
- package/dist/hooks/useCommandPanel.js +0 -114
- package/dist/hooks/useConversation.d.ts +0 -49
- package/dist/hooks/useConversation.js +0 -1052
- package/dist/hooks/useFilePicker.d.ts +0 -18
- package/dist/hooks/useFilePicker.js +0 -224
- package/dist/hooks/useGlobalExit.d.ts +0 -5
- package/dist/hooks/useGlobalExit.js +0 -34
- package/dist/hooks/useGlobalNavigation.d.ts +0 -6
- package/dist/hooks/useGlobalNavigation.js +0 -17
- package/dist/hooks/useHistoryNavigation.d.ts +0 -35
- package/dist/hooks/useHistoryNavigation.js +0 -133
- package/dist/hooks/useInputBuffer.d.ts +0 -6
- package/dist/hooks/useInputBuffer.js +0 -45
- package/dist/hooks/useKeyboardInput.d.ts +0 -80
- package/dist/hooks/useKeyboardInput.js +0 -608
- package/dist/hooks/useSessionManagement.d.ts +0 -10
- package/dist/hooks/useSessionManagement.js +0 -43
- package/dist/hooks/useSessionSave.d.ts +0 -8
- package/dist/hooks/useSessionSave.js +0 -63
- package/dist/hooks/useSnapshotState.d.ts +0 -26
- package/dist/hooks/useSnapshotState.js +0 -28
- package/dist/hooks/useStreamingState.d.ts +0 -33
- package/dist/hooks/useStreamingState.js +0 -105
- package/dist/hooks/useTerminalFocus.d.ts +0 -28
- package/dist/hooks/useTerminalFocus.js +0 -87
- package/dist/hooks/useTerminalSize.d.ts +0 -4
- package/dist/hooks/useTerminalSize.js +0 -20
- package/dist/hooks/useTodoPicker.d.ts +0 -16
- package/dist/hooks/useTodoPicker.js +0 -94
- package/dist/hooks/useToolConfirmation.d.ts +0 -19
- package/dist/hooks/useToolConfirmation.js +0 -61
- package/dist/hooks/useVSCodeState.d.ts +0 -8
- package/dist/hooks/useVSCodeState.js +0 -81
- package/dist/i18n/I18nContext.d.ts +0 -14
- package/dist/i18n/I18nContext.js +0 -24
- package/dist/i18n/index.d.ts +0 -3
- package/dist/i18n/index.js +0 -2
- package/dist/i18n/lang/en.d.ts +0 -2
- package/dist/i18n/lang/en.js +0 -502
- package/dist/i18n/lang/es.d.ts +0 -2
- package/dist/i18n/lang/es.js +0 -502
- package/dist/i18n/lang/ja.d.ts +0 -2
- package/dist/i18n/lang/ja.js +0 -502
- package/dist/i18n/lang/ko.d.ts +0 -2
- package/dist/i18n/lang/ko.js +0 -502
- package/dist/i18n/lang/zh-TW.d.ts +0 -2
- package/dist/i18n/lang/zh-TW.js +0 -502
- package/dist/i18n/lang/zh.d.ts +0 -2
- package/dist/i18n/lang/zh.js +0 -502
- package/dist/i18n/translations.d.ts +0 -2
- package/dist/i18n/translations.js +0 -14
- package/dist/i18n/types.d.ts +0 -478
- package/dist/i18n/types.js +0 -1
- package/dist/mcp/aceCodeSearch.d.ts +0 -247
- package/dist/mcp/aceCodeSearch.js +0 -1058
- package/dist/mcp/bash.d.ts +0 -50
- package/dist/mcp/bash.js +0 -153
- package/dist/mcp/codebaseSearch.d.ts +0 -44
- package/dist/mcp/codebaseSearch.js +0 -275
- package/dist/mcp/filesystem.d.ts +0 -392
- package/dist/mcp/filesystem.js +0 -1445
- package/dist/mcp/ideDiagnostics.d.ts +0 -36
- package/dist/mcp/ideDiagnostics.js +0 -90
- package/dist/mcp/notebook.d.ts +0 -10
- package/dist/mcp/notebook.js +0 -367
- package/dist/mcp/subagent.d.ts +0 -37
- package/dist/mcp/subagent.js +0 -113
- package/dist/mcp/todo.d.ts +0 -46
- package/dist/mcp/todo.js +0 -511
- package/dist/mcp/types/aceCodeSearch.types.d.ts +0 -92
- package/dist/mcp/types/aceCodeSearch.types.js +0 -4
- package/dist/mcp/types/bash.types.d.ts +0 -13
- package/dist/mcp/types/bash.types.js +0 -4
- package/dist/mcp/types/filesystem.types.d.ts +0 -210
- package/dist/mcp/types/filesystem.types.js +0 -27
- package/dist/mcp/types/todo.types.d.ts +0 -27
- package/dist/mcp/types/todo.types.js +0 -4
- package/dist/mcp/types/websearch.types.d.ts +0 -30
- package/dist/mcp/types/websearch.types.js +0 -4
- package/dist/mcp/utils/aceCodeSearch/filesystem.utils.d.ts +0 -34
- package/dist/mcp/utils/aceCodeSearch/filesystem.utils.js +0 -146
- package/dist/mcp/utils/aceCodeSearch/language.utils.d.ts +0 -14
- package/dist/mcp/utils/aceCodeSearch/language.utils.js +0 -418
- package/dist/mcp/utils/aceCodeSearch/search.utils.d.ts +0 -31
- package/dist/mcp/utils/aceCodeSearch/search.utils.js +0 -136
- package/dist/mcp/utils/aceCodeSearch/symbol.utils.d.ts +0 -20
- package/dist/mcp/utils/aceCodeSearch/symbol.utils.js +0 -141
- package/dist/mcp/utils/bash/security.utils.d.ts +0 -20
- package/dist/mcp/utils/bash/security.utils.js +0 -34
- package/dist/mcp/utils/filesystem/batch-operations.utils.d.ts +0 -39
- package/dist/mcp/utils/filesystem/batch-operations.utils.js +0 -182
- package/dist/mcp/utils/filesystem/code-analysis.utils.d.ts +0 -18
- package/dist/mcp/utils/filesystem/code-analysis.utils.js +0 -165
- package/dist/mcp/utils/filesystem/match-finder.utils.d.ts +0 -16
- package/dist/mcp/utils/filesystem/match-finder.utils.js +0 -85
- package/dist/mcp/utils/filesystem/office-parser.utils.d.ts +0 -43
- package/dist/mcp/utils/filesystem/office-parser.utils.js +0 -163
- package/dist/mcp/utils/filesystem/path-fixer.utils.d.ts +0 -7
- package/dist/mcp/utils/filesystem/path-fixer.utils.js +0 -60
- package/dist/mcp/utils/filesystem/similarity.utils.d.ts +0 -22
- package/dist/mcp/utils/filesystem/similarity.utils.js +0 -75
- package/dist/mcp/utils/todo/date.utils.d.ts +0 -9
- package/dist/mcp/utils/todo/date.utils.js +0 -14
- package/dist/mcp/utils/websearch/browser.utils.d.ts +0 -8
- package/dist/mcp/utils/websearch/browser.utils.js +0 -58
- package/dist/mcp/utils/websearch/text.utils.d.ts +0 -16
- package/dist/mcp/utils/websearch/text.utils.js +0 -39
- package/dist/mcp/websearch.d.ts +0 -88
- package/dist/mcp/websearch.js +0 -375
- package/dist/test/logger-test.d.ts +0 -1
- package/dist/test/logger-test.js +0 -7
- package/dist/types/index.d.ts +0 -15
- package/dist/types/index.js +0 -1
- package/dist/ui/components/AgentPickerPanel.d.ts +0 -10
- package/dist/ui/components/AgentPickerPanel.js +0 -74
- package/dist/ui/components/ChatInput.d.ts +0 -46
- package/dist/ui/components/ChatInput.js +0 -384
- package/dist/ui/components/CommandPanel.d.ts +0 -15
- package/dist/ui/components/CommandPanel.js +0 -80
- package/dist/ui/components/DiffViewer.d.ts +0 -11
- package/dist/ui/components/DiffViewer.js +0 -178
- package/dist/ui/components/FileList.d.ts +0 -15
- package/dist/ui/components/FileList.js +0 -360
- package/dist/ui/components/FileRollbackConfirmation.d.ts +0 -8
- package/dist/ui/components/FileRollbackConfirmation.js +0 -108
- package/dist/ui/components/HelpPanel.d.ts +0 -2
- package/dist/ui/components/HelpPanel.js +0 -67
- package/dist/ui/components/MCPInfoPanel.d.ts +0 -2
- package/dist/ui/components/MCPInfoPanel.js +0 -108
- package/dist/ui/components/MCPInfoScreen.d.ts +0 -7
- package/dist/ui/components/MCPInfoScreen.js +0 -115
- package/dist/ui/components/MarkdownRenderer.d.ts +0 -6
- package/dist/ui/components/MarkdownRenderer.js +0 -70
- package/dist/ui/components/Menu.d.ts +0 -17
- package/dist/ui/components/Menu.js +0 -88
- package/dist/ui/components/MessageList.d.ts +0 -56
- package/dist/ui/components/MessageList.js +0 -97
- package/dist/ui/components/PendingMessages.d.ts +0 -13
- package/dist/ui/components/PendingMessages.js +0 -29
- package/dist/ui/components/PendingToolCalls.d.ts +0 -11
- package/dist/ui/components/PendingToolCalls.js +0 -35
- package/dist/ui/components/ScrollableSelectInput.d.ts +0 -29
- package/dist/ui/components/ScrollableSelectInput.js +0 -157
- package/dist/ui/components/SessionListPanel.d.ts +0 -7
- package/dist/ui/components/SessionListPanel.js +0 -175
- package/dist/ui/components/SessionListScreen.d.ts +0 -7
- package/dist/ui/components/SessionListScreen.js +0 -217
- package/dist/ui/components/SessionListScreenWrapper.d.ts +0 -7
- package/dist/ui/components/SessionListScreenWrapper.js +0 -14
- package/dist/ui/components/ShimmerText.d.ts +0 -9
- package/dist/ui/components/ShimmerText.js +0 -30
- package/dist/ui/components/TodoPickerPanel.d.ts +0 -14
- package/dist/ui/components/TodoPickerPanel.js +0 -119
- package/dist/ui/components/TodoTree.d.ts +0 -15
- package/dist/ui/components/TodoTree.js +0 -60
- package/dist/ui/components/ToolConfirmation.d.ts +0 -21
- package/dist/ui/components/ToolConfirmation.js +0 -204
- package/dist/ui/components/ToolResultPreview.d.ts +0 -13
- package/dist/ui/components/ToolResultPreview.js +0 -337
- package/dist/ui/components/UsagePanel.d.ts +0 -2
- package/dist/ui/components/UsagePanel.js +0 -394
- package/dist/ui/contexts/ThemeContext.d.ts +0 -13
- package/dist/ui/contexts/ThemeContext.js +0 -28
- package/dist/ui/pages/ChatScreen.d.ts +0 -6
- package/dist/ui/pages/ChatScreen.js +0 -1519
- package/dist/ui/pages/CodeBaseConfigScreen.d.ts +0 -8
- package/dist/ui/pages/CodeBaseConfigScreen.js +0 -350
- package/dist/ui/pages/ConfigScreen.d.ts +0 -8
- package/dist/ui/pages/ConfigScreen.js +0 -1101
- package/dist/ui/pages/CustomHeadersScreen.d.ts +0 -6
- package/dist/ui/pages/CustomHeadersScreen.js +0 -502
- package/dist/ui/pages/HeadlessModeScreen.d.ts +0 -7
- package/dist/ui/pages/HeadlessModeScreen.js +0 -381
- package/dist/ui/pages/LanguageSettingsScreen.d.ts +0 -7
- package/dist/ui/pages/LanguageSettingsScreen.js +0 -91
- package/dist/ui/pages/MCPConfigScreen.d.ts +0 -6
- package/dist/ui/pages/MCPConfigScreen.js +0 -55
- package/dist/ui/pages/ProxyConfigScreen.d.ts +0 -8
- package/dist/ui/pages/ProxyConfigScreen.js +0 -149
- package/dist/ui/pages/SensitiveCommandConfigScreen.d.ts +0 -7
- package/dist/ui/pages/SensitiveCommandConfigScreen.js +0 -271
- package/dist/ui/pages/SubAgentConfigScreen.d.ts +0 -9
- package/dist/ui/pages/SubAgentConfigScreen.js +0 -435
- package/dist/ui/pages/SubAgentListScreen.d.ts +0 -9
- package/dist/ui/pages/SubAgentListScreen.js +0 -131
- package/dist/ui/pages/SystemPromptConfigScreen.d.ts +0 -6
- package/dist/ui/pages/SystemPromptConfigScreen.js +0 -326
- package/dist/ui/pages/ThemeSettingsScreen.d.ts +0 -7
- package/dist/ui/pages/ThemeSettingsScreen.js +0 -106
- package/dist/ui/pages/WelcomeScreen.d.ts +0 -7
- package/dist/ui/pages/WelcomeScreen.js +0 -217
- package/dist/ui/themes/index.d.ts +0 -23
- package/dist/ui/themes/index.js +0 -140
- package/dist/utils/apiConfig.d.ts +0 -126
- package/dist/utils/apiConfig.js +0 -423
- package/dist/utils/autoCompress.d.ts +0 -15
- package/dist/utils/autoCompress.js +0 -24
- package/dist/utils/chatExporter.d.ts +0 -9
- package/dist/utils/chatExporter.js +0 -118
- package/dist/utils/checkpointManager.d.ts +0 -74
- package/dist/utils/checkpointManager.js +0 -181
- package/dist/utils/codebaseConfig.d.ts +0 -16
- package/dist/utils/codebaseConfig.js +0 -67
- package/dist/utils/codebaseDatabase.d.ts +0 -102
- package/dist/utils/codebaseDatabase.js +0 -333
- package/dist/utils/codebaseSearchEvents.d.ts +0 -16
- package/dist/utils/codebaseSearchEvents.js +0 -13
- package/dist/utils/commandExecutor.d.ts +0 -13
- package/dist/utils/commandExecutor.js +0 -26
- package/dist/utils/commands/agent.d.ts +0 -2
- package/dist/utils/commands/agent.js +0 -12
- package/dist/utils/commands/clear.d.ts +0 -2
- package/dist/utils/commands/clear.js +0 -12
- package/dist/utils/commands/compact.d.ts +0 -2
- package/dist/utils/commands/compact.js +0 -12
- package/dist/utils/commands/export.d.ts +0 -2
- package/dist/utils/commands/export.js +0 -12
- package/dist/utils/commands/help.d.ts +0 -2
- package/dist/utils/commands/help.js +0 -11
- package/dist/utils/commands/home.d.ts +0 -2
- package/dist/utils/commands/home.js +0 -34
- package/dist/utils/commands/ide.d.ts +0 -2
- package/dist/utils/commands/ide.js +0 -32
- package/dist/utils/commands/init.d.ts +0 -2
- package/dist/utils/commands/init.js +0 -93
- package/dist/utils/commands/mcp.d.ts +0 -2
- package/dist/utils/commands/mcp.js +0 -12
- package/dist/utils/commands/resume.d.ts +0 -2
- package/dist/utils/commands/resume.js +0 -12
- package/dist/utils/commands/review.d.ts +0 -2
- package/dist/utils/commands/review.js +0 -81
- package/dist/utils/commands/role.d.ts +0 -2
- package/dist/utils/commands/role.js +0 -37
- package/dist/utils/commands/todoPicker.d.ts +0 -2
- package/dist/utils/commands/todoPicker.js +0 -12
- package/dist/utils/commands/usage.d.ts +0 -2
- package/dist/utils/commands/usage.js +0 -12
- package/dist/utils/commands/yolo.d.ts +0 -2
- package/dist/utils/commands/yolo.js +0 -12
- package/dist/utils/configManager.d.ts +0 -45
- package/dist/utils/configManager.js +0 -303
- package/dist/utils/contextCompressor.d.ts +0 -16
- package/dist/utils/contextCompressor.js +0 -334
- package/dist/utils/devMode.d.ts +0 -13
- package/dist/utils/devMode.js +0 -54
- package/dist/utils/escapeHandler.d.ts +0 -79
- package/dist/utils/escapeHandler.js +0 -153
- package/dist/utils/fileDialog.d.ts +0 -9
- package/dist/utils/fileDialog.js +0 -74
- package/dist/utils/fileUtils.d.ts +0 -40
- package/dist/utils/fileUtils.js +0 -185
- package/dist/utils/historyManager.d.ts +0 -45
- package/dist/utils/historyManager.js +0 -159
- package/dist/utils/incrementalSnapshot.d.ts +0 -109
- package/dist/utils/incrementalSnapshot.js +0 -383
- package/dist/utils/index.d.ts +0 -11
- package/dist/utils/index.js +0 -18
- package/dist/utils/languageConfig.d.ts +0 -21
- package/dist/utils/languageConfig.js +0 -61
- package/dist/utils/logger.d.ts +0 -37
- package/dist/utils/logger.js +0 -122
- package/dist/utils/mcpToolsManager.d.ts +0 -52
- package/dist/utils/mcpToolsManager.js +0 -878
- package/dist/utils/messageFormatter.d.ts +0 -12
- package/dist/utils/messageFormatter.js +0 -115
- package/dist/utils/notebookManager.d.ts +0 -59
- package/dist/utils/notebookManager.js +0 -213
- package/dist/utils/patch-highlight.d.ts +0 -5
- package/dist/utils/patch-highlight.js +0 -23
- package/dist/utils/processManager.d.ts +0 -27
- package/dist/utils/processManager.js +0 -75
- package/dist/utils/proxyUtils.d.ts +0 -15
- package/dist/utils/proxyUtils.js +0 -50
- package/dist/utils/resourceMonitor.d.ts +0 -65
- package/dist/utils/resourceMonitor.js +0 -175
- package/dist/utils/retryUtils.d.ts +0 -49
- package/dist/utils/retryUtils.js +0 -303
- package/dist/utils/sensitiveCommandManager.d.ts +0 -53
- package/dist/utils/sensitiveCommandManager.js +0 -308
- package/dist/utils/sessionConverter.d.ts +0 -7
- package/dist/utils/sessionConverter.js +0 -306
- package/dist/utils/sessionManager.d.ts +0 -53
- package/dist/utils/sessionManager.js +0 -371
- package/dist/utils/subAgentConfig.d.ts +0 -50
- package/dist/utils/subAgentConfig.js +0 -221
- package/dist/utils/subAgentExecutor.d.ts +0 -40
- package/dist/utils/subAgentExecutor.js +0 -434
- package/dist/utils/terminal.d.ts +0 -5
- package/dist/utils/terminal.js +0 -13
- package/dist/utils/textBuffer.d.ts +0 -99
- package/dist/utils/textBuffer.js +0 -547
- package/dist/utils/textUtils.d.ts +0 -37
- package/dist/utils/textUtils.js +0 -102
- package/dist/utils/themeConfig.d.ts +0 -21
- package/dist/utils/themeConfig.js +0 -61
- package/dist/utils/todoPreprocessor.d.ts +0 -5
- package/dist/utils/todoPreprocessor.js +0 -18
- package/dist/utils/todoScanner.d.ts +0 -8
- package/dist/utils/todoScanner.js +0 -148
- package/dist/utils/toolDisplayConfig.d.ts +0 -16
- package/dist/utils/toolDisplayConfig.js +0 -47
- package/dist/utils/toolExecutor.d.ts +0 -37
- package/dist/utils/toolExecutor.js +0 -224
- package/dist/utils/usageLogger.d.ts +0 -11
- package/dist/utils/usageLogger.js +0 -114
- package/dist/utils/vscodeConnection.d.ts +0 -76
- package/dist/utils/vscodeConnection.js +0 -430
- package/dist/utils/workspaceSnapshot.d.ts +0 -63
- package/dist/utils/workspaceSnapshot.js +0 -300
package/dist/mcp/bash.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { CommandExecutionResult } from './types/bash.types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Terminal Command Execution Service
|
|
4
|
-
* Executes terminal commands directly using the system's default shell
|
|
5
|
-
*/
|
|
6
|
-
export declare class TerminalCommandService {
|
|
7
|
-
private workingDirectory;
|
|
8
|
-
private maxOutputLength;
|
|
9
|
-
constructor(workingDirectory?: string, maxOutputLength?: number);
|
|
10
|
-
/**
|
|
11
|
-
* Execute a terminal command in the working directory
|
|
12
|
-
* @param command - The command to execute (e.g., "npm -v", "git status")
|
|
13
|
-
* @param timeout - Timeout in milliseconds (default: 30000ms = 30s)
|
|
14
|
-
* @returns Execution result including stdout, stderr, and exit code
|
|
15
|
-
* @throws Error if command execution fails critically
|
|
16
|
-
*/
|
|
17
|
-
executeCommand(command: string, timeout?: number): Promise<CommandExecutionResult>;
|
|
18
|
-
/**
|
|
19
|
-
* Get current working directory
|
|
20
|
-
* @returns Current working directory path
|
|
21
|
-
*/
|
|
22
|
-
getWorkingDirectory(): string;
|
|
23
|
-
/**
|
|
24
|
-
* Change working directory for future commands
|
|
25
|
-
* @param newPath - New working directory path
|
|
26
|
-
* @throws Error if path doesn't exist or is not a directory
|
|
27
|
-
*/
|
|
28
|
-
setWorkingDirectory(newPath: string): void;
|
|
29
|
-
}
|
|
30
|
-
export declare const terminalService: TerminalCommandService;
|
|
31
|
-
export declare const mcpTools: {
|
|
32
|
-
name: string;
|
|
33
|
-
description: string;
|
|
34
|
-
inputSchema: {
|
|
35
|
-
type: string;
|
|
36
|
-
properties: {
|
|
37
|
-
command: {
|
|
38
|
-
type: string;
|
|
39
|
-
description: string;
|
|
40
|
-
};
|
|
41
|
-
timeout: {
|
|
42
|
-
type: string;
|
|
43
|
-
description: string;
|
|
44
|
-
default: number;
|
|
45
|
-
maximum: number;
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
required: string[];
|
|
49
|
-
};
|
|
50
|
-
}[];
|
package/dist/mcp/bash.js
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { exec } from 'child_process';
|
|
2
|
-
// Utility functions
|
|
3
|
-
import { isDangerousCommand, truncateOutput, } from './utils/bash/security.utils.js';
|
|
4
|
-
import { processManager } from '../utils/processManager.js';
|
|
5
|
-
/**
|
|
6
|
-
* Terminal Command Execution Service
|
|
7
|
-
* Executes terminal commands directly using the system's default shell
|
|
8
|
-
*/
|
|
9
|
-
export class TerminalCommandService {
|
|
10
|
-
constructor(workingDirectory = process.cwd(), maxOutputLength = 10000) {
|
|
11
|
-
Object.defineProperty(this, "workingDirectory", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
configurable: true,
|
|
14
|
-
writable: true,
|
|
15
|
-
value: void 0
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(this, "maxOutputLength", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true,
|
|
21
|
-
value: void 0
|
|
22
|
-
});
|
|
23
|
-
this.workingDirectory = workingDirectory;
|
|
24
|
-
this.maxOutputLength = maxOutputLength;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Execute a terminal command in the working directory
|
|
28
|
-
* @param command - The command to execute (e.g., "npm -v", "git status")
|
|
29
|
-
* @param timeout - Timeout in milliseconds (default: 30000ms = 30s)
|
|
30
|
-
* @returns Execution result including stdout, stderr, and exit code
|
|
31
|
-
* @throws Error if command execution fails critically
|
|
32
|
-
*/
|
|
33
|
-
async executeCommand(command, timeout = 30000) {
|
|
34
|
-
const executedAt = new Date().toISOString();
|
|
35
|
-
try {
|
|
36
|
-
// Security check: reject potentially dangerous commands
|
|
37
|
-
if (isDangerousCommand(command)) {
|
|
38
|
-
throw new Error(`Dangerous command detected and blocked: ${command.slice(0, 50)}`);
|
|
39
|
-
}
|
|
40
|
-
// Execute command using system default shell and register the process
|
|
41
|
-
const childProcess = exec(command, {
|
|
42
|
-
cwd: this.workingDirectory,
|
|
43
|
-
timeout,
|
|
44
|
-
maxBuffer: this.maxOutputLength,
|
|
45
|
-
env: {
|
|
46
|
-
...process.env,
|
|
47
|
-
...(process.platform !== 'win32' && {
|
|
48
|
-
LANG: 'en_US.UTF-8',
|
|
49
|
-
LC_ALL: 'en_US.UTF-8',
|
|
50
|
-
}),
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
// Register child process for cleanup
|
|
54
|
-
processManager.register(childProcess);
|
|
55
|
-
// Convert to promise
|
|
56
|
-
const { stdout, stderr } = await new Promise((resolve, reject) => {
|
|
57
|
-
let stdoutData = '';
|
|
58
|
-
let stderrData = '';
|
|
59
|
-
childProcess.stdout?.on('data', chunk => {
|
|
60
|
-
stdoutData += chunk;
|
|
61
|
-
});
|
|
62
|
-
childProcess.stderr?.on('data', chunk => {
|
|
63
|
-
stderrData += chunk;
|
|
64
|
-
});
|
|
65
|
-
childProcess.on('error', reject);
|
|
66
|
-
childProcess.on('close', (code, signal) => {
|
|
67
|
-
if (signal) {
|
|
68
|
-
// Process was killed by signal (e.g., timeout, manual kill)
|
|
69
|
-
// CRITICAL: Still preserve stdout/stderr for debugging
|
|
70
|
-
const error = new Error(`Process killed by signal ${signal}`);
|
|
71
|
-
error.code = code || 1;
|
|
72
|
-
error.stdout = stdoutData;
|
|
73
|
-
error.stderr = stderrData;
|
|
74
|
-
error.signal = signal;
|
|
75
|
-
reject(error);
|
|
76
|
-
}
|
|
77
|
-
else if (code === 0) {
|
|
78
|
-
resolve({ stdout: stdoutData, stderr: stderrData });
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
const error = new Error(`Process exited with code ${code}`);
|
|
82
|
-
error.code = code;
|
|
83
|
-
error.stdout = stdoutData;
|
|
84
|
-
error.stderr = stderrData;
|
|
85
|
-
reject(error);
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
// Truncate output if too long
|
|
90
|
-
return {
|
|
91
|
-
stdout: truncateOutput(stdout, this.maxOutputLength),
|
|
92
|
-
stderr: truncateOutput(stderr, this.maxOutputLength),
|
|
93
|
-
exitCode: 0,
|
|
94
|
-
command,
|
|
95
|
-
executedAt,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
// Handle execution errors (non-zero exit codes)
|
|
100
|
-
if (error.code === 'ETIMEDOUT') {
|
|
101
|
-
throw new Error(`Command timed out after ${timeout}ms: ${command}`);
|
|
102
|
-
}
|
|
103
|
-
// For non-zero exit codes, still return the output
|
|
104
|
-
return {
|
|
105
|
-
stdout: truncateOutput(error.stdout || '', this.maxOutputLength),
|
|
106
|
-
stderr: truncateOutput(error.stderr || error.message || '', this.maxOutputLength),
|
|
107
|
-
exitCode: error.code || 1,
|
|
108
|
-
command,
|
|
109
|
-
executedAt,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Get current working directory
|
|
115
|
-
* @returns Current working directory path
|
|
116
|
-
*/
|
|
117
|
-
getWorkingDirectory() {
|
|
118
|
-
return this.workingDirectory;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Change working directory for future commands
|
|
122
|
-
* @param newPath - New working directory path
|
|
123
|
-
* @throws Error if path doesn't exist or is not a directory
|
|
124
|
-
*/
|
|
125
|
-
setWorkingDirectory(newPath) {
|
|
126
|
-
this.workingDirectory = newPath;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
// Export a default instance
|
|
130
|
-
export const terminalService = new TerminalCommandService();
|
|
131
|
-
// MCP Tool definitions
|
|
132
|
-
export const mcpTools = [
|
|
133
|
-
{
|
|
134
|
-
name: 'terminal-execute',
|
|
135
|
-
description: 'Execute terminal commands like npm, git, build scripts, etc. BEST PRACTICE: For file modifications, prefer filesystem-edit/filesystem-create tools first - they are more reliable and provide better error handling. Terminal commands (sed, awk, echo >file, cat <<EOF) can be used for file editing, but only as a fallback option when filesystem tools are not suitable. Primary use cases: (1) Running build/test/lint scripts, (2) Version control operations, (3) Package management, (4) System utilities, (5) Fallback file editing when needed.',
|
|
136
|
-
inputSchema: {
|
|
137
|
-
type: 'object',
|
|
138
|
-
properties: {
|
|
139
|
-
command: {
|
|
140
|
-
type: 'string',
|
|
141
|
-
description: 'Terminal command to execute. For file editing, filesystem tools are generally preferred.',
|
|
142
|
-
},
|
|
143
|
-
timeout: {
|
|
144
|
-
type: 'number',
|
|
145
|
-
description: 'Timeout in milliseconds (default: 30000)',
|
|
146
|
-
default: 30000,
|
|
147
|
-
maximum: 300000,
|
|
148
|
-
},
|
|
149
|
-
},
|
|
150
|
-
required: ['command'],
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
];
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Codebase Search Service
|
|
3
|
-
* Provides semantic search capabilities for the codebase using embeddings
|
|
4
|
-
*/
|
|
5
|
-
declare class CodebaseSearchService {
|
|
6
|
-
/**
|
|
7
|
-
* Check if codebase index is available and has data
|
|
8
|
-
*/
|
|
9
|
-
private isCodebaseIndexAvailable;
|
|
10
|
-
/**
|
|
11
|
-
* Calculate cosine similarity between two vectors
|
|
12
|
-
*/
|
|
13
|
-
private cosineSimilarity;
|
|
14
|
-
/**
|
|
15
|
-
* Search codebase using semantic similarity with retry logic
|
|
16
|
-
*/
|
|
17
|
-
search(query: string, topN?: number): Promise<any>;
|
|
18
|
-
}
|
|
19
|
-
export declare const codebaseSearchService: CodebaseSearchService;
|
|
20
|
-
/**
|
|
21
|
-
* MCP Tools Definition
|
|
22
|
-
*/
|
|
23
|
-
export declare const mcpTools: {
|
|
24
|
-
name: string;
|
|
25
|
-
description: string;
|
|
26
|
-
inputSchema: {
|
|
27
|
-
type: string;
|
|
28
|
-
properties: {
|
|
29
|
-
query: {
|
|
30
|
-
type: string;
|
|
31
|
-
description: string;
|
|
32
|
-
};
|
|
33
|
-
topN: {
|
|
34
|
-
type: string;
|
|
35
|
-
description: string;
|
|
36
|
-
default: number;
|
|
37
|
-
minimum: number;
|
|
38
|
-
maximum: number;
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
required: string[];
|
|
42
|
-
};
|
|
43
|
-
}[];
|
|
44
|
-
export {};
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import { CodebaseDatabase } from '../utils/codebaseDatabase.js';
|
|
2
|
-
import { createEmbedding } from '../api/embedding.js';
|
|
3
|
-
import { logger } from '../utils/logger.js';
|
|
4
|
-
import { codebaseReviewAgent } from '../agents/codebaseReviewAgent.js';
|
|
5
|
-
import { codebaseSearchEvents } from '../utils/codebaseSearchEvents.js';
|
|
6
|
-
import { loadCodebaseConfig } from '../utils/codebaseConfig.js';
|
|
7
|
-
import path from 'node:path';
|
|
8
|
-
import fs from 'node:fs';
|
|
9
|
-
/**
|
|
10
|
-
* Codebase Search Service
|
|
11
|
-
* Provides semantic search capabilities for the codebase using embeddings
|
|
12
|
-
*/
|
|
13
|
-
class CodebaseSearchService {
|
|
14
|
-
/**
|
|
15
|
-
* Check if codebase index is available and has data
|
|
16
|
-
*/
|
|
17
|
-
isCodebaseIndexAvailable() {
|
|
18
|
-
try {
|
|
19
|
-
const projectRoot = process.cwd();
|
|
20
|
-
const dbPath = path.join(projectRoot, '.snow', 'codebase', 'embeddings.db');
|
|
21
|
-
// Check if database file exists
|
|
22
|
-
if (!fs.existsSync(dbPath)) {
|
|
23
|
-
return {
|
|
24
|
-
available: false,
|
|
25
|
-
reason: 'Codebase index not found. Please run codebase indexing first.',
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
// Initialize database and check for data
|
|
29
|
-
const db = new CodebaseDatabase(projectRoot);
|
|
30
|
-
db.initialize();
|
|
31
|
-
const totalChunks = db.getTotalChunks();
|
|
32
|
-
db.close();
|
|
33
|
-
if (totalChunks === 0) {
|
|
34
|
-
return {
|
|
35
|
-
available: false,
|
|
36
|
-
reason: 'Codebase index is empty. Please run indexing to build the index.',
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
return { available: true };
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
logger.error('Error checking codebase index availability:', error);
|
|
43
|
-
return {
|
|
44
|
-
available: false,
|
|
45
|
-
reason: `Error checking codebase index: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Calculate cosine similarity between two vectors
|
|
51
|
-
*/
|
|
52
|
-
cosineSimilarity(a, b) {
|
|
53
|
-
if (a.length !== b.length) {
|
|
54
|
-
throw new Error('Vectors must have same length');
|
|
55
|
-
}
|
|
56
|
-
let dotProduct = 0;
|
|
57
|
-
let normA = 0;
|
|
58
|
-
let normB = 0;
|
|
59
|
-
for (let i = 0; i < a.length; i++) {
|
|
60
|
-
dotProduct += a[i] * b[i];
|
|
61
|
-
normA += a[i] * a[i];
|
|
62
|
-
normB += b[i] * b[i];
|
|
63
|
-
}
|
|
64
|
-
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Search codebase using semantic similarity with retry logic
|
|
68
|
-
*/
|
|
69
|
-
async search(query, topN = 10) {
|
|
70
|
-
// Load codebase config
|
|
71
|
-
const config = loadCodebaseConfig();
|
|
72
|
-
const enableAgentReview = config.enableAgentReview;
|
|
73
|
-
// Check if codebase index is available
|
|
74
|
-
const { available, reason } = this.isCodebaseIndexAvailable();
|
|
75
|
-
if (!available) {
|
|
76
|
-
return {
|
|
77
|
-
error: reason,
|
|
78
|
-
results: [],
|
|
79
|
-
totalResults: 0,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
const MAX_SEARCH_RETRIES = 3;
|
|
83
|
-
const MIN_RESULTS_THRESHOLD = Math.ceil(topN * 0.5); // 50% of topN
|
|
84
|
-
try {
|
|
85
|
-
const projectRoot = process.cwd();
|
|
86
|
-
const db = new CodebaseDatabase(projectRoot);
|
|
87
|
-
db.initialize();
|
|
88
|
-
const totalChunks = db.getTotalChunks();
|
|
89
|
-
let lastResults = null;
|
|
90
|
-
let searchAttempt = 0;
|
|
91
|
-
let currentTopN = topN;
|
|
92
|
-
// Retry loop: if results are too few, increase search range and retry
|
|
93
|
-
while (searchAttempt < MAX_SEARCH_RETRIES) {
|
|
94
|
-
searchAttempt++;
|
|
95
|
-
// Emit search event (only if agent review is enabled)
|
|
96
|
-
if (enableAgentReview) {
|
|
97
|
-
codebaseSearchEvents.emitSearchEvent({
|
|
98
|
-
type: searchAttempt === 1 ? 'search-start' : 'search-retry',
|
|
99
|
-
attempt: searchAttempt,
|
|
100
|
-
maxAttempts: MAX_SEARCH_RETRIES,
|
|
101
|
-
currentTopN,
|
|
102
|
-
message: `Searching top ${currentTopN} code chunks...`,
|
|
103
|
-
query,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
// Generate embedding for query
|
|
107
|
-
logger.info(`Search attempt ${searchAttempt}/${MAX_SEARCH_RETRIES}: Searching top ${currentTopN} chunks for query: "${query}"`);
|
|
108
|
-
const queryEmbedding = await createEmbedding(query);
|
|
109
|
-
// Search similar chunks
|
|
110
|
-
const results = db.searchSimilar(queryEmbedding, currentTopN);
|
|
111
|
-
// Format results with similarity scores and full content
|
|
112
|
-
const formattedResults = results.map((chunk, index) => {
|
|
113
|
-
const score = this.cosineSimilarity(queryEmbedding, chunk.embedding);
|
|
114
|
-
const scorePercent = (score * 100).toFixed(2);
|
|
115
|
-
return {
|
|
116
|
-
rank: index + 1,
|
|
117
|
-
filePath: chunk.filePath,
|
|
118
|
-
startLine: chunk.startLine,
|
|
119
|
-
endLine: chunk.endLine,
|
|
120
|
-
content: chunk.content,
|
|
121
|
-
similarityScore: scorePercent,
|
|
122
|
-
location: `${chunk.filePath}:${chunk.startLine}-${chunk.endLine}`,
|
|
123
|
-
};
|
|
124
|
-
});
|
|
125
|
-
// Use review agent to filter irrelevant results (if enabled)
|
|
126
|
-
let finalResults;
|
|
127
|
-
let reviewFailed = false;
|
|
128
|
-
let removedCount = 0;
|
|
129
|
-
let suggestions = [];
|
|
130
|
-
if (enableAgentReview) {
|
|
131
|
-
// Emit reviewing event
|
|
132
|
-
codebaseSearchEvents.emitSearchEvent({
|
|
133
|
-
type: 'search-retry',
|
|
134
|
-
attempt: searchAttempt,
|
|
135
|
-
maxAttempts: MAX_SEARCH_RETRIES,
|
|
136
|
-
currentTopN,
|
|
137
|
-
message: `Reviewing ${formattedResults.length} results with AI...`,
|
|
138
|
-
query,
|
|
139
|
-
});
|
|
140
|
-
logger.info(`Reviewing ${formattedResults.length} search results (attempt ${searchAttempt})`);
|
|
141
|
-
const reviewResult = await codebaseReviewAgent.reviewResults(query, formattedResults);
|
|
142
|
-
finalResults = reviewResult.filteredResults;
|
|
143
|
-
reviewFailed = reviewResult.reviewFailed || false;
|
|
144
|
-
removedCount = reviewResult.removedCount;
|
|
145
|
-
suggestions = reviewResult.suggestions || [];
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
// Skip agent review, use all formatted results
|
|
149
|
-
finalResults = formattedResults;
|
|
150
|
-
reviewFailed = false;
|
|
151
|
-
removedCount = 0;
|
|
152
|
-
suggestions = [];
|
|
153
|
-
// When agent review is disabled, we don't need to retry
|
|
154
|
-
// Just return results immediately
|
|
155
|
-
logger.info(`Agent review disabled, returning all ${finalResults.length} search results`);
|
|
156
|
-
}
|
|
157
|
-
// Store current results as last results
|
|
158
|
-
lastResults = {
|
|
159
|
-
query,
|
|
160
|
-
totalChunks,
|
|
161
|
-
originalResultsCount: formattedResults.length,
|
|
162
|
-
resultsCount: finalResults.length,
|
|
163
|
-
removedCount,
|
|
164
|
-
reviewFailed,
|
|
165
|
-
results: finalResults,
|
|
166
|
-
suggestions,
|
|
167
|
-
searchAttempts: searchAttempt,
|
|
168
|
-
};
|
|
169
|
-
// If agent review is disabled, return immediately (no need to retry)
|
|
170
|
-
if (!enableAgentReview) {
|
|
171
|
-
// Emit search complete event
|
|
172
|
-
codebaseSearchEvents.emitSearchEvent({
|
|
173
|
-
type: 'search-complete',
|
|
174
|
-
attempt: searchAttempt,
|
|
175
|
-
maxAttempts: MAX_SEARCH_RETRIES,
|
|
176
|
-
currentTopN,
|
|
177
|
-
message: `Found ${finalResults.length} results`,
|
|
178
|
-
query,
|
|
179
|
-
});
|
|
180
|
-
db.close();
|
|
181
|
-
return lastResults;
|
|
182
|
-
}
|
|
183
|
-
// If review failed, return immediately (no point retrying)
|
|
184
|
-
if (reviewFailed) {
|
|
185
|
-
logger.info('Review failed, returning all results without retry');
|
|
186
|
-
// Emit search complete event
|
|
187
|
-
codebaseSearchEvents.emitSearchEvent({
|
|
188
|
-
type: 'search-complete',
|
|
189
|
-
attempt: searchAttempt,
|
|
190
|
-
maxAttempts: MAX_SEARCH_RETRIES,
|
|
191
|
-
currentTopN,
|
|
192
|
-
message: 'Review failed, returning all results',
|
|
193
|
-
query,
|
|
194
|
-
});
|
|
195
|
-
db.close();
|
|
196
|
-
return lastResults;
|
|
197
|
-
}
|
|
198
|
-
// Check if we have enough results
|
|
199
|
-
if (finalResults.length >= MIN_RESULTS_THRESHOLD) {
|
|
200
|
-
logger.info(`Found ${finalResults.length} results (>= ${MIN_RESULTS_THRESHOLD} threshold), search complete`);
|
|
201
|
-
// Emit search complete event
|
|
202
|
-
codebaseSearchEvents.emitSearchEvent({
|
|
203
|
-
type: 'search-complete',
|
|
204
|
-
attempt: searchAttempt,
|
|
205
|
-
maxAttempts: MAX_SEARCH_RETRIES,
|
|
206
|
-
currentTopN,
|
|
207
|
-
message: `Found ${finalResults.length} relevant results`,
|
|
208
|
-
query,
|
|
209
|
-
});
|
|
210
|
-
db.close();
|
|
211
|
-
return lastResults;
|
|
212
|
-
}
|
|
213
|
-
// Too few results, need to retry with more candidates
|
|
214
|
-
if (searchAttempt < MAX_SEARCH_RETRIES) {
|
|
215
|
-
const removedPercentage = ((removedCount / formattedResults.length) *
|
|
216
|
-
100).toFixed(1);
|
|
217
|
-
logger.warn(`Only ${finalResults.length} results after filtering (${removedPercentage}% removed, threshold: ${MIN_RESULTS_THRESHOLD}). Retrying with more candidates...`);
|
|
218
|
-
// Increase search range for next attempt (double it)
|
|
219
|
-
currentTopN = Math.min(currentTopN * 2, totalChunks);
|
|
220
|
-
continue;
|
|
221
|
-
}
|
|
222
|
-
// Last attempt exhausted
|
|
223
|
-
logger.warn(`Search attempt ${searchAttempt} complete. Only ${finalResults.length} results found (threshold: ${MIN_RESULTS_THRESHOLD}). Returning last results.`);
|
|
224
|
-
}
|
|
225
|
-
// Emit search complete event before closing
|
|
226
|
-
codebaseSearchEvents.emitSearchEvent({
|
|
227
|
-
type: 'search-complete',
|
|
228
|
-
attempt: searchAttempt,
|
|
229
|
-
maxAttempts: MAX_SEARCH_RETRIES,
|
|
230
|
-
currentTopN,
|
|
231
|
-
message: `Completed with ${lastResults?.resultsCount || 0} results`,
|
|
232
|
-
query,
|
|
233
|
-
});
|
|
234
|
-
db.close();
|
|
235
|
-
return lastResults;
|
|
236
|
-
}
|
|
237
|
-
catch (error) {
|
|
238
|
-
logger.error('Codebase search failed:', error);
|
|
239
|
-
throw error;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
// Export singleton instance
|
|
244
|
-
export const codebaseSearchService = new CodebaseSearchService();
|
|
245
|
-
/**
|
|
246
|
-
* MCP Tools Definition
|
|
247
|
-
*/
|
|
248
|
-
export const mcpTools = [
|
|
249
|
-
{
|
|
250
|
-
name: 'codebase-search',
|
|
251
|
-
description: '**Important:When you need to search for code, this is the highest priority tool. You need to use this Codebase tool first.**' +
|
|
252
|
-
'* Semantic search across the codebase using embeddings. ' +
|
|
253
|
-
'* Finds code snippets similar to your query based on meaning, not just keywords. ' +
|
|
254
|
-
'* Returns full code content with similarity scores and file locations. ' +
|
|
255
|
-
'* NOTE: Only available when codebase indexing is enabled and the index has been built. ' +
|
|
256
|
-
'* If the index is not available, the tool will return an error message with instructions.',
|
|
257
|
-
inputSchema: {
|
|
258
|
-
type: 'object',
|
|
259
|
-
properties: {
|
|
260
|
-
query: {
|
|
261
|
-
type: 'string',
|
|
262
|
-
description: 'Search query describing the code you want to find (e.g., "database query", "error handling", "authentication logic")',
|
|
263
|
-
},
|
|
264
|
-
topN: {
|
|
265
|
-
type: 'number',
|
|
266
|
-
description: 'Maximum number of results to return (default: 10, max: 50)',
|
|
267
|
-
default: 10,
|
|
268
|
-
minimum: 1,
|
|
269
|
-
maximum: 50,
|
|
270
|
-
},
|
|
271
|
-
},
|
|
272
|
-
required: ['query'],
|
|
273
|
-
},
|
|
274
|
-
},
|
|
275
|
-
];
|