dexto 1.5.7 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/README.md +3 -3
  2. package/dist/agents/agent-template.yml +2 -2
  3. package/dist/agents/coding-agent/README.md +10 -10
  4. package/dist/agents/coding-agent/coding-agent.yml +81 -80
  5. package/dist/agents/default-agent.yml +32 -47
  6. package/dist/agents/explore-agent/explore-agent.yml +3 -6
  7. package/dist/agents/image-editor-agent/image-editor-agent.yml +1 -1
  8. package/dist/agents/nano-banana-agent/nano-banana-agent.yml +1 -1
  9. package/dist/agents/podcast-agent/podcast-agent.yml +1 -1
  10. package/dist/agents/product-name-researcher/product-name-researcher.yml +1 -1
  11. package/dist/agents/sora-video-agent/sora-video-agent.yml +4 -6
  12. package/dist/agents/triage-demo/triage-agent.yml +1 -1
  13. package/dist/analytics/events.d.ts +2 -2
  14. package/dist/analytics/events.d.ts.map +1 -1
  15. package/dist/api/mcp/tool-aggregation-handler.d.ts +2 -2
  16. package/dist/api/server-hono.d.ts +2 -2
  17. package/dist/api/server-hono.d.ts.map +1 -1
  18. package/dist/api/server-hono.js +37 -60
  19. package/dist/cli/approval/cli-approval-handler.d.ts +10 -3
  20. package/dist/cli/approval/cli-approval-handler.d.ts.map +1 -1
  21. package/dist/cli/approval/cli-approval-handler.js +1 -1
  22. package/dist/cli/auth/constants.d.ts +4 -0
  23. package/dist/cli/auth/constants.d.ts.map +1 -1
  24. package/dist/cli/auth/constants.js +4 -0
  25. package/dist/cli/commands/auth/logout.js +2 -2
  26. package/dist/cli/commands/billing/status.d.ts +3 -1
  27. package/dist/cli/commands/billing/status.d.ts.map +1 -1
  28. package/dist/cli/commands/billing/status.js +23 -1
  29. package/dist/cli/commands/create-app.d.ts +1 -11
  30. package/dist/cli/commands/create-app.d.ts.map +1 -1
  31. package/dist/cli/commands/create-app.js +21 -545
  32. package/dist/cli/commands/create-image.d.ts.map +1 -1
  33. package/dist/cli/commands/create-image.js +54 -53
  34. package/dist/cli/commands/image.d.ts +52 -0
  35. package/dist/cli/commands/image.d.ts.map +1 -0
  36. package/dist/cli/commands/image.js +118 -0
  37. package/dist/cli/commands/index.d.ts +2 -1
  38. package/dist/cli/commands/index.d.ts.map +1 -1
  39. package/dist/cli/commands/index.js +3 -1
  40. package/dist/cli/commands/init-app.d.ts +4 -8
  41. package/dist/cli/commands/init-app.d.ts.map +1 -1
  42. package/dist/cli/commands/init-app.js +37 -161
  43. package/dist/cli/commands/interactive-commands/command-parser.d.ts +2 -0
  44. package/dist/cli/commands/interactive-commands/command-parser.d.ts.map +1 -1
  45. package/dist/cli/commands/interactive-commands/commands.d.ts +1 -1
  46. package/dist/cli/commands/interactive-commands/commands.d.ts.map +1 -1
  47. package/dist/cli/commands/interactive-commands/commands.js +2 -2
  48. package/dist/cli/commands/interactive-commands/general-commands.js +2 -2
  49. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts.map +1 -1
  50. package/dist/cli/commands/interactive-commands/prompt-commands.js +13 -2
  51. package/dist/cli/commands/interactive-commands/session/index.d.ts +2 -1
  52. package/dist/cli/commands/interactive-commands/session/index.d.ts.map +1 -1
  53. package/dist/cli/commands/interactive-commands/session/index.js +2 -1
  54. package/dist/cli/commands/interactive-commands/session/session-commands.d.ts +2 -2
  55. package/dist/cli/commands/interactive-commands/session/session-commands.js +2 -2
  56. package/dist/cli/commands/interactive-commands/system/system-commands.d.ts.map +1 -1
  57. package/dist/cli/commands/interactive-commands/system/system-commands.js +7 -29
  58. package/dist/cli/commands/list-agents.d.ts.map +1 -1
  59. package/dist/cli/commands/list-agents.js +3 -2
  60. package/dist/cli/commands/plugin.d.ts +4 -4
  61. package/dist/cli/commands/setup.d.ts +5 -5
  62. package/dist/cli/commands/setup.d.ts.map +1 -1
  63. package/dist/cli/commands/setup.js +766 -207
  64. package/dist/cli/commands/sync-agents.d.ts +2 -12
  65. package/dist/cli/commands/sync-agents.d.ts.map +1 -1
  66. package/dist/cli/commands/sync-agents.js +2 -50
  67. package/dist/cli/ink-cli/InkCLIRefactored.d.ts +7 -1
  68. package/dist/cli/ink-cli/InkCLIRefactored.d.ts.map +1 -1
  69. package/dist/cli/ink-cli/InkCLIRefactored.js +17 -7
  70. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts +2 -2
  71. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts.map +1 -1
  72. package/dist/cli/ink-cli/components/ApprovalPrompt.js +15 -14
  73. package/dist/cli/ink-cli/components/BackgroundTasksPanel.d.ts +18 -0
  74. package/dist/cli/ink-cli/components/BackgroundTasksPanel.d.ts.map +1 -0
  75. package/dist/cli/ink-cli/components/BackgroundTasksPanel.js +48 -0
  76. package/dist/cli/ink-cli/components/ErrorBoundary.js +1 -1
  77. package/dist/cli/ink-cli/components/Footer.d.ts.map +1 -1
  78. package/dist/cli/ink-cli/components/Footer.js +5 -6
  79. package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts.map +1 -1
  80. package/dist/cli/ink-cli/components/ResourceAutocomplete.js +150 -41
  81. package/dist/cli/ink-cli/components/StatusBar.d.ts +3 -1
  82. package/dist/cli/ink-cli/components/StatusBar.d.ts.map +1 -1
  83. package/dist/cli/ink-cli/components/StatusBar.js +27 -7
  84. package/dist/cli/ink-cli/components/TodoPanel.js +1 -1
  85. package/dist/cli/ink-cli/components/chat/MessageItem.d.ts.map +1 -1
  86. package/dist/cli/ink-cli/components/chat/MessageItem.js +9 -5
  87. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.js +1 -1
  88. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts +3 -1
  89. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +1 -1
  90. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +3 -2
  91. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts +3 -1
  92. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +1 -1
  93. package/dist/cli/ink-cli/components/modes/StaticCLI.js +3 -2
  94. package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.js +1 -1
  95. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts.map +1 -1
  96. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.js +8 -4
  97. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.js +1 -1
  98. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.js +1 -1
  99. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts +1 -0
  100. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts.map +1 -1
  101. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.js +144 -41
  102. package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts +2 -1
  103. package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts.map +1 -1
  104. package/dist/cli/ink-cli/components/overlays/ToolBrowser.js +286 -44
  105. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts +9 -1
  106. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts.map +1 -1
  107. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.js +35 -9
  108. package/dist/cli/ink-cli/constants/tips.js +1 -1
  109. package/dist/cli/ink-cli/containers/InputContainer.d.ts +4 -0
  110. package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +1 -1
  111. package/dist/cli/ink-cli/containers/InputContainer.js +30 -8
  112. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts +2 -0
  113. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts.map +1 -1
  114. package/dist/cli/ink-cli/containers/OverlayContainer.js +215 -59
  115. package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts.map +1 -1
  116. package/dist/cli/ink-cli/hooks/useAgentEvents.js +73 -13
  117. package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +1 -1
  118. package/dist/cli/ink-cli/hooks/useCLIState.js +3 -0
  119. package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts.map +1 -1
  120. package/dist/cli/ink-cli/hooks/useInputOrchestrator.js +8 -0
  121. package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts.map +1 -1
  122. package/dist/cli/ink-cli/hooks/useTokenCounter.js +7 -4
  123. package/dist/cli/ink-cli/services/CommandService.d.ts +1 -1
  124. package/dist/cli/ink-cli/services/CommandService.d.ts.map +1 -1
  125. package/dist/cli/ink-cli/services/CommandService.js +2 -2
  126. package/dist/cli/ink-cli/services/processStream.d.ts +2 -2
  127. package/dist/cli/ink-cli/services/processStream.d.ts.map +1 -1
  128. package/dist/cli/ink-cli/services/processStream.js +55 -8
  129. package/dist/cli/ink-cli/state/initialState.d.ts.map +1 -1
  130. package/dist/cli/ink-cli/state/initialState.js +3 -0
  131. package/dist/cli/ink-cli/state/types.d.ts +11 -2
  132. package/dist/cli/ink-cli/state/types.d.ts.map +1 -1
  133. package/dist/cli/ink-cli/utils/llm-provider-display.d.ts +3 -0
  134. package/dist/cli/ink-cli/utils/llm-provider-display.d.ts.map +1 -0
  135. package/dist/cli/ink-cli/utils/llm-provider-display.js +22 -0
  136. package/dist/cli/ink-cli/utils/messageFormatting.d.ts +13 -9
  137. package/dist/cli/ink-cli/utils/messageFormatting.d.ts.map +1 -1
  138. package/dist/cli/ink-cli/utils/messageFormatting.js +106 -151
  139. package/dist/cli/ink-cli/utils/toolUtils.d.ts.map +1 -1
  140. package/dist/cli/ink-cli/utils/toolUtils.js +2 -9
  141. package/dist/cli/utils/config-validation.d.ts +11 -11
  142. package/dist/cli/utils/config-validation.d.ts.map +1 -1
  143. package/dist/cli/utils/config-validation.js +56 -290
  144. package/dist/cli/utils/dexto-auth-check.d.ts +7 -7
  145. package/dist/cli/utils/dexto-auth-check.d.ts.map +1 -1
  146. package/dist/cli/utils/dexto-auth-check.js +16 -16
  147. package/dist/cli/utils/image-store.d.ts +16 -0
  148. package/dist/cli/utils/image-store.d.ts.map +1 -0
  149. package/dist/cli/utils/image-store.js +289 -0
  150. package/dist/cli/utils/options.js +1 -1
  151. package/dist/cli/utils/provider-setup.d.ts +2 -2
  152. package/dist/cli/utils/provider-setup.d.ts.map +1 -1
  153. package/dist/cli/utils/provider-setup.js +10 -2
  154. package/dist/cli/utils/scaffolding-utils.d.ts +5 -0
  155. package/dist/cli/utils/scaffolding-utils.d.ts.map +1 -1
  156. package/dist/cli/utils/scaffolding-utils.js +46 -4
  157. package/dist/cli/utils/template-engine.d.ts +28 -16
  158. package/dist/cli/utils/template-engine.d.ts.map +1 -1
  159. package/dist/cli/utils/template-engine.js +339 -479
  160. package/dist/config/cli-overrides.d.ts +4 -3
  161. package/dist/config/cli-overrides.d.ts.map +1 -1
  162. package/dist/config/cli-overrides.js +8 -10
  163. package/dist/config/effective-llm.d.ts +4 -4
  164. package/dist/config/effective-llm.d.ts.map +1 -1
  165. package/dist/config/effective-llm.js +4 -4
  166. package/dist/index-main.d.ts +2 -0
  167. package/dist/index-main.d.ts.map +1 -0
  168. package/dist/index-main.js +1554 -0
  169. package/dist/index.js +2 -1580
  170. package/dist/utils/session-logger-factory.d.ts +3 -0
  171. package/dist/utils/session-logger-factory.d.ts.map +1 -0
  172. package/dist/utils/session-logger-factory.js +19 -0
  173. package/dist/webui/assets/{index-Dl3mj53P.js → index-DwtueA8l.js} +231 -231
  174. package/dist/webui/index.html +1 -1
  175. package/package.json +10 -7
  176. package/dist/cli/cli-subscriber.d.ts +0 -45
  177. package/dist/cli/cli-subscriber.d.ts.map +0 -1
  178. package/dist/cli/cli-subscriber.js +0 -204
@@ -4,6 +4,8 @@
4
4
  */
5
5
  import type { DextoAgent, InternalMessage } from '@dexto/core';
6
6
  import type { Message } from '../state/types.js';
7
+ export declare function normalizeToolName(toolName: string): string;
8
+ export declare function shouldHideTool(toolName: string | undefined): boolean;
7
9
  /**
8
10
  * Formats a skill invocation message for clean display.
9
11
  * Converts verbose <skill-invocation> blocks to clean /skill-name format.
@@ -42,16 +44,10 @@ export declare function formatPathForDisplay(absolutePath: string, maxWidth?: nu
42
44
  * 3. Add "…" in the middle
43
45
  */
44
46
  export declare function centerTruncatePath(filePath: string, maxWidth: number): string;
45
- /**
46
- * Gets a user-friendly display name for a tool.
47
- * Returns the friendly name if known, otherwise returns the original name
48
- * with any "internal--" prefix stripped.
49
- * MCP tools keep their server prefix for clarity (e.g., "mcp_server__tool").
50
- */
51
47
  export declare function getToolDisplayName(toolName: string): string;
52
48
  /**
53
49
  * Gets the tool type badge for display.
54
- * Returns: 'internal', MCP server name, or 'custom'
50
+ * Returns: 'local' or MCP server name.
55
51
  */
56
52
  export declare function getToolTypeBadge(toolName: string): string;
57
53
  /**
@@ -73,11 +69,15 @@ export interface FormattedToolHeader {
73
69
  *
74
70
  * Handles special cases like spawn_agent (uses agentId as display name).
75
71
  *
76
- * @param toolName - Raw tool name (may include prefixes like "custom--")
72
+ * @param toolName - Tool name (local tool id or `mcp--...`)
77
73
  * @param args - Tool arguments object
78
74
  * @returns Formatted header components and full string
79
75
  */
80
- export declare function formatToolHeader(toolName: string, args?: Record<string, unknown>): FormattedToolHeader;
76
+ export declare function formatToolHeader(options: {
77
+ toolName: string;
78
+ args: Record<string, unknown>;
79
+ toolDisplayName?: string;
80
+ }): FormattedToolHeader;
81
81
  /**
82
82
  * Formats tool arguments for display.
83
83
  * Format: ToolName(primary_arg) or ToolName(primary_arg, key: value)
@@ -117,6 +117,10 @@ export declare function createToolMessage(toolName: string): Message;
117
117
  * Formats a streaming placeholder message
118
118
  */
119
119
  export declare function createStreamingMessage(): Message;
120
+ /**
121
+ * Generates a preview of tool result content for display
122
+ */
123
+ export declare function formatToolResultPreview(result: string): string;
120
124
  /**
121
125
  * Converts session history messages to UI messages
122
126
  */
@@ -1 +1 @@
1
- {"version":3,"file":"messageFormatting.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/messageFormatting.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAyB,MAAM,aAAa,CAAC;AAEtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYpE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,CAmB1F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,GAAE,MAAW,EACrB,GAAG,GAAE,MAAsB,GAC5B,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAsFD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA6B3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8BzD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,mBAAmB,CA+CrB;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA0EhG;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,GAAE,MAAW,GACvB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CASvF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAQjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAO3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAQhD;AAqCD;;GAEG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,EAAE,MAAM,GAClB,OAAO,EAAE,CAqGX;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;;;;;;;;GAmB/E"}
1
+ {"version":3,"file":"messageFormatting.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/messageFormatting.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,23 @@
5
5
  import path from 'path';
6
6
  import os from 'os';
7
7
  import { isTextPart, isAssistantMessage, isToolMessage } from '@dexto/core';
8
+ const HIDDEN_TOOL_NAMES = new Set(['wait_for']);
9
+ export function normalizeToolName(toolName) {
10
+ if (toolName.startsWith('mcp--')) {
11
+ const trimmed = toolName.substring('mcp--'.length);
12
+ const parts = trimmed.split('--');
13
+ return parts.length >= 2 ? parts.slice(1).join('--') : trimmed;
14
+ }
15
+ return toolName;
16
+ }
17
+ export function shouldHideTool(toolName) {
18
+ if (!toolName) {
19
+ return false;
20
+ }
21
+ return HIDDEN_TOOL_NAMES.has(normalizeToolName(toolName));
22
+ }
23
+ const backgroundCompletionRegex = /<background-task-completion>[\s\S]*?<\/background-task-completion>/g;
24
+ const stripBackgroundCompletion = (text) => text.replace(backgroundCompletionRegex, '').replace('<background-task-completion>', '').trim();
8
25
  import { generateMessageId } from './idGenerator.js';
9
26
  /**
10
27
  * Regex to detect skill invocation messages.
@@ -114,112 +131,35 @@ export function centerTruncatePath(filePath, maxWidth) {
114
131
  // Filename itself is too long, end-truncate it
115
132
  return filename.slice(0, maxWidth - 1) + '…';
116
133
  }
117
- /**
118
- * Per-tool display configurations.
119
- * Each tool specifies exactly which arguments to show and how.
120
- */
121
- const TOOL_CONFIGS = {
122
- // File tools - show file_path as primary
123
- read_file: { displayName: 'Read', argsToShow: ['file_path'], primaryArg: 'file_path' },
124
- write_file: { displayName: 'Write', argsToShow: ['file_path'], primaryArg: 'file_path' },
125
- edit_file: { displayName: 'Update', argsToShow: ['file_path'], primaryArg: 'file_path' },
126
- // Search tools - show pattern as primary, path as secondary
127
- glob_files: {
128
- displayName: 'Find files',
129
- argsToShow: ['pattern', 'path'],
130
- primaryArg: 'pattern',
131
- },
132
- grep_content: {
133
- displayName: 'Search files',
134
- argsToShow: ['pattern', 'path'],
135
- primaryArg: 'pattern',
136
- },
137
- // Bash - show command only, skip description
138
- bash_exec: { displayName: 'Bash', argsToShow: ['command'], primaryArg: 'command' },
139
- bash_output: {
140
- displayName: 'BashOutput',
141
- argsToShow: ['process_id'],
142
- primaryArg: 'process_id',
143
- },
144
- kill_process: { displayName: 'Kill', argsToShow: ['process_id'], primaryArg: 'process_id' },
145
- // User interaction
146
- ask_user: { displayName: 'Ask', argsToShow: ['question'], primaryArg: 'question' },
147
- // Agent spawning - handled specially in formatToolHeader for dynamic agentId
148
- spawn_agent: { displayName: 'Agent', argsToShow: ['task'], primaryArg: 'task' },
149
- // Skill invocation - handled specially in formatToolHeader to show clean skill name
150
- invoke_skill: { displayName: 'Skill', argsToShow: ['skill'], primaryArg: 'skill' },
151
- plan_create: { displayName: 'Plan', argsToShow: [] },
152
- plan_read: { displayName: 'Plan', argsToShow: [] },
153
- plan_update: { displayName: 'Plan', argsToShow: [] },
154
- plan_review: { displayName: 'Plan', argsToShow: [] },
155
- todo_write: { displayName: 'UpdateTasks', argsToShow: [] },
156
- };
157
- /**
158
- * Gets the display config for a tool.
159
- * Handles internal-- prefix by stripping it before lookup.
160
- */
161
- function getToolConfig(toolName) {
162
- // Try direct lookup first
163
- if (TOOL_CONFIGS[toolName]) {
164
- return TOOL_CONFIGS[toolName];
165
- }
166
- // Strip internal-- prefix and try again
167
- if (toolName.startsWith('internal--')) {
168
- const baseName = toolName.replace('internal--', '');
169
- return TOOL_CONFIGS[baseName];
170
- }
171
- // Strip "custom--" prefix and try again
172
- if (toolName.startsWith('custom--')) {
173
- const baseName = toolName.replace('custom--', '');
174
- return TOOL_CONFIGS[baseName];
175
- }
176
- return undefined;
177
- }
178
134
  /**
179
135
  * Gets a user-friendly display name for a tool.
180
- * Returns the friendly name if known, otherwise returns the original name
181
- * with any "internal--" prefix stripped.
182
- * MCP tools keep their server prefix for clarity (e.g., "mcp_server__tool").
136
+ * Returns the friendly name if known, otherwise returns a title-cased version.
137
+ * MCP tools keep their server prefix for clarity (e.g., "mcp--filesystem--read_file").
183
138
  */
139
+ function toTitleCase(name) {
140
+ return name
141
+ .replace(/[_-]+/g, ' ')
142
+ .split(' ')
143
+ .filter(Boolean)
144
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
145
+ .join(' ');
146
+ }
184
147
  export function getToolDisplayName(toolName) {
185
- const config = getToolConfig(toolName);
186
- if (config) {
187
- return config.displayName;
188
- }
189
- // Strip "internal--" prefix for unknown internal tools
190
- if (toolName.startsWith('internal--')) {
191
- return toolName.replace('internal--', '');
192
- }
193
- // Strip "custom--" prefix for custom tools
194
- if (toolName.startsWith('custom--')) {
195
- return toolName.replace('custom--', '');
196
- }
197
- // MCP tools: strip mcp-- or mcp__ prefix and server name for clean display
148
+ // MCP tools: strip `mcp--` prefix and server name for clean display
198
149
  if (toolName.startsWith('mcp--')) {
199
150
  const parts = toolName.split('--');
200
151
  if (parts.length >= 3) {
201
- return parts.slice(2).join('--');
152
+ return toTitleCase(parts.slice(2).join('--'));
202
153
  }
203
- return toolName.substring(5);
154
+ return toTitleCase(toolName.substring(5));
204
155
  }
205
- if (toolName.startsWith('mcp__')) {
206
- const parts = toolName.substring(5).split('__');
207
- if (parts.length >= 2) {
208
- return parts.slice(1).join('__');
209
- }
210
- return toolName.substring(5);
211
- }
212
- return toolName;
156
+ return toTitleCase(toolName);
213
157
  }
214
158
  /**
215
159
  * Gets the tool type badge for display.
216
- * Returns: 'internal', MCP server name, or 'custom'
160
+ * Returns: 'local' or MCP server name.
217
161
  */
218
162
  export function getToolTypeBadge(toolName) {
219
- // Internal tools
220
- if (toolName.startsWith('internal--') || toolName.startsWith('internal__')) {
221
- return 'internal';
222
- }
223
163
  // MCP tools with server name
224
164
  if (toolName.startsWith('mcp--')) {
225
165
  const parts = toolName.split('--');
@@ -228,19 +168,7 @@ export function getToolTypeBadge(toolName) {
228
168
  }
229
169
  return 'MCP';
230
170
  }
231
- if (toolName.startsWith('mcp__')) {
232
- const parts = toolName.substring(5).split('__');
233
- if (parts.length >= 2 && parts[0]) {
234
- return `MCP: ${parts[0]}`; // Format: 'MCP: servername'
235
- }
236
- return 'MCP';
237
- }
238
- // Custom tools
239
- if (toolName.startsWith('custom--')) {
240
- return 'custom';
241
- }
242
- // Unknown - likely custom
243
- return 'custom';
171
+ return 'local';
244
172
  }
245
173
  /**
246
174
  * Formats a tool call header for consistent display across CLI.
@@ -248,25 +176,26 @@ export function getToolTypeBadge(toolName) {
248
176
  *
249
177
  * Handles special cases like spawn_agent (uses agentId as display name).
250
178
  *
251
- * @param toolName - Raw tool name (may include prefixes like "custom--")
179
+ * @param toolName - Tool name (local tool id or `mcp--...`)
252
180
  * @param args - Tool arguments object
253
181
  * @returns Formatted header components and full string
254
182
  */
255
- export function formatToolHeader(toolName, args = {}) {
256
- let displayName = getToolDisplayName(toolName);
183
+ export function formatToolHeader(options) {
184
+ const { toolName, args, toolDisplayName } = options;
185
+ let displayName = toolDisplayName ?? getToolDisplayName(toolName);
257
186
  const argsFormatted = formatToolArgsForDisplay(toolName, args);
258
187
  const badge = getToolTypeBadge(toolName);
259
- // Normalize tool name to handle all prefixes (internal--, custom--)
260
- const normalizedToolName = toolName.replace(/^(?:internal--|custom--)/, '');
188
+ // TODO: Move tool-specific header formatting into tool display metadata, so the CLI doesn't
189
+ // need to special-case tool IDs here.
261
190
  // Special handling for spawn_agent: use agentId as display name
262
- const isSpawnAgent = normalizedToolName === 'spawn_agent';
191
+ const isSpawnAgent = toolName === 'spawn_agent';
263
192
  if (isSpawnAgent && args.agentId) {
264
193
  const agentId = String(args.agentId);
265
194
  const agentLabel = agentId.replace(/-agent$/, '');
266
195
  displayName = agentLabel.charAt(0).toUpperCase() + agentLabel.slice(1);
267
196
  }
268
197
  // Special handling for invoke_skill: show skill as /skill-name
269
- const isInvokeSkill = normalizedToolName === 'invoke_skill';
198
+ const isInvokeSkill = toolName === 'invoke_skill';
270
199
  if (isInvokeSkill && args.skill) {
271
200
  const skillName = String(args.skill);
272
201
  // Extract display name from skill identifier (e.g., "config:test-fork" -> "test-fork")
@@ -332,7 +261,6 @@ export function formatToolArgsForDisplay(toolName, args) {
332
261
  const entries = Object.entries(args);
333
262
  if (entries.length === 0)
334
263
  return '';
335
- const config = getToolConfig(toolName);
336
264
  const parts = [];
337
265
  /**
338
266
  * Format a single argument value for display
@@ -360,42 +288,21 @@ export function formatToolArgsForDisplay(toolName, args) {
360
288
  // Other args: simple truncation
361
289
  return strValue.length > 40 ? strValue.slice(0, 37) + '...' : strValue;
362
290
  };
363
- if (config) {
364
- // Use tool-specific config
365
- for (const argName of config.argsToShow) {
366
- if (!(argName in args))
367
- continue;
368
- if (argName === 'description')
369
- continue; // Skip description field
370
- if (parts.length >= 3)
371
- break;
372
- const formattedValue = formatArgValue(argName, args[argName]);
373
- if (argName === config.primaryArg) {
374
- // Primary arg without key name
375
- parts.unshift(formattedValue);
376
- }
377
- else {
378
- // Secondary args with key name
379
- parts.push(`${argName}: ${formattedValue}`);
380
- }
291
+ // Generic formatting for all tools:
292
+ // - Prefer common "primary" args (path/command/pattern/question/etc.)
293
+ // - Show up to 3 args total
294
+ // - Skip description (it's shown separately in the UI when present)
295
+ for (const [key, value] of entries) {
296
+ if (key === 'description')
297
+ continue;
298
+ if (parts.length >= 3)
299
+ break;
300
+ const formattedValue = formatArgValue(key, value);
301
+ if (FALLBACK_PRIMARY_ARGS.has(key) || PATH_ARGS.has(key)) {
302
+ parts.unshift(formattedValue);
381
303
  }
382
- }
383
- else {
384
- // Fallback for unknown tools (MCP, etc.)
385
- for (const [key, value] of entries) {
386
- if (key === 'description')
387
- continue; // Skip description field
388
- if (parts.length >= 3)
389
- break;
390
- const formattedValue = formatArgValue(key, value);
391
- if (FALLBACK_PRIMARY_ARGS.has(key) || PATH_ARGS.has(key)) {
392
- // Primary arg without key name
393
- parts.unshift(formattedValue);
394
- }
395
- else {
396
- // Other args with key name
397
- parts.push(`${key}: ${formattedValue}`);
398
- }
304
+ else {
305
+ parts.push(`${key}: ${formattedValue}`);
399
306
  }
400
307
  }
401
308
  return parts.join(', ');
@@ -462,7 +369,7 @@ export function createErrorMessage(error) {
462
369
  return {
463
370
  id: generateMessageId('error'),
464
371
  role: 'system',
465
- content: `❌ Error: ${content}`,
372
+ content: `Error: ${content}`,
466
373
  timestamp: new Date(),
467
374
  };
468
375
  }
@@ -504,10 +411,53 @@ function extractTextContent(content) {
504
411
  /**
505
412
  * Generates a preview of tool result content for display
506
413
  */
414
+ export function formatToolResultPreview(result) {
415
+ try {
416
+ const parsed = JSON.parse(result);
417
+ if (parsed.status === 'running' && parsed.taskId) {
418
+ return `Background task started (id: ${parsed.taskId})`;
419
+ }
420
+ if (parsed.found !== undefined && parsed.taskId) {
421
+ return parsed.found
422
+ ? `Task ${parsed.taskId} status: ${parsed.status ?? 'unknown'}`
423
+ : `Task ${parsed.taskId} not found`;
424
+ }
425
+ if (Array.isArray(parsed.tasks) && typeof parsed.count === 'number') {
426
+ const running = parsed.tasks.filter((task) => task.status === 'running').length;
427
+ return `Tasks: ${parsed.count} total${running > 0 ? ` • ${running} running` : ''}`;
428
+ }
429
+ }
430
+ catch {
431
+ // fall through
432
+ }
433
+ const maxChars = 200;
434
+ if (result.length <= maxChars) {
435
+ return result;
436
+ }
437
+ return result.slice(0, maxChars) + '…';
438
+ }
507
439
  function generateToolResultPreview(content) {
508
440
  const textContent = extractTextContent(content);
509
441
  if (!textContent)
510
442
  return '';
443
+ try {
444
+ const parsed = JSON.parse(textContent);
445
+ if (parsed.status === 'running' && parsed.taskId) {
446
+ return `Background task started (id: ${parsed.taskId})`;
447
+ }
448
+ if (Array.isArray(parsed.tasks) && typeof parsed.count === 'number') {
449
+ const running = parsed.tasks.filter((task) => task.status === 'running').length;
450
+ return `Tasks: ${parsed.count} total${running > 0 ? ` • ${running} running` : ''}`;
451
+ }
452
+ if (parsed.found !== undefined && parsed.taskId) {
453
+ return parsed.found
454
+ ? `Task ${parsed.taskId} status: ${parsed.status ?? 'unknown'}`
455
+ : `Task ${parsed.taskId} not found`;
456
+ }
457
+ }
458
+ catch {
459
+ // Not JSON; fall through to raw text preview
460
+ }
511
461
  const lines = textContent.split('\n');
512
462
  const previewLines = lines.slice(0, 5);
513
463
  let preview = previewLines.join('\n');
@@ -538,10 +488,13 @@ export function convertHistoryToUIMessages(history, sessionId) {
538
488
  const timestamp = new Date(msg.timestamp ?? Date.now() - (history.length - index) * 1000);
539
489
  // Handle tool messages specially
540
490
  if (isToolMessage(msg)) {
491
+ if (shouldHideTool(msg.name)) {
492
+ return;
493
+ }
541
494
  // Look up the original tool call to get args
542
495
  const toolCall = toolCallMap.get(msg.toolCallId);
543
496
  // Format tool name
544
- const displayName = getToolDisplayName(msg.name);
497
+ const displayName = msg.toolDisplayName ?? getToolDisplayName(msg.name);
545
498
  // Format args if we have them
546
499
  let toolContent = displayName;
547
500
  if (toolCall) {
@@ -582,7 +535,8 @@ export function convertHistoryToUIMessages(history, sessionId) {
582
535
  }
583
536
  // Handle assistant messages - skip those with only tool calls (no text content)
584
537
  if (isAssistantMessage(msg)) {
585
- const textContent = extractTextContent(msg.content);
538
+ let textContent = extractTextContent(msg.content);
539
+ textContent = stripBackgroundCompletion(textContent);
586
540
  // Skip if no text content (message was just tool calls)
587
541
  if (!textContent)
588
542
  return;
@@ -596,6 +550,7 @@ export function convertHistoryToUIMessages(history, sessionId) {
596
550
  }
597
551
  // Handle other messages (user, system)
598
552
  let textContent = extractTextContent(msg.content);
553
+ textContent = stripBackgroundCompletion(textContent);
599
554
  // Skip empty messages
600
555
  if (!textContent)
601
556
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"toolUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/toolUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CASrE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAMtE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhF"}
1
+ {"version":3,"file":"toolUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink-cli/utils/toolUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEtE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhF"}
@@ -6,12 +6,7 @@
6
6
  * Used for "accept all edits" mode which auto-approves these tools.
7
7
  */
8
8
  export function isEditWriteTool(toolName) {
9
- return (toolName === 'internal--edit_file' ||
10
- toolName === 'internal--write_file' ||
11
- toolName === 'custom--write_file' ||
12
- toolName === 'custom--edit_file' ||
13
- toolName === 'edit_file' ||
14
- toolName === 'write_file');
9
+ return toolName === 'edit_file' || toolName === 'write_file';
15
10
  }
16
11
  /**
17
12
  * Check if a tool is a plan update tool.
@@ -19,9 +14,7 @@ export function isEditWriteTool(toolName) {
19
14
  * (typically marking tasks as complete during implementation).
20
15
  */
21
16
  export function isPlanUpdateTool(toolName) {
22
- return (toolName === 'plan_update' ||
23
- toolName === 'custom--plan_update' ||
24
- toolName === 'internal--plan_update');
17
+ return toolName === 'plan_update';
25
18
  }
26
19
  /**
27
20
  * Check if a tool should be auto-approved in "accept all edits" mode.
@@ -1,13 +1,18 @@
1
- import { type AgentConfig, type ValidatedAgentConfig, type LLMValidationOptions } from '@dexto/core';
1
+ import { type AgentConfig, type ValidatedAgentConfig } from '@dexto/agent-config';
2
2
  export interface ValidationResult {
3
3
  success: boolean;
4
4
  config?: ValidatedAgentConfig;
5
5
  errors?: string[];
6
+ warnings?: string[];
6
7
  skipped?: boolean;
7
8
  }
9
+ export interface ValidationOptions {
10
+ agentPath?: string;
11
+ credentialPolicy?: 'warn' | 'error' | 'ignore';
12
+ }
8
13
  /**
9
14
  * Validates agent config with optional interactive fixes for user experience.
10
- * Uses schema parsing to detect API key issues and provides targeted setup.
15
+ * Uses schema parsing for structural validation and performs targeted credential checks.
11
16
  * Returns validated config with all defaults applied.
12
17
  *
13
18
  * IMPORTANT: This function NEVER exits the process. It always returns a result
@@ -15,16 +20,11 @@ export interface ValidationResult {
15
20
  *
16
21
  * @param config - The agent configuration to validate
17
22
  * @param interactive - Whether to allow interactive prompts to fix issues
18
- * @param validationOptions - Validation strictness options
19
- * @param validationOptions.strict - When true (default), enforces API key requirements.
20
- * When false, allows missing credentials for interactive config.
23
+ * @param options.credentialPolicy - Behavior when credentials are missing (warn, error, ignore)
24
+ * @param options.agentPath - Agent config path (used for manual-edit instructions).
21
25
  */
22
- export declare function validateAgentConfig(config: AgentConfig, interactive?: boolean, validationOptions?: LLMValidationOptions & {
23
- agentPath?: string;
24
- }): Promise<ValidationResult>;
26
+ export declare function validateAgentConfig(config: AgentConfig, interactive?: boolean, options?: ValidationOptions): Promise<ValidationResult>;
25
27
  /**
26
- * Legacy function for backwards compatibility
27
- * @deprecated Use validateAgentConfig with result handling instead
28
+ * Note: validateAgentConfig never exits. Callers own exit behavior.
28
29
  */
29
- export declare function validateAgentConfigOrExit(config: AgentConfig, interactive?: boolean): Promise<ValidatedAgentConfig>;
30
30
  //# sourceMappingURL=config-validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-validation.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/config-validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAGH,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC5B,MAAM,aAAa,CAAC;AAYrB,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,OAAe,EAC5B,iBAAiB,CAAC,EAAE,oBAAoB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClE,OAAO,CAAC,gBAAgB,CAAC,CAyC3B;AAkbD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,OAAe,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAgC/B"}
1
+ {"version":3,"file":"config-validation.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/config-validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAEH,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAC5B,MAAM,qBAAqB,CAAC;AAW7B,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CAClD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,OAAe,EAC5B,OAAO,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAsC3B;AAsLD;;GAEG"}