dexto 1.1.5 → 1.1.7
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 +11 -1
- package/dist/cli/cli.js +1 -1
- package/dist/cli/utils/options.d.ts.map +1 -1
- package/dist/cli/utils/options.js +6 -0
- package/dist/config/cli-overrides.d.ts +4 -2
- package/dist/config/cli-overrides.d.ts.map +1 -1
- package/dist/config/cli-overrides.js +7 -0
- package/dist/index.js +14 -5
- package/dist/webui/.next/standalone/.next/static/chunks/app/{page-655c5da45b79231a.js → page-cf95b233c1df6dcd.js} +1 -1
- package/dist/webui/.next/standalone/.next/static/css/9cdfb06589a2f6ce.css +3 -0
- package/dist/webui/.next/standalone/packages/webui/.next/BUILD_ID +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/app-build-manifest.json +2 -2
- package/dist/webui/.next/standalone/packages/webui/.next/build-manifest.json +2 -2
- package/dist/webui/.next/standalone/packages/webui/.next/prerender-manifest.json +3 -3
- package/dist/webui/.next/standalone/packages/webui/.next/required-server-files.json +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page_client-reference-manifest.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/43.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/pages/500.html +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/server-reference-manifest.json +1 -1
- package/dist/webui/.next/{static/chunks/app/page-655c5da45b79231a.js → standalone/packages/webui/.next/static/chunks/app/page-cf95b233c1df6dcd.js} +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/css/9cdfb06589a2f6ce.css +3 -0
- package/dist/webui/.next/standalone/packages/webui/package.json +1 -1
- package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo.svg +31 -0
- package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_icon.svg +14 -0
- package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
- package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_light.svg +31 -0
- package/dist/webui/.next/standalone/packages/webui/server.js +1 -1
- package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo.svg +31 -0
- package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_icon.svg +14 -0
- package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
- package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_light.svg +31 -0
- package/dist/webui/.next/{standalone/packages/webui/.next/static/chunks/app/page-655c5da45b79231a.js → static/chunks/app/page-cf95b233c1df6dcd.js} +1 -1
- package/dist/webui/.next/static/css/9cdfb06589a2f6ce.css +3 -0
- package/dist/webui/package.json +1 -1
- package/dist/webui/public/logos/dexto/dexto_logo.svg +31 -0
- package/dist/webui/public/logos/dexto/dexto_logo_icon.svg +14 -0
- package/dist/webui/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
- package/dist/webui/public/logos/dexto/dexto_logo_light.svg +31 -0
- package/package.json +2 -2
- package/dist/webui/.next/standalone/.next/static/css/daca29b49478cfbe.css +0 -3
- package/dist/webui/.next/standalone/packages/webui/.next/static/css/daca29b49478cfbe.css +0 -3
- package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo.svg +0 -1
- package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo_light.svg +0 -18
- package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo_no_text.png +0 -0
- package/dist/webui/.next/standalone/public/logos/dexto_logo.svg +0 -1
- package/dist/webui/.next/standalone/public/logos/dexto_logo_light.svg +0 -18
- package/dist/webui/.next/standalone/public/logos/dexto_logo_no_text.png +0 -0
- package/dist/webui/.next/static/css/daca29b49478cfbe.css +0 -3
- package/dist/webui/public/logos/dexto_logo.svg +0 -1
- package/dist/webui/public/logos/dexto_logo_light.svg +0 -18
- package/dist/webui/public/logos/dexto_logo_no_text.png +0 -0
- /package/dist/webui/.next/standalone/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_buildManifest.js +0 -0
- /package/dist/webui/.next/standalone/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_ssgManifest.js +0 -0
- /package/dist/webui/.next/standalone/packages/webui/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_buildManifest.js +0 -0
- /package/dist/webui/.next/standalone/packages/webui/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_ssgManifest.js +0 -0
- /package/dist/webui/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_buildManifest.js +0 -0
- /package/dist/webui/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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>
|
|
2
4
|
|
|
3
5
|
<p align="center">
|
|
4
6
|
<img src="https://img.shields.io/badge/Status-Beta-yellow">
|
|
@@ -75,6 +77,14 @@ dexto --mode web
|
|
|
75
77
|
|
|
76
78
|
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.
|
|
77
79
|
|
|
80
|
+
### Skip Tool Prompts While Prototyping
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
dexto --auto-approve "refactor my project using the filesystem and browser tools"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Use the `--auto-approve` flag to bypass confirmation prompts when you trust the tools being invoked—perfect for fast local iteration. Remove the flag when you want explicit approval again.
|
|
87
|
+
|
|
78
88
|
## Agent Recipes
|
|
79
89
|
|
|
80
90
|
Dexto comes with pre-built agent recipes for common use cases. Install and use them instantly:
|
package/dist/cli/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ import { getDextoPath } from '@dexto/core';
|
|
|
8
8
|
import { registerGracefulShutdown } from '../utils/graceful-shutdown.js';
|
|
9
9
|
import { DextoRuntimeError, DextoValidationError, ErrorScope, LLMErrorCode } from '@dexto/core';
|
|
10
10
|
import { capture } from '../analytics/index.js';
|
|
11
|
-
import { safeExit } from '
|
|
11
|
+
import { safeExit } from '../analytics/wrapper.js';
|
|
12
12
|
/**
|
|
13
13
|
* Find and load the most recent session based on lastActivity.
|
|
14
14
|
* This provides better UX than always loading the "default" session.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/options.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/options.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAwFlD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAoB3D"}
|
|
@@ -22,6 +22,11 @@ export function validateCliOptions(opts) {
|
|
|
22
22
|
const port = parseInt(val, 10);
|
|
23
23
|
return !isNaN(port) && port > 0 && port <= 65535;
|
|
24
24
|
}, { message: 'Web port must be a number between 1 and 65535' }),
|
|
25
|
+
autoApprove: z
|
|
26
|
+
.boolean()
|
|
27
|
+
.optional()
|
|
28
|
+
.default(false)
|
|
29
|
+
.describe('Automatically approve all tool executions when true'),
|
|
25
30
|
provider: z.string().optional(),
|
|
26
31
|
model: z.string().optional(),
|
|
27
32
|
router: z.enum(['vercel', 'in-built']).optional(),
|
|
@@ -69,6 +74,7 @@ export function validateCliOptions(opts) {
|
|
|
69
74
|
model: opts.model,
|
|
70
75
|
router: opts.router,
|
|
71
76
|
interactive: opts.interactive,
|
|
77
|
+
autoApprove: opts.autoApprove,
|
|
72
78
|
});
|
|
73
79
|
}
|
|
74
80
|
export function handleCliOptionsError(error) {
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { AgentConfig, LLMConfig } from '@dexto/core';
|
|
6
6
|
/**
|
|
7
|
-
* CLI config override type for
|
|
7
|
+
* CLI config override type for fields that can be overridden via CLI
|
|
8
8
|
* Uses input type (LLMConfig) since these represent user-provided CLI arguments
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export interface CLIConfigOverrides extends Partial<Pick<LLMConfig, 'provider' | 'model' | 'router' | 'apiKey'>> {
|
|
11
|
+
autoApprove?: boolean;
|
|
12
|
+
}
|
|
11
13
|
/**
|
|
12
14
|
* Applies CLI overrides to an agent configuration
|
|
13
15
|
* This merges CLI arguments into the base config without validation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-overrides.d.ts","sourceRoot":"","sources":["../../src/config/cli-overrides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"cli-overrides.d.ts","sourceRoot":"","sources":["../../src/config/cli-overrides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,kBACb,SAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,WAAW,EACvB,YAAY,CAAC,EAAE,kBAAkB,GAClC,WAAW,CAuCb"}
|
|
@@ -35,6 +35,13 @@ export function applyCLIOverrides(baseConfig, cliOverrides) {
|
|
|
35
35
|
if (cliOverrides.apiKey) {
|
|
36
36
|
mergedConfig.llm.apiKey = cliOverrides.apiKey;
|
|
37
37
|
}
|
|
38
|
+
if (cliOverrides.autoApprove) {
|
|
39
|
+
// Ensure toolConfirmation section exists before overriding
|
|
40
|
+
if (!mergedConfig.toolConfirmation) {
|
|
41
|
+
mergedConfig.toolConfirmation = {};
|
|
42
|
+
}
|
|
43
|
+
mergedConfig.toolConfirmation.mode = 'auto-approve';
|
|
44
|
+
}
|
|
38
45
|
// Return merged config without validation - validation happens later
|
|
39
46
|
return mergedConfig;
|
|
40
47
|
}
|
package/dist/index.js
CHANGED
|
@@ -47,6 +47,7 @@ program
|
|
|
47
47
|
.option('--no-interactive', 'Disable interactive prompts and API key setup')
|
|
48
48
|
.option('-m, --model <model>', 'Specify the LLM model to use')
|
|
49
49
|
.option('--router <router>', 'Specify the LLM router to use (vercel or in-built)')
|
|
50
|
+
.option('--auto-approve', 'Always approve tool executions without confirmation prompts')
|
|
50
51
|
.option('-c, --continue', 'Continue most recent conversation')
|
|
51
52
|
.option('-r, --resume <sessionId>', 'Resume session by ID')
|
|
52
53
|
.option('--mode <mode>', 'The application in which dexto should talk to you - cli | web | server | discord | telegram | mcp', 'cli')
|
|
@@ -408,6 +409,8 @@ program
|
|
|
408
409
|
' dexto -c Continue most recent conversation\n' +
|
|
409
410
|
' dexto -c -p "query" Continue conversation, then exit\n' +
|
|
410
411
|
' dexto -r "<session-id>" "query" Resume session by ID\n\n' +
|
|
412
|
+
'Tool Confirmation:\n' +
|
|
413
|
+
' dexto --auto-approve Auto-approve all tool executions\n\n' +
|
|
411
414
|
'Advanced Modes:\n' +
|
|
412
415
|
' dexto --mode web Run web UI\n' +
|
|
413
416
|
' dexto --mode server Run as API server\n' +
|
|
@@ -592,11 +595,17 @@ program
|
|
|
592
595
|
// ——— Dispatch based on --mode ———
|
|
593
596
|
switch (opts.mode) {
|
|
594
597
|
case 'cli': {
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
598
|
+
const toolConfirmationMode = agent.getEffectiveConfig().toolConfirmation?.mode ?? 'event-based';
|
|
599
|
+
if (toolConfirmationMode === 'event-based') {
|
|
600
|
+
// Set up CLI tool confirmation subscriber
|
|
601
|
+
const { CLIToolConfirmationSubscriber } = await import('./cli/tool-confirmation/cli-confirmation-handler.js');
|
|
602
|
+
const cliSubscriber = new CLIToolConfirmationSubscriber();
|
|
603
|
+
cliSubscriber.subscribe(agent.agentEventBus);
|
|
604
|
+
logger.info('Setting up CLI event subscriptions...');
|
|
605
|
+
}
|
|
606
|
+
else {
|
|
607
|
+
logger.info(`Tool confirmation mode '${toolConfirmationMode}' active – skipping interactive CLI approval prompts.`);
|
|
608
|
+
}
|
|
600
609
|
if (headlessInput) {
|
|
601
610
|
// One shot CLI
|
|
602
611
|
await startHeadlessCli(agent, headlessInput);
|