@jellyos/agent 0.1.2 → 0.1.4
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/README.md +9 -9
- package/dist/api/Registry.js +3 -1
- package/dist/api/Registry.js.map +1 -1
- package/dist/cli.js +11 -24
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +1 -25
- package/dist/loader.js.map +1 -1
- package/dist/models/CostTracker.d.ts +66 -0
- package/dist/models/CostTracker.d.ts.map +1 -0
- package/dist/models/CostTracker.js +148 -0
- package/dist/models/CostTracker.js.map +1 -0
- package/dist/models/ModelRegistry.d.ts +146 -0
- package/dist/models/ModelRegistry.d.ts.map +1 -0
- package/dist/models/ModelRegistry.js +400 -0
- package/dist/models/ModelRegistry.js.map +1 -0
- package/dist/models/index.d.ts +5 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -0
- package/dist/runner/AgentRunner.d.ts +5 -1
- package/dist/runner/AgentRunner.d.ts.map +1 -1
- package/dist/runner/AgentRunner.js +18 -8
- package/dist/runner/AgentRunner.js.map +1 -1
- package/dist/runner/ModelClient.d.ts +16 -5
- package/dist/runner/ModelClient.d.ts.map +1 -1
- package/dist/runner/ModelClient.js +69 -23
- package/dist/runner/ModelClient.js.map +1 -1
- package/dist/runner/SwarmRouter.d.ts +4 -1
- package/dist/runner/SwarmRouter.d.ts.map +1 -1
- package/dist/runner/SwarmRouter.js +15 -7
- package/dist/runner/SwarmRouter.js.map +1 -1
- package/dist/session/SessionManager.d.ts +2 -2
- package/dist/session/SessionManager.js +3 -3
- package/dist/session/SessionManager.js.map +1 -1
- package/dist/tools/NewsSentiment.d.ts +67 -0
- package/dist/tools/NewsSentiment.d.ts.map +1 -0
- package/dist/tools/NewsSentiment.js +199 -0
- package/dist/tools/NewsSentiment.js.map +1 -0
- package/dist/tools/PriceFeed.d.ts +103 -0
- package/dist/tools/PriceFeed.d.ts.map +1 -0
- package/dist/tools/PriceFeed.js +230 -0
- package/dist/tools/PriceFeed.js.map +1 -0
- package/dist/tools/TechnicalAnalysis.d.ts +73 -0
- package/dist/tools/TechnicalAnalysis.d.ts.map +1 -0
- package/dist/tools/TechnicalAnalysis.js +272 -0
- package/dist/tools/TechnicalAnalysis.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tui/App.d.ts +7 -5
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +178 -61
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/StatusBar.js +1 -1
- package/dist/tui/StatusBar.js.map +1 -1
- package/package.json +2 -2
- package/dist/util/safeLog.d.ts +0 -39
- package/dist/util/safeLog.d.ts.map +0 -1
- package/dist/util/safeLog.js +0 -59
- package/dist/util/safeLog.js.map +0 -1
package/dist/tui/App.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* App — root Ink component.
|
|
4
|
-
* Wires StatusBar + REPL + AgentRunner
|
|
5
|
-
*
|
|
4
|
+
* Wires StatusBar + REPL + AgentRunner, registers built-in tools,
|
|
5
|
+
* starts background feeds, and renders a multi-pane trading terminal.
|
|
6
6
|
*/
|
|
7
7
|
import { useState, useCallback, useEffect, useRef } from "react";
|
|
8
8
|
import { Box, useApp, useInput } from "ink";
|
|
@@ -12,9 +12,14 @@ import { makeTheme, T } from "./theme.js";
|
|
|
12
12
|
import { AgentRunner } from "../runner/AgentRunner.js";
|
|
13
13
|
import { SessionManager } from "../session/SessionManager.js";
|
|
14
14
|
import { resolveModelConfig } from "../runner/ModelClient.js";
|
|
15
|
+
import { priceFeed, getPricesTool, topMoversTool, marketOverviewTool, getPricesParams, topMoversParams, marketOverviewParams } from "../tools/PriceFeed.js";
|
|
16
|
+
import { getNewsTool, getNewsParams } from "../tools/NewsSentiment.js";
|
|
17
|
+
import { analyzeTAParams } from "../tools/TechnicalAnalysis.js";
|
|
18
|
+
import { fullAnalysis } from "../tools/TechnicalAnalysis.js";
|
|
19
|
+
import { newsFeed } from "../tools/NewsSentiment.js";
|
|
15
20
|
let _msgIdCounter = 0;
|
|
16
21
|
function nextId() { return String(++_msgIdCounter); }
|
|
17
|
-
export function App({ registry, systemPrompt, effectLevel: initialEffect = "normal", chain: initialChain = "ethereum", onNotifyReady, onStatusReady, }) {
|
|
22
|
+
export function App({ registry, systemPrompt, effectLevel: initialEffect = "normal", chain: initialChain = "ethereum", modelReg, costTracker, onNotifyReady, onStatusReady, }) {
|
|
18
23
|
const { exit } = useApp();
|
|
19
24
|
const [messages, setMessages] = useState([]);
|
|
20
25
|
const [streaming, setStreaming] = useState("");
|
|
@@ -24,13 +29,16 @@ export function App({ registry, systemPrompt, effectLevel: initialEffect = "norm
|
|
|
24
29
|
const [effectLevel, setEffectLevel] = useState(initialEffect);
|
|
25
30
|
const [chain, setChain] = useState(initialChain);
|
|
26
31
|
const [statusBadges, setStatusBadges] = useState({});
|
|
32
|
+
const [ticker, setTicker] = useState("");
|
|
33
|
+
const [costBadge, setCostBadge] = useState("");
|
|
34
|
+
const [newsBadge, setNewsBadge] = useState("");
|
|
27
35
|
const runnerRef = useRef(null);
|
|
28
36
|
const sessionRef = useRef(null);
|
|
29
37
|
const sessionCtxRef = useRef(null);
|
|
30
38
|
const theme = makeTheme();
|
|
31
39
|
let modelName = "no-model";
|
|
32
40
|
try {
|
|
33
|
-
modelName = resolveModelConfig().model;
|
|
41
|
+
modelName = resolveModelConfig(modelReg).model;
|
|
34
42
|
}
|
|
35
43
|
catch { /* shown via banner */ }
|
|
36
44
|
// ── Push helpers ─────────────────────────────────────────────────────────
|
|
@@ -42,77 +50,145 @@ export function App({ registry, systemPrompt, effectLevel: initialEffect = "norm
|
|
|
42
50
|
}, [push]);
|
|
43
51
|
const setStatus = useCallback((key, value) => {
|
|
44
52
|
setStatusBadges(prev => ({ ...prev, [key]: value }));
|
|
45
|
-
|
|
46
|
-
if (key === "vault") {
|
|
53
|
+
if (key === "vault")
|
|
47
54
|
setVaultLocked(!value.includes("🔓") && !value.includes("unlocked"));
|
|
48
|
-
}
|
|
49
55
|
if (key === "chain" || key === "active_chain")
|
|
50
56
|
setChain(value);
|
|
51
57
|
if (key === "effect_level")
|
|
52
58
|
setEffectLevel(value);
|
|
53
59
|
}, []);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
const uiCtx = { notify, setStatus, setTheme(_name) { }, setHeader(_factory) { }, theme };
|
|
61
|
+
// ── Register built-in tools ──────────────────────────────────────────────
|
|
62
|
+
function registerBuiltinTools() {
|
|
63
|
+
if (!modelReg)
|
|
64
|
+
return;
|
|
65
|
+
// Model tools
|
|
66
|
+
registry.addTool({
|
|
67
|
+
name: "list_models", label: "List Models",
|
|
68
|
+
description: "Search and filter available AI models by name, provider, or tier. Use this to find the best model for a task.",
|
|
69
|
+
parameters: modelReg.listModelsParams,
|
|
70
|
+
execute: (id, p) => modelReg.listModelsTool(id, p),
|
|
71
|
+
});
|
|
72
|
+
registry.addTool({
|
|
73
|
+
name: "pick_model", label: "Pick Model",
|
|
74
|
+
description: "Find the cheapest available model meeting requirements (tier, context length, max cost).",
|
|
75
|
+
parameters: modelReg.pickModelParams,
|
|
76
|
+
execute: (id, p) => modelReg.pickModelTool(id, p),
|
|
77
|
+
});
|
|
78
|
+
registry.addTool({
|
|
79
|
+
name: "model_summary", label: "Model Summary",
|
|
80
|
+
description: "Get a summary of available model tiers and counts.",
|
|
81
|
+
parameters: modelReg.summaryParams,
|
|
82
|
+
execute: (_id) => modelReg.summaryTool(),
|
|
83
|
+
});
|
|
84
|
+
// Cost tools
|
|
85
|
+
if (costTracker) {
|
|
86
|
+
registry.addTool({
|
|
87
|
+
name: "cost_report", label: "Cost Report",
|
|
88
|
+
description: "Show current session and lifetime token usage and estimated cost.",
|
|
89
|
+
parameters: costTracker.costReportParams,
|
|
90
|
+
execute: (_id) => costTracker.costReportTool(),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// Price tools
|
|
94
|
+
registry.addTool({
|
|
95
|
+
name: "get_prices", label: "Get Prices",
|
|
96
|
+
description: "Get current prices and 24h change for symbols (btc, eth, sol, etc).",
|
|
97
|
+
parameters: getPricesParams,
|
|
98
|
+
execute: (id, p) => getPricesTool(id, p),
|
|
99
|
+
});
|
|
100
|
+
registry.addTool({
|
|
101
|
+
name: "get_top_movers", label: "Top Movers",
|
|
102
|
+
description: "Get assets with the largest 24h price movement.",
|
|
103
|
+
parameters: topMoversParams,
|
|
104
|
+
execute: (id, p) => topMoversTool(id, p),
|
|
105
|
+
});
|
|
106
|
+
registry.addTool({
|
|
107
|
+
name: "get_market_overview", label: "Market Overview",
|
|
108
|
+
description: "Get aggregated market data: total cap, average change, gainers/losers.",
|
|
109
|
+
parameters: marketOverviewParams,
|
|
110
|
+
execute: (_id) => marketOverviewTool(),
|
|
111
|
+
});
|
|
112
|
+
// News tools
|
|
113
|
+
registry.addTool({
|
|
114
|
+
name: "get_news", label: "Get News",
|
|
115
|
+
description: "Get latest crypto news headlines with sentiment scoring. Use to gauge market sentiment.",
|
|
116
|
+
parameters: getNewsParams,
|
|
117
|
+
execute: (id, p) => getNewsTool(id, p),
|
|
118
|
+
});
|
|
119
|
+
// Technical Analysis tools
|
|
120
|
+
registry.addTool({
|
|
121
|
+
name: "analyze_ta", label: "Technical Analysis",
|
|
122
|
+
description: "Run full technical analysis on price data: RSI, MACD, Bollinger Bands, EMA crossover, ATR, volume profile. Returns a summary with buy/sell signals.",
|
|
123
|
+
parameters: analyzeTAParams,
|
|
124
|
+
execute: async (_id, p) => {
|
|
125
|
+
const closes = p.prices;
|
|
126
|
+
const highs = p.highs ?? [];
|
|
127
|
+
const lows = p.lows ?? [];
|
|
128
|
+
const volumes = p.volumes ?? [];
|
|
129
|
+
const candles = closes.map((c, i) => ({
|
|
130
|
+
timestamp: 0, open: c, high: highs[i] ?? c, low: lows[i] ?? c, close: c, volume: volumes[i] ?? 0,
|
|
131
|
+
}));
|
|
132
|
+
const results = fullAnalysis(candles);
|
|
133
|
+
const text = results.map(r => {
|
|
134
|
+
const s = r.signal === "bullish" ? "🟢" : r.signal === "bearish" ? "🔴" : "⚪";
|
|
135
|
+
const v = Array.isArray(r.value) ? `[${r.value.length} values]` : typeof r.value === "number" ? r.value : "-";
|
|
136
|
+
return `${s} ${r.indicator}: ${v}`;
|
|
137
|
+
}).join("\n");
|
|
138
|
+
const summary = results.find(r => r.indicator === "SUMMARY");
|
|
139
|
+
return {
|
|
140
|
+
content: [{ type: "text", text: `Technical Analysis Results:\n${text}` }],
|
|
141
|
+
details: { results, overall_signal: summary?.signal, overall_score: summary?.value },
|
|
142
|
+
};
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
useEffect(() => { onNotifyReady?.(notify); onStatusReady?.(setStatus); }, []);
|
|
147
|
+
// ── Boot: start feeds, register tools, fire session_start ────────────────
|
|
73
148
|
useEffect(() => {
|
|
149
|
+
registerBuiltinTools();
|
|
150
|
+
// Start background feeds
|
|
151
|
+
priceFeed.track("btc", "eth", "sol", "bnb", "matic", "arb", "op", "avax", "link", "uni", "doge", "xrp", "ada", "dot", "atom", "near", "sui", "apt", "pepe", "aave");
|
|
152
|
+
priceFeed.start();
|
|
153
|
+
newsFeed.start();
|
|
154
|
+
// Ticker update every 5 seconds from cached prices
|
|
155
|
+
const tickerInterval = setInterval(() => {
|
|
156
|
+
setTicker(priceFeed.tickerLine(5));
|
|
157
|
+
if (costTracker)
|
|
158
|
+
setCostBadge(costTracker.statusLine());
|
|
159
|
+
setNewsBadge(newsFeed.statusBadge());
|
|
160
|
+
}, 5_000);
|
|
161
|
+
// Save cost on exit
|
|
162
|
+
const saveInterval = setInterval(() => {
|
|
163
|
+
costTracker?.saveLifetime();
|
|
164
|
+
}, 60_000);
|
|
165
|
+
// Agent session
|
|
74
166
|
const session = new SessionManager();
|
|
75
167
|
session.setSystemPrompt(registry.getSystemPrompt() || systemPrompt ||
|
|
76
168
|
"You are JellyOS, an autonomous AI trading agent.");
|
|
77
169
|
sessionRef.current = session;
|
|
78
170
|
const sessionCtx = {
|
|
79
|
-
ui: uiCtx,
|
|
80
|
-
|
|
81
|
-
config: {
|
|
82
|
-
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY,
|
|
83
|
-
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
|
|
84
|
-
ALCHEMY_KEY: process.env.ALCHEMY_KEY,
|
|
85
|
-
DEFAULT_MODEL: process.env.DEFAULT_MODEL,
|
|
86
|
-
},
|
|
171
|
+
ui: uiCtx, hasUI: true,
|
|
172
|
+
config: { OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY, ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY, ALCHEMY_KEY: process.env.ALCHEMY_KEY, DEFAULT_MODEL: process.env.DEFAULT_MODEL },
|
|
87
173
|
};
|
|
88
174
|
sessionCtxRef.current = sessionCtx;
|
|
89
175
|
registry.fireHook("session_start", sessionCtx).then(() => {
|
|
90
176
|
push({ role: "system", content: T.muted("Session started. Type a message or /help.") });
|
|
91
177
|
});
|
|
92
178
|
const runner = new AgentRunner(registry, session, (event) => {
|
|
93
|
-
if (event.type === "text_delta")
|
|
179
|
+
if (event.type === "text_delta")
|
|
94
180
|
setStreaming(prev => prev + event.text);
|
|
95
|
-
|
|
96
|
-
else if (event.type === "tool_start") {
|
|
181
|
+
else if (event.type === "tool_start")
|
|
97
182
|
setToolRunning(event.name);
|
|
98
|
-
}
|
|
99
183
|
else if (event.type === "tool_done") {
|
|
100
184
|
setToolRunning(null);
|
|
101
|
-
push({
|
|
102
|
-
role: "tool",
|
|
103
|
-
content: event.result,
|
|
104
|
-
toolName: event.name,
|
|
105
|
-
isError: event.isError,
|
|
106
|
-
});
|
|
185
|
+
push({ role: "tool", content: event.result, toolName: event.name, isError: event.isError });
|
|
107
186
|
}
|
|
108
187
|
else if (event.type === "turn_done") {
|
|
109
188
|
setDisabled(false);
|
|
110
189
|
setToolRunning(null);
|
|
111
|
-
setStreaming(prev => {
|
|
112
|
-
|
|
113
|
-
push({ role: "assistant", content: prev });
|
|
114
|
-
return "";
|
|
115
|
-
});
|
|
190
|
+
setStreaming(prev => { if (prev.trim())
|
|
191
|
+
push({ role: "assistant", content: prev }); return ""; });
|
|
116
192
|
}
|
|
117
193
|
else if (event.type === "error") {
|
|
118
194
|
setDisabled(false);
|
|
@@ -120,23 +196,29 @@ export function App({ registry, systemPrompt, effectLevel: initialEffect = "norm
|
|
|
120
196
|
setStreaming("");
|
|
121
197
|
notify(T.error(`Error: ${event.message}`));
|
|
122
198
|
}
|
|
123
|
-
}, sessionCtx);
|
|
199
|
+
}, sessionCtx, effectLevel, modelReg, costTracker);
|
|
124
200
|
runnerRef.current = runner;
|
|
201
|
+
// Initial ticker
|
|
202
|
+
setTicker(priceFeed.tickerLine(5));
|
|
203
|
+
if (costTracker)
|
|
204
|
+
setCostBadge(costTracker.statusLine());
|
|
205
|
+
setNewsBadge(newsFeed.statusBadge());
|
|
125
206
|
return () => {
|
|
126
|
-
if (sessionCtxRef.current)
|
|
207
|
+
if (sessionCtxRef.current)
|
|
127
208
|
registry.fireHook("session_end", sessionCtxRef.current).catch(() => { });
|
|
128
|
-
|
|
209
|
+
priceFeed.stop();
|
|
210
|
+
newsFeed.stop();
|
|
211
|
+
clearInterval(tickerInterval);
|
|
212
|
+
clearInterval(saveInterval);
|
|
213
|
+
costTracker?.saveLifetime();
|
|
129
214
|
};
|
|
130
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
131
215
|
}, []);
|
|
132
|
-
|
|
133
|
-
useEffect(() => {
|
|
134
|
-
runnerRef.current?.setEffectLevel(effectLevel);
|
|
135
|
-
}, [effectLevel]);
|
|
216
|
+
useEffect(() => { runnerRef.current?.setEffectLevel(effectLevel); }, [effectLevel]);
|
|
136
217
|
// ── Ctrl-C ────────────────────────────────────────────────────────────────
|
|
137
218
|
useInput((_input, key) => {
|
|
138
219
|
if (key.ctrl && _input === "c") {
|
|
139
220
|
push({ role: "system", content: T.muted("Goodbye 🪼") });
|
|
221
|
+
costTracker?.saveLifetime();
|
|
140
222
|
setTimeout(exit, 200);
|
|
141
223
|
}
|
|
142
224
|
});
|
|
@@ -145,17 +227,52 @@ export function App({ registry, systemPrompt, effectLevel: initialEffect = "norm
|
|
|
145
227
|
const input = raw.trim();
|
|
146
228
|
if (!input)
|
|
147
229
|
return;
|
|
230
|
+
// ── Slash commands ────────────────────────────────────────────────────
|
|
148
231
|
if (input.startsWith("/")) {
|
|
149
232
|
const [cmd, ...rest] = input.slice(1).split(" ");
|
|
150
233
|
const args = rest.join(" ");
|
|
151
234
|
if (cmd === "exit" || cmd === "quit") {
|
|
152
235
|
push({ role: "system", content: T.muted("Goodbye 🪼") });
|
|
236
|
+
costTracker?.saveLifetime();
|
|
153
237
|
setTimeout(exit, 200);
|
|
154
238
|
return;
|
|
155
239
|
}
|
|
156
240
|
if (cmd === "help") {
|
|
157
241
|
const lines = registry.listCommands().map(([n, d]) => T.accent(`/${n}`.padEnd(16)) + " " + d.description);
|
|
158
|
-
notify("Available commands:\n\n" + lines.join("\n"));
|
|
242
|
+
notify("Available commands:\n\n" + lines.join("\n") + "\n\nBuilt-in tools: list_models, get_prices, get_news, analyze_ta, cost_report, get_market_overview, get_top_movers, model_summary");
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
// Built-in /models command
|
|
246
|
+
if (cmd === "models") {
|
|
247
|
+
if (!modelReg) {
|
|
248
|
+
notify(T.error("Model registry not available"));
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const query = rest.join(" ") || undefined;
|
|
252
|
+
const result = await modelReg.listModelsTool("", { query: query, limit: 20, available_only: true });
|
|
253
|
+
notify(result.content[0].text);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
// Built-in /cost command
|
|
257
|
+
if (cmd === "cost") {
|
|
258
|
+
if (!costTracker) {
|
|
259
|
+
notify(T.error("Cost tracker not available"));
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const result = await costTracker.costReportTool();
|
|
263
|
+
notify(result.content[0].text);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
// Built-in /news command
|
|
267
|
+
if (cmd === "news") {
|
|
268
|
+
const result = await getNewsTool("", { limit: 15 });
|
|
269
|
+
notify(result.content[0].text);
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
// Built-in /prices command
|
|
273
|
+
if (cmd === "prices") {
|
|
274
|
+
const result = await getPricesTool("", { symbols: args ? args.split(/\s+/) : ["btc", "eth", "sol"] });
|
|
275
|
+
notify(result.content[0].text);
|
|
159
276
|
return;
|
|
160
277
|
}
|
|
161
278
|
const def = registry.getCommand(cmd);
|
|
@@ -185,9 +302,9 @@ export function App({ registry, systemPrompt, effectLevel: initialEffect = "norm
|
|
|
185
302
|
setDisabled(false);
|
|
186
303
|
notify(T.error(`Runner error: ${e.message}`));
|
|
187
304
|
}
|
|
188
|
-
}, [registry, exit, push, notify, uiCtx]);
|
|
189
|
-
// Build status line
|
|
190
|
-
const statusLine = Object.values(statusBadges).join(" ") || null;
|
|
305
|
+
}, [registry, exit, push, notify, uiCtx, modelReg, costTracker]);
|
|
306
|
+
// Build status line: ticker + cost + badges
|
|
307
|
+
const statusLine = [ticker, costBadge, newsBadge, ...Object.values(statusBadges)].filter(Boolean).join(" ") || null;
|
|
191
308
|
return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsx(StatusBar, { model: modelName, chain: chain, vaultLocked: vaultLocked, effectLevel: effectLevel, toolRunning: toolRunning, connected: true, statusLine: statusLine }), _jsx(REPL, { messages: messages, streamingText: streaming, toolRunning: toolRunning, onSubmit: handleSubmit, disabled: disabled })] }));
|
|
192
309
|
}
|
|
193
310
|
//# sourceMappingURL=App.js.map
|
package/dist/tui/App.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,GAAG,EAAQ,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAS,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAc,WAAW,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAO,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC5J,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAcrD,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,SAAS,MAAM,KAAK,OAAO,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAErD,MAAM,UAAU,GAAG,CAAC,EAClB,QAAQ,EACR,YAAY,EACZ,WAAW,EAAE,aAAa,GAAG,QAAQ,EACrC,KAAK,EAAQ,YAAY,GAAI,UAAU,EACvC,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,GACJ;IACT,MAAM,EAAE,IAAI,EAAE,GAAwB,MAAM,EAAE,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAS,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAS,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAe,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAyB,EAAE,CAAC,CAAC;IAC7E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAa,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,SAAS,GAAuB,MAAM,CAAqB,IAAI,CAAC,CAAC;IACvE,MAAM,UAAU,GAAsB,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAmB,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC1E,MAAM,KAAK,GAA2B,SAAS,EAAE,CAAC;IAElD,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,IAAI,CAAC;QAAC,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAExF,4EAA4E;IAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,GAAmC,EAAE,EAAE;QAC/D,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,OAAe,EAAE,EAAE;QAC7C,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;QAC3D,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,GAAG,KAAK,OAAO;YAAE,cAAc,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1F,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,cAAc;YAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,GAAG,KAAK,cAAc;YAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAc,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,IAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,IAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IAElG,4EAA4E;IAE5E,SAAS,oBAAoB;QAC3B,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,cAAc;QACd,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa;YACzC,WAAW,EAAE,+GAA+G;YAC5H,UAAU,EAAE,QAAQ,CAAC,gBAAuB;YAC5C,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,CAAQ,CAAC;SAC1D,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;YACvC,WAAW,EAAE,0FAA0F;YACvG,UAAU,EAAE,QAAQ,CAAC,eAAsB;YAC3C,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,CAAQ,CAAC;SACzD,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe;YAC7C,WAAW,EAAE,oDAAoD;YACjE,UAAU,EAAE,QAAQ,CAAC,aAAoB;YACzC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE;SACzC,CAAC,CAAC;QAEH,aAAa;QACb,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,OAAO,CAAC;gBACf,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa;gBACzC,WAAW,EAAE,mEAAmE;gBAChF,UAAU,EAAE,WAAW,CAAC,gBAAuB;gBAC/C,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,cAAc;QACd,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;YACvC,WAAW,EAAE,qEAAqE;YAClF,UAAU,EAAE,eAAsB;YAClC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,CAAQ,CAAC;SAChD,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY;YAC3C,WAAW,EAAE,iDAAiD;YAC9D,UAAU,EAAE,eAAsB;YAClC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,CAAQ,CAAC;SAChD,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,iBAAiB;YACrD,WAAW,EAAE,wEAAwE;YACrF,UAAU,EAAE,oBAA2B;YACvC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,EAAE;SACvC,CAAC,CAAC;QAEH,aAAa;QACb,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU;YACnC,WAAW,EAAE,yFAAyF;YACtG,UAAU,EAAE,aAAoB;YAChC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,CAAQ,CAAC;SAC9C,CAAC,CAAC;QAEH,2BAA2B;QAC3B,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB;YAC/C,WAAW,EAAE,qJAAqJ;YAClK,UAAU,EAAE,eAAsB;YAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAI,CAAC,CAAC,MAAkB,CAAC;gBACrC,MAAM,KAAK,GAAM,CAAC,CAAC,KAA8B,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,GAAO,CAAC,CAAC,IAA6B,IAAI,EAAE,CAAC;gBACvD,MAAM,OAAO,GAAI,CAAC,CAAC,OAAgC,IAAI,EAAE,CAAC;gBAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;iBACjG,CAAC,CAAC,CAAC;gBACJ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC9E,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,KAAkB,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC5H,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBACrC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAC7D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gCAAgC,IAAI,EAAE,EAAE,CAAC;oBAClF,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE;iBACrF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9E,4EAA4E;IAE5E,SAAS,CAAC,GAAG,EAAE;QACb,oBAAoB,EAAE,CAAC;QAEvB,yBAAyB;QACzB,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACpK,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEjB,mDAAmD;QACnD,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,WAAW;gBAAE,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;YACxD,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,oBAAoB;QACpB,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,WAAW,EAAE,YAAY,EAAE,CAAC;QAC9B,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,gBAAgB;QAChB,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACrC,OAAO,CAAC,eAAe,CACrB,QAAQ,CAAC,eAAe,EAAE,IAAI,YAAY;YAC1C,kDAAkD,CACnD,CAAC;QACF,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAE7B,MAAM,UAAU,GAAmB;YACjC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;YACtB,MAAM,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;SACjM,CAAC;QACF,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;QAEnC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACvD,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,2CAA2C,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;iBACpE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9F,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACtC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACzC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;oBAAE,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACpG,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC3D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACnD,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;QAE3B,iBAAiB;QACjB,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,WAAW;YAAE,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAErC,OAAO,GAAG,EAAE;YACV,IAAI,aAAa,CAAC,OAAO;gBAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACnG,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9B,aAAa,CAAC,YAAY,CAAC,CAAC;YAC5B,WAAW,EAAE,YAAY,EAAE,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpF,6EAA6E;IAE7E,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACzD,WAAW,EAAE,YAAY,EAAE,CAAC;YAC5B,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,yEAAyE;QACzE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE5B,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACrC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACzD,WAAW,EAAE,YAAY,EAAE,CAAC;gBAC5B,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,CACvC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,CAC/D,CAAC;gBACF,MAAM,CAAC,yBAAyB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,oIAAoI,CAAC,CAAC;gBAC5L,OAAO;YACT,CAAC;YAED,2BAA2B;YAC3B,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC3E,MAAM,KAAK,GAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAY,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3G,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,yBAAyB;YACzB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC5E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;gBAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,yBAAyB;YACzB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,2BAA2B;YAC3B,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,GAAG,oCAAoC,CAAC,CAAC,CAAC;gBAC9E,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAC9D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACvE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC;YAAC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAC1D,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjE,4CAA4C;IAC5C,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAErH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,aACvC,KAAC,SAAS,IACR,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,UAAU,GACtB,EACF,KAAC,IAAI,IACH,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,SAAS,EACxB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,GAClB,IACE,CACP,CAAC;AACJ,CAAC"}
|
package/dist/tui/StatusBar.js
CHANGED
|
@@ -9,7 +9,7 @@ export function StatusBar({ model, chain, vaultLocked, effectLevel, toolRunning,
|
|
|
9
9
|
return (_jsxs(Box, { borderStyle: "single", borderColor: JELLY_COLORS.dim, paddingX: 1, flexDirection: "row", justifyContent: "space-between", children: [_jsxs(Box, { gap: 2, children: [_jsx(Text, { color: JELLY_COLORS.accent, bold: true, children: "\uD83E\uDEBC JellyOS" }), _jsx(Text, { color: JELLY_COLORS.muted, children: modelShort })] }), _jsx(Box, { children: toolRunning
|
|
10
10
|
? _jsxs(Text, { color: JELLY_COLORS.warn, children: ["\u2699 ", toolRunning] })
|
|
11
11
|
: statusLine
|
|
12
|
-
? _jsx(Text, { color: JELLY_COLORS.
|
|
12
|
+
? _jsx(Text, { color: JELLY_COLORS.muted, children: statusLine.slice(0, 80) })
|
|
13
13
|
: _jsx(Text, { color: JELLY_COLORS.muted, children: connected ? "ready" : "connecting…" }) }), _jsxs(Box, { gap: 2, children: [_jsx(Text, { color: JELLY_COLORS.muted, children: chainShort }), _jsx(Text, { children: vaultIcon }), _jsxs(Text, { color: JELLY_COLORS.header, children: [effectIcon, " ", effectLevel] })] })] }));
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=StatusBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/tui/StatusBar.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa1C,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,GAC3D;IACf,MAAM,SAAS,GAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAA6B,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;IAEtH,OAAO,CACL,MAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,YAAY,CAAC,GAAG,EAC7B,QAAQ,EAAE,CAAC,EACX,aAAa,EAAC,KAAK,EACnB,cAAc,EAAC,eAAe,aAG9B,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,2CAAkB,EACxD,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,KAAK,YAAG,UAAU,GAAQ,IAChD,EAGN,KAAC,GAAG,cACD,WAAW;oBACV,CAAC,CAAC,MAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,IAAI,wBAAK,WAAW,IAAQ;oBACxD,CAAC,CAAC,UAAU;wBACV,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/tui/StatusBar.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa1C,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,GAC3D;IACf,MAAM,SAAS,GAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAA6B,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;IAEtH,OAAO,CACL,MAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,YAAY,CAAC,GAAG,EAC7B,QAAQ,EAAE,CAAC,EACX,aAAa,EAAC,KAAK,EACnB,cAAc,EAAC,eAAe,aAG9B,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,2CAAkB,EACxD,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,KAAK,YAAG,UAAU,GAAQ,IAChD,EAGN,KAAC,GAAG,cACD,WAAW;oBACV,CAAC,CAAC,MAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,IAAI,wBAAK,WAAW,IAAQ;oBACxD,CAAC,CAAC,UAAU;wBACV,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,KAAK,YAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAQ;wBACnE,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,KAAK,YAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,GAAQ,GAE/E,EAGN,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,KAAK,YAAG,UAAU,GAAQ,EACpD,KAAC,IAAI,cAAE,SAAS,GAAQ,EACxB,MAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,MAAM,aAAG,UAAU,OAAG,WAAW,IAAQ,IAC/D,IACF,CACP,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jellyos/agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "JellyOS — standalone AI trading agent. Runs locally, no server required.",
|
|
5
5
|
"author": "JellyChain",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^20.19.41",
|
|
39
39
|
"@types/react": "^18.3.29",
|
|
40
|
-
"typescript": "^5.
|
|
40
|
+
"typescript": "^5.4.0"
|
|
41
41
|
},
|
|
42
42
|
"engines": {
|
|
43
43
|
"node": ">=20.0.0"
|
package/dist/util/safeLog.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* safeLog — Ink-aware logging utility.
|
|
3
|
-
*
|
|
4
|
-
* When Ink is active, routes through the TUI notify channel (ui.notify)
|
|
5
|
-
* so messages appear cleanly inside the REPL message area.
|
|
6
|
-
* When Ink is not yet active, appends to ~/.jelly/debug.log instead of
|
|
7
|
-
* writing directly to stdout — a raw stdout write before render() is safe,
|
|
8
|
-
* but one after render() would corrupt Ink's cursor-up count and produce
|
|
9
|
-
* stacked ┌──────────────────────────────────────────────────────────────┐
|
|
10
|
-
* borders. Writing to a file avoids that risk entirely.
|
|
11
|
-
*
|
|
12
|
-
* Usage anywhere in the codebase:
|
|
13
|
-
* import { safeLog } from "../util/safeLog.js";
|
|
14
|
-
* safeLog("something happened");
|
|
15
|
-
*
|
|
16
|
-
* Wire-up (done once in cli.ts inside onNotifyReady):
|
|
17
|
-
* import { wireNotify } from "../util/safeLog.js";
|
|
18
|
-
* wireNotify(notifyFn);
|
|
19
|
-
*
|
|
20
|
-
* POLICY — stdout during Ink lifecycle:
|
|
21
|
-
* All log output MUST go through safeLog (or ui.notify / push) once
|
|
22
|
-
* Ink has mounted. Direct calls to process.stdout.write are intentionally
|
|
23
|
-
* NOT patched globally because Ink itself uses process.stdout.write for
|
|
24
|
-
* rendering; intercepting it blindly would break Ink output entirely.
|
|
25
|
-
* Instead, the contract is enforced here (safeLog) and via the console
|
|
26
|
-
* patch in cli.ts that redirects console.log/error/warn post-render.
|
|
27
|
-
*/
|
|
28
|
-
/**
|
|
29
|
-
* Wire the TUI notify channel.
|
|
30
|
-
* Called once in cli.ts after App mounts and onNotifyReady fires.
|
|
31
|
-
* After this point, safeLog routes through notify instead of the log file.
|
|
32
|
-
*/
|
|
33
|
-
export declare function wireNotify(fn: (msg: string) => void): void;
|
|
34
|
-
/**
|
|
35
|
-
* Log a message safely regardless of whether Ink is active.
|
|
36
|
-
* Accepts any mix of strings and values (stringified via String()).
|
|
37
|
-
*/
|
|
38
|
-
export declare function safeLog(...args: unknown[]): void;
|
|
39
|
-
//# sourceMappingURL=safeLog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safeLog.d.ts","sourceRoot":"","sources":["../../src/util/safeLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAWH;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAE1D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAUhD"}
|
package/dist/util/safeLog.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* safeLog — Ink-aware logging utility.
|
|
3
|
-
*
|
|
4
|
-
* When Ink is active, routes through the TUI notify channel (ui.notify)
|
|
5
|
-
* so messages appear cleanly inside the REPL message area.
|
|
6
|
-
* When Ink is not yet active, appends to ~/.jelly/debug.log instead of
|
|
7
|
-
* writing directly to stdout — a raw stdout write before render() is safe,
|
|
8
|
-
* but one after render() would corrupt Ink's cursor-up count and produce
|
|
9
|
-
* stacked ┌──────────────────────────────────────────────────────────────┐
|
|
10
|
-
* borders. Writing to a file avoids that risk entirely.
|
|
11
|
-
*
|
|
12
|
-
* Usage anywhere in the codebase:
|
|
13
|
-
* import { safeLog } from "../util/safeLog.js";
|
|
14
|
-
* safeLog("something happened");
|
|
15
|
-
*
|
|
16
|
-
* Wire-up (done once in cli.ts inside onNotifyReady):
|
|
17
|
-
* import { wireNotify } from "../util/safeLog.js";
|
|
18
|
-
* wireNotify(notifyFn);
|
|
19
|
-
*
|
|
20
|
-
* POLICY — stdout during Ink lifecycle:
|
|
21
|
-
* All log output MUST go through safeLog (or ui.notify / push) once
|
|
22
|
-
* Ink has mounted. Direct calls to process.stdout.write are intentionally
|
|
23
|
-
* NOT patched globally because Ink itself uses process.stdout.write for
|
|
24
|
-
* rendering; intercepting it blindly would break Ink output entirely.
|
|
25
|
-
* Instead, the contract is enforced here (safeLog) and via the console
|
|
26
|
-
* patch in cli.ts that redirects console.log/error/warn post-render.
|
|
27
|
-
*/
|
|
28
|
-
import { appendFileSync, mkdirSync } from "node:fs";
|
|
29
|
-
import { join } from "node:path";
|
|
30
|
-
import { homedir } from "node:os";
|
|
31
|
-
const JELLY_HOME = process.env.JELLYOS_HOME ?? join(homedir(), ".jelly");
|
|
32
|
-
const DEBUG_LOG = join(JELLY_HOME, "debug.log");
|
|
33
|
-
let _notifyFn = null;
|
|
34
|
-
/**
|
|
35
|
-
* Wire the TUI notify channel.
|
|
36
|
-
* Called once in cli.ts after App mounts and onNotifyReady fires.
|
|
37
|
-
* After this point, safeLog routes through notify instead of the log file.
|
|
38
|
-
*/
|
|
39
|
-
export function wireNotify(fn) {
|
|
40
|
-
_notifyFn = fn;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Log a message safely regardless of whether Ink is active.
|
|
44
|
-
* Accepts any mix of strings and values (stringified via String()).
|
|
45
|
-
*/
|
|
46
|
-
export function safeLog(...args) {
|
|
47
|
-
const msg = args.map(a => (typeof a === "string" ? a : String(a))).join(" ");
|
|
48
|
-
if (_notifyFn) {
|
|
49
|
-
_notifyFn(msg);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
try {
|
|
53
|
-
mkdirSync(JELLY_HOME, { recursive: true });
|
|
54
|
-
appendFileSync(DEBUG_LOG, `[${new Date().toISOString()}] ${msg}\n`);
|
|
55
|
-
}
|
|
56
|
-
catch { /* best-effort — never throw from a log call */ }
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=safeLog.js.map
|
package/dist/util/safeLog.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safeLog.js","sourceRoot":"","sources":["../../src/util/safeLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAA2B,WAAW,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAwB,SAAS,CAAC;AAEpD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzE,MAAM,SAAS,GAAI,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAEjD,IAAI,SAAS,GAAmC,IAAI,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EAAyB;IAClD,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAG,IAAe;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,cAAc,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC,CAAC,+CAA+C,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
|