balchemy 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.
@@ -27,6 +27,21 @@ export declare class AgentBridge {
27
27
  /** Silent balance refresh — updates status panel only, no chat messages. */
28
28
  refreshBalance(): Promise<void>;
29
29
  checkBalance(): Promise<void>;
30
+ /** Fetch server-side settings (slippage, strategy) from MCP. */
31
+ fetchRemoteSettings(): Promise<{
32
+ slippageBps?: number;
33
+ strategy?: string;
34
+ }>;
35
+ /** Update slippage on the server via MCP. */
36
+ updateSlippage(bps: number): Promise<boolean>;
37
+ /** Update strategy on the server via MCP. */
38
+ updateStrategy(rules: string): Promise<boolean>;
39
+ /** Get current local config for settings display. */
40
+ getLocalConfig(): {
41
+ provider: string;
42
+ model: string;
43
+ maxDailyCost: number;
44
+ };
30
45
  private addAgentMessage;
31
46
  private addSystemMessage;
32
47
  private addTradeMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBridge.d.ts","sourceRoot":"","sources":["../../src/tui/AgentBridge.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AAGhF,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;IAC/D,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY;IAmBpD;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0F5B,yEAAyE;YAC3D,KAAK;IAwBb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD,wFAAwF;YAC1E,gBAAgB;IAa9B,4EAA4E;IACtE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBnC,OAAO,CAAC,eAAe;IAGvB,OAAO,CAAC,gBAAgB;IAGxB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,eAAe;CAGxB"}
1
+ {"version":3,"file":"AgentBridge.d.ts","sourceRoot":"","sources":["../../src/tui/AgentBridge.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AAoChF,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;IAC/D,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY;IAmBpD;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiG5B,yEAAyE;YAC3D,KAAK;IAqBb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD,wFAAwF;YAC1E,gBAAgB;IAa9B,4EAA4E;IACtE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBnC,gEAAgE;IAC1D,mBAAmB,IAAI,OAAO,CAAC;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBjF,6CAA6C;IACvC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASnD,6CAA6C;IACvC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAarD,qDAAqD;IACrD,cAAc,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAU3E,OAAO,CAAC,eAAe;IAGvB,OAAO,CAAC,gBAAgB;IAGxB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,eAAe;CAKxB"}
@@ -2,6 +2,32 @@
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { AgentLoop, connectMcp } from "@balchemyai/agent-sdk";
4
4
  import { ChatAgent } from "./ChatAgent.js";
5
+ /** Truncate verbose API errors (429 JSON blobs, stack traces) to a readable one-liner. */
6
+ function truncateError(raw) {
7
+ // Extract HTTP status code if present
8
+ const statusMatch = raw.match(/\b(4\d{2}|5\d{2})\b/);
9
+ const status = statusMatch ? statusMatch[1] : null;
10
+ // Extract retry-after header value if present
11
+ const retryMatch = raw.match(/retry[- ]?after[:\s]*(\d+)/i);
12
+ const retryAfter = retryMatch ? `${retryMatch[1]}s` : null;
13
+ // Strip JSON blobs — everything between first { and last }
14
+ let clean = raw.replace(/\{[\s\S]*\}/g, "").trim();
15
+ // If stripping JSON left us with almost nothing, take first line of original
16
+ if (clean.length < 10) {
17
+ clean = raw.split("\n")[0];
18
+ }
19
+ // Truncate to max 150 chars
20
+ if (clean.length > 150) {
21
+ clean = clean.slice(0, 147) + "...";
22
+ }
23
+ // Build a readable summary
24
+ if (status === "429") {
25
+ return retryAfter
26
+ ? `Rate limited (429). Retry after ${retryAfter}.`
27
+ : "Rate limited (429). Try again in a moment.";
28
+ }
29
+ return clean;
30
+ }
5
31
  export class AgentBridge {
6
32
  loop = null;
7
33
  mcp;
@@ -103,6 +129,12 @@ export class AgentBridge {
103
129
  };
104
130
  this.loop = new AgentLoop(loopConfig);
105
131
  await this.loop.start();
132
+ // Push provider/model to status panel
133
+ this.setters.setStatus((prev) => ({
134
+ ...prev,
135
+ provider: this.config.llmProvider,
136
+ model: this.config.llmModel,
137
+ }));
106
138
  // Input is ready now — kick off greeting + balance check in the background
107
139
  void this.greet(setupComplete);
108
140
  }
@@ -121,10 +153,7 @@ export class AgentBridge {
121
153
  this.addAgentMessage(reply);
122
154
  }
123
155
  catch (err) {
124
- const raw = err instanceof Error ? err.message : String(err);
125
- // Truncate long API errors — show first line only
126
- const short = raw.split("\n")[0].slice(0, 120);
127
- this.addErrorMessage(`LLM error: ${short}`);
156
+ this.addErrorMessage(`LLM error: ${err instanceof Error ? err.message : String(err)}`);
128
157
  }
129
158
  }
130
159
  async stop() {
@@ -212,7 +241,62 @@ export class AgentBridge {
212
241
  this.addErrorMessage("Could not check wallet balance.");
213
242
  }
214
243
  }
215
- // Convenience helpers
244
+ // ── Settings helpers (for /settings menu) ─────────────────────────────────
245
+ /** Fetch server-side settings (slippage, strategy) from MCP. */
246
+ async fetchRemoteSettings() {
247
+ try {
248
+ const resp = await this.mcp.callTool("setup_agent", { action: "get_status" });
249
+ const text = resp.content?.find((c) => c.type === "text")?.text ?? "{}";
250
+ let parsed;
251
+ try {
252
+ parsed = JSON.parse(text);
253
+ }
254
+ catch {
255
+ parsed = {};
256
+ }
257
+ const structured = parsed.structured;
258
+ return {
259
+ slippageBps: typeof structured?.slippageBps === "number" ? structured.slippageBps : undefined,
260
+ strategy: typeof structured?.naturalLanguageRules === "string" ? structured.naturalLanguageRules : undefined,
261
+ };
262
+ }
263
+ catch {
264
+ return {};
265
+ }
266
+ }
267
+ /** Update slippage on the server via MCP. */
268
+ async updateSlippage(bps) {
269
+ try {
270
+ await this.mcp.callTool("setup_agent", { action: "configure_slippage", slippageBps: bps });
271
+ return true;
272
+ }
273
+ catch {
274
+ return false;
275
+ }
276
+ }
277
+ /** Update strategy on the server via MCP. */
278
+ async updateStrategy(rules) {
279
+ try {
280
+ await this.mcp.callTool("setup_agent", {
281
+ action: "configure_autonomous",
282
+ naturalLanguageRules: rules,
283
+ shadowMode: false,
284
+ });
285
+ return true;
286
+ }
287
+ catch {
288
+ return false;
289
+ }
290
+ }
291
+ /** Get current local config for settings display. */
292
+ getLocalConfig() {
293
+ return {
294
+ provider: this.config.llmProvider,
295
+ model: this.config.llmModel ?? "(default)",
296
+ maxDailyCost: this.config.maxDailyLlmCost ?? 5,
297
+ };
298
+ }
299
+ // ── Convenience helpers ──────────────────────────────────────────────────
216
300
  addAgentMessage(text) {
217
301
  this.setters.addMessage({ id: randomUUID(), type: "agent", text, timestamp: Date.now() });
218
302
  }
@@ -220,11 +304,10 @@ export class AgentBridge {
220
304
  this.setters.addMessage({ id: randomUUID(), type: "system", text, timestamp: Date.now() });
221
305
  }
222
306
  addTradeMessage(trade) {
223
- const icon = trade.action === "buy" ? "BUY" : "SELL";
224
307
  this.setters.addMessage({
225
308
  id: randomUUID(),
226
309
  type: "trade",
227
- text: `${icon} ${trade.amount} SOL ${trade.action === "buy" ? "->" : "<-"} ${trade.token.slice(0, 8)}...`,
310
+ text: `${trade.amount} SOL ${trade.action === "buy" ? "\u2192" : "\u2190"} ${trade.token.slice(0, 8)}...`,
228
311
  token: trade.token,
229
312
  action: trade.action,
230
313
  amount: trade.amount,
@@ -232,7 +315,9 @@ export class AgentBridge {
232
315
  });
233
316
  }
234
317
  addErrorMessage(text) {
235
- this.setters.addMessage({ id: randomUUID(), type: "error", text, timestamp: Date.now() });
318
+ // Truncate long error messages extract status code and first meaningful line
319
+ const truncated = truncateError(text);
320
+ this.setters.addMessage({ id: randomUUID(), type: "error", text: truncated, timestamp: Date.now() });
236
321
  }
237
322
  }
238
323
  //# sourceMappingURL=AgentBridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBridge.js","sourceRoot":"","sources":["../../src/tui/AgentBridge.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ3C,MAAM,OAAO,WAAW;IACd,IAAI,GAAqB,IAAI,CAAC;IACrB,GAAG,CAAoB;IACvB,MAAM,CAAY;IAC3B,SAAS,GAAqB,IAAI,CAAC;IAC1B,OAAO,CAAe;IACtB,WAAW,CAAe;IACnC,gBAAgB,GAAG,KAAK,CAAC;IAEjC,YAAY,MAAiB,EAAE,OAAqB;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,uCAAuC;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,GAA2B,EAAE,IAAkB,EAAE,EAAE;YAC3E,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACrG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC,WAAW;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,IAAI,CAAC,WAAW;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,sDAAsD;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAC5B;YACE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM;SACjD,EACD,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAE5B,qBAAqB;QACrB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpD,MAAM,UAAU,GAAoB;YAClC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC;YACjD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM;YAChD,UAAU,EAAE,IAAI,CAAC,WAAW;YAE5B,OAAO,EAAE,CAAC,KAAsC,EAAE,EAAE;gBAClD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA2C,CAAC;gBAC/D,MAAM,SAAS,GAAG,IAAI,EAAE,iBAAiB,IAAI,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC;gBAC5E,kEAAkE;gBAClE,IAAI,SAAS,KAAK,oBAAoB,IAAI,SAAS,KAAK,qBAAqB,EAAE,CAAC;oBAC9E,MAAM,KAAK,GAAG,IAAI,EAAE,KAA4C,CAAC;oBACjE,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAmC,CAAC;oBACvE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;wBACzB,MAAM,OAAO,GAAG,GAAG,CAAC,IAA2C,CAAC;wBAChE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvE,IAAI,CAAC,gBAAgB,CAAC,cAAc,IAAI,QAAQ,MAAM,CAAC,OAAO,EAAE,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC9F,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3F,CAAC;YAED,UAAU,EAAE,CAAC,QAAiF,EAAE,EAAE;gBAChG,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC9G,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjG,CAAC;YAED,aAAa,EAAE,CAAC,MAA6E,EAAE,EAAE;gBAC/F,MAAM,KAAK,GAAc;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;oBAChC,MAAM,EAAE,MAAM,CAAC,MAAwB;oBACvC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,GAAG;oBAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;gBACF,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAChC,GAAG,IAAI;oBACP,cAAc,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;oBACvC,YAAY,EAAE,MAAM,CAAC,MAAM,KAAK,KAAK;wBACnC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;wBAC/B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;iBAC7D,CAAC,CAAC,CAAC;YACN,CAAC;YAED,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YAED,cAAc,EAAE,CAAC,MAAuF,EAAE,EAAE;gBAC1G,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAChC,GAAG,IAAI;oBACP,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC,CAAC;YACN,CAAC;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAExB,2EAA2E;QAC3E,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,yEAAyE;IACjE,KAAK,CAAC,KAAK,CAAC,aAAsB;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa;gBAC1B,CAAC,CAAC,iHAAiH;gBACnH,CAAC,CAAC,mIAAmI,CAAC;YACxI,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACrC,MAAM,EACN,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,IAAI,EAAE,CAAC,CAC1D,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,kDAAkD;YAClD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,eAAe,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACtB,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI,EAAE,MAAM;YACZ,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACrC,IAAI,EACJ,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,IAAI,EAAE,CAAC,EACzD,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAChD,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,wFAAwF;IAChF,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;YACzG,IAAI,MAA+B,CAAC;YACpC,IAAI,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC;YAAC,CAAC;YACpF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAiD,CAAC;YAC5E,OAAO,UAAU,EAAE,iBAAiB,KAAK,IAAI,IAAI,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;QAC1F,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;YAC7G,IAAI,MAA+B,CAAC;YACpC,IAAI,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC;YAAC,CAAC;YACpF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;YAC7G,IAAI,MAA+B,CAAC;YACpC,IAAI,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC;YAAC,CAAC;YACpF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAClF,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,2BAA2B,GAAG,kDAAkD,CAAC,CAAC;YACzG,CAAC;YACD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,sBAAsB;IACd,eAAe,CAAC,IAAY;QAClC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC;IACO,gBAAgB,CAAC,IAAY;QACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7F,CAAC;IACO,eAAe,CAAC,KAAgB;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACtB,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;YACzG,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IACO,eAAe,CAAC,IAAY;QAClC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC;CACF"}
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;AAOxE,OAAO,KAAK,EAA2B,SAAS,EAAE,MAAM,YAAY,CAAC;AAmBrE,UAAU,QAAQ;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,YAAY,CAgL5D"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAOxE,OAAO,KAAK,EAA2B,SAAS,EAAE,MAAM,YAAY,CAAC;AAyCrE,UAAU,QAAQ;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,YAAY,CA+Y5D"}
package/dist/tui/App.js CHANGED
@@ -1,13 +1,14 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // src/tui/App.tsx
3
3
  import { useState, useEffect, useRef, useCallback } from "react";
4
- import { Box, Text, useApp } from "ink";
4
+ import { Box, Text, useApp, useInput } from "ink";
5
5
  import { TextInput } from "@inkjs/ui";
6
6
  import { ChatPanel } from "./ChatPanel.js";
7
7
  import { StatusPanel } from "./StatusPanel.js";
8
8
  import { AgentBridge } from "./AgentBridge.js";
9
- import { clearAgent } from "../agent-store.js";
9
+ import { clearAgent, loadAgent, saveAgent } from "../agent-store.js";
10
10
  import { randomUUID } from "node:crypto";
11
+ // ── Constants ────────────────────────────────────────────────────────────────
11
12
  const INITIAL_STATUS = {
12
13
  balanceSol: 0,
13
14
  balanceUsd: 0,
@@ -23,6 +24,13 @@ const INITIAL_STATUS = {
23
24
  sseConnected: false,
24
25
  status: "starting",
25
26
  };
27
+ const SETTINGS_ITEMS = [
28
+ { key: "provider", label: "LLM Provider", source: "local" },
29
+ { key: "model", label: "LLM Model", source: "local" },
30
+ { key: "maxDailyCost", label: "Max Daily $", source: "local" },
31
+ { key: "slippage", label: "Slippage (bps)", source: "remote" },
32
+ { key: "strategy", label: "Strategy", source: "remote" },
33
+ ];
26
34
  export function App({ config }) {
27
35
  const { exit } = useApp();
28
36
  const [messages, setMessages] = useState([]);
@@ -32,6 +40,15 @@ export function App({ config }) {
32
40
  });
33
41
  const [inputActive, setInputActive] = useState(false);
34
42
  const bridgeRef = useRef(null);
43
+ // App mode
44
+ const [appMode, setAppMode] = useState("chat");
45
+ const appModeRef = useRef("chat");
46
+ const [settingsEditIndex, setSettingsEditIndex] = useState(-1);
47
+ const [settingsValues, setSettingsValues] = useState({});
48
+ const settingsValuesRef = useRef({});
49
+ // Keep refs in sync with state (avoids stale closures)
50
+ useEffect(() => { appModeRef.current = appMode; }, [appMode]);
51
+ useEffect(() => { settingsValuesRef.current = settingsValues; }, [settingsValues]);
35
52
  // Trade confirmation state
36
53
  const [tradeConfirm, setTradeConfirm] = useState(null);
37
54
  const [confirmKey, setConfirmKey] = useState(0);
@@ -44,7 +61,10 @@ export function App({ config }) {
44
61
  const addSystemMsg = useCallback((text) => {
45
62
  addMessage({ id: randomUUID(), type: "system", text, timestamp: Date.now() });
46
63
  }, [addMessage]);
47
- // Trade confirmation callback called by AgentBridge when trade_command is intercepted
64
+ const addErrorMsg = useCallback((text) => {
65
+ addMessage({ id: randomUUID(), type: "error", text, timestamp: Date.now() });
66
+ }, [addMessage]);
67
+ // Trade confirmation callback
48
68
  const confirmTrade = useCallback((preview) => {
49
69
  return new Promise((resolve) => {
50
70
  setTradeConfirm({ preview, resolve });
@@ -64,6 +84,7 @@ export function App({ config }) {
64
84
  setTradeConfirm(null);
65
85
  }
66
86
  }, [tradeConfirm, addMessage, addSystemMsg]);
87
+ // ── Bridge startup ──────────────────────────────────────────────────────
67
88
  useEffect(() => {
68
89
  const bridge = new AgentBridge(config, { addMessage, setStatus, confirmTrade });
69
90
  bridgeRef.current = bridge;
@@ -85,65 +106,230 @@ export function App({ config }) {
85
106
  bridge.stop().catch(() => { });
86
107
  };
87
108
  }, [config, addMessage, confirmTrade]);
88
- const handleSend = useCallback(async (text) => {
89
- if (text.startsWith("/")) {
90
- const cmd = text.split(" ")[0].toLowerCase();
91
- switch (cmd) {
92
- case "/stop":
93
- case "/exit":
94
- case "/quit": {
95
- addSystemMsg("Shutting down...");
96
- await bridgeRef.current?.stop();
97
- exit();
98
- return;
109
+ // ── Keyboard shortcuts (OpenCode-style) ─────────────────────────────────
110
+ useInput((input, key) => {
111
+ // Don't intercept when trade confirmation is active
112
+ if (tradeConfirm)
113
+ return;
114
+ // Ignore backspace/delete — let TextInput handle them
115
+ if (key.backspace || key.delete)
116
+ return;
117
+ const mode = appModeRef.current;
118
+ // Escape — always go back to chat
119
+ if (key.escape) {
120
+ if (mode !== "chat") {
121
+ setAppMode("chat");
122
+ setSettingsEditIndex(-1);
123
+ addSystemMsg("Back to chat.");
124
+ }
125
+ return;
126
+ }
127
+ // ctrl+s — toggle settings
128
+ if (input === "s" && key.ctrl) {
129
+ if (mode === "chat") {
130
+ void openSettings();
131
+ }
132
+ else {
133
+ setAppMode("chat");
134
+ setSettingsEditIndex(-1);
135
+ addSystemMsg("Settings closed.");
136
+ }
137
+ return;
138
+ }
139
+ // ctrl+l — clear chat
140
+ if (input === "l" && key.ctrl) {
141
+ setMessages([]);
142
+ addSystemMsg("Chat cleared.");
143
+ return;
144
+ }
145
+ // ctrl+n — new agent
146
+ if (input === "n" && key.ctrl) {
147
+ addSystemMsg("Creating new agent...");
148
+ clearAgent();
149
+ void bridgeRef.current?.stop();
150
+ exit();
151
+ return;
152
+ }
153
+ // ctrl+q — quit (with cleanup)
154
+ if (input === "q" && key.ctrl) {
155
+ addSystemMsg("Shutting down...");
156
+ void bridgeRef.current?.stop().finally(() => exit());
157
+ return;
158
+ }
159
+ });
160
+ // ── Settings logic ──────────────────────────────────────────────────────
161
+ const openSettings = useCallback(async () => {
162
+ const bridge = bridgeRef.current;
163
+ if (!bridge)
164
+ return;
165
+ const local = bridge.getLocalConfig();
166
+ const values = {
167
+ provider: local.provider,
168
+ model: local.model,
169
+ maxDailyCost: `$${local.maxDailyCost.toFixed(2)}`,
170
+ slippage: "loading...",
171
+ strategy: "loading...",
172
+ };
173
+ setSettingsValues({ ...values });
174
+ setAppMode("settings-select");
175
+ addSystemMsg(formatSettingsDisplay(values));
176
+ // Fetch remote settings async
177
+ const remote = await bridge.fetchRemoteSettings();
178
+ const updated = {
179
+ ...values,
180
+ slippage: remote.slippageBps !== undefined ? `${remote.slippageBps}` : "not set",
181
+ strategy: remote.strategy ?? "not configured",
182
+ };
183
+ setSettingsValues(updated);
184
+ addSystemMsg(formatSettingsDisplay(updated));
185
+ }, [addSystemMsg]);
186
+ const handleSettingsInput = useCallback((text) => {
187
+ const mode = appModeRef.current;
188
+ const vals = settingsValuesRef.current;
189
+ if (mode === "settings-select") {
190
+ if (text === "" || text.toLowerCase() === "back") {
191
+ setAppMode("chat");
192
+ setSettingsEditIndex(-1);
193
+ addSystemMsg("Settings closed.");
194
+ return;
195
+ }
196
+ const idx = parseInt(text, 10);
197
+ if (isNaN(idx) || idx < 1 || idx > SETTINGS_ITEMS.length) {
198
+ addSystemMsg(`Type 1-${SETTINGS_ITEMS.length} to edit, esc to close.`);
199
+ return;
200
+ }
201
+ const item = SETTINGS_ITEMS[idx - 1];
202
+ const current = vals[item.key] ?? "?";
203
+ setSettingsEditIndex(idx - 1);
204
+ setAppMode("settings-edit");
205
+ addSystemMsg(`Editing ${item.label} (current: ${current})`);
206
+ return;
207
+ }
208
+ if (mode === "settings-edit") {
209
+ if (text === "" || text.toLowerCase() === "back") {
210
+ setAppMode("settings-select");
211
+ setSettingsEditIndex(-1);
212
+ addSystemMsg(formatSettingsDisplay(vals));
213
+ return;
214
+ }
215
+ void saveSettingValue(settingsEditIndex, text);
216
+ return;
217
+ }
218
+ }, [addSystemMsg, settingsEditIndex]);
219
+ const saveSettingValue = useCallback(async (index, value) => {
220
+ const item = SETTINGS_ITEMS[index];
221
+ if (!item)
222
+ return;
223
+ const bridge = bridgeRef.current;
224
+ const vals = { ...settingsValuesRef.current };
225
+ if (item.source === "local") {
226
+ const agent = loadAgent();
227
+ if (!agent) {
228
+ addErrorMsg("No agent found in store.");
229
+ setAppMode("settings-select");
230
+ setSettingsEditIndex(-1);
231
+ return;
232
+ }
233
+ switch (item.key) {
234
+ case "provider": {
235
+ const valid = ["anthropic", "openai", "gemini", "grok", "openrouter"];
236
+ if (!valid.includes(value.toLowerCase())) {
237
+ addErrorMsg(`Invalid provider. Choose: ${valid.join(", ")}`);
238
+ return;
239
+ }
240
+ agent.llmProvider = value.toLowerCase();
241
+ vals.provider = value.toLowerCase();
242
+ break;
99
243
  }
100
- case "/new": {
101
- addSystemMsg("Creating new agent... Restarting wizard.");
102
- clearAgent();
103
- await bridgeRef.current?.stop();
104
- exit();
105
- return;
244
+ case "model":
245
+ agent.llmModel = value;
246
+ vals.model = value;
247
+ break;
248
+ case "maxDailyCost": {
249
+ const num = parseFloat(value.replace("$", ""));
250
+ if (isNaN(num) || num <= 0) {
251
+ addErrorMsg("Enter a positive number.");
252
+ return;
253
+ }
254
+ agent.maxDailyLlmCost = num;
255
+ vals.maxDailyCost = `$${num.toFixed(2)}`;
256
+ break;
106
257
  }
107
- case "/switch": {
108
- addSystemMsg("Switching agent... Clearing cache.");
109
- clearAgent();
110
- await bridgeRef.current?.stop();
111
- exit();
258
+ }
259
+ saveAgent(agent);
260
+ addSystemMsg(`${item.label} \u2192 ${value}. Takes effect on restart.`);
261
+ }
262
+ else if (item.source === "remote" && bridge) {
263
+ if (item.key === "slippage") {
264
+ const bps = parseInt(value, 10);
265
+ if (isNaN(bps) || bps < 1 || bps > 5000) {
266
+ addErrorMsg("Slippage must be 1-5000 bps.");
112
267
  return;
113
268
  }
114
- case "/provider": {
115
- addSystemMsg("To change your LLM provider, run:\n" +
116
- " npx balchemy init\n" +
117
- "This starts the setup wizard where you can pick a new provider and model.");
118
- return;
269
+ const ok = await bridge.updateSlippage(bps);
270
+ if (ok) {
271
+ vals.slippage = `${bps}`;
272
+ addSystemMsg(`Slippage \u2192 ${bps} bps.`);
119
273
  }
120
- case "/help": {
121
- addSystemMsg("Commands:\n" +
122
- " /stop Stop agent and exit\n" +
123
- " /clear Clear chat history\n" +
124
- " /new Create a new agent\n" +
125
- " /switch Switch to different agent\n" +
126
- " /provider Change LLM provider\n" +
127
- " /help Show this help");
128
- return;
274
+ else {
275
+ addErrorMsg("Failed to update slippage.");
129
276
  }
130
- case "/clear": {
131
- setMessages([]);
132
- return;
277
+ }
278
+ else if (item.key === "strategy") {
279
+ const ok = await bridge.updateStrategy(value);
280
+ if (ok) {
281
+ vals.strategy = value;
282
+ addSystemMsg("Strategy updated.");
133
283
  }
134
- default: {
135
- addSystemMsg(`Unknown command: ${cmd}. Type /help for commands.`);
136
- return;
284
+ else {
285
+ addErrorMsg("Failed to update strategy.");
137
286
  }
138
287
  }
139
288
  }
289
+ // Immutable state update
290
+ setSettingsValues(vals);
291
+ setAppMode("settings-select");
292
+ setSettingsEditIndex(-1);
293
+ addSystemMsg(formatSettingsDisplay(vals));
294
+ }, [addSystemMsg, addErrorMsg]);
295
+ // ── Chat input handler ──────────────────────────────────────────────────
296
+ const handleSend = useCallback(async (text) => {
297
+ const mode = appModeRef.current;
298
+ // Settings mode input routing
299
+ if (mode === "settings-select" || mode === "settings-edit") {
300
+ handleSettingsInput(text);
301
+ return;
302
+ }
303
+ // Regular chat message
140
304
  if (bridgeRef.current) {
141
305
  await bridgeRef.current.sendUserMessage(text);
142
306
  }
143
307
  else {
144
- addSystemMsg("Agent not ready yet. Try again in a moment.");
308
+ addSystemMsg("Agent not ready yet.");
145
309
  }
146
- }, [exit, addSystemMsg]);
147
- return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsxs(Box, { borderStyle: "single", borderColor: "cyan", borderBottom: true, borderTop: false, borderLeft: false, borderRight: false, paddingX: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "BALCHEMY" }), _jsx(Text, { dimColor: true, children: " | " }), _jsx(Text, { dimColor: true, children: config.publicId }), _jsx(Text, { dimColor: true, children: " | " }), _jsx(Text, { color: status.sseConnected ? "green" : "yellow", children: status.sseConnected ? "LIVE" : "CONNECTING" }), _jsx(Text, { dimColor: true, children: " | " }), _jsx(Text, { dimColor: true, children: config.shadowMode ? "SHADOW" : "LIVE MODE" })] }), _jsxs(Box, { flexDirection: "row", flexGrow: 1, children: [_jsx(ChatPanel, { messages: messages, onSend: handleSend, inputActive: inputActive && !tradeConfirm }), _jsx(StatusPanel, { status: status })] }), tradeConfirm && (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, paddingY: 0, children: [_jsx(Text, { color: "yellow", bold: true, children: "TRADE " }), _jsxs(Text, { color: "white", children: [tradeConfirm.preview, " "] }), _jsx(Text, { color: "yellow", children: "Confirm? " }), _jsx(TextInput, { placeholder: "y/n", onSubmit: handleConfirmInput }, confirmKey)] }))] }));
310
+ }, [handleSettingsInput, addSystemMsg]);
311
+ // ── Input placeholder ───────────────────────────────────────────────────
312
+ const inputPlaceholder = appMode === "settings-select"
313
+ ? "Type 1-5 to edit, esc to close..."
314
+ : appMode === "settings-edit"
315
+ ? `Enter new value (esc to cancel)...`
316
+ : "Send a message...";
317
+ // ── Render ──────────────────────────────────────────────────────────────
318
+ return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsxs(Box, { borderStyle: "single", borderColor: "cyan", borderBottom: true, borderTop: false, borderLeft: false, borderRight: false, paddingX: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "BALCHEMY" }), _jsx(Text, { dimColor: true, children: " | " }), _jsx(Text, { dimColor: true, children: config.publicId }), _jsx(Text, { dimColor: true, children: " | " }), _jsx(Text, { color: status.sseConnected ? "green" : "yellow", children: status.sseConnected ? "LIVE" : "CONNECTING" }), appMode !== "chat" && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: " | " }), _jsx(Text, { color: "yellow", bold: true, children: "SETTINGS" })] }))] }), _jsxs(Box, { flexDirection: "row", flexGrow: 1, children: [_jsx(ChatPanel, { messages: messages, onSend: handleSend, inputActive: inputActive && !tradeConfirm, inputPlaceholder: inputPlaceholder }), _jsx(StatusPanel, { status: status })] }), tradeConfirm && (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, paddingY: 0, children: [_jsx(Text, { color: "yellow", bold: true, children: "TRADE " }), _jsxs(Text, { color: "white", children: [tradeConfirm.preview, " "] }), _jsx(Text, { color: "yellow", children: "Confirm? " }), _jsx(TextInput, { placeholder: "y/n", onSubmit: handleConfirmInput }, confirmKey)] })), _jsxs(Box, { borderStyle: "single", borderColor: "gray", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, paddingX: 1, gap: 2, children: [_jsxs(Text, { children: [_jsx(Text, { color: "cyan", bold: true, children: "^S" }), _jsx(Text, { dimColor: true, children: " Settings " })] }), _jsxs(Text, { children: [_jsx(Text, { color: "cyan", bold: true, children: "^L" }), _jsx(Text, { dimColor: true, children: " Clear " })] }), _jsxs(Text, { children: [_jsx(Text, { color: "cyan", bold: true, children: "^N" }), _jsx(Text, { dimColor: true, children: " New " })] }), _jsxs(Text, { children: [_jsx(Text, { color: "cyan", bold: true, children: "^Q" }), _jsx(Text, { dimColor: true, children: " Quit " })] }), _jsxs(Text, { children: [_jsx(Text, { color: "cyan", bold: true, children: "ESC" }), _jsx(Text, { dimColor: true, children: " Back " })] })] })] }));
319
+ }
320
+ // ── Helpers ────────────────────────────────────────────────────────────────────
321
+ function formatSettingsDisplay(values) {
322
+ const lines = SETTINGS_ITEMS.map((item, i) => {
323
+ const val = values[item.key] ?? "?";
324
+ const display = val.length > 40 ? val.slice(0, 37) + "..." : val;
325
+ return ` ${i + 1} ${item.label.padEnd(16)} ${display}`;
326
+ });
327
+ return [
328
+ "Settings",
329
+ "\u2500".repeat(38),
330
+ ...lines,
331
+ "",
332
+ "Type number to edit \u00b7 esc to close",
333
+ ].join("\n");
148
334
  }
149
335
  //# sourceMappingURL=App.js.map
@@ -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,kBAAkB;AAClB,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,gFAAgF;AAEhF,MAAM,cAAc,GAAe;IACjC,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC;IACpB,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,CAAC;IAClB,MAAM,EAAE,CAAC;IACT,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,UAAU;CACnB,CAAC;AAYF,MAAM,cAAc,GAAkB;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE;IAC3D,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;IACrD,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE;IAC9D,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC9D,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;CACzD,CAAC;AAQF,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,EAAY;IACtC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAa;QAC/C,GAAG,cAAc;QACjB,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAEnD,WAAW;IACX,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,MAAM,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,CAAU,MAAM,CAAC,CAAC;IAC3C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAyB,EAAE,CAAC,CAAC;IACjF,MAAM,iBAAiB,GAAG,MAAM,CAAyB,EAAE,CAAC,CAAC;IAE7D,uDAAuD;IACvD,SAAS,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,SAAS,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAEnF,2BAA2B;IAC3B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAGtC,IAAI,CAAC,CAAC;IAChB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,GAAgB,EAAE,EAAE;QAClD,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAChD,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAC/C,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,8BAA8B;IAC9B,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,OAAe,EAAoB,EAAE;QACrE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACtC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,GAAG,EAAE,CAAC;gBACR,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,YAAY,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACrH,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,cAAc,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7C,2EAA2E;IAE3E,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QAChF,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;QAE3B,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACvB,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACxB,UAAU,CAAC;gBACT,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,oBAAoB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBAC5E,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACvC,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,eAAe,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvC,2EAA2E;IAE3E,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,oDAAoD;QACpD,IAAI,YAAY;YAAE,OAAO;QACzB,sDAAsD;QACtD,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO;QAExC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;QAEhC,kCAAkC;QAClC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnB,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,eAAe,CAAC,CAAC;YAChC,CAAC;YACD,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,KAAK,YAAY,EAAE,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnB,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACnC,CAAC;YACD,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,WAAW,CAAC,EAAE,CAAC,CAAC;YAChB,YAAY,CAAC,eAAe,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,YAAY,CAAC,uBAAuB,CAAC,CAAC;YACtC,UAAU,EAAE,CAAC;YACb,KAAK,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACjC,KAAK,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAE3E,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,MAAM,GAA2B;YACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,YAAY,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACjD,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,YAAY;SACvB,CAAC;QACF,iBAAiB,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACjC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC9B,YAAY,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5C,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG;YACd,GAAG,MAAM;YACT,QAAQ,EAAE,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;YAChF,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,gBAAgB;SAC9C,CAAC;QACF,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3B,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;QAChC,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC;QAEvC,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC/B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBACjD,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnB,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;gBACzD,YAAY,CAAC,UAAU,cAAc,CAAC,MAAM,yBAAyB,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;YACtC,oBAAoB,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC9B,UAAU,CAAC,eAAe,CAAC,CAAC;YAC5B,YAAY,CAAC,WAAW,IAAI,CAAC,KAAK,cAAc,OAAO,GAAG,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC7B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBACjD,UAAU,CAAC,iBAAiB,CAAC,CAAC;gBAC9B,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,KAAK,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEtC,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,EAAE,KAAa,EAAE,KAAa,EAAE,EAAE;QAC1E,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,MAAM,IAAI,GAAG,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAE9C,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,WAAW,CAAC,0BAA0B,CAAC,CAAC;gBACxC,UAAU,CAAC,iBAAiB,CAAC,CAAC;gBAC9B,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjB,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;oBACtE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBACzC,WAAW,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC7D,OAAO;oBACT,CAAC;oBACD,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBACxC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBACpC,MAAM;gBACR,CAAC;gBACD,KAAK,OAAO;oBACV,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBACnB,MAAM;gBACR,KAAK,cAAc,CAAC,CAAC,CAAC;oBACpB,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;wBAC3B,WAAW,CAAC,0BAA0B,CAAC,CAAC;wBACxC,OAAO;oBACT,CAAC;oBACD,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC;oBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,MAAM;gBACR,CAAC;YACH,CAAC;YACD,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,WAAW,KAAK,4BAA4B,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAChC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;oBACxC,WAAW,CAAC,8BAA8B,CAAC,CAAC;oBAC5C,OAAO;gBACT,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC5C,IAAI,EAAE,EAAE,CAAC;oBACP,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;oBACzB,YAAY,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,4BAA4B,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gBACnC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,EAAE,EAAE,CAAC;oBACP,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,YAAY,CAAC,mBAAmB,CAAC,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,4BAA4B,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC9B,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhC,2EAA2E;IAE3E,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;QAEhC,8BAA8B;QAC9B,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC3D,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,sBAAsB,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC;IAExC,2EAA2E;IAE3E,MAAM,gBAAgB,GACpB,OAAO,KAAK,iBAAiB;QAC3B,CAAC,CAAC,mCAAmC;QACrC,CAAC,CAAC,OAAO,KAAK,eAAe;YAC3B,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,mBAAmB,CAAC;IAE5B,2EAA2E;IAE3E,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,aAEvC,MAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAC,MAAM,EAClB,YAAY,QACZ,SAAS,EAAE,KAAK,EAChB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,CAAC,aAEX,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,+BAAgB,EACvC,KAAC,IAAI,IAAC,QAAQ,0BAAW,EACzB,KAAC,IAAI,IAAC,QAAQ,kBAAE,MAAM,CAAC,QAAQ,GAAQ,EACvC,KAAC,IAAI,IAAC,QAAQ,0BAAW,EACzB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,YAClD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,GACvC,EACN,OAAO,KAAK,MAAM,IAAI,CACrB,8BACE,KAAC,IAAI,IAAC,QAAQ,0BAAW,EACzB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,+BAAgB,IACxC,CACJ,IACG,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC,aAClC,KAAC,SAAS,IACR,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,WAAW,IAAI,CAAC,YAAY,EACzC,gBAAgB,EAAE,gBAAgB,GAClC,EACF,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,IAC3B,EAGL,YAAY,IAAI,CACf,MAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,aACpE,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,6BAAc,EACvC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,aAAE,YAAY,CAAC,OAAO,SAAS,EAClD,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,0BAAiB,EACrC,KAAC,SAAS,IAER,WAAW,EAAC,KAAK,EACjB,QAAQ,EAAE,kBAAkB,IAFvB,UAAU,CAGf,IACE,CACP,EAGD,MAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAC,MAAM,EAClB,SAAS,QACT,YAAY,EAAE,KAAK,EACnB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,CAAC,aAEN,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,yBAAU,EAAA,KAAC,IAAI,IAAC,QAAQ,iCAAkB,IAC5D,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,yBAAU,EAAA,KAAC,IAAI,IAAC,QAAQ,8BAAe,IACzD,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,yBAAU,EAAA,KAAC,IAAI,IAAC,QAAQ,4BAAa,IACvD,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,yBAAU,EAAA,KAAC,IAAI,IAAC,QAAQ,6BAAc,IACxD,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,0BAAW,EAAA,KAAC,IAAI,IAAC,QAAQ,6BAAc,IACzD,IACH,IACF,CACP,CAAC;AACJ,CAAC;AAED,kFAAkF;AAElF,SAAS,qBAAqB,CAAC,MAA8B;IAC3D,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACjE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,GAAG,KAAK;QACR,EAAE;QACF,yCAAyC;KAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -159,7 +159,7 @@ export class ChatAgent {
159
159
  });
160
160
  if (!res.ok) {
161
161
  const errText = await res.text();
162
- throw new Error(`LLM API ${res.status}: ${errText.slice(0, 200)}`);
162
+ throw new Error(`LLM API ${res.status}: ${errText.replace(/\{[\s\S]*\}/g, "").trim().slice(0, 120) || errText.slice(0, 120)}`);
163
163
  }
164
164
  const data = await res.json();
165
165
  const msg = data.choices[0]?.message;
@@ -249,7 +249,7 @@ export class ChatAgent {
249
249
  });
250
250
  if (!res.ok) {
251
251
  const errText = await res.text();
252
- throw new Error(`Anthropic API ${res.status}: ${errText.slice(0, 200)}`);
252
+ throw new Error(`Anthropic API ${res.status}: ${errText.replace(/\{[\s\S]*\}/g, "").trim().slice(0, 120) || errText.slice(0, 120)}`);
253
253
  }
254
254
  const data = await res.json();
255
255
  const textParts = data.content.filter((c) => c.type === "text");
@@ -1 +1 @@
1
- {"version":3,"file":"ChatAgent.js","sourceRoot":"","sources":["../../src/tui/ChatAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatAgent.js","sourceRoot":"","sources":["../../src/tui/ChatAgent.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,10 @@ import React from "react";
2
2
  import type { ChatMessage } from "./types.js";
3
3
  interface ChatPanelProps {
4
4
  messages: ChatMessage[];
5
- onSend: (text: string) => void;
5
+ onSend: (text: string) => void | Promise<void>;
6
6
  inputActive: boolean;
7
+ inputPlaceholder?: string;
7
8
  }
8
- export declare function ChatPanel({ messages, onSend, inputActive }: ChatPanelProps): React.ReactElement;
9
+ export declare function ChatPanel({ messages, onSend, inputActive, inputPlaceholder, }: ChatPanelProps): React.ReactElement;
9
10
  export {};
10
11
  //# sourceMappingURL=ChatPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../src/tui/ChatPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA0B9C,UAAU,cAAc;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CAwC/F"}
1
+ {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../src/tui/ChatPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsF9C,UAAU,cAAc;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,MAAM,EACN,WAAW,EACX,gBAAgB,GACjB,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CAgDrC"}
@@ -1,32 +1,51 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // src/tui/ChatPanel.tsx
3
3
  import { useState, useCallback } from "react";
4
4
  import { Box, Text } from "ink";
5
5
  import { TextInput } from "@inkjs/ui";
6
- const MESSAGE_STYLE = {
7
- agent: { label: "AI", color: "cyan", labelColor: "cyanBright" },
8
- user: { label: "YOU", color: "white", labelColor: "whiteBright" },
9
- system: { label: "SYS", color: "gray", labelColor: "gray" },
10
- trade: { label: "TXN", color: "green", labelColor: "greenBright" },
11
- error: { label: "ERR", color: "red", labelColor: "redBright" },
12
- };
13
- function MessageLine({ msg }) {
14
- const style = MESSAGE_STYLE[msg.type] ?? { label: "---", color: "white", labelColor: "white" };
15
- const time = new Date(msg.timestamp).toLocaleTimeString("en-GB", {
6
+ function formatTime(ts) {
7
+ return new Date(ts).toLocaleTimeString("en-GB", {
16
8
  hour: "2-digit",
17
9
  minute: "2-digit",
18
10
  });
19
- return (_jsxs(Box, { marginBottom: msg.type === "agent" ? 1 : 0, children: [_jsxs(Text, { dimColor: true, children: [time, " "] }), _jsxs(Text, { color: style.labelColor, bold: true, children: [style.label.padEnd(3), " "] }), _jsx(Text, { color: style.color, wrap: "wrap", children: msg.text })] }));
20
11
  }
21
- export function ChatPanel({ messages, onSend, inputActive }) {
12
+ // ── Message components per type ──────────────────────────────────────────────
13
+ function AgentMsg({ msg }) {
14
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "cyanBright", bold: true, children: "AI " }), _jsx(Text, { dimColor: true, children: formatTime(msg.timestamp) })] }), _jsx(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 1, children: _jsx(Text, { color: "white", wrap: "wrap", children: msg.text }) })] }));
15
+ }
16
+ function UserMsg({ msg }) {
17
+ return (_jsxs(Box, { marginBottom: 0, children: [_jsxs(Text, { dimColor: true, children: [formatTime(msg.timestamp), " "] }), _jsxs(Text, { color: "whiteBright", bold: true, children: [">", " "] }), _jsx(Text, { color: "white", wrap: "wrap", children: msg.text })] }));
18
+ }
19
+ function SystemMsg({ msg }) {
20
+ return (_jsx(Box, { marginBottom: 0, children: _jsxs(Text, { dimColor: true, italic: true, children: [formatTime(msg.timestamp), " ", "\u00b7", " ", msg.text] }) }));
21
+ }
22
+ function TradeMsg({ msg }) {
23
+ const isBuy = msg.action === "buy";
24
+ const color = isBuy ? "green" : "red";
25
+ const labelColor = isBuy ? "greenBright" : "redBright";
26
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { children: [_jsxs(Text, { color: labelColor, bold: true, children: [isBuy ? "BUY" : "SELL", " "] }), _jsx(Text, { dimColor: true, children: formatTime(msg.timestamp) })] }), _jsx(Box, { borderStyle: "round", borderColor: color, paddingX: 1, children: _jsx(Text, { color: color, bold: true, wrap: "wrap", children: msg.text }) })] }));
27
+ }
28
+ function ErrorMsg({ msg }) {
29
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "redBright", bold: true, children: "ERR " }), _jsx(Text, { dimColor: true, children: formatTime(msg.timestamp) })] }), _jsx(Box, { borderStyle: "single", borderColor: "red", paddingX: 1, children: _jsx(Text, { color: "red", wrap: "wrap", children: msg.text }) })] }));
30
+ }
31
+ function MessageLine({ msg }) {
32
+ switch (msg.type) {
33
+ case "agent": return _jsx(AgentMsg, { msg: msg });
34
+ case "user": return _jsx(UserMsg, { msg: msg });
35
+ case "trade": return _jsx(TradeMsg, { msg: msg });
36
+ case "error": return _jsx(ErrorMsg, { msg: msg });
37
+ default: return _jsx(SystemMsg, { msg: msg });
38
+ }
39
+ }
40
+ export function ChatPanel({ messages, onSend, inputActive, inputPlaceholder, }) {
22
41
  const visibleMessages = messages.slice(-100);
23
42
  const [inputKey, setInputKey] = useState(0);
24
- const handleSubmit = useCallback((value) => {
43
+ const handleSubmit = useCallback(async (value) => {
25
44
  if (value.trim()) {
26
- onSend(value.trim());
27
45
  setInputKey((k) => k + 1);
46
+ await onSend(value.trim());
28
47
  }
29
48
  }, [onSend]);
30
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, overflowY: "hidden", paddingX: 1, children: [visibleMessages.length === 0 && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Waiting for agent..." }) })), visibleMessages.map((msg) => (_jsx(MessageLine, { msg: msg }, msg.id)))] }), _jsxs(Box, { paddingX: 1, borderStyle: "single", borderColor: "cyan", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, children: [_jsxs(Text, { color: "cyan", bold: true, children: [">", " "] }), inputActive ? (_jsx(TextInput, { placeholder: "Send a message...", onSubmit: handleSubmit }, inputKey)) : (_jsx(Text, { dimColor: true, children: "Starting agent..." }))] })] }));
49
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, overflowY: "hidden", paddingX: 1, children: [visibleMessages.length === 0 && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Waiting for agent..." }) })), visibleMessages.map((msg) => (_jsx(MessageLine, { msg: msg }, msg.id)))] }), _jsxs(Box, { paddingX: 1, borderStyle: "single", borderColor: "cyan", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, children: [_jsxs(Text, { color: "cyan", bold: true, children: [">", " "] }), inputActive ? (_jsx(TextInput, { placeholder: inputPlaceholder ?? "Send a message...", onSubmit: handleSubmit }, inputKey)) : (_jsx(Text, { dimColor: true, children: "Starting agent..." }))] })] }));
31
50
  }
32
51
  //# sourceMappingURL=ChatPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../src/tui/ChatPanel.tsx"],"names":[],"mappings":";AAAA,wBAAwB;AACxB,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,aAAa,GAAyE;IAC1F,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE;IAC/D,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE;IACjE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;IAC3D,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE;IAClE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE;CAC/D,CAAC;AAEF,SAAS,WAAW,CAAC,EAAE,GAAG,EAAwB;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAC/F,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;QAC/D,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,YAAY,EAAE,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAC7C,MAAC,IAAI,IAAC,QAAQ,mBAAE,IAAI,SAAS,EAC7B,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,mBAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACnE,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAC,MAAM,YAAE,GAAG,CAAC,IAAI,GAAQ,IACnD,CACP,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAkB;IACzE,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACjD,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrB,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aAErC,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACpE,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAC/B,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,2CAA4B,GACtC,CACP,EACA,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC5B,KAAC,WAAW,IAAc,GAAG,EAAE,GAAG,IAAhB,GAAG,CAAC,EAAE,CAAc,CACvC,CAAC,IACE,EAGN,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,SAAS,QAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,aAC5H,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,mBAAE,GAAG,SAAS,EACpC,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,SAAS,IAER,WAAW,EAAC,mBAAmB,EAC/B,QAAQ,EAAE,YAAY,IAFjB,QAAQ,CAGb,CACH,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,QAAQ,wCAAyB,CACxC,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../src/tui/ChatPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StatusPanel.d.ts","sourceRoot":"","sources":["../../src/tui/StatusPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAwB7C,UAAU,gBAAgB;IACxB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAkD5E"}
1
+ {"version":3,"file":"StatusPanel.d.ts","sourceRoot":"","sources":["../../src/tui/StatusPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAwB7C,UAAU,gBAAgB;IACxB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CA+F5E"}
@@ -17,6 +17,8 @@ function formatUptime(ms) {
17
17
  return `${s}s`;
18
18
  }
19
19
  export function StatusPanel({ status }) {
20
- return (_jsxs(Box, { flexDirection: "column", width: 24, borderStyle: "single", borderColor: "gray", paddingX: 1, children: [_jsxs(Section, { title: "Balance", children: [_jsxs(Text, { color: "green", bold: true, children: [status.balanceSol.toFixed(4), " SOL"] }), _jsxs(Text, { dimColor: true, children: ["~$", status.balanceUsd.toFixed(2)] })] }), _jsxs(Section, { title: "Wallets", children: [status.wallets.map((w) => (_jsxs(Text, { dimColor: true, children: [w.chain === "solana" ? "SOL" : "EVM", " ", truncate(w.address, 14)] }, w.chain))), status.wallets.length === 0 && _jsx(Text, { dimColor: true, children: "-" })] }), _jsxs(Section, { title: "Trades", children: [status.activeTrades.length === 0 && _jsx(Text, { dimColor: true, children: "-" }), status.activeTrades.slice(0, 3).map((t, i) => (_jsxs(Text, { color: t.action === "buy" ? "green" : "red", children: [t.action === "buy" ? "+" : "-", " ", truncate(t.token, 8), " ", t.amount] }, `${t.token}-${i}`)))] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: [status.eventsReceived, " events"] }), _jsxs(Text, { dimColor: true, children: [status.tradesExecuted, " trades"] }), _jsxs(Text, { dimColor: true, children: ["$", status.llmCostToday.toFixed(4), " / $", status.maxDailyLlmCost] }), _jsxs(Text, { dimColor: true, children: [formatUptime(status.uptime), " uptime"] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "Help" }), _jsx(Text, { dimColor: true, children: "/stop /clear /help" })] })] }));
20
+ const statusColor = status.status === "running" ? "green" :
21
+ status.status === "starting" ? "yellow" : "red";
22
+ return (_jsxs(Box, { flexDirection: "column", width: 28, borderStyle: "single", borderColor: "gray", paddingX: 1, children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { children: [_jsxs(Text, { color: status.sseConnected ? "green" : "yellow", bold: true, children: [status.sseConnected ? "\u25cf" : "\u25cb", " "] }), _jsx(Text, { color: status.sseConnected ? "green" : "yellow", children: status.sseConnected ? "Connected" : "Connecting" })] }), _jsxs(Box, { children: [_jsxs(Text, { color: statusColor, bold: true, children: [status.status === "running" ? "\u25b6" : "\u25a0", " "] }), _jsx(Text, { color: statusColor, children: status.status })] })] }), status.provider && (_jsxs(Section, { title: "LLM", children: [_jsx(Text, { dimColor: true, children: status.provider }), _jsx(Text, { dimColor: true, children: truncate(status.model ?? "default", 22) })] })), _jsxs(Section, { title: "Balance", children: [_jsxs(Text, { color: "green", bold: true, children: [status.balanceSol.toFixed(4), " SOL"] }), _jsxs(Text, { dimColor: true, children: ["~$", status.balanceUsd.toFixed(2)] })] }), _jsxs(Section, { title: "Wallets", children: [status.wallets.map((w) => (_jsxs(Text, { dimColor: true, children: [w.chain === "solana" ? "SOL" : "EVM", " ", truncate(w.address, 16)] }, w.chain))), status.wallets.length === 0 && _jsx(Text, { dimColor: true, children: "-" })] }), _jsxs(Section, { title: "Trades", children: [status.activeTrades.length === 0 && _jsx(Text, { dimColor: true, children: "-" }), status.activeTrades.slice(0, 3).map((t, i) => (_jsxs(Text, { color: t.action === "buy" ? "green" : "red", children: [t.action === "buy" ? "+" : "-", " ", truncate(t.token, 10), " ", t.amount] }, `${t.token}-${i}`))), status.activeTrades.length > 3 && (_jsxs(Text, { dimColor: true, children: ["+", status.activeTrades.length - 3, " more"] }))] }), status.recentTools.length > 0 && (_jsx(Section, { title: "Tools", children: status.recentTools.slice(-3).map((t, i) => (_jsxs(Text, { dimColor: true, children: [t.success ? "\u2713" : "\u2717", " ", truncate(t.name, 14), " ", t.durationMs, "ms"] }, `tool-${i}`))) })), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: [status.eventsReceived, " events"] }), _jsxs(Text, { dimColor: true, children: [status.tradesExecuted, " trades"] }), _jsxs(Text, { dimColor: true, children: ["$", status.llmCostToday.toFixed(4), " / $", status.maxDailyLlmCost] }), _jsxs(Text, { dimColor: true, children: [formatUptime(status.uptime), " uptime"] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "Shortcuts" }), _jsx(Text, { dimColor: true, children: "^S settings ^L clear" }), _jsx(Text, { dimColor: true, children: "^Q quit ^N new" })] })] }));
21
23
  }
22
24
  //# sourceMappingURL=StatusPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusPanel.js","sourceRoot":"","sources":["../../src/tui/StatusPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusPanel.js","sourceRoot":"","sources":["../../src/tui/StatusPanel.tsx"],"names":[],"mappings":"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"}
@@ -44,6 +44,8 @@ export interface StatusData {
44
44
  uptime: number;
45
45
  sseConnected: boolean;
46
46
  status: string;
47
+ provider?: string;
48
+ model?: string;
47
49
  }
48
50
  export interface TuiConfig {
49
51
  mcpEndpoint: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "balchemy",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Autonomous AI trading agent for Solana and Base chains",
@@ -36,7 +36,7 @@
36
36
  "node": ">=18.0.0"
37
37
  },
38
38
  "dependencies": {
39
- "@balchemyai/agent-sdk": "^0.1.0",
39
+ "@balchemyai/agent-sdk": "^0.1.1",
40
40
  "@inkjs/ui": "^2.0.0",
41
41
  "dotenv": "^16.0.0",
42
42
  "ink": "^6.0.0",
@@ -1,71 +0,0 @@
1
- # Balchemy Agent Configuration — Full Example
2
- # All three preset strategies are shown here as commented blocks.
3
- # Uncomment the one you want to use and delete the others.
4
- #
5
- # Environment variable references: ${VAR_NAME}
6
- # These are resolved from .env at startup.
7
-
8
- mcp_endpoint: "${MCP_ENDPOINT}"
9
- api_key: "${BALCHEMY_API_KEY}"
10
-
11
- llm:
12
- provider: anthropic # anthropic | openai
13
- api_key: "${LLM_API_KEY}"
14
- model: claude-haiku-4-5 # Haiku is fast + cheap, ideal for reactive trading
15
- max_daily_usd: 5 # Hard budget cap. Agent pauses when hit.
16
- timeout_ms: 10000
17
-
18
- # ─── Strategy: DCA Accumulator ─────────────────────────────────────────────────
19
- strategy: dca-accumulator
20
-
21
- behavior_rules:
22
- version: "1"
23
- preset: dca-accumulator
24
- dca:
25
- target_token: SOL
26
- amount_usd: 10 # Buy $10 per interval
27
- interval_hours: 24
28
- max_total_usd: 1000 # Stop after $1000 invested
29
- risk:
30
- max_single_trade_usd: 10
31
- pause_on_drawdown_pct: 30 # Pause DCA if portfolio drops 30%
32
-
33
- # ─── Strategy: Memecoin Sniper ──────────────────────────────────────────────────
34
- # strategy: memecoin-sniper
35
- # behavior_rules:
36
- # version: "1"
37
- # preset: memecoin-sniper
38
- # filters:
39
- # min_liquidity_usd: 10000
40
- # max_market_cap_usd: 5000000
41
- # require_verified_contract: false
42
- # entry:
43
- # trigger: launch_signal
44
- # max_position_usd: 50
45
- # slippage_bps: 300
46
- # exit:
47
- # take_profit_pct: 100
48
- # stop_loss_pct: 50
49
- # max_hold_minutes: 60
50
-
51
- # ─── Strategy: Swing Trader ────────────────────────────────────────────────────
52
- # strategy: swing-trader
53
- # behavior_rules:
54
- # version: "1"
55
- # preset: swing-trader
56
- # entry:
57
- # indicators: [rsi, macd]
58
- # rsi_oversold: 30
59
- # max_position_usd: 200
60
- # slippage_bps: 100
61
- # exit:
62
- # take_profit_pct: 20
63
- # stop_loss_pct: 10
64
- # min_hold_hours: 2
65
- # max_hold_hours: 72
66
-
67
- # ─── Webhook (optional) ─────────────────────────────────────────────────────────
68
- # Uncomment to receive Balchemy push events directly (faster than SSE polling)
69
- # webhook:
70
- # port: 4242
71
- # secret: "${WEBHOOK_SECRET}"