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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -33
  3. package/dist/agent-store.d.ts +2 -0
  4. package/dist/agent-store.d.ts.map +1 -1
  5. package/dist/agent-store.js +10 -0
  6. package/dist/agent-store.js.map +1 -1
  7. package/dist/behavior-rules.util.d.ts +8 -0
  8. package/dist/behavior-rules.util.d.ts.map +1 -0
  9. package/dist/behavior-rules.util.js +17 -0
  10. package/dist/behavior-rules.util.js.map +1 -0
  11. package/dist/config-loader.d.ts +1 -1
  12. package/dist/config-loader.d.ts.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.js +9 -5
  15. package/dist/index.js.map +1 -1
  16. package/dist/runner.js +1 -1
  17. package/dist/runner.js.map +1 -1
  18. package/dist/terminal-logo.js +1 -0
  19. package/dist/terminal-logo.js.map +1 -1
  20. package/dist/tui/AgentBridge.d.ts +5 -1
  21. package/dist/tui/AgentBridge.d.ts.map +1 -1
  22. package/dist/tui/AgentBridge.js +105 -28
  23. package/dist/tui/AgentBridge.js.map +1 -1
  24. package/dist/tui/App.d.ts.map +1 -1
  25. package/dist/tui/App.js +31 -76
  26. package/dist/tui/App.js.map +1 -1
  27. package/dist/tui/ChatAgent.d.ts +4 -1
  28. package/dist/tui/ChatAgent.d.ts.map +1 -1
  29. package/dist/tui/ChatAgent.js +15 -1
  30. package/dist/tui/ChatAgent.js.map +1 -1
  31. package/dist/tui/ChatPanel.d.ts +3 -1
  32. package/dist/tui/ChatPanel.d.ts.map +1 -1
  33. package/dist/tui/ChatPanel.js +4 -5
  34. package/dist/tui/ChatPanel.js.map +1 -1
  35. package/dist/tui/StatusPanel.d.ts.map +1 -1
  36. package/dist/tui/StatusPanel.js +3 -1
  37. package/dist/tui/StatusPanel.js.map +1 -1
  38. package/dist/tui/session-sync.d.ts +18 -0
  39. package/dist/tui/session-sync.d.ts.map +1 -0
  40. package/dist/tui/session-sync.js +34 -0
  41. package/dist/tui/session-sync.js.map +1 -0
  42. package/dist/tui/setup-guidance.d.ts +10 -0
  43. package/dist/tui/setup-guidance.d.ts.map +1 -0
  44. package/dist/tui/setup-guidance.js +26 -0
  45. package/dist/tui/setup-guidance.js.map +1 -0
  46. package/dist/tui/start.d.ts.map +1 -1
  47. package/dist/tui/start.js +6 -0
  48. package/dist/tui/start.js.map +1 -1
  49. package/dist/tui/status-view.d.ts +7 -0
  50. package/dist/tui/status-view.d.ts.map +1 -0
  51. package/dist/tui/status-view.js +16 -0
  52. package/dist/tui/status-view.js.map +1 -0
  53. package/dist/tui/terminal-session.d.ts +8 -0
  54. package/dist/tui/terminal-session.d.ts.map +1 -0
  55. package/dist/tui/terminal-session.js +13 -0
  56. package/dist/tui/terminal-session.js.map +1 -0
  57. package/dist/tui/types.d.ts +2 -0
  58. package/dist/tui/types.d.ts.map +1 -1
  59. package/dist/wizard.d.ts.map +1 -1
  60. package/dist/wizard.js +25 -10
  61. package/dist/wizard.js.map +1 -1
  62. package/package.json +15 -9
  63. package/templates/Dockerfile +3 -3
@@ -1,7 +1,9 @@
1
1
  // src/tui/AgentBridge.ts
2
2
  import { randomUUID } from "node:crypto";
3
- import { AgentLoop, connectMcp } from "@balchemy/agent-sdk";
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 setupComplete = await this.checkSetupStatus();
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 = setupComplete
168
- ? "Check my portfolio and status, then greet me. Tell me my balance, wallets, and current strategy. Keep it brief."
169
- : "Agent setup is incomplete. Check setup status with setup_agent get_status, then guide me through the setup. Start by greeting me.";
170
- const reply = await this.chatAgent.chat(prompt, (name, _result) => this.addSystemMessage(`Tool: ${name}`));
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 nowComplete = await this.checkSetupStatus();
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 checkSetupStatus() {
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?.tradingConfigured === true && structured?.walletsConfigured === true;
314
+ return parseSetupStatusSnapshot(structured);
239
315
  }
240
- catch {
241
- return false;
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
- action: "configure_autonomous",
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;AASxE,OAAO,KAAK,EAA2B,SAAS,EAAE,MAAM,YAAY,CAAC;AAiFrE,UAAU,QAAQ;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,YAAY,CA2iB5D"}
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 sessionTone = status.sseConnected ? "live" : "warning";
403
+ const sessionBadge = getSessionBadge(status);
404
+ const sessionTone = sessionBadge.tone;
415
405
  const statusTone = status.status.includes("error")
416
406
  ? "danger"
417
- : status.sseConnected
418
- ? "live"
419
- : "warning";
420
- 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: status.sseConnected ? "LIVE" : "CONNECTING", 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, 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" })] }))] }) })] }));
421
- }
422
- // ── Background auto-update ────────────────────────────────────────────────
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