dexto 1.5.5 → 1.5.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 (234) hide show
  1. package/README.md +13 -0
  2. package/dist/agents/agent-template.yml +1 -1
  3. package/dist/agents/coding-agent/coding-agent.yml +17 -2
  4. package/dist/agents/coding-agent/skills/code-review.md +46 -0
  5. package/dist/agents/explore-agent/explore-agent.yml +2 -0
  6. package/dist/agents/podcast-agent/podcast-agent.yml +1 -1
  7. package/dist/analytics/events.d.ts +1 -1
  8. package/dist/analytics/events.d.ts.map +1 -1
  9. package/dist/api/server-hono.d.ts.map +1 -1
  10. package/dist/api/server-hono.js +55 -10
  11. package/dist/cli/assets/dexto-logo.svg +31 -0
  12. package/dist/cli/auth/api-client.d.ts +49 -0
  13. package/dist/cli/auth/api-client.d.ts.map +1 -0
  14. package/dist/cli/auth/api-client.js +127 -0
  15. package/dist/cli/auth/constants.d.ts +23 -0
  16. package/dist/cli/auth/constants.d.ts.map +1 -0
  17. package/dist/cli/auth/constants.js +24 -0
  18. package/dist/cli/auth/index.d.ts +5 -0
  19. package/dist/cli/auth/index.d.ts.map +1 -0
  20. package/dist/cli/auth/index.js +6 -0
  21. package/dist/cli/auth/oauth.d.ts +26 -0
  22. package/dist/cli/auth/oauth.d.ts.map +1 -0
  23. package/dist/cli/auth/oauth.js +327 -0
  24. package/dist/cli/auth/service.d.ts +20 -0
  25. package/dist/cli/auth/service.d.ts.map +1 -0
  26. package/dist/cli/auth/service.js +147 -0
  27. package/dist/cli/commands/auth/index.d.ts +4 -0
  28. package/dist/cli/commands/auth/index.d.ts.map +1 -0
  29. package/dist/cli/commands/auth/index.js +4 -0
  30. package/dist/cli/commands/auth/login.d.ts +9 -0
  31. package/dist/cli/commands/auth/login.d.ts.map +1 -0
  32. package/dist/cli/commands/auth/login.js +255 -0
  33. package/dist/cli/commands/auth/logout.d.ts +5 -0
  34. package/dist/cli/commands/auth/logout.d.ts.map +1 -0
  35. package/dist/cli/commands/auth/logout.js +51 -0
  36. package/dist/cli/commands/auth/status.d.ts +2 -0
  37. package/dist/cli/commands/auth/status.d.ts.map +1 -0
  38. package/dist/cli/commands/auth/status.js +22 -0
  39. package/dist/cli/commands/billing/index.d.ts +2 -0
  40. package/dist/cli/commands/billing/index.d.ts.map +1 -0
  41. package/dist/cli/commands/billing/index.js +2 -0
  42. package/dist/cli/commands/billing/status.d.ts +6 -0
  43. package/dist/cli/commands/billing/status.d.ts.map +1 -0
  44. package/dist/cli/commands/billing/status.js +60 -0
  45. package/dist/cli/commands/index.d.ts +4 -0
  46. package/dist/cli/commands/index.d.ts.map +1 -1
  47. package/dist/cli/commands/index.js +9 -0
  48. package/dist/cli/commands/interactive-commands/auth/index.d.ts +12 -0
  49. package/dist/cli/commands/interactive-commands/auth/index.d.ts.map +1 -0
  50. package/dist/cli/commands/interactive-commands/auth/index.js +20 -0
  51. package/dist/cli/commands/interactive-commands/command-parser.d.ts +5 -0
  52. package/dist/cli/commands/interactive-commands/command-parser.d.ts.map +1 -1
  53. package/dist/cli/commands/interactive-commands/command-parser.js +6 -0
  54. package/dist/cli/commands/interactive-commands/commands.d.ts +1 -0
  55. package/dist/cli/commands/interactive-commands/commands.d.ts.map +1 -1
  56. package/dist/cli/commands/interactive-commands/commands.js +10 -0
  57. package/dist/cli/commands/interactive-commands/export/index.d.ts +13 -0
  58. package/dist/cli/commands/interactive-commands/export/index.d.ts.map +1 -0
  59. package/dist/cli/commands/interactive-commands/export/index.js +21 -0
  60. package/dist/cli/commands/interactive-commands/general-commands.d.ts.map +1 -1
  61. package/dist/cli/commands/interactive-commands/general-commands.js +1 -0
  62. package/dist/cli/commands/interactive-commands/mcp/index.d.ts +2 -2
  63. package/dist/cli/commands/interactive-commands/mcp/index.d.ts.map +1 -1
  64. package/dist/cli/commands/interactive-commands/mcp/index.js +4 -7
  65. package/dist/cli/commands/interactive-commands/model/index.d.ts +2 -2
  66. package/dist/cli/commands/interactive-commands/model/index.d.ts.map +1 -1
  67. package/dist/cli/commands/interactive-commands/model/index.js +4 -7
  68. package/dist/cli/commands/interactive-commands/plugin/index.d.ts +13 -0
  69. package/dist/cli/commands/interactive-commands/plugin/index.d.ts.map +1 -0
  70. package/dist/cli/commands/interactive-commands/plugin/index.js +18 -0
  71. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts +3 -1
  72. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts.map +1 -1
  73. package/dist/cli/commands/interactive-commands/prompt-commands.js +72 -36
  74. package/dist/cli/commands/interactive-commands/system/system-commands.d.ts.map +1 -1
  75. package/dist/cli/commands/interactive-commands/system/system-commands.js +2 -3
  76. package/dist/cli/commands/plugin.d.ts +161 -0
  77. package/dist/cli/commands/plugin.d.ts.map +1 -0
  78. package/dist/cli/commands/plugin.js +376 -0
  79. package/dist/cli/commands/setup.d.ts +9 -9
  80. package/dist/cli/commands/setup.d.ts.map +1 -1
  81. package/dist/cli/commands/setup.js +325 -37
  82. package/dist/cli/commands/sync-agents.d.ts +44 -0
  83. package/dist/cli/commands/sync-agents.d.ts.map +1 -0
  84. package/dist/cli/commands/sync-agents.js +483 -0
  85. package/dist/cli/ink-cli/InkCLIRefactored.d.ts +14 -1
  86. package/dist/cli/ink-cli/InkCLIRefactored.d.ts.map +1 -1
  87. package/dist/cli/ink-cli/InkCLIRefactored.js +8 -2
  88. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts +1 -1
  89. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts.map +1 -1
  90. package/dist/cli/ink-cli/components/ApprovalPrompt.js +80 -12
  91. package/dist/cli/ink-cli/components/Footer.d.ts +2 -1
  92. package/dist/cli/ink-cli/components/Footer.d.ts.map +1 -1
  93. package/dist/cli/ink-cli/components/Footer.js +6 -2
  94. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts.map +1 -1
  95. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.js +15 -7
  96. package/dist/cli/ink-cli/components/StatusBar.d.ts +9 -1
  97. package/dist/cli/ink-cli/components/StatusBar.d.ts.map +1 -1
  98. package/dist/cli/ink-cli/components/StatusBar.js +17 -5
  99. package/dist/cli/ink-cli/components/TodoPanel.d.ts +11 -8
  100. package/dist/cli/ink-cli/components/TodoPanel.d.ts.map +1 -1
  101. package/dist/cli/ink-cli/components/TodoPanel.js +38 -36
  102. package/dist/cli/ink-cli/components/chat/Header.d.ts.map +1 -1
  103. package/dist/cli/ink-cli/components/chat/Header.js +1 -1
  104. package/dist/cli/ink-cli/components/chat/MessageItem.d.ts.map +1 -1
  105. package/dist/cli/ink-cli/components/chat/MessageItem.js +14 -1
  106. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.js +1 -1
  107. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +1 -1
  108. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +16 -4
  109. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +1 -1
  110. package/dist/cli/ink-cli/components/modes/StaticCLI.js +4 -1
  111. package/dist/cli/ink-cli/components/overlays/ExportWizard.d.ts +22 -0
  112. package/dist/cli/ink-cli/components/overlays/ExportWizard.d.ts.map +1 -0
  113. package/dist/cli/ink-cli/components/overlays/ExportWizard.js +308 -0
  114. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts +1 -0
  115. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts.map +1 -1
  116. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.js +31 -20
  117. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.d.ts +20 -0
  118. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.d.ts.map +1 -0
  119. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.js +81 -0
  120. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.d.ts +31 -0
  121. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.d.ts.map +1 -0
  122. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.js +297 -0
  123. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts.map +1 -1
  124. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.js +7 -1
  125. package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts +1 -1
  126. package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts.map +1 -1
  127. package/dist/cli/ink-cli/components/overlays/McpServerActions.js +9 -0
  128. package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts.map +1 -1
  129. package/dist/cli/ink-cli/components/overlays/McpServerList.js +9 -2
  130. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts.map +1 -1
  131. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.js +15 -2
  132. package/dist/cli/ink-cli/components/overlays/PluginActions.d.ts +27 -0
  133. package/dist/cli/ink-cli/components/overlays/PluginActions.d.ts.map +1 -0
  134. package/dist/cli/ink-cli/components/overlays/PluginActions.js +66 -0
  135. package/dist/cli/ink-cli/components/overlays/PluginList.d.ts +21 -0
  136. package/dist/cli/ink-cli/components/overlays/PluginList.d.ts.map +1 -0
  137. package/dist/cli/ink-cli/components/overlays/PluginList.js +70 -0
  138. package/dist/cli/ink-cli/components/overlays/PluginManager.d.ts +21 -0
  139. package/dist/cli/ink-cli/components/overlays/PluginManager.d.ts.map +1 -0
  140. package/dist/cli/ink-cli/components/overlays/PluginManager.js +63 -0
  141. package/dist/cli/ink-cli/components/overlays/PromptList.d.ts.map +1 -1
  142. package/dist/cli/ink-cli/components/overlays/PromptList.js +4 -1
  143. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts +2 -1
  144. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts.map +1 -1
  145. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.js +61 -2
  146. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts +4 -2
  147. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts.map +1 -1
  148. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.js +4 -4
  149. package/dist/cli/ink-cli/constants/tips.js +2 -2
  150. package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +1 -1
  151. package/dist/cli/ink-cli/containers/InputContainer.js +31 -3
  152. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts.map +1 -1
  153. package/dist/cli/ink-cli/containers/OverlayContainer.js +260 -11
  154. package/dist/cli/ink-cli/hooks/index.d.ts +1 -0
  155. package/dist/cli/ink-cli/hooks/index.d.ts.map +1 -1
  156. package/dist/cli/ink-cli/hooks/index.js +1 -0
  157. package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +1 -1
  158. package/dist/cli/ink-cli/hooks/useCLIState.js +3 -0
  159. package/dist/cli/ink-cli/hooks/useGitBranch.d.ts +13 -0
  160. package/dist/cli/ink-cli/hooks/useGitBranch.d.ts.map +1 -0
  161. package/dist/cli/ink-cli/hooks/useGitBranch.js +35 -0
  162. package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts.map +1 -1
  163. package/dist/cli/ink-cli/hooks/useInputOrchestrator.js +50 -6
  164. package/dist/cli/ink-cli/services/processStream.d.ts.map +1 -1
  165. package/dist/cli/ink-cli/services/processStream.js +42 -10
  166. package/dist/cli/ink-cli/state/initialState.d.ts.map +1 -1
  167. package/dist/cli/ink-cli/state/initialState.js +3 -0
  168. package/dist/cli/ink-cli/state/types.d.ts +16 -1
  169. package/dist/cli/ink-cli/state/types.d.ts.map +1 -1
  170. package/dist/cli/ink-cli/utils/commandOverlays.d.ts.map +1 -1
  171. package/dist/cli/ink-cli/utils/commandOverlays.js +2 -0
  172. package/dist/cli/ink-cli/utils/messageFormatting.d.ts +14 -1
  173. package/dist/cli/ink-cli/utils/messageFormatting.d.ts.map +1 -1
  174. package/dist/cli/ink-cli/utils/messageFormatting.js +68 -8
  175. package/dist/cli/ink-cli/utils/toolUtils.d.ts +11 -0
  176. package/dist/cli/ink-cli/utils/toolUtils.d.ts.map +1 -1
  177. package/dist/cli/ink-cli/utils/toolUtils.js +17 -0
  178. package/dist/cli/mcp/index.d.ts +8 -0
  179. package/dist/cli/mcp/index.d.ts.map +1 -0
  180. package/dist/cli/mcp/index.js +7 -0
  181. package/dist/cli/mcp/oauth-factory.d.ts +6 -0
  182. package/dist/cli/mcp/oauth-factory.d.ts.map +1 -0
  183. package/dist/cli/mcp/oauth-factory.js +25 -0
  184. package/dist/cli/mcp/oauth-provider.d.ts +10 -0
  185. package/dist/cli/mcp/oauth-provider.d.ts.map +1 -0
  186. package/dist/cli/mcp/oauth-provider.js +77 -0
  187. package/dist/cli/mcp/oauth-redirect.d.ts +3 -0
  188. package/dist/cli/mcp/oauth-redirect.d.ts.map +1 -0
  189. package/dist/cli/mcp/oauth-redirect.js +4 -0
  190. package/dist/cli/mcp/oauth-server.d.ts +2 -0
  191. package/dist/cli/mcp/oauth-server.d.ts.map +1 -0
  192. package/dist/cli/mcp/oauth-server.js +70 -0
  193. package/dist/cli/mcp/oauth-store.d.ts +10 -0
  194. package/dist/cli/mcp/oauth-store.d.ts.map +1 -0
  195. package/dist/cli/mcp/oauth-store.js +27 -0
  196. package/dist/cli/mcp/oauth-ui.d.ts +2 -0
  197. package/dist/cli/mcp/oauth-ui.d.ts.map +1 -0
  198. package/dist/cli/mcp/oauth-ui.js +12 -0
  199. package/dist/cli/mcp/oauth-utils.d.ts +2 -0
  200. package/dist/cli/mcp/oauth-utils.d.ts.map +1 -0
  201. package/dist/cli/mcp/oauth-utils.js +17 -0
  202. package/dist/cli/utils/api-key-setup.d.ts.map +1 -1
  203. package/dist/cli/utils/api-key-setup.js +13 -90
  204. package/dist/cli/utils/api-key-verification.d.ts.map +1 -1
  205. package/dist/cli/utils/api-key-verification.js +36 -0
  206. package/dist/cli/utils/config-validation.d.ts +3 -1
  207. package/dist/cli/utils/config-validation.d.ts.map +1 -1
  208. package/dist/cli/utils/config-validation.js +42 -19
  209. package/dist/cli/utils/dexto-auth-check.d.ts +53 -0
  210. package/dist/cli/utils/dexto-auth-check.d.ts.map +1 -0
  211. package/dist/cli/utils/dexto-auth-check.js +104 -0
  212. package/dist/cli/utils/dexto-setup.d.ts +8 -0
  213. package/dist/cli/utils/dexto-setup.d.ts.map +1 -0
  214. package/dist/cli/utils/dexto-setup.js +17 -0
  215. package/dist/cli/utils/options.d.ts.map +1 -1
  216. package/dist/cli/utils/options.js +5 -1
  217. package/dist/cli/utils/provider-setup.d.ts +4 -0
  218. package/dist/cli/utils/provider-setup.d.ts.map +1 -1
  219. package/dist/cli/utils/provider-setup.js +20 -0
  220. package/dist/cli/utils/version-check.d.ts +45 -0
  221. package/dist/cli/utils/version-check.d.ts.map +1 -0
  222. package/dist/cli/utils/version-check.js +195 -0
  223. package/dist/config/cli-overrides.d.ts +17 -8
  224. package/dist/config/cli-overrides.d.ts.map +1 -1
  225. package/dist/config/cli-overrides.js +36 -22
  226. package/dist/config/effective-llm.d.ts +123 -0
  227. package/dist/config/effective-llm.d.ts.map +1 -0
  228. package/dist/config/effective-llm.js +171 -0
  229. package/dist/index.js +451 -126
  230. package/dist/webui/assets/index-C9JXwpvo.css +1 -0
  231. package/dist/webui/assets/{index-DVQWNLpT.js → index-Dl3mj53P.js} +217 -217
  232. package/dist/webui/index.html +2 -2
  233. package/package.json +9 -8
  234. package/dist/webui/assets/index-BglIVTSG.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"general-commands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/interactive-commands/general-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,qBAAqB,CAAC;AAgGnG;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,iBAAiB,EAAE,GAAG,iBAAiB,CAgC9F;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAwZ9C,CAAC"}
1
+ {"version":3,"file":"general-commands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/interactive-commands/general-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,qBAAqB,CAAC;AAgGnG;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,iBAAiB,EAAE,GAAG,iBAAiB,CAgC9F;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAyZ9C,CAAC"}
@@ -397,6 +397,7 @@ export const generalCommands = [
397
397
  name: 'Global',
398
398
  shortcuts: [
399
399
  { keys: 'Ctrl+C', description: 'Clear input, then exit (press twice)' },
400
+ { keys: 'Ctrl+T', description: 'Toggle task list (show/hide tasks)' },
400
401
  { keys: 'Escape', description: 'Cancel processing / close overlay' },
401
402
  ],
402
403
  },
@@ -6,8 +6,8 @@
6
6
  */
7
7
  import type { CommandDefinition } from '../command-parser.js';
8
8
  /**
9
- * MCP management command definition
10
- * Always shows the interactive MCP server list overlay (handled by ALWAYS_OVERLAY)
9
+ * MCP management command definition.
10
+ * Handler is never called - mcp is in ALWAYS_OVERLAY and handled by McpServerList overlay.
11
11
  */
12
12
  export declare const mcpCommands: CommandDefinition;
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,sBAAsB,CAAC;AAEpG;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,iBAczB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,iBAMzB,CAAC"}
@@ -4,18 +4,15 @@
4
4
  * In interactive CLI, /mcp always shows the interactive MCP server list overlay.
5
5
  * This command definition exists for autocomplete and help display.
6
6
  */
7
+ import { overlayOnlyHandler } from '../command-parser.js';
7
8
  /**
8
- * MCP management command definition
9
- * Always shows the interactive MCP server list overlay (handled by ALWAYS_OVERLAY)
9
+ * MCP management command definition.
10
+ * Handler is never called - mcp is in ALWAYS_OVERLAY and handled by McpServerList overlay.
10
11
  */
11
12
  export const mcpCommands = {
12
13
  name: 'mcp',
13
14
  description: 'Manage MCP servers (interactive)',
14
15
  usage: '/mcp',
15
16
  category: 'MCP Management',
16
- handler: async (_args, _agent, _ctx) => {
17
- // This handler is never called - mcp is in ALWAYS_OVERLAY
18
- // which intercepts and shows the MCP server list overlay instead
19
- return true;
20
- },
17
+ handler: overlayOnlyHandler,
21
18
  };
@@ -6,8 +6,8 @@
6
6
  */
7
7
  import type { CommandDefinition } from '../command-parser.js';
8
8
  /**
9
- * Model management command definition
10
- * Always shows the interactive model selector overlay (handled by ALWAYS_OVERLAY)
9
+ * Model management command definition.
10
+ * Handler is never called - model is in ALWAYS_OVERLAY and handled by ModelSelector overlay.
11
11
  */
12
12
  export declare const modelCommands: CommandDefinition;
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/model/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,sBAAsB,CAAC;AAEpF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,iBAW3B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/model/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,iBAO3B,CAAC"}
@@ -4,9 +4,10 @@
4
4
  * In interactive CLI, /model always shows the interactive model selector overlay.
5
5
  * This command definition exists for autocomplete and help display.
6
6
  */
7
+ import { overlayOnlyHandler } from '../command-parser.js';
7
8
  /**
8
- * Model management command definition
9
- * Always shows the interactive model selector overlay (handled by ALWAYS_OVERLAY)
9
+ * Model management command definition.
10
+ * Handler is never called - model is in ALWAYS_OVERLAY and handled by ModelSelector overlay.
10
11
  */
11
12
  export const modelCommands = {
12
13
  name: 'model',
@@ -14,9 +15,5 @@ export const modelCommands = {
14
15
  usage: '/model',
15
16
  category: 'General',
16
17
  aliases: ['m'],
17
- handler: async () => {
18
- // This handler is never called - model is in ALWAYS_OVERLAY
19
- // which intercepts and shows the model selector overlay instead
20
- return true;
21
- },
18
+ handler: overlayOnlyHandler,
22
19
  };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Plugin Commands Module
3
+ *
4
+ * In interactive CLI, /plugin always shows the interactive plugin manager overlay.
5
+ * This command definition exists for autocomplete and help display.
6
+ */
7
+ import type { CommandDefinition } from '../command-parser.js';
8
+ /**
9
+ * Plugin management command definition.
10
+ * Handler is never called - plugin is in ALWAYS_OVERLAY and handled by PluginManager overlay.
11
+ */
12
+ export declare const pluginCommands: CommandDefinition;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,iBAM5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Plugin Commands Module
3
+ *
4
+ * In interactive CLI, /plugin always shows the interactive plugin manager overlay.
5
+ * This command definition exists for autocomplete and help display.
6
+ */
7
+ import { overlayOnlyHandler } from '../command-parser.js';
8
+ /**
9
+ * Plugin management command definition.
10
+ * Handler is never called - plugin is in ALWAYS_OVERLAY and handled by PluginManager overlay.
11
+ */
12
+ export const pluginCommands = {
13
+ name: 'plugin',
14
+ description: 'Manage plugins (interactive)',
15
+ usage: '/plugin',
16
+ category: 'Plugin Management',
17
+ handler: overlayOnlyHandler,
18
+ };
@@ -17,7 +17,9 @@ import type { CommandDefinition } from './command-parser.js';
17
17
  export declare const promptCommands: CommandDefinition[];
18
18
  /**
19
19
  * Get all dynamic prompt commands based on available prompts.
20
- * Handles displayName collisions by prefixing with source (e.g., config:review).
20
+ * Uses pre-computed commandName from PromptManager for collision handling.
21
+ * Filters out prompts with `userInvocable: false` as these are not intended
22
+ * for direct user invocation via slash commands.
21
23
  */
22
24
  export declare function getDynamicPromptCommands(agent: DextoAgent): Promise<CommandDefinition[]>;
23
25
  //# sourceMappingURL=prompt-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-commands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/interactive-commands/prompt-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,qBAAqB,CAAC;AAKnG;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,iBAAiB,EA8L7C,CAAC;AAwFF;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAwB9F"}
1
+ {"version":3,"file":"prompt-commands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/interactive-commands/prompt-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,qBAAqB,CAAC;AAKnG;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,iBAAiB,EA8L7C,CAAC;AAgJF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAiB9F"}
@@ -179,35 +179,24 @@ export const promptCommands = [
179
179
  ];
180
180
  /**
181
181
  * Create a dynamic command definition from a prompt
182
- * @param promptInfo The prompt metadata
183
- * @param hasCollision Whether this prompt's displayName collides with another
182
+ * @param promptInfo The prompt metadata with pre-computed commandName
184
183
  */
185
- function createPromptCommand(promptInfo, hasCollision) {
186
- const baseName = promptInfo.displayName || promptInfo.name;
187
- // Add source prefix if collision (e.g., "config:review" or "mcp:review")
188
- const commandName = hasCollision ? `${promptInfo.source}:${baseName}` : baseName;
184
+ function createPromptCommand(promptInfo) {
185
+ // Use pre-computed commandName (collision-resolved by PromptManager)
186
+ // Fall back to displayName or name for backwards compatibility
187
+ const commandName = promptInfo.commandName || promptInfo.displayName || promptInfo.name;
189
188
  // Keep internal name for prompt resolution (e.g., "config:review" or "mcp:server1:review")
190
189
  const internalName = promptInfo.name;
190
+ // Base name for display purposes (without source prefix)
191
+ const baseName = promptInfo.displayName || promptInfo.name;
191
192
  return {
192
193
  name: commandName,
193
194
  description: promptInfo.description || `Execute ${baseName} prompt`,
194
195
  usage: `/${commandName} [context]`,
195
196
  category: 'Dynamic Prompts',
196
- handler: async (args, agent, _ctx) => {
197
+ handler: async (args, agent, ctx) => {
197
198
  try {
198
199
  const { argMap, context: contextString } = splitPromptArguments(args);
199
- if (Object.keys(argMap).length > 0) {
200
- console.log(chalk.cyan(`🤖 Executing prompt: ${commandName}`));
201
- console.log(chalk.gray(`Explicit arguments: ${JSON.stringify(argMap)}`));
202
- }
203
- else if (contextString) {
204
- console.log(chalk.cyan(`🤖 Executing prompt: ${commandName}`));
205
- console.log(chalk.gray(`Context: ${contextString} (LLM will extrapolate template variables)`));
206
- }
207
- else {
208
- console.log(chalk.cyan(`🤖 Executing prompt: ${commandName}`));
209
- console.log(chalk.gray('No arguments provided - LLM will extrapolate from context'));
210
- }
211
200
  // Use resolvePrompt instead of getPrompt + flattenPromptResult (matches WebUI approach)
212
201
  const resolveOptions = {};
213
202
  if (Object.keys(argMap).length > 0) {
@@ -218,6 +207,50 @@ function createPromptCommand(promptInfo, hasCollision) {
218
207
  }
219
208
  // Use internal name for resolution (includes prefix like "config:")
220
209
  const result = await agent.resolvePrompt(internalName, resolveOptions);
210
+ // Apply per-prompt overrides (Phase 2 Claude Code compatibility)
211
+ // These overrides persist for the session until explicitly cleared
212
+ if (ctx.sessionId) {
213
+ // Apply model override if specified
214
+ if (result.model) {
215
+ console.log(chalk.gray(`🔄 Switching model to '${result.model}' for this prompt`));
216
+ try {
217
+ await agent.switchLLM({ model: result.model }, ctx.sessionId);
218
+ }
219
+ catch (modelError) {
220
+ console.log(chalk.yellow(`⚠️ Failed to switch model: ${modelError instanceof Error ? modelError.message : String(modelError)}`));
221
+ }
222
+ }
223
+ // Apply auto-approve tools if specified
224
+ // These tools will skip confirmation prompts during skill execution
225
+ if (result.allowedTools && result.allowedTools.length > 0) {
226
+ console.log(chalk.gray(`🔓 Auto-approving tools: ${result.allowedTools.join(', ')}`));
227
+ try {
228
+ agent.toolManager.setSessionAutoApproveTools(ctx.sessionId, result.allowedTools);
229
+ }
230
+ catch (toolError) {
231
+ console.log(chalk.yellow(`⚠️ Failed to set auto-approve tools: ${toolError instanceof Error ? toolError.message : String(toolError)}`));
232
+ }
233
+ }
234
+ }
235
+ // Fork skills: route through LLM to call invoke_skill
236
+ // This ensures approval flow and context management work naturally through
237
+ // processStream, rather than bypassing it with direct tool execution.
238
+ if (result.context === 'fork') {
239
+ const skillName = internalName;
240
+ const taskContext = contextString || '';
241
+ // Build instruction message for the LLM
242
+ // The <skill-invocation> tags help the LLM recognize this is a structured request
243
+ const instructionText = `<skill-invocation>
244
+ Execute the fork skill: ${commandName}
245
+ ${taskContext ? `Task context: ${taskContext}` : ''}
246
+
247
+ Call the internal--invoke_skill tool immediately with:
248
+ - skill: "${skillName}"
249
+ ${taskContext ? `- taskContext: "${taskContext}"` : ''}
250
+ </skill-invocation>`;
251
+ return createSendMessageMarker(instructionText);
252
+ }
253
+ // Inline skills: wrap content in <skill-invocation> for clean history display
221
254
  // Convert resource URIs to @resource mentions so agent.run() can expand them
222
255
  let finalText = result.text;
223
256
  if (result.resources.length > 0) {
@@ -226,9 +259,18 @@ function createPromptCommand(promptInfo, hasCollision) {
226
259
  finalText = finalText ? `${finalText}\n\n${resourceRefs}` : resourceRefs;
227
260
  }
228
261
  if (finalText.trim()) {
229
- // Return the resolved text so CLI can send it through normal streaming flow
230
- // This matches WebUI behavior: resolvePrompt() -> handleSend(text)
231
- return createSendMessageMarker(finalText.trim());
262
+ // Wrap in <skill-invocation> tags for clean display in history
263
+ // The tags help formatSkillInvocationMessage() detect and format these
264
+ const taskContext = contextString || '';
265
+ const wrappedText = `<skill-invocation>
266
+ Execute the inline skill: ${commandName}
267
+ ${taskContext ? `Task context: ${taskContext}` : ''}
268
+
269
+ skill: "${internalName}"
270
+ </skill-invocation>
271
+
272
+ ${finalText.trim()}`;
273
+ return createSendMessageMarker(wrappedText);
232
274
  }
233
275
  else {
234
276
  const warningMsg = `⚠️ Prompt '${commandName}' returned no content`;
@@ -247,24 +289,18 @@ function createPromptCommand(promptInfo, hasCollision) {
247
289
  }
248
290
  /**
249
291
  * Get all dynamic prompt commands based on available prompts.
250
- * Handles displayName collisions by prefixing with source (e.g., config:review).
292
+ * Uses pre-computed commandName from PromptManager for collision handling.
293
+ * Filters out prompts with `userInvocable: false` as these are not intended
294
+ * for direct user invocation via slash commands.
251
295
  */
252
296
  export async function getDynamicPromptCommands(agent) {
253
297
  try {
254
298
  const prompts = await agent.listPrompts();
255
- const promptEntries = Object.entries(prompts);
256
- // Build frequency map of displayNames to detect collisions
257
- const displayNameCounts = new Map();
258
- for (const [, info] of promptEntries) {
259
- const displayName = info.displayName || info.name;
260
- displayNameCounts.set(displayName, (displayNameCounts.get(displayName) || 0) + 1);
261
- }
262
- // Create commands with conditional prefixing
263
- return promptEntries.map(([, info]) => {
264
- const displayName = info.displayName || info.name;
265
- const hasCollision = (displayNameCounts.get(displayName) || 0) > 1;
266
- return createPromptCommand(info, hasCollision);
267
- });
299
+ // Filter out prompts that are not user-invocable (userInvocable: false)
300
+ // These prompts are intended for LLM auto-invocation only, not CLI slash commands
301
+ const promptEntries = Object.entries(prompts).filter(([, info]) => info.userInvocable !== false);
302
+ // Create commands using pre-computed commandName (collision-resolved by PromptManager)
303
+ return promptEntries.map(([, info]) => createPromptCommand(info));
268
304
  }
269
305
  catch (error) {
270
306
  agent.logger.error(`Failed to get dynamic prompt commands: ${error instanceof Error ? error.message : String(error)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"system-commands.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/system/system-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,sBAAsB,CAAC;AAKpG;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAyO7C,CAAC"}
1
+ {"version":3,"file":"system-commands.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/interactive-commands/system/system-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,sBAAsB,CAAC;AAKpG;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAwO7C,CAAC"}
@@ -33,7 +33,7 @@ export const systemCommands = [
33
33
  const logFilePath = logger.getLogFilePath();
34
34
  console.log(chalk.bold.blue('\n📊 Logging Configuration:\n'));
35
35
  console.log(` Current level: ${chalk.green.bold(currentLevel)}`);
36
- if (logFilePath && process.env.DEXTO_PRIVACY_MODE !== 'true') {
36
+ if (logFilePath) {
37
37
  console.log(` Log file: ${chalk.cyan(logFilePath)}`);
38
38
  }
39
39
  console.log(chalk.gray('\n Available levels (from least to most verbose):'));
@@ -44,11 +44,10 @@ export const systemCommands = [
44
44
  console.log(` ${marker} ${levelText}`);
45
45
  });
46
46
  console.log(chalk.gray('\n 💡 Use /log <level> to change level (e.g., /log debug)\n'));
47
- const isPrivacyMode = process.env.DEXTO_PRIVACY_MODE === 'true';
48
47
  const output = [
49
48
  '\n📊 Logging Configuration:',
50
49
  `Current level: ${currentLevel}`,
51
- logFilePath && !isPrivacyMode ? `Log file: ${logFilePath}` : '',
50
+ logFilePath ? `Log file: ${logFilePath}` : '',
52
51
  '\nAvailable levels: error, warn, info, http, verbose, debug, silly',
53
52
  '💡 Use /log <level> to change level',
54
53
  ]
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Plugin CLI Command Handlers
3
+ *
4
+ * Handles CLI commands for plugin management:
5
+ * - dexto plugin list
6
+ * - dexto plugin install --path <path>
7
+ * - dexto plugin uninstall <name>
8
+ * - dexto plugin validate [path]
9
+ */
10
+ import { z } from 'zod';
11
+ declare const PluginListCommandSchema: z.ZodObject<{
12
+ verbose: z.ZodDefault<z.ZodBoolean>;
13
+ }, "strict", z.ZodTypeAny, {
14
+ verbose: boolean;
15
+ }, {
16
+ verbose?: boolean | undefined;
17
+ }>;
18
+ declare const PluginInstallCommandSchema: z.ZodObject<{
19
+ path: z.ZodString;
20
+ scope: z.ZodDefault<z.ZodEnum<["user", "project", "local"]>>;
21
+ force: z.ZodDefault<z.ZodBoolean>;
22
+ }, "strict", z.ZodTypeAny, {
23
+ path: string;
24
+ force: boolean;
25
+ scope: "local" | "user" | "project";
26
+ }, {
27
+ path: string;
28
+ force?: boolean | undefined;
29
+ scope?: "local" | "user" | "project" | undefined;
30
+ }>;
31
+ declare const PluginUninstallCommandSchema: z.ZodObject<{
32
+ name: z.ZodString;
33
+ }, "strict", z.ZodTypeAny, {
34
+ name: string;
35
+ }, {
36
+ name: string;
37
+ }>;
38
+ declare const PluginValidateCommandSchema: z.ZodObject<{
39
+ path: z.ZodDefault<z.ZodString>;
40
+ }, "strict", z.ZodTypeAny, {
41
+ path: string;
42
+ }, {
43
+ path?: string | undefined;
44
+ }>;
45
+ declare const MarketplaceAddCommandSchema: z.ZodObject<{
46
+ source: z.ZodString;
47
+ name: z.ZodOptional<z.ZodString>;
48
+ }, "strict", z.ZodTypeAny, {
49
+ source: string;
50
+ name?: string | undefined;
51
+ }, {
52
+ source: string;
53
+ name?: string | undefined;
54
+ }>;
55
+ declare const MarketplaceRemoveCommandSchema: z.ZodObject<{
56
+ name: z.ZodString;
57
+ }, "strict", z.ZodTypeAny, {
58
+ name: string;
59
+ }, {
60
+ name: string;
61
+ }>;
62
+ declare const MarketplaceUpdateCommandSchema: z.ZodObject<{
63
+ name: z.ZodOptional<z.ZodString>;
64
+ }, "strict", z.ZodTypeAny, {
65
+ name?: string | undefined;
66
+ }, {
67
+ name?: string | undefined;
68
+ }>;
69
+ declare const MarketplaceListCommandSchema: z.ZodObject<{
70
+ verbose: z.ZodDefault<z.ZodBoolean>;
71
+ }, "strict", z.ZodTypeAny, {
72
+ verbose: boolean;
73
+ }, {
74
+ verbose?: boolean | undefined;
75
+ }>;
76
+ declare const MarketplaceInstallCommandSchema: z.ZodObject<{
77
+ plugin: z.ZodString;
78
+ scope: z.ZodDefault<z.ZodEnum<["user", "project", "local"]>>;
79
+ force: z.ZodDefault<z.ZodBoolean>;
80
+ }, "strict", z.ZodTypeAny, {
81
+ force: boolean;
82
+ scope: "local" | "user" | "project";
83
+ plugin: string;
84
+ }, {
85
+ plugin: string;
86
+ force?: boolean | undefined;
87
+ scope?: "local" | "user" | "project" | undefined;
88
+ }>;
89
+ export type PluginListCommandOptions = z.output<typeof PluginListCommandSchema>;
90
+ export type PluginListCommandOptionsInput = z.input<typeof PluginListCommandSchema>;
91
+ export type PluginInstallCommandOptions = z.output<typeof PluginInstallCommandSchema>;
92
+ export type PluginInstallCommandOptionsInput = z.input<typeof PluginInstallCommandSchema>;
93
+ export type PluginUninstallCommandOptions = z.output<typeof PluginUninstallCommandSchema>;
94
+ export type PluginUninstallCommandOptionsInput = z.input<typeof PluginUninstallCommandSchema>;
95
+ export type PluginValidateCommandOptions = z.output<typeof PluginValidateCommandSchema>;
96
+ export type PluginValidateCommandOptionsInput = z.input<typeof PluginValidateCommandSchema>;
97
+ export type MarketplaceAddCommandOptions = z.output<typeof MarketplaceAddCommandSchema>;
98
+ export type MarketplaceAddCommandOptionsInput = z.input<typeof MarketplaceAddCommandSchema>;
99
+ export type MarketplaceRemoveCommandOptions = z.output<typeof MarketplaceRemoveCommandSchema>;
100
+ export type MarketplaceRemoveCommandOptionsInput = z.input<typeof MarketplaceRemoveCommandSchema>;
101
+ export type MarketplaceUpdateCommandOptions = z.output<typeof MarketplaceUpdateCommandSchema>;
102
+ export type MarketplaceUpdateCommandOptionsInput = z.input<typeof MarketplaceUpdateCommandSchema>;
103
+ export type MarketplaceListCommandOptions = z.output<typeof MarketplaceListCommandSchema>;
104
+ export type MarketplaceListCommandOptionsInput = z.input<typeof MarketplaceListCommandSchema>;
105
+ export type MarketplaceInstallCommandOptions = z.output<typeof MarketplaceInstallCommandSchema>;
106
+ export type MarketplaceInstallCommandOptionsInput = z.input<typeof MarketplaceInstallCommandSchema>;
107
+ /**
108
+ * Handles the `dexto plugin list` command.
109
+ * Lists all installed plugins managed by Dexto.
110
+ */
111
+ export declare function handlePluginListCommand(options: PluginListCommandOptionsInput): Promise<void>;
112
+ /**
113
+ * Handles the `dexto plugin install --path <path>` command.
114
+ * Installs a plugin from a local directory.
115
+ */
116
+ export declare function handlePluginInstallCommand(options: PluginInstallCommandOptionsInput): Promise<void>;
117
+ /**
118
+ * Handles the `dexto plugin uninstall <name>` command.
119
+ * Uninstalls a plugin by name.
120
+ */
121
+ export declare function handlePluginUninstallCommand(options: PluginUninstallCommandOptionsInput): Promise<void>;
122
+ /**
123
+ * Handles the `dexto plugin validate [path]` command.
124
+ * Validates a plugin directory structure and manifest.
125
+ */
126
+ export declare function handlePluginValidateCommand(options: PluginValidateCommandOptionsInput): Promise<void>;
127
+ /**
128
+ * Handles the `dexto plugin marketplace add <source>` command.
129
+ * Adds a new marketplace from GitHub, git URL, or local path.
130
+ */
131
+ export declare function handleMarketplaceAddCommand(options: MarketplaceAddCommandOptionsInput): Promise<void>;
132
+ /**
133
+ * Handles the `dexto plugin marketplace remove <name>` command.
134
+ * Removes a registered marketplace.
135
+ */
136
+ export declare function handleMarketplaceRemoveCommand(options: MarketplaceRemoveCommandOptionsInput): Promise<void>;
137
+ /**
138
+ * Handles the `dexto plugin marketplace update [name]` command.
139
+ * Updates marketplace(s) by pulling latest from git.
140
+ */
141
+ export declare function handleMarketplaceUpdateCommand(options: MarketplaceUpdateCommandOptionsInput): Promise<void>;
142
+ /**
143
+ * Handles the `dexto plugin marketplace list` command.
144
+ * Lists all registered marketplaces.
145
+ */
146
+ export declare function handleMarketplaceListCommand(options: MarketplaceListCommandOptionsInput): Promise<void>;
147
+ /**
148
+ * Handles the `dexto plugin marketplace plugins [name]` command.
149
+ * Lists plugins available in marketplaces.
150
+ */
151
+ export declare function handleMarketplacePluginsCommand(options: {
152
+ marketplace?: string | undefined;
153
+ verbose?: boolean | undefined;
154
+ }): Promise<void>;
155
+ /**
156
+ * Handles the `dexto plugin marketplace install <plugin>` command.
157
+ * Installs a plugin from a registered marketplace.
158
+ */
159
+ export declare function handleMarketplaceInstallCommand(options: MarketplaceInstallCommandOptionsInput): Promise<void>;
160
+ export {};
161
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"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"}