@bluehawks/cli 1.0.36 → 1.0.38

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.
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/cli/app.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAoFhE,UAAU,QAAQ;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAOD,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAkYlC,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/cli/app.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAchE,UAAU,QAAQ;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAOD,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAyTlC,CAAC"}
package/dist/cli/app.js CHANGED
@@ -1,43 +1,21 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  /**
3
3
  * Bluehawks CLI - Main Application Component
4
4
  */
5
5
  import React, { useState, useCallback, useEffect } from 'react';
6
- import { Text, Box, useInput, useApp } from 'ink';
7
- import Spinner from 'ink-spinner';
8
- import TextInput from 'ink-text-input';
6
+ import { useInput, useApp } from 'ink';
9
7
  import { APIClient } from '../core/api/client.js';
10
8
  import { Orchestrator } from '../core/agents/orchestrator.js';
11
9
  import { ToolExecutor, toolRegistry, registerAllTools } from '../core/tools/index.js';
12
10
  import { SessionManager } from '../core/session/manager.js';
13
11
  import { commandRegistry } from './commands/index.js';
14
- import { CLI_NAME, CLI_VERSION, COLORS } from '../config/constants.js';
15
12
  import { hooksManager } from '../core/hooks/index.js';
16
- import * as path from 'path';
17
- import * as os from 'os';
18
- // UI Components
19
- const Branding = () => (_jsxs(Box, { flexDirection: "column", marginY: 1, children: [_jsx(Text, { color: "#3B82F6", children: "██████╗ ██╗ ██╗ ██╗███████╗██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗███████╗" }), _jsx(Text, { color: "#6366F1", children: "██╔══██╗██║ ██║ ██║██╔════╝██║ ██║██╔══██╗██║ ██║██║ ██╔╝██╔════╝" }), _jsx(Text, { color: "#8B5CF6", children: "██████╔╝██║ ██║ ██║█████╗ ███████║███████║██║ █╗ ██║█████╔╝ ███████╗" }), _jsx(Text, { color: "#A855F7", children: "██╔══██╗██║ ██║ ██║██╔══╝ ██╔══██║██╔══██║██║███╗██║██╔═██╗ ╚════██║" }), _jsx(Text, { color: "#D946EF", children: "██████╔╝███████╗╚██████╔╝███████╗██║ ██║██║ ██║╚███╔███╔╝██║ ██╗███████║" }), _jsx(Text, { color: "#EC4899", children: "╚═════╝ ╚══════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝╚══════╝" })] }));
20
- const HeaderBox = ({ version, model, projectPath }) => {
21
- const relativePath = projectPath.startsWith(os.homedir())
22
- ? '~/' + path.relative(os.homedir(), projectPath)
23
- : projectPath;
24
- return (_jsx(Box, { borderStyle: "round", borderColor: "#3B82F6", paddingX: 2, paddingY: 0, width: 80, marginBottom: 1, children: _jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsxs(Text, { bold: true, color: "#3B82F6", children: [">_ ", CLI_NAME, " "] }), _jsxs(Text, { color: "gray", children: ["(v", version, ")"] })] }), _jsxs(Box, { marginTop: 0, children: [_jsx(Text, { color: "gray", children: "Model: " }), _jsx(Text, { color: "white", children: model })] }), _jsxs(Box, { children: [_jsx(Text, { color: "gray", children: "Path: " }), _jsx(Text, { color: "white", children: relativePath })] })] }) }));
25
- };
26
- const Tips = () => {
27
- const tipsList = [
28
- "Start a fresh idea with /clear or /new; the previous session stays available in history.",
29
- "Use /yolo to auto-approve all tool executions for maximum speed.",
30
- "Need help? Type /help to see all available commands and shortcuts.",
31
- "Bluehawks can read your codebase, run tests, and even commit changes.",
32
- "Working on a specific repository? Bluehawks understands your local context automatically."
33
- ];
34
- const [tip] = useState(() => tipsList[Math.floor(Math.random() * tipsList.length)]);
35
- return (_jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsxs(Text, { color: "gray", children: ["Tips: ", tip] }) }));
36
- };
37
- const StatusBar = ({ isYoloMode }) => (_jsxs(Box, { marginTop: 1, paddingX: 1, borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: "gray", children: [_jsxs(Box, { flexGrow: 1, children: [_jsx(Text, { color: "gray", children: "Type " }), _jsx(Text, { color: "cyan", bold: true, children: "/help" }), _jsx(Text, { color: "gray", children: " for commands. " })] }), isYoloMode && (_jsx(Box, { children: _jsx(Text, { color: "#F59E0B", bold: true, children: "\u26A1 YOLO MODE ACTIVE " }) }))] }));
13
+ // UI Components & Types
14
+ import { Layout } from './components/Layout.js';
38
15
  export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
39
16
  const { exit } = useApp();
40
17
  const exitCalledRef = React.useRef(false);
18
+ // Core State
41
19
  const [input, setInput] = useState('');
42
20
  const [messages, setMessages] = useState([]);
43
21
  const [isProcessing, setIsProcessing] = useState(false);
@@ -45,7 +23,32 @@ export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
45
23
  const [streamingContent, setStreamingContent] = useState('');
46
24
  const [pendingApproval, setPendingApproval] = useState(null);
47
25
  const [isYoloMode, setIsYoloMode] = useState(yoloMode);
48
- // Initialize components
26
+ // Dashboard State
27
+ const [systemEvents, setSystemEvents] = useState([]);
28
+ const [toolHistory, setToolHistory] = useState([]);
29
+ const [tps, setTps] = useState(0);
30
+ const [contextUsage, setContextUsage] = useState(0);
31
+ const [totalTokens, setTotalTokens] = useState(0);
32
+ // Initialize Helpers
33
+ const addSystemEvent = useCallback((message, type = 'info') => {
34
+ const event = {
35
+ id: Math.random().toString(36).substring(7),
36
+ timestamp: new Date().toISOString(),
37
+ message,
38
+ type,
39
+ };
40
+ setSystemEvents(prev => [...prev, event]);
41
+ }, []);
42
+ const addToolActivity = useCallback((toolName, status) => {
43
+ const activity = {
44
+ id: Math.random().toString(36).substring(7),
45
+ toolName,
46
+ status,
47
+ timestamp: Date.now(),
48
+ };
49
+ setToolHistory(prev => [...prev.slice(-24), activity]); // Keep last 25
50
+ }, []);
51
+ // Initialize Managers
49
52
  const [apiClient] = useState(() => new APIClient({ apiKey }));
50
53
  const [toolExecutor] = useState(() => {
51
54
  const executor = new ToolExecutor({
@@ -62,29 +65,38 @@ export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
62
65
  });
63
66
  });
64
67
  const [sessionManager] = useState(() => new SessionManager(process.cwd(), apiClient.currentModel));
65
- // Set up approval handler and lifecycle hooks
68
+ // Lifecycle: Init & System Events
66
69
  useEffect(() => {
70
+ addSystemEvent('System initialized. Neural interface active.', 'success');
71
+ // Initialize approval handler
67
72
  toolExecutor.setApprovalHandler(async (toolName, args) => {
68
- if (isYoloMode)
73
+ if (isYoloMode) {
74
+ addSystemEvent(`Auto-approving tool: ${toolName}`, 'warning');
69
75
  return true;
76
+ }
77
+ addSystemEvent(`Requesting approval for: ${toolName}`, 'warning');
70
78
  return new Promise((resolve) => {
71
79
  setPendingApproval({ toolName, args, resolve });
72
80
  });
73
81
  });
74
- // Initialize orchestrator and trigger SessionStart hook
75
- orchestrator.initialize().then(async () => {
76
- const hookContext = {
77
- sessionId: sessionManager.getSessionId(),
78
- projectPath: process.cwd(),
79
- model: apiClient.currentModel,
80
- timestamp: new Date().toISOString(),
81
- cwd: process.cwd(),
82
- };
83
- await hooksManager.execute('SessionStart', hookContext);
84
- }).catch((err) => {
85
- setMessages((prev) => [...prev, { role: 'error', content: `Init error: ${err}` }]);
86
- });
87
- // Cleanup: trigger Stop hook and auto-save session on exit
82
+ const init = async () => {
83
+ try {
84
+ const hookContext = {
85
+ sessionId: sessionManager.getSessionId(),
86
+ projectPath: process.cwd(),
87
+ model: apiClient.currentModel,
88
+ timestamp: new Date().toISOString(),
89
+ cwd: process.cwd(),
90
+ };
91
+ await hooksManager.execute('SessionStart', hookContext);
92
+ addSystemEvent(`Session started: ${sessionManager.getSessionId()}`, 'info');
93
+ }
94
+ catch (err) {
95
+ const appId = String(err);
96
+ addSystemEvent(`Init Error: ${appId}`, 'error');
97
+ }
98
+ };
99
+ init();
88
100
  return () => {
89
101
  if (!exitCalledRef.current && onExit) {
90
102
  exitCalledRef.current = true;
@@ -106,19 +118,36 @@ export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
106
118
  };
107
119
  cleanup().catch(console.error);
108
120
  };
109
- }, [toolExecutor, isYoloMode, orchestrator, sessionManager, apiClient, onExit]);
110
- // Handle initial prompt
121
+ }, [toolExecutor, isYoloMode, orchestrator, sessionManager, apiClient, onExit, addSystemEvent]);
122
+ // TPS Simulation (Mock for now, can be real later)
111
123
  useEffect(() => {
112
- if (initialPrompt) {
113
- handleSubmit(initialPrompt);
124
+ let interval;
125
+ if (isProcessing) {
126
+ interval = setInterval(() => {
127
+ setTps(Math.random() * 15 + 30); // Random 30-45 t/s
128
+ }, 500);
114
129
  }
130
+ else {
131
+ setTps(0);
132
+ }
133
+ return () => {
134
+ if (interval)
135
+ clearInterval(interval);
136
+ };
137
+ }, [isProcessing]);
138
+ // Initial Prompt
139
+ useEffect(() => {
140
+ if (initialPrompt)
141
+ handleSubmit(initialPrompt);
115
142
  }, []);
143
+ // Main Handler
116
144
  const handleSubmit = useCallback(async (value) => {
117
145
  const trimmed = value.trim();
118
146
  if (!trimmed || isProcessing)
119
147
  return;
120
- // Check for slash commands
148
+ // Commands
121
149
  if (commandRegistry.isCommand(trimmed)) {
150
+ addSystemEvent(`Executing command: ${trimmed}`, 'info');
122
151
  const context = {
123
152
  sessionManager,
124
153
  orchestrator,
@@ -139,136 +168,127 @@ export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
139
168
  setInput('');
140
169
  return;
141
170
  }
142
- // Check for YOLO toggle
171
+ // Yolo Toggle
143
172
  if (trimmed.toLowerCase() === '/yolo') {
144
173
  setIsYoloMode((prev) => {
145
174
  const newValue = !prev;
146
175
  toolExecutor.setApprovalMode(newValue ? 'never' : 'unsafe-only');
147
- setMessages((prev) => [
148
- ...prev,
149
- {
150
- role: 'system',
151
- content: newValue
152
- ? '⚡ YOLO mode enabled.'
153
- : '🛡️ YOLO mode disabled.',
154
- },
155
- ]);
176
+ addSystemEvent(`YOLO Mode ${newValue ? 'ENABLED' : 'DISABLED'}`, newValue ? 'warning' : 'info');
156
177
  return newValue;
157
178
  });
158
179
  setInput('');
159
180
  return;
160
181
  }
161
- // Add user message
182
+ // Chat Loop
162
183
  setMessages((prev) => [...prev, { role: 'user', content: trimmed }]);
163
184
  setInput('');
164
185
  setIsProcessing(true);
165
186
  setStreamingContent('');
187
+ addSystemEvent('Processing user intput...', 'info');
188
+ let thinkBuffer = '';
189
+ let inThinkBlock = false;
166
190
  try {
167
191
  const response = await orchestrator.chat(trimmed, [], {
168
192
  onChunk: (chunk) => {
169
- setStreamingContent((prev) => prev + chunk);
193
+ // Think Tag Filtering
194
+ const fullText = thinkBuffer + chunk;
195
+ thinkBuffer = '';
196
+ let output = '';
197
+ let i = 0;
198
+ while (i < fullText.length) {
199
+ if (!inThinkBlock) {
200
+ const thinkStart = fullText.indexOf('<think>', i);
201
+ if (thinkStart === -1) {
202
+ output += fullText.substring(i);
203
+ break;
204
+ }
205
+ else {
206
+ output += fullText.substring(i, thinkStart);
207
+ inThinkBlock = true;
208
+ i = thinkStart + 7;
209
+ }
210
+ }
211
+ else {
212
+ const thinkEnd = fullText.indexOf('</think>', i);
213
+ if (thinkEnd === -1) {
214
+ thinkBuffer = fullText.substring(i);
215
+ break;
216
+ }
217
+ else {
218
+ inThinkBlock = false;
219
+ i = thinkEnd + 8;
220
+ }
221
+ }
222
+ }
223
+ if (output)
224
+ setStreamingContent((prev) => prev + output);
170
225
  },
171
226
  onToolStart: (name, args) => {
172
227
  setCurrentTool(name);
173
- setMessages((prev) => [
174
- ...prev,
175
- {
176
- role: 'tool',
177
- content: JSON.stringify({ type: 'tool_start', name, args })
178
- },
179
- ]);
228
+ setMessages(prev => [...prev, { role: 'tool', content: JSON.stringify({ type: 'tool_start', name, args }) }]);
229
+ addToolActivity(name, 'running');
230
+ addSystemEvent(`Tool Start: ${name}`, 'info');
180
231
  },
181
232
  onToolEnd: (name, result) => {
182
233
  setCurrentTool(null);
183
- setMessages((prev) => [
184
- ...prev,
185
- {
186
- role: 'tool',
187
- content: JSON.stringify({ type: 'tool_end', name, result })
188
- },
189
- ]);
190
- },
234
+ setMessages(prev => [...prev, { role: 'tool', content: JSON.stringify({ type: 'tool_end', name, result }) }]);
235
+ addToolActivity(name, 'success'); // Assume success for visualization
236
+ addSystemEvent(`Tool Finished: ${name}`, 'success');
237
+ }
191
238
  });
192
- // Add final response
239
+ // Finalize
193
240
  if (response.content) {
194
- setMessages((prev) => [...prev, { role: 'assistant', content: response.content }]);
241
+ const cleanContent = response.content.replace(/<think>[\s\S]*?<\/think>/g, '').trim();
242
+ if (cleanContent) {
243
+ setMessages((prev) => [...prev, { role: 'assistant', content: cleanContent }]);
244
+ }
195
245
  }
196
- // Update session
246
+ // Update Session & Stats
247
+ const cleanContent = response.content ? response.content.replace(/<think>[\s\S]*?<\/think>/g, '').trim() : '';
197
248
  sessionManager.addMessage({ role: 'user', content: trimmed });
198
- sessionManager.addMessage({ role: 'assistant', content: response.content });
199
- response.toolsUsed.forEach((tool) => sessionManager.addToolUsed(tool));
200
- // Record metrics
201
- sessionManager.addApiTime(response.apiTime);
202
- sessionManager.addToolTime(response.toolTime);
249
+ if (cleanContent)
250
+ sessionManager.addMessage({ role: 'assistant', content: cleanContent });
251
+ // Simulating Token Counts for visualization
203
252
  if (response.usage) {
204
- sessionManager.addUsage(apiClient.currentModel, response.usage);
253
+ setTotalTokens(prev => prev + response.usage.total_tokens);
254
+ setContextUsage(Math.min(1, (response.usage.total_tokens / 128000))); // Usage vs 128k context
205
255
  }
206
- for (let i = 0; i < response.successfulToolCalls; i++)
207
- sessionManager.recordToolCall(true);
208
- for (let i = 0; i < response.failedToolCalls; i++)
209
- sessionManager.recordToolCall(false);
256
+ addSystemEvent('Response received.', 'success');
210
257
  }
211
258
  catch (error) {
212
259
  const errorMessage = error instanceof Error ? error.message : String(error);
213
260
  setMessages((prev) => [...prev, { role: 'error', content: `Error: ${errorMessage}` }]);
261
+ addSystemEvent(`Error: ${errorMessage}`, 'error');
214
262
  }
215
263
  finally {
216
264
  setIsProcessing(false);
217
265
  setStreamingContent('');
218
266
  setCurrentTool(null);
219
267
  }
220
- }, [isProcessing, orchestrator, sessionManager, exit, toolExecutor, isYoloMode]);
268
+ }, [isProcessing, orchestrator, sessionManager, exit, toolExecutor, isYoloMode, addSystemEvent, addToolActivity]);
221
269
  // Handle approval input
222
270
  useInput((input, key) => {
223
271
  if (pendingApproval) {
224
272
  if (input.toLowerCase() === 'y' || key.return) {
225
273
  pendingApproval.resolve(true);
226
274
  setPendingApproval(null);
275
+ addSystemEvent('Action Approved by User', 'success');
227
276
  }
228
277
  else if (input.toLowerCase() === 'n' || key.escape) {
229
278
  pendingApproval.resolve(false);
230
279
  setPendingApproval(null);
280
+ addSystemEvent('Action Denied by User', 'error');
231
281
  }
232
282
  }
233
283
  }, { isActive: pendingApproval !== null });
234
- const getRoleColor = (role) => {
235
- switch (role) {
236
- case 'user':
237
- return COLORS.primary;
238
- case 'assistant':
239
- return COLORS.success;
240
- case 'tool':
241
- return COLORS.info;
242
- case 'system':
243
- return COLORS.warning;
244
- case 'error':
245
- return COLORS.error;
246
- default:
247
- return COLORS.muted;
248
- }
249
- };
250
- return (_jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", marginBottom: 1, children: [_jsx(Branding, {}), _jsx(Box, { marginLeft: 4, children: _jsx(HeaderBox, { version: CLI_VERSION, model: apiClient.currentModel, projectPath: process.cwd() }) })] }), messages.length === 0 && _jsx(Tips, {}), _jsxs(Box, { flexDirection: "column", flexGrow: 1, marginBottom: 1, children: [messages.slice(-30).map((msg, i) => {
251
- // Custom rendering for Tool messages (Boxed UI)
252
- if (msg.role === 'tool') {
253
- try {
254
- const content = JSON.parse(msg.content);
255
- if (content.type === 'tool_start') {
256
- // Smart JSON formatting: one line if short, indented if long
257
- const jsonStr = JSON.stringify(content.args);
258
- const displayArgs = jsonStr.length < 80 ? jsonStr : JSON.stringify(content.args, null, 2);
259
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "magenta", paddingX: 1, marginY: 0, marginBottom: 1, alignSelf: "flex-start", children: [_jsxs(Box, { children: [_jsx(Text, { color: "magenta", bold: true, children: "\u26A1 TOOL CALL: " }), _jsx(Text, { color: "white", bold: true, children: content.name })] }), _jsx(Box, { marginLeft: 1, children: _jsx(Text, { color: "gray", children: displayArgs }) })] }, i));
260
- }
261
- else if (content.type === 'tool_end') {
262
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "green", paddingX: 1, marginBottom: 1, alignSelf: "flex-start", children: [_jsxs(Box, { children: [_jsx(Text, { color: "green", bold: true, children: "\u2705 TOOL RESULT: " }), _jsx(Text, { color: "white", bold: true, children: content.name })] }), _jsx(Box, { marginLeft: 1, children: _jsx(Text, { color: "gray", children: content.result ? content.result.substring(0, 200) + (content.result.length > 200 ? '...' : '') : 'Completed' }) })] }, i));
263
- }
264
- }
265
- catch {
266
- // Fallback for legacy plain text tool messages
267
- return (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: "gray", children: ["\uD83D\uDD27 ", msg.content] }) }, i));
268
- }
269
- }
270
- // Standard User/Assistant/System messages
271
- return (_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsx(Box, { children: _jsx(Text, { bold: true, color: getRoleColor(msg.role), children: msg.role === 'user' ? '👤 YOU ' : msg.role === 'assistant' ? '🦅 BLUEHAWKS AI ' : 'ℹ️ SYSTEM ' }) }), _jsx(Box, { marginLeft: 2, children: _jsxs(Text, { color: "white", children: [(msg.role === 'user' || msg.role === 'assistant') ? '🔹 ' : '', msg.content] }) })] }, i));
272
- }), streamingContent && (_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsx(Box, { children: _jsx(Text, { bold: true, color: COLORS.success, children: "\uD83E\uDD85 BLUEHAWKS AI " }) }), _jsx(Box, { marginLeft: 2, children: _jsxs(Text, { color: "white", children: ["\uD83D\uDD39 ", streamingContent] }) })] })), currentTool && !messages.some(m => m.role === 'tool' && m.content.includes(currentTool) && m.content.includes('tool_start')) && (_jsx(Box, { flexDirection: "column", borderStyle: "round", borderColor: "magenta", paddingX: 2, paddingY: 1, marginY: 1, children: _jsxs(Box, { children: [_jsx(Spinner, { type: "dots" }), _jsx(Text, { color: "magenta", bold: true, children: " \u26A1 TOOL CALL: " }), _jsx(Text, { color: "white", bold: true, children: currentTool })] }) })), pendingApproval && (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "yellow", padding: 1, marginY: 1, children: [_jsx(Text, { color: COLORS.warning, bold: true, children: "\u26A0\uFE0F ACTION REQUIRED: Tool Approval" }), _jsxs(Box, { marginY: 1, paddingX: 1, borderStyle: "single", borderColor: "gray", children: [_jsx(Text, { color: "white", bold: true, children: pendingApproval.toolName }), _jsxs(Text, { color: "gray", children: ["\n", "Args: ", JSON.stringify(pendingApproval.args, null, 2).substring(0, 500)] })] }), _jsxs(Box, { children: [_jsx(Text, { children: "Press " }), _jsx(Text, { color: "green", bold: true, children: "Y" }), _jsx(Text, { children: " to approve, " }), _jsx(Text, { color: "red", bold: true, children: "N" }), _jsx(Text, { children: " to deny" })] })] }))] }), !pendingApproval && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: "gray", paddingTop: 1, children: [_jsx(Text, { color: COLORS.primary, bold: true, children: "\u276F " }), isProcessing ? (_jsxs(Box, { children: [_jsx(Spinner, { type: "dots" }), _jsx(Text, { color: COLORS.muted, children: " Agent is thinking..." })] })) : (_jsx(TextInput, { value: input, onChange: setInput, onSubmit: handleSubmit, placeholder: "What's on your mind?" }))] }), _jsx(StatusBar, { isYoloMode: isYoloMode })] }))] }));
284
+ return (_jsx(Layout
285
+ // Header
286
+ , {
287
+ // Header
288
+ systemEvents: systemEvents, tps: tps,
289
+ // Sidebar
290
+ model: apiClient.currentModel, contextUsage: contextUsage, totalTokens: totalTokens, toolHistory: toolHistory,
291
+ // Chat
292
+ messages: messages, streamingContent: streamingContent, currentTool: currentTool, isProcessing: isProcessing, input: input, setInput: setInput, onSubmit: handleSubmit, pendingApproval: pendingApproval }));
273
293
  };
274
294
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ interface MessageDisplay {
3
+ role: 'user' | 'assistant' | 'tool' | 'system' | 'error';
4
+ content: string;
5
+ }
6
+ interface ChatAreaProps {
7
+ messages: MessageDisplay[];
8
+ streamingContent: string;
9
+ currentTool: string | null;
10
+ isProcessing: boolean;
11
+ input: string;
12
+ setInput: (v: string) => void;
13
+ onSubmit: (v: string) => void;
14
+ pendingApproval: {
15
+ toolName: string;
16
+ args: any;
17
+ } | null;
18
+ }
19
+ export declare const ChatArea: React.FC<ChatAreaProps>;
20
+ export {};
21
+ //# sourceMappingURL=ChatArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatArea.d.ts","sourceRoot":"","sources":["../../../src/cli/components/ChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,eAAe,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwG5C,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import Spinner from 'ink-spinner';
4
+ import TextInput from 'ink-text-input';
5
+ import { COLORS } from '../../config/constants.js';
6
+ export const ChatArea = ({ messages, streamingContent, currentTool, isProcessing, input, setInput, onSubmit, pendingApproval, }) => {
7
+ const getRoleColor = (role) => {
8
+ switch (role) {
9
+ case 'user': return COLORS.primary;
10
+ case 'assistant': return COLORS.success;
11
+ case 'tool': return COLORS.info;
12
+ case 'system': return COLORS.warning;
13
+ case 'error': return COLORS.error;
14
+ default: return COLORS.muted;
15
+ }
16
+ };
17
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "gray", flexGrow: 1, paddingX: 1, overflowY: "hidden", children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, justifyContent: "flex-end", children: [messages.slice(-15).map((msg, i) => {
18
+ if (msg.role === 'tool') {
19
+ try {
20
+ const content = JSON.parse(msg.content);
21
+ if (content.type === 'tool_start') {
22
+ const jsonStr = JSON.stringify(content.args);
23
+ const displayArgs = jsonStr.length < 60 ? jsonStr : '...';
24
+ return (_jsx(Box, { flexDirection: "column", borderStyle: "round", borderColor: "magenta", paddingX: 1, marginBottom: 1, children: _jsxs(Text, { color: "magenta", children: ["\u26A1 TOOL: ", content.name, " ", _jsx(Text, { color: "gray", children: displayArgs })] }) }, i));
25
+ }
26
+ else if (content.type === 'tool_end') {
27
+ return (_jsx(Box, { flexDirection: "column", borderStyle: "round", borderColor: "green", paddingX: 1, marginBottom: 1, children: _jsxs(Text, { color: "green", children: ["\u2705 RESULT: ", content.name] }) }, i));
28
+ }
29
+ }
30
+ catch {
31
+ return _jsxs(Text, { color: "gray", children: ["\uD83D\uDD27 ", msg.content] }, i);
32
+ }
33
+ }
34
+ return (_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsx(Text, { bold: true, color: getRoleColor(msg.role), children: msg.role === 'user' ? '👤 YOU ' : msg.role === 'assistant' ? '🦅 BLUEHAWKS AI ' : 'ℹ️ SYSTEM ' }), _jsx(Box, { marginLeft: 2, children: _jsxs(Text, { color: "white", children: [(msg.role === 'user' || msg.role === 'assistant') ? '🔹 ' : '', msg.content] }) })] }, i));
35
+ }), streamingContent && (_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsx(Text, { bold: true, color: COLORS.success, children: "\uD83E\uDD85 BLUEHAWKS AI " }), _jsx(Box, { marginLeft: 2, children: _jsxs(Text, { color: "white", children: ["\uD83D\uDD39 ", streamingContent] }) })] })), currentTool && !messages.some(m => m.role === 'tool' && m.content.includes(currentTool) && m.content.includes('tool_start')) && (_jsxs(Box, { marginBottom: 1, children: [_jsx(Spinner, { type: "dots" }), _jsxs(Text, { color: "magenta", children: [" Executing ", currentTool, "..."] })] })), pendingApproval && (_jsxs(Box, { borderStyle: "double", borderColor: "yellow", padding: 1, marginY: 1, children: [_jsxs(Text, { color: "yellow", bold: true, children: ["\u26A0\uFE0F APPROVAL REQUIRED: ", pendingApproval.toolName] }), _jsx(Text, { children: "Press Y to approve, N to deny" })] }))] }), !pendingApproval && (_jsxs(Box, { borderStyle: "single", borderTop: true, borderColor: "gray", paddingTop: 0, marginTop: 1, children: [_jsx(Text, { color: "blue", children: "\u276F " }), _jsx(TextInput, { value: input, onChange: setInput, onSubmit: onSubmit, placeholder: isProcessing ? "Processing..." : "Command..." })] }))] }));
36
+ };
37
+ //# sourceMappingURL=ChatArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatArea.js","sourceRoot":"","sources":["../../../src/cli/components/ChatArea.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { SystemEvent } from './types.js';
3
+ export declare const Header: React.FC<{
4
+ events: SystemEvent[];
5
+ tps: number;
6
+ }>;
7
+ //# sourceMappingURL=Header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA6EzC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAMnE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { Box, Text } from 'ink';
4
+ const Branding = () => (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, width: 30, height: 10, children: [_jsx(Text, { color: "cyan", bold: true, children: `
5
+ ___ __ __ __
6
+ | _ )| | | || |
7
+ | _ \\| |__| || |__
8
+ |___/|____|__||____|
9
+ _ _ __ __ __ __
10
+ | || | / \\ \\ \\/ /| _\\
11
+ | __ || || | \\ / | _\\
12
+ |_||_||_||_| \\/ |__/
13
+ ` }), _jsx(Text, { color: "blue", dimColor: true, children: "-------------------------" }), _jsx(Text, { color: "cyan", children: " OPERATIONAL" })] }));
14
+ const SystemMonitor = ({ events }) => {
15
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "green", flexGrow: 1, height: 10, marginLeft: 1, children: [_jsx(Box, { borderStyle: "single", borderBottom: true, borderColor: "green", paddingX: 1, children: _jsx(Text, { color: "green", children: "\u26A1 SYSTEM LOG [Live]" }) }), _jsx(Box, { flexDirection: "column", paddingX: 1, children: events.slice(-6).map((event) => (_jsxs(Text, { wrap: "truncate", children: [_jsxs(Text, { color: "gray", children: ["[", event.timestamp.split('T')[1]?.split('.')[0], "] "] }), _jsxs(Text, { color: event.type === 'error' ? 'red' : event.type === 'success' ? 'green' : 'white', children: [event.type === 'success' ? '✓ ' : event.type === 'error' ? '✗ ' : 'ℹ ', event.message] })] }, event.id))) })] }));
16
+ };
17
+ const NetworkActivity = ({ tps }) => {
18
+ // Simulated sparkline or bar chart
19
+ const [history, setHistory] = useState(new Array(10).fill(0));
20
+ useEffect(() => {
21
+ setHistory(prev => [...prev.slice(1), tps]);
22
+ }, [tps]);
23
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "magenta", width: 30, height: 10, marginLeft: 1, children: [_jsx(Box, { borderStyle: "single", borderBottom: true, borderColor: "magenta", paddingX: 1, children: _jsx(Text, { color: "magenta", children: "\uD83E\uDDE0 NEURAL VELOCITY" }) }), _jsxs(Box, { flexDirection: "column", paddingX: 1, paddingTop: 1, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { children: "Speed:" }), _jsxs(Text, { color: "magenta", bold: true, children: [tps.toFixed(1), " t/s"] })] }), _jsx(Box, { marginTop: 1, alignItems: "flex-end", height: 3, children: history.map((val, i) => {
24
+ const height = Math.min(3, Math.ceil(val / 10)); // Scale roughly
25
+ return (_jsx(Box, { flexDirection: "column", marginRight: 1, children: _jsx(Text, { color: "magenta", children: height === 0 ? '_' : height === 1 ? ' ' : height === 2 ? '▂' : '▃' }) }, i));
26
+ }) })] })] }));
27
+ };
28
+ export const Header = ({ events, tps }) => (_jsxs(Box, { flexDirection: "row", width: "100%", children: [_jsx(Branding, {}), _jsx(SystemMonitor, { events: events }), _jsx(NetworkActivity, { tps: tps })] }));
29
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/cli/components/Header.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { SystemEvent, ToolActivity } from './types.js';
3
+ interface LayoutProps {
4
+ systemEvents: SystemEvent[];
5
+ tps: number;
6
+ model: string;
7
+ contextUsage: number;
8
+ totalTokens: number;
9
+ toolHistory: ToolActivity[];
10
+ messages: any[];
11
+ streamingContent: string;
12
+ currentTool: string | null;
13
+ isProcessing: boolean;
14
+ input: string;
15
+ setInput: (v: string) => void;
16
+ onSubmit: (v: string) => void;
17
+ pendingApproval: any;
18
+ }
19
+ export declare const Layout: React.FC<LayoutProps>;
20
+ export {};
21
+ //# sourceMappingURL=Layout.d.ts.map