dexto 1.3.0 → 1.5.0
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/README.md +87 -22
- package/dist/agents/agent-registry.json +9 -0
- package/dist/agents/agent-template.yml +2 -2
- package/dist/agents/coding-agent/coding-agent.yml +27 -16
- package/dist/agents/database-agent/database-agent.yml +2 -2
- package/dist/agents/default-agent.yml +9 -7
- package/dist/agents/github-agent/github-agent.yml +2 -2
- package/dist/agents/product-name-researcher/product-name-researcher.yml +2 -2
- package/dist/agents/talk2pdf-agent/talk2pdf-agent.yml +2 -2
- package/dist/analytics/events.d.ts +13 -6
- package/dist/analytics/events.d.ts.map +1 -1
- package/dist/analytics/index.d.ts +1 -1
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +6 -2
- package/dist/api/server-hono.d.ts.map +1 -1
- package/dist/api/server-hono.js +65 -9
- package/dist/cli/cli-subscriber.d.ts +4 -0
- package/dist/cli/cli-subscriber.d.ts.map +1 -1
- package/dist/cli/cli-subscriber.js +47 -3
- package/dist/cli/commands/create-app.d.ts +16 -14
- package/dist/cli/commands/create-app.d.ts.map +1 -1
- package/dist/cli/commands/create-app.js +626 -102
- package/dist/cli/commands/create-image.d.ts +7 -0
- package/dist/cli/commands/create-image.d.ts.map +1 -0
- package/dist/cli/commands/create-image.js +201 -0
- package/dist/cli/commands/helpers/formatters.d.ts.map +1 -1
- package/dist/cli/commands/helpers/formatters.js +9 -8
- package/dist/cli/commands/index.d.ts +2 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -1
- package/dist/cli/commands/init-app.js +7 -7
- package/dist/cli/commands/install.d.ts +0 -3
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +19 -70
- package/dist/cli/commands/interactive-commands/command-parser.d.ts +17 -14
- package/dist/cli/commands/interactive-commands/command-parser.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/command-parser.js +7 -22
- package/dist/cli/commands/interactive-commands/commands.d.ts +4 -4
- package/dist/cli/commands/interactive-commands/commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/commands.js +34 -42
- package/dist/cli/commands/interactive-commands/documentation-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/documentation-commands.js +4 -7
- package/dist/cli/commands/interactive-commands/general-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/general-commands.js +159 -117
- package/dist/cli/commands/interactive-commands/mcp/index.d.ts +9 -3
- package/dist/cli/commands/interactive-commands/mcp/index.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/mcp/index.js +18 -3
- package/dist/cli/commands/interactive-commands/model/index.d.ts +8 -6
- package/dist/cli/commands/interactive-commands/model/index.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/model/index.js +18 -6
- package/dist/cli/commands/interactive-commands/prompt-commands.d.ts +3 -2
- package/dist/cli/commands/interactive-commands/prompt-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/prompt-commands.js +77 -60
- package/dist/cli/commands/interactive-commands/session/index.d.ts +7 -12
- package/dist/cli/commands/interactive-commands/session/index.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/session/index.js +7 -14
- package/dist/cli/commands/interactive-commands/session/session-commands.d.ts +10 -24
- package/dist/cli/commands/interactive-commands/session/session-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/session/session-commands.js +16 -371
- package/dist/cli/commands/interactive-commands/system/system-commands.d.ts +1 -0
- package/dist/cli/commands/interactive-commands/system/system-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/system/system-commands.js +106 -77
- package/dist/cli/commands/interactive-commands/tool-commands.d.ts +1 -1
- package/dist/cli/commands/interactive-commands/tool-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/tool-commands.js +5 -62
- package/dist/cli/commands/interactive-commands/utils/command-output.d.ts +13 -17
- package/dist/cli/commands/interactive-commands/utils/command-output.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/utils/command-output.js +18 -37
- package/dist/cli/commands/list-agents.d.ts +2 -2
- package/dist/cli/commands/list-agents.d.ts.map +1 -1
- package/dist/cli/commands/list-agents.js +38 -34
- package/dist/cli/commands/session-commands.js +16 -16
- package/dist/cli/commands/setup.d.ts +13 -5
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +860 -65
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.js +4 -6
- package/dist/cli/commands/which.d.ts.map +1 -1
- package/dist/cli/commands/which.js +18 -4
- package/dist/cli/ink-cli/InkCLIRefactored.d.ts +9 -22
- package/dist/cli/ink-cli/InkCLIRefactored.d.ts.map +1 -1
- package/dist/cli/ink-cli/InkCLIRefactored.js +50 -133
- package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts +26 -3
- package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/ApprovalPrompt.js +182 -45
- package/dist/cli/ink-cli/components/CustomInput.js +1 -1
- package/dist/cli/ink-cli/components/EditableMultiLineInput.js +4 -4
- package/dist/cli/ink-cli/components/ElicitationForm.d.ts +22 -0
- package/dist/cli/ink-cli/components/ElicitationForm.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/ElicitationForm.js +358 -0
- package/dist/cli/ink-cli/components/ErrorBoundary.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/ErrorBoundary.js +1 -1
- package/dist/cli/ink-cli/components/Footer.d.ts +16 -0
- package/dist/cli/ink-cli/components/Footer.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/Footer.js +27 -0
- package/dist/cli/ink-cli/components/HistorySearchBar.d.ts +17 -0
- package/dist/cli/ink-cli/components/HistorySearchBar.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/HistorySearchBar.js +8 -0
- package/dist/cli/ink-cli/components/MultiLineInput.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/MultiLineInput.js +3 -3
- package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts +15 -2
- package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/ResourceAutocomplete.js +126 -82
- package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts +15 -2
- package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/SlashCommandAutocomplete.js +228 -122
- package/dist/cli/ink-cli/components/StatusBar.d.ts +15 -2
- package/dist/cli/ink-cli/components/StatusBar.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/StatusBar.js +50 -10
- package/dist/cli/ink-cli/components/TextBufferInput.d.ts +52 -0
- package/dist/cli/ink-cli/components/TextBufferInput.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/TextBufferInput.js +471 -0
- package/dist/cli/ink-cli/components/base/BaseAutocomplete.js +4 -4
- package/dist/cli/ink-cli/components/base/BaseSelector.d.ts +11 -1
- package/dist/cli/ink-cli/components/base/BaseSelector.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/base/BaseSelector.js +90 -49
- package/dist/cli/ink-cli/components/chat/Footer.js +1 -1
- package/dist/cli/ink-cli/components/chat/Header.d.ts +1 -0
- package/dist/cli/ink-cli/components/chat/Header.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/chat/Header.js +6 -3
- package/dist/cli/ink-cli/components/chat/MessageItem.d.ts +3 -0
- package/dist/cli/ink-cli/components/chat/MessageItem.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/chat/MessageItem.js +95 -9
- package/dist/cli/ink-cli/components/chat/MessageList.js +1 -1
- package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.d.ts +16 -0
- package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.js +27 -0
- package/dist/cli/ink-cli/components/chat/ToolIcon.d.ts +5 -3
- package/dist/cli/ink-cli/components/chat/ToolIcon.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/chat/ToolIcon.js +21 -7
- package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.d.ts +10 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.js +6 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.d.ts +10 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.js +15 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.d.ts +10 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.js +9 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.d.ts +10 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.js +37 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.d.ts +10 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.js +9 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.d.ts +10 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.js +6 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.d.ts +10 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.js +29 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.d.ts +45 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.js +38 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.d.ts +10 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.js +6 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/index.d.ts +13 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/index.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/chat/styled-boxes/index.js +12 -0
- package/dist/cli/ink-cli/components/input/InputArea.d.ts +36 -8
- package/dist/cli/ink-cli/components/input/InputArea.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/input/InputArea.js +3 -3
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts +25 -0
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +166 -0
- package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts +27 -0
- package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/modes/StaticCLI.js +95 -0
- package/dist/cli/ink-cli/components/modes/index.d.ts +10 -0
- package/dist/cli/ink-cli/components/modes/index.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/modes/index.js +9 -0
- package/dist/cli/ink-cli/components/overlays/ApiKeyInput.d.ts +26 -0
- package/dist/cli/ink-cli/components/overlays/ApiKeyInput.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/ApiKeyInput.js +92 -0
- package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts +29 -0
- package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/CustomModelWizard.js +286 -0
- package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts +22 -0
- package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/LogLevelSelector.js +59 -0
- package/dist/cli/ink-cli/components/overlays/McpAddChoice.d.ts +22 -0
- package/dist/cli/ink-cli/components/overlays/McpAddChoice.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/McpAddChoice.js +59 -0
- package/dist/cli/ink-cli/components/overlays/McpAddSelector.d.ts +26 -0
- package/dist/cli/ink-cli/components/overlays/McpAddSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/McpAddSelector.js +73 -0
- package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.d.ts +21 -0
- package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.js +51 -0
- package/dist/cli/ink-cli/components/overlays/McpCustomWizard.d.ts +29 -0
- package/dist/cli/ink-cli/components/overlays/McpCustomWizard.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/McpCustomWizard.js +215 -0
- package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts +22 -0
- package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.js +74 -0
- package/dist/cli/ink-cli/components/overlays/McpSelector.d.ts +21 -0
- package/dist/cli/ink-cli/components/overlays/McpSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/McpSelector.js +52 -0
- package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts +28 -0
- package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/McpServerActions.js +84 -0
- package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts +29 -0
- package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/McpServerList.js +109 -0
- package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts +15 -8
- package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.js +400 -23
- package/dist/cli/ink-cli/components/overlays/PromptAddChoice.d.ts +22 -0
- package/dist/cli/ink-cli/components/overlays/PromptAddChoice.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/PromptAddChoice.js +52 -0
- package/dist/cli/ink-cli/components/overlays/PromptAddWizard.d.ts +29 -0
- package/dist/cli/ink-cli/components/overlays/PromptAddWizard.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/PromptAddWizard.js +166 -0
- package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.d.ts +27 -0
- package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.js +119 -0
- package/dist/cli/ink-cli/components/overlays/PromptList.d.ts +33 -0
- package/dist/cli/ink-cli/components/overlays/PromptList.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/PromptList.js +144 -0
- package/dist/cli/ink-cli/components/overlays/SearchOverlay.d.ts +23 -0
- package/dist/cli/ink-cli/components/overlays/SearchOverlay.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/SearchOverlay.js +189 -0
- package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.d.ts +7 -2
- package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.d.ts.map +1 -1
- package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.js +19 -5
- package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.d.ts +21 -0
- package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.js +42 -0
- package/dist/cli/ink-cli/components/overlays/StreamSelector.d.ts +20 -0
- package/dist/cli/ink-cli/components/overlays/StreamSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/StreamSelector.js +58 -0
- package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts +25 -0
- package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/ToolBrowser.js +400 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.d.ts +25 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.js +609 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.d.ts +15 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.js +14 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts +33 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.js +419 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts +25 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.js +29 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts +17 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.js +11 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts +20 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.js +10 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts +30 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.js +13 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.d.ts +8 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.js +7 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.d.ts +79 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.js +38 -0
- package/dist/cli/ink-cli/components/renderers/DiffRenderer.d.ts +21 -0
- package/dist/cli/ink-cli/components/renderers/DiffRenderer.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/renderers/DiffRenderer.js +65 -0
- package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts +28 -0
- package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.js +66 -0
- package/dist/cli/ink-cli/components/renderers/FileRenderer.d.ts +19 -0
- package/dist/cli/ink-cli/components/renderers/FileRenderer.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/renderers/FileRenderer.js +26 -0
- package/dist/cli/ink-cli/components/renderers/GenericRenderer.d.ts +21 -0
- package/dist/cli/ink-cli/components/renderers/GenericRenderer.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/renderers/GenericRenderer.js +26 -0
- package/dist/cli/ink-cli/components/renderers/SearchRenderer.d.ts +20 -0
- package/dist/cli/ink-cli/components/renderers/SearchRenderer.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/renderers/SearchRenderer.js +12 -0
- package/dist/cli/ink-cli/components/renderers/ShellRenderer.d.ts +21 -0
- package/dist/cli/ink-cli/components/renderers/ShellRenderer.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/renderers/ShellRenderer.js +25 -0
- package/dist/cli/ink-cli/components/renderers/diff-shared.d.ts +61 -0
- package/dist/cli/ink-cli/components/renderers/diff-shared.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/renderers/diff-shared.js +158 -0
- package/dist/cli/ink-cli/components/renderers/index.d.ts +28 -0
- package/dist/cli/ink-cli/components/renderers/index.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/renderers/index.js +36 -0
- package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts +38 -0
- package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/shared/MarkdownText.js +362 -0
- package/dist/cli/ink-cli/components/shared/VirtualizedList.d.ts +44 -0
- package/dist/cli/ink-cli/components/shared/VirtualizedList.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/shared/VirtualizedList.js +300 -0
- package/dist/cli/ink-cli/components/shared/text-buffer.d.ts +185 -0
- package/dist/cli/ink-cli/components/shared/text-buffer.d.ts.map +1 -0
- package/dist/cli/ink-cli/components/shared/text-buffer.js +1338 -0
- package/dist/cli/ink-cli/constants/processingPhrases.d.ts +10 -0
- package/dist/cli/ink-cli/constants/processingPhrases.d.ts.map +1 -0
- package/dist/cli/ink-cli/constants/processingPhrases.js +64 -0
- package/dist/cli/ink-cli/constants/tips.d.ts +15 -0
- package/dist/cli/ink-cli/constants/tips.d.ts.map +1 -0
- package/dist/cli/ink-cli/constants/tips.js +53 -0
- package/dist/cli/ink-cli/containers/InputContainer.d.ts +42 -8
- package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +1 -1
- package/dist/cli/ink-cli/containers/InputContainer.js +513 -85
- package/dist/cli/ink-cli/containers/OverlayContainer.d.ts +23 -5
- package/dist/cli/ink-cli/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/cli/ink-cli/containers/OverlayContainer.js +1214 -132
- package/dist/cli/ink-cli/containers/index.d.ts +1 -1
- package/dist/cli/ink-cli/containers/index.d.ts.map +1 -1
- package/dist/cli/ink-cli/contexts/KeypressContext.d.ts +36 -0
- package/dist/cli/ink-cli/contexts/KeypressContext.d.ts.map +1 -0
- package/dist/cli/ink-cli/contexts/KeypressContext.js +461 -0
- package/dist/cli/ink-cli/contexts/MouseContext.d.ts +27 -0
- package/dist/cli/ink-cli/contexts/MouseContext.d.ts.map +1 -0
- package/dist/cli/ink-cli/contexts/MouseContext.js +102 -0
- package/dist/cli/ink-cli/contexts/ScrollProvider.d.ts +33 -0
- package/dist/cli/ink-cli/contexts/ScrollProvider.d.ts.map +1 -0
- package/dist/cli/ink-cli/contexts/ScrollProvider.js +170 -0
- package/dist/cli/ink-cli/contexts/index.d.ts +7 -0
- package/dist/cli/ink-cli/contexts/index.d.ts.map +1 -0
- package/dist/cli/ink-cli/contexts/index.js +6 -0
- package/dist/cli/ink-cli/hooks/index.d.ts +5 -0
- package/dist/cli/ink-cli/hooks/index.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/index.js +6 -1
- package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts +26 -9
- package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/useAgentEvents.js +90 -198
- package/dist/cli/ink-cli/hooks/useBatchedScroll.d.ts +14 -0
- package/dist/cli/ink-cli/hooks/useBatchedScroll.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useBatchedScroll.js +25 -0
- package/dist/cli/ink-cli/hooks/useCLIState.d.ts +50 -0
- package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useCLIState.js +190 -0
- package/dist/cli/ink-cli/hooks/useElapsedTime.d.ts +24 -0
- package/dist/cli/ink-cli/hooks/useElapsedTime.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useElapsedTime.js +69 -0
- package/dist/cli/ink-cli/hooks/useHistorySearch.d.ts +61 -0
- package/dist/cli/ink-cli/hooks/useHistorySearch.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useHistorySearch.js +210 -0
- package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts +136 -0
- package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useInputOrchestrator.js +663 -0
- package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.d.ts.map +1 -1
- package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.js +7 -26
- package/dist/cli/ink-cli/hooks/useKeypress.d.ts +18 -0
- package/dist/cli/ink-cli/hooks/useKeypress.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useKeypress.js +26 -0
- package/dist/cli/ink-cli/hooks/usePhraseCycler.d.ts +30 -0
- package/dist/cli/ink-cli/hooks/usePhraseCycler.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/usePhraseCycler.js +68 -0
- package/dist/cli/ink-cli/hooks/useStreaming.d.ts +19 -0
- package/dist/cli/ink-cli/hooks/useStreaming.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useStreaming.js +26 -0
- package/dist/cli/ink-cli/hooks/useTerminalSize.d.ts +14 -0
- package/dist/cli/ink-cli/hooks/useTerminalSize.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useTerminalSize.js +31 -0
- package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts +42 -0
- package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts.map +1 -0
- package/dist/cli/ink-cli/hooks/useTokenCounter.js +96 -0
- package/dist/cli/ink-cli/services/CommandService.d.ts +32 -1
- package/dist/cli/ink-cli/services/CommandService.d.ts.map +1 -1
- package/dist/cli/ink-cli/services/CommandService.js +36 -5
- package/dist/cli/ink-cli/services/InputService.d.ts +1 -5
- package/dist/cli/ink-cli/services/InputService.d.ts.map +1 -1
- package/dist/cli/ink-cli/services/InputService.js +1 -8
- package/dist/cli/ink-cli/services/index.d.ts +2 -1
- package/dist/cli/ink-cli/services/index.d.ts.map +1 -1
- package/dist/cli/ink-cli/services/index.js +2 -1
- package/dist/cli/ink-cli/services/processStream.d.ts +69 -0
- package/dist/cli/ink-cli/services/processStream.d.ts.map +1 -0
- package/dist/cli/ink-cli/services/processStream.js +742 -0
- package/dist/cli/ink-cli/state/actions.d.ts +30 -60
- package/dist/cli/ink-cli/state/actions.d.ts.map +1 -1
- package/dist/cli/ink-cli/state/actions.js +3 -0
- package/dist/cli/ink-cli/state/index.d.ts +5 -3
- package/dist/cli/ink-cli/state/index.d.ts.map +1 -1
- package/dist/cli/ink-cli/state/index.js +4 -3
- package/dist/cli/ink-cli/state/initialState.d.ts +4 -3
- package/dist/cli/ink-cli/state/initialState.d.ts.map +1 -1
- package/dist/cli/ink-cli/state/initialState.js +20 -4
- package/dist/cli/ink-cli/state/reducer.d.ts +3 -0
- package/dist/cli/ink-cli/state/reducer.d.ts.map +1 -1
- package/dist/cli/ink-cli/state/reducer.js +62 -168
- package/dist/cli/ink-cli/state/streaming-state.d.ts +27 -0
- package/dist/cli/ink-cli/state/streaming-state.d.ts.map +1 -0
- package/dist/cli/ink-cli/state/streaming-state.js +39 -0
- package/dist/cli/ink-cli/state/types.d.ts +223 -6
- package/dist/cli/ink-cli/state/types.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/bracketedPaste.d.ts +22 -0
- package/dist/cli/ink-cli/utils/bracketedPaste.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/bracketedPaste.js +27 -0
- package/dist/cli/ink-cli/utils/clipboardUtils.d.ts +49 -0
- package/dist/cli/ink-cli/utils/clipboardUtils.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/clipboardUtils.js +356 -0
- package/dist/cli/ink-cli/utils/commandOverlays.d.ts +33 -0
- package/dist/cli/ink-cli/utils/commandOverlays.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/commandOverlays.js +78 -0
- package/dist/cli/ink-cli/utils/debugLog.d.ts +38 -0
- package/dist/cli/ink-cli/utils/debugLog.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/debugLog.js +66 -0
- package/dist/cli/ink-cli/utils/index.d.ts +2 -1
- package/dist/cli/ink-cli/utils/index.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/index.js +3 -1
- package/dist/cli/ink-cli/utils/input.d.ts +25 -0
- package/dist/cli/ink-cli/utils/input.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/input.js +56 -0
- package/dist/cli/ink-cli/utils/inputParsing.d.ts +0 -9
- package/dist/cli/ink-cli/utils/inputParsing.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/inputParsing.js +0 -27
- package/dist/cli/ink-cli/utils/messageFormatting.d.ts +59 -3
- package/dist/cli/ink-cli/utils/messageFormatting.d.ts.map +1 -1
- package/dist/cli/ink-cli/utils/messageFormatting.js +348 -20
- package/dist/cli/ink-cli/utils/mouse.d.ts +61 -0
- package/dist/cli/ink-cli/utils/mouse.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/mouse.js +209 -0
- package/dist/cli/ink-cli/utils/streamSplitter.d.ts +44 -0
- package/dist/cli/ink-cli/utils/streamSplitter.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/streamSplitter.js +154 -0
- package/dist/cli/ink-cli/utils/textUtils.d.ts +63 -0
- package/dist/cli/ink-cli/utils/textUtils.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/textUtils.js +248 -0
- package/dist/cli/ink-cli/utils/toolUtils.d.ts +9 -0
- package/dist/cli/ink-cli/utils/toolUtils.d.ts.map +1 -0
- package/dist/cli/ink-cli/utils/toolUtils.js +15 -0
- package/dist/cli/utils/api-key-setup.d.ts +54 -4
- package/dist/cli/utils/api-key-setup.d.ts.map +1 -1
- package/dist/cli/utils/api-key-setup.js +433 -107
- package/dist/cli/utils/api-key-verification.d.ts +17 -0
- package/dist/cli/utils/api-key-verification.d.ts.map +1 -0
- package/dist/cli/utils/api-key-verification.js +211 -0
- package/dist/cli/utils/config-validation.d.ts +22 -2
- package/dist/cli/utils/config-validation.d.ts.map +1 -1
- package/dist/cli/utils/config-validation.js +354 -25
- package/dist/cli/utils/local-model-setup.d.ts +46 -0
- package/dist/cli/utils/local-model-setup.d.ts.map +1 -0
- package/dist/cli/utils/local-model-setup.js +662 -0
- package/dist/cli/utils/options.d.ts.map +1 -1
- package/dist/cli/utils/options.js +1 -3
- package/dist/cli/utils/prompt-helpers.d.ts +47 -0
- package/dist/cli/utils/prompt-helpers.d.ts.map +1 -0
- package/dist/cli/utils/prompt-helpers.js +66 -0
- package/dist/cli/utils/provider-setup.d.ts +66 -8
- package/dist/cli/utils/provider-setup.d.ts.map +1 -1
- package/dist/cli/utils/provider-setup.js +324 -84
- package/dist/cli/utils/scaffolding-utils.d.ts +76 -0
- package/dist/cli/utils/scaffolding-utils.d.ts.map +1 -0
- package/dist/cli/utils/scaffolding-utils.js +246 -0
- package/dist/cli/utils/setup-utils.d.ts +16 -0
- package/dist/cli/utils/setup-utils.d.ts.map +1 -1
- package/dist/cli/utils/setup-utils.js +72 -21
- package/dist/cli/utils/template-engine.d.ts +65 -0
- package/dist/cli/utils/template-engine.d.ts.map +1 -0
- package/dist/cli/utils/template-engine.js +1089 -0
- package/dist/config/cli-overrides.d.ts +45 -2
- package/dist/config/cli-overrides.d.ts.map +1 -1
- package/dist/config/cli-overrides.js +107 -10
- package/dist/index.js +379 -99
- package/dist/utils/agent-helpers.d.ts +95 -0
- package/dist/utils/agent-helpers.d.ts.map +1 -0
- package/dist/utils/agent-helpers.js +117 -0
- package/dist/webui/assets/index-8j-KMkX1.js +2054 -0
- package/dist/webui/assets/index-c_AX24V4.css +1 -0
- package/dist/webui/assets/{tanstack-DgxBONJY.js → tanstack-Br79RQ-n.js} +1 -1
- package/dist/webui/index.html +4 -10
- package/dist/webui/logos/aws-color.svg +1 -0
- package/dist/webui/logos/dexto/dexto_logo.svg +1 -1
- package/dist/webui/logos/dexto/dexto_logo_light.svg +6 -6
- package/dist/webui/logos/glama.svg +7 -0
- package/dist/webui/logos/litellm.svg +7 -0
- package/dist/webui/logos/openrouter.svg +1 -0
- package/package.json +18 -15
- package/dist/cli/commands/interactive-commands/index.d.ts +0 -63
- package/dist/cli/commands/interactive-commands/index.d.ts.map +0 -1
- package/dist/cli/commands/interactive-commands/index.js +0 -73
- package/dist/cli/commands/interactive-commands/mcp/mcp-add-utils.d.ts +0 -34
- package/dist/cli/commands/interactive-commands/mcp/mcp-add-utils.d.ts.map +0 -1
- package/dist/cli/commands/interactive-commands/mcp/mcp-add-utils.js +0 -178
- package/dist/cli/commands/interactive-commands/mcp/mcp-commands.d.ts +0 -9
- package/dist/cli/commands/interactive-commands/mcp/mcp-commands.d.ts.map +0 -1
- package/dist/cli/commands/interactive-commands/mcp/mcp-commands.js +0 -325
- package/dist/cli/commands/interactive-commands/model/model-commands.d.ts +0 -21
- package/dist/cli/commands/interactive-commands/model/model-commands.d.ts.map +0 -1
- package/dist/cli/commands/interactive-commands/model/model-commands.js +0 -190
- package/dist/cli/ink-cli/components/MultiLineTextInput.d.ts +0 -26
- package/dist/cli/ink-cli/components/MultiLineTextInput.d.ts.map +0 -1
- package/dist/cli/ink-cli/components/MultiLineTextInput.js +0 -220
- package/dist/discord/bot.d.ts +0 -4
- package/dist/discord/bot.d.ts.map +0 -1
- package/dist/discord/bot.js +0 -193
- package/dist/telegram/bot.d.ts +0 -5
- package/dist/telegram/bot.d.ts.map +0 -1
- package/dist/telegram/bot.js +0 -251
- package/dist/webui/assets/index-DKq5Xng1.js +0 -687
- package/dist/webui/assets/index-D_0_GBu5.css +0 -1
package/README.md
CHANGED
|
@@ -132,6 +132,7 @@ dexto --agent nano-banana-agent
|
|
|
132
132
|
- **Triage Agent** – Demo multi-agent customer support routing system
|
|
133
133
|
- **Workflow Builder Agent** – Build and manage n8n automation workflows
|
|
134
134
|
- **Product Analysis Agent** – Product analytics and insights using PostHog
|
|
135
|
+
- **Gaming Agent** – Play GameBoy games like Pokemon through an emulator
|
|
135
136
|
|
|
136
137
|
Each agent is pre-configured with the right tools, prompts, and LLM settings for its domain. No setup required—just install and start building.
|
|
137
138
|
|
|
@@ -270,8 +271,8 @@ dexto --agent ./agents/examples/email_slack.yml
|
|
|
270
271
|
| **Headless Server** | `dexto --mode server` | REST & SSE streaming APIs for agent interaction |
|
|
271
272
|
| **MCP Server (Agent)** | `dexto --mode mcp` | Exposing your agent as a tool for others via stdio |
|
|
272
273
|
| **MCP Server (Aggregator)** | `dexto mcp --group-servers` | Re-exposing tools from multiple MCP servers via stdio |
|
|
273
|
-
| **Discord Bot** | `
|
|
274
|
-
| **Telegram Bot** | `
|
|
274
|
+
| **Discord Bot** | [See `examples/discord-bot/`](examples/discord-bot/) | Community servers & channels (reference implementation) |
|
|
275
|
+
| **Telegram Bot** | [See `examples/telegram-bot/`](examples/telegram-bot/) | Mobile chat (reference implementation) |
|
|
275
276
|
|
|
276
277
|
Run `dexto --help` for **all flags, sub-commands, and environment variables**.
|
|
277
278
|
|
|
@@ -308,14 +309,31 @@ systemPrompt: |
|
|
|
308
309
|
|
|
309
310
|
Switch between providers instantly—no code changes required.
|
|
310
311
|
|
|
312
|
+
#### Built-in Providers
|
|
313
|
+
|
|
314
|
+
| Provider | Models | Setup |
|
|
315
|
+
|----------|--------|-------|
|
|
316
|
+
| **OpenAI** | `gpt-5.1-chat-latest`, `gpt-5.1`, `gpt-5.1-codex`, `gpt-5-mini`, `gpt-4.1`, `gpt-4o`, `o4-mini`, `o3`, `o1` | API key |
|
|
317
|
+
| **Anthropic** | `claude-sonnet-4-5-20250929`, `claude-opus-4-5-20251101`, `claude-haiku-4-5-20251001`, `claude-3-7-sonnet-20250219` | API key |
|
|
318
|
+
| **Google** | `gemini-3-pro-preview`, `gemini-3-pro-image-preview`, `gemini-3-flash-preview`, `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.0-flash` | API key |
|
|
319
|
+
| **Groq** | `llama-3.3-70b-versatile`, `gemma-2-9b-it`, `openai/gpt-oss-20b`, `openai/gpt-oss-120b`, `moonshotai/kimi-k2-instruct`, `meta-llama/llama-4-scout-17b-16e-instruct`, `meta-llama/llama-4-maverick-17b-128e-instruct`, `deepseek-r1-distill-llama-70b`, `qwen/qwen3-32b` | API key |
|
|
320
|
+
| **xAI** | `grok-4`, `grok-3`, `grok-3-mini`, `grok-code-fast-1` | API key |
|
|
321
|
+
| **Cohere** | `command-a-03-2025`, `command-r-plus`, `command-r`, `command-r7b` | API key |
|
|
322
|
+
|
|
323
|
+
#### Cloud Platforms
|
|
324
|
+
|
|
325
|
+
| Provider | Models | Setup |
|
|
326
|
+
|----------|--------|-------|
|
|
327
|
+
| **Vertex AI** | Gemini, Claude | GCP credentials ([docs](https://docs.dexto.ai/docs/guides/supported-llm-providers#google-cloud-vertex-ai)) |
|
|
328
|
+
| **AWS Bedrock** | Claude, Nova, Llama, Mistral | AWS credentials ([docs](https://docs.dexto.ai/docs/guides/supported-llm-providers#amazon-bedrock)) |
|
|
329
|
+
|
|
330
|
+
#### Gateway Providers
|
|
331
|
+
|
|
311
332
|
| Provider | Models | Setup |
|
|
312
333
|
|----------|--------|-------|
|
|
313
|
-
| **
|
|
314
|
-
| **
|
|
315
|
-
| **
|
|
316
|
-
| **Groq** | `llama-3.3-70b-versatile`, `meta-llama/llama-4-scout-17b-16e-instruct`, `meta-llama/llama-4-maverick-17b-128e-instruct`, `qwen/qwen3-32b`, `gemma-2-9b-it`, `openai/gpt-oss-20b`, `openai/gpt-oss-120b`, `moonshotai/kimi-k2-instruct`, `deepseek-r1-distill-llama-70b` | `change model in UI and add api key` |
|
|
317
|
-
| **xAI** | `grok-4`, `grok-3`, `grok-3-mini`, `grok-code-fast-1` | `change model in UI and add api key` |
|
|
318
|
-
| **Cohere** | `command-a-03-2025`, `command-r-plus`, `command-r`, `command-r7b` | `change model in UI and add api key` |
|
|
334
|
+
| **OpenRouter** | 100+ models via `provider/model` format | API key |
|
|
335
|
+
| **Glama** | Multi-provider access via `provider/model` format | API key |
|
|
336
|
+
| **LiteLLM** | Self-hosted proxy for any provider | API key + baseURL |
|
|
319
337
|
|
|
320
338
|
```bash
|
|
321
339
|
# Switch models via CLI
|
|
@@ -325,7 +343,9 @@ dexto -m gemini-2.5-pro
|
|
|
325
343
|
|
|
326
344
|
You can configure things like LLM, system prompt, MCP servers, storage, sessions, human-in-the loop, telemetry and more!
|
|
327
345
|
|
|
328
|
-
|
|
346
|
+
You can also switch within the interactive CLI (/model) and in the web UI easily without needing to set up configuration.
|
|
347
|
+
|
|
348
|
+
See our [Configuration Guide](https://docs.dexto.ai/docs/category/agent-configuration-guide) and [Supported LLM Providers](https://docs.dexto.ai/docs/guides/supported-llm-providers) for complete setup instructions.
|
|
329
349
|
|
|
330
350
|
|
|
331
351
|
## Dexto Agent SDK
|
|
@@ -353,24 +373,69 @@ await agent.start();
|
|
|
353
373
|
const session = await agent.createSession();
|
|
354
374
|
|
|
355
375
|
// Use generate() for simple request/response
|
|
356
|
-
const response = await agent.generate('What is TypeScript?',
|
|
357
|
-
sessionId: session.id
|
|
358
|
-
});
|
|
376
|
+
const response = await agent.generate('What is TypeScript?', session.id);
|
|
359
377
|
console.log(response.content);
|
|
360
378
|
|
|
361
379
|
// Conversations maintain context within a session
|
|
362
|
-
await agent.generate('Write a haiku about it',
|
|
363
|
-
await agent.generate('Make it funnier',
|
|
380
|
+
await agent.generate('Write a haiku about it', session.id);
|
|
381
|
+
await agent.generate('Make it funnier', session.id);
|
|
382
|
+
|
|
383
|
+
// Multimodal: send images or files
|
|
384
|
+
await agent.generate([
|
|
385
|
+
{ type: 'text', text: 'Describe this image' },
|
|
386
|
+
{ type: 'image', image: base64Data, mimeType: 'image/png' }
|
|
387
|
+
], session.id);
|
|
388
|
+
|
|
389
|
+
// Streaming for real-time UIs
|
|
390
|
+
for await (const event of await agent.stream('Write a story', session.id)) {
|
|
391
|
+
if (event.name === 'llm:chunk') process.stdout.write(event.content);
|
|
392
|
+
}
|
|
364
393
|
|
|
365
394
|
await agent.stop();
|
|
366
395
|
```
|
|
367
396
|
|
|
368
|
-
See our [Dexto Agent SDK docs](https://docs.dexto.ai/
|
|
397
|
+
See our [Dexto Agent SDK docs](https://docs.dexto.ai/docs/guides/dexto-sdk) for multimodal content, streaming, MCP tools, and advanced features.
|
|
369
398
|
|
|
370
399
|
---
|
|
371
400
|
|
|
372
401
|
## Advanced Usage
|
|
373
402
|
|
|
403
|
+
### Starting a Server
|
|
404
|
+
|
|
405
|
+
Start a Dexto server programmatically to expose REST and SSE streaming APIs to interact and manage your agent backend.
|
|
406
|
+
|
|
407
|
+
```typescript
|
|
408
|
+
import { DextoAgent } from '@dexto/core';
|
|
409
|
+
import { startHonoApiServer } from 'dexto';
|
|
410
|
+
|
|
411
|
+
// Create and configure agent
|
|
412
|
+
const agent = new DextoAgent({
|
|
413
|
+
llm: {
|
|
414
|
+
provider: 'openai',
|
|
415
|
+
model: 'gpt-5-mini',
|
|
416
|
+
apiKey: process.env.OPENAI_API_KEY
|
|
417
|
+
},
|
|
418
|
+
mcpServers: {
|
|
419
|
+
filesystem: {
|
|
420
|
+
type: 'stdio',
|
|
421
|
+
command: 'npx',
|
|
422
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
// Start server on port 3001
|
|
428
|
+
const { server } = await startHonoApiServer(agent, 3001);
|
|
429
|
+
|
|
430
|
+
console.log('Dexto server running at http://localhost:3001');
|
|
431
|
+
// Server provides REST API and SSE streaming endpoints
|
|
432
|
+
// POST /api/message - Send messages
|
|
433
|
+
// GET /api/sessions - List sessions
|
|
434
|
+
// See docs.dexto.ai/api/rest/ for all endpoints
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
This starts an HTTP server with full REST and SSE APIs, enabling integration with web frontends, webhooks, and other services. See the [REST API Documentation](https://docs.dexto.ai/api/rest/) for available endpoints.
|
|
438
|
+
|
|
374
439
|
### Session Management
|
|
375
440
|
|
|
376
441
|
Create and manage multiple conversation sessions with persistent storage.
|
|
@@ -381,7 +446,7 @@ await agent.start();
|
|
|
381
446
|
|
|
382
447
|
// Create and manage sessions
|
|
383
448
|
const session = await agent.createSession('user-123');
|
|
384
|
-
await agent.generate('Hello, how can you help me?',
|
|
449
|
+
await agent.generate('Hello, how can you help me?', session.id);
|
|
385
450
|
|
|
386
451
|
// List and manage sessions
|
|
387
452
|
const sessions = await agent.listSessions();
|
|
@@ -508,10 +573,12 @@ Agent Selection:
|
|
|
508
573
|
|
|
509
574
|
Advanced Modes:
|
|
510
575
|
dexto --mode server Run as API server
|
|
511
|
-
dexto --mode discord Run as Discord bot
|
|
512
|
-
dexto --mode telegram Run as Telegram bot
|
|
513
576
|
dexto --mode mcp Run as MCP server
|
|
514
577
|
|
|
578
|
+
Platform Integrations (Reference Implementations):
|
|
579
|
+
See examples/discord-bot/ Run as Discord bot
|
|
580
|
+
See examples/telegram-bot/ Run as Telegram bot
|
|
581
|
+
|
|
515
582
|
Session Commands: dexto session list|history|delete • search
|
|
516
583
|
Search: dexto search <query> [--session <id>] [--role <role>]
|
|
517
584
|
|
|
@@ -534,15 +601,13 @@ Options:
|
|
|
534
601
|
--skip-setup Skip global setup validation (useful for MCP
|
|
535
602
|
mode, automation)
|
|
536
603
|
-m, --model <model> Specify the LLM model to use
|
|
537
|
-
--router <router> Specify the LLM router to use (vercel or
|
|
538
|
-
in-built)
|
|
539
604
|
--auto-approve Always approve tool executions without
|
|
540
605
|
confirmation prompts
|
|
541
606
|
-c, --continue Continue most recent conversation
|
|
542
607
|
-r, --resume <sessionId> Resume session by ID
|
|
543
608
|
--mode <mode> The application in which dexto should talk
|
|
544
|
-
to you - web | cli | server |
|
|
545
|
-
|
|
609
|
+
to you - web | cli | server | mcp
|
|
610
|
+
(default: "web")
|
|
546
611
|
--port <port> port for the server (default: 3000 for web,
|
|
547
612
|
3001 for server mode)
|
|
548
613
|
--no-auto-install Disable automatic installation of missing
|
|
@@ -125,6 +125,15 @@
|
|
|
125
125
|
"tags": ["posthog", "analytics", "product", "insights", "feature-flags", "mcp"],
|
|
126
126
|
"source": "product-analysis-agent/",
|
|
127
127
|
"main": "product-analysis-agent.yml"
|
|
128
|
+
},
|
|
129
|
+
"gaming-agent": {
|
|
130
|
+
"id": "gaming-agent",
|
|
131
|
+
"name": "Gaming Agent",
|
|
132
|
+
"description": "AI agent that plays GameBoy games like Pokemon through an emulator with screen capture and button controls",
|
|
133
|
+
"author": "Truffle AI",
|
|
134
|
+
"tags": ["gaming", "gameboy", "pokemon", "emulator", "mcp"],
|
|
135
|
+
"source": "gaming-agent/",
|
|
136
|
+
"main": "gaming-agent.yml"
|
|
128
137
|
}
|
|
129
138
|
}
|
|
130
139
|
}
|
|
@@ -26,10 +26,10 @@ systemPrompt:
|
|
|
26
26
|
Use these tools when appropriate to answer user queries.
|
|
27
27
|
You can use multiple tools in sequence to solve complex problems.
|
|
28
28
|
After each tool result, determine if you need more information or can provide a final answer.
|
|
29
|
-
- id:
|
|
29
|
+
- id: date
|
|
30
30
|
type: dynamic
|
|
31
31
|
priority: 10
|
|
32
|
-
source:
|
|
32
|
+
source: date
|
|
33
33
|
enabled: true
|
|
34
34
|
|
|
35
35
|
# LLM configuration - describes the language model to use
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# Coding Agent Configuration
|
|
2
2
|
# Optimized for software development with internal coding tools
|
|
3
3
|
|
|
4
|
+
# Image: Specifies the provider bundle for this agent
|
|
5
|
+
# This agent requires local development tools (filesystem, process)
|
|
6
|
+
image: '@dexto/image-local'
|
|
7
|
+
|
|
4
8
|
# System prompt configuration - defines the agent's behavior as a coding assistant
|
|
5
9
|
systemPrompt:
|
|
6
10
|
contributors:
|
|
@@ -44,7 +48,7 @@ greeting: "👨💻 Ready to code! What are we building today?"
|
|
|
44
48
|
# LLM configuration - using a powerful model for coding tasks
|
|
45
49
|
llm:
|
|
46
50
|
provider: anthropic
|
|
47
|
-
model: claude-
|
|
51
|
+
model: claude-sonnet-4-5-20250929
|
|
48
52
|
apiKey: $ANTHROPIC_API_KEY
|
|
49
53
|
|
|
50
54
|
storage:
|
|
@@ -68,28 +72,35 @@ toolConfirmation:
|
|
|
68
72
|
# Tools that never require approval (safe, read-only operations)
|
|
69
73
|
alwaysAllow:
|
|
70
74
|
- internal--ask_user
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
75
|
+
- custom--filesystem-tools--read_file # Read files without approval
|
|
76
|
+
- custom--filesystem-tools--glob_files # Search for files without approval
|
|
77
|
+
- custom--filesystem-tools--grep_content # Search within files without approval
|
|
78
|
+
- custom--process-tools--bash_output # Check background process output
|
|
79
|
+
- custom--process-tools--kill_process # Kill processes without approval
|
|
76
80
|
|
|
77
81
|
# Tools that are always denied (dangerous operations)
|
|
78
82
|
# Uncomment to restrict certain operations
|
|
79
83
|
# alwaysDeny:
|
|
80
|
-
# -
|
|
84
|
+
# - custom--process-tools--bash_exec--rm -rf* # Prevent recursive deletion
|
|
81
85
|
|
|
82
|
-
#
|
|
86
|
+
# Elicitation configuration - required for ask_user tool
|
|
87
|
+
elicitation:
|
|
88
|
+
enabled: true
|
|
89
|
+
timeout: 120000
|
|
90
|
+
|
|
91
|
+
# Internal tools - core tools that are always available
|
|
83
92
|
internalTools:
|
|
84
93
|
- ask_user # Ask questions and collect input
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
|
|
95
|
+
# Custom tools - filesystem and process tools from image-local
|
|
96
|
+
customTools:
|
|
97
|
+
- type: filesystem-tools
|
|
98
|
+
allowedPaths: ["."]
|
|
99
|
+
blockedPaths: [".git", "node_modules/.bin", ".env"]
|
|
100
|
+
blockedExtensions: [".exe", ".dll", ".so"]
|
|
101
|
+
enableBackups: false
|
|
102
|
+
- type: process-tools
|
|
103
|
+
securityLevel: moderate
|
|
93
104
|
|
|
94
105
|
# Internal resources configuration - expanded for coding projects
|
|
95
106
|
internalResources:
|
|
@@ -105,10 +105,10 @@ systemPrompt:
|
|
|
105
105
|
Remember: You're demonstrating intelligent database interaction through
|
|
106
106
|
natural conversation and data analysis.
|
|
107
107
|
|
|
108
|
-
- id:
|
|
108
|
+
- id: date
|
|
109
109
|
type: dynamic
|
|
110
110
|
priority: 10
|
|
111
|
-
source:
|
|
111
|
+
source: date
|
|
112
112
|
enabled: true
|
|
113
113
|
|
|
114
114
|
# Storage configuration
|
|
@@ -25,10 +25,10 @@ systemPrompt:
|
|
|
25
25
|
Use these tools when appropriate to answer user queries.
|
|
26
26
|
You can use multiple tools in sequence to solve complex problems.
|
|
27
27
|
After each tool result, determine if you need more information or can provide a final answer.
|
|
28
|
-
- id:
|
|
28
|
+
- id: date
|
|
29
29
|
type: dynamic
|
|
30
30
|
priority: 10
|
|
31
|
-
source:
|
|
31
|
+
source: date
|
|
32
32
|
enabled: true
|
|
33
33
|
|
|
34
34
|
# Memory configuration - controls how memories are included in system prompt
|
|
@@ -77,15 +77,15 @@ storage:
|
|
|
77
77
|
type: sqlite
|
|
78
78
|
# path: ./data/dexto.db # Optional: customize database location
|
|
79
79
|
blob:
|
|
80
|
-
type: local #
|
|
80
|
+
type: local # CLI provides storePath automatically
|
|
81
|
+
# storePath: ./data/blobs # Optional: customize blob storage location (defaults to agent-specific path)
|
|
81
82
|
maxBlobSize: 52428800 # 50MB per blob
|
|
82
83
|
maxTotalSize: 1073741824 # 1GB total storage
|
|
83
|
-
cleanupAfterDays: 30
|
|
84
|
-
# storePath: (automatically provided by CLI as ~/.dexto/blobs/<agent-id>)
|
|
84
|
+
cleanupAfterDays: 30
|
|
85
85
|
|
|
86
86
|
toolConfirmation:
|
|
87
87
|
mode: manual
|
|
88
|
-
timeout:
|
|
88
|
+
# timeout: <optional> # Time to wait for approval (ms). Omit for no timeout (wait indefinitely)
|
|
89
89
|
allowedToolsStorage: memory # 'memory' or 'storage' for persisting allowed tools
|
|
90
90
|
|
|
91
91
|
# Optional: Static tool policies for fine-grained allow/deny control
|
|
@@ -107,12 +107,14 @@ toolConfirmation:
|
|
|
107
107
|
# Allows auto-approve for tools while still supporting user input requests
|
|
108
108
|
elicitation:
|
|
109
109
|
enabled: true # Enable ask_user tool and MCP server elicitations
|
|
110
|
-
timeout:
|
|
110
|
+
# timeout: <optional> # Time to wait for user input (ms). Omit for no timeout (wait indefinitely)
|
|
111
111
|
|
|
112
112
|
# Internal tools - built-in Dexto capabilities
|
|
113
113
|
internalTools:
|
|
114
114
|
- ask_user # Allows the agent to ask you questions and collect structured input
|
|
115
115
|
- delegate_to_url
|
|
116
|
+
- list_resources
|
|
117
|
+
- get_resource
|
|
116
118
|
|
|
117
119
|
# Internal resources configuration - manages file system access and blob storage
|
|
118
120
|
# NOTE: Blob storage capacity and backend settings are in the 'storage.blob' section above
|
|
@@ -47,10 +47,10 @@ systemPrompt:
|
|
|
47
47
|
- After each tool interaction, decide whether additional context is needed or if you can deliver a confident answer
|
|
48
48
|
|
|
49
49
|
Stay practical, keep responses focused on the user’s goal, and highlight any assumptions or risks you notice.
|
|
50
|
-
- id:
|
|
50
|
+
- id: date
|
|
51
51
|
type: dynamic
|
|
52
52
|
priority: 10
|
|
53
|
-
source:
|
|
53
|
+
source: date
|
|
54
54
|
enabled: true
|
|
55
55
|
|
|
56
56
|
# Storage configuration
|
|
@@ -139,10 +139,10 @@ systemPrompt:
|
|
|
139
139
|
|
|
140
140
|
Use these tools strategically to provide comprehensive product name validation that combines technical availability with market intelligence.
|
|
141
141
|
|
|
142
|
-
- id:
|
|
142
|
+
- id: date
|
|
143
143
|
type: dynamic
|
|
144
144
|
priority: 10
|
|
145
|
-
source:
|
|
145
|
+
source: date
|
|
146
146
|
enabled: true
|
|
147
147
|
|
|
148
148
|
# LLM configuration
|
|
@@ -33,10 +33,10 @@ systemPrompt:
|
|
|
33
33
|
- "Extract all content containing 'invoice' from /path/to/file.pdf and explain what you found."
|
|
34
34
|
|
|
35
35
|
Always ask for the file path if not provided. If a file is not a PDF or does not exist, inform the user.
|
|
36
|
-
- id:
|
|
36
|
+
- id: date
|
|
37
37
|
type: dynamic
|
|
38
38
|
priority: 10
|
|
39
|
-
source:
|
|
39
|
+
source: date
|
|
40
40
|
enabled: true
|
|
41
41
|
|
|
42
42
|
# Storage configuration
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ExecutionContext } from '@dexto/agent-management';
|
|
2
|
+
import type { SharedAnalyticsEventMap } from '@dexto/analytics';
|
|
2
3
|
export interface BaseEventContext {
|
|
3
4
|
app?: 'dexto';
|
|
4
5
|
app_version?: string;
|
|
@@ -44,8 +45,6 @@ export interface CliCommandTimeoutEvent extends CliCommandBaseEvent {
|
|
|
44
45
|
timeoutMs: number;
|
|
45
46
|
}
|
|
46
47
|
export type CliCommandEvent = CliCommandStartEvent | CliCommandEndEvent | CliCommandTimeoutEvent;
|
|
47
|
-
export interface SessionStartEvent {
|
|
48
|
-
}
|
|
49
48
|
export interface PromptEvent {
|
|
50
49
|
mode: 'cli' | 'headless';
|
|
51
50
|
provider: string;
|
|
@@ -54,14 +53,17 @@ export interface PromptEvent {
|
|
|
54
53
|
export interface SetupEvent {
|
|
55
54
|
provider: string;
|
|
56
55
|
model: string;
|
|
57
|
-
hadApiKeyBefore
|
|
56
|
+
hadApiKeyBefore?: boolean;
|
|
58
57
|
setupMode: 'interactive' | 'non-interactive';
|
|
58
|
+
setupVariant?: 'quick-start' | 'custom';
|
|
59
|
+
defaultMode?: string;
|
|
60
|
+
hasBaseURL?: boolean;
|
|
61
|
+
apiKeySkipped?: boolean;
|
|
59
62
|
}
|
|
60
63
|
export interface InstallAgentEvent {
|
|
61
64
|
agent: string;
|
|
62
65
|
status: 'installed' | 'skipped' | 'failed';
|
|
63
66
|
force: boolean;
|
|
64
|
-
injectPreferences: boolean;
|
|
65
67
|
reason?: string;
|
|
66
68
|
error_message?: string;
|
|
67
69
|
}
|
|
@@ -94,8 +96,13 @@ export interface InitProjectEvent {
|
|
|
94
96
|
provider: string;
|
|
95
97
|
providedKey: boolean;
|
|
96
98
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
+
/**
|
|
100
|
+
* CLI analytics event map extending shared events with CLI-specific events.
|
|
101
|
+
*
|
|
102
|
+
* IMPORTANT: If an event is also tracked by WebUI, move it to SharedAnalyticsEventMap
|
|
103
|
+
* in @dexto/analytics to avoid duplication.
|
|
104
|
+
*/
|
|
105
|
+
export interface DextoAnalyticsEventMap extends SharedAnalyticsEventMap {
|
|
99
106
|
dexto_cli_command: CliCommandEvent;
|
|
100
107
|
dexto_prompt: PromptEvent;
|
|
101
108
|
dexto_setup: SetupEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,oBAAoB,GAC1B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1D,UAAU,mBAAmB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC7D,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IAC/D,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;AAEjG,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ interface InitOptions {
|
|
|
7
7
|
*
|
|
8
8
|
* - Respects DEXTO_ANALYTICS_DISABLED.
|
|
9
9
|
* - Creates/loads the anonymous distinctId and a per-process session_id.
|
|
10
|
-
* - Emits a
|
|
10
|
+
* - Emits a dexto_session_created event for each process run.
|
|
11
11
|
*/
|
|
12
12
|
export declare function initAnalytics(opts: InitOptions): Promise<void>;
|
|
13
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EAErB,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,aAAa,CAAC;AAErB,UAAU,WAAW;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAqBD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EAErB,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,aAAa,CAAC;AAErB,UAAU,WAAW;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAqBD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCpE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,SAAS,kBAAkB,EACnD,KAAK,EAAE,IAAI,EACX,UAAU,GAAE,qBAAqB,CAAC,IAAI,CAAqC,GAC5E,IAAI,CAWN;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQvD;AAMD;;;GAGG;AACH,wBAAsB,cAAc,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,CAAM,GAClE,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC,CAAM,GAC3F,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAAC,CAiBR"}
|
package/dist/analytics/index.js
CHANGED
|
@@ -26,7 +26,7 @@ function baseProps() {
|
|
|
26
26
|
*
|
|
27
27
|
* - Respects DEXTO_ANALYTICS_DISABLED.
|
|
28
28
|
* - Creates/loads the anonymous distinctId and a per-process session_id.
|
|
29
|
-
* - Emits a
|
|
29
|
+
* - Emits a dexto_session_created event for each process run.
|
|
30
30
|
*/
|
|
31
31
|
export async function initAnalytics(opts) {
|
|
32
32
|
if (enabled || client)
|
|
@@ -60,7 +60,11 @@ export async function initAnalytics(opts) {
|
|
|
60
60
|
// Ignore flush errors: analytics should never block process exit.
|
|
61
61
|
}
|
|
62
62
|
});
|
|
63
|
-
capture('
|
|
63
|
+
capture('dexto_session_created', {
|
|
64
|
+
source: 'cli',
|
|
65
|
+
sessionId: sessionId || 'unknown',
|
|
66
|
+
trigger: 'manual',
|
|
67
|
+
});
|
|
64
68
|
}
|
|
65
69
|
/**
|
|
66
70
|
* Capture a single analytics event with optional properties.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-hono.d.ts","sourceRoot":"","sources":["../../src/api/server-hono.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-hono.d.ts","sourceRoot":"","sources":["../../src/api/server-hono.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAuC,MAAM,aAAa,CAAC;AAQ9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EACH,cAAc,EACd,gBAAgB,EAShB,KAAK,kBAAkB,EAC1B,MAAM,eAAe,CAAC;AA6FvB,MAAM,MAAM,wBAAwB,GAAG;IACnC,GAAG,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IACvC,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,iBAAiB,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1F,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC9C,CAAC;AAGF,wBAAsB,iBAAiB,CACnC,KAAK,EAAE,UAAU,EACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EACtC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAiWnC;AAED,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,UAAU,EACjB,IAAI,SAAO,EACX,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EACtC,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC;IACP,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,iBAAiB,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;CAC7F,CAAC,CAgCD"}
|
package/dist/api/server-hono.js
CHANGED
|
@@ -1,10 +1,61 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
|
-
import { createAgentCard, logger, AgentError
|
|
3
|
-
import { loadAgentConfig, enrichAgentConfig } from '@dexto/agent-management';
|
|
4
|
-
import { Dexto, deriveDisplayName } from '@dexto/agent-management';
|
|
2
|
+
import { DextoAgent, createAgentCard, logger, AgentError } from '@dexto/core';
|
|
3
|
+
import { loadAgentConfig, enrichAgentConfig, deriveDisplayName, getAgentRegistry, AgentFactory, } from '@dexto/agent-management';
|
|
5
4
|
import { createDextoApp, createNodeServer, createMcpTransport as createServerMcpTransport, createMcpHttpHandlers, initializeMcpServer as initializeServerMcpServer, createManualApprovalHandler, WebhookEventSubscriber, A2ASseEventSubscriber, ApprovalCoordinator, } from '@dexto/server';
|
|
6
5
|
import { registerGracefulShutdown } from '../utils/graceful-shutdown.js';
|
|
7
6
|
const DEFAULT_AGENT_VERSION = '1.0.0';
|
|
7
|
+
/**
|
|
8
|
+
* Load image dynamically based on config and environment
|
|
9
|
+
* Priority: Config image field > Environment variable > Default
|
|
10
|
+
* Images are optional, but default to image-local for convenience
|
|
11
|
+
*/
|
|
12
|
+
async function loadImageForConfig(config) {
|
|
13
|
+
const imageName = config.image || process.env.DEXTO_IMAGE || '@dexto/image-local';
|
|
14
|
+
try {
|
|
15
|
+
await import(imageName);
|
|
16
|
+
logger.debug(`Loaded image: ${imageName}`);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
const errorMsg = `Failed to load image '${imageName}': ${err instanceof Error ? err.message : String(err)}`;
|
|
20
|
+
logger.error(errorMsg);
|
|
21
|
+
throw new Error(errorMsg);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* List all agents (installed and available)
|
|
26
|
+
* Replacement for old Dexto.listAgents()
|
|
27
|
+
*/
|
|
28
|
+
async function listAgents() {
|
|
29
|
+
return AgentFactory.listAgents({
|
|
30
|
+
descriptionFallback: 'No description',
|
|
31
|
+
customAgentDescriptionFallback: 'Custom agent',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create an agent from an agent ID
|
|
36
|
+
* Replacement for old Dexto.createAgent()
|
|
37
|
+
* Uses registry.resolveAgent() which auto-installs if needed
|
|
38
|
+
*/
|
|
39
|
+
async function createAgentFromId(agentId) {
|
|
40
|
+
try {
|
|
41
|
+
// Use registry to resolve agent path (auto-installs if not present)
|
|
42
|
+
const registry = getAgentRegistry();
|
|
43
|
+
const agentPath = await registry.resolveAgent(agentId, true);
|
|
44
|
+
// Load and enrich agent config
|
|
45
|
+
const config = await loadAgentConfig(agentPath);
|
|
46
|
+
const enrichedConfig = enrichAgentConfig(config, agentPath, {
|
|
47
|
+
logLevel: 'info', // Server uses info-level logging for visibility
|
|
48
|
+
});
|
|
49
|
+
// Load image dynamically based on config
|
|
50
|
+
await loadImageForConfig(enrichedConfig);
|
|
51
|
+
// Create agent instance
|
|
52
|
+
logger.info(`Creating agent: ${agentId} from ${agentPath}`);
|
|
53
|
+
return new DextoAgent(enrichedConfig, agentPath);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
throw new Error(`Failed to create agent '${agentId}': ${error instanceof Error ? error.message : String(error)}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
8
59
|
function resolvePort(listenPort) {
|
|
9
60
|
if (typeof listenPort === 'number') {
|
|
10
61
|
return listenPort;
|
|
@@ -19,7 +70,7 @@ function resolveBaseUrl(port) {
|
|
|
19
70
|
export async function initializeHonoApi(agent, agentCardOverride, listenPort, agentId, webRoot, webUIConfig) {
|
|
20
71
|
// Declare before registering shutdown hook to avoid TDZ on signals
|
|
21
72
|
let activeAgent = agent;
|
|
22
|
-
let activeAgentId = agentId || '
|
|
73
|
+
let activeAgentId = agentId || 'coding-agent';
|
|
23
74
|
let isSwitchingAgent = false;
|
|
24
75
|
registerGracefulShutdown(() => activeAgent);
|
|
25
76
|
const resolvedPort = resolvePort(listenPort);
|
|
@@ -52,7 +103,7 @@ export async function initializeHonoApi(agent, agentCardOverride, listenPort, ag
|
|
|
52
103
|
* Helper to resolve agent ID to { id, name } by looking up in registry
|
|
53
104
|
*/
|
|
54
105
|
async function resolveAgentInfo(agentId) {
|
|
55
|
-
const agents = await
|
|
106
|
+
const agents = await listAgents();
|
|
56
107
|
const agent = agents.installed.find((a) => a.id === agentId) ??
|
|
57
108
|
agents.available.find((a) => a.id === agentId);
|
|
58
109
|
return {
|
|
@@ -135,7 +186,7 @@ export async function initializeHonoApi(agent, agentCardOverride, listenPort, ag
|
|
|
135
186
|
const { Telemetry } = await import('@dexto/core');
|
|
136
187
|
await Telemetry.shutdownGlobal();
|
|
137
188
|
// 2. Create new agent from registry (will initialize fresh telemetry in createAgentServices)
|
|
138
|
-
newAgent = await
|
|
189
|
+
newAgent = await createAgentFromId(agentId);
|
|
139
190
|
// 3. Use common switch logic (register subscribers, start agent, stop previous)
|
|
140
191
|
return await performAgentSwitch(newAgent, agentId, bridge);
|
|
141
192
|
}
|
|
@@ -170,7 +221,11 @@ export async function initializeHonoApi(agent, agentCardOverride, listenPort, ag
|
|
|
170
221
|
// 2. Load agent configuration from file path
|
|
171
222
|
const config = await loadAgentConfig(filePath);
|
|
172
223
|
// 3. Enrich config with per-agent paths (logs, storage, etc.)
|
|
173
|
-
const enrichedConfig = enrichAgentConfig(config, filePath
|
|
224
|
+
const enrichedConfig = enrichAgentConfig(config, filePath, {
|
|
225
|
+
logLevel: 'info', // Server uses info-level logging for visibility
|
|
226
|
+
});
|
|
227
|
+
// 3.5. Load image dynamically based on config
|
|
228
|
+
await loadImageForConfig(enrichedConfig);
|
|
174
229
|
// 4. Create new agent instance directly (will initialize fresh telemetry in createAgentServices)
|
|
175
230
|
newAgent = new DextoAgent(enrichedConfig, filePath);
|
|
176
231
|
// 5. Use enriched agentId (derived from config or filename during enrichment)
|
|
@@ -198,7 +253,8 @@ export async function initializeHonoApi(agent, agentCardOverride, listenPort, ag
|
|
|
198
253
|
}
|
|
199
254
|
// Getter functions for routes (always use current agent)
|
|
200
255
|
// getAgent automatically ensures agent is available before returning it
|
|
201
|
-
|
|
256
|
+
// Accepts Context parameter for compatibility with GetAgentFn type
|
|
257
|
+
const getAgent = (_ctx) => {
|
|
202
258
|
// CRITICAL: Check agent availability before every access to prevent race conditions
|
|
203
259
|
// during agent switching, stopping, or startup failures
|
|
204
260
|
ensureAgentAvailable();
|
|
@@ -245,7 +301,7 @@ export async function initializeHonoApi(agent, agentCardOverride, listenPort, ag
|
|
|
245
301
|
}
|
|
246
302
|
// Create bridge with app
|
|
247
303
|
bridgeRef = createNodeServer(app, {
|
|
248
|
-
getAgent,
|
|
304
|
+
getAgent: () => activeAgent,
|
|
249
305
|
mcpHandlers: mcpTransport ? createMcpHttpHandlers(mcpTransport) : null,
|
|
250
306
|
});
|
|
251
307
|
// Register webhook subscriber for LLM streaming events
|
|
@@ -30,6 +30,10 @@ export declare class CLISubscriber implements EventSubscriber {
|
|
|
30
30
|
onResponse(text: string): void;
|
|
31
31
|
onError(error: Error): void;
|
|
32
32
|
onConversationReset(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Capture LLM token usage analytics
|
|
35
|
+
*/
|
|
36
|
+
private captureTokenUsage;
|
|
33
37
|
/**
|
|
34
38
|
* Run agent in headless mode and wait for completion
|
|
35
39
|
* Returns a promise that resolves when the response is complete
|