balchemy 0.1.24 → 0.2.1

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 (50) hide show
  1. package/README.md +19 -4
  2. package/dist/colors.d.ts +37 -0
  3. package/dist/colors.d.ts.map +1 -0
  4. package/dist/colors.js +58 -0
  5. package/dist/colors.js.map +1 -0
  6. package/dist/index.d.ts +6 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +170 -43
  9. package/dist/index.js.map +1 -1
  10. package/dist/terminal-logo.d.ts.map +1 -1
  11. package/dist/terminal-logo.js +9 -14
  12. package/dist/terminal-logo.js.map +1 -1
  13. package/dist/tui/AgentBridge.d.ts +1 -0
  14. package/dist/tui/AgentBridge.d.ts.map +1 -1
  15. package/dist/tui/AgentBridge.js +97 -37
  16. package/dist/tui/AgentBridge.js.map +1 -1
  17. package/dist/tui/App.d.ts.map +1 -1
  18. package/dist/tui/App.js +6 -15
  19. package/dist/tui/App.js.map +1 -1
  20. package/dist/tui/ChatAgent.d.ts +3 -0
  21. package/dist/tui/ChatAgent.d.ts.map +1 -1
  22. package/dist/tui/ChatAgent.js +50 -13
  23. package/dist/tui/ChatAgent.js.map +1 -1
  24. package/dist/tui/ChatPanel.d.ts +2 -1
  25. package/dist/tui/ChatPanel.d.ts.map +1 -1
  26. package/dist/tui/ChatPanel.js +19 -7
  27. package/dist/tui/ChatPanel.js.map +1 -1
  28. package/dist/tui/SecretInput.d.ts +9 -0
  29. package/dist/tui/SecretInput.d.ts.map +1 -0
  30. package/dist/tui/SecretInput.js +32 -0
  31. package/dist/tui/SecretInput.js.map +1 -0
  32. package/dist/tui/Wizard.d.ts +20 -0
  33. package/dist/tui/Wizard.d.ts.map +1 -0
  34. package/dist/tui/Wizard.js +400 -0
  35. package/dist/tui/Wizard.js.map +1 -0
  36. package/dist/tui/setup-guidance.d.ts +2 -0
  37. package/dist/tui/setup-guidance.d.ts.map +1 -1
  38. package/dist/tui/setup-guidance.js +17 -14
  39. package/dist/tui/setup-guidance.js.map +1 -1
  40. package/dist/tui/start-wizard.d.ts +2 -0
  41. package/dist/tui/start-wizard.d.ts.map +1 -0
  42. package/dist/tui/start-wizard.js +30 -0
  43. package/dist/tui/start-wizard.js.map +1 -0
  44. package/dist/tui/utils.d.ts +3 -0
  45. package/dist/tui/utils.d.ts.map +1 -0
  46. package/dist/tui/utils.js +14 -0
  47. package/dist/tui/utils.js.map +1 -0
  48. package/dist/wizard.js +1 -1
  49. package/dist/wizard.js.map +1 -1
  50. package/package.json +1 -1
package/README.md CHANGED
@@ -46,10 +46,14 @@ The interactive wizard walks you through:
46
46
  4. **Start the 24/7 agent loop** — your LLM monitors markets and trades autonomously
47
47
 
48
48
  ```bash
49
- npx balchemy # Setup wizard or resume cached agent
50
- npx balchemy init # Force new setup wizard
51
- npx balchemy start # Start from agent.config.yaml
52
- npx balchemy docker # Generate Docker files for deployment
49
+ npx balchemy # Setup wizard or resume cached agent
50
+ npx balchemy init # Force new setup wizard
51
+ npx balchemy start # Start from agent.config.yaml
52
+ npx balchemy list # List saved agents
53
+ npx balchemy docker # Generate Docker files for deployment
54
+ npx balchemy --help # Show full usage info
55
+ npx balchemy --version # Show version
56
+ npx balchemy --no-color # Disable colored output (also: NO_COLOR=1)
53
57
  ```
54
58
 
55
59
  ## What You Can Do
@@ -163,6 +167,17 @@ When you bind your EVM wallet during setup, your agent appears in your [Balchemy
163
167
  - **Behavior rules** — hard constraints that even your LLM cannot override
164
168
  - **Pre-trade safety checks** — RugCheck, honeypot detection, contract verification
165
169
 
170
+ ## TUI Keyboard Shortcuts
171
+
172
+ | Shortcut | Action |
173
+ |----------|--------|
174
+ | `^S` | Open settings panel |
175
+ | `^L` | Clear chat history |
176
+ | `^N` | New agent (return to launcher) |
177
+ | `^Q` | Quit |
178
+ | `PgUp/PgDn` | Scroll message history |
179
+ | `Esc` | Go back (settings/wizard) |
180
+
166
181
  ## Requirements
167
182
 
168
183
  - Node.js 18+
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Shared ANSI color constants and color-awareness logic.
3
+ *
4
+ * All CLI modules import from here instead of defining their own
5
+ * escape sequences. Respects NO_COLOR, TERM=dumb, --no-color, and
6
+ * non-TTY stdout per clig.dev best practices.
7
+ */
8
+ /** Call once at startup if --no-color was passed. */
9
+ export declare function setNoColor(): void;
10
+ export declare function isColorEnabled(): boolean;
11
+ /** Teal — primary brand */
12
+ export declare function teal(): string;
13
+ /** Dark teal — subtle variant */
14
+ export declare function darkTeal(): string;
15
+ /** Gold — accent / warnings */
16
+ export declare function gold(): string;
17
+ /** White bold */
18
+ export declare function white(): string;
19
+ /** Dim gray — secondary text */
20
+ export declare function dim(): string;
21
+ /** Green — success */
22
+ export declare function green(): string;
23
+ /** Red — error */
24
+ export declare function red(): string;
25
+ /** Reset */
26
+ export declare function reset(): string;
27
+ export declare const C: {
28
+ readonly T: string;
29
+ readonly DT: string;
30
+ readonly G: string;
31
+ readonly W: string;
32
+ readonly D: string;
33
+ readonly R: string;
34
+ readonly OK: string;
35
+ readonly ERR: string;
36
+ };
37
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,qDAAqD;AACrD,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAMxC;AAQD,2BAA2B;AAC3B,wBAAgB,IAAI,IAAI,MAAM,CAAwC;AACtE,iCAAiC;AACjC,wBAAgB,QAAQ,IAAI,MAAM,CAAwC;AAC1E,+BAA+B;AAC/B,wBAAgB,IAAI,IAAI,MAAM,CAAwC;AACtE,iBAAiB;AACjB,wBAAgB,KAAK,IAAI,MAAM,CAA8B;AAC7D,gCAAgC;AAChC,wBAAgB,GAAG,IAAI,MAAM,CAAkC;AAC/D,sBAAsB;AACtB,wBAAgB,KAAK,IAAI,MAAM,CAA8B;AAC7D,kBAAkB;AAClB,wBAAgB,GAAG,IAAI,MAAM,CAA8B;AAC3D,YAAY;AACZ,wBAAgB,KAAK,IAAI,MAAM,CAA2B;AAM1D,eAAO,MAAM,CAAC;;;;;;;;;CASJ,CAAC"}
package/dist/colors.js ADDED
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Shared ANSI color constants and color-awareness logic.
3
+ *
4
+ * All CLI modules import from here instead of defining their own
5
+ * escape sequences. Respects NO_COLOR, TERM=dumb, --no-color, and
6
+ * non-TTY stdout per clig.dev best practices.
7
+ */
8
+ // ── Color disable detection ──────────────────────────────────────────────────
9
+ let forceNoColor = false;
10
+ /** Call once at startup if --no-color was passed. */
11
+ export function setNoColor() {
12
+ forceNoColor = true;
13
+ }
14
+ export function isColorEnabled() {
15
+ if (forceNoColor)
16
+ return false;
17
+ if (process.env.NO_COLOR !== undefined && process.env.NO_COLOR !== "")
18
+ return false;
19
+ if (process.env.TERM === "dumb")
20
+ return false;
21
+ if (!process.stdout.isTTY)
22
+ return false;
23
+ return true;
24
+ }
25
+ // ── Brand color codes ────────────────────────────────────────────────────────
26
+ function esc(code) {
27
+ return isColorEnabled() ? code : "";
28
+ }
29
+ /** Teal — primary brand */
30
+ export function teal() { return esc("\x1b[38;2;0;172;176m"); }
31
+ /** Dark teal — subtle variant */
32
+ export function darkTeal() { return esc("\x1b[38;2;0;120;124m"); }
33
+ /** Gold — accent / warnings */
34
+ export function gold() { return esc("\x1b[38;2;186;115;6m"); }
35
+ /** White bold */
36
+ export function white() { return esc("\x1b[1;37m"); }
37
+ /** Dim gray — secondary text */
38
+ export function dim() { return esc("\x1b[38;5;245m"); }
39
+ /** Green — success */
40
+ export function green() { return esc("\x1b[1;32m"); }
41
+ /** Red — error */
42
+ export function red() { return esc("\x1b[1;31m"); }
43
+ /** Reset */
44
+ export function reset() { return esc("\x1b[0m"); }
45
+ // ── Shorthand constants (backward compatible) ────────────────────────────────
46
+ // These are evaluated at call time, not import time, so they respect runtime
47
+ // NO_COLOR changes. Use the functions above for new code.
48
+ export const C = {
49
+ get T() { return teal(); },
50
+ get DT() { return darkTeal(); },
51
+ get G() { return gold(); },
52
+ get W() { return white(); },
53
+ get D() { return dim(); },
54
+ get R() { return reset(); },
55
+ get OK() { return green(); },
56
+ get ERR() { return red(); },
57
+ };
58
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAEhF,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,qDAAqD;AACrD,MAAM,UAAU,UAAU;IACxB,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,YAAY;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACpF,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAEhF,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,IAAI,KAAa,OAAO,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACtE,iCAAiC;AACjC,MAAM,UAAU,QAAQ,KAAa,OAAO,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAC1E,+BAA+B;AAC/B,MAAM,UAAU,IAAI,KAAa,OAAO,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACtE,iBAAiB;AACjB,MAAM,UAAU,KAAK,KAAa,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7D,gCAAgC;AAChC,MAAM,UAAU,GAAG,KAAa,OAAO,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC/D,sBAAsB;AACtB,MAAM,UAAU,KAAK,KAAa,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7D,kBAAkB;AAClB,MAAM,UAAU,GAAG,KAAa,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC3D,YAAY;AACZ,MAAM,UAAU,KAAK,KAAa,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAE1D,gFAAgF;AAChF,6EAA6E;AAC7E,0DAA0D;AAE1D,MAAM,CAAC,MAAM,CAAC,GAAG;IACf,IAAI,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,KAAK,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;CACnB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,12 @@
11
11
  * init / --init Force run wizard (ignore cache)
12
12
  * start [config] Start from agent.config.yaml
13
13
  * docker [outDir] Generate Docker files
14
+ * list List saved agents
15
+ *
16
+ * Flags:
17
+ * --help, -h Show help
18
+ * --version, -v Show version
19
+ * --no-color Disable colored output
14
20
  */
15
21
  export {};
16
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;GAkBG"}
package/dist/index.js CHANGED
@@ -11,28 +11,57 @@
11
11
  * init / --init Force run wizard (ignore cache)
12
12
  * start [config] Start from agent.config.yaml
13
13
  * docker [outDir] Generate Docker files
14
+ * list List saved agents
15
+ *
16
+ * Flags:
17
+ * --help, -h Show help
18
+ * --version, -v Show version
19
+ * --no-color Disable colored output
14
20
  */
15
21
  import * as path from "path";
16
22
  import * as readline from "readline";
23
+ import { createRequire } from "module";
17
24
  import { loadAgent, listAgents, setActiveAgent, } from "./agent-store.js";
18
- const [, , cmd, ...args] = process.argv;
19
- const T = "\x1b[38;2;0;172;176m";
20
- const G = "\x1b[38;2;186;115;6m";
21
- const W = "\x1b[1;37m";
22
- const D = "\x1b[38;5;245m";
23
- const R = "\x1b[0m";
25
+ import { C, setNoColor } from "./colors.js";
26
+ // ── Version ──────────────────────────────────────────────────────────────────
27
+ const require = createRequire(import.meta.url);
28
+ const CLI_VERSION = require("../package.json").version ?? "unknown";
29
+ // ── Argv parsing ─────────────────────────────────────────────────────────────
30
+ const rawArgs = process.argv.slice(2);
31
+ const flags = new Set();
32
+ const positional = [];
33
+ for (const arg of rawArgs) {
34
+ if (arg === "--no-color") {
35
+ setNoColor();
36
+ flags.add(arg);
37
+ }
38
+ else if (arg === "--help" || arg === "-h")
39
+ flags.add("--help");
40
+ else if (arg === "--version" || arg === "-v")
41
+ flags.add("--version");
42
+ else if (arg === "--init")
43
+ positional.push("init");
44
+ else
45
+ positional.push(arg);
46
+ }
47
+ const cmd = positional[0];
48
+ const args = positional.slice(1);
49
+ // ── Helpers ──────────────────────────────────────────────────────────────────
50
+ function stderr(msg) {
51
+ process.stderr.write(msg);
52
+ }
24
53
  function printSummaryBlock(title, rows) {
25
54
  const maxLabel = rows.reduce((acc, row) => Math.max(acc, row.label.length), 0);
26
- process.stdout.write(` ${T}${title}${R}\n`);
55
+ process.stdout.write(` ${C.T}${title}${C.R}\n`);
27
56
  for (const row of rows) {
28
- process.stdout.write(` ${D}${row.label.padEnd(maxLabel)}${R} ${row.value}\n`);
57
+ process.stdout.write(` ${C.D}${row.label.padEnd(maxLabel)}${C.R} ${row.value}\n`);
29
58
  }
30
- process.stdout.write(` ${D}${"-".repeat(54)}${R}\n`);
59
+ process.stdout.write(` ${C.D}${"-".repeat(54)}${C.R}\n`);
31
60
  }
32
61
  function ask(rl, question, defaultVal = "") {
33
62
  return new Promise((resolve) => {
34
- const hint = defaultVal ? ` ${D}[${defaultVal}]${R}` : "";
35
- rl.question(` ${T}${question}${R}${hint}: `, (answer) => {
63
+ const hint = defaultVal ? ` ${C.D}[${defaultVal}]${C.R}` : "";
64
+ rl.question(` ${C.T}${question}${C.R}${hint}: `, (answer) => {
36
65
  resolve(answer.trim() || defaultVal);
37
66
  });
38
67
  });
@@ -58,6 +87,7 @@ function mostRecentAgent(agents) {
58
87
  return (Number.isFinite(bTime) ? bTime : 0) - (Number.isFinite(aTime) ? aTime : 0);
59
88
  })[0] ?? null;
60
89
  }
90
+ // ── Sub-commands ─────────────────────────────────────────────────────────────
61
91
  async function startSavedAgent(agent) {
62
92
  setActiveAgent(agent.publicId);
63
93
  const { startTui } = await import("./tui/start.js");
@@ -78,8 +108,9 @@ async function startSavedAgent(agent) {
78
108
  });
79
109
  }
80
110
  async function runWizardFromCwd() {
81
- const { runWizard } = await import("./wizard.js");
82
- await runWizard(process.cwd());
111
+ // Use the new Ink-based wizard; old readline wizard kept as wizard.ts fallback
112
+ const { startWizard } = await import("./tui/start-wizard.js");
113
+ await startWizard(process.cwd());
83
114
  }
84
115
  async function chooseSavedAgent(rl, agents) {
85
116
  const rows = agents.map((agent, index) => ({
@@ -87,13 +118,14 @@ async function chooseSavedAgent(rl, agents) {
87
118
  value: `${compactValue(agent.publicId, 18, 6)} ${compactValue(agent.mcpEndpoint, 34, 10)}`,
88
119
  }));
89
120
  printSummaryBlock("Saved agents", rows);
90
- const answer = normalizeChoice(await ask(rl, `${W}Choose agent number or publicId${R}`, "1"));
121
+ const answer = normalizeChoice(await ask(rl, `${C.W}Choose agent number or publicId${C.R}`, "1"));
91
122
  const index = Number(answer);
92
123
  if (Number.isInteger(index) && index >= 1 && index <= agents.length) {
93
124
  return agents[index - 1] ?? null;
94
125
  }
95
126
  return agents.find((agent) => agent.publicId.toLowerCase() === answer) ?? null;
96
127
  }
128
+ // ── Update check ─────────────────────────────────────────────────────────────
97
129
  function parseSemver(value) {
98
130
  const match = value.match(/^(\d+)\.(\d+)\.(\d+)/);
99
131
  if (!match)
@@ -124,41 +156,36 @@ async function checkForUpdate() {
124
156
  const latest = data.version;
125
157
  if (!latest)
126
158
  return false;
127
- const { createRequire } = await import("module");
128
- const require = createRequire(import.meta.url);
129
- const pkg = require("../package.json");
130
- const current = pkg.version;
131
- if (isNewerVersion(latest, current)) {
132
- process.stdout.write(`\n ${G}Update available${R} ${D}${current}${R} → ${T}${latest}${R}\n`);
159
+ if (isNewerVersion(latest, CLI_VERSION)) {
160
+ stderr(`\n ${C.G}Update available${C.R} ${C.D}${CLI_VERSION}${C.R} → ${C.T}${latest}${C.R}\n`);
133
161
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false });
134
- const answer = await ask(rl, `${W}Update now?${R} (Y/n)`, "y");
162
+ const answer = await ask(rl, `${C.W}Update now?${C.R} (Y/n)`, "y");
135
163
  rl.close();
136
164
  if (answer.toLowerCase() === "y" || answer.toLowerCase() === "yes") {
137
165
  // Detect if running via npx (no global binary to re-exec)
138
166
  const isNpx = Boolean(process.env.npm_execpath?.includes("npx") ||
139
167
  process.env._?.includes("npx") ||
140
168
  process.env.npm_command === "exec");
141
- process.stdout.write(` Updating to ${T}${latest}${R}...\n`);
169
+ stderr(` Updating to ${C.T}${latest}${C.R}...\n`);
142
170
  const { execSync } = await import("child_process");
143
171
  try {
144
172
  execSync(`npm install -g balchemy@${latest}`, { stdio: "inherit" });
145
173
  if (isNpx) {
146
- process.stdout.write(`\n ${T}Updated!${R} Run ${W}balchemy${R} to use the new version.\n\n`);
147
- // Continue with current version — don't re-exec, npx cache may be stale
174
+ stderr(`\n ${C.T}Updated!${C.R} Run ${C.W}balchemy${C.R} to use the new version.\n\n`);
148
175
  }
149
176
  else {
150
- process.stdout.write(`\n ${T}Updated!${R} Restarting...\n\n`);
177
+ stderr(`\n ${C.T}Updated!${C.R} Restarting...\n\n`);
151
178
  const { execFileSync } = await import("child_process");
152
179
  execFileSync("balchemy", process.argv.slice(2), { stdio: "inherit" });
153
180
  process.exit(0);
154
181
  }
155
182
  }
156
183
  catch {
157
- process.stdout.write(` ${D}Update failed. Continuing with ${current}.${R}\n\n`);
184
+ stderr(` ${C.D}Update failed. Continuing with ${CLI_VERSION}.${C.R}\n\n`);
158
185
  }
159
186
  }
160
187
  else {
161
- process.stdout.write(` ${D}Skipped.${R}\n\n`);
188
+ stderr(` ${C.D}Skipped.${C.R}\n\n`);
162
189
  }
163
190
  return true;
164
191
  }
@@ -168,11 +195,108 @@ async function checkForUpdate() {
168
195
  return false;
169
196
  }
170
197
  }
198
+ // ── Help & version ───────────────────────────────────────────────────────────
199
+ function printHelp() {
200
+ process.stdout.write(`
201
+ ${C.G}B${C.T}alchemy ${C.W}Agent CLI${C.R} ${C.D}v${CLI_VERSION}${C.R}
202
+ ${C.D}Deploy and manage autonomous AI trading agents.${C.R}
203
+
204
+ ${C.W}USAGE${C.R}
205
+ balchemy Resume saved agent or run setup wizard
206
+ balchemy init Force a fresh setup wizard
207
+ balchemy start [config] Start from an existing config file
208
+ balchemy docker [outDir] Generate Docker files for deployment
209
+ balchemy list List saved agents
210
+
211
+ ${C.W}FLAGS${C.R}
212
+ -h, --help Show this help
213
+ -v, --version Show version
214
+ --no-color Disable colored output
215
+
216
+ ${C.W}SHORTCUTS (in cockpit)${C.R}
217
+ Ctrl+S Open settings
218
+ Ctrl+L Clear chat
219
+ Ctrl+N Switch agent
220
+ Ctrl+Q Quit
221
+ PgUp / PgDn Scroll chat history
222
+
223
+ ${C.W}LINKS${C.R}
224
+ ${C.D}Platform${C.R} https://balchemy.ai
225
+ ${C.D}Docs${C.R} https://balchemy.ai/hub/docs
226
+ ${C.D}npm${C.R} https://www.npmjs.com/package/balchemy
227
+
228
+ `);
229
+ }
230
+ function printVersion() {
231
+ process.stdout.write(`balchemy ${CLI_VERSION}\n`);
232
+ }
233
+ // ── Typo suggestion ──────────────────────────────────────────────────────────
234
+ const KNOWN_COMMANDS = ["init", "start", "docker", "list"];
235
+ function levenshtein(a, b) {
236
+ const matrix = [];
237
+ for (let i = 0; i <= a.length; i++)
238
+ matrix[i] = [i];
239
+ for (let j = 0; j <= b.length; j++)
240
+ matrix[0][j] = j;
241
+ for (let i = 1; i <= a.length; i++) {
242
+ for (let j = 1; j <= b.length; j++) {
243
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
244
+ matrix[i][j] = Math.min(matrix[i - 1][j] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j - 1] + cost);
245
+ }
246
+ }
247
+ return matrix[a.length][b.length];
248
+ }
249
+ function suggestCommand(input) {
250
+ let best = null;
251
+ let bestDist = Infinity;
252
+ for (const cmd of KNOWN_COMMANDS) {
253
+ const dist = levenshtein(input.toLowerCase(), cmd);
254
+ if (dist < bestDist && dist <= 2) {
255
+ bestDist = dist;
256
+ best = cmd;
257
+ }
258
+ }
259
+ return best;
260
+ }
261
+ // ── List command ─────────────────────────────────────────────────────────────
262
+ function printAgentList() {
263
+ const agents = listAgents();
264
+ const active = loadAgent();
265
+ if (agents.length === 0) {
266
+ process.stdout.write(` ${C.D}No saved agents. Run ${C.W}balchemy${C.D} to create one.${C.R}\n`);
267
+ return;
268
+ }
269
+ process.stdout.write(`\n ${C.T}Saved agents${C.R} ${C.D}(${agents.length})${C.R}\n`);
270
+ process.stdout.write(` ${C.D}${"-".repeat(54)}${C.R}\n`);
271
+ for (const agent of agents) {
272
+ const isActive = active?.publicId === agent.publicId;
273
+ const marker = isActive ? `${C.OK}▸${C.R}` : ` `;
274
+ const id = compactValue(agent.publicId, 20, 8);
275
+ const endpoint = compactValue(agent.mcpEndpoint, 30, 10);
276
+ const model = agent.llmModel ?? "default";
277
+ const mode = agent.shadowMode ? `${C.G}shadow${C.R}` : `${C.OK}live${C.R}`;
278
+ process.stdout.write(` ${marker} ${C.W}${id}${C.R}\n`);
279
+ process.stdout.write(` ${C.D}Endpoint${C.R} ${endpoint}\n`);
280
+ process.stdout.write(` ${C.D}Model${C.R} ${model} ${mode}\n`);
281
+ process.stdout.write(` ${C.D}Created${C.R} ${agent.createdAt}\n`);
282
+ process.stdout.write(` ${C.D}${"-".repeat(54)}${C.R}\n`);
283
+ }
284
+ process.stdout.write("\n");
285
+ }
286
+ // ── Main ─────────────────────────────────────────────────────────────────────
171
287
  async function main() {
288
+ // Handle flags before anything else
289
+ if (flags.has("--help")) {
290
+ printHelp();
291
+ return;
292
+ }
293
+ if (flags.has("--version")) {
294
+ printVersion();
295
+ return;
296
+ }
172
297
  // Check for updates — if updated, the process re-execs and exits
173
298
  await checkForUpdate();
174
299
  switch (cmd) {
175
- case "--init":
176
300
  case "init": {
177
301
  // Force wizard — ignore cache
178
302
  await runWizardFromCwd();
@@ -218,6 +342,10 @@ async function main() {
218
342
  process.stdout.write(`Docker files written to ${outDir}\n`);
219
343
  break;
220
344
  }
345
+ case "list": {
346
+ printAgentList();
347
+ break;
348
+ }
221
349
  case undefined: {
222
350
  // Default: choose from saved agents or run wizard.
223
351
  const agents = listAgents();
@@ -227,8 +355,8 @@ async function main() {
227
355
  // Show last/active agent info and ask what to do.
228
356
  const { renderLogo } = await import("./terminal-logo.js");
229
357
  process.stdout.write(renderLogo(20));
230
- process.stdout.write(`\n ${G}B${T}alchemy ${W}Agent${R}\n`);
231
- process.stdout.write(` ${D}Saved agents ready${R}\n\n`);
358
+ process.stdout.write(`\n ${C.G}B${C.T}alchemy ${C.W}Agent${C.R}\n`);
359
+ process.stdout.write(` ${C.D}Saved agents ready${C.R}\n\n`);
232
360
  printSummaryBlock(active ? "Last session" : "Most recent session", [
233
361
  { label: "Agent", value: last.publicId },
234
362
  { label: "Endpoint", value: compactValue(last.mcpEndpoint, 42, 12) },
@@ -246,7 +374,7 @@ async function main() {
246
374
  process.stdout.write("\n");
247
375
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false });
248
376
  try {
249
- const choice = normalizeChoice(await ask(rl, `${W}Action?${R} (y${agents.length > 1 ? "/list" : ""}/new)`, "y"));
377
+ const choice = normalizeChoice(await ask(rl, `${C.W}Action?${C.R} (y${agents.length > 1 ? "/list" : ""}/new)`, "y"));
250
378
  if (choice === "y" || choice === "yes" || choice === "resume" || choice === "last") {
251
379
  await startSavedAgent(last);
252
380
  }
@@ -259,7 +387,7 @@ async function main() {
259
387
  && (choice === "list" || choice === "choose" || choice === "select" || choice === "agents")) {
260
388
  const selected = await chooseSavedAgent(rl, agents);
261
389
  if (!selected) {
262
- process.stdout.write(` ${D}No matching saved agent. Starting setup instead.${R}\n\n`);
390
+ stderr(` ${C.D}No matching saved agent. Starting setup instead.${C.R}\n\n`);
263
391
  await runWizardFromCwd();
264
392
  }
265
393
  else {
@@ -270,7 +398,7 @@ async function main() {
270
398
  await runWizardFromCwd();
271
399
  }
272
400
  else {
273
- process.stdout.write(` ${D}Unknown action. Starting setup instead.${R}\n\n`);
401
+ stderr(` ${C.D}Unknown action. Starting setup instead.${C.R}\n\n`);
274
402
  await runWizardFromCwd();
275
403
  }
276
404
  }
@@ -285,20 +413,19 @@ async function main() {
285
413
  break;
286
414
  }
287
415
  default: {
288
- process.stdout.write(`${T}Balchemy Agent CLI${R}\n\n`);
289
- printSummaryBlock("Commands", [
290
- { label: "balchemy", value: "Resume/select an agent or run setup" },
291
- { label: "balchemy init", value: "Force a fresh setup wizard" },
292
- { label: "balchemy start [config]", value: "Start from an existing config file" },
293
- { label: "balchemy docker [outDir]", value: "Generate Docker files for deployment" },
294
- ]);
295
- process.stdout.write("\n");
296
- break;
416
+ const suggestion = suggestCommand(cmd);
417
+ stderr(` ${C.ERR}Unknown command:${C.R} ${cmd}\n`);
418
+ if (suggestion) {
419
+ stderr(` ${C.D}Did you mean${C.R} ${C.W}balchemy ${suggestion}${C.R}${C.D}?${C.R}\n`);
420
+ }
421
+ stderr(` ${C.D}Run${C.R} ${C.W}balchemy --help${C.R} ${C.D}for available commands.${C.R}\n\n`);
422
+ process.exit(1);
297
423
  }
298
424
  }
299
425
  }
300
426
  main().catch((err) => {
301
- process.stderr.write(`Error: ${err instanceof Error ? err.message : String(err)}\n`);
427
+ stderr(`${C.ERR}Error:${C.R} ${err instanceof Error ? err.message : String(err)}\n`);
428
+ stderr(`${C.D}Run${C.R} ${C.W}balchemy --help${C.R} ${C.D}for usage information.${C.R}\n`);
302
429
  process.exit(1);
303
430
  });
304
431
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,EAAE,AAAD,EAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAExC,MAAM,CAAC,GAAG,sBAAsB,CAAC;AACjC,MAAM,CAAC,GAAG,sBAAsB,CAAC;AACjC,MAAM,CAAC,GAAG,YAAY,CAAC;AACvB,MAAM,CAAC,GAAG,gBAAgB,CAAC;AAC3B,MAAM,CAAC,GAAG,SAAS,CAAC;AAEpB,SAAS,iBAAiB,CAAC,KAAa,EAAE,IAA6C;IACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,GAAG,CAAC,EAAsB,EAAE,QAAgB,EAAE,UAAU,GAAG,EAAE;IACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YACvD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC;IACtD,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAkB;IAC/C,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,QAAQ,CAAC;QACb,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,qBAAqB,EAAE,KAAK;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,EAAsB,EACtB,MAAqB;IAErB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QACxB,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;KAC5F,CAAC,CAAC,CAAC;IACJ,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,kCAAkC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACpE,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,OAAe;IACrD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;QAAE,OAAO,MAAM,KAAK,OAAO,CAAC;IAC7D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1D,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,4CAA4C,EAAE;YACpE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAE5B,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CACxE,CAAC;YAEF,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACvG,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC/D,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;gBACnE,0DAA0D;gBAC1D,MAAM,KAAK,GAAG,OAAO,CACnB,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CACnC,CAAC;gBAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;gBACnD,IAAI,CAAC;oBACH,QAAQ,CAAC,2BAA2B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBACpE,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;wBAC9F,wEAAwE;oBAC1E,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;wBAC/D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;wBACvD,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;wBACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,iEAAiE;IACjE,MAAM,cAAc,EAAE,CAAC;IAEvB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,8BAA8B;YAC9B,MAAM,gBAAgB,EAAE,CAAC;YACzB,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;YACD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;YAClF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACpD,MAAM,QAAQ,CAAC;gBACb,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ;gBACR,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,KAAK;gBACjB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,qBAAqB,EAAE,KAAK;aAC7B,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACxC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,IAAI,CAAC,CAAC;YAC5D,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,mDAAmD;YACnD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YAE/C,IAAI,IAAI,EAAE,CAAC;gBACT,kDAAkD;gBAClD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBACzD,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qBAAqB,EAAE;oBACjE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;oBACxC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;oBACpE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE;oBACrD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE;oBAChE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE;oBAC7D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;iBAC1C,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG;oBACd,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE;oBAC1C,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtF,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oDAAoD,EAAE;iBAC9E,CAAC;gBACF,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;gBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE3B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvG,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,CACtC,EAAE,EACF,GAAG,CAAC,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAC5D,GAAG,CACJ,CAAC,CAAC;oBAEH,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBACnF,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;yBAAM,IACL,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;2BAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;2BACnB,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAClC,CAAC;wBACD,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;oBACrD,CAAC;yBAAM,IACL,MAAM,CAAC,MAAM,GAAG,CAAC;2BACd,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC,EAC3F,CAAC;wBACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;wBACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,MAAM,CAAC,CAAC;4BACvF,MAAM,gBAAgB,EAAE,CAAC;wBAC3B,CAAC;6BAAM,CAAC;4BACN,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;yBAAM,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;wBAC9C,MAAM,gBAAgB,EAAE,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,MAAM,CAAC,CAAC;wBAC9E,MAAM,gBAAgB,EAAE,CAAC;oBAC3B,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,EAAE,CAAC,KAAK,EAAE,CAAC;gBACb,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,+BAA+B;gBAC/B,MAAM,gBAAgB,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM;QACR,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACvD,iBAAiB,CAAC,UAAU,EAAE;gBAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,qCAAqC,EAAE;gBACnE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,4BAA4B,EAAE;gBAC/D,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,oCAAoC,EAAE;gBACjF,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,sCAAsC,EAAE;aACrF,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-logo.d.ts","sourceRoot":"","sources":["../src/terminal-logo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkFH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,SAAS,SAAK,GAAG,MAAM,CAsBjD"}
1
+ {"version":3,"file":"terminal-logo.d.ts","sourceRoot":"","sources":["../src/terminal-logo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2EH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,SAAS,SAAK,GAAG,MAAM,CAsBjD"}
@@ -8,22 +8,17 @@
8
8
  import * as fs from "fs";
9
9
  import * as path from "path";
10
10
  import { fileURLToPath } from "url";
11
+ import { C } from "./colors.js";
11
12
  const __filename_esm = fileURLToPath(import.meta.url);
12
13
  const __dirname_esm = path.dirname(__filename_esm);
13
- // ── Brand colors ──────────────────────────────────────────────────────────────
14
- const T = "\x1b[38;2;0;172;176m"; // teal
15
- const DT = "\x1b[38;2;0;120;124m"; // dark teal
16
- const G = "\x1b[38;2;186;115;6m"; // gold
17
- const R = "\x1b[0m"; // reset
18
14
  // ── ANSI fallback logo ────────────────────────────────────────────────────────
19
- const D = "\x1b[38;5;245m"; // dim gray
20
- const ANSI_LOGO = [
15
+ const ANSI_LOGO_LINES = [
21
16
  ``,
22
- ` ${G}B${T}ALCHEMY${R} ${D}AGENT CLI${R}`,
23
- ` ${D}calm control for live autonomous trading${R}`,
24
- ` ${DT}${"-".repeat(52)}${R}`,
17
+ ` ${C.G}B${C.T}ALCHEMY${C.R} ${C.D}AGENT CLI${C.R}`,
18
+ ` ${C.D}calm control for live autonomous trading${C.R}`,
19
+ ` ${C.DT}${"-".repeat(52)}${C.R}`,
25
20
  ``,
26
- ].join("\n");
21
+ ];
27
22
  function detectProtocol() {
28
23
  const term = process.env.TERM_PROGRAM ?? "";
29
24
  const termInfo = process.env.TERM ?? "";
@@ -69,12 +64,12 @@ function renderKitty(image, widthCols) {
69
64
  export function renderLogo(widthCols = 20) {
70
65
  const protocol = detectProtocol();
71
66
  if (protocol === "none") {
72
- return ANSI_LOGO;
67
+ return ANSI_LOGO_LINES.join("\n");
73
68
  }
74
69
  // Try to load the bundled image
75
70
  const image = loadBundledImage();
76
71
  if (!image) {
77
- return ANSI_LOGO;
72
+ return ANSI_LOGO_LINES.join("\n");
78
73
  }
79
74
  if (protocol === "iterm2") {
80
75
  return "\n" + renderIterm2(image, widthCols) + "\n";
@@ -82,7 +77,7 @@ export function renderLogo(widthCols = 20) {
82
77
  if (protocol === "kitty") {
83
78
  return "\n" + renderKitty(image, widthCols) + "\n";
84
79
  }
85
- return ANSI_LOGO;
80
+ return ANSI_LOGO_LINES.join("\n");
86
81
  }
87
82
  function loadBundledImage() {
88
83
  const candidates = [