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,260 +0,0 @@
|
|
|
1
|
-
import { getOpenAiConfig } from '../utils/apiConfig.js';
|
|
2
|
-
import { logger } from '../utils/logger.js';
|
|
3
|
-
import { createStreamingChatCompletion } from '../api/chat.js';
|
|
4
|
-
import { createStreamingResponse } from '../api/responses.js';
|
|
5
|
-
import { createStreamingGeminiCompletion } from '../api/gemini.js';
|
|
6
|
-
import { createStreamingAnthropicCompletion } from '../api/anthropic.js';
|
|
7
|
-
/**
|
|
8
|
-
* Summary Agent Service
|
|
9
|
-
*
|
|
10
|
-
* Generates concise summaries for conversations after the first user-assistant exchange.
|
|
11
|
-
* This service operates in the background without blocking the main conversation flow.
|
|
12
|
-
*
|
|
13
|
-
* Features:
|
|
14
|
-
* - Uses basicModel for efficient, low-cost summarization
|
|
15
|
-
* - Follows the same API routing as main flow (chat, responses, gemini, anthropic)
|
|
16
|
-
* - Generates title (max 50 chars) and summary (max 150 chars)
|
|
17
|
-
* - Only runs once after the first complete conversation exchange
|
|
18
|
-
* - Silent execution with error handling to prevent main flow disruption
|
|
19
|
-
*/
|
|
20
|
-
export class SummaryAgent {
|
|
21
|
-
constructor() {
|
|
22
|
-
Object.defineProperty(this, "modelName", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
configurable: true,
|
|
25
|
-
writable: true,
|
|
26
|
-
value: ''
|
|
27
|
-
});
|
|
28
|
-
Object.defineProperty(this, "requestMethod", {
|
|
29
|
-
enumerable: true,
|
|
30
|
-
configurable: true,
|
|
31
|
-
writable: true,
|
|
32
|
-
value: 'chat'
|
|
33
|
-
});
|
|
34
|
-
Object.defineProperty(this, "initialized", {
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true,
|
|
38
|
-
value: false
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Initialize the summary agent with current configuration
|
|
43
|
-
* @returns true if initialized successfully, false otherwise
|
|
44
|
-
*/
|
|
45
|
-
async initialize() {
|
|
46
|
-
try {
|
|
47
|
-
const config = getOpenAiConfig();
|
|
48
|
-
// Check if basic model is configured
|
|
49
|
-
if (!config.basicModel) {
|
|
50
|
-
logger.warn('Summary agent: Basic model not configured, using advanced model as fallback');
|
|
51
|
-
// Fallback to advanced model if basic model is not configured
|
|
52
|
-
if (!config.advancedModel) {
|
|
53
|
-
logger.warn('Summary agent: No model configured');
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
this.modelName = config.advancedModel;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.modelName = config.basicModel;
|
|
60
|
-
}
|
|
61
|
-
this.requestMethod = config.requestMethod;
|
|
62
|
-
this.initialized = true;
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
logger.warn('Summary agent: Failed to initialize:', error);
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Check if summary agent is available
|
|
72
|
-
*/
|
|
73
|
-
async isAvailable() {
|
|
74
|
-
if (!this.initialized) {
|
|
75
|
-
return await this.initialize();
|
|
76
|
-
}
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Call the model with streaming API and assemble complete response
|
|
81
|
-
* Uses the same routing logic as main flow for consistency
|
|
82
|
-
*
|
|
83
|
-
* @param messages - Chat messages
|
|
84
|
-
* @param abortSignal - Optional abort signal to cancel the request
|
|
85
|
-
*/
|
|
86
|
-
async callModel(messages, abortSignal) {
|
|
87
|
-
let streamGenerator;
|
|
88
|
-
// Route to appropriate streaming API based on request method
|
|
89
|
-
switch (this.requestMethod) {
|
|
90
|
-
case 'anthropic':
|
|
91
|
-
streamGenerator = createStreamingAnthropicCompletion({
|
|
92
|
-
model: this.modelName,
|
|
93
|
-
messages,
|
|
94
|
-
max_tokens: 500, // Limited tokens for summary generation
|
|
95
|
-
includeBuiltinSystemPrompt: false, // 不需要内置系统提示词
|
|
96
|
-
disableThinking: true, // Agents 不使用 Extended Thinking
|
|
97
|
-
}, abortSignal);
|
|
98
|
-
break;
|
|
99
|
-
case 'gemini':
|
|
100
|
-
streamGenerator = createStreamingGeminiCompletion({
|
|
101
|
-
model: this.modelName,
|
|
102
|
-
messages,
|
|
103
|
-
includeBuiltinSystemPrompt: false, // 不需要内置系统提示词
|
|
104
|
-
}, abortSignal);
|
|
105
|
-
break;
|
|
106
|
-
case 'responses':
|
|
107
|
-
streamGenerator = createStreamingResponse({
|
|
108
|
-
model: this.modelName,
|
|
109
|
-
messages,
|
|
110
|
-
stream: true,
|
|
111
|
-
includeBuiltinSystemPrompt: false, // 不需要内置系统提示词
|
|
112
|
-
}, abortSignal);
|
|
113
|
-
break;
|
|
114
|
-
case 'chat':
|
|
115
|
-
default:
|
|
116
|
-
streamGenerator = createStreamingChatCompletion({
|
|
117
|
-
model: this.modelName,
|
|
118
|
-
messages,
|
|
119
|
-
stream: true,
|
|
120
|
-
includeBuiltinSystemPrompt: false, // 不需要内置系统提示词
|
|
121
|
-
}, abortSignal);
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
// Assemble complete content from streaming response
|
|
125
|
-
let completeContent = '';
|
|
126
|
-
try {
|
|
127
|
-
for await (const chunk of streamGenerator) {
|
|
128
|
-
// Check abort signal
|
|
129
|
-
if (abortSignal?.aborted) {
|
|
130
|
-
throw new Error('Request aborted');
|
|
131
|
-
}
|
|
132
|
-
// Handle different chunk formats based on request method
|
|
133
|
-
if (this.requestMethod === 'chat') {
|
|
134
|
-
// Chat API uses standard OpenAI format
|
|
135
|
-
if (chunk.choices && chunk.choices[0]?.delta?.content) {
|
|
136
|
-
completeContent += chunk.choices[0].delta.content;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
// Responses, Gemini, and Anthropic APIs use unified format
|
|
141
|
-
if (chunk.type === 'content' && chunk.content) {
|
|
142
|
-
completeContent += chunk.content;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
catch (streamError) {
|
|
148
|
-
logger.error('Summary agent: Streaming error:', streamError);
|
|
149
|
-
throw streamError;
|
|
150
|
-
}
|
|
151
|
-
return completeContent;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Generate title and summary for a conversation
|
|
155
|
-
*
|
|
156
|
-
* @param userMessage - User's first message content
|
|
157
|
-
* @param assistantMessage - Assistant's first response content
|
|
158
|
-
* @param abortSignal - Optional abort signal to cancel generation
|
|
159
|
-
* @returns Object containing title and summary, or null if generation fails
|
|
160
|
-
*/
|
|
161
|
-
async generateSummary(userMessage, assistantMessage, abortSignal) {
|
|
162
|
-
const available = await this.isAvailable();
|
|
163
|
-
if (!available) {
|
|
164
|
-
logger.warn('Summary agent: Not available, using fallback summary');
|
|
165
|
-
return this.generateFallbackSummary(userMessage, assistantMessage);
|
|
166
|
-
}
|
|
167
|
-
try {
|
|
168
|
-
const summaryPrompt = `You are a conversation summarization assistant. Based on the first exchange between the user and AI assistant below, generate a concise title and summary.
|
|
169
|
-
|
|
170
|
-
IMPORTANT: Generate the title and summary in the SAME LANGUAGE as the user's message. If the user writes in Chinese, respond in Chinese. If in English, respond in English.
|
|
171
|
-
|
|
172
|
-
User message:
|
|
173
|
-
${userMessage}
|
|
174
|
-
|
|
175
|
-
AI assistant reply:
|
|
176
|
-
${assistantMessage}
|
|
177
|
-
|
|
178
|
-
Requirements:
|
|
179
|
-
1. Generate a short title (max 50 characters) that captures the conversation topic
|
|
180
|
-
2. Generate a summary (max 150 characters) that briefly describes the core content
|
|
181
|
-
3. Title should be concise and clear, avoid complete sentences
|
|
182
|
-
4. Summary should contain key information while staying brief
|
|
183
|
-
5. Use the SAME LANGUAGE as the user's message
|
|
184
|
-
|
|
185
|
-
Output in the following JSON format (JSON only, no other content):
|
|
186
|
-
{
|
|
187
|
-
"title": "Conversation title",
|
|
188
|
-
"summary": "Conversation summary"
|
|
189
|
-
}`;
|
|
190
|
-
const messages = [
|
|
191
|
-
{
|
|
192
|
-
role: 'user',
|
|
193
|
-
content: summaryPrompt,
|
|
194
|
-
},
|
|
195
|
-
];
|
|
196
|
-
const response = await this.callModel(messages, abortSignal);
|
|
197
|
-
if (!response || response.trim().length === 0) {
|
|
198
|
-
logger.warn('Summary agent: Empty response, using fallback');
|
|
199
|
-
return this.generateFallbackSummary(userMessage, assistantMessage);
|
|
200
|
-
}
|
|
201
|
-
// Parse JSON response
|
|
202
|
-
try {
|
|
203
|
-
// Extract JSON from markdown code blocks if present
|
|
204
|
-
let jsonStr = response.trim();
|
|
205
|
-
const jsonMatch = jsonStr.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/);
|
|
206
|
-
if (jsonMatch) {
|
|
207
|
-
jsonStr = jsonMatch[1].trim();
|
|
208
|
-
}
|
|
209
|
-
const parsed = JSON.parse(jsonStr);
|
|
210
|
-
if (!parsed.title || !parsed.summary) {
|
|
211
|
-
logger.warn('Summary agent: Invalid JSON structure, using fallback');
|
|
212
|
-
return this.generateFallbackSummary(userMessage, assistantMessage);
|
|
213
|
-
}
|
|
214
|
-
// Ensure title and summary are within length limits
|
|
215
|
-
const title = this.truncateString(parsed.title, 50);
|
|
216
|
-
const summary = this.truncateString(parsed.summary, 150);
|
|
217
|
-
logger.info('Summary agent: Successfully generated summary', {
|
|
218
|
-
title,
|
|
219
|
-
summary,
|
|
220
|
-
});
|
|
221
|
-
return { title, summary };
|
|
222
|
-
}
|
|
223
|
-
catch (parseError) {
|
|
224
|
-
logger.warn('Summary agent: Failed to parse JSON response, using fallback', parseError);
|
|
225
|
-
return this.generateFallbackSummary(userMessage, assistantMessage);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
catch (error) {
|
|
229
|
-
logger.error('Summary agent: Failed to generate summary', error);
|
|
230
|
-
return this.generateFallbackSummary(userMessage, assistantMessage);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Generate fallback summary when AI generation fails
|
|
235
|
-
* Simply truncates the user message for title and summary
|
|
236
|
-
*/
|
|
237
|
-
generateFallbackSummary(userMessage, _assistantMessage) {
|
|
238
|
-
// Clean newlines and extra spaces
|
|
239
|
-
const cleanedUser = userMessage
|
|
240
|
-
.replace(/[\r\n]+/g, ' ')
|
|
241
|
-
.replace(/\s+/g, ' ')
|
|
242
|
-
.trim();
|
|
243
|
-
// Use first 50 chars as title
|
|
244
|
-
const title = this.truncateString(cleanedUser, 50);
|
|
245
|
-
// Use first 150 chars as summary
|
|
246
|
-
const summary = this.truncateString(cleanedUser, 150);
|
|
247
|
-
return { title, summary };
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Truncate string to specified length, adding ellipsis if truncated
|
|
251
|
-
*/
|
|
252
|
-
truncateString(str, maxLength) {
|
|
253
|
-
if (str.length <= maxLength) {
|
|
254
|
-
return str;
|
|
255
|
-
}
|
|
256
|
-
return str.slice(0, maxLength - 3) + '...';
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
// Export singleton instance
|
|
260
|
-
export const summaryAgent = new SummaryAgent();
|
package/dist/api/anthropic.d.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { ChatMessage, ChatCompletionTool, UsageInfo } from './types.js';
|
|
2
|
-
export interface AnthropicOptions {
|
|
3
|
-
model: string;
|
|
4
|
-
messages: ChatMessage[];
|
|
5
|
-
temperature?: number;
|
|
6
|
-
max_tokens?: number;
|
|
7
|
-
tools?: ChatCompletionTool[];
|
|
8
|
-
sessionId?: string;
|
|
9
|
-
includeBuiltinSystemPrompt?: boolean;
|
|
10
|
-
disableThinking?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface AnthropicStreamChunk {
|
|
13
|
-
type: 'content' | 'tool_calls' | 'tool_call_delta' | 'done' | 'usage' | 'reasoning_started' | 'reasoning_delta';
|
|
14
|
-
content?: string;
|
|
15
|
-
tool_calls?: Array<{
|
|
16
|
-
id: string;
|
|
17
|
-
type: 'function';
|
|
18
|
-
function: {
|
|
19
|
-
name: string;
|
|
20
|
-
arguments: string;
|
|
21
|
-
};
|
|
22
|
-
}>;
|
|
23
|
-
delta?: string;
|
|
24
|
-
usage?: UsageInfo;
|
|
25
|
-
thinking?: {
|
|
26
|
-
type: 'thinking';
|
|
27
|
-
thinking: string;
|
|
28
|
-
signature?: string;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
export interface AnthropicTool {
|
|
32
|
-
name: string;
|
|
33
|
-
description: string;
|
|
34
|
-
input_schema: any;
|
|
35
|
-
cache_control?: {
|
|
36
|
-
type: 'ephemeral';
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
export interface AnthropicMessageParam {
|
|
40
|
-
role: 'user' | 'assistant';
|
|
41
|
-
content: string | Array<any>;
|
|
42
|
-
}
|
|
43
|
-
export declare function resetAnthropicClient(): void;
|
|
44
|
-
export declare function createStreamingAnthropicCompletion(options: AnthropicOptions, abortSignal?: AbortSignal, onRetry?: (error: Error, attempt: number, nextDelay: number) => void): AsyncGenerator<AnthropicStreamChunk, void, unknown>;
|