@defai.digital/ax-cli 3.11.0 → 3.11.4
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 +17 -158
- package/dist/sdk/version.d.ts +1 -1
- package/dist/sdk/version.js +1 -1
- package/dist/sdk/version.js.map +1 -1
- package/dist/ui/components/chat-history.js +102 -31
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/diff-renderer.js +8 -4
- package/dist/ui/components/diff-renderer.js.map +1 -1
- package/dist/ui/components/keyboard-help.js +11 -5
- package/dist/ui/components/keyboard-help.js.map +1 -1
- package/dist/ui/components/keyboard-hints.js +6 -3
- package/dist/ui/components/keyboard-hints.js.map +1 -1
- package/dist/ui/components/reasoning-display.js +9 -6
- package/dist/ui/components/reasoning-display.js.map +1 -1
- package/dist/ui/components/tool-group-display.js +86 -21
- package/dist/ui/components/tool-group-display.js.map +1 -1
- package/dist/ui/hooks/use-enhanced-input.d.ts +1 -0
- package/dist/ui/hooks/use-enhanced-input.js +105 -15
- package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
- package/dist/ui/utils/change-summarizer.js +84 -19
- package/dist/ui/utils/change-summarizer.js.map +1 -1
- package/dist/ui/utils/markdown-renderer.js +11 -5
- package/dist/ui/utils/markdown-renderer.js.map +1 -1
- package/dist/ui/utils/semantic-action-detector.js +51 -7
- package/dist/ui/utils/semantic-action-detector.js.map +1 -1
- package/dist/ui/utils/tool-grouper.d.ts +2 -0
- package/dist/ui/utils/tool-grouper.js +184 -20
- package/dist/ui/utils/tool-grouper.js.map +1 -1
- package/dist/utils/paste-utils.js +29 -5
- package/dist/utils/paste-utils.js.map +1 -1
- package/node_modules/@ax-cli/schemas/package.json +1 -1
- package/package.json +1 -1
- package/packages/schemas/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-summarizer.js","sourceRoot":"","sources":["../../../src/ui/utils/change-summarizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,8CAA8C;IAC9C,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CACrC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAK,oBAAoB,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"change-summarizer.js","sourceRoot":"","sources":["../../../src/ui/utils/change-summarizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,21 @@ marked.setOptions({
|
|
|
8
8
|
});
|
|
9
9
|
export function MarkdownRenderer({ content }) {
|
|
10
10
|
try {
|
|
11
|
+
// BUG FIX: Handle empty/whitespace-only content early to avoid unnecessary parsing
|
|
12
|
+
if (!content || !content.trim()) {
|
|
13
|
+
return React.createElement(Text, null, content || '');
|
|
14
|
+
}
|
|
11
15
|
// Use marked.parse for synchronous parsing
|
|
12
16
|
const result = marked.parse(content);
|
|
13
|
-
// Handle both sync and async results
|
|
14
|
-
|
|
17
|
+
// Handle both sync and async results - Promise check for marked v5+
|
|
18
|
+
// BUG FIX: Check for Promise explicitly since typeof Promise is 'object'
|
|
19
|
+
const rendered = typeof result === 'string' ? result
|
|
20
|
+
: (result && typeof result === 'object' && 'then' in result) ? content
|
|
21
|
+
: content;
|
|
15
22
|
return React.createElement(Text, null, rendered);
|
|
16
23
|
}
|
|
17
|
-
catch
|
|
18
|
-
//
|
|
19
|
-
console.error('Markdown rendering error:', error);
|
|
24
|
+
catch {
|
|
25
|
+
// BUG FIX: Silent fallback to plain text - don't clutter CLI with errors
|
|
20
26
|
return React.createElement(Text, null, content);
|
|
21
27
|
}
|
|
22
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-renderer.js","sourceRoot":"","sources":["../../../src/ui/utils/markdown-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAE/C,sEAAsE;AACtE,MAAM,CAAC,UAAU,CAAC;IAChB,QAAQ,EAAE,IAAK,gBAAwB,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAuB;IAC/D,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,
|
|
1
|
+
{"version":3,"file":"markdown-renderer.js","sourceRoot":"","sources":["../../../src/ui/utils/markdown-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAE/C,sEAAsE;AACtE,MAAM,CAAC,UAAU,CAAC;IAChB,QAAQ,EAAE,IAAK,gBAAwB,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAuB;IAC/D,IAAI,CAAC;QACH,mFAAmF;QACnF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,OAAO,oBAAC,IAAI,QAAE,OAAO,IAAI,EAAE,CAAQ,CAAC;QACtC,CAAC;QAED,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,oEAAoE;QACpE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM;YAClD,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO;gBACtE,CAAC,CAAC,OAAO,CAAC;QACZ,OAAO,oBAAC,IAAI,QAAE,QAAQ,CAAQ,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,OAAO,oBAAC,IAAI,QAAE,OAAO,CAAQ,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -98,7 +98,8 @@ export function detectSingleAction(entry) {
|
|
|
98
98
|
return SemanticAction.Exploring;
|
|
99
99
|
}
|
|
100
100
|
// Edit operations
|
|
101
|
-
|
|
101
|
+
// BUG FIX: Added multi_edit tool support
|
|
102
|
+
if (toolName === 'str_replace_editor' || toolName === 'multi_edit') {
|
|
102
103
|
const filePath = args.path || args.file_path || '';
|
|
103
104
|
if (CONFIG_FILE_PATTERNS.test(filePath)) {
|
|
104
105
|
return SemanticAction.Configuring;
|
|
@@ -124,10 +125,38 @@ export function detectSingleAction(entry) {
|
|
|
124
125
|
}
|
|
125
126
|
return SemanticAction.Unknown;
|
|
126
127
|
}
|
|
128
|
+
// BUG FIX: Handle bash_output tool for background task monitoring
|
|
129
|
+
// This tool checks output from background bash commands
|
|
130
|
+
if (toolName === 'bash_output') {
|
|
131
|
+
return SemanticAction.Unknown; // Will be grouped with parent bash action
|
|
132
|
+
}
|
|
127
133
|
// Analysis tools
|
|
128
134
|
if (toolName === 'analyze_architecture' || toolName === 'validate_best_practices') {
|
|
129
135
|
return SemanticAction.Analyzing;
|
|
130
136
|
}
|
|
137
|
+
// BUG FIX: Handle MCP tools by inferring action from tool name patterns
|
|
138
|
+
if (toolName.startsWith('mcp__')) {
|
|
139
|
+
// Extract the actual tool name part (mcp__server__toolname → toolname)
|
|
140
|
+
const parts = toolName.split('__');
|
|
141
|
+
const actualTool = parts.length >= 3 ? parts.slice(2).join('__').toLowerCase() : '';
|
|
142
|
+
// Infer action from MCP tool name patterns
|
|
143
|
+
if (actualTool.includes('read') || actualTool.includes('get') || actualTool.includes('list') || actualTool.includes('fetch')) {
|
|
144
|
+
return SemanticAction.Exploring;
|
|
145
|
+
}
|
|
146
|
+
if (actualTool.includes('write') || actualTool.includes('edit') || actualTool.includes('update') || actualTool.includes('create')) {
|
|
147
|
+
return SemanticAction.Implementing;
|
|
148
|
+
}
|
|
149
|
+
if (actualTool.includes('search') || actualTool.includes('find') || actualTool.includes('query')) {
|
|
150
|
+
return SemanticAction.Searching;
|
|
151
|
+
}
|
|
152
|
+
if (actualTool.includes('test') || actualTool.includes('check') || actualTool.includes('validate')) {
|
|
153
|
+
return SemanticAction.Testing;
|
|
154
|
+
}
|
|
155
|
+
if (actualTool.includes('build') || actualTool.includes('compile')) {
|
|
156
|
+
return SemanticAction.Building;
|
|
157
|
+
}
|
|
158
|
+
// Default MCP operations to Unknown (they'll use resource-based grouping)
|
|
159
|
+
}
|
|
131
160
|
return SemanticAction.Unknown;
|
|
132
161
|
}
|
|
133
162
|
/**
|
|
@@ -168,7 +197,8 @@ export function detectSemanticAction(entries) {
|
|
|
168
197
|
const editPaths = new Set();
|
|
169
198
|
for (const entry of entries) {
|
|
170
199
|
const toolName = entry.toolCall?.function?.name;
|
|
171
|
-
|
|
200
|
+
// BUG FIX: Include multi_edit in refactoring detection
|
|
201
|
+
if (toolName === 'str_replace_editor' || toolName === 'multi_edit') {
|
|
172
202
|
const args = parseToolArgs(entry);
|
|
173
203
|
const filePath = args.path || args.file_path || '';
|
|
174
204
|
if (filePath)
|
|
@@ -218,7 +248,8 @@ export function isCompatibleTransition(from, to) {
|
|
|
218
248
|
return true;
|
|
219
249
|
if (from === SemanticAction.Unknown || to === SemanticAction.Unknown)
|
|
220
250
|
return false;
|
|
221
|
-
|
|
251
|
+
// BUG FIX: Use nullish coalescing for safer fallback when action key doesn't exist
|
|
252
|
+
const compatibleActions = COMPATIBLE_TRANSITIONS[from] ?? [];
|
|
222
253
|
return compatibleActions.includes(to);
|
|
223
254
|
}
|
|
224
255
|
/**
|
|
@@ -235,9 +266,12 @@ export function formatActionWithCounts(action, counts) {
|
|
|
235
266
|
const parts = [];
|
|
236
267
|
// For exploring, show file count
|
|
237
268
|
if (action === SemanticAction.Exploring || action === SemanticAction.Searching) {
|
|
238
|
-
|
|
239
|
-
if (
|
|
240
|
-
parts.push(`${
|
|
269
|
+
// BUG FIX: Show separate counts for reads and searches instead of mislabeling
|
|
270
|
+
if (counts.reads > 0) {
|
|
271
|
+
parts.push(`${counts.reads} read${counts.reads > 1 ? 's' : ''}`);
|
|
272
|
+
}
|
|
273
|
+
if (counts.searches > 0) {
|
|
274
|
+
parts.push(`${counts.searches} search${counts.searches > 1 ? 'es' : ''}`);
|
|
241
275
|
}
|
|
242
276
|
}
|
|
243
277
|
// For implementing/refactoring, show edits and creates
|
|
@@ -262,9 +296,19 @@ export function formatActionWithCounts(action, counts) {
|
|
|
262
296
|
parts.push(`${total} file${total > 1 ? 's' : ''}`);
|
|
263
297
|
}
|
|
264
298
|
}
|
|
299
|
+
// BUG FIX: For analyzing, show file count analyzed
|
|
300
|
+
if (action === SemanticAction.Analyzing) {
|
|
301
|
+
if (counts.files > 0) {
|
|
302
|
+
parts.push(`${counts.files} file${counts.files > 1 ? 's' : ''}`);
|
|
303
|
+
}
|
|
304
|
+
else if (counts.reads > 0) {
|
|
305
|
+
parts.push(`${counts.reads} file${counts.reads > 1 ? 's' : ''}`);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
265
308
|
// For unknown, show total operations
|
|
266
309
|
if (action === SemanticAction.Unknown && parts.length === 0) {
|
|
267
|
-
|
|
310
|
+
// BUG FIX: Include searches in total count
|
|
311
|
+
const total = counts.reads + counts.edits + counts.creates + counts.commands + counts.searches;
|
|
268
312
|
if (total > 0) {
|
|
269
313
|
parts.push(`${total} operation${total > 1 ? 's' : ''}`);
|
|
270
314
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-action-detector.js","sourceRoot":"","sources":["../../../src/ui/utils/semantic-action-detector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"semantic-action-detector.js","sourceRoot":"","sources":["../../../src/ui/utils/semantic-action-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,8 @@ export interface ToolGroup {
|
|
|
40
40
|
resources?: string[];
|
|
41
41
|
/** Whether this is a semantic group (vs resource-based) */
|
|
42
42
|
isSemanticGroup?: boolean;
|
|
43
|
+
/** Whether all operations in the group have completed (have tool_result) */
|
|
44
|
+
isComplete?: boolean;
|
|
43
45
|
}
|
|
44
46
|
/**
|
|
45
47
|
* Union type for grouped or individual entries
|
|
@@ -10,6 +10,18 @@ import { UI_CONFIG, CACHE_CONFIG } from '../../constants.js';
|
|
|
10
10
|
import { SemanticAction, detectSingleAction, detectSemanticAction, isCompatibleTransition, formatActionWithCounts, } from './semantic-action-detector.js';
|
|
11
11
|
// Re-export SemanticAction for consumers
|
|
12
12
|
export { SemanticAction } from './semantic-action-detector.js';
|
|
13
|
+
/**
|
|
14
|
+
* Simple hash function for cache key fallback
|
|
15
|
+
* Uses djb2 algorithm - fast and produces reasonable distribution
|
|
16
|
+
*/
|
|
17
|
+
function simpleHash(str) {
|
|
18
|
+
let hash = 5381;
|
|
19
|
+
for (let i = 0; i < str.length; i++) {
|
|
20
|
+
hash = ((hash << 5) + hash) + str.charCodeAt(i);
|
|
21
|
+
hash = hash & hash; // Convert to 32-bit integer
|
|
22
|
+
}
|
|
23
|
+
return (hash >>> 0).toString(16); // Convert to unsigned and hex
|
|
24
|
+
}
|
|
13
25
|
/**
|
|
14
26
|
* Cache for parsed tool arguments to avoid redundant JSON.parse calls
|
|
15
27
|
* Key: toolCall.id (unique per tool call)
|
|
@@ -77,6 +89,9 @@ function extractErrorSummary(error) {
|
|
|
77
89
|
return undefined;
|
|
78
90
|
// Get first line only
|
|
79
91
|
const firstLine = error.split('\n')[0].trim();
|
|
92
|
+
// BUG FIX: Return undefined if first line is empty after trim
|
|
93
|
+
if (!firstLine)
|
|
94
|
+
return undefined;
|
|
80
95
|
// Truncate if too long (80 chars max for display)
|
|
81
96
|
if (firstLine.length > 80) {
|
|
82
97
|
return firstLine.substring(0, 77) + '...';
|
|
@@ -97,11 +112,14 @@ function getResourceFromToolCall(entry) {
|
|
|
97
112
|
if (!argsStr)
|
|
98
113
|
return '';
|
|
99
114
|
// Use toolCall.id for caching (unique per call)
|
|
100
|
-
//
|
|
101
|
-
|
|
115
|
+
// BUG FIX: Improved fallback key to use tool name + args length + hash of full args
|
|
116
|
+
// to reduce collision risk (previously only used first 50 chars)
|
|
117
|
+
const toolCallId = entry.toolCall?.id ||
|
|
118
|
+
`fallback:${toolName}:${argsStr.length}:${simpleHash(argsStr)}`;
|
|
102
119
|
const args = parseToolArguments(toolCallId, argsStr);
|
|
103
120
|
// File operations
|
|
104
|
-
|
|
121
|
+
// BUG FIX: Added multi_edit and read_file tool support
|
|
122
|
+
if (toolName === 'view_file' || toolName === 'read_file' || toolName === 'str_replace_editor' || toolName === 'create_file' || toolName === 'multi_edit') {
|
|
105
123
|
return args.path || args.file_path || '';
|
|
106
124
|
}
|
|
107
125
|
// Search operations
|
|
@@ -109,7 +127,8 @@ function getResourceFromToolCall(entry) {
|
|
|
109
127
|
return `search:${args.query || ''}`;
|
|
110
128
|
}
|
|
111
129
|
// Bash operations
|
|
112
|
-
|
|
130
|
+
// BUG FIX: Handle both 'bash' and 'execute_bash' tool names
|
|
131
|
+
if (toolName === 'bash' || toolName === 'execute_bash') {
|
|
113
132
|
const cmd = args.command || '';
|
|
114
133
|
// Group by command type (git, npm, etc)
|
|
115
134
|
// Handle empty/whitespace commands by trimming first
|
|
@@ -139,22 +158,40 @@ function getResourceFromToolCall(entry) {
|
|
|
139
158
|
const path = args.path || '';
|
|
140
159
|
return path ? `validation:${path}` : 'validation:project';
|
|
141
160
|
}
|
|
161
|
+
// BUG FIX: Handle MCP tools (mcp__servername__toolname format)
|
|
162
|
+
if (toolName.startsWith('mcp__')) {
|
|
163
|
+
// Extract server name for grouping MCP operations by server
|
|
164
|
+
const parts = toolName.split('__');
|
|
165
|
+
const serverName = parts.length >= 2 ? parts[1] : 'unknown';
|
|
166
|
+
// Try to extract a resource from common argument patterns
|
|
167
|
+
const resource = args.path || args.file_path ||
|
|
168
|
+
args.query || args.uri ||
|
|
169
|
+
args.url || '';
|
|
170
|
+
return resource ? `mcp:${serverName}:${resource}` : `mcp:${serverName}`;
|
|
171
|
+
}
|
|
142
172
|
return '';
|
|
143
173
|
}
|
|
144
174
|
/**
|
|
145
175
|
* Determine group type based on tool name
|
|
146
176
|
*/
|
|
147
177
|
function getGroupType(toolName) {
|
|
148
|
-
|
|
178
|
+
// BUG FIX: Handle both 'bash' and 'execute_bash' tool names
|
|
179
|
+
if (toolName === 'bash' || toolName === 'execute_bash' || toolName === 'bash_output')
|
|
149
180
|
return 'bash';
|
|
150
181
|
if (toolName === 'search')
|
|
151
182
|
return 'search';
|
|
152
183
|
if (toolName === 'create_todo_list' || toolName === 'update_todo_list')
|
|
153
184
|
return 'todo';
|
|
154
|
-
|
|
185
|
+
// BUG FIX: Added multi_edit and read_file tool support
|
|
186
|
+
if (toolName === 'view_file' || toolName === 'read_file' || toolName === 'str_replace_editor' || toolName === 'create_file' || toolName === 'multi_edit')
|
|
155
187
|
return 'file';
|
|
156
188
|
if (toolName === 'analyze_architecture' || toolName === 'validate_best_practices')
|
|
157
189
|
return 'analysis';
|
|
190
|
+
// BUG FIX: Handle MCP tools - group as 'mixed' but allow proper resource-based grouping
|
|
191
|
+
// MCP tools have varied purposes so we can't assign a specific type, but they will still
|
|
192
|
+
// group by server+resource via getResourceFromToolCall
|
|
193
|
+
if (toolName.startsWith('mcp__'))
|
|
194
|
+
return 'mixed';
|
|
158
195
|
return 'mixed';
|
|
159
196
|
}
|
|
160
197
|
/**
|
|
@@ -183,8 +220,10 @@ function shouldGroupByResource(current, previous, groupSize, maxGroupSize, timeW
|
|
|
183
220
|
return false;
|
|
184
221
|
}
|
|
185
222
|
const timeDiff = currentTime - previousTime;
|
|
186
|
-
//
|
|
187
|
-
|
|
223
|
+
// BUG FIX: Allow zero time difference (same timestamp) and use absolute value
|
|
224
|
+
// for time window check. Tool operations can have identical timestamps when
|
|
225
|
+
// batched together, and order in the entries array matters more than timestamp.
|
|
226
|
+
if (Math.abs(timeDiff) > timeWindow) {
|
|
188
227
|
return false;
|
|
189
228
|
}
|
|
190
229
|
// Must operate on the same resource
|
|
@@ -219,8 +258,9 @@ function shouldGroupSemantically(current, previous, groupSize, maxGroupSize, tim
|
|
|
219
258
|
return false;
|
|
220
259
|
}
|
|
221
260
|
const timeDiff = currentTime - previousTime;
|
|
261
|
+
// BUG FIX: Use absolute value for time window check (consistent with resource-based grouping)
|
|
222
262
|
// Semantic grouping uses a larger time window (2x)
|
|
223
|
-
if (timeDiff
|
|
263
|
+
if (Math.abs(timeDiff) > timeWindow * 2) {
|
|
224
264
|
return false;
|
|
225
265
|
}
|
|
226
266
|
// Check semantic compatibility
|
|
@@ -260,17 +300,103 @@ export function groupConsecutiveTools(entries, options = {}) {
|
|
|
260
300
|
const effectiveMaxGroupSize = semanticGrouping ? maxSemanticGroupSize : maxGroupSize;
|
|
261
301
|
const result = [];
|
|
262
302
|
let currentGroup = null;
|
|
303
|
+
// Track tool call IDs we've already seen to avoid duplicating tool_call/tool_result pairs
|
|
304
|
+
const seenToolCallIds = new Set();
|
|
263
305
|
for (const entry of entries) {
|
|
264
306
|
// Non-tool entries always break the group
|
|
265
307
|
if (entry.type !== 'tool_call' && entry.type !== 'tool_result') {
|
|
266
308
|
if (currentGroup) {
|
|
267
309
|
finalizeGroup(currentGroup);
|
|
268
|
-
|
|
310
|
+
// BUG FIX: Don't wrap single-item groups - return the entry directly
|
|
311
|
+
if (currentGroup.operations.length === 1) {
|
|
312
|
+
result.push(currentGroup.operations[0]);
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
result.push(currentGroup);
|
|
316
|
+
}
|
|
269
317
|
currentGroup = null;
|
|
270
318
|
}
|
|
271
319
|
result.push(entry);
|
|
272
320
|
continue;
|
|
273
321
|
}
|
|
322
|
+
const toolCallId = entry.toolCall?.id;
|
|
323
|
+
// BUG FIX: Skip deduplication logic if no toolCallId - can't match pairs without ID
|
|
324
|
+
if (!toolCallId) {
|
|
325
|
+
// No ID means we can't dedupe, just add to group normally
|
|
326
|
+
// Fall through to normal grouping logic below
|
|
327
|
+
}
|
|
328
|
+
else if (seenToolCallIds.has(toolCallId)) {
|
|
329
|
+
// BUG FIX: Handle tool_call/tool_result pairs
|
|
330
|
+
// If this is a tool_result for a tool_call we've already processed,
|
|
331
|
+
// replace the tool_call entry with the tool_result (which has more complete info)
|
|
332
|
+
// This is a tool_result for a previously seen tool_call
|
|
333
|
+
let replaced = false;
|
|
334
|
+
// First, try to find and replace in the current group
|
|
335
|
+
if (currentGroup) {
|
|
336
|
+
const existingIndex = currentGroup.operations.findIndex((op) => op.toolCall?.id === toolCallId && op.type === 'tool_call');
|
|
337
|
+
if (existingIndex !== -1) {
|
|
338
|
+
// Replace tool_call with tool_result (has complete info including result)
|
|
339
|
+
currentGroup.operations[existingIndex] = entry;
|
|
340
|
+
currentGroup.endTime = entry.timestamp instanceof Date ? entry.timestamp : new Date(entry.timestamp);
|
|
341
|
+
// Update error state from the result
|
|
342
|
+
if (entry.toolResult && !entry.toolResult.success) {
|
|
343
|
+
currentGroup.hasError = true;
|
|
344
|
+
if (!currentGroup.errorSummary) {
|
|
345
|
+
currentGroup.errorSummary = extractErrorSummary(entry.toolResult?.error);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// BUG FIX: Recompute isComplete after replacement in currentGroup too
|
|
349
|
+
currentGroup.isComplete = checkGroupComplete(currentGroup);
|
|
350
|
+
replaced = true;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
// BUG FIX: If not in current group, search in already-flushed result entries
|
|
354
|
+
// This handles the case where a group was flushed before its tool_result arrived
|
|
355
|
+
if (!replaced) {
|
|
356
|
+
// BUG FIX: Limit backward search to avoid O(n²) performance on large histories
|
|
357
|
+
// Only search last 100 entries - tool_results should arrive shortly after tool_calls
|
|
358
|
+
const searchLimit = Math.max(0, result.length - 100);
|
|
359
|
+
for (let i = result.length - 1; i >= searchLimit; i--) {
|
|
360
|
+
const resultEntry = result[i];
|
|
361
|
+
// Check if it's a ToolGroup containing the tool_call
|
|
362
|
+
if (isToolGroup(resultEntry)) {
|
|
363
|
+
const existingIndex = resultEntry.operations.findIndex((op) => op.toolCall?.id === toolCallId && op.type === 'tool_call');
|
|
364
|
+
if (existingIndex !== -1) {
|
|
365
|
+
// Replace tool_call with tool_result in the flushed group
|
|
366
|
+
resultEntry.operations[existingIndex] = entry;
|
|
367
|
+
resultEntry.endTime = entry.timestamp instanceof Date ? entry.timestamp : new Date(entry.timestamp);
|
|
368
|
+
// BUG FIX: Update error state for flushed groups too
|
|
369
|
+
if (entry.toolResult && !entry.toolResult.success) {
|
|
370
|
+
resultEntry.hasError = true;
|
|
371
|
+
if (!resultEntry.errorSummary) {
|
|
372
|
+
resultEntry.errorSummary = extractErrorSummary(entry.toolResult?.error);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
// BUG FIX: Recompute isComplete after replacement
|
|
376
|
+
resultEntry.isComplete = checkGroupComplete(resultEntry);
|
|
377
|
+
replaced = true;
|
|
378
|
+
break;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
// Check if it's an individual ChatEntry that matches
|
|
383
|
+
const chatEntry = resultEntry;
|
|
384
|
+
if (chatEntry.toolCall?.id === toolCallId && chatEntry.type === 'tool_call') {
|
|
385
|
+
// Replace the individual entry with the tool_result
|
|
386
|
+
result[i] = entry;
|
|
387
|
+
replaced = true;
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
// Skip adding as new entry (whether replaced or not - avoid duplicates)
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
// Mark this tool call ID as seen
|
|
397
|
+
if (toolCallId) {
|
|
398
|
+
seenToolCallIds.add(toolCallId);
|
|
399
|
+
}
|
|
274
400
|
const resource = getResourceFromToolCall(entry);
|
|
275
401
|
const toolName = entry.toolCall?.function?.name || 'unknown';
|
|
276
402
|
const groupType = getGroupType(toolName);
|
|
@@ -292,7 +418,7 @@ export function groupConsecutiveTools(entries, options = {}) {
|
|
|
292
418
|
resources: resource ? [resource] : [],
|
|
293
419
|
};
|
|
294
420
|
}
|
|
295
|
-
else if (shouldGroup(entry, currentGroup.operations[currentGroup.operations.length - 1], currentGroup.operations.length, effectiveMaxGroupSize, timeWindow)) {
|
|
421
|
+
else if (currentGroup.operations.length > 0 && shouldGroup(entry, currentGroup.operations[currentGroup.operations.length - 1], currentGroup.operations.length, effectiveMaxGroupSize, timeWindow)) {
|
|
296
422
|
// Add to existing group
|
|
297
423
|
currentGroup.operations.push(entry);
|
|
298
424
|
currentGroup.endTime = entry.timestamp instanceof Date ? entry.timestamp : new Date(entry.timestamp);
|
|
@@ -307,11 +433,21 @@ export function groupConsecutiveTools(entries, options = {}) {
|
|
|
307
433
|
if (resource && currentGroup.resources && !currentGroup.resources.includes(resource)) {
|
|
308
434
|
currentGroup.resources.push(resource);
|
|
309
435
|
}
|
|
436
|
+
// BUG FIX: Update groupType to 'mixed' if new entry has different type
|
|
437
|
+
if (groupType !== currentGroup.groupType && currentGroup.groupType !== 'mixed') {
|
|
438
|
+
currentGroup.groupType = 'mixed';
|
|
439
|
+
}
|
|
310
440
|
}
|
|
311
441
|
else {
|
|
312
442
|
// Can't group, flush current and start new
|
|
313
443
|
finalizeGroup(currentGroup);
|
|
314
|
-
|
|
444
|
+
// BUG FIX: Don't wrap single-item groups - return the entry directly
|
|
445
|
+
if (currentGroup.operations.length === 1) {
|
|
446
|
+
result.push(currentGroup.operations[0]);
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
result.push(currentGroup);
|
|
450
|
+
}
|
|
315
451
|
currentGroup = {
|
|
316
452
|
resource,
|
|
317
453
|
operations: [entry],
|
|
@@ -328,14 +464,35 @@ export function groupConsecutiveTools(entries, options = {}) {
|
|
|
328
464
|
// Flush final group
|
|
329
465
|
if (currentGroup) {
|
|
330
466
|
finalizeGroup(currentGroup);
|
|
331
|
-
|
|
467
|
+
// BUG FIX: Don't wrap single-item groups - return the entry directly
|
|
468
|
+
// This prevents unnecessary group wrapper for standalone tool operations
|
|
469
|
+
if (currentGroup.operations.length === 1) {
|
|
470
|
+
result.push(currentGroup.operations[0]);
|
|
471
|
+
}
|
|
472
|
+
else if (currentGroup.operations.length > 1) {
|
|
473
|
+
// BUG FIX: Only push groups with 2+ operations
|
|
474
|
+
result.push(currentGroup);
|
|
475
|
+
}
|
|
476
|
+
// Note: Empty groups (0 operations) are silently dropped
|
|
332
477
|
}
|
|
333
478
|
return result;
|
|
334
479
|
}
|
|
480
|
+
/**
|
|
481
|
+
* Check if all operations in a group have completed (have tool_result)
|
|
482
|
+
*/
|
|
483
|
+
function checkGroupComplete(group) {
|
|
484
|
+
// BUG FIX: Handle empty operations array edge case
|
|
485
|
+
if (group.operations.length === 0) {
|
|
486
|
+
return true; // Empty group is considered complete
|
|
487
|
+
}
|
|
488
|
+
return group.operations.every((op) => op.type === 'tool_result' || (op.toolResult !== undefined));
|
|
489
|
+
}
|
|
335
490
|
/**
|
|
336
491
|
* Finalize a group by computing semantic action and description
|
|
337
492
|
*/
|
|
338
493
|
function finalizeGroup(group) {
|
|
494
|
+
// BUG FIX: Always compute isComplete to show proper status indicator
|
|
495
|
+
group.isComplete = checkGroupComplete(group);
|
|
339
496
|
if (!group.isSemanticGroup)
|
|
340
497
|
return;
|
|
341
498
|
// Detect semantic action from all operations
|
|
@@ -372,9 +529,11 @@ export function getOperationCounts(group) {
|
|
|
372
529
|
continue;
|
|
373
530
|
switch (toolName) {
|
|
374
531
|
case 'view_file':
|
|
532
|
+
case 'read_file': // BUG FIX: Count read_file as reads
|
|
375
533
|
counts.reads++;
|
|
376
534
|
break;
|
|
377
535
|
case 'str_replace_editor':
|
|
536
|
+
case 'multi_edit': // BUG FIX: Count multi_edit as file updates
|
|
378
537
|
counts.updates++;
|
|
379
538
|
break;
|
|
380
539
|
case 'create_file':
|
|
@@ -384,6 +543,7 @@ export function getOperationCounts(group) {
|
|
|
384
543
|
counts.searches++;
|
|
385
544
|
break;
|
|
386
545
|
case 'bash':
|
|
546
|
+
case 'execute_bash': // BUG FIX: Handle execute_bash tool
|
|
387
547
|
case 'bash_output':
|
|
388
548
|
counts.bash++;
|
|
389
549
|
break;
|
|
@@ -412,7 +572,9 @@ export function getGroupDuration(group) {
|
|
|
412
572
|
if (Number.isNaN(startMs) || Number.isNaN(endMs)) {
|
|
413
573
|
return 0;
|
|
414
574
|
}
|
|
415
|
-
|
|
575
|
+
// BUG FIX: Return 0 for negative durations (out-of-order timestamps)
|
|
576
|
+
const duration = endMs - startMs;
|
|
577
|
+
return duration < 0 ? 0 : duration;
|
|
416
578
|
}
|
|
417
579
|
/**
|
|
418
580
|
* Format duration in human-readable form
|
|
@@ -423,15 +585,17 @@ export function formatDuration(ms) {
|
|
|
423
585
|
if (!Number.isFinite(ms) || ms < 0) {
|
|
424
586
|
return '0ms';
|
|
425
587
|
}
|
|
426
|
-
|
|
427
|
-
|
|
588
|
+
// BUG FIX: Round to integer to avoid "123.456ms" display
|
|
589
|
+
const roundedMs = Math.round(ms);
|
|
590
|
+
if (roundedMs < 1000) {
|
|
591
|
+
return `${roundedMs}ms`;
|
|
428
592
|
}
|
|
429
|
-
else if (
|
|
430
|
-
return `${(
|
|
593
|
+
else if (roundedMs < 60000) {
|
|
594
|
+
return `${(roundedMs / 1000).toFixed(1)}s`;
|
|
431
595
|
}
|
|
432
596
|
else {
|
|
433
|
-
const minutes = Math.floor(
|
|
434
|
-
const seconds = Math.floor((
|
|
597
|
+
const minutes = Math.floor(roundedMs / 60000);
|
|
598
|
+
const seconds = Math.floor((roundedMs % 60000) / 1000);
|
|
435
599
|
return `${minutes}m ${seconds}s`;
|
|
436
600
|
}
|
|
437
601
|
}
|