centaurus-cli 2.9.5 → 2.9.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 (99) hide show
  1. package/dist/cli-adapter.d.ts +27 -2
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +410 -17
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/config/slash-commands.d.ts.map +1 -1
  6. package/dist/config/slash-commands.js +7 -0
  7. package/dist/config/slash-commands.js.map +1 -1
  8. package/dist/context/context-manager.d.ts +4 -0
  9. package/dist/context/context-manager.d.ts.map +1 -1
  10. package/dist/context/context-manager.js +6 -0
  11. package/dist/context/context-manager.js.map +1 -1
  12. package/dist/context/handlers/docker-handler.d.ts +5 -1
  13. package/dist/context/handlers/docker-handler.d.ts.map +1 -1
  14. package/dist/context/handlers/docker-handler.js +27 -10
  15. package/dist/context/handlers/docker-handler.js.map +1 -1
  16. package/dist/context/handlers/ssh-handler.d.ts +47 -1
  17. package/dist/context/handlers/ssh-handler.d.ts.map +1 -1
  18. package/dist/context/handlers/ssh-handler.js +546 -73
  19. package/dist/context/handlers/ssh-handler.js.map +1 -1
  20. package/dist/context/handlers/wsl-handler.d.ts +5 -1
  21. package/dist/context/handlers/wsl-handler.d.ts.map +1 -1
  22. package/dist/context/handlers/wsl-handler.js +24 -6
  23. package/dist/context/handlers/wsl-handler.js.map +1 -1
  24. package/dist/context/subshell-handler.d.ts +8 -2
  25. package/dist/context/subshell-handler.d.ts.map +1 -1
  26. package/dist/index.js +12 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/services/checkpoint-manager.d.ts +162 -0
  29. package/dist/services/checkpoint-manager.d.ts.map +1 -0
  30. package/dist/services/checkpoint-manager.js +926 -0
  31. package/dist/services/checkpoint-manager.js.map +1 -0
  32. package/dist/services/fast-context-agent.d.ts +12 -0
  33. package/dist/services/fast-context-agent.d.ts.map +1 -0
  34. package/dist/services/fast-context-agent.js +253 -0
  35. package/dist/services/fast-context-agent.js.map +1 -0
  36. package/dist/tools/background-command.d.ts.map +1 -1
  37. package/dist/tools/background-command.js +132 -24
  38. package/dist/tools/background-command.js.map +1 -1
  39. package/dist/tools/command.d.ts.map +1 -1
  40. package/dist/tools/command.js +14 -4
  41. package/dist/tools/command.js.map +1 -1
  42. package/dist/tools/create-image.d.ts.map +1 -1
  43. package/dist/tools/create-image.js +43 -18
  44. package/dist/tools/create-image.js.map +1 -1
  45. package/dist/tools/fast-context.d.ts +3 -0
  46. package/dist/tools/fast-context.d.ts.map +1 -0
  47. package/dist/tools/fast-context.js +72 -0
  48. package/dist/tools/fast-context.js.map +1 -0
  49. package/dist/tools/file-ops.d.ts.map +1 -1
  50. package/dist/tools/file-ops.js +12 -12
  51. package/dist/tools/file-ops.js.map +1 -1
  52. package/dist/tools/find-files.d.ts +2 -1
  53. package/dist/tools/find-files.d.ts.map +1 -1
  54. package/dist/tools/find-files.js +62 -2
  55. package/dist/tools/find-files.js.map +1 -1
  56. package/dist/tools/get-diff.d.ts +9 -45
  57. package/dist/tools/get-diff.d.ts.map +1 -1
  58. package/dist/tools/get-diff.js +288 -171
  59. package/dist/tools/get-diff.js.map +1 -1
  60. package/dist/tools/types.d.ts +4 -1
  61. package/dist/tools/types.d.ts.map +1 -1
  62. package/dist/types/index.d.ts +1 -0
  63. package/dist/types/index.d.ts.map +1 -1
  64. package/dist/ui/components/App.d.ts +8 -0
  65. package/dist/ui/components/App.d.ts.map +1 -1
  66. package/dist/ui/components/App.js +290 -85
  67. package/dist/ui/components/App.js.map +1 -1
  68. package/dist/ui/components/ConfirmPrompt.d.ts +2 -0
  69. package/dist/ui/components/ConfirmPrompt.d.ts.map +1 -1
  70. package/dist/ui/components/ConfirmPrompt.js +8 -3
  71. package/dist/ui/components/ConfirmPrompt.js.map +1 -1
  72. package/dist/ui/components/InputBox.d.ts +6 -0
  73. package/dist/ui/components/InputBox.d.ts.map +1 -1
  74. package/dist/ui/components/InputBox.js +130 -6
  75. package/dist/ui/components/InputBox.js.map +1 -1
  76. package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
  77. package/dist/ui/components/InteractiveShell.js +50 -15
  78. package/dist/ui/components/InteractiveShell.js.map +1 -1
  79. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  80. package/dist/ui/components/MessageDisplay.js +2 -2
  81. package/dist/ui/components/MessageDisplay.js.map +1 -1
  82. package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
  83. package/dist/ui/components/ToolExecutionMessage.js +213 -18
  84. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  85. package/dist/utils/ansi-encoder.d.ts +5 -0
  86. package/dist/utils/ansi-encoder.d.ts.map +1 -1
  87. package/dist/utils/ansi-encoder.js +5 -5
  88. package/dist/utils/ansi-encoder.js.map +1 -1
  89. package/dist/utils/editor-utils.d.ts +5 -0
  90. package/dist/utils/editor-utils.d.ts.map +1 -1
  91. package/dist/utils/editor-utils.js +67 -0
  92. package/dist/utils/editor-utils.js.map +1 -1
  93. package/dist/utils/input-classifier.d.ts.map +1 -1
  94. package/dist/utils/input-classifier.js +2 -1
  95. package/dist/utils/input-classifier.js.map +1 -1
  96. package/dist/utils/terminal-output.d.ts.map +1 -1
  97. package/dist/utils/terminal-output.js +162 -103
  98. package/dist/utils/terminal-output.js.map +1 -1
  99. package/package.json +3 -1
@@ -1,6 +1,7 @@
1
1
  import React, { useEffect, useState, useRef } from 'react';
2
2
  import { Box, Text, useInput } from 'ink';
3
3
  import Spinner from 'ink-spinner';
4
+ import stripAnsi from 'strip-ansi';
4
5
  import { encodeKeyToAnsi } from '../../utils/ansi-encoder.js';
5
6
  import { processTerminalOutput } from '../../utils/terminal-output.js';
6
7
  import { TERMINAL_HEIGHT_CONSTANTS } from '../../hooks/useTerminalDimensions.js';
@@ -105,18 +106,52 @@ export const InteractiveShell = React.memo(({ command, cwd, isRunning, output, e
105
106
  totalLinesRef.current = total;
106
107
  if (total === 0)
107
108
  return '';
108
- if (total <= maxVisibleLines) {
109
- // All lines fit, no scrolling needed
110
- return lines.join('\n');
109
+ // SAFETY: Use current terminal width for wrapping calculations
110
+ const cols = process.stdout.columns || 80;
111
+ // STRICT HEIGHT CALCULATION
112
+ // We must count *visual* lines (how many rows a line takes up when wrapped)
113
+ // otherwise a single long line could blow out our height budget
114
+ let visualLineCount = 0;
115
+ const visualLinesMap = new Array(lines.length).fill(1);
116
+ // 1. Calculate visual height of all lines
117
+ // precise calculation is expensive, so we estimate: length / columns
118
+ for (let i = 0; i < lines.length; i++) {
119
+ const line = lines[i];
120
+ const stripped = stripAnsi(line || '');
121
+ // Minimum 1 row, ceil(length/cols) for wrapping
122
+ // We add a small buffer for safety margin in calculation logic
123
+ const rows = Math.max(1, Math.ceil(stripped.length / cols));
124
+ visualLinesMap[i] = rows;
111
125
  }
112
- // Calculate the window to show
113
- // scrollOffset 0 = at the bottom (latest output)
114
- // scrollOffset > 0 = scrolled up by that many lines
115
- const maxOffset = Math.max(0, total - maxVisibleLines);
116
- const clampedOffset = Math.min(scrollOffset, maxOffset);
117
- const startLine = maxOffset - clampedOffset;
118
- const endLine = startLine + maxVisibleLines;
119
- return lines.slice(startLine, endLine).join('\n');
126
+ // 2. Determine which lines to show based on scrollOffset
127
+ // We work backwards from the bottom (latest output)
128
+ const visibleLinesToRender = [];
129
+ let currentHeight = 0;
130
+ // Apply scroll offset - skip N visual lines from bottom
131
+ // This is a simplified approach: we skip logical lines until we pass the visual offset
132
+ // Ideally we would skip pixel-perfect but logical-line skipping is safer for now
133
+ let linesToSkip = scrollOffset;
134
+ let startIndex = lines.length - 1;
135
+ // Adjust start index based on scroll
136
+ while (linesToSkip > 0 && startIndex >= 0) {
137
+ // We treat scrollOffset as "logical lines" for consistency with existing UX controls
138
+ // or we could treat it as visual lines?
139
+ // Existing behavior: scrollOffset is logical lines. Let's keep that for predictable scrolling.
140
+ linesToSkip--;
141
+ startIndex--;
142
+ }
143
+ // 3. Collect lines that fit in maxVisibleLines
144
+ for (let i = startIndex; i >= 0; i--) {
145
+ const lineRows = visualLinesMap[i];
146
+ // If adding this line exceeds max height, we stop
147
+ // Exception: Always show at least one line if it's the only one
148
+ if (currentHeight + lineRows > maxVisibleLines && visibleLinesToRender.length > 0) {
149
+ break;
150
+ }
151
+ visibleLinesToRender.unshift(lines[i]);
152
+ currentHeight += lineRows;
153
+ }
154
+ return visibleLinesToRender.join('\n');
120
155
  };
121
156
  // Reset scroll offset when exiting focus mode
122
157
  useEffect(() => {
@@ -296,7 +331,7 @@ export const InteractiveShell = React.memo(({ command, cwd, isRunning, output, e
296
331
  "[current working directory ",
297
332
  formatCwdWithContext(cwd, remoteContext),
298
333
  "]")),
299
- cleanOutput && (React.createElement(Box, null,
334
+ cleanOutput && (React.createElement(Box, { height: maxVisibleLines, overflow: "hidden" },
300
335
  React.createElement(Text, { wrap: "wrap" }, cleanOutput))),
301
336
  isFocused && isRunning && (React.createElement(Box, { marginTop: 1, flexDirection: "column" },
302
337
  React.createElement(Box, null, isAgentControlled ? (React.createElement(React.Fragment, null,
@@ -306,9 +341,9 @@ export const InteractiveShell = React.memo(({ command, cwd, isRunning, output, e
306
341
  " to disable | Shift+\u2191\u2193 scroll | PgUp/PgDn page"))) : (React.createElement(React.Fragment, null,
307
342
  React.createElement(Text, { color: "#ffaa00", bold: true }, "[ FOCUS MODE ] "),
308
343
  React.createElement(Text, { color: "#666666" },
309
- "Ctrl+F exit | ",
310
- isMac ? 'Cmd+E / Ctrl+E' : 'Alt+E',
311
- " warpify | ",
344
+ "Ctrl+F exit ",
345
+ onWarpifySession ? `| ${isMac ? 'Cmd+E / Ctrl+E' : 'Alt+E'} warpify ` : '',
346
+ "| ",
312
347
  isMac ? 'Cmd+I' : 'Alt+I',
313
348
  " agent | Shift+\u2191\u2193 scroll")))),
314
349
  scrollOffset > 0 && (React.createElement(Box, null,
@@ -1 +1 @@
1
- {"version":3,"file":"InteractiveShell.js","sourceRoot":"","sources":["../../../src/ui/components/InteractiveShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractiveShell.js","sourceRoot":"","sources":["../../../src/ui/components/InteractiveShell.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageDisplay.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/C,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AA+BD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI5D;AAqBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsJvD,CAAC"}
1
+ {"version":3,"file":"MessageDisplay.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/C,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AA+BD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI5D;AAqBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwJvD,CAAC"}
@@ -128,13 +128,13 @@ export const MessageDisplay = React.memo(({ message, imageCountBefore = 0 }) =>
128
128
  const imageBadges = images.map((img, i) => (React.createElement(ImageAttachmentBadge, { key: `img-${message.id}-${i}`, imageNumber: imageCountBefore + i + 1, format: img.format })));
129
129
  // Regular message rendering
130
130
  return (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
131
- React.createElement(Box, { marginBottom: 1 },
131
+ !message.isSpacer && (React.createElement(Box, { marginBottom: 1 },
132
132
  React.createElement(Text, { color: getRoleColor(message.role), bold: true },
133
133
  getRoleLabel(message.role),
134
134
  ":"),
135
135
  timestamp && (React.createElement(Text, { color: "#666666", dimColor: true },
136
136
  " ",
137
- timestamp))),
137
+ timestamp)))),
138
138
  message.thinkingDuration !== undefined && message.thinkingDuration >= 0 && (React.createElement(Box, { marginBottom: 1 },
139
139
  React.createElement(Text, { dimColor: true },
140
140
  "Thought for ",
@@ -1 +1 @@
1
- {"version":3,"file":"MessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/MessageDisplay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/MessageDisplay.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolExecutionMessage.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ToolExecutionMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,UAAU,yBAAyB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAoQD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA89BnE,CAAC"}
1
+ {"version":3,"file":"ToolExecutionMessage.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ToolExecutionMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,UAAU,yBAAyB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AA4UD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA+nCnE,CAAC"}
@@ -20,6 +20,7 @@ const TOOL_LABELS = {
20
20
  background_command: { verb: 'Background command', emoji: '🔄' },
21
21
  get_diff: { verb: 'Getting diff', emoji: '📝' },
22
22
  sub_agent: { verb: 'Agent Task', emoji: '🤖' },
23
+ fast_context_search: { verb: 'Searching context', emoji: '⚡' },
23
24
  };
24
25
  /**
25
26
  * Convert an absolute path to a relative path from the current working directory.
@@ -208,6 +209,26 @@ function parseInspectSymbolResult(result) {
208
209
  const symbolMatches = result.match(/(?:function|class|interface|type|const|let|var|def|struct)\s+\w+/g);
209
210
  return { found: true, count: symbolMatches ? symbolMatches.length : 1 };
210
211
  }
212
+ /**
213
+ * Parse fast_context_search result to get stats and markdown answer
214
+ */
215
+ function parseFastContextResult(result) {
216
+ if (!result)
217
+ return { answer: '' };
218
+ try {
219
+ // Try to parse as JSON first (new format)
220
+ if (result.trim().startsWith('{')) {
221
+ const parsed = JSON.parse(result);
222
+ if (parsed.answer && parsed.stats) {
223
+ return parsed;
224
+ }
225
+ }
226
+ }
227
+ catch (e) {
228
+ // Fallback to raw string
229
+ }
230
+ return { answer: result };
231
+ }
211
232
  /**
212
233
  * Parse MCP tool name to extract server name and tool name
213
234
  * MCP tools are named: mcp_{serverName}_{toolName}
@@ -244,6 +265,44 @@ function getToolDisplayInfo(toolName) {
244
265
  const toolInfo = TOOL_LABELS[toolName] || { verb: 'Executing', emoji: '🔧' };
245
266
  return { ...toolInfo, isMCP: false };
246
267
  }
268
+ /**
269
+ * Render a snippet of the diff (added/removed lines)
270
+ */
271
+ function renderDiffSnippet(removedContent, addedContent, options = {}) {
272
+ const { compact } = options;
273
+ if (!removedContent && !addedContent)
274
+ return null;
275
+ const removedLines = removedContent ? removedContent.split('\n') : [];
276
+ const addedLines = addedContent ? addedContent.split('\n') : [];
277
+ if (removedLines.length === 0 && addedLines.length === 0)
278
+ return null;
279
+ const items = [];
280
+ // Show first 3 removed lines
281
+ removedLines.slice(0, 3).forEach((line, i) => {
282
+ items.push(React.createElement(Box, { key: `rem-${i}`, width: "100%" },
283
+ React.createElement(Text, { color: "#e6e6e6", backgroundColor: "#5c1e1e", wrap: "truncate-end" }, `- ${line} `)));
284
+ });
285
+ if (removedLines.length > 3) {
286
+ items.push(React.createElement(Text, { key: "rem-more", color: "gray", dimColor: true },
287
+ " ... ",
288
+ removedLines.length - 3,
289
+ " more lines"));
290
+ }
291
+ // Show first 3 added lines
292
+ addedLines.slice(0, 3).forEach((line, i) => {
293
+ items.push(React.createElement(Box, { key: `add-${i}`, width: "100%" },
294
+ React.createElement(Text, { color: "#e6e6e6", backgroundColor: "#1e4d2b", wrap: "truncate-end" }, `+ ${line} `)));
295
+ });
296
+ if (addedLines.length > 3) {
297
+ items.push(React.createElement(Text, { key: "add-more", color: "gray", dimColor: true },
298
+ " ... ",
299
+ addedLines.length - 3,
300
+ " more lines"));
301
+ }
302
+ return (React.createElement(Box, { flexDirection: "column", marginTop: compact ? 0 : 1, width: "100%" },
303
+ React.createElement(Box, { height: 1, borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: "#333333", marginBottom: 0 }),
304
+ items));
305
+ }
247
306
  export const ToolExecutionMessage = React.memo(({ message }) => {
248
307
  if (!message.toolExecution) {
249
308
  return null;
@@ -481,6 +540,54 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
481
540
  query,
482
541
  "\"..."))));
483
542
  }
543
+ // FAST_CONTEXT_SEARCH
544
+ if (toolName === 'fast_context_search' && toolArgs) {
545
+ const { query } = toolArgs;
546
+ let scannedFiles = [];
547
+ try {
548
+ const streamData = message.toolExecution?.streamingOutput || result;
549
+ if (streamData) {
550
+ const lines = streamData.trim().split('\n').filter(Boolean);
551
+ if (lines.length > 0) {
552
+ // Find the last valid JSON line by iterating backwards
553
+ // The FastContextAgent outputs JSON blobs on stdout for UI updates
554
+ for (let i = lines.length - 1; i >= 0; i--) {
555
+ try {
556
+ // The stream mixes logs and JSON. Fast context prints files inside JSON objects.
557
+ const line = lines[i].trim();
558
+ if (line.startsWith('{')) {
559
+ const parsed = JSON.parse(line);
560
+ if (parsed.type === 'scanned_files' && parsed.files) {
561
+ scannedFiles = parsed.files;
562
+ break; // Found the most recent valid state
563
+ }
564
+ }
565
+ }
566
+ catch (e) {
567
+ // Ignore parsing errors for incomplete streamed lines
568
+ }
569
+ }
570
+ }
571
+ }
572
+ }
573
+ catch (e) {
574
+ // ignore parsing errors
575
+ }
576
+ // Format query for executing state
577
+ const truncatedQuery = query && query.length > 50 ? query.substring(0, 47) + '...' : query || '';
578
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1, flexGrow: 0, alignSelf: "flex-start" },
579
+ React.createElement(Box, null,
580
+ React.createElement(Text, { color: "#00ccff" },
581
+ React.createElement(Spinner, { type: "arc" })),
582
+ React.createElement(Text, { color: "#00cc66", bold: true }, " Rapid Context "),
583
+ React.createElement(Text, { color: "#cccccc" },
584
+ " \"",
585
+ truncatedQuery,
586
+ "\"")),
587
+ scannedFiles.length > 0 && (React.createElement(Box, { flexDirection: "column", marginLeft: 2, marginTop: 1 }, scannedFiles.map((f, i) => (React.createElement(Text, { key: i, color: "#666666", wrap: "truncate-end" },
588
+ "- ",
589
+ toRelativePath(f))))))));
590
+ }
484
591
  // INSPECT_SYMBOL
485
592
  if (toolName === 'inspect_symbol' && toolArgs) {
486
593
  const { filePath, symbols, remoteContext } = toolArgs;
@@ -724,7 +831,8 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
724
831
  React.createElement(Text, { color: "#00ccff" }, formatPathWithContext(TargetFile, remoteContext)),
725
832
  lines > 0 && React.createElement(Text, { color: "green" },
726
833
  " +",
727
- lines))));
834
+ lines)),
835
+ renderDiffSnippet(undefined, CodeContent)));
728
836
  }
729
837
  // EDIT_FILE
730
838
  if (toolName === 'edit_file' && toolArgs) {
@@ -743,7 +851,8 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
743
851
  added),
744
852
  React.createElement(Text, { color: "red" },
745
853
  " -",
746
- removed))));
854
+ removed)),
855
+ renderDiffSnippet(search_pattern, replacement)));
747
856
  }
748
857
  // MULTI_EDIT_FILE
749
858
  if (toolName === 'multi_edit_file' && toolArgs) {
@@ -759,6 +868,11 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
759
868
  removed += (edit.search_pattern || edit.TargetContent).split('\n').length;
760
869
  }
761
870
  });
871
+ // For multi-edit, we show the snippet of the FIRST edit as a sample, or maybe we aggregate?
872
+ // Lets show the first edit's snippet if available
873
+ const firstEdit = editList[0];
874
+ const searchExample = firstEdit ? (firstEdit.search_pattern || firstEdit.TargetContent) : undefined;
875
+ const replaceExample = firstEdit ? (firstEdit.replacement || firstEdit.ReplacementContent) : undefined;
762
876
  return renderWithThinking(React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1, flexGrow: 0, alignSelf: "flex-start" },
763
877
  React.createElement(Box, null,
764
878
  React.createElement(Text, { color: "#00cc66", bold: true },
@@ -771,7 +885,12 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
771
885
  added),
772
886
  React.createElement(Text, { color: "red" },
773
887
  " -",
774
- removed))));
888
+ removed)),
889
+ editList.length > 0 ? (React.createElement(Box, { flexDirection: "column", marginTop: 0 }, editList.map((edit, index) => {
890
+ const search = edit.search_pattern || edit.TargetContent;
891
+ const replace = edit.replacement || edit.ReplacementContent;
892
+ return (React.createElement(React.Fragment, { key: index }, renderDiffSnippet(search, replace, { compact: index > 0 })));
893
+ }))) : (null)));
775
894
  }
776
895
  // LIST_DIR
777
896
  if (toolName === 'list_dir' && toolArgs) {
@@ -873,6 +992,61 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
873
992
  " Fetched "),
874
993
  React.createElement(Text, { color: "#00ccff" }, url))));
875
994
  }
995
+ // FAST_CONTEXT_SEARCH
996
+ if (toolName === 'fast_context_search' && toolArgs) {
997
+ let answer = result || '';
998
+ let stats = undefined;
999
+ try {
1000
+ if (result && result.trim().startsWith('{')) {
1001
+ const parsed = JSON.parse(result);
1002
+ if (parsed.answer !== undefined) {
1003
+ answer = parsed.answer;
1004
+ }
1005
+ if (parsed.stats !== undefined) {
1006
+ stats = parsed.stats;
1007
+ }
1008
+ }
1009
+ }
1010
+ catch (e) {
1011
+ // Fallback to raw result if parsing fails
1012
+ }
1013
+ const { query } = toolArgs;
1014
+ const scannedFiles = stats?.scannedFiles || [];
1015
+ const hasFiles = scannedFiles.length > 0;
1016
+ const MAX_DISPLAY_FILES = 10;
1017
+ const truncatedQuery = query && query.length > 50 ? query.substring(0, 47) + '...' : query || '';
1018
+ return renderWithThinking(React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1, flexGrow: 0, alignSelf: "flex-start" },
1019
+ React.createElement(Box, null,
1020
+ React.createElement(Text, { color: "#00cc66", bold: true }, "\u2713 Rapid Context "),
1021
+ React.createElement(Text, { color: "#cccccc", wrap: "truncate-end" },
1022
+ "\"",
1023
+ truncatedQuery,
1024
+ "\" "),
1025
+ stats && (React.createElement(Text, { color: "#666666" },
1026
+ "(Searched ",
1027
+ stats.filesSearched,
1028
+ " files in ",
1029
+ (stats.duration / 1000).toFixed(1),
1030
+ "s)"))),
1031
+ React.createElement(Box, { paddingLeft: 1, marginTop: 1, flexDirection: "column" },
1032
+ !hasFiles && answer && (React.createElement(Text, { color: "#aaaaaa", wrap: "truncate-end" }, answer)),
1033
+ hasFiles && (React.createElement(Box, { flexDirection: "column", marginTop: 0 },
1034
+ scannedFiles.slice(0, MAX_DISPLAY_FILES).map((f, i) => {
1035
+ // Display only the file name to keep it clean, or relative path
1036
+ return (React.createElement(Text, { key: i, color: "#444444", wrap: "truncate-end" },
1037
+ "- ",
1038
+ path.basename(f),
1039
+ " ",
1040
+ React.createElement(Text, { color: "#333333", italic: true },
1041
+ "(",
1042
+ toRelativePath(f),
1043
+ ")")));
1044
+ }),
1045
+ scannedFiles.length > MAX_DISPLAY_FILES && (React.createElement(Text, { color: "#444444", italic: true },
1046
+ "...and ",
1047
+ scannedFiles.length - MAX_DISPLAY_FILES,
1048
+ " more files checked")))))));
1049
+ }
876
1050
  // INSPECT_SYMBOL
877
1051
  if (toolName === 'inspect_symbol' && toolArgs) {
878
1052
  const { filePath, remoteContext } = toolArgs;
@@ -1125,29 +1299,49 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
1125
1299
  // GET_DIFF
1126
1300
  if (toolName === 'get_diff' && toolArgs) {
1127
1301
  const { filePath, staged } = toolArgs;
1128
- const diffTarget = filePath ? toRelativePath(filePath) : 'all files';
1302
+ const diffTarget = filePath ? toRelativePath(filePath) : '';
1129
1303
  const stagedText = staged ? ' (staged)' : '';
1130
- // Parse the diff result to extract info
1131
- const hasChanges = !result?.includes('No changes detected');
1132
- const filesChangedMatch = result?.match(/\*\*Files Changed:\*\*\s*(\d+)/);
1133
- const filesCount = filesChangedMatch ? parseInt(filesChangedMatch[1], 10) : 0;
1134
- const truncated = result?.includes('[Diff truncated');
1304
+ // The get_diff tool returns JSON: { result: string, summary: string }
1305
+ // Parse JSON to extract the human-readable summary
1306
+ let parsedResult = result || '';
1307
+ let parsedSummary = '';
1308
+ try {
1309
+ if (result) {
1310
+ const json = JSON.parse(result);
1311
+ parsedResult = json.result || result;
1312
+ parsedSummary = json.summary || '';
1313
+ }
1314
+ }
1315
+ catch {
1316
+ // Not JSON, use raw result as-is
1317
+ }
1318
+ const hasChanges = !parsedResult.includes('No changes') && !parsedSummary.includes('No changes');
1319
+ const truncated = parsedResult.includes('[Diff truncated');
1320
+ // Build display summary from parsed data
1321
+ let displayInfo = 'no changes';
1322
+ if (hasChanges) {
1323
+ if (parsedSummary) {
1324
+ displayInfo = parsedSummary;
1325
+ }
1326
+ else {
1327
+ // Fallback: extract file count from result text (format: **N file(s) changed**)
1328
+ const filesMatch = parsedResult.match(/(\d+)\s+file\(?s?\)?\s+changed/);
1329
+ displayInfo = filesMatch ? `${filesMatch[1]} file(s) changed` : 'changes detected';
1330
+ }
1331
+ }
1135
1332
  return renderWithThinking(React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00cc66", paddingX: 1, marginBottom: 1, flexGrow: 0, alignSelf: "flex-start" },
1136
1333
  React.createElement(Box, null,
1137
1334
  React.createElement(Text, { color: "#00cc66", bold: true },
1138
1335
  "\u2713 ",
1139
1336
  toolInfo.emoji,
1140
1337
  " Checked diff ",
1141
- diffTarget !== 'all files' ? `for ${diffTarget}` : '',
1338
+ diffTarget ? `for ${diffTarget} ` : '',
1142
1339
  stagedText),
1143
- hasChanges ? (React.createElement(Text, { color: "#666666" },
1144
- " (",
1145
- filesCount,
1146
- " file",
1147
- filesCount !== 1 ? 's' : '',
1148
- " changed",
1340
+ React.createElement(Text, { color: "#666666" },
1341
+ "(",
1342
+ displayInfo,
1149
1343
  truncated ? ', truncated' : '',
1150
- ")")) : (React.createElement(Text, { color: "#666666" }, " (no changes)")))));
1344
+ ")"))));
1151
1345
  }
1152
1346
  // DEFAULT - for any other tool
1153
1347
  return renderWithThinking(React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1, flexGrow: 0, alignSelf: "flex-start" },
@@ -1170,6 +1364,7 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
1170
1364
  return prevExec.status === nextExec.status &&
1171
1365
  prevExec.toolName === nextExec.toolName &&
1172
1366
  prevExec.result === nextExec.result &&
1173
- prevExec.error === nextExec.error;
1367
+ prevExec.error === nextExec.error &&
1368
+ prevExec.streamingOutput === nextExec.streamingOutput;
1174
1369
  });
1175
1370
  //# sourceMappingURL=ToolExecutionMessage.js.map