balchemy 0.1.14 → 0.1.16
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 +21 -0
- package/README.md +157 -33
- package/dist/agent-store.d.ts +2 -0
- package/dist/agent-store.d.ts.map +1 -1
- package/dist/agent-store.js +10 -0
- package/dist/agent-store.js.map +1 -1
- package/dist/behavior-rules.util.d.ts +8 -0
- package/dist/behavior-rules.util.d.ts.map +1 -0
- package/dist/behavior-rules.util.js +17 -0
- package/dist/behavior-rules.util.js.map +1 -0
- package/dist/config-loader.d.ts +1 -1
- package/dist/config-loader.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/runner.js +1 -1
- package/dist/runner.js.map +1 -1
- package/dist/terminal-logo.js +1 -0
- package/dist/terminal-logo.js.map +1 -1
- package/dist/tui/AgentBridge.d.ts +5 -1
- package/dist/tui/AgentBridge.d.ts.map +1 -1
- package/dist/tui/AgentBridge.js +105 -28
- package/dist/tui/AgentBridge.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +31 -76
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/ChatAgent.d.ts +4 -1
- package/dist/tui/ChatAgent.d.ts.map +1 -1
- package/dist/tui/ChatAgent.js +15 -1
- package/dist/tui/ChatAgent.js.map +1 -1
- package/dist/tui/ChatPanel.d.ts +3 -1
- package/dist/tui/ChatPanel.d.ts.map +1 -1
- package/dist/tui/ChatPanel.js +4 -5
- package/dist/tui/ChatPanel.js.map +1 -1
- package/dist/tui/StatusPanel.d.ts.map +1 -1
- package/dist/tui/StatusPanel.js +3 -1
- package/dist/tui/StatusPanel.js.map +1 -1
- package/dist/tui/session-sync.d.ts +18 -0
- package/dist/tui/session-sync.d.ts.map +1 -0
- package/dist/tui/session-sync.js +34 -0
- package/dist/tui/session-sync.js.map +1 -0
- package/dist/tui/setup-guidance.d.ts +10 -0
- package/dist/tui/setup-guidance.d.ts.map +1 -0
- package/dist/tui/setup-guidance.js +26 -0
- package/dist/tui/setup-guidance.js.map +1 -0
- package/dist/tui/start.d.ts.map +1 -1
- package/dist/tui/start.js +6 -0
- package/dist/tui/start.js.map +1 -1
- package/dist/tui/status-view.d.ts +7 -0
- package/dist/tui/status-view.d.ts.map +1 -0
- package/dist/tui/status-view.js +16 -0
- package/dist/tui/status-view.js.map +1 -0
- package/dist/tui/terminal-session.d.ts +8 -0
- package/dist/tui/terminal-session.d.ts.map +1 -0
- package/dist/tui/terminal-session.js +13 -0
- package/dist/tui/terminal-session.js.map +1 -0
- package/dist/tui/types.d.ts +2 -0
- package/dist/tui/types.d.ts.map +1 -1
- package/dist/wizard.d.ts.map +1 -1
- package/dist/wizard.js +25 -10
- package/dist/wizard.js.map +1 -1
- package/package.json +15 -9
- package/templates/Dockerfile +3 -3
package/dist/tui/AgentBridge.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// src/tui/AgentBridge.ts
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
|
-
import { AgentLoop, connectMcp } from "@
|
|
3
|
+
import { AgentLoop, connectMcp } from "@balchemyai/agent-sdk";
|
|
4
4
|
import { ChatAgent } from "./ChatAgent.js";
|
|
5
|
+
import { buildSetupRequiredMessage, parseSetupStatusSnapshot, } from "./setup-guidance.js";
|
|
6
|
+
import { buildStrategyUpdateArgs } from "./session-sync.js";
|
|
5
7
|
import { loadAgent } from "../agent-store.js";
|
|
6
8
|
/** Truncate verbose API errors (429 JSON blobs, stack traces) to a readable one-liner. */
|
|
7
9
|
function truncateError(raw) {
|
|
@@ -49,6 +51,7 @@ export class AgentBridge {
|
|
|
49
51
|
replayFetch;
|
|
50
52
|
lowBalanceWarned = false;
|
|
51
53
|
pendingLoopConfig = null;
|
|
54
|
+
setupPollTimer = null;
|
|
52
55
|
constructor(config, setters) {
|
|
53
56
|
this.config = config;
|
|
54
57
|
this.setters = setters;
|
|
@@ -80,7 +83,8 @@ export class AgentBridge {
|
|
|
80
83
|
}, this.mcp, this.replayFetch);
|
|
81
84
|
await this.chatAgent.init();
|
|
82
85
|
// Check setup status
|
|
83
|
-
const
|
|
86
|
+
const setupStatus = await this.fetchSetupStatus();
|
|
87
|
+
const setupComplete = this.isSetupComplete(setupStatus);
|
|
84
88
|
const loopConfig = {
|
|
85
89
|
mcpEndpoint: this.config.mcpEndpoint,
|
|
86
90
|
apiKey: this.config.apiKey,
|
|
@@ -91,6 +95,7 @@ export class AgentBridge {
|
|
|
91
95
|
maxDailyLlmCost: this.config.maxDailyLlmCost ?? 5,
|
|
92
96
|
llmTimeoutMs: this.config.llmTimeoutMs ?? 15_000,
|
|
93
97
|
mcpFetchFn: this.replayFetch,
|
|
98
|
+
behaviorRules: this.config.behaviorRules,
|
|
94
99
|
onEvent: (event) => {
|
|
95
100
|
const data = event.data;
|
|
96
101
|
const eventType = data?.subscription_type ?? data?.event_type ?? event.type;
|
|
@@ -144,9 +149,19 @@ export class AgentBridge {
|
|
|
144
149
|
this.pendingLoopConfig = loopConfig;
|
|
145
150
|
// Only start AgentLoop if setup is complete
|
|
146
151
|
if (setupComplete) {
|
|
152
|
+
this.setters.setStatus((prev) => ({ ...prev, status: "connecting" }));
|
|
153
|
+
await this.ensureDefaultSubscriptions();
|
|
147
154
|
this.loop = new AgentLoop(loopConfig);
|
|
148
155
|
await this.loop.start();
|
|
149
156
|
}
|
|
157
|
+
else {
|
|
158
|
+
this.setters.setStatus((prev) => ({
|
|
159
|
+
...prev,
|
|
160
|
+
sseConnected: false,
|
|
161
|
+
status: "setup-required",
|
|
162
|
+
}));
|
|
163
|
+
this.startSetupPolling();
|
|
164
|
+
}
|
|
150
165
|
// Push provider/model to status panel
|
|
151
166
|
this.setters.setStatus((prev) => ({
|
|
152
167
|
...prev,
|
|
@@ -154,20 +169,26 @@ export class AgentBridge {
|
|
|
154
169
|
model: this.config.llmModel,
|
|
155
170
|
}));
|
|
156
171
|
// Input is ready now — kick off greeting + balance check in the background
|
|
157
|
-
void this.greet(setupComplete);
|
|
172
|
+
void this.greet(setupComplete, setupStatus);
|
|
158
173
|
}
|
|
159
174
|
/** Background greeting after start — does not block input activation. */
|
|
160
|
-
async greet(setupComplete) {
|
|
175
|
+
async greet(setupComplete, setupStatus) {
|
|
161
176
|
if (!this.chatAgent)
|
|
162
177
|
return;
|
|
163
178
|
if (setupComplete) {
|
|
164
179
|
await this.checkBalance();
|
|
165
180
|
}
|
|
181
|
+
if (!setupComplete) {
|
|
182
|
+
this.addAgentMessage(buildSetupRequiredMessage(setupStatus ?? {}));
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
166
185
|
try {
|
|
167
|
-
const prompt =
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
186
|
+
const prompt = "Check my portfolio and status, then greet me. Tell me my balance, wallets, and current strategy. Keep it brief and do not narrate tool calls.";
|
|
187
|
+
const reply = await this.chatAgent.chat(prompt, (name, _result) => {
|
|
188
|
+
if (name !== "setup_agent") {
|
|
189
|
+
this.addSystemMessage(`Tool: ${name}`);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
171
192
|
this.addAgentMessage(reply);
|
|
172
193
|
}
|
|
173
194
|
catch (err) {
|
|
@@ -175,6 +196,10 @@ export class AgentBridge {
|
|
|
175
196
|
}
|
|
176
197
|
}
|
|
177
198
|
async stop() {
|
|
199
|
+
if (this.setupPollTimer) {
|
|
200
|
+
clearInterval(this.setupPollTimer);
|
|
201
|
+
this.setupPollTimer = null;
|
|
202
|
+
}
|
|
178
203
|
await this.loop?.stop();
|
|
179
204
|
this.loop = null;
|
|
180
205
|
this.chatAgent = null;
|
|
@@ -213,17 +238,68 @@ export class AgentBridge {
|
|
|
213
238
|
async tryStartLoop() {
|
|
214
239
|
if (this.loop || !this.pendingLoopConfig)
|
|
215
240
|
return;
|
|
216
|
-
const
|
|
241
|
+
const setupStatus = await this.fetchSetupStatus();
|
|
242
|
+
const nowComplete = this.isSetupComplete(setupStatus);
|
|
217
243
|
if (nowComplete) {
|
|
244
|
+
await this.ensureDefaultSubscriptions();
|
|
218
245
|
this.loop = new AgentLoop(this.pendingLoopConfig);
|
|
219
246
|
await this.loop.start();
|
|
247
|
+
if (this.setupPollTimer) {
|
|
248
|
+
clearInterval(this.setupPollTimer);
|
|
249
|
+
this.setupPollTimer = null;
|
|
250
|
+
}
|
|
220
251
|
this.addSystemMessage("Agent loop started — now listening for events.");
|
|
221
252
|
this.setters.setStatus((prev) => ({ ...prev, sseConnected: true, status: "running" }));
|
|
222
253
|
void this.checkBalance();
|
|
223
254
|
}
|
|
224
255
|
}
|
|
256
|
+
startSetupPolling() {
|
|
257
|
+
if (this.setupPollTimer)
|
|
258
|
+
return;
|
|
259
|
+
this.setupPollTimer = setInterval(() => {
|
|
260
|
+
void this.tryStartLoop();
|
|
261
|
+
}, 10_000);
|
|
262
|
+
this.setupPollTimer.unref();
|
|
263
|
+
}
|
|
264
|
+
async ensureDefaultSubscriptions() {
|
|
265
|
+
if (!this.config.autoSeedSubscriptions) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
try {
|
|
269
|
+
const resp = await this.mcp.callTool('list_subscriptions', {});
|
|
270
|
+
const text = resp.content?.find((c) => c.type === 'text')?.text ?? '{}';
|
|
271
|
+
let parsed = {};
|
|
272
|
+
try {
|
|
273
|
+
parsed = JSON.parse(text);
|
|
274
|
+
}
|
|
275
|
+
catch (_error) {
|
|
276
|
+
parsed = {};
|
|
277
|
+
}
|
|
278
|
+
const structured = parsed.structured;
|
|
279
|
+
const subscriptions = structured?.subscriptions;
|
|
280
|
+
if (Array.isArray(subscriptions) && subscriptions.length > 0) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
const created = await this.mcp.callTool('create_subscription', {
|
|
284
|
+
type: 'new_token_launch',
|
|
285
|
+
chain: 'solana',
|
|
286
|
+
filter: { platform: 'pumpfun' },
|
|
287
|
+
format: 'summary',
|
|
288
|
+
});
|
|
289
|
+
if (!this.isToolError(created)) {
|
|
290
|
+
this.addSystemMessage('Default subscription enabled: Solana new token launches (Pump.fun).');
|
|
291
|
+
this.config.autoSeedSubscriptions = false;
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
this.addSystemMessage('Default subscription was not enabled automatically. Configure subscriptions manually if you want event-driven trading.');
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
catch (_error) {
|
|
298
|
+
this.addSystemMessage('Default subscription setup was skipped. Configure subscriptions manually if you want autonomous event monitoring.');
|
|
299
|
+
}
|
|
300
|
+
}
|
|
225
301
|
/** Check if setup is complete. Returns true if ready to trade, false if needs setup. */
|
|
226
|
-
async
|
|
302
|
+
async fetchSetupStatus() {
|
|
227
303
|
try {
|
|
228
304
|
const resp = await this.mcp.callTool("setup_agent", { action: "get_status" });
|
|
229
305
|
const text = resp.content?.find((c) => c.type === "text")?.text ?? "{}";
|
|
@@ -231,16 +307,19 @@ export class AgentBridge {
|
|
|
231
307
|
try {
|
|
232
308
|
parsed = JSON.parse(text);
|
|
233
309
|
}
|
|
234
|
-
catch {
|
|
310
|
+
catch (_error) {
|
|
235
311
|
parsed = {};
|
|
236
312
|
}
|
|
237
313
|
const structured = parsed.structured;
|
|
238
|
-
return structured
|
|
314
|
+
return parseSetupStatusSnapshot(structured);
|
|
239
315
|
}
|
|
240
|
-
catch {
|
|
241
|
-
return
|
|
316
|
+
catch (_error) {
|
|
317
|
+
return null;
|
|
242
318
|
}
|
|
243
319
|
}
|
|
320
|
+
isSetupComplete(status) {
|
|
321
|
+
return status?.tradingConfigured === true && status?.walletsConfigured === true;
|
|
322
|
+
}
|
|
244
323
|
/** Silent balance refresh — updates status panel only, no chat messages. */
|
|
245
324
|
async refreshBalance() {
|
|
246
325
|
try {
|
|
@@ -250,7 +329,7 @@ export class AgentBridge {
|
|
|
250
329
|
try {
|
|
251
330
|
parsed = JSON.parse(text);
|
|
252
331
|
}
|
|
253
|
-
catch {
|
|
332
|
+
catch (_error) {
|
|
254
333
|
parsed = {};
|
|
255
334
|
}
|
|
256
335
|
const sol = Number(parsed.totalValueSol ?? 0);
|
|
@@ -272,7 +351,7 @@ export class AgentBridge {
|
|
|
272
351
|
...(wallets.length > 0 ? { wallets } : {}),
|
|
273
352
|
}));
|
|
274
353
|
}
|
|
275
|
-
catch {
|
|
354
|
+
catch (_error) {
|
|
276
355
|
// Silent — don't spam chat
|
|
277
356
|
}
|
|
278
357
|
}
|
|
@@ -284,7 +363,7 @@ export class AgentBridge {
|
|
|
284
363
|
try {
|
|
285
364
|
parsed = JSON.parse(text);
|
|
286
365
|
}
|
|
287
|
-
catch {
|
|
366
|
+
catch (_error) {
|
|
288
367
|
parsed = {};
|
|
289
368
|
}
|
|
290
369
|
const sol = Number(parsed.totalValueSol ?? 0);
|
|
@@ -298,7 +377,7 @@ export class AgentBridge {
|
|
|
298
377
|
this.lowBalanceWarned = false;
|
|
299
378
|
}
|
|
300
379
|
}
|
|
301
|
-
catch {
|
|
380
|
+
catch (_error) {
|
|
302
381
|
this.addErrorMessage("Could not check wallet balance.");
|
|
303
382
|
}
|
|
304
383
|
}
|
|
@@ -314,7 +393,7 @@ export class AgentBridge {
|
|
|
314
393
|
try {
|
|
315
394
|
parsed = JSON.parse(text);
|
|
316
395
|
}
|
|
317
|
-
catch {
|
|
396
|
+
catch (_error) {
|
|
318
397
|
parsed = {};
|
|
319
398
|
}
|
|
320
399
|
const structured = parsed.structured;
|
|
@@ -331,7 +410,7 @@ export class AgentBridge {
|
|
|
331
410
|
result.strategy = `preset: ${rules.preset}`;
|
|
332
411
|
}
|
|
333
412
|
}
|
|
334
|
-
catch {
|
|
413
|
+
catch (_error) {
|
|
335
414
|
// Fallback: try setup_agent get_status for boolean flags
|
|
336
415
|
try {
|
|
337
416
|
const resp = await this.mcp.callTool("setup_agent", { action: "get_status" });
|
|
@@ -340,7 +419,7 @@ export class AgentBridge {
|
|
|
340
419
|
try {
|
|
341
420
|
parsed = JSON.parse(text);
|
|
342
421
|
}
|
|
343
|
-
catch {
|
|
422
|
+
catch (_innerError) {
|
|
344
423
|
parsed = {};
|
|
345
424
|
}
|
|
346
425
|
const structured = parsed.structured;
|
|
@@ -349,7 +428,7 @@ export class AgentBridge {
|
|
|
349
428
|
if (structured?.strategyConfigured)
|
|
350
429
|
result.strategy = result.strategy ?? "configured";
|
|
351
430
|
}
|
|
352
|
-
catch {
|
|
431
|
+
catch (_innerError) {
|
|
353
432
|
// Silent
|
|
354
433
|
}
|
|
355
434
|
}
|
|
@@ -361,7 +440,7 @@ export class AgentBridge {
|
|
|
361
440
|
const resp = await this.mcp.callTool("setup_agent", { action: "configure_slippage", slippageBps: bps });
|
|
362
441
|
return !this.isToolError(resp);
|
|
363
442
|
}
|
|
364
|
-
catch {
|
|
443
|
+
catch (_error) {
|
|
365
444
|
return false;
|
|
366
445
|
}
|
|
367
446
|
}
|
|
@@ -369,13 +448,11 @@ export class AgentBridge {
|
|
|
369
448
|
async updateStrategy(rules) {
|
|
370
449
|
try {
|
|
371
450
|
const resp = await this.mcp.callTool("setup_agent", {
|
|
372
|
-
|
|
373
|
-
naturalLanguageRules: rules,
|
|
374
|
-
shadowMode: false,
|
|
451
|
+
...buildStrategyUpdateArgs(rules, this.config.shadowMode),
|
|
375
452
|
});
|
|
376
453
|
return !this.isToolError(resp);
|
|
377
454
|
}
|
|
378
|
-
catch {
|
|
455
|
+
catch (_error) {
|
|
379
456
|
return false;
|
|
380
457
|
}
|
|
381
458
|
}
|
|
@@ -390,7 +467,7 @@ export class AgentBridge {
|
|
|
390
467
|
if (structured?.error)
|
|
391
468
|
return true;
|
|
392
469
|
}
|
|
393
|
-
catch { /* not JSON */ }
|
|
470
|
+
catch (_error) { /* not JSON */ }
|
|
394
471
|
return false;
|
|
395
472
|
}
|
|
396
473
|
/** Get current local config for settings display. Reads from disk to catch recent saves. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBridge.js","sourceRoot":"","sources":["../../src/tui/AgentBridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentBridge.js","sourceRoot":"","sources":["../../src/tui/AgentBridge.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAWxE,OAAO,KAAK,EAA2B,SAAS,EAAE,MAAM,YAAY,CAAC;AAsFrE,UAAU,QAAQ;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,YAAY,CAuiB5D"}
|
package/dist/tui/App.js
CHANGED
|
@@ -3,13 +3,13 @@ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
import { useState, useEffect, useRef, useCallback } from "react";
|
|
4
4
|
import { Box, Text, useApp, useInput, useStdout } from "ink";
|
|
5
5
|
import { Select, TextInput } from "@inkjs/ui";
|
|
6
|
-
import { execSync, execFileSync } from "node:child_process";
|
|
7
|
-
import { createRequire } from "node:module";
|
|
8
6
|
import { ChatPanel } from "./ChatPanel.js";
|
|
9
7
|
import { StatusPanel } from "./StatusPanel.js";
|
|
10
8
|
import { AgentBridge } from "./AgentBridge.js";
|
|
11
|
-
import { clearAgent, loadAgent, saveAgent } from "../agent-store.js";
|
|
9
|
+
import { clearAgent, loadAgent, saveAgent, } from "../agent-store.js";
|
|
12
10
|
import { randomUUID } from "node:crypto";
|
|
11
|
+
import { getSessionBadge } from "./status-view.js";
|
|
12
|
+
import { persistStrategyAndBuildRestartConfig, toTuiConfig, } from "./session-sync.js";
|
|
13
13
|
// ── Constants ────────────────────────────────────────────────────────────────
|
|
14
14
|
const INITIAL_STATUS = {
|
|
15
15
|
balanceSol: 0,
|
|
@@ -62,8 +62,10 @@ export function App({ config }) {
|
|
|
62
62
|
const { exit } = useApp();
|
|
63
63
|
const { stdout } = useStdout();
|
|
64
64
|
const termWidth = stdout?.columns ?? 80;
|
|
65
|
+
const termHeight = stdout?.rows ?? 24;
|
|
65
66
|
const compactLayout = termWidth < 110;
|
|
66
67
|
const statusWidth = termWidth >= 148 ? 34 : termWidth >= 124 ? 30 : 28;
|
|
68
|
+
const chatPageSize = Math.max(8, termHeight - (compactLayout ? 18 : 16));
|
|
67
69
|
const [messages, setMessages] = useState([]);
|
|
68
70
|
const [status, setStatus] = useState({
|
|
69
71
|
...INITIAL_STATUS,
|
|
@@ -132,12 +134,8 @@ export function App({ config }) {
|
|
|
132
134
|
bridge.refreshBalance().catch(() => { });
|
|
133
135
|
}, 60_000);
|
|
134
136
|
// Background update checker — every 10 minutes
|
|
135
|
-
const updateInterval = setInterval(() => {
|
|
136
|
-
void checkAndApplyUpdate(addSystemMsg, exit);
|
|
137
|
-
}, 10 * 60_000);
|
|
138
137
|
return () => {
|
|
139
138
|
clearInterval(balanceInterval);
|
|
140
|
-
clearInterval(updateInterval);
|
|
141
139
|
bridge.stop().catch(() => { });
|
|
142
140
|
};
|
|
143
141
|
}, [config, addMessage, confirmTrade]);
|
|
@@ -279,19 +277,7 @@ export function App({ config }) {
|
|
|
279
277
|
const updated = loadAgent();
|
|
280
278
|
const bridge = bridgeRef.current;
|
|
281
279
|
if (updated && bridge) {
|
|
282
|
-
void bridge.restart(
|
|
283
|
-
mcpEndpoint: updated.mcpEndpoint,
|
|
284
|
-
apiKey: updated.apiKey,
|
|
285
|
-
llmProvider: updated.llmProvider,
|
|
286
|
-
llmApiKey: updated.llmApiKey,
|
|
287
|
-
llmModel: updated.llmModel,
|
|
288
|
-
llmBaseUrl: updated.llmBaseUrl,
|
|
289
|
-
maxDailyLlmCost: updated.maxDailyLlmCost,
|
|
290
|
-
llmTimeoutMs: updated.llmTimeoutMs,
|
|
291
|
-
publicId: updated.publicId,
|
|
292
|
-
strategy: updated.strategy,
|
|
293
|
-
shadowMode: updated.shadowMode,
|
|
294
|
-
}).then(() => addSystemMsg("Reconnected with new provider."))
|
|
280
|
+
void bridge.restart(toTuiConfig(updated, config.autoSeedSubscriptions ?? false)).then(() => addSystemMsg("Reconnected with new provider."))
|
|
295
281
|
.catch(() => addErrorMsg("Reconnect failed. Restart CLI manually."));
|
|
296
282
|
}
|
|
297
283
|
}
|
|
@@ -338,19 +324,7 @@ export function App({ config }) {
|
|
|
338
324
|
// Hot-reload: restart bridge with new config from disk
|
|
339
325
|
const updated = loadAgent();
|
|
340
326
|
if (updated && bridge) {
|
|
341
|
-
void bridge.restart(
|
|
342
|
-
mcpEndpoint: updated.mcpEndpoint,
|
|
343
|
-
apiKey: updated.apiKey,
|
|
344
|
-
llmProvider: updated.llmProvider,
|
|
345
|
-
llmApiKey: updated.llmApiKey,
|
|
346
|
-
llmModel: updated.llmModel,
|
|
347
|
-
llmBaseUrl: updated.llmBaseUrl,
|
|
348
|
-
maxDailyLlmCost: updated.maxDailyLlmCost,
|
|
349
|
-
llmTimeoutMs: updated.llmTimeoutMs,
|
|
350
|
-
publicId: updated.publicId,
|
|
351
|
-
strategy: updated.strategy,
|
|
352
|
-
shadowMode: updated.shadowMode,
|
|
353
|
-
}).then(() => addSystemMsg("Reconnected with new settings."))
|
|
327
|
+
void bridge.restart(toTuiConfig(updated, config.autoSeedSubscriptions ?? false)).then(() => addSystemMsg("Reconnected with new settings."))
|
|
354
328
|
.catch(() => addErrorMsg("Reconnect failed. Restart CLI manually."));
|
|
355
329
|
}
|
|
356
330
|
}
|
|
@@ -373,8 +347,23 @@ export function App({ config }) {
|
|
|
373
347
|
else if (item.key === "strategy") {
|
|
374
348
|
const ok = await bridge.updateStrategy(value);
|
|
375
349
|
if (ok) {
|
|
350
|
+
const agent = loadAgent();
|
|
351
|
+
if (agent) {
|
|
352
|
+
const synced = persistStrategyAndBuildRestartConfig({
|
|
353
|
+
agent,
|
|
354
|
+
strategy: value,
|
|
355
|
+
saveAgent,
|
|
356
|
+
autoSeedSubscriptions: config.autoSeedSubscriptions ?? false,
|
|
357
|
+
});
|
|
358
|
+
void bridge.restart(synced.restartConfig)
|
|
359
|
+
.then(() => addSystemMsg("Reconnected with updated strategy."))
|
|
360
|
+
.catch(() => addErrorMsg("Reconnect failed. Restart CLI manually."));
|
|
361
|
+
addSystemMsg("Strategy updated. Reconnecting...");
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
addSystemMsg("Strategy updated.");
|
|
365
|
+
}
|
|
376
366
|
vals.strategy = value;
|
|
377
|
-
addSystemMsg("Strategy updated.");
|
|
378
367
|
}
|
|
379
368
|
else {
|
|
380
369
|
addErrorMsg("Failed to update strategy.");
|
|
@@ -411,49 +400,15 @@ export function App({ config }) {
|
|
|
411
400
|
const providerLabel = status.provider ?? resolveProviderLabel(config.llmProvider, config.llmBaseUrl);
|
|
412
401
|
const headerModel = status.model ?? config.llmModel ?? "default";
|
|
413
402
|
const headerSpend = `$${status.llmCostToday.toFixed(2)} / $${status.maxDailyLlmCost.toFixed(2)}`;
|
|
414
|
-
const
|
|
403
|
+
const sessionBadge = getSessionBadge(status);
|
|
404
|
+
const sessionTone = sessionBadge.tone;
|
|
415
405
|
const statusTone = status.status.includes("error")
|
|
416
406
|
? "danger"
|
|
417
|
-
: status.
|
|
418
|
-
? "
|
|
419
|
-
:
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
async function checkAndApplyUpdate(addSystemMsg, exit) {
|
|
424
|
-
try {
|
|
425
|
-
const res = await fetch("https://registry.npmjs.org/balchemy/latest", {
|
|
426
|
-
signal: AbortSignal.timeout(5000),
|
|
427
|
-
});
|
|
428
|
-
if (!res.ok)
|
|
429
|
-
return;
|
|
430
|
-
const data = (await res.json());
|
|
431
|
-
const latest = data.version;
|
|
432
|
-
if (!latest)
|
|
433
|
-
return;
|
|
434
|
-
const require = createRequire(import.meta.url);
|
|
435
|
-
const pkg = require("../../package.json");
|
|
436
|
-
if (latest === pkg.version)
|
|
437
|
-
return;
|
|
438
|
-
addSystemMsg(`Updating to v${latest}...`);
|
|
439
|
-
try {
|
|
440
|
-
execSync(`npm install -g balchemy@${latest}`, { stdio: "ignore", timeout: 30_000 });
|
|
441
|
-
addSystemMsg(`Updated to v${latest}. Restarting...`);
|
|
442
|
-
// Graceful restart: re-exec the CLI with same args
|
|
443
|
-
setTimeout(() => {
|
|
444
|
-
try {
|
|
445
|
-
execFileSync("balchemy", process.argv.slice(2), { stdio: "inherit" });
|
|
446
|
-
}
|
|
447
|
-
catch { /* re-exec failed */ }
|
|
448
|
-
process.exit(0);
|
|
449
|
-
}, 500);
|
|
450
|
-
}
|
|
451
|
-
catch {
|
|
452
|
-
// Silent — update failed, continue with current version
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
catch {
|
|
456
|
-
// Silent — network error, skip this check
|
|
457
|
-
}
|
|
407
|
+
: status.status === "chat-ready"
|
|
408
|
+
? "brand"
|
|
409
|
+
: status.sseConnected
|
|
410
|
+
? "live"
|
|
411
|
+
: "warning";
|
|
412
|
+
return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsxs(Box, { paddingX: 1, paddingY: 0, flexDirection: "column", children: [_jsxs(Box, { flexDirection: compactLayout ? "column" : "row", children: [_jsxs(Box, { children: [_jsx(HeaderBadge, { label: "BALCHEMY", tone: "brand" }), _jsx(Text, { color: "white", bold: true, children: " Agent Cockpit" })] }), !compactLayout && _jsx(Box, { flexGrow: 1 }), _jsxs(Box, { marginTop: compactLayout ? 1 : 0, children: [_jsx(HeaderBadge, { label: sessionBadge.label, tone: sessionTone }), _jsx(Text, { children: " " }), _jsx(HeaderBadge, { label: status.status.toUpperCase(), tone: statusTone }), inSettings && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(HeaderBadge, { label: "SETTINGS", tone: "warning" })] }))] })] }), compactLayout ? (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: compactId(config.publicId, 12, 5) }), _jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: providerLabel }), _jsx(Text, { dimColor: true, children: " / " }), _jsx(Text, { color: "white", children: compactId(headerModel, 18, 6) }), _jsx(Text, { dimColor: true, children: " \u00B7 LLM " }), _jsx(Text, { color: "white", children: headerSpend })] })] })) : (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: compactId(config.publicId, 12, 5) }), _jsx(Text, { dimColor: true, children: " \u00B7 " }), _jsx(Text, { color: "cyan", children: providerLabel }), _jsx(Text, { dimColor: true, children: " / " }), _jsx(Text, { color: "white", children: compactId(headerModel, 18, 6) }), _jsx(Text, { dimColor: true, children: " \u00B7 LLM " }), _jsx(Text, { color: "white", children: headerSpend })] }))] }), _jsxs(Box, { flexDirection: compactLayout ? "column" : "row", flexGrow: 1, paddingX: 1, gap: 1, children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "round", borderColor: "gray", paddingY: 0, children: [_jsxs(Box, { paddingX: 1, children: [_jsx(Text, { color: "white", bold: true, children: "Activity" }), _jsx(Text, { dimColor: true, children: " chat, tool traces and live decisions" })] }), _jsx(ChatPanel, { messages: messages, onSend: handleSend, inputActive: chatInputActive, hideInput: inSettings || Boolean(tradeConfirm), pageSize: chatPageSize, inputPlaceholder: "Ask, adjust rules, or inspect this session..." })] }), _jsx(StatusPanel, { status: status, width: statusWidth, compact: compactLayout })] }), appMode === "settings-select" && (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, paddingY: 0, flexDirection: "column", marginX: 1, children: [_jsxs(Box, { marginBottom: 0, children: [_jsx(Text, { color: "white", bold: true, children: "Session Settings" }), _jsx(Text, { dimColor: true, children: " provider, limits and strategy controls" }), settingsLoading && _jsx(Text, { dimColor: true, children: " loading..." })] }), _jsx(Select, { options: settingsOptions, onChange: handleSettingSelected }), _jsx(Text, { dimColor: true, children: "Use arrows to move, Enter to edit, Esc to close." })] })), appMode === "settings-edit-select" && editItem && (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, paddingY: 0, flexDirection: "column", marginX: 1, children: [_jsx(Text, { color: "white", bold: true, children: editItem.label }), _jsx(Text, { dimColor: true, children: "Select a new value for this setting." }), _jsx(Select, { options: editSelectOptions, onChange: handleSelectValue }), _jsx(Text, { dimColor: true, children: "Use arrows to move, Enter to apply, Esc to go back." })] })), appMode === "settings-edit-text" && editItem && (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, paddingY: 0, flexDirection: "column", marginX: 1, children: [_jsx(Text, { color: "white", bold: true, children: editItem.label }), _jsxs(Text, { dimColor: true, children: ["Current value ", settingsValues[editItem.key] ?? "?"] }), _jsxs(Box, { children: [_jsx(Text, { color: "yellow", bold: true, children: "New" }), _jsx(Text, { dimColor: true, children: " " }), _jsx(TextInput, { placeholder: "Enter new value...", onSubmit: handleTextValue }, settingsInputKey)] })] })), appMode === "settings-edit-apikey" && (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, paddingY: 0, flexDirection: "column", marginX: 1, children: [_jsxs(Text, { color: "white", bold: true, children: ["API Key for ", pendingProvider] }), _jsx(Text, { dimColor: true, children: "Paste the new key below. Esc skips this step." }), _jsxs(Box, { children: [_jsx(Text, { color: "yellow", bold: true, children: "Key" }), _jsx(Text, { dimColor: true, children: " " }), _jsx(TextInput, { placeholder: "sk-... or key-...", onSubmit: handleApiKeyValue }, settingsInputKey)] })] })), tradeConfirm && (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, paddingY: 0, flexDirection: "column", marginX: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(HeaderBadge, { label: "TRADE CHECK", tone: "warning" }), _jsx(Text, { dimColor: true, children: " review before live execution" })] }), _jsx(Text, { color: "white", wrap: "wrap", children: tradeConfirm.preview }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "yellow", bold: true, children: "Approve" }), _jsx(Text, { dimColor: true, children: " type y or n" })] }), _jsx(Box, { marginTop: 1, children: _jsx(TextInput, { placeholder: "y or n", onSubmit: handleConfirmInput }, confirmKey) })] })), _jsx(Box, { paddingX: 1, marginTop: 1, children: _jsxs(Box, { borderStyle: "round", borderColor: "gray", paddingX: 1, flexGrow: 1, children: [_jsx(Text, { dimColor: true, children: "Commands " }), _jsx(Text, { color: "cyan", bold: true, children: "^S" }), _jsx(Text, { dimColor: true, children: " settings " }), _jsx(Text, { color: "cyan", bold: true, children: "^L" }), _jsx(Text, { dimColor: true, children: " clear " }), _jsx(Text, { color: "cyan", bold: true, children: "^N" }), _jsx(Text, { dimColor: true, children: " new " }), _jsx(Text, { color: "cyan", bold: true, children: "^Q" }), _jsx(Text, { dimColor: true, children: " quit" }), inSettings && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: " " }), _jsx(Text, { color: "yellow", bold: true, children: "ESC" }), _jsx(Text, { dimColor: true, children: " back" })] }))] }) })] }));
|
|
458
413
|
}
|
|
459
414
|
//# sourceMappingURL=App.js.map
|