centaurus-cli 2.7.3 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-adapter.d.ts +10 -6
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +613 -154
- package/dist/cli-adapter.js.map +1 -1
- package/dist/config/slash-commands.d.ts.map +1 -1
- package/dist/config/slash-commands.js +1 -0
- package/dist/config/slash-commands.js.map +1 -1
- package/dist/context/context-manager.d.ts +4 -1
- package/dist/context/context-manager.d.ts.map +1 -1
- package/dist/context/context-manager.js +30 -7
- package/dist/context/context-manager.js.map +1 -1
- package/dist/context/handlers/wsl-handler.d.ts +10 -0
- package/dist/context/handlers/wsl-handler.d.ts.map +1 -1
- package/dist/context/handlers/wsl-handler.js +31 -2
- package/dist/context/handlers/wsl-handler.js.map +1 -1
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -1
- package/dist/services/ai-service-client.d.ts +1 -0
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +20 -0
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/tools/command.d.ts.map +1 -1
- package/dist/tools/command.js +136 -21
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/file-ops.d.ts +1 -0
- package/dist/tools/file-ops.d.ts.map +1 -1
- package/dist/tools/file-ops.js +144 -3
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/tools/inspect-symbol.js +27 -27
- package/dist/tools/inspect-symbol.js.map +1 -1
- package/dist/tools/plan-mode.d.ts +55 -19
- package/dist/tools/plan-mode.d.ts.map +1 -1
- package/dist/tools/plan-mode.js +204 -123
- package/dist/tools/plan-mode.js.map +1 -1
- package/dist/tools/types.d.ts +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/App.d.ts +6 -5
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +277 -125
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +24 -5
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/InteractiveShell.d.ts +2 -1
- package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
- package/dist/ui/components/InteractiveShell.js +41 -106
- package/dist/ui/components/InteractiveShell.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +12 -8
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/MessageDisplay.js +11 -3
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/PlanAcceptedMessage.d.ts +12 -0
- package/dist/ui/components/PlanAcceptedMessage.d.ts.map +1 -0
- package/dist/ui/components/PlanAcceptedMessage.js +22 -0
- package/dist/ui/components/PlanAcceptedMessage.js.map +1 -0
- package/dist/ui/components/PlanReviewScreen.d.ts +14 -0
- package/dist/ui/components/PlanReviewScreen.d.ts.map +1 -0
- package/dist/ui/components/PlanReviewScreen.js +52 -0
- package/dist/ui/components/PlanReviewScreen.js.map +1 -0
- package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.js +5 -5
- package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
- package/dist/ui/components/TaskCompletedMessage.d.ts +14 -0
- package/dist/ui/components/TaskCompletedMessage.d.ts.map +1 -0
- package/dist/ui/components/TaskCompletedMessage.js +25 -0
- package/dist/ui/components/TaskCompletedMessage.js.map +1 -0
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +174 -17
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/utils/conversation-logger.d.ts +127 -0
- package/dist/utils/conversation-logger.d.ts.map +1 -0
- package/dist/utils/conversation-logger.js +283 -0
- package/dist/utils/conversation-logger.js.map +1 -0
- package/dist/utils/editor-utils.d.ts +87 -0
- package/dist/utils/editor-utils.d.ts.map +1 -0
- package/dist/utils/editor-utils.js +712 -0
- package/dist/utils/editor-utils.js.map +1 -0
- package/dist/utils/input-classifier.d.ts.map +1 -1
- package/dist/utils/input-classifier.js +12 -4
- package/dist/utils/input-classifier.js.map +1 -1
- package/dist/utils/markdown-parser.d.ts.map +1 -1
- package/dist/utils/markdown-parser.js +4 -2
- package/dist/utils/markdown-parser.js.map +1 -1
- package/dist/utils/shell.d.ts +32 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +97 -161
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-checker.d.ts +24 -0
- package/dist/utils/syntax-checker.d.ts.map +1 -0
- package/dist/utils/syntax-checker.js +320 -0
- package/dist/utils/syntax-checker.js.map +1 -0
- package/package.json +4 -3
- package/prompts/system-prompt-autonomous.md +0 -377
|
@@ -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,
|
|
7
|
-
const maxVisibleLines = 8;
|
|
8
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
52
|
-
if (key.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
//
|
|
95
|
-
if (key.
|
|
96
|
-
|
|
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
|
-
//
|
|
103
|
-
if (key.
|
|
104
|
-
onInput('\
|
|
56
|
+
// Ctrl+Z - Suspend
|
|
57
|
+
if (key.ctrl && input === 'z') {
|
|
58
|
+
onInput('\x1A');
|
|
105
59
|
return;
|
|
106
60
|
}
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
if (
|
|
110
|
-
|
|
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
|
-
|
|
134
|
-
const
|
|
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,
|
|
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
|
|
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":"AAAA,OAAO,
|
|
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,
|
|
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:
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
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":"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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;
|
|
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,CA6GvD,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.
|
|
71
|
-
React.createElement(MarkdownRenderer, { content: message.content, maxWidth:
|
|
72
|
-
React.createElement(Text, { color: "#ffffff" }, message.content)))));
|
|
78
|
+
message.role === 'assistant' ? (message.content.trim() ? (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 }))) : null) : (message.content.trim() ? (React.createElement(Box, { paddingLeft: 2 },
|
|
80
|
+
React.createElement(Text, { color: "#ffffff" }, message.content))) : null)));
|
|
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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/MessageDisplay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlanAcceptedMessage Component
|
|
3
|
+
* Displays a message when the plan is accepted and execution begins
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
interface PlanAcceptedMessageProps {
|
|
7
|
+
planTitle?: string;
|
|
8
|
+
totalTasks?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const PlanAcceptedMessage: React.FC<PlanAcceptedMessageProps>;
|
|
11
|
+
export default PlanAcceptedMessage;
|
|
12
|
+
//# sourceMappingURL=PlanAcceptedMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanAcceptedMessage.d.ts","sourceRoot":"","sources":["../../../src/ui/components/PlanAcceptedMessage.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,wBAAwB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA6BlE,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlanAcceptedMessage Component
|
|
3
|
+
* Displays a message when the plan is accepted and execution begins
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { Box, Text } from 'ink';
|
|
7
|
+
export const PlanAcceptedMessage = ({ planTitle, totalTasks }) => {
|
|
8
|
+
return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#00cc66", paddingX: 1, paddingY: 0, marginY: 0 },
|
|
9
|
+
React.createElement(Box, null,
|
|
10
|
+
React.createElement(Text, { color: "#00cc66", bold: true }, "\u2713 "),
|
|
11
|
+
React.createElement(Text, { color: "#00cc66", bold: true }, "Plan Accepted")),
|
|
12
|
+
planTitle && (React.createElement(Box, { marginLeft: 2 },
|
|
13
|
+
React.createElement(Text, { color: "#888888" }, planTitle))),
|
|
14
|
+
totalTasks && (React.createElement(Box, { marginLeft: 2 },
|
|
15
|
+
React.createElement(Text, { color: "#666666", dimColor: true },
|
|
16
|
+
"Starting execution of ",
|
|
17
|
+
totalTasks,
|
|
18
|
+
" task",
|
|
19
|
+
totalTasks > 1 ? 's' : '')))));
|
|
20
|
+
};
|
|
21
|
+
export default PlanAcceptedMessage;
|
|
22
|
+
//# sourceMappingURL=PlanAcceptedMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanAcceptedMessage.js","sourceRoot":"","sources":["../../../src/ui/components/PlanAcceptedMessage.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAOhC,MAAM,CAAC,MAAM,mBAAmB,GAAuC,CAAC,EACpE,SAAS,EACT,UAAU,EACb,EAAE,EAAE;IACD,OAAO,CACH,oBAAC,GAAG,IACA,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,SAAS,EACrB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC;QAEV,oBAAC,GAAG;YACA,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,oBAAU;YACpC,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,0BAAqB,CAC7C;QACL,SAAS,IAAI,CACV,oBAAC,GAAG,IAAC,UAAU,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,SAAS,CAAQ,CACtC,CACT;QACA,UAAU,IAAI,CACX,oBAAC,GAAG,IAAC,UAAU,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ;;gBAAwB,UAAU;;gBAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAQ,CACtG,CACT,CACC,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlanReviewScreen Component
|
|
3
|
+
* Dedicated screen for reviewing and approving/editing a plan
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { Plan } from '../../tools/plan-mode.js';
|
|
7
|
+
interface PlanReviewScreenProps {
|
|
8
|
+
plan: Plan;
|
|
9
|
+
onApprove: () => void;
|
|
10
|
+
onEdit: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const PlanReviewScreen: React.FC<PlanReviewScreenProps>;
|
|
13
|
+
export default PlanReviewScreen;
|
|
14
|
+
//# sourceMappingURL=PlanReviewScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanReviewScreen.d.ts","sourceRoot":"","sources":["../../../src/ui/components/PlanReviewScreen.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,UAAU,qBAAqB;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAuF5D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlanReviewScreen Component
|
|
3
|
+
* Dedicated screen for reviewing and approving/editing a plan
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { Box, Text, useInput } from 'ink';
|
|
7
|
+
export const PlanReviewScreen = ({ plan, onApprove, onEdit }) => {
|
|
8
|
+
// Handle keyboard input
|
|
9
|
+
useInput((input, key) => {
|
|
10
|
+
if (key.return || input.toLowerCase() === 'y') {
|
|
11
|
+
onApprove();
|
|
12
|
+
}
|
|
13
|
+
else if (input.toLowerCase() === 'e' || input.toLowerCase() === 'n') {
|
|
14
|
+
onEdit();
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return (React.createElement(Box, { flexDirection: "column", paddingX: 2, paddingY: 1 },
|
|
18
|
+
React.createElement(Box, { borderStyle: "double", borderColor: "#ffaa00", paddingX: 2, paddingY: 1, marginBottom: 1 },
|
|
19
|
+
React.createElement(Text, { color: "#ffaa00", bold: true }, "\uD83D\uDCCB PLAN REVIEW")),
|
|
20
|
+
React.createElement(Box, { marginBottom: 1 },
|
|
21
|
+
React.createElement(Text, { color: "#00ccff", bold: true }, plan.title)),
|
|
22
|
+
plan.summary && (React.createElement(Box, { marginBottom: 1 },
|
|
23
|
+
React.createElement(Text, { color: "#888888" }, plan.summary))),
|
|
24
|
+
React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#666666", paddingX: 1, paddingY: 1, marginBottom: 1 },
|
|
25
|
+
React.createElement(Text, { color: "#888888", dimColor: true }, "Tasks to execute:"),
|
|
26
|
+
React.createElement(Box, { flexDirection: "column", marginTop: 1 }, plan.steps.map((step, index) => {
|
|
27
|
+
const complexityColor = step.estimatedComplexity === 'high' ? '#ff6666' :
|
|
28
|
+
step.estimatedComplexity === 'medium' ? '#ffaa00' : '#00cc66';
|
|
29
|
+
const complexityLabel = step.estimatedComplexity ? ` [${step.estimatedComplexity}]` : '';
|
|
30
|
+
return (React.createElement(Box, { key: step.id },
|
|
31
|
+
React.createElement(Text, { color: "#888888" },
|
|
32
|
+
index + 1,
|
|
33
|
+
". "),
|
|
34
|
+
React.createElement(Text, null, step.description),
|
|
35
|
+
step.estimatedComplexity && (React.createElement(Text, { color: complexityColor }, complexityLabel))));
|
|
36
|
+
}))),
|
|
37
|
+
React.createElement(Box, { marginTop: 1, flexDirection: "column" },
|
|
38
|
+
React.createElement(Box, null,
|
|
39
|
+
React.createElement(Text, { color: "#888888" }, "Press "),
|
|
40
|
+
React.createElement(Text, { color: "#00cc66", bold: true }, "Enter"),
|
|
41
|
+
React.createElement(Text, { color: "#888888" }, " or "),
|
|
42
|
+
React.createElement(Text, { color: "#00cc66", bold: true }, "Y"),
|
|
43
|
+
React.createElement(Text, { color: "#888888" }, " to proceed with plan")),
|
|
44
|
+
React.createElement(Box, null,
|
|
45
|
+
React.createElement(Text, { color: "#888888" }, "Press "),
|
|
46
|
+
React.createElement(Text, { color: "#ffaa00", bold: true }, "E"),
|
|
47
|
+
React.createElement(Text, { color: "#888888" }, " or "),
|
|
48
|
+
React.createElement(Text, { color: "#ffaa00", bold: true }, "N"),
|
|
49
|
+
React.createElement(Text, { color: "#888888" }, " to edit plan (provide feedback)")))));
|
|
50
|
+
};
|
|
51
|
+
export default PlanReviewScreen;
|
|
52
|
+
//# sourceMappingURL=PlanReviewScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanReviewScreen.js","sourceRoot":"","sources":["../../../src/ui/components/PlanReviewScreen.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,
|
|
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,CA8HzE,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
|
|
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
|
-
},
|
|
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:
|
|
89
|
-
|
|
87
|
+
(displayContent.trim() || (message.thoughts && message.thoughts.length > 0 && message.thinkingDuration === undefined)) && (React.createElement(Box, { borderStyle: "single", borderColor: "#00ccff", borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1, flexDirection: "column" },
|
|
88
|
+
displayContent.trim() && (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: displayContent.trim() ? 1 : 0 }, 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":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA2C,KAAK,CAAC,IAAI,CAAC,CAAC,EACzF,OAAO,EACR,EAAE,EAAE;IACH,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,0CAA0C;QAC1C,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;YACxC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;YAClC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtB,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAC;YAC9B,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE3C,2BAA2B;QAC3B,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"StreamingMessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA2C,KAAK,CAAC,IAAI,CAAC,CAAC,EACzF,OAAO,EACR,EAAE,EAAE;IACH,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,0CAA0C;QAC1C,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;YACxC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;YAClC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtB,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAC;YAC9B,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE3C,2BAA2B;QAC3B,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,qGAAqG;QACrG,cAAc,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACvC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;YAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEtC,iEAAiE;YACjE,MAAM,SAAS,GAAG,EAAE,CAAC;YAErB,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;gBAC7B,qCAAqC;gBACrC,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC/C,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,GAAG,EAAE;YACV,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAElC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;YAC9B,KAAK,WAAW,CAAC,CAAC,OAAO,SAAS,CAAC;YACnC,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC;YAChC,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;YAC9B,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC;YAC1B,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;YACrC,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,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,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI;gBAC1C,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB;YACN,SAAS,IAAI,CACZ,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ;;gBAAG,SAAS,CAAQ,CACnD,CACG;QAGL,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAC1E,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC;YAClB,oBAAC,IAAI,IAAC,QAAQ;;gBAAc,OAAO,CAAC,gBAAgB;;gBAAS,OAAO,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;0BAAU,CAC5G,CACP;QAKA,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,IAAI,CACzH,oBAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAC,SAAS,EACrB,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,KAAK,EACnB,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,QAAQ;YAErB,cAAc,CAAC,IAAI,EAAE,IAAI,CACxB,oBAAC,gBAAgB,IAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,GAAI,CAC7F;YAGA,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAC5F,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IACjE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CACnC,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,UACrB,IAAI,CACA,CACR,CAAC,CACE,CACP,CACG,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TaskCompletedMessage Component
|
|
3
|
+
* Displays a task completion message in the chat with checkbox styling
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
interface TaskCompletedMessageProps {
|
|
7
|
+
taskNumber: number;
|
|
8
|
+
totalTasks: number;
|
|
9
|
+
taskDescription: string;
|
|
10
|
+
completionNote?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const TaskCompletedMessage: React.FC<TaskCompletedMessageProps>;
|
|
13
|
+
export default TaskCompletedMessage;
|
|
14
|
+
//# sourceMappingURL=TaskCompletedMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskCompletedMessage.d.ts","sourceRoot":"","sources":["../../../src/ui/components/TaskCompletedMessage.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,yBAAyB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6BpE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TaskCompletedMessage Component
|
|
3
|
+
* Displays a task completion message in the chat with checkbox styling
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { Box, Text } from 'ink';
|
|
7
|
+
export const TaskCompletedMessage = ({ taskNumber, totalTasks, taskDescription, completionNote }) => {
|
|
8
|
+
return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#f59e0b", paddingX: 1, paddingY: 0, marginY: 0 },
|
|
9
|
+
React.createElement(Box, null,
|
|
10
|
+
React.createElement(Text, { color: "#f59e0b", bold: true }, "\u2713 "),
|
|
11
|
+
React.createElement(Text, { color: "#f59e0b", bold: true },
|
|
12
|
+
"Task ",
|
|
13
|
+
taskNumber,
|
|
14
|
+
" of ",
|
|
15
|
+
totalTasks,
|
|
16
|
+
" Completed")),
|
|
17
|
+
React.createElement(Box, { marginLeft: 2 },
|
|
18
|
+
React.createElement(Text, { color: "#888888" }, taskDescription)),
|
|
19
|
+
completionNote && (React.createElement(Box, { marginLeft: 2, marginTop: 0 },
|
|
20
|
+
React.createElement(Text, { color: "#666666", dimColor: true },
|
|
21
|
+
"Note: ",
|
|
22
|
+
completionNote)))));
|
|
23
|
+
};
|
|
24
|
+
export default TaskCompletedMessage;
|
|
25
|
+
//# sourceMappingURL=TaskCompletedMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskCompletedMessage.js","sourceRoot":"","sources":["../../../src/ui/components/TaskCompletedMessage.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EACtE,UAAU,EACV,UAAU,EACV,eAAe,EACf,cAAc,EACjB,EAAE,EAAE;IACD,OAAO,CACH,oBAAC,GAAG,IACA,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,SAAS,EACrB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC;QAEV,oBAAC,GAAG;YACA,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,oBAAU;YACpC,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI;;gBAAO,UAAU;;gBAAM,UAAU;6BAAkB,CAC3E;QACN,oBAAC,GAAG,IAAC,UAAU,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,eAAe,CAAQ,CAC5C;QACL,cAAc,IAAI,CACf,oBAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;YAC5B,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ;;gBAAQ,cAAc,CAAQ,CAC1D,CACT,CACC,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|