centaurus-cli 2.7.3 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cli-adapter.d.ts +2 -0
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +46 -4
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/context/handlers/wsl-handler.d.ts.map +1 -1
  6. package/dist/context/handlers/wsl-handler.js +2 -1
  7. package/dist/context/handlers/wsl-handler.js.map +1 -1
  8. package/dist/index.js +3 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/services/ai-service-client.d.ts.map +1 -1
  11. package/dist/services/ai-service-client.js +20 -0
  12. package/dist/services/ai-service-client.js.map +1 -1
  13. package/dist/tools/file-ops.d.ts.map +1 -1
  14. package/dist/tools/file-ops.js +13 -3
  15. package/dist/tools/file-ops.js.map +1 -1
  16. package/dist/ui/components/App.d.ts +1 -0
  17. package/dist/ui/components/App.d.ts.map +1 -1
  18. package/dist/ui/components/App.js +73 -74
  19. package/dist/ui/components/App.js.map +1 -1
  20. package/dist/ui/components/InteractiveShell.d.ts +2 -1
  21. package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
  22. package/dist/ui/components/InteractiveShell.js +41 -106
  23. package/dist/ui/components/InteractiveShell.js.map +1 -1
  24. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  25. package/dist/ui/components/MarkdownRenderer.js +12 -8
  26. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  27. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  28. package/dist/ui/components/MessageDisplay.js +10 -2
  29. package/dist/ui/components/MessageDisplay.js.map +1 -1
  30. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  31. package/dist/ui/components/StreamingMessageDisplay.js +5 -5
  32. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  33. package/dist/utils/editor-utils.d.ts +50 -0
  34. package/dist/utils/editor-utils.d.ts.map +1 -0
  35. package/dist/utils/editor-utils.js +501 -0
  36. package/dist/utils/editor-utils.js.map +1 -0
  37. package/dist/utils/input-classifier.d.ts.map +1 -1
  38. package/dist/utils/input-classifier.js +2 -1
  39. package/dist/utils/input-classifier.js.map +1 -1
  40. package/dist/utils/shell.d.ts +32 -1
  41. package/dist/utils/shell.d.ts.map +1 -1
  42. package/dist/utils/shell.js +97 -161
  43. package/dist/utils/shell.js.map +1 -1
  44. package/dist/utils/syntax-checker.d.ts +24 -0
  45. package/dist/utils/syntax-checker.d.ts.map +1 -0
  46. package/dist/utils/syntax-checker.js +320 -0
  47. package/dist/utils/syntax-checker.js.map +1 -0
  48. package/package.json +4 -3
@@ -1,15 +1,29 @@
1
- import React from 'react';
1
+ import React, { useEffect } from 'react';
2
2
  import { Box, Text, useInput } from 'ink';
3
3
  import Spinner from 'ink-spinner';
4
4
  import stripAnsi from 'strip-ansi';
5
5
  import { encodeKeyToAnsi } from '../../utils/ansi-encoder.js';
6
- export const InteractiveShell = React.memo(({ command, cwd, isRunning, output, exitCode, error, onInput, isFocused, onFocusChange, userInput, onSignal }) => {
7
- const maxVisibleLines = 8; // Limit height while running to prevent duplication with history
8
- // Get last N lines of output, merging with user input inline
6
+ export const InteractiveShell = React.memo(({ command, cwd, isRunning, output, exitCode, error, onInput, isFocused, onFocusChange, onSignal, onResize }) => {
7
+ const maxVisibleLines = 8;
8
+ // Handle terminal resize events
9
+ useEffect(() => {
10
+ if (!onResize || !isRunning)
11
+ return;
12
+ const handleResize = () => {
13
+ const cols = process.stdout.columns || 80;
14
+ const rows = process.stdout.rows || 24;
15
+ onResize(cols, rows);
16
+ };
17
+ handleResize();
18
+ process.stdout.on('resize', handleResize);
19
+ return () => {
20
+ process.stdout.off('resize', handleResize);
21
+ };
22
+ }, [onResize, isRunning]);
23
+ // Get last N lines of output
9
24
  const getVisibleOutput = () => {
10
25
  if (!output)
11
26
  return '';
12
- // Remove \r (carriage return) to prevent cursor jumping over borders
13
27
  const safeOutput = output.replace(/\r/g, '');
14
28
  const lines = safeOutput.split('\n');
15
29
  if (lines.length <= maxVisibleLines) {
@@ -17,101 +31,37 @@ export const InteractiveShell = React.memo(({ command, cwd, isRunning, output, e
17
31
  }
18
32
  return lines.slice(-maxVisibleLines).join('\n');
19
33
  };
20
- // Merge output with user input inline (for display)
21
- const getMergedOutput = () => {
22
- const baseOutput = getVisibleOutput();
23
- // If not focused or no user input, just return the output
24
- if (!isFocused || !userInput) {
25
- return { text: baseOutput, userInputStart: -1 };
26
- }
27
- // Append user input to the output inline
28
- // This makes it appear as if the user is typing directly in the terminal
29
- const mergedOutput = baseOutput + userInput;
30
- const userInputStart = baseOutput.length;
31
- return { text: mergedOutput, userInputStart };
32
- };
33
- // Handle input when shell is focused - LINE-BUFFERED with ANSI encoding
34
+ // Handle input - PTY mode sends everything immediately
34
35
  useInput((input, key) => {
35
36
  if (!isFocused || !onInput)
36
37
  return;
37
- // ============================================
38
- // CRITICAL: LINE-BUFFERED MODE
39
- // ============================================
40
- // We buffer regular characters locally and only send the complete line
41
- // when Enter is pressed. This ensures compatibility with programs that
42
- // expect line-buffered input (batch files, shell scripts, etc.)
43
- //
44
- // Special keys (arrows, Ctrl+C, etc.) are sent immediately as ANSI codes.
45
- // ============================================
46
- // 1. Global App Controls
38
+ // Global: Ctrl+F to exit focus mode
47
39
  if (key.ctrl && input === 'f') {
48
40
  onFocusChange(false);
49
41
  return;
50
42
  }
51
- // 2. Handle Enter - Send complete buffered line
52
- if (key.return) {
53
- // Send the complete user input + platform-specific newline
54
- const completeInput = (userInput || '') + encodeKeyToAnsi(input, key);
55
- onInput(completeInput);
56
- return;
57
- }
58
- // 3. Handle Backspace - Signal to remove from buffer
59
- if (key.backspace || key.delete) {
60
- onInput('\x08'); // Backspace marker (handled by App.tsx)
61
- return;
62
- }
63
- // 4. Handle Control Keys - Send immediately
64
- if (key.ctrl) {
65
- // Special handling for signals
66
- if (input === 'c') {
67
- try {
68
- require('fs').appendFileSync('shell_ui_debug.log', `[InteractiveShell] Ctrl+C detected. onSignal exists: ${!!onSignal}\n`);
69
- }
70
- catch (e) { }
71
- // 1. Inject ETX (\x03) to simulate real terminal input
72
- if (onInput) {
73
- onInput('\x03');
74
- }
75
- // 2. Send signal to backend
76
- if (onSignal) {
77
- onSignal('SIGINT');
78
- return;
79
- }
80
- }
81
- if (input === 'd' && onSignal) {
82
- // Only send EOF if buffer is empty, otherwise it might be delete char
83
- if (!userInput) {
84
- onSignal('SIGTERM'); // Or close stdin
85
- return;
86
- }
87
- }
88
- const encoded = encodeKeyToAnsi(input, key);
89
- if (encoded) {
90
- onInput(encoded);
43
+ // Ctrl+C - send to PTY AND signal backend for forceful termination
44
+ if (key.ctrl && input === 'c') {
45
+ onInput('\x03');
46
+ if (onSignal) {
47
+ onSignal('SIGINT');
91
48
  }
92
49
  return;
93
50
  }
94
- // 5. Handle Arrow Keys - Send immediately (for readline support)
95
- if (key.upArrow || key.downArrow || key.leftArrow || key.rightArrow || key.pageUp || key.pageDown) {
96
- const encoded = encodeKeyToAnsi(input, key);
97
- if (encoded) {
98
- onInput(encoded);
99
- }
51
+ // Ctrl+D - EOF
52
+ if (key.ctrl && input === 'd') {
53
+ onInput('\x04');
100
54
  return;
101
55
  }
102
- // 6. Handle Tab - Add to buffer
103
- if (key.tab) {
104
- onInput('\t');
56
+ // Ctrl+Z - Suspend
57
+ if (key.ctrl && input === 'z') {
58
+ onInput('\x1A');
105
59
  return;
106
60
  }
107
- // 7. Regular Characters - Add to buffer (don't send yet)
108
- // These will be sent when Enter is pressed
109
- if (input && input.length > 0) {
110
- // Filter out control characters
111
- const charCode = input.charCodeAt(0);
112
- if (charCode >= 32 || input === '\t') {
113
- onInput(input); // Add to buffer (handled by App.tsx)
114
- }
61
+ // Encode and send all keys immediately
62
+ const encoded = encodeKeyToAnsi(input, key);
63
+ if (encoded) {
64
+ onInput(encoded);
115
65
  }
116
66
  }, { isActive: isFocused });
117
67
  // Determine border color and icon based on status
@@ -130,24 +80,8 @@ export const InteractiveShell = React.memo(({ command, cwd, isRunning, output, e
130
80
  return '✓';
131
81
  };
132
82
  const color = getBorderColor();
133
- // Get merged output with user input inline
134
- const { text: mergedText, userInputStart } = isRunning ? getMergedOutput() : { text: output, userInputStart: -1 };
135
- const cleanOutput = stripAnsi(mergedText);
136
- // Split output into parts: before user input and user input
137
- const renderOutput = () => {
138
- if (!cleanOutput)
139
- return null;
140
- // If no user input or not focused, render normally
141
- if (userInputStart === -1 || !isFocused) {
142
- return React.createElement(Text, { wrap: "wrap" }, cleanOutput);
143
- }
144
- // Split at user input position
145
- const beforeInput = cleanOutput.substring(0, userInputStart);
146
- const userInputPart = cleanOutput.substring(userInputStart);
147
- return (React.createElement(Text, { wrap: "wrap" },
148
- beforeInput,
149
- React.createElement(Text, { color: "#00ff00" }, userInputPart)));
150
- };
83
+ const visibleOutput = getVisibleOutput();
84
+ const cleanOutput = stripAnsi(visibleOutput);
151
85
  return (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
152
86
  React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: color, paddingX: 1 },
153
87
  React.createElement(Box, { marginBottom: 1 },
@@ -162,10 +96,11 @@ export const InteractiveShell = React.memo(({ command, cwd, isRunning, output, e
162
96
  "[current working directory ",
163
97
  cwd,
164
98
  "]")),
165
- cleanOutput && (React.createElement(Box, null, renderOutput())),
99
+ cleanOutput && (React.createElement(Box, null,
100
+ React.createElement(Text, { wrap: "wrap" }, cleanOutput))),
166
101
  isFocused && isRunning && (React.createElement(Box, { marginTop: 1 },
167
102
  React.createElement(Text, { color: "#ffaa00", bold: true }, "[ FOCUS MODE ] "),
168
- React.createElement(Text, { color: "#666666" }, "Ctrl+F to exit focus mode | Type to send input"))),
103
+ React.createElement(Text, { color: "#666666" }, "Ctrl+F to exit | PTY Mode - Full terminal emulation"))),
169
104
  error && !isRunning && (React.createElement(Box, { marginTop: 1 },
170
105
  React.createElement(Text, { color: "#ff3366", wrap: "wrap" }, error.replace(/\r/g, ''))))),
171
106
  isRunning && !isFocused && (React.createElement(Box, { marginLeft: 1 },
@@ -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":"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,CAgL5D,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,CAoL5D,CAAC"}
@@ -32,7 +32,7 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
32
32
  // Wrap heading text if it's too long
33
33
  const availableWidth = maxWidth - 2; // -2 for padding
34
34
  const wrappedLines = wrapText(element.content, availableWidth, 0);
35
- return (React.createElement(Box, { key: index, flexDirection: "column", marginTop: 1, marginBottom: 0 }, wrappedLines.map((line, lineIdx) => (React.createElement(Text, { key: lineIdx, bold: true, color: color }, line)))));
35
+ return (React.createElement(Box, { key: index, flexDirection: "column", marginTop: 0, marginBottom: 0 }, wrappedLines.map((line, lineIdx) => (React.createElement(Text, { key: lineIdx, bold: true, color: color }, line)))));
36
36
  }
37
37
  case 'code-block': {
38
38
  const lines = element.content.split('\n');
@@ -46,14 +46,16 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
46
46
  const indent = (element.level || 0) * 2;
47
47
  const bullet = element.ordered ? `${element.index}.` : '•';
48
48
  const bulletColor = '#00cc66';
49
- // Render list item with inline formatting preserved
49
+ const bulletWidth = element.ordered ? 3 : 2; // "1." or "•" + space
50
+ const availableWidth = maxWidth - indent - bulletWidth - 4; // Account for all padding
51
+ // Render list item with proper width constraints
50
52
  return (React.createElement(Box, { key: index, flexDirection: "row", marginBottom: 0 },
51
53
  React.createElement(Text, { color: "#666666" }, ' '.repeat(indent)),
52
54
  React.createElement(Text, { color: bulletColor, bold: true },
53
55
  bullet,
54
56
  ' '),
55
- React.createElement(Box, { flexShrink: 1 },
56
- React.createElement(Text, null, element.children && element.children.length > 0
57
+ React.createElement(Box, { flexShrink: 1, width: availableWidth },
58
+ React.createElement(Text, { wrap: "wrap" }, element.children && element.children.length > 0
57
59
  ? renderInlineElements(element.children)
58
60
  : React.createElement(Text, { color: "#ffffff" }, element.content)))));
59
61
  }
@@ -71,14 +73,16 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
71
73
  React.createElement(Text, { color: "#444444" }, '─'.repeat(Math.min(maxWidth, 80)))));
72
74
  }
73
75
  case 'line-break': {
74
- return React.createElement(Box, { key: index, height: 0 });
76
+ // Use a Text element with newline instead of Box with height={0}
77
+ // to prevent breaking the parent's border
78
+ return React.createElement(Text, { key: index }, ' ');
75
79
  }
76
80
  case 'text': {
77
- // If we have inline children (formatted text), render them directly
81
+ // If we have inline children (formatted text), render them with proper wrapping
78
82
  if (element.children && element.children.length > 0) {
79
83
  return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 },
80
- React.createElement(Box, { paddingLeft: 2 },
81
- React.createElement(Text, null, renderInlineElements(element.children)))));
84
+ React.createElement(Box, { paddingLeft: 2, width: maxWidth - 2, flexWrap: "wrap" },
85
+ React.createElement(Text, { wrap: "wrap" }, renderInlineElements(element.children)))));
82
86
  }
83
87
  // Otherwise, wrap plain text if needed
84
88
  // Account for paddingLeft={2} in the wrapping calculation
@@ -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":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAiB,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAOzF,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,GAAG,EAAE,EAAE,EAAE;IAC/F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzE,MAAM,oBAAoB,GAAG,CAAC,QAA0B,EAAmB,EAAE;QAC3E,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,MAAM;oBACT,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,IAAI,QAAC,KAAK,EAAC,SAAS,IACjC,KAAK,CAAC,OAAO,CACT,CACR,CAAC;gBACJ,KAAK,QAAQ;oBACX,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,MAAM,QAAC,KAAK,EAAC,SAAS,IACnC,KAAK,CAAC,OAAO,CACT,CACR,CAAC;gBACJ,KAAK,aAAa;oBAChB,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAC,SAAS,EAAC,KAAK,EAAC,SAAS,IACtD,IAAI,KAAK,CAAC,OAAO,GAAG,CAChB,CACR,CAAC;gBACJ,KAAK,MAAM;oBACT,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,SAAS,EAAC,SAAS,UACtC,KAAK,CAAC,OAAO,CACT,CACR,CAAC;gBACJ,KAAK,MAAM,CAAC;gBACZ;oBACE,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,SAAS,IAC5B,KAAK,CAAC,OAAO,CACT,CACR,CAAC;YACN,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,OAAsB,EAAE,KAAa,EAAmB,EAAE;QAC/E,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAClF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;gBAE7C,qCAAqC;gBACrC,MAAM,cAAc,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,iBAAiB;gBACtD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBAElE,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,IAClE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CACnC,oBAAC,IAAI,IAAC,GAAG,EAAE,OAAO,EAAE,IAAI,QAAC,KAAK,EAAE,KAAK,IAClC,IAAI,CACA,CACR,CAAC,CACE,CACP,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE1C,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;oBACnE,oBAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;wBACrE,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;4BACxB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,CAClD,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,UAC3B,OAAO,CAAC,QAAQ,CACZ,CACR;4BACA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAC5B,oBAAC,IAAI,IAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAC,SAAS,IAChC,IAAI,IAAI,GAAG,CACP,CACR,CAAC,CACE,CACF,CACF,CACP,CAAC;YACJ,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3D,MAAM,WAAW,GAAG,SAAS,CAAC;gBAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;gBACnE,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,0BAA0B;gBAEtF,iDAAiD;gBACjD,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,KAAK,EAAC,YAAY,EAAE,CAAC;oBAClD,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAQ;oBACjD,oBAAC,IAAI,IAAC,KAAK,EAAE,WAAW,EAAE,IAAI;wBAC3B,MAAM;wBAAE,GAAG,CACP;oBACP,oBAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc;wBACvC,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM,IACd,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;4BAC9C,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC;4BACxC,CAAC,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,OAAO,CAAC,OAAO,CAAQ,CAC7C,CACH,CACF,CACP,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,KAAK,EAAC,YAAY,EAAE,CAAC;oBAClD,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI;;wBACtB,GAAG,CACA;oBACP,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,MAAM,UACzB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;wBAC9C,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACxC,CAAC,CAAC,OAAO,CAAC,OAAO,CACd,CACH,CACP,CAAC;YACJ,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;oBACzB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAQ,CAC7D,CACP,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,iEAAiE;gBACjE,0CAA0C;gBAC1C,OAAO,oBAAC,IAAI,IAAC,GAAG,EAAE,KAAK,IAAG,GAAG,CAAQ,CAAC;YACxC,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,gFAAgF;gBAChF,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpD,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC;wBACrD,oBAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAC,MAAM;4BACvD,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM,IAAE,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAQ,CAC7D,CACF,CACP,CAAC;gBACJ,CAAC;gBAED,uCAAuC;gBACvC,0DAA0D;gBAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEhE,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,IACpD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CACnC,oBAAC,GAAG,IAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;oBAC/B,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,IAAI,CAAQ,CAC/B,CACP,CAAC,CACE,CACP,CAAC;YACJ,CAAC;YAED;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAC5D,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -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;AAM/C,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8GvD,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;AAI/C,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAyGvD,CAAC"}
@@ -51,6 +51,14 @@ export const MessageDisplay = React.memo(({ message }) => {
51
51
  if (message.approval) {
52
52
  return null;
53
53
  }
54
+ // Determine border color based on message type
55
+ const getBorderColor = () => {
56
+ if (message.isCommandMode) {
57
+ return message.role === 'assistant' ? '#00cc66' : '#00ccff';
58
+ }
59
+ return message.role === 'assistant' ? '#00ccff' : '#666666';
60
+ };
61
+ const borderColor = getBorderColor();
54
62
  // Regular message rendering
55
63
  return (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
56
64
  React.createElement(Box, { marginBottom: 1 },
@@ -67,8 +75,8 @@ export const MessageDisplay = React.memo(({ message }) => {
67
75
  " second",
68
76
  message.thinkingDuration !== 1 ? 's' : '',
69
77
  " \u203A"))),
70
- message.isCommandMode ? (React.createElement(Box, { borderStyle: "single", borderColor: message.role === 'assistant' ? '#00cc66' : '#00ccff', borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1 }, message.role === 'assistant' ? (React.createElement(MarkdownRenderer, { content: message.content, maxWidth: 94 })) : (React.createElement(Text, { color: "#ffffff" }, message.content)))) : message.role === 'assistant' ? (React.createElement(Box, { borderStyle: "single", borderColor: "#00ccff", borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1 },
71
- React.createElement(MarkdownRenderer, { content: message.content, maxWidth: 94 }))) : (React.createElement(Box, { paddingLeft: 2 },
78
+ message.role === 'assistant' ? (React.createElement(Box, { borderStyle: "single", borderColor: borderColor, borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1, flexDirection: "column", width: "100%" },
79
+ React.createElement(MarkdownRenderer, { content: message.content, maxWidth: (process.stdout.columns || 120) - 6 }))) : (React.createElement(Box, { paddingLeft: 2 },
72
80
  React.createElement(Text, { color: "#ffffff" }, message.content)))));
73
81
  });
74
82
  //# sourceMappingURL=MessageDisplay.js.map
@@ -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":"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,CAuHzE,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,CAyHzE,CAAC"}
@@ -26,7 +26,7 @@ export const StreamingMessageDisplay = React.memo(({ message }) => {
26
26
  if (updateTimerRef.current) {
27
27
  clearTimeout(updateTimerRef.current);
28
28
  }
29
- // Throttle updates to every 100ms to reduce re-renders while keeping it responsive
29
+ // Throttle updates to every 50ms for more responsive streaming while preventing excessive re-renders
30
30
  updateTimerRef.current = setTimeout(() => {
31
31
  const fullContent = contentBufferRef.current;
32
32
  const lines = fullContent.split('\n');
@@ -41,7 +41,7 @@ export const StreamingMessageDisplay = React.memo(({ message }) => {
41
41
  // Show all content if within limit
42
42
  setDisplayContent(fullContent);
43
43
  }
44
- }, 100);
44
+ }, 50);
45
45
  return () => {
46
46
  if (updateTimerRef.current) {
47
47
  clearTimeout(updateTimerRef.current);
@@ -84,8 +84,8 @@ export const StreamingMessageDisplay = React.memo(({ message }) => {
84
84
  " second",
85
85
  message.thinkingDuration !== 1 ? 's' : '',
86
86
  " \u203A"))),
87
- React.createElement(Box, { borderStyle: "single", borderColor: "#00ccff", borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1 },
88
- React.createElement(MarkdownRenderer, { content: displayContent, maxWidth: 94 })),
89
- message.thoughts && message.thoughts.length > 0 && message.thinkingDuration === undefined && (React.createElement(Box, { flexDirection: "column", marginTop: 1, paddingLeft: 1 }, message.thoughts.map((line, idx) => (React.createElement(Text, { key: idx, dimColor: true }, line)))))));
87
+ React.createElement(Box, { borderStyle: "single", borderColor: "#00ccff", borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1, flexDirection: "column" },
88
+ React.createElement(MarkdownRenderer, { content: displayContent, maxWidth: (process.stdout.columns || 120) - 6 }),
89
+ message.thoughts && message.thoughts.length > 0 && message.thinkingDuration === undefined && (React.createElement(Box, { flexDirection: "column", marginTop: 1 }, message.thoughts.map((line, idx) => (React.createElement(Text, { key: idx, dimColor: true }, line))))))));
90
90
  });
91
91
  //# sourceMappingURL=StreamingMessageDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingMessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StreamingMessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Check if a command is an interactive editor that needs full terminal control
3
+ */
4
+ export declare function isInteractiveEditorCommand(command: string): boolean;
5
+ /**
6
+ * Check if the command is specifically for nano editor (the only remote-supported editor currently)
7
+ */
8
+ export declare function isNanoEditor(command: string): boolean;
9
+ /**
10
+ * Get the display name of an editor command for user-friendly messages
11
+ */
12
+ export declare function getEditorName(command: string): string;
13
+ /**
14
+ * Run an interactive editor with full terminal control (LOCAL mode).
15
+ * This function:
16
+ * 1. Clears the screen and enters alternate screen buffer
17
+ * 2. Spawns a PTY process
18
+ * 3. Pipes stdin directly to the PTY (raw mode)
19
+ * 4. Pipes PTY output directly to stdout
20
+ * 5. Handles cleanup on exit
21
+ *
22
+ * Uses alternate screen buffer to prevent chat history from showing through.
23
+ */
24
+ export declare function runInteractiveEditor(command: string, cwd: string, onExit: (exitCode: number) => void): {
25
+ kill: () => void;
26
+ };
27
+ /**
28
+ * Run an interactive editor in WSL session via node-pty.
29
+ * Uses wsl.exe to execute the editor command in the specified distribution.
30
+ */
31
+ export declare function runWSLEditor(distribution: string, command: string, cwd: string, onExit: (exitCode: number) => void): {
32
+ kill: () => void;
33
+ };
34
+ /**
35
+ * Run an interactive editor in Docker container via node-pty.
36
+ * Uses docker exec -it to execute the editor command in the container.
37
+ */
38
+ export declare function runDockerEditor(containerId: string, command: string, cwd: string, onExit: (exitCode: number) => void): {
39
+ kill: () => void;
40
+ };
41
+ /**
42
+ * Run an interactive editor in SSH session via ssh2's interactive shell.
43
+ * This is more complex as we need to use the ssh2 client's shell() method
44
+ * instead of exec() to get a proper interactive PTY.
45
+ */
46
+ export declare function runSSHEditor(sshClient: any, // ssh2 Client
47
+ command: string, cwd: string, onExit: (exitCode: number) => void): {
48
+ kill: () => void;
49
+ };
50
+ //# sourceMappingURL=editor-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-utils.d.ts","sourceRoot":"","sources":["../../src/utils/editor-utils.ts"],"names":[],"mappings":"AA2BA;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAwBnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAWrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA2BrD;AAwKD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA6GtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA6BtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA8BtB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CACxB,SAAS,EAAE,GAAG,EAAE,cAAc;AAC9B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAwGtB"}