centaurus-cli 2.0.1 → 2.0.2

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 (103) hide show
  1. package/CONFIG_GUIDE.md +100 -106
  2. package/README.md +68 -63
  3. package/dist/cli-adapter.d.ts +9 -3
  4. package/dist/cli-adapter.d.ts.map +1 -1
  5. package/dist/cli-adapter.js +123 -164
  6. package/dist/cli-adapter.js.map +1 -1
  7. package/dist/commands/CommandParser.d.ts +1 -1
  8. package/dist/commands/CommandParser.d.ts.map +1 -1
  9. package/dist/commands/CommandParser.js +3 -18
  10. package/dist/commands/CommandParser.js.map +1 -1
  11. package/dist/commands/view-duplication-logs.d.ts +5 -0
  12. package/dist/commands/view-duplication-logs.d.ts.map +1 -0
  13. package/dist/commands/view-duplication-logs.js +14 -0
  14. package/dist/commands/view-duplication-logs.js.map +1 -0
  15. package/dist/config/ConfigManager.d.ts +10 -7
  16. package/dist/config/ConfigManager.d.ts.map +1 -1
  17. package/dist/config/ConfigManager.js +43 -142
  18. package/dist/config/ConfigManager.js.map +1 -1
  19. package/dist/config/defaultConfig.d.ts +0 -4
  20. package/dist/config/defaultConfig.d.ts.map +1 -1
  21. package/dist/config/defaultConfig.js +1 -6
  22. package/dist/config/defaultConfig.js.map +1 -1
  23. package/dist/config/manager.d.ts +15 -13
  24. package/dist/config/manager.d.ts.map +1 -1
  25. package/dist/config/manager.js +52 -41
  26. package/dist/config/manager.js.map +1 -1
  27. package/dist/config/models.d.ts +31 -0
  28. package/dist/config/models.d.ts.map +1 -0
  29. package/dist/config/models.js +49 -0
  30. package/dist/config/models.js.map +1 -0
  31. package/dist/config/types.d.ts +0 -3
  32. package/dist/config/types.d.ts.map +1 -1
  33. package/dist/config/types.js +0 -1
  34. package/dist/config/types.js.map +1 -1
  35. package/dist/index.js +27 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/prompts/system-prompt.d.ts +1 -1
  38. package/dist/prompts/system-prompt.d.ts.map +1 -1
  39. package/dist/prompts/system-prompt.js +0 -1
  40. package/dist/prompts/system-prompt.js.map +1 -1
  41. package/dist/services/ai-service-client.d.ts +82 -0
  42. package/dist/services/ai-service-client.d.ts.map +1 -0
  43. package/dist/services/ai-service-client.js +254 -0
  44. package/dist/services/ai-service-client.js.map +1 -0
  45. package/dist/services/api-client.js +3 -3
  46. package/dist/services/api-client.js.map +1 -1
  47. package/dist/tools/ToolRegistry.d.ts +14 -3
  48. package/dist/tools/ToolRegistry.d.ts.map +1 -1
  49. package/dist/tools/ToolRegistry.js +46 -34
  50. package/dist/tools/ToolRegistry.js.map +1 -1
  51. package/dist/tools/command.d.ts.map +1 -1
  52. package/dist/tools/command.js +17 -3
  53. package/dist/tools/command.js.map +1 -1
  54. package/dist/tools/file-ops.js +3 -3
  55. package/dist/tools/file-ops.js.map +1 -1
  56. package/dist/tools/web-search.js +2 -2
  57. package/dist/tools/web-search.js.map +1 -1
  58. package/dist/types/index.d.ts +1 -0
  59. package/dist/types/index.d.ts.map +1 -1
  60. package/dist/ui/components/App.d.ts +3 -2
  61. package/dist/ui/components/App.d.ts.map +1 -1
  62. package/dist/ui/components/App.js +107 -16
  63. package/dist/ui/components/App.js.map +1 -1
  64. package/dist/ui/components/CodeBlock.d.ts.map +1 -1
  65. package/dist/ui/components/CodeBlock.js +15 -3
  66. package/dist/ui/components/CodeBlock.js.map +1 -1
  67. package/dist/ui/components/ConfirmPrompt.d.ts.map +1 -1
  68. package/dist/ui/components/ConfirmPrompt.js +32 -20
  69. package/dist/ui/components/ConfirmPrompt.js.map +1 -1
  70. package/dist/ui/components/DiffViewer.d.ts.map +1 -1
  71. package/dist/ui/components/DiffViewer.js +16 -2
  72. package/dist/ui/components/DiffViewer.js.map +1 -1
  73. package/dist/ui/components/InputBox.d.ts.map +1 -1
  74. package/dist/ui/components/InputBox.js +26 -9
  75. package/dist/ui/components/InputBox.js.map +1 -1
  76. package/dist/ui/components/LoadingIndicator.d.ts.map +1 -1
  77. package/dist/ui/components/LoadingIndicator.js +6 -2
  78. package/dist/ui/components/LoadingIndicator.js.map +1 -1
  79. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  80. package/dist/ui/components/MarkdownRenderer.js +8 -12
  81. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  82. package/dist/ui/components/StreamingMessageDisplay.d.ts +6 -7
  83. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  84. package/dist/ui/components/StreamingMessageDisplay.js +69 -12
  85. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  86. package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
  87. package/dist/ui/components/ToolExecutionMessage.js +44 -16
  88. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  89. package/dist/ui/components/WelcomeBanner.d.ts.map +1 -1
  90. package/dist/ui/components/WelcomeBanner.js.map +1 -1
  91. package/dist/ui/utils/duplication-detector.d.ts +32 -0
  92. package/dist/ui/utils/duplication-detector.d.ts.map +1 -0
  93. package/dist/ui/utils/duplication-detector.js +227 -0
  94. package/dist/ui/utils/duplication-detector.js.map +1 -0
  95. package/dist/ui/utils/duplication-logger.d.ts +21 -0
  96. package/dist/ui/utils/duplication-logger.d.ts.map +1 -0
  97. package/dist/ui/utils/duplication-logger.js +85 -0
  98. package/dist/ui/utils/duplication-logger.js.map +1 -0
  99. package/dist/ui/utils/terminal-scanner.d.ts +19 -0
  100. package/dist/ui/utils/terminal-scanner.d.ts.map +1 -0
  101. package/dist/ui/utils/terminal-scanner.js +217 -0
  102. package/dist/ui/utils/terminal-scanner.js.map +1 -0
  103. package/package.json +2 -5
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Box, Text } from 'ink';
3
+ import Spinner from 'ink-spinner';
3
4
  const LOADING_MESSAGES = [
4
5
  'Thrusting',
5
6
  'Propelling',
@@ -14,11 +15,14 @@ const LOADING_MESSAGES = [
14
15
  ];
15
16
  const SPINNER_TYPES = ['dots', 'dots2', 'line', 'star', 'arc', 'circle', 'arrow', 'bouncingBar', 'bouncingBall', 'earth', 'moon'];
16
17
  export const LoadingIndicator = () => {
17
- // Use useMemo to pick random message only once, not on every render
18
+ // Use useMemo to pick random message and spinner only once, not on every render
18
19
  const messageIndex = React.useMemo(() => Math.floor(Math.random() * LOADING_MESSAGES.length), []);
20
+ const spinnerType = React.useMemo(() => SPINNER_TYPES[Math.floor(Math.random() * SPINNER_TYPES.length)], []);
19
21
  return (React.createElement(Box, { marginBottom: 1, paddingLeft: 1 },
22
+ React.createElement(Text, { color: "#00ccff" },
23
+ React.createElement(Spinner, { type: spinnerType })),
20
24
  React.createElement(Text, { color: "#00ccff", bold: true },
21
- "\u23F3 ",
25
+ " ",
22
26
  LOADING_MESSAGES[messageIndex],
23
27
  "...")));
24
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingIndicator.js","sourceRoot":"","sources":["../../../src/ui/components/LoadingIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAGhC,MAAM,gBAAgB,GAAG;IACvB,WAAW;IACX,YAAY;IACZ,UAAU;IACV,WAAW;IACX,cAAc;IACd,eAAe;IACf,cAAc;IACd,UAAU;IACV,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAE3I,MAAM,CAAC,MAAM,gBAAgB,GAAa,GAAG,EAAE;IAC7C,oEAAoE;IACpE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAElG,OAAO,CACL,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;QAClC,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI;;YAAI,gBAAgB,CAAC,YAAY,CAAC;kBAAW,CACnE,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"LoadingIndicator.js","sourceRoot":"","sources":["../../../src/ui/components/LoadingIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC,MAAM,gBAAgB,GAAG;IACvB,WAAW;IACX,YAAY;IACZ,UAAU;IACV,WAAW;IACX,cAAc;IACd,eAAe;IACf,cAAc;IACd,UAAU;IACV,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAE3I,MAAM,CAAC,MAAM,gBAAgB,GAAa,GAAG,EAAE;IAC7C,gFAAgF;IAChF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE7G,OAAO,CACL,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;QAClC,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;YACnB,oBAAC,OAAO,IAAC,IAAI,EAAE,WAAW,GAAI,CACzB;QACP,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI;;YAAG,gBAAgB,CAAC,YAAY,CAAC;kBAAW,CAClE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownRenderer.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MarkdownRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0K5D,CAAC"}
1
+ {"version":3,"file":"MarkdownRenderer.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MarkdownRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAwK5D,CAAC"}
@@ -29,19 +29,15 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
29
29
  const level = element.level || 1;
30
30
  const colors = ['#00ffff', '#00dddd', '#00bbbb', '#009999', '#007777', '#005555'];
31
31
  const color = colors[level - 1] || '#ffffff';
32
- const prefix = level === 1 ? '\n' : '';
33
- const suffix = '\n';
34
- return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 1 },
32
+ return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 },
35
33
  React.createElement(Text, { bold: true, color: color },
36
- prefix,
37
34
  '#'.repeat(level),
38
35
  " ",
39
- element.content,
40
- suffix)));
36
+ element.content)));
41
37
  }
42
38
  case 'code-block': {
43
39
  const lines = element.content.split('\n');
44
- return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 1, marginTop: 1 },
40
+ return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0, marginTop: 0 },
45
41
  React.createElement(Box, { borderStyle: "round", borderColor: "#666666", paddingX: 1, paddingY: 0 },
46
42
  React.createElement(Box, { flexDirection: "column" },
47
43
  element.language && element.language !== 'text' && (React.createElement(Text, { color: "#888888", dimColor: true }, element.language)),
@@ -60,7 +56,7 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
60
56
  element.children && element.children.length > 0 ? (React.createElement(Text, null, renderInlineElements(element.children))) : (React.createElement(Text, { color: "#ffffff" }, element.content)))));
61
57
  }
62
58
  case 'blockquote': {
63
- return (React.createElement(Box, { key: index, flexDirection: "row", marginBottom: 1 },
59
+ return (React.createElement(Box, { key: index, flexDirection: "row", marginBottom: 0 },
64
60
  React.createElement(Text, { color: "#666666", bold: true },
65
61
  "\u2502",
66
62
  ' '),
@@ -69,22 +65,22 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
69
65
  : element.content)));
70
66
  }
71
67
  case 'horizontal-rule': {
72
- return (React.createElement(Box, { key: index, marginY: 1 },
68
+ return (React.createElement(Box, { key: index, marginY: 0 },
73
69
  React.createElement(Text, { color: "#444444" }, '─'.repeat(Math.min(maxWidth, 80)))));
74
70
  }
75
71
  case 'line-break': {
76
- return React.createElement(Box, { key: index, height: 1 });
72
+ return React.createElement(Box, { key: index, height: 0 });
77
73
  }
78
74
  case 'text': {
79
75
  // If we have inline children (formatted text), render them directly
80
76
  if (element.children && element.children.length > 0) {
81
- return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 1 },
77
+ return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 },
82
78
  React.createElement(Box, { paddingLeft: 2 },
83
79
  React.createElement(Text, null, renderInlineElements(element.children)))));
84
80
  }
85
81
  // Otherwise, wrap plain text if needed
86
82
  const wrappedLines = wrapText(element.content, maxWidth, 2);
87
- return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 1 }, wrappedLines.map((line, lineIdx) => (React.createElement(Box, { key: lineIdx, paddingLeft: 2 },
83
+ return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 }, wrappedLines.map((line, lineIdx) => (React.createElement(Box, { key: lineIdx, paddingLeft: 2 },
88
84
  React.createElement(Text, { color: "#ffffff" }, line))))));
89
85
  }
90
86
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/ui/components/MarkdownRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/ui/components/MarkdownRenderer.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import React from 'react';
2
- interface StreamingMessage {
3
- id: string;
4
- role: 'assistant';
5
- content: string;
6
- timestamp: Date;
7
- }
2
+ import { Message } from '../../types/index.js';
8
3
  interface StreamingMessageDisplayProps {
9
- message: StreamingMessage;
4
+ message: Message;
10
5
  }
6
+ /**
7
+ * StreamingMessageDisplay - Shows streaming content as it arrives
8
+ * Truncates from top if content exceeds max lines to prevent flickering
9
+ */
11
10
  export declare const StreamingMessageDisplay: React.FC<StreamingMessageDisplayProps>;
12
11
  export {};
13
12
  //# sourceMappingURL=StreamingMessageDisplay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingMessageDisplay.d.ts","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,UAAU,4BAA4B;IACpC,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAkCzE,CAAC"}
1
+ {"version":3,"file":"StreamingMessageDisplay.d.ts","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,UAAU,4BAA4B;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA6FzE,CAAC"}
@@ -1,26 +1,83 @@
1
- import React from 'react';
1
+ import React, { useState, useEffect, useRef } from 'react';
2
2
  import { Box, Text } from 'ink';
3
3
  import { MarkdownRenderer } from './MarkdownRenderer.js';
4
+ /**
5
+ * StreamingMessageDisplay - Shows streaming content as it arrives
6
+ * Truncates from top if content exceeds max lines to prevent flickering
7
+ */
4
8
  export const StreamingMessageDisplay = React.memo(({ message }) => {
9
+ const [displayContent, setDisplayContent] = useState('');
10
+ const contentBufferRef = useRef('');
11
+ const updateTimerRef = useRef(null);
12
+ const messageIdRef = useRef(message.id);
13
+ useEffect(() => {
14
+ // If message ID changed, reset everything
15
+ if (messageIdRef.current !== message.id) {
16
+ messageIdRef.current = message.id;
17
+ setDisplayContent('');
18
+ contentBufferRef.current = '';
19
+ if (updateTimerRef.current) {
20
+ clearTimeout(updateTimerRef.current);
21
+ }
22
+ }
23
+ // Buffer the new content
24
+ contentBufferRef.current = message.content;
25
+ // Clear any existing timer
26
+ if (updateTimerRef.current) {
27
+ clearTimeout(updateTimerRef.current);
28
+ }
29
+ // Throttle updates to every 100ms to reduce re-renders while keeping it responsive
30
+ updateTimerRef.current = setTimeout(() => {
31
+ const fullContent = contentBufferRef.current;
32
+ const lines = fullContent.split('\n');
33
+ // Maximum lines to show during streaming (to prevent flickering)
34
+ const MAX_LINES = 15;
35
+ if (lines.length > MAX_LINES) {
36
+ // Show only the last MAX_LINES lines
37
+ const truncatedLines = lines.slice(-MAX_LINES);
38
+ setDisplayContent(truncatedLines.join('\n'));
39
+ }
40
+ else {
41
+ // Show all content if within limit
42
+ setDisplayContent(fullContent);
43
+ }
44
+ }, 100);
45
+ return () => {
46
+ if (updateTimerRef.current) {
47
+ clearTimeout(updateTimerRef.current);
48
+ }
49
+ };
50
+ }, [message.content, message.id]);
51
+ const getRoleColor = (role) => {
52
+ switch (role) {
53
+ case 'user': return '#00ccff';
54
+ case 'assistant': return '#00cc66';
55
+ case 'system': return '#ffaa00';
56
+ case 'tool': return '#00ccff';
57
+ default: return '#ffffff';
58
+ }
59
+ };
60
+ const getRoleLabel = (role) => {
61
+ switch (role) {
62
+ case 'user': return 'You';
63
+ case 'assistant': return 'Centaurus';
64
+ case 'system': return 'System';
65
+ case 'tool': return 'Tool';
66
+ default: return role;
67
+ }
68
+ };
5
69
  const timestamp = message.timestamp
6
70
  ? new Date(message.timestamp).toLocaleTimeString()
7
71
  : '';
8
72
  return (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
9
73
  React.createElement(Box, { marginBottom: 1 },
10
- React.createElement(Text, { color: "#00cc66", bold: true }, "Centaurus:"),
74
+ React.createElement(Text, { color: getRoleColor(message.role), bold: true },
75
+ getRoleLabel(message.role),
76
+ ":"),
11
77
  timestamp && (React.createElement(Text, { color: "#666666", dimColor: true },
12
78
  " ",
13
79
  timestamp))),
14
- message.content && (React.createElement(MarkdownRenderer, { content: message.content, maxWidth: 100 })),
15
80
  React.createElement(Box, { paddingLeft: 2 },
16
- React.createElement(Text, { color: "#00ccff" }, "\u258A"))));
17
- }, (prevProps, nextProps) => {
18
- // Return true if props are equal (skip re-render), false if different (re-render)
19
- // For streaming messages, we need to re-render when content changes
20
- if (prevProps.message.id !== nextProps.message.id)
21
- return false;
22
- if (prevProps.message.content !== nextProps.message.content)
23
- return false;
24
- return true;
81
+ React.createElement(MarkdownRenderer, { content: displayContent }))));
25
82
  });
26
83
  //# sourceMappingURL=StreamingMessageDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingMessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAazD,MAAM,CAAC,MAAM,uBAAuB,GAA2C,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACxG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;QACjC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE;QAClD,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC;QACzC,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC;YAClB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,uBAEnB;YACN,SAAS,IAAI,CACZ,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ;;gBAAG,SAAS,CAAQ,CACnD,CACG;QAGL,OAAO,CAAC,OAAO,IAAI,CAClB,oBAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAI,CAC9D;QAGD,oBAAC,GAAG,IAAC,WAAW,EAAE,CAAC;YACjB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,aAAS,CAC1B,CACF,CACP,CAAC;AACJ,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;IAC1B,kFAAkF;IAClF,oEAAoE;IACpE,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE1E,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"StreamingMessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.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;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,UAAU,yBAAyB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAaD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA8MnE,CAAC"}
1
+ {"version":3,"file":"ToolExecutionMessage.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ToolExecutionMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,UAAU,yBAAyB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAaD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6OnE,CAAC"}
@@ -18,7 +18,20 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
18
18
  const toolInfo = TOOL_LABELS[toolName] || { verb: 'Executing', emoji: '🔧' };
19
19
  // EXECUTING state
20
20
  if (status === 'executing') {
21
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#003b59", paddingX: 1, marginY: 1 },
21
+ // For execute_command, show the actual command
22
+ if (toolName === 'execute_command' && toolArgs) {
23
+ const { command } = toolArgs;
24
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#003b59", paddingX: 1, marginBottom: 1 },
25
+ React.createElement(Box, null,
26
+ React.createElement(Text, { color: "#00ccff", bold: true },
27
+ "\u23F3 ",
28
+ toolInfo.emoji,
29
+ " ",
30
+ toolInfo.verb,
31
+ ": "),
32
+ React.createElement(Text, { color: "#00ccff" }, command))));
33
+ }
34
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#003b59", paddingX: 1, marginBottom: 1 },
22
35
  React.createElement(Box, null,
23
36
  React.createElement(Text, { color: "#00ccff", bold: true },
24
37
  "\u23F3 ",
@@ -29,15 +42,30 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
29
42
  }
30
43
  // ERROR state
31
44
  if (status === 'error') {
32
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#ff3366", paddingX: 1, marginY: 1 },
33
- React.createElement(Box, { marginBottom: 1 },
45
+ // For execute_command, show the actual command
46
+ if (toolName === 'execute_command' && toolArgs) {
47
+ const { command } = toolArgs;
48
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#ff3366", paddingX: 1, paddingY: 1, marginBottom: 1 },
49
+ React.createElement(Box, null,
50
+ React.createElement(Text, { color: "#ff3366", bold: true },
51
+ "\u2717 ",
52
+ toolInfo.emoji,
53
+ " Did not execute: "),
54
+ React.createElement(Text, { color: "#ff3366" }, command)),
55
+ error && (React.createElement(Box, { paddingLeft: 2, marginTop: 1 },
56
+ React.createElement(Text, { color: "#ff3366" },
57
+ error.slice(0, 500),
58
+ error.length > 500 ? '...' : '')))));
59
+ }
60
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#ff3366", paddingX: 1, paddingY: 1, marginBottom: 1 },
61
+ React.createElement(Box, null,
34
62
  React.createElement(Text, { color: "#ff3366", bold: true },
35
63
  "\u2717 ",
36
64
  toolInfo.emoji,
37
65
  " ",
38
66
  toolInfo.verb,
39
67
  " failed")),
40
- error && (React.createElement(Box, { paddingLeft: 2 },
68
+ error && (React.createElement(Box, { paddingLeft: 2, marginTop: 1 },
41
69
  React.createElement(Text, { color: "#ff3366" },
42
70
  error.slice(0, 500),
43
71
  error.length > 500 ? '...' : '')))));
@@ -50,7 +78,7 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
50
78
  const lineInfo = start_line && end_line
51
79
  ? `lines ${start_line}-${end_line}`
52
80
  : 'entire file';
53
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginY: 1 },
81
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
54
82
  React.createElement(Box, null,
55
83
  React.createElement(Text, { color: "#00cc66", bold: true },
56
84
  "\u2713 ",
@@ -63,14 +91,14 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
63
91
  // EXECUTE_COMMAND
64
92
  if (toolName === 'execute_command' && toolArgs) {
65
93
  const { command } = toolArgs;
66
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00cc66", paddingX: 1, marginY: 1 },
67
- React.createElement(Box, { marginBottom: 1 },
94
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00cc66", paddingX: 1, paddingY: 1, marginBottom: 1 },
95
+ React.createElement(Box, null,
68
96
  React.createElement(Text, { color: "#00cc66", bold: true },
69
97
  "\u2713 ",
70
98
  toolInfo.emoji,
71
99
  " "),
72
100
  React.createElement(Text, { color: "#00ccff" }, command)),
73
- result && (React.createElement(Box, { flexDirection: "column", paddingLeft: 2, paddingY: 1, borderStyle: "single", borderColor: "#666666" },
101
+ result && (React.createElement(Box, { flexDirection: "column", paddingLeft: 2, paddingY: 1, marginTop: 1, borderStyle: "single", borderColor: "#666666" },
74
102
  React.createElement(Text, { color: "#aaaaaa" },
75
103
  result.slice(0, 1000),
76
104
  result.length > 1000 ? '\n...(truncated)' : '')))));
@@ -79,7 +107,7 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
79
107
  if (toolName === 'write_file' && toolArgs) {
80
108
  const { file_path, content } = toolArgs;
81
109
  const lines = content ? content.split('\n').length : 0;
82
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginY: 1 },
110
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
83
111
  React.createElement(Box, { marginBottom: 1 },
84
112
  React.createElement(Text, { color: "#00cc66", bold: true },
85
113
  "\u2713 ",
@@ -96,7 +124,7 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
96
124
  // EDIT_FILE
97
125
  if (toolName === 'edit_file' && toolArgs) {
98
126
  const { file_path, search_pattern, replacement } = toolArgs;
99
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginY: 1 },
127
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
100
128
  React.createElement(Box, { marginBottom: 1 },
101
129
  React.createElement(Text, { color: "#00cc66", bold: true },
102
130
  "\u2713 ",
@@ -116,7 +144,7 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
116
144
  // LIST_DIRECTORY
117
145
  if (toolName === 'list_directory' && toolArgs) {
118
146
  const { directory_path } = toolArgs;
119
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginY: 1 },
147
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
120
148
  React.createElement(Box, null,
121
149
  React.createElement(Text, { color: "#00cc66", bold: true },
122
150
  "\u2713 ",
@@ -129,7 +157,7 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
129
157
  // GREP_SEARCH
130
158
  if (toolName === 'grep_search' && toolArgs) {
131
159
  const { pattern } = toolArgs;
132
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginY: 1 },
160
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
133
161
  React.createElement(Box, null,
134
162
  React.createElement(Text, { color: "#00cc66", bold: true },
135
163
  "\u2713 ",
@@ -145,17 +173,17 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
145
173
  // WEB_SEARCH
146
174
  if (toolName === 'web_search' && toolArgs) {
147
175
  const { query } = toolArgs;
148
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginY: 1 },
176
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
149
177
  React.createElement(Box, null,
150
178
  React.createElement(Text, { color: "#00cc66", bold: true },
151
179
  "\u2713 ",
152
180
  toolInfo.emoji,
153
- " Executing"))));
181
+ " Searched the web"))));
154
182
  }
155
183
  // FETCH_URL
156
184
  if (toolName === 'fetch_url' && toolArgs) {
157
185
  const { url } = toolArgs;
158
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginY: 1 },
186
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
159
187
  React.createElement(Box, null,
160
188
  React.createElement(Text, { color: "#00cc66", bold: true },
161
189
  "\u2713 ",
@@ -164,7 +192,7 @@ export const ToolExecutionMessage = React.memo(({ message }) => {
164
192
  React.createElement(Text, { color: "#00ccff" }, url))));
165
193
  }
166
194
  // DEFAULT - for any other tool
167
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginY: 1 },
195
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
168
196
  React.createElement(Box, { marginBottom: 1 },
169
197
  React.createElement(Text, { color: "#00cc66", bold: true },
170
198
  "\u2713 ",
@@ -1 +1 @@
1
- {"version":3,"file":"ToolExecutionMessage.js","sourceRoot":"","sources":["../../../src/ui/components/ToolExecutionMessage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolExecutionMessage.js","sourceRoot":"","sources":["../../../src/ui/components/ToolExecutionMessage.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WelcomeBanner.d.ts","sourceRoot":"","sources":["../../../src/ui/components/WelcomeBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAiChC,CAAC"}
1
+ {"version":3,"file":"WelcomeBanner.d.ts","sourceRoot":"","sources":["../../../src/ui/components/WelcomeBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAkChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WelcomeBanner.js","sourceRoot":"","sources":["../../../src/ui/components/WelcomeBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAGhC,MAAM,CAAC,MAAM,aAAa,GAAa,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;IACrD,uDAAuD;IACvD,MAAM,KAAK,GAAG;QACZ,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,EAAE;QACF,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;KAC1C,CAAC;IAEF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC;QAEzC,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,oBAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAC,SAAS,IAAE,IAAI,CAAQ,CAC5C,CAAC,CACE;QAGN,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;YACf,oBAAC,IAAI,IAAC,QAAQ;;gBAAM,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAa;gCAAoB,CACtE,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"WelcomeBanner.js","sourceRoot":"","sources":["../../../src/ui/components/WelcomeBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAGhC,MAAM,CAAC,MAAM,aAAa,GAAa,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;IAErD,uDAAuD;IACvD,MAAM,KAAK,GAAG;QACZ,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,EAAE;QACF,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;KAC1C,CAAC;IAEF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC;QAEzC,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,oBAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAC,SAAS,IAAE,IAAI,CAAQ,CAC5C,CAAC,CACE;QAGN,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;YACf,oBAAC,IAAI,IAAC,QAAQ;;gBAAM,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAa;gCAAoB,CACtE,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Duplication Detector Utility
3
+ *
4
+ * Detects when the UI has been duplicated by monitoring the terminal output
5
+ * for multiple instances of the InputBox component.
6
+ */
7
+ interface DuplicationDetectorOptions {
8
+ onDuplicationDetected: () => void;
9
+ checkIntervalMs?: number;
10
+ enabled?: boolean;
11
+ }
12
+ /**
13
+ * Detects UI duplication by scanning the terminal buffer for multiple input boxes
14
+ */
15
+ export declare function useDuplicationDetector({ onDuplicationDetected, checkIntervalMs, enabled }: DuplicationDetectorOptions): void;
16
+ export declare function registerInputBoxRender(): void;
17
+ export declare function getInputBoxRenderCount(): number;
18
+ export declare function resetInputBoxRenderCount(): void;
19
+ export declare function setDuplicationCallback(callback: () => void): void;
20
+ export declare function registerBannerRender(): void;
21
+ export declare function getBannerRenderCount(): number;
22
+ export declare function resetBannerRenderCount(): void;
23
+ /**
24
+ * Hook to detect duplication using render counting
25
+ * Checks both InputBox and Banner render counts
26
+ * Banner check is cumulative (never resets automatically), InputBox resets per cycle
27
+ */
28
+ export declare function useRenderCountDuplicationDetector({ onDuplicationDetected, threshold, checkIntervalMs, enabled }: DuplicationDetectorOptions & {
29
+ threshold?: number;
30
+ }): void;
31
+ export {};
32
+ //# sourceMappingURL=duplication-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplication-detector.d.ts","sourceRoot":"","sources":["../../../src/ui/utils/duplication-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,UAAU,0BAA0B;IAClC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,qBAAqB,EACrB,eAAqB,EACrB,OAAc,EACf,EAAE,0BAA0B,QAkC5B;AA0FD,wBAAgB,sBAAsB,IAAI,IAAI,CAU7C;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAUD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAGjE;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAsB3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,qBAAqB,EACrB,SAAa,EACb,eAAqB,EACrB,OAAc,EACf,EAAE,0BAA0B,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,QA2DrD"}