dexto 1.1.4 → 1.1.6

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.
Files changed (130) hide show
  1. package/README.md +480 -0
  2. package/dist/analytics/constants.d.ts +19 -0
  3. package/dist/analytics/constants.d.ts.map +1 -0
  4. package/dist/analytics/constants.js +24 -0
  5. package/dist/analytics/events.d.ts +112 -0
  6. package/dist/analytics/events.d.ts.map +1 -0
  7. package/dist/analytics/events.js +6 -0
  8. package/dist/analytics/index.d.ts +37 -0
  9. package/dist/analytics/index.d.ts.map +1 -0
  10. package/dist/analytics/index.js +145 -0
  11. package/dist/analytics/state.d.ts +23 -0
  12. package/dist/analytics/state.d.ts.map +1 -0
  13. package/dist/analytics/state.js +74 -0
  14. package/dist/analytics/wrapper.d.ts +11 -0
  15. package/dist/analytics/wrapper.d.ts.map +1 -0
  16. package/dist/analytics/wrapper.js +125 -0
  17. package/dist/cli/cli.d.ts +5 -0
  18. package/dist/cli/cli.d.ts.map +1 -1
  19. package/dist/cli/cli.js +10 -4
  20. package/dist/cli/commands/{interactive-commands/session/helpers → helpers}/formatters.d.ts +1 -1
  21. package/dist/cli/commands/helpers/formatters.d.ts.map +1 -0
  22. package/dist/cli/commands/{interactive-commands/session/helpers → helpers}/formatters.js +1 -1
  23. package/dist/cli/commands/install.d.ts.map +1 -1
  24. package/dist/cli/commands/install.js +56 -2
  25. package/dist/cli/commands/interactive-commands/session/index.d.ts +1 -1
  26. package/dist/cli/commands/interactive-commands/session/index.d.ts.map +1 -1
  27. package/dist/cli/commands/interactive-commands/session/index.js +1 -1
  28. package/dist/cli/commands/interactive-commands/session/session-commands.d.ts.map +1 -1
  29. package/dist/cli/commands/interactive-commands/session/session-commands.js +10 -76
  30. package/dist/cli/commands/list-agents.d.ts +2 -2
  31. package/dist/cli/commands/session-commands.d.ts +28 -0
  32. package/dist/cli/commands/session-commands.d.ts.map +1 -0
  33. package/dist/cli/commands/session-commands.js +184 -0
  34. package/dist/cli/commands/setup.d.ts +2 -2
  35. package/dist/cli/commands/setup.d.ts.map +1 -1
  36. package/dist/cli/commands/setup.js +9 -0
  37. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  38. package/dist/cli/commands/uninstall.js +42 -1
  39. package/dist/cli/utils/api-key-setup.js +1 -1
  40. package/dist/index.js +271 -75
  41. package/dist/webui/.next/standalone/.next/static/chunks/854-2a6d5a5297a15d52.js +1 -0
  42. package/dist/webui/.next/standalone/.next/static/chunks/app/{layout-615a56c6184a488f.js → layout-dde711766eda096b.js} +1 -1
  43. package/dist/webui/.next/standalone/.next/static/chunks/app/{page-24123c97236d46cb.js → page-cf95b233c1df6dcd.js} +1 -1
  44. package/dist/webui/.next/standalone/.next/static/css/9cdfb06589a2f6ce.css +3 -0
  45. package/dist/webui/.next/standalone/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  46. package/dist/webui/.next/standalone/package.json +2 -1
  47. package/dist/webui/.next/standalone/packages/webui/.next/BUILD_ID +1 -1
  48. package/dist/webui/.next/standalone/packages/webui/.next/app-build-manifest.json +5 -7
  49. package/dist/webui/.next/standalone/packages/webui/.next/build-manifest.json +2 -2
  50. package/dist/webui/.next/standalone/packages/webui/.next/prerender-manifest.json +3 -3
  51. package/dist/webui/.next/standalone/packages/webui/.next/required-server-files.json +1 -1
  52. package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page.js +2 -2
  53. package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page.js.nft.json +1 -1
  54. package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  55. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js +3 -3
  56. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js.nft.json +1 -1
  57. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page.js +3 -3
  59. package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page.js.nft.json +1 -1
  60. package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page_client-reference-manifest.js +1 -1
  61. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/43.js +1 -4
  62. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/619.js +30 -0
  63. package/dist/webui/.next/standalone/packages/webui/.next/server/next-font-manifest.js +1 -1
  64. package/dist/webui/.next/standalone/packages/webui/.next/server/next-font-manifest.json +1 -1
  65. package/dist/webui/.next/standalone/packages/webui/.next/server/pages/500.html +1 -1
  66. package/dist/webui/.next/standalone/packages/webui/.next/server/pages/_error.js +2 -2
  67. package/dist/webui/.next/standalone/packages/webui/.next/server/server-reference-manifest.json +1 -1
  68. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/854-2a6d5a5297a15d52.js +1 -0
  69. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/{layout-615a56c6184a488f.js → layout-dde711766eda096b.js} +1 -1
  70. package/dist/webui/.next/{static/chunks/app/page-24123c97236d46cb.js → standalone/packages/webui/.next/static/chunks/app/page-cf95b233c1df6dcd.js} +1 -1
  71. package/dist/webui/.next/standalone/packages/webui/.next/static/css/9cdfb06589a2f6ce.css +3 -0
  72. package/dist/webui/.next/standalone/packages/webui/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  73. package/dist/webui/.next/standalone/packages/webui/package.json +1 -1
  74. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo.svg +31 -0
  75. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_icon.svg +14 -0
  76. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
  77. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_light.svg +31 -0
  78. package/dist/webui/.next/standalone/packages/webui/server.js +1 -1
  79. package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo.svg +31 -0
  80. package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_icon.svg +14 -0
  81. package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
  82. package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_light.svg +31 -0
  83. package/dist/webui/.next/static/chunks/854-2a6d5a5297a15d52.js +1 -0
  84. package/dist/webui/.next/static/chunks/app/{layout-615a56c6184a488f.js → layout-dde711766eda096b.js} +1 -1
  85. package/dist/webui/.next/{standalone/packages/webui/.next/static/chunks/app/page-24123c97236d46cb.js → static/chunks/app/page-cf95b233c1df6dcd.js} +1 -1
  86. package/dist/webui/.next/static/css/9cdfb06589a2f6ce.css +3 -0
  87. package/dist/webui/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  88. package/dist/webui/package.json +1 -1
  89. package/dist/webui/public/logos/dexto/dexto_logo.svg +31 -0
  90. package/dist/webui/public/logos/dexto/dexto_logo_icon.svg +14 -0
  91. package/dist/webui/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
  92. package/dist/webui/public/logos/dexto/dexto_logo_light.svg +31 -0
  93. package/package.json +7 -4
  94. package/dist/cli/commands/interactive-commands/session/helpers/formatters.d.ts.map +0 -1
  95. package/dist/webui/.next/standalone/.next/static/chunks/221-608218ab04068cb2.js +0 -1
  96. package/dist/webui/.next/standalone/.next/static/chunks/854-47418382efcea1d4.js +0 -1
  97. package/dist/webui/.next/standalone/.next/static/css/75b11629ebbc461a.css +0 -3
  98. package/dist/webui/.next/standalone/.next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
  99. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/387.js +0 -14
  100. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/392.js +0 -1
  101. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/450.js +0 -139
  102. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/514.js +0 -2
  103. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/531.js +0 -1
  104. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/723.js +0 -1
  105. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/737.js +0 -1
  106. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/767.js +0 -20
  107. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/89.js +0 -95
  108. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/221-608218ab04068cb2.js +0 -1
  109. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/854-47418382efcea1d4.js +0 -1
  110. package/dist/webui/.next/standalone/packages/webui/.next/static/css/75b11629ebbc461a.css +0 -3
  111. package/dist/webui/.next/standalone/packages/webui/.next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
  112. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo.svg +0 -1
  113. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo_light.svg +0 -18
  114. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo_no_text.png +0 -0
  115. package/dist/webui/.next/standalone/public/logos/dexto_logo.svg +0 -1
  116. package/dist/webui/.next/standalone/public/logos/dexto_logo_light.svg +0 -18
  117. package/dist/webui/.next/standalone/public/logos/dexto_logo_no_text.png +0 -0
  118. package/dist/webui/.next/static/chunks/221-608218ab04068cb2.js +0 -1
  119. package/dist/webui/.next/static/chunks/854-47418382efcea1d4.js +0 -1
  120. package/dist/webui/.next/static/css/75b11629ebbc461a.css +0 -3
  121. package/dist/webui/.next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
  122. package/dist/webui/public/logos/dexto_logo.svg +0 -1
  123. package/dist/webui/public/logos/dexto_logo_light.svg +0 -18
  124. package/dist/webui/public/logos/dexto_logo_no_text.png +0 -0
  125. /package/dist/webui/.next/standalone/.next/static/{abgua6ybDH7yT2b5rvLlU → OsQGbLQi9bS4RzNw_6wgr}/_buildManifest.js +0 -0
  126. /package/dist/webui/.next/standalone/.next/static/{abgua6ybDH7yT2b5rvLlU → OsQGbLQi9bS4RzNw_6wgr}/_ssgManifest.js +0 -0
  127. /package/dist/webui/.next/standalone/packages/webui/.next/static/{abgua6ybDH7yT2b5rvLlU → OsQGbLQi9bS4RzNw_6wgr}/_buildManifest.js +0 -0
  128. /package/dist/webui/.next/standalone/packages/webui/.next/static/{abgua6ybDH7yT2b5rvLlU → OsQGbLQi9bS4RzNw_6wgr}/_ssgManifest.js +0 -0
  129. /package/dist/webui/.next/static/{abgua6ybDH7yT2b5rvLlU → OsQGbLQi9bS4RzNw_6wgr}/_buildManifest.js +0 -0
  130. /package/dist/webui/.next/static/{abgua6ybDH7yT2b5rvLlU → OsQGbLQi9bS4RzNw_6wgr}/_ssgManifest.js +0 -0
package/README.md ADDED
@@ -0,0 +1,480 @@
1
+ <a href="https://dexto.ai">
2
+ <img src="https://raw.githubusercontent.com/truffle-ai/dexto/main/.github/assets/dexto-logo.svg" alt="Dexto" width="100%" style="max-width: 1000px" />
3
+ </a>
4
+
5
+ # Dexto
6
+
7
+ <p align="center">
8
+ <img src="https://img.shields.io/badge/Status-Beta-yellow">
9
+ <img src="https://img.shields.io/badge/License-Elastic%202.0-blue.svg">
10
+ <a href="https://discord.gg/GFzWFAAZcm"><img src="https://img.shields.io/badge/Discord-Join%20Chat-7289da?logo=discord&logoColor=white"></a>
11
+ <a href="https://deepwiki.com/truffle-ai/dexto"><img src="https://deepwiki.com/badge.svg"></a>
12
+ </p>
13
+
14
+ **An all-in-one toolkit to build agentic applications that turn natural language into real-world actions.**
15
+
16
+ <div align="center">
17
+ <img src="https://github.com/user-attachments/assets/97a09f5b-6f7d-4d4b-9b3f-3c87fd964cbe" alt="Dexto Demo" width="700" />
18
+ </div>
19
+
20
+ ## What is Dexto?
21
+
22
+ Dexto is a universal agent interface for building agentic apps—software that understands natural language and takes real-world actions. It orchestrates LLMs, tools, and data into persistent, stateful systems with memory, so you can rapidly create AI assistants, copilots, and context-aware apps that think, act and feel alive.
23
+
24
+ #### With Dexto, you can build:
25
+
26
+ - **Autonomous Agents** - Agents that plan, execute, and adapt to user goals.
27
+ - **Digital Companions** - AI assistants & copilots that remember context and anticipate needs.
28
+ - **Multi-Agent Systems** - Architect agents that collaborate, delegate, and solve complex tasks together.
29
+ - **MCP Clients** - Connect multiple tools, files, APIs, and data via MCP Servers.
30
+ - **Agent-as-a-Service** – Transform your existing SaaS products and APIs into dynamic, conversational experiences.
31
+ - **Agentic Applications** – Integrate Dexto as a reasoning engine to power interactive, multimodal, AI-native applications.
32
+
33
+ <!-- Dexto unifies a configuration-driven framework, robust runtime, and seamless developer experience—so you can build, deploy, and iterate with ease.
34
+
35
+ - **Framework** – Define agent behavior in YAML. Instantly swap models and tools without touching code.
36
+ - **Runtime** – Execution with session management, conversation memory, and multimodal support.
37
+ - **Interfaces & Tooling** – Native support for CLI, Web, APIs, and a TypeScript SDK. Develop, debug, and interact with your agent across any platforms from day one. -->
38
+
39
+ ### What You Get
40
+
41
+ - **Batteries Included** – Session management, tool orchestration, multimodal support.
42
+ - **20+ LLMs** – Instantly switch between OpenAI, Anthropic, Google, Groq, local models or bring your own.
43
+ - **Run Anywhere** – Local for privacy, cloud for reach, or hybrid. *Same agent, any deployment.*
44
+ - **Native Multimodal** – Text, images, files, and tools in a single conversation. *Upload screenshots, ask questions, take actions.*
45
+ - **Persistent Sessions** – Conversations, context, and memory are saved and can be exported, imported, or shared across environments.
46
+ - **Flexible Interfaces** – One agent, endless ways to interact: Ready to-use CLI, WebUI, APIs, or integrate with your own UI.
47
+ - **Production Ready** – Observability and error handling built-in.
48
+ - **Tooling & MCP** – Integrate 100+ tools and connect to external servers via the Model Context Protocol (MCP).
49
+ - **Customizable Agents** – Define agent behavior, tools, and prompts in YAML or TypeScript.
50
+ - **Pluggable Storage** – Use Redis, PostgreSQL, SQLite, in-memory, and more for cache and database backends.
51
+
52
+ ---
53
+
54
+ ## Installation
55
+
56
+ ```bash
57
+ # NPM global
58
+ npm install -g dexto
59
+
60
+ # —or— build from source
61
+ # this sets up dexto CLI from the cloned code
62
+ git clone https://github.com/truffle-ai/dexto.git
63
+ cd dexto && pnpm install && pnpm install-cli
64
+
65
+ ```
66
+
67
+ ## Quick Start
68
+
69
+ ```bash
70
+ # 1. Run setup workflow - this prompts for your preferred LLM and API keys and starts the interactive CLI
71
+ dexto
72
+
73
+ # 2. Try a multi-step task
74
+ dexto "create a snake game in HTML/CSS/JS, then open it in the browser"
75
+
76
+ # 3. Launch the Dexto Web UI
77
+ dexto --mode web
78
+ ```
79
+
80
+ In 2 -> Dexto will use filesystem tools to write code and browser tools to open it — all from a single prompt. The Web UI allows you to navigate previous conversations and experiment with different models, tools and more.
81
+
82
+ ## Agent Recipes
83
+
84
+ Dexto comes with pre-built agent recipes for common use cases. Install and use them instantly:
85
+
86
+ ```bash
87
+ # List available agents
88
+ dexto list-agents
89
+
90
+ # Install specific agents
91
+ dexto install nano-banana-agent podcast-agent
92
+
93
+ # Use an agent
94
+ dexto --agent nano-banana-agent "create a futuristic cityscape with flying cars"
95
+ dexto --agent podcast-agent "generate a podcast intro with two hosts discussing AI"
96
+ ```
97
+
98
+ **Available Agents:**
99
+ - **Nano Banana Agent** – Advanced image generation and editing using Google's Nano Banana (Gemini 2.5 Flash Image)
100
+ - **Podcast Agent** – Advanced podcast generation using Google Gemini TTS for multi-speaker audio content
101
+ - **Database Agent** – Demo agent for SQL queries and database operations
102
+ - **Image Editor Agent** – Image editing and manipulation
103
+ - **Music Agent** – Music creation and audio processing
104
+ - **PDF Agent** – Document analysis and conversation
105
+ - **Product Researcher** – Product naming and branding research
106
+ - **Triage Agent** – Demo multi-agent customer support routing system
107
+
108
+ Each agent is pre-configured with the right tools, prompts, and LLM settings for its domain. No setup required—just install and start building.
109
+
110
+ More ready-to-run recipes live in [`agents/`](https://github.com/truffle-ai/dexto/tree/HEAD/agents/) and the [docs site](https://docs.dexto.ai/).
111
+
112
+ ## Examples & Demos
113
+
114
+ ### 🛒 Browser Agent: Amazon Shopping Assistant
115
+ **Task:** `Can you go to amazon and add some snacks to my cart? I like trail mix, cheetos and maybe surprise me with something else?`
116
+ ```bash
117
+ # Default agent has browser tools
118
+ dexto
119
+ ```
120
+ <a href="https://youtu.be/C-Z0aVbl4Ik">
121
+ <img src="https://github.com/user-attachments/assets/3f5be5e2-7a55-4093-a071-8c52f1a83ba3" alt="Dexto: Amazon shopping agent demo" width="600"/>
122
+ </a>
123
+
124
+ ### 👁️ Computer Vision: Face Detection & Annotation
125
+ **Task:** `Detect all faces in this image and draw bounding boxes around them.`
126
+ ```bash
127
+ dexto --agent image-editor-agent
128
+ ```
129
+
130
+ <img src="https://github.com/user-attachments/assets/7e4b2043-c39a-47c7-a403-a9665ee762ce" alt="Face Detection Demo" width="600">
131
+
132
+ ### 🎙️ Podcast Agent: Generate AI Podcast Intros
133
+ **Task:** `Generate an intro for a podcast about the latest in AI.`
134
+ ```bash
135
+ dexto --agent podcast-agent
136
+ ```
137
+
138
+ <img src="https://github.com/user-attachments/assets/cfd59751-3daa-4ccd-97b2-1b2862c96af1" alt="Podcast Agent Demo" width="600"/>
139
+
140
+ ### 🖼️ Hugging Face: Image Generation
141
+ **Task:** `Generate a photo of a baby panda.`
142
+
143
+ <img src="https://github.com/user-attachments/assets/570cbd3a-6990-43c5-b355-2b549a4ee6b3" alt="Hugging Face Image Generation Demo" width="600"/>
144
+
145
+ ### 🛠️ Adding Custom MCP Servers
146
+
147
+ You can add your own Model Context Protocol (MCP) servers to extend Dexto's capabilities with new tools or data sources. Just edit your agent YAML or add it directly in the WebUI.
148
+
149
+ <img src="https://github.com/user-attachments/assets/1a3ca1fd-31a0-4e1d-ba93-23e1772b1e79" alt="Add MCP Server Example" width="600"/>
150
+
151
+ ### 🎮 Web App Development: Snake Game
152
+ **Task:** `Create a snake game in HTML/CSS/JS, then open it in the browser`
153
+ ```bash
154
+ dexto "create a snake game in HTML/CSS/JS, then open it in the browser"
155
+ ```
156
+
157
+ <img src="https://github.com/user-attachments/assets/6901ba82-3c2a-4177-baf0-7d44d04a5f27" alt="Snake Game Development Demo" width="600"/>
158
+
159
+ ### 📧 Send Email Summaries to Slack
160
+ **Task:** `Summarize emails and send highlights to Slack`
161
+ ```bash
162
+ dexto --agent ./agents/examples/email_slack.yml
163
+ ```
164
+ <img src="https://github.com/truffle-ai/dexto/blob/HEAD/assets/email_slack_demo.gif?raw=1" alt="Email to Slack Demo" width="600">
165
+
166
+ ---
167
+
168
+ ## Run Modes
169
+
170
+ | Mode | Command | Best for |
171
+ |------|---------|----------|
172
+ | **Interactive CLI** | `dexto` | Everyday automation & quick tasks |
173
+ | **Web UI** | `dexto --mode web` | Friendly chat interface w/ image support |
174
+ | **Headless Server** | `dexto --mode server` | REST & WebSocket APIs for agent interaction |
175
+ | **MCP Server (Agent)** | `dexto --mode mcp` | Exposing your agent as a tool for others via stdio |
176
+ | **MCP Server (Aggregator)** | `dexto mcp --group-servers` | Re-exposing tools from multiple MCP servers via stdio |
177
+ | **Discord Bot** | `dexto --mode discord` | Community servers & channels ([Requires Setup](https://github.com/truffle-ai/dexto/blob/HEAD/packages/cli/src/discord/README.md)) |
178
+ | **Telegram Bot** | `dexto --mode telegram` | Mobile chat ([Requires Setup](https://github.com/truffle-ai/dexto/blob/HEAD/packages/cli/src/telegram/README.md)) |
179
+
180
+ Run `dexto --help` for **all flags, sub-commands, and environment variables**.
181
+
182
+ ## Configuration
183
+
184
+ ### Agent Configuration
185
+
186
+ Dexto treats each configuration as a unique agent allowing you to define and save combinations of LLMs, servers, storage options, etc. based on your needs for easy portability. Define agents in version-controlled YAML. Change the file, reload, and chat—state, memory, and tools update automatically.
187
+
188
+ ```yaml
189
+ # agents/my-agent.yml
190
+ llm:
191
+ provider: openai
192
+ model: gpt-4.1-mini
193
+ apiKey: $OPENAI_API_KEY
194
+
195
+ mcpServers:
196
+ filesystem:
197
+ type: stdio
198
+ command: npx
199
+ args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
200
+ web:
201
+ type: stdio
202
+ command: npx
203
+ args: ['-y', '@modelcontextprotocol/server-brave-search']
204
+
205
+ systemPrompt: |
206
+ You are a helpful AI assistant with access to files and web search.
207
+ ```
208
+
209
+ ### LLM Providers
210
+
211
+ Switch between providers instantly—no code changes required.
212
+
213
+ | Provider | Models | Setup |
214
+ |----------|--------|-------|
215
+ | **OpenAI** | `gpt-5`, `gpt-5-mini`, `gpt-5-nano`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-4o`, `gpt-4o-mini`, `gpt-4o-audio-preview`, `o4-mini`, `o3`, `o3-mini`, `o1` | `export OPENAI_API_KEY=...` |
216
+ | **Anthropic** | `claude-opus-4-1-20250805`, `claude-4-opus-20250514`, `claude-4-sonnet-20250514`, `claude-3-7-sonnet-20250219`, `claude-3-5-sonnet-20240620`, `claude-3-5-haiku-20241022` | `export ANTHROPIC_API_KEY=...` |
217
+ | **Google** | `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.5-flash-lite`, `gemini-2.0-flash`, `gemini-2.0-flash-lite` | `export GOOGLE_GENERATIVE_AI_API_KEY=...` |
218
+ | **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` | `export GROQ_API_KEY=...` |
219
+ | **xAI** | `grok-4`, `grok-3`, `grok-3-mini`, `grok-code-fast-1` | `export XAI_API_KEY=...` |
220
+ | **Cohere** | `command-a-03-2025`, `command-r-plus`, `command-r`, `command-r7b` | `export COHERE_API_KEY=...` |
221
+
222
+ ```bash
223
+ # Switch models via CLI
224
+ dexto -m claude-4-sonnet-20250514
225
+ dexto -m gemini-2.5-pro
226
+ ```
227
+
228
+ See our [Configuration Guide](https://docs.dexto.ai/docs/category/guides/) for complete setup instructions.
229
+
230
+
231
+ ## Programmatic API
232
+
233
+ Install the `@dexto/core` library, and build applications with the `DextoAgent` class. Everything the CLI can do, your code can too.
234
+
235
+ ```bash
236
+ npm install @dexto/core
237
+ ```
238
+
239
+ ```ts
240
+ import { DextoAgent } from '@dexto/core';
241
+
242
+ // Create and start agent
243
+ const agent = new DextoAgent({
244
+ llm: {
245
+ provider: 'openai',
246
+ model: 'gpt-4.1-mini',
247
+ apiKey: process.env.OPENAI_API_KEY
248
+ }
249
+ });
250
+ await agent.start();
251
+
252
+ // Run tasks
253
+ const response = await agent.run('List the 5 largest files in this repo');
254
+ console.log(response);
255
+
256
+ // Hold conversations
257
+ await agent.run('Write a haiku about TypeScript');
258
+ await agent.run('Make it funnier');
259
+
260
+ await agent.stop();
261
+ ```
262
+
263
+ See our [TypeScript SDK docs](https://docs.dexto.ai/api/category/typescript-sdk/) for complete examples with MCP tools, sessions, and advanced features.
264
+
265
+ ---
266
+
267
+ ## Advanced Usage
268
+
269
+ ### Session Management
270
+
271
+ Create and manage multiple conversation sessions with persistent storage.
272
+
273
+ ```typescript
274
+ const agent = new DextoAgent(config);
275
+ await agent.start();
276
+
277
+ // Create and manage sessions
278
+ const session = await agent.createSession('user-123');
279
+ await agent.run('Hello, how can you help me?', undefined, 'user-123');
280
+
281
+ // List and manage sessions
282
+ const sessions = await agent.listSessions();
283
+ const sessionHistory = await agent.getSessionHistory('user-123');
284
+ await agent.deleteSession('user-123');
285
+
286
+ // Search across conversations
287
+ const results = await agent.searchMessages('bug fix', { limit: 10 });
288
+ ```
289
+
290
+ ### LLM Management
291
+
292
+ Switch between models and providers dynamically.
293
+
294
+ ```typescript
295
+ // Get current configuration
296
+ const currentLLM = agent.getCurrentLLMConfig();
297
+
298
+ // Switch models (provider inferred automatically)
299
+ await agent.switchLLM({ model: 'gpt-4.1-mini' });
300
+ await agent.switchLLM({ model: 'claude-4-sonnet-20250514' });
301
+
302
+ // Switch model for a specific session id 1234
303
+ await agent.switchLLM({ model: 'gpt-4.1-mini' }, '1234')
304
+
305
+ // Get supported providers and models
306
+ const providers = agent.getSupportedProviders();
307
+ const models = agent.getSupportedModels();
308
+ const openaiModels = agent.getSupportedModelsForProvider('openai');
309
+ ```
310
+
311
+ ### MCP Manager
312
+
313
+ For advanced MCP server management, use the MCPManager directly.
314
+
315
+ ```typescript
316
+ import { MCPManager } from '@dexto/core';
317
+
318
+ const manager = new MCPManager();
319
+
320
+ // Connect to MCP servers
321
+ await manager.connectServer('filesystem', {
322
+ type: 'stdio',
323
+ command: 'npx',
324
+ args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
325
+ });
326
+
327
+ // Access tools, prompts, and resources
328
+ const tools = await manager.getAllTools();
329
+ const prompts = await manager.getAllPrompts();
330
+ const resources = await manager.getAllResources();
331
+
332
+ // Execute tools
333
+ const result = await manager.executeTool('readFile', { path: './README.md' });
334
+
335
+ await manager.disconnectAll();
336
+ ```
337
+
338
+ ### Storage & Persistence
339
+
340
+ Configure storage backends for production-ready persistence and caching.
341
+
342
+ ```yaml
343
+ # agents/production-agent.yml
344
+ storage:
345
+ cache:
346
+ type: redis
347
+ url: $REDIS_URL
348
+ maxConnections: 100
349
+ database:
350
+ type: postgres
351
+ connectionString: $POSTGRES_CONNECTION_STRING
352
+ maxConnections: 25
353
+
354
+ sessions:
355
+ maxSessions: 1000
356
+ sessionTTL: 86400000 # 24 hours
357
+ ```
358
+
359
+ **Supported Backends:**
360
+ - **Cache**: Redis, In-Memory (fast, ephemeral)
361
+ - **Database**: PostgreSQL, SQLite, In-Memory (persistent, reliable)
362
+
363
+ **Use Cases:**
364
+ - **Development**: In-memory for quick testing
365
+ - **Production**: Redis + PostgreSQL for scale
366
+ - **Simple**: SQLite for single-instance persistence
367
+
368
+ See the [DextoAgent API Documentation](https://docs.dexto.ai/api/dexto-agent/) for complete method references.
369
+
370
+ ---
371
+
372
+ ## CLI Reference
373
+
374
+ <details>
375
+ <summary>Click to expand for full CLI reference (`dexto --help`)</summary>
376
+
377
+ ```
378
+ Usage: dexto [options] [command] [prompt...]
379
+
380
+ Dexto CLI allows you to talk to Dexto, build custom AI Agents, build complex AI applications like Cursor, and more.
381
+
382
+ Run dexto interactive CLI with `dexto` or run a one-shot prompt with `dexto -p "<prompt>"` or `dexto "<prompt>"`
383
+ Start with a new session using `dexto --new-session [sessionId]`
384
+ Run dexto web UI with `dexto --mode web`
385
+ Run dexto as a server (REST APIs + WebSockets) with `dexto --mode server`
386
+ Run dexto as a discord bot with `dexto --mode discord`
387
+ Run dexto as a telegram bot with `dexto --mode telegram`
388
+ Run dexto agent as an MCP server with `dexto --mode mcp`
389
+ Run dexto as an MCP server aggregator with `dexto mcp --group-servers`
390
+
391
+ Check subcommands for more features. Check https://github.com/truffle-ai/dexto for documentation on how to customize dexto and other examples
392
+
393
+ Arguments:
394
+ prompt Natural-language prompt to run once. If not passed, dexto will start as an interactive CLI
395
+
396
+ Options:
397
+ -v, --version output the current version
398
+ -a, --agent <name|path> Agent name or path to agent config file
399
+ -p, --prompt <text> One-shot prompt text. Alternatively provide a single quoted string as positional argument.
400
+ -s, --strict Require all server connections to succeed
401
+ --no-verbose Disable verbose output
402
+ --no-interactive Disable interactive prompts and API key setup
403
+ -m, --model <model> Specify the LLM model to use
404
+ -r, --router <router> Specify the LLM router to use (vercel or in-built)
405
+ --new-session [sessionId] Start with a new session (optionally specify session ID)
406
+ --mode <mode> The application in which dexto should talk to you - cli | web | server | discord | telegram | mcp (default: "cli")
407
+ --web-port <port> optional port for the web UI (default: "3000")
408
+ --no-auto-install Disable automatic installation of missing agents from registry
409
+ -h, --help display help for command
410
+
411
+ Commands:
412
+ create-app Scaffold a new Dexto Typescript app
413
+ init-app Initialize an existing Typescript app with Dexto
414
+ setup [options] Configure global Dexto preferences
415
+ install [options] [agents...] Install agents from the registry
416
+ uninstall [options] [agents...] Uninstall agents from the local installation
417
+ list-agents [options] List available and installed agents
418
+ which <agent> Show the path to an agent
419
+ mcp [options] Start Dexto as an MCP server. Use --group-servers to aggregate and re-expose tools from configured MCP servers.
420
+ ```
421
+ </details>
422
+
423
+ ---
424
+
425
+ ## Next Steps
426
+
427
+ * **[Quick Start](https://docs.dexto.ai/docs/getting-started/intro/)** – Get up and running in minutes.
428
+ * **[Configuration Guide](https://docs.dexto.ai/docs/category/guides/)** – Configure agents, LLMs, and tools.
429
+ * **[Building with Dexto](https://docs.dexto.ai/docs/category/tutorials/)** – Developer guides and patterns.
430
+ * **[API Reference](https://docs.dexto.ai/api/)** – REST APIs, WebSocket, and SDKs.
431
+
432
+ ---
433
+
434
+ ## Telemetry
435
+
436
+ We collect anonymous usage data (no personal/sensitive info) to help improve Dexto. This includes:
437
+
438
+ - Commands used
439
+ - Command execution time
440
+ - Error occurrences
441
+ - System information (OS, Node version)
442
+ - LLM Models used
443
+
444
+ To opt-out:
445
+
446
+ Set env variable `DEXTO_ANALYTICS_DISABLED=1`
447
+
448
+ ## Contributing
449
+
450
+ We welcome contributions! Refer to our [Contributing Guide](https://github.com/truffle-ai/dexto/blob/HEAD/CONTRIBUTING.md) for more details.
451
+
452
+ ## Community & Support
453
+
454
+ Dexto is built by the team at [Truffle AI](https://www.trytruffle.ai).
455
+ Join our Discord to share projects, ask questions, or just say hi!
456
+
457
+ [![Discord](https://img.shields.io/badge/Discord-Join%20Chat-7289da?logo=discord&logoColor=white)](https://discord.gg/GFzWFAAZcm)
458
+
459
+ If you enjoy Dexto, please give us a ⭐ on GitHub—it helps a lot!
460
+
461
+ <div align="left"/>
462
+
463
+ [![Twitter Follow](https://img.shields.io/twitter/follow/Rahul?style=social)](https://x.com/intent/user?screen_name=Road_Kill11)
464
+ [![Twitter Follow](https://img.shields.io/twitter/follow/Shaunak?style=social)](https://x.com/intent/user?screen_name=shaun5k_)
465
+
466
+ </div>
467
+
468
+ ---
469
+
470
+ ## Contributors
471
+
472
+ Thanks to all these amazing people for contributing to Dexto!
473
+
474
+ [![Contributors](https://contrib.rocks/image?repo=truffle-ai/dexto)](https://github.com/truffle-ai/dexto/graphs/contributors)
475
+
476
+ ---
477
+
478
+ ## License
479
+
480
+ Elastic License 2.0. See [LICENSE](https://github.com/truffle-ai/dexto/blob/HEAD/LICENSE) for full terms.
@@ -0,0 +1,19 @@
1
+ export declare const DEFAULT_POSTHOG_KEY = "phc_IJHITHjBKOjDyFiVeilfdumcGniXMuLeXeiLQhYvwDW";
2
+ export declare const DEFAULT_POSTHOG_HOST = "https://app.posthog.com";
3
+ /**
4
+ * Single opt-out switch for analytics.
5
+ *
6
+ * Usage:
7
+ * DEXTO_ANALYTICS_DISABLED=1 dexto ...
8
+ *
9
+ * When set to a truthy value ("1", "true", "yes"), analytics are fully disabled.
10
+ */
11
+ export declare function isAnalyticsDisabled(): boolean;
12
+ /**
13
+ * Generic per-command timeout (in milliseconds) used by the analytics wrapper.
14
+ *
15
+ * This does NOT terminate the command. It emits a non-terminating timeout
16
+ * event when the duration threshold is crossed to help diagnose long runs.
17
+ */
18
+ export declare const COMMAND_TIMEOUT_MS = 120000;
19
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/analytics/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,oDAAoD,CAAC;AACrF,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAE9D;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAG7C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ // packages/cli/src/analytics/constants.ts
2
+ // Single source for PostHog configuration.
3
+ // Embed your public key here (safe to publish). Host can stay default.
4
+ export const DEFAULT_POSTHOG_KEY = 'phc_IJHITHjBKOjDyFiVeilfdumcGniXMuLeXeiLQhYvwDW';
5
+ export const DEFAULT_POSTHOG_HOST = 'https://app.posthog.com';
6
+ /**
7
+ * Single opt-out switch for analytics.
8
+ *
9
+ * Usage:
10
+ * DEXTO_ANALYTICS_DISABLED=1 dexto ...
11
+ *
12
+ * When set to a truthy value ("1", "true", "yes"), analytics are fully disabled.
13
+ */
14
+ export function isAnalyticsDisabled() {
15
+ const v = process.env.DEXTO_ANALYTICS_DISABLED;
16
+ return typeof v === 'string' && /^(1|true|yes)$/i.test(v);
17
+ }
18
+ /**
19
+ * Generic per-command timeout (in milliseconds) used by the analytics wrapper.
20
+ *
21
+ * This does NOT terminate the command. It emits a non-terminating timeout
22
+ * event when the duration threshold is crossed to help diagnose long runs.
23
+ */
24
+ export const COMMAND_TIMEOUT_MS = 120000; // 2 minutes (default for quick commands)
@@ -0,0 +1,112 @@
1
+ import type { ExecutionContext } from '@dexto/core';
2
+ export interface BaseEventContext {
3
+ app?: 'dexto';
4
+ app_version?: string;
5
+ node_version?: string;
6
+ os_platform?: NodeJS.Platform;
7
+ os_release?: string;
8
+ os_arch?: string;
9
+ execution_context?: ExecutionContext;
10
+ session_id?: string | null;
11
+ }
12
+ export interface CommandArgsMeta {
13
+ argTypes: string[];
14
+ positionalRaw?: string[];
15
+ positionalCount?: number;
16
+ optionKeys?: string[];
17
+ options?: Record<string, SanitizedOptionValue>;
18
+ }
19
+ export type SanitizedOptionValue = string | number | boolean | null | {
20
+ type: 'array';
21
+ length: number;
22
+ } | {
23
+ type: 'object';
24
+ };
25
+ export type CliCommandPhase = 'start' | 'end' | 'timeout';
26
+ interface CliCommandBaseEvent {
27
+ name: string;
28
+ phase: CliCommandPhase;
29
+ args?: CommandArgsMeta;
30
+ }
31
+ export interface CliCommandStartEvent extends CliCommandBaseEvent {
32
+ phase: 'start';
33
+ }
34
+ export interface CliCommandEndEvent extends CliCommandBaseEvent {
35
+ phase: 'end';
36
+ success: boolean;
37
+ durationMs: number;
38
+ error?: string;
39
+ reason?: string;
40
+ command?: string;
41
+ }
42
+ export interface CliCommandTimeoutEvent extends CliCommandBaseEvent {
43
+ phase: 'timeout';
44
+ timeoutMs: number;
45
+ }
46
+ export type CliCommandEvent = CliCommandStartEvent | CliCommandEndEvent | CliCommandTimeoutEvent;
47
+ export interface SessionStartEvent {
48
+ }
49
+ export interface PromptEvent {
50
+ mode: 'cli' | 'headless';
51
+ provider: string;
52
+ model: string;
53
+ }
54
+ export interface SetupEvent {
55
+ provider: string;
56
+ model: string;
57
+ hadApiKeyBefore: boolean;
58
+ setupMode: 'interactive' | 'non-interactive';
59
+ }
60
+ export interface InstallAgentEvent {
61
+ agent: string;
62
+ status: 'installed' | 'skipped' | 'failed';
63
+ force: boolean;
64
+ injectPreferences: boolean;
65
+ reason?: string;
66
+ error_message?: string;
67
+ }
68
+ export interface InstallAggregateEvent {
69
+ requested: string[];
70
+ installed: string[];
71
+ skipped: string[];
72
+ failed: string[];
73
+ successCount: number;
74
+ errorCount: number;
75
+ }
76
+ export interface UninstallAgentEvent {
77
+ agent: string;
78
+ status: 'uninstalled' | 'failed';
79
+ force: boolean;
80
+ error_message?: string;
81
+ }
82
+ export interface UninstallAggregateEvent {
83
+ requested: string[];
84
+ uninstalled: string[];
85
+ failed: string[];
86
+ successCount: number;
87
+ errorCount: number;
88
+ }
89
+ export interface CreateProjectEvent {
90
+ provider: string;
91
+ providedKey: boolean;
92
+ }
93
+ export interface InitProjectEvent {
94
+ provider: string;
95
+ providedKey: boolean;
96
+ }
97
+ export interface DextoAnalyticsEventMap {
98
+ dexto_session_start: SessionStartEvent;
99
+ dexto_cli_command: CliCommandEvent;
100
+ dexto_prompt: PromptEvent;
101
+ dexto_setup: SetupEvent;
102
+ dexto_install_agent: InstallAgentEvent;
103
+ dexto_install: InstallAggregateEvent;
104
+ dexto_uninstall_agent: UninstallAgentEvent;
105
+ dexto_uninstall: UninstallAggregateEvent;
106
+ dexto_create: CreateProjectEvent;
107
+ dexto_init: InitProjectEvent;
108
+ }
109
+ export type AnalyticsEventName = keyof DextoAnalyticsEventMap;
110
+ export type AnalyticsEventPayload<Name extends AnalyticsEventName> = DextoAnalyticsEventMap[Name];
111
+ export {};
112
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ // packages/cli/src/analytics/events.ts
2
+ // Typed payload scaffolding for PostHog events emitted by the CLI.
3
+ // These types describe the additional properties supplied when we call
4
+ // `capture(event, properties)`. Base context (app, version, OS, execution context,
5
+ // session_id, etc.) is merged automatically in analytics/index.ts.
6
+ export {};