orquesta-cli 0.2.48 → 0.2.49
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/core/usage-tracker.js +2 -2
- package/dist/orchestration/plan-executor.js +2 -2
- package/dist/orchestration/utils.js +1 -1
- package/dist/ui/components/ActivityIndicator.js +10 -10
- package/dist/ui/components/PlanExecuteApp.js +8 -8
- package/dist/ui/components/StatusBar.js +1 -1
- package/dist/ui/components/ThinkingIndicator.js +7 -7
- package/dist/ui/components/views/ChatView.js +16 -16
- package/package.json +1 -1
|
@@ -198,13 +198,13 @@ class UsageTrackerClass {
|
|
|
198
198
|
tokenStr = `${(tokens / 1000000).toFixed(2)}M`;
|
|
199
199
|
}
|
|
200
200
|
const activity = currentActivity || 'Processing';
|
|
201
|
-
return
|
|
201
|
+
return `🎵 ${activity}… (esc to interrupt · ${timeStr} · ↑ ${tokenStr} tokens)`;
|
|
202
202
|
}
|
|
203
203
|
formatUsageDisplay() {
|
|
204
204
|
logger.enter('UsageTracker.formatUsageDisplay');
|
|
205
205
|
const summary = this.getSummary();
|
|
206
206
|
const lines = [];
|
|
207
|
-
lines.push('
|
|
207
|
+
lines.push('🎼 Usage Statistics');
|
|
208
208
|
lines.push('');
|
|
209
209
|
lines.push('📅 Today');
|
|
210
210
|
if (summary.today) {
|
|
@@ -146,8 +146,8 @@ export class PlanExecutor {
|
|
|
146
146
|
callbacks.setTodos(currentTodos);
|
|
147
147
|
emitPlanCreated(currentTodos.map(t => t.title));
|
|
148
148
|
const planMessage = planResult.docsSearchNeeded
|
|
149
|
-
?
|
|
150
|
-
:
|
|
149
|
+
? `🎼 Created ${currentTodos.length} tasks (including docs search). Starting execution...`
|
|
150
|
+
: `🎼 Created ${currentTodos.length} tasks. Starting execution...`;
|
|
151
151
|
const lastMsgForPlan = currentMessages[currentMessages.length - 1];
|
|
152
152
|
const needsUserMessageForPlan = !(lastMsgForPlan?.role === 'user' && lastMsgForPlan?.content === userMessage);
|
|
153
153
|
currentMessages = needsUserMessageForPlan
|
|
@@ -3,16 +3,16 @@ import { Box, Text } from 'ink';
|
|
|
3
3
|
import Spinner from 'ink-spinner';
|
|
4
4
|
import { logger } from '../../utils/logger.js';
|
|
5
5
|
const ACTIVITY_INFO = {
|
|
6
|
-
thinking: { icon: '
|
|
7
|
-
planning: { icon: '
|
|
8
|
-
executing: { icon: '
|
|
9
|
-
docs_search: { icon: '
|
|
10
|
-
file_read: { icon: '
|
|
11
|
-
file_write: { icon: '
|
|
12
|
-
file_search: { icon: '
|
|
13
|
-
tool_call: { icon: '
|
|
14
|
-
validating: { icon: '
|
|
15
|
-
waiting: { icon: '
|
|
6
|
+
thinking: { icon: '🎵', label: 'Thinking', color: 'magenta', spinnerType: 'dots' },
|
|
7
|
+
planning: { icon: '🎼', label: 'Composing', color: 'blue', spinnerType: 'dots' },
|
|
8
|
+
executing: { icon: '🥁', label: 'Executing', color: 'green', spinnerType: 'line' },
|
|
9
|
+
docs_search: { icon: '🎷', label: 'Searching docs', color: 'yellow', spinnerType: 'dots' },
|
|
10
|
+
file_read: { icon: '🎸', label: 'Reading file', color: 'cyan', spinnerType: 'pipe' },
|
|
11
|
+
file_write: { icon: '🎹', label: 'Writing file', color: 'green', spinnerType: 'pipe' },
|
|
12
|
+
file_search: { icon: '🎺', label: 'Searching files', color: 'yellow', spinnerType: 'dots' },
|
|
13
|
+
tool_call: { icon: '🪕', label: 'Tool call', color: 'yellow', spinnerType: 'star' },
|
|
14
|
+
validating: { icon: '🎻', label: 'Validating', color: 'cyan', spinnerType: 'dots' },
|
|
15
|
+
waiting: { icon: '🪘', label: 'Waiting', color: 'gray', spinnerType: 'dots' },
|
|
16
16
|
};
|
|
17
17
|
function formatTokens(count) {
|
|
18
18
|
if (count < 1000)
|
|
@@ -1233,21 +1233,21 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo, resumeL
|
|
|
1233
1233
|
return '🌐';
|
|
1234
1234
|
switch (toolName) {
|
|
1235
1235
|
case 'read_file':
|
|
1236
|
-
return '
|
|
1236
|
+
return '🎸';
|
|
1237
1237
|
case 'create_file':
|
|
1238
|
-
return '
|
|
1238
|
+
return '🎹';
|
|
1239
1239
|
case 'edit_file':
|
|
1240
|
-
return '
|
|
1240
|
+
return '🎻';
|
|
1241
1241
|
case 'list_files':
|
|
1242
|
-
return '
|
|
1242
|
+
return '🎼';
|
|
1243
1243
|
case 'find_files':
|
|
1244
|
-
return '
|
|
1244
|
+
return '🎷';
|
|
1245
1245
|
case 'tell_to_user':
|
|
1246
|
-
return '
|
|
1246
|
+
return '🎺';
|
|
1247
1247
|
case 'bash':
|
|
1248
|
-
return '
|
|
1248
|
+
return '🥁';
|
|
1249
1249
|
default:
|
|
1250
|
-
return '
|
|
1250
|
+
return '🪕';
|
|
1251
1251
|
}
|
|
1252
1252
|
};
|
|
1253
1253
|
const getToolParams = (toolName, args) => {
|
|
@@ -30,7 +30,7 @@ const Clock = () => {
|
|
|
30
30
|
};
|
|
31
31
|
const AnimatedStar = () => {
|
|
32
32
|
const [phase, setPhase] = useState(0);
|
|
33
|
-
const stars = ['
|
|
33
|
+
const stars = ['🎵', '🎶', '♪', '♫'];
|
|
34
34
|
const colors = ['magentaBright', 'magenta', 'gray', 'magenta'];
|
|
35
35
|
useEffect(() => {
|
|
36
36
|
const interval = setInterval(() => {
|
|
@@ -3,13 +3,13 @@ import { Box, Text } from 'ink';
|
|
|
3
3
|
import Spinner from 'ink-spinner';
|
|
4
4
|
import { logger } from '../../utils/logger.js';
|
|
5
5
|
const PHASE_INFO = {
|
|
6
|
-
analyzing: { icon: '
|
|
7
|
-
planning: { icon: '
|
|
8
|
-
generating: { icon: '
|
|
9
|
-
executing: { icon: '
|
|
10
|
-
validating: { icon: '
|
|
11
|
-
tool_calling: { icon: '
|
|
12
|
-
waiting: { icon: '
|
|
6
|
+
analyzing: { icon: '🎷', label: 'Analyzing', color: 'yellow' },
|
|
7
|
+
planning: { icon: '🎼', label: 'Composing', color: 'blue' },
|
|
8
|
+
generating: { icon: '🎹', label: 'Generating', color: 'magenta' },
|
|
9
|
+
executing: { icon: '🥁', label: 'Executing', color: 'green' },
|
|
10
|
+
validating: { icon: '🎻', label: 'Validating', color: 'cyan' },
|
|
11
|
+
tool_calling: { icon: '🪕', label: 'Tool Call', color: 'yellow' },
|
|
12
|
+
waiting: { icon: '🪘', label: 'Waiting', color: 'gray' },
|
|
13
13
|
};
|
|
14
14
|
export const ThinkingIndicator = ({ phase, startTime, currentStep, totalSteps, completedSteps, }) => {
|
|
15
15
|
const [elapsedSeconds, setElapsedSeconds] = useState(0);
|
|
@@ -66,22 +66,22 @@ export const ChatView = ({ messages, currentResponse, maxDisplayMessages = 10, s
|
|
|
66
66
|
content.includes('`');
|
|
67
67
|
};
|
|
68
68
|
const TOOL_ICONS = {
|
|
69
|
-
'read_file': '
|
|
70
|
-
'Read': '
|
|
71
|
-
'create_file': '
|
|
72
|
-
'Create': '
|
|
73
|
-
'edit_file': '
|
|
74
|
-
'Edit': '
|
|
75
|
-
'search_files': '
|
|
76
|
-
'Search': '
|
|
77
|
-
'Grep': '
|
|
78
|
-
'grep_search': '
|
|
79
|
-
'list_files': '
|
|
80
|
-
'list_directory': '
|
|
81
|
-
'Glob': '
|
|
82
|
-
'find_files': '
|
|
83
|
-
'execute_command': '
|
|
84
|
-
'Bash': '
|
|
69
|
+
'read_file': '🎸',
|
|
70
|
+
'Read': '🎸',
|
|
71
|
+
'create_file': '🎹',
|
|
72
|
+
'Create': '🎹',
|
|
73
|
+
'edit_file': '🎻',
|
|
74
|
+
'Edit': '🎻',
|
|
75
|
+
'search_files': '🎷',
|
|
76
|
+
'Search': '🎷',
|
|
77
|
+
'Grep': '🎷',
|
|
78
|
+
'grep_search': '🎷',
|
|
79
|
+
'list_files': '🎼',
|
|
80
|
+
'list_directory': '🎼',
|
|
81
|
+
'Glob': '🎼',
|
|
82
|
+
'find_files': '🎷',
|
|
83
|
+
'execute_command': '🥁',
|
|
84
|
+
'Bash': '🥁',
|
|
85
85
|
};
|
|
86
86
|
const normalizeToolName = (name) => {
|
|
87
87
|
const nameMap = {
|