@bluehawks/cli 1.0.29 â 1.0.31
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/.bluehawks/history.json +25 -12
- package/dist/cli/app.d.ts.map +1 -1
- package/dist/cli/app.js +25 -26
- package/dist/cli/app.js.map +1 -1
- package/dist/config/constants.d.ts +1 -1
- package/dist/config/constants.js +1 -1
- package/dist/core/agents/agent.d.ts.map +1 -1
- package/dist/core/agents/agent.js +0 -2
- package/dist/core/agents/agent.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/app.tsx +136 -79
- package/src/config/constants.ts +1 -1
- package/src/core/agents/agent.ts +0 -2
package/.bluehawks/history.json
CHANGED
|
@@ -1,27 +1,40 @@
|
|
|
1
1
|
{
|
|
2
|
-
"id": "
|
|
3
|
-
"startTime": "2026-02-09T17:
|
|
2
|
+
"id": "session_1770659157542_yiqeep",
|
|
3
|
+
"startTime": "2026-02-09T17:45:57.542Z",
|
|
4
4
|
"messages": [
|
|
5
5
|
{
|
|
6
6
|
"role": "user",
|
|
7
|
-
"content": "
|
|
7
|
+
"content": "hi"
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
"role": "assistant",
|
|
11
|
-
"content": "
|
|
11
|
+
"content": "Hello! How can I assist you today? đ"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"role": "user",
|
|
15
|
+
"content": "content of client.ts?"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"role": "assistant",
|
|
19
|
+
"content": "The file `client.ts` does not exist in the current directory structure. Let me verify the available files:\n\n```xml\n<<tool_call>>\n{\"name\": \"list_directory\", \"arguments\": {\"path\": \".\"}}\n</<tool_call>>\n```"
|
|
12
20
|
}
|
|
13
21
|
],
|
|
14
22
|
"metadata": {
|
|
15
23
|
"projectPath": "/home/chandanv/Projects/bluehawks-cli",
|
|
16
24
|
"model": "Qwen/Qwen3-4B-Instruct-2507",
|
|
17
|
-
"tokensUsed":
|
|
18
|
-
"toolsUsed": [
|
|
19
|
-
|
|
20
|
-
"read_file"
|
|
21
|
-
],
|
|
22
|
-
"successfulToolCalls": 2,
|
|
25
|
+
"tokensUsed": 3080,
|
|
26
|
+
"toolsUsed": [],
|
|
27
|
+
"successfulToolCalls": 0,
|
|
23
28
|
"failedToolCalls": 0,
|
|
24
|
-
"apiTime":
|
|
25
|
-
"toolTime":
|
|
29
|
+
"apiTime": 5662,
|
|
30
|
+
"toolTime": 0,
|
|
31
|
+
"modelUsage": {
|
|
32
|
+
"Qwen/Qwen3-4B-Instruct-2507": {
|
|
33
|
+
"inputTokens": 3020,
|
|
34
|
+
"outputTokens": 60,
|
|
35
|
+
"cacheReadTokens": 0,
|
|
36
|
+
"totalTokens": 3080
|
|
37
|
+
}
|
|
38
|
+
}
|
|
26
39
|
}
|
|
27
40
|
}
|
package/dist/cli/app.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/cli/app.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* Bluehawks CLI - Main Application Component
|
|
4
4
|
*/
|
|
@@ -16,23 +16,25 @@ import { hooksManager } from '../core/hooks/index.js';
|
|
|
16
16
|
import * as path from 'path';
|
|
17
17
|
import * as os from 'os';
|
|
18
18
|
// UI Components
|
|
19
|
-
const Branding = () => (_jsxs(Box, {
|
|
20
|
-
const
|
|
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
21
|
const relativePath = projectPath.startsWith(os.homedir())
|
|
22
22
|
? '~/' + path.relative(os.homedir(), projectPath)
|
|
23
23
|
: projectPath;
|
|
24
|
-
return (_jsxs(Box, { flexDirection: "
|
|
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
25
|
};
|
|
26
26
|
const Tips = () => {
|
|
27
27
|
const tipsList = [
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"Bluehawks
|
|
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."
|
|
32
33
|
];
|
|
33
34
|
const [tip] = useState(() => tipsList[Math.floor(Math.random() * tipsList.length)]);
|
|
34
|
-
return (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: "gray",
|
|
35
|
+
return (_jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsxs(Text, { color: "gray", children: ["Tips: ", tip] }) }));
|
|
35
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 " }) }))] }));
|
|
36
38
|
export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
|
|
37
39
|
const { exit } = useApp();
|
|
38
40
|
const exitCalledRef = React.useRef(false);
|
|
@@ -84,14 +86,11 @@ export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
|
|
|
84
86
|
});
|
|
85
87
|
// Cleanup: trigger Stop hook and auto-save session on exit
|
|
86
88
|
return () => {
|
|
87
|
-
// CRITICAL: Call onExit SYNCHRONOUSLY before async operations
|
|
88
|
-
// This ensures stats are captured before the process exits
|
|
89
89
|
if (!exitCalledRef.current && onExit) {
|
|
90
90
|
exitCalledRef.current = true;
|
|
91
91
|
const stats = sessionManager.getStats();
|
|
92
92
|
onExit(stats, sessionManager.getSessionId());
|
|
93
93
|
}
|
|
94
|
-
// Async cleanup for hooks and session save (non-critical)
|
|
95
94
|
const cleanup = async () => {
|
|
96
95
|
const stats = sessionManager.getStats();
|
|
97
96
|
const stopContext = {
|
|
@@ -125,11 +124,9 @@ export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
|
|
|
125
124
|
orchestrator,
|
|
126
125
|
toolRegistry,
|
|
127
126
|
onExit: () => {
|
|
128
|
-
// Get stats before exit and call callback
|
|
129
127
|
if (!exitCalledRef.current && onExit) {
|
|
130
128
|
exitCalledRef.current = true;
|
|
131
129
|
const stats = sessionManager.getStats();
|
|
132
|
-
console.log('DEBUG: App.tsx onExit triggered', stats.messageCount);
|
|
133
130
|
onExit(stats, sessionManager.getSessionId());
|
|
134
131
|
}
|
|
135
132
|
exit();
|
|
@@ -250,26 +247,28 @@ export const App = ({ initialPrompt, apiKey, yoloMode = false, onExit }) => {
|
|
|
250
247
|
return COLORS.muted;
|
|
251
248
|
}
|
|
252
249
|
};
|
|
253
|
-
return (_jsxs(Box, { flexDirection: "column", paddingX:
|
|
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) => {
|
|
254
251
|
// Custom rendering for Tool messages (Boxed UI)
|
|
255
252
|
if (msg.role === 'tool') {
|
|
256
253
|
try {
|
|
257
254
|
const content = JSON.parse(msg.content);
|
|
258
|
-
if (content.type === '
|
|
259
|
-
|
|
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));
|
|
260
263
|
}
|
|
261
|
-
return null; // Skip tool_start in history to reduce noise
|
|
262
264
|
}
|
|
263
265
|
catch {
|
|
264
|
-
|
|
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));
|
|
265
268
|
}
|
|
266
269
|
}
|
|
267
|
-
// User
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
}
|
|
271
|
-
// Assistant/System Message
|
|
272
|
-
return (_jsxs(Box, { marginTop: 0, marginBottom: 0, flexDirection: "column", children: [msg.role !== 'assistant' && (_jsx(Text, { bold: true, color: getRoleColor(msg.role), children: msg.role === 'error' ? 'â ERROR' : 'âšī¸ SYSTEM' })), _jsx(Box, { marginLeft: 0, children: _jsx(Text, { color: "white", children: msg.content }) })] }, i));
|
|
273
|
-
}), streamingContent && (_jsx(Box, { marginTop: 0, flexDirection: "column", children: _jsx(Box, { marginLeft: 0, children: _jsx(Text, { color: "white", children: streamingContent }) }) })), pendingApproval && (_jsxs(Box, { flexDirection: "row", marginTop: 1, paddingX: 0, children: [_jsx(Text, { color: "yellow", children: "? " }), _jsx(Text, { color: "white", bold: true, children: "Waiting for user confirmation: " }), _jsx(Text, { color: "yellow", children: pendingApproval.toolName }), _jsx(Text, { color: "gray", children: " [y/N]" })] }))] }), !pendingApproval && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Box, { borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: "gray", marginBottom: 0 }), _jsxs(Box, { children: [_jsx(Text, { color: COLORS.primary, bold: true, children: "\u276F " }), isProcessing ? (_jsxs(Box, { children: [_jsx(Spinner, { type: "dots" }), _jsx(Text, { color: COLORS.muted, children: currentTool ? ` Executing ${currentTool}...` : ' Thinking...' })] })) : (_jsx(TextInput, { value: input, onChange: setInput, onSubmit: handleSubmit, placeholder: "..." }))] }), isYoloMode && (_jsx(Box, { marginTop: 0, children: _jsx(Text, { color: "#F59E0B", bold: true, children: "\u26A1 YOLO Mode Active" }) }))] })), _jsx(Box, { marginTop: 1, children: _jsx(Footer, { model: apiClient.currentModel, projectPath: process.cwd() }) })] }));
|
|
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 ' : 'âšī¸ SYSTEM ' }) }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: "white", children: 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 " }) }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: "white", children: 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 })] }))] }));
|
|
274
273
|
};
|
|
275
274
|
//# sourceMappingURL=app.js.map
|
package/dist/cli/app.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -6,7 +6,7 @@ export declare const DEFAULT_MODEL = "Qwen/Qwen3-8B";
|
|
|
6
6
|
export declare const DEFAULT_EMBEDDING_MODEL = "Qwen/Qwen3-Embedding-0.6B";
|
|
7
7
|
export declare const DEFAULT_RERANK_MODEL = "Qwen/Qwen3-Reranker-0.6B";
|
|
8
8
|
export declare const CLI_NAME = "bluehawks";
|
|
9
|
-
export declare const CLI_VERSION = "1.0.
|
|
9
|
+
export declare const CLI_VERSION = "1.0.31";
|
|
10
10
|
export declare const CLI_DESCRIPTION = "A production-ready multi-agent AI CLI assistant";
|
|
11
11
|
export declare const CONFIG_DIR_NAME = ".bluehawks";
|
|
12
12
|
export declare const SETTINGS_FILE = "settings.json";
|
package/dist/config/constants.js
CHANGED
|
@@ -8,7 +8,7 @@ export const DEFAULT_EMBEDDING_MODEL = 'Qwen/Qwen3-Embedding-0.6B';
|
|
|
8
8
|
export const DEFAULT_RERANK_MODEL = 'Qwen/Qwen3-Reranker-0.6B';
|
|
9
9
|
// CLI Metadata
|
|
10
10
|
export const CLI_NAME = 'bluehawks';
|
|
11
|
-
export const CLI_VERSION = '1.0.
|
|
11
|
+
export const CLI_VERSION = '1.0.31';
|
|
12
12
|
export const CLI_DESCRIPTION = 'A production-ready multi-agent AI CLI assistant';
|
|
13
13
|
// Configuration Paths
|
|
14
14
|
export const CONFIG_DIR_NAME = '.bluehawks';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/core/agents/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAc,cAAc,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIlF,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;CAChB;AAED,qBAAa,KAAK;IACd,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IAClC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAC/B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC9B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/core/agents/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAc,cAAc,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIlF,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;CAChB;AAED,qBAAa,KAAK;IACd,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IAClC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAC/B,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC9B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAmB7E,GAAG,CACL,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACnC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EACpE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAClD,OAAO,GAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAM,GACvD,OAAO,CAAC,aAAa,CAAC;IA4LzB,WAAW,IAAI,OAAO,EAAE;IAIxB,OAAO,IAAI,MAAM;CAGpB"}
|
|
@@ -30,8 +30,6 @@ export class Agent {
|
|
|
30
30
|
else {
|
|
31
31
|
this.tools = toolRegistry.getDefinitions();
|
|
32
32
|
}
|
|
33
|
-
// DEBUG: Verify tools
|
|
34
|
-
console.log('DEBUG: Agent tools:', this.tools.map(t => t.function.name).join(', '));
|
|
35
33
|
}
|
|
36
34
|
async run(userMessage, onChunk, onToolStart, onToolEnd, history = []) {
|
|
37
35
|
// Initialize with system message, prior history, and current user message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/core/agents/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAqBjD,MAAM,OAAO,KAAK;IACJ,IAAI,CAAS;IACb,YAAY,CAAS;IACrB,KAAK,CAAmB;IACxB,aAAa,CAAS;IACtB,SAAS,CAAY;IACrB,YAAY,CAAe;IAC3B,QAAQ,CAAY;IACpB,SAAS,CAAS;IAE5B,YAAY,OAAqB,EAAE,SAAoB,EAAE,YAA0B;QAC/E,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEzC,uBAAuB;QACvB,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;iBACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;iBACjD,MAAM,CAAC,CAAC,GAAG,EAAyB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;QAC/C,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/core/agents/agent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/app.tsx
CHANGED
|
@@ -19,42 +19,73 @@ import * as os from 'os';
|
|
|
19
19
|
|
|
20
20
|
// UI Components
|
|
21
21
|
const Branding = () => (
|
|
22
|
-
<Box
|
|
23
|
-
<Text color="#3B82F6"
|
|
24
|
-
<Text color="
|
|
22
|
+
<Box flexDirection="column" marginY={1}>
|
|
23
|
+
<Text color="#3B82F6">{"âââââââ âââ âââ ââââââââââââââ âââ ââââââ âââ ââââââ âââââââââââ"}</Text>
|
|
24
|
+
<Text color="#6366F1">{"âââââââââââ âââ ââââââââââââââ ââââââââââââââ ââââââ ââââââââââââ"}</Text>
|
|
25
|
+
<Text color="#8B5CF6">{"âââââââââââ âââ âââââââââ âââââââââââââââââââ ââ ââââââââââ ââââââââ"}</Text>
|
|
26
|
+
<Text color="#A855F7">{"âââââââââââ âââ âââââââââ âââââââââââââââââââââââââââââââââ ââââââââ"}</Text>
|
|
27
|
+
<Text color="#D946EF">{"ââââââââââââââââââââââââââââââââââââ ââââââ ââââââââââââââââ âââââââââââ"}</Text>
|
|
28
|
+
<Text color="#EC4899">{"âââââââ ââââââââ âââââââ âââââââââââ ââââââ âââ ââââââââ âââ âââââââââââ"}</Text>
|
|
25
29
|
</Box>
|
|
26
30
|
);
|
|
27
31
|
|
|
28
|
-
const
|
|
32
|
+
const HeaderBox: React.FC<{ version: string; model: string; projectPath: string }> = ({ version, model, projectPath }) => {
|
|
29
33
|
const relativePath = projectPath.startsWith(os.homedir())
|
|
30
34
|
? '~/' + path.relative(os.homedir(), projectPath)
|
|
31
35
|
: projectPath;
|
|
32
36
|
|
|
33
37
|
return (
|
|
34
|
-
<Box
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
<Box borderStyle="round" borderColor="#3B82F6" paddingX={2} paddingY={0} width={80} marginBottom={1}>
|
|
39
|
+
<Box flexDirection="column">
|
|
40
|
+
<Box>
|
|
41
|
+
<Text bold color="#3B82F6">{">_ "}{CLI_NAME} </Text>
|
|
42
|
+
<Text color="gray">(v{version})</Text>
|
|
43
|
+
</Box>
|
|
44
|
+
<Box marginTop={0}>
|
|
45
|
+
<Text color="gray">Model: </Text>
|
|
46
|
+
<Text color="white">{model}</Text>
|
|
47
|
+
</Box>
|
|
48
|
+
<Box>
|
|
49
|
+
<Text color="gray">Path: </Text>
|
|
50
|
+
<Text color="white">{relativePath}</Text>
|
|
51
|
+
</Box>
|
|
52
|
+
</Box>
|
|
38
53
|
</Box>
|
|
39
54
|
);
|
|
40
55
|
};
|
|
41
56
|
|
|
42
57
|
const Tips = () => {
|
|
43
58
|
const tipsList = [
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"Bluehawks
|
|
59
|
+
"Start a fresh idea with /clear or /new; the previous session stays available in history.",
|
|
60
|
+
"Use /yolo to auto-approve all tool executions for maximum speed.",
|
|
61
|
+
"Need help? Type /help to see all available commands and shortcuts.",
|
|
62
|
+
"Bluehawks can read your codebase, run tests, and even commit changes.",
|
|
63
|
+
"Working on a specific repository? Bluehawks understands your local context automatically."
|
|
48
64
|
];
|
|
49
65
|
const [tip] = useState(() => tipsList[Math.floor(Math.random() * tipsList.length)]);
|
|
50
66
|
|
|
51
67
|
return (
|
|
52
|
-
<Box marginBottom={1}>
|
|
53
|
-
<Text color="gray"
|
|
68
|
+
<Box marginTop={1} marginBottom={1}>
|
|
69
|
+
<Text color="gray">Tips: {tip}</Text>
|
|
54
70
|
</Box>
|
|
55
71
|
);
|
|
56
72
|
};
|
|
57
73
|
|
|
74
|
+
const StatusBar: React.FC<{ isYoloMode: boolean }> = ({ isYoloMode }) => (
|
|
75
|
+
<Box marginTop={1} paddingX={1} borderStyle="single" borderTop={true} borderBottom={false} borderLeft={false} borderRight={false} borderColor="gray">
|
|
76
|
+
<Box flexGrow={1}>
|
|
77
|
+
<Text color="gray">Type </Text>
|
|
78
|
+
<Text color="cyan" bold>/help</Text>
|
|
79
|
+
<Text color="gray"> for commands. </Text>
|
|
80
|
+
</Box>
|
|
81
|
+
{isYoloMode && (
|
|
82
|
+
<Box>
|
|
83
|
+
<Text color="#F59E0B" bold>⥠YOLO MODE ACTIVE </Text>
|
|
84
|
+
</Box>
|
|
85
|
+
)}
|
|
86
|
+
</Box>
|
|
87
|
+
);
|
|
88
|
+
|
|
58
89
|
interface AppProps {
|
|
59
90
|
initialPrompt?: string;
|
|
60
91
|
apiKey?: string;
|
|
@@ -83,7 +114,6 @@ export const App: React.FC<AppProps> = ({ initialPrompt, apiKey, yoloMode = fals
|
|
|
83
114
|
} | null>(null);
|
|
84
115
|
const [isYoloMode, setIsYoloMode] = useState(yoloMode);
|
|
85
116
|
|
|
86
|
-
|
|
87
117
|
// Initialize components
|
|
88
118
|
const [apiClient] = useState(() => new APIClient({ apiKey }));
|
|
89
119
|
const [toolExecutor] = useState(() => {
|
|
@@ -130,15 +160,12 @@ export const App: React.FC<AppProps> = ({ initialPrompt, apiKey, yoloMode = fals
|
|
|
130
160
|
|
|
131
161
|
// Cleanup: trigger Stop hook and auto-save session on exit
|
|
132
162
|
return () => {
|
|
133
|
-
// CRITICAL: Call onExit SYNCHRONOUSLY before async operations
|
|
134
|
-
// This ensures stats are captured before the process exits
|
|
135
163
|
if (!exitCalledRef.current && onExit) {
|
|
136
164
|
exitCalledRef.current = true;
|
|
137
165
|
const stats = sessionManager.getStats();
|
|
138
166
|
onExit(stats, sessionManager.getSessionId());
|
|
139
167
|
}
|
|
140
168
|
|
|
141
|
-
// Async cleanup for hooks and session save (non-critical)
|
|
142
169
|
const cleanup = async () => {
|
|
143
170
|
const stats = sessionManager.getStats();
|
|
144
171
|
const stopContext: StopInput = {
|
|
@@ -156,7 +183,6 @@ export const App: React.FC<AppProps> = ({ initialPrompt, apiKey, yoloMode = fals
|
|
|
156
183
|
};
|
|
157
184
|
}, [toolExecutor, isYoloMode, orchestrator, sessionManager, apiClient, onExit]);
|
|
158
185
|
|
|
159
|
-
|
|
160
186
|
// Handle initial prompt
|
|
161
187
|
useEffect(() => {
|
|
162
188
|
if (initialPrompt) {
|
|
@@ -176,11 +202,9 @@ export const App: React.FC<AppProps> = ({ initialPrompt, apiKey, yoloMode = fals
|
|
|
176
202
|
orchestrator,
|
|
177
203
|
toolRegistry,
|
|
178
204
|
onExit: () => {
|
|
179
|
-
// Get stats before exit and call callback
|
|
180
205
|
if (!exitCalledRef.current && onExit) {
|
|
181
206
|
exitCalledRef.current = true;
|
|
182
207
|
const stats = sessionManager.getStats();
|
|
183
|
-
console.log('DEBUG: App.tsx onExit triggered', stats.messageCount);
|
|
184
208
|
onExit(stats, sessionManager.getSessionId());
|
|
185
209
|
}
|
|
186
210
|
exit();
|
|
@@ -312,54 +336,77 @@ export const App: React.FC<AppProps> = ({ initialPrompt, apiKey, yoloMode = fals
|
|
|
312
336
|
};
|
|
313
337
|
|
|
314
338
|
return (
|
|
315
|
-
<Box flexDirection="column" paddingX={
|
|
316
|
-
{/* Branding
|
|
317
|
-
<
|
|
339
|
+
<Box flexDirection="column" paddingX={2} paddingY={1}>
|
|
340
|
+
{/* Branding & Header */}
|
|
341
|
+
<Box flexDirection="row" alignItems="center" marginBottom={1}>
|
|
342
|
+
<Branding />
|
|
343
|
+
<Box marginLeft={4}>
|
|
344
|
+
<HeaderBox
|
|
345
|
+
version={CLI_VERSION}
|
|
346
|
+
model={apiClient.currentModel}
|
|
347
|
+
projectPath={process.cwd()}
|
|
348
|
+
/>
|
|
349
|
+
</Box>
|
|
350
|
+
</Box>
|
|
318
351
|
|
|
319
352
|
{/* Tips only shown on start */}
|
|
320
353
|
{messages.length === 0 && <Tips />}
|
|
321
354
|
|
|
322
355
|
{/* Messages */}
|
|
323
|
-
<Box flexDirection="column" flexGrow={1} marginBottom={
|
|
324
|
-
{messages.slice(-
|
|
356
|
+
<Box flexDirection="column" flexGrow={1} marginBottom={1}>
|
|
357
|
+
{messages.slice(-30).map((msg, i) => {
|
|
325
358
|
// Custom rendering for Tool messages (Boxed UI)
|
|
326
359
|
if (msg.role === 'tool') {
|
|
327
360
|
try {
|
|
328
361
|
const content = JSON.parse(msg.content);
|
|
329
|
-
if (content.type === '
|
|
362
|
+
if (content.type === 'tool_start') {
|
|
363
|
+
// Smart JSON formatting: one line if short, indented if long
|
|
364
|
+
const jsonStr = JSON.stringify(content.args);
|
|
365
|
+
const displayArgs = jsonStr.length < 80 ? jsonStr : JSON.stringify(content.args, null, 2);
|
|
366
|
+
|
|
330
367
|
return (
|
|
331
|
-
<Box key={i} flexDirection="
|
|
332
|
-
<
|
|
333
|
-
|
|
334
|
-
|
|
368
|
+
<Box key={i} flexDirection="column" borderStyle="round" borderColor="magenta" paddingX={1} marginY={0} marginBottom={1} alignSelf="flex-start">
|
|
369
|
+
<Box>
|
|
370
|
+
<Text color="magenta" bold>⥠TOOL CALL: </Text>
|
|
371
|
+
<Text color="white" bold>{content.name}</Text>
|
|
372
|
+
</Box>
|
|
373
|
+
<Box marginLeft={1}>
|
|
374
|
+
<Text color="gray">{displayArgs}</Text>
|
|
375
|
+
</Box>
|
|
376
|
+
</Box>
|
|
377
|
+
);
|
|
378
|
+
} else if (content.type === 'tool_end') {
|
|
379
|
+
return (
|
|
380
|
+
<Box key={i} flexDirection="column" borderStyle="round" borderColor="green" paddingX={1} marginBottom={1} alignSelf="flex-start">
|
|
381
|
+
<Box>
|
|
382
|
+
<Text color="green" bold>â
TOOL RESULT: </Text>
|
|
383
|
+
<Text color="white" bold>{content.name}</Text>
|
|
384
|
+
</Box>
|
|
385
|
+
<Box marginLeft={1}>
|
|
386
|
+
<Text color="gray">{content.result ? content.result.substring(0, 200) + (content.result.length > 200 ? '...' : '') : 'Completed'}</Text>
|
|
387
|
+
</Box>
|
|
335
388
|
</Box>
|
|
336
389
|
);
|
|
337
390
|
}
|
|
338
|
-
return null; // Skip tool_start in history to reduce noise
|
|
339
391
|
} catch {
|
|
340
|
-
|
|
392
|
+
// Fallback for legacy plain text tool messages
|
|
393
|
+
return (
|
|
394
|
+
<Box key={i} marginBottom={1}>
|
|
395
|
+
<Text color="gray">đ§ {msg.content}</Text>
|
|
396
|
+
</Box>
|
|
397
|
+
);
|
|
341
398
|
}
|
|
342
399
|
}
|
|
343
400
|
|
|
344
|
-
// User
|
|
345
|
-
if (msg.role === 'user') {
|
|
346
|
-
return (
|
|
347
|
-
<Box key={i} marginTop={1} flexDirection="row">
|
|
348
|
-
<Text color={COLORS.primary} bold>⯠</Text>
|
|
349
|
-
<Text color="white">{msg.content}</Text>
|
|
350
|
-
</Box>
|
|
351
|
-
);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
// Assistant/System Message
|
|
401
|
+
// Standard User/Assistant/System messages
|
|
355
402
|
return (
|
|
356
|
-
<Box key={i}
|
|
357
|
-
|
|
403
|
+
<Box key={i} marginBottom={1} flexDirection="column">
|
|
404
|
+
<Box>
|
|
358
405
|
<Text bold color={getRoleColor(msg.role)}>
|
|
359
|
-
{msg.role === '
|
|
406
|
+
{msg.role === 'user' ? 'đ¤ YOU ' : msg.role === 'assistant' ? 'đĻ
BLUEHAWKS ' : 'âšī¸ SYSTEM '}
|
|
360
407
|
</Text>
|
|
361
|
-
|
|
362
|
-
<Box marginLeft={
|
|
408
|
+
</Box>
|
|
409
|
+
<Box marginLeft={2}>
|
|
363
410
|
<Text color="white">
|
|
364
411
|
{msg.content}
|
|
365
412
|
</Text>
|
|
@@ -370,62 +417,72 @@ export const App: React.FC<AppProps> = ({ initialPrompt, apiKey, yoloMode = fals
|
|
|
370
417
|
|
|
371
418
|
{/* Streaming content */}
|
|
372
419
|
{streamingContent && (
|
|
373
|
-
<Box
|
|
374
|
-
<Box
|
|
420
|
+
<Box marginBottom={1} flexDirection="column">
|
|
421
|
+
<Box>
|
|
422
|
+
<Text bold color={COLORS.success}>đĻ
BLUEHAWKS </Text>
|
|
423
|
+
</Box>
|
|
424
|
+
<Box marginLeft={2}>
|
|
375
425
|
<Text color="white">{streamingContent}</Text>
|
|
376
426
|
</Box>
|
|
377
427
|
</Box>
|
|
378
428
|
)}
|
|
379
429
|
|
|
380
|
-
{/*
|
|
430
|
+
{/* Current tool - Only show if NO persistent start message was added yet (prevent partial dupes) */}
|
|
431
|
+
{currentTool && !messages.some(m => m.role === 'tool' && m.content.includes(currentTool) && m.content.includes('tool_start')) && (
|
|
432
|
+
<Box flexDirection="column" borderStyle="round" borderColor="magenta" paddingX={2} paddingY={1} marginY={1}>
|
|
433
|
+
<Box>
|
|
434
|
+
<Spinner type="dots" />
|
|
435
|
+
<Text color="magenta" bold> ⥠TOOL CALL: </Text>
|
|
436
|
+
<Text color="white" bold>{currentTool}</Text>
|
|
437
|
+
</Box>
|
|
438
|
+
</Box>
|
|
439
|
+
)}
|
|
440
|
+
|
|
441
|
+
{/* Approval prompt */}
|
|
381
442
|
{pendingApproval && (
|
|
382
|
-
<Box flexDirection="
|
|
383
|
-
<Text color=
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
<
|
|
443
|
+
<Box flexDirection="column" borderStyle="round" borderColor="yellow" padding={1} marginY={1}>
|
|
444
|
+
<Text color={COLORS.warning} bold>
|
|
445
|
+
â ī¸ ACTION REQUIRED: Tool Approval
|
|
446
|
+
</Text>
|
|
447
|
+
<Box marginY={1} paddingX={1} borderStyle="single" borderColor="gray">
|
|
448
|
+
<Text color="white" bold>{pendingApproval.toolName}</Text>
|
|
449
|
+
<Text color="gray">
|
|
450
|
+
{"\n"}Args: {JSON.stringify(pendingApproval.args, null, 2).substring(0, 500)}
|
|
451
|
+
</Text>
|
|
452
|
+
</Box>
|
|
453
|
+
<Box>
|
|
454
|
+
<Text>Press </Text>
|
|
455
|
+
<Text color="green" bold>Y</Text>
|
|
456
|
+
<Text> to approve, </Text>
|
|
457
|
+
<Text color="red" bold>N</Text>
|
|
458
|
+
<Text> to deny</Text>
|
|
459
|
+
</Box>
|
|
387
460
|
</Box>
|
|
388
461
|
)}
|
|
389
462
|
</Box>
|
|
390
463
|
|
|
391
|
-
{/* Input
|
|
464
|
+
{/* Input Area */}
|
|
392
465
|
{!pendingApproval && (
|
|
393
|
-
<Box flexDirection="column"
|
|
394
|
-
{
|
|
395
|
-
<Box borderStyle="single" borderTop={true} borderBottom={false} borderLeft={false} borderRight={false} borderColor="gray" marginBottom={0} />
|
|
396
|
-
|
|
397
|
-
<Box>
|
|
466
|
+
<Box flexDirection="column">
|
|
467
|
+
<Box borderStyle="single" borderTop={true} borderBottom={false} borderLeft={false} borderRight={false} borderColor="gray" paddingTop={1}>
|
|
398
468
|
<Text color={COLORS.primary} bold>⯠</Text>
|
|
399
469
|
{isProcessing ? (
|
|
400
470
|
<Box>
|
|
401
471
|
<Spinner type="dots" />
|
|
402
|
-
<Text color={COLORS.muted}>
|
|
403
|
-
{currentTool ? ` Executing ${currentTool}...` : ' Thinking...'}
|
|
404
|
-
</Text>
|
|
472
|
+
<Text color={COLORS.muted}> Agent is thinking...</Text>
|
|
405
473
|
</Box>
|
|
406
474
|
) : (
|
|
407
475
|
<TextInput
|
|
408
476
|
value={input}
|
|
409
477
|
onChange={setInput}
|
|
410
478
|
onSubmit={handleSubmit}
|
|
411
|
-
placeholder="
|
|
479
|
+
placeholder="What's on your mind?"
|
|
412
480
|
/>
|
|
413
481
|
)}
|
|
414
482
|
</Box>
|
|
415
|
-
|
|
416
|
-
{/* Yolo Indicator */}
|
|
417
|
-
{isYoloMode && (
|
|
418
|
-
<Box marginTop={0}>
|
|
419
|
-
<Text color="#F59E0B" bold>⥠YOLO Mode Active</Text>
|
|
420
|
-
</Box>
|
|
421
|
-
)}
|
|
483
|
+
<StatusBar isYoloMode={isYoloMode} />
|
|
422
484
|
</Box>
|
|
423
485
|
)}
|
|
424
|
-
|
|
425
|
-
{/* Footer */}
|
|
426
|
-
<Box marginTop={1}>
|
|
427
|
-
<Footer model={apiClient.currentModel} projectPath={process.cwd()} />
|
|
428
|
-
</Box>
|
|
429
486
|
</Box>
|
|
430
487
|
);
|
|
431
488
|
};
|
package/src/config/constants.ts
CHANGED
|
@@ -10,7 +10,7 @@ export const DEFAULT_RERANK_MODEL = 'Qwen/Qwen3-Reranker-0.6B';
|
|
|
10
10
|
|
|
11
11
|
// CLI Metadata
|
|
12
12
|
export const CLI_NAME = 'bluehawks';
|
|
13
|
-
export const CLI_VERSION = '1.0.
|
|
13
|
+
export const CLI_VERSION = '1.0.31';
|
|
14
14
|
export const CLI_DESCRIPTION = 'A production-ready multi-agent AI CLI assistant';
|
|
15
15
|
|
|
16
16
|
// Configuration Paths
|
package/src/core/agents/agent.ts
CHANGED