@dexto/tui 1.14.6 → 1.15.0-beta.1
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/InkCLIRefactored.cjs +30 -24
- package/dist/InkCLIRefactored.d.ts.map +1 -1
- package/dist/InkCLIRefactored.js +30 -24
- package/dist/components/ApprovalPrompt.cjs +128 -40
- package/dist/components/ApprovalPrompt.d.ts +2 -0
- package/dist/components/ApprovalPrompt.d.ts.map +1 -1
- package/dist/components/ApprovalPrompt.js +128 -41
- package/dist/components/CustomInput.cjs +4 -3
- package/dist/components/CustomInput.d.ts.map +1 -1
- package/dist/components/CustomInput.js +4 -3
- package/dist/components/DeckArea.cjs +43 -0
- package/dist/components/DeckArea.d.ts +14 -0
- package/dist/components/DeckArea.d.ts.map +1 -0
- package/dist/components/DeckArea.js +19 -0
- package/dist/components/EditableMultiLineInput.cjs +9 -8
- package/dist/components/EditableMultiLineInput.d.ts.map +1 -1
- package/dist/components/EditableMultiLineInput.js +9 -8
- package/dist/components/ElicitationForm.cjs +78 -18
- package/dist/components/ElicitationForm.d.ts.map +1 -1
- package/dist/components/ElicitationForm.js +78 -18
- package/dist/components/ErrorBoundary.cjs +15 -5
- package/dist/components/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/ErrorBoundary.js +15 -5
- package/dist/components/Footer.cjs +41 -86
- package/dist/components/Footer.d.ts +2 -2
- package/dist/components/Footer.d.ts.map +1 -1
- package/dist/components/Footer.js +44 -92
- package/dist/components/Footer.test.cjs +44 -0
- package/dist/components/Footer.test.js +44 -0
- package/dist/components/HistorySearchBar.cjs +6 -5
- package/dist/components/HistorySearchBar.d.ts.map +1 -1
- package/dist/components/HistorySearchBar.js +6 -5
- package/dist/components/MultiLineInput.cjs +6 -5
- package/dist/components/MultiLineInput.d.ts.map +1 -1
- package/dist/components/MultiLineInput.js +6 -5
- package/dist/components/ResourceAutocomplete.cjs +5 -4
- package/dist/components/ResourceAutocomplete.d.ts.map +1 -1
- package/dist/components/ResourceAutocomplete.js +5 -4
- package/dist/components/SignalGates.test.cjs +215 -0
- package/dist/components/SignalGates.test.d.ts +2 -0
- package/dist/components/SignalGates.test.d.ts.map +1 -0
- package/dist/components/SignalGates.test.js +217 -0
- package/dist/components/SlashCommandAutocomplete.cjs +4 -3
- package/dist/components/SlashCommandAutocomplete.d.ts.map +1 -1
- package/dist/components/SlashCommandAutocomplete.js +4 -3
- package/dist/components/StatusBar.cjs +13 -30
- package/dist/components/StatusBar.d.ts +1 -3
- package/dist/components/StatusBar.d.ts.map +1 -1
- package/dist/components/StatusBar.js +13 -30
- package/dist/components/TextBufferInput.cjs +13 -12
- package/dist/components/TextBufferInput.d.ts.map +1 -1
- package/dist/components/TextBufferInput.js +13 -12
- package/dist/components/TodoPanel.cjs +23 -16
- package/dist/components/TodoPanel.d.ts.map +1 -1
- package/dist/components/TodoPanel.js +23 -16
- package/dist/components/base/BaseAutocomplete.cjs +7 -6
- package/dist/components/base/BaseAutocomplete.d.ts.map +1 -1
- package/dist/components/base/BaseAutocomplete.js +7 -6
- package/dist/components/base/BaseSelector.cjs +5 -4
- package/dist/components/base/BaseSelector.d.ts.map +1 -1
- package/dist/components/base/BaseSelector.js +5 -4
- package/dist/components/chat/Footer.cjs +2 -1
- package/dist/components/chat/Footer.d.ts.map +1 -1
- package/dist/components/chat/Footer.js +2 -1
- package/dist/components/chat/Header.cjs +20 -16
- package/dist/components/chat/Header.d.ts.map +1 -1
- package/dist/components/chat/Header.js +20 -16
- package/dist/components/chat/MessageItem.cjs +47 -30
- package/dist/components/chat/MessageItem.d.ts.map +1 -1
- package/dist/components/chat/MessageItem.js +52 -29
- package/dist/components/chat/MessageList.cjs +3 -2
- package/dist/components/chat/MessageList.d.ts.map +1 -1
- package/dist/components/chat/MessageList.js +3 -2
- package/dist/components/chat/QueuedMessagesDisplay.cjs +17 -5
- package/dist/components/chat/QueuedMessagesDisplay.d.ts.map +1 -1
- package/dist/components/chat/QueuedMessagesDisplay.js +18 -6
- package/dist/components/chat/SignalMessage.cjs +116 -0
- package/dist/components/chat/SignalMessage.d.ts +18 -0
- package/dist/components/chat/SignalMessage.d.ts.map +1 -0
- package/dist/components/chat/SignalMessage.js +96 -0
- package/dist/components/chat/SignalMessage.test.cjs +112 -0
- package/dist/components/chat/SignalMessage.test.d.ts +2 -0
- package/dist/components/chat/SignalMessage.test.d.ts.map +1 -0
- package/dist/components/chat/SignalMessage.test.js +116 -0
- package/dist/components/chat/ToolIcon.cjs +6 -5
- package/dist/components/chat/ToolIcon.d.ts.map +1 -1
- package/dist/components/chat/ToolIcon.js +6 -5
- package/dist/components/chat/styled-boxes/ConfigBox.cjs +8 -7
- package/dist/components/chat/styled-boxes/ConfigBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/ConfigBox.js +8 -7
- package/dist/components/chat/styled-boxes/HelpBox.cjs +4 -3
- package/dist/components/chat/styled-boxes/HelpBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/HelpBox.js +4 -3
- package/dist/components/chat/styled-boxes/LogConfigBox.cjs +11 -3
- package/dist/components/chat/styled-boxes/LogConfigBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/LogConfigBox.js +11 -3
- package/dist/components/chat/styled-boxes/SessionHistoryBox.cjs +8 -7
- package/dist/components/chat/styled-boxes/SessionHistoryBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/SessionHistoryBox.js +8 -7
- package/dist/components/chat/styled-boxes/SessionListBox.cjs +19 -11
- package/dist/components/chat/styled-boxes/SessionListBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/SessionListBox.js +19 -11
- package/dist/components/chat/styled-boxes/ShortcutsBox.cjs +4 -3
- package/dist/components/chat/styled-boxes/ShortcutsBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/ShortcutsBox.js +4 -3
- package/dist/components/chat/styled-boxes/StatsBox.cjs +13 -5
- package/dist/components/chat/styled-boxes/StatsBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/StatsBox.js +13 -5
- package/dist/components/chat/styled-boxes/StyledBox.cjs +7 -6
- package/dist/components/chat/styled-boxes/StyledBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/StyledBox.js +7 -6
- package/dist/components/chat/styled-boxes/SyspromptBox.cjs +2 -1
- package/dist/components/chat/styled-boxes/SyspromptBox.d.ts.map +1 -1
- package/dist/components/chat/styled-boxes/SyspromptBox.js +2 -1
- package/dist/components/modes/AlternateBufferCLI.cjs +53 -43
- package/dist/components/modes/AlternateBufferCLI.d.ts.map +1 -1
- package/dist/components/modes/AlternateBufferCLI.js +53 -43
- package/dist/components/modes/StaticCLI.cjs +53 -42
- package/dist/components/modes/StaticCLI.d.ts.map +1 -1
- package/dist/components/modes/StaticCLI.js +53 -42
- package/dist/components/overlays/ApiKeyInput.cjs +12 -11
- package/dist/components/overlays/ApiKeyInput.d.ts.map +1 -1
- package/dist/components/overlays/ApiKeyInput.js +12 -11
- package/dist/components/overlays/ChatGPTUsageCapOverlay.cjs +7 -6
- package/dist/components/overlays/ChatGPTUsageCapOverlay.d.ts.map +1 -1
- package/dist/components/overlays/ChatGPTUsageCapOverlay.js +7 -6
- package/dist/components/overlays/CommandOutputOverlay.cjs +2 -1
- package/dist/components/overlays/CommandOutputOverlay.d.ts.map +1 -1
- package/dist/components/overlays/CommandOutputOverlay.js +2 -1
- package/dist/components/overlays/ConnectOverlay.cjs +10 -9
- package/dist/components/overlays/ConnectOverlay.d.ts.map +1 -1
- package/dist/components/overlays/ConnectOverlay.js +10 -9
- package/dist/components/overlays/ContextStatsOverlay.cjs +48 -37
- package/dist/components/overlays/ContextStatsOverlay.d.ts.map +1 -1
- package/dist/components/overlays/ContextStatsOverlay.js +48 -37
- package/dist/components/overlays/CustomModelWizard.cjs +5 -4
- package/dist/components/overlays/CustomModelWizard.d.ts.map +1 -1
- package/dist/components/overlays/CustomModelWizard.js +5 -4
- package/dist/components/overlays/ExportWizard.cjs +28 -27
- package/dist/components/overlays/ExportWizard.d.ts.map +1 -1
- package/dist/components/overlays/ExportWizard.js +28 -27
- package/dist/components/overlays/InsufficientCreditsOverlay.cjs +25 -9
- package/dist/components/overlays/InsufficientCreditsOverlay.d.ts +2 -0
- package/dist/components/overlays/InsufficientCreditsOverlay.d.ts.map +1 -1
- package/dist/components/overlays/InsufficientCreditsOverlay.js +25 -9
- package/dist/components/overlays/LogLevelSelector.cjs +6 -5
- package/dist/components/overlays/LogLevelSelector.d.ts.map +1 -1
- package/dist/components/overlays/LogLevelSelector.js +6 -5
- package/dist/components/overlays/LoginOverlay.cjs +31 -66
- package/dist/components/overlays/LoginOverlay.d.ts +1 -3
- package/dist/components/overlays/LoginOverlay.d.ts.map +1 -1
- package/dist/components/overlays/LoginOverlay.js +32 -71
- package/dist/components/overlays/LogoutOverlay.cjs +16 -24
- package/dist/components/overlays/LogoutOverlay.d.ts +1 -0
- package/dist/components/overlays/LogoutOverlay.d.ts.map +1 -1
- package/dist/components/overlays/LogoutOverlay.js +18 -38
- package/dist/components/overlays/MarketplaceAddPrompt.cjs +12 -11
- package/dist/components/overlays/MarketplaceAddPrompt.d.ts.map +1 -1
- package/dist/components/overlays/MarketplaceAddPrompt.js +12 -11
- package/dist/components/overlays/MarketplaceBrowser.cjs +27 -26
- package/dist/components/overlays/MarketplaceBrowser.d.ts.map +1 -1
- package/dist/components/overlays/MarketplaceBrowser.js +27 -26
- package/dist/components/overlays/McpAddChoice.cjs +4 -3
- package/dist/components/overlays/McpAddChoice.d.ts.map +1 -1
- package/dist/components/overlays/McpAddChoice.js +4 -3
- package/dist/components/overlays/McpAddSelector.cjs +4 -3
- package/dist/components/overlays/McpAddSelector.d.ts.map +1 -1
- package/dist/components/overlays/McpAddSelector.js +4 -3
- package/dist/components/overlays/McpCustomTypeSelector.cjs +4 -3
- package/dist/components/overlays/McpCustomTypeSelector.d.ts.map +1 -1
- package/dist/components/overlays/McpCustomTypeSelector.js +4 -3
- package/dist/components/overlays/McpCustomWizard.cjs +9 -8
- package/dist/components/overlays/McpCustomWizard.d.ts.map +1 -1
- package/dist/components/overlays/McpCustomWizard.js +9 -8
- package/dist/components/overlays/McpRemoveSelector.cjs +5 -4
- package/dist/components/overlays/McpRemoveSelector.d.ts.map +1 -1
- package/dist/components/overlays/McpRemoveSelector.js +5 -4
- package/dist/components/overlays/McpSelector.cjs +4 -3
- package/dist/components/overlays/McpSelector.d.ts.map +1 -1
- package/dist/components/overlays/McpSelector.js +4 -3
- package/dist/components/overlays/McpServerActions.cjs +7 -6
- package/dist/components/overlays/McpServerActions.d.ts.map +1 -1
- package/dist/components/overlays/McpServerActions.js +7 -6
- package/dist/components/overlays/McpServerList.cjs +6 -5
- package/dist/components/overlays/McpServerList.d.ts.map +1 -1
- package/dist/components/overlays/McpServerList.js +6 -5
- package/dist/components/overlays/ModelSelectorRefactored.cjs +32 -17
- package/dist/components/overlays/ModelSelectorRefactored.d.ts.map +1 -1
- package/dist/components/overlays/ModelSelectorRefactored.js +32 -17
- package/dist/components/overlays/PermissionsSelector.cjs +6 -5
- package/dist/components/overlays/PermissionsSelector.d.ts.map +1 -1
- package/dist/components/overlays/PermissionsSelector.js +6 -5
- package/dist/components/overlays/PluginActions.cjs +7 -6
- package/dist/components/overlays/PluginActions.d.ts.map +1 -1
- package/dist/components/overlays/PluginActions.js +7 -6
- package/dist/components/overlays/PluginList.cjs +12 -11
- package/dist/components/overlays/PluginList.d.ts.map +1 -1
- package/dist/components/overlays/PluginList.js +12 -11
- package/dist/components/overlays/PluginManager.cjs +13 -5
- package/dist/components/overlays/PluginManager.d.ts.map +1 -1
- package/dist/components/overlays/PluginManager.js +13 -5
- package/dist/components/overlays/PromptAddChoice.cjs +5 -4
- package/dist/components/overlays/PromptAddChoice.d.ts.map +1 -1
- package/dist/components/overlays/PromptAddChoice.js +5 -4
- package/dist/components/overlays/PromptAddWizard.cjs +10 -9
- package/dist/components/overlays/PromptAddWizard.d.ts.map +1 -1
- package/dist/components/overlays/PromptAddWizard.js +10 -9
- package/dist/components/overlays/PromptDeleteSelector.cjs +6 -5
- package/dist/components/overlays/PromptDeleteSelector.d.ts.map +1 -1
- package/dist/components/overlays/PromptDeleteSelector.js +6 -5
- package/dist/components/overlays/PromptList.cjs +10 -9
- package/dist/components/overlays/PromptList.d.ts.map +1 -1
- package/dist/components/overlays/PromptList.js +10 -9
- package/dist/components/overlays/ReasoningOverlay.cjs +30 -23
- package/dist/components/overlays/ReasoningOverlay.d.ts.map +1 -1
- package/dist/components/overlays/ReasoningOverlay.js +30 -23
- package/dist/components/overlays/SearchOverlay.cjs +15 -14
- package/dist/components/overlays/SearchOverlay.d.ts.map +1 -1
- package/dist/components/overlays/SearchOverlay.js +15 -14
- package/dist/components/overlays/SessionRenameOverlay.cjs +9 -8
- package/dist/components/overlays/SessionRenameOverlay.d.ts.map +1 -1
- package/dist/components/overlays/SessionRenameOverlay.js +9 -8
- package/dist/components/overlays/SessionSelectorRefactored.cjs +4 -3
- package/dist/components/overlays/SessionSelectorRefactored.d.ts.map +1 -1
- package/dist/components/overlays/SessionSelectorRefactored.js +4 -3
- package/dist/components/overlays/SessionSubcommandSelector.cjs +4 -3
- package/dist/components/overlays/SessionSubcommandSelector.d.ts.map +1 -1
- package/dist/components/overlays/SessionSubcommandSelector.js +4 -3
- package/dist/components/overlays/SoundsSelector.cjs +15 -7
- package/dist/components/overlays/SoundsSelector.d.ts.map +1 -1
- package/dist/components/overlays/SoundsSelector.js +15 -7
- package/dist/components/overlays/StreamSelector.cjs +5 -4
- package/dist/components/overlays/StreamSelector.d.ts.map +1 -1
- package/dist/components/overlays/StreamSelector.js +5 -4
- package/dist/components/overlays/ToolBrowser.cjs +73 -56
- package/dist/components/overlays/ToolBrowser.d.ts.map +1 -1
- package/dist/components/overlays/ToolBrowser.js +73 -56
- package/dist/components/overlays/custom-model-wizard/LocalModelWizard.cjs +103 -69
- package/dist/components/overlays/custom-model-wizard/LocalModelWizard.d.ts.map +1 -1
- package/dist/components/overlays/custom-model-wizard/LocalModelWizard.js +103 -69
- package/dist/components/overlays/custom-model-wizard/provider-config.cjs +4 -4
- package/dist/components/overlays/custom-model-wizard/provider-config.js +4 -4
- package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.cjs +3 -2
- package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts.map +1 -1
- package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.js +3 -2
- package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.cjs +5 -4
- package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts.map +1 -1
- package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.js +5 -4
- package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.cjs +4 -3
- package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts.map +1 -1
- package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.js +4 -3
- package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.cjs +7 -6
- package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts.map +1 -1
- package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.js +7 -6
- package/dist/components/renderers/DiffRenderer.cjs +5 -4
- package/dist/components/renderers/DiffRenderer.d.ts.map +1 -1
- package/dist/components/renderers/DiffRenderer.js +5 -4
- package/dist/components/renderers/FilePreviewRenderer.cjs +23 -13
- package/dist/components/renderers/FilePreviewRenderer.d.ts.map +1 -1
- package/dist/components/renderers/FilePreviewRenderer.js +23 -13
- package/dist/components/renderers/FileRenderer.cjs +9 -8
- package/dist/components/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/components/renderers/FileRenderer.js +9 -8
- package/dist/components/renderers/GenericRenderer.cjs +5 -4
- package/dist/components/renderers/GenericRenderer.d.ts.map +1 -1
- package/dist/components/renderers/GenericRenderer.js +5 -4
- package/dist/components/renderers/SearchRenderer.cjs +4 -3
- package/dist/components/renderers/SearchRenderer.d.ts.map +1 -1
- package/dist/components/renderers/SearchRenderer.js +4 -3
- package/dist/components/renderers/ShellRenderer.cjs +6 -5
- package/dist/components/renderers/ShellRenderer.d.ts.map +1 -1
- package/dist/components/renderers/ShellRenderer.js +6 -5
- package/dist/components/renderers/SignalDiff.cjs +139 -0
- package/dist/components/renderers/SignalDiff.d.ts +21 -0
- package/dist/components/renderers/SignalDiff.d.ts.map +1 -0
- package/dist/components/renderers/SignalDiff.js +106 -0
- package/dist/components/renderers/SignalDiff.test.cjs +78 -0
- package/dist/components/renderers/SignalDiff.test.d.ts +2 -0
- package/dist/components/renderers/SignalDiff.test.d.ts.map +1 -0
- package/dist/components/renderers/SignalDiff.test.js +77 -0
- package/dist/components/renderers/diff-shared.cjs +13 -7
- package/dist/components/renderers/diff-shared.d.ts +5 -0
- package/dist/components/renderers/diff-shared.d.ts.map +1 -1
- package/dist/components/renderers/diff-shared.js +12 -7
- package/dist/components/shared/FocusOverlayFrame.cjs +3 -2
- package/dist/components/shared/FocusOverlayFrame.d.ts.map +1 -1
- package/dist/components/shared/FocusOverlayFrame.js +3 -2
- package/dist/components/shared/HintBar.cjs +2 -1
- package/dist/components/shared/HintBar.d.ts.map +1 -1
- package/dist/components/shared/HintBar.js +2 -1
- package/dist/components/shared/MarkdownText.cjs +36 -53
- package/dist/components/shared/MarkdownText.d.ts +2 -0
- package/dist/components/shared/MarkdownText.d.ts.map +1 -1
- package/dist/components/shared/MarkdownText.js +36 -54
- package/dist/components/shared/VirtualizedList.cjs +2 -1
- package/dist/components/shared/VirtualizedList.d.ts.map +1 -1
- package/dist/components/shared/VirtualizedList.js +2 -1
- package/dist/containers/OverlayContainer.cjs +32 -44
- package/dist/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/containers/OverlayContainer.js +32 -44
- package/dist/contexts/KeypressContext.cjs +7 -1
- package/dist/contexts/KeypressContext.d.ts.map +1 -1
- package/dist/contexts/KeypressContext.js +7 -1
- package/dist/contexts/KeypressContext.test.cjs +82 -0
- package/dist/contexts/KeypressContext.test.d.ts +2 -0
- package/dist/contexts/KeypressContext.test.d.ts.map +1 -0
- package/dist/contexts/KeypressContext.test.js +81 -0
- package/dist/hooks/useAgentEvents.cjs +1 -74
- package/dist/hooks/useAgentEvents.d.ts.map +1 -1
- package/dist/hooks/useAgentEvents.js +1 -74
- package/dist/hooks/useCLIState.cjs +0 -3
- package/dist/hooks/useCLIState.d.ts.map +1 -1
- package/dist/hooks/useCLIState.js +0 -3
- package/dist/hooks/useContextStats.cjs +91 -0
- package/dist/hooks/useContextStats.d.ts +13 -0
- package/dist/hooks/useContextStats.d.ts.map +1 -0
- package/dist/hooks/useContextStats.js +67 -0
- package/dist/hooks/useDeckState.cjs +140 -0
- package/dist/hooks/useDeckState.d.ts +20 -0
- package/dist/hooks/useDeckState.d.ts.map +1 -0
- package/dist/hooks/useDeckState.js +123 -0
- package/dist/hooks/useDextoCredits.cjs +81 -0
- package/dist/hooks/useDextoCredits.d.ts +14 -0
- package/dist/hooks/useDextoCredits.d.ts.map +1 -0
- package/dist/hooks/useDextoCredits.js +56 -0
- package/dist/hooks/useDextoCredits.test.cjs +73 -0
- package/dist/hooks/useDextoCredits.test.d.ts +2 -0
- package/dist/hooks/useDextoCredits.test.d.ts.map +1 -0
- package/dist/hooks/useDextoCredits.test.js +72 -0
- package/dist/hooks/useElapsedTime.cjs +13 -24
- package/dist/hooks/useElapsedTime.d.ts +3 -1
- package/dist/hooks/useElapsedTime.d.ts.map +1 -1
- package/dist/hooks/useElapsedTime.js +13 -24
- package/dist/hooks/useElapsedTime.test.cjs +35 -0
- package/dist/hooks/useElapsedTime.test.d.ts +2 -0
- package/dist/hooks/useElapsedTime.test.d.ts.map +1 -0
- package/dist/hooks/useElapsedTime.test.js +34 -0
- package/dist/hooks/useGitDirtyFiles.cjs +59 -0
- package/dist/hooks/useGitDirtyFiles.d.ts +5 -0
- package/dist/hooks/useGitDirtyFiles.d.ts.map +1 -0
- package/dist/hooks/useGitDirtyFiles.js +34 -0
- package/dist/hooks/useGitDirtyFiles.test.cjs +9 -0
- package/dist/hooks/useGitDirtyFiles.test.d.ts +2 -0
- package/dist/hooks/useGitDirtyFiles.test.d.ts.map +1 -0
- package/dist/hooks/useGitDirtyFiles.test.js +8 -0
- package/dist/hooks/useHeldValue.cjs +33 -0
- package/dist/hooks/useHeldValue.d.ts +3 -0
- package/dist/hooks/useHeldValue.d.ts.map +1 -0
- package/dist/hooks/useHeldValue.js +9 -0
- package/dist/hooks/useHeldValue.test.cjs +31 -0
- package/dist/hooks/useHeldValue.test.d.ts +2 -0
- package/dist/hooks/useHeldValue.test.d.ts.map +1 -0
- package/dist/hooks/useHeldValue.test.js +30 -0
- package/dist/hooks/useInputOrchestrator.cjs +22 -30
- package/dist/hooks/useInputOrchestrator.d.ts +2 -0
- package/dist/hooks/useInputOrchestrator.d.ts.map +1 -1
- package/dist/hooks/useInputOrchestrator.js +21 -30
- package/dist/hooks/useInputOrchestrator.test.cjs +24 -0
- package/dist/hooks/useInputOrchestrator.test.d.ts +2 -0
- package/dist/hooks/useInputOrchestrator.test.d.ts.map +1 -0
- package/dist/hooks/useInputOrchestrator.test.js +23 -0
- package/dist/host/index.cjs +22 -49
- package/dist/host/index.d.ts +18 -72
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +18 -42
- package/dist/host/index.test.cjs +21 -35
- package/dist/host/index.test.js +22 -40
- package/dist/index.d.cts +13 -52
- package/dist/interactive-commands/command-parser.cjs +13 -21
- package/dist/interactive-commands/command-parser.d.ts.map +1 -1
- package/dist/interactive-commands/command-parser.js +13 -11
- package/dist/interactive-commands/general-commands.cjs +8 -7
- package/dist/interactive-commands/general-commands.d.ts.map +1 -1
- package/dist/interactive-commands/general-commands.js +8 -7
- package/dist/services/processStream.cjs +33 -21
- package/dist/services/processStream.d.ts.map +1 -1
- package/dist/services/processStream.js +34 -22
- package/dist/services/processStream.test.cjs +52 -4
- package/dist/services/processStream.test.js +52 -4
- package/dist/signal/background.cjs +154 -0
- package/dist/signal/background.d.ts +43 -0
- package/dist/signal/background.d.ts.map +1 -0
- package/dist/signal/background.js +124 -0
- package/dist/signal/background.test.cjs +186 -0
- package/dist/signal/background.test.d.ts +2 -0
- package/dist/signal/background.test.d.ts.map +1 -0
- package/dist/signal/background.test.js +192 -0
- package/dist/signal/caps.cjs +100 -0
- package/dist/signal/caps.d.ts +23 -0
- package/dist/signal/caps.d.ts.map +1 -0
- package/dist/signal/caps.js +73 -0
- package/dist/signal/caps.test.cjs +56 -0
- package/dist/signal/caps.test.d.ts +2 -0
- package/dist/signal/caps.test.d.ts.map +1 -0
- package/dist/signal/caps.test.js +55 -0
- package/dist/signal/components.cjs +257 -0
- package/dist/signal/components.d.ts +120 -0
- package/dist/signal/components.d.ts.map +1 -0
- package/dist/signal/components.js +226 -0
- package/dist/signal/components.test.cjs +156 -0
- package/dist/signal/components.test.d.ts +2 -0
- package/dist/signal/components.test.d.ts.map +1 -0
- package/dist/signal/components.test.js +133 -0
- package/dist/signal/cut.cjs +103 -0
- package/dist/signal/cut.d.ts +11 -0
- package/dist/signal/cut.d.ts.map +1 -0
- package/dist/signal/cut.js +77 -0
- package/dist/signal/cut.test.cjs +20 -0
- package/dist/signal/cut.test.d.ts +2 -0
- package/dist/signal/cut.test.d.ts.map +1 -0
- package/dist/signal/cut.test.js +19 -0
- package/dist/signal/deck-layout.cjs +57 -0
- package/dist/signal/deck-layout.d.ts +29 -0
- package/dist/signal/deck-layout.d.ts.map +1 -0
- package/dist/signal/deck-layout.js +30 -0
- package/dist/signal/deck-parts.cjs +243 -0
- package/dist/signal/deck-parts.d.ts +55 -0
- package/dist/signal/deck-parts.d.ts.map +1 -0
- package/dist/signal/deck-parts.js +205 -0
- package/dist/signal/deck.test.cjs +311 -0
- package/dist/signal/deck.test.d.ts +2 -0
- package/dist/signal/deck.test.d.ts.map +1 -0
- package/dist/signal/deck.test.js +288 -0
- package/dist/signal/glyphs.cjs +195 -0
- package/dist/signal/glyphs.d.ts +8 -0
- package/dist/signal/glyphs.d.ts.map +1 -0
- package/dist/signal/glyphs.js +171 -0
- package/dist/signal/glyphs.test.cjs +17 -0
- package/dist/signal/glyphs.test.d.ts +2 -0
- package/dist/signal/glyphs.test.d.ts.map +1 -0
- package/dist/signal/glyphs.test.js +16 -0
- package/dist/signal/harness.cjs +103 -0
- package/dist/signal/harness.d.ts +70 -0
- package/dist/signal/harness.d.ts.map +1 -0
- package/dist/signal/harness.js +67 -0
- package/dist/signal/harness.test.cjs +84 -0
- package/dist/signal/harness.test.d.ts +2 -0
- package/dist/signal/harness.test.d.ts.map +1 -0
- package/dist/signal/harness.test.js +61 -0
- package/dist/signal/index.cjs +76 -0
- package/dist/signal/index.d.ts +8 -0
- package/dist/signal/index.d.ts.map +1 -0
- package/dist/signal/index.js +45 -0
- package/dist/signal/kit.snapshot.test.cjs +56 -0
- package/dist/signal/kit.snapshot.test.d.ts +2 -0
- package/dist/signal/kit.snapshot.test.d.ts.map +1 -0
- package/dist/signal/kit.snapshot.test.js +55 -0
- package/dist/signal/no-raw-colours.test.cjs +32 -0
- package/dist/signal/no-raw-colours.test.d.ts +2 -0
- package/dist/signal/no-raw-colours.test.d.ts.map +1 -0
- package/dist/signal/no-raw-colours.test.js +30 -0
- package/dist/signal/paint.cjs +76 -0
- package/dist/signal/paint.d.ts +15 -0
- package/dist/signal/paint.d.ts.map +1 -0
- package/dist/signal/paint.js +41 -0
- package/dist/signal/paint.test.cjs +98 -0
- package/dist/signal/paint.test.d.ts +2 -0
- package/dist/signal/paint.test.d.ts.map +1 -0
- package/dist/signal/paint.test.js +75 -0
- package/dist/signal/tone.cjs +109 -0
- package/dist/signal/tone.d.ts +17 -0
- package/dist/signal/tone.d.ts.map +1 -0
- package/dist/signal/tone.js +83 -0
- package/dist/signal/tone.test.cjs +70 -0
- package/dist/signal/tone.test.d.ts +2 -0
- package/dist/signal/tone.test.d.ts.map +1 -0
- package/dist/signal/tone.test.js +69 -0
- package/dist/signal/trace.cjs +142 -0
- package/dist/signal/trace.d.ts +41 -0
- package/dist/signal/trace.d.ts.map +1 -0
- package/dist/signal/trace.js +113 -0
- package/dist/signal/trace.test.cjs +50 -0
- package/dist/signal/trace.test.d.ts +2 -0
- package/dist/signal/trace.test.d.ts.map +1 -0
- package/dist/signal/trace.test.js +49 -0
- package/dist/signal/use-trace.cjs +73 -0
- package/dist/signal/use-trace.d.ts +5 -0
- package/dist/signal/use-trace.d.ts.map +1 -0
- package/dist/signal/use-trace.js +48 -0
- package/dist/signal/wordmark-art.generated.cjs +375 -0
- package/dist/signal/wordmark-art.generated.d.ts +3 -0
- package/dist/signal/wordmark-art.generated.d.ts.map +1 -0
- package/dist/signal/wordmark-art.generated.js +351 -0
- package/dist/signal/wordmark.cjs +60 -0
- package/dist/signal/wordmark.d.ts +23 -0
- package/dist/signal/wordmark.d.ts.map +1 -0
- package/dist/signal/wordmark.js +34 -0
- package/dist/signal/wordmark.test.cjs +71 -0
- package/dist/signal/wordmark.test.d.ts +2 -0
- package/dist/signal/wordmark.test.d.ts.map +1 -0
- package/dist/signal/wordmark.test.js +70 -0
- package/dist/state/initialState.cjs +0 -3
- package/dist/state/initialState.d.ts.map +1 -1
- package/dist/state/initialState.js +0 -3
- package/dist/state/types.d.ts +13 -7
- package/dist/state/types.d.ts.map +1 -1
- package/dist/utils/approval-response.cjs +45 -0
- package/dist/utils/approval-response.d.ts +14 -0
- package/dist/utils/approval-response.d.ts.map +1 -0
- package/dist/utils/approval-response.js +21 -0
- package/dist/utils/approval-response.test.cjs +49 -0
- package/dist/utils/approval-response.test.d.ts +2 -0
- package/dist/utils/approval-response.test.d.ts.map +1 -0
- package/dist/utils/approval-response.test.js +55 -0
- package/dist/utils/approvalScope.cjs +12 -0
- package/dist/utils/approvalScope.d.ts.map +1 -1
- package/dist/utils/approvalScope.js +12 -0
- package/dist/utils/approvalScope.test.cjs +23 -0
- package/dist/utils/approvalScope.test.d.ts +2 -0
- package/dist/utils/approvalScope.test.d.ts.map +1 -0
- package/dist/utils/approvalScope.test.js +22 -0
- package/dist/utils/background-failure.cjs +51 -0
- package/dist/utils/background-failure.d.ts +12 -0
- package/dist/utils/background-failure.d.ts.map +1 -0
- package/dist/utils/background-failure.js +26 -0
- package/dist/utils/chatgpt-rate-limit.cjs +10 -0
- package/dist/utils/chatgpt-rate-limit.d.ts +9 -0
- package/dist/utils/chatgpt-rate-limit.d.ts.map +1 -1
- package/dist/utils/chatgpt-rate-limit.js +9 -0
- package/dist/utils/chatgpt-rate-limit.test.cjs +10 -0
- package/dist/utils/chatgpt-rate-limit.test.js +11 -0
- package/dist/utils/deck-state.cjs +107 -0
- package/dist/utils/deck-state.d.ts +79 -0
- package/dist/utils/deck-state.d.ts.map +1 -0
- package/dist/utils/deck-state.js +76 -0
- package/dist/utils/deck-state.test.cjs +208 -0
- package/dist/utils/deck-state.test.d.ts +2 -0
- package/dist/utils/deck-state.test.d.ts.map +1 -0
- package/dist/utils/deck-state.test.js +216 -0
- package/dist/utils/fault-block.cjs +37 -0
- package/dist/utils/fault-block.d.ts +13 -0
- package/dist/utils/fault-block.d.ts.map +1 -0
- package/dist/utils/fault-block.js +13 -0
- package/dist/utils/fault-block.test.cjs +23 -0
- package/dist/utils/fault-block.test.d.ts +2 -0
- package/dist/utils/fault-block.test.d.ts.map +1 -0
- package/dist/utils/fault-block.test.js +22 -0
- package/dist/utils/llm-provider-display.cjs +1 -1
- package/dist/utils/llm-provider-display.js +1 -1
- package/dist/utils/messageFormatting.cjs +26 -23
- package/dist/utils/messageFormatting.d.ts +5 -2
- package/dist/utils/messageFormatting.d.ts.map +1 -1
- package/dist/utils/messageFormatting.js +25 -21
- package/dist/utils/messageFormatting.test.cjs +34 -0
- package/dist/utils/messageFormatting.test.js +35 -1
- package/dist/utils/reasoning-variant.cjs +35 -0
- package/dist/utils/reasoning-variant.d.ts +13 -0
- package/dist/utils/reasoning-variant.d.ts.map +1 -0
- package/dist/utils/reasoning-variant.js +11 -0
- package/dist/utils/resize-reflow.cjs +119 -0
- package/dist/utils/resize-reflow.d.ts +18 -0
- package/dist/utils/resize-reflow.d.ts.map +1 -0
- package/dist/utils/resize-reflow.js +83 -0
- package/dist/utils/resize-reflow.test.cjs +100 -0
- package/dist/utils/resize-reflow.test.d.ts +2 -0
- package/dist/utils/resize-reflow.test.d.ts.map +1 -0
- package/dist/utils/resize-reflow.test.js +99 -0
- package/dist/utils/tool-step.cjs +183 -0
- package/dist/utils/tool-step.d.ts +28 -0
- package/dist/utils/tool-step.d.ts.map +1 -0
- package/dist/utils/tool-step.js +156 -0
- package/dist/utils/tool-step.test.cjs +263 -0
- package/dist/utils/tool-step.test.d.ts +2 -0
- package/dist/utils/tool-step.test.d.ts.map +1 -0
- package/dist/utils/tool-step.test.js +262 -0
- package/package.json +9 -5
- package/dist/components/BackgroundTasksPanel.cjs +0 -117
- package/dist/components/BackgroundTasksPanel.d.ts +0 -18
- package/dist/components/BackgroundTasksPanel.d.ts.map +0 -1
- package/dist/components/BackgroundTasksPanel.js +0 -93
package/dist/host/index.test.cjs
CHANGED
|
@@ -1,47 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var import_vitest = require("vitest");
|
|
3
3
|
var import_index = require("./index.js");
|
|
4
|
-
(0, import_vitest.describe)("TUI
|
|
4
|
+
(0, import_vitest.describe)("TUI sign-in runtime services", () => {
|
|
5
5
|
(0, import_vitest.afterEach)(() => {
|
|
6
6
|
(0, import_index.setTuiRuntimeServices)({});
|
|
7
7
|
});
|
|
8
|
-
(0, import_vitest.it)("
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
dextoKeyDisplay: "dxt_abc...",
|
|
13
|
-
dextoKeyId: "key-id"
|
|
14
|
-
});
|
|
15
|
-
const persist = import_vitest.vi.fn().mockResolvedValue({
|
|
16
|
-
keyId: "key-id",
|
|
17
|
-
hasDextoApiKey: true
|
|
18
|
-
});
|
|
8
|
+
(0, import_vitest.it)("signs in, says who, and signs out through the host", async () => {
|
|
9
|
+
const signal = new AbortController().signal;
|
|
10
|
+
const onNote = import_vitest.vi.fn();
|
|
11
|
+
const hostSignIn = import_vitest.vi.fn().mockResolvedValue("Signed in as ada@example.com in Acme.");
|
|
19
12
|
(0, import_index.setTuiRuntimeServices)({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const loginResult = await (0, import_index.performDeviceCodeLogin)({
|
|
24
|
-
onPrompt: prompt
|
|
25
|
-
});
|
|
26
|
-
const persisted = await (0, import_index.persistDeviceApiKeyLoginResult)(loginResult);
|
|
27
|
-
(0, import_vitest.expect)(perform).toHaveBeenCalledWith({ onPrompt: prompt });
|
|
28
|
-
(0, import_vitest.expect)(persist).toHaveBeenCalledWith({
|
|
29
|
-
dextoApiKey: "dxt_full_key",
|
|
30
|
-
dextoKeyDisplay: "dxt_abc...",
|
|
31
|
-
dextoKeyId: "key-id"
|
|
32
|
-
});
|
|
33
|
-
(0, import_vitest.expect)(persisted).toEqual({
|
|
34
|
-
keyId: "key-id",
|
|
35
|
-
hasDextoApiKey: true
|
|
13
|
+
currentSignIn: async () => "ada@example.com in Acme",
|
|
14
|
+
signIn: hostSignIn,
|
|
15
|
+
signOut: async () => "Logged out."
|
|
36
16
|
});
|
|
17
|
+
(0, import_vitest.expect)(await (0, import_index.currentSignIn)()).toBe("ada@example.com in Acme");
|
|
18
|
+
(0, import_vitest.expect)(await (0, import_index.signIn)({ signal, onNote })).toBe("Signed in as ada@example.com in Acme.");
|
|
19
|
+
(0, import_vitest.expect)(hostSignIn).toHaveBeenCalledWith({ signal, onNote });
|
|
20
|
+
(0, import_vitest.expect)(await (0, import_index.signOut)()).toBe("Logged out.");
|
|
37
21
|
});
|
|
38
|
-
(0, import_vitest.it)("fails fast when
|
|
22
|
+
(0, import_vitest.it)("fails fast when the host provides no sign-in", async () => {
|
|
23
|
+
await (0, import_vitest.expect)((0, import_index.currentSignIn)()).rejects.toThrow(
|
|
24
|
+
"TUI runtime services missing required method: currentSignIn"
|
|
25
|
+
);
|
|
39
26
|
await (0, import_vitest.expect)(
|
|
40
|
-
(0, import_index.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
).rejects.toThrow("TUI runtime services missing required method");
|
|
27
|
+
(0, import_index.signIn)({ signal: new AbortController().signal, onNote: () => void 0 })
|
|
28
|
+
).rejects.toThrow("TUI runtime services missing required method: signIn");
|
|
29
|
+
await (0, import_vitest.expect)((0, import_index.signOut)()).rejects.toThrow(
|
|
30
|
+
"TUI runtime services missing required method: signOut"
|
|
31
|
+
);
|
|
46
32
|
});
|
|
47
33
|
});
|
package/dist/host/index.test.js
CHANGED
|
@@ -1,50 +1,32 @@
|
|
|
1
1
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
persistDeviceApiKeyLoginResult,
|
|
5
|
-
setTuiRuntimeServices
|
|
6
|
-
} from "./index.js";
|
|
7
|
-
describe("TUI auth runtime services", () => {
|
|
2
|
+
import { currentSignIn, setTuiRuntimeServices, signIn, signOut } from "./index.js";
|
|
3
|
+
describe("TUI sign-in runtime services", () => {
|
|
8
4
|
afterEach(() => {
|
|
9
5
|
setTuiRuntimeServices({});
|
|
10
6
|
});
|
|
11
|
-
it("
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
dextoKeyDisplay: "dxt_abc...",
|
|
16
|
-
dextoKeyId: "key-id"
|
|
17
|
-
});
|
|
18
|
-
const persist = vi.fn().mockResolvedValue({
|
|
19
|
-
keyId: "key-id",
|
|
20
|
-
hasDextoApiKey: true
|
|
21
|
-
});
|
|
7
|
+
it("signs in, says who, and signs out through the host", async () => {
|
|
8
|
+
const signal = new AbortController().signal;
|
|
9
|
+
const onNote = vi.fn();
|
|
10
|
+
const hostSignIn = vi.fn().mockResolvedValue("Signed in as ada@example.com in Acme.");
|
|
22
11
|
setTuiRuntimeServices({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const loginResult = await performDeviceCodeLogin({
|
|
27
|
-
onPrompt: prompt
|
|
28
|
-
});
|
|
29
|
-
const persisted = await persistDeviceApiKeyLoginResult(loginResult);
|
|
30
|
-
expect(perform).toHaveBeenCalledWith({ onPrompt: prompt });
|
|
31
|
-
expect(persist).toHaveBeenCalledWith({
|
|
32
|
-
dextoApiKey: "dxt_full_key",
|
|
33
|
-
dextoKeyDisplay: "dxt_abc...",
|
|
34
|
-
dextoKeyId: "key-id"
|
|
35
|
-
});
|
|
36
|
-
expect(persisted).toEqual({
|
|
37
|
-
keyId: "key-id",
|
|
38
|
-
hasDextoApiKey: true
|
|
12
|
+
currentSignIn: async () => "ada@example.com in Acme",
|
|
13
|
+
signIn: hostSignIn,
|
|
14
|
+
signOut: async () => "Logged out."
|
|
39
15
|
});
|
|
16
|
+
expect(await currentSignIn()).toBe("ada@example.com in Acme");
|
|
17
|
+
expect(await signIn({ signal, onNote })).toBe("Signed in as ada@example.com in Acme.");
|
|
18
|
+
expect(hostSignIn).toHaveBeenCalledWith({ signal, onNote });
|
|
19
|
+
expect(await signOut()).toBe("Logged out.");
|
|
40
20
|
});
|
|
41
|
-
it("fails fast when
|
|
21
|
+
it("fails fast when the host provides no sign-in", async () => {
|
|
22
|
+
await expect(currentSignIn()).rejects.toThrow(
|
|
23
|
+
"TUI runtime services missing required method: currentSignIn"
|
|
24
|
+
);
|
|
42
25
|
await expect(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
).rejects.toThrow("TUI runtime services missing required method");
|
|
26
|
+
signIn({ signal: new AbortController().signal, onNote: () => void 0 })
|
|
27
|
+
).rejects.toThrow("TUI runtime services missing required method: signIn");
|
|
28
|
+
await expect(signOut()).rejects.toThrow(
|
|
29
|
+
"TUI runtime services missing required method: signOut"
|
|
30
|
+
);
|
|
49
31
|
});
|
|
50
32
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -362,38 +362,11 @@ declare function startInkCliRefactored(agent: TuiAgentBackend, initialSessionId:
|
|
|
362
362
|
interface TuiShutdownHandle {
|
|
363
363
|
stop?: (() => Promise<void>) | undefined;
|
|
364
364
|
}
|
|
365
|
-
interface
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
expiresAt?: number | undefined;
|
|
371
|
-
createdAt: number;
|
|
372
|
-
dextoApiKey?: string | undefined;
|
|
373
|
-
dextoKeyId?: string | undefined;
|
|
374
|
-
dextoApiKeySource?: 'provisioned' | 'user-supplied' | undefined;
|
|
375
|
-
}
|
|
376
|
-
interface TuiDeviceApiKeyLoginResult {
|
|
377
|
-
dextoApiKey: string;
|
|
378
|
-
dextoKeyId: string;
|
|
379
|
-
dextoKeyDisplay: string;
|
|
380
|
-
}
|
|
381
|
-
interface TuiDeviceLoginPrompt {
|
|
382
|
-
userCode: string;
|
|
383
|
-
verificationUrl: string;
|
|
384
|
-
verificationUrlComplete: string | null;
|
|
385
|
-
expiresIn: number;
|
|
386
|
-
}
|
|
387
|
-
type TuiDextoApiKeyProvisionStatusLevel = 'info' | 'success' | 'warning' | 'error';
|
|
388
|
-
interface TuiDextoApiKeyProvisionStatus {
|
|
389
|
-
level: TuiDextoApiKeyProvisionStatusLevel;
|
|
390
|
-
message: string;
|
|
391
|
-
}
|
|
392
|
-
interface TuiPersistedLoginResult {
|
|
393
|
-
email?: string | undefined;
|
|
394
|
-
userId?: string | undefined;
|
|
395
|
-
keyId?: string | undefined;
|
|
396
|
-
hasDextoApiKey: boolean;
|
|
365
|
+
interface TuiSignInOptions {
|
|
366
|
+
/** Aborts the sign-in, such as when the person presses Esc. */
|
|
367
|
+
signal: AbortSignal;
|
|
368
|
+
/** What to show while signing in: the link, or the code to check. */
|
|
369
|
+
onNote: (text: string) => void;
|
|
397
370
|
}
|
|
398
371
|
interface TuiRuntimeServices {
|
|
399
372
|
registerGracefulShutdown?: (getAgent: () => TuiShutdownHandle, options: {
|
|
@@ -408,26 +381,14 @@ interface TuiRuntimeServices {
|
|
|
408
381
|
content: string;
|
|
409
382
|
url?: string | undefined;
|
|
410
383
|
} | null;
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
dextoApiKey: string;
|
|
420
|
-
keyId: string | null;
|
|
421
|
-
} | null>;
|
|
422
|
-
loadAuth?: () => Promise<TuiAuthConfig | null>;
|
|
423
|
-
storeAuth?: (config: TuiAuthConfig) => Promise<void>;
|
|
424
|
-
removeAuth?: () => Promise<void>;
|
|
425
|
-
removeDextoApiKeyFromEnv?: (options?: {
|
|
426
|
-
expectedValue?: string;
|
|
427
|
-
}) => Promise<{
|
|
428
|
-
removed: boolean;
|
|
429
|
-
targetEnvPath: string;
|
|
430
|
-
}>;
|
|
384
|
+
/** Who the current profile acts as, in a few words, or null when signed out. */
|
|
385
|
+
currentSignIn?: () => Promise<string | null>;
|
|
386
|
+
/** Signs the current profile in to Dexto, resolving with what to say once signed in. */
|
|
387
|
+
signIn?: (options: TuiSignInOptions) => Promise<string>;
|
|
388
|
+
/** Ends the current profile's sign-in, resolving with what to say. */
|
|
389
|
+
signOut?: () => Promise<string>;
|
|
390
|
+
/** The organization's Dexto credit balance in USD; null when signed out. */
|
|
391
|
+
dextoCreditBalance?: () => Promise<number | null>;
|
|
431
392
|
isUsingDextoCredits?: () => Promise<boolean>;
|
|
432
393
|
canUseDextoProvider?: () => Promise<boolean>;
|
|
433
394
|
buildDextoBillingUrl?: (options: {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var command_parser_exports = {};
|
|
30
20
|
__export(command_parser_exports, {
|
|
@@ -35,7 +25,7 @@ __export(command_parser_exports, {
|
|
|
35
25
|
parseInput: () => parseInput
|
|
36
26
|
});
|
|
37
27
|
module.exports = __toCommonJS(command_parser_exports);
|
|
38
|
-
var
|
|
28
|
+
var import_signal = require("../signal/index.js");
|
|
39
29
|
const overlayOnlyHandler = async () => true;
|
|
40
30
|
function parseQuotedArguments(input) {
|
|
41
31
|
const args = [];
|
|
@@ -114,23 +104,23 @@ function getCommandSuggestions(partial, commands) {
|
|
|
114
104
|
return suggestions.sort();
|
|
115
105
|
}
|
|
116
106
|
function formatCommandHelp(cmd, detailed = false) {
|
|
117
|
-
let help =
|
|
107
|
+
let help = (0, import_signal.paint)("teal")(`/${cmd.name}`) + " - " + cmd.description;
|
|
118
108
|
if (detailed) {
|
|
119
|
-
help += "\n" +
|
|
109
|
+
help += "\n" + (0, import_signal.paint)("dim")(`Usage: ${cmd.usage}`);
|
|
120
110
|
if (cmd.aliases && cmd.aliases.length > 0) {
|
|
121
|
-
help += "\n" +
|
|
111
|
+
help += "\n" + (0, import_signal.paint)("dim")(`Aliases: ${cmd.aliases.map((a) => `/${a}`).join(", ")}`);
|
|
122
112
|
}
|
|
123
113
|
if (cmd.subcommands && cmd.subcommands.length > 0) {
|
|
124
|
-
help += "\n" +
|
|
114
|
+
help += "\n" + (0, import_signal.paint)("dim")("Subcommands:");
|
|
125
115
|
for (const sub of cmd.subcommands) {
|
|
126
|
-
help += "\n " +
|
|
116
|
+
help += "\n " + (0, import_signal.paint)("teal")(`/${cmd.name} ${sub.name}`) + " - " + sub.description;
|
|
127
117
|
}
|
|
128
118
|
}
|
|
129
119
|
}
|
|
130
120
|
return help;
|
|
131
121
|
}
|
|
132
122
|
function displayAllCommands(commands) {
|
|
133
|
-
console.log(
|
|
123
|
+
console.log((0, import_signal.paint)("add").bold("\n\u{1F4CB} Available Commands:\n"));
|
|
134
124
|
const categoryOrder = [
|
|
135
125
|
"General",
|
|
136
126
|
"Session Management",
|
|
@@ -156,7 +146,7 @@ function displayAllCommands(commands) {
|
|
|
156
146
|
for (const category of categoryOrder) {
|
|
157
147
|
const cmds = categories[category];
|
|
158
148
|
if (cmds && cmds.length > 0) {
|
|
159
|
-
console.log(
|
|
149
|
+
console.log((0, import_signal.paint)("amber").bold(`${category}:`));
|
|
160
150
|
for (const cmd of cmds) {
|
|
161
151
|
console.log(" " + formatCommandHelp(cmd));
|
|
162
152
|
}
|
|
@@ -165,15 +155,17 @@ function displayAllCommands(commands) {
|
|
|
165
155
|
}
|
|
166
156
|
for (const [category, cmds] of Object.entries(categories)) {
|
|
167
157
|
if (!categoryOrder.includes(category) && cmds.length > 0) {
|
|
168
|
-
console.log(
|
|
158
|
+
console.log((0, import_signal.paint)("amber").bold(`${category}:`));
|
|
169
159
|
for (const cmd of cmds) {
|
|
170
160
|
console.log(" " + formatCommandHelp(cmd));
|
|
171
161
|
}
|
|
172
162
|
console.log();
|
|
173
163
|
}
|
|
174
164
|
}
|
|
175
|
-
console.log(
|
|
176
|
-
console.log(
|
|
165
|
+
console.log((0, import_signal.paint)("dim")("\u{1F4A1} Tip: Use /help <command> for detailed help on any command"));
|
|
166
|
+
console.log(
|
|
167
|
+
(0, import_signal.paint)("dim")("\u{1F4A1} Tip: Type your message normally (without /) to chat with the AI\n")
|
|
168
|
+
);
|
|
177
169
|
}
|
|
178
170
|
// Annotate the CommonJS export names for ESM import in node:
|
|
179
171
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../../src/interactive-commands/command-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,uDAAuD;IACvD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yEAAyE;IACzE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,OAAO,EAAE,CACL,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,cAAc,KAClB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,oBAAoB,CAAS,CAAC;AA4ClF;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAiCvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAoB9F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,GAAE,OAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../../src/interactive-commands/command-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,uDAAuD;IACvD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yEAAyE;IACzE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,OAAO,EAAE,CACL,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,cAAc,KAClB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,oBAAoB,CAAS,CAAC;AA4ClF;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAiCvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAoB9F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,GAAE,OAAe,GAAG,MAAM,CAoB3F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,CA2DtE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { paint } from "../signal/index.js";
|
|
2
2
|
const overlayOnlyHandler = async () => true;
|
|
3
3
|
function parseQuotedArguments(input) {
|
|
4
4
|
const args = [];
|
|
@@ -77,23 +77,23 @@ function getCommandSuggestions(partial, commands) {
|
|
|
77
77
|
return suggestions.sort();
|
|
78
78
|
}
|
|
79
79
|
function formatCommandHelp(cmd, detailed = false) {
|
|
80
|
-
let help =
|
|
80
|
+
let help = paint("teal")(`/${cmd.name}`) + " - " + cmd.description;
|
|
81
81
|
if (detailed) {
|
|
82
|
-
help += "\n" +
|
|
82
|
+
help += "\n" + paint("dim")(`Usage: ${cmd.usage}`);
|
|
83
83
|
if (cmd.aliases && cmd.aliases.length > 0) {
|
|
84
|
-
help += "\n" +
|
|
84
|
+
help += "\n" + paint("dim")(`Aliases: ${cmd.aliases.map((a) => `/${a}`).join(", ")}`);
|
|
85
85
|
}
|
|
86
86
|
if (cmd.subcommands && cmd.subcommands.length > 0) {
|
|
87
|
-
help += "\n" +
|
|
87
|
+
help += "\n" + paint("dim")("Subcommands:");
|
|
88
88
|
for (const sub of cmd.subcommands) {
|
|
89
|
-
help += "\n " +
|
|
89
|
+
help += "\n " + paint("teal")(`/${cmd.name} ${sub.name}`) + " - " + sub.description;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
return help;
|
|
94
94
|
}
|
|
95
95
|
function displayAllCommands(commands) {
|
|
96
|
-
console.log(
|
|
96
|
+
console.log(paint("add").bold("\n\u{1F4CB} Available Commands:\n"));
|
|
97
97
|
const categoryOrder = [
|
|
98
98
|
"General",
|
|
99
99
|
"Session Management",
|
|
@@ -119,7 +119,7 @@ function displayAllCommands(commands) {
|
|
|
119
119
|
for (const category of categoryOrder) {
|
|
120
120
|
const cmds = categories[category];
|
|
121
121
|
if (cmds && cmds.length > 0) {
|
|
122
|
-
console.log(
|
|
122
|
+
console.log(paint("amber").bold(`${category}:`));
|
|
123
123
|
for (const cmd of cmds) {
|
|
124
124
|
console.log(" " + formatCommandHelp(cmd));
|
|
125
125
|
}
|
|
@@ -128,15 +128,17 @@ function displayAllCommands(commands) {
|
|
|
128
128
|
}
|
|
129
129
|
for (const [category, cmds] of Object.entries(categories)) {
|
|
130
130
|
if (!categoryOrder.includes(category) && cmds.length > 0) {
|
|
131
|
-
console.log(
|
|
131
|
+
console.log(paint("amber").bold(`${category}:`));
|
|
132
132
|
for (const cmd of cmds) {
|
|
133
133
|
console.log(" " + formatCommandHelp(cmd));
|
|
134
134
|
}
|
|
135
135
|
console.log();
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
-
console.log(
|
|
139
|
-
console.log(
|
|
138
|
+
console.log(paint("dim")("\u{1F4A1} Tip: Use /help <command> for detailed help on any command"));
|
|
139
|
+
console.log(
|
|
140
|
+
paint("dim")("\u{1F4A1} Tip: Type your message normally (without /) to chat with the AI\n")
|
|
141
|
+
);
|
|
140
142
|
}
|
|
141
143
|
export {
|
|
142
144
|
displayAllCommands,
|
|
@@ -40,6 +40,7 @@ var import_command_output = require("./utils/command-output.js");
|
|
|
40
40
|
var import_clipboardUtils = require("../utils/clipboardUtils.js");
|
|
41
41
|
var import_exit_stats = require("./exit-stats.js");
|
|
42
42
|
var import_exit_handler = require("./exit-handler.js");
|
|
43
|
+
var import_signal = require("../signal/index.js");
|
|
43
44
|
function getShellRcFile(shell) {
|
|
44
45
|
const home = process.env.HOME;
|
|
45
46
|
if (!home) return null;
|
|
@@ -140,13 +141,13 @@ const generalCommands = [
|
|
|
140
141
|
lines.push(stdout.trim());
|
|
141
142
|
}
|
|
142
143
|
if (stderr.trim()) {
|
|
143
|
-
lines.push(
|
|
144
|
+
lines.push((0, import_signal.paint)("amberDim")(stderr.trim()));
|
|
144
145
|
}
|
|
145
146
|
if (exitCode !== 0) {
|
|
146
|
-
lines.push(
|
|
147
|
+
lines.push((0, import_signal.paint)("red")(`Exit code: ${exitCode}`));
|
|
147
148
|
}
|
|
148
149
|
if (lines.length === 0) {
|
|
149
|
-
return (0, import_format_output.formatForInkCli)(
|
|
150
|
+
return (0, import_format_output.formatForInkCli)((0, import_signal.paint)("dim")("(no output)"));
|
|
150
151
|
}
|
|
151
152
|
return (0, import_format_output.formatForInkCli)(lines.join("\n"));
|
|
152
153
|
}
|
|
@@ -299,9 +300,9 @@ const generalCommands = [
|
|
|
299
300
|
const filledWidth = Math.round(displayPercent / 100 * barWidth);
|
|
300
301
|
const emptyWidth = barWidth - filledWidth;
|
|
301
302
|
const progressBar = "\u2588".repeat(filledWidth) + "\u2591".repeat(emptyWidth);
|
|
302
|
-
let usageColor =
|
|
303
|
-
if (stats.usagePercent > 80) usageColor =
|
|
304
|
-
else if (stats.usagePercent > 60) usageColor =
|
|
303
|
+
let usageColor = (0, import_signal.paint)("add");
|
|
304
|
+
if (stats.usagePercent > 80) usageColor = (0, import_signal.paint)("red");
|
|
305
|
+
else if (stats.usagePercent > 60) usageColor = (0, import_signal.paint)("amberDim");
|
|
305
306
|
const formatTokens = (tokens) => {
|
|
306
307
|
if (tokens >= 1e3) {
|
|
307
308
|
return `${(tokens / 1e3).toFixed(1)}k`;
|
|
@@ -328,7 +329,7 @@ const generalCommands = [
|
|
|
328
329
|
` ${usageColor(progressBar)} ${stats.usagePercent}%${overflowWarning}`,
|
|
329
330
|
` ${import_chalk.default.dim(stats.modelDisplayName)} \xB7 ${tokenDisplay} / ${formatTokens(totalTokenSpace)} tokens`,
|
|
330
331
|
``,
|
|
331
|
-
` ${
|
|
332
|
+
` ${(0, import_signal.paint)("teal")("Breakdown:")} ${breakdownLabel}`,
|
|
332
333
|
` \u251C\u2500 System prompt: ${formatTokens(breakdown.systemPrompt)} (${pct(breakdown.systemPrompt)})`,
|
|
333
334
|
` \u251C\u2500 Tools: ${formatTokens(breakdown.tools.total)} (${pct(breakdown.tools.total)})`,
|
|
334
335
|
` \u251C\u2500 Messages: ${formatTokens(breakdown.messages)} (${pct(breakdown.messages)})`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general-commands.d.ts","sourceRoot":"","sources":["../../src/interactive-commands/general-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"general-commands.d.ts","sourceRoot":"","sources":["../../src/interactive-commands/general-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,qBAAqB,CAAC;AAQnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAoG3D;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,4BAA4B,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,iBAAiB,EAAE,GAC9E,iBAAiB,CAgCnB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAwe9C,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { CommandOutputHelper } from "./utils/command-output.js";
|
|
|
6
6
|
import { writeToClipboard } from "../utils/clipboardUtils.js";
|
|
7
7
|
import { hasMeaningfulTokenUsage, setExitStats } from "./exit-stats.js";
|
|
8
8
|
import { triggerExit } from "./exit-handler.js";
|
|
9
|
+
import { paint } from "../signal/index.js";
|
|
9
10
|
function getShellRcFile(shell) {
|
|
10
11
|
const home = process.env.HOME;
|
|
11
12
|
if (!home) return null;
|
|
@@ -106,13 +107,13 @@ const generalCommands = [
|
|
|
106
107
|
lines.push(stdout.trim());
|
|
107
108
|
}
|
|
108
109
|
if (stderr.trim()) {
|
|
109
|
-
lines.push(
|
|
110
|
+
lines.push(paint("amberDim")(stderr.trim()));
|
|
110
111
|
}
|
|
111
112
|
if (exitCode !== 0) {
|
|
112
|
-
lines.push(
|
|
113
|
+
lines.push(paint("red")(`Exit code: ${exitCode}`));
|
|
113
114
|
}
|
|
114
115
|
if (lines.length === 0) {
|
|
115
|
-
return formatForInkCli(
|
|
116
|
+
return formatForInkCli(paint("dim")("(no output)"));
|
|
116
117
|
}
|
|
117
118
|
return formatForInkCli(lines.join("\n"));
|
|
118
119
|
}
|
|
@@ -265,9 +266,9 @@ const generalCommands = [
|
|
|
265
266
|
const filledWidth = Math.round(displayPercent / 100 * barWidth);
|
|
266
267
|
const emptyWidth = barWidth - filledWidth;
|
|
267
268
|
const progressBar = "\u2588".repeat(filledWidth) + "\u2591".repeat(emptyWidth);
|
|
268
|
-
let usageColor =
|
|
269
|
-
if (stats.usagePercent > 80) usageColor =
|
|
270
|
-
else if (stats.usagePercent > 60) usageColor =
|
|
269
|
+
let usageColor = paint("add");
|
|
270
|
+
if (stats.usagePercent > 80) usageColor = paint("red");
|
|
271
|
+
else if (stats.usagePercent > 60) usageColor = paint("amberDim");
|
|
271
272
|
const formatTokens = (tokens) => {
|
|
272
273
|
if (tokens >= 1e3) {
|
|
273
274
|
return `${(tokens / 1e3).toFixed(1)}k`;
|
|
@@ -294,7 +295,7 @@ const generalCommands = [
|
|
|
294
295
|
` ${usageColor(progressBar)} ${stats.usagePercent}%${overflowWarning}`,
|
|
295
296
|
` ${chalk.dim(stats.modelDisplayName)} \xB7 ${tokenDisplay} / ${formatTokens(totalTokenSpace)} tokens`,
|
|
296
297
|
``,
|
|
297
|
-
` ${
|
|
298
|
+
` ${paint("teal")("Breakdown:")} ${breakdownLabel}`,
|
|
298
299
|
` \u251C\u2500 System prompt: ${formatTokens(breakdown.systemPrompt)} (${pct(breakdown.systemPrompt)})`,
|
|
299
300
|
` \u251C\u2500 Tools: ${formatTokens(breakdown.tools.total)} (${pct(breakdown.tools.total)})`,
|
|
300
301
|
` \u251C\u2500 Messages: ${formatTokens(breakdown.messages)} (${pct(breakdown.messages)})`,
|
|
@@ -35,6 +35,7 @@ var import_debugLog = require("../utils/debugLog.js");
|
|
|
35
35
|
var import_core = require("@dexto/core");
|
|
36
36
|
var import_idGenerator = require("../utils/idGenerator.js");
|
|
37
37
|
var import_streamSplitter = require("../utils/streamSplitter.js");
|
|
38
|
+
var import_tool_step = require("../utils/tool-step.js");
|
|
38
39
|
var import_messageFormatting = require("../utils/messageFormatting.js");
|
|
39
40
|
var import_toolUtils = require("../utils/toolUtils.js");
|
|
40
41
|
var import_host = require("../host/index.js");
|
|
@@ -48,6 +49,11 @@ function buildErrorContent(error, prefix) {
|
|
|
48
49
|
}
|
|
49
50
|
return errorContent;
|
|
50
51
|
}
|
|
52
|
+
function isReportedError(error, reported) {
|
|
53
|
+
if (reported.has(error)) return true;
|
|
54
|
+
if (!(error instanceof Error)) return false;
|
|
55
|
+
return [...reported].some((each) => each instanceof Error && each.message === error.message);
|
|
56
|
+
}
|
|
51
57
|
function getErrorCode(error) {
|
|
52
58
|
if (typeof error !== "object" || error === null) {
|
|
53
59
|
return null;
|
|
@@ -81,9 +87,9 @@ function extractInsufficientCreditsBalance(error) {
|
|
|
81
87
|
}
|
|
82
88
|
function buildInsufficientCreditsContent(balance) {
|
|
83
89
|
if (balance === null) {
|
|
84
|
-
return "Out of Dexto
|
|
90
|
+
return "Out of Dexto credits.\nUse the billing prompt to top up and retry your request.";
|
|
85
91
|
}
|
|
86
|
-
return `Out of Dexto
|
|
92
|
+
return `Out of Dexto credits. Current balance: $${balance.toFixed(2)}.
|
|
87
93
|
Use the billing prompt to top up and retry your request.`;
|
|
88
94
|
}
|
|
89
95
|
function hasMeaningfulTokenUsageForAnalytics(tokenUsage, estimatedCost) {
|
|
@@ -106,6 +112,7 @@ async function processStream(iterator, setters, options) {
|
|
|
106
112
|
} = setters;
|
|
107
113
|
const useStreaming = options?.useStreaming ?? true;
|
|
108
114
|
const approvalIdToToolCallId = /* @__PURE__ */ new Map();
|
|
115
|
+
const reportedErrors = /* @__PURE__ */ new Set();
|
|
109
116
|
const state = {
|
|
110
117
|
messageId: null,
|
|
111
118
|
content: "",
|
|
@@ -477,9 +484,6 @@ async function processStream(iterator, setters, options) {
|
|
|
477
484
|
break;
|
|
478
485
|
}
|
|
479
486
|
case "llm:tool-call": {
|
|
480
|
-
if ((0, import_messageFormatting.shouldHideTool)(event.toolName)) {
|
|
481
|
-
break;
|
|
482
|
-
}
|
|
483
487
|
debug.log("TOOL-CALL: state check", {
|
|
484
488
|
toolName: event.toolName,
|
|
485
489
|
hasMessageId: !!state.messageId,
|
|
@@ -559,7 +563,7 @@ async function processStream(iterator, setters, options) {
|
|
|
559
563
|
}
|
|
560
564
|
}
|
|
561
565
|
const toolMessageId = event.callId ? `tool-${event.callId}` : (0, import_idGenerator.generateMessageId)("tool");
|
|
562
|
-
const { header: toolContent } = (0, import_messageFormatting.formatToolHeader)({
|
|
566
|
+
const { header: toolContent, argsFormatted: toolArgs } = (0, import_messageFormatting.formatToolHeader)({
|
|
563
567
|
toolName: event.toolName,
|
|
564
568
|
args: event.args || {},
|
|
565
569
|
...event.presentationSnapshot !== void 0 && {
|
|
@@ -577,6 +581,8 @@ ${import_chalk.default.dim(runningDescription)}`;
|
|
|
577
581
|
role: "tool",
|
|
578
582
|
content: finalToolContent,
|
|
579
583
|
timestamp: /* @__PURE__ */ new Date(),
|
|
584
|
+
toolName: event.toolName,
|
|
585
|
+
toolArgs,
|
|
580
586
|
toolStatus: "pending"
|
|
581
587
|
});
|
|
582
588
|
(0, import_host.captureAnalytics)("dexto_tool_called", {
|
|
@@ -587,9 +593,6 @@ ${import_chalk.default.dim(runningDescription)}`;
|
|
|
587
593
|
break;
|
|
588
594
|
}
|
|
589
595
|
case "llm:tool-result": {
|
|
590
|
-
if ((0, import_messageFormatting.shouldHideTool)(event.toolName)) {
|
|
591
|
-
break;
|
|
592
|
-
}
|
|
593
596
|
const sanitized = event.sanitized;
|
|
594
597
|
const toolDisplayData = sanitized?.meta?.display;
|
|
595
598
|
const toolContent = sanitized?.content;
|
|
@@ -628,6 +631,8 @@ ${import_chalk.default.dim(runningDescription)}`;
|
|
|
628
631
|
toolResult: resultPreview,
|
|
629
632
|
toolStatus: "finished",
|
|
630
633
|
isError: !event.success,
|
|
634
|
+
...(0, import_tool_step.backgroundFailure)(event.toolName, event.rawResult),
|
|
635
|
+
...!event.success && event.error !== void 0 && { toolFailureText: event.error },
|
|
631
636
|
...toolDisplayData && { toolDisplayData },
|
|
632
637
|
...toolContent && { toolContent }
|
|
633
638
|
});
|
|
@@ -654,6 +659,7 @@ ${import_chalk.default.dim(runningDescription)}`;
|
|
|
654
659
|
break;
|
|
655
660
|
}
|
|
656
661
|
case "llm:error": {
|
|
662
|
+
reportedErrors.add(event.error);
|
|
657
663
|
const insufficientCredits = getErrorCode(event.error) === import_core.LLMErrorCode.INSUFFICIENT_CREDITS;
|
|
658
664
|
const insufficientCreditsBalance = insufficientCredits ? extractInsufficientCreditsBalance(event.error) : null;
|
|
659
665
|
const errorContent = insufficientCredits ? buildInsufficientCreditsContent(insufficientCreditsBalance) : buildErrorContent(event.error, "Error: ");
|
|
@@ -663,7 +669,8 @@ ${import_chalk.default.dim(runningDescription)}`;
|
|
|
663
669
|
id: (0, import_idGenerator.generateMessageId)("error"),
|
|
664
670
|
role: "system",
|
|
665
671
|
content: errorContent,
|
|
666
|
-
timestamp: /* @__PURE__ */ new Date()
|
|
672
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
673
|
+
systemKind: "fault"
|
|
667
674
|
}
|
|
668
675
|
]);
|
|
669
676
|
if (event.recoverable !== true) {
|
|
@@ -853,7 +860,8 @@ ${import_chalk.default.dim(runningDescription)}`;
|
|
|
853
860
|
finalizeMessage(`tool-${toolCallId}`, {
|
|
854
861
|
toolStatus: "finished",
|
|
855
862
|
toolResult: "Cancelled",
|
|
856
|
-
isError: true
|
|
863
|
+
isError: true,
|
|
864
|
+
toolOutcome: event.status === import_core.ApprovalStatus.DENIED ? "denied" : "cancelled"
|
|
857
865
|
});
|
|
858
866
|
}
|
|
859
867
|
}
|
|
@@ -945,6 +953,7 @@ ${import_chalk.default.dim(runningDescription)}`;
|
|
|
945
953
|
break;
|
|
946
954
|
}
|
|
947
955
|
}
|
|
956
|
+
setUi((prev) => prev.isCancelling ? { ...prev, isCancelling: false } : prev);
|
|
948
957
|
} catch (error) {
|
|
949
958
|
if (error instanceof Error && error.name === "AbortError") {
|
|
950
959
|
clearPending();
|
|
@@ -956,16 +965,19 @@ ${import_chalk.default.dim(runningDescription)}`;
|
|
|
956
965
|
}));
|
|
957
966
|
} else {
|
|
958
967
|
clearPending();
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
968
|
+
if (!isReportedError(error, reportedErrors)) {
|
|
969
|
+
const errorContent = buildErrorContent(error, "Stream error: ");
|
|
970
|
+
setMessages((prev) => [
|
|
971
|
+
...prev,
|
|
972
|
+
{
|
|
973
|
+
id: (0, import_idGenerator.generateMessageId)("error"),
|
|
974
|
+
role: "system",
|
|
975
|
+
content: errorContent,
|
|
976
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
977
|
+
systemKind: "fault"
|
|
978
|
+
}
|
|
979
|
+
]);
|
|
980
|
+
}
|
|
969
981
|
setUi((prev) => ({
|
|
970
982
|
...prev,
|
|
971
983
|
isProcessing: false,
|