@within-7/minto 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +32 -154
- package/cli.js +3255 -0
- package/package.json +21 -38
- package/scripts/postinstall.cjs +19 -136
- package/vendor/ripgrep/arm64-linux/rg +0 -0
- package/vendor/ripgrep/x64-darwin/rg +0 -0
- package/vendor/ripgrep/x64-linux/rg +0 -0
- package/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/dist/Tool.js +0 -46
- package/dist/Tool.js.map +0 -7
- package/dist/commands/agents/AgentsCommand.js +0 -2170
- package/dist/commands/agents/AgentsCommand.js.map +0 -7
- package/dist/commands/agents/constants.js +0 -58
- package/dist/commands/agents/constants.js.map +0 -7
- package/dist/commands/agents/index.js +0 -37
- package/dist/commands/agents/index.js.map +0 -7
- package/dist/commands/agents/types.js +0 -11
- package/dist/commands/agents/types.js.map +0 -7
- package/dist/commands/agents/utils/fileOperations.js +0 -245
- package/dist/commands/agents/utils/fileOperations.js.map +0 -7
- package/dist/commands/agents/utils/index.js +0 -23
- package/dist/commands/agents/utils/index.js.map +0 -7
- package/dist/commands/approvedTools.js +0 -36
- package/dist/commands/approvedTools.js.map +0 -7
- package/dist/commands/bug.js +0 -88
- package/dist/commands/bug.js.map +0 -7
- package/dist/commands/clear.js +0 -41
- package/dist/commands/clear.js.map +0 -7
- package/dist/commands/compact.js +0 -119
- package/dist/commands/compact.js.map +0 -7
- package/dist/commands/config.js +0 -20
- package/dist/commands/config.js.map +0 -7
- package/dist/commands/context.js +0 -118
- package/dist/commands/context.js.map +0 -7
- package/dist/commands/cost.js +0 -19
- package/dist/commands/cost.js.map +0 -7
- package/dist/commands/ctx_viz.js +0 -193
- package/dist/commands/ctx_viz.js.map +0 -7
- package/dist/commands/doctor.js +0 -171
- package/dist/commands/doctor.js.map +0 -7
- package/dist/commands/effort.js +0 -87
- package/dist/commands/effort.js.map +0 -7
- package/dist/commands/export.js +0 -747
- package/dist/commands/export.js.map +0 -7
- package/dist/commands/help.js +0 -20
- package/dist/commands/help.js.map +0 -7
- package/dist/commands/ide.js +0 -18
- package/dist/commands/ide.js.map +0 -7
- package/dist/commands/init.js +0 -38
- package/dist/commands/init.js.map +0 -7
- package/dist/commands/language.js +0 -110
- package/dist/commands/language.js.map +0 -7
- package/dist/commands/login.js +0 -128
- package/dist/commands/login.js.map +0 -7
- package/dist/commands/mcp-interactive.js +0 -485
- package/dist/commands/mcp-interactive.js.map +0 -7
- package/dist/commands/memory.js +0 -119
- package/dist/commands/memory.js.map +0 -7
- package/dist/commands/model.js +0 -497
- package/dist/commands/model.js.map +0 -7
- package/dist/commands/new.js +0 -56
- package/dist/commands/new.js.map +0 -7
- package/dist/commands/outputStyle.js +0 -64
- package/dist/commands/outputStyle.js.map +0 -7
- package/dist/commands/permissions.js +0 -113
- package/dist/commands/permissions.js.map +0 -7
- package/dist/commands/plugin/AddMarketplaceForm.js +0 -91
- package/dist/commands/plugin/AddMarketplaceForm.js.map +0 -7
- package/dist/commands/plugin/ConfirmDialog.js +0 -84
- package/dist/commands/plugin/ConfirmDialog.js.map +0 -7
- package/dist/commands/plugin/ErrorView.js +0 -34
- package/dist/commands/plugin/ErrorView.js.map +0 -7
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +0 -152
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +0 -7
- package/dist/commands/plugin/InstalledPluginsManager.js +0 -102
- package/dist/commands/plugin/InstalledPluginsManager.js.map +0 -7
- package/dist/commands/plugin/LoadingView.js +0 -14
- package/dist/commands/plugin/LoadingView.js.map +0 -7
- package/dist/commands/plugin/MainMenu.js +0 -67
- package/dist/commands/plugin/MainMenu.js.map +0 -7
- package/dist/commands/plugin/MarketplaceManager.js +0 -201
- package/dist/commands/plugin/MarketplaceManager.js.map +0 -7
- package/dist/commands/plugin/MarketplaceSelector.js +0 -124
- package/dist/commands/plugin/MarketplaceSelector.js.map +0 -7
- package/dist/commands/plugin/PlaceholderScreen.js +0 -31
- package/dist/commands/plugin/PlaceholderScreen.js.map +0 -7
- package/dist/commands/plugin/PluginBrowser.js +0 -183
- package/dist/commands/plugin/PluginBrowser.js.map +0 -7
- package/dist/commands/plugin/PluginDetailsInstall.js +0 -159
- package/dist/commands/plugin/PluginDetailsInstall.js.map +0 -7
- package/dist/commands/plugin/PluginDetailsManage.js +0 -210
- package/dist/commands/plugin/PluginDetailsManage.js.map +0 -7
- package/dist/commands/plugin/components.js +0 -16
- package/dist/commands/plugin/components.js.map +0 -7
- package/dist/commands/plugin/example-usage.js +0 -63
- package/dist/commands/plugin/example-usage.js.map +0 -7
- package/dist/commands/plugin/types.js +0 -1
- package/dist/commands/plugin/types.js.map +0 -7
- package/dist/commands/plugin/utils.js +0 -109
- package/dist/commands/plugin/utils.js.map +0 -7
- package/dist/commands/plugin.js +0 -1410
- package/dist/commands/plugin.js.map +0 -7
- package/dist/commands/quit.js +0 -20
- package/dist/commands/quit.js.map +0 -7
- package/dist/commands/refreshCommands.js +0 -48
- package/dist/commands/refreshCommands.js.map +0 -7
- package/dist/commands/resume.js +0 -71
- package/dist/commands/resume.js.map +0 -7
- package/dist/commands/review.js +0 -51
- package/dist/commands/review.js.map +0 -7
- package/dist/commands/sandbox.js +0 -203
- package/dist/commands/sandbox.js.map +0 -7
- package/dist/commands/sessions.js +0 -224
- package/dist/commands/sessions.js.map +0 -7
- package/dist/commands/setup.js +0 -653
- package/dist/commands/setup.js.map +0 -7
- package/dist/commands/stats.js +0 -292
- package/dist/commands/stats.js.map +0 -7
- package/dist/commands/status.js +0 -127
- package/dist/commands/status.js.map +0 -7
- package/dist/commands/tasks.js +0 -108
- package/dist/commands/tasks.js.map +0 -7
- package/dist/commands/terminalSetup.js +0 -174
- package/dist/commands/terminalSetup.js.map +0 -7
- package/dist/commands/todos.js +0 -123
- package/dist/commands/todos.js.map +0 -7
- package/dist/commands/undo.js +0 -227
- package/dist/commands/undo.js.map +0 -7
- package/dist/commands/vim.js +0 -22
- package/dist/commands/vim.js.map +0 -7
- package/dist/commands.js +0 -130
- package/dist/commands.js.map +0 -7
- package/dist/components/AgentDetailView.js +0 -126
- package/dist/components/AgentDetailView.js.map +0 -7
- package/dist/components/AgentResponseBlock.js +0 -41
- package/dist/components/AgentResponseBlock.js.map +0 -7
- package/dist/components/AgentThinkingBlock.js +0 -32
- package/dist/components/AgentThinkingBlock.js.map +0 -7
- package/dist/components/AgentViewBanner.js +0 -22
- package/dist/components/AgentViewBanner.js.map +0 -7
- package/dist/components/AsciiLogo.js +0 -18
- package/dist/components/AsciiLogo.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js +0 -142
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/QuestionView.js +0 -55
- package/dist/components/AskUserQuestionDialog/QuestionView.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/index.js +0 -7
- package/dist/components/AskUserQuestionDialog/index.js.map +0 -7
- package/dist/components/BackgroundTasksPanel.js +0 -177
- package/dist/components/BackgroundTasksPanel.js.map +0 -7
- package/dist/components/BashStreamingProgress.js +0 -24
- package/dist/components/BashStreamingProgress.js.map +0 -7
- package/dist/components/CollapsibleHint.js +0 -15
- package/dist/components/CollapsibleHint.js.map +0 -7
- package/dist/components/Config.js +0 -181
- package/dist/components/Config.js.map +0 -7
- package/dist/components/ConsoleOAuthFlow.js +0 -179
- package/dist/components/ConsoleOAuthFlow.js.map +0 -7
- package/dist/components/Cost.js +0 -14
- package/dist/components/Cost.js.map +0 -7
- package/dist/components/CostThresholdDialog.js +0 -38
- package/dist/components/CostThresholdDialog.js.map +0 -7
- package/dist/components/CustomSelect/option-map.js +0 -32
- package/dist/components/CustomSelect/option-map.js.map +0 -7
- package/dist/components/CustomSelect/select-option.js +0 -37
- package/dist/components/CustomSelect/select-option.js.map +0 -7
- package/dist/components/CustomSelect/select.js +0 -64
- package/dist/components/CustomSelect/select.js.map +0 -7
- package/dist/components/CustomSelect/theme.js +0 -1
- package/dist/components/CustomSelect/theme.js.map +0 -7
- package/dist/components/CustomSelect/use-select-state.js +0 -220
- package/dist/components/CustomSelect/use-select-state.js.map +0 -7
- package/dist/components/CustomSelect/use-select.js +0 -21
- package/dist/components/CustomSelect/use-select.js.map +0 -7
- package/dist/components/FallbackToolUseRejectedMessage.js +0 -11
- package/dist/components/FallbackToolUseRejectedMessage.js.map +0 -7
- package/dist/components/FileEditToolUpdatedMessage.js +0 -32
- package/dist/components/FileEditToolUpdatedMessage.js.map +0 -7
- package/dist/components/HeaderBar.js +0 -63
- package/dist/components/HeaderBar.js.map +0 -7
- package/dist/components/Help.js +0 -185
- package/dist/components/Help.js.map +0 -7
- package/dist/components/HighlightedCode.js +0 -31
- package/dist/components/HighlightedCode.js.map +0 -7
- package/dist/components/HistorySearchOverlay.js +0 -49
- package/dist/components/HistorySearchOverlay.js.map +0 -7
- package/dist/components/HotkeyHelpPanel.js +0 -154
- package/dist/components/HotkeyHelpPanel.js.map +0 -7
- package/dist/components/IdleNotificationBar.js +0 -10
- package/dist/components/IdleNotificationBar.js.map +0 -7
- package/dist/components/InfoPanel/InfoPanel.js +0 -123
- package/dist/components/InfoPanel/InfoPanel.js.map +0 -7
- package/dist/components/InfoPanel/index.js +0 -5
- package/dist/components/InfoPanel/index.js.map +0 -7
- package/dist/components/InfoPanel/types.js +0 -1
- package/dist/components/InfoPanel/types.js.map +0 -7
- package/dist/components/InteractionRoundBlock.js +0 -56
- package/dist/components/InteractionRoundBlock.js.map +0 -7
- package/dist/components/InvalidConfigDialog.js +0 -84
- package/dist/components/InvalidConfigDialog.js.map +0 -7
- package/dist/components/Link.js +0 -18
- package/dist/components/Link.js.map +0 -7
- package/dist/components/LogSelector.js +0 -50
- package/dist/components/LogSelector.js.map +0 -7
- package/dist/components/Logo.js +0 -55
- package/dist/components/Logo.js.map +0 -7
- package/dist/components/MCPServerApprovalDialog.js +0 -81
- package/dist/components/MCPServerApprovalDialog.js.map +0 -7
- package/dist/components/MCPServerDialogCopy.js +0 -12
- package/dist/components/MCPServerDialogCopy.js.map +0 -7
- package/dist/components/MCPServerMultiselectDialog.js +0 -82
- package/dist/components/MCPServerMultiselectDialog.js.map +0 -7
- package/dist/components/Message.js +0 -162
- package/dist/components/Message.js.map +0 -7
- package/dist/components/MessageResponse.js +0 -9
- package/dist/components/MessageResponse.js.map +0 -7
- package/dist/components/MessageSelector.js +0 -127
- package/dist/components/MessageSelector.js.map +0 -7
- package/dist/components/ModeIndicator.js +0 -39
- package/dist/components/ModeIndicator.js.map +0 -7
- package/dist/components/ModelConfig.js +0 -223
- package/dist/components/ModelConfig.js.map +0 -7
- package/dist/components/ModelListManager.js +0 -142
- package/dist/components/ModelListManager.js.map +0 -7
- package/dist/components/ModelSelector/BrandTextInput.js +0 -43
- package/dist/components/ModelSelector/BrandTextInput.js.map +0 -7
- package/dist/components/ModelSelector/ModelSelector.js +0 -2103
- package/dist/components/ModelSelector/ModelSelector.js.map +0 -7
- package/dist/components/ModelSelector/ScreenContainer.js +0 -27
- package/dist/components/ModelSelector/ScreenContainer.js.map +0 -7
- package/dist/components/ModelSelector/WizardContainer.js +0 -45
- package/dist/components/ModelSelector/WizardContainer.js.map +0 -7
- package/dist/components/ModelSelector/constants.js +0 -37
- package/dist/components/ModelSelector/constants.js.map +0 -7
- package/dist/components/ModelSelector/hooks/index.js +0 -5
- package/dist/components/ModelSelector/hooks/index.js.map +0 -7
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js +0 -21
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js.map +0 -7
- package/dist/components/ModelSelector/index.js +0 -15
- package/dist/components/ModelSelector/index.js.map +0 -7
- package/dist/components/ModelSelector/types.js +0 -1
- package/dist/components/ModelSelector/types.js.map +0 -7
- package/dist/components/Onboarding.js +0 -159
- package/dist/components/Onboarding.js.map +0 -7
- package/dist/components/OperationSummary.js +0 -130
- package/dist/components/OperationSummary.js.map +0 -7
- package/dist/components/PressEnterToContinue.js +0 -10
- package/dist/components/PressEnterToContinue.js.map +0 -7
- package/dist/components/ProgressBar.js +0 -74
- package/dist/components/ProgressBar.js.map +0 -7
- package/dist/components/ProjectOnboarding.js +0 -99
- package/dist/components/ProjectOnboarding.js.map +0 -7
- package/dist/components/PromptInput.js +0 -1067
- package/dist/components/PromptInput.js.map +0 -7
- package/dist/components/PulseLabel.js +0 -44
- package/dist/components/PulseLabel.js.map +0 -7
- package/dist/components/QuitSummary.js +0 -88
- package/dist/components/QuitSummary.js.map +0 -7
- package/dist/components/RequestStatusIndicator.js +0 -194
- package/dist/components/RequestStatusIndicator.js.map +0 -7
- package/dist/components/RewindPanel.js +0 -272
- package/dist/components/RewindPanel.js.map +0 -7
- package/dist/components/SensitiveFileWarning.js +0 -35
- package/dist/components/SensitiveFileWarning.js.map +0 -7
- package/dist/components/SentryErrorBoundary.js +0 -27
- package/dist/components/SentryErrorBoundary.js.map +0 -7
- package/dist/components/SimpleSelector/SimpleSelector.js +0 -154
- package/dist/components/SimpleSelector/SimpleSelector.js.map +0 -7
- package/dist/components/SimpleSelector/index.js +0 -5
- package/dist/components/SimpleSelector/index.js.map +0 -7
- package/dist/components/SimpleSelector/types.js +0 -1
- package/dist/components/SimpleSelector/types.js.map +0 -7
- package/dist/components/Spinner.js +0 -174
- package/dist/components/Spinner.js.map +0 -7
- package/dist/components/SpinnerSymbol.js +0 -72
- package/dist/components/SpinnerSymbol.js.map +0 -7
- package/dist/components/StartupStatus.js +0 -57
- package/dist/components/StartupStatus.js.map +0 -7
- package/dist/components/StatusOverlayContent.js +0 -21
- package/dist/components/StatusOverlayContent.js.map +0 -7
- package/dist/components/StreamingBashOutput.js +0 -71
- package/dist/components/StreamingBashOutput.js.map +0 -7
- package/dist/components/StreamingTextPreview.js +0 -29
- package/dist/components/StreamingTextPreview.js.map +0 -7
- package/dist/components/StructuredDiff.js +0 -146
- package/dist/components/StructuredDiff.js.map +0 -7
- package/dist/components/SubagentBlock.js +0 -197
- package/dist/components/SubagentBlock.js.map +0 -7
- package/dist/components/SubagentManager.js +0 -65
- package/dist/components/SubagentManager.js.map +0 -7
- package/dist/components/SubagentProgress.js +0 -123
- package/dist/components/SubagentProgress.js.map +0 -7
- package/dist/components/SubagentStatusMarker.js +0 -37
- package/dist/components/SubagentStatusMarker.js.map +0 -7
- package/dist/components/TabbedListView/ScrollableList.js +0 -117
- package/dist/components/TabbedListView/ScrollableList.js.map +0 -7
- package/dist/components/TabbedListView/SearchInput.js +0 -23
- package/dist/components/TabbedListView/SearchInput.js.map +0 -7
- package/dist/components/TabbedListView/TabBar.js +0 -25
- package/dist/components/TabbedListView/TabBar.js.map +0 -7
- package/dist/components/TabbedListView/TabbedListView.js +0 -292
- package/dist/components/TabbedListView/TabbedListView.js.map +0 -7
- package/dist/components/TabbedListView/index.js +0 -11
- package/dist/components/TabbedListView/index.js.map +0 -7
- package/dist/components/TabbedListView/types.js +0 -1
- package/dist/components/TabbedListView/types.js.map +0 -7
- package/dist/components/TaskCard.js +0 -176
- package/dist/components/TaskCard.js.map +0 -7
- package/dist/components/TeamMemberPanel.js +0 -107
- package/dist/components/TeamMemberPanel.js.map +0 -7
- package/dist/components/TextInput.js +0 -108
- package/dist/components/TextInput.js.map +0 -7
- package/dist/components/ThinkingSelector.js +0 -84
- package/dist/components/ThinkingSelector.js.map +0 -7
- package/dist/components/TimelineRenderer.js +0 -31
- package/dist/components/TimelineRenderer.js.map +0 -7
- package/dist/components/TitledDivider.js +0 -26
- package/dist/components/TitledDivider.js.map +0 -7
- package/dist/components/TodoChangeBlock.js +0 -30
- package/dist/components/TodoChangeBlock.js.map +0 -7
- package/dist/components/TodoChangeLine.js +0 -22
- package/dist/components/TodoChangeLine.js.map +0 -7
- package/dist/components/TodoItem.js +0 -35
- package/dist/components/TodoItem.js.map +0 -7
- package/dist/components/TodoPanel.js +0 -167
- package/dist/components/TodoPanel.js.map +0 -7
- package/dist/components/TokenCounter.js +0 -74
- package/dist/components/TokenCounter.js.map +0 -7
- package/dist/components/TokenWarning.js +0 -41
- package/dist/components/TokenWarning.js.map +0 -7
- package/dist/components/ToolExecutionBlock.js +0 -18
- package/dist/components/ToolExecutionBlock.js.map +0 -7
- package/dist/components/ToolUseLoader.js +0 -29
- package/dist/components/ToolUseLoader.js.map +0 -7
- package/dist/components/TreeConnector.js +0 -26
- package/dist/components/TreeConnector.js.map +0 -7
- package/dist/components/TrustDialog.js +0 -71
- package/dist/components/TrustDialog.js.map +0 -7
- package/dist/components/TurnCompletionIndicator.js +0 -18
- package/dist/components/TurnCompletionIndicator.js.map +0 -7
- package/dist/components/UserQueryBlock.js +0 -12
- package/dist/components/UserQueryBlock.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedback.js +0 -50
- package/dist/components/binary-feedback/BinaryFeedback.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackOption.js +0 -92
- package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackView.js +0 -140
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +0 -7
- package/dist/components/binary-feedback/utils.js +0 -108
- package/dist/components/binary-feedback/utils.js.map +0 -7
- package/dist/components/messages/AssistantBashOutputMessage.js +0 -23
- package/dist/components/messages/AssistantBashOutputMessage.js.map +0 -7
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js +0 -36
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +0 -7
- package/dist/components/messages/AssistantRedactedThinkingMessage.js +0 -12
- package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantTextMessage.js +0 -92
- package/dist/components/messages/AssistantTextMessage.js.map +0 -7
- package/dist/components/messages/AssistantThinkingMessage.js +0 -42
- package/dist/components/messages/AssistantThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantToolUseMessage.js +0 -108
- package/dist/components/messages/AssistantToolUseMessage.js.map +0 -7
- package/dist/components/messages/DefaultToolResultFallback.js +0 -11
- package/dist/components/messages/DefaultToolResultFallback.js.map +0 -7
- package/dist/components/messages/GroupRenderer.js +0 -54
- package/dist/components/messages/GroupRenderer.js.map +0 -7
- package/dist/components/messages/NestedTasksPreview.js +0 -24
- package/dist/components/messages/NestedTasksPreview.js.map +0 -7
- package/dist/components/messages/ParallelTasksGroupView.js +0 -101
- package/dist/components/messages/ParallelTasksGroupView.js.map +0 -7
- package/dist/components/messages/TaskInModuleView.js +0 -218
- package/dist/components/messages/TaskInModuleView.js.map +0 -7
- package/dist/components/messages/TaskOutputContent.js +0 -56
- package/dist/components/messages/TaskOutputContent.js.map +0 -7
- package/dist/components/messages/TaskProgressMessage.js +0 -11
- package/dist/components/messages/TaskProgressMessage.js.map +0 -7
- package/dist/components/messages/TaskToolMessage.js +0 -39
- package/dist/components/messages/TaskToolMessage.js.map +0 -7
- package/dist/components/messages/UserBashInputMessage.js +0 -18
- package/dist/components/messages/UserBashInputMessage.js.map +0 -7
- package/dist/components/messages/UserCommandMessage.js +0 -20
- package/dist/components/messages/UserCommandMessage.js.map +0 -7
- package/dist/components/messages/UserGuidanceMessage.js +0 -26
- package/dist/components/messages/UserGuidanceMessage.js.map +0 -7
- package/dist/components/messages/UserKodingInputMessage.js +0 -18
- package/dist/components/messages/UserKodingInputMessage.js.map +0 -7
- package/dist/components/messages/UserPromptMessage.js +0 -26
- package/dist/components/messages/UserPromptMessage.js.map +0 -7
- package/dist/components/messages/UserTeamNotificationMessage.js +0 -91
- package/dist/components/messages/UserTeamNotificationMessage.js.map +0 -7
- package/dist/components/messages/UserTextMessage.js +0 -33
- package/dist/components/messages/UserTextMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +0 -11
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +0 -15
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +0 -27
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -64
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -33
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/utils.js +0 -50
- package/dist/components/messages/UserToolResultMessage/utils.js.map +0 -7
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -112
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FallbackPermissionRequest.js +0 -131
- package/dist/components/permissions/FallbackPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -159
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +0 -58
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +0 -7
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -153
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -70
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +0 -7
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -212
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +0 -7
- package/dist/components/permissions/PermissionRequest.js +0 -74
- package/dist/components/permissions/PermissionRequest.js.map +0 -7
- package/dist/components/permissions/PermissionRequestTitle.js +0 -52
- package/dist/components/permissions/PermissionRequestTitle.js.map +0 -7
- package/dist/components/permissions/PlanApprovalRequest.js +0 -164
- package/dist/components/permissions/PlanApprovalRequest.js.map +0 -7
- package/dist/components/permissions/hooks.js +0 -23
- package/dist/components/permissions/hooks.js.map +0 -7
- package/dist/components/permissions/toolUseOptions.js +0 -46
- package/dist/components/permissions/toolUseOptions.js.map +0 -7
- package/dist/components/permissions/utils.js +0 -21
- package/dist/components/permissions/utils.js.map +0 -7
- package/dist/constants/agentTeams.js +0 -17
- package/dist/constants/agentTeams.js.map +0 -7
- package/dist/constants/claude-asterisk-ascii-art.js +0 -242
- package/dist/constants/claude-asterisk-ascii-art.js.map +0 -7
- package/dist/constants/colors.js +0 -192
- package/dist/constants/colors.js.map +0 -7
- package/dist/constants/compressionPrompts.js +0 -73
- package/dist/constants/compressionPrompts.js.map +0 -7
- package/dist/constants/figures.js +0 -6
- package/dist/constants/figures.js.map +0 -7
- package/dist/constants/formatRules.js +0 -102
- package/dist/constants/formatRules.js.map +0 -7
- package/dist/constants/macros.js +0 -12
- package/dist/constants/macros.js.map +0 -7
- package/dist/constants/modelCapabilities.js +0 -239
- package/dist/constants/modelCapabilities.js.map +0 -7
- package/dist/constants/models.js +0 -1034
- package/dist/constants/models.js.map +0 -7
- package/dist/constants/oauth.js +0 -18
- package/dist/constants/oauth.js.map +0 -7
- package/dist/constants/product.js +0 -28
- package/dist/constants/product.js.map +0 -7
- package/dist/constants/prompts/agentPrompt.js +0 -31
- package/dist/constants/prompts/agentPrompt.js.map +0 -7
- package/dist/constants/prompts/autoMemory.js +0 -39
- package/dist/constants/prompts/autoMemory.js.map +0 -7
- package/dist/constants/prompts/codeConventions.js +0 -15
- package/dist/constants/prompts/codeConventions.js.map +0 -7
- package/dist/constants/prompts/doingTasks.js +0 -34
- package/dist/constants/prompts/doingTasks.js.map +0 -7
- package/dist/constants/prompts/envInfo.js +0 -16
- package/dist/constants/prompts/envInfo.js.map +0 -7
- package/dist/constants/prompts/executingWithCare.js +0 -17
- package/dist/constants/prompts/executingWithCare.js.map +0 -7
- package/dist/constants/prompts/identity.js +0 -10
- package/dist/constants/prompts/identity.js.map +0 -7
- package/dist/constants/prompts/index.js +0 -100
- package/dist/constants/prompts/index.js.map +0 -7
- package/dist/constants/prompts/taskManagement.js +0 -19
- package/dist/constants/prompts/taskManagement.js.map +0 -7
- package/dist/constants/prompts/teamOverlays.js +0 -50
- package/dist/constants/prompts/teamOverlays.js.map +0 -7
- package/dist/constants/prompts/toneAndStyle.js +0 -37
- package/dist/constants/prompts/toneAndStyle.js.map +0 -7
- package/dist/constants/prompts/toolUsagePolicy.js +0 -23
- package/dist/constants/prompts/toolUsagePolicy.js.map +0 -7
- package/dist/constants/prompts.js +0 -13
- package/dist/constants/prompts.js.map +0 -7
- package/dist/constants/providerRegistry.js +0 -235
- package/dist/constants/providerRegistry.js.map +0 -7
- package/dist/constants/providers.js +0 -35
- package/dist/constants/providers.js.map +0 -7
- package/dist/constants/releaseNotes.js +0 -9
- package/dist/constants/releaseNotes.js.map +0 -7
- package/dist/constants/symbols.js +0 -108
- package/dist/constants/symbols.js.map +0 -7
- package/dist/constants/timing.js +0 -39
- package/dist/constants/timing.js.map +0 -7
- package/dist/constants/toolInputExamples.js +0 -88
- package/dist/constants/toolInputExamples.js.map +0 -7
- package/dist/context/PermissionContext.js +0 -110
- package/dist/context/PermissionContext.js.map +0 -7
- package/dist/context.js +0 -367
- package/dist/context.js.map +0 -7
- package/dist/core/backupHook.js +0 -29
- package/dist/core/backupHook.js.map +0 -7
- package/dist/core/backupManager.js +0 -321
- package/dist/core/backupManager.js.map +0 -7
- package/dist/core/config/defaults.js +0 -93
- package/dist/core/config/defaults.js.map +0 -7
- package/dist/core/config/index.js +0 -111
- package/dist/core/config/index.js.map +0 -7
- package/dist/core/config/loader.js +0 -221
- package/dist/core/config/loader.js.map +0 -7
- package/dist/core/config/migrations.js +0 -128
- package/dist/core/config/migrations.js.map +0 -7
- package/dist/core/config/schema.js +0 -196
- package/dist/core/config/schema.js.map +0 -7
- package/dist/core/costTracker.js +0 -131
- package/dist/core/costTracker.js.map +0 -7
- package/dist/core/gitAutoCommit.js +0 -287
- package/dist/core/gitAutoCommit.js.map +0 -7
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -7
- package/dist/core/operationTracker.js +0 -212
- package/dist/core/operationTracker.js.map +0 -7
- package/dist/core/permissions/auditLog.js +0 -204
- package/dist/core/permissions/auditLog.js.map +0 -7
- package/dist/core/permissions/engine/index.js +0 -3
- package/dist/core/permissions/engine/index.js.map +0 -7
- package/dist/core/permissions/engine/permissionEngine.js +0 -106
- package/dist/core/permissions/engine/permissionEngine.js.map +0 -7
- package/dist/core/permissions/engine/types.js +0 -1
- package/dist/core/permissions/engine/types.js.map +0 -7
- package/dist/core/permissions/index.js +0 -84
- package/dist/core/permissions/index.js.map +0 -7
- package/dist/core/permissions/ruleEngine.js +0 -259
- package/dist/core/permissions/ruleEngine.js.map +0 -7
- package/dist/core/permissions/rules/allowedToolsRule.js +0 -62
- package/dist/core/permissions/rules/allowedToolsRule.js.map +0 -7
- package/dist/core/permissions/rules/autoEscalationRule.js +0 -296
- package/dist/core/permissions/rules/autoEscalationRule.js.map +0 -7
- package/dist/core/permissions/rules/index.js +0 -46
- package/dist/core/permissions/rules/index.js.map +0 -7
- package/dist/core/permissions/rules/planModeRule.js +0 -55
- package/dist/core/permissions/rules/planModeRule.js.map +0 -7
- package/dist/core/permissions/rules/projectBoundaryRule.js +0 -173
- package/dist/core/permissions/rules/projectBoundaryRule.js.map +0 -7
- package/dist/core/permissions/rules/safeModeRule.js +0 -65
- package/dist/core/permissions/rules/safeModeRule.js.map +0 -7
- package/dist/core/permissions/rules/sensitivePathsRule.js +0 -345
- package/dist/core/permissions/rules/sensitivePathsRule.js.map +0 -7
- package/dist/core/permissions/types.js +0 -127
- package/dist/core/permissions/types.js.map +0 -7
- package/dist/core/tokenStats.js +0 -9
- package/dist/core/tokenStats.js.map +0 -7
- package/dist/core/tokenStatsManager.js +0 -354
- package/dist/core/tokenStatsManager.js.map +0 -7
- package/dist/core/tools/executor.js +0 -143
- package/dist/core/tools/executor.js.map +0 -7
- package/dist/core/tools/index.js +0 -15
- package/dist/core/tools/index.js.map +0 -7
- package/dist/core/tools/registry.js +0 -183
- package/dist/core/tools/registry.js.map +0 -7
- package/dist/core/tools/types.js +0 -1
- package/dist/core/tools/types.js.map +0 -7
- package/dist/cost-tracker.js +0 -68
- package/dist/cost-tracker.js.map +0 -7
- package/dist/engine/AgentEngine.js +0 -902
- package/dist/engine/AgentEngine.js.map +0 -7
- package/dist/engine/EngineRegistry.js +0 -89
- package/dist/engine/EngineRegistry.js.map +0 -7
- package/dist/engine/foregroundAdapter.js +0 -191
- package/dist/engine/foregroundAdapter.js.map +0 -7
- package/dist/engine/index.js +0 -15
- package/dist/engine/index.js.map +0 -7
- package/dist/engine/types.js +0 -1
- package/dist/engine/types.js.map +0 -7
- package/dist/entrypoints/bootstrap.js +0 -56
- package/dist/entrypoints/bootstrap.js.map +0 -7
- package/dist/entrypoints/cli.js +0 -1721
- package/dist/entrypoints/cli.js.map +0 -7
- package/dist/entrypoints/mcp.js +0 -153
- package/dist/entrypoints/mcp.js.map +0 -7
- package/dist/history.js +0 -96
- package/dist/history.js.map +0 -7
- package/dist/hooks/useAgentEngine.js +0 -129
- package/dist/hooks/useAgentEngine.js.map +0 -7
- package/dist/hooks/useAgentTokenStats.js +0 -56
- package/dist/hooks/useAgentTokenStats.js.map +0 -7
- package/dist/hooks/useAgentTranscripts.js +0 -141
- package/dist/hooks/useAgentTranscripts.js.map +0 -7
- package/dist/hooks/useAnimationSync.js +0 -53
- package/dist/hooks/useAnimationSync.js.map +0 -7
- package/dist/hooks/useApiKeyVerification.js +0 -12
- package/dist/hooks/useApiKeyVerification.js.map +0 -7
- package/dist/hooks/useArrowKeyHistory.js +0 -52
- package/dist/hooks/useArrowKeyHistory.js.map +0 -7
- package/dist/hooks/useAskUser.js +0 -24
- package/dist/hooks/useAskUser.js.map +0 -7
- package/dist/hooks/useBackgroundShells.js +0 -29
- package/dist/hooks/useBackgroundShells.js.map +0 -7
- package/dist/hooks/useCanUseTool.js +0 -134
- package/dist/hooks/useCanUseTool.js.map +0 -7
- package/dist/hooks/useDeferredLoading.js +0 -67
- package/dist/hooks/useDeferredLoading.js.map +0 -7
- package/dist/hooks/useDoublePress.js +0 -31
- package/dist/hooks/useDoublePress.js.map +0 -7
- package/dist/hooks/useExitOnCtrlCD.js +0 -30
- package/dist/hooks/useExitOnCtrlCD.js.map +0 -7
- package/dist/hooks/useHistorySearch.js +0 -62
- package/dist/hooks/useHistorySearch.js.map +0 -7
- package/dist/hooks/useHookStatus.js +0 -40
- package/dist/hooks/useHookStatus.js.map +0 -7
- package/dist/hooks/useIdleNotifications.js +0 -66
- package/dist/hooks/useIdleNotifications.js.map +0 -7
- package/dist/hooks/useInterval.js +0 -18
- package/dist/hooks/useInterval.js.map +0 -7
- package/dist/hooks/useLogMessages.js +0 -41
- package/dist/hooks/useLogMessages.js.map +0 -7
- package/dist/hooks/useLogStartupTime.js +0 -10
- package/dist/hooks/useLogStartupTime.js.map +0 -7
- package/dist/hooks/useMessageGroups.js +0 -43
- package/dist/hooks/useMessageGroups.js.map +0 -7
- package/dist/hooks/useNotifyAfterTimeout.js +0 -42
- package/dist/hooks/useNotifyAfterTimeout.js.map +0 -7
- package/dist/hooks/usePermissionRequestLogging.js +0 -23
- package/dist/hooks/usePermissionRequestLogging.js.map +0 -7
- package/dist/hooks/useSessionTracking.js +0 -57
- package/dist/hooks/useSessionTracking.js.map +0 -7
- package/dist/hooks/useTeamMembers.js +0 -51
- package/dist/hooks/useTeamMembers.js.map +0 -7
- package/dist/hooks/useTerminalSize.js +0 -115
- package/dist/hooks/useTerminalSize.js.map +0 -7
- package/dist/hooks/useTextInput.js +0 -253
- package/dist/hooks/useTextInput.js.map +0 -7
- package/dist/hooks/useUnifiedCompletion.js +0 -1098
- package/dist/hooks/useUnifiedCompletion.js.map +0 -7
- package/dist/i18n/index.js +0 -109
- package/dist/i18n/index.js.map +0 -7
- package/dist/i18n/locales/en.js +0 -993
- package/dist/i18n/locales/en.js.map +0 -7
- package/dist/i18n/locales/index.js +0 -7
- package/dist/i18n/locales/index.js.map +0 -7
- package/dist/i18n/locales/zh-CN.js +0 -993
- package/dist/i18n/locales/zh-CN.js.map +0 -7
- package/dist/i18n/types.js +0 -8
- package/dist/i18n/types.js.map +0 -7
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -7
- package/dist/messages.js +0 -68
- package/dist/messages.js.map +0 -7
- package/dist/package.json +0 -4
- package/dist/permissions.js +0 -536
- package/dist/permissions.js.map +0 -7
- package/dist/query.js +0 -851
- package/dist/query.js.map +0 -7
- package/dist/screens/LogList.js +0 -55
- package/dist/screens/LogList.js.map +0 -7
- package/dist/screens/REPL.js +0 -1240
- package/dist/screens/REPL.js.map +0 -7
- package/dist/screens/ResumeConversation.js +0 -244
- package/dist/screens/ResumeConversation.js.map +0 -7
- package/dist/services/adapters/base.js +0 -29
- package/dist/services/adapters/base.js.map +0 -7
- package/dist/services/adapters/chatCompletions.js +0 -71
- package/dist/services/adapters/chatCompletions.js.map +0 -7
- package/dist/services/adapters/messageNormalizer.js +0 -354
- package/dist/services/adapters/messageNormalizer.js.map +0 -7
- package/dist/services/adapters/responsesAPI.js +0 -137
- package/dist/services/adapters/responsesAPI.js.map +0 -7
- package/dist/services/agentTeams/backends/headless.js +0 -108
- package/dist/services/agentTeams/backends/headless.js.map +0 -7
- package/dist/services/agentTeams/backends/inProcess.js +0 -102
- package/dist/services/agentTeams/backends/inProcess.js.map +0 -7
- package/dist/services/agentTeams/backends/resolver.js +0 -18
- package/dist/services/agentTeams/backends/resolver.js.map +0 -7
- package/dist/services/agentTeams/backends/tmux.js +0 -168
- package/dist/services/agentTeams/backends/tmux.js.map +0 -7
- package/dist/services/agentTeams/backends/types.js +0 -1
- package/dist/services/agentTeams/backends/types.js.map +0 -7
- package/dist/services/agentTeams/heartbeat.js +0 -88
- package/dist/services/agentTeams/heartbeat.js.map +0 -7
- package/dist/services/agentTeams/index.js +0 -75
- package/dist/services/agentTeams/index.js.map +0 -7
- package/dist/services/agentTeams/injectionChannel.js +0 -105
- package/dist/services/agentTeams/injectionChannel.js.map +0 -7
- package/dist/services/agentTeams/mailbox.js +0 -494
- package/dist/services/agentTeams/mailbox.js.map +0 -7
- package/dist/services/agentTeams/messageFormatter.js +0 -80
- package/dist/services/agentTeams/messageFormatter.js.map +0 -7
- package/dist/services/agentTeams/permissionDelegation.js +0 -71
- package/dist/services/agentTeams/permissionDelegation.js.map +0 -7
- package/dist/services/agentTeams/teamEvents.js +0 -45
- package/dist/services/agentTeams/teamEvents.js.map +0 -7
- package/dist/services/agentTeams/teamManager.js +0 -366
- package/dist/services/agentTeams/teamManager.js.map +0 -7
- package/dist/services/agentTeams/teamTaskStore.js +0 -343
- package/dist/services/agentTeams/teamTaskStore.js.map +0 -7
- package/dist/services/agentTeams/teammateSpawner.js +0 -161
- package/dist/services/agentTeams/teammateSpawner.js.map +0 -7
- package/dist/services/checkpointManager.js +0 -399
- package/dist/services/checkpointManager.js.map +0 -7
- package/dist/services/claude.js +0 -41
- package/dist/services/claude.js.map +0 -7
- package/dist/services/compressionService.js +0 -259
- package/dist/services/compressionService.js.map +0 -7
- package/dist/services/contextMonitor.js +0 -162
- package/dist/services/contextMonitor.js.map +0 -7
- package/dist/services/customCommands.js +0 -489
- package/dist/services/customCommands.js.map +0 -7
- package/dist/services/fileFreshness.js +0 -275
- package/dist/services/fileFreshness.js.map +0 -7
- package/dist/services/gpt5ConnectionTest.js +0 -263
- package/dist/services/gpt5ConnectionTest.js.map +0 -7
- package/dist/services/hookExecutor.js +0 -771
- package/dist/services/hookExecutor.js.map +0 -7
- package/dist/services/intelligentCompactor.js +0 -281
- package/dist/services/intelligentCompactor.js.map +0 -7
- package/dist/services/llm/anthropicProvider.js +0 -804
- package/dist/services/llm/anthropicProvider.js.map +0 -7
- package/dist/services/llm/dispatch.js +0 -237
- package/dist/services/llm/dispatch.js.map +0 -7
- package/dist/services/llm/index.js +0 -44
- package/dist/services/llm/index.js.map +0 -7
- package/dist/services/llm/mintoContext.js +0 -69
- package/dist/services/llm/mintoContext.js.map +0 -7
- package/dist/services/llm/openaiProvider.js +0 -601
- package/dist/services/llm/openaiProvider.js.map +0 -7
- package/dist/services/llm/types.js +0 -231
- package/dist/services/llm/types.js.map +0 -7
- package/dist/services/lspConfig.js +0 -109
- package/dist/services/lspConfig.js.map +0 -7
- package/dist/services/mainAgentCompressor.js +0 -84
- package/dist/services/mainAgentCompressor.js.map +0 -7
- package/dist/services/mcpClient.js +0 -997
- package/dist/services/mcpClient.js.map +0 -7
- package/dist/services/mcpServerApproval.js +0 -55
- package/dist/services/mcpServerApproval.js.map +0 -7
- package/dist/services/mentionProcessor.js +0 -214
- package/dist/services/mentionProcessor.js.map +0 -7
- package/dist/services/mintoAuth.js +0 -299
- package/dist/services/mintoAuth.js.map +0 -7
- package/dist/services/modelAdapterFactory.js +0 -47
- package/dist/services/modelAdapterFactory.js.map +0 -7
- package/dist/services/modelOrchestrator.js +0 -310
- package/dist/services/modelOrchestrator.js.map +0 -7
- package/dist/services/notifier.js +0 -49
- package/dist/services/notifier.js.map +0 -7
- package/dist/services/oauth.js +0 -249
- package/dist/services/oauth.js.map +0 -7
- package/dist/services/openai.js +0 -1120
- package/dist/services/openai.js.map +0 -7
- package/dist/services/outputStyles.js +0 -219
- package/dist/services/outputStyles.js.map +0 -7
- package/dist/services/plugins/index.js +0 -5
- package/dist/services/plugins/index.js.map +0 -7
- package/dist/services/plugins/lspServers.js +0 -188
- package/dist/services/plugins/lspServers.js.map +0 -7
- package/dist/services/plugins/pluginRuntime.js +0 -236
- package/dist/services/plugins/pluginRuntime.js.map +0 -7
- package/dist/services/plugins/pluginValidation.js +0 -228
- package/dist/services/plugins/pluginValidation.js.map +0 -7
- package/dist/services/plugins/skillMarketplace.js +0 -567
- package/dist/services/plugins/skillMarketplace.js.map +0 -7
- package/dist/services/responseStateManager.js +0 -102
- package/dist/services/responseStateManager.js.map +0 -7
- package/dist/services/sandbox/filesystemBoundary.js +0 -341
- package/dist/services/sandbox/filesystemBoundary.js.map +0 -7
- package/dist/services/sandbox/index.js +0 -14
- package/dist/services/sandbox/index.js.map +0 -7
- package/dist/services/sandbox/networkProxy.js +0 -293
- package/dist/services/sandbox/networkProxy.js.map +0 -7
- package/dist/services/sandbox/sandboxController.js +0 -582
- package/dist/services/sandbox/sandboxController.js.map +0 -7
- package/dist/services/sandbox/types.js +0 -50
- package/dist/services/sandbox/types.js.map +0 -7
- package/dist/services/sentry.js +0 -9
- package/dist/services/sentry.js.map +0 -7
- package/dist/services/sessionMemory.js +0 -279
- package/dist/services/sessionMemory.js.map +0 -7
- package/dist/services/sessionMemoryInjector.js +0 -77
- package/dist/services/sessionMemoryInjector.js.map +0 -7
- package/dist/services/subagentAbortManager.js +0 -95
- package/dist/services/subagentAbortManager.js.map +0 -7
- package/dist/services/subagentCompressor.js +0 -146
- package/dist/services/subagentCompressor.js.map +0 -7
- package/dist/services/systemReminder.js +0 -815
- package/dist/services/systemReminder.js.map +0 -7
- package/dist/services/taskRouter.js +0 -324
- package/dist/services/taskRouter.js.map +0 -7
- package/dist/services/taskStore.js +0 -415
- package/dist/services/taskStore.js.map +0 -7
- package/dist/services/topicDetector.js +0 -169
- package/dist/services/topicDetector.js.map +0 -7
- package/dist/services/vcr.js +0 -133
- package/dist/services/vcr.js.map +0 -7
- package/dist/tools/ArchitectTool/ArchitectTool.js +0 -126
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +0 -7
- package/dist/tools/ArchitectTool/prompt.js +0 -18
- package/dist/tools/ArchitectTool/prompt.js.map +0 -7
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +0 -420
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js +0 -158
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/index.js +0 -5
- package/dist/tools/AskUserQuestionTool/index.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/prompt.js +0 -167
- package/dist/tools/AskUserQuestionTool/prompt.js.map +0 -7
- package/dist/tools/BaseTool.js +0 -72
- package/dist/tools/BaseTool.js.map +0 -7
- package/dist/tools/BashOutputTool/BashOutputTool.js +0 -120
- package/dist/tools/BashOutputTool/BashOutputTool.js.map +0 -7
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +0 -14
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +0 -7
- package/dist/tools/BashOutputTool/prompt.js +0 -13
- package/dist/tools/BashOutputTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/BashTool.js +0 -353
- package/dist/tools/BashTool/BashTool.js.map +0 -7
- package/dist/tools/BashTool/BashToolResultMessage.js +0 -24
- package/dist/tools/BashTool/BashToolResultMessage.js.map +0 -7
- package/dist/tools/BashTool/OutputLine.js +0 -84
- package/dist/tools/BashTool/OutputLine.js.map +0 -7
- package/dist/tools/BashTool/prompt.js +0 -496
- package/dist/tools/BashTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/utils.js +0 -89
- package/dist/tools/BashTool/utils.js.map +0 -7
- package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js +0 -121
- package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js.map +0 -7
- package/dist/tools/EnterWorktreeTool/prompt.js +0 -22
- package/dist/tools/EnterWorktreeTool/prompt.js.map +0 -7
- package/dist/tools/FileEditTool/FileEditTool.js +0 -278
- package/dist/tools/FileEditTool/FileEditTool.js.map +0 -7
- package/dist/tools/FileEditTool/prompt.js +0 -56
- package/dist/tools/FileEditTool/prompt.js.map +0 -7
- package/dist/tools/FileEditTool/utils.js +0 -48
- package/dist/tools/FileEditTool/utils.js.map +0 -7
- package/dist/tools/FileReadTool/FileReadTool.js +0 -427
- package/dist/tools/FileReadTool/FileReadTool.js.map +0 -7
- package/dist/tools/FileReadTool/prompt.js +0 -24
- package/dist/tools/FileReadTool/prompt.js.map +0 -7
- package/dist/tools/FileWriteTool/FileWriteTool.js +0 -211
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +0 -7
- package/dist/tools/FileWriteTool/prompt.js +0 -21
- package/dist/tools/FileWriteTool/prompt.js.map +0 -7
- package/dist/tools/GlobTool/GlobTool.js +0 -100
- package/dist/tools/GlobTool/GlobTool.js.map +0 -7
- package/dist/tools/GlobTool/prompt.js +0 -23
- package/dist/tools/GlobTool/prompt.js.map +0 -7
- package/dist/tools/GrepTool/GrepTool.js +0 -417
- package/dist/tools/GrepTool/GrepTool.js.map +0 -7
- package/dist/tools/GrepTool/prompt.js +0 -22
- package/dist/tools/GrepTool/prompt.js.map +0 -7
- package/dist/tools/KillShellTool/KillShellTool.js +0 -92
- package/dist/tools/KillShellTool/KillShellTool.js.map +0 -7
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js +0 -14
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +0 -7
- package/dist/tools/KillShellTool/prompt.js +0 -12
- package/dist/tools/KillShellTool/prompt.js.map +0 -7
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +0 -109
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +0 -7
- package/dist/tools/ListMcpResourcesTool/prompt.js +0 -19
- package/dist/tools/ListMcpResourcesTool/prompt.js.map +0 -7
- package/dist/tools/LspTool/LspTool.js +0 -673
- package/dist/tools/LspTool/LspTool.js.map +0 -7
- package/dist/tools/LspTool/prompt.js +0 -27
- package/dist/tools/LspTool/prompt.js.map +0 -7
- package/dist/tools/MCPSearchTool/MCPSearchTool.js +0 -172
- package/dist/tools/MCPSearchTool/MCPSearchTool.js.map +0 -7
- package/dist/tools/MCPSearchTool/prompt.js +0 -77
- package/dist/tools/MCPSearchTool/prompt.js.map +0 -7
- package/dist/tools/MCPTool/MCPTool.js +0 -97
- package/dist/tools/MCPTool/MCPTool.js.map +0 -7
- package/dist/tools/MCPTool/prompt.js +0 -7
- package/dist/tools/MCPTool/prompt.js.map +0 -7
- package/dist/tools/MemoryReadTool/MemoryReadTool.js +0 -117
- package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +0 -7
- package/dist/tools/MemoryReadTool/prompt.js +0 -7
- package/dist/tools/MemoryReadTool/prompt.js.map +0 -7
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +0 -78
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +0 -7
- package/dist/tools/MemoryWriteTool/prompt.js +0 -7
- package/dist/tools/MemoryWriteTool/prompt.js.map +0 -7
- package/dist/tools/MultiEditTool/MultiEditTool.js +0 -328
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +0 -7
- package/dist/tools/MultiEditTool/prompt.js +0 -47
- package/dist/tools/MultiEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +0 -257
- package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +0 -7
- package/dist/tools/NotebookEditTool/prompt.js +0 -7
- package/dist/tools/NotebookEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookReadTool/NotebookReadTool.js +0 -218
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +0 -7
- package/dist/tools/NotebookReadTool/prompt.js +0 -7
- package/dist/tools/NotebookReadTool/prompt.js.map +0 -7
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js +0 -85
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js +0 -164
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/prompt.js +0 -43
- package/dist/tools/PlanModeTool/prompt.js.map +0 -7
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +0 -130
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js.map +0 -7
- package/dist/tools/ReadMcpResourceTool/prompt.js +0 -17
- package/dist/tools/ReadMcpResourceTool/prompt.js.map +0 -7
- package/dist/tools/SendMessageTool/SendMessageTool.js +0 -341
- package/dist/tools/SendMessageTool/SendMessageTool.js.map +0 -7
- package/dist/tools/SendMessageTool/prompt.js +0 -44
- package/dist/tools/SendMessageTool/prompt.js.map +0 -7
- package/dist/tools/SkillTool/SkillTool.js +0 -227
- package/dist/tools/SkillTool/SkillTool.js.map +0 -7
- package/dist/tools/SkillTool/prompt.js +0 -81
- package/dist/tools/SkillTool/prompt.js.map +0 -7
- package/dist/tools/SlashCommandTool/SlashCommandTool.js +0 -416
- package/dist/tools/SlashCommandTool/SlashCommandTool.js.map +0 -7
- package/dist/tools/SlashCommandTool/prompt.js +0 -35
- package/dist/tools/SlashCommandTool/prompt.js.map +0 -7
- package/dist/tools/TaskCreateTool/TaskCreateTool.js +0 -102
- package/dist/tools/TaskCreateTool/TaskCreateTool.js.map +0 -7
- package/dist/tools/TaskCreateTool/prompt.js +0 -58
- package/dist/tools/TaskCreateTool/prompt.js.map +0 -7
- package/dist/tools/TaskGetTool/TaskGetTool.js +0 -115
- package/dist/tools/TaskGetTool/TaskGetTool.js.map +0 -7
- package/dist/tools/TaskGetTool/prompt.js +0 -28
- package/dist/tools/TaskGetTool/prompt.js.map +0 -7
- package/dist/tools/TaskListTool/TaskListTool.js +0 -102
- package/dist/tools/TaskListTool/TaskListTool.js.map +0 -7
- package/dist/tools/TaskListTool/prompt.js +0 -42
- package/dist/tools/TaskListTool/prompt.js.map +0 -7
- package/dist/tools/TaskOutputTool/TaskOutputTool.js +0 -190
- package/dist/tools/TaskOutputTool/TaskOutputTool.js.map +0 -7
- package/dist/tools/TaskOutputTool/prompt.js +0 -16
- package/dist/tools/TaskOutputTool/prompt.js.map +0 -7
- package/dist/tools/TaskStopTool/TaskStopTool.js +0 -150
- package/dist/tools/TaskStopTool/TaskStopTool.js.map +0 -7
- package/dist/tools/TaskStopTool/prompt.js +0 -15
- package/dist/tools/TaskStopTool/prompt.js.map +0 -7
- package/dist/tools/TaskTool/TaskTool.js +0 -1525
- package/dist/tools/TaskTool/TaskTool.js.map +0 -7
- package/dist/tools/TaskTool/constants.js +0 -11
- package/dist/tools/TaskTool/constants.js.map +0 -7
- package/dist/tools/TaskTool/prompt.js +0 -121
- package/dist/tools/TaskTool/prompt.js.map +0 -7
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js +0 -148
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js.map +0 -7
- package/dist/tools/TaskUpdateTool/prompt.js +0 -81
- package/dist/tools/TaskUpdateTool/prompt.js.map +0 -7
- package/dist/tools/TeamCreateTool/TeamCreateTool.js +0 -129
- package/dist/tools/TeamCreateTool/TeamCreateTool.js.map +0 -7
- package/dist/tools/TeamCreateTool/prompt.js +0 -58
- package/dist/tools/TeamCreateTool/prompt.js.map +0 -7
- package/dist/tools/TeamDeleteTool/TeamDeleteTool.js +0 -151
- package/dist/tools/TeamDeleteTool/TeamDeleteTool.js.map +0 -7
- package/dist/tools/TeamDeleteTool/prompt.js +0 -16
- package/dist/tools/TeamDeleteTool/prompt.js.map +0 -7
- package/dist/tools/ThinkTool/ThinkTool.js +0 -45
- package/dist/tools/ThinkTool/ThinkTool.js.map +0 -7
- package/dist/tools/ThinkTool/prompt.js +0 -16
- package/dist/tools/ThinkTool/prompt.js.map +0 -7
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +0 -232
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +0 -7
- package/dist/tools/TodoWriteTool/prompt.js +0 -87
- package/dist/tools/TodoWriteTool/prompt.js.map +0 -7
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +0 -234
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +0 -7
- package/dist/tools/URLFetcherTool/cache.js +0 -95
- package/dist/tools/URLFetcherTool/cache.js.map +0 -7
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js +0 -44
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +0 -7
- package/dist/tools/URLFetcherTool/prompt.js +0 -28
- package/dist/tools/URLFetcherTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/WebSearchTool.js +0 -92
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +0 -7
- package/dist/tools/WebSearchTool/prompt.js +0 -24
- package/dist/tools/WebSearchTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/searchProviders.js +0 -58
- package/dist/tools/WebSearchTool/searchProviders.js.map +0 -7
- package/dist/tools/lsTool/lsTool.js +0 -201
- package/dist/tools/lsTool/lsTool.js.map +0 -7
- package/dist/tools/lsTool/prompt.js +0 -5
- package/dist/tools/lsTool/prompt.js.map +0 -7
- package/dist/tools.js +0 -207
- package/dist/tools.js.map +0 -7
- package/dist/types/PermissionMode.js +0 -160
- package/dist/types/PermissionMode.js.map +0 -7
- package/dist/types/RequestContext.js +0 -47
- package/dist/types/RequestContext.js.map +0 -7
- package/dist/types/agentTeams.js +0 -1
- package/dist/types/agentTeams.js.map +0 -7
- package/dist/types/askUserQuestion.js +0 -1
- package/dist/types/askUserQuestion.js.map +0 -7
- package/dist/types/common.d.js +0 -1
- package/dist/types/common.d.js.map +0 -7
- package/dist/types/conversation.js +0 -1
- package/dist/types/conversation.js.map +0 -7
- package/dist/types/core.js +0 -1
- package/dist/types/core.js.map +0 -7
- package/dist/types/hooks.js +0 -47
- package/dist/types/hooks.js.map +0 -7
- package/dist/types/interactionRound.js +0 -1
- package/dist/types/interactionRound.js.map +0 -7
- package/dist/types/logs.js +0 -1
- package/dist/types/logs.js.map +0 -7
- package/dist/types/marketplace.js +0 -107
- package/dist/types/marketplace.js.map +0 -7
- package/dist/types/messageGroup.js +0 -36
- package/dist/types/messageGroup.js.map +0 -7
- package/dist/types/modelCapabilities.js +0 -1
- package/dist/types/modelCapabilities.js.map +0 -7
- package/dist/types/notebook.js +0 -1
- package/dist/types/notebook.js.map +0 -7
- package/dist/types/plugin.js +0 -86
- package/dist/types/plugin.js.map +0 -7
- package/dist/types/subagent.js +0 -1
- package/dist/types/subagent.js.map +0 -7
- package/dist/types/thinking.js +0 -1
- package/dist/types/thinking.js.map +0 -7
- package/dist/utils/BackgroundShellManager.js +0 -378
- package/dist/utils/BackgroundShellManager.js.map +0 -7
- package/dist/utils/CircuitBreaker.js +0 -248
- package/dist/utils/CircuitBreaker.js.map +0 -7
- package/dist/utils/Cursor.js +0 -315
- package/dist/utils/Cursor.js.map +0 -7
- package/dist/utils/MessageBatchBuffer.js +0 -102
- package/dist/utils/MessageBatchBuffer.js.map +0 -7
- package/dist/utils/PersistentShell.js +0 -526
- package/dist/utils/PersistentShell.js.map +0 -7
- package/dist/utils/advancedFuzzyMatcher.js +0 -209
- package/dist/utils/advancedFuzzyMatcher.js.map +0 -7
- package/dist/utils/agentHookExecutor.js +0 -103
- package/dist/utils/agentHookExecutor.js.map +0 -7
- package/dist/utils/agentLoader.js +0 -655
- package/dist/utils/agentLoader.js.map +0 -7
- package/dist/utils/agentMemory.js +0 -134
- package/dist/utils/agentMemory.js.map +0 -7
- package/dist/utils/agentStorage.js +0 -59
- package/dist/utils/agentStorage.js.map +0 -7
- package/dist/utils/agentTranscripts.js +0 -641
- package/dist/utils/agentTranscripts.js.map +0 -7
- package/dist/utils/animationManager.js +0 -250
- package/dist/utils/animationManager.js.map +0 -7
- package/dist/utils/animationSync.js +0 -110
- package/dist/utils/animationSync.js.map +0 -7
- package/dist/utils/array.js +0 -7
- package/dist/utils/array.js.map +0 -7
- package/dist/utils/ask.js +0 -80
- package/dist/utils/ask.js.map +0 -7
- package/dist/utils/async.js +0 -167
- package/dist/utils/async.js.map +0 -7
- package/dist/utils/asyncFile.js +0 -215
- package/dist/utils/asyncFile.js.map +0 -7
- package/dist/utils/atomicWrite.js +0 -23
- package/dist/utils/atomicWrite.js.map +0 -7
- package/dist/utils/auth.js +0 -11
- package/dist/utils/auth.js.map +0 -7
- package/dist/utils/autoCompactCore.js +0 -203
- package/dist/utils/autoCompactCore.js.map +0 -7
- package/dist/utils/autoMemoryPaths.js +0 -89
- package/dist/utils/autoMemoryPaths.js.map +0 -7
- package/dist/utils/autoUpdater.js +0 -113
- package/dist/utils/autoUpdater.js.map +0 -7
- package/dist/utils/backgroundAgentManager.js +0 -231
- package/dist/utils/backgroundAgentManager.js.map +0 -7
- package/dist/utils/browser.js +0 -15
- package/dist/utils/browser.js.map +0 -7
- package/dist/utils/claudeCodeSync.js +0 -439
- package/dist/utils/claudeCodeSync.js.map +0 -7
- package/dist/utils/cleanup.js +0 -54
- package/dist/utils/cleanup.js.map +0 -7
- package/dist/utils/commands.js +0 -219
- package/dist/utils/commands.js.map +0 -7
- package/dist/utils/commonUnixCommands.js +0 -689
- package/dist/utils/commonUnixCommands.js.map +0 -7
- package/dist/utils/compressionMode.js +0 -47
- package/dist/utils/compressionMode.js.map +0 -7
- package/dist/utils/config.js +0 -716
- package/dist/utils/config.js.map +0 -7
- package/dist/utils/configPaths.js +0 -199
- package/dist/utils/configPaths.js.map +0 -7
- package/dist/utils/configSchema.js +0 -232
- package/dist/utils/configSchema.js.map +0 -7
- package/dist/utils/conversationRecovery.js +0 -54
- package/dist/utils/conversationRecovery.js.map +0 -7
- package/dist/utils/credentials/CredentialStore.js +0 -1
- package/dist/utils/credentials/CredentialStore.js.map +0 -7
- package/dist/utils/credentials/EncryptedFileStore.js +0 -157
- package/dist/utils/credentials/EncryptedFileStore.js.map +0 -7
- package/dist/utils/credentials/index.js +0 -51
- package/dist/utils/credentials/index.js.map +0 -7
- package/dist/utils/credentials/migration.js +0 -82
- package/dist/utils/credentials/migration.js.map +0 -7
- package/dist/utils/debugLogger.js +0 -889
- package/dist/utils/debugLogger.js.map +0 -7
- package/dist/utils/diff.js +0 -32
- package/dist/utils/diff.js.map +0 -7
- package/dist/utils/dualPath.js +0 -24
- package/dist/utils/dualPath.js.map +0 -7
- package/dist/utils/env.js +0 -45
- package/dist/utils/env.js.map +0 -7
- package/dist/utils/envConfig.js +0 -116
- package/dist/utils/envConfig.js.map +0 -7
- package/dist/utils/errorHandling.js +0 -89
- package/dist/utils/errorHandling.js.map +0 -7
- package/dist/utils/errors.js +0 -23
- package/dist/utils/errors.js.map +0 -7
- package/dist/utils/execFileNoThrow.js +0 -45
- package/dist/utils/execFileNoThrow.js.map +0 -7
- package/dist/utils/exit.js +0 -132
- package/dist/utils/exit.js.map +0 -7
- package/dist/utils/expertChatStorage.js +0 -78
- package/dist/utils/expertChatStorage.js.map +0 -7
- package/dist/utils/externalEditor.js +0 -155
- package/dist/utils/externalEditor.js.map +0 -7
- package/dist/utils/file.js +0 -282
- package/dist/utils/file.js.map +0 -7
- package/dist/utils/fileLock.js +0 -67
- package/dist/utils/fileLock.js.map +0 -7
- package/dist/utils/fileRecoveryCore.js +0 -41
- package/dist/utils/fileRecoveryCore.js.map +0 -7
- package/dist/utils/format.js +0 -119
- package/dist/utils/format.js.map +0 -7
- package/dist/utils/fuzzyMatcher.js +0 -258
- package/dist/utils/fuzzyMatcher.js.map +0 -7
- package/dist/utils/generators.js +0 -116
- package/dist/utils/generators.js.map +0 -7
- package/dist/utils/git.js +0 -83
- package/dist/utils/git.js.map +0 -7
- package/dist/utils/globalErrorHandler.js +0 -58
- package/dist/utils/globalErrorHandler.js.map +0 -7
- package/dist/utils/gpt5.js +0 -146
- package/dist/utils/gpt5.js.map +0 -7
- package/dist/utils/groupHandlers/index.js +0 -8
- package/dist/utils/groupHandlers/index.js.map +0 -7
- package/dist/utils/groupHandlers/parallelTasksHandler.js +0 -142
- package/dist/utils/groupHandlers/parallelTasksHandler.js.map +0 -7
- package/dist/utils/groupHandlers/taskHandler.js +0 -104
- package/dist/utils/groupHandlers/taskHandler.js.map +0 -7
- package/dist/utils/groupHandlers/types.js +0 -1
- package/dist/utils/groupHandlers/types.js.map +0 -7
- package/dist/utils/historyManager.js +0 -234
- package/dist/utils/historyManager.js.map +0 -7
- package/dist/utils/hookManager.js +0 -540
- package/dist/utils/hookManager.js.map +0 -7
- package/dist/utils/http.js +0 -7
- package/dist/utils/http.js.map +0 -7
- package/dist/utils/imagePaste.js +0 -29
- package/dist/utils/imagePaste.js.map +0 -7
- package/dist/utils/json.js +0 -16
- package/dist/utils/json.js.map +0 -7
- package/dist/utils/log.js +0 -333
- package/dist/utils/log.js.map +0 -7
- package/dist/utils/logRotation.js +0 -224
- package/dist/utils/logRotation.js.map +0 -7
- package/dist/utils/markdown.js +0 -464
- package/dist/utils/markdown.js.map +0 -7
- package/dist/utils/marketplaceManager.js +0 -545
- package/dist/utils/marketplaceManager.js.map +0 -7
- package/dist/utils/memSafety.js +0 -264
- package/dist/utils/memSafety.js.map +0 -7
- package/dist/utils/memoizeWithTTL.js +0 -25
- package/dist/utils/memoizeWithTTL.js.map +0 -7
- package/dist/utils/messageContextManager.js +0 -208
- package/dist/utils/messageContextManager.js.map +0 -7
- package/dist/utils/messageGroupManager.js +0 -274
- package/dist/utils/messageGroupManager.js.map +0 -7
- package/dist/utils/messages.js +0 -725
- package/dist/utils/messages.js.map +0 -7
- package/dist/utils/migration/index.js +0 -37
- package/dist/utils/migration/index.js.map +0 -7
- package/dist/utils/migration/migrateHistory.js +0 -273
- package/dist/utils/migration/migrateHistory.js.map +0 -7
- package/dist/utils/migration/migrateTodos.js +0 -323
- package/dist/utils/migration/migrateTodos.js.map +0 -7
- package/dist/utils/model.js +0 -846
- package/dist/utils/model.js.map +0 -7
- package/dist/utils/pasteCache.js +0 -313
- package/dist/utils/pasteCache.js.map +0 -7
- package/dist/utils/permissions/filesystem.js +0 -236
- package/dist/utils/permissions/filesystem.js.map +0 -7
- package/dist/utils/plan/planMode.js +0 -143
- package/dist/utils/plan/planMode.js.map +0 -7
- package/dist/utils/pluginInstaller.js +0 -518
- package/dist/utils/pluginInstaller.js.map +0 -7
- package/dist/utils/pluginLoader.js +0 -819
- package/dist/utils/pluginLoader.js.map +0 -7
- package/dist/utils/pluginRegistry.js +0 -111
- package/dist/utils/pluginRegistry.js.map +0 -7
- package/dist/utils/pluginValidator.js +0 -798
- package/dist/utils/pluginValidator.js.map +0 -7
- package/dist/utils/ptyCompat.js +0 -125
- package/dist/utils/ptyCompat.js.map +0 -7
- package/dist/utils/replStateMachine.js +0 -145
- package/dist/utils/replStateMachine.js.map +0 -7
- package/dist/utils/repoFetcher.js +0 -110
- package/dist/utils/repoFetcher.js.map +0 -7
- package/dist/utils/ripgrep.js +0 -236
- package/dist/utils/ripgrep.js.map +0 -7
- package/dist/utils/roundConverter.js +0 -262
- package/dist/utils/roundConverter.js.map +0 -7
- package/dist/utils/safeFetch.js +0 -45
- package/dist/utils/safeFetch.js.map +0 -7
- package/dist/utils/safePath.js +0 -132
- package/dist/utils/safePath.js.map +0 -7
- package/dist/utils/sanitizeInput.js +0 -32
- package/dist/utils/sanitizeInput.js.map +0 -7
- package/dist/utils/secureFile.js +0 -512
- package/dist/utils/secureFile.js.map +0 -7
- package/dist/utils/secureKeyStorage.js +0 -341
- package/dist/utils/secureKeyStorage.js.map +0 -7
- package/dist/utils/sensitiveFiles.js +0 -125
- package/dist/utils/sensitiveFiles.js.map +0 -7
- package/dist/utils/session/sessionPlugins.js +0 -67
- package/dist/utils/session/sessionPlugins.js.map +0 -7
- package/dist/utils/sessionIndex.js +0 -192
- package/dist/utils/sessionIndex.js.map +0 -7
- package/dist/utils/sessionState.js +0 -22
- package/dist/utils/sessionState.js.map +0 -7
- package/dist/utils/sessionTracker.js +0 -170
- package/dist/utils/sessionTracker.js.map +0 -7
- package/dist/utils/simpleMode.js +0 -7
- package/dist/utils/simpleMode.js.map +0 -7
- package/dist/utils/skillLoader.js +0 -230
- package/dist/utils/skillLoader.js.map +0 -7
- package/dist/utils/state.js +0 -24
- package/dist/utils/state.js.map +0 -7
- package/dist/utils/stats.js +0 -417
- package/dist/utils/stats.js.map +0 -7
- package/dist/utils/streamingState.js +0 -62
- package/dist/utils/streamingState.js.map +0 -7
- package/dist/utils/stringSubstitution.js +0 -106
- package/dist/utils/stringSubstitution.js.map +0 -7
- package/dist/utils/style.js +0 -34
- package/dist/utils/style.js.map +0 -7
- package/dist/utils/taskDisplayUtils.js +0 -258
- package/dist/utils/taskDisplayUtils.js.map +0 -7
- package/dist/utils/teamConfig.js +0 -624
- package/dist/utils/teamConfig.js.map +0 -7
- package/dist/utils/terminal.js +0 -59
- package/dist/utils/terminal.js.map +0 -7
- package/dist/utils/theme.js +0 -134
- package/dist/utils/theme.js.map +0 -7
- package/dist/utils/thinking.js +0 -63
- package/dist/utils/thinking.js.map +0 -7
- package/dist/utils/todoChangeCalculator.js +0 -64
- package/dist/utils/todoChangeCalculator.js.map +0 -7
- package/dist/utils/todoStorage.js +0 -413
- package/dist/utils/todoStorage.js.map +0 -7
- package/dist/utils/tokenProgress.js +0 -55
- package/dist/utils/tokenProgress.js.map +0 -7
- package/dist/utils/tokens.js +0 -30
- package/dist/utils/tokens.js.map +0 -7
- package/dist/utils/toolExecutionController.js +0 -109
- package/dist/utils/toolExecutionController.js.map +0 -7
- package/dist/utils/toolRiskClassification.js +0 -210
- package/dist/utils/toolRiskClassification.js.map +0 -7
- package/dist/utils/toolTimeout.js +0 -136
- package/dist/utils/toolTimeout.js.map +0 -7
- package/dist/utils/tooling/safeRender.js +0 -115
- package/dist/utils/tooling/safeRender.js.map +0 -7
- package/dist/utils/tooling/toolError.js +0 -12
- package/dist/utils/tooling/toolError.js.map +0 -7
- package/dist/utils/unaryLogging.js +0 -6
- package/dist/utils/unaryLogging.js.map +0 -7
- package/dist/utils/user.js +0 -40
- package/dist/utils/user.js.map +0 -7
- package/dist/utils/userFriendlyError.js +0 -346
- package/dist/utils/userFriendlyError.js.map +0 -7
- package/dist/utils/validate.js +0 -132
- package/dist/utils/validate.js.map +0 -7
- package/dist/version.js +0 -7
- package/dist/version.js.map +0 -7
- package/dist/yoga.wasm +0 -0
- /package/{dist/utils/vendor → vendor}/ripgrep/arm64-darwin/rg +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/engine/AgentEngine.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * AgentEngine \u2014 Unified query loop for all agent roles.\n *\n * Replaces the duplicated logic in REPL.tsx (team-lead) and TaskTool.tsx (teammate)\n * with a single state machine that manages:\n * - Query loop (wraps query() async generator)\n * - Heartbeat + mailbox polling (team message delivery)\n * - Injection channel (mid-turn message accumulation + post-turn drain)\n * - Idle timeout (teammate auto-stop after inactivity)\n * - Event emission for UI subscribers\n *\n * State machine:\n * [created] \u2192 start() \u2192 [idle] \u21C4 submitPrompt()/inject \u2192 [querying]\n * \u2191 query exhausted + drain\n * \u2514\u2500\u2500 idle timeout \u2192 [stopping] \u2192 [stopped]\n */\n\nimport type {\n EngineState,\n EngineEvent,\n EngineEventListener,\n AgentEngineConfig,\n} from './types'\nimport type { Message, AssistantMessage, BinaryFeedbackResult } from '@query'\nimport type { TeamMessage } from '../types/agentTeams'\nimport type { CanUseToolFn } from '@hooks/useCanUseTool'\nimport type { AskUserFn, SetToolJSXFn, Tool } from '@tool'\nimport type { Command } from '@commands'\nimport type { SafetyMode, ModelPointerType } from '@utils/config'\nimport {\n MessageInjectionChannel,\n type InjectionSource,\n} from '@services/agentTeams/injectionChannel'\nimport { AgentHeartbeat } from '@services/agentTeams/heartbeat'\nimport { query } from '@query'\nimport { createUserMessage, getLastAssistantMessageId } from '@utils/messages'\nimport { hasPermissionsToUseTool } from '@permissions'\nimport { logError } from '@utils/log'\nimport { debug } from '@utils/debugLogger'\n\n/** Matches ExtendedToolUseContext['options'] from query.ts (not exported). */\ninterface QueryOptions {\n commands: Command[]\n forkNumber: number\n messageLogName: string\n tools: Tool[]\n verbose: boolean\n safeMode?: boolean\n safetyMode?: SafetyMode\n /** Permission mode \u2014 propagated to hasPermissionsToUseTool and BashTool.validateInput. */\n permissionMode?: string\n maxThinkingTokens: number\n isKodingRequest?: boolean\n model?: string | ModelPointerType\n}\n\n/** Hard ceiling on in-memory messages to prevent unbounded growth. */\nconst MAX_ENGINE_MESSAGES = 2000\n\nexport class AgentEngine {\n // \u2500\u2500 State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private _state: EngineState = 'created'\n private _messages: Message[] = []\n private listeners = new Set<EngineEventListener>()\n private reentryCount = 0\n\n // \u2500\u2500 Infrastructure \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private channel: MessageInjectionChannel\n private heartbeat: AgentHeartbeat | null = null\n private abortController: AbortController | null = null\n private idleTimer: ReturnType<typeof setTimeout> | null = null\n private idleResolve: ((wakeUp: boolean) => void) | null = null\n\n // \u2500\u2500 Mailbox \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private pendingFromSubscription: TeamMessage[] = []\n private unsubMailbox: (() => void) | null = null\n private unsubWatcher: (() => void) | null = null\n private channelUnsub: (() => void) | null = null\n\n // \u2500\u2500 Dependency injection callbacks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private _canUseTool: CanUseToolFn\n private _askUser: AskUserFn\n private _setToolJSX: SetToolJSXFn\n private _getBinaryFeedbackResponse:\n | ((\n m1: AssistantMessage,\n m2: AssistantMessage,\n ) => Promise<BinaryFeedbackResult>)\n | undefined\n\n // \u2500\u2500 Turn timing \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private turnStartTime: number | null = null\n\n // \u2500\u2500 Idle pause (focus-gated) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n private _idlePaused = false\n\n // \u2500\u2500 Own messages boundary \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // For teammate engines initialized with parent messages, this marks\n // where the engine's OWN messages begin (after the inherited prefix).\n // Used by the REPL to skip parent messages when rendering a teammate view.\n private _ownMessagesStartIndex = 0\n\n constructor(private config: AgentEngineConfig) {\n this._messages = config.initialMessages ? [...config.initialMessages] : []\n this._ownMessagesStartIndex = this._messages.length\n this.channel = new MessageInjectionChannel()\n\n // Set callbacks from config or defaults\n this._canUseTool = config.canUseTool ?? hasPermissionsToUseTool\n this._askUser = config.askUser ?? (() => Promise.resolve([]))\n this._setToolJSX = config.setToolJSX ?? (() => {})\n this._getBinaryFeedbackResponse = config.getBinaryFeedbackResponse\n }\n\n // \u2500\u2500 Public API: Read-only state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n get state(): EngineState {\n return this._state\n }\n\n get messages(): readonly Message[] {\n return this._messages\n }\n\n get isRunning(): boolean {\n return this._state === 'idle' || this._state === 'querying'\n }\n\n /**\n * Index in messages[] where this engine's OWN messages begin.\n * For the default engine this is 0 (all messages are its own).\n * For teammate engines initialized with parent messages, this is\n * the length of the inherited prefix. Used by the REPL to render\n * only the agent's own activity when focused on a teammate.\n */\n get ownMessagesStartIndex(): number {\n return this._ownMessagesStartIndex\n }\n\n get agentId(): string {\n return this.config.agentId\n }\n\n get injectionChannel(): MessageInjectionChannel {\n return this.channel\n }\n\n // \u2500\u2500 Public API: Lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * Initialize the engine: set up heartbeat, mailbox subscription,\n * and injection channel listener. Transitions to 'idle'.\n */\n async start(): Promise<void> {\n if (this._state !== 'created') return\n\n this.transition('idle')\n\n // Setup heartbeat for team agents\n if (this.config.teamName && this.config.agentId) {\n this.setupHeartbeat()\n this.setupMailboxSubscription()\n }\n\n // Listen for injection channel messages while idle \u2192 auto-start query\n this.channelUnsub = this.channel.onMessage(() => {\n debug.trace('ENGINE_CHANNEL_ON_MESSAGE', {\n state: this._state,\n hasMessages: this.channel.hasMessages(),\n })\n if (this._state === 'idle' && this.channel.hasMessages()) {\n const pending = this.channel.drain()\n if (pending.length > 0) {\n const injectionText = pending.map(m => m.text).join('\\n\\n')\n const injectedMsg = createUserMessage(injectionText)\n this.emit({ type: 'injected_messages', count: pending.length })\n this.runQueryWithMessages([injectedMsg]).catch(err => {\n logError(err)\n // Ensure engine doesn't get stuck in querying state\n if (this._state === 'querying') {\n this.transition('idle')\n }\n })\n }\n }\n })\n }\n\n /**\n * Submit user input to the engine. Creates a user message and runs the query loop.\n * If a string is passed, it's wrapped in a createUserMessage.\n * If Message[] is passed, they're appended directly.\n */\n async submitPrompt(input: string | Message[]): Promise<void> {\n if (this._state !== 'idle' && this._state !== 'created') {\n // If currently querying, inject as mid-turn message\n if (this._state === 'querying' && typeof input === 'string') {\n this.injectMessage(input, 'user')\n return\n }\n return\n }\n\n // Cancel any pending idle timeout\n this.cancelIdleTimeout()\n\n const newMessages =\n typeof input === 'string' ? [createUserMessage(input)] : input\n\n await this.runQueryWithMessages(newMessages)\n }\n\n /**\n * Inject a message into the channel for between-turns or post-query delivery.\n */\n injectMessage(text: string, source: InjectionSource): void {\n this.channel.push(text, source)\n }\n\n /**\n * Interrupt the current query.\n */\n abort(): void {\n if (this.abortController) {\n this.abortController.abort()\n }\n this.cancelIdleTimeout()\n }\n\n /**\n * Returns a Promise that resolves when the engine reaches 'idle' or 'stopped'.\n * Used by foreground adapter to block until the current query completes.\n */\n waitForIdle(): Promise<void> {\n if (this._state === 'idle' || this._state === 'stopped') {\n return Promise.resolve()\n }\n return new Promise(resolve => {\n const unsub = this.on(event => {\n if (\n event.type === 'state_change' &&\n (event.to === 'idle' || event.to === 'stopped')\n ) {\n unsub()\n resolve()\n }\n })\n })\n }\n\n /**\n * Graceful shutdown: abort any running query, stop heartbeat, clean up.\n */\n async stop(): Promise<void> {\n if (this._state === 'stopped' || this._state === 'stopping') return\n\n this.transition('stopping')\n\n this.abort()\n this.heartbeat?.stop()\n this.unsubMailbox?.()\n this.unsubWatcher?.()\n this.channelUnsub?.()\n this.channel.dispose()\n\n this.heartbeat = null\n this.unsubMailbox = null\n this.unsubWatcher = null\n this.channelUnsub = null\n\n this.transition('stopped')\n }\n\n // \u2500\u2500 Public API: Event subscription \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * Subscribe to engine events. Returns an unsubscribe function.\n */\n on(listener: EngineEventListener): () => void {\n this.listeners.add(listener)\n return () => {\n this.listeners.delete(listener)\n }\n }\n\n // \u2500\u2500 Public API: Dependency injection \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n setCanUseTool(fn: CanUseToolFn): void {\n this._canUseTool = fn\n }\n\n setAskUser(fn: AskUserFn): void {\n this._askUser = fn\n }\n\n setToolJSX(fn: SetToolJSXFn): void {\n this._setToolJSX = fn\n }\n\n setBinaryFeedbackResponse(\n fn: (\n m1: AssistantMessage,\n m2: AssistantMessage,\n ) => Promise<BinaryFeedbackResult>,\n ): void {\n this._getBinaryFeedbackResponse = fn\n }\n\n // \u2500\u2500 Public API: Runtime config updates \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * Promote a default/standalone engine to team-lead.\n * Adds heartbeat + mailbox subscription if the engine is already running.\n */\n promoteToTeamLead(teamName: string): void {\n this.config.role = 'team-lead'\n this.config.teamName = teamName\n this.config.agentId = `team-lead@${teamName}`\n if (this._state !== 'created') {\n this.setupHeartbeat()\n this.setupMailboxSubscription()\n }\n }\n\n /**\n * Demote from team-lead back to default/standalone. Stops heartbeat,\n * unsubscribes mailbox, clears team config. Does NOT stop the engine\n * \u2014 it continues running as a standalone agent.\n *\n * Must be called when the team is disbanded to prevent stale team\n * infrastructure (heartbeat, mailbox, channel messages) from triggering\n * unexpected re-queries after the team is gone.\n */\n demoteFromTeamLead(): void {\n this.heartbeat?.stop()\n this.heartbeat = null\n this.unsubMailbox?.()\n this.unsubMailbox = null\n this.unsubWatcher?.()\n this.unsubWatcher = null\n this.cancelIdleTimeout()\n // Stop all mailbox file watchers for this team\n if (this.config.teamName) {\n try {\n const { getTeam } =\n require('@services/agentTeams/teamManager') as typeof import('@services/agentTeams/teamManager')\n const entry = getTeam(this.config.teamName)\n entry?.mailbox.stopAllWatchers()\n } catch {\n // Non-fatal\n }\n }\n // Drain any stale channel messages so the channel listener\n // doesn't trigger a re-query with team messages after disbandment.\n debug.trace('ENGINE_DEMOTE_DRAIN', {\n channelSize: this.channel.size,\n state: this._state,\n })\n this.channel.drain()\n this.config.role = 'default'\n this.config.teamName = undefined\n this.config.agentId = 'default'\n }\n\n /**\n * Update runtime config fields (tools, commands, verbose, etc.).\n * Does NOT restart the engine \u2014 changes take effect on the next query.\n */\n /** Fields that can be updated at runtime via updateConfig(). */\n private static readonly MUTABLE_CONFIG_KEYS = new Set<\n keyof AgentEngineConfig\n >([\n 'tools',\n 'commands',\n 'verbose',\n 'safeMode',\n 'safetyMode',\n 'maxThinkingTokens',\n 'model',\n 'permissionMode',\n 'readFileTimestamps',\n 'canUseTool',\n 'askUser',\n 'setToolJSX',\n 'getBinaryFeedbackResponse',\n 'onMessage',\n 'onMessagesSet',\n 'isKodingRequest',\n ])\n\n updateConfig(partial: Partial<AgentEngineConfig>): void {\n for (const key of Object.keys(partial) as (keyof AgentEngineConfig)[]) {\n if (AgentEngine.MUTABLE_CONFIG_KEYS.has(key)) {\n ;(this.config as unknown as Record<string, unknown>)[key] = partial[key]\n }\n }\n }\n\n /**\n * Pause/resume idle timeout. When paused, the engine won't time out\n * even if idleTimeoutMs is set. Used when the engine is focused by the user.\n */\n setIdlePaused(paused: boolean): void {\n const wasPaused = this._idlePaused\n this._idlePaused = paused\n if (paused) {\n // Cancel any running idle timer\n this.cancelIdleTimeout()\n if (this.idleResolve) {\n // Wake up the idle promise so the engine stays alive\n const r = this.idleResolve\n this.idleResolve = null\n r(true)\n }\n } else if (\n wasPaused &&\n this._state === 'idle' &&\n this.config.idleTimeoutMs &&\n this.config.idleTimeoutMs > 0\n ) {\n // Unpaused while idle: restart idle timeout so the engine can auto-stop\n this.startIdleTimeout()\n .then(wokenUp => {\n if (this._state === 'stopped' || this._state === 'stopping') return\n if (wokenUp) {\n this.drainAndReQuery()\n } else {\n this.emit({ type: 'idle_timeout' })\n this.transition('stopping')\n this.transition('stopped')\n }\n })\n .catch(err => debug.trace('IDLE_DRAIN_REQUERY', { error: err }))\n }\n }\n\n /** Read-only access to the engine config. */\n get engineConfig(): Readonly<AgentEngineConfig> {\n return this.config\n }\n\n // \u2500\u2500 Public API: Message manipulation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * Replace the messages array (e.g., for rollback).\n */\n setMessages(messages: Message[]): void {\n this._messages = [...messages]\n this.emit({ type: 'messages_set', messages: this._messages })\n this.config.onMessagesSet?.(this._messages)\n }\n\n /**\n * Append messages without triggering a query.\n */\n appendMessages(messages: Message[]): void {\n for (const msg of messages) {\n this._messages.push(msg)\n this.emit({ type: 'message', message: msg })\n this.config.onMessage?.(msg)\n }\n }\n\n /**\n * Trim messages to MAX_ENGINE_MESSAGES if the array has grown too large.\n * Keeps the most recent messages to prevent unbounded memory growth.\n */\n private trimMessages(): void {\n if (this._messages.length <= MAX_ENGINE_MESSAGES) return\n const originalLength = this._messages.length\n let truncated = this._messages.slice(-MAX_ENGINE_MESSAGES)\n\n // Ensure we don't start with an orphaned tool_result.\n // A user message whose content is an array containing tool_result blocks\n // must be preceded by the assistant message that issued the tool_use.\n // Remove orphaned tool_result messages from the front to maintain valid\n // tool_use/tool_result pairing required by the API.\n while (truncated.length > 0) {\n const first = truncated[0]\n if (!first) break\n // Check if this is a tool_result message (user message with tool_result content)\n if (\n first.type === 'user' &&\n Array.isArray(first.message.content) &&\n first.message.content.length > 0 &&\n first.message.content.some(\n (block: { type: string }) => block.type === 'tool_result',\n )\n ) {\n truncated.shift()\n } else if (first.type === 'progress') {\n // Progress messages are also orphaned without their parent assistant message\n truncated.shift()\n } else {\n break\n }\n }\n\n this._messages = truncated\n debug.warn('ENGINE_MESSAGES_TRIMMED', {\n original: originalLength,\n kept: this._messages.length,\n })\n }\n\n // \u2500\u2500 Internal: State machine \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private static readonly VALID_TRANSITIONS: Record<\n EngineState,\n EngineState[]\n > = {\n created: ['idle'],\n idle: ['querying', 'stopping', 'stopped'],\n querying: ['stopping', 'idle'],\n stopping: ['stopped', 'idle'],\n stopped: [],\n }\n\n private transition(to: EngineState): void {\n const from = this._state\n if (from === to) return\n\n const allowed = AgentEngine.VALID_TRANSITIONS[from]\n if (allowed && !allowed.includes(to)) {\n const msg = `Invalid state transition: ${from} \u2192 ${to}`\n if (process.env.NODE_ENV === 'test') {\n throw new Error(msg)\n }\n debug.warn('INVALID_STATE_TRANSITION', { from, to })\n }\n\n debug.flow('ENGINE_TRANSITION', { from, to })\n this._state = to\n this.emit({ type: 'state_change', from, to })\n }\n\n private emit(event: EngineEvent): void {\n for (const listener of this.listeners) {\n try {\n listener(event)\n } catch {\n // Don't let listener errors break the engine\n }\n }\n }\n\n // \u2500\u2500 Internal: Setup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private setupHeartbeat(): void {\n if (!this.config.teamName || !this.config.agentId) return\n\n this.heartbeat = new AgentHeartbeat()\n this.heartbeat.start(\n this.config.agentId,\n this.config.teamName,\n this.channel,\n { interval: this.config.heartbeatIntervalMs ?? 3000 },\n )\n }\n\n private setupMailboxSubscription(): void {\n if (!this.config.teamName || !this.config.agentId) return\n\n try {\n // Lazy require to avoid circular dependencies\n const { getTeam } =\n require('@services/agentTeams/teamManager') as typeof import('@services/agentTeams/teamManager')\n const teamEntry = getTeam(this.config.teamName)\n if (teamEntry) {\n this.unsubMailbox = teamEntry.mailbox.subscribe(\n this.config.agentId,\n (msg: TeamMessage) => {\n // Mark as read immediately to prevent heartbeat from re-delivering\n // the same message via the channel path (double-delivery bug fix).\n teamEntry.mailbox.markRead([msg.id])\n\n if (this._state === 'idle') {\n // Engine is idle \u2014 push to channel to trigger the onMessage\n // wake-up listener. This is the only path that wakes the idle\n // engine (pendingFromSubscription has no wake-up mechanism).\n this.formatAndPushToChannel(msg)\n } else {\n // Engine is active \u2014 queue for drainMailbox() consumption\n // inside the running executeQueryLoop's post-loop drain.\n this.pendingFromSubscription.push(msg)\n }\n },\n )\n\n // Watch inbox file for cross-process changes (fs.watch).\n // When another process writes to our inbox, this fires the\n // subscribe listener above \u2014 achieving ~30ms delivery latency\n // instead of waiting for heartbeat polling.\n this.unsubWatcher = teamEntry.mailbox.startWatching(this.config.agentId)\n }\n } catch (err) {\n // Non-fatal: mailbox subscription failure doesn't block operation,\n // but log so failures are visible in debug logs.\n debug.error('ENGINE_MAILBOX_SETUP_FAILED', { error: err })\n }\n }\n\n /**\n * Format a team message and push to the injection channel.\n * Replicates heartbeat formatting logic so subscription-delivered\n * messages look identical to heartbeat-delivered ones.\n */\n private formatAndPushToChannel(msg: TeamMessage): void {\n try {\n const {\n formatTeamMessage,\n parseIdleNotification,\n formatIdleNotificationForInjection,\n humanizeProtocolMessage,\n } =\n require('@services/agentTeams/messageFormatter') as typeof import('@services/agentTeams/messageFormatter')\n\n const idleNotif = parseIdleNotification(msg.text)\n if (idleNotif) {\n this.channel.push(formatIdleNotificationForInjection(idleNotif), 'task')\n } else {\n const friendly = humanizeProtocolMessage(msg.text)\n const formatted = formatTeamMessage(\n friendly ? { ...msg, summary: friendly } : msg,\n )\n this.channel.push(formatted, 'team')\n }\n } catch {\n // Fallback: push raw text\n this.channel.push(msg.text, 'team')\n }\n }\n\n /**\n * Ensure heartbeat is running. Called at query boundaries as a safety net.\n */\n private ensureHeartbeat(): void {\n if (!this.config.teamName || !this.config.agentId) return\n\n try {\n const { getActiveTeams } =\n require('@services/agentTeams/teamManager') as typeof import('@services/agentTeams/teamManager')\n const activeTeams = getActiveTeams()\n if (activeTeams.length > 0 && !this.heartbeat?.running) {\n this.setupHeartbeat()\n }\n } catch {\n // Non-fatal\n }\n }\n\n // \u2500\u2500 Internal: Query loop \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * Core method: add messages and run the query loop with post-query drain.\n */\n private async runQueryWithMessages(newMessages: Message[]): Promise<void> {\n if (this._state === 'stopping' || this._state === 'stopped') return\n\n this.transition('querying')\n this.reentryCount = 0\n this.turnStartTime = Date.now()\n this.emit({ type: 'turn_start' })\n\n // Create abort controller for this query run\n this.abortController = new AbortController()\n\n // Ensure heartbeat is running for team agents\n this.ensureHeartbeat()\n\n // Append new messages\n for (const msg of newMessages) {\n this._messages.push(msg)\n this.emit({ type: 'message', message: msg })\n this.config.onMessage?.(msg)\n }\n\n try {\n await this.executeQueryLoop()\n } catch (error) {\n logError(error)\n this.emit({\n type: 'error',\n error: error instanceof Error ? error : new Error(String(error)),\n })\n } finally {\n const durationMs = this.turnStartTime\n ? Date.now() - this.turnStartTime\n : 0\n this.turnStartTime = null\n this.abortController = null\n this.emit({ type: 'turn_end', durationMs })\n\n // Post-query heartbeat safety net\n this.ensureHeartbeat()\n\n // Post-query drain: check injection channel and mailbox\n // Wrapped in try-catch to ensure state always transitions to idle\n // even if post-query drain encounters an error\n try {\n if (!this.isAborted()) {\n const reEntered = await this.postQueryDrain()\n if (!reEntered) {\n // Safety net: postQueryDrain returned false (no re-entry), but\n // double-check the channel before going idle. This catches any\n // messages pushed between the last drain and now.\n if (this.channel.hasMessages()) {\n debug.trace('ENGINE_SAFETY_NET_DRAIN', {\n channelSize: this.channel.size,\n })\n const safetyDrained = this.channel.drain()\n if (safetyDrained.length > 0) {\n const injectionText = safetyDrained\n .map(m => m.text)\n .join('\\n\\n')\n const injectedMsg = createUserMessage(injectionText)\n this.emit({\n type: 'injected_messages',\n count: safetyDrained.length,\n })\n await this.runReentryTurn(injectedMsg)\n // Recurse: check again after safety net re-entry\n const reEnteredAgain = await this.postQueryDrain()\n if (reEnteredAgain) {\n return // postQueryDrain handled further messages\n }\n }\n }\n // No re-entry needed \u2014 trim if needed, then transition to idle\n this.trimMessages()\n this.transition('idle')\n\n // Start idle timeout for teammates (skip if paused by focus)\n if (\n this.config.idleTimeoutMs &&\n this.config.idleTimeoutMs > 0 &&\n !this._idlePaused\n ) {\n const wokenUp = await this.startIdleTimeout()\n if (wokenUp) {\n // Messages arrived during idle \u2014 drain and re-enter\n this.drainAndReQuery()\n } else {\n // Idle timeout expired\n this.emit({ type: 'idle_timeout' })\n this.transition('stopping')\n this.transition('stopped')\n }\n }\n }\n } else {\n this.transition('idle')\n }\n } catch (drainError) {\n // Critical safety: ensure engine never gets stuck in 'querying' state\n debug.error('ENGINE_POST_DRAIN_ERROR', {\n error: drainError,\n channelSize: this.channel.size,\n })\n logError(drainError)\n this.emit({\n type: 'error',\n error:\n drainError instanceof Error\n ? drainError\n : new Error(String(drainError)),\n })\n // Try to salvage any remaining channel messages before going idle\n if (this.channel.hasMessages()) {\n const salvaged = this.channel.drain()\n if (salvaged.length > 0) {\n debug.trace('ENGINE_SALVAGED_MESSAGES', { count: salvaged.length })\n const txt = salvaged.map(m => m.text).join('\\n\\n')\n const msg = createUserMessage(txt)\n this._messages.push(msg)\n this.emit({ type: 'message', message: msg })\n // Don't try to re-enter \u2014 just ensure messages are in conversation history\n }\n }\n if (this._state === 'querying') {\n this.transition('idle')\n }\n }\n }\n }\n\n /**\n * Execute the inner query loop with post-loop mailbox drain.\n * When the model finishes (no more tool_use), checks the mailbox \u2014\n * if messages arrived, re-enters query() so the agent can respond.\n */\n private async executeQueryLoop(): Promise<void> {\n const maxTurns = this.config.maxTurns ?? 0\n let keepRunning = true\n\n while (keepRunning) {\n keepRunning = false\n\n const [systemPrompt, context] = await this.resolvePromptAndContext()\n const queryOptions = this.buildQueryOptions()\n\n // Pass a SNAPSHOT of _messages to query(), not the live reference.\n // query() manages its own recursive message array internally via\n // [...messages, assistantMsg, ...toolResults]. If we pass the live\n // _messages reference, engine pushes (line below) mutate the same\n // array, causing message duplication in recursive calls.\n // The snapshot decouples ownership: engine tracks UI state in _messages,\n // query() manages API conversation state independently.\n //\n // Filter out localOnly messages (e.g. /clear echo) \u2014 they exist for\n // UI display but must NOT be sent as API context.\n for await (const message of query(\n this._messages.filter(m => !('localOnly' in m && m.localOnly)),\n systemPrompt,\n context,\n this._canUseTool,\n {\n abortController: this.abortController!,\n options: queryOptions,\n messageId: getLastAssistantMessageId(this._messages),\n agentId: this.config.agentId,\n readFileTimestamps: this.config.readFileTimestamps ?? {},\n setToolJSX: this._setToolJSX,\n askUser: this._askUser,\n injectionChannel: this.channel,\n },\n this._getBinaryFeedbackResponse,\n )) {\n this._messages.push(message)\n this.emit({ type: 'message', message })\n this.config.onMessage?.(message)\n\n // Skip non-assistant messages (tool_result, progress) \u2014 just track them.\n // Mid-turn guidance injection is handled inside query() itself at\n // tool-completion boundaries via the injectionChannel parameter.\n if (message.type !== 'assistant') {\n continue\n }\n\n // Check max turns\n if (maxTurns > 0 && this.getAssistantTurnCount() >= maxTurns) break\n }\n\n // Post-loop drain: if messages arrived while the model was finishing,\n // re-enter the query loop so the agent can process them.\n debug.trace('ENGINE_QUERY_LOOP_POST', {\n isAborted: this.isAborted(),\n maxTurns,\n assistantTurns: this.getAssistantTurnCount(),\n channelSize: this.channel.size,\n })\n if (\n !this.isAborted() &&\n !(maxTurns > 0 && this.getAssistantTurnCount() >= maxTurns)\n ) {\n // Universal: check injection channel\n const drained = this.drainChannelInline()\n debug.trace('ENGINE_DRAIN_INLINE', { drained })\n if (drained) keepRunning = true\n // Team-specific: check mailbox\n if (this.config.teamName) {\n if (this.drainMailbox()) keepRunning = true\n }\n }\n }\n }\n\n /** Hard ceiling on total re-entries across all recursive postQueryDrain calls. */\n private static readonly MAX_GLOBAL_REENTRY = 20\n\n /**\n * Execute a single re-entry turn: push the injected message, emit events,\n * create a fresh AbortController, run the query loop, and finalize.\n * Consolidates the 15-line pattern that was duplicated in 4 places.\n */\n private async runReentryTurn(injectedMsg: Message): Promise<void> {\n this._messages.push(injectedMsg)\n this.emit({ type: 'message', message: injectedMsg })\n this.config.onMessage?.(injectedMsg)\n this.turnStartTime = Date.now()\n this.abortController = new AbortController()\n this.emit({ type: 'turn_start' })\n try {\n await this.executeQueryLoop()\n } catch (error) {\n logError(error)\n this.emit({\n type: 'error',\n error: error instanceof Error ? error : new Error(String(error)),\n })\n } finally {\n const durationMs = this.turnStartTime\n ? Date.now() - this.turnStartTime\n : 0\n this.turnStartTime = null\n this.abortController = null\n this.emit({ type: 'turn_end', durationMs })\n }\n }\n\n /**\n * Post-query drain: check injection channel and direct mailbox.\n * Uses iterative loop instead of recursion to bound call stack depth.\n * Returns true if re-entry was triggered.\n */\n private async postQueryDrain(): Promise<boolean> {\n const maxReentry = this.config.maxReentry ?? 10\n let didReenter = false\n\n while (true) {\n debug.trace('ENGINE_POST_QUERY_DRAIN', {\n channelSize: this.channel.size,\n reentryCount: this.reentryCount,\n maxReentry,\n })\n\n // Global hard cap \u2014 prevents runaway loops regardless of per-call limits\n if (this.reentryCount >= AgentEngine.MAX_GLOBAL_REENTRY) {\n debug.warn('ENGINE_GLOBAL_REENTRY_LIMIT', {\n reentryCount: this.reentryCount,\n limit: AgentEngine.MAX_GLOBAL_REENTRY,\n })\n break\n }\n\n // First: drain injection channel\n const pending = this.channel.drain()\n if (pending.length > 0 && this.reentryCount < maxReentry) {\n this.reentryCount++\n didReenter = true\n const injectionText = pending.map(m => m.text).join('\\n\\n')\n const injectedMsg = createUserMessage(injectionText)\n this.emit({ type: 'injected_messages', count: pending.length })\n await this.runReentryTurn(injectedMsg)\n // Loop back to check again after re-entry\n continue\n }\n\n // Second: direct mailbox check (catch messages not yet pushed by heartbeat)\n if (this.config.teamName) {\n try {\n const { getTeam } =\n require('@services/agentTeams/teamManager') as typeof import('@services/agentTeams/teamManager')\n const entry = getTeam(this.config.teamName)\n if (entry && this.config.agentId) {\n const unread = entry.mailbox.getUnread(this.config.agentId)\n if (unread.length > 0 && this.reentryCount < maxReentry) {\n this.reentryCount++\n didReenter = true\n const { formatTeamMessage } =\n require('@services/agentTeams/messageFormatter') as typeof import('@services/agentTeams/messageFormatter')\n const formatted = unread\n .map((m: TeamMessage) => formatTeamMessage(m))\n .join('\\n\\n')\n entry.mailbox.markRead(unread.map((m: TeamMessage) => m.id))\n const injectedMsg = createUserMessage(formatted)\n await this.runReentryTurn(injectedMsg)\n // Loop back to check again\n continue\n }\n }\n } catch {\n // Non-fatal\n }\n }\n\n // No messages to drain \u2014 break out of the loop\n break\n }\n\n return didReenter\n }\n\n // \u2500\u2500 Internal: Channel + Mailbox drain \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * Drain the injection channel inline: move pending channel messages\n * into the conversation as a user message. Universal \u2014 works for\n * any agent type (standalone, team-lead, teammate).\n *\n * Returns true if messages were injected.\n */\n private drainChannelInline(): boolean {\n const pending = this.channel.drain()\n if (pending.length === 0) return false\n\n const injectionText = pending.map(m => m.text).join('\\n\\n')\n const injectedMsg = createUserMessage(injectionText)\n this._messages.push(injectedMsg)\n this.emit({ type: 'message', message: injectedMsg })\n this.config.onMessage?.(injectedMsg)\n this.emit({ type: 'injected_messages', count: pending.length })\n return true\n }\n\n /**\n * Drain pending mailbox messages and inject them into the conversation.\n * Returns true if messages were injected.\n */\n private drainMailbox(): boolean {\n if (!this.config.teamName) return false\n\n let injected = false\n\n try {\n const { getTeam } =\n require('@services/agentTeams/teamManager') as typeof import('@services/agentTeams/teamManager')\n const teamEntry = getTeam(this.config.teamName)\n if (!teamEntry || !this.config.agentId) return false\n\n const fromSub = this.pendingFromSubscription.splice(0)\n const unread = teamEntry.mailbox.getUnread(this.config.agentId)\n\n const allNew = [...fromSub]\n const seenIds = new Set(fromSub.map(m => m.id))\n for (const m of unread) {\n if (!seenIds.has(m.id)) allNew.push(m)\n }\n\n if (allNew.length === 0) return false\n\n const {\n formatTeamMessagesForInjection,\n formatUserGuidanceForInjection,\n humanizeProtocolMessage,\n } =\n require('@services/agentTeams/messageFormatter') as typeof import('@services/agentTeams/messageFormatter')\n\n const userMsgs = allNew.filter(m => m.from === 'user')\n const teamMsgs = allNew.filter(m => m.from !== 'user')\n\n // Humanize protocol JSON messages for display\n const humanizedTeamMsgs = teamMsgs.map(m => {\n const friendly = humanizeProtocolMessage(m.text)\n return friendly ? { ...m, summary: friendly } : m\n })\n\n if (userMsgs.length > 0) {\n const guidanceText = userMsgs\n .map(m => formatUserGuidanceForInjection(m.text))\n .join('\\n\\n')\n const guidanceMsg = createUserMessage(guidanceText)\n this._messages.push(guidanceMsg)\n this.emit({ type: 'message', message: guidanceMsg })\n this.config.onMessage?.(guidanceMsg)\n injected = true\n }\n\n if (humanizedTeamMsgs.length > 0) {\n const deliveryText = formatTeamMessagesForInjection(humanizedTeamMsgs)\n const injectedMsg = createUserMessage(deliveryText)\n this._messages.push(injectedMsg)\n this.emit({ type: 'message', message: injectedMsg })\n this.config.onMessage?.(injectedMsg)\n injected = true\n }\n\n teamEntry.mailbox.markRead(allNew.map(m => m.id))\n } catch {\n // Non-fatal\n }\n\n return injected\n }\n\n // \u2500\u2500 Internal: Idle timeout \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * Wait for the configured idle timeout. Returns true if woken up\n * by arriving messages, false if the timeout expired or was aborted.\n */\n private startIdleTimeout(): Promise<boolean> {\n const timeoutMs = this.config.idleTimeoutMs ?? 0\n if (timeoutMs <= 0) return Promise.resolve(false)\n\n return new Promise<boolean>(resolve => {\n // Check if messages already pending\n if (this.pendingFromSubscription.length > 0) {\n resolve(true)\n return\n }\n\n this.idleResolve = resolve\n\n this.idleTimer = setTimeout(() => {\n this.idleResolve = null\n this.idleTimer = null\n resolve(false)\n }, timeoutMs)\n\n // Re-subscribe to mailbox for wake-up detection\n if (this.config.teamName && this.config.agentId) {\n try {\n const { getTeam } =\n require('@services/agentTeams/teamManager') as typeof import('@services/agentTeams/teamManager')\n const teamEntry = getTeam(this.config.teamName)\n if (teamEntry) {\n // Temporarily replace subscription to detect arrivals\n this.unsubMailbox?.()\n this.unsubMailbox = teamEntry.mailbox.subscribe(\n this.config.agentId,\n (msg: TeamMessage) => {\n this.pendingFromSubscription.push(msg)\n // Mark as read immediately to prevent heartbeat from re-delivering\n // the same message via the channel path (double-delivery bug fix).\n teamEntry.mailbox.markRead([msg.id])\n this.cancelIdleTimeout()\n if (this.idleResolve) {\n const r = this.idleResolve\n this.idleResolve = null\n r(true)\n }\n },\n )\n }\n } catch {\n // Non-fatal\n }\n }\n\n // Use a dedicated abort controller for the idle period, since the\n // main abortController may already be null after postQueryDrain.\n this.idleAbortController = new AbortController()\n const handler = () => {\n this.cancelIdleTimeout()\n if (this.idleResolve) {\n const r = this.idleResolve\n this.idleResolve = null\n r(false)\n }\n }\n this.idleAbortController.signal.addEventListener('abort', handler, {\n once: true,\n })\n })\n }\n\n /** Dedicated abort controller for idle timeout, independent of query abort. */\n private idleAbortController: AbortController | null = null\n\n private cancelIdleTimeout(): void {\n if (this.idleTimer) {\n clearTimeout(this.idleTimer)\n this.idleTimer = null\n }\n if (this.idleAbortController) {\n this.idleAbortController.abort()\n this.idleAbortController = null\n }\n }\n\n /**\n * Drain mailbox and re-enter query loop (used after idle wake-up).\n * Uses a synthetic empty message as the trigger since drainMailbox()\n * already pushed the actual messages into this._messages.\n */\n private async drainAndReQuery(): Promise<void> {\n const drained = this.drainMailbox()\n if (!drained) return\n\n this.transition('querying')\n // drainMailbox already pushed messages \u2014 run the turn directly\n this.turnStartTime = Date.now()\n this.abortController = new AbortController()\n this.emit({ type: 'turn_start' })\n try {\n await this.executeQueryLoop()\n } catch (error) {\n logError(error)\n this.emit({\n type: 'error',\n error: error instanceof Error ? error : new Error(String(error)),\n })\n } finally {\n const durationMs = this.turnStartTime\n ? Date.now() - this.turnStartTime\n : 0\n this.turnStartTime = null\n this.abortController = null\n this.emit({ type: 'turn_end', durationMs })\n this.transition('idle')\n }\n }\n\n // \u2500\u2500 Internal: Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private isAborted(): boolean {\n return this.abortController?.signal.aborted ?? false\n }\n\n private getAssistantTurnCount(): number {\n return this._messages.filter(m => m.type === 'assistant').length\n }\n\n /**\n * Resolve system prompt and context (supports both pre-built and async factory).\n */\n private async resolvePromptAndContext(): Promise<\n [string[], Record<string, string>]\n > {\n const [systemPrompt, context] = await Promise.all([\n typeof this.config.systemPrompt === 'function'\n ? this.config.systemPrompt()\n : Promise.resolve(this.config.systemPrompt),\n typeof this.config.context === 'function'\n ? this.config.context()\n : Promise.resolve(this.config.context),\n ])\n return [systemPrompt, context]\n }\n\n /**\n * Build query options from engine config.\n */\n private buildQueryOptions(): QueryOptions {\n return {\n commands: this.config.commands ?? [],\n forkNumber: this.config.forkNumber ?? 0,\n messageLogName: this.config.messageLogName ?? 'agent',\n tools: this.config.tools,\n verbose: this.config.verbose ?? false,\n safeMode: this.config.safeMode,\n safetyMode: this.config.safetyMode,\n permissionMode: this.config.permissionMode,\n maxThinkingTokens: this.config.maxThinkingTokens ?? 0,\n isKodingRequest: this.config.isKodingRequest,\n model: this.config.model,\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
class EngineRegistry {
|
|
2
|
-
engines = /* @__PURE__ */ new Map();
|
|
3
|
-
_focusedId = "default";
|
|
4
|
-
listeners = /* @__PURE__ */ new Set();
|
|
5
|
-
// ── Registration ──────────────────────────────────────────
|
|
6
|
-
register(id, engine) {
|
|
7
|
-
this.engines.set(id, engine);
|
|
8
|
-
this.notify();
|
|
9
|
-
}
|
|
10
|
-
unregister(id) {
|
|
11
|
-
this.engines.delete(id);
|
|
12
|
-
if (this._focusedId === id) {
|
|
13
|
-
if (this.engines.has("default")) {
|
|
14
|
-
this._focusedId = "default";
|
|
15
|
-
} else {
|
|
16
|
-
const firstKey = this.engines.keys().next().value;
|
|
17
|
-
this._focusedId = firstKey ?? "default";
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
this.notify();
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Remove all stopped engines from the registry.
|
|
24
|
-
* Safe to call periodically to prevent memory leaks.
|
|
25
|
-
*/
|
|
26
|
-
pruneStoppedEngines() {
|
|
27
|
-
const toRemove = [];
|
|
28
|
-
for (const [id, engine] of this.engines) {
|
|
29
|
-
if (id !== "default" && engine.state === "stopped") {
|
|
30
|
-
toRemove.push(id);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
for (const id of toRemove) {
|
|
34
|
-
this.unregister(id);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
// ── Lookup ────────────────────────────────────────────────
|
|
38
|
-
get(id) {
|
|
39
|
-
return this.engines.get(id);
|
|
40
|
-
}
|
|
41
|
-
getAll() {
|
|
42
|
-
return this.engines;
|
|
43
|
-
}
|
|
44
|
-
// ── Focus management ──────────────────────────────────────
|
|
45
|
-
get focused() {
|
|
46
|
-
return this.engines.get(this._focusedId);
|
|
47
|
-
}
|
|
48
|
-
get focusedId() {
|
|
49
|
-
return this._focusedId;
|
|
50
|
-
}
|
|
51
|
-
setFocus(id) {
|
|
52
|
-
if (this._focusedId === id) return;
|
|
53
|
-
if (!this.engines.has(id)) return;
|
|
54
|
-
this._focusedId = id;
|
|
55
|
-
this.notify();
|
|
56
|
-
}
|
|
57
|
-
// ── Change subscription (useSyncExternalStore compatible) ─
|
|
58
|
-
onChange(listener) {
|
|
59
|
-
this.listeners.add(listener);
|
|
60
|
-
return () => {
|
|
61
|
-
this.listeners.delete(listener);
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
// ── Internal ──────────────────────────────────────────────
|
|
65
|
-
notify() {
|
|
66
|
-
for (const listener of this.listeners) {
|
|
67
|
-
try {
|
|
68
|
-
listener();
|
|
69
|
-
} catch {
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
let globalRegistry = null;
|
|
75
|
-
function getGlobalRegistry() {
|
|
76
|
-
if (!globalRegistry) {
|
|
77
|
-
globalRegistry = new EngineRegistry();
|
|
78
|
-
}
|
|
79
|
-
return globalRegistry;
|
|
80
|
-
}
|
|
81
|
-
function setGlobalRegistry(registry) {
|
|
82
|
-
globalRegistry = registry;
|
|
83
|
-
}
|
|
84
|
-
export {
|
|
85
|
-
EngineRegistry,
|
|
86
|
-
getGlobalRegistry,
|
|
87
|
-
setGlobalRegistry
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=EngineRegistry.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/engine/EngineRegistry.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * EngineRegistry \u2014 Tracks multiple AgentEngine instances and manages focus.\n *\n * The registry is the single source of truth for which engine is \"focused\"\n * (i.e., which agent's messages the REPL renders and which engine receives\n * user input). When focus changes, registered listeners are notified so\n * React can re-subscribe via useSyncExternalStore or useEffect.\n */\n\nimport type { AgentEngine } from './AgentEngine'\n\nexport class EngineRegistry {\n private engines = new Map<string, AgentEngine>()\n private _focusedId: string = 'default'\n private listeners = new Set<() => void>()\n\n // \u2500\u2500 Registration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n register(id: string, engine: AgentEngine): void {\n this.engines.set(id, engine)\n this.notify()\n }\n\n unregister(id: string): void {\n this.engines.delete(id)\n // If the focused engine was unregistered, fall back to default or first available\n if (this._focusedId === id) {\n if (this.engines.has('default')) {\n this._focusedId = 'default'\n } else {\n // 'default' doesn't exist \u2014 pick the first available engine\n const firstKey = this.engines.keys().next().value\n this._focusedId = firstKey ?? 'default'\n }\n }\n this.notify()\n }\n\n /**\n * Remove all stopped engines from the registry.\n * Safe to call periodically to prevent memory leaks.\n */\n pruneStoppedEngines(): void {\n const toRemove: string[] = []\n for (const [id, engine] of this.engines) {\n if (id !== 'default' && engine.state === 'stopped') {\n toRemove.push(id)\n }\n }\n for (const id of toRemove) {\n this.unregister(id)\n }\n }\n\n // \u2500\u2500 Lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n get(id: string): AgentEngine | undefined {\n return this.engines.get(id)\n }\n\n getAll(): Map<string, AgentEngine> {\n return this.engines\n }\n\n // \u2500\u2500 Focus management \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n get focused(): AgentEngine | undefined {\n return this.engines.get(this._focusedId)\n }\n\n get focusedId(): string {\n return this._focusedId\n }\n\n setFocus(id: string): void {\n if (this._focusedId === id) return\n if (!this.engines.has(id)) return\n this._focusedId = id\n this.notify()\n }\n\n // \u2500\u2500 Change subscription (useSyncExternalStore compatible) \u2500\n\n onChange(listener: () => void): () => void {\n this.listeners.add(listener)\n return () => {\n this.listeners.delete(listener)\n }\n }\n\n // \u2500\u2500 Internal \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n private notify(): void {\n for (const listener of this.listeners) {\n try {\n listener()\n } catch {\n // Don't let listener errors break the registry\n }\n }\n }\n}\n\n// \u2500\u2500 Singleton for cross-module access \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nlet globalRegistry: EngineRegistry | null = null\n\nexport function getGlobalRegistry(): EngineRegistry {\n if (!globalRegistry) {\n globalRegistry = new EngineRegistry()\n }\n return globalRegistry\n}\n\nexport function setGlobalRegistry(registry: EngineRegistry): void {\n globalRegistry = registry\n}\n"],
|
|
5
|
-
"mappings": "AAWO,MAAM,eAAe;AAAA,EAClB,UAAU,oBAAI,IAAyB;AAAA,EACvC,aAAqB;AAAA,EACrB,YAAY,oBAAI,IAAgB;AAAA;AAAA,EAIxC,SAAS,IAAY,QAA2B;AAC9C,SAAK,QAAQ,IAAI,IAAI,MAAM;AAC3B,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,WAAW,IAAkB;AAC3B,SAAK,QAAQ,OAAO,EAAE;AAEtB,QAAI,KAAK,eAAe,IAAI;AAC1B,UAAI,KAAK,QAAQ,IAAI,SAAS,GAAG;AAC/B,aAAK,aAAa;AAAA,MACpB,OAAO;AAEL,cAAM,WAAW,KAAK,QAAQ,KAAK,EAAE,KAAK,EAAE;AAC5C,aAAK,aAAa,YAAY;AAAA,MAChC;AAAA,IACF;AACA,SAAK,OAAO;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,sBAA4B;AAC1B,UAAM,WAAqB,CAAC;AAC5B,eAAW,CAAC,IAAI,MAAM,KAAK,KAAK,SAAS;AACvC,UAAI,OAAO,aAAa,OAAO,UAAU,WAAW;AAClD,iBAAS,KAAK,EAAE;AAAA,MAClB;AAAA,IACF;AACA,eAAW,MAAM,UAAU;AACzB,WAAK,WAAW,EAAE;AAAA,IACpB;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,IAAqC;AACvC,WAAO,KAAK,QAAQ,IAAI,EAAE;AAAA,EAC5B;AAAA,EAEA,SAAmC;AACjC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAIA,IAAI,UAAmC;AACrC,WAAO,KAAK,QAAQ,IAAI,KAAK,UAAU;AAAA,EACzC;AAAA,EAEA,IAAI,YAAoB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAS,IAAkB;AACzB,QAAI,KAAK,eAAe,GAAI;AAC5B,QAAI,CAAC,KAAK,QAAQ,IAAI,EAAE,EAAG;AAC3B,SAAK,aAAa;AAClB,SAAK,OAAO;AAAA,EACd;AAAA;AAAA,EAIA,SAAS,UAAkC;AACzC,SAAK,UAAU,IAAI,QAAQ;AAC3B,WAAO,MAAM;AACX,WAAK,UAAU,OAAO,QAAQ;AAAA,IAChC;AAAA,EACF;AAAA;AAAA,EAIQ,SAAe;AACrB,eAAW,YAAY,KAAK,WAAW;AACrC,UAAI;AACF,iBAAS;AAAA,MACX,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,EACF;AACF;AAIA,IAAI,iBAAwC;AAErC,SAAS,oBAAoC;AAClD,MAAI,CAAC,gBAAgB;AACnB,qBAAiB,IAAI,eAAe;AAAA,EACtC;AACA,SAAO;AACT;AAEO,SAAS,kBAAkB,UAAgC;AAChE,mBAAiB;AACnB;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import { AgentEngine } from "./AgentEngine.js";
|
|
2
|
-
import { getGlobalRegistry } from "./EngineRegistry.js";
|
|
3
|
-
import { hasPermissionsToUseTool } from "../permissions.js";
|
|
4
|
-
import {
|
|
5
|
-
createAssistantMessage,
|
|
6
|
-
normalizeMessages,
|
|
7
|
-
INTERRUPT_MESSAGE
|
|
8
|
-
} from "../utils/messages.js";
|
|
9
|
-
import {
|
|
10
|
-
appendMessageToTranscript,
|
|
11
|
-
updateAgentTranscript
|
|
12
|
-
} from "../utils/agentTranscripts.js";
|
|
13
|
-
import { getMessagesPath, overwriteLog } from "../utils/log.js";
|
|
14
|
-
import { debug } from "../utils/debugLogger.js";
|
|
15
|
-
async function* runForegroundEngine(opts) {
|
|
16
|
-
const {
|
|
17
|
-
agentId,
|
|
18
|
-
teamName,
|
|
19
|
-
agentType,
|
|
20
|
-
systemPrompt,
|
|
21
|
-
context,
|
|
22
|
-
tools,
|
|
23
|
-
initialMessages,
|
|
24
|
-
prompt,
|
|
25
|
-
maxTurns,
|
|
26
|
-
maxThinkingTokens,
|
|
27
|
-
model,
|
|
28
|
-
forkNumber,
|
|
29
|
-
messageLogName,
|
|
30
|
-
sidechainNumber,
|
|
31
|
-
verbose,
|
|
32
|
-
safeMode,
|
|
33
|
-
safetyMode,
|
|
34
|
-
readFileTimestamps,
|
|
35
|
-
abortController
|
|
36
|
-
} = opts;
|
|
37
|
-
const { permissionMode } = opts;
|
|
38
|
-
const eventQueue = [];
|
|
39
|
-
let resolveWaiting = null;
|
|
40
|
-
function pushEvent(event) {
|
|
41
|
-
eventQueue.push(event);
|
|
42
|
-
if (resolveWaiting) {
|
|
43
|
-
const r = resolveWaiting;
|
|
44
|
-
resolveWaiting = null;
|
|
45
|
-
r();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function waitForEvents() {
|
|
49
|
-
if (eventQueue.length > 0) return Promise.resolve();
|
|
50
|
-
return new Promise((resolve) => {
|
|
51
|
-
resolveWaiting = resolve;
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
const engine = new AgentEngine({
|
|
55
|
-
agentId,
|
|
56
|
-
name: opts.teammateName || agentType,
|
|
57
|
-
role: teamName ? "teammate" : "standalone",
|
|
58
|
-
teamName,
|
|
59
|
-
systemPrompt,
|
|
60
|
-
context,
|
|
61
|
-
tools,
|
|
62
|
-
initialMessages: [...initialMessages],
|
|
63
|
-
// No idleTimeoutMs — foreground engines don't auto-stop
|
|
64
|
-
maxTurns,
|
|
65
|
-
maxThinkingTokens,
|
|
66
|
-
model,
|
|
67
|
-
forkNumber,
|
|
68
|
-
messageLogName,
|
|
69
|
-
verbose,
|
|
70
|
-
safeMode,
|
|
71
|
-
safetyMode,
|
|
72
|
-
permissionMode,
|
|
73
|
-
readFileTimestamps,
|
|
74
|
-
canUseTool: hasPermissionsToUseTool,
|
|
75
|
-
askUser: () => Promise.resolve([]),
|
|
76
|
-
setToolJSX: () => {
|
|
77
|
-
},
|
|
78
|
-
onMessage: (message) => {
|
|
79
|
-
appendMessageToTranscript(agentId, message);
|
|
80
|
-
overwriteLog(
|
|
81
|
-
getMessagesPath(messageLogName, forkNumber, sidechainNumber),
|
|
82
|
-
[...engine.messages].filter((m) => m.type !== "progress")
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
const globalRegistry = getGlobalRegistry();
|
|
87
|
-
globalRegistry.register(agentId, engine);
|
|
88
|
-
if (abortController.signal.aborted) {
|
|
89
|
-
engine.abort();
|
|
90
|
-
} else {
|
|
91
|
-
abortController.signal.addEventListener("abort", () => engine.abort(), {
|
|
92
|
-
once: true
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
const unsubEvents = engine.on((event) => {
|
|
96
|
-
pushEvent(event);
|
|
97
|
-
});
|
|
98
|
-
let engineDone = false;
|
|
99
|
-
try {
|
|
100
|
-
await engine.start();
|
|
101
|
-
const submitPromise = engine.submitPrompt(prompt);
|
|
102
|
-
submitPromise.catch((err) => {
|
|
103
|
-
debug.error("FOREGROUND_ADAPTER_SUBMIT_ERROR", { error: err });
|
|
104
|
-
pushEvent({
|
|
105
|
-
type: "error",
|
|
106
|
-
error: err instanceof Error ? err : new Error(String(err))
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
while (!engineDone) {
|
|
110
|
-
await waitForEvents();
|
|
111
|
-
const batch = eventQueue.splice(0);
|
|
112
|
-
for (const event of batch) {
|
|
113
|
-
switch (event.type) {
|
|
114
|
-
case "message": {
|
|
115
|
-
const message = event.message;
|
|
116
|
-
if (message.type !== "assistant") break;
|
|
117
|
-
const assistantMsg = message;
|
|
118
|
-
if (assistantMsg.message.usage) {
|
|
119
|
-
updateAgentTranscript(agentId, {
|
|
120
|
-
tokenUsage: {
|
|
121
|
-
inputTokens: assistantMsg.message.usage.input_tokens,
|
|
122
|
-
outputTokens: assistantMsg.message.usage.output_tokens,
|
|
123
|
-
cacheReadTokens: assistantMsg.message.usage.cache_read_input_tokens,
|
|
124
|
-
cacheCreationTokens: assistantMsg.message.usage.cache_creation_input_tokens
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
const allMessages = [...engine.messages];
|
|
129
|
-
const normalized = normalizeMessages(allMessages);
|
|
130
|
-
for (const content of assistantMsg.message.content) {
|
|
131
|
-
if (content.type === "text" && content.text && content.text !== INTERRUPT_MESSAGE) {
|
|
132
|
-
const preview = content.text.length > 200 ? content.text.substring(0, 200) + "..." : content.text;
|
|
133
|
-
yield {
|
|
134
|
-
type: "progress",
|
|
135
|
-
content: createAssistantMessage(`${preview}`),
|
|
136
|
-
normalizedMessages: normalized,
|
|
137
|
-
tools
|
|
138
|
-
};
|
|
139
|
-
} else if (content.type === "tool_use") {
|
|
140
|
-
const toolMessage = normalized.find(
|
|
141
|
-
(m) => m.type === "assistant" && m.message.content[0]?.type === "tool_use" && m.message.content[0].id === content.id
|
|
142
|
-
);
|
|
143
|
-
if (toolMessage) {
|
|
144
|
-
yield {
|
|
145
|
-
type: "progress",
|
|
146
|
-
content: toolMessage,
|
|
147
|
-
normalizedMessages: normalized,
|
|
148
|
-
tools
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
case "state_change": {
|
|
156
|
-
if (event.to === "idle" || event.to === "stopped") {
|
|
157
|
-
engineDone = true;
|
|
158
|
-
}
|
|
159
|
-
break;
|
|
160
|
-
}
|
|
161
|
-
case "error": {
|
|
162
|
-
debug.error("FOREGROUND_ADAPTER_ENGINE_ERROR", {
|
|
163
|
-
error: event.error.message
|
|
164
|
-
});
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
// turn_start, turn_end, injected_messages, messages_set: no yield needed
|
|
168
|
-
default:
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
await submitPromise;
|
|
174
|
-
} finally {
|
|
175
|
-
if (opts.messagesOut) {
|
|
176
|
-
opts.messagesOut.current = [...engine.messages];
|
|
177
|
-
}
|
|
178
|
-
unsubEvents();
|
|
179
|
-
await engine.stop();
|
|
180
|
-
globalRegistry.unregister(agentId);
|
|
181
|
-
if (resolveWaiting) {
|
|
182
|
-
const r = resolveWaiting;
|
|
183
|
-
resolveWaiting = null;
|
|
184
|
-
r();
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
export {
|
|
189
|
-
runForegroundEngine
|
|
190
|
-
};
|
|
191
|
-
//# sourceMappingURL=foregroundAdapter.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/engine/foregroundAdapter.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Foreground Adapter \u2014 Wraps AgentEngine for synchronous (foreground) usage in TaskTool.\n *\n * Converts AgentEngine's event-driven model into TaskTool's async generator yield protocol.\n * This replaces the manual query loop that was previously duplicated in TaskTool's Path C.\n *\n * Flow:\n * 1. Create AgentEngine with role='teammate', no idleTimeoutMs\n * 2. Register in global EngineRegistry (so REPL can switch focus)\n * 3. Wire onMessage \u2192 transcript persistence + log writing\n * 4. Subscribe to engine events \u2192 buffer into event queue\n * 5. engine.start() + engine.submitPrompt() (fire-and-forget)\n * 6. Generator loop: drain event queue, yield progress for each assistant content block\n * 7. On engine idle \u2192 break, yield final result\n * 8. finally: engine.stop(), unregister, cleanup\n */\n\nimport type { Tool } from '@tool'\nimport type { AssistantMessage, Message } from '@query'\nimport type { NormalizedMessage } from '@utils/messages'\nimport type { EngineEvent } from './types'\nimport { AgentEngine } from './AgentEngine'\nimport { getGlobalRegistry } from './EngineRegistry'\nimport { hasPermissionsToUseTool } from '@permissions'\nimport {\n createAssistantMessage,\n normalizeMessages,\n INTERRUPT_MESSAGE,\n} from '@utils/messages'\nimport {\n appendMessageToTranscript,\n updateAgentTranscript,\n} from '@utils/agentTranscripts'\nimport { getMessagesPath, overwriteLog } from '@utils/log'\nimport { debug } from '@utils/debugLogger'\n\n// \u2500\u2500 Types \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport interface ForegroundEngineOptions {\n agentId: string\n teamName?: string\n teammateName?: string\n agentType: string\n systemPrompt: string[] | (() => Promise<string[]>)\n context: Record<string, string> | (() => Promise<Record<string, string>>)\n tools: Tool[]\n initialMessages: Message[]\n prompt: string\n maxTurns?: number\n maxThinkingTokens: number\n model?: string\n forkNumber: number\n messageLogName: string\n sidechainNumber: number\n verbose: boolean\n safeMode?: boolean\n safetyMode?: import('../utils/config').SafetyMode\n /** Permission mode for tool execution (bypassPermissions for team agents). */\n permissionMode?: string\n readFileTimestamps: Record<string, number>\n abortController: AbortController\n /**\n * Mutable ref that the adapter populates with the engine's final messages\n * after the query loop completes. This lets TaskTool access the full\n * conversation history for post-completion logic (transcript, result building).\n */\n messagesOut?: { current: Message[] }\n}\n\n/** Matches the yield type of Tool.call() \u2014 progress events only */\nexport type ForegroundProgressYield = {\n type: 'progress'\n content: AssistantMessage | null\n normalizedMessages?: NormalizedMessage[]\n tools?: Tool[]\n}\n\n// \u2500\u2500 Adapter \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport async function* runForegroundEngine(\n opts: ForegroundEngineOptions,\n): AsyncGenerator<ForegroundProgressYield, void, unknown> {\n const {\n agentId,\n teamName,\n agentType,\n systemPrompt,\n context,\n tools,\n initialMessages,\n prompt,\n maxTurns,\n maxThinkingTokens,\n model,\n forkNumber,\n messageLogName,\n sidechainNumber,\n verbose,\n safeMode,\n safetyMode,\n readFileTimestamps,\n abortController,\n } = opts\n const { permissionMode } = opts\n\n // \u2500\u2500 Event queue for bridging push (engine events) \u2192 pull (generator yield) \u2500\u2500\n const eventQueue: EngineEvent[] = []\n let resolveWaiting: (() => void) | null = null\n\n function pushEvent(event: EngineEvent): void {\n eventQueue.push(event)\n if (resolveWaiting) {\n const r = resolveWaiting\n resolveWaiting = null\n r()\n }\n }\n\n /** Wait until at least one event is in the queue, or engine is done. */\n function waitForEvents(): Promise<void> {\n if (eventQueue.length > 0) return Promise.resolve()\n return new Promise(resolve => {\n resolveWaiting = resolve\n })\n }\n\n // \u2500\u2500 Create engine \u2500\u2500\n const engine = new AgentEngine({\n agentId,\n name: opts.teammateName || agentType,\n role: teamName ? 'teammate' : 'standalone',\n teamName,\n systemPrompt,\n context,\n tools,\n initialMessages: [...initialMessages],\n // No idleTimeoutMs \u2014 foreground engines don't auto-stop\n maxTurns,\n maxThinkingTokens,\n model,\n forkNumber,\n messageLogName,\n verbose,\n safeMode,\n safetyMode,\n permissionMode: permissionMode as any,\n readFileTimestamps,\n canUseTool: hasPermissionsToUseTool,\n askUser: () => Promise.resolve([]),\n setToolJSX: () => {},\n onMessage: message => {\n // Persist to transcript\n appendMessageToTranscript(agentId, message)\n // Write to log file\n overwriteLog(\n getMessagesPath(messageLogName, forkNumber, sidechainNumber),\n [...engine.messages].filter(m => m.type !== 'progress'),\n )\n },\n })\n\n // \u2500\u2500 Register in global registry (so REPL can switch focus) \u2500\u2500\n const globalRegistry = getGlobalRegistry()\n globalRegistry.register(agentId, engine)\n\n // \u2500\u2500 Connect external abort \u2192 engine.abort() \u2500\u2500\n if (abortController.signal.aborted) {\n engine.abort()\n } else {\n abortController.signal.addEventListener('abort', () => engine.abort(), {\n once: true,\n })\n }\n\n // \u2500\u2500 Subscribe to engine events \u2192 push to queue \u2500\u2500\n const unsubEvents = engine.on(event => {\n pushEvent(event)\n })\n\n // \u2500\u2500 Track whether engine is done \u2500\u2500\n let engineDone = false\n\n try {\n // Start engine and submit prompt (fire-and-forget)\n await engine.start()\n // submitPrompt is async but we don't await it \u2014 we consume events via the queue\n const submitPromise = engine.submitPrompt(prompt)\n submitPromise.catch(err => {\n debug.error('FOREGROUND_ADAPTER_SUBMIT_ERROR', { error: err })\n pushEvent({\n type: 'error',\n error: err instanceof Error ? err : new Error(String(err)),\n })\n })\n\n // \u2500\u2500 Event consumption loop \u2500\u2500\n while (!engineDone) {\n await waitForEvents()\n\n // Drain all buffered events\n const batch = eventQueue.splice(0)\n\n for (const event of batch) {\n switch (event.type) {\n case 'message': {\n const message = event.message\n if (message.type !== 'assistant') break\n\n const assistantMsg = message as AssistantMessage\n\n // Real-time token usage update for transcript\n if (assistantMsg.message.usage) {\n updateAgentTranscript(agentId, {\n tokenUsage: {\n inputTokens: assistantMsg.message.usage.input_tokens,\n outputTokens: assistantMsg.message.usage.output_tokens,\n cacheReadTokens:\n assistantMsg.message.usage.cache_read_input_tokens,\n cacheCreationTokens:\n assistantMsg.message.usage.cache_creation_input_tokens,\n },\n })\n }\n\n // Yield per-content-block progress (matches Path C's behavior)\n const allMessages = [...engine.messages]\n const normalized = normalizeMessages(allMessages)\n\n for (const content of assistantMsg.message.content) {\n if (\n content.type === 'text' &&\n content.text &&\n content.text !== INTERRUPT_MESSAGE\n ) {\n const preview =\n content.text.length > 200\n ? content.text.substring(0, 200) + '...'\n : content.text\n yield {\n type: 'progress',\n content: createAssistantMessage(`${preview}`),\n normalizedMessages: normalized,\n tools,\n }\n } else if (content.type === 'tool_use') {\n // Find the normalized message containing this tool_use\n const toolMessage = normalized.find(\n m =>\n m.type === 'assistant' &&\n m.message.content[0]?.type === 'tool_use' &&\n m.message.content[0].id === content.id,\n ) as AssistantMessage | undefined\n\n if (toolMessage) {\n yield {\n type: 'progress',\n content: toolMessage,\n normalizedMessages: normalized,\n tools,\n }\n }\n }\n }\n break\n }\n\n case 'state_change': {\n if (event.to === 'idle' || event.to === 'stopped') {\n engineDone = true\n }\n break\n }\n\n case 'error': {\n // Errors are emitted but the engine may continue or transition to idle.\n // We just log them; the final state_change to idle/stopped will end the loop.\n debug.error('FOREGROUND_ADAPTER_ENGINE_ERROR', {\n error: event.error.message,\n })\n break\n }\n\n // turn_start, turn_end, injected_messages, messages_set: no yield needed\n default:\n break\n }\n }\n }\n\n // \u2500\u2500 Await submitPrompt to ensure any thrown errors are caught \u2500\u2500\n await submitPromise\n } finally {\n // \u2500\u2500 Populate messagesOut so caller has access to engine's final messages \u2500\u2500\n if (opts.messagesOut) {\n opts.messagesOut.current = [...engine.messages]\n }\n\n // \u2500\u2500 Cleanup \u2500\u2500\n unsubEvents()\n await engine.stop()\n globalRegistry.unregister(agentId)\n\n // Wake up any blocked waitForEvents() so the generator can return\n if (resolveWaiting) {\n const r = resolveWaiting\n resolveWaiting = null\n r()\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/engine/index.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AgentEngine } from "./AgentEngine.js";
|
|
2
|
-
import {
|
|
3
|
-
EngineRegistry,
|
|
4
|
-
getGlobalRegistry,
|
|
5
|
-
setGlobalRegistry
|
|
6
|
-
} from "./EngineRegistry.js";
|
|
7
|
-
import { runForegroundEngine } from "./foregroundAdapter.js";
|
|
8
|
-
export {
|
|
9
|
-
AgentEngine,
|
|
10
|
-
EngineRegistry,
|
|
11
|
-
getGlobalRegistry,
|
|
12
|
-
runForegroundEngine,
|
|
13
|
-
setGlobalRegistry
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
package/dist/engine/index.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/engine/index.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * AgentEngine \u2014 barrel export\n */\n\nexport { AgentEngine } from './AgentEngine'\nexport {\n EngineRegistry,\n getGlobalRegistry,\n setGlobalRegistry,\n} from './EngineRegistry'\nexport { runForegroundEngine } from './foregroundAdapter'\nexport type {\n ForegroundEngineOptions,\n ForegroundProgressYield,\n} from './foregroundAdapter'\nexport type {\n EngineState,\n EngineEvent,\n EngineEventListener,\n AgentEngineConfig,\n AgentRole,\n} from './types'\n"],
|
|
5
|
-
"mappings": "AAIA,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,2BAA2B;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/engine/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=types.js.map
|
package/dist/engine/types.js.map
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S node --no-warnings=ExperimentalWarning --enable-source-maps
|
|
2
|
-
import { EventEmitter } from "events";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { dirname, join } from "node:path";
|
|
5
|
-
import { existsSync } from "node:fs";
|
|
6
|
-
process.env.DEV = "false";
|
|
7
|
-
process.env["DEV"] = "false";
|
|
8
|
-
EventEmitter.defaultMaxListeners = 20;
|
|
9
|
-
try {
|
|
10
|
-
if (!process.env.YOGA_WASM_PATH) {
|
|
11
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
-
const __dirname = dirname(__filename);
|
|
13
|
-
const candidates = [
|
|
14
|
-
join(__dirname, "./yoga.wasm"),
|
|
15
|
-
// dist/entrypoints/yoga.wasm
|
|
16
|
-
join(__dirname, "../yoga.wasm"),
|
|
17
|
-
// dist/yoga.wasm
|
|
18
|
-
join(__dirname, "../../yoga.wasm")
|
|
19
|
-
// project root (dev mode)
|
|
20
|
-
];
|
|
21
|
-
for (const candidate of candidates) {
|
|
22
|
-
if (existsSync(candidate)) {
|
|
23
|
-
process.env.YOGA_WASM_PATH = candidate;
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
} catch {
|
|
29
|
-
}
|
|
30
|
-
async function main() {
|
|
31
|
-
try {
|
|
32
|
-
await import("./cli.js");
|
|
33
|
-
} catch (error) {
|
|
34
|
-
const err = error;
|
|
35
|
-
const message = err.message || "";
|
|
36
|
-
if (message.includes("react-devtools-core")) {
|
|
37
|
-
console.error("\n\u274C Failed to start: react-devtools-core not found");
|
|
38
|
-
console.error(
|
|
39
|
-
" This may be caused by DEV environment variable being set."
|
|
40
|
-
);
|
|
41
|
-
console.error(" Try running: unset DEV && minto\n");
|
|
42
|
-
} else if (message.includes("yoga") || message.includes("YOGA")) {
|
|
43
|
-
console.error("\n\u274C Failed to start: yoga-layout initialization failed");
|
|
44
|
-
console.error(" The yoga.wasm file may be missing or corrupted.");
|
|
45
|
-
console.error(" Try reinstalling: npm install -g @within-7/minto\n");
|
|
46
|
-
} else {
|
|
47
|
-
console.error("\u274C Failed to start:", message || err);
|
|
48
|
-
if (err.stack) {
|
|
49
|
-
console.error(err.stack);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
process.exit(1);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
main();
|
|
56
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/entrypoints/bootstrap.ts"],
|
|
4
|
-
"sourcesContent": ["#!/usr/bin/env -S node --no-warnings=ExperimentalWarning --enable-source-maps\n\n/**\n * Bootstrap entry point for Minto CLI\n *\n * CRITICAL: This file MUST remain minimal with NO static imports of application code.\n *\n * This bootstrap exists because ESM static imports execute BEFORE the importing\n * module's code. We need certain initializations to happen BEFORE any application\n * modules are loaded:\n *\n * 1. DEV='false' - Ink checks process.env['DEV'] at module load time and tries to\n * import 'react-devtools-core' if DEV='true'. This package isn't bundled.\n *\n * 2. EventEmitter.defaultMaxListeners - Must be set before any modules create\n * EventEmitters to prevent \"MaxListenersExceededWarning\" during startup.\n *\n * 3. YOGA_WASM_PATH - Must be set before Ink initializes yoga-layout for proper\n * terminal layout rendering.\n *\n * Solution: Use dynamic import() to load cli.tsx AFTER all initializations.\n * Dynamic import() is evaluated at runtime, not at module load time.\n *\n * DO NOT add any static imports here except for Node.js built-ins that don't\n * chain to application code (directly or transitively).\n */\n\nimport { EventEmitter } from 'events'\nimport { fileURLToPath } from 'node:url'\nimport { dirname, join } from 'node:path'\nimport { existsSync } from 'node:fs'\n\n// ============================================================================\n// 1. Disable Ink's development mode\n// ============================================================================\n// Prevents Ink from trying to load react-devtools-core which isn't bundled.\n// Must use both syntaxes because Bun's --define only replaces dot syntax.\nprocess.env.DEV = 'false'\nprocess.env['DEV'] = 'false'\n\n// ============================================================================\n// 2. Increase EventEmitter max listeners\n// ============================================================================\n// Components like ModelConfig, ModelSelector use multiple useInput hooks which\n// add listeners. Default is 10, we increase to 20 to accommodate deep hierarchies.\n// Must be set before any modules create EventEmitters.\nEventEmitter.defaultMaxListeners = 20\n\n// ============================================================================\n// 3. Set YOGA_WASM_PATH for Ink layout engine\n// ============================================================================\n// Ink uses yoga-layout for terminal UI layout. The WASM file path must be set\n// before Ink initializes. Resolve relative to this file for both dev and dist.\ntry {\n if (!process.env.YOGA_WASM_PATH) {\n const __filename = fileURLToPath(import.meta.url)\n const __dirname = dirname(__filename)\n // Check multiple possible locations\n const candidates = [\n join(__dirname, './yoga.wasm'), // dist/entrypoints/yoga.wasm\n join(__dirname, '../yoga.wasm'), // dist/yoga.wasm\n join(__dirname, '../../yoga.wasm'), // project root (dev mode)\n ]\n for (const candidate of candidates) {\n if (existsSync(candidate)) {\n process.env.YOGA_WASM_PATH = candidate\n break\n }\n }\n }\n} catch {\n // Ignore errors - yoga will use fallback or error at runtime\n}\n\n// ============================================================================\n// Main: Dynamically import the CLI\n// ============================================================================\n// This ensures all static imports in cli.tsx see the initialized environment.\nasync function main(): Promise<void> {\n try {\n await import('./cli.js')\n } catch (error) {\n // Provide helpful error messages for common failures\n const err = error as Error\n const message = err.message || ''\n\n if (message.includes('react-devtools-core')) {\n console.error('\\n\u274C Failed to start: react-devtools-core not found')\n console.error(\n ' This may be caused by DEV environment variable being set.',\n )\n console.error(' Try running: unset DEV && minto\\n')\n } else if (message.includes('yoga') || message.includes('YOGA')) {\n console.error('\\n\u274C Failed to start: yoga-layout initialization failed')\n console.error(' The yoga.wasm file may be missing or corrupted.')\n console.error(' Try reinstalling: npm install -g @within-7/minto\\n')\n } else {\n console.error('\u274C Failed to start:', message || err)\n if (err.stack) {\n console.error(err.stack)\n }\n }\n process.exit(1)\n }\n}\n\nmain()\n"],
|
|
5
|
-
"mappings": ";AA2BA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,SAAS,YAAY;AAC9B,SAAS,kBAAkB;AAO3B,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI,KAAK,IAAI;AAQrB,aAAa,sBAAsB;AAOnC,IAAI;AACF,MAAI,CAAC,QAAQ,IAAI,gBAAgB;AAC/B,UAAM,aAAa,cAAc,YAAY,GAAG;AAChD,UAAM,YAAY,QAAQ,UAAU;AAEpC,UAAM,aAAa;AAAA,MACjB,KAAK,WAAW,aAAa;AAAA;AAAA,MAC7B,KAAK,WAAW,cAAc;AAAA;AAAA,MAC9B,KAAK,WAAW,iBAAiB;AAAA;AAAA,IACnC;AACA,eAAW,aAAa,YAAY;AAClC,UAAI,WAAW,SAAS,GAAG;AACzB,gBAAQ,IAAI,iBAAiB;AAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,QAAQ;AAER;AAMA,eAAe,OAAsB;AACnC,MAAI;AACF,UAAM,OAAO,UAAU;AAAA,EACzB,SAAS,OAAO;AAEd,UAAM,MAAM;AACZ,UAAM,UAAU,IAAI,WAAW;AAE/B,QAAI,QAAQ,SAAS,qBAAqB,GAAG;AAC3C,cAAQ,MAAM,yDAAoD;AAClE,cAAQ;AAAA,QACN;AAAA,MACF;AACA,cAAQ,MAAM,sCAAsC;AAAA,IACtD,WAAW,QAAQ,SAAS,MAAM,KAAK,QAAQ,SAAS,MAAM,GAAG;AAC/D,cAAQ,MAAM,6DAAwD;AACtE,cAAQ,MAAM,oDAAoD;AAClE,cAAQ,MAAM,uDAAuD;AAAA,IACvE,OAAO;AACL,cAAQ,MAAM,2BAAsB,WAAW,GAAG;AAClD,UAAI,IAAI,OAAO;AACb,gBAAQ,MAAM,IAAI,KAAK;AAAA,MACzB;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,KAAK;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|