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.
Files changed (60) hide show
  1. package/README.md +11 -1
  2. package/dist/cli/cli.js +1 -1
  3. package/dist/cli/utils/options.d.ts.map +1 -1
  4. package/dist/cli/utils/options.js +6 -0
  5. package/dist/config/cli-overrides.d.ts +4 -2
  6. package/dist/config/cli-overrides.d.ts.map +1 -1
  7. package/dist/config/cli-overrides.js +7 -0
  8. package/dist/index.js +14 -5
  9. package/dist/webui/.next/standalone/.next/static/chunks/app/{page-655c5da45b79231a.js → page-cf95b233c1df6dcd.js} +1 -1
  10. package/dist/webui/.next/standalone/.next/static/css/9cdfb06589a2f6ce.css +3 -0
  11. package/dist/webui/.next/standalone/packages/webui/.next/BUILD_ID +1 -1
  12. package/dist/webui/.next/standalone/packages/webui/.next/app-build-manifest.json +2 -2
  13. package/dist/webui/.next/standalone/packages/webui/.next/build-manifest.json +2 -2
  14. package/dist/webui/.next/standalone/packages/webui/.next/prerender-manifest.json +3 -3
  15. package/dist/webui/.next/standalone/packages/webui/.next/required-server-files.json +1 -1
  16. package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js +1 -1
  18. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page_client-reference-manifest.js +1 -1
  19. package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page_client-reference-manifest.js +1 -1
  20. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/43.js +1 -1
  21. package/dist/webui/.next/standalone/packages/webui/.next/server/pages/500.html +1 -1
  22. package/dist/webui/.next/standalone/packages/webui/.next/server/server-reference-manifest.json +1 -1
  23. package/dist/webui/.next/{static/chunks/app/page-655c5da45b79231a.js → standalone/packages/webui/.next/static/chunks/app/page-cf95b233c1df6dcd.js} +1 -1
  24. package/dist/webui/.next/standalone/packages/webui/.next/static/css/9cdfb06589a2f6ce.css +3 -0
  25. package/dist/webui/.next/standalone/packages/webui/package.json +1 -1
  26. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo.svg +31 -0
  27. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_icon.svg +14 -0
  28. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
  29. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto/dexto_logo_light.svg +31 -0
  30. package/dist/webui/.next/standalone/packages/webui/server.js +1 -1
  31. package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo.svg +31 -0
  32. package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_icon.svg +14 -0
  33. package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
  34. package/dist/webui/.next/standalone/public/logos/dexto/dexto_logo_light.svg +31 -0
  35. package/dist/webui/.next/{standalone/packages/webui/.next/static/chunks/app/page-655c5da45b79231a.js → static/chunks/app/page-cf95b233c1df6dcd.js} +1 -1
  36. package/dist/webui/.next/static/css/9cdfb06589a2f6ce.css +3 -0
  37. package/dist/webui/package.json +1 -1
  38. package/dist/webui/public/logos/dexto/dexto_logo.svg +31 -0
  39. package/dist/webui/public/logos/dexto/dexto_logo_icon.svg +14 -0
  40. package/dist/webui/public/logos/dexto/dexto_logo_icon_light.svg +17 -0
  41. package/dist/webui/public/logos/dexto/dexto_logo_light.svg +31 -0
  42. package/package.json +2 -2
  43. package/dist/webui/.next/standalone/.next/static/css/daca29b49478cfbe.css +0 -3
  44. package/dist/webui/.next/standalone/packages/webui/.next/static/css/daca29b49478cfbe.css +0 -3
  45. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo.svg +0 -1
  46. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo_light.svg +0 -18
  47. package/dist/webui/.next/standalone/packages/webui/public/logos/dexto_logo_no_text.png +0 -0
  48. package/dist/webui/.next/standalone/public/logos/dexto_logo.svg +0 -1
  49. package/dist/webui/.next/standalone/public/logos/dexto_logo_light.svg +0 -18
  50. package/dist/webui/.next/standalone/public/logos/dexto_logo_no_text.png +0 -0
  51. package/dist/webui/.next/static/css/daca29b49478cfbe.css +0 -3
  52. package/dist/webui/public/logos/dexto_logo.svg +0 -1
  53. package/dist/webui/public/logos/dexto_logo_light.svg +0 -18
  54. package/dist/webui/public/logos/dexto_logo_no_text.png +0 -0
  55. /package/dist/webui/.next/standalone/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_buildManifest.js +0 -0
  56. /package/dist/webui/.next/standalone/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_ssgManifest.js +0 -0
  57. /package/dist/webui/.next/standalone/packages/webui/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_buildManifest.js +0 -0
  58. /package/dist/webui/.next/standalone/packages/webui/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_ssgManifest.js +0 -0
  59. /package/dist/webui/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_buildManifest.js +0 -0
  60. /package/dist/webui/.next/static/{wcYVcRLx1mruRrV5-XkIK → s008aheUrlJbknTlTTTmY}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -1,4 +1,6 @@
1
- # Dexto CLI
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 'src/analytics/wrapper.js';
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,CAkFlD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAoB3D"}
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 LLM fields that can be overridden via CLI
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 type CLIConfigOverrides = Partial<Pick<LLMConfig, 'provider' | 'model' | 'router' | 'apiKey'>>;
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,MAAM,kBAAkB,GAAG,OAAO,CACpC,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAC9D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,WAAW,EACvB,YAAY,CAAC,EAAE,kBAAkB,GAClC,WAAW,CA8Bb"}
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
- // Set up CLI tool confirmation subscriber
596
- const { CLIToolConfirmationSubscriber } = await import('./cli/tool-confirmation/cli-confirmation-handler.js');
597
- const cliSubscriber = new CLIToolConfirmationSubscriber();
598
- cliSubscriber.subscribe(agent.agentEventBus);
599
- logger.info('Setting up CLI event subscriptions...');
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);