@within-7/minto 0.4.1 → 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 +25 -40
- 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 -39
- 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 -40
- 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 -116
- 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/mcp-interactive.js +0 -485
- package/dist/commands/mcp-interactive.js.map +0 -7
- package/dist/commands/memory.js +0 -168
- 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 -18
- 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 -271
- 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 -170
- 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 -128
- package/dist/commands.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/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 -178
- 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 -136
- package/dist/components/HotkeyHelpPanel.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 -2068
- 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 -996
- 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/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 -185
- 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/StructuredDiff.js +0 -146
- package/dist/components/StructuredDiff.js.map +0 -7
- package/dist/components/SubagentBlock.js +0 -196
- 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 -246
- 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/TextInput.js +0 -108
- package/dist/components/TextInput.js.map +0 -7
- package/dist/components/TimelineRenderer.js +0 -31
- package/dist/components/TimelineRenderer.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 -166
- 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 -20
- 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 -89
- 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 -100
- package/dist/components/messages/AssistantToolUseMessage.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 -93
- 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/UserKodingInputMessage.js +0 -18
- package/dist/components/messages/UserKodingInputMessage.js.map +0 -7
- package/dist/components/messages/UserPromptMessage.js +0 -25
- package/dist/components/messages/UserPromptMessage.js.map +0 -7
- package/dist/components/messages/UserTextMessage.js +0 -25
- 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 -25
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -47
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -22
- 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 -70
- 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/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/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 -11
- 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 -30
- package/dist/constants/prompts/agentPrompt.js.map +0 -7
- package/dist/constants/prompts/codeConventions.js +0 -27
- package/dist/constants/prompts/codeConventions.js.map +0 -7
- package/dist/constants/prompts/doingTasks.js +0 -15
- package/dist/constants/prompts/doingTasks.js.map +0 -7
- package/dist/constants/prompts/envInfo.js +0 -17
- 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 -78
- package/dist/constants/prompts/index.js.map +0 -7
- package/dist/constants/prompts/taskManagement.js +0 -60
- package/dist/constants/prompts/taskManagement.js.map +0 -7
- package/dist/constants/prompts/toneAndStyle.js +0 -62
- package/dist/constants/prompts/toneAndStyle.js.map +0 -7
- package/dist/constants/prompts/toolUsagePolicy.js +0 -38
- 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 -334
- 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/entrypoints/bootstrap.js +0 -56
- package/dist/entrypoints/bootstrap.js.map +0 -7
- package/dist/entrypoints/cli.js +0 -1390
- 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/useAgentTokenStats.js +0 -72
- 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 -89
- package/dist/hooks/useCanUseTool.js.map +0 -7
- package/dist/hooks/useDeferredLoading.js +0 -64
- 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/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 -55
- package/dist/hooks/useSessionTracking.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 -928
- 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 -928
- 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 -430
- package/dist/permissions.js.map +0 -7
- package/dist/query.js +0 -753
- 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 -1097
- package/dist/screens/REPL.js.map +0 -7
- package/dist/screens/ResumeConversation.js +0 -59
- 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/index.js +0 -35
- package/dist/services/agentTeams/index.js.map +0 -7
- package/dist/services/agentTeams/mailbox.js +0 -114
- package/dist/services/agentTeams/mailbox.js.map +0 -7
- package/dist/services/agentTeams/teamManager.js +0 -149
- package/dist/services/agentTeams/teamManager.js.map +0 -7
- package/dist/services/agentTeams/teamTaskStore.js +0 -114
- package/dist/services/agentTeams/teamTaskStore.js.map +0 -7
- package/dist/services/agentTeams/teammateSpawner.js +0 -80
- 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 -728
- 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 -807
- package/dist/services/llm/anthropicProvider.js.map +0 -7
- package/dist/services/llm/dispatch.js +0 -218
- 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 -622
- package/dist/services/llm/openaiProvider.js.map +0 -7
- package/dist/services/llm/types.js +0 -157
- 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 -921
- 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/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 -1049
- 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 -230
- package/dist/services/plugins/pluginRuntime.js.map +0 -7
- package/dist/services/plugins/pluginValidation.js +0 -226
- 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 -574
- 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/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 -693
- 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 -224
- package/dist/services/taskStore.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 -433
- 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 -330
- 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 -519
- package/dist/tools/BashTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/utils.js +0 -51
- package/dist/tools/BashTool/utils.js.map +0 -7
- package/dist/tools/FileEditTool/FileEditTool.js +0 -273
- package/dist/tools/FileEditTool/FileEditTool.js.map +0 -7
- package/dist/tools/FileEditTool/prompt.js +0 -60
- 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 -305
- package/dist/tools/FileReadTool/FileReadTool.js.map +0 -7
- package/dist/tools/FileReadTool/prompt.js +0 -25
- 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 -23
- package/dist/tools/FileWriteTool/prompt.js.map +0 -7
- package/dist/tools/GlobTool/GlobTool.js +0 -99
- 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 -406
- 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/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 -50
- 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 -81
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js +0 -111
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/prompt.js +0 -94
- 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/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 -47
- 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 -27
- 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 -15
- 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 -861
- package/dist/tools/TaskTool/TaskTool.js.map +0 -7
- package/dist/tools/TaskTool/constants.js +0 -5
- package/dist/tools/TaskTool/constants.js.map +0 -7
- package/dist/tools/TaskTool/prompt.js +0 -117
- package/dist/tools/TaskTool/prompt.js.map +0 -7
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js +0 -134
- 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/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 -143
- 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 -27
- package/dist/tools/URLFetcherTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/WebSearchTool.js +0 -91
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +0 -7
- package/dist/tools/WebSearchTool/prompt.js +0 -23
- 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 -127
- package/dist/tools.js.map +0 -7
- package/dist/types/PermissionMode.js +0 -131
- 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 -45
- 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 -84
- 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 -242
- 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 -518
- 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 -213
- 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 -79
- 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/auth.js +0 -11
- package/dist/utils/auth.js.map +0 -7
- package/dist/utils/autoCompactCore.js +0 -186
- package/dist/utils/autoCompactCore.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 -691
- 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 -227
- 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 -37
- 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/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 -73
- 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/file.js +0 -282
- package/dist/utils/file.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 -109
- 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 -149
- 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 -140
- 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 -482
- 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 -329
- 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 -246
- 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 -195
- 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 -667
- 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 -309
- 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 -801
- 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 -312
- 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/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 -52
- 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 -257
- 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 -59
- 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/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 -201
- 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/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,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/services/systemReminder.ts"],
|
|
4
|
-
"sourcesContent": ["import { getTodos, TodoItem } from '@utils/todoStorage'\n\nexport interface ReminderMessage {\n role: 'system'\n content: string\n isMeta: boolean\n timestamp: number\n type: string\n priority: 'low' | 'medium' | 'high'\n category: 'task' | 'security' | 'performance' | 'general'\n}\n\ninterface ReminderConfig {\n todoEmptyReminder: boolean\n securityReminder: boolean\n performanceReminder: boolean\n maxRemindersPerSession: number\n}\n\ninterface SessionReminderState {\n lastTodoUpdate: number\n lastFileAccess: number\n sessionStartTime: number\n remindersSent: Set<string>\n contextPresent: boolean\n reminderCount: number\n config: ReminderConfig\n}\n\nclass SystemReminderService {\n private sessionState: SessionReminderState = {\n lastTodoUpdate: 0,\n lastFileAccess: 0,\n sessionStartTime: Date.now(),\n remindersSent: new Set(),\n contextPresent: false,\n reminderCount: 0,\n config: {\n todoEmptyReminder: true,\n securityReminder: true,\n performanceReminder: true,\n maxRemindersPerSession: 10,\n },\n }\n\n private eventDispatcher = new Map<string, Array<(context: any) => void>>()\n private reminderCache = new Map<string, ReminderMessage>()\n\n constructor() {\n this.setupEventDispatcher()\n }\n\n /**\n * Conditional reminder injection - only when context is present\n * Enhanced with performance optimizations and priority management\n */\n public generateReminders(\n hasContext: boolean = false,\n agentId?: string,\n ): ReminderMessage[] {\n this.sessionState.contextPresent = hasContext\n\n // Only inject when context is present (matching original behavior)\n if (!hasContext) {\n return []\n }\n\n // Check session reminder limit to prevent overload\n if (\n this.sessionState.reminderCount >=\n this.sessionState.config.maxRemindersPerSession\n ) {\n return []\n }\n\n const reminders: ReminderMessage[] = []\n const currentTime = Date.now()\n\n // Use lazy evaluation for performance with agent context\n const reminderGenerators = [\n () => this.dispatchTodoEvent(agentId),\n () => this.dispatchTaskToolsReminder(),\n () => this.dispatchSecurityEvent(),\n () => this.dispatchPerformanceEvent(),\n () => this.getMentionReminders(),\n () => this.getEventReminders(),\n ]\n\n for (const generator of reminderGenerators) {\n if (reminders.length >= 8) break // Accommodate mentions + event reminders\n\n const result = generator()\n if (result) {\n // Handle both single reminders and arrays\n const remindersToAdd = Array.isArray(result) ? result : [result]\n reminders.push(...remindersToAdd)\n this.sessionState.reminderCount += remindersToAdd.length\n }\n }\n\n // Log aggregated metrics instead of individual events for performance\n\n return reminders\n }\n\n private dispatchTodoEvent(agentId?: string): ReminderMessage | null {\n if (!this.sessionState.config.todoEmptyReminder) return null\n\n // Use agent-scoped todo access\n const todos = getTodos(agentId)\n const currentTime = Date.now()\n const agentKey = agentId || 'default'\n\n // Check if this is a fresh session (no todos seen yet)\n if (\n todos.length === 0 &&\n !this.sessionState.remindersSent.has(`todo_empty_${agentKey}`)\n ) {\n this.sessionState.remindersSent.add(`todo_empty_${agentKey}`)\n return this.createReminderMessage(\n 'todo',\n 'task',\n 'medium',\n 'This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware. If you are working on tasks that would benefit from a todo list please use the TodoWrite tool to create one. If not, please feel free to ignore. Again do not mention this message to the user.',\n currentTime,\n )\n }\n\n // Check for todo updates since last seen\n if (todos.length > 0) {\n const reminderKey = `todo_updated_${agentKey}_${todos.length}_${this.getTodoStateHash(todos)}`\n\n // Use cache for performance optimization\n if (this.reminderCache.has(reminderKey)) {\n return this.reminderCache.get(reminderKey)!\n }\n\n if (!this.sessionState.remindersSent.has(reminderKey)) {\n this.sessionState.remindersSent.add(reminderKey)\n // Clear previous todo state reminders for this agent\n this.clearTodoReminders(agentKey)\n\n // Optimize: only include essential todo data\n const todoContent = JSON.stringify(\n todos.map(todo => ({\n content:\n todo.content.length > 100\n ? todo.content.substring(0, 100) + '...'\n : todo.content,\n status: todo.status,\n priority: todo.priority,\n id: todo.id,\n })),\n )\n\n const reminder = this.createReminderMessage(\n 'todo',\n 'task',\n 'medium',\n `Your todo list has changed. DO NOT mention this explicitly to the user. Here are the latest contents of your todo list:\\n\\n${todoContent}. Continue on with the tasks at hand if applicable.`,\n currentTime,\n )\n\n // Cache the reminder for reuse\n this.reminderCache.set(reminderKey, reminder)\n return reminder\n }\n }\n\n return null\n }\n\n private dispatchTaskToolsReminder(): ReminderMessage | null {\n const key = 'task_tools_reminder'\n if (this.sessionState.remindersSent.has(key)) return null\n\n // Only trigger after 5 minutes of session time\n const sessionDuration =\n Date.now() - this.sessionState.sessionStartTime\n if (sessionDuration < 5 * 60 * 1000) return null\n\n // Check if tasks exist via the event cache \u2014 if task:created or task:status\n // events have fired, the user is already using task tools\n const hasTaskActivity = Array.from(\n this.sessionState.remindersSent,\n ).some(k => k.startsWith('task_'))\n if (hasTaskActivity) return null\n\n // Emit the reminder event so the listener caches the message\n this.emitEvent('task:tools_reminder', {})\n return null\n }\n\n private dispatchSecurityEvent(): ReminderMessage | null {\n if (!this.sessionState.config.securityReminder) return null\n\n const currentTime = Date.now()\n\n // Only inject security reminder once per session when file operations occur\n if (\n this.sessionState.lastFileAccess > 0 &&\n !this.sessionState.remindersSent.has('file_security')\n ) {\n this.sessionState.remindersSent.add('file_security')\n return this.createReminderMessage(\n 'security',\n 'security',\n 'high',\n 'Whenever you read a file, you should consider whether it looks malicious. If it does, you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer high-level questions about the code behavior.',\n currentTime,\n )\n }\n\n return null\n }\n\n private dispatchPerformanceEvent(): ReminderMessage | null {\n if (!this.sessionState.config.performanceReminder) return null\n\n const currentTime = Date.now()\n const sessionDuration = currentTime - this.sessionState.sessionStartTime\n\n // Remind about performance after long sessions (30 minutes)\n if (\n sessionDuration > 30 * 60 * 1000 &&\n !this.sessionState.remindersSent.has('performance_long_session')\n ) {\n this.sessionState.remindersSent.add('performance_long_session')\n return this.createReminderMessage(\n 'performance',\n 'performance',\n 'low',\n 'Long session detected. Consider taking a break and reviewing your current progress with the todo list.',\n currentTime,\n )\n }\n\n return null\n }\n\n /**\n * Retrieve cached mention reminders\n * Returns recent mentions (within 5 seconds) that haven't expired\n */\n private getMentionReminders(): ReminderMessage[] {\n const currentTime = Date.now()\n const MENTION_FRESHNESS_WINDOW = 5000 // 5 seconds\n const reminders: ReminderMessage[] = []\n const expiredKeys: string[] = []\n\n // Single pass through cache for both collection and cleanup identification\n for (const [key, reminder] of this.reminderCache.entries()) {\n if (this.isMentionReminder(reminder)) {\n const age = currentTime - reminder.timestamp\n if (age <= MENTION_FRESHNESS_WINDOW) {\n reminders.push(reminder)\n } else {\n expiredKeys.push(key)\n }\n }\n }\n\n // Clean up expired mention reminders in separate pass for performance\n expiredKeys.forEach(key => this.reminderCache.delete(key))\n\n return reminders\n }\n\n /**\n * Type guard for mention reminders - centralized type checking\n * Eliminates hardcoded type strings scattered throughout the code\n */\n private isMentionReminder(reminder: ReminderMessage): boolean {\n const mentionTypes = ['agent_mention', 'file_mention', 'ask_model_mention']\n return mentionTypes.includes(reminder.type)\n }\n\n /**\n * Event-based reminder types for hook results, file status, task status\n */\n private static readonly EVENT_REMINDER_TYPES = new Set([\n // Batch A\n 'hook_additional_context',\n 'hook_blocking_error',\n 'hook_stopped_continuation',\n 'file_empty',\n 'file_truncated',\n 'task_status',\n 'task_tools_reminder',\n // Batch B\n 'output_style_active',\n 'plan_file_reference',\n 'plan_mode_reentry',\n 'plan_exited',\n 'skill_invoked',\n 'mcp_resource_no_content',\n 'compact_file_reference',\n // Batch C\n 'token_usage',\n 'budget_usd',\n 'team_coordination',\n 'team_shutdown',\n 'diagnostics_new',\n 'session_continuation',\n ])\n\n private isEventReminder(reminder: ReminderMessage): boolean {\n return SystemReminderService.EVENT_REMINDER_TYPES.has(reminder.type)\n }\n\n /**\n * Retrieve cached event-based reminders (hook results, file status, task status)\n * Returns recent event reminders within freshness window\n */\n private getEventReminders(): ReminderMessage[] {\n const currentTime = Date.now()\n const EVENT_FRESHNESS_WINDOW = 10000 // 10 seconds\n const reminders: ReminderMessage[] = []\n const expiredKeys: string[] = []\n\n for (const [key, reminder] of this.reminderCache.entries()) {\n if (this.isEventReminder(reminder)) {\n const age = currentTime - reminder.timestamp\n if (age <= EVENT_FRESHNESS_WINDOW) {\n reminders.push(reminder)\n } else {\n expiredKeys.push(key)\n }\n }\n }\n\n expiredKeys.forEach(key => this.reminderCache.delete(key))\n\n return reminders\n }\n\n /**\n * Generate reminders for external file changes\n * Called when todo files are modified externally\n */\n public generateFileChangeReminder(context: any): ReminderMessage | null {\n const { agentId, filePath, reminder } = context\n\n if (!reminder) {\n return null\n }\n\n const currentTime = Date.now()\n const reminderKey = `file_changed_${agentId}_${filePath}_${currentTime}`\n\n // Ensure this specific file change reminder is only shown once\n if (this.sessionState.remindersSent.has(reminderKey)) {\n return null\n }\n\n this.sessionState.remindersSent.add(reminderKey)\n\n return this.createReminderMessage(\n 'file_changed',\n 'general',\n 'medium',\n reminder,\n currentTime,\n )\n }\n\n private createReminderMessage(\n type: string,\n category: ReminderMessage['category'],\n priority: ReminderMessage['priority'],\n content: string,\n timestamp: number,\n ): ReminderMessage {\n return {\n role: 'system',\n content: `<system-reminder>\\n${content}\\n</system-reminder>`,\n isMeta: true,\n timestamp,\n type,\n priority,\n category,\n }\n }\n\n private getTodoStateHash(todos: TodoItem[]): string {\n return todos\n .map(t => `${t.id}:${t.status}`)\n .sort()\n .join('|')\n }\n\n private clearTodoReminders(agentId?: string): void {\n const agentKey = agentId || 'default'\n for (const key of this.sessionState.remindersSent) {\n if (key.startsWith(`todo_updated_${agentKey}_`)) {\n this.sessionState.remindersSent.delete(key)\n }\n }\n }\n\n private setupEventDispatcher(): void {\n // Session startup events\n this.addEventListener('session:startup', context => {\n // Reset session state on startup\n this.resetSession()\n\n // Initialize session tracking\n this.sessionState.sessionStartTime = Date.now()\n this.sessionState.contextPresent =\n Object.keys(context.context || {}).length > 0\n })\n\n // Todo change events\n this.addEventListener('todo:changed', context => {\n this.sessionState.lastTodoUpdate = Date.now()\n this.clearTodoReminders(context.agentId)\n })\n\n // Todo file changed externally\n this.addEventListener('todo:file_changed', context => {\n // External file change detected, cache reminder for next generateReminders() call\n const agentId = context.agentId || 'default'\n this.clearTodoReminders(agentId)\n this.sessionState.lastTodoUpdate = Date.now()\n\n // Generate and cache file change reminder directly\n const reminder = this.generateFileChangeReminder(context)\n if (reminder) {\n const cacheKey = `file_changed_${agentId}_${Date.now()}`\n this.reminderCache.set(cacheKey, reminder)\n }\n })\n\n // File conflict events (external modification between reads)\n this.addEventListener('file:conflict', context => {\n const filePath = context.filePath || context.path || 'unknown'\n const cacheKey = `file_conflict_${filePath}_${Date.now()}`\n\n if (!this.sessionState.remindersSent.has(cacheKey)) {\n this.sessionState.remindersSent.add(cacheKey)\n\n const reminder = this.createReminderMessage(\n 'file_conflict',\n 'general',\n 'high',\n `File ${filePath} was modified externally since last read. Re-read the file before editing to avoid overwriting changes.`,\n Date.now(),\n )\n this.reminderCache.set(cacheKey, reminder)\n }\n })\n\n // File access events\n this.addEventListener('file:read', context => {\n this.sessionState.lastFileAccess = Date.now()\n })\n\n // File edit events for freshness detection\n this.addEventListener('file:edited', context => {\n // File edit handling\n })\n\n // Unified mention event handlers - eliminates code duplication\n this.addEventListener('agent:mentioned', context => {\n this.createMentionReminder({\n type: 'agent_mention',\n key: `agent_mention_${context.agentType}_${context.timestamp}`,\n category: 'task',\n priority: 'high',\n content: `The user mentioned @${context.originalMention}. You MUST use the Task tool with subagent_type=\"${context.agentType}\" to delegate this task to the specified agent. Provide a detailed, self-contained task description that fully captures the user's intent for the ${context.agentType} agent to execute.`,\n timestamp: context.timestamp,\n })\n })\n\n this.addEventListener('file:mentioned', context => {\n this.createMentionReminder({\n type: 'file_mention',\n key: `file_mention_${context.filePath}_${context.timestamp}`,\n category: 'general',\n priority: 'high',\n content: `The user mentioned @${context.originalMention}. You MUST read the entire content of the file at path: ${context.filePath} using the Read tool to understand the full context before proceeding with the user's request.`,\n timestamp: context.timestamp,\n })\n })\n\n this.addEventListener('ask-model:mentioned', context => {\n this.createMentionReminder({\n type: 'ask_model_mention',\n key: `ask_model_mention_${context.modelName}_${context.timestamp}`,\n category: 'task',\n priority: 'high',\n content: `The user mentioned @${context.modelName}. You MUST use the AskExpertModelTool to consult this specific model for expert opinions and analysis. Provide the user's question or context clearly to get the most relevant response from ${context.modelName}.`,\n timestamp: context.timestamp,\n })\n })\n\n // Hook result events (Batch A system reminders)\n this.addEventListener('hook:additional_context', context => {\n const key = `hook_ctx_${context.hookName}_${Date.now()}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'hook_additional_context',\n 'general',\n 'medium',\n `Additional context from hook \"${context.hookName}\": ${context.content}`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n this.addEventListener('hook:blocking_error', context => {\n const key = `hook_block_${context.hookName}_${Date.now()}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'hook_blocking_error',\n 'general',\n 'high',\n `A hook blocked the action: ${context.reason}`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n this.addEventListener('hook:stopped_continuation', context => {\n const key = `hook_stop_${context.hookName}_${Date.now()}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'hook_stopped_continuation',\n 'general',\n 'high',\n `A hook stopped continuation: ${context.reason}`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // File status events\n this.addEventListener('file:empty', context => {\n const key = `file_empty_${context.filePath}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'file_empty',\n 'general',\n 'low',\n `File exists but is empty: ${context.filePath}`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n this.addEventListener('file:truncated', context => {\n const key = `file_truncated_${context.filePath}_${context.limit}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'file_truncated',\n 'general',\n 'low',\n `File content was truncated at ${context.limit} lines. Total lines: ${context.totalLines}. Use offset and limit to read more.`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Task status events\n this.addEventListener('task:status', context => {\n const key = `task_status_${context.taskId}_${context.status}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'task_status',\n 'task',\n 'medium',\n `Task ${context.taskId} (${context.description || 'unnamed'}): status changed to ${context.status}`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n this.addEventListener('task:tools_reminder', context => {\n const key = 'task_tools_reminder'\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'task_tools_reminder',\n 'task',\n 'low',\n \"The task tools haven't been used recently. If you're working on tasks that would benefit from tracking progress, consider using TaskCreate to add new tasks and TaskUpdate to update task status (set to in_progress when starting, completed when done). Also consider cleaning up the task list if it has become stale. Only use these if relevant to the current work. This is just a gentle reminder - ignore if not applicable. Make sure that you NEVER mention this reminder to the user\",\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Batch B: Output style events\n this.addEventListener('output_style:active', context => {\n const key = `output_style_active_${context.styleName}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'output_style_active',\n 'general',\n 'low',\n `Output style \"${context.styleName}\" is active. Follow its formatting instructions for your responses.`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Plan mode events\n this.addEventListener('plan:file_reference', context => {\n const key = `plan_file_ref_${context.planPath}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'plan_file_reference',\n 'general',\n 'medium',\n `A plan file exists at: ${context.planPath}. Review it before making implementation decisions.`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n this.addEventListener('plan:mode_reentry', context => {\n const key = `plan_reentry_${Date.now()}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'plan_mode_reentry',\n 'general',\n 'medium',\n 'Re-entering plan mode. Review the existing plan and update as needed before implementation.',\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n this.addEventListener('plan:exited', context => {\n const key = `plan_exited_${Date.now()}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'plan_exited',\n 'general',\n 'medium',\n 'Exited plan mode. Proceed with implementation following the approved plan.',\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Skill invocation events\n this.addEventListener('skill:invoked', context => {\n const key = `skill_invoked_${context.skillName}_${Date.now()}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'skill_invoked',\n 'general',\n 'low',\n `Skill \"${context.skillName}\" was invoked. Follow the skill's instructions in the expanded prompt.`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // MCP resource events\n this.addEventListener('mcp:resource_no_content', context => {\n const key = `mcp_no_content_${context.resourceUri}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'mcp_resource_no_content',\n 'general',\n 'low',\n `MCP resource \"${context.resourceUri}\" returned no content. It may be unavailable or empty.`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Compact file reference events\n this.addEventListener('compact:file_reference', context => {\n const key = `compact_file_ref_${context.filePath}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'compact_file_reference',\n 'general',\n 'low',\n `Note: ${context.filePath} was read before the last conversation was summarized, but the contents are too large to include. Use Read tool if you need to access it.`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Batch C: Token usage tracking\n this.addEventListener('token:usage', context => {\n const key = `token_usage_${context.threshold}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'token_usage',\n 'performance',\n 'low',\n `Token usage has reached ${context.percentage}% of context limit (${context.used}/${context.total} tokens).`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Budget tracking\n this.addEventListener('budget:usd', context => {\n const key = `budget_usd_${context.threshold}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'budget_usd',\n 'performance',\n 'medium',\n `USD budget usage: $${context.used.toFixed(2)} of $${context.limit.toFixed(2)} (${context.percentage}%).`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Team coordination\n this.addEventListener('team:coordination', context => {\n const key = `team_coord_${context.teamId}_${Date.now()}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'team_coordination',\n 'task',\n 'medium',\n `Team coordination: ${context.message}`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Team shutdown\n this.addEventListener('team:shutdown', context => {\n const key = `team_shutdown_${context.teamId}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'team_shutdown',\n 'task',\n 'high',\n `Team \"${context.teamId}\" is shutting down. Reason: ${context.reason || 'completed'}`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // New diagnostics\n this.addEventListener('diagnostics:new', context => {\n const key = `diagnostics_${context.source}_${Date.now()}`\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const count = context.count || 1\n const reminder = this.createReminderMessage(\n 'diagnostics_new',\n 'general',\n 'low',\n `${count} new diagnostic${count > 1 ? 's' : ''} detected from ${context.source}. Review before proceeding.`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n\n // Session continuation\n this.addEventListener('session:continuation', context => {\n const key = 'session_continuation'\n if (!this.sessionState.remindersSent.has(key)) {\n this.sessionState.remindersSent.add(key)\n const reminder = this.createReminderMessage(\n 'session_continuation',\n 'general',\n 'medium',\n `This session is a continuation of a previous conversation. Key context has been preserved.`,\n Date.now(),\n )\n this.reminderCache.set(key, reminder)\n }\n })\n }\n\n public addEventListener(\n event: string,\n callback: (context: any) => void,\n ): void {\n if (!this.eventDispatcher.has(event)) {\n this.eventDispatcher.set(event, [])\n }\n this.eventDispatcher.get(event)!.push(callback)\n }\n\n public emitEvent(event: string, context: any): void {\n const listeners = this.eventDispatcher.get(event) || []\n listeners.forEach(callback => {\n try {\n callback(context)\n } catch (error) {\n console.error(`Error in event listener for ${event}:`, error)\n }\n })\n }\n\n /**\n * Unified mention reminder creation - eliminates duplicate logic\n * Centralizes reminder creation with consistent deduplication\n */\n private createMentionReminder(params: {\n type: string\n key: string\n category: ReminderMessage['category']\n priority: ReminderMessage['priority']\n content: string\n timestamp: number\n }): void {\n if (!this.sessionState.remindersSent.has(params.key)) {\n this.sessionState.remindersSent.add(params.key)\n\n const reminder = this.createReminderMessage(\n params.type,\n params.category,\n params.priority,\n params.content,\n params.timestamp,\n )\n\n this.reminderCache.set(params.key, reminder)\n }\n }\n\n public resetSession(): void {\n this.sessionState = {\n lastTodoUpdate: 0,\n lastFileAccess: 0,\n sessionStartTime: Date.now(),\n remindersSent: new Set(),\n contextPresent: false,\n reminderCount: 0,\n config: { ...this.sessionState.config }, // Preserve config across resets\n }\n this.reminderCache.clear() // Clear cache on session reset\n }\n\n public updateConfig(config: Partial<ReminderConfig>): void {\n this.sessionState.config = { ...this.sessionState.config, ...config }\n }\n\n public getSessionState(): SessionReminderState {\n return { ...this.sessionState }\n }\n}\n\nexport const systemReminderService = new SystemReminderService()\n\nexport const generateSystemReminders = (\n hasContext: boolean = false,\n agentId?: string,\n) => systemReminderService.generateReminders(hasContext, agentId)\n\nexport const generateFileChangeReminder = (context: any) =>\n systemReminderService.generateFileChangeReminder(context)\n\nexport const emitReminderEvent = (event: string, context: any) =>\n systemReminderService.emitEvent(event, context)\n\nexport const resetReminderSession = () => systemReminderService.resetSession()\nexport const getReminderSessionState = () =>\n systemReminderService.getSessionState()\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
import { getModelManager } from "../utils/model.js";
|
|
2
|
-
const DEFAULT_ROUTING_RULES = [
|
|
3
|
-
// Simple tasks → fast model
|
|
4
|
-
{ pattern: "simple-query", model: "haiku", priority: 1 },
|
|
5
|
-
{ pattern: "simple-generation", model: "haiku", priority: 1 },
|
|
6
|
-
// Moderate tasks → balanced model
|
|
7
|
-
{ pattern: "moderate-query", model: "sonnet", priority: 2 },
|
|
8
|
-
{ pattern: "moderate-generation", model: "sonnet", priority: 2 },
|
|
9
|
-
{ pattern: "moderate-review", model: "sonnet", priority: 2 },
|
|
10
|
-
{ pattern: "moderate-refactor", model: "sonnet", priority: 2 },
|
|
11
|
-
{ pattern: "moderate-debug", model: "sonnet", priority: 2 },
|
|
12
|
-
// Complex tasks → powerful model
|
|
13
|
-
{ pattern: "complex-reasoning", model: "opus", priority: 3 },
|
|
14
|
-
{ pattern: "complex-architecture", model: "opus", priority: 3 },
|
|
15
|
-
{ pattern: "complex-generation", model: "opus", priority: 3 },
|
|
16
|
-
{ pattern: "complex-creative", model: "opus", priority: 3 },
|
|
17
|
-
// Specific task types
|
|
18
|
-
{ pattern: "*-architecture", model: "opus", priority: 0 },
|
|
19
|
-
{ pattern: "*-reasoning", model: "opus", priority: 0 },
|
|
20
|
-
{ pattern: "*-review", model: "sonnet", priority: 1 },
|
|
21
|
-
{ pattern: "*-debug", model: "sonnet", priority: 1 }
|
|
22
|
-
];
|
|
23
|
-
const ANALYSIS_PATTERNS = [
|
|
24
|
-
// Query patterns
|
|
25
|
-
{
|
|
26
|
-
name: "question",
|
|
27
|
-
patterns: [
|
|
28
|
-
/\b(what|how|why|when|where|who|which|can you explain)\b/i,
|
|
29
|
-
/\?$/,
|
|
30
|
-
/\b(tell me|show me|help me understand)\b/i
|
|
31
|
-
],
|
|
32
|
-
type: "query",
|
|
33
|
-
complexityWeight: -0.2
|
|
34
|
-
},
|
|
35
|
-
// Generation patterns
|
|
36
|
-
{
|
|
37
|
-
name: "generation",
|
|
38
|
-
patterns: [
|
|
39
|
-
/\b(create|generate|write|build|implement|add|make)\b/i,
|
|
40
|
-
/\b(new|feature|function|class|component|module)\b/i
|
|
41
|
-
],
|
|
42
|
-
type: "generation",
|
|
43
|
-
complexityWeight: 0.1
|
|
44
|
-
},
|
|
45
|
-
// Review patterns
|
|
46
|
-
{
|
|
47
|
-
name: "review",
|
|
48
|
-
patterns: [
|
|
49
|
-
/\b(review|check|analyze|examine|inspect|audit)\b/i,
|
|
50
|
-
/\b(code review|pull request|pr|merge)\b/i
|
|
51
|
-
],
|
|
52
|
-
type: "review",
|
|
53
|
-
complexityWeight: 0
|
|
54
|
-
},
|
|
55
|
-
// Reasoning patterns
|
|
56
|
-
{
|
|
57
|
-
name: "reasoning",
|
|
58
|
-
patterns: [
|
|
59
|
-
/\b(think|reason|consider|evaluate|compare|decide)\b/i,
|
|
60
|
-
/\b(trade-?off|pros and cons|best approach|optimal)\b/i,
|
|
61
|
-
/\b(algorithm|complexity|performance|efficiency)\b/i
|
|
62
|
-
],
|
|
63
|
-
type: "reasoning",
|
|
64
|
-
complexityWeight: 0.3
|
|
65
|
-
},
|
|
66
|
-
// Creative patterns
|
|
67
|
-
{
|
|
68
|
-
name: "creative",
|
|
69
|
-
patterns: [
|
|
70
|
-
/\b(creative|brainstorm|innovative|design|imagine)\b/i,
|
|
71
|
-
/\b(suggest|propose|come up with|ideas)\b/i
|
|
72
|
-
],
|
|
73
|
-
type: "creative",
|
|
74
|
-
complexityWeight: 0.2
|
|
75
|
-
},
|
|
76
|
-
// Refactoring patterns
|
|
77
|
-
{
|
|
78
|
-
name: "refactor",
|
|
79
|
-
patterns: [
|
|
80
|
-
/\b(refactor|restructure|reorganize|clean up|improve)\b/i,
|
|
81
|
-
/\b(optimize|simplify|modularize|extract)\b/i
|
|
82
|
-
],
|
|
83
|
-
type: "refactor",
|
|
84
|
-
complexityWeight: 0.15
|
|
85
|
-
},
|
|
86
|
-
// Debug patterns
|
|
87
|
-
{
|
|
88
|
-
name: "debug",
|
|
89
|
-
patterns: [
|
|
90
|
-
/\b(debug|fix|error|bug|issue|problem|crash)\b/i,
|
|
91
|
-
/\b(broken|doesn't work|failing|wrong)\b/i,
|
|
92
|
-
/\b(stack trace|exception|undefined|null)\b/i
|
|
93
|
-
],
|
|
94
|
-
type: "debug",
|
|
95
|
-
complexityWeight: 0.1
|
|
96
|
-
},
|
|
97
|
-
// Architecture patterns
|
|
98
|
-
{
|
|
99
|
-
name: "architecture",
|
|
100
|
-
patterns: [
|
|
101
|
-
/\b(architect|design|system|infrastructure|scale)\b/i,
|
|
102
|
-
/\b(microservice|monolith|distributed|database)\b/i,
|
|
103
|
-
/\b(api design|schema|data model|integration)\b/i
|
|
104
|
-
],
|
|
105
|
-
type: "architecture",
|
|
106
|
-
complexityWeight: 0.4
|
|
107
|
-
}
|
|
108
|
-
];
|
|
109
|
-
const COMPLEXITY_INDICATORS = {
|
|
110
|
-
simple: [
|
|
111
|
-
/\b(simple|quick|basic|easy|trivial|small)\b/i,
|
|
112
|
-
/\b(one line|single|just|only)\b/i
|
|
113
|
-
],
|
|
114
|
-
complex: [
|
|
115
|
-
/\b(complex|difficult|challenging|advanced|comprehensive)\b/i,
|
|
116
|
-
/\b(entire|whole|all|complete|full|extensive)\b/i,
|
|
117
|
-
/\b(multiple|several|many|various)\b/i,
|
|
118
|
-
/\b(system|platform|framework|infrastructure)\b/i
|
|
119
|
-
]
|
|
120
|
-
};
|
|
121
|
-
class TaskRouter {
|
|
122
|
-
routingRules = /* @__PURE__ */ new Map();
|
|
123
|
-
modelManager = getModelManager();
|
|
124
|
-
customRules = [];
|
|
125
|
-
constructor(customRules) {
|
|
126
|
-
this.loadRules(DEFAULT_ROUTING_RULES);
|
|
127
|
-
if (customRules) {
|
|
128
|
-
this.customRules = customRules;
|
|
129
|
-
this.loadRules(customRules);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Load routing rules into the map
|
|
134
|
-
*/
|
|
135
|
-
loadRules(rules) {
|
|
136
|
-
const sorted = [...rules].sort((a, b) => a.priority - b.priority);
|
|
137
|
-
for (const rule of sorted) {
|
|
138
|
-
this.routingRules.set(rule.pattern, rule.model);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Analyze a task and return detailed analysis
|
|
143
|
-
*/
|
|
144
|
-
analyzeTask(task) {
|
|
145
|
-
const detectedPatterns = [];
|
|
146
|
-
let complexityScore = 0.5;
|
|
147
|
-
let primaryType = "query";
|
|
148
|
-
let typeMatchCount = 0;
|
|
149
|
-
for (const pattern of ANALYSIS_PATTERNS) {
|
|
150
|
-
let matches = 0;
|
|
151
|
-
for (const regex of pattern.patterns) {
|
|
152
|
-
if (regex.test(task)) {
|
|
153
|
-
matches++;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (matches > 0) {
|
|
157
|
-
detectedPatterns.push(pattern.name);
|
|
158
|
-
complexityScore += pattern.complexityWeight * (matches / pattern.patterns.length);
|
|
159
|
-
if (matches > typeMatchCount) {
|
|
160
|
-
typeMatchCount = matches;
|
|
161
|
-
primaryType = pattern.type;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
for (const regex of COMPLEXITY_INDICATORS.simple) {
|
|
166
|
-
if (regex.test(task)) {
|
|
167
|
-
complexityScore -= 0.2;
|
|
168
|
-
detectedPatterns.push("simple-indicator");
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
for (const regex of COMPLEXITY_INDICATORS.complex) {
|
|
172
|
-
if (regex.test(task)) {
|
|
173
|
-
complexityScore += 0.2;
|
|
174
|
-
detectedPatterns.push("complex-indicator");
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
const wordCount = task.split(/\s+/).length;
|
|
178
|
-
if (wordCount < 10) {
|
|
179
|
-
complexityScore -= 0.1;
|
|
180
|
-
} else if (wordCount > 50) {
|
|
181
|
-
complexityScore += 0.1;
|
|
182
|
-
} else if (wordCount > 100) {
|
|
183
|
-
complexityScore += 0.2;
|
|
184
|
-
}
|
|
185
|
-
complexityScore = Math.max(0, Math.min(1, complexityScore));
|
|
186
|
-
let complexity;
|
|
187
|
-
if (complexityScore < 0.35) {
|
|
188
|
-
complexity = "simple";
|
|
189
|
-
} else if (complexityScore < 0.65) {
|
|
190
|
-
complexity = "moderate";
|
|
191
|
-
} else {
|
|
192
|
-
complexity = "complex";
|
|
193
|
-
}
|
|
194
|
-
const estimatedInputTokens = Math.ceil(task.length / 4);
|
|
195
|
-
const estimatedOutputTokens = this.estimateOutputTokens(
|
|
196
|
-
complexity,
|
|
197
|
-
primaryType
|
|
198
|
-
);
|
|
199
|
-
const suggestedModel = this.route(complexity, primaryType);
|
|
200
|
-
const confidence = typeMatchCount > 0 ? Math.min(
|
|
201
|
-
1,
|
|
202
|
-
0.5 + typeMatchCount * 0.15 + detectedPatterns.length * 0.05
|
|
203
|
-
) : 0.5;
|
|
204
|
-
return {
|
|
205
|
-
complexity,
|
|
206
|
-
type: primaryType,
|
|
207
|
-
estimatedInputTokens,
|
|
208
|
-
estimatedOutputTokens,
|
|
209
|
-
suggestedModel,
|
|
210
|
-
confidence,
|
|
211
|
-
detectedPatterns: [...new Set(detectedPatterns)]
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Route a task to the appropriate model
|
|
216
|
-
*/
|
|
217
|
-
route(complexity, type) {
|
|
218
|
-
const exactKey = `${complexity}-${type}`;
|
|
219
|
-
if (this.routingRules.has(exactKey)) {
|
|
220
|
-
return this.routingRules.get(exactKey);
|
|
221
|
-
}
|
|
222
|
-
const wildcardKey = `*-${type}`;
|
|
223
|
-
if (this.routingRules.has(wildcardKey)) {
|
|
224
|
-
return this.routingRules.get(wildcardKey);
|
|
225
|
-
}
|
|
226
|
-
switch (complexity) {
|
|
227
|
-
case "simple":
|
|
228
|
-
return "haiku";
|
|
229
|
-
case "moderate":
|
|
230
|
-
return "sonnet";
|
|
231
|
-
case "complex":
|
|
232
|
-
return "opus";
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Route a task directly from task text
|
|
237
|
-
*/
|
|
238
|
-
routeTask(task) {
|
|
239
|
-
const analysis = this.analyzeTask(task);
|
|
240
|
-
return analysis.suggestedModel;
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Estimate output tokens based on task type and complexity
|
|
244
|
-
*/
|
|
245
|
-
estimateOutputTokens(complexity, type) {
|
|
246
|
-
const baseTokens = {
|
|
247
|
-
query: 200,
|
|
248
|
-
generation: 500,
|
|
249
|
-
review: 400,
|
|
250
|
-
reasoning: 600,
|
|
251
|
-
creative: 400,
|
|
252
|
-
refactor: 800,
|
|
253
|
-
debug: 500,
|
|
254
|
-
architecture: 1e3
|
|
255
|
-
};
|
|
256
|
-
const multipliers = {
|
|
257
|
-
simple: 0.5,
|
|
258
|
-
moderate: 1,
|
|
259
|
-
complex: 2
|
|
260
|
-
};
|
|
261
|
-
return Math.ceil(baseTokens[type] * multipliers[complexity]);
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Add a custom routing rule
|
|
265
|
-
*/
|
|
266
|
-
addRule(rule) {
|
|
267
|
-
this.customRules.push(rule);
|
|
268
|
-
this.routingRules.set(rule.pattern, rule.model);
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Remove a routing rule
|
|
272
|
-
*/
|
|
273
|
-
removeRule(pattern) {
|
|
274
|
-
const index = this.customRules.findIndex((r) => r.pattern === pattern);
|
|
275
|
-
if (index >= 0) {
|
|
276
|
-
this.customRules.splice(index, 1);
|
|
277
|
-
this.routingRules.delete(pattern);
|
|
278
|
-
return true;
|
|
279
|
-
}
|
|
280
|
-
return false;
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Get all current routing rules
|
|
284
|
-
*/
|
|
285
|
-
getRules() {
|
|
286
|
-
return [...DEFAULT_ROUTING_RULES, ...this.customRules];
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Get cost estimate for a task
|
|
290
|
-
*/
|
|
291
|
-
estimateCost(task) {
|
|
292
|
-
const analysis = this.analyzeTask(task);
|
|
293
|
-
return {
|
|
294
|
-
model: analysis.suggestedModel,
|
|
295
|
-
estimatedInputTokens: analysis.estimatedInputTokens,
|
|
296
|
-
estimatedOutputTokens: analysis.estimatedOutputTokens,
|
|
297
|
-
estimatedTotalTokens: analysis.estimatedInputTokens + analysis.estimatedOutputTokens
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
let routerInstance = null;
|
|
302
|
-
function getTaskRouter() {
|
|
303
|
-
if (!routerInstance) {
|
|
304
|
-
routerInstance = new TaskRouter();
|
|
305
|
-
}
|
|
306
|
-
return routerInstance;
|
|
307
|
-
}
|
|
308
|
-
function resetTaskRouter() {
|
|
309
|
-
routerInstance = null;
|
|
310
|
-
}
|
|
311
|
-
function routeTask(task) {
|
|
312
|
-
return getTaskRouter().routeTask(task);
|
|
313
|
-
}
|
|
314
|
-
function analyzeTask(task) {
|
|
315
|
-
return getTaskRouter().analyzeTask(task);
|
|
316
|
-
}
|
|
317
|
-
export {
|
|
318
|
-
TaskRouter,
|
|
319
|
-
analyzeTask,
|
|
320
|
-
getTaskRouter,
|
|
321
|
-
resetTaskRouter,
|
|
322
|
-
routeTask
|
|
323
|
-
};
|
|
324
|
-
//# sourceMappingURL=taskRouter.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/services/taskRouter.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Task Router\n *\n * Intelligent task routing system that analyzes tasks and routes them\n * to the most appropriate model based on complexity, type, and cost.\n */\n\nimport { getModelManager } from '@utils/model'\n\n/**\n * Task complexity levels\n */\nexport type TaskComplexity = 'simple' | 'moderate' | 'complex'\n\n/**\n * Task type categories\n */\nexport type TaskType =\n | 'query' // Simple questions, lookups\n | 'generation' // Code generation, content creation\n | 'review' // Code review, analysis\n | 'reasoning' // Complex logic, problem solving\n | 'creative' // Creative writing, brainstorming\n | 'refactor' // Code refactoring, optimization\n | 'debug' // Debugging, error analysis\n | 'architecture' // System design, architecture\n\n/**\n * Result of task analysis\n */\nexport interface TaskAnalysis {\n /** Estimated task complexity */\n complexity: TaskComplexity\n /** Detected task type */\n type: TaskType\n /** Estimated input tokens */\n estimatedInputTokens: number\n /** Estimated output tokens */\n estimatedOutputTokens: number\n /** Suggested model for this task */\n suggestedModel: string\n /** Confidence score (0-1) */\n confidence: number\n /** Detected patterns that influenced the analysis */\n detectedPatterns: string[]\n}\n\n/**\n * Routing rule configuration\n */\nexport interface RoutingRule {\n /** Pattern to match (complexity-type) */\n pattern: string\n /** Model to route to */\n model: string\n /** Rule priority (lower = higher priority) */\n priority: number\n}\n\n/**\n * Task analysis patterns\n */\ninterface AnalysisPattern {\n /** Pattern name */\n name: string\n /** Regex or keywords to match */\n patterns: RegExp[]\n /** Detected type */\n type: TaskType\n /** Complexity adjustment */\n complexityWeight: number\n}\n\n/**\n * Default routing rules\n */\nconst DEFAULT_ROUTING_RULES: RoutingRule[] = [\n // Simple tasks \u2192 fast model\n { pattern: 'simple-query', model: 'haiku', priority: 1 },\n { pattern: 'simple-generation', model: 'haiku', priority: 1 },\n\n // Moderate tasks \u2192 balanced model\n { pattern: 'moderate-query', model: 'sonnet', priority: 2 },\n { pattern: 'moderate-generation', model: 'sonnet', priority: 2 },\n { pattern: 'moderate-review', model: 'sonnet', priority: 2 },\n { pattern: 'moderate-refactor', model: 'sonnet', priority: 2 },\n { pattern: 'moderate-debug', model: 'sonnet', priority: 2 },\n\n // Complex tasks \u2192 powerful model\n { pattern: 'complex-reasoning', model: 'opus', priority: 3 },\n { pattern: 'complex-architecture', model: 'opus', priority: 3 },\n { pattern: 'complex-generation', model: 'opus', priority: 3 },\n { pattern: 'complex-creative', model: 'opus', priority: 3 },\n\n // Specific task types\n { pattern: '*-architecture', model: 'opus', priority: 0 },\n { pattern: '*-reasoning', model: 'opus', priority: 0 },\n { pattern: '*-review', model: 'sonnet', priority: 1 },\n { pattern: '*-debug', model: 'sonnet', priority: 1 },\n]\n\n/**\n * Analysis patterns for task type detection\n */\nconst ANALYSIS_PATTERNS: AnalysisPattern[] = [\n // Query patterns\n {\n name: 'question',\n patterns: [\n /\\b(what|how|why|when|where|who|which|can you explain)\\b/i,\n /\\?$/,\n /\\b(tell me|show me|help me understand)\\b/i,\n ],\n type: 'query',\n complexityWeight: -0.2,\n },\n\n // Generation patterns\n {\n name: 'generation',\n patterns: [\n /\\b(create|generate|write|build|implement|add|make)\\b/i,\n /\\b(new|feature|function|class|component|module)\\b/i,\n ],\n type: 'generation',\n complexityWeight: 0.1,\n },\n\n // Review patterns\n {\n name: 'review',\n patterns: [\n /\\b(review|check|analyze|examine|inspect|audit)\\b/i,\n /\\b(code review|pull request|pr|merge)\\b/i,\n ],\n type: 'review',\n complexityWeight: 0,\n },\n\n // Reasoning patterns\n {\n name: 'reasoning',\n patterns: [\n /\\b(think|reason|consider|evaluate|compare|decide)\\b/i,\n /\\b(trade-?off|pros and cons|best approach|optimal)\\b/i,\n /\\b(algorithm|complexity|performance|efficiency)\\b/i,\n ],\n type: 'reasoning',\n complexityWeight: 0.3,\n },\n\n // Creative patterns\n {\n name: 'creative',\n patterns: [\n /\\b(creative|brainstorm|innovative|design|imagine)\\b/i,\n /\\b(suggest|propose|come up with|ideas)\\b/i,\n ],\n type: 'creative',\n complexityWeight: 0.2,\n },\n\n // Refactoring patterns\n {\n name: 'refactor',\n patterns: [\n /\\b(refactor|restructure|reorganize|clean up|improve)\\b/i,\n /\\b(optimize|simplify|modularize|extract)\\b/i,\n ],\n type: 'refactor',\n complexityWeight: 0.15,\n },\n\n // Debug patterns\n {\n name: 'debug',\n patterns: [\n /\\b(debug|fix|error|bug|issue|problem|crash)\\b/i,\n /\\b(broken|doesn't work|failing|wrong)\\b/i,\n /\\b(stack trace|exception|undefined|null)\\b/i,\n ],\n type: 'debug',\n complexityWeight: 0.1,\n },\n\n // Architecture patterns\n {\n name: 'architecture',\n patterns: [\n /\\b(architect|design|system|infrastructure|scale)\\b/i,\n /\\b(microservice|monolith|distributed|database)\\b/i,\n /\\b(api design|schema|data model|integration)\\b/i,\n ],\n type: 'architecture',\n complexityWeight: 0.4,\n },\n]\n\n/**\n * Complexity indicators\n */\nconst COMPLEXITY_INDICATORS = {\n simple: [\n /\\b(simple|quick|basic|easy|trivial|small)\\b/i,\n /\\b(one line|single|just|only)\\b/i,\n ],\n complex: [\n /\\b(complex|difficult|challenging|advanced|comprehensive)\\b/i,\n /\\b(entire|whole|all|complete|full|extensive)\\b/i,\n /\\b(multiple|several|many|various)\\b/i,\n /\\b(system|platform|framework|infrastructure)\\b/i,\n ],\n}\n\n/**\n * Task Router for intelligent model selection\n */\nexport class TaskRouter {\n private routingRules: Map<string, string> = new Map()\n private modelManager = getModelManager()\n private customRules: RoutingRule[] = []\n\n constructor(customRules?: RoutingRule[]) {\n // Initialize with default rules\n this.loadRules(DEFAULT_ROUTING_RULES)\n\n // Add custom rules if provided\n if (customRules) {\n this.customRules = customRules\n this.loadRules(customRules)\n }\n }\n\n /**\n * Load routing rules into the map\n */\n private loadRules(rules: RoutingRule[]): void {\n // Sort by priority (lower = higher priority)\n const sorted = [...rules].sort((a, b) => a.priority - b.priority)\n\n for (const rule of sorted) {\n this.routingRules.set(rule.pattern, rule.model)\n }\n }\n\n /**\n * Analyze a task and return detailed analysis\n */\n analyzeTask(task: string): TaskAnalysis {\n const detectedPatterns: string[] = []\n let complexityScore = 0.5 // Start at moderate\n let primaryType: TaskType = 'query'\n let typeMatchCount = 0\n\n // Detect task type from patterns\n for (const pattern of ANALYSIS_PATTERNS) {\n let matches = 0\n for (const regex of pattern.patterns) {\n if (regex.test(task)) {\n matches++\n }\n }\n\n if (matches > 0) {\n detectedPatterns.push(pattern.name)\n complexityScore +=\n pattern.complexityWeight * (matches / pattern.patterns.length)\n\n if (matches > typeMatchCount) {\n typeMatchCount = matches\n primaryType = pattern.type\n }\n }\n }\n\n // Detect complexity indicators\n for (const regex of COMPLEXITY_INDICATORS.simple) {\n if (regex.test(task)) {\n complexityScore -= 0.2\n detectedPatterns.push('simple-indicator')\n }\n }\n\n for (const regex of COMPLEXITY_INDICATORS.complex) {\n if (regex.test(task)) {\n complexityScore += 0.2\n detectedPatterns.push('complex-indicator')\n }\n }\n\n // Adjust for task length (longer tasks tend to be more complex)\n const wordCount = task.split(/\\s+/).length\n if (wordCount < 10) {\n complexityScore -= 0.1\n } else if (wordCount > 50) {\n complexityScore += 0.1\n } else if (wordCount > 100) {\n complexityScore += 0.2\n }\n\n // Normalize complexity score\n complexityScore = Math.max(0, Math.min(1, complexityScore))\n\n // Determine complexity level\n let complexity: TaskComplexity\n if (complexityScore < 0.35) {\n complexity = 'simple'\n } else if (complexityScore < 0.65) {\n complexity = 'moderate'\n } else {\n complexity = 'complex'\n }\n\n // Estimate tokens\n const estimatedInputTokens = Math.ceil(task.length / 4)\n const estimatedOutputTokens = this.estimateOutputTokens(\n complexity,\n primaryType,\n )\n\n // Get suggested model\n const suggestedModel = this.route(complexity, primaryType)\n\n // Calculate confidence\n const confidence =\n typeMatchCount > 0\n ? Math.min(\n 1,\n 0.5 + typeMatchCount * 0.15 + detectedPatterns.length * 0.05,\n )\n : 0.5\n\n return {\n complexity,\n type: primaryType,\n estimatedInputTokens,\n estimatedOutputTokens,\n suggestedModel,\n confidence,\n detectedPatterns: [...new Set(detectedPatterns)],\n }\n }\n\n /**\n * Route a task to the appropriate model\n */\n route(complexity: TaskComplexity, type: TaskType): string {\n // Try exact match\n const exactKey = `${complexity}-${type}`\n if (this.routingRules.has(exactKey)) {\n return this.routingRules.get(exactKey)!\n }\n\n // Try wildcard match\n const wildcardKey = `*-${type}`\n if (this.routingRules.has(wildcardKey)) {\n return this.routingRules.get(wildcardKey)!\n }\n\n // Default based on complexity\n switch (complexity) {\n case 'simple':\n return 'haiku'\n case 'moderate':\n return 'sonnet'\n case 'complex':\n return 'opus'\n }\n }\n\n /**\n * Route a task directly from task text\n */\n routeTask(task: string): string {\n const analysis = this.analyzeTask(task)\n return analysis.suggestedModel\n }\n\n /**\n * Estimate output tokens based on task type and complexity\n */\n private estimateOutputTokens(\n complexity: TaskComplexity,\n type: TaskType,\n ): number {\n const baseTokens: Record<TaskType, number> = {\n query: 200,\n generation: 500,\n review: 400,\n reasoning: 600,\n creative: 400,\n refactor: 800,\n debug: 500,\n architecture: 1000,\n }\n\n const multipliers: Record<TaskComplexity, number> = {\n simple: 0.5,\n moderate: 1.0,\n complex: 2.0,\n }\n\n return Math.ceil(baseTokens[type] * multipliers[complexity])\n }\n\n /**\n * Add a custom routing rule\n */\n addRule(rule: RoutingRule): void {\n this.customRules.push(rule)\n this.routingRules.set(rule.pattern, rule.model)\n }\n\n /**\n * Remove a routing rule\n */\n removeRule(pattern: string): boolean {\n const index = this.customRules.findIndex(r => r.pattern === pattern)\n if (index >= 0) {\n this.customRules.splice(index, 1)\n this.routingRules.delete(pattern)\n return true\n }\n return false\n }\n\n /**\n * Get all current routing rules\n */\n getRules(): RoutingRule[] {\n return [...DEFAULT_ROUTING_RULES, ...this.customRules]\n }\n\n /**\n * Get cost estimate for a task\n */\n estimateCost(task: string): {\n model: string\n estimatedInputTokens: number\n estimatedOutputTokens: number\n estimatedTotalTokens: number\n } {\n const analysis = this.analyzeTask(task)\n return {\n model: analysis.suggestedModel,\n estimatedInputTokens: analysis.estimatedInputTokens,\n estimatedOutputTokens: analysis.estimatedOutputTokens,\n estimatedTotalTokens:\n analysis.estimatedInputTokens + analysis.estimatedOutputTokens,\n }\n }\n}\n\n// Singleton instance\nlet routerInstance: TaskRouter | null = null\n\n/**\n * Get the task router instance\n */\nexport function getTaskRouter(): TaskRouter {\n if (!routerInstance) {\n routerInstance = new TaskRouter()\n }\n return routerInstance\n}\n\n/**\n * Reset the task router instance (useful for testing)\n */\nexport function resetTaskRouter(): void {\n routerInstance = null\n}\n\n/**\n * Route a task to the appropriate model\n */\nexport function routeTask(task: string): string {\n return getTaskRouter().routeTask(task)\n}\n\n/**\n * Analyze a task and return detailed analysis\n */\nexport function analyzeTask(task: string): TaskAnalysis {\n return getTaskRouter().analyzeTask(task)\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|