balchemy 0.1.20 → 0.1.21
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/LICENSE +2 -2
- package/dist/tui/AgentBridge.d.ts.map +1 -1
- package/dist/tui/AgentBridge.js +7 -29
- package/dist/tui/AgentBridge.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +20 -6
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/ChatPanel.d.ts +2 -1
- package/dist/tui/ChatPanel.d.ts.map +1 -1
- package/dist/tui/ChatPanel.js +37 -20
- package/dist/tui/ChatPanel.js.map +1 -1
- package/dist/tui/StatusPanel.d.ts +4 -1
- package/dist/tui/StatusPanel.d.ts.map +1 -1
- package/dist/tui/StatusPanel.js +63 -11
- package/dist/tui/StatusPanel.js.map +1 -1
- package/dist/tui/setup-guidance.d.ts +7 -0
- package/dist/tui/setup-guidance.d.ts.map +1 -1
- package/dist/tui/setup-guidance.js +53 -1
- package/dist/tui/setup-guidance.js.map +1 -1
- package/dist/tui/text-layout.d.ts +7 -0
- package/dist/tui/text-layout.d.ts.map +1 -0
- package/dist/tui/text-layout.js +136 -0
- package/dist/tui/text-layout.js.map +1 -0
- package/package.json +2 -2
- package/templates/agent.config.yaml +71 -0
package/dist/tui/ChatPanel.js
CHANGED
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useState, useCallback, useEffect, useRef } from "react";
|
|
4
4
|
import { Box, Text, useInput } from "ink";
|
|
5
5
|
import { TextInput } from "@inkjs/ui";
|
|
6
|
+
import { displayWidth, truncateEnd, truncateMiddle, wrapText } from "./text-layout.js";
|
|
6
7
|
function formatTime(ts) {
|
|
7
8
|
return new Date(ts).toLocaleTimeString(undefined, {
|
|
8
9
|
hour: "2-digit",
|
|
@@ -36,42 +37,58 @@ function compactText(text, maxChars) {
|
|
|
36
37
|
return normalized;
|
|
37
38
|
return `${normalized.slice(0, maxChars - 24).trimEnd()}\n... trimmed in activity log`;
|
|
38
39
|
}
|
|
39
|
-
function
|
|
40
|
-
|
|
40
|
+
function WrappedText({ text, width, color, bold = false, maxLines, }) {
|
|
41
|
+
const lines = wrapText(text, width, maxLines);
|
|
42
|
+
return (_jsx(Box, { flexDirection: "column", width: width, children: lines.map((line, index) => (_jsx(Text, { color: color, bold: bold, children: line }, `${index}-${line}`))) }));
|
|
41
43
|
}
|
|
42
|
-
function
|
|
43
|
-
return (
|
|
44
|
+
function MessageCard({ label, labelColor, msg, width, children, }) {
|
|
45
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 0, width: width, children: [_jsxs(Box, { marginBottom: 0, children: [_jsx(Text, { color: labelColor, bold: true, children: label }), _jsxs(Text, { dimColor: true, children: [" ", formatTime(msg.timestamp)] })] }), _jsx(Box, { paddingLeft: 1, width: width, children: children })] }));
|
|
44
46
|
}
|
|
45
|
-
function
|
|
46
|
-
return (_jsx(MessageCard, {
|
|
47
|
+
function AgentMsg({ msg, width }) {
|
|
48
|
+
return (_jsx(MessageCard, { label: "AI", labelColor: "cyan", msg: msg, width: width, children: _jsx(WrappedText, { color: "white", width: Math.max(8, width - 1), text: compactText(msg.text, 560), maxLines: 8 }) }));
|
|
47
49
|
}
|
|
48
|
-
function
|
|
50
|
+
function UserMsg({ msg, width }) {
|
|
51
|
+
return (_jsx(MessageCard, { label: "YOU", labelColor: "yellow", msg: msg, width: width, children: _jsx(WrappedText, { color: "white", width: Math.max(8, width - 1), text: compactText(msg.text, 300), maxLines: 5 }) }));
|
|
52
|
+
}
|
|
53
|
+
function SystemMsg({ msg, width }) {
|
|
49
54
|
const meta = getSystemMeta(msg.text);
|
|
50
|
-
|
|
55
|
+
const prefix = `${meta.label} ${formatTime(msg.timestamp)} `;
|
|
56
|
+
const bodyWidth = Math.max(0, width - displayWidth(prefix));
|
|
57
|
+
const bodyText = compactText(meta.body, 220).replace(/\s+/g, " ");
|
|
58
|
+
const body = bodyWidth > 0 ? truncateMiddle(bodyText, bodyWidth) : "";
|
|
59
|
+
return (_jsxs(Box, { marginBottom: 0, width: width, children: [_jsx(Text, { color: meta.color, bold: true, children: meta.label }), _jsxs(Text, { dimColor: true, children: [" ", formatTime(msg.timestamp), " "] }), body.length > 0 && _jsx(Text, { dimColor: true, children: body })] }));
|
|
51
60
|
}
|
|
52
|
-
function TradeMsg({ msg }) {
|
|
61
|
+
function TradeMsg({ msg, width }) {
|
|
53
62
|
const isBuy = msg.action === "buy";
|
|
54
63
|
const color = isBuy ? "green" : "red";
|
|
55
|
-
return (_jsx(MessageCard, {
|
|
64
|
+
return (_jsx(MessageCard, { label: isBuy ? "BUY" : "SELL", labelColor: color, msg: msg, width: width, children: _jsx(WrappedText, { color: color, bold: true, width: Math.max(8, width - 1), text: compactText(msg.text, 300), maxLines: 5 }) }));
|
|
56
65
|
}
|
|
57
|
-
function ErrorMsg({ msg }) {
|
|
58
|
-
return (_jsx(MessageCard, {
|
|
66
|
+
function ErrorMsg({ msg, width }) {
|
|
67
|
+
return (_jsx(MessageCard, { label: "ERROR", labelColor: "red", msg: msg, width: width, children: _jsx(WrappedText, { color: "red", width: Math.max(8, width - 1), text: compactText(msg.text, 500), maxLines: 7 }) }));
|
|
59
68
|
}
|
|
60
|
-
function MessageLine({ msg }) {
|
|
69
|
+
function MessageLine({ msg, width }) {
|
|
61
70
|
switch (msg.type) {
|
|
62
|
-
case "agent": return _jsx(AgentMsg, { msg: msg });
|
|
63
|
-
case "user": return _jsx(UserMsg, { msg: msg });
|
|
64
|
-
case "trade": return _jsx(TradeMsg, { msg: msg });
|
|
65
|
-
case "error": return _jsx(ErrorMsg, { msg: msg });
|
|
66
|
-
default: return _jsx(SystemMsg, { msg: msg });
|
|
71
|
+
case "agent": return _jsx(AgentMsg, { msg: msg, width: width });
|
|
72
|
+
case "user": return _jsx(UserMsg, { msg: msg, width: width });
|
|
73
|
+
case "trade": return _jsx(TradeMsg, { msg: msg, width: width });
|
|
74
|
+
case "error": return _jsx(ErrorMsg, { msg: msg, width: width });
|
|
75
|
+
default: return _jsx(SystemMsg, { msg: msg, width: width });
|
|
67
76
|
}
|
|
68
77
|
}
|
|
69
78
|
// ── ChatPanel ────────────────────────────────────────────────────────────────
|
|
70
79
|
const SCROLL_STEP = 5;
|
|
71
|
-
export function ChatPanel({ messages, onSend, inputActive, hideInput = false, pageSize = 30, inputPlaceholder, }) {
|
|
80
|
+
export function ChatPanel({ messages, onSend, inputActive, hideInput = false, pageSize = 30, inputPlaceholder, width, }) {
|
|
72
81
|
const [inputKey, setInputKey] = useState(0);
|
|
73
82
|
const [scrollOffset, setScrollOffset] = useState(0);
|
|
74
83
|
const prevCount = useRef(messages.length);
|
|
84
|
+
const panelWidth = Math.max(18, width);
|
|
85
|
+
const historyWidth = Math.max(8, panelWidth - 2);
|
|
86
|
+
const messageWidth = Math.max(8, historyWidth);
|
|
87
|
+
const promptWidth = Math.max(14, panelWidth - 2);
|
|
88
|
+
const promptLabelWidth = 8;
|
|
89
|
+
const promptContentWidth = Math.max(8, promptWidth - 4);
|
|
90
|
+
const promptValueWidth = Math.max(4, promptContentWidth - promptLabelWidth);
|
|
91
|
+
const placeholder = truncateEnd(inputPlaceholder ?? "Ask, adjust rules, or inspect...", promptValueWidth);
|
|
75
92
|
// Auto-scroll to bottom on new messages (only if already at bottom)
|
|
76
93
|
useEffect(() => {
|
|
77
94
|
if (messages.length > prevCount.current && scrollOffset === 0) {
|
|
@@ -108,6 +125,6 @@ export function ChatPanel({ messages, onSend, inputActive, hideInput = false, pa
|
|
|
108
125
|
await onSend(value.trim());
|
|
109
126
|
}
|
|
110
127
|
}, [onSend]);
|
|
111
|
-
return (_jsxs(Box, { flexDirection: "column",
|
|
128
|
+
return (_jsxs(Box, { flexDirection: "column", width: panelWidth, flexShrink: 0, children: [hasOlder && (_jsx(Box, { paddingX: 1, children: _jsx(Text, { dimColor: true, children: truncateEnd(`↑ ${start} earlier items · PgUp`, historyWidth) }) })), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflowY: "hidden", paddingX: 1, justifyContent: "flex-end", width: panelWidth, children: [visibleMessages.length === 0 && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, width: messageWidth, children: [_jsx(Text, { color: "white", bold: true, children: "No activity yet" }), _jsx(Text, { dimColor: true, children: truncateEnd("Agent replies and tool traces appear here.", messageWidth) })] })), visibleMessages.map((msg) => (_jsx(MessageLine, { msg: msg, width: messageWidth }, msg.id)))] }), !isAtBottom && (_jsx(Box, { paddingX: 1, children: _jsx(Text, { dimColor: true, children: truncateEnd(`↓ ${scrollOffset} newer items · PgDn`, historyWidth) }) })), !hideInput && (_jsx(Box, { paddingX: 1, paddingY: 0, width: panelWidth, children: _jsxs(Box, { borderStyle: "round", borderColor: inputActive ? "cyan" : "gray", paddingX: 1, width: promptWidth, flexShrink: 0, children: [_jsx(Text, { color: inputActive ? "cyan" : "gray", bold: true, children: "Prompt" }), _jsx(Text, { dimColor: true, children: " " }), inputActive ? (_jsx(TextInput, { placeholder: placeholder, onSubmit: handleSubmit }, inputKey)) : (_jsx(Text, { dimColor: true, children: truncateEnd("Starting agent session...", promptValueWidth) }))] }) }))] }));
|
|
112
129
|
}
|
|
113
130
|
//# sourceMappingURL=ChatPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../src/tui/ChatPanel.tsx"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../src/tui/ChatPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { StatusData } from "./types.js";
|
|
2
|
+
import type { StatusData, WalletInfo } from "./types.js";
|
|
3
3
|
interface StatusPanelProps {
|
|
4
4
|
status: StatusData;
|
|
5
5
|
width?: number;
|
|
6
6
|
compact?: boolean;
|
|
7
7
|
height?: number;
|
|
8
8
|
}
|
|
9
|
+
export declare function walletLabel(chain: WalletInfo["chain"]): string;
|
|
10
|
+
export declare function formatWalletRow(wallet: WalletInfo, width: number): string;
|
|
11
|
+
export declare function selectWalletRows(wallets: WalletInfo[], limit: number): WalletInfo[];
|
|
9
12
|
export declare function StatusPanel({ status, width, compact, height, }: StatusPanelProps): React.ReactElement;
|
|
10
13
|
export {};
|
|
11
14
|
//# sourceMappingURL=StatusPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusPanel.d.ts","sourceRoot":"","sources":["../../src/tui/StatusPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusPanel.d.ts","sourceRoot":"","sources":["../../src/tui/StatusPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA4BzD,UAAU,gBAAgB;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,CAE9D;AAcD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzE;AAoBD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAgBnF;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,KAAU,EACV,OAAe,EACf,MAAM,GACP,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CA0IvC"}
|
package/dist/tui/StatusPanel.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from "ink";
|
|
3
3
|
import { getSessionBadge } from "./status-view.js";
|
|
4
|
+
import { displayWidth, truncateMiddle } from "./text-layout.js";
|
|
4
5
|
function Divider({ width = 24 }) {
|
|
5
|
-
return (_jsx(Box, { marginY: 0, children: _jsx(Text, { dimColor: true, children: "-".repeat(width) }) }));
|
|
6
|
-
}
|
|
7
|
-
function truncateMiddle(value, head, tail) {
|
|
8
|
-
if (value.length <= head + tail + 1)
|
|
9
|
-
return value;
|
|
10
|
-
return `${value.slice(0, head)}...${value.slice(-tail)}`;
|
|
6
|
+
return (_jsx(Box, { marginY: 0, children: _jsx(Text, { dimColor: true, children: "-".repeat(Math.max(0, width)) }) }));
|
|
11
7
|
}
|
|
12
8
|
function formatUptime(ms) {
|
|
13
9
|
const s = Math.floor(ms / 1000);
|
|
@@ -37,17 +33,73 @@ function toneColor(tone) {
|
|
|
37
33
|
function Header({ title }) {
|
|
38
34
|
return _jsx(Text, { color: "white", bold: true, children: title });
|
|
39
35
|
}
|
|
36
|
+
function fitText(value, width) {
|
|
37
|
+
return truncateMiddle(value, Math.max(0, width));
|
|
38
|
+
}
|
|
39
|
+
export function walletLabel(chain) {
|
|
40
|
+
return chain === "solana" ? "SOL" : "BASE";
|
|
41
|
+
}
|
|
42
|
+
function walletRowParts(wallet, width) {
|
|
43
|
+
const label = walletLabel(wallet.chain);
|
|
44
|
+
const labelWidth = displayWidth(label);
|
|
45
|
+
const separator = width - labelWidth >= 5 ? " " : " ";
|
|
46
|
+
const addressWidth = Math.max(0, width - labelWidth - displayWidth(separator));
|
|
47
|
+
return {
|
|
48
|
+
label: fitText(label, width),
|
|
49
|
+
separator: addressWidth > 0 ? separator : "",
|
|
50
|
+
address: addressWidth > 0 ? truncateMiddle(wallet.address, addressWidth) : "",
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function formatWalletRow(wallet, width) {
|
|
54
|
+
const row = walletRowParts(wallet, width);
|
|
55
|
+
return `${row.label}${row.separator}${row.address}`;
|
|
56
|
+
}
|
|
57
|
+
function WalletRow({ wallet, width, }) {
|
|
58
|
+
const color = wallet.chain === "solana" ? "cyan" : "yellow";
|
|
59
|
+
const row = walletRowParts(wallet, width);
|
|
60
|
+
return (_jsxs(Box, { width: width, children: [_jsx(Text, { color: color, bold: true, children: row.label }), row.address.length > 0 && _jsxs(Text, { dimColor: true, children: [row.separator, row.address] })] }, `${wallet.chain}-${wallet.address}`));
|
|
61
|
+
}
|
|
62
|
+
export function selectWalletRows(wallets, limit) {
|
|
63
|
+
const rows = [];
|
|
64
|
+
const solana = wallets.find((wallet) => wallet.chain === "solana");
|
|
65
|
+
const evm = wallets.find((wallet) => wallet.chain === "base");
|
|
66
|
+
if (solana)
|
|
67
|
+
rows.push(solana);
|
|
68
|
+
if (evm)
|
|
69
|
+
rows.push(evm);
|
|
70
|
+
for (const wallet of wallets) {
|
|
71
|
+
if (rows.length >= limit)
|
|
72
|
+
break;
|
|
73
|
+
if (!rows.some((existing) => existing.chain === wallet.chain && existing.address === wallet.address)) {
|
|
74
|
+
rows.push(wallet);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return rows.slice(0, limit);
|
|
78
|
+
}
|
|
40
79
|
export function StatusPanel({ status, width = 30, compact = false, height, }) {
|
|
41
|
-
const
|
|
42
|
-
const
|
|
80
|
+
const panelWidth = Math.max(18, width);
|
|
81
|
+
const contentWidth = Math.max(6, panelWidth - 4);
|
|
82
|
+
const dividerWidth = contentWidth;
|
|
83
|
+
const spendWidth = Math.min(compact ? 12 : 16, Math.max(8, contentWidth));
|
|
43
84
|
const isLowBalance = status.balanceSol < 0.01;
|
|
44
85
|
const sessionBadge = getSessionBadge(status);
|
|
45
86
|
const shortLayout = height !== undefined && height < 22;
|
|
46
|
-
const walletRows = status.wallets
|
|
87
|
+
const walletRows = selectWalletRows(status.wallets, 2);
|
|
47
88
|
const positionRows = status.activeTrades.slice(0, 2);
|
|
89
|
+
const statusTextWidth = Math.max(0, contentWidth - displayWidth(sessionBadge.label) - 2);
|
|
90
|
+
const statusText = fitText(status.status, statusTextWidth);
|
|
91
|
+
const providerText = status.provider
|
|
92
|
+
? fitText(`${status.provider} / ${status.model ?? "default"}`, contentWidth)
|
|
93
|
+
: fitText("provider pending", contentWidth);
|
|
94
|
+
const capitalText = fitText(`${status.balanceSol.toFixed(4)} SOL $${status.balanceUsd.toFixed(2)}`, contentWidth);
|
|
95
|
+
const lowBalanceText = fitText("Fund before live", contentWidth);
|
|
96
|
+
const runtimeText = fitText(`E ${status.eventsReceived} D ${status.decisionsExecuted} T ${status.tradesExecuted}`, contentWidth);
|
|
97
|
+
const runtimeWithUptime = fitText(`E ${status.eventsReceived} D ${status.decisionsExecuted} T ${status.tradesExecuted} ${formatUptime(status.uptime)}`, contentWidth);
|
|
98
|
+
const llmSpendText = `$${status.llmCostToday.toFixed(2)} / $${status.maxDailyLlmCost.toFixed(2)}`;
|
|
99
|
+
const inlineSpendWidth = Math.max(0, contentWidth - spendWidth - 2);
|
|
48
100
|
if (shortLayout) {
|
|
49
|
-
return (_jsxs(Box, { flexDirection: "column", width:
|
|
101
|
+
return (_jsxs(Box, { flexDirection: "column", width: panelWidth, height: height, borderStyle: "round", borderColor: "gray", paddingX: 1, paddingY: 0, overflowY: "hidden", children: [_jsxs(Box, { children: [_jsx(Text, { color: toneColor(sessionBadge.tone), bold: true, children: sessionBadge.label }), statusText.length > 0 && _jsxs(Text, { dimColor: true, children: [" ", statusText] })] }), _jsx(Text, { dimColor: true, children: providerText }), _jsx(Text, { color: "green", bold: true, children: capitalText }), isLowBalance && _jsx(Text, { color: "yellow", children: lowBalanceText }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "white", bold: true, children: "Wallets" }), walletRows.length === 0 && _jsx(Text, { dimColor: true, children: " pending setup" })] }), walletRows.map((wallet) => (_jsx(WalletRow, { wallet: wallet, width: contentWidth }, `${wallet.chain}-${wallet.address}`))), _jsx(Text, { color: "cyan", children: runtimeWithUptime }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "white", bold: true, children: "Positions" }), positionRows.length === 0 && _jsx(Text, { dimColor: true, children: " none" })] }), positionRows.map((trade) => (_jsxs(Box, { children: [_jsx(Text, { color: trade.action === "buy" ? "green" : "red", bold: true, children: trade.action === "buy" ? "BUY" : "SELL" }), _jsxs(Text, { dimColor: true, children: [" ", fitText(`${trade.token} ${trade.amount}`, Math.max(8, contentWidth - 6))] })] }, `${trade.token}-${trade.action}-${trade.amount}-${trade.timestamp}`))), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "cyan", children: meter(status.llmCostToday, status.maxDailyLlmCost, spendWidth) }), inlineSpendWidth > 0 && _jsxs(Text, { dimColor: true, children: [" ", fitText(llmSpendText, inlineSpendWidth)] })] })] }));
|
|
50
102
|
}
|
|
51
|
-
return (_jsxs(Box, { flexDirection: "column", width:
|
|
103
|
+
return (_jsxs(Box, { flexDirection: "column", width: panelWidth, height: height, borderStyle: "round", borderColor: "gray", paddingX: 1, paddingY: 0, overflowY: "hidden", children: [_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: toneColor(sessionBadge.tone), bold: true, children: sessionBadge.label }), statusText.length > 0 && _jsxs(Text, { dimColor: true, children: [" ", statusText] })] }), _jsx(Text, { dimColor: true, children: providerText })] }), _jsx(Divider, { width: dividerWidth }), _jsx(Header, { title: "Capital" }), _jsx(Text, { color: "green", bold: true, children: capitalText }), isLowBalance && _jsx(Text, { color: "yellow", children: lowBalanceText }), _jsx(Divider, { width: dividerWidth }), _jsx(Header, { title: "Wallets" }), status.wallets.length === 0 ? (_jsx(Text, { dimColor: true, children: "pending setup" })) : (walletRows.map((wallet) => (_jsx(WalletRow, { wallet: wallet, width: contentWidth }, `${wallet.chain}-${wallet.address}`)))), status.wallets.length > walletRows.length && _jsxs(Text, { dimColor: true, children: ["+", status.wallets.length - walletRows.length, " more"] }), _jsx(Divider, { width: dividerWidth }), _jsx(Header, { title: "Runtime" }), _jsx(Text, { color: "cyan", children: runtimeText }), _jsx(Text, { dimColor: true, children: fitText(`Uptime ${formatUptime(status.uptime)}`, contentWidth) }), _jsx(Divider, { width: dividerWidth }), _jsx(Header, { title: "Positions" }), status.activeTrades.length === 0 && _jsx(Text, { dimColor: true, children: "No live positions" }), positionRows.map((trade) => (_jsxs(Box, { children: [_jsx(Text, { color: trade.action === "buy" ? "green" : "red", bold: true, children: trade.action === "buy" ? "BUY" : "SELL" }), _jsxs(Text, { dimColor: true, children: [" ", fitText(`${trade.token} ${trade.amount}`, Math.max(8, contentWidth - 6))] })] }, `${trade.token}-${trade.action}-${trade.amount}-${trade.timestamp}`))), status.activeTrades.length > 2 && _jsxs(Text, { dimColor: true, children: ["+", status.activeTrades.length - 2, " more"] }), _jsx(Divider, { width: dividerWidth }), _jsx(Header, { title: "LLM" }), _jsx(Text, { color: "cyan", children: meter(status.llmCostToday, status.maxDailyLlmCost, spendWidth) }), _jsx(Text, { dimColor: true, children: fitText(llmSpendText, contentWidth) })] }));
|
|
52
104
|
}
|
|
53
105
|
//# sourceMappingURL=StatusPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusPanel.js","sourceRoot":"","sources":["../../src/tui/StatusPanel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StatusPanel.js","sourceRoot":"","sources":["../../src/tui/StatusPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
export type SetupChain = "solana" | "base";
|
|
1
2
|
export interface SetupStatusSnapshot {
|
|
2
3
|
developerWalletBound?: boolean;
|
|
3
4
|
walletsConfigured?: boolean;
|
|
4
5
|
tradingConfigured?: boolean;
|
|
5
6
|
slippageConfigured?: boolean;
|
|
6
7
|
strategyConfigured?: boolean;
|
|
8
|
+
solanaWalletBound?: boolean;
|
|
9
|
+
selectedChains?: SetupChain[];
|
|
10
|
+
nextStep?: string | null;
|
|
7
11
|
}
|
|
12
|
+
export declare function parseNetworkSelection(value: string): SetupChain[] | null;
|
|
8
13
|
export declare function parseSetupStatusSnapshot(structured?: Record<string, unknown>): SetupStatusSnapshot;
|
|
14
|
+
export declare function getInitialSetupStep(status: SetupStatusSnapshot): "developer-wallet" | "networks" | "solana-recovery-wallet" | "slippage" | "strategy" | "subscriptions";
|
|
15
|
+
export declare function isSetupReady(status: SetupStatusSnapshot | null): boolean;
|
|
9
16
|
export declare function buildSetupRequiredMessage(status: SetupStatusSnapshot): string;
|
|
10
17
|
//# sourceMappingURL=setup-guidance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-guidance.d.ts","sourceRoot":"","sources":["../../src/tui/setup-guidance.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"setup-guidance.d.ts","sourceRoot":"","sources":["../../src/tui/setup-guidance.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAYD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,IAAI,CAQxE;AAED,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,mBAAmB,CAarB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,UAAU,GAAG,wBAAwB,GAAG,UAAU,GAAG,UAAU,GAAG,eAAe,CAOvK;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,OAAO,CAKxE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAsB7E"}
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
function normalizeSelectedChains(value) {
|
|
2
|
+
if (!Array.isArray(value))
|
|
3
|
+
return [];
|
|
4
|
+
const chains = [];
|
|
5
|
+
for (const item of value) {
|
|
6
|
+
if (item === "solana" || item === "solana-devnet")
|
|
7
|
+
chains.push("solana");
|
|
8
|
+
if (item === "base" || item === "base-sepolia")
|
|
9
|
+
chains.push("base");
|
|
10
|
+
}
|
|
11
|
+
return [...new Set(chains)];
|
|
12
|
+
}
|
|
13
|
+
export function parseNetworkSelection(value) {
|
|
14
|
+
const normalized = value.trim().toLowerCase();
|
|
15
|
+
const wantsBoth = /\b(both|ikisi|hepsi|all)\b/.test(normalized) || (normalized.includes("solana") && normalized.includes("base"));
|
|
16
|
+
if (wantsBoth)
|
|
17
|
+
return ["solana", "base"];
|
|
18
|
+
const chains = [];
|
|
19
|
+
if (/\b(sol|solana|devnet)\b/.test(normalized))
|
|
20
|
+
chains.push("solana");
|
|
21
|
+
if (/\b(base|evm|sepolia|0x)\b/.test(normalized))
|
|
22
|
+
chains.push("base");
|
|
23
|
+
return chains.length > 0 ? chains : null;
|
|
24
|
+
}
|
|
1
25
|
export function parseSetupStatusSnapshot(structured) {
|
|
2
26
|
return {
|
|
3
27
|
developerWalletBound: structured?.developerWalletBound === true
|
|
@@ -6,8 +30,33 @@ export function parseSetupStatusSnapshot(structured) {
|
|
|
6
30
|
tradingConfigured: structured?.tradingConfigured === true,
|
|
7
31
|
slippageConfigured: structured?.slippageConfigured === true,
|
|
8
32
|
strategyConfigured: structured?.strategyConfigured === true,
|
|
33
|
+
solanaWalletBound: structured?.solanaWalletBound === true,
|
|
34
|
+
selectedChains: normalizeSelectedChains(structured?.selectedChains),
|
|
35
|
+
nextStep: typeof structured?.nextStep === "string" ? structured.nextStep : null,
|
|
9
36
|
};
|
|
10
37
|
}
|
|
38
|
+
export function getInitialSetupStep(status) {
|
|
39
|
+
if (!status.developerWalletBound)
|
|
40
|
+
return "developer-wallet";
|
|
41
|
+
if (!status.walletsConfigured)
|
|
42
|
+
return "networks";
|
|
43
|
+
if (status.selectedChains?.includes("solana") && !status.solanaWalletBound)
|
|
44
|
+
return "solana-recovery-wallet";
|
|
45
|
+
if (!status.slippageConfigured)
|
|
46
|
+
return "slippage";
|
|
47
|
+
if (!status.strategyConfigured && !status.tradingConfigured)
|
|
48
|
+
return "strategy";
|
|
49
|
+
return "subscriptions";
|
|
50
|
+
}
|
|
51
|
+
export function isSetupReady(status) {
|
|
52
|
+
if (!status)
|
|
53
|
+
return false;
|
|
54
|
+
if (status.nextStep)
|
|
55
|
+
return false;
|
|
56
|
+
if (status.selectedChains?.includes("solana") && !status.solanaWalletBound)
|
|
57
|
+
return false;
|
|
58
|
+
return status.tradingConfigured === true && status.walletsConfigured === true;
|
|
59
|
+
}
|
|
11
60
|
export function buildSetupRequiredMessage(status) {
|
|
12
61
|
if (!status.developerWalletBound) {
|
|
13
62
|
return "Setup incomplete. I will guide you here in chat. First: provide your Base/EVM 0x developer wallet for recovery and Hub access.";
|
|
@@ -15,11 +64,14 @@ export function buildSetupRequiredMessage(status) {
|
|
|
15
64
|
if (!status.walletsConfigured) {
|
|
16
65
|
return "Setup incomplete. Next: choose the trading networks: Solana, Base (EVM), or both. I will create the selected trading wallets.";
|
|
17
66
|
}
|
|
67
|
+
if (status.selectedChains?.includes("solana") && !status.solanaWalletBound) {
|
|
68
|
+
return "Setup incomplete. Solana trading was selected. Next: provide your Solana recovery/withdrawal wallet.";
|
|
69
|
+
}
|
|
18
70
|
if (!status.slippageConfigured) {
|
|
19
71
|
return "Setup incomplete. Next: configure slippage. You can answer in percent or bps, for example 3% = 300 bps.";
|
|
20
72
|
}
|
|
21
73
|
if (!status.strategyConfigured && !status.tradingConfigured) {
|
|
22
|
-
return "Setup incomplete. Next: define hard limits and describe your strategy so live execution can be configured.";
|
|
74
|
+
return "Setup incomplete. Next: define hard limits and describe your trading strategy so live execution can be configured.";
|
|
23
75
|
}
|
|
24
76
|
return "Setup incomplete. Continue the remaining setup steps in chat before live trading starts.";
|
|
25
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-guidance.js","sourceRoot":"","sources":["../../src/tui/setup-guidance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-guidance.js","sourceRoot":"","sources":["../../src/tui/setup-guidance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function stripAnsi(value: string): string;
|
|
2
|
+
export declare function displayWidth(value: string): number;
|
|
3
|
+
export declare function sliceToWidth(value: string, maxWidth: number): string;
|
|
4
|
+
export declare function truncateEnd(value: string, maxWidth: number, suffix?: string): string;
|
|
5
|
+
export declare function truncateMiddle(value: string, maxWidth: number): string;
|
|
6
|
+
export declare function wrapText(value: string, maxWidth: number, maxLines?: number): string[];
|
|
7
|
+
//# sourceMappingURL=text-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-layout.d.ts","sourceRoot":"","sources":["../../src/tui/text-layout.ts"],"names":[],"mappings":"AAyBA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYpE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAQ,GAAG,MAAM,CAKnF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBtE;AAuDD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrF"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
const ANSI_PATTERN = /\u001b\[[0-9;?]*[ -/]*[@-~]/g;
|
|
2
|
+
function charWidth(char) {
|
|
3
|
+
const codePoint = char.codePointAt(0) ?? 0;
|
|
4
|
+
if (codePoint === 0)
|
|
5
|
+
return 0;
|
|
6
|
+
if (codePoint < 32 || (codePoint >= 0x7f && codePoint < 0xa0))
|
|
7
|
+
return 0;
|
|
8
|
+
if (codePoint >= 0x300 && codePoint <= 0x36f)
|
|
9
|
+
return 0;
|
|
10
|
+
if ((codePoint >= 0x1100 && codePoint <= 0x115f)
|
|
11
|
+
|| (codePoint >= 0x2329 && codePoint <= 0x232a)
|
|
12
|
+
|| (codePoint >= 0x2e80 && codePoint <= 0xa4cf)
|
|
13
|
+
|| (codePoint >= 0xac00 && codePoint <= 0xd7a3)
|
|
14
|
+
|| (codePoint >= 0xf900 && codePoint <= 0xfaff)
|
|
15
|
+
|| (codePoint >= 0xfe10 && codePoint <= 0xfe19)
|
|
16
|
+
|| (codePoint >= 0xfe30 && codePoint <= 0xfe6f)
|
|
17
|
+
|| (codePoint >= 0xff00 && codePoint <= 0xff60)
|
|
18
|
+
|| (codePoint >= 0xffe0 && codePoint <= 0xffe6)) {
|
|
19
|
+
return 2;
|
|
20
|
+
}
|
|
21
|
+
return 1;
|
|
22
|
+
}
|
|
23
|
+
export function stripAnsi(value) {
|
|
24
|
+
return value.replace(ANSI_PATTERN, "");
|
|
25
|
+
}
|
|
26
|
+
export function displayWidth(value) {
|
|
27
|
+
return Array.from(stripAnsi(value)).reduce((width, char) => width + charWidth(char), 0);
|
|
28
|
+
}
|
|
29
|
+
export function sliceToWidth(value, maxWidth) {
|
|
30
|
+
if (maxWidth <= 0)
|
|
31
|
+
return "";
|
|
32
|
+
let used = 0;
|
|
33
|
+
let result = "";
|
|
34
|
+
for (const char of Array.from(stripAnsi(value))) {
|
|
35
|
+
const width = charWidth(char);
|
|
36
|
+
if (used + width > maxWidth)
|
|
37
|
+
break;
|
|
38
|
+
result += char;
|
|
39
|
+
used += width;
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
export function truncateEnd(value, maxWidth, suffix = "...") {
|
|
44
|
+
const clean = stripAnsi(value);
|
|
45
|
+
if (displayWidth(clean) <= maxWidth)
|
|
46
|
+
return clean;
|
|
47
|
+
if (maxWidth <= displayWidth(suffix))
|
|
48
|
+
return sliceToWidth(suffix, maxWidth);
|
|
49
|
+
return `${sliceToWidth(clean, maxWidth - displayWidth(suffix))}${suffix}`;
|
|
50
|
+
}
|
|
51
|
+
export function truncateMiddle(value, maxWidth) {
|
|
52
|
+
const clean = stripAnsi(value);
|
|
53
|
+
if (displayWidth(clean) <= maxWidth)
|
|
54
|
+
return clean;
|
|
55
|
+
if (maxWidth <= 3)
|
|
56
|
+
return sliceToWidth("...", maxWidth);
|
|
57
|
+
const sideWidth = Math.max(1, Math.floor((maxWidth - 3) / 2));
|
|
58
|
+
const tailWidth = Math.max(1, maxWidth - 3 - sideWidth);
|
|
59
|
+
const chars = Array.from(clean);
|
|
60
|
+
let tail = "";
|
|
61
|
+
let used = 0;
|
|
62
|
+
for (let i = chars.length - 1; i >= 0; i -= 1) {
|
|
63
|
+
const char = chars[i];
|
|
64
|
+
const width = charWidth(char);
|
|
65
|
+
if (used + width > tailWidth)
|
|
66
|
+
break;
|
|
67
|
+
tail = `${char}${tail}`;
|
|
68
|
+
used += width;
|
|
69
|
+
}
|
|
70
|
+
return `${sliceToWidth(clean, sideWidth)}...${tail}`;
|
|
71
|
+
}
|
|
72
|
+
function breakLongToken(token, maxWidth) {
|
|
73
|
+
const chunks = [];
|
|
74
|
+
let current = "";
|
|
75
|
+
let used = 0;
|
|
76
|
+
for (const char of Array.from(stripAnsi(token))) {
|
|
77
|
+
const width = charWidth(char);
|
|
78
|
+
if (current.length > 0 && used + width > maxWidth) {
|
|
79
|
+
chunks.push(current);
|
|
80
|
+
current = "";
|
|
81
|
+
used = 0;
|
|
82
|
+
}
|
|
83
|
+
if (width > maxWidth)
|
|
84
|
+
continue;
|
|
85
|
+
current += char;
|
|
86
|
+
used += width;
|
|
87
|
+
}
|
|
88
|
+
if (current.length > 0)
|
|
89
|
+
chunks.push(current);
|
|
90
|
+
return chunks;
|
|
91
|
+
}
|
|
92
|
+
function wrapPlainLine(line, maxWidth) {
|
|
93
|
+
if (maxWidth <= 0)
|
|
94
|
+
return [""];
|
|
95
|
+
if (line.trim().length === 0)
|
|
96
|
+
return [""];
|
|
97
|
+
const tokens = stripAnsi(line).trim().split(/\s+/);
|
|
98
|
+
const lines = [];
|
|
99
|
+
let current = "";
|
|
100
|
+
for (const token of tokens) {
|
|
101
|
+
const tokenWidth = displayWidth(token);
|
|
102
|
+
if (tokenWidth > maxWidth) {
|
|
103
|
+
if (current.length > 0) {
|
|
104
|
+
lines.push(current);
|
|
105
|
+
current = "";
|
|
106
|
+
}
|
|
107
|
+
lines.push(...breakLongToken(token, maxWidth));
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const candidate = current.length === 0 ? token : `${current} ${token}`;
|
|
111
|
+
if (displayWidth(candidate) <= maxWidth) {
|
|
112
|
+
current = candidate;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
if (current.length > 0)
|
|
116
|
+
lines.push(current);
|
|
117
|
+
current = token;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (current.length > 0)
|
|
121
|
+
lines.push(current);
|
|
122
|
+
return lines.length > 0 ? lines : [""];
|
|
123
|
+
}
|
|
124
|
+
export function wrapText(value, maxWidth, maxLines) {
|
|
125
|
+
const width = Math.max(1, maxWidth);
|
|
126
|
+
const wrapped = stripAnsi(value)
|
|
127
|
+
.replace(/\n{3,}/g, "\n\n")
|
|
128
|
+
.split("\n")
|
|
129
|
+
.flatMap((line) => wrapPlainLine(line, width));
|
|
130
|
+
if (maxLines === undefined || wrapped.length <= maxLines)
|
|
131
|
+
return wrapped;
|
|
132
|
+
const visible = wrapped.slice(0, Math.max(1, maxLines));
|
|
133
|
+
visible[visible.length - 1] = truncateEnd("... trimmed in activity log", width);
|
|
134
|
+
return visible;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=text-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-layout.js","sourceRoot":"","sources":["../../src/tui/text-layout.ts"],"names":[],"mappings":"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"}
|