httpcat-cli 0.3.0 → 0.3.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 (322) hide show
  1. package/.github/workflows/ci.yml +3 -0
  2. package/.github/workflows/rc-publish.yml +6 -0
  3. package/.github/workflows/release.yml +102 -0
  4. package/.github/workflows/sync-version.yml +31 -2
  5. package/README.md +1408 -109
  6. package/additions.txt +3 -0
  7. package/bun.lock +260 -25
  8. package/dist/agent/autonomous-trader.d.ts.map +1 -0
  9. package/dist/agent/autonomous-trader.js +362 -0
  10. package/dist/agent/autonomous-trader.js.map +1 -0
  11. package/dist/agent/ax-agent.d.ts.map +1 -1
  12. package/dist/agent/ax-agent.js +356 -18
  13. package/dist/agent/ax-agent.js.map +1 -1
  14. package/dist/agent/event-client.d.ts.map +1 -0
  15. package/dist/agent/event-client.js +82 -0
  16. package/dist/agent/event-client.js.map +1 -0
  17. package/dist/agent/log-stream.d.ts.map +1 -0
  18. package/dist/agent/log-stream.js +95 -0
  19. package/dist/agent/log-stream.js.map +1 -0
  20. package/dist/agent/memory/conversation-session.d.ts.map +1 -0
  21. package/dist/agent/memory/conversation-session.js +232 -0
  22. package/dist/agent/memory/conversation-session.js.map +1 -0
  23. package/dist/agent/memory/conversation-store.d.ts.map +1 -0
  24. package/dist/agent/memory/conversation-store.js +214 -0
  25. package/dist/agent/memory/conversation-store.js.map +1 -0
  26. package/dist/agent/memory/database-schema.d.ts.map +1 -0
  27. package/dist/agent/memory/database-schema.js +355 -0
  28. package/dist/agent/memory/database-schema.js.map +1 -0
  29. package/dist/agent/memory/decision-tracker.d.ts.map +1 -0
  30. package/dist/agent/memory/decision-tracker.js +274 -0
  31. package/dist/agent/memory/decision-tracker.js.map +1 -0
  32. package/dist/agent/memory/memory-manager.d.ts.map +1 -0
  33. package/dist/agent/memory/memory-manager.js +187 -0
  34. package/dist/agent/memory/memory-manager.js.map +1 -0
  35. package/dist/agent/memory/types.d.ts.map +1 -0
  36. package/dist/agent/memory/types.js +5 -0
  37. package/dist/agent/memory/types.js.map +1 -0
  38. package/dist/agent/message-formatter.d.ts.map +1 -0
  39. package/dist/agent/message-formatter.js +76 -0
  40. package/dist/agent/message-formatter.js.map +1 -0
  41. package/dist/agent/position-db.d.ts.map +1 -0
  42. package/dist/agent/position-db.js +154 -0
  43. package/dist/agent/position-db.js.map +1 -0
  44. package/dist/agent/simple-chat-ui-static.d.ts.map +1 -0
  45. package/dist/agent/simple-chat-ui-static.js +129 -0
  46. package/dist/agent/simple-chat-ui-static.js.map +1 -0
  47. package/dist/agent/simple-chat-ui.d.ts.map +1 -0
  48. package/dist/agent/simple-chat-ui.js +90 -0
  49. package/dist/agent/simple-chat-ui.js.map +1 -0
  50. package/dist/agent/tools.d.ts.map +1 -1
  51. package/dist/agent/tools.js +297 -4
  52. package/dist/agent/tools.js.map +1 -1
  53. package/dist/agent/ui.d.ts.map +1 -0
  54. package/dist/agent/ui.js +84 -0
  55. package/dist/agent/ui.js.map +1 -0
  56. package/dist/agent/unified-runtime.d.ts.map +1 -0
  57. package/dist/agent/unified-runtime.js +397 -0
  58. package/dist/agent/unified-runtime.js.map +1 -0
  59. package/dist/client.d.ts.map +1 -1
  60. package/dist/client.js +272 -21
  61. package/dist/client.js.map +1 -1
  62. package/dist/commands/account.d.ts.map +1 -1
  63. package/dist/commands/account.js +187 -33
  64. package/dist/commands/account.js.map +1 -1
  65. package/dist/commands/agent.d.ts.map +1 -0
  66. package/dist/commands/agent.js +125 -0
  67. package/dist/commands/agent.js.map +1 -0
  68. package/dist/commands/approve.d.ts.map +1 -0
  69. package/dist/commands/approve.js +505 -0
  70. package/dist/commands/approve.js.map +1 -0
  71. package/dist/commands/automation.d.ts.map +1 -0
  72. package/dist/commands/automation.js +346 -0
  73. package/dist/commands/automation.js.map +1 -0
  74. package/dist/commands/balances.d.ts.map +1 -1
  75. package/dist/commands/balances.js +226 -73
  76. package/dist/commands/balances.js.map +1 -1
  77. package/dist/commands/buy.d.ts.map +1 -1
  78. package/dist/commands/buy.js +149 -146
  79. package/dist/commands/buy.js.map +1 -1
  80. package/dist/commands/call.d.ts.map +1 -0
  81. package/dist/commands/call.js +51 -0
  82. package/dist/commands/call.js.map +1 -0
  83. package/dist/commands/cex.d.ts.map +1 -0
  84. package/dist/commands/cex.js +958 -0
  85. package/dist/commands/cex.js.map +1 -0
  86. package/dist/commands/chat.d.ts.map +1 -1
  87. package/dist/commands/chat.js +169 -411
  88. package/dist/commands/chat.js.map +1 -1
  89. package/dist/commands/claim.d.ts.map +1 -1
  90. package/dist/commands/claim.js +313 -29
  91. package/dist/commands/claim.js.map +1 -1
  92. package/dist/commands/create.d.ts.map +1 -1
  93. package/dist/commands/create.js +151 -43
  94. package/dist/commands/create.js.map +1 -1
  95. package/dist/commands/gasless-swap.d.ts.map +1 -0
  96. package/dist/commands/gasless-swap.js +232 -0
  97. package/dist/commands/gasless-swap.js.map +1 -0
  98. package/dist/commands/health.d.ts.map +1 -1
  99. package/dist/commands/health.js +63 -7
  100. package/dist/commands/health.js.map +1 -1
  101. package/dist/commands/info.d.ts.map +1 -1
  102. package/dist/commands/info.js +131 -47
  103. package/dist/commands/info.js.map +1 -1
  104. package/dist/commands/launchpad.d.ts.map +1 -0
  105. package/dist/commands/launchpad.js +708 -0
  106. package/dist/commands/launchpad.js.map +1 -0
  107. package/dist/commands/list.d.ts.map +1 -1
  108. package/dist/commands/list.js +57 -23
  109. package/dist/commands/list.js.map +1 -1
  110. package/dist/commands/market.d.ts.map +1 -0
  111. package/dist/commands/market.js +960 -0
  112. package/dist/commands/market.js.map +1 -0
  113. package/dist/commands/mcp-install.d.ts.map +1 -0
  114. package/dist/commands/mcp-install.js +387 -0
  115. package/dist/commands/mcp-install.js.map +1 -0
  116. package/dist/commands/opps.d.ts.map +1 -0
  117. package/dist/commands/opps.js +409 -0
  118. package/dist/commands/opps.js.map +1 -0
  119. package/dist/commands/perps.d.ts.map +1 -0
  120. package/dist/commands/perps.js +248 -0
  121. package/dist/commands/perps.js.map +1 -0
  122. package/dist/commands/portfolio.d.ts.map +1 -0
  123. package/dist/commands/portfolio.js +679 -0
  124. package/dist/commands/portfolio.js.map +1 -0
  125. package/dist/commands/positions.d.ts.map +1 -1
  126. package/dist/commands/positions.js +76 -47
  127. package/dist/commands/positions.js.map +1 -1
  128. package/dist/commands/predict.d.ts.map +1 -0
  129. package/dist/commands/predict.js +280 -0
  130. package/dist/commands/predict.js.map +1 -0
  131. package/dist/commands/predictions.d.ts.map +1 -0
  132. package/dist/commands/predictions.js +486 -0
  133. package/dist/commands/predictions.js.map +1 -0
  134. package/dist/commands/risk.d.ts.map +1 -0
  135. package/dist/commands/risk.js +225 -0
  136. package/dist/commands/risk.js.map +1 -0
  137. package/dist/commands/security.d.ts.map +1 -0
  138. package/dist/commands/security.js +244 -0
  139. package/dist/commands/security.js.map +1 -0
  140. package/dist/commands/sell.d.ts.map +1 -1
  141. package/dist/commands/sell.js +67 -34
  142. package/dist/commands/sell.js.map +1 -1
  143. package/dist/commands/send.d.ts.map +1 -0
  144. package/dist/commands/send.js +733 -0
  145. package/dist/commands/send.js.map +1 -0
  146. package/dist/commands/sign.d.ts.map +1 -0
  147. package/dist/commands/sign.js +1048 -0
  148. package/dist/commands/sign.js.map +1 -0
  149. package/dist/commands/swap.d.ts.map +1 -0
  150. package/dist/commands/swap.js +744 -0
  151. package/dist/commands/swap.js.map +1 -0
  152. package/dist/commands/system.d.ts.map +1 -0
  153. package/dist/commands/system.js +417 -0
  154. package/dist/commands/system.js.map +1 -0
  155. package/dist/commands/tools/index.d.ts.map +1 -0
  156. package/dist/commands/tools/index.js +2040 -0
  157. package/dist/commands/tools/index.js.map +1 -0
  158. package/dist/commands/trade.d.ts.map +1 -0
  159. package/dist/commands/trade.js +237 -0
  160. package/dist/commands/trade.js.map +1 -0
  161. package/dist/commands/transactions.d.ts.map +1 -1
  162. package/dist/commands/transactions.js +29 -17
  163. package/dist/commands/transactions.js.map +1 -1
  164. package/dist/commands/update.d.ts.map +1 -0
  165. package/dist/commands/update.js +429 -0
  166. package/dist/commands/update.js.map +1 -0
  167. package/dist/config.d.ts.map +1 -1
  168. package/dist/config.js +351 -40
  169. package/dist/config.js.map +1 -1
  170. package/dist/index.js +4524 -924
  171. package/dist/index.js.map +1 -1
  172. package/dist/interactive/art.d.ts.map +1 -1
  173. package/dist/interactive/art.js +33 -1
  174. package/dist/interactive/art.js.map +1 -1
  175. package/dist/interactive/shell.d.ts.map +1 -1
  176. package/dist/interactive/shell.js +467 -2652
  177. package/dist/interactive/shell.js.map +1 -1
  178. package/dist/mcp/context.d.ts.map +1 -0
  179. package/dist/mcp/context.js +211 -0
  180. package/dist/mcp/context.js.map +1 -0
  181. package/dist/mcp/onboarding.d.ts.map +1 -0
  182. package/dist/mcp/onboarding.js +266 -0
  183. package/dist/mcp/onboarding.js.map +1 -0
  184. package/dist/mcp/resources.d.ts.map +1 -0
  185. package/dist/mcp/resources.js +222 -0
  186. package/dist/mcp/resources.js.map +1 -0
  187. package/dist/mcp/server.d.ts.map +1 -1
  188. package/dist/mcp/server.js +51 -1
  189. package/dist/mcp/server.js.map +1 -1
  190. package/dist/mcp/tools.d.ts.map +1 -1
  191. package/dist/mcp/tools.js +4119 -169
  192. package/dist/mcp/tools.js.map +1 -1
  193. package/dist/mcp/types.d.ts.map +1 -1
  194. package/dist/types/agent-info.d.ts.map +1 -0
  195. package/dist/types/agent-info.js +11 -0
  196. package/dist/types/agent-info.js.map +1 -0
  197. package/dist/ui/components/ScrollableList.d.ts.map +1 -0
  198. package/dist/ui/components/ScrollableList.js +72 -0
  199. package/dist/ui/components/ScrollableList.js.map +1 -0
  200. package/dist/ui/components/ThemeProvider.d.ts.map +1 -0
  201. package/dist/ui/components/ThemeProvider.js +87 -0
  202. package/dist/ui/components/ThemeProvider.js.map +1 -0
  203. package/dist/ui/components/ThemedBox.d.ts.map +1 -0
  204. package/dist/ui/components/ThemedBox.js +24 -0
  205. package/dist/ui/components/ThemedBox.js.map +1 -0
  206. package/dist/ui/components/agent/ChatHeader.d.ts.map +1 -0
  207. package/dist/ui/components/agent/ChatHeader.js +39 -0
  208. package/dist/ui/components/agent/ChatHeader.js.map +1 -0
  209. package/dist/ui/components/agent/Header.d.ts.map +1 -0
  210. package/dist/ui/components/agent/Header.js +14 -0
  211. package/dist/ui/components/agent/Header.js.map +1 -0
  212. package/dist/ui/components/agent/Input.d.ts.map +1 -0
  213. package/dist/ui/components/agent/Input.js +23 -0
  214. package/dist/ui/components/agent/Input.js.map +1 -0
  215. package/dist/ui/components/agent/Output.d.ts.map +1 -0
  216. package/dist/ui/components/agent/Output.js +23 -0
  217. package/dist/ui/components/agent/Output.js.map +1 -0
  218. package/dist/ui/components/chat/TokenChatUI.d.ts.map +1 -0
  219. package/dist/ui/components/chat/TokenChatUI.js +133 -0
  220. package/dist/ui/components/chat/TokenChatUI.js.map +1 -0
  221. package/dist/ui/components/shell/ShellHeader.d.ts.map +1 -0
  222. package/dist/ui/components/shell/ShellHeader.js +31 -0
  223. package/dist/ui/components/shell/ShellHeader.js.map +1 -0
  224. package/dist/ui/components/shell/ShellInput.d.ts.map +1 -0
  225. package/dist/ui/components/shell/ShellInput.js +151 -0
  226. package/dist/ui/components/shell/ShellInput.js.map +1 -0
  227. package/dist/ui/components/shell/ShellOutput.d.ts.map +1 -0
  228. package/dist/ui/components/shell/ShellOutput.js +8 -0
  229. package/dist/ui/components/shell/ShellOutput.js.map +1 -0
  230. package/dist/ui/hooks/useChatWebSocket.d.ts.map +1 -0
  231. package/dist/ui/hooks/useChatWebSocket.js +76 -0
  232. package/dist/ui/hooks/useChatWebSocket.js.map +1 -0
  233. package/dist/ui/hooks/useCommandHistory.d.ts.map +1 -0
  234. package/dist/ui/hooks/useCommandHistory.js +70 -0
  235. package/dist/ui/hooks/useCommandHistory.js.map +1 -0
  236. package/dist/ui/hooks/useDebounce.d.ts.map +1 -0
  237. package/dist/ui/hooks/useDebounce.js +17 -0
  238. package/dist/ui/hooks/useDebounce.js.map +1 -0
  239. package/dist/ui/hooks/useLogStream.d.ts.map +1 -0
  240. package/dist/ui/hooks/useLogStream.js +20 -0
  241. package/dist/ui/hooks/useLogStream.js.map +1 -0
  242. package/dist/ui/hooks/useVirtualScroll.d.ts.map +1 -0
  243. package/dist/ui/hooks/useVirtualScroll.js +70 -0
  244. package/dist/ui/hooks/useVirtualScroll.js.map +1 -0
  245. package/dist/utils/admin.d.ts.map +1 -0
  246. package/dist/utils/admin.js +144 -0
  247. package/dist/utils/admin.js.map +1 -0
  248. package/dist/utils/autoSetup.d.ts.map +1 -0
  249. package/dist/utils/autoSetup.js +252 -0
  250. package/dist/utils/autoSetup.js.map +1 -0
  251. package/dist/utils/build-constants.d.ts.map +1 -0
  252. package/dist/utils/build-constants.js +10 -0
  253. package/dist/utils/build-constants.js.map +1 -0
  254. package/dist/utils/constants.d.ts.map +1 -1
  255. package/dist/utils/errors.d.ts.map +1 -1
  256. package/dist/utils/errors.js +10 -1
  257. package/dist/utils/errors.js.map +1 -1
  258. package/dist/utils/formatting.d.ts.map +1 -1
  259. package/dist/utils/formatting.js +46 -9
  260. package/dist/utils/formatting.js.map +1 -1
  261. package/dist/utils/llm-cli-config.d.ts.map +1 -0
  262. package/dist/utils/llm-cli-config.js +963 -0
  263. package/dist/utils/llm-cli-config.js.map +1 -0
  264. package/dist/utils/llm-cli-detector.d.ts.map +1 -0
  265. package/dist/utils/llm-cli-detector.js +202 -0
  266. package/dist/utils/llm-cli-detector.js.map +1 -0
  267. package/dist/utils/loading.d.ts.map +1 -1
  268. package/dist/utils/loading.js +25 -3
  269. package/dist/utils/loading.js.map +1 -1
  270. package/dist/utils/maintenance.d.ts.map +1 -0
  271. package/dist/utils/maintenance.js +17 -0
  272. package/dist/utils/maintenance.js.map +1 -0
  273. package/dist/utils/mcp-config.d.ts.map +1 -0
  274. package/dist/utils/mcp-config.js +77 -0
  275. package/dist/utils/mcp-config.js.map +1 -0
  276. package/dist/utils/privateKeyPrompt.d.ts.map +1 -1
  277. package/dist/utils/privateKeyPrompt.js +308 -129
  278. package/dist/utils/privateKeyPrompt.js.map +1 -1
  279. package/dist/utils/process-cleanup.d.ts.map +1 -0
  280. package/dist/utils/process-cleanup.js +136 -0
  281. package/dist/utils/process-cleanup.js.map +1 -0
  282. package/dist/utils/retry.d.ts.map +1 -0
  283. package/dist/utils/retry.js +56 -0
  284. package/dist/utils/retry.js.map +1 -0
  285. package/dist/utils/rpc-helpers.d.ts.map +1 -0
  286. package/dist/utils/rpc-helpers.js +70 -0
  287. package/dist/utils/rpc-helpers.js.map +1 -0
  288. package/dist/utils/rpc-transport.d.ts.map +1 -0
  289. package/dist/utils/rpc-transport.js +87 -0
  290. package/dist/utils/rpc-transport.js.map +1 -0
  291. package/dist/utils/shell-setup.d.ts.map +1 -0
  292. package/dist/utils/shell-setup.js +531 -0
  293. package/dist/utils/shell-setup.js.map +1 -0
  294. package/dist/utils/status.d.ts.map +1 -1
  295. package/dist/utils/status.js +34 -5
  296. package/dist/utils/status.js.map +1 -1
  297. package/dist/utils/token-resolver.d.ts.map +1 -1
  298. package/dist/utils/token-resolver.js +51 -8
  299. package/dist/utils/token-resolver.js.map +1 -1
  300. package/dist/utils/x402-caller.d.ts.map +1 -0
  301. package/dist/utils/x402-caller.js +17 -0
  302. package/dist/utils/x402-caller.js.map +1 -0
  303. package/docs/README.md +28 -0
  304. package/docs/agent/README.md +18 -0
  305. package/docs/api/README.md +41 -0
  306. package/docs/cli/README.md +42 -0
  307. package/docs/guides/README.md +26 -0
  308. package/docs/implementation/README.md +18 -0
  309. package/docs/planning/README.md +19 -0
  310. package/docs/testing/README.md +15 -0
  311. package/docs/ux/README.md +16 -0
  312. package/issues.txt +2 -0
  313. package/package.json +24 -9
  314. package/scripts/cat-spin.sh +417 -0
  315. package/scripts/deprecate-rc-versions.js +58 -0
  316. package/scripts/inject-build-constants.js +43 -0
  317. package/scripts/monitor-foobar.js +117 -0
  318. package/swap.logs +61 -0
  319. package/swapping.txt +108 -0
  320. package/test.txt +12 -0
  321. package/tests/fixtures/test-data.json +16 -0
  322. package/Screenshot 2025-12-21 at 8.56.02/342/200/257PM.png +0 -0
@@ -0,0 +1,397 @@
1
+ /**
2
+ * Unified Agent Runtime
3
+ * Orchestrates both autonomous and chat modes with shared log stream
4
+ */
5
+ import { AutonomousTradingAgent } from "./autonomous-trader.js";
6
+ import { LogStream } from "./log-stream.js";
7
+ import { createAgentUI } from "./ui.js";
8
+ import { createSimpleChatUI } from "./simple-chat-ui-static.js";
9
+ import { createHttpcatAgent, chatWithAgent } from "./ax-agent.js";
10
+ import { createLLM } from "./llm-factory.js";
11
+ import { config } from "../config.js";
12
+ import { privateKeyToAccount } from "viem/accounts";
13
+ import { PositionDatabase } from "./position-db.js";
14
+ import { MemoryManager } from "./memory/memory-manager.js";
15
+ import { homedir } from "os";
16
+ import { join } from "path";
17
+ import readline from "readline";
18
+ import chalk from "chalk";
19
+ export class UnifiedAgentRuntime {
20
+ client;
21
+ logStream;
22
+ autonomousTrader;
23
+ agent; // ax agent
24
+ llm;
25
+ memory;
26
+ db;
27
+ ui;
28
+ isAutonomous = false;
29
+ isChatEnabled = false;
30
+ running = false;
31
+ sessionId;
32
+ shutdownInProgress = false;
33
+ constructor(client, chatEnabled = false) {
34
+ this.client = client;
35
+ this.isChatEnabled = chatEnabled;
36
+ // Get session ID from wallet address
37
+ const account = privateKeyToAccount(config.getPrivateKey());
38
+ this.sessionId = account.address;
39
+ // Initialize log stream
40
+ this.logStream = new LogStream();
41
+ // Get config
42
+ const agentConfig = config.get("agentConfig") || {};
43
+ const dbPath = agentConfig.dbPath || join(homedir(), ".config", "httpcat", "agent.db");
44
+ // Initialize database and memory
45
+ this.db = new PositionDatabase(dbPath);
46
+ this.memory = new MemoryManager(this.db.getDatabase());
47
+ // Initialize AI
48
+ const aiConfig = config.get("aiAgent");
49
+ if (!aiConfig || !aiConfig.apiKey) {
50
+ throw new Error("AI agent not configured. Run: httpcat agent setup");
51
+ }
52
+ this.llm = createLLM(aiConfig, aiConfig.apiKey);
53
+ this.agent = createHttpcatAgent(client, this.llm);
54
+ // Initialize autonomous trader with log stream
55
+ this.autonomousTrader = new AutonomousTradingAgent(client, this.logStream);
56
+ }
57
+ /**
58
+ * Start the unified runtime
59
+ */
60
+ async start() {
61
+ if (this.running) {
62
+ throw new Error("Runtime is already running");
63
+ }
64
+ this.running = true;
65
+ // Create UI - use simple chat UI for chat mode, complex UI for read-only
66
+ if (this.isChatEnabled) {
67
+ // Get network and account info for header
68
+ const network = this.client.getNetwork();
69
+ const account = privateKeyToAccount(config.getPrivateKey());
70
+ // Get balances - fetch in background to avoid blocking UI
71
+ let ethBalance = '0.00 ETH';
72
+ let usdcBalance = '$0.00';
73
+ // Create UI with blank chat (no conversation history)
74
+ const chatUI = createSimpleChatUI((text) => this.handleUserInput(text), () => this.promptGracefulShutdown(), [], // Start with blank chat
75
+ {
76
+ network,
77
+ account: account.address,
78
+ ethBalance,
79
+ usdcBalance,
80
+ agentStatus: 'Chat Mode'
81
+ });
82
+ this.ui = chatUI;
83
+ // Fetch balances in background and update header when ready
84
+ (async () => {
85
+ try {
86
+ const { checkBalance } = await import('../commands/balances.js');
87
+ const balanceInfo = await checkBalance(config.getPrivateKey(), true);
88
+ const ethBalanceUpdated = `${parseFloat(balanceInfo.ethFormatted).toFixed(4)} ETH`;
89
+ const usdcBalanceUpdated = `$${parseFloat(balanceInfo.usdcFormatted).toFixed(2)}`;
90
+ // Update header with actual balances
91
+ chatUI.updateHeader({
92
+ ethBalance: ethBalanceUpdated,
93
+ usdcBalance: usdcBalanceUpdated
94
+ });
95
+ // Log balance info to chat
96
+ this.logStream.log(`💰 Balances updated: ${ethBalanceUpdated} | ${usdcBalanceUpdated}`, "system");
97
+ }
98
+ catch (error) {
99
+ // Silently fail if balance fetch fails
100
+ }
101
+ })();
102
+ // Subscribe to log stream and forward to simple chat UI
103
+ this.logStream.subscribe((message) => {
104
+ // Handle removal actions
105
+ if (message.metadata?.action === 'remove-last') {
106
+ chatUI.log('__REMOVE_LAST__');
107
+ }
108
+ else {
109
+ const formatted = this.formatLogMessage(message);
110
+ chatUI.log(formatted);
111
+ }
112
+ });
113
+ // Display log stream history (autonomous trader events, etc.)
114
+ const history = this.logStream.getHistory();
115
+ history.forEach((message) => {
116
+ const formatted = this.formatLogMessage(message);
117
+ chatUI.log(formatted);
118
+ });
119
+ }
120
+ else {
121
+ // Complex UI for read-only mode
122
+ this.ui = createAgentUI(this.logStream, false, undefined, () => this.promptGracefulShutdown());
123
+ // Update header for read-only mode
124
+ this.updateHeader();
125
+ }
126
+ // Start autonomous trader
127
+ this.isAutonomous = true;
128
+ await this.autonomousTrader.start();
129
+ // Handle graceful shutdown
130
+ this.setupGracefulShutdown();
131
+ // If chat mode, wait for user input
132
+ if (this.isChatEnabled) {
133
+ this.logStream.log(chalk.magenta.bold("🐱 Chat mode enabled. Type your message and press Enter."), "system");
134
+ this.logStream.log(chalk.dim("Type '/exit' to quit (you'll be asked if you want to keep the agent running)."), "system");
135
+ }
136
+ else {
137
+ this.logStream.log(chalk.cyan("Read-only mode - Run 'httpcat agent chat' to speak with your agent"), "system");
138
+ }
139
+ }
140
+ /**
141
+ * Stop the runtime
142
+ */
143
+ async stop() {
144
+ if (!this.running) {
145
+ return;
146
+ }
147
+ this.running = false;
148
+ await this.autonomousTrader.stop();
149
+ this.db.close();
150
+ if (this.ui) {
151
+ this.ui.destroy();
152
+ }
153
+ }
154
+ /**
155
+ * Enable chat mode (if not already enabled)
156
+ */
157
+ enableChatMode() {
158
+ if (this.isChatEnabled) {
159
+ return;
160
+ }
161
+ this.isChatEnabled = true;
162
+ // Recreate UI with chat enabled
163
+ if (this.ui) {
164
+ this.ui.destroy();
165
+ }
166
+ // Get network and account info for header
167
+ const network = this.client.getNetwork();
168
+ const account = privateKeyToAccount(config.getPrivateKey());
169
+ // Get balances - fetch in background to avoid blocking UI
170
+ let ethBalance = '0.00 ETH';
171
+ let usdcBalance = '$0.00';
172
+ // Create UI with blank chat (no conversation history)
173
+ const chatUI = createSimpleChatUI((text) => this.handleUserInput(text), () => this.promptGracefulShutdown(), [], // Start with blank chat
174
+ {
175
+ network,
176
+ account: account.address,
177
+ ethBalance,
178
+ usdcBalance,
179
+ agentStatus: 'Chat Mode'
180
+ });
181
+ this.ui = chatUI;
182
+ // Fetch balances in background and update header when ready
183
+ (async () => {
184
+ try {
185
+ const { checkBalance } = await import('../commands/balances.js');
186
+ const balanceInfo = await checkBalance(config.getPrivateKey(), true);
187
+ const ethBalanceUpdated = `${parseFloat(balanceInfo.ethFormatted).toFixed(4)} ETH`;
188
+ const usdcBalanceUpdated = `$${parseFloat(balanceInfo.usdcFormatted).toFixed(2)}`;
189
+ // Update header with actual balances
190
+ chatUI.updateHeader({
191
+ ethBalance: ethBalanceUpdated,
192
+ usdcBalance: usdcBalanceUpdated
193
+ });
194
+ // Log balance info to chat
195
+ this.logStream.log(`💰 Balances updated: ${ethBalanceUpdated} | ${usdcBalanceUpdated}`, "system");
196
+ }
197
+ catch (error) {
198
+ // Silently fail if balance fetch fails
199
+ }
200
+ })();
201
+ // Subscribe to log stream
202
+ this.logStream.subscribe((message) => {
203
+ // Handle removal actions
204
+ if (message.metadata?.action === 'remove-last') {
205
+ chatUI.log('__REMOVE_LAST__');
206
+ }
207
+ else {
208
+ const formatted = this.formatLogMessage(message);
209
+ chatUI.log(formatted);
210
+ }
211
+ });
212
+ // Display log stream history (autonomous trader events, etc.) - skip this for cleaner startup
213
+ // const history = this.logStream.getHistory();
214
+ // history.forEach((message) => {
215
+ // const formatted = this.formatLogMessage(message);
216
+ // chatUI.log(formatted);
217
+ // });
218
+ this.logStream.log(chalk.magenta.bold("🐱 Chat mode enabled. Type your message and press Enter."), "system");
219
+ this.logStream.log(chalk.dim("Type '/exit' to quit (you'll be asked if you want to keep the agent running)."), "system");
220
+ }
221
+ /**
222
+ * Handle user input in chat mode
223
+ */
224
+ async handleUserInput(text) {
225
+ if (!text.trim()) {
226
+ return;
227
+ }
228
+ // Handle special commands
229
+ if (text.trim() === "/exit") {
230
+ await this.promptGracefulShutdown();
231
+ return;
232
+ }
233
+ // Log user message
234
+ this.logStream.log(text, "user");
235
+ // Show thinking indicator
236
+ const thinkingMsg = chalk.dim("🐱 cat is thinking...");
237
+ this.logStream.log(thinkingMsg, "thinking");
238
+ try {
239
+ // Get conversation thread for context
240
+ const conversationId = this.memory.getOrCreateConversationThread(this.sessionId, true);
241
+ // Chat with agent
242
+ const response = await chatWithAgent(this.agent, this.llm, text, this.sessionId, this.memory);
243
+ // Remove thinking message and log agent response
244
+ this.logStream.removeLast(); // Remove the "thinking..." message
245
+ this.logStream.log(response, "agent");
246
+ }
247
+ catch (error) {
248
+ // Remove thinking message on error
249
+ this.logStream.removeLast();
250
+ this.logStream.log(`Error: ${error.message}`, "system");
251
+ }
252
+ }
253
+ /**
254
+ * Format log message for display
255
+ */
256
+ formatLogMessage(message) {
257
+ const timestamp = chalk.dim(`[${new Date(message.timestamp).toLocaleTimeString()}]`);
258
+ let prefix = "";
259
+ let formattedMessage = "";
260
+ if (message.type === "thinking") {
261
+ // Show thinking message in dim grey
262
+ return chalk.dim(`${timestamp} ${message.content}`);
263
+ }
264
+ else if (message.type === "system") {
265
+ prefix = chalk.cyan("⚙️ System: ");
266
+ formattedMessage = chalk.cyan.bold(message.content);
267
+ }
268
+ else if (message.type === "agent") {
269
+ prefix = chalk.magenta("🐱 Cat: ");
270
+ formattedMessage = message.content; // Keep cat messages white/uncolored for readability
271
+ }
272
+ else if (message.type === "user") {
273
+ prefix = chalk.yellow("👤 You: ");
274
+ formattedMessage = chalk.yellow.bold(message.content);
275
+ }
276
+ else if (message.type === "action") {
277
+ prefix = chalk.yellow("⚡ ");
278
+ formattedMessage = chalk.yellow.bold(message.content);
279
+ }
280
+ else {
281
+ prefix = chalk.green("📊 ");
282
+ formattedMessage = chalk.green.bold(message.content);
283
+ }
284
+ return `${timestamp} ${prefix}${formattedMessage}`;
285
+ }
286
+ /**
287
+ * Update header with current status
288
+ */
289
+ updateHeader() {
290
+ if (!this.ui || !("updateHeader" in this.ui)) {
291
+ return;
292
+ }
293
+ const agentConfig = config.get("agentConfig") || {};
294
+ const mode = this.isChatEnabled ? "Chat Mode" : "Read-Only Mode";
295
+ const autoTrade = agentConfig.autoTradeEnabled ? "✅ Auto-Trade" : "⏸️ Test Mode";
296
+ const status = this.isAutonomous ? "Active" : "Stopped";
297
+ const headerContent = [
298
+ `🐱 Agent Runtime | ${mode} | ${status}`,
299
+ `${autoTrade} | Max: $${agentConfig.maxTradeAmountUsdc || 10.0} | Risk: ${agentConfig.riskTolerance || "conservative"}`,
300
+ this.isChatEnabled ? "Type your message and press Enter. Type '/exit' to quit." : "Run 'httpcat agent chat' to speak with your agent",
301
+ ].join("\n");
302
+ this.ui.updateHeader(headerContent);
303
+ }
304
+ /**
305
+ * Setup graceful shutdown handler
306
+ */
307
+ setupGracefulShutdown() {
308
+ // Handle SIGINT (Ctrl+C) - but blessed will capture it first, so we rely on the UI callback
309
+ // This is a fallback in case blessed doesn't capture it
310
+ const originalSigInt = process.listeners("SIGINT");
311
+ process.removeAllListeners("SIGINT");
312
+ process.on("SIGINT", async () => {
313
+ await this.promptGracefulShutdown();
314
+ });
315
+ }
316
+ /**
317
+ * Prompt user for graceful shutdown
318
+ */
319
+ async promptGracefulShutdown() {
320
+ // Prevent multiple simultaneous shutdown attempts
321
+ if (!this.running || this.shutdownInProgress) {
322
+ return;
323
+ }
324
+ this.shutdownInProgress = true;
325
+ // Hide UI temporarily and restore terminal
326
+ if (this.ui) {
327
+ try {
328
+ this.ui.screen.hideCursor();
329
+ this.ui.screen.destroy();
330
+ }
331
+ catch (error) {
332
+ // Screen might already be destroyed
333
+ }
334
+ // Restore terminal cursor and reset terminal
335
+ process.stdout.write('\x1b[?25h');
336
+ process.stdout.write('\x1b[0m'); // Reset colors
337
+ }
338
+ // Create readline interface for prompt
339
+ const rl = readline.createInterface({
340
+ input: process.stdin,
341
+ output: process.stdout,
342
+ });
343
+ return new Promise((resolve) => {
344
+ // Set a timeout in case readline hangs
345
+ const timeout = setTimeout(() => {
346
+ rl.close();
347
+ console.log("\n🛑 Stopping agent...");
348
+ this.stop().then(() => {
349
+ process.exit(0);
350
+ });
351
+ resolve();
352
+ }, 5000); // 5 second timeout
353
+ rl.question("\n🛑 Keep agent running in background? (y/n): ", async (answer) => {
354
+ clearTimeout(timeout);
355
+ rl.close();
356
+ const keepRunning = answer.toLowerCase().trim() === "y" || answer.toLowerCase().trim() === "yes";
357
+ if (keepRunning) {
358
+ console.log("✅ Agent will continue running in background.");
359
+ console.log(" Run 'httpcat agent chat' to reconnect.");
360
+ // Don't stop the agent, just exit the UI
361
+ // Note: In a real daemon implementation, we'd fork the process here
362
+ // For now, we'll just exit (the agent will stop when the process exits)
363
+ process.exit(0);
364
+ }
365
+ else {
366
+ console.log("🛑 Stopping agent...");
367
+ await this.stop();
368
+ process.exit(0);
369
+ }
370
+ resolve();
371
+ });
372
+ // Handle second Ctrl+C for immediate exit
373
+ process.once("SIGINT", () => {
374
+ clearTimeout(timeout);
375
+ rl.close();
376
+ console.log("\n🛑 Force stopping agent...");
377
+ this.stop().then(() => {
378
+ process.exit(0);
379
+ });
380
+ resolve();
381
+ });
382
+ });
383
+ }
384
+ /**
385
+ * Get the log stream (for external access)
386
+ */
387
+ getLogStream() {
388
+ return this.logStream;
389
+ }
390
+ /**
391
+ * Check if runtime is running
392
+ */
393
+ isRunning() {
394
+ return this.running;
395
+ }
396
+ }
397
+ //# sourceMappingURL=unified-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-runtime.js","sourceRoot":"","sources":["../../src/agent/unified-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIhC,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,MAAM,EAAE,CAAC,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO;WAcM,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IA6D7D;;;OAGG;YACW,iBAAiB;IAmI/B;;OAEG;YACW,sBAAsB;IAsH9B,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EACtC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;IAgW9C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA2FrC,WAAW,IAAI,MAAM;IAIrB,UAAU,IAAI,MAAM;CAGrB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACD,MAAM,EAAE,MAAM;IAAS,OAAO,CAAC,EAAE,GAAG;gBAA5D,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAS,OAAO,CAAC,EAAE,GAAG,YAAA;CAIzE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIhC,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,MAAM,EAAE,CAAC,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO;WAcM,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IAgE7D;;;OAGG;YACW,iBAAiB;IAkO/B;;OAEG;YACW,sBAAsB;IA6I9B,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EACtC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;IA+W9C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiJrC,WAAW,IAAI,MAAM;IAIrB,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACG,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7B,GACL,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CA6IH;AAED,qBAAa,YAAa,SAAQ,KAAK;IACD,MAAM,EAAE,MAAM;IAAS,OAAO,CAAC,EAAE,GAAG;gBAA5D,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAS,OAAO,CAAC,EAAE,GAAG,YAAA;CAIzE;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACxC,OAAO,GAAE,MAA4E,EAAE,OAAO,CAAC,EAAE,GAAG;CAIjH"}