@within-7/minto 0.4.1 → 0.4.2
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/dist/Tool.js +7 -0
- package/dist/Tool.js.map +2 -2
- package/dist/commands/agents/AgentsCommand.js +1 -1
- package/dist/commands/agents/AgentsCommand.js.map +2 -2
- package/dist/commands/agents/constants.js +2 -2
- package/dist/commands/agents/constants.js.map +2 -2
- package/dist/commands/clear.js +4 -3
- package/dist/commands/clear.js.map +2 -2
- package/dist/commands/compact.js +2 -2
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/context.js +3 -1
- package/dist/commands/context.js.map +2 -2
- package/dist/commands/login.js +128 -0
- package/dist/commands/login.js.map +7 -0
- package/dist/commands/memory.js +33 -82
- package/dist/commands/memory.js.map +2 -2
- package/dist/commands/quit.js +3 -1
- package/dist/commands/quit.js.map +2 -2
- package/dist/commands/resume.js +39 -239
- package/dist/commands/resume.js.map +2 -2
- package/dist/commands/tasks.js +1 -1
- package/dist/commands/tasks.js.map +2 -2
- package/dist/commands/terminalSetup.js +6 -2
- package/dist/commands/terminalSetup.js.map +2 -2
- package/dist/commands.js +2 -0
- package/dist/commands.js.map +2 -2
- package/dist/components/AgentDetailView.js +126 -0
- package/dist/components/AgentDetailView.js.map +7 -0
- package/dist/components/AgentThinkingBlock.js +1 -1
- package/dist/components/AgentThinkingBlock.js.map +2 -2
- package/dist/components/AgentViewBanner.js +22 -0
- package/dist/components/AgentViewBanner.js.map +7 -0
- package/dist/components/HeaderBar.js +1 -1
- package/dist/components/HeaderBar.js.map +2 -2
- package/dist/components/Help.js +8 -1
- package/dist/components/Help.js.map +2 -2
- package/dist/components/HotkeyHelpPanel.js +26 -8
- package/dist/components/HotkeyHelpPanel.js.map +2 -2
- package/dist/components/IdleNotificationBar.js +10 -0
- package/dist/components/IdleNotificationBar.js.map +7 -0
- package/dist/components/ModelSelector/ModelSelector.js +55 -20
- package/dist/components/ModelSelector/ModelSelector.js.map +2 -2
- package/dist/components/PromptInput.js +186 -115
- package/dist/components/PromptInput.js.map +2 -2
- package/dist/components/RewindPanel.js +272 -0
- package/dist/components/RewindPanel.js.map +7 -0
- package/dist/components/Spinner.js +10 -21
- package/dist/components/Spinner.js.map +2 -2
- package/dist/components/StreamingTextPreview.js +29 -0
- package/dist/components/StreamingTextPreview.js.map +7 -0
- package/dist/components/SubagentBlock.js +3 -2
- package/dist/components/SubagentBlock.js.map +2 -2
- package/dist/components/SubagentProgress.js +4 -4
- package/dist/components/SubagentProgress.js.map +2 -2
- package/dist/components/TabbedListView/SearchInput.js +1 -1
- package/dist/components/TabbedListView/SearchInput.js.map +2 -2
- package/dist/components/TabbedListView/TabbedListView.js +87 -41
- package/dist/components/TabbedListView/TabbedListView.js.map +2 -2
- package/dist/components/TaskCard.js +4 -4
- package/dist/components/TaskCard.js.map +2 -2
- package/dist/components/TeamMemberPanel.js +107 -0
- package/dist/components/TeamMemberPanel.js.map +7 -0
- package/dist/components/ThinkingSelector.js +84 -0
- package/dist/components/ThinkingSelector.js.map +7 -0
- package/dist/components/TitledDivider.js +26 -0
- package/dist/components/TitledDivider.js.map +7 -0
- package/dist/components/TodoPanel.js +31 -30
- package/dist/components/TodoPanel.js.map +2 -2
- package/dist/components/TokenWarning.js +28 -7
- package/dist/components/TokenWarning.js.map +2 -2
- package/dist/components/messages/AssistantTextMessage.js +5 -2
- package/dist/components/messages/AssistantTextMessage.js.map +2 -2
- package/dist/components/messages/AssistantToolUseMessage.js +9 -1
- package/dist/components/messages/AssistantToolUseMessage.js.map +2 -2
- package/dist/components/messages/DefaultToolResultFallback.js +11 -0
- package/dist/components/messages/DefaultToolResultFallback.js.map +7 -0
- package/dist/components/messages/ParallelTasksGroupView.js +14 -6
- package/dist/components/messages/ParallelTasksGroupView.js.map +2 -2
- package/dist/components/messages/TaskInModuleView.js +27 -27
- package/dist/components/messages/TaskInModuleView.js.map +2 -2
- package/dist/components/messages/UserGuidanceMessage.js +26 -0
- package/dist/components/messages/UserGuidanceMessage.js.map +7 -0
- package/dist/components/messages/UserPromptMessage.js +2 -1
- package/dist/components/messages/UserPromptMessage.js.map +2 -2
- package/dist/components/messages/UserTeamNotificationMessage.js +91 -0
- package/dist/components/messages/UserTeamNotificationMessage.js.map +7 -0
- package/dist/components/messages/UserTextMessage.js +8 -0
- package/dist/components/messages/UserTextMessage.js.map +2 -2
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +4 -2
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +2 -2
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +18 -1
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +2 -2
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +12 -1
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +2 -2
- package/dist/components/permissions/PermissionRequest.js +4 -0
- package/dist/components/permissions/PermissionRequest.js.map +2 -2
- package/dist/components/permissions/PlanApprovalRequest.js +164 -0
- package/dist/components/permissions/PlanApprovalRequest.js.map +7 -0
- package/dist/constants/agentTeams.js +17 -0
- package/dist/constants/agentTeams.js.map +7 -0
- package/dist/constants/macros.js +2 -1
- package/dist/constants/macros.js.map +2 -2
- package/dist/constants/prompts/agentPrompt.js +1 -0
- package/dist/constants/prompts/agentPrompt.js.map +2 -2
- package/dist/constants/prompts/autoMemory.js +39 -0
- package/dist/constants/prompts/autoMemory.js.map +7 -0
- package/dist/constants/prompts/codeConventions.js +1 -13
- package/dist/constants/prompts/codeConventions.js.map +2 -2
- package/dist/constants/prompts/doingTasks.js +21 -2
- package/dist/constants/prompts/doingTasks.js.map +2 -2
- package/dist/constants/prompts/envInfo.js +6 -7
- package/dist/constants/prompts/envInfo.js.map +2 -2
- package/dist/constants/prompts/index.js +27 -5
- package/dist/constants/prompts/index.js.map +2 -2
- package/dist/constants/prompts/taskManagement.js +2 -43
- package/dist/constants/prompts/taskManagement.js.map +2 -2
- package/dist/constants/prompts/teamOverlays.js +50 -0
- package/dist/constants/prompts/teamOverlays.js.map +7 -0
- package/dist/constants/prompts/toneAndStyle.js +4 -29
- package/dist/constants/prompts/toneAndStyle.js.map +2 -2
- package/dist/constants/prompts/toolUsagePolicy.js +7 -22
- package/dist/constants/prompts/toolUsagePolicy.js.map +2 -2
- package/dist/constants/toolInputExamples.js +2 -2
- package/dist/constants/toolInputExamples.js.map +2 -2
- package/dist/context.js +39 -6
- package/dist/context.js.map +2 -2
- package/dist/core/backupManager.js +1 -1
- package/dist/core/backupManager.js.map +2 -2
- package/dist/core/permissions/rules/planModeRule.js +1 -1
- package/dist/core/permissions/rules/planModeRule.js.map +1 -1
- package/dist/core/permissions/rules/safeModeRule.js +1 -1
- package/dist/core/permissions/rules/safeModeRule.js.map +1 -1
- package/dist/engine/AgentEngine.js +902 -0
- package/dist/engine/AgentEngine.js.map +7 -0
- package/dist/engine/EngineRegistry.js +89 -0
- package/dist/engine/EngineRegistry.js.map +7 -0
- package/dist/engine/foregroundAdapter.js +191 -0
- package/dist/engine/foregroundAdapter.js.map +7 -0
- package/dist/engine/index.js +15 -0
- package/dist/engine/index.js.map +7 -0
- package/dist/engine/types.js +1 -0
- package/dist/engine/types.js.map +7 -0
- package/dist/entrypoints/cli.js +410 -79
- package/dist/entrypoints/cli.js.map +3 -3
- package/dist/hooks/useAgentEngine.js +129 -0
- package/dist/hooks/useAgentEngine.js.map +7 -0
- package/dist/hooks/useAgentTokenStats.js +0 -16
- package/dist/hooks/useAgentTokenStats.js.map +2 -2
- package/dist/hooks/useCanUseTool.js +47 -2
- package/dist/hooks/useCanUseTool.js.map +2 -2
- package/dist/hooks/useDeferredLoading.js +4 -1
- package/dist/hooks/useDeferredLoading.js.map +2 -2
- package/dist/hooks/useIdleNotifications.js +66 -0
- package/dist/hooks/useIdleNotifications.js.map +7 -0
- package/dist/hooks/useSessionTracking.js +9 -7
- package/dist/hooks/useSessionTracking.js.map +2 -2
- package/dist/hooks/useTeamMembers.js +51 -0
- package/dist/hooks/useTeamMembers.js.map +7 -0
- package/dist/i18n/locales/en.js +77 -12
- package/dist/i18n/locales/en.js.map +2 -2
- package/dist/i18n/locales/zh-CN.js +77 -12
- package/dist/i18n/locales/zh-CN.js.map +2 -2
- package/dist/i18n/types.js.map +1 -1
- package/dist/messages.js.map +2 -2
- package/dist/permissions.js +113 -7
- package/dist/permissions.js.map +2 -2
- package/dist/query.js +135 -37
- package/dist/query.js.map +2 -2
- package/dist/screens/REPL.js +504 -361
- package/dist/screens/REPL.js.map +3 -3
- package/dist/screens/ResumeConversation.js +199 -14
- package/dist/screens/ResumeConversation.js.map +2 -2
- package/dist/services/adapters/base.js.map +1 -1
- package/dist/services/agentTeams/backends/headless.js +108 -0
- package/dist/services/agentTeams/backends/headless.js.map +7 -0
- package/dist/services/agentTeams/backends/inProcess.js +102 -0
- package/dist/services/agentTeams/backends/inProcess.js.map +7 -0
- package/dist/services/agentTeams/backends/resolver.js +18 -0
- package/dist/services/agentTeams/backends/resolver.js.map +7 -0
- package/dist/services/agentTeams/backends/tmux.js +168 -0
- package/dist/services/agentTeams/backends/tmux.js.map +7 -0
- package/dist/services/agentTeams/backends/types.js +1 -0
- package/dist/services/agentTeams/backends/types.js.map +7 -0
- package/dist/services/agentTeams/heartbeat.js +88 -0
- package/dist/services/agentTeams/heartbeat.js.map +7 -0
- package/dist/services/agentTeams/index.js +42 -2
- package/dist/services/agentTeams/index.js.map +2 -2
- package/dist/services/agentTeams/injectionChannel.js +105 -0
- package/dist/services/agentTeams/injectionChannel.js.map +7 -0
- package/dist/services/agentTeams/mailbox.js +410 -30
- package/dist/services/agentTeams/mailbox.js.map +2 -2
- package/dist/services/agentTeams/messageFormatter.js +80 -0
- package/dist/services/agentTeams/messageFormatter.js.map +7 -0
- package/dist/services/agentTeams/permissionDelegation.js +71 -0
- package/dist/services/agentTeams/permissionDelegation.js.map +7 -0
- package/dist/services/agentTeams/teamEvents.js +45 -0
- package/dist/services/agentTeams/teamEvents.js.map +7 -0
- package/dist/services/agentTeams/teamManager.js +251 -34
- package/dist/services/agentTeams/teamManager.js.map +2 -2
- package/dist/services/agentTeams/teamTaskStore.js +290 -61
- package/dist/services/agentTeams/teamTaskStore.js.map +2 -2
- package/dist/services/agentTeams/teammateSpawner.js +99 -18
- package/dist/services/agentTeams/teammateSpawner.js.map +2 -2
- package/dist/services/hookExecutor.js +51 -8
- package/dist/services/hookExecutor.js.map +2 -2
- package/dist/services/llm/anthropicProvider.js +56 -59
- package/dist/services/llm/anthropicProvider.js.map +2 -2
- package/dist/services/llm/dispatch.js +24 -5
- package/dist/services/llm/dispatch.js.map +2 -2
- package/dist/services/llm/openaiProvider.js +115 -136
- package/dist/services/llm/openaiProvider.js.map +3 -3
- package/dist/services/llm/types.js +89 -15
- package/dist/services/llm/types.js.map +2 -2
- package/dist/services/mcpClient.js +80 -4
- package/dist/services/mcpClient.js.map +2 -2
- package/dist/services/mintoAuth.js +299 -0
- package/dist/services/mintoAuth.js.map +7 -0
- package/dist/services/oauth.js +3 -3
- package/dist/services/oauth.js.map +2 -2
- package/dist/services/openai.js +91 -20
- package/dist/services/openai.js.map +2 -2
- package/dist/services/plugins/pluginRuntime.js +11 -5
- package/dist/services/plugins/pluginRuntime.js.map +2 -2
- package/dist/services/plugins/pluginValidation.js +4 -2
- package/dist/services/plugins/pluginValidation.js.map +2 -2
- package/dist/services/sandbox/sandboxController.js +11 -3
- package/dist/services/sandbox/sandboxController.js.map +2 -2
- package/dist/services/sessionMemoryInjector.js +77 -0
- package/dist/services/sessionMemoryInjector.js.map +7 -0
- package/dist/services/systemReminder.js +130 -8
- package/dist/services/systemReminder.js.map +2 -2
- package/dist/services/taskStore.js +199 -8
- package/dist/services/taskStore.js.map +3 -3
- package/dist/services/topicDetector.js +169 -0
- package/dist/services/topicDetector.js.map +7 -0
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +0 -13
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +2 -2
- package/dist/tools/BashTool/BashTool.js +51 -28
- package/dist/tools/BashTool/BashTool.js.map +2 -2
- package/dist/tools/BashTool/prompt.js +95 -118
- package/dist/tools/BashTool/prompt.js.map +2 -2
- package/dist/tools/BashTool/utils.js +39 -1
- package/dist/tools/BashTool/utils.js.map +2 -2
- package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js +121 -0
- package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js.map +7 -0
- package/dist/tools/EnterWorktreeTool/prompt.js +22 -0
- package/dist/tools/EnterWorktreeTool/prompt.js.map +7 -0
- package/dist/tools/FileEditTool/FileEditTool.js +9 -4
- package/dist/tools/FileEditTool/FileEditTool.js.map +2 -2
- package/dist/tools/FileEditTool/prompt.js +3 -7
- package/dist/tools/FileEditTool/prompt.js.map +2 -2
- package/dist/tools/FileReadTool/FileReadTool.js +125 -3
- package/dist/tools/FileReadTool/FileReadTool.js.map +2 -2
- package/dist/tools/FileReadTool/prompt.js +1 -2
- package/dist/tools/FileReadTool/prompt.js.map +2 -2
- package/dist/tools/FileWriteTool/prompt.js +3 -5
- package/dist/tools/FileWriteTool/prompt.js.map +2 -2
- package/dist/tools/GlobTool/GlobTool.js +3 -2
- package/dist/tools/GlobTool/GlobTool.js.map +2 -2
- package/dist/tools/GrepTool/GrepTool.js +16 -5
- package/dist/tools/GrepTool/GrepTool.js.map +2 -2
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +2 -2
- package/dist/tools/MCPSearchTool/MCPSearchTool.js +172 -0
- package/dist/tools/MCPSearchTool/MCPSearchTool.js.map +7 -0
- package/dist/tools/MCPSearchTool/prompt.js +77 -0
- package/dist/tools/MCPSearchTool/prompt.js.map +7 -0
- package/dist/tools/MultiEditTool/prompt.js +4 -7
- package/dist/tools/MultiEditTool/prompt.js.map +2 -2
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js +12 -8
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +2 -2
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js +54 -1
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +2 -2
- package/dist/tools/PlanModeTool/prompt.js +23 -74
- package/dist/tools/PlanModeTool/prompt.js.map +2 -2
- package/dist/tools/SendMessageTool/SendMessageTool.js +341 -0
- package/dist/tools/SendMessageTool/SendMessageTool.js.map +7 -0
- package/dist/tools/SendMessageTool/prompt.js +44 -0
- package/dist/tools/SendMessageTool/prompt.js.map +7 -0
- package/dist/tools/TaskCreateTool/prompt.js +15 -4
- package/dist/tools/TaskCreateTool/prompt.js.map +2 -2
- package/dist/tools/TaskListTool/prompt.js +18 -3
- package/dist/tools/TaskListTool/prompt.js.map +2 -2
- package/dist/tools/TaskOutputTool/prompt.js +4 -3
- package/dist/tools/TaskOutputTool/prompt.js.map +2 -2
- package/dist/tools/TaskTool/TaskTool.js +762 -98
- package/dist/tools/TaskTool/TaskTool.js.map +3 -3
- package/dist/tools/TaskTool/constants.js +8 -2
- package/dist/tools/TaskTool/constants.js.map +2 -2
- package/dist/tools/TaskTool/prompt.js +74 -70
- package/dist/tools/TaskTool/prompt.js.map +2 -2
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js +15 -1
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js.map +2 -2
- package/dist/tools/TeamCreateTool/TeamCreateTool.js +129 -0
- package/dist/tools/TeamCreateTool/TeamCreateTool.js.map +7 -0
- package/dist/tools/TeamCreateTool/prompt.js +58 -0
- package/dist/tools/TeamCreateTool/prompt.js.map +7 -0
- package/dist/tools/TeamDeleteTool/TeamDeleteTool.js +151 -0
- package/dist/tools/TeamDeleteTool/TeamDeleteTool.js.map +7 -0
- package/dist/tools/TeamDeleteTool/prompt.js +16 -0
- package/dist/tools/TeamDeleteTool/prompt.js.map +7 -0
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +106 -15
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +2 -2
- package/dist/tools/URLFetcherTool/prompt.js +3 -2
- package/dist/tools/URLFetcherTool/prompt.js.map +2 -2
- package/dist/tools/WebSearchTool/WebSearchTool.js +2 -1
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +2 -2
- package/dist/tools/WebSearchTool/prompt.js +5 -4
- package/dist/tools/WebSearchTool/prompt.js.map +2 -2
- package/dist/tools.js +100 -20
- package/dist/tools.js.map +2 -2
- package/dist/types/PermissionMode.js +35 -6
- package/dist/types/PermissionMode.js.map +2 -2
- package/dist/types/hooks.js +2 -0
- package/dist/types/hooks.js.map +2 -2
- package/dist/types/plugin.js +2 -0
- package/dist/types/plugin.js.map +3 -3
- package/dist/utils/CircuitBreaker.js +15 -9
- package/dist/utils/CircuitBreaker.js.map +2 -2
- package/dist/utils/agentLoader.js +249 -112
- package/dist/utils/agentLoader.js.map +2 -2
- package/dist/utils/animationManager.js +40 -3
- package/dist/utils/animationManager.js.map +2 -2
- package/dist/utils/ask.js +7 -6
- package/dist/utils/ask.js.map +2 -2
- package/dist/utils/atomicWrite.js +23 -0
- package/dist/utils/atomicWrite.js.map +7 -0
- package/dist/utils/autoCompactCore.js +73 -56
- package/dist/utils/autoCompactCore.js.map +2 -2
- package/dist/utils/autoMemoryPaths.js +89 -0
- package/dist/utils/autoMemoryPaths.js.map +7 -0
- package/dist/utils/config.js +63 -38
- package/dist/utils/config.js.map +2 -2
- package/dist/utils/configSchema.js +13 -8
- package/dist/utils/configSchema.js.map +2 -2
- package/dist/utils/credentials/index.js +14 -0
- package/dist/utils/credentials/index.js.map +2 -2
- package/dist/utils/dualPath.js +24 -0
- package/dist/utils/dualPath.js.map +7 -0
- package/dist/utils/exit.js +66 -7
- package/dist/utils/exit.js.map +2 -2
- package/dist/utils/externalEditor.js +155 -0
- package/dist/utils/externalEditor.js.map +7 -0
- package/dist/utils/fileLock.js +67 -0
- package/dist/utils/fileLock.js.map +7 -0
- package/dist/utils/format.js +24 -14
- package/dist/utils/format.js.map +2 -2
- package/dist/utils/globalErrorHandler.js +5 -96
- package/dist/utils/globalErrorHandler.js.map +3 -3
- package/dist/utils/groupHandlers/parallelTasksHandler.js +5 -3
- package/dist/utils/groupHandlers/parallelTasksHandler.js.map +2 -2
- package/dist/utils/groupHandlers/taskHandler.js +2 -2
- package/dist/utils/groupHandlers/taskHandler.js.map +2 -2
- package/dist/utils/hookManager.js +64 -6
- package/dist/utils/hookManager.js.map +2 -2
- package/dist/utils/log.js +6 -2
- package/dist/utils/log.js.map +2 -2
- package/dist/utils/markdown.js +237 -19
- package/dist/utils/markdown.js.map +2 -2
- package/dist/utils/messageContextManager.js +18 -5
- package/dist/utils/messageContextManager.js.map +2 -2
- package/dist/utils/messageGroupManager.js +1 -1
- package/dist/utils/messageGroupManager.js.map +2 -2
- package/dist/utils/messages.js +104 -46
- package/dist/utils/messages.js.map +2 -2
- package/dist/utils/model.js +2 -2
- package/dist/utils/model.js.map +2 -2
- package/dist/utils/pasteCache.js +8 -4
- package/dist/utils/pasteCache.js.map +2 -2
- package/dist/utils/pluginLoader.js +18 -0
- package/dist/utils/pluginLoader.js.map +2 -2
- package/dist/utils/secureKeyStorage.js +36 -7
- package/dist/utils/secureKeyStorage.js.map +2 -2
- package/dist/utils/simpleMode.js +7 -0
- package/dist/utils/simpleMode.js.map +7 -0
- package/dist/utils/streamingState.js +11 -1
- package/dist/utils/streamingState.js.map +2 -2
- package/dist/utils/taskDisplayUtils.js +2 -1
- package/dist/utils/taskDisplayUtils.js.map +2 -2
- package/dist/utils/teamConfig.js +2 -2
- package/dist/utils/teamConfig.js.map +2 -2
- package/dist/utils/thinking.js +6 -2
- package/dist/utils/thinking.js.map +3 -3
- package/dist/utils/tokenProgress.js +55 -0
- package/dist/utils/tokenProgress.js.map +7 -0
- package/dist/utils/toolRiskClassification.js +26 -17
- package/dist/utils/toolRiskClassification.js.map +2 -2
- package/dist/utils/tooling/toolError.js +12 -0
- package/dist/utils/tooling/toolError.js.map +7 -0
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +10 -8
|
@@ -24,11 +24,6 @@ import { useTerminalSize } from "../hooks/useTerminalSize.js";
|
|
|
24
24
|
import { getTheme } from "../utils/theme.js";
|
|
25
25
|
import { BRAND_GRADIENT, SEMANTIC_COLORS } from "../constants/colors.js";
|
|
26
26
|
import { getModelManager } from "../utils/model.js";
|
|
27
|
-
import {
|
|
28
|
-
getGlobalConfig,
|
|
29
|
-
saveGlobalConfig,
|
|
30
|
-
getVerboseLabel
|
|
31
|
-
} from "../utils/config.js";
|
|
32
27
|
import { setTerminalTitle, clearScreen } from "../utils/terminal.js";
|
|
33
28
|
import terminalSetup, {
|
|
34
29
|
isShiftEnterKeyBindingInstalled,
|
|
@@ -38,6 +33,7 @@ import { usePermissionContext } from "../context/PermissionContext.js";
|
|
|
38
33
|
import { getHookManager } from "../utils/hookManager.js";
|
|
39
34
|
import { debug as debugLogger } from "../utils/debugLogger.js";
|
|
40
35
|
import { PROJECT_FILE } from "../constants/product.js";
|
|
36
|
+
import { openInExternalEditor, resolveEditor } from "../utils/externalEditor.js";
|
|
41
37
|
import { t } from "../i18n/index.js";
|
|
42
38
|
async function interpretHashCommand(input) {
|
|
43
39
|
try {
|
|
@@ -69,7 +65,7 @@ _Added on ${(/* @__PURE__ */ new Date()).toLocaleString()}_`;
|
|
|
69
65
|
}
|
|
70
66
|
function getPastedTextPrompt(text) {
|
|
71
67
|
const newlineCount = (text.match(/\r\n|\r|\n/g) || []).length;
|
|
72
|
-
return `[Pasted text +${newlineCount} lines]
|
|
68
|
+
return `[Pasted text #1 +${newlineCount} lines]`;
|
|
73
69
|
}
|
|
74
70
|
function PromptInput({
|
|
75
71
|
commands,
|
|
@@ -80,7 +76,6 @@ function PromptInput({
|
|
|
80
76
|
onQuery,
|
|
81
77
|
debug,
|
|
82
78
|
verbose,
|
|
83
|
-
verboseToggleMessage,
|
|
84
79
|
messages,
|
|
85
80
|
setToolJSX,
|
|
86
81
|
tools,
|
|
@@ -98,19 +93,30 @@ function PromptInput({
|
|
|
98
93
|
setForkConvoWithMessagesOnTheNextRender,
|
|
99
94
|
readFileTimestamps,
|
|
100
95
|
onToggleTodoPanel,
|
|
101
|
-
|
|
96
|
+
onToggleThinkingSelector,
|
|
97
|
+
onToggleScreen,
|
|
98
|
+
onToggleShowAllInTranscript,
|
|
99
|
+
screen = "prompt",
|
|
102
100
|
onModelChange,
|
|
103
|
-
|
|
101
|
+
onShowRewindPanel,
|
|
104
102
|
onToggleBackgroundPanel,
|
|
103
|
+
onToggleTeamPanel,
|
|
104
|
+
onCycleTeammate,
|
|
105
|
+
onToggleAgentView,
|
|
106
|
+
onKillAllAgents,
|
|
105
107
|
backgroundShellCount = 0,
|
|
106
108
|
isBackgroundPanelOpen = false,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
109
|
+
onInjectMessage,
|
|
110
|
+
onRemoveQueuedMessage,
|
|
111
|
+
injectionPending = false,
|
|
112
|
+
getQueuedUserMessages,
|
|
110
113
|
onInterrupt,
|
|
111
114
|
isOverlayActive = false,
|
|
112
115
|
unmount,
|
|
113
|
-
startupItems
|
|
116
|
+
startupItems,
|
|
117
|
+
teamMembers = [],
|
|
118
|
+
hasActiveTeam = false,
|
|
119
|
+
focusedAgentName
|
|
114
120
|
}) {
|
|
115
121
|
const [exitMessage, setExitMessage] = useState({ show: false });
|
|
116
122
|
const [message, setMessage] = useState({
|
|
@@ -123,19 +129,25 @@ function PromptInput({
|
|
|
123
129
|
const [placeholder, setPlaceholder] = useState("");
|
|
124
130
|
const [cursorOffset, setCursorOffset] = useState(input.length);
|
|
125
131
|
const [pastedText, setPastedText] = useState(null);
|
|
132
|
+
const pastedPlaceholderRef = useRef(null);
|
|
126
133
|
const [ctrlDCount, setCtrlDCount] = useState(0);
|
|
127
134
|
const [ctrlDTimer, setCtrlDTimer] = useState(null);
|
|
128
135
|
const [escCount, setEscCount] = useState(0);
|
|
129
136
|
const [escTimer, setEscTimer] = useState(null);
|
|
130
137
|
const ESC_DOUBLE_TAP_WINDOW = 500;
|
|
131
|
-
const [
|
|
138
|
+
const [ctrlFCount, setCtrlFCount] = useState(0);
|
|
139
|
+
const [ctrlFTimer, setCtrlFTimer] = useState(null);
|
|
132
140
|
useEffect(() => {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
141
|
+
return () => {
|
|
142
|
+
if (ctrlDTimer) clearTimeout(ctrlDTimer);
|
|
143
|
+
if (escTimer) clearTimeout(escTimer);
|
|
144
|
+
if (ctrlFTimer) clearTimeout(ctrlFTimer);
|
|
145
|
+
};
|
|
146
|
+
}, [ctrlDTimer, escTimer, ctrlFTimer]);
|
|
147
|
+
const [hotkeyMessage, setHotkeyMessage] = useState({ show: false });
|
|
137
148
|
const [showHotkeyHelp, setShowHotkeyHelp] = useState(false);
|
|
138
149
|
const [backgroundIndicatorFocused, setBackgroundIndicatorFocused] = useState(false);
|
|
150
|
+
const queuedMessages = getQueuedUserMessages?.() ?? [];
|
|
139
151
|
const { cycleMode, currentMode, getModeConfig } = usePermissionContext();
|
|
140
152
|
const prevModeRef = useRef(currentMode);
|
|
141
153
|
useEffect(() => {
|
|
@@ -279,17 +291,15 @@ function PromptInput({
|
|
|
279
291
|
input
|
|
280
292
|
);
|
|
281
293
|
const handleHistoryUp = () => {
|
|
282
|
-
if (
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
setCursorOffset(poppedPrompt.length);
|
|
288
|
-
return;
|
|
289
|
-
}
|
|
294
|
+
if (completionActive) return;
|
|
295
|
+
if (isLoading && queuedMessages.length > 0 && !input.trim()) {
|
|
296
|
+
const removed = onRemoveQueuedMessage?.();
|
|
297
|
+
if (removed) {
|
|
298
|
+
onInputChange(removed);
|
|
290
299
|
}
|
|
291
|
-
|
|
300
|
+
return;
|
|
292
301
|
}
|
|
302
|
+
onHistoryUp();
|
|
293
303
|
};
|
|
294
304
|
const handleHistoryDown = () => {
|
|
295
305
|
if (!completionActive) {
|
|
@@ -303,12 +313,11 @@ function PromptInput({
|
|
|
303
313
|
const decision = await hookManager.executeUserPromptSubmit(input2);
|
|
304
314
|
if (!decision.shouldContinue) {
|
|
305
315
|
if (decision.shouldAskUser) {
|
|
306
|
-
|
|
307
|
-
|
|
316
|
+
process.stderr.write(
|
|
317
|
+
`
|
|
318
|
+
\u26A0 Hook: ${decision.reason || "Hook requested pause."}
|
|
319
|
+
`
|
|
308
320
|
);
|
|
309
|
-
if (!confirmed) {
|
|
310
|
-
return;
|
|
311
|
-
}
|
|
312
321
|
} else {
|
|
313
322
|
setMessage({
|
|
314
323
|
show: true,
|
|
@@ -388,21 +397,6 @@ function PromptInput({
|
|
|
388
397
|
if (isDisabled) {
|
|
389
398
|
return;
|
|
390
399
|
}
|
|
391
|
-
if (isLoading) {
|
|
392
|
-
if (onQueuePrompt && input2.trim()) {
|
|
393
|
-
onQueuePrompt(input2.trim());
|
|
394
|
-
onInputChange("");
|
|
395
|
-
setMessage({
|
|
396
|
-
show: true,
|
|
397
|
-
text: `Queued: "${input2.slice(0, 30)}${input2.length > 30 ? "..." : ""}" (${queuedPrompts.length + 1} in queue)`
|
|
398
|
-
});
|
|
399
|
-
setTimeout(() => setMessage({ show: false }), 2e3);
|
|
400
|
-
}
|
|
401
|
-
return;
|
|
402
|
-
}
|
|
403
|
-
if (suggestions.length > 0 && completionActive) {
|
|
404
|
-
return;
|
|
405
|
-
}
|
|
406
400
|
const exitCommands = [
|
|
407
401
|
"exit",
|
|
408
402
|
"quit",
|
|
@@ -416,18 +410,35 @@ function PromptInput({
|
|
|
416
410
|
];
|
|
417
411
|
if (exitCommands.includes(input2.trim())) {
|
|
418
412
|
exit();
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
if (isLoading) {
|
|
416
|
+
if (onInjectMessage && input2.trim()) {
|
|
417
|
+
onInjectMessage(input2.trim());
|
|
418
|
+
onInputChange("");
|
|
419
|
+
}
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
if (suggestions.length > 0 && completionActive) {
|
|
423
|
+
return;
|
|
419
424
|
}
|
|
420
425
|
let finalInput = input2;
|
|
421
426
|
if (pastedText) {
|
|
422
|
-
const
|
|
423
|
-
if (finalInput.includes(
|
|
424
|
-
finalInput = finalInput.replace(
|
|
427
|
+
const storedPlaceholder = pastedPlaceholderRef.current;
|
|
428
|
+
if (storedPlaceholder && finalInput.includes(storedPlaceholder)) {
|
|
429
|
+
finalInput = finalInput.replace(storedPlaceholder, pastedText);
|
|
430
|
+
} else {
|
|
431
|
+
const pastedPrompt = getPastedTextPrompt(pastedText);
|
|
432
|
+
if (finalInput.includes(pastedPrompt)) {
|
|
433
|
+
finalInput = finalInput.replace(pastedPrompt, pastedText);
|
|
434
|
+
}
|
|
425
435
|
}
|
|
426
436
|
}
|
|
427
437
|
onInputChange("");
|
|
428
438
|
onModeChange("prompt");
|
|
429
439
|
setPastedImage(null);
|
|
430
440
|
setPastedText(null);
|
|
441
|
+
pastedPlaceholderRef.current = null;
|
|
431
442
|
onSubmitCountChange((_) => _ + 1);
|
|
432
443
|
setIsLoading(true);
|
|
433
444
|
const newAbortController = new AbortController();
|
|
@@ -486,6 +497,7 @@ function PromptInput({
|
|
|
486
497
|
} else {
|
|
487
498
|
pastedPrompt = getPastedTextPrompt(text);
|
|
488
499
|
}
|
|
500
|
+
pastedPlaceholderRef.current = pastedPrompt;
|
|
489
501
|
const newInput = input.slice(0, cursorOffset) + pastedPrompt + input.slice(cursorOffset);
|
|
490
502
|
onInputChange(newInput);
|
|
491
503
|
setCursorOffset(cursorOffset + pastedPrompt.length);
|
|
@@ -554,20 +566,11 @@ function PromptInput({
|
|
|
554
566
|
return true;
|
|
555
567
|
}
|
|
556
568
|
if (key.ctrl && inputChar === "o") {
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
});
|
|
563
|
-
setHotkeyMessage({
|
|
564
|
-
show: true,
|
|
565
|
-
text: `${getVerboseLabel(newVerbose)} (Ctrl+O)`
|
|
566
|
-
});
|
|
567
|
-
setTimeout(() => setHotkeyMessage({ show: false }), 2e3);
|
|
568
|
-
if (onToggleVerbose) {
|
|
569
|
-
onToggleVerbose(newVerbose);
|
|
570
|
-
}
|
|
569
|
+
onToggleScreen?.();
|
|
570
|
+
return true;
|
|
571
|
+
}
|
|
572
|
+
if (key.ctrl && inputChar === "e" && screen === "transcript") {
|
|
573
|
+
onToggleShowAllInTranscript?.();
|
|
571
574
|
return true;
|
|
572
575
|
}
|
|
573
576
|
if (key.ctrl && inputChar === "t") {
|
|
@@ -608,6 +611,39 @@ function PromptInput({
|
|
|
608
611
|
onSubmit(bashCommand);
|
|
609
612
|
return true;
|
|
610
613
|
}
|
|
614
|
+
if (key.ctrl && inputChar === "g") {
|
|
615
|
+
if (isLoading) return true;
|
|
616
|
+
const { name: editorName } = resolveEditor();
|
|
617
|
+
setHotkeyMessage({
|
|
618
|
+
show: true,
|
|
619
|
+
text: t("prompts.openingEditor", { editor: editorName })
|
|
620
|
+
});
|
|
621
|
+
setTimeout(() => {
|
|
622
|
+
try {
|
|
623
|
+
const result = openInExternalEditor(input);
|
|
624
|
+
if (result !== null) {
|
|
625
|
+
onInputChange(result);
|
|
626
|
+
setCursorOffset(result.length);
|
|
627
|
+
setHotkeyMessage({
|
|
628
|
+
show: true,
|
|
629
|
+
text: t("prompts.editorDone")
|
|
630
|
+
});
|
|
631
|
+
} else {
|
|
632
|
+
setHotkeyMessage({
|
|
633
|
+
show: true,
|
|
634
|
+
text: t("prompts.editorNoChange")
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
} catch {
|
|
638
|
+
setHotkeyMessage({
|
|
639
|
+
show: true,
|
|
640
|
+
text: t("prompts.editorFailed", { editor: editorName })
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
setTimeout(() => setHotkeyMessage({ show: false }), 2e3);
|
|
644
|
+
}, 0);
|
|
645
|
+
return true;
|
|
646
|
+
}
|
|
611
647
|
if (key.ctrl && (inputChar === "?" || inputChar === "/")) {
|
|
612
648
|
setShowHotkeyHelp((prev) => !prev);
|
|
613
649
|
return true;
|
|
@@ -692,18 +728,8 @@ function PromptInput({
|
|
|
692
728
|
if (inputChar === "" && (key.escape || key.backspace || key.delete)) {
|
|
693
729
|
onModeChange("prompt");
|
|
694
730
|
}
|
|
695
|
-
if (key.
|
|
696
|
-
|
|
697
|
-
const newThinking = !config.thinking;
|
|
698
|
-
saveGlobalConfig({
|
|
699
|
-
...config,
|
|
700
|
-
thinking: newThinking
|
|
701
|
-
});
|
|
702
|
-
setMessage({
|
|
703
|
-
show: true,
|
|
704
|
-
text: newThinking ? t("prompts.thinkingModeEnabled") : t("prompts.thinkingModeDisabled")
|
|
705
|
-
});
|
|
706
|
-
setTimeout(() => setMessage({ show: false }), 2e3);
|
|
731
|
+
if (key.meta && inputChar === "t") {
|
|
732
|
+
onToggleThinkingSelector?.();
|
|
707
733
|
return true;
|
|
708
734
|
}
|
|
709
735
|
if (key.shift && key.tab) {
|
|
@@ -716,11 +742,53 @@ function PromptInput({
|
|
|
716
742
|
);
|
|
717
743
|
const handleSpecialKey = useCallback(
|
|
718
744
|
(inputChar, key) => {
|
|
745
|
+
if (key.downArrow && key.shift && !key.ctrl && !key.meta) {
|
|
746
|
+
onToggleTeamPanel?.();
|
|
747
|
+
return true;
|
|
748
|
+
}
|
|
749
|
+
if (key.upArrow && key.shift && !key.ctrl && !key.meta) {
|
|
750
|
+
onToggleTeamPanel?.();
|
|
751
|
+
return true;
|
|
752
|
+
}
|
|
753
|
+
if (key.ctrl && inputChar === "j") {
|
|
754
|
+
if (hasActiveTeam && onToggleAgentView) {
|
|
755
|
+
onToggleAgentView();
|
|
756
|
+
}
|
|
757
|
+
return true;
|
|
758
|
+
}
|
|
759
|
+
if (key.ctrl && inputChar === "f") {
|
|
760
|
+
if (hasActiveTeam && onKillAllAgents) {
|
|
761
|
+
setCtrlFCount((prev) => prev + 1);
|
|
762
|
+
if (ctrlFTimer) clearTimeout(ctrlFTimer);
|
|
763
|
+
const timer = setTimeout(() => setCtrlFCount(0), 2e3);
|
|
764
|
+
setCtrlFTimer(timer);
|
|
765
|
+
if (ctrlFCount >= 1) {
|
|
766
|
+
setCtrlFCount(0);
|
|
767
|
+
onKillAllAgents();
|
|
768
|
+
setHotkeyMessage({
|
|
769
|
+
show: true,
|
|
770
|
+
text: t("prompts.allAgentsKilled")
|
|
771
|
+
});
|
|
772
|
+
setTimeout(() => setHotkeyMessage({ show: false }), 2e3);
|
|
773
|
+
} else {
|
|
774
|
+
setHotkeyMessage({
|
|
775
|
+
show: true,
|
|
776
|
+
text: t("prompts.pressCtrlFAgain")
|
|
777
|
+
});
|
|
778
|
+
setTimeout(() => setHotkeyMessage({ show: false }), 2e3);
|
|
779
|
+
}
|
|
780
|
+
return true;
|
|
781
|
+
}
|
|
782
|
+
return false;
|
|
783
|
+
}
|
|
719
784
|
if (key.shift && (inputChar === "M" || inputChar === "m") && input.length === 0) {
|
|
720
785
|
handleQuickModelSwitch();
|
|
721
786
|
return true;
|
|
722
787
|
}
|
|
723
788
|
if (key.escape) {
|
|
789
|
+
if (completionActive) {
|
|
790
|
+
return false;
|
|
791
|
+
}
|
|
724
792
|
const newEscCount = escCount + 1;
|
|
725
793
|
setEscCount(newEscCount);
|
|
726
794
|
if (escTimer) clearTimeout(escTimer);
|
|
@@ -728,38 +796,31 @@ function PromptInput({
|
|
|
728
796
|
setEscTimer(timer);
|
|
729
797
|
if (newEscCount >= 2) {
|
|
730
798
|
setEscCount(0);
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
}
|
|
799
|
+
onShowRewindPanel?.();
|
|
800
|
+
return true;
|
|
801
|
+
}
|
|
802
|
+
if (input.length > 0) {
|
|
803
|
+
onInputChange("");
|
|
804
|
+
setHotkeyMessage({
|
|
805
|
+
show: true,
|
|
806
|
+
text: t("prompts.inputClearedEsc")
|
|
807
|
+
});
|
|
808
|
+
setTimeout(() => setHotkeyMessage({ show: false }), 1e3);
|
|
809
|
+
} else if (isLoading && onInterrupt) {
|
|
810
|
+
onInterrupt();
|
|
811
|
+
setHotkeyMessage({
|
|
812
|
+
show: true,
|
|
813
|
+
text: t("prompts.interruptedEsc")
|
|
814
|
+
});
|
|
815
|
+
setTimeout(() => setHotkeyMessage({ show: false }), 2e3);
|
|
748
816
|
} else {
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
});
|
|
754
|
-
} else if (isLoading) {
|
|
755
|
-
setHotkeyMessage({
|
|
756
|
-
show: true,
|
|
757
|
-
text: t("prompts.pressEscAgainInterrupt")
|
|
758
|
-
});
|
|
759
|
-
}
|
|
817
|
+
setHotkeyMessage({
|
|
818
|
+
show: true,
|
|
819
|
+
text: t("prompts.escEscToRollback")
|
|
820
|
+
});
|
|
760
821
|
setTimeout(() => setHotkeyMessage({ show: false }), 1500);
|
|
761
|
-
return true;
|
|
762
822
|
}
|
|
823
|
+
return true;
|
|
763
824
|
}
|
|
764
825
|
return false;
|
|
765
826
|
},
|
|
@@ -769,8 +830,17 @@ function PromptInput({
|
|
|
769
830
|
input.length,
|
|
770
831
|
onInputChange,
|
|
771
832
|
onInterrupt,
|
|
833
|
+
onShowRewindPanel,
|
|
834
|
+
onToggleTeamPanel,
|
|
835
|
+
onCycleTeammate,
|
|
836
|
+
onToggleAgentView,
|
|
837
|
+
onKillAllAgents,
|
|
838
|
+
hasActiveTeam,
|
|
839
|
+
completionActive,
|
|
772
840
|
escCount,
|
|
773
|
-
escTimer
|
|
841
|
+
escTimer,
|
|
842
|
+
ctrlFCount,
|
|
843
|
+
ctrlFTimer
|
|
774
844
|
]
|
|
775
845
|
);
|
|
776
846
|
const tokenUsage = useMemo(() => countTokens(messages), [messages]);
|
|
@@ -797,7 +867,8 @@ function PromptInput({
|
|
|
797
867
|
HotkeyHelpPanel,
|
|
798
868
|
{
|
|
799
869
|
isVisible: showHotkeyHelp,
|
|
800
|
-
onClose: () => setShowHotkeyHelp(false)
|
|
870
|
+
onClose: () => setShowHotkeyHelp(false),
|
|
871
|
+
hasActiveTeam
|
|
801
872
|
}
|
|
802
873
|
), historySearch.isActive && /* @__PURE__ */ React.createElement(
|
|
803
874
|
HistorySearchOverlay,
|
|
@@ -806,7 +877,7 @@ function PromptInput({
|
|
|
806
877
|
results: historySearch.filteredResults,
|
|
807
878
|
selectedIndex: historySearch.selectedIndex
|
|
808
879
|
}
|
|
809
|
-
), modelInfo && /* @__PURE__ */ React.createElement(Box, { justifyContent: "flex-end", marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { color: SEMANTIC_COLORS.dim }, /* @__PURE__ */ React.createElement(Text, { color: BRAND_GRADIENT.START }, "\u25C6"), " ", /* @__PURE__ */ React.createElement(Text, { color: SEMANTIC_COLORS.secondary }, modelInfo.name), /* @__PURE__ */ React.createElement(Text, { color: SEMANTIC_COLORS.dim }, " ", "\xB7 ", Math.round(modelInfo.currentTokens / 1e3), "k /", " ", Math.round(modelInfo.contextLength / 1e3), "k"))),
|
|
880
|
+
), modelInfo && /* @__PURE__ */ React.createElement(Box, { justifyContent: "flex-end", marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { color: SEMANTIC_COLORS.dim }, /* @__PURE__ */ React.createElement(Text, { color: BRAND_GRADIENT.START }, "\u25C6"), " ", /* @__PURE__ */ React.createElement(Text, { color: SEMANTIC_COLORS.secondary }, modelInfo.name), /* @__PURE__ */ React.createElement(Text, { color: SEMANTIC_COLORS.dim }, " ", "\xB7 ", Math.round(modelInfo.currentTokens / 1e3), "k /", " ", Math.round(modelInfo.contextLength / 1e3), "k"))), isLoading && queuedMessages.length > 0 && /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", paddingLeft: 2, marginTop: 0 }, queuedMessages.map((msg, i) => /* @__PURE__ */ React.createElement(Box, { key: i }, /* @__PURE__ */ React.createElement(Text, { color: SEMANTIC_COLORS.dim }, /* @__PURE__ */ React.createElement(Text, { color: BRAND_GRADIENT.START }, "\u276F"), " ", msg)))), /* @__PURE__ */ React.createElement(
|
|
810
881
|
Box,
|
|
811
882
|
{
|
|
812
883
|
alignItems: "flex-start",
|
|
@@ -818,7 +889,7 @@ function PromptInput({
|
|
|
818
889
|
borderColor: isOverlayActive ? SEMANTIC_COLORS.muted : mode === "bash" ? SEMANTIC_COLORS.running : mode === "koding" ? SEMANTIC_COLORS.info : BRAND_GRADIENT.START,
|
|
819
890
|
borderDimColor: false,
|
|
820
891
|
borderStyle: "single",
|
|
821
|
-
marginTop:
|
|
892
|
+
marginTop: 1,
|
|
822
893
|
width: "100%"
|
|
823
894
|
},
|
|
824
895
|
/* @__PURE__ */ React.createElement(
|
|
@@ -843,20 +914,20 @@ function PromptInput({
|
|
|
843
914
|
TextInput,
|
|
844
915
|
{
|
|
845
916
|
multiline: true,
|
|
846
|
-
focus: !isBackgroundPanelOpen && !isOverlayActive && (!isLoading || !!
|
|
917
|
+
focus: !isBackgroundPanelOpen && !isOverlayActive && (!isLoading || !!onInjectMessage),
|
|
847
918
|
onSubmit,
|
|
848
919
|
onChange,
|
|
849
920
|
value: input,
|
|
850
921
|
onHistoryUp: handleHistoryUp,
|
|
851
922
|
onHistoryDown: handleHistoryDown,
|
|
852
923
|
onHistoryReset: () => resetHistory(),
|
|
853
|
-
placeholder: submitCount > 0 ? void 0 : placeholder,
|
|
924
|
+
placeholder: isLoading && queuedMessages.length > 0 ? t("ui.hints.pressUpToEditQueue") : focusedAgentName ? `Message @${focusedAgentName}...` : submitCount > 0 ? void 0 : placeholder,
|
|
854
925
|
onExit: () => process.exit(0),
|
|
855
926
|
onExitMessage: (show, key) => setExitMessage({ show, key }),
|
|
856
927
|
onMessage: (show, text) => setMessage({ show, text }),
|
|
857
928
|
onImagePaste,
|
|
858
929
|
columns: textInputColumns,
|
|
859
|
-
isDimmed: isDisabled || isLoading && !
|
|
930
|
+
isDimmed: isDisabled || isLoading && !onInjectMessage,
|
|
860
931
|
disableCursorMovementForUpDownKeys: completionActive,
|
|
861
932
|
cursorOffset,
|
|
862
933
|
onChangeCursorOffset: setCursorOffset,
|
|
@@ -915,7 +986,7 @@ function PromptInput({
|
|
|
915
986
|
t("ui.hints.backgroundTasks", {
|
|
916
987
|
count: backgroundShellCount
|
|
917
988
|
})
|
|
918
|
-
),
|
|
989
|
+
), injectionPending && /* @__PURE__ */ React.createElement(Text, { color: BRAND_GRADIENT.MIDDLE }, "\xB7 ", t("ui.hints.injectionPending")), hasActiveTeam && teamMembers.filter((m) => m.status !== "stopped").length > 0 && /* @__PURE__ */ React.createElement(Text, { color: BRAND_GRADIENT.MIDDLE }, "\xB7", " ", teamMembers.filter((m) => m.status !== "stopped").map((m) => `@${m.name}`).join(" "), "\xB7 ", teamMembers.filter((m) => m.status === "working").length, " ", "active \xB7 shift+\u2193 to expand"))
|
|
919
990
|
) : (
|
|
920
991
|
// Normal mode: context-aware hints with 0.1.7 style
|
|
921
992
|
/* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ContextAwareHints, { context: inputContext, compact: true }), backgroundShellCount > 0 && /* @__PURE__ */ React.createElement(
|
|
@@ -929,7 +1000,7 @@ function PromptInput({
|
|
|
929
1000
|
t("ui.hints.backgroundTasks", {
|
|
930
1001
|
count: backgroundShellCount
|
|
931
1002
|
})
|
|
932
|
-
),
|
|
1003
|
+
), injectionPending && /* @__PURE__ */ React.createElement(Text, { color: BRAND_GRADIENT.MIDDLE }, "\u2502 ", t("ui.hints.injectionPending")), hasActiveTeam && teamMembers.filter((m) => m.status !== "stopped").length > 0 && /* @__PURE__ */ React.createElement(Text, { color: BRAND_GRADIENT.MIDDLE }, "\u2502", " ", teamMembers.filter((m) => m.status !== "stopped").map((m) => `@${m.name}`).join(" "), "\xB7 ", teamMembers.filter((m) => m.status === "working").length, " ", "active \xB7 shift+\u2193 to expand"))
|
|
933
1004
|
)),
|
|
934
1005
|
/* @__PURE__ */ React.createElement(
|
|
935
1006
|
SentryErrorBoundary,
|
|
@@ -988,7 +1059,7 @@ function PromptInput({
|
|
|
988
1059
|
var PromptInput_default = memo(PromptInput);
|
|
989
1060
|
function exit() {
|
|
990
1061
|
setTerminalTitle("");
|
|
991
|
-
|
|
1062
|
+
import("../utils/exit.js").then(({ gracefulExit }) => gracefulExit(0));
|
|
992
1063
|
}
|
|
993
1064
|
export {
|
|
994
1065
|
PromptInput_default as default
|