snow-ai 0.4.15 → 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 -379
- 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 -1495
- 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
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 检查 token 使用率是否达到阈值
|
|
3
|
-
* @param percentage 当前上下文使用百分比(由 ChatInput 计算)
|
|
4
|
-
* @param threshold 阈值百分比(默认80)
|
|
5
|
-
* @returns 是否需要压缩
|
|
6
|
-
*/
|
|
7
|
-
export declare function shouldAutoCompress(percentage: number, threshold?: number): boolean;
|
|
8
|
-
/**
|
|
9
|
-
* 执行自动压缩
|
|
10
|
-
* @returns 压缩结果,如果失败返回null
|
|
11
|
-
*/
|
|
12
|
-
export declare function performAutoCompression(): Promise<{
|
|
13
|
-
uiMessages: import("../ui/components/MessageList.js").Message[];
|
|
14
|
-
usage: import("../api/types.js").UsageInfo;
|
|
15
|
-
} | null>;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { executeContextCompression } from '../hooks/useCommandHandler.js';
|
|
2
|
-
/**
|
|
3
|
-
* 检查 token 使用率是否达到阈值
|
|
4
|
-
* @param percentage 当前上下文使用百分比(由 ChatInput 计算)
|
|
5
|
-
* @param threshold 阈值百分比(默认80)
|
|
6
|
-
* @returns 是否需要压缩
|
|
7
|
-
*/
|
|
8
|
-
export function shouldAutoCompress(percentage, threshold = 80) {
|
|
9
|
-
return percentage >= threshold;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* 执行自动压缩
|
|
13
|
-
* @returns 压缩结果,如果失败返回null
|
|
14
|
-
*/
|
|
15
|
-
export async function performAutoCompression() {
|
|
16
|
-
try {
|
|
17
|
-
const result = await executeContextCompression();
|
|
18
|
-
return result;
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
console.error('Auto-compression failed:', error);
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Message } from '../ui/components/MessageList.js';
|
|
2
|
-
/**
|
|
3
|
-
* Format messages to plain text for export
|
|
4
|
-
*/
|
|
5
|
-
export declare function formatMessagesAsText(messages: Message[]): string;
|
|
6
|
-
/**
|
|
7
|
-
* Export messages to a file
|
|
8
|
-
*/
|
|
9
|
-
export declare function exportMessagesToFile(messages: Message[], filePath: string): Promise<void>;
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs/promises';
|
|
2
|
-
/**
|
|
3
|
-
* Format messages to plain text for export
|
|
4
|
-
*/
|
|
5
|
-
export function formatMessagesAsText(messages) {
|
|
6
|
-
const lines = [];
|
|
7
|
-
const timestamp = new Date().toISOString();
|
|
8
|
-
// Add header
|
|
9
|
-
lines.push('=====================================');
|
|
10
|
-
lines.push('Snow AI - Chat Export');
|
|
11
|
-
lines.push(`Exported at: ${new Date(timestamp).toLocaleString()}`);
|
|
12
|
-
lines.push('=====================================');
|
|
13
|
-
lines.push('');
|
|
14
|
-
// Format each message
|
|
15
|
-
for (const message of messages) {
|
|
16
|
-
// Skip command messages
|
|
17
|
-
if (message.role === 'command') {
|
|
18
|
-
continue;
|
|
19
|
-
}
|
|
20
|
-
// Add role header
|
|
21
|
-
let roleLabel = '';
|
|
22
|
-
if (message.role === 'user') {
|
|
23
|
-
roleLabel = 'USER';
|
|
24
|
-
}
|
|
25
|
-
else if (message.role === 'assistant') {
|
|
26
|
-
roleLabel = 'ASSISTANT';
|
|
27
|
-
}
|
|
28
|
-
else if (message.role === 'subagent') {
|
|
29
|
-
roleLabel = 'SUBAGENT';
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
roleLabel = 'UNKNOWN';
|
|
33
|
-
}
|
|
34
|
-
lines.push(`[${roleLabel}]`);
|
|
35
|
-
lines.push('-'.repeat(40));
|
|
36
|
-
// Add content (Message.content is always string based on the type definition)
|
|
37
|
-
lines.push(message.content);
|
|
38
|
-
// Add tool call information if present
|
|
39
|
-
if (message.toolCall) {
|
|
40
|
-
lines.push('');
|
|
41
|
-
lines.push(`[TOOL CALL: ${message.toolCall.name}]`);
|
|
42
|
-
try {
|
|
43
|
-
const argsStr = typeof message.toolCall.arguments === 'string'
|
|
44
|
-
? message.toolCall.arguments
|
|
45
|
-
: JSON.stringify(message.toolCall.arguments, null, 2);
|
|
46
|
-
lines.push(argsStr);
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
lines.push(String(message.toolCall.arguments));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Add tool display information if present
|
|
53
|
-
if (message.toolDisplay) {
|
|
54
|
-
lines.push('');
|
|
55
|
-
lines.push(`[TOOL: ${message.toolDisplay.toolName}]`);
|
|
56
|
-
for (const arg of message.toolDisplay.args) {
|
|
57
|
-
lines.push(` ${arg.key}: ${arg.value}`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
// Add tool result if present
|
|
61
|
-
if (message.toolResult) {
|
|
62
|
-
lines.push('');
|
|
63
|
-
lines.push('[TOOL RESULT]');
|
|
64
|
-
try {
|
|
65
|
-
const result = JSON.parse(message.toolResult);
|
|
66
|
-
lines.push(JSON.stringify(result, null, 2));
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
lines.push(message.toolResult);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// Add terminal result if present
|
|
73
|
-
if (message.terminalResult) {
|
|
74
|
-
lines.push('');
|
|
75
|
-
if (message.terminalResult.command) {
|
|
76
|
-
lines.push(`[COMMAND: ${message.terminalResult.command}]`);
|
|
77
|
-
}
|
|
78
|
-
if (message.terminalResult.stdout) {
|
|
79
|
-
lines.push('[STDOUT]');
|
|
80
|
-
lines.push(message.terminalResult.stdout);
|
|
81
|
-
}
|
|
82
|
-
if (message.terminalResult.stderr) {
|
|
83
|
-
lines.push('[STDERR]');
|
|
84
|
-
lines.push(message.terminalResult.stderr);
|
|
85
|
-
}
|
|
86
|
-
if (message.terminalResult.exitCode !== undefined) {
|
|
87
|
-
lines.push(`[EXIT CODE: ${message.terminalResult.exitCode}]`);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
// Add images information if present
|
|
91
|
-
if (message.images && message.images.length > 0) {
|
|
92
|
-
lines.push('');
|
|
93
|
-
lines.push(`[${message.images.length} image(s) attached]`);
|
|
94
|
-
}
|
|
95
|
-
// Add files information if present
|
|
96
|
-
if (message.files && message.files.length > 0) {
|
|
97
|
-
lines.push('');
|
|
98
|
-
lines.push(`[${message.files.length} file(s) referenced]`);
|
|
99
|
-
for (const file of message.files) {
|
|
100
|
-
lines.push(` - ${file.path}`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
lines.push('');
|
|
104
|
-
lines.push('');
|
|
105
|
-
}
|
|
106
|
-
// Add footer
|
|
107
|
-
lines.push('=====================================');
|
|
108
|
-
lines.push('End of Chat Export');
|
|
109
|
-
lines.push('=====================================');
|
|
110
|
-
return lines.join('\n');
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Export messages to a file
|
|
114
|
-
*/
|
|
115
|
-
export async function exportMessagesToFile(messages, filePath) {
|
|
116
|
-
const textContent = formatMessagesAsText(messages);
|
|
117
|
-
await fs.writeFile(filePath, textContent, 'utf-8');
|
|
118
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File checkpoint data structure
|
|
3
|
-
*/
|
|
4
|
-
export interface FileCheckpoint {
|
|
5
|
-
path: string;
|
|
6
|
-
content: string;
|
|
7
|
-
timestamp: number;
|
|
8
|
-
exists: boolean;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Conversation checkpoint data structure
|
|
12
|
-
*/
|
|
13
|
-
export interface ConversationCheckpoint {
|
|
14
|
-
sessionId: string;
|
|
15
|
-
messageCount: number;
|
|
16
|
-
fileSnapshots: FileCheckpoint[];
|
|
17
|
-
timestamp: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Checkpoint Manager
|
|
21
|
-
* Manages file snapshots for rollback on ESC interrupt
|
|
22
|
-
*/
|
|
23
|
-
declare class CheckpointManager {
|
|
24
|
-
private readonly checkpointsDir;
|
|
25
|
-
private activeCheckpoint;
|
|
26
|
-
constructor();
|
|
27
|
-
/**
|
|
28
|
-
* Ensure checkpoints directory exists
|
|
29
|
-
*/
|
|
30
|
-
private ensureCheckpointsDir;
|
|
31
|
-
/**
|
|
32
|
-
* Get checkpoint file path for a session
|
|
33
|
-
*/
|
|
34
|
-
private getCheckpointPath;
|
|
35
|
-
/**
|
|
36
|
-
* Create a new checkpoint before AI response
|
|
37
|
-
* @param sessionId - Current session ID
|
|
38
|
-
* @param messageCount - Number of messages before AI response
|
|
39
|
-
*/
|
|
40
|
-
createCheckpoint(sessionId: string, messageCount: number): Promise<void>;
|
|
41
|
-
/**
|
|
42
|
-
* Record a file snapshot before modification
|
|
43
|
-
* @param filePath - Absolute path to the file
|
|
44
|
-
*/
|
|
45
|
-
recordFileSnapshot(filePath: string): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Save current checkpoint to disk
|
|
48
|
-
*/
|
|
49
|
-
private saveCheckpoint;
|
|
50
|
-
/**
|
|
51
|
-
* Load checkpoint from disk
|
|
52
|
-
*/
|
|
53
|
-
loadCheckpoint(sessionId: string): Promise<ConversationCheckpoint | null>;
|
|
54
|
-
/**
|
|
55
|
-
* Rollback files to checkpoint state
|
|
56
|
-
* @param sessionId - Session ID to rollback
|
|
57
|
-
* @returns Number of messages to rollback to, or null if no checkpoint
|
|
58
|
-
*/
|
|
59
|
-
rollback(sessionId: string): Promise<number | null>;
|
|
60
|
-
/**
|
|
61
|
-
* Clear checkpoint for a session
|
|
62
|
-
*/
|
|
63
|
-
clearCheckpoint(sessionId: string): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* Get active checkpoint
|
|
66
|
-
*/
|
|
67
|
-
getActiveCheckpoint(): ConversationCheckpoint | null;
|
|
68
|
-
/**
|
|
69
|
-
* Clear active checkpoint (used when conversation completes successfully)
|
|
70
|
-
*/
|
|
71
|
-
commitCheckpoint(): Promise<void>;
|
|
72
|
-
}
|
|
73
|
-
export declare const checkpointManager: CheckpointManager;
|
|
74
|
-
export {};
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import fs from 'fs/promises';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import os from 'os';
|
|
4
|
-
/**
|
|
5
|
-
* Checkpoint Manager
|
|
6
|
-
* Manages file snapshots for rollback on ESC interrupt
|
|
7
|
-
*/
|
|
8
|
-
class CheckpointManager {
|
|
9
|
-
constructor() {
|
|
10
|
-
Object.defineProperty(this, "checkpointsDir", {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
writable: true,
|
|
14
|
-
value: void 0
|
|
15
|
-
});
|
|
16
|
-
Object.defineProperty(this, "activeCheckpoint", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
configurable: true,
|
|
19
|
-
writable: true,
|
|
20
|
-
value: null
|
|
21
|
-
});
|
|
22
|
-
this.checkpointsDir = path.join(os.homedir(), '.snow', 'checkpoints');
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Ensure checkpoints directory exists
|
|
26
|
-
*/
|
|
27
|
-
async ensureCheckpointsDir() {
|
|
28
|
-
try {
|
|
29
|
-
await fs.mkdir(this.checkpointsDir, { recursive: true });
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
// Directory already exists or other error
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Get checkpoint file path for a session
|
|
37
|
-
*/
|
|
38
|
-
getCheckpointPath(sessionId) {
|
|
39
|
-
return path.join(this.checkpointsDir, `${sessionId}.json`);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Create a new checkpoint before AI response
|
|
43
|
-
* @param sessionId - Current session ID
|
|
44
|
-
* @param messageCount - Number of messages before AI response
|
|
45
|
-
*/
|
|
46
|
-
async createCheckpoint(sessionId, messageCount) {
|
|
47
|
-
await this.ensureCheckpointsDir();
|
|
48
|
-
this.activeCheckpoint = {
|
|
49
|
-
sessionId,
|
|
50
|
-
messageCount,
|
|
51
|
-
fileSnapshots: [],
|
|
52
|
-
timestamp: Date.now()
|
|
53
|
-
};
|
|
54
|
-
// Save checkpoint immediately (will be updated as files are modified)
|
|
55
|
-
await this.saveCheckpoint();
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Record a file snapshot before modification
|
|
59
|
-
* @param filePath - Absolute path to the file
|
|
60
|
-
*/
|
|
61
|
-
async recordFileSnapshot(filePath) {
|
|
62
|
-
if (!this.activeCheckpoint) {
|
|
63
|
-
return; // No active checkpoint, skip
|
|
64
|
-
}
|
|
65
|
-
// Check if this file already has a snapshot
|
|
66
|
-
const existingSnapshot = this.activeCheckpoint.fileSnapshots.find(snapshot => snapshot.path === filePath);
|
|
67
|
-
if (existingSnapshot) {
|
|
68
|
-
return; // Already recorded, skip
|
|
69
|
-
}
|
|
70
|
-
try {
|
|
71
|
-
// Try to read existing file content
|
|
72
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
73
|
-
this.activeCheckpoint.fileSnapshots.push({
|
|
74
|
-
path: filePath,
|
|
75
|
-
content,
|
|
76
|
-
timestamp: Date.now(),
|
|
77
|
-
exists: true
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
// File doesn't exist, record as non-existent
|
|
82
|
-
this.activeCheckpoint.fileSnapshots.push({
|
|
83
|
-
path: filePath,
|
|
84
|
-
content: '',
|
|
85
|
-
timestamp: Date.now(),
|
|
86
|
-
exists: false
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
// Update checkpoint file
|
|
90
|
-
await this.saveCheckpoint();
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Save current checkpoint to disk
|
|
94
|
-
*/
|
|
95
|
-
async saveCheckpoint() {
|
|
96
|
-
if (!this.activeCheckpoint) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
await this.ensureCheckpointsDir();
|
|
100
|
-
const checkpointPath = this.getCheckpointPath(this.activeCheckpoint.sessionId);
|
|
101
|
-
await fs.writeFile(checkpointPath, JSON.stringify(this.activeCheckpoint, null, 2));
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Load checkpoint from disk
|
|
105
|
-
*/
|
|
106
|
-
async loadCheckpoint(sessionId) {
|
|
107
|
-
try {
|
|
108
|
-
const checkpointPath = this.getCheckpointPath(sessionId);
|
|
109
|
-
const data = await fs.readFile(checkpointPath, 'utf-8');
|
|
110
|
-
return JSON.parse(data);
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Rollback files to checkpoint state
|
|
118
|
-
* @param sessionId - Session ID to rollback
|
|
119
|
-
* @returns Number of messages to rollback to, or null if no checkpoint
|
|
120
|
-
*/
|
|
121
|
-
async rollback(sessionId) {
|
|
122
|
-
const checkpoint = await this.loadCheckpoint(sessionId);
|
|
123
|
-
if (!checkpoint) {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
// Rollback all file snapshots
|
|
127
|
-
for (const snapshot of checkpoint.fileSnapshots) {
|
|
128
|
-
try {
|
|
129
|
-
if (snapshot.exists) {
|
|
130
|
-
// Restore original file content
|
|
131
|
-
await fs.writeFile(snapshot.path, snapshot.content, 'utf-8');
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
// Delete file that was created
|
|
135
|
-
try {
|
|
136
|
-
await fs.unlink(snapshot.path);
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
// File may already be deleted, ignore
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
console.error(`Failed to rollback file ${snapshot.path}:`, error);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// Clear checkpoint after rollback
|
|
148
|
-
await this.clearCheckpoint(sessionId);
|
|
149
|
-
return checkpoint.messageCount;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Clear checkpoint for a session
|
|
153
|
-
*/
|
|
154
|
-
async clearCheckpoint(sessionId) {
|
|
155
|
-
try {
|
|
156
|
-
const checkpointPath = this.getCheckpointPath(sessionId);
|
|
157
|
-
await fs.unlink(checkpointPath);
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
160
|
-
// Checkpoint may not exist, ignore
|
|
161
|
-
}
|
|
162
|
-
if (this.activeCheckpoint?.sessionId === sessionId) {
|
|
163
|
-
this.activeCheckpoint = null;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Get active checkpoint
|
|
168
|
-
*/
|
|
169
|
-
getActiveCheckpoint() {
|
|
170
|
-
return this.activeCheckpoint;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Clear active checkpoint (used when conversation completes successfully)
|
|
174
|
-
*/
|
|
175
|
-
async commitCheckpoint() {
|
|
176
|
-
if (this.activeCheckpoint) {
|
|
177
|
-
await this.clearCheckpoint(this.activeCheckpoint.sessionId);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
export const checkpointManager = new CheckpointManager();
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface CodebaseConfig {
|
|
2
|
-
enabled: boolean;
|
|
3
|
-
enableAgentReview: boolean;
|
|
4
|
-
embedding: {
|
|
5
|
-
modelName: string;
|
|
6
|
-
baseUrl: string;
|
|
7
|
-
apiKey: string;
|
|
8
|
-
dimensions: number;
|
|
9
|
-
};
|
|
10
|
-
batch: {
|
|
11
|
-
maxLines: number;
|
|
12
|
-
concurrency: number;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare const loadCodebaseConfig: () => CodebaseConfig;
|
|
16
|
-
export declare const saveCodebaseConfig: (config: CodebaseConfig) => void;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import os from 'os';
|
|
4
|
-
const DEFAULT_CONFIG = {
|
|
5
|
-
enabled: false,
|
|
6
|
-
enableAgentReview: true,
|
|
7
|
-
embedding: {
|
|
8
|
-
modelName: '',
|
|
9
|
-
baseUrl: '',
|
|
10
|
-
apiKey: '',
|
|
11
|
-
dimensions: 1536,
|
|
12
|
-
},
|
|
13
|
-
batch: {
|
|
14
|
-
maxLines: 10,
|
|
15
|
-
concurrency: 3,
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
const getConfigDir = () => {
|
|
19
|
-
const homeDir = os.homedir();
|
|
20
|
-
const configDir = path.join(homeDir, '.snow');
|
|
21
|
-
if (!fs.existsSync(configDir)) {
|
|
22
|
-
fs.mkdirSync(configDir, { recursive: true });
|
|
23
|
-
}
|
|
24
|
-
return configDir;
|
|
25
|
-
};
|
|
26
|
-
const getConfigPath = () => {
|
|
27
|
-
return path.join(getConfigDir(), 'codebase.json');
|
|
28
|
-
};
|
|
29
|
-
export const loadCodebaseConfig = () => {
|
|
30
|
-
try {
|
|
31
|
-
const configPath = getConfigPath();
|
|
32
|
-
if (!fs.existsSync(configPath)) {
|
|
33
|
-
return { ...DEFAULT_CONFIG };
|
|
34
|
-
}
|
|
35
|
-
const configContent = fs.readFileSync(configPath, 'utf-8');
|
|
36
|
-
const config = JSON.parse(configContent);
|
|
37
|
-
// Merge with defaults to ensure all fields exist
|
|
38
|
-
return {
|
|
39
|
-
enabled: config.enabled ?? DEFAULT_CONFIG.enabled,
|
|
40
|
-
enableAgentReview: config.enableAgentReview ?? DEFAULT_CONFIG.enableAgentReview,
|
|
41
|
-
embedding: {
|
|
42
|
-
modelName: config.embedding?.modelName ?? DEFAULT_CONFIG.embedding.modelName,
|
|
43
|
-
baseUrl: config.embedding?.baseUrl ?? DEFAULT_CONFIG.embedding.baseUrl,
|
|
44
|
-
apiKey: config.embedding?.apiKey ?? DEFAULT_CONFIG.embedding.apiKey,
|
|
45
|
-
dimensions: config.embedding?.dimensions ?? DEFAULT_CONFIG.embedding.dimensions,
|
|
46
|
-
},
|
|
47
|
-
batch: {
|
|
48
|
-
maxLines: config.batch?.maxLines ?? DEFAULT_CONFIG.batch.maxLines,
|
|
49
|
-
concurrency: config.batch?.concurrency ?? DEFAULT_CONFIG.batch.concurrency,
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
console.error('Failed to load codebase config:', error);
|
|
55
|
-
return { ...DEFAULT_CONFIG };
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
export const saveCodebaseConfig = (config) => {
|
|
59
|
-
try {
|
|
60
|
-
const configPath = getConfigPath();
|
|
61
|
-
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
console.error('Failed to save codebase config:', error);
|
|
65
|
-
throw error;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Code chunk with embedding
|
|
3
|
-
*/
|
|
4
|
-
export interface CodeChunk {
|
|
5
|
-
id?: number;
|
|
6
|
-
filePath: string;
|
|
7
|
-
content: string;
|
|
8
|
-
startLine: number;
|
|
9
|
-
endLine: number;
|
|
10
|
-
embedding: number[];
|
|
11
|
-
fileHash: string;
|
|
12
|
-
createdAt: number;
|
|
13
|
-
updatedAt: number;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Indexing progress record
|
|
17
|
-
*/
|
|
18
|
-
export interface IndexProgress {
|
|
19
|
-
totalFiles: number;
|
|
20
|
-
processedFiles: number;
|
|
21
|
-
totalChunks: number;
|
|
22
|
-
status: 'idle' | 'indexing' | 'completed' | 'error';
|
|
23
|
-
lastError?: string;
|
|
24
|
-
lastProcessedFile?: string;
|
|
25
|
-
startedAt?: number;
|
|
26
|
-
completedAt?: number;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Codebase SQLite database manager
|
|
30
|
-
* Handles embedding storage with vector support
|
|
31
|
-
*/
|
|
32
|
-
export declare class CodebaseDatabase {
|
|
33
|
-
private db;
|
|
34
|
-
private dbPath;
|
|
35
|
-
private initialized;
|
|
36
|
-
constructor(projectRoot: string);
|
|
37
|
-
/**
|
|
38
|
-
* Initialize database and create tables
|
|
39
|
-
*/
|
|
40
|
-
initialize(): void;
|
|
41
|
-
/**
|
|
42
|
-
* Create database tables
|
|
43
|
-
*/
|
|
44
|
-
private createTables;
|
|
45
|
-
/**
|
|
46
|
-
* Insert or update code chunks (batch operation)
|
|
47
|
-
*/
|
|
48
|
-
insertChunks(chunks: CodeChunk[]): void;
|
|
49
|
-
/**
|
|
50
|
-
* Delete chunks by file path
|
|
51
|
-
*/
|
|
52
|
-
deleteChunksByFile(filePath: string): void;
|
|
53
|
-
/**
|
|
54
|
-
* Get chunks by file path
|
|
55
|
-
*/
|
|
56
|
-
getChunksByFile(filePath: string): CodeChunk[];
|
|
57
|
-
/**
|
|
58
|
-
* Check if file has been indexed by hash
|
|
59
|
-
*/
|
|
60
|
-
hasFileHash(fileHash: string): boolean;
|
|
61
|
-
/**
|
|
62
|
-
* Get total chunks count
|
|
63
|
-
*/
|
|
64
|
-
getTotalChunks(): number;
|
|
65
|
-
/**
|
|
66
|
-
* Search similar code chunks by embedding
|
|
67
|
-
* Uses cosine similarity
|
|
68
|
-
*/
|
|
69
|
-
searchSimilar(queryEmbedding: number[], limit?: number): CodeChunk[];
|
|
70
|
-
/**
|
|
71
|
-
* Update indexing progress
|
|
72
|
-
*/
|
|
73
|
-
updateProgress(progress: Partial<IndexProgress>): void;
|
|
74
|
-
/**
|
|
75
|
-
* Get current indexing progress
|
|
76
|
-
*/
|
|
77
|
-
getProgress(): IndexProgress;
|
|
78
|
-
/**
|
|
79
|
-
* Set watcher enabled status
|
|
80
|
-
*/
|
|
81
|
-
setWatcherEnabled(enabled: boolean): void;
|
|
82
|
-
/**
|
|
83
|
-
* Get watcher enabled status
|
|
84
|
-
*/
|
|
85
|
-
isWatcherEnabled(): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Clear all chunks and reset progress
|
|
88
|
-
*/
|
|
89
|
-
clear(): void;
|
|
90
|
-
/**
|
|
91
|
-
* Close database connection
|
|
92
|
-
*/
|
|
93
|
-
close(): void;
|
|
94
|
-
/**
|
|
95
|
-
* Convert database row to CodeChunk
|
|
96
|
-
*/
|
|
97
|
-
private rowToChunk;
|
|
98
|
-
/**
|
|
99
|
-
* Calculate cosine similarity between two vectors
|
|
100
|
-
*/
|
|
101
|
-
private cosineSimilarity;
|
|
102
|
-
}
|