@within-7/minto 0.4.2 → 0.4.3
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.cjs +32 -154
- package/cli.js +3255 -0
- package/package.json +21 -38
- package/scripts/postinstall.cjs +19 -136
- package/vendor/ripgrep/arm64-linux/rg +0 -0
- package/vendor/ripgrep/x64-darwin/rg +0 -0
- package/vendor/ripgrep/x64-linux/rg +0 -0
- package/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/dist/Tool.js +0 -46
- package/dist/Tool.js.map +0 -7
- package/dist/commands/agents/AgentsCommand.js +0 -2170
- package/dist/commands/agents/AgentsCommand.js.map +0 -7
- package/dist/commands/agents/constants.js +0 -58
- package/dist/commands/agents/constants.js.map +0 -7
- package/dist/commands/agents/index.js +0 -37
- package/dist/commands/agents/index.js.map +0 -7
- package/dist/commands/agents/types.js +0 -11
- package/dist/commands/agents/types.js.map +0 -7
- package/dist/commands/agents/utils/fileOperations.js +0 -245
- package/dist/commands/agents/utils/fileOperations.js.map +0 -7
- package/dist/commands/agents/utils/index.js +0 -23
- package/dist/commands/agents/utils/index.js.map +0 -7
- package/dist/commands/approvedTools.js +0 -36
- package/dist/commands/approvedTools.js.map +0 -7
- package/dist/commands/bug.js +0 -88
- package/dist/commands/bug.js.map +0 -7
- package/dist/commands/clear.js +0 -41
- package/dist/commands/clear.js.map +0 -7
- package/dist/commands/compact.js +0 -119
- package/dist/commands/compact.js.map +0 -7
- package/dist/commands/config.js +0 -20
- package/dist/commands/config.js.map +0 -7
- package/dist/commands/context.js +0 -118
- package/dist/commands/context.js.map +0 -7
- package/dist/commands/cost.js +0 -19
- package/dist/commands/cost.js.map +0 -7
- package/dist/commands/ctx_viz.js +0 -193
- package/dist/commands/ctx_viz.js.map +0 -7
- package/dist/commands/doctor.js +0 -171
- package/dist/commands/doctor.js.map +0 -7
- package/dist/commands/effort.js +0 -87
- package/dist/commands/effort.js.map +0 -7
- package/dist/commands/export.js +0 -747
- package/dist/commands/export.js.map +0 -7
- package/dist/commands/help.js +0 -20
- package/dist/commands/help.js.map +0 -7
- package/dist/commands/ide.js +0 -18
- package/dist/commands/ide.js.map +0 -7
- package/dist/commands/init.js +0 -38
- package/dist/commands/init.js.map +0 -7
- package/dist/commands/language.js +0 -110
- package/dist/commands/language.js.map +0 -7
- package/dist/commands/login.js +0 -128
- package/dist/commands/login.js.map +0 -7
- package/dist/commands/mcp-interactive.js +0 -485
- package/dist/commands/mcp-interactive.js.map +0 -7
- package/dist/commands/memory.js +0 -119
- package/dist/commands/memory.js.map +0 -7
- package/dist/commands/model.js +0 -497
- package/dist/commands/model.js.map +0 -7
- package/dist/commands/new.js +0 -56
- package/dist/commands/new.js.map +0 -7
- package/dist/commands/outputStyle.js +0 -64
- package/dist/commands/outputStyle.js.map +0 -7
- package/dist/commands/permissions.js +0 -113
- package/dist/commands/permissions.js.map +0 -7
- package/dist/commands/plugin/AddMarketplaceForm.js +0 -91
- package/dist/commands/plugin/AddMarketplaceForm.js.map +0 -7
- package/dist/commands/plugin/ConfirmDialog.js +0 -84
- package/dist/commands/plugin/ConfirmDialog.js.map +0 -7
- package/dist/commands/plugin/ErrorView.js +0 -34
- package/dist/commands/plugin/ErrorView.js.map +0 -7
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +0 -152
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +0 -7
- package/dist/commands/plugin/InstalledPluginsManager.js +0 -102
- package/dist/commands/plugin/InstalledPluginsManager.js.map +0 -7
- package/dist/commands/plugin/LoadingView.js +0 -14
- package/dist/commands/plugin/LoadingView.js.map +0 -7
- package/dist/commands/plugin/MainMenu.js +0 -67
- package/dist/commands/plugin/MainMenu.js.map +0 -7
- package/dist/commands/plugin/MarketplaceManager.js +0 -201
- package/dist/commands/plugin/MarketplaceManager.js.map +0 -7
- package/dist/commands/plugin/MarketplaceSelector.js +0 -124
- package/dist/commands/plugin/MarketplaceSelector.js.map +0 -7
- package/dist/commands/plugin/PlaceholderScreen.js +0 -31
- package/dist/commands/plugin/PlaceholderScreen.js.map +0 -7
- package/dist/commands/plugin/PluginBrowser.js +0 -183
- package/dist/commands/plugin/PluginBrowser.js.map +0 -7
- package/dist/commands/plugin/PluginDetailsInstall.js +0 -159
- package/dist/commands/plugin/PluginDetailsInstall.js.map +0 -7
- package/dist/commands/plugin/PluginDetailsManage.js +0 -210
- package/dist/commands/plugin/PluginDetailsManage.js.map +0 -7
- package/dist/commands/plugin/components.js +0 -16
- package/dist/commands/plugin/components.js.map +0 -7
- package/dist/commands/plugin/example-usage.js +0 -63
- package/dist/commands/plugin/example-usage.js.map +0 -7
- package/dist/commands/plugin/types.js +0 -1
- package/dist/commands/plugin/types.js.map +0 -7
- package/dist/commands/plugin/utils.js +0 -109
- package/dist/commands/plugin/utils.js.map +0 -7
- package/dist/commands/plugin.js +0 -1410
- package/dist/commands/plugin.js.map +0 -7
- package/dist/commands/quit.js +0 -20
- package/dist/commands/quit.js.map +0 -7
- package/dist/commands/refreshCommands.js +0 -48
- package/dist/commands/refreshCommands.js.map +0 -7
- package/dist/commands/resume.js +0 -71
- package/dist/commands/resume.js.map +0 -7
- package/dist/commands/review.js +0 -51
- package/dist/commands/review.js.map +0 -7
- package/dist/commands/sandbox.js +0 -203
- package/dist/commands/sandbox.js.map +0 -7
- package/dist/commands/sessions.js +0 -224
- package/dist/commands/sessions.js.map +0 -7
- package/dist/commands/setup.js +0 -653
- package/dist/commands/setup.js.map +0 -7
- package/dist/commands/stats.js +0 -292
- package/dist/commands/stats.js.map +0 -7
- package/dist/commands/status.js +0 -127
- package/dist/commands/status.js.map +0 -7
- package/dist/commands/tasks.js +0 -108
- package/dist/commands/tasks.js.map +0 -7
- package/dist/commands/terminalSetup.js +0 -174
- package/dist/commands/terminalSetup.js.map +0 -7
- package/dist/commands/todos.js +0 -123
- package/dist/commands/todos.js.map +0 -7
- package/dist/commands/undo.js +0 -227
- package/dist/commands/undo.js.map +0 -7
- package/dist/commands/vim.js +0 -22
- package/dist/commands/vim.js.map +0 -7
- package/dist/commands.js +0 -130
- package/dist/commands.js.map +0 -7
- package/dist/components/AgentDetailView.js +0 -126
- package/dist/components/AgentDetailView.js.map +0 -7
- package/dist/components/AgentResponseBlock.js +0 -41
- package/dist/components/AgentResponseBlock.js.map +0 -7
- package/dist/components/AgentThinkingBlock.js +0 -32
- package/dist/components/AgentThinkingBlock.js.map +0 -7
- package/dist/components/AgentViewBanner.js +0 -22
- package/dist/components/AgentViewBanner.js.map +0 -7
- package/dist/components/AsciiLogo.js +0 -18
- package/dist/components/AsciiLogo.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js +0 -142
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/QuestionView.js +0 -55
- package/dist/components/AskUserQuestionDialog/QuestionView.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/index.js +0 -7
- package/dist/components/AskUserQuestionDialog/index.js.map +0 -7
- package/dist/components/BackgroundTasksPanel.js +0 -177
- package/dist/components/BackgroundTasksPanel.js.map +0 -7
- package/dist/components/BashStreamingProgress.js +0 -24
- package/dist/components/BashStreamingProgress.js.map +0 -7
- package/dist/components/CollapsibleHint.js +0 -15
- package/dist/components/CollapsibleHint.js.map +0 -7
- package/dist/components/Config.js +0 -181
- package/dist/components/Config.js.map +0 -7
- package/dist/components/ConsoleOAuthFlow.js +0 -179
- package/dist/components/ConsoleOAuthFlow.js.map +0 -7
- package/dist/components/Cost.js +0 -14
- package/dist/components/Cost.js.map +0 -7
- package/dist/components/CostThresholdDialog.js +0 -38
- package/dist/components/CostThresholdDialog.js.map +0 -7
- package/dist/components/CustomSelect/option-map.js +0 -32
- package/dist/components/CustomSelect/option-map.js.map +0 -7
- package/dist/components/CustomSelect/select-option.js +0 -37
- package/dist/components/CustomSelect/select-option.js.map +0 -7
- package/dist/components/CustomSelect/select.js +0 -64
- package/dist/components/CustomSelect/select.js.map +0 -7
- package/dist/components/CustomSelect/theme.js +0 -1
- package/dist/components/CustomSelect/theme.js.map +0 -7
- package/dist/components/CustomSelect/use-select-state.js +0 -220
- package/dist/components/CustomSelect/use-select-state.js.map +0 -7
- package/dist/components/CustomSelect/use-select.js +0 -21
- package/dist/components/CustomSelect/use-select.js.map +0 -7
- package/dist/components/FallbackToolUseRejectedMessage.js +0 -11
- package/dist/components/FallbackToolUseRejectedMessage.js.map +0 -7
- package/dist/components/FileEditToolUpdatedMessage.js +0 -32
- package/dist/components/FileEditToolUpdatedMessage.js.map +0 -7
- package/dist/components/HeaderBar.js +0 -63
- package/dist/components/HeaderBar.js.map +0 -7
- package/dist/components/Help.js +0 -185
- package/dist/components/Help.js.map +0 -7
- package/dist/components/HighlightedCode.js +0 -31
- package/dist/components/HighlightedCode.js.map +0 -7
- package/dist/components/HistorySearchOverlay.js +0 -49
- package/dist/components/HistorySearchOverlay.js.map +0 -7
- package/dist/components/HotkeyHelpPanel.js +0 -154
- package/dist/components/HotkeyHelpPanel.js.map +0 -7
- package/dist/components/IdleNotificationBar.js +0 -10
- package/dist/components/IdleNotificationBar.js.map +0 -7
- package/dist/components/InfoPanel/InfoPanel.js +0 -123
- package/dist/components/InfoPanel/InfoPanel.js.map +0 -7
- package/dist/components/InfoPanel/index.js +0 -5
- package/dist/components/InfoPanel/index.js.map +0 -7
- package/dist/components/InfoPanel/types.js +0 -1
- package/dist/components/InfoPanel/types.js.map +0 -7
- package/dist/components/InteractionRoundBlock.js +0 -56
- package/dist/components/InteractionRoundBlock.js.map +0 -7
- package/dist/components/InvalidConfigDialog.js +0 -84
- package/dist/components/InvalidConfigDialog.js.map +0 -7
- package/dist/components/Link.js +0 -18
- package/dist/components/Link.js.map +0 -7
- package/dist/components/LogSelector.js +0 -50
- package/dist/components/LogSelector.js.map +0 -7
- package/dist/components/Logo.js +0 -55
- package/dist/components/Logo.js.map +0 -7
- package/dist/components/MCPServerApprovalDialog.js +0 -81
- package/dist/components/MCPServerApprovalDialog.js.map +0 -7
- package/dist/components/MCPServerDialogCopy.js +0 -12
- package/dist/components/MCPServerDialogCopy.js.map +0 -7
- package/dist/components/MCPServerMultiselectDialog.js +0 -82
- package/dist/components/MCPServerMultiselectDialog.js.map +0 -7
- package/dist/components/Message.js +0 -162
- package/dist/components/Message.js.map +0 -7
- package/dist/components/MessageResponse.js +0 -9
- package/dist/components/MessageResponse.js.map +0 -7
- package/dist/components/MessageSelector.js +0 -127
- package/dist/components/MessageSelector.js.map +0 -7
- package/dist/components/ModeIndicator.js +0 -39
- package/dist/components/ModeIndicator.js.map +0 -7
- package/dist/components/ModelConfig.js +0 -223
- package/dist/components/ModelConfig.js.map +0 -7
- package/dist/components/ModelListManager.js +0 -142
- package/dist/components/ModelListManager.js.map +0 -7
- package/dist/components/ModelSelector/BrandTextInput.js +0 -43
- package/dist/components/ModelSelector/BrandTextInput.js.map +0 -7
- package/dist/components/ModelSelector/ModelSelector.js +0 -2103
- package/dist/components/ModelSelector/ModelSelector.js.map +0 -7
- package/dist/components/ModelSelector/ScreenContainer.js +0 -27
- package/dist/components/ModelSelector/ScreenContainer.js.map +0 -7
- package/dist/components/ModelSelector/WizardContainer.js +0 -45
- package/dist/components/ModelSelector/WizardContainer.js.map +0 -7
- package/dist/components/ModelSelector/constants.js +0 -37
- package/dist/components/ModelSelector/constants.js.map +0 -7
- package/dist/components/ModelSelector/hooks/index.js +0 -5
- package/dist/components/ModelSelector/hooks/index.js.map +0 -7
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js +0 -21
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js.map +0 -7
- package/dist/components/ModelSelector/index.js +0 -15
- package/dist/components/ModelSelector/index.js.map +0 -7
- package/dist/components/ModelSelector/types.js +0 -1
- package/dist/components/ModelSelector/types.js.map +0 -7
- package/dist/components/Onboarding.js +0 -159
- package/dist/components/Onboarding.js.map +0 -7
- package/dist/components/OperationSummary.js +0 -130
- package/dist/components/OperationSummary.js.map +0 -7
- package/dist/components/PressEnterToContinue.js +0 -10
- package/dist/components/PressEnterToContinue.js.map +0 -7
- package/dist/components/ProgressBar.js +0 -74
- package/dist/components/ProgressBar.js.map +0 -7
- package/dist/components/ProjectOnboarding.js +0 -99
- package/dist/components/ProjectOnboarding.js.map +0 -7
- package/dist/components/PromptInput.js +0 -1067
- package/dist/components/PromptInput.js.map +0 -7
- package/dist/components/PulseLabel.js +0 -44
- package/dist/components/PulseLabel.js.map +0 -7
- package/dist/components/QuitSummary.js +0 -88
- package/dist/components/QuitSummary.js.map +0 -7
- package/dist/components/RequestStatusIndicator.js +0 -194
- package/dist/components/RequestStatusIndicator.js.map +0 -7
- package/dist/components/RewindPanel.js +0 -272
- package/dist/components/RewindPanel.js.map +0 -7
- package/dist/components/SensitiveFileWarning.js +0 -35
- package/dist/components/SensitiveFileWarning.js.map +0 -7
- package/dist/components/SentryErrorBoundary.js +0 -27
- package/dist/components/SentryErrorBoundary.js.map +0 -7
- package/dist/components/SimpleSelector/SimpleSelector.js +0 -154
- package/dist/components/SimpleSelector/SimpleSelector.js.map +0 -7
- package/dist/components/SimpleSelector/index.js +0 -5
- package/dist/components/SimpleSelector/index.js.map +0 -7
- package/dist/components/SimpleSelector/types.js +0 -1
- package/dist/components/SimpleSelector/types.js.map +0 -7
- package/dist/components/Spinner.js +0 -174
- package/dist/components/Spinner.js.map +0 -7
- package/dist/components/SpinnerSymbol.js +0 -72
- package/dist/components/SpinnerSymbol.js.map +0 -7
- package/dist/components/StartupStatus.js +0 -57
- package/dist/components/StartupStatus.js.map +0 -7
- package/dist/components/StatusOverlayContent.js +0 -21
- package/dist/components/StatusOverlayContent.js.map +0 -7
- package/dist/components/StreamingBashOutput.js +0 -71
- package/dist/components/StreamingBashOutput.js.map +0 -7
- package/dist/components/StreamingTextPreview.js +0 -29
- package/dist/components/StreamingTextPreview.js.map +0 -7
- package/dist/components/StructuredDiff.js +0 -146
- package/dist/components/StructuredDiff.js.map +0 -7
- package/dist/components/SubagentBlock.js +0 -197
- package/dist/components/SubagentBlock.js.map +0 -7
- package/dist/components/SubagentManager.js +0 -65
- package/dist/components/SubagentManager.js.map +0 -7
- package/dist/components/SubagentProgress.js +0 -123
- package/dist/components/SubagentProgress.js.map +0 -7
- package/dist/components/SubagentStatusMarker.js +0 -37
- package/dist/components/SubagentStatusMarker.js.map +0 -7
- package/dist/components/TabbedListView/ScrollableList.js +0 -117
- package/dist/components/TabbedListView/ScrollableList.js.map +0 -7
- package/dist/components/TabbedListView/SearchInput.js +0 -23
- package/dist/components/TabbedListView/SearchInput.js.map +0 -7
- package/dist/components/TabbedListView/TabBar.js +0 -25
- package/dist/components/TabbedListView/TabBar.js.map +0 -7
- package/dist/components/TabbedListView/TabbedListView.js +0 -292
- package/dist/components/TabbedListView/TabbedListView.js.map +0 -7
- package/dist/components/TabbedListView/index.js +0 -11
- package/dist/components/TabbedListView/index.js.map +0 -7
- package/dist/components/TabbedListView/types.js +0 -1
- package/dist/components/TabbedListView/types.js.map +0 -7
- package/dist/components/TaskCard.js +0 -176
- package/dist/components/TaskCard.js.map +0 -7
- package/dist/components/TeamMemberPanel.js +0 -107
- package/dist/components/TeamMemberPanel.js.map +0 -7
- package/dist/components/TextInput.js +0 -108
- package/dist/components/TextInput.js.map +0 -7
- package/dist/components/ThinkingSelector.js +0 -84
- package/dist/components/ThinkingSelector.js.map +0 -7
- package/dist/components/TimelineRenderer.js +0 -31
- package/dist/components/TimelineRenderer.js.map +0 -7
- package/dist/components/TitledDivider.js +0 -26
- package/dist/components/TitledDivider.js.map +0 -7
- package/dist/components/TodoChangeBlock.js +0 -30
- package/dist/components/TodoChangeBlock.js.map +0 -7
- package/dist/components/TodoChangeLine.js +0 -22
- package/dist/components/TodoChangeLine.js.map +0 -7
- package/dist/components/TodoItem.js +0 -35
- package/dist/components/TodoItem.js.map +0 -7
- package/dist/components/TodoPanel.js +0 -167
- package/dist/components/TodoPanel.js.map +0 -7
- package/dist/components/TokenCounter.js +0 -74
- package/dist/components/TokenCounter.js.map +0 -7
- package/dist/components/TokenWarning.js +0 -41
- package/dist/components/TokenWarning.js.map +0 -7
- package/dist/components/ToolExecutionBlock.js +0 -18
- package/dist/components/ToolExecutionBlock.js.map +0 -7
- package/dist/components/ToolUseLoader.js +0 -29
- package/dist/components/ToolUseLoader.js.map +0 -7
- package/dist/components/TreeConnector.js +0 -26
- package/dist/components/TreeConnector.js.map +0 -7
- package/dist/components/TrustDialog.js +0 -71
- package/dist/components/TrustDialog.js.map +0 -7
- package/dist/components/TurnCompletionIndicator.js +0 -18
- package/dist/components/TurnCompletionIndicator.js.map +0 -7
- package/dist/components/UserQueryBlock.js +0 -12
- package/dist/components/UserQueryBlock.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedback.js +0 -50
- package/dist/components/binary-feedback/BinaryFeedback.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackOption.js +0 -92
- package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackView.js +0 -140
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +0 -7
- package/dist/components/binary-feedback/utils.js +0 -108
- package/dist/components/binary-feedback/utils.js.map +0 -7
- package/dist/components/messages/AssistantBashOutputMessage.js +0 -23
- package/dist/components/messages/AssistantBashOutputMessage.js.map +0 -7
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js +0 -36
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +0 -7
- package/dist/components/messages/AssistantRedactedThinkingMessage.js +0 -12
- package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantTextMessage.js +0 -92
- package/dist/components/messages/AssistantTextMessage.js.map +0 -7
- package/dist/components/messages/AssistantThinkingMessage.js +0 -42
- package/dist/components/messages/AssistantThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantToolUseMessage.js +0 -108
- package/dist/components/messages/AssistantToolUseMessage.js.map +0 -7
- package/dist/components/messages/DefaultToolResultFallback.js +0 -11
- package/dist/components/messages/DefaultToolResultFallback.js.map +0 -7
- package/dist/components/messages/GroupRenderer.js +0 -54
- package/dist/components/messages/GroupRenderer.js.map +0 -7
- package/dist/components/messages/NestedTasksPreview.js +0 -24
- package/dist/components/messages/NestedTasksPreview.js.map +0 -7
- package/dist/components/messages/ParallelTasksGroupView.js +0 -101
- package/dist/components/messages/ParallelTasksGroupView.js.map +0 -7
- package/dist/components/messages/TaskInModuleView.js +0 -218
- package/dist/components/messages/TaskInModuleView.js.map +0 -7
- package/dist/components/messages/TaskOutputContent.js +0 -56
- package/dist/components/messages/TaskOutputContent.js.map +0 -7
- package/dist/components/messages/TaskProgressMessage.js +0 -11
- package/dist/components/messages/TaskProgressMessage.js.map +0 -7
- package/dist/components/messages/TaskToolMessage.js +0 -39
- package/dist/components/messages/TaskToolMessage.js.map +0 -7
- package/dist/components/messages/UserBashInputMessage.js +0 -18
- package/dist/components/messages/UserBashInputMessage.js.map +0 -7
- package/dist/components/messages/UserCommandMessage.js +0 -20
- package/dist/components/messages/UserCommandMessage.js.map +0 -7
- package/dist/components/messages/UserGuidanceMessage.js +0 -26
- package/dist/components/messages/UserGuidanceMessage.js.map +0 -7
- package/dist/components/messages/UserKodingInputMessage.js +0 -18
- package/dist/components/messages/UserKodingInputMessage.js.map +0 -7
- package/dist/components/messages/UserPromptMessage.js +0 -26
- package/dist/components/messages/UserPromptMessage.js.map +0 -7
- package/dist/components/messages/UserTeamNotificationMessage.js +0 -91
- package/dist/components/messages/UserTeamNotificationMessage.js.map +0 -7
- package/dist/components/messages/UserTextMessage.js +0 -33
- package/dist/components/messages/UserTextMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +0 -11
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +0 -15
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +0 -27
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -64
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -33
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/utils.js +0 -50
- package/dist/components/messages/UserToolResultMessage/utils.js.map +0 -7
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -112
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FallbackPermissionRequest.js +0 -131
- package/dist/components/permissions/FallbackPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -159
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +0 -58
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +0 -7
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -153
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -70
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +0 -7
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -212
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +0 -7
- package/dist/components/permissions/PermissionRequest.js +0 -74
- package/dist/components/permissions/PermissionRequest.js.map +0 -7
- package/dist/components/permissions/PermissionRequestTitle.js +0 -52
- package/dist/components/permissions/PermissionRequestTitle.js.map +0 -7
- package/dist/components/permissions/PlanApprovalRequest.js +0 -164
- package/dist/components/permissions/PlanApprovalRequest.js.map +0 -7
- package/dist/components/permissions/hooks.js +0 -23
- package/dist/components/permissions/hooks.js.map +0 -7
- package/dist/components/permissions/toolUseOptions.js +0 -46
- package/dist/components/permissions/toolUseOptions.js.map +0 -7
- package/dist/components/permissions/utils.js +0 -21
- package/dist/components/permissions/utils.js.map +0 -7
- package/dist/constants/agentTeams.js +0 -17
- package/dist/constants/agentTeams.js.map +0 -7
- package/dist/constants/claude-asterisk-ascii-art.js +0 -242
- package/dist/constants/claude-asterisk-ascii-art.js.map +0 -7
- package/dist/constants/colors.js +0 -192
- package/dist/constants/colors.js.map +0 -7
- package/dist/constants/compressionPrompts.js +0 -73
- package/dist/constants/compressionPrompts.js.map +0 -7
- package/dist/constants/figures.js +0 -6
- package/dist/constants/figures.js.map +0 -7
- package/dist/constants/formatRules.js +0 -102
- package/dist/constants/formatRules.js.map +0 -7
- package/dist/constants/macros.js +0 -12
- package/dist/constants/macros.js.map +0 -7
- package/dist/constants/modelCapabilities.js +0 -239
- package/dist/constants/modelCapabilities.js.map +0 -7
- package/dist/constants/models.js +0 -1034
- package/dist/constants/models.js.map +0 -7
- package/dist/constants/oauth.js +0 -18
- package/dist/constants/oauth.js.map +0 -7
- package/dist/constants/product.js +0 -28
- package/dist/constants/product.js.map +0 -7
- package/dist/constants/prompts/agentPrompt.js +0 -31
- package/dist/constants/prompts/agentPrompt.js.map +0 -7
- package/dist/constants/prompts/autoMemory.js +0 -39
- package/dist/constants/prompts/autoMemory.js.map +0 -7
- package/dist/constants/prompts/codeConventions.js +0 -15
- package/dist/constants/prompts/codeConventions.js.map +0 -7
- package/dist/constants/prompts/doingTasks.js +0 -34
- package/dist/constants/prompts/doingTasks.js.map +0 -7
- package/dist/constants/prompts/envInfo.js +0 -16
- package/dist/constants/prompts/envInfo.js.map +0 -7
- package/dist/constants/prompts/executingWithCare.js +0 -17
- package/dist/constants/prompts/executingWithCare.js.map +0 -7
- package/dist/constants/prompts/identity.js +0 -10
- package/dist/constants/prompts/identity.js.map +0 -7
- package/dist/constants/prompts/index.js +0 -100
- package/dist/constants/prompts/index.js.map +0 -7
- package/dist/constants/prompts/taskManagement.js +0 -19
- package/dist/constants/prompts/taskManagement.js.map +0 -7
- package/dist/constants/prompts/teamOverlays.js +0 -50
- package/dist/constants/prompts/teamOverlays.js.map +0 -7
- package/dist/constants/prompts/toneAndStyle.js +0 -37
- package/dist/constants/prompts/toneAndStyle.js.map +0 -7
- package/dist/constants/prompts/toolUsagePolicy.js +0 -23
- package/dist/constants/prompts/toolUsagePolicy.js.map +0 -7
- package/dist/constants/prompts.js +0 -13
- package/dist/constants/prompts.js.map +0 -7
- package/dist/constants/providerRegistry.js +0 -235
- package/dist/constants/providerRegistry.js.map +0 -7
- package/dist/constants/providers.js +0 -35
- package/dist/constants/providers.js.map +0 -7
- package/dist/constants/releaseNotes.js +0 -9
- package/dist/constants/releaseNotes.js.map +0 -7
- package/dist/constants/symbols.js +0 -108
- package/dist/constants/symbols.js.map +0 -7
- package/dist/constants/timing.js +0 -39
- package/dist/constants/timing.js.map +0 -7
- package/dist/constants/toolInputExamples.js +0 -88
- package/dist/constants/toolInputExamples.js.map +0 -7
- package/dist/context/PermissionContext.js +0 -110
- package/dist/context/PermissionContext.js.map +0 -7
- package/dist/context.js +0 -367
- package/dist/context.js.map +0 -7
- package/dist/core/backupHook.js +0 -29
- package/dist/core/backupHook.js.map +0 -7
- package/dist/core/backupManager.js +0 -321
- package/dist/core/backupManager.js.map +0 -7
- package/dist/core/config/defaults.js +0 -93
- package/dist/core/config/defaults.js.map +0 -7
- package/dist/core/config/index.js +0 -111
- package/dist/core/config/index.js.map +0 -7
- package/dist/core/config/loader.js +0 -221
- package/dist/core/config/loader.js.map +0 -7
- package/dist/core/config/migrations.js +0 -128
- package/dist/core/config/migrations.js.map +0 -7
- package/dist/core/config/schema.js +0 -196
- package/dist/core/config/schema.js.map +0 -7
- package/dist/core/costTracker.js +0 -131
- package/dist/core/costTracker.js.map +0 -7
- package/dist/core/gitAutoCommit.js +0 -287
- package/dist/core/gitAutoCommit.js.map +0 -7
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -7
- package/dist/core/operationTracker.js +0 -212
- package/dist/core/operationTracker.js.map +0 -7
- package/dist/core/permissions/auditLog.js +0 -204
- package/dist/core/permissions/auditLog.js.map +0 -7
- package/dist/core/permissions/engine/index.js +0 -3
- package/dist/core/permissions/engine/index.js.map +0 -7
- package/dist/core/permissions/engine/permissionEngine.js +0 -106
- package/dist/core/permissions/engine/permissionEngine.js.map +0 -7
- package/dist/core/permissions/engine/types.js +0 -1
- package/dist/core/permissions/engine/types.js.map +0 -7
- package/dist/core/permissions/index.js +0 -84
- package/dist/core/permissions/index.js.map +0 -7
- package/dist/core/permissions/ruleEngine.js +0 -259
- package/dist/core/permissions/ruleEngine.js.map +0 -7
- package/dist/core/permissions/rules/allowedToolsRule.js +0 -62
- package/dist/core/permissions/rules/allowedToolsRule.js.map +0 -7
- package/dist/core/permissions/rules/autoEscalationRule.js +0 -296
- package/dist/core/permissions/rules/autoEscalationRule.js.map +0 -7
- package/dist/core/permissions/rules/index.js +0 -46
- package/dist/core/permissions/rules/index.js.map +0 -7
- package/dist/core/permissions/rules/planModeRule.js +0 -55
- package/dist/core/permissions/rules/planModeRule.js.map +0 -7
- package/dist/core/permissions/rules/projectBoundaryRule.js +0 -173
- package/dist/core/permissions/rules/projectBoundaryRule.js.map +0 -7
- package/dist/core/permissions/rules/safeModeRule.js +0 -65
- package/dist/core/permissions/rules/safeModeRule.js.map +0 -7
- package/dist/core/permissions/rules/sensitivePathsRule.js +0 -345
- package/dist/core/permissions/rules/sensitivePathsRule.js.map +0 -7
- package/dist/core/permissions/types.js +0 -127
- package/dist/core/permissions/types.js.map +0 -7
- package/dist/core/tokenStats.js +0 -9
- package/dist/core/tokenStats.js.map +0 -7
- package/dist/core/tokenStatsManager.js +0 -354
- package/dist/core/tokenStatsManager.js.map +0 -7
- package/dist/core/tools/executor.js +0 -143
- package/dist/core/tools/executor.js.map +0 -7
- package/dist/core/tools/index.js +0 -15
- package/dist/core/tools/index.js.map +0 -7
- package/dist/core/tools/registry.js +0 -183
- package/dist/core/tools/registry.js.map +0 -7
- package/dist/core/tools/types.js +0 -1
- package/dist/core/tools/types.js.map +0 -7
- package/dist/cost-tracker.js +0 -68
- package/dist/cost-tracker.js.map +0 -7
- package/dist/engine/AgentEngine.js +0 -902
- package/dist/engine/AgentEngine.js.map +0 -7
- package/dist/engine/EngineRegistry.js +0 -89
- package/dist/engine/EngineRegistry.js.map +0 -7
- package/dist/engine/foregroundAdapter.js +0 -191
- package/dist/engine/foregroundAdapter.js.map +0 -7
- package/dist/engine/index.js +0 -15
- package/dist/engine/index.js.map +0 -7
- package/dist/engine/types.js +0 -1
- package/dist/engine/types.js.map +0 -7
- package/dist/entrypoints/bootstrap.js +0 -56
- package/dist/entrypoints/bootstrap.js.map +0 -7
- package/dist/entrypoints/cli.js +0 -1721
- package/dist/entrypoints/cli.js.map +0 -7
- package/dist/entrypoints/mcp.js +0 -153
- package/dist/entrypoints/mcp.js.map +0 -7
- package/dist/history.js +0 -96
- package/dist/history.js.map +0 -7
- package/dist/hooks/useAgentEngine.js +0 -129
- package/dist/hooks/useAgentEngine.js.map +0 -7
- package/dist/hooks/useAgentTokenStats.js +0 -56
- package/dist/hooks/useAgentTokenStats.js.map +0 -7
- package/dist/hooks/useAgentTranscripts.js +0 -141
- package/dist/hooks/useAgentTranscripts.js.map +0 -7
- package/dist/hooks/useAnimationSync.js +0 -53
- package/dist/hooks/useAnimationSync.js.map +0 -7
- package/dist/hooks/useApiKeyVerification.js +0 -12
- package/dist/hooks/useApiKeyVerification.js.map +0 -7
- package/dist/hooks/useArrowKeyHistory.js +0 -52
- package/dist/hooks/useArrowKeyHistory.js.map +0 -7
- package/dist/hooks/useAskUser.js +0 -24
- package/dist/hooks/useAskUser.js.map +0 -7
- package/dist/hooks/useBackgroundShells.js +0 -29
- package/dist/hooks/useBackgroundShells.js.map +0 -7
- package/dist/hooks/useCanUseTool.js +0 -134
- package/dist/hooks/useCanUseTool.js.map +0 -7
- package/dist/hooks/useDeferredLoading.js +0 -67
- package/dist/hooks/useDeferredLoading.js.map +0 -7
- package/dist/hooks/useDoublePress.js +0 -31
- package/dist/hooks/useDoublePress.js.map +0 -7
- package/dist/hooks/useExitOnCtrlCD.js +0 -30
- package/dist/hooks/useExitOnCtrlCD.js.map +0 -7
- package/dist/hooks/useHistorySearch.js +0 -62
- package/dist/hooks/useHistorySearch.js.map +0 -7
- package/dist/hooks/useHookStatus.js +0 -40
- package/dist/hooks/useHookStatus.js.map +0 -7
- package/dist/hooks/useIdleNotifications.js +0 -66
- package/dist/hooks/useIdleNotifications.js.map +0 -7
- package/dist/hooks/useInterval.js +0 -18
- package/dist/hooks/useInterval.js.map +0 -7
- package/dist/hooks/useLogMessages.js +0 -41
- package/dist/hooks/useLogMessages.js.map +0 -7
- package/dist/hooks/useLogStartupTime.js +0 -10
- package/dist/hooks/useLogStartupTime.js.map +0 -7
- package/dist/hooks/useMessageGroups.js +0 -43
- package/dist/hooks/useMessageGroups.js.map +0 -7
- package/dist/hooks/useNotifyAfterTimeout.js +0 -42
- package/dist/hooks/useNotifyAfterTimeout.js.map +0 -7
- package/dist/hooks/usePermissionRequestLogging.js +0 -23
- package/dist/hooks/usePermissionRequestLogging.js.map +0 -7
- package/dist/hooks/useSessionTracking.js +0 -57
- package/dist/hooks/useSessionTracking.js.map +0 -7
- package/dist/hooks/useTeamMembers.js +0 -51
- package/dist/hooks/useTeamMembers.js.map +0 -7
- package/dist/hooks/useTerminalSize.js +0 -115
- package/dist/hooks/useTerminalSize.js.map +0 -7
- package/dist/hooks/useTextInput.js +0 -253
- package/dist/hooks/useTextInput.js.map +0 -7
- package/dist/hooks/useUnifiedCompletion.js +0 -1098
- package/dist/hooks/useUnifiedCompletion.js.map +0 -7
- package/dist/i18n/index.js +0 -109
- package/dist/i18n/index.js.map +0 -7
- package/dist/i18n/locales/en.js +0 -993
- package/dist/i18n/locales/en.js.map +0 -7
- package/dist/i18n/locales/index.js +0 -7
- package/dist/i18n/locales/index.js.map +0 -7
- package/dist/i18n/locales/zh-CN.js +0 -993
- package/dist/i18n/locales/zh-CN.js.map +0 -7
- package/dist/i18n/types.js +0 -8
- package/dist/i18n/types.js.map +0 -7
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -7
- package/dist/messages.js +0 -68
- package/dist/messages.js.map +0 -7
- package/dist/package.json +0 -4
- package/dist/permissions.js +0 -536
- package/dist/permissions.js.map +0 -7
- package/dist/query.js +0 -851
- package/dist/query.js.map +0 -7
- package/dist/screens/LogList.js +0 -55
- package/dist/screens/LogList.js.map +0 -7
- package/dist/screens/REPL.js +0 -1240
- package/dist/screens/REPL.js.map +0 -7
- package/dist/screens/ResumeConversation.js +0 -244
- package/dist/screens/ResumeConversation.js.map +0 -7
- package/dist/services/adapters/base.js +0 -29
- package/dist/services/adapters/base.js.map +0 -7
- package/dist/services/adapters/chatCompletions.js +0 -71
- package/dist/services/adapters/chatCompletions.js.map +0 -7
- package/dist/services/adapters/messageNormalizer.js +0 -354
- package/dist/services/adapters/messageNormalizer.js.map +0 -7
- package/dist/services/adapters/responsesAPI.js +0 -137
- package/dist/services/adapters/responsesAPI.js.map +0 -7
- package/dist/services/agentTeams/backends/headless.js +0 -108
- package/dist/services/agentTeams/backends/headless.js.map +0 -7
- package/dist/services/agentTeams/backends/inProcess.js +0 -102
- package/dist/services/agentTeams/backends/inProcess.js.map +0 -7
- package/dist/services/agentTeams/backends/resolver.js +0 -18
- package/dist/services/agentTeams/backends/resolver.js.map +0 -7
- package/dist/services/agentTeams/backends/tmux.js +0 -168
- package/dist/services/agentTeams/backends/tmux.js.map +0 -7
- package/dist/services/agentTeams/backends/types.js +0 -1
- package/dist/services/agentTeams/backends/types.js.map +0 -7
- package/dist/services/agentTeams/heartbeat.js +0 -88
- package/dist/services/agentTeams/heartbeat.js.map +0 -7
- package/dist/services/agentTeams/index.js +0 -75
- package/dist/services/agentTeams/index.js.map +0 -7
- package/dist/services/agentTeams/injectionChannel.js +0 -105
- package/dist/services/agentTeams/injectionChannel.js.map +0 -7
- package/dist/services/agentTeams/mailbox.js +0 -494
- package/dist/services/agentTeams/mailbox.js.map +0 -7
- package/dist/services/agentTeams/messageFormatter.js +0 -80
- package/dist/services/agentTeams/messageFormatter.js.map +0 -7
- package/dist/services/agentTeams/permissionDelegation.js +0 -71
- package/dist/services/agentTeams/permissionDelegation.js.map +0 -7
- package/dist/services/agentTeams/teamEvents.js +0 -45
- package/dist/services/agentTeams/teamEvents.js.map +0 -7
- package/dist/services/agentTeams/teamManager.js +0 -366
- package/dist/services/agentTeams/teamManager.js.map +0 -7
- package/dist/services/agentTeams/teamTaskStore.js +0 -343
- package/dist/services/agentTeams/teamTaskStore.js.map +0 -7
- package/dist/services/agentTeams/teammateSpawner.js +0 -161
- package/dist/services/agentTeams/teammateSpawner.js.map +0 -7
- package/dist/services/checkpointManager.js +0 -399
- package/dist/services/checkpointManager.js.map +0 -7
- package/dist/services/claude.js +0 -41
- package/dist/services/claude.js.map +0 -7
- package/dist/services/compressionService.js +0 -259
- package/dist/services/compressionService.js.map +0 -7
- package/dist/services/contextMonitor.js +0 -162
- package/dist/services/contextMonitor.js.map +0 -7
- package/dist/services/customCommands.js +0 -489
- package/dist/services/customCommands.js.map +0 -7
- package/dist/services/fileFreshness.js +0 -275
- package/dist/services/fileFreshness.js.map +0 -7
- package/dist/services/gpt5ConnectionTest.js +0 -263
- package/dist/services/gpt5ConnectionTest.js.map +0 -7
- package/dist/services/hookExecutor.js +0 -771
- package/dist/services/hookExecutor.js.map +0 -7
- package/dist/services/intelligentCompactor.js +0 -281
- package/dist/services/intelligentCompactor.js.map +0 -7
- package/dist/services/llm/anthropicProvider.js +0 -804
- package/dist/services/llm/anthropicProvider.js.map +0 -7
- package/dist/services/llm/dispatch.js +0 -237
- package/dist/services/llm/dispatch.js.map +0 -7
- package/dist/services/llm/index.js +0 -44
- package/dist/services/llm/index.js.map +0 -7
- package/dist/services/llm/mintoContext.js +0 -69
- package/dist/services/llm/mintoContext.js.map +0 -7
- package/dist/services/llm/openaiProvider.js +0 -601
- package/dist/services/llm/openaiProvider.js.map +0 -7
- package/dist/services/llm/types.js +0 -231
- package/dist/services/llm/types.js.map +0 -7
- package/dist/services/lspConfig.js +0 -109
- package/dist/services/lspConfig.js.map +0 -7
- package/dist/services/mainAgentCompressor.js +0 -84
- package/dist/services/mainAgentCompressor.js.map +0 -7
- package/dist/services/mcpClient.js +0 -997
- package/dist/services/mcpClient.js.map +0 -7
- package/dist/services/mcpServerApproval.js +0 -55
- package/dist/services/mcpServerApproval.js.map +0 -7
- package/dist/services/mentionProcessor.js +0 -214
- package/dist/services/mentionProcessor.js.map +0 -7
- package/dist/services/mintoAuth.js +0 -299
- package/dist/services/mintoAuth.js.map +0 -7
- package/dist/services/modelAdapterFactory.js +0 -47
- package/dist/services/modelAdapterFactory.js.map +0 -7
- package/dist/services/modelOrchestrator.js +0 -310
- package/dist/services/modelOrchestrator.js.map +0 -7
- package/dist/services/notifier.js +0 -49
- package/dist/services/notifier.js.map +0 -7
- package/dist/services/oauth.js +0 -249
- package/dist/services/oauth.js.map +0 -7
- package/dist/services/openai.js +0 -1120
- package/dist/services/openai.js.map +0 -7
- package/dist/services/outputStyles.js +0 -219
- package/dist/services/outputStyles.js.map +0 -7
- package/dist/services/plugins/index.js +0 -5
- package/dist/services/plugins/index.js.map +0 -7
- package/dist/services/plugins/lspServers.js +0 -188
- package/dist/services/plugins/lspServers.js.map +0 -7
- package/dist/services/plugins/pluginRuntime.js +0 -236
- package/dist/services/plugins/pluginRuntime.js.map +0 -7
- package/dist/services/plugins/pluginValidation.js +0 -228
- package/dist/services/plugins/pluginValidation.js.map +0 -7
- package/dist/services/plugins/skillMarketplace.js +0 -567
- package/dist/services/plugins/skillMarketplace.js.map +0 -7
- package/dist/services/responseStateManager.js +0 -102
- package/dist/services/responseStateManager.js.map +0 -7
- package/dist/services/sandbox/filesystemBoundary.js +0 -341
- package/dist/services/sandbox/filesystemBoundary.js.map +0 -7
- package/dist/services/sandbox/index.js +0 -14
- package/dist/services/sandbox/index.js.map +0 -7
- package/dist/services/sandbox/networkProxy.js +0 -293
- package/dist/services/sandbox/networkProxy.js.map +0 -7
- package/dist/services/sandbox/sandboxController.js +0 -582
- package/dist/services/sandbox/sandboxController.js.map +0 -7
- package/dist/services/sandbox/types.js +0 -50
- package/dist/services/sandbox/types.js.map +0 -7
- package/dist/services/sentry.js +0 -9
- package/dist/services/sentry.js.map +0 -7
- package/dist/services/sessionMemory.js +0 -279
- package/dist/services/sessionMemory.js.map +0 -7
- package/dist/services/sessionMemoryInjector.js +0 -77
- package/dist/services/sessionMemoryInjector.js.map +0 -7
- package/dist/services/subagentAbortManager.js +0 -95
- package/dist/services/subagentAbortManager.js.map +0 -7
- package/dist/services/subagentCompressor.js +0 -146
- package/dist/services/subagentCompressor.js.map +0 -7
- package/dist/services/systemReminder.js +0 -815
- package/dist/services/systemReminder.js.map +0 -7
- package/dist/services/taskRouter.js +0 -324
- package/dist/services/taskRouter.js.map +0 -7
- package/dist/services/taskStore.js +0 -415
- package/dist/services/taskStore.js.map +0 -7
- package/dist/services/topicDetector.js +0 -169
- package/dist/services/topicDetector.js.map +0 -7
- package/dist/services/vcr.js +0 -133
- package/dist/services/vcr.js.map +0 -7
- package/dist/tools/ArchitectTool/ArchitectTool.js +0 -126
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +0 -7
- package/dist/tools/ArchitectTool/prompt.js +0 -18
- package/dist/tools/ArchitectTool/prompt.js.map +0 -7
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +0 -420
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js +0 -158
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/index.js +0 -5
- package/dist/tools/AskUserQuestionTool/index.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/prompt.js +0 -167
- package/dist/tools/AskUserQuestionTool/prompt.js.map +0 -7
- package/dist/tools/BaseTool.js +0 -72
- package/dist/tools/BaseTool.js.map +0 -7
- package/dist/tools/BashOutputTool/BashOutputTool.js +0 -120
- package/dist/tools/BashOutputTool/BashOutputTool.js.map +0 -7
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +0 -14
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +0 -7
- package/dist/tools/BashOutputTool/prompt.js +0 -13
- package/dist/tools/BashOutputTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/BashTool.js +0 -353
- package/dist/tools/BashTool/BashTool.js.map +0 -7
- package/dist/tools/BashTool/BashToolResultMessage.js +0 -24
- package/dist/tools/BashTool/BashToolResultMessage.js.map +0 -7
- package/dist/tools/BashTool/OutputLine.js +0 -84
- package/dist/tools/BashTool/OutputLine.js.map +0 -7
- package/dist/tools/BashTool/prompt.js +0 -496
- package/dist/tools/BashTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/utils.js +0 -89
- package/dist/tools/BashTool/utils.js.map +0 -7
- package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js +0 -121
- package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js.map +0 -7
- package/dist/tools/EnterWorktreeTool/prompt.js +0 -22
- package/dist/tools/EnterWorktreeTool/prompt.js.map +0 -7
- package/dist/tools/FileEditTool/FileEditTool.js +0 -278
- package/dist/tools/FileEditTool/FileEditTool.js.map +0 -7
- package/dist/tools/FileEditTool/prompt.js +0 -56
- package/dist/tools/FileEditTool/prompt.js.map +0 -7
- package/dist/tools/FileEditTool/utils.js +0 -48
- package/dist/tools/FileEditTool/utils.js.map +0 -7
- package/dist/tools/FileReadTool/FileReadTool.js +0 -427
- package/dist/tools/FileReadTool/FileReadTool.js.map +0 -7
- package/dist/tools/FileReadTool/prompt.js +0 -24
- package/dist/tools/FileReadTool/prompt.js.map +0 -7
- package/dist/tools/FileWriteTool/FileWriteTool.js +0 -211
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +0 -7
- package/dist/tools/FileWriteTool/prompt.js +0 -21
- package/dist/tools/FileWriteTool/prompt.js.map +0 -7
- package/dist/tools/GlobTool/GlobTool.js +0 -100
- package/dist/tools/GlobTool/GlobTool.js.map +0 -7
- package/dist/tools/GlobTool/prompt.js +0 -23
- package/dist/tools/GlobTool/prompt.js.map +0 -7
- package/dist/tools/GrepTool/GrepTool.js +0 -417
- package/dist/tools/GrepTool/GrepTool.js.map +0 -7
- package/dist/tools/GrepTool/prompt.js +0 -22
- package/dist/tools/GrepTool/prompt.js.map +0 -7
- package/dist/tools/KillShellTool/KillShellTool.js +0 -92
- package/dist/tools/KillShellTool/KillShellTool.js.map +0 -7
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js +0 -14
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +0 -7
- package/dist/tools/KillShellTool/prompt.js +0 -12
- package/dist/tools/KillShellTool/prompt.js.map +0 -7
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +0 -109
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +0 -7
- package/dist/tools/ListMcpResourcesTool/prompt.js +0 -19
- package/dist/tools/ListMcpResourcesTool/prompt.js.map +0 -7
- package/dist/tools/LspTool/LspTool.js +0 -673
- package/dist/tools/LspTool/LspTool.js.map +0 -7
- package/dist/tools/LspTool/prompt.js +0 -27
- package/dist/tools/LspTool/prompt.js.map +0 -7
- package/dist/tools/MCPSearchTool/MCPSearchTool.js +0 -172
- package/dist/tools/MCPSearchTool/MCPSearchTool.js.map +0 -7
- package/dist/tools/MCPSearchTool/prompt.js +0 -77
- package/dist/tools/MCPSearchTool/prompt.js.map +0 -7
- package/dist/tools/MCPTool/MCPTool.js +0 -97
- package/dist/tools/MCPTool/MCPTool.js.map +0 -7
- package/dist/tools/MCPTool/prompt.js +0 -7
- package/dist/tools/MCPTool/prompt.js.map +0 -7
- package/dist/tools/MemoryReadTool/MemoryReadTool.js +0 -117
- package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +0 -7
- package/dist/tools/MemoryReadTool/prompt.js +0 -7
- package/dist/tools/MemoryReadTool/prompt.js.map +0 -7
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +0 -78
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +0 -7
- package/dist/tools/MemoryWriteTool/prompt.js +0 -7
- package/dist/tools/MemoryWriteTool/prompt.js.map +0 -7
- package/dist/tools/MultiEditTool/MultiEditTool.js +0 -328
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +0 -7
- package/dist/tools/MultiEditTool/prompt.js +0 -47
- package/dist/tools/MultiEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +0 -257
- package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +0 -7
- package/dist/tools/NotebookEditTool/prompt.js +0 -7
- package/dist/tools/NotebookEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookReadTool/NotebookReadTool.js +0 -218
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +0 -7
- package/dist/tools/NotebookReadTool/prompt.js +0 -7
- package/dist/tools/NotebookReadTool/prompt.js.map +0 -7
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js +0 -85
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js +0 -164
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/prompt.js +0 -43
- package/dist/tools/PlanModeTool/prompt.js.map +0 -7
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +0 -130
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js.map +0 -7
- package/dist/tools/ReadMcpResourceTool/prompt.js +0 -17
- package/dist/tools/ReadMcpResourceTool/prompt.js.map +0 -7
- package/dist/tools/SendMessageTool/SendMessageTool.js +0 -341
- package/dist/tools/SendMessageTool/SendMessageTool.js.map +0 -7
- package/dist/tools/SendMessageTool/prompt.js +0 -44
- package/dist/tools/SendMessageTool/prompt.js.map +0 -7
- package/dist/tools/SkillTool/SkillTool.js +0 -227
- package/dist/tools/SkillTool/SkillTool.js.map +0 -7
- package/dist/tools/SkillTool/prompt.js +0 -81
- package/dist/tools/SkillTool/prompt.js.map +0 -7
- package/dist/tools/SlashCommandTool/SlashCommandTool.js +0 -416
- package/dist/tools/SlashCommandTool/SlashCommandTool.js.map +0 -7
- package/dist/tools/SlashCommandTool/prompt.js +0 -35
- package/dist/tools/SlashCommandTool/prompt.js.map +0 -7
- package/dist/tools/TaskCreateTool/TaskCreateTool.js +0 -102
- package/dist/tools/TaskCreateTool/TaskCreateTool.js.map +0 -7
- package/dist/tools/TaskCreateTool/prompt.js +0 -58
- package/dist/tools/TaskCreateTool/prompt.js.map +0 -7
- package/dist/tools/TaskGetTool/TaskGetTool.js +0 -115
- package/dist/tools/TaskGetTool/TaskGetTool.js.map +0 -7
- package/dist/tools/TaskGetTool/prompt.js +0 -28
- package/dist/tools/TaskGetTool/prompt.js.map +0 -7
- package/dist/tools/TaskListTool/TaskListTool.js +0 -102
- package/dist/tools/TaskListTool/TaskListTool.js.map +0 -7
- package/dist/tools/TaskListTool/prompt.js +0 -42
- package/dist/tools/TaskListTool/prompt.js.map +0 -7
- package/dist/tools/TaskOutputTool/TaskOutputTool.js +0 -190
- package/dist/tools/TaskOutputTool/TaskOutputTool.js.map +0 -7
- package/dist/tools/TaskOutputTool/prompt.js +0 -16
- package/dist/tools/TaskOutputTool/prompt.js.map +0 -7
- package/dist/tools/TaskStopTool/TaskStopTool.js +0 -150
- package/dist/tools/TaskStopTool/TaskStopTool.js.map +0 -7
- package/dist/tools/TaskStopTool/prompt.js +0 -15
- package/dist/tools/TaskStopTool/prompt.js.map +0 -7
- package/dist/tools/TaskTool/TaskTool.js +0 -1525
- package/dist/tools/TaskTool/TaskTool.js.map +0 -7
- package/dist/tools/TaskTool/constants.js +0 -11
- package/dist/tools/TaskTool/constants.js.map +0 -7
- package/dist/tools/TaskTool/prompt.js +0 -121
- package/dist/tools/TaskTool/prompt.js.map +0 -7
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js +0 -148
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js.map +0 -7
- package/dist/tools/TaskUpdateTool/prompt.js +0 -81
- package/dist/tools/TaskUpdateTool/prompt.js.map +0 -7
- package/dist/tools/TeamCreateTool/TeamCreateTool.js +0 -129
- package/dist/tools/TeamCreateTool/TeamCreateTool.js.map +0 -7
- package/dist/tools/TeamCreateTool/prompt.js +0 -58
- package/dist/tools/TeamCreateTool/prompt.js.map +0 -7
- package/dist/tools/TeamDeleteTool/TeamDeleteTool.js +0 -151
- package/dist/tools/TeamDeleteTool/TeamDeleteTool.js.map +0 -7
- package/dist/tools/TeamDeleteTool/prompt.js +0 -16
- package/dist/tools/TeamDeleteTool/prompt.js.map +0 -7
- package/dist/tools/ThinkTool/ThinkTool.js +0 -45
- package/dist/tools/ThinkTool/ThinkTool.js.map +0 -7
- package/dist/tools/ThinkTool/prompt.js +0 -16
- package/dist/tools/ThinkTool/prompt.js.map +0 -7
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +0 -232
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +0 -7
- package/dist/tools/TodoWriteTool/prompt.js +0 -87
- package/dist/tools/TodoWriteTool/prompt.js.map +0 -7
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +0 -234
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +0 -7
- package/dist/tools/URLFetcherTool/cache.js +0 -95
- package/dist/tools/URLFetcherTool/cache.js.map +0 -7
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js +0 -44
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +0 -7
- package/dist/tools/URLFetcherTool/prompt.js +0 -28
- package/dist/tools/URLFetcherTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/WebSearchTool.js +0 -92
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +0 -7
- package/dist/tools/WebSearchTool/prompt.js +0 -24
- package/dist/tools/WebSearchTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/searchProviders.js +0 -58
- package/dist/tools/WebSearchTool/searchProviders.js.map +0 -7
- package/dist/tools/lsTool/lsTool.js +0 -201
- package/dist/tools/lsTool/lsTool.js.map +0 -7
- package/dist/tools/lsTool/prompt.js +0 -5
- package/dist/tools/lsTool/prompt.js.map +0 -7
- package/dist/tools.js +0 -207
- package/dist/tools.js.map +0 -7
- package/dist/types/PermissionMode.js +0 -160
- package/dist/types/PermissionMode.js.map +0 -7
- package/dist/types/RequestContext.js +0 -47
- package/dist/types/RequestContext.js.map +0 -7
- package/dist/types/agentTeams.js +0 -1
- package/dist/types/agentTeams.js.map +0 -7
- package/dist/types/askUserQuestion.js +0 -1
- package/dist/types/askUserQuestion.js.map +0 -7
- package/dist/types/common.d.js +0 -1
- package/dist/types/common.d.js.map +0 -7
- package/dist/types/conversation.js +0 -1
- package/dist/types/conversation.js.map +0 -7
- package/dist/types/core.js +0 -1
- package/dist/types/core.js.map +0 -7
- package/dist/types/hooks.js +0 -47
- package/dist/types/hooks.js.map +0 -7
- package/dist/types/interactionRound.js +0 -1
- package/dist/types/interactionRound.js.map +0 -7
- package/dist/types/logs.js +0 -1
- package/dist/types/logs.js.map +0 -7
- package/dist/types/marketplace.js +0 -107
- package/dist/types/marketplace.js.map +0 -7
- package/dist/types/messageGroup.js +0 -36
- package/dist/types/messageGroup.js.map +0 -7
- package/dist/types/modelCapabilities.js +0 -1
- package/dist/types/modelCapabilities.js.map +0 -7
- package/dist/types/notebook.js +0 -1
- package/dist/types/notebook.js.map +0 -7
- package/dist/types/plugin.js +0 -86
- package/dist/types/plugin.js.map +0 -7
- package/dist/types/subagent.js +0 -1
- package/dist/types/subagent.js.map +0 -7
- package/dist/types/thinking.js +0 -1
- package/dist/types/thinking.js.map +0 -7
- package/dist/utils/BackgroundShellManager.js +0 -378
- package/dist/utils/BackgroundShellManager.js.map +0 -7
- package/dist/utils/CircuitBreaker.js +0 -248
- package/dist/utils/CircuitBreaker.js.map +0 -7
- package/dist/utils/Cursor.js +0 -315
- package/dist/utils/Cursor.js.map +0 -7
- package/dist/utils/MessageBatchBuffer.js +0 -102
- package/dist/utils/MessageBatchBuffer.js.map +0 -7
- package/dist/utils/PersistentShell.js +0 -526
- package/dist/utils/PersistentShell.js.map +0 -7
- package/dist/utils/advancedFuzzyMatcher.js +0 -209
- package/dist/utils/advancedFuzzyMatcher.js.map +0 -7
- package/dist/utils/agentHookExecutor.js +0 -103
- package/dist/utils/agentHookExecutor.js.map +0 -7
- package/dist/utils/agentLoader.js +0 -655
- package/dist/utils/agentLoader.js.map +0 -7
- package/dist/utils/agentMemory.js +0 -134
- package/dist/utils/agentMemory.js.map +0 -7
- package/dist/utils/agentStorage.js +0 -59
- package/dist/utils/agentStorage.js.map +0 -7
- package/dist/utils/agentTranscripts.js +0 -641
- package/dist/utils/agentTranscripts.js.map +0 -7
- package/dist/utils/animationManager.js +0 -250
- package/dist/utils/animationManager.js.map +0 -7
- package/dist/utils/animationSync.js +0 -110
- package/dist/utils/animationSync.js.map +0 -7
- package/dist/utils/array.js +0 -7
- package/dist/utils/array.js.map +0 -7
- package/dist/utils/ask.js +0 -80
- package/dist/utils/ask.js.map +0 -7
- package/dist/utils/async.js +0 -167
- package/dist/utils/async.js.map +0 -7
- package/dist/utils/asyncFile.js +0 -215
- package/dist/utils/asyncFile.js.map +0 -7
- package/dist/utils/atomicWrite.js +0 -23
- package/dist/utils/atomicWrite.js.map +0 -7
- package/dist/utils/auth.js +0 -11
- package/dist/utils/auth.js.map +0 -7
- package/dist/utils/autoCompactCore.js +0 -203
- package/dist/utils/autoCompactCore.js.map +0 -7
- package/dist/utils/autoMemoryPaths.js +0 -89
- package/dist/utils/autoMemoryPaths.js.map +0 -7
- package/dist/utils/autoUpdater.js +0 -113
- package/dist/utils/autoUpdater.js.map +0 -7
- package/dist/utils/backgroundAgentManager.js +0 -231
- package/dist/utils/backgroundAgentManager.js.map +0 -7
- package/dist/utils/browser.js +0 -15
- package/dist/utils/browser.js.map +0 -7
- package/dist/utils/claudeCodeSync.js +0 -439
- package/dist/utils/claudeCodeSync.js.map +0 -7
- package/dist/utils/cleanup.js +0 -54
- package/dist/utils/cleanup.js.map +0 -7
- package/dist/utils/commands.js +0 -219
- package/dist/utils/commands.js.map +0 -7
- package/dist/utils/commonUnixCommands.js +0 -689
- package/dist/utils/commonUnixCommands.js.map +0 -7
- package/dist/utils/compressionMode.js +0 -47
- package/dist/utils/compressionMode.js.map +0 -7
- package/dist/utils/config.js +0 -716
- package/dist/utils/config.js.map +0 -7
- package/dist/utils/configPaths.js +0 -199
- package/dist/utils/configPaths.js.map +0 -7
- package/dist/utils/configSchema.js +0 -232
- package/dist/utils/configSchema.js.map +0 -7
- package/dist/utils/conversationRecovery.js +0 -54
- package/dist/utils/conversationRecovery.js.map +0 -7
- package/dist/utils/credentials/CredentialStore.js +0 -1
- package/dist/utils/credentials/CredentialStore.js.map +0 -7
- package/dist/utils/credentials/EncryptedFileStore.js +0 -157
- package/dist/utils/credentials/EncryptedFileStore.js.map +0 -7
- package/dist/utils/credentials/index.js +0 -51
- package/dist/utils/credentials/index.js.map +0 -7
- package/dist/utils/credentials/migration.js +0 -82
- package/dist/utils/credentials/migration.js.map +0 -7
- package/dist/utils/debugLogger.js +0 -889
- package/dist/utils/debugLogger.js.map +0 -7
- package/dist/utils/diff.js +0 -32
- package/dist/utils/diff.js.map +0 -7
- package/dist/utils/dualPath.js +0 -24
- package/dist/utils/dualPath.js.map +0 -7
- package/dist/utils/env.js +0 -45
- package/dist/utils/env.js.map +0 -7
- package/dist/utils/envConfig.js +0 -116
- package/dist/utils/envConfig.js.map +0 -7
- package/dist/utils/errorHandling.js +0 -89
- package/dist/utils/errorHandling.js.map +0 -7
- package/dist/utils/errors.js +0 -23
- package/dist/utils/errors.js.map +0 -7
- package/dist/utils/execFileNoThrow.js +0 -45
- package/dist/utils/execFileNoThrow.js.map +0 -7
- package/dist/utils/exit.js +0 -132
- package/dist/utils/exit.js.map +0 -7
- package/dist/utils/expertChatStorage.js +0 -78
- package/dist/utils/expertChatStorage.js.map +0 -7
- package/dist/utils/externalEditor.js +0 -155
- package/dist/utils/externalEditor.js.map +0 -7
- package/dist/utils/file.js +0 -282
- package/dist/utils/file.js.map +0 -7
- package/dist/utils/fileLock.js +0 -67
- package/dist/utils/fileLock.js.map +0 -7
- package/dist/utils/fileRecoveryCore.js +0 -41
- package/dist/utils/fileRecoveryCore.js.map +0 -7
- package/dist/utils/format.js +0 -119
- package/dist/utils/format.js.map +0 -7
- package/dist/utils/fuzzyMatcher.js +0 -258
- package/dist/utils/fuzzyMatcher.js.map +0 -7
- package/dist/utils/generators.js +0 -116
- package/dist/utils/generators.js.map +0 -7
- package/dist/utils/git.js +0 -83
- package/dist/utils/git.js.map +0 -7
- package/dist/utils/globalErrorHandler.js +0 -58
- package/dist/utils/globalErrorHandler.js.map +0 -7
- package/dist/utils/gpt5.js +0 -146
- package/dist/utils/gpt5.js.map +0 -7
- package/dist/utils/groupHandlers/index.js +0 -8
- package/dist/utils/groupHandlers/index.js.map +0 -7
- package/dist/utils/groupHandlers/parallelTasksHandler.js +0 -142
- package/dist/utils/groupHandlers/parallelTasksHandler.js.map +0 -7
- package/dist/utils/groupHandlers/taskHandler.js +0 -104
- package/dist/utils/groupHandlers/taskHandler.js.map +0 -7
- package/dist/utils/groupHandlers/types.js +0 -1
- package/dist/utils/groupHandlers/types.js.map +0 -7
- package/dist/utils/historyManager.js +0 -234
- package/dist/utils/historyManager.js.map +0 -7
- package/dist/utils/hookManager.js +0 -540
- package/dist/utils/hookManager.js.map +0 -7
- package/dist/utils/http.js +0 -7
- package/dist/utils/http.js.map +0 -7
- package/dist/utils/imagePaste.js +0 -29
- package/dist/utils/imagePaste.js.map +0 -7
- package/dist/utils/json.js +0 -16
- package/dist/utils/json.js.map +0 -7
- package/dist/utils/log.js +0 -333
- package/dist/utils/log.js.map +0 -7
- package/dist/utils/logRotation.js +0 -224
- package/dist/utils/logRotation.js.map +0 -7
- package/dist/utils/markdown.js +0 -464
- package/dist/utils/markdown.js.map +0 -7
- package/dist/utils/marketplaceManager.js +0 -545
- package/dist/utils/marketplaceManager.js.map +0 -7
- package/dist/utils/memSafety.js +0 -264
- package/dist/utils/memSafety.js.map +0 -7
- package/dist/utils/memoizeWithTTL.js +0 -25
- package/dist/utils/memoizeWithTTL.js.map +0 -7
- package/dist/utils/messageContextManager.js +0 -208
- package/dist/utils/messageContextManager.js.map +0 -7
- package/dist/utils/messageGroupManager.js +0 -274
- package/dist/utils/messageGroupManager.js.map +0 -7
- package/dist/utils/messages.js +0 -725
- package/dist/utils/messages.js.map +0 -7
- package/dist/utils/migration/index.js +0 -37
- package/dist/utils/migration/index.js.map +0 -7
- package/dist/utils/migration/migrateHistory.js +0 -273
- package/dist/utils/migration/migrateHistory.js.map +0 -7
- package/dist/utils/migration/migrateTodos.js +0 -323
- package/dist/utils/migration/migrateTodos.js.map +0 -7
- package/dist/utils/model.js +0 -846
- package/dist/utils/model.js.map +0 -7
- package/dist/utils/pasteCache.js +0 -313
- package/dist/utils/pasteCache.js.map +0 -7
- package/dist/utils/permissions/filesystem.js +0 -236
- package/dist/utils/permissions/filesystem.js.map +0 -7
- package/dist/utils/plan/planMode.js +0 -143
- package/dist/utils/plan/planMode.js.map +0 -7
- package/dist/utils/pluginInstaller.js +0 -518
- package/dist/utils/pluginInstaller.js.map +0 -7
- package/dist/utils/pluginLoader.js +0 -819
- package/dist/utils/pluginLoader.js.map +0 -7
- package/dist/utils/pluginRegistry.js +0 -111
- package/dist/utils/pluginRegistry.js.map +0 -7
- package/dist/utils/pluginValidator.js +0 -798
- package/dist/utils/pluginValidator.js.map +0 -7
- package/dist/utils/ptyCompat.js +0 -125
- package/dist/utils/ptyCompat.js.map +0 -7
- package/dist/utils/replStateMachine.js +0 -145
- package/dist/utils/replStateMachine.js.map +0 -7
- package/dist/utils/repoFetcher.js +0 -110
- package/dist/utils/repoFetcher.js.map +0 -7
- package/dist/utils/ripgrep.js +0 -236
- package/dist/utils/ripgrep.js.map +0 -7
- package/dist/utils/roundConverter.js +0 -262
- package/dist/utils/roundConverter.js.map +0 -7
- package/dist/utils/safeFetch.js +0 -45
- package/dist/utils/safeFetch.js.map +0 -7
- package/dist/utils/safePath.js +0 -132
- package/dist/utils/safePath.js.map +0 -7
- package/dist/utils/sanitizeInput.js +0 -32
- package/dist/utils/sanitizeInput.js.map +0 -7
- package/dist/utils/secureFile.js +0 -512
- package/dist/utils/secureFile.js.map +0 -7
- package/dist/utils/secureKeyStorage.js +0 -341
- package/dist/utils/secureKeyStorage.js.map +0 -7
- package/dist/utils/sensitiveFiles.js +0 -125
- package/dist/utils/sensitiveFiles.js.map +0 -7
- package/dist/utils/session/sessionPlugins.js +0 -67
- package/dist/utils/session/sessionPlugins.js.map +0 -7
- package/dist/utils/sessionIndex.js +0 -192
- package/dist/utils/sessionIndex.js.map +0 -7
- package/dist/utils/sessionState.js +0 -22
- package/dist/utils/sessionState.js.map +0 -7
- package/dist/utils/sessionTracker.js +0 -170
- package/dist/utils/sessionTracker.js.map +0 -7
- package/dist/utils/simpleMode.js +0 -7
- package/dist/utils/simpleMode.js.map +0 -7
- package/dist/utils/skillLoader.js +0 -230
- package/dist/utils/skillLoader.js.map +0 -7
- package/dist/utils/state.js +0 -24
- package/dist/utils/state.js.map +0 -7
- package/dist/utils/stats.js +0 -417
- package/dist/utils/stats.js.map +0 -7
- package/dist/utils/streamingState.js +0 -62
- package/dist/utils/streamingState.js.map +0 -7
- package/dist/utils/stringSubstitution.js +0 -106
- package/dist/utils/stringSubstitution.js.map +0 -7
- package/dist/utils/style.js +0 -34
- package/dist/utils/style.js.map +0 -7
- package/dist/utils/taskDisplayUtils.js +0 -258
- package/dist/utils/taskDisplayUtils.js.map +0 -7
- package/dist/utils/teamConfig.js +0 -624
- package/dist/utils/teamConfig.js.map +0 -7
- package/dist/utils/terminal.js +0 -59
- package/dist/utils/terminal.js.map +0 -7
- package/dist/utils/theme.js +0 -134
- package/dist/utils/theme.js.map +0 -7
- package/dist/utils/thinking.js +0 -63
- package/dist/utils/thinking.js.map +0 -7
- package/dist/utils/todoChangeCalculator.js +0 -64
- package/dist/utils/todoChangeCalculator.js.map +0 -7
- package/dist/utils/todoStorage.js +0 -413
- package/dist/utils/todoStorage.js.map +0 -7
- package/dist/utils/tokenProgress.js +0 -55
- package/dist/utils/tokenProgress.js.map +0 -7
- package/dist/utils/tokens.js +0 -30
- package/dist/utils/tokens.js.map +0 -7
- package/dist/utils/toolExecutionController.js +0 -109
- package/dist/utils/toolExecutionController.js.map +0 -7
- package/dist/utils/toolRiskClassification.js +0 -210
- package/dist/utils/toolRiskClassification.js.map +0 -7
- package/dist/utils/toolTimeout.js +0 -136
- package/dist/utils/toolTimeout.js.map +0 -7
- package/dist/utils/tooling/safeRender.js +0 -115
- package/dist/utils/tooling/safeRender.js.map +0 -7
- package/dist/utils/tooling/toolError.js +0 -12
- package/dist/utils/tooling/toolError.js.map +0 -7
- package/dist/utils/unaryLogging.js +0 -6
- package/dist/utils/unaryLogging.js.map +0 -7
- package/dist/utils/user.js +0 -40
- package/dist/utils/user.js.map +0 -7
- package/dist/utils/userFriendlyError.js +0 -346
- package/dist/utils/userFriendlyError.js.map +0 -7
- package/dist/utils/validate.js +0 -132
- package/dist/utils/validate.js.map +0 -7
- package/dist/version.js +0 -7
- package/dist/version.js.map +0 -7
- package/dist/yoga.wasm +0 -0
- /package/{dist/utils/vendor → vendor}/ripgrep/arm64-darwin/rg +0 -0
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { Box, Text } from "ink";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
|
|
5
|
-
import { setTodos, getTodos } from "../../utils/todoStorage.js";
|
|
6
|
-
import { emitReminderEvent } from "../../services/systemReminder.js";
|
|
7
|
-
import { startWatchingTodoFile } from "../../services/fileFreshness.js";
|
|
8
|
-
import { DESCRIPTION, PROMPT } from "./prompt.js";
|
|
9
|
-
import { getTheme } from "../../utils/theme.js";
|
|
10
|
-
const TodoItemSchema = z.object({
|
|
11
|
-
content: z.string().min(1).describe("The task description or content"),
|
|
12
|
-
activeForm: z.string().min(1).optional().describe(
|
|
13
|
-
'The present continuous form of the task (e.g., "Running tests" for "Run tests"). If not provided, will be auto-generated from content.'
|
|
14
|
-
),
|
|
15
|
-
status: z.enum(["pending", "in_progress", "completed"]).describe("Current status of the task"),
|
|
16
|
-
priority: z.enum(["high", "medium", "low"]).describe("Priority level of the task"),
|
|
17
|
-
id: z.string().min(1).optional().describe(
|
|
18
|
-
"Unique identifier for the task. If not provided, will be auto-generated."
|
|
19
|
-
)
|
|
20
|
-
});
|
|
21
|
-
const inputSchema = z.strictObject({
|
|
22
|
-
todos: z.array(TodoItemSchema).describe("The updated todo list")
|
|
23
|
-
});
|
|
24
|
-
function generateActiveForm(content) {
|
|
25
|
-
const trimmed = content.trim();
|
|
26
|
-
const patterns = [
|
|
27
|
-
{ regex: /^(Run|run)\s+(.+)$/i, replacement: "Running $2" },
|
|
28
|
-
{ regex: /^(Build|build)\s+(.+)$/i, replacement: "Building $2" },
|
|
29
|
-
{ regex: /^(Fix|fix)\s+(.+)$/i, replacement: "Fixing $2" },
|
|
30
|
-
{ regex: /^(Add|add)\s+(.+)$/i, replacement: "Adding $2" },
|
|
31
|
-
{ regex: /^(Create|create)\s+(.+)$/i, replacement: "Creating $2" },
|
|
32
|
-
{ regex: /^(Update|update)\s+(.+)$/i, replacement: "Updating $2" },
|
|
33
|
-
{ regex: /^(Delete|delete)\s+(.+)$/i, replacement: "Deleting $2" },
|
|
34
|
-
{ regex: /^(Test|test)\s+(.+)$/i, replacement: "Testing $2" },
|
|
35
|
-
{ regex: /^(Deploy|deploy)\s+(.+)$/i, replacement: "Deploying $2" },
|
|
36
|
-
{ regex: /^(Analyze|analyze)\s+(.+)$/i, replacement: "Analyzing $2" },
|
|
37
|
-
{ regex: /^(Review|review)\s+(.+)$/i, replacement: "Reviewing $2" },
|
|
38
|
-
{ regex: /^(Write|write)\s+(.+)$/i, replacement: "Writing $2" }
|
|
39
|
-
];
|
|
40
|
-
for (const { regex, replacement } of patterns) {
|
|
41
|
-
if (regex.test(trimmed)) {
|
|
42
|
-
return trimmed.replace(regex, replacement);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return `Working on: ${trimmed}`;
|
|
46
|
-
}
|
|
47
|
-
function validateTodos(todos) {
|
|
48
|
-
const ids = todos.map((todo) => todo.id).filter(Boolean);
|
|
49
|
-
const uniqueIds = new Set(ids);
|
|
50
|
-
if (ids.length !== uniqueIds.size) {
|
|
51
|
-
return {
|
|
52
|
-
result: false,
|
|
53
|
-
errorCode: 1,
|
|
54
|
-
message: "Duplicate todo IDs found",
|
|
55
|
-
meta: {
|
|
56
|
-
duplicateIds: ids.filter((id, index) => ids.indexOf(id) !== index)
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
const inProgressTasks = todos.filter((todo) => todo.status === "in_progress");
|
|
61
|
-
if (inProgressTasks.length > 1) {
|
|
62
|
-
return {
|
|
63
|
-
result: false,
|
|
64
|
-
errorCode: 2,
|
|
65
|
-
message: "Only one task can be in_progress at a time",
|
|
66
|
-
meta: { inProgressTaskIds: inProgressTasks.map((t) => t.id) }
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
for (let i = 0; i < todos.length; i++) {
|
|
70
|
-
const todo = todos[i];
|
|
71
|
-
const todoIdentifier = todo.id || `index ${i}`;
|
|
72
|
-
if (!todo.content?.trim()) {
|
|
73
|
-
return {
|
|
74
|
-
result: false,
|
|
75
|
-
errorCode: 3,
|
|
76
|
-
message: `Todo at ${todoIdentifier} has empty content`,
|
|
77
|
-
meta: { todoId: todo.id, index: i }
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
if (!["pending", "in_progress", "completed"].includes(todo.status)) {
|
|
81
|
-
return {
|
|
82
|
-
result: false,
|
|
83
|
-
errorCode: 4,
|
|
84
|
-
message: `Invalid status "${todo.status}" for todo at ${todoIdentifier}`,
|
|
85
|
-
meta: { todoId: todo.id, index: i, invalidStatus: todo.status }
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
if (!["high", "medium", "low"].includes(todo.priority)) {
|
|
89
|
-
return {
|
|
90
|
-
result: false,
|
|
91
|
-
errorCode: 5,
|
|
92
|
-
message: `Invalid priority "${todo.priority}" for todo at ${todoIdentifier}`,
|
|
93
|
-
meta: { todoId: todo.id, index: i, invalidPriority: todo.priority }
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return { result: true };
|
|
98
|
-
}
|
|
99
|
-
function generateTodoSummary(todos) {
|
|
100
|
-
const stats = {
|
|
101
|
-
total: todos.length,
|
|
102
|
-
pending: todos.filter((t) => t.status === "pending").length,
|
|
103
|
-
inProgress: todos.filter((t) => t.status === "in_progress").length,
|
|
104
|
-
completed: todos.filter((t) => t.status === "completed").length
|
|
105
|
-
};
|
|
106
|
-
let summary = `Updated ${stats.total} todo(s)`;
|
|
107
|
-
if (stats.total > 0) {
|
|
108
|
-
summary += ` (${stats.pending} pending, ${stats.inProgress} in progress, ${stats.completed} completed)`;
|
|
109
|
-
}
|
|
110
|
-
summary += ". Continue tracking your progress with the todo list.";
|
|
111
|
-
return summary;
|
|
112
|
-
}
|
|
113
|
-
const TodoWriteTool = {
|
|
114
|
-
name: "TodoWrite",
|
|
115
|
-
async description() {
|
|
116
|
-
return DESCRIPTION;
|
|
117
|
-
},
|
|
118
|
-
async prompt() {
|
|
119
|
-
return PROMPT;
|
|
120
|
-
},
|
|
121
|
-
inputSchema,
|
|
122
|
-
userFacingName() {
|
|
123
|
-
return "Update Todos";
|
|
124
|
-
},
|
|
125
|
-
async isEnabled() {
|
|
126
|
-
return true;
|
|
127
|
-
},
|
|
128
|
-
isReadOnly() {
|
|
129
|
-
return false;
|
|
130
|
-
},
|
|
131
|
-
isConcurrencySafe() {
|
|
132
|
-
return false;
|
|
133
|
-
},
|
|
134
|
-
needsPermissions() {
|
|
135
|
-
return false;
|
|
136
|
-
},
|
|
137
|
-
renderResultForAssistant(result) {
|
|
138
|
-
return "Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable";
|
|
139
|
-
},
|
|
140
|
-
renderToolUseMessage(input, { verbose }) {
|
|
141
|
-
const todos = input?.todos ?? [];
|
|
142
|
-
if (todos.length === 0) return "cleared";
|
|
143
|
-
const stats = {
|
|
144
|
-
pending: todos.filter((t) => t.status === "pending").length,
|
|
145
|
-
inProgress: todos.filter((t) => t.status === "in_progress").length,
|
|
146
|
-
completed: todos.filter((t) => t.status === "completed").length
|
|
147
|
-
};
|
|
148
|
-
const currentTask = todos.find((t) => t.status === "in_progress") || todos.find((t) => t.status === "pending");
|
|
149
|
-
const taskName = currentTask ? currentTask.content.slice(0, 40) + (currentTask.content.length > 40 ? "..." : "") : "";
|
|
150
|
-
const statsParts = [];
|
|
151
|
-
if (stats.inProgress > 0) statsParts.push(`${stats.inProgress} running`);
|
|
152
|
-
if (stats.pending > 0) statsParts.push(`${stats.pending} pending`);
|
|
153
|
-
if (stats.completed > 0) statsParts.push(`${stats.completed} done`);
|
|
154
|
-
const statsStr = statsParts.length > 0 ? `(${statsParts.join(", ")})` : "";
|
|
155
|
-
if (taskName) {
|
|
156
|
-
return statsStr ? ` ${statsStr}: ${taskName}` : `: ${taskName}`;
|
|
157
|
-
}
|
|
158
|
-
return statsStr ? ` ${statsStr}` : "";
|
|
159
|
-
},
|
|
160
|
-
renderToolUseRejectedMessage() {
|
|
161
|
-
return /* @__PURE__ */ React.createElement(FallbackToolUseRejectedMessage, null);
|
|
162
|
-
},
|
|
163
|
-
renderToolResultMessage(output) {
|
|
164
|
-
const isError = typeof output === "string" && output.startsWith("Error");
|
|
165
|
-
if (isError) {
|
|
166
|
-
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "row", width: "100%" }, /* @__PURE__ */ React.createElement(Text, { color: getTheme().error }, "\xA0\xA0\u23BF \xA0", typeof output === "string" ? output : JSON.stringify(output)));
|
|
167
|
-
}
|
|
168
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null);
|
|
169
|
-
},
|
|
170
|
-
async validateInput({ todos }) {
|
|
171
|
-
const todoItems = todos;
|
|
172
|
-
const validation = validateTodos(todoItems);
|
|
173
|
-
if (!validation.result) {
|
|
174
|
-
return validation;
|
|
175
|
-
}
|
|
176
|
-
return { result: true };
|
|
177
|
-
},
|
|
178
|
-
async *call({ todos }, context) {
|
|
179
|
-
try {
|
|
180
|
-
const agentId = context?.agentId;
|
|
181
|
-
if (agentId) {
|
|
182
|
-
startWatchingTodoFile(agentId);
|
|
183
|
-
}
|
|
184
|
-
const previousTodos = getTodos(agentId);
|
|
185
|
-
const todoItems = todos.map((todo, index) => ({
|
|
186
|
-
...todo,
|
|
187
|
-
id: todo.id || `todo-${Date.now()}-${index}`,
|
|
188
|
-
activeForm: todo.activeForm || generateActiveForm(todo.content)
|
|
189
|
-
}));
|
|
190
|
-
setTodos(todoItems, agentId);
|
|
191
|
-
const hasChanged = JSON.stringify(previousTodos) !== JSON.stringify(todoItems);
|
|
192
|
-
if (hasChanged) {
|
|
193
|
-
emitReminderEvent("todo:changed", {
|
|
194
|
-
previousTodos,
|
|
195
|
-
newTodos: todoItems,
|
|
196
|
-
timestamp: Date.now(),
|
|
197
|
-
agentId: agentId || "default",
|
|
198
|
-
changeType: todoItems.length > previousTodos.length ? "added" : todoItems.length < previousTodos.length ? "removed" : "modified"
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
const summary = generateTodoSummary(todoItems);
|
|
202
|
-
const resultWithSnapshot = JSON.stringify({
|
|
203
|
-
_type: "todo_snapshot",
|
|
204
|
-
summary,
|
|
205
|
-
todos: todoItems
|
|
206
|
-
});
|
|
207
|
-
yield {
|
|
208
|
-
type: "result",
|
|
209
|
-
data: resultWithSnapshot,
|
|
210
|
-
resultForAssistant: summary
|
|
211
|
-
};
|
|
212
|
-
} catch (error) {
|
|
213
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
|
|
214
|
-
const errorResult = `Error updating todos: ${errorMessage}`;
|
|
215
|
-
emitReminderEvent("todo:error", {
|
|
216
|
-
error: errorMessage,
|
|
217
|
-
timestamp: Date.now(),
|
|
218
|
-
agentId: context?.agentId || "default",
|
|
219
|
-
context: "TodoWriteTool.call"
|
|
220
|
-
});
|
|
221
|
-
yield {
|
|
222
|
-
type: "result",
|
|
223
|
-
data: errorResult,
|
|
224
|
-
resultForAssistant: errorResult
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
};
|
|
229
|
-
export {
|
|
230
|
-
TodoWriteTool
|
|
231
|
-
};
|
|
232
|
-
//# sourceMappingURL=TodoWriteTool.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/TodoWriteTool/TodoWriteTool.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Box, Text } from 'ink'\nimport * as React from 'react'\nimport { z } from 'zod'\nimport { FallbackToolUseRejectedMessage } from '@components/FallbackToolUseRejectedMessage'\nimport { Tool, ValidationResult } from '@tool'\nimport { setTodos, getTodos, TodoItem } from '@utils/todoStorage'\nimport { emitReminderEvent } from '@services/systemReminder'\nimport { startWatchingTodoFile } from '@services/fileFreshness'\nimport { DESCRIPTION, PROMPT } from './prompt'\nimport { getTheme } from '@utils/theme'\n\nconst TodoItemSchema = z.object({\n content: z.string().min(1).describe('The task description or content'),\n activeForm: z\n .string()\n .min(1)\n .optional()\n .describe(\n 'The present continuous form of the task (e.g., \"Running tests\" for \"Run tests\"). If not provided, will be auto-generated from content.',\n ),\n status: z\n .enum(['pending', 'in_progress', 'completed'])\n .describe('Current status of the task'),\n priority: z\n .enum(['high', 'medium', 'low'])\n .describe('Priority level of the task'),\n id: z\n .string()\n .min(1)\n .optional()\n .describe(\n 'Unique identifier for the task. If not provided, will be auto-generated.',\n ),\n})\n\nconst inputSchema = z.strictObject({\n todos: z.array(TodoItemSchema).describe('The updated todo list'),\n})\n\n/**\n * Auto-generates activeForm from content if not provided\n * Converts imperative form to present continuous\n * Examples: \"Run tests\" -> \"Running tests\", \"Fix bug\" -> \"Fixing bug\"\n */\nfunction generateActiveForm(content: string): string {\n const trimmed = content.trim()\n\n // Common verb patterns for imperative -> present continuous\n const patterns = [\n { regex: /^(Run|run)\\s+(.+)$/i, replacement: 'Running $2' },\n { regex: /^(Build|build)\\s+(.+)$/i, replacement: 'Building $2' },\n { regex: /^(Fix|fix)\\s+(.+)$/i, replacement: 'Fixing $2' },\n { regex: /^(Add|add)\\s+(.+)$/i, replacement: 'Adding $2' },\n { regex: /^(Create|create)\\s+(.+)$/i, replacement: 'Creating $2' },\n { regex: /^(Update|update)\\s+(.+)$/i, replacement: 'Updating $2' },\n { regex: /^(Delete|delete)\\s+(.+)$/i, replacement: 'Deleting $2' },\n { regex: /^(Test|test)\\s+(.+)$/i, replacement: 'Testing $2' },\n { regex: /^(Deploy|deploy)\\s+(.+)$/i, replacement: 'Deploying $2' },\n { regex: /^(Analyze|analyze)\\s+(.+)$/i, replacement: 'Analyzing $2' },\n { regex: /^(Review|review)\\s+(.+)$/i, replacement: 'Reviewing $2' },\n { regex: /^(Write|write)\\s+(.+)$/i, replacement: 'Writing $2' },\n ]\n\n for (const { regex, replacement } of patterns) {\n if (regex.test(trimmed)) {\n return trimmed.replace(regex, replacement)\n }\n }\n\n // Fallback: add \"Working on\" prefix\n return `Working on: ${trimmed}`\n}\n\nfunction validateTodos(todos: TodoItem[]): ValidationResult {\n // Check for duplicate IDs (only among todos that have IDs)\n const ids = todos.map(todo => todo.id).filter(Boolean) as string[]\n const uniqueIds = new Set(ids)\n if (ids.length !== uniqueIds.size) {\n return {\n result: false,\n errorCode: 1,\n message: 'Duplicate todo IDs found',\n meta: {\n duplicateIds: ids.filter((id, index) => ids.indexOf(id) !== index),\n },\n }\n }\n\n // Check for multiple in_progress tasks\n const inProgressTasks = todos.filter(todo => todo.status === 'in_progress')\n if (inProgressTasks.length > 1) {\n return {\n result: false,\n errorCode: 2,\n message: 'Only one task can be in_progress at a time',\n meta: { inProgressTaskIds: inProgressTasks.map(t => t.id) },\n }\n }\n\n // Validate each todo\n for (let i = 0; i < todos.length; i++) {\n const todo = todos[i]\n const todoIdentifier = todo.id || `index ${i}`\n\n if (!todo.content?.trim()) {\n return {\n result: false,\n errorCode: 3,\n message: `Todo at ${todoIdentifier} has empty content`,\n meta: { todoId: todo.id, index: i },\n }\n }\n if (!['pending', 'in_progress', 'completed'].includes(todo.status)) {\n return {\n result: false,\n errorCode: 4,\n message: `Invalid status \"${todo.status}\" for todo at ${todoIdentifier}`,\n meta: { todoId: todo.id, index: i, invalidStatus: todo.status },\n }\n }\n if (!['high', 'medium', 'low'].includes(todo.priority)) {\n return {\n result: false,\n errorCode: 5,\n message: `Invalid priority \"${todo.priority}\" for todo at ${todoIdentifier}`,\n meta: { todoId: todo.id, index: i, invalidPriority: todo.priority },\n }\n }\n }\n\n return { result: true }\n}\n\nfunction generateTodoSummary(todos: TodoItem[]): string {\n const stats = {\n total: todos.length,\n pending: todos.filter(t => t.status === 'pending').length,\n inProgress: todos.filter(t => t.status === 'in_progress').length,\n completed: todos.filter(t => t.status === 'completed').length,\n }\n\n // Enhanced summary with statistics\n let summary = `Updated ${stats.total} todo(s)`\n if (stats.total > 0) {\n summary += ` (${stats.pending} pending, ${stats.inProgress} in progress, ${stats.completed} completed)`\n }\n summary += '. Continue tracking your progress with the todo list.'\n\n return summary\n}\n\nexport const TodoWriteTool = {\n name: 'TodoWrite',\n async description() {\n return DESCRIPTION\n },\n async prompt() {\n return PROMPT\n },\n inputSchema,\n userFacingName() {\n return 'Update Todos'\n },\n async isEnabled() {\n return true\n },\n isReadOnly() {\n return false\n },\n isConcurrencySafe() {\n return false // TodoWrite modifies state, not safe for concurrent execution\n },\n needsPermissions() {\n return false\n },\n renderResultForAssistant(result) {\n // Match official implementation - return static confirmation message\n return 'Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable'\n },\n renderToolUseMessage(input, { verbose }) {\n // Format: \"(1 running, 2 pending): taskName\"\n const todos = input?.todos ?? []\n if (todos.length === 0) return 'cleared'\n\n const stats = {\n pending: todos.filter(t => t.status === 'pending').length,\n inProgress: todos.filter(t => t.status === 'in_progress').length,\n completed: todos.filter(t => t.status === 'completed').length,\n }\n\n // Find current running task or next pending task for display\n const currentTask =\n todos.find(t => t.status === 'in_progress') ||\n todos.find(t => t.status === 'pending')\n const taskName = currentTask\n ? currentTask.content.slice(0, 40) +\n (currentTask.content.length > 40 ? '...' : '')\n : ''\n\n // Build stats string with parentheses around stats only\n // AssistantToolUseMessage handles TodoWriteTool specially - doesn't wrap in extra parens\n const statsParts = []\n if (stats.inProgress > 0) statsParts.push(`${stats.inProgress} running`)\n if (stats.pending > 0) statsParts.push(`${stats.pending} pending`)\n if (stats.completed > 0) statsParts.push(`${stats.completed} done`)\n const statsStr = statsParts.length > 0 ? `(${statsParts.join(', ')})` : ''\n\n // Format: \" (stats): taskName\" with leading space for proper spacing after tool name\n // Result: \"Update Todos (1 running, 2 pending): \u968F\u673A\u9009\u62E93\u4E2A\u6587\u4EF6\u2026\"\n if (taskName) {\n return statsStr ? ` ${statsStr}: ${taskName}` : `: ${taskName}`\n }\n return statsStr ? ` ${statsStr}` : ''\n },\n renderToolUseRejectedMessage() {\n return <FallbackToolUseRejectedMessage />\n },\n renderToolResultMessage(output) {\n // All info shown in renderToolUseMessage - only show errors here\n const isError = typeof output === 'string' && output.startsWith('Error')\n\n if (isError) {\n return (\n <Box flexDirection=\"row\" width=\"100%\">\n <Text color={getTheme().error}>\n \u23BF \n {typeof output === 'string' ? output : JSON.stringify(output)}\n </Text>\n </Box>\n )\n }\n\n // Return empty fragment for successful updates - info already in tool use message\n // Using React.Fragment instead of null to avoid DefaultToolResult fallback\n return <React.Fragment />\n },\n async validateInput({ todos }: z.infer<typeof inputSchema>) {\n // Type assertion to ensure todos match TodoItem[] interface\n const todoItems = todos as TodoItem[]\n const validation = validateTodos(todoItems)\n if (!validation.result) {\n return validation\n }\n return { result: true }\n },\n async *call({ todos }: z.infer<typeof inputSchema>, context) {\n try {\n // Get agent ID from context\n const agentId = context?.agentId\n\n // Start watching todo file for this agent if not already watching\n if (agentId) {\n startWatchingTodoFile(agentId)\n }\n\n // Store previous todos for comparison (agent-scoped)\n const previousTodos = getTodos(agentId)\n\n // Type assertion to ensure todos match TodoItem[] interface\n // Auto-generate activeForm and id for todos that don't have them\n const todoItems = todos.map((todo, index) => ({\n ...todo,\n id: todo.id || `todo-${Date.now()}-${index}`,\n activeForm: todo.activeForm || generateActiveForm(todo.content),\n })) as TodoItem[]\n\n // Note: Validation already done in validateInput, no need for duplicate validation\n // This eliminates the double validation issue\n\n // Update the todos in storage (agent-scoped)\n setTodos(todoItems, agentId)\n\n // Emit todo change event for system reminders (optimized - only if todos actually changed)\n const hasChanged =\n JSON.stringify(previousTodos) !== JSON.stringify(todoItems)\n if (hasChanged) {\n emitReminderEvent('todo:changed', {\n previousTodos,\n newTodos: todoItems,\n timestamp: Date.now(),\n agentId: agentId || 'default',\n changeType:\n todoItems.length > previousTodos.length\n ? 'added'\n : todoItems.length < previousTodos.length\n ? 'removed'\n : 'modified',\n })\n }\n\n // Generate enhanced summary\n const summary = generateTodoSummary(todoItems)\n\n // Create result with embedded todo snapshot for history restore\n // This ensures the render can display the correct state even after session restart\n const resultWithSnapshot = JSON.stringify({\n _type: 'todo_snapshot',\n summary,\n todos: todoItems,\n })\n\n yield {\n type: 'result',\n data: resultWithSnapshot,\n resultForAssistant: summary,\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'Unknown error occurred'\n const errorResult = `Error updating todos: ${errorMessage}`\n\n // Emit error event for system monitoring\n emitReminderEvent('todo:error', {\n error: errorMessage,\n timestamp: Date.now(),\n agentId: context?.agentId || 'default',\n context: 'TodoWriteTool.call',\n })\n\n yield {\n type: 'result',\n data: errorResult,\n resultForAssistant: errorResult,\n }\n }\n },\n} satisfies Tool\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
const DESCRIPTION = "Creates and manages todo items for task tracking and progress management in the current session.";
|
|
2
|
-
const PROMPT = `Use this tool to create and manage todo items for tracking tasks and progress. This tool provides comprehensive todo management:
|
|
3
|
-
|
|
4
|
-
## When to Use This Tool
|
|
5
|
-
|
|
6
|
-
Use this tool proactively in these scenarios:
|
|
7
|
-
|
|
8
|
-
1. **Complex multi-step tasks** - When a task requires 3 or more distinct steps or actions
|
|
9
|
-
2. **Non-trivial and complex tasks** - Tasks that require careful planning or multiple operations
|
|
10
|
-
3. **User explicitly requests todo list** - When the user directly asks you to use the todo list
|
|
11
|
-
4. **User provides multiple tasks** - When users provide a list of things to be done (numbered or comma-separated)
|
|
12
|
-
5. **After receiving new instructions** - Immediately capture user requirements as todos
|
|
13
|
-
6. **When you start working on a task** - Mark it as in_progress BEFORE beginning work. Ideally you should only have one todo as in_progress at a time
|
|
14
|
-
7. **After completing a task** - Mark it as completed and add any new follow-up tasks discovered during implementation
|
|
15
|
-
|
|
16
|
-
## When NOT to Use This Tool
|
|
17
|
-
|
|
18
|
-
Skip using this tool when:
|
|
19
|
-
1. There is only a single, straightforward task
|
|
20
|
-
2. The task is trivial and tracking it provides no organizational benefit
|
|
21
|
-
3. The task can be completed in less than 3 trivial steps
|
|
22
|
-
4. The task is purely conversational or informational
|
|
23
|
-
|
|
24
|
-
## Task States and Management
|
|
25
|
-
|
|
26
|
-
1. **Task States**: Use these states to track progress:
|
|
27
|
-
- pending: Task not yet started
|
|
28
|
-
- in_progress: Currently working on (limit to ONE task at a time)
|
|
29
|
-
- completed: Task finished successfully
|
|
30
|
-
|
|
31
|
-
2. **Task Management**:
|
|
32
|
-
- Update task status in real-time as you work
|
|
33
|
-
- Mark tasks complete IMMEDIATELY after finishing (don't batch completions)
|
|
34
|
-
- Only have ONE task in_progress at any time
|
|
35
|
-
- Complete current tasks before starting new ones
|
|
36
|
-
- Remove tasks that are no longer relevant from the list entirely
|
|
37
|
-
|
|
38
|
-
3. **Task Completion Requirements**:
|
|
39
|
-
- ONLY mark a task as completed when you have FULLY accomplished it
|
|
40
|
-
- If you encounter errors, blockers, or cannot finish, keep the task as in_progress
|
|
41
|
-
- When blocked, create a new task describing what needs to be resolved
|
|
42
|
-
- Never mark a task as completed if:
|
|
43
|
-
- Tests are failing
|
|
44
|
-
- Implementation is partial
|
|
45
|
-
- You encountered unresolved errors
|
|
46
|
-
- You couldn't find necessary files or dependencies
|
|
47
|
-
|
|
48
|
-
4. **Task Breakdown**:
|
|
49
|
-
- Create specific, actionable items
|
|
50
|
-
- Break complex tasks into smaller, manageable steps
|
|
51
|
-
- Use clear, descriptive task names
|
|
52
|
-
|
|
53
|
-
## Tool Capabilities
|
|
54
|
-
|
|
55
|
-
- **Create new todos**: Add tasks with content, priority, and status
|
|
56
|
-
- **Update existing todos**: Modify any aspect of a todo (status, priority, content)
|
|
57
|
-
- **Delete todos**: Remove completed or irrelevant tasks
|
|
58
|
-
- **Batch operations**: Update multiple todos in a single operation
|
|
59
|
-
- **Clear all todos**: Reset the entire todo list
|
|
60
|
-
|
|
61
|
-
## Required Parameters
|
|
62
|
-
|
|
63
|
-
Each todo item MUST include these fields:
|
|
64
|
-
- **content** (string, required): Task description
|
|
65
|
-
- **status** (enum, required): "pending" | "in_progress" | "completed"
|
|
66
|
-
- **priority** (enum, required): "high" | "medium" | "low"
|
|
67
|
-
- **id** (string, optional): Unique identifier (auto-generated if not provided)
|
|
68
|
-
- **activeForm** (string, optional): Present continuous form shown when in_progress (e.g., "Running tests")
|
|
69
|
-
|
|
70
|
-
## Example
|
|
71
|
-
|
|
72
|
-
\`\`\`json
|
|
73
|
-
{
|
|
74
|
-
"todos": [
|
|
75
|
-
{"content": "Analyze requirements", "status": "completed", "priority": "high"},
|
|
76
|
-
{"content": "Implement feature", "status": "in_progress", "priority": "high"},
|
|
77
|
-
{"content": "Write tests", "status": "pending", "priority": "medium"}
|
|
78
|
-
]
|
|
79
|
-
}
|
|
80
|
-
\`\`\`
|
|
81
|
-
|
|
82
|
-
When in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.`;
|
|
83
|
-
export {
|
|
84
|
-
DESCRIPTION,
|
|
85
|
-
PROMPT
|
|
86
|
-
};
|
|
87
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/TodoWriteTool/prompt.ts"],
|
|
4
|
-
"sourcesContent": ["export const DESCRIPTION =\n 'Creates and manages todo items for task tracking and progress management in the current session.'\n\nexport const PROMPT = `Use this tool to create and manage todo items for tracking tasks and progress. This tool provides comprehensive todo management:\n\n## When to Use This Tool\n\nUse this tool proactively in these scenarios:\n\n1. **Complex multi-step tasks** - When a task requires 3 or more distinct steps or actions\n2. **Non-trivial and complex tasks** - Tasks that require careful planning or multiple operations\n3. **User explicitly requests todo list** - When the user directly asks you to use the todo list\n4. **User provides multiple tasks** - When users provide a list of things to be done (numbered or comma-separated)\n5. **After receiving new instructions** - Immediately capture user requirements as todos\n6. **When you start working on a task** - Mark it as in_progress BEFORE beginning work. Ideally you should only have one todo as in_progress at a time\n7. **After completing a task** - Mark it as completed and add any new follow-up tasks discovered during implementation\n\n## When NOT to Use This Tool\n\nSkip using this tool when:\n1. There is only a single, straightforward task\n2. The task is trivial and tracking it provides no organizational benefit\n3. The task can be completed in less than 3 trivial steps\n4. The task is purely conversational or informational\n\n## Task States and Management\n\n1. **Task States**: Use these states to track progress:\n - pending: Task not yet started\n - in_progress: Currently working on (limit to ONE task at a time)\n - completed: Task finished successfully\n\n2. **Task Management**:\n - Update task status in real-time as you work\n - Mark tasks complete IMMEDIATELY after finishing (don't batch completions)\n - Only have ONE task in_progress at any time\n - Complete current tasks before starting new ones\n - Remove tasks that are no longer relevant from the list entirely\n\n3. **Task Completion Requirements**:\n - ONLY mark a task as completed when you have FULLY accomplished it\n - If you encounter errors, blockers, or cannot finish, keep the task as in_progress\n - When blocked, create a new task describing what needs to be resolved\n - Never mark a task as completed if:\n - Tests are failing\n - Implementation is partial\n - You encountered unresolved errors\n - You couldn't find necessary files or dependencies\n\n4. **Task Breakdown**:\n - Create specific, actionable items\n - Break complex tasks into smaller, manageable steps\n - Use clear, descriptive task names\n\n## Tool Capabilities\n\n- **Create new todos**: Add tasks with content, priority, and status\n- **Update existing todos**: Modify any aspect of a todo (status, priority, content)\n- **Delete todos**: Remove completed or irrelevant tasks\n- **Batch operations**: Update multiple todos in a single operation\n- **Clear all todos**: Reset the entire todo list\n\n## Required Parameters\n\nEach todo item MUST include these fields:\n- **content** (string, required): Task description\n- **status** (enum, required): \"pending\" | \"in_progress\" | \"completed\"\n- **priority** (enum, required): \"high\" | \"medium\" | \"low\"\n- **id** (string, optional): Unique identifier (auto-generated if not provided)\n- **activeForm** (string, optional): Present continuous form shown when in_progress (e.g., \"Running tests\")\n\n## Example\n\n\\`\\`\\`json\n{\n \"todos\": [\n {\"content\": \"Analyze requirements\", \"status\": \"completed\", \"priority\": \"high\"},\n {\"content\": \"Implement feature\", \"status\": \"in_progress\", \"priority\": \"high\"},\n {\"content\": \"Write tests\", \"status\": \"pending\", \"priority\": \"medium\"}\n ]\n}\n\\`\\`\\`\n\nWhen in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.`\n"],
|
|
5
|
-
"mappings": "AAAO,MAAM,cACX;AAEK,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
import { Box, Text } from "ink";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import fetch from "node-fetch";
|
|
5
|
-
import { Cost } from "../../components/Cost.js";
|
|
6
|
-
import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
|
|
7
|
-
import { DefaultToolResultFallback } from "../../components/messages/DefaultToolResultFallback.js";
|
|
8
|
-
import { DESCRIPTION, TOOL_NAME_FOR_PROMPT } from "./prompt.js";
|
|
9
|
-
import { convertHtmlToMarkdown } from "./htmlToMarkdown.js";
|
|
10
|
-
import { urlCache } from "./cache.js";
|
|
11
|
-
import { queryQuick } from "../../services/claude.js";
|
|
12
|
-
import { formatUrl, truncateText } from "../../utils/format.js";
|
|
13
|
-
const inputSchema = z.strictObject({
|
|
14
|
-
url: z.string().url().describe("The URL to fetch content from"),
|
|
15
|
-
prompt: z.string().describe("The prompt to run on the fetched content")
|
|
16
|
-
});
|
|
17
|
-
function normalizeUrl(url) {
|
|
18
|
-
if (url.startsWith("http://")) {
|
|
19
|
-
return url.replace("http://", "https://");
|
|
20
|
-
}
|
|
21
|
-
return url;
|
|
22
|
-
}
|
|
23
|
-
function isPrivateOrReservedURL(url) {
|
|
24
|
-
try {
|
|
25
|
-
const parsed = new URL(url);
|
|
26
|
-
const hostname = parsed.hostname;
|
|
27
|
-
if (/^(127\.|10\.|192\.168\.|172\.(1[6-9]|2\d|3[01])\.)/.test(hostname))
|
|
28
|
-
return true;
|
|
29
|
-
if (hostname === "::1" || hostname === "[::1]") return true;
|
|
30
|
-
if (hostname === "localhost" || hostname.endsWith(".localhost")) return true;
|
|
31
|
-
if (hostname === "169.254.169.254" || hostname === "metadata.google.internal")
|
|
32
|
-
return true;
|
|
33
|
-
if (hostname.startsWith("169.254.")) return true;
|
|
34
|
-
if (hostname === "0.0.0.0") return true;
|
|
35
|
-
const ipv4MappedMatch = hostname.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i);
|
|
36
|
-
if (ipv4MappedMatch) {
|
|
37
|
-
return isPrivateOrReservedURL(`http://${ipv4MappedMatch[1]}/`);
|
|
38
|
-
}
|
|
39
|
-
if (/^\d+$/.test(hostname)) {
|
|
40
|
-
const decimal = parseInt(hostname, 10);
|
|
41
|
-
if (!isNaN(decimal) && decimal >= 0 && decimal <= 4294967295) {
|
|
42
|
-
const a = decimal >>> 24 & 255;
|
|
43
|
-
const b = decimal >>> 16 & 255;
|
|
44
|
-
const c = decimal >>> 8 & 255;
|
|
45
|
-
const d = decimal & 255;
|
|
46
|
-
return isPrivateOrReservedURL(`http://${a}.${b}.${c}.${d}/`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (/^0x[0-9a-fA-F]+$/.test(hostname)) {
|
|
50
|
-
const hex = parseInt(hostname, 16);
|
|
51
|
-
if (!isNaN(hex) && hex >= 0 && hex <= 4294967295) {
|
|
52
|
-
const a = hex >>> 24 & 255;
|
|
53
|
-
const b = hex >>> 16 & 255;
|
|
54
|
-
const c = hex >>> 8 & 255;
|
|
55
|
-
const d = hex & 255;
|
|
56
|
-
return isPrivateOrReservedURL(`http://${a}.${b}.${c}.${d}/`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const shortIpParts = hostname.split(".");
|
|
60
|
-
if (shortIpParts.length >= 2 && shortIpParts.length <= 3 && shortIpParts.every((p) => /^\d+$/.test(p))) {
|
|
61
|
-
const first = parseInt(shortIpParts[0], 10);
|
|
62
|
-
if (first === 127 || first === 10 || first === 0 || first === 169) {
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (!["http:", "https:"].includes(parsed.protocol)) return true;
|
|
67
|
-
return false;
|
|
68
|
-
} catch {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const URLFetcherTool = {
|
|
73
|
-
name: TOOL_NAME_FOR_PROMPT,
|
|
74
|
-
async description() {
|
|
75
|
-
return DESCRIPTION;
|
|
76
|
-
},
|
|
77
|
-
userFacingName: () => "URL Fetcher",
|
|
78
|
-
inputSchema,
|
|
79
|
-
isReadOnly: () => true,
|
|
80
|
-
isConcurrencySafe: () => true,
|
|
81
|
-
async isEnabled() {
|
|
82
|
-
return true;
|
|
83
|
-
},
|
|
84
|
-
needsPermissions() {
|
|
85
|
-
return false;
|
|
86
|
-
},
|
|
87
|
-
async prompt() {
|
|
88
|
-
return DESCRIPTION;
|
|
89
|
-
},
|
|
90
|
-
renderToolUseMessage({ url, prompt }) {
|
|
91
|
-
const displayUrl = formatUrl(url, 40);
|
|
92
|
-
const displayPrompt = truncateText(prompt, 30);
|
|
93
|
-
return `${displayUrl} \xB7 "${displayPrompt}"`;
|
|
94
|
-
},
|
|
95
|
-
renderToolUseRejectedMessage() {
|
|
96
|
-
return /* @__PURE__ */ React.createElement(FallbackToolUseRejectedMessage, null);
|
|
97
|
-
},
|
|
98
|
-
renderToolResultMessage(output) {
|
|
99
|
-
if (!output) {
|
|
100
|
-
return /* @__PURE__ */ React.createElement(DefaultToolResultFallback, { toolName: "URL fetch" });
|
|
101
|
-
}
|
|
102
|
-
const statusText = output.fromCache ? "from cache" : "fetched";
|
|
103
|
-
return /* @__PURE__ */ React.createElement(Box, { justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React.createElement(Box, { flexDirection: "row" }, /* @__PURE__ */ React.createElement(Text, null, "\xA0\xA0\u23BF \xA0Content "), /* @__PURE__ */ React.createElement(Text, { bold: true }, statusText, " "), /* @__PURE__ */ React.createElement(Text, null, "and analyzed")), /* @__PURE__ */ React.createElement(Cost, { costUSD: 0, durationMs: 0, debug: false }));
|
|
104
|
-
},
|
|
105
|
-
renderResultForAssistant(output) {
|
|
106
|
-
if (!output.aiAnalysis.trim()) {
|
|
107
|
-
return `No content could be analyzed from URL: ${output.url}`;
|
|
108
|
-
}
|
|
109
|
-
return output.aiAnalysis;
|
|
110
|
-
},
|
|
111
|
-
async *call({ url, prompt }, {}) {
|
|
112
|
-
const normalizedUrl = normalizeUrl(url);
|
|
113
|
-
if (isPrivateOrReservedURL(normalizedUrl)) {
|
|
114
|
-
const output = {
|
|
115
|
-
url: normalizedUrl,
|
|
116
|
-
fromCache: false,
|
|
117
|
-
aiAnalysis: ""
|
|
118
|
-
};
|
|
119
|
-
yield {
|
|
120
|
-
type: "result",
|
|
121
|
-
resultForAssistant: `Error: URL ${normalizedUrl} targets a private or reserved network address and has been blocked for security reasons.`,
|
|
122
|
-
data: output
|
|
123
|
-
};
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
try {
|
|
127
|
-
let content;
|
|
128
|
-
let fromCache = false;
|
|
129
|
-
const cachedContent = urlCache.get(normalizedUrl);
|
|
130
|
-
if (cachedContent) {
|
|
131
|
-
content = cachedContent;
|
|
132
|
-
fromCache = true;
|
|
133
|
-
} else {
|
|
134
|
-
const abortController = new AbortController();
|
|
135
|
-
const timeout = setTimeout(() => abortController.abort(), 3e4);
|
|
136
|
-
const MAX_REDIRECTS = 5;
|
|
137
|
-
let currentUrl = normalizedUrl;
|
|
138
|
-
let response = null;
|
|
139
|
-
for (let redirectCount = 0; redirectCount <= MAX_REDIRECTS; redirectCount++) {
|
|
140
|
-
response = await fetch(currentUrl, {
|
|
141
|
-
method: "GET",
|
|
142
|
-
headers: {
|
|
143
|
-
"User-Agent": "Mozilla/5.0 (compatible; URLFetcher/1.0)",
|
|
144
|
-
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
|
145
|
-
"Accept-Language": "en-US,en;q=0.5",
|
|
146
|
-
"Accept-Encoding": "gzip, deflate",
|
|
147
|
-
Connection: "keep-alive",
|
|
148
|
-
"Upgrade-Insecure-Requests": "1"
|
|
149
|
-
},
|
|
150
|
-
signal: abortController.signal,
|
|
151
|
-
redirect: "manual"
|
|
152
|
-
});
|
|
153
|
-
if (response.status < 300 || response.status >= 400) {
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
156
|
-
const locationHeader = response.headers.get("location");
|
|
157
|
-
if (!locationHeader) {
|
|
158
|
-
throw new Error(
|
|
159
|
-
`Redirect ${response.status} with no Location header`
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
|
-
const redirectUrl = new URL(locationHeader, currentUrl).toString();
|
|
163
|
-
if (isPrivateOrReservedURL(redirectUrl)) {
|
|
164
|
-
throw new Error(
|
|
165
|
-
`Redirect to ${redirectUrl} blocked: targets a private or reserved network address`
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
if (redirectCount === MAX_REDIRECTS) {
|
|
169
|
-
throw new Error(`Too many redirects (max ${MAX_REDIRECTS})`);
|
|
170
|
-
}
|
|
171
|
-
currentUrl = redirectUrl;
|
|
172
|
-
}
|
|
173
|
-
clearTimeout(timeout);
|
|
174
|
-
if (!response) {
|
|
175
|
-
throw new Error("No response received");
|
|
176
|
-
}
|
|
177
|
-
if (!response.ok) {
|
|
178
|
-
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
179
|
-
}
|
|
180
|
-
const contentType = response.headers.get("content-type") || "";
|
|
181
|
-
if (!contentType.includes("text/") && !contentType.includes("application/")) {
|
|
182
|
-
throw new Error(`Unsupported content type: ${contentType}`);
|
|
183
|
-
}
|
|
184
|
-
const html = await response.text();
|
|
185
|
-
content = convertHtmlToMarkdown(html);
|
|
186
|
-
urlCache.set(normalizedUrl, content);
|
|
187
|
-
fromCache = false;
|
|
188
|
-
}
|
|
189
|
-
const maxContentLength = 5e4;
|
|
190
|
-
const truncatedContent = content.length > maxContentLength ? content.substring(0, maxContentLength) + "\n\n[Content truncated due to length]" : content;
|
|
191
|
-
const systemPrompt = [
|
|
192
|
-
"You are analyzing web content based on a user's specific request.",
|
|
193
|
-
"The content has been extracted from a webpage and converted to markdown.",
|
|
194
|
-
"Provide a focused response that directly addresses the user's prompt."
|
|
195
|
-
];
|
|
196
|
-
const userPrompt = `Here is the content from ${normalizedUrl}:
|
|
197
|
-
|
|
198
|
-
${truncatedContent}
|
|
199
|
-
|
|
200
|
-
User request: ${prompt}`;
|
|
201
|
-
const aiResponse = await queryQuick({
|
|
202
|
-
systemPrompt,
|
|
203
|
-
userPrompt,
|
|
204
|
-
enablePromptCaching: false
|
|
205
|
-
});
|
|
206
|
-
const output = {
|
|
207
|
-
url: normalizedUrl,
|
|
208
|
-
fromCache,
|
|
209
|
-
aiAnalysis: aiResponse.message.content[0]?.text || "Unable to analyze content"
|
|
210
|
-
};
|
|
211
|
-
yield {
|
|
212
|
-
type: "result",
|
|
213
|
-
resultForAssistant: this.renderResultForAssistant(output),
|
|
214
|
-
data: output
|
|
215
|
-
};
|
|
216
|
-
} catch (error) {
|
|
217
|
-
const output = {
|
|
218
|
-
url: normalizedUrl,
|
|
219
|
-
fromCache: false,
|
|
220
|
-
aiAnalysis: ""
|
|
221
|
-
};
|
|
222
|
-
yield {
|
|
223
|
-
type: "result",
|
|
224
|
-
resultForAssistant: `Error processing URL ${normalizedUrl}: ${error.message}`,
|
|
225
|
-
data: output
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
export {
|
|
231
|
-
URLFetcherTool,
|
|
232
|
-
isPrivateOrReservedURL
|
|
233
|
-
};
|
|
234
|
-
//# sourceMappingURL=URLFetcherTool.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/URLFetcherTool/URLFetcherTool.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Box, Text } from 'ink'\nimport React from 'react'\nimport { z } from 'zod'\nimport fetch from 'node-fetch'\nimport { Cost } from '@components/Cost'\nimport { FallbackToolUseRejectedMessage } from '@components/FallbackToolUseRejectedMessage'\nimport { DefaultToolResultFallback } from '@components/messages/DefaultToolResultFallback'\nimport { Tool, ToolUseContext } from '@tool'\nimport { DESCRIPTION, TOOL_NAME_FOR_PROMPT } from './prompt'\nimport { convertHtmlToMarkdown } from './htmlToMarkdown'\nimport { urlCache } from './cache'\nimport { queryQuick } from '@services/claude'\nimport { formatUrl, truncateText } from '@utils/format'\n\nconst inputSchema = z.strictObject({\n url: z.string().url().describe('The URL to fetch content from'),\n prompt: z.string().describe('The prompt to run on the fetched content'),\n})\n\ntype Input = z.infer<typeof inputSchema>\ntype Output = {\n url: string\n fromCache: boolean\n aiAnalysis: string\n}\n\nfunction normalizeUrl(url: string): string {\n // Auto-upgrade HTTP to HTTPS\n if (url.startsWith('http://')) {\n return url.replace('http://', 'https://')\n }\n return url\n}\n\n/**\n * SSRF protection: block requests to private/reserved network addresses.\n * Prevents server-side request forgery attacks targeting internal services,\n * cloud metadata endpoints, and localhost.\n */\nexport function isPrivateOrReservedURL(url: string): boolean {\n try {\n const parsed = new URL(url)\n const hostname = parsed.hostname\n // Block private IPv4 ranges\n if (/^(127\\.|10\\.|192\\.168\\.|172\\.(1[6-9]|2\\d|3[01])\\.)/.test(hostname))\n return true\n // Block IPv6 loopback\n if (hostname === '::1' || hostname === '[::1]') return true\n // Block localhost\n if (hostname === 'localhost' || hostname.endsWith('.localhost')) return true\n // Block cloud metadata endpoints\n if (\n hostname === '169.254.169.254' ||\n hostname === 'metadata.google.internal'\n )\n return true\n // Block link-local\n if (hostname.startsWith('169.254.')) return true\n // Block 0.0.0.0 (binds to all interfaces, often resolves to localhost)\n if (hostname === '0.0.0.0') return true\n // Block IPv4-mapped IPv6 addresses (::ffff:127.0.0.1, ::ffff:10.x.x.x, etc.)\n const ipv4MappedMatch = hostname.match(/^::ffff:(\\d+\\.\\d+\\.\\d+\\.\\d+)$/i)\n if (ipv4MappedMatch) {\n // Recursively check the embedded IPv4 address\n return isPrivateOrReservedURL(`http://${ipv4MappedMatch[1]}/`)\n }\n // Block decimal IP addresses (e.g., 2130706433 = 127.0.0.1)\n if (/^\\d+$/.test(hostname)) {\n const decimal = parseInt(hostname, 10)\n if (!isNaN(decimal) && decimal >= 0 && decimal <= 0xffffffff) {\n const a = (decimal >>> 24) & 0xff\n const b = (decimal >>> 16) & 0xff\n const c = (decimal >>> 8) & 0xff\n const d = decimal & 0xff\n return isPrivateOrReservedURL(`http://${a}.${b}.${c}.${d}/`)\n }\n }\n // Block hex IP addresses (e.g., 0x7f000001 = 127.0.0.1)\n if (/^0x[0-9a-fA-F]+$/.test(hostname)) {\n const hex = parseInt(hostname, 16)\n if (!isNaN(hex) && hex >= 0 && hex <= 0xffffffff) {\n const a = (hex >>> 24) & 0xff\n const b = (hex >>> 16) & 0xff\n const c = (hex >>> 8) & 0xff\n const d = hex & 0xff\n return isPrivateOrReservedURL(`http://${a}.${b}.${c}.${d}/`)\n }\n }\n // Block short-form IPs (e.g., 127.1 = 127.0.0.1, 127.0.1 = 127.0.0.1)\n const shortIpParts = hostname.split('.')\n if (\n shortIpParts.length >= 2 &&\n shortIpParts.length <= 3 &&\n shortIpParts.every(p => /^\\d+$/.test(p))\n ) {\n // Short-form IPs: the last part fills the remaining octets\n // e.g., 127.1 \u2192 127.0.0.1, 10.1 \u2192 10.0.0.1\n const first = parseInt(shortIpParts[0], 10)\n if (first === 127 || first === 10 || first === 0 || first === 169) {\n return true\n }\n }\n // Block non-HTTP(S) schemes\n if (!['http:', 'https:'].includes(parsed.protocol)) return true\n return false\n } catch {\n return true // Block malformed URLs\n }\n}\n\nexport const URLFetcherTool = {\n name: TOOL_NAME_FOR_PROMPT,\n async description() {\n return DESCRIPTION\n },\n userFacingName: () => 'URL Fetcher',\n inputSchema,\n isReadOnly: () => true,\n isConcurrencySafe: () => true,\n async isEnabled() {\n return true\n },\n needsPermissions() {\n return false\n },\n async prompt() {\n return DESCRIPTION\n },\n renderToolUseMessage({ url, prompt }: Input) {\n const displayUrl = formatUrl(url, 40)\n const displayPrompt = truncateText(prompt, 30)\n return `${displayUrl} \u00B7 \"${displayPrompt}\"`\n },\n renderToolUseRejectedMessage() {\n return <FallbackToolUseRejectedMessage />\n },\n renderToolResultMessage(output: Output) {\n // Guard against undefined or null output\n if (!output) {\n return <DefaultToolResultFallback toolName=\"URL fetch\" />\n }\n\n const statusText = output.fromCache ? 'from cache' : 'fetched'\n\n return (\n <Box justifyContent=\"space-between\" width=\"100%\">\n <Box flexDirection=\"row\">\n <Text> \u23BF Content </Text>\n <Text bold>{statusText} </Text>\n <Text>and analyzed</Text>\n </Box>\n <Cost costUSD={0} durationMs={0} debug={false} />\n </Box>\n )\n },\n renderResultForAssistant(output: Output) {\n if (!output.aiAnalysis.trim()) {\n return `No content could be analyzed from URL: ${output.url}`\n }\n\n return output.aiAnalysis\n },\n async *call({ url, prompt }: Input, {}: ToolUseContext) {\n const normalizedUrl = normalizeUrl(url)\n\n // SSRF protection: block private/reserved URLs\n if (isPrivateOrReservedURL(normalizedUrl)) {\n const output: Output = {\n url: normalizedUrl,\n fromCache: false,\n aiAnalysis: '',\n }\n yield {\n type: 'result' as const,\n resultForAssistant: `Error: URL ${normalizedUrl} targets a private or reserved network address and has been blocked for security reasons.`,\n data: output,\n }\n return\n }\n\n try {\n let content: string\n let fromCache = false\n\n // Check cache first\n const cachedContent = urlCache.get(normalizedUrl)\n if (cachedContent) {\n content = cachedContent\n fromCache = true\n } else {\n // Fetch from URL with AbortController for timeout\n // Use manual redirect handling to validate each redirect target against SSRF\n const abortController = new AbortController()\n const timeout = setTimeout(() => abortController.abort(), 30000)\n\n const MAX_REDIRECTS = 5\n let currentUrl = normalizedUrl\n let response: Awaited<ReturnType<typeof fetch>> | null = null\n\n for (\n let redirectCount = 0;\n redirectCount <= MAX_REDIRECTS;\n redirectCount++\n ) {\n response = await fetch(currentUrl, {\n method: 'GET',\n headers: {\n 'User-Agent': 'Mozilla/5.0 (compatible; URLFetcher/1.0)',\n Accept:\n 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-US,en;q=0.5',\n 'Accept-Encoding': 'gzip, deflate',\n Connection: 'keep-alive',\n 'Upgrade-Insecure-Requests': '1',\n },\n signal: abortController.signal,\n redirect: 'manual',\n })\n\n // If not a redirect, break out\n if (response.status < 300 || response.status >= 400) {\n break\n }\n\n // Handle redirect: validate the Location header\n const locationHeader = response.headers.get('location')\n if (!locationHeader) {\n throw new Error(\n `Redirect ${response.status} with no Location header`,\n )\n }\n\n // Resolve relative redirects against the current URL\n const redirectUrl = new URL(locationHeader, currentUrl).toString()\n\n // SSRF check on redirect target\n if (isPrivateOrReservedURL(redirectUrl)) {\n throw new Error(\n `Redirect to ${redirectUrl} blocked: targets a private or reserved network address`,\n )\n }\n\n if (redirectCount === MAX_REDIRECTS) {\n throw new Error(`Too many redirects (max ${MAX_REDIRECTS})`)\n }\n\n currentUrl = redirectUrl\n }\n\n clearTimeout(timeout)\n\n if (!response) {\n throw new Error('No response received')\n }\n\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`)\n }\n\n const contentType = response.headers.get('content-type') || ''\n if (\n !contentType.includes('text/') &&\n !contentType.includes('application/')\n ) {\n throw new Error(`Unsupported content type: ${contentType}`)\n }\n\n const html = await response.text()\n content = convertHtmlToMarkdown(html)\n\n // Cache the result\n urlCache.set(normalizedUrl, content)\n fromCache = false\n }\n\n // Truncate content if too large (keep within reasonable token limits)\n const maxContentLength = 50000 // ~15k tokens approximately\n const truncatedContent =\n content.length > maxContentLength\n ? content.substring(0, maxContentLength) +\n '\\n\\n[Content truncated due to length]'\n : content\n\n // AI Analysis - always performed fresh, even with cached content\n const systemPrompt = [\n \"You are analyzing web content based on a user's specific request.\",\n 'The content has been extracted from a webpage and converted to markdown.',\n \"Provide a focused response that directly addresses the user's prompt.\",\n ]\n\n const userPrompt = `Here is the content from ${normalizedUrl}:\n\n${truncatedContent}\n\nUser request: ${prompt}`\n\n const aiResponse = await queryQuick({\n systemPrompt,\n userPrompt,\n enablePromptCaching: false,\n })\n\n const output: Output = {\n url: normalizedUrl,\n fromCache,\n aiAnalysis:\n aiResponse.message.content[0]?.text || 'Unable to analyze content',\n }\n\n yield {\n type: 'result' as const,\n resultForAssistant: this.renderResultForAssistant(output),\n data: output,\n }\n } catch (error: any) {\n const output: Output = {\n url: normalizedUrl,\n fromCache: false,\n aiAnalysis: '',\n }\n\n yield {\n type: 'result' as const,\n resultForAssistant: `Error processing URL ${normalizedUrl}: ${error.message}`,\n data: output,\n }\n }\n },\n} satisfies Tool\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|