@within-7/minto 0.1.7 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +155 -37
- package/dist/Tool.js +38 -0
- package/dist/Tool.js.map +3 -3
- package/dist/commands/agents/AgentsCommand.js +73 -49
- package/dist/commands/agents/AgentsCommand.js.map +2 -2
- package/dist/commands/agents/constants.js +1 -1
- package/dist/commands/agents/constants.js.map +1 -1
- package/dist/commands/agents/index.js +1 -1
- package/dist/commands/bug.js +74 -7
- package/dist/commands/bug.js.map +3 -3
- package/dist/commands/clear.js +3 -0
- package/dist/commands/clear.js.map +2 -2
- package/dist/commands/compact.js +37 -0
- package/dist/commands/compact.js.map +2 -2
- package/dist/commands/context.js +85 -0
- package/dist/commands/context.js.map +7 -0
- package/dist/commands/ctx_viz.js +18 -10
- package/dist/commands/ctx_viz.js.map +2 -2
- package/dist/commands/doctor.js +158 -12
- package/dist/commands/doctor.js.map +2 -2
- package/dist/commands/export.js +157 -0
- package/dist/commands/export.js.map +7 -0
- package/dist/commands/mcp-interactive.js +28 -18
- package/dist/commands/mcp-interactive.js.map +2 -2
- package/dist/commands/model.js +9 -7
- package/dist/commands/model.js.map +2 -2
- package/dist/commands/permissions.js +87 -0
- package/dist/commands/permissions.js.map +7 -0
- package/dist/commands/plugin/AddMarketplaceForm.js +3 -2
- package/dist/commands/plugin/AddMarketplaceForm.js.map +2 -2
- package/dist/commands/plugin/ConfirmDialog.js +2 -1
- package/dist/commands/plugin/ConfirmDialog.js.map +2 -2
- package/dist/commands/plugin/ErrorView.js +2 -1
- package/dist/commands/plugin/ErrorView.js.map +2 -2
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +5 -4
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +2 -2
- package/dist/commands/plugin/InstalledPluginsManager.js +5 -4
- package/dist/commands/plugin/InstalledPluginsManager.js.map +2 -2
- package/dist/commands/plugin/MainMenu.js +2 -1
- package/dist/commands/plugin/MainMenu.js.map +2 -2
- package/dist/commands/plugin/MarketplaceManager.js +5 -4
- package/dist/commands/plugin/MarketplaceManager.js.map +2 -2
- package/dist/commands/plugin/MarketplaceSelector.js +4 -3
- package/dist/commands/plugin/MarketplaceSelector.js.map +2 -2
- package/dist/commands/plugin/PlaceholderScreen.js +3 -2
- package/dist/commands/plugin/PlaceholderScreen.js.map +2 -2
- package/dist/commands/plugin/PluginBrowser.js +6 -5
- package/dist/commands/plugin/PluginBrowser.js.map +2 -2
- package/dist/commands/plugin/PluginDetailsInstall.js +5 -4
- package/dist/commands/plugin/PluginDetailsInstall.js.map +2 -2
- package/dist/commands/plugin/PluginDetailsManage.js +4 -3
- package/dist/commands/plugin/PluginDetailsManage.js.map +2 -2
- package/dist/commands/plugin.js +16 -15
- package/dist/commands/plugin.js.map +2 -2
- package/dist/commands/quit.js +3 -1
- package/dist/commands/quit.js.map +2 -2
- package/dist/commands/sandbox.js +105 -0
- package/dist/commands/sandbox.js.map +7 -0
- package/dist/commands/setup.js +2 -1
- package/dist/commands/setup.js.map +2 -2
- package/dist/commands/status.js +59 -0
- package/dist/commands/status.js.map +7 -0
- package/dist/commands/tasks.js +108 -0
- package/dist/commands/tasks.js.map +7 -0
- package/dist/commands/todos.js +123 -0
- package/dist/commands/todos.js.map +7 -0
- package/dist/commands/undo.js +245 -0
- package/dist/commands/undo.js.map +7 -0
- package/dist/commands.js +22 -2
- package/dist/commands.js.map +2 -2
- package/dist/components/AgentThinkingBlock.js +10 -18
- package/dist/components/AgentThinkingBlock.js.map +2 -2
- package/dist/components/AsciiLogo.js +7 -8
- package/dist/components/AsciiLogo.js.map +2 -2
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js +3 -2
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js.map +2 -2
- package/dist/components/AskUserQuestionDialog/QuestionView.js +2 -1
- package/dist/components/AskUserQuestionDialog/QuestionView.js.map +2 -2
- package/dist/components/BackgroundTasksPanel.js +78 -29
- package/dist/components/BackgroundTasksPanel.js.map +2 -2
- package/dist/components/BashStreamingProgress.js +24 -0
- package/dist/components/BashStreamingProgress.js.map +7 -0
- package/dist/components/CollapsibleHint.js +15 -0
- package/dist/components/CollapsibleHint.js.map +7 -0
- package/dist/components/Config.js +3 -2
- package/dist/components/Config.js.map +2 -2
- package/dist/components/ConsoleOAuthFlow.js +2 -1
- package/dist/components/ConsoleOAuthFlow.js.map +2 -2
- package/dist/components/Cost.js +2 -1
- package/dist/components/Cost.js.map +2 -2
- package/dist/components/FileEditToolUpdatedMessage.js +1 -1
- package/dist/components/FileEditToolUpdatedMessage.js.map +2 -2
- package/dist/components/HeaderBar.js +13 -8
- package/dist/components/HeaderBar.js.map +2 -2
- package/dist/components/HistorySearchOverlay.js +4 -3
- package/dist/components/HistorySearchOverlay.js.map +2 -2
- package/dist/components/HotkeyHelpPanel.js +134 -0
- package/dist/components/HotkeyHelpPanel.js.map +7 -0
- package/dist/components/InvalidConfigDialog.js +2 -1
- package/dist/components/InvalidConfigDialog.js.map +2 -2
- package/dist/components/Logo.js +24 -68
- package/dist/components/Logo.js.map +2 -2
- package/dist/components/MCPServerApprovalDialog.js +2 -1
- package/dist/components/MCPServerApprovalDialog.js.map +2 -2
- package/dist/components/MCPServerDialogCopy.js +2 -1
- package/dist/components/MCPServerDialogCopy.js.map +2 -2
- package/dist/components/MCPServerMultiselectDialog.js +2 -1
- package/dist/components/MCPServerMultiselectDialog.js.map +2 -2
- package/dist/components/Message.js +23 -7
- package/dist/components/Message.js.map +3 -3
- package/dist/components/MessageSelector.js +4 -3
- package/dist/components/MessageSelector.js.map +2 -2
- package/dist/components/ModeIndicator.js +2 -1
- package/dist/components/ModeIndicator.js.map +2 -2
- package/dist/components/ModelConfig.js +20 -6
- package/dist/components/ModelConfig.js.map +2 -2
- package/dist/components/ModelListManager.js +7 -6
- package/dist/components/ModelListManager.js.map +2 -2
- package/dist/components/ModelSelector/ModelSelector.js +27 -14
- package/dist/components/ModelSelector/ModelSelector.js.map +2 -2
- package/dist/components/Onboarding.js +22 -16
- package/dist/components/Onboarding.js.map +2 -2
- package/dist/components/OperationSummary.js +130 -0
- package/dist/components/OperationSummary.js.map +7 -0
- package/dist/components/ProgressBar.js +74 -0
- package/dist/components/ProgressBar.js.map +7 -0
- package/dist/components/PromptInput.js +210 -87
- package/dist/components/PromptInput.js.map +2 -2
- package/dist/components/RequestStatusIndicator.js +194 -0
- package/dist/components/RequestStatusIndicator.js.map +7 -0
- package/dist/components/SensitiveFileWarning.js +31 -0
- package/dist/components/SensitiveFileWarning.js.map +7 -0
- package/dist/components/Spinner.js +141 -27
- package/dist/components/Spinner.js.map +2 -2
- package/dist/components/SpinnerSymbol.js +21 -27
- package/dist/components/SpinnerSymbol.js.map +2 -2
- package/dist/components/StreamingBashOutput.js +9 -8
- package/dist/components/StreamingBashOutput.js.map +2 -2
- package/dist/components/StructuredDiff.js +6 -8
- package/dist/components/StructuredDiff.js.map +2 -2
- package/dist/components/SubagentBlock.js +5 -3
- package/dist/components/SubagentBlock.js.map +2 -2
- package/dist/components/SubagentProgress.js +17 -15
- package/dist/components/SubagentProgress.js.map +2 -2
- package/dist/components/TaskCard.js +30 -24
- package/dist/components/TaskCard.js.map +2 -2
- package/dist/components/TextInput.js +9 -1
- package/dist/components/TextInput.js.map +2 -2
- package/dist/components/TodoChangeBlock.js +1 -1
- package/dist/components/TodoChangeBlock.js.map +2 -2
- package/dist/components/TodoPanel.js +140 -31
- package/dist/components/TodoPanel.js.map +3 -3
- package/dist/components/TokenCounter.js +74 -0
- package/dist/components/TokenCounter.js.map +7 -0
- package/dist/components/TokenWarning.js +2 -1
- package/dist/components/TokenWarning.js.map +2 -2
- package/dist/components/ToolUseLoader.js +2 -2
- package/dist/components/ToolUseLoader.js.map +2 -2
- package/dist/components/TreeConnector.js +26 -0
- package/dist/components/TreeConnector.js.map +7 -0
- package/dist/components/TrustDialog.js +2 -1
- package/dist/components/TrustDialog.js.map +2 -2
- package/dist/components/TurnCompletionIndicator.js +18 -0
- package/dist/components/TurnCompletionIndicator.js.map +7 -0
- package/dist/components/binary-feedback/BinaryFeedbackView.js +2 -1
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +2 -2
- package/dist/components/messages/AssistantTextMessage.js +20 -9
- package/dist/components/messages/AssistantTextMessage.js.map +2 -2
- package/dist/components/messages/AssistantThinkingMessage.js +18 -3
- package/dist/components/messages/AssistantThinkingMessage.js.map +2 -2
- package/dist/components/messages/AssistantToolUseMessage.js +17 -10
- package/dist/components/messages/AssistantToolUseMessage.js.map +2 -2
- package/dist/components/messages/GroupRenderer.js +54 -0
- package/dist/components/messages/GroupRenderer.js.map +7 -0
- package/dist/components/messages/NestedTasksPreview.js +24 -0
- package/dist/components/messages/NestedTasksPreview.js.map +7 -0
- package/dist/components/messages/ParallelTasksGroupView.js +93 -0
- package/dist/components/messages/ParallelTasksGroupView.js.map +7 -0
- package/dist/components/messages/TaskInModuleView.js +218 -0
- package/dist/components/messages/TaskInModuleView.js.map +7 -0
- package/dist/components/messages/TaskOutputContent.js +56 -0
- package/dist/components/messages/TaskOutputContent.js.map +7 -0
- package/dist/components/messages/UserPromptMessage.js +2 -2
- package/dist/components/messages/UserPromptMessage.js.map +2 -2
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +2 -3
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +2 -2
- package/dist/components/permissions/FallbackPermissionRequest.js +4 -4
- package/dist/components/permissions/FallbackPermissionRequest.js.map +2 -2
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +4 -4
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +2 -2
- package/dist/constants/colors.js +120 -54
- package/dist/constants/colors.js.map +2 -2
- package/dist/constants/formatRules.js +102 -0
- package/dist/constants/formatRules.js.map +7 -0
- package/dist/constants/prompts.js +12 -34
- package/dist/constants/prompts.js.map +2 -2
- package/dist/constants/symbols.js +64 -6
- package/dist/constants/symbols.js.map +2 -2
- package/dist/constants/timing.js +5 -0
- package/dist/constants/timing.js.map +2 -2
- package/dist/constants/toolInputExamples.js +84 -0
- package/dist/constants/toolInputExamples.js.map +7 -0
- package/dist/core/backupManager.js +321 -0
- package/dist/core/backupManager.js.map +7 -0
- package/dist/core/config/defaults.js +84 -0
- package/dist/core/config/defaults.js.map +7 -0
- package/dist/core/config/index.js +111 -0
- package/dist/core/config/index.js.map +7 -0
- package/dist/core/config/loader.js +221 -0
- package/dist/core/config/loader.js.map +7 -0
- package/dist/core/config/migrations.js +128 -0
- package/dist/core/config/migrations.js.map +7 -0
- package/dist/core/config/schema.js +178 -0
- package/dist/core/config/schema.js.map +7 -0
- package/dist/core/costTracker.js +129 -0
- package/dist/core/costTracker.js.map +7 -0
- package/dist/core/gitAutoCommit.js +287 -0
- package/dist/core/gitAutoCommit.js.map +7 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +7 -0
- package/dist/core/operationTracker.js +212 -0
- package/dist/core/operationTracker.js.map +7 -0
- package/dist/core/permissions/auditLog.js +204 -0
- package/dist/core/permissions/auditLog.js.map +7 -0
- package/dist/core/permissions/engine/index.js +3 -0
- package/dist/core/permissions/engine/index.js.map +7 -0
- package/dist/core/permissions/engine/permissionEngine.js +106 -0
- package/dist/core/permissions/engine/permissionEngine.js.map +7 -0
- package/dist/core/permissions/engine/types.js +1 -0
- package/dist/core/permissions/engine/types.js.map +7 -0
- package/dist/core/permissions/index.js +84 -0
- package/dist/core/permissions/index.js.map +7 -0
- package/dist/core/permissions/ruleEngine.js +259 -0
- package/dist/core/permissions/ruleEngine.js.map +7 -0
- package/dist/core/permissions/rules/allowedToolsRule.js +62 -0
- package/dist/core/permissions/rules/allowedToolsRule.js.map +7 -0
- package/dist/core/permissions/rules/autoEscalationRule.js +296 -0
- package/dist/core/permissions/rules/autoEscalationRule.js.map +7 -0
- package/dist/core/permissions/rules/index.js +46 -0
- package/dist/core/permissions/rules/index.js.map +7 -0
- package/dist/core/permissions/rules/planModeRule.js +55 -0
- package/dist/core/permissions/rules/planModeRule.js.map +7 -0
- package/dist/core/permissions/rules/projectBoundaryRule.js +173 -0
- package/dist/core/permissions/rules/projectBoundaryRule.js.map +7 -0
- package/dist/core/permissions/rules/safeModeRule.js +65 -0
- package/dist/core/permissions/rules/safeModeRule.js.map +7 -0
- package/dist/core/permissions/rules/sensitivePathsRule.js +345 -0
- package/dist/core/permissions/rules/sensitivePathsRule.js.map +7 -0
- package/dist/core/permissions/types.js +127 -0
- package/dist/core/permissions/types.js.map +7 -0
- package/dist/core/tokenStats.js +9 -0
- package/dist/core/tokenStats.js.map +7 -0
- package/dist/core/tokenStatsManager.js +331 -0
- package/dist/core/tokenStatsManager.js.map +7 -0
- package/dist/core/tools/executor.js +143 -0
- package/dist/core/tools/executor.js.map +7 -0
- package/dist/core/tools/index.js +15 -0
- package/dist/core/tools/index.js.map +7 -0
- package/dist/core/tools/registry.js +183 -0
- package/dist/core/tools/registry.js.map +7 -0
- package/dist/core/tools/types.js +1 -0
- package/dist/core/tools/types.js.map +7 -0
- package/dist/cost-tracker.js +23 -15
- package/dist/cost-tracker.js.map +2 -2
- package/dist/entrypoints/cli.js +158 -130
- package/dist/entrypoints/cli.js.map +2 -2
- package/dist/entrypoints/mcp.js +12 -4
- package/dist/entrypoints/mcp.js.map +2 -2
- package/dist/history.js +14 -3
- package/dist/history.js.map +2 -2
- package/dist/hooks/useAgentTokenStats.js +72 -0
- package/dist/hooks/useAgentTokenStats.js.map +7 -0
- package/dist/hooks/useAgentTranscripts.js +140 -0
- package/dist/hooks/useAgentTranscripts.js.map +7 -0
- package/dist/hooks/useAnimationSync.js +53 -0
- package/dist/hooks/useAnimationSync.js.map +7 -0
- package/dist/hooks/useArrowKeyHistory.js +4 -2
- package/dist/hooks/useArrowKeyHistory.js.map +2 -2
- package/dist/hooks/useCanUseTool.js +3 -1
- package/dist/hooks/useCanUseTool.js.map +2 -2
- package/dist/hooks/useExitOnCtrlCD.js +9 -5
- package/dist/hooks/useExitOnCtrlCD.js.map +2 -2
- package/dist/hooks/useHookStatus.js +40 -0
- package/dist/hooks/useHookStatus.js.map +7 -0
- package/dist/hooks/useLogMessages.js +29 -2
- package/dist/hooks/useLogMessages.js.map +2 -2
- package/dist/hooks/useMessageGroups.js +43 -0
- package/dist/hooks/useMessageGroups.js.map +7 -0
- package/dist/hooks/useTerminalSize.js +62 -6
- package/dist/hooks/useTerminalSize.js.map +2 -2
- package/dist/hooks/useUnifiedCompletion.js +69 -0
- package/dist/hooks/useUnifiedCompletion.js.map +2 -2
- package/dist/i18n/index.js +109 -0
- package/dist/i18n/index.js.map +7 -0
- package/dist/i18n/locales/en.js +348 -0
- package/dist/i18n/locales/en.js.map +7 -0
- package/dist/i18n/locales/index.js +7 -0
- package/dist/i18n/locales/index.js.map +7 -0
- package/dist/i18n/locales/zh-CN.js +348 -0
- package/dist/i18n/locales/zh-CN.js.map +7 -0
- package/dist/i18n/types.js +8 -0
- package/dist/i18n/types.js.map +7 -0
- package/dist/permissions.js +28 -1
- package/dist/permissions.js.map +2 -2
- package/dist/query.js +253 -21
- package/dist/query.js.map +3 -3
- package/dist/screens/REPL.js +523 -194
- package/dist/screens/REPL.js.map +3 -3
- package/dist/services/adapters/chatCompletions.js +3 -1
- package/dist/services/adapters/chatCompletions.js.map +2 -2
- package/dist/services/adapters/messageNormalizer.js +354 -0
- package/dist/services/adapters/messageNormalizer.js.map +7 -0
- package/dist/services/adapters/responsesAPI.js +6 -3
- package/dist/services/adapters/responsesAPI.js.map +2 -2
- package/dist/services/checkpointManager.js +386 -0
- package/dist/services/checkpointManager.js.map +7 -0
- package/dist/services/claude.js +192 -14
- package/dist/services/claude.js.map +3 -3
- package/dist/services/compressionService.js +50 -1
- package/dist/services/compressionService.js.map +2 -2
- package/dist/services/contextMonitor.js +162 -0
- package/dist/services/contextMonitor.js.map +7 -0
- package/dist/services/customCommands.js +60 -41
- package/dist/services/customCommands.js.map +2 -2
- package/dist/services/hookExecutor.js +173 -1
- package/dist/services/hookExecutor.js.map +2 -2
- package/dist/services/intelligentCompactor.js +281 -0
- package/dist/services/intelligentCompactor.js.map +7 -0
- package/dist/services/lspConfig.js +109 -0
- package/dist/services/lspConfig.js.map +7 -0
- package/dist/services/mcpClient.js +338 -43
- package/dist/services/mcpClient.js.map +2 -2
- package/dist/services/modelOrchestrator.js +310 -0
- package/dist/services/modelOrchestrator.js.map +7 -0
- package/dist/services/openai.js +8 -1
- package/dist/services/openai.js.map +2 -2
- package/dist/services/outputStyles.js +138 -0
- package/dist/services/outputStyles.js.map +7 -0
- package/dist/services/plugins/index.js +5 -0
- package/dist/services/plugins/index.js.map +7 -0
- package/dist/services/plugins/lspServers.js +188 -0
- package/dist/services/plugins/lspServers.js.map +7 -0
- package/dist/services/plugins/pluginRuntime.js +229 -0
- package/dist/services/plugins/pluginRuntime.js.map +7 -0
- package/dist/services/plugins/pluginValidation.js +219 -0
- package/dist/services/plugins/pluginValidation.js.map +7 -0
- package/dist/services/plugins/skillMarketplace.js +556 -0
- package/dist/services/plugins/skillMarketplace.js.map +7 -0
- package/dist/services/responseStateManager.js +37 -3
- package/dist/services/responseStateManager.js.map +2 -2
- package/dist/services/sandbox/filesystemBoundary.js +341 -0
- package/dist/services/sandbox/filesystemBoundary.js.map +7 -0
- package/dist/services/sandbox/index.js +14 -0
- package/dist/services/sandbox/index.js.map +7 -0
- package/dist/services/sandbox/networkProxy.js +293 -0
- package/dist/services/sandbox/networkProxy.js.map +7 -0
- package/dist/services/sandbox/sandboxController.js +574 -0
- package/dist/services/sandbox/sandboxController.js.map +7 -0
- package/dist/services/sandbox/types.js +50 -0
- package/dist/services/sandbox/types.js.map +7 -0
- package/dist/services/sessionMemory.js +266 -0
- package/dist/services/sessionMemory.js.map +7 -0
- package/dist/services/taskRouter.js +324 -0
- package/dist/services/taskRouter.js.map +7 -0
- package/dist/tools/ArchitectTool/ArchitectTool.js +7 -1
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +2 -2
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +6 -2
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +2 -2
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js +2 -1
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +2 -2
- package/dist/tools/BaseTool.js +72 -0
- package/dist/tools/BaseTool.js.map +7 -0
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +3 -0
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +2 -2
- package/dist/tools/BashTool/BashTool.js +79 -3
- package/dist/tools/BashTool/BashTool.js.map +2 -2
- package/dist/tools/BashTool/BashToolResultMessage.js +3 -0
- package/dist/tools/BashTool/BashToolResultMessage.js.map +2 -2
- package/dist/tools/BashTool/OutputLine.js +54 -0
- package/dist/tools/BashTool/OutputLine.js.map +2 -2
- package/dist/tools/BashTool/prompt.js +336 -3
- package/dist/tools/BashTool/prompt.js.map +2 -2
- package/dist/tools/FileEditTool/FileEditTool.js +29 -4
- package/dist/tools/FileEditTool/FileEditTool.js.map +2 -2
- package/dist/tools/FileEditTool/prompt.js +6 -3
- package/dist/tools/FileEditTool/prompt.js.map +2 -2
- package/dist/tools/FileWriteTool/FileWriteTool.js +5 -5
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +2 -2
- package/dist/tools/FileWriteTool/prompt.js +4 -2
- package/dist/tools/FileWriteTool/prompt.js.map +2 -2
- package/dist/tools/GlobTool/GlobTool.js +4 -2
- package/dist/tools/GlobTool/GlobTool.js.map +2 -2
- package/dist/tools/GrepTool/GrepTool.js +36 -7
- package/dist/tools/GrepTool/GrepTool.js.map +2 -2
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js +3 -0
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +2 -2
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +109 -0
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +7 -0
- package/dist/tools/ListMcpResourcesTool/prompt.js +19 -0
- package/dist/tools/ListMcpResourcesTool/prompt.js.map +7 -0
- package/dist/tools/LspTool/LspTool.js +664 -0
- package/dist/tools/LspTool/LspTool.js.map +7 -0
- package/dist/tools/LspTool/prompt.js +27 -0
- package/dist/tools/LspTool/prompt.js.map +7 -0
- package/dist/tools/MCPTool/MCPTool.js +9 -1
- package/dist/tools/MCPTool/MCPTool.js.map +2 -2
- package/dist/tools/MemoryReadTool/MemoryReadTool.js +19 -6
- package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +2 -2
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +6 -6
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +2 -2
- package/dist/tools/MultiEditTool/MultiEditTool.js +19 -2
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +2 -2
- package/dist/tools/MultiEditTool/prompt.js +5 -3
- package/dist/tools/MultiEditTool/prompt.js.map +2 -2
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +7 -2
- package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +2 -2
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +2 -2
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js +75 -0
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +7 -0
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js +109 -0
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +7 -0
- package/dist/tools/PlanModeTool/prompt.js +94 -0
- package/dist/tools/PlanModeTool/prompt.js.map +7 -0
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +130 -0
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js.map +7 -0
- package/dist/tools/ReadMcpResourceTool/prompt.js +17 -0
- package/dist/tools/ReadMcpResourceTool/prompt.js.map +7 -0
- package/dist/tools/SkillTool/SkillTool.js +10 -4
- package/dist/tools/SkillTool/SkillTool.js.map +2 -2
- package/dist/tools/SkillTool/prompt.js +1 -1
- package/dist/tools/SkillTool/prompt.js.map +1 -1
- package/dist/tools/SlashCommandTool/SlashCommandTool.js +260 -0
- package/dist/tools/SlashCommandTool/SlashCommandTool.js.map +7 -0
- package/dist/tools/SlashCommandTool/prompt.js +35 -0
- package/dist/tools/SlashCommandTool/prompt.js.map +7 -0
- package/dist/tools/TaskOutputTool/TaskOutputTool.js +190 -0
- package/dist/tools/TaskOutputTool/TaskOutputTool.js.map +7 -0
- package/dist/tools/TaskOutputTool/prompt.js +15 -0
- package/dist/tools/TaskOutputTool/prompt.js.map +7 -0
- package/dist/tools/TaskTool/TaskTool.js +310 -104
- package/dist/tools/TaskTool/TaskTool.js.map +2 -2
- package/dist/tools/TaskTool/prompt.js.map +2 -2
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +42 -77
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +2 -2
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +4 -1
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +2 -2
- package/dist/tools/URLFetcherTool/cache.js +55 -8
- package/dist/tools/URLFetcherTool/cache.js.map +2 -2
- package/dist/tools.js +31 -2
- package/dist/tools.js.map +2 -2
- package/dist/types/hooks.js +4 -0
- package/dist/types/hooks.js.map +2 -2
- package/dist/types/marketplace.js.map +2 -2
- package/dist/types/messageGroup.js +36 -0
- package/dist/types/messageGroup.js.map +7 -0
- package/dist/types/plugin.js.map +2 -2
- package/dist/types/thinking.js +1 -0
- package/dist/types/thinking.js.map +7 -0
- package/dist/utils/BackgroundShellManager.js +136 -39
- package/dist/utils/BackgroundShellManager.js.map +2 -2
- package/dist/utils/CircuitBreaker.js +242 -0
- package/dist/utils/CircuitBreaker.js.map +7 -0
- package/dist/utils/MessageBatchBuffer.js +102 -0
- package/dist/utils/MessageBatchBuffer.js.map +7 -0
- package/dist/utils/PersistentShell.js +151 -1
- package/dist/utils/PersistentShell.js.map +2 -2
- package/dist/utils/agentLoader.js +1 -23
- package/dist/utils/agentLoader.js.map +2 -2
- package/dist/utils/agentTranscripts.js +641 -0
- package/dist/utils/agentTranscripts.js.map +7 -0
- package/dist/utils/animationManager.js +213 -0
- package/dist/utils/animationManager.js.map +7 -0
- package/dist/utils/animationSync.js +110 -0
- package/dist/utils/animationSync.js.map +7 -0
- package/dist/utils/ask.js +2 -0
- package/dist/utils/ask.js.map +2 -2
- package/dist/utils/asyncFile.js +215 -0
- package/dist/utils/asyncFile.js.map +7 -0
- package/dist/utils/backgroundAgentManager.js +231 -0
- package/dist/utils/backgroundAgentManager.js.map +7 -0
- package/dist/utils/config.js +108 -10
- package/dist/utils/config.js.map +2 -2
- package/dist/utils/conversationRecovery.js +19 -0
- package/dist/utils/conversationRecovery.js.map +2 -2
- package/dist/utils/credentials/CredentialStore.js +1 -0
- package/dist/utils/credentials/CredentialStore.js.map +7 -0
- package/dist/utils/credentials/EncryptedFileStore.js +157 -0
- package/dist/utils/credentials/EncryptedFileStore.js.map +7 -0
- package/dist/utils/credentials/index.js +37 -0
- package/dist/utils/credentials/index.js.map +7 -0
- package/dist/utils/credentials/migration.js +82 -0
- package/dist/utils/credentials/migration.js.map +7 -0
- package/dist/utils/exit.js +73 -0
- package/dist/utils/exit.js.map +7 -0
- package/dist/utils/format.js +73 -5
- package/dist/utils/format.js.map +2 -2
- package/dist/utils/generators.js +76 -6
- package/dist/utils/generators.js.map +2 -2
- package/dist/utils/globalErrorHandler.js +149 -0
- package/dist/utils/globalErrorHandler.js.map +7 -0
- package/dist/utils/groupHandlers/index.js +8 -0
- package/dist/utils/groupHandlers/index.js.map +7 -0
- package/dist/utils/groupHandlers/parallelTasksHandler.js +140 -0
- package/dist/utils/groupHandlers/parallelTasksHandler.js.map +7 -0
- package/dist/utils/groupHandlers/taskHandler.js +104 -0
- package/dist/utils/groupHandlers/taskHandler.js.map +7 -0
- package/dist/utils/groupHandlers/types.js +1 -0
- package/dist/utils/groupHandlers/types.js.map +7 -0
- package/dist/utils/logRotation.js +224 -0
- package/dist/utils/logRotation.js.map +7 -0
- package/dist/utils/markdown.js +13 -1
- package/dist/utils/markdown.js.map +2 -2
- package/dist/utils/marketplaceManager.js +3 -5
- package/dist/utils/marketplaceManager.js.map +2 -2
- package/dist/utils/memSafety.js +264 -0
- package/dist/utils/memSafety.js.map +7 -0
- package/dist/utils/messageGroupManager.js +274 -0
- package/dist/utils/messageGroupManager.js.map +7 -0
- package/dist/utils/messages.js +13 -4
- package/dist/utils/messages.js.map +2 -2
- package/dist/utils/model.js +119 -15
- package/dist/utils/model.js.map +3 -3
- package/dist/utils/permissions/filesystem.js +162 -6
- package/dist/utils/permissions/filesystem.js.map +2 -2
- package/dist/utils/plan/planMode.js +143 -0
- package/dist/utils/plan/planMode.js.map +7 -0
- package/dist/utils/pluginLoader.js +17 -21
- package/dist/utils/pluginLoader.js.map +2 -2
- package/dist/utils/ripgrep.js +55 -2
- package/dist/utils/ripgrep.js.map +2 -2
- package/dist/utils/safePath.js +132 -0
- package/dist/utils/safePath.js.map +7 -0
- package/dist/utils/sanitizeInput.js +32 -0
- package/dist/utils/sanitizeInput.js.map +7 -0
- package/dist/utils/secureKeyStorage.js +312 -0
- package/dist/utils/secureKeyStorage.js.map +7 -0
- package/dist/utils/sensitiveFiles.js +125 -0
- package/dist/utils/sensitiveFiles.js.map +7 -0
- package/dist/utils/session/sessionPlugins.js +67 -0
- package/dist/utils/session/sessionPlugins.js.map +7 -0
- package/dist/utils/taskDisplayUtils.js +257 -0
- package/dist/utils/taskDisplayUtils.js.map +7 -0
- package/dist/utils/teamConfig.js +2 -1
- package/dist/utils/teamConfig.js.map +2 -2
- package/dist/utils/theme.js +6 -6
- package/dist/utils/theme.js.map +1 -1
- package/dist/utils/todoStorage.js +92 -2
- package/dist/utils/todoStorage.js.map +2 -2
- package/dist/utils/toolRiskClassification.js +207 -0
- package/dist/utils/toolRiskClassification.js.map +7 -0
- package/dist/utils/toolTimeout.js +136 -0
- package/dist/utils/toolTimeout.js.map +7 -0
- package/dist/utils/tooling/safeRender.js +116 -0
- package/dist/utils/tooling/safeRender.js.map +7 -0
- package/dist/utils/userFriendlyError.js +346 -0
- package/dist/utils/userFriendlyError.js.map +7 -0
- package/dist/utils/vendor/ripgrep/arm64-darwin/rg +0 -0
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +17 -5
- package/scripts/postinstall.js +128 -38
- package/dist/commands/agents.js +0 -2086
- package/dist/commands/agents.js.map +0 -7
- package/dist/commands/build.js +0 -74
- package/dist/commands/build.js.map +0 -7
- package/dist/commands/compression.js +0 -57
- package/dist/commands/compression.js.map +0 -7
- package/dist/commands/listen.js +0 -37
- package/dist/commands/listen.js.map +0 -7
- package/dist/commands/login.js +0 -37
- package/dist/commands/login.js.map +0 -7
- package/dist/commands/logout.js +0 -33
- package/dist/commands/logout.js.map +0 -7
- package/dist/commands/mcp.js +0 -40
- package/dist/commands/mcp.js.map +0 -7
- package/dist/commands/mcp_refresh.js +0 -40
- package/dist/commands/mcp_refresh.js.map +0 -7
- package/dist/commands/modelstatus.js +0 -21
- package/dist/commands/modelstatus.js.map +0 -7
- package/dist/commands/onboarding.js +0 -36
- package/dist/commands/onboarding.js.map +0 -7
- package/dist/commands/plugin-interactive.js +0 -446
- package/dist/commands/plugin-interactive.js.map +0 -7
- package/dist/commands/pr_comments.js +0 -61
- package/dist/commands/pr_comments.js.map +0 -7
- package/dist/commands/release-notes.js +0 -30
- package/dist/commands/release-notes.js.map +0 -7
- package/dist/commands/review.js +0 -51
- package/dist/commands/review.js.map +0 -7
- package/dist/components/Bug.js +0 -147
- package/dist/components/Bug.js.map +0 -7
- package/dist/components/ModelSelector.js +0 -2062
- package/dist/components/ModelSelector.js.map +0 -7
- package/dist/components/ModelStatusDisplay.js +0 -87
- package/dist/components/ModelStatusDisplay.js.map +0 -7
- package/dist/entrypoints/cli-wrapper.js +0 -61
- package/dist/entrypoints/cli-wrapper.js.map +0 -7
- package/dist/hooks/useCancelRequest.js +0 -28
- package/dist/hooks/useCancelRequest.js.map +0 -7
- package/dist/screens/Doctor.js +0 -22
- package/dist/screens/Doctor.js.map +0 -7
package/dist/services/claude.js
CHANGED
|
@@ -6,7 +6,9 @@ import chalk from "chalk";
|
|
|
6
6
|
import { randomUUID } from "crypto";
|
|
7
7
|
import "dotenv/config";
|
|
8
8
|
import { addToTotalCost } from "../cost-tracker.js";
|
|
9
|
+
import { recordTokenUsage } from "@core/tokenStatsManager";
|
|
9
10
|
import models from "../constants/models.js";
|
|
11
|
+
import { getToolDescriptionAsync } from "../Tool.js";
|
|
10
12
|
import {
|
|
11
13
|
getAnthropicApiKey,
|
|
12
14
|
getOrCreateUserID,
|
|
@@ -43,6 +45,8 @@ import {
|
|
|
43
45
|
} from "./openai.js";
|
|
44
46
|
import { getReasoningEffort } from "../utils/thinking.js";
|
|
45
47
|
import { generateSystemReminders } from "./systemReminder.js";
|
|
48
|
+
import { addRetryEventToTranscript } from "../utils/agentTranscripts.js";
|
|
49
|
+
import { setStreamingState, getStreamingState } from "../components/Spinner.js";
|
|
46
50
|
function isGPT5Model(modelName) {
|
|
47
51
|
return modelName.startsWith("gpt-5");
|
|
48
52
|
}
|
|
@@ -85,7 +89,8 @@ class MintoContextManager {
|
|
|
85
89
|
}
|
|
86
90
|
getMintoContext() {
|
|
87
91
|
if (!this.cacheInitialized) {
|
|
88
|
-
this.initialize().catch(() => {
|
|
92
|
+
this.initialize().catch((error) => {
|
|
93
|
+
debugLogger.warn("MINTO_CONTEXT_INIT_FAILED", { error: String(error) });
|
|
89
94
|
});
|
|
90
95
|
return "";
|
|
91
96
|
}
|
|
@@ -98,7 +103,8 @@ class MintoContextManager {
|
|
|
98
103
|
}
|
|
99
104
|
}
|
|
100
105
|
const mintoContextManager = MintoContextManager.getInstance();
|
|
101
|
-
mintoContextManager.initialize().catch(() => {
|
|
106
|
+
mintoContextManager.initialize().catch((error) => {
|
|
107
|
+
debugLogger.warn("MINTO_CONTEXT_MODULE_INIT_FAILED", { error: String(error) });
|
|
102
108
|
});
|
|
103
109
|
const generateMintoContext = () => {
|
|
104
110
|
return mintoContextManager.getMintoContext();
|
|
@@ -166,9 +172,31 @@ async function withRetry(operation, options = {}) {
|
|
|
166
172
|
}
|
|
167
173
|
const retryAfter = error.headers?.["retry-after"] ?? null;
|
|
168
174
|
const delayMs = getRetryDelay(attempt, retryAfter);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
175
|
+
setStreamingState({
|
|
176
|
+
phase: "retrying",
|
|
177
|
+
retryCount: attempt,
|
|
178
|
+
maxRetries,
|
|
179
|
+
errorName: error.name
|
|
180
|
+
});
|
|
181
|
+
debugLogger.flow("API_RETRY_ATTEMPT", {
|
|
182
|
+
attempt,
|
|
183
|
+
maxRetries,
|
|
184
|
+
errorName: error.name,
|
|
185
|
+
errorMessage: error.message,
|
|
186
|
+
delayMs
|
|
187
|
+
});
|
|
188
|
+
if (options.onRetry) {
|
|
189
|
+
options.onRetry({
|
|
190
|
+
attempt,
|
|
191
|
+
maxRetries,
|
|
192
|
+
error,
|
|
193
|
+
delayMs
|
|
194
|
+
});
|
|
195
|
+
} else {
|
|
196
|
+
console.log(
|
|
197
|
+
` \u23BF ${chalk.red(`API ${error.name} (${error.message}) \xB7 Retrying in ${Math.round(delayMs / 1e3)} seconds\u2026 (attempt ${attempt}/${maxRetries})`)}`
|
|
198
|
+
);
|
|
199
|
+
}
|
|
172
200
|
try {
|
|
173
201
|
await abortableDelay(delayMs, options.signal);
|
|
174
202
|
} catch (delayError) {
|
|
@@ -441,8 +469,12 @@ async function handleMessageStream(stream, signal) {
|
|
|
441
469
|
if (!object) {
|
|
442
470
|
object = chunk.object;
|
|
443
471
|
}
|
|
444
|
-
if (!usage) {
|
|
472
|
+
if (!usage && chunk.usage) {
|
|
445
473
|
usage = chunk.usage;
|
|
474
|
+
setStreamingState({
|
|
475
|
+
inputTokens: chunk.usage.prompt_tokens,
|
|
476
|
+
outputTokens: chunk.usage.completion_tokens
|
|
477
|
+
});
|
|
446
478
|
}
|
|
447
479
|
message = messageReducer(message, chunk);
|
|
448
480
|
if (chunk?.choices?.[0]?.delta?.content) {
|
|
@@ -512,9 +544,24 @@ function convertOpenAIResponseToAnthropic(response, _tools) {
|
|
|
512
544
|
const tool = toolCall.function;
|
|
513
545
|
const toolName = tool?.name;
|
|
514
546
|
let toolArgs = {};
|
|
547
|
+
let parseError = null;
|
|
515
548
|
try {
|
|
516
549
|
toolArgs = tool?.arguments ? JSON.parse(tool.arguments) : {};
|
|
517
550
|
} catch (e) {
|
|
551
|
+
parseError = e instanceof Error ? e.message : String(e);
|
|
552
|
+
debugLogger.warn("TOOL_ARGUMENTS_PARSE_ERROR", {
|
|
553
|
+
toolName,
|
|
554
|
+
rawArguments: tool?.arguments?.substring(0, 200),
|
|
555
|
+
// Limit log size
|
|
556
|
+
errorMessage: parseError
|
|
557
|
+
});
|
|
558
|
+
}
|
|
559
|
+
if (parseError && Object.keys(toolArgs).length === 0) {
|
|
560
|
+
debugLogger.error("TOOL_CALL_EMPTY_ARGUMENTS", {
|
|
561
|
+
toolName,
|
|
562
|
+
parseError,
|
|
563
|
+
suggestion: "Model may have sent malformed JSON. The tool call will likely fail validation."
|
|
564
|
+
});
|
|
518
565
|
}
|
|
519
566
|
contentBlocks.push({
|
|
520
567
|
type: "tool_use",
|
|
@@ -953,7 +1000,8 @@ async function queryAnthropicNative(messages, systemPrompt, maxThinkingTokens, t
|
|
|
953
1000
|
tools.map(
|
|
954
1001
|
async (tool) => ({
|
|
955
1002
|
name: tool.name,
|
|
956
|
-
|
|
1003
|
+
// Use getToolDescriptionAsync for consistent async access
|
|
1004
|
+
description: await getToolDescriptionAsync(tool),
|
|
957
1005
|
input_schema: "inputJSONSchema" in tool && tool.inputJSONSchema ? tool.inputJSONSchema : zodToJsonSchema(tool.inputSchema)
|
|
958
1006
|
})
|
|
959
1007
|
)
|
|
@@ -1042,12 +1090,32 @@ async function queryAnthropicNative(messages, systemPrompt, maxThinkingTokens, t
|
|
|
1042
1090
|
content: []
|
|
1043
1091
|
// Will be populated from content blocks
|
|
1044
1092
|
};
|
|
1093
|
+
setStreamingState({
|
|
1094
|
+
inputTokens: event.message.usage?.input_tokens,
|
|
1095
|
+
receivedChars: 0
|
|
1096
|
+
// Reset for new request
|
|
1097
|
+
});
|
|
1045
1098
|
break;
|
|
1046
1099
|
case "content_block_start":
|
|
1047
1100
|
contentBlocks[event.index] = { ...event.content_block };
|
|
1048
1101
|
if (event.content_block.type === "tool_use") {
|
|
1049
1102
|
inputJSONBuffers.set(event.index, "");
|
|
1050
1103
|
}
|
|
1104
|
+
if (event.content_block.type === "thinking") {
|
|
1105
|
+
const thinkingStartTime = Date.now();
|
|
1106
|
+
setStreamingState({
|
|
1107
|
+
phase: "deep_thinking",
|
|
1108
|
+
tokenCount: 0,
|
|
1109
|
+
thinkingMaxTokens: maxThinkingTokens,
|
|
1110
|
+
thinkingStartTime
|
|
1111
|
+
// NEW: Record start time for duration tracking
|
|
1112
|
+
});
|
|
1113
|
+
debugLogger.flow("THINKING_BLOCK_START", {
|
|
1114
|
+
index: event.index,
|
|
1115
|
+
maxTokens: maxThinkingTokens,
|
|
1116
|
+
startTime: thinkingStartTime
|
|
1117
|
+
});
|
|
1118
|
+
}
|
|
1051
1119
|
break;
|
|
1052
1120
|
case "content_block_delta":
|
|
1053
1121
|
const blockIndex = event.index;
|
|
@@ -1062,12 +1130,32 @@ async function queryAnthropicNative(messages, systemPrompt, maxThinkingTokens, t
|
|
|
1062
1130
|
}
|
|
1063
1131
|
if (event.delta.type === "text_delta") {
|
|
1064
1132
|
contentBlocks[blockIndex].text += event.delta.text;
|
|
1133
|
+
const currentState = getStreamingState();
|
|
1134
|
+
setStreamingState({
|
|
1135
|
+
receivedChars: (currentState.receivedChars || 0) + event.delta.text.length
|
|
1136
|
+
});
|
|
1065
1137
|
} else if (event.delta.type === "input_json_delta") {
|
|
1066
1138
|
const currentBuffer = inputJSONBuffers.get(blockIndex) || "";
|
|
1067
1139
|
inputJSONBuffers.set(
|
|
1068
1140
|
blockIndex,
|
|
1069
1141
|
currentBuffer + event.delta.partial_json
|
|
1070
1142
|
);
|
|
1143
|
+
} else if (event.delta.type === "thinking_delta") {
|
|
1144
|
+
const currentThinking = contentBlocks[blockIndex].thinking || "";
|
|
1145
|
+
const updatedThinking = currentThinking + (event.delta.thinking || "");
|
|
1146
|
+
contentBlocks[blockIndex] = {
|
|
1147
|
+
...contentBlocks[blockIndex],
|
|
1148
|
+
thinking: updatedThinking
|
|
1149
|
+
};
|
|
1150
|
+
setStreamingState({
|
|
1151
|
+
phase: "deep_thinking",
|
|
1152
|
+
tokenCount: updatedThinking.length,
|
|
1153
|
+
thinkingMaxTokens: maxThinkingTokens
|
|
1154
|
+
});
|
|
1155
|
+
debugLogger.trace("THINKING_DELTA", {
|
|
1156
|
+
index: blockIndex,
|
|
1157
|
+
tokenCount: updatedThinking.length
|
|
1158
|
+
});
|
|
1071
1159
|
}
|
|
1072
1160
|
break;
|
|
1073
1161
|
case "message_delta":
|
|
@@ -1075,23 +1163,47 @@ async function queryAnthropicNative(messages, systemPrompt, maxThinkingTokens, t
|
|
|
1075
1163
|
stopReason = event.delta.stop_reason;
|
|
1076
1164
|
if (event.delta.stop_sequence)
|
|
1077
1165
|
stopSequence = event.delta.stop_sequence;
|
|
1078
|
-
if (event.usage)
|
|
1166
|
+
if (event.usage) {
|
|
1167
|
+
usage = { ...usage, ...event.usage };
|
|
1168
|
+
setStreamingState({
|
|
1169
|
+
outputTokens: event.usage.output_tokens
|
|
1170
|
+
});
|
|
1171
|
+
}
|
|
1079
1172
|
break;
|
|
1080
1173
|
case "content_block_stop":
|
|
1081
1174
|
const stopIndex = event.index;
|
|
1082
1175
|
const block = contentBlocks[stopIndex];
|
|
1176
|
+
if (block?.type === "thinking") {
|
|
1177
|
+
const streamState2 = getStreamingState();
|
|
1178
|
+
const thinkingDurationMs = streamState2.thinkingStartTime ? Date.now() - streamState2.thinkingStartTime : 0;
|
|
1179
|
+
setStreamingState({
|
|
1180
|
+
phase: "generating",
|
|
1181
|
+
thinkingDurationMs
|
|
1182
|
+
// NEW: Store duration for display
|
|
1183
|
+
});
|
|
1184
|
+
debugLogger.flow("THINKING_BLOCK_COMPLETE", {
|
|
1185
|
+
index: stopIndex,
|
|
1186
|
+
finalTokenCount: block.thinking?.length || 0,
|
|
1187
|
+
durationMs: thinkingDurationMs
|
|
1188
|
+
});
|
|
1189
|
+
}
|
|
1083
1190
|
if (block?.type === "tool_use" && inputJSONBuffers.has(stopIndex)) {
|
|
1084
1191
|
const jsonStr = inputJSONBuffers.get(stopIndex);
|
|
1085
1192
|
if (jsonStr) {
|
|
1086
1193
|
try {
|
|
1087
1194
|
block.input = JSON.parse(jsonStr);
|
|
1088
1195
|
} catch (error) {
|
|
1196
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
1089
1197
|
debugLogger.error("JSON_PARSE_ERROR", {
|
|
1090
1198
|
blockIndex: stopIndex,
|
|
1091
|
-
jsonStr,
|
|
1092
|
-
error:
|
|
1199
|
+
jsonStr: jsonStr.length > 500 ? jsonStr.slice(0, 500) + "..." : jsonStr,
|
|
1200
|
+
error: errorMsg
|
|
1093
1201
|
});
|
|
1094
|
-
block.input = {
|
|
1202
|
+
block.input = {
|
|
1203
|
+
__parse_error__: true,
|
|
1204
|
+
__error_message__: `JSON parse failed: ${errorMsg}`,
|
|
1205
|
+
__raw_json_preview__: jsonStr.length > 200 ? jsonStr.slice(0, 200) + "..." : jsonStr
|
|
1206
|
+
};
|
|
1095
1207
|
}
|
|
1096
1208
|
inputJSONBuffers.delete(stopIndex);
|
|
1097
1209
|
}
|
|
@@ -1142,7 +1254,18 @@ async function queryAnthropicNative(messages, systemPrompt, maxThinkingTokens, t
|
|
|
1142
1254
|
});
|
|
1143
1255
|
}
|
|
1144
1256
|
},
|
|
1145
|
-
{
|
|
1257
|
+
{
|
|
1258
|
+
signal,
|
|
1259
|
+
// Pass retry events to agent transcript for UI display
|
|
1260
|
+
onRetry: toolUseContext?.agentId ? ({ attempt, maxRetries, error, delayMs }) => {
|
|
1261
|
+
addRetryEventToTranscript(toolUseContext.agentId, {
|
|
1262
|
+
attempt,
|
|
1263
|
+
maxRetries,
|
|
1264
|
+
errorMessage: error.message,
|
|
1265
|
+
delayMs
|
|
1266
|
+
});
|
|
1267
|
+
} : void 0
|
|
1268
|
+
}
|
|
1146
1269
|
);
|
|
1147
1270
|
debugLogger.api("ANTHROPIC_API_CALL_SUCCESS", {
|
|
1148
1271
|
content: response.content
|
|
@@ -1165,6 +1288,19 @@ async function queryAnthropicNative(messages, systemPrompt, maxThinkingTokens, t
|
|
|
1165
1288
|
}
|
|
1166
1289
|
return block;
|
|
1167
1290
|
});
|
|
1291
|
+
const thinkingBlocks = content.filter(
|
|
1292
|
+
(block) => block.type === "thinking"
|
|
1293
|
+
);
|
|
1294
|
+
const streamState = getStreamingState();
|
|
1295
|
+
const thinkingMetadata = thinkingBlocks.length > 0 ? {
|
|
1296
|
+
charCount: thinkingBlocks.reduce(
|
|
1297
|
+
(sum, b) => sum + (b.thinking?.length || 0),
|
|
1298
|
+
0
|
|
1299
|
+
),
|
|
1300
|
+
durationMs: streamState.thinkingDurationMs || 0,
|
|
1301
|
+
startTime: streamState.thinkingStartTime || Date.now(),
|
|
1302
|
+
isComplete: true
|
|
1303
|
+
} : void 0;
|
|
1168
1304
|
const assistantMessage = {
|
|
1169
1305
|
message: {
|
|
1170
1306
|
id: response.id,
|
|
@@ -1179,8 +1315,9 @@ async function queryAnthropicNative(messages, systemPrompt, maxThinkingTokens, t
|
|
|
1179
1315
|
type: "assistant",
|
|
1180
1316
|
uuid: nanoid(),
|
|
1181
1317
|
durationMs,
|
|
1182
|
-
costUSD: 0
|
|
1318
|
+
costUSD: 0,
|
|
1183
1319
|
// Will be calculated below
|
|
1320
|
+
thinkingMetadata
|
|
1184
1321
|
};
|
|
1185
1322
|
const systemMessages = system.map((block) => ({
|
|
1186
1323
|
role: "system",
|
|
@@ -1207,6 +1344,21 @@ async function queryAnthropicNative(messages, systemPrompt, maxThinkingTokens, t
|
|
|
1207
1344
|
const costUSD = inputTokens / 1e6 * getModelInputTokenCostUSD(model) + outputTokens / 1e6 * getModelOutputTokenCostUSD(model) + cacheCreationInputTokens / 1e6 * getModelInputTokenCostUSD(model) + cacheReadInputTokens / 1e6 * (getModelInputTokenCostUSD(model) * 0.1);
|
|
1208
1345
|
assistantMessage.costUSD = costUSD;
|
|
1209
1346
|
addToTotalCost(costUSD, durationMs);
|
|
1347
|
+
recordTokenUsage(
|
|
1348
|
+
{
|
|
1349
|
+
inputTokens,
|
|
1350
|
+
outputTokens,
|
|
1351
|
+
cacheCreationTokens: cacheCreationInputTokens,
|
|
1352
|
+
cacheReadTokens: cacheReadInputTokens
|
|
1353
|
+
},
|
|
1354
|
+
costUSD,
|
|
1355
|
+
model,
|
|
1356
|
+
toolUseContext ? {
|
|
1357
|
+
agentId: toolUseContext.agentId,
|
|
1358
|
+
toolUseId: toolUseContext.toolUseId,
|
|
1359
|
+
model
|
|
1360
|
+
} : void 0
|
|
1361
|
+
);
|
|
1210
1362
|
return assistantMessage;
|
|
1211
1363
|
} catch (error) {
|
|
1212
1364
|
return getAssistantMessageFromError(error);
|
|
@@ -1451,7 +1603,18 @@ async function queryOpenAI(messages, systemPrompt, maxThinkingTokens, tools, sig
|
|
|
1451
1603
|
);
|
|
1452
1604
|
}
|
|
1453
1605
|
},
|
|
1454
|
-
{
|
|
1606
|
+
{
|
|
1607
|
+
signal,
|
|
1608
|
+
// Pass retry events to agent transcript for UI display
|
|
1609
|
+
onRetry: toolUseContext?.agentId ? ({ attempt, maxRetries, error, delayMs }) => {
|
|
1610
|
+
addRetryEventToTranscript(toolUseContext.agentId, {
|
|
1611
|
+
attempt,
|
|
1612
|
+
maxRetries,
|
|
1613
|
+
errorMessage: error.message,
|
|
1614
|
+
delayMs
|
|
1615
|
+
});
|
|
1616
|
+
} : void 0
|
|
1617
|
+
}
|
|
1455
1618
|
);
|
|
1456
1619
|
} catch (error) {
|
|
1457
1620
|
logError(error);
|
|
@@ -1465,6 +1628,21 @@ async function queryOpenAI(messages, systemPrompt, maxThinkingTokens, tools, sig
|
|
|
1465
1628
|
const cacheCreationInputTokens = response.usage?.prompt_token_details?.cached_tokens ?? 0;
|
|
1466
1629
|
const costUSD = inputTokens / 1e6 * SONNET_COST_PER_MILLION_INPUT_TOKENS + outputTokens / 1e6 * SONNET_COST_PER_MILLION_OUTPUT_TOKENS + cacheReadInputTokens / 1e6 * SONNET_COST_PER_MILLION_PROMPT_CACHE_READ_TOKENS + cacheCreationInputTokens / 1e6 * SONNET_COST_PER_MILLION_PROMPT_CACHE_WRITE_TOKENS;
|
|
1467
1630
|
addToTotalCost(costUSD, durationMsIncludingRetries);
|
|
1631
|
+
recordTokenUsage(
|
|
1632
|
+
{
|
|
1633
|
+
inputTokens,
|
|
1634
|
+
outputTokens,
|
|
1635
|
+
cacheCreationTokens: cacheCreationInputTokens,
|
|
1636
|
+
cacheReadTokens: cacheReadInputTokens
|
|
1637
|
+
},
|
|
1638
|
+
costUSD,
|
|
1639
|
+
model,
|
|
1640
|
+
toolUseContext ? {
|
|
1641
|
+
agentId: toolUseContext.agentId,
|
|
1642
|
+
toolUseId: toolUseContext.toolUseId,
|
|
1643
|
+
model
|
|
1644
|
+
} : void 0
|
|
1645
|
+
);
|
|
1468
1646
|
logLLMInteraction({
|
|
1469
1647
|
systemPrompt: systemPrompt.join("\n"),
|
|
1470
1648
|
messages: [...openaiSystem, ...openaiMessages],
|