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,531 @@
1
+ /**
2
+ * Shell Setup Utilities
3
+ *
4
+ * Functions to install shell autocompletion and create aliases for httpcat CLI.
5
+ * Supports bash and zsh shells with automatic detection.
6
+ */
7
+ import fs from "fs";
8
+ import path from "path";
9
+ import os from "os";
10
+ import { execSync } from "child_process";
11
+ import chalk from "chalk";
12
+ /**
13
+ * Detect the current shell from environment variables
14
+ *
15
+ * @returns Detected shell type or "unknown" if detection fails
16
+ */
17
+ export function detectShell() {
18
+ const shell = process.env.SHELL || "";
19
+ if (shell.includes("zsh")) {
20
+ return "zsh";
21
+ }
22
+ else if (shell.includes("bash")) {
23
+ return "bash";
24
+ }
25
+ return "unknown";
26
+ }
27
+ /**
28
+ * Find the httpcat binary location
29
+ *
30
+ * @returns Full path to httpcat binary or null if not found
31
+ */
32
+ export function findHttpcatBinary() {
33
+ try {
34
+ // Try to find httpcat in PATH
35
+ const result = execSync("which httpcat", { encoding: "utf-8" }).trim();
36
+ if (result && fs.existsSync(result)) {
37
+ // Resolve symlinks to get actual binary location
38
+ try {
39
+ const resolved = fs.realpathSync(result);
40
+ return resolved;
41
+ }
42
+ catch {
43
+ return result;
44
+ }
45
+ }
46
+ }
47
+ catch {
48
+ // Command not found
49
+ }
50
+ // Fallback: check common npm/yarn global locations
51
+ const homeDir = os.homedir();
52
+ const commonPaths = [
53
+ path.join(homeDir, ".npm-global", "bin", "httpcat"),
54
+ path.join(homeDir, ".yarn", "bin", "httpcat"),
55
+ path.join(homeDir, ".local", "bin", "httpcat"),
56
+ "/usr/local/bin/httpcat",
57
+ "/opt/homebrew/bin/httpcat",
58
+ ];
59
+ for (const binPath of commonPaths) {
60
+ if (fs.existsSync(binPath)) {
61
+ try {
62
+ return fs.realpathSync(binPath);
63
+ }
64
+ catch {
65
+ return binPath;
66
+ }
67
+ }
68
+ }
69
+ return null;
70
+ }
71
+ /**
72
+ * Generate bash completion script
73
+ *
74
+ * @param program - Commander.js program instance (optional)
75
+ * @returns Bash completion script content
76
+ */
77
+ export function generateBashCompletion(program) {
78
+ // Get commands from program if available, otherwise use fallback list
79
+ let commands = [];
80
+ let subcommandMap = {};
81
+ if (program && program.commands) {
82
+ // Get all visible (non-hidden) commands
83
+ commands = program.commands
84
+ .filter((cmd) => !cmd._hidden)
85
+ .map((cmd) => cmd.name())
86
+ .filter((name) => name && name !== "help"); // Exclude help command
87
+ // Get subcommands for each command
88
+ for (const cmd of program.commands) {
89
+ if (cmd._hidden)
90
+ continue;
91
+ const cmdName = cmd.name();
92
+ if (!cmdName || cmdName === "help")
93
+ continue;
94
+ if (cmd.commands && cmd.commands.length > 0) {
95
+ const subcommands = cmd.commands
96
+ .filter((subcmd) => !subcmd._hidden)
97
+ .map((subcmd) => subcmd.name())
98
+ .filter((name) => name && name !== "help");
99
+ if (subcommands.length > 0) {
100
+ subcommandMap[cmdName] = subcommands;
101
+ }
102
+ }
103
+ }
104
+ }
105
+ else {
106
+ // Fallback list if program not provided
107
+ commands = [
108
+ "config", "launchpad", "trade", "system", "chat",
109
+ "mcp", "use", "portfolio", "agent", "tools"
110
+ ];
111
+ // Fallback subcommands
112
+ subcommandMap = {
113
+ launchpad: ["create", "buy", "sell", "list", "info", "positions", "fees"],
114
+ trade: ["swap", "gasless-submit", "gasless-submit-our", "gasless-quote", "gasless-status"],
115
+ portfolio: ["balances", "summary", "pnl", "transactions", "positions"],
116
+ system: ["health", "status", "limits", "sources"],
117
+ config: ["setup", "reset", "env", "account", "completion"],
118
+ mcp: ["install", "start"],
119
+ agent: ["cat", "context"],
120
+ tools: ["address", "abi", "tx", "signature", "multicall", "nonce", "gas", "key", "rpc", "call"],
121
+ };
122
+ }
123
+ const commandsStr = commands.join(" ");
124
+ // Build subcommand case statements
125
+ let subcommandCases = "";
126
+ for (const [cmd, subs] of Object.entries(subcommandMap)) {
127
+ if (subs && subs.length > 0) {
128
+ const subsStr = subs.join(" ");
129
+ subcommandCases += ` "${cmd}")\n opts="${subsStr}"\n COMPREPLY=( $(compgen -W "\${opts}" -- "\${cur}") )\n ;;\n`;
130
+ }
131
+ }
132
+ return `# httpcat bash completion
133
+ _httpcat_completion() {
134
+ local cur prev opts
135
+ COMPREPLY=()
136
+ cur="\${COMP_WORDS[COMP_CWORD]}"
137
+ prev="\${COMP_WORDS[COMP_CWORD-1]}"
138
+
139
+ # Top-level command completion
140
+ if [ "\${COMP_CWORD}" -eq 1 ]; then
141
+ opts="${commandsStr}"
142
+ COMPREPLY=( $(compgen -W "\${opts}" -- "\${cur}") )
143
+ # Subcommand completion
144
+ elif [ "\${COMP_CWORD}" -eq 2 ]; then
145
+ case "\${prev}" in
146
+ ${subcommandCases} esac
147
+ fi
148
+
149
+ return 0
150
+ }
151
+
152
+ complete -F _httpcat_completion httpcat
153
+ `;
154
+ }
155
+ /**
156
+ * Generate zsh completion script
157
+ *
158
+ * @param program - Commander.js program instance (optional)
159
+ * @returns Zsh completion script content
160
+ */
161
+ export function generateZshCompletion(program) {
162
+ // Get commands from program if available
163
+ let commands = [];
164
+ let subcommandMap = {};
165
+ if (program && program.commands) {
166
+ // Get all visible (non-hidden) commands with their descriptions
167
+ commands = program.commands
168
+ .filter((cmd) => !cmd._hidden)
169
+ .map((cmd) => {
170
+ const name = cmd.name();
171
+ const desc = cmd.description() || "";
172
+ return [name, desc];
173
+ })
174
+ .filter(([name]) => name && name !== "help"); // Exclude help command
175
+ // Get subcommands for each command
176
+ for (const cmd of program.commands) {
177
+ if (cmd._hidden)
178
+ continue;
179
+ const cmdName = cmd.name();
180
+ if (!cmdName || cmdName === "help")
181
+ continue;
182
+ if (cmd.commands && cmd.commands.length > 0) {
183
+ const subcommands = cmd.commands
184
+ .filter((subcmd) => !subcmd._hidden)
185
+ .map((subcmd) => {
186
+ const subName = subcmd.name();
187
+ const subDesc = subcmd.description() || "";
188
+ return [subName, subDesc];
189
+ })
190
+ .filter(([name]) => name && name !== "help");
191
+ if (subcommands.length > 0) {
192
+ subcommandMap[cmdName] = subcommands;
193
+ }
194
+ }
195
+ }
196
+ }
197
+ else {
198
+ // Fallback list if program not provided
199
+ commands = [
200
+ ["config", "Configure httpcat (settings, environments, accounts)"],
201
+ ["launchpad", "402.cat Launchpad operations (bonding curve tokens)"],
202
+ ["trade", "Trading operations (swaps)"],
203
+ ["system", "System operations and health checks"],
204
+ ["chat", "Start streaming chat"],
205
+ ["mcp", "MCP (Model Context Protocol) server and installation"],
206
+ ["use", "Switch account or environment"],
207
+ ["portfolio", "Portfolio & history management"],
208
+ ["agent", "AI agent operations"],
209
+ ["tools", "EVM development & interaction tools"],
210
+ ];
211
+ // Fallback subcommands
212
+ subcommandMap = {
213
+ launchpad: [
214
+ ["create", "Create a new launchpad token"],
215
+ ["buy", "Buy tokens from bonding curve"],
216
+ ["sell", "Sell tokens to bonding curve"],
217
+ ["list", "List all launchpad tokens"],
218
+ ["info", "Get token information"],
219
+ ["positions", "Get token positions"],
220
+ ["fees", "Fee management for graduated tokens"],
221
+ ],
222
+ trade: [
223
+ ["swap", "Swap any token to any token"],
224
+ ["gasless-submit", "Submit a signed 0x gasless swap"],
225
+ ["gasless-submit-our", "Submit gasless swap via executor"],
226
+ ["gasless-quote", "Get gasless swap quotes"],
227
+ ["gasless-status", "Check gasless swap status"],
228
+ ],
229
+ portfolio: [
230
+ ["balances", "View token balances"],
231
+ ["summary", "Portfolio summary"],
232
+ ["pnl", "Profit and loss"],
233
+ ["transactions", "Transaction history"],
234
+ ["positions", "Token positions"],
235
+ ],
236
+ system: [
237
+ ["health", "System health check"],
238
+ ["status", "System status"],
239
+ ["limits", "Rate limits"],
240
+ ["sources", "Data sources"],
241
+ ],
242
+ config: [
243
+ ["setup", "Run interactive setup wizard"],
244
+ ["reset", "Reset configuration"],
245
+ ["env", "Manage environments"],
246
+ ["account", "Manage accounts"],
247
+ ["completion", "Generate shell completion script"],
248
+ ],
249
+ mcp: [
250
+ ["install", "Install or update httpcat MCP server for LLM CLI tools"],
251
+ ["start", "Start MCP (Model Context Protocol) server"],
252
+ ],
253
+ agent: [
254
+ ["cat", "Start interactive AI agent mode"],
255
+ ["context", "Agent context"],
256
+ ],
257
+ tools: [
258
+ ["address", "Address utilities"],
259
+ ["abi", "ABI encoding/decoding"],
260
+ ["tx", "Transaction utilities"],
261
+ ["signature", "Function signature utilities"],
262
+ ["multicall", "Multicall utilities"],
263
+ ["nonce", "Nonce utilities"],
264
+ ["gas", "Gas estimation"],
265
+ ["key", "Key management"],
266
+ ["rpc", "JSON-RPC proxy"],
267
+ ["call", "Call x402 endpoint"],
268
+ ],
269
+ };
270
+ }
271
+ // Format commands for zsh completion
272
+ const commandsStr = commands
273
+ .map(([name, desc]) => `'${name}:${desc}'`)
274
+ .join("\n ");
275
+ // Build subcommand functions
276
+ let subcommandFunctions = "";
277
+ for (const [cmd, subs] of Object.entries(subcommandMap)) {
278
+ if (subs && subs.length > 0) {
279
+ const subsStr = subs
280
+ .map(([name, desc]) => `'${name}:${desc}'`)
281
+ .join("\n ");
282
+ subcommandFunctions += `_httpcat_${cmd}() {
283
+ local -a subcommands
284
+ subcommands=(
285
+ ${subsStr}
286
+ )
287
+ _describe 'subcommand' subcommands
288
+ }
289
+
290
+ `;
291
+ }
292
+ }
293
+ // Build case statement for subcommands
294
+ let subcommandCases = "";
295
+ for (const cmd of Object.keys(subcommandMap)) {
296
+ subcommandCases += ` "${cmd}")\n _httpcat_${cmd}\n ;;\n`;
297
+ }
298
+ return `#compdef httpcat
299
+
300
+ _httpcat() {
301
+ local -a commands
302
+ local curcontext="\${curcontext}" state line
303
+ local -A opt_args
304
+
305
+ commands=(
306
+ ${commandsStr}
307
+ )
308
+
309
+ _describe 'command' commands
310
+
311
+ case $words[2] in
312
+ ${subcommandCases} esac
313
+ }
314
+
315
+ ${subcommandFunctions}_httpcat "$@"
316
+ `;
317
+ }
318
+ /**
319
+ * Install bash completion script
320
+ *
321
+ * @param completionScript - The completion script content
322
+ * @returns true if installation succeeded, false otherwise
323
+ */
324
+ export function installBashCompletion(completionScript) {
325
+ try {
326
+ const homeDir = os.homedir();
327
+ const bashCompletionDir = path.join(homeDir, ".bash_completion.d");
328
+ const completionFile = path.join(bashCompletionDir, "httpcat");
329
+ const bashrcPath = path.join(homeDir, ".bashrc");
330
+ // Create completion directory if it doesn't exist
331
+ if (!fs.existsSync(bashCompletionDir)) {
332
+ fs.mkdirSync(bashCompletionDir, { recursive: true });
333
+ }
334
+ // Write completion script
335
+ fs.writeFileSync(completionFile, completionScript, { mode: 0o644 });
336
+ // Ensure .bashrc sources the completion directory
337
+ if (fs.existsSync(bashrcPath)) {
338
+ const bashrcContent = fs.readFileSync(bashrcPath, "utf-8");
339
+ const sourceLine = `[ -d ~/.bash_completion.d ] && for f in ~/.bash_completion.d/*; do source "$f"; done`;
340
+ // Check if sourcing line already exists (with variations)
341
+ const hasSourceLine = bashrcContent.includes(".bash_completion.d") ||
342
+ bashrcContent.includes("bash_completion.d");
343
+ if (!hasSourceLine) {
344
+ fs.appendFileSync(bashrcPath, `\n# httpcat completion\n${sourceLine}\n`);
345
+ }
346
+ }
347
+ else {
348
+ // Create .bashrc if it doesn't exist
349
+ const sourceLine = `[ -d ~/.bash_completion.d ] && for f in ~/.bash_completion.d/*; do source "$f"; done`;
350
+ fs.writeFileSync(bashrcPath, `# httpcat completion\n${sourceLine}\n`);
351
+ }
352
+ return true;
353
+ }
354
+ catch (error) {
355
+ console.error(chalk.red(`Failed to install bash completion: ${error}`));
356
+ return false;
357
+ }
358
+ }
359
+ /**
360
+ * Install zsh completion script
361
+ *
362
+ * @param completionScript - The completion script content
363
+ * @returns true if installation succeeded, false otherwise
364
+ */
365
+ export function installZshCompletion(completionScript) {
366
+ try {
367
+ const homeDir = os.homedir();
368
+ const zshCompletionsDir = path.join(homeDir, ".zsh", "completions");
369
+ const completionFile = path.join(zshCompletionsDir, "_httpcat");
370
+ const zshrcPath = path.join(homeDir, ".zshrc");
371
+ // Create completions directory if it doesn't exist
372
+ if (!fs.existsSync(zshCompletionsDir)) {
373
+ fs.mkdirSync(zshCompletionsDir, { recursive: true });
374
+ }
375
+ // Write completion script
376
+ fs.writeFileSync(completionFile, completionScript, { mode: 0o644 });
377
+ // Ensure .zshrc adds completions to fpath
378
+ const fpathLine = `fpath=(~/.zsh/completions $fpath)`;
379
+ const autoloadLine = `autoload -Uz compinit && compinit`;
380
+ if (fs.existsSync(zshrcPath)) {
381
+ const zshrcContent = fs.readFileSync(zshrcPath, "utf-8");
382
+ let updated = false;
383
+ let newContent = zshrcContent;
384
+ // Add fpath if not present
385
+ if (!zshrcContent.includes("~/.zsh/completions") && !zshrcContent.includes("$HOME/.zsh/completions")) {
386
+ newContent += `\n# httpcat completion\n${fpathLine}\n`;
387
+ updated = true;
388
+ }
389
+ // Add compinit if not present
390
+ if (!zshrcContent.includes("compinit")) {
391
+ newContent += `${updated ? "" : "\n# httpcat completion\n"}${autoloadLine}\n`;
392
+ updated = true;
393
+ }
394
+ if (updated) {
395
+ fs.writeFileSync(zshrcPath, newContent);
396
+ }
397
+ }
398
+ else {
399
+ // Create .zshrc if it doesn't exist
400
+ fs.writeFileSync(zshrcPath, `# httpcat completion\n${fpathLine}\n${autoloadLine}\n`);
401
+ }
402
+ return true;
403
+ }
404
+ catch (error) {
405
+ console.error(chalk.red(`Failed to install zsh completion: ${error}`));
406
+ return false;
407
+ }
408
+ }
409
+ /**
410
+ * Create "hc" alias as a symlink
411
+ *
412
+ * @returns true if symlink creation succeeded or already exists correctly, false otherwise
413
+ */
414
+ export function createHcSymlink() {
415
+ try {
416
+ const httpcatPath = findHttpcatBinary();
417
+ if (!httpcatPath) {
418
+ return false;
419
+ }
420
+ const binDir = path.dirname(httpcatPath);
421
+ const hcPath = path.join(binDir, "hc");
422
+ // Check if hc already exists
423
+ if (fs.existsSync(hcPath)) {
424
+ // Check if it's already a symlink to httpcat
425
+ try {
426
+ const target = fs.readlinkSync(hcPath);
427
+ const resolvedTarget = path.resolve(binDir, target);
428
+ if (target === "httpcat" || resolvedTarget === httpcatPath) {
429
+ return true; // Already correctly linked
430
+ }
431
+ // Existing symlink points to wrong target - remove it
432
+ fs.unlinkSync(hcPath);
433
+ }
434
+ catch {
435
+ // Not a symlink or can't read it - try to remove it
436
+ try {
437
+ fs.unlinkSync(hcPath);
438
+ }
439
+ catch {
440
+ // Can't remove existing file - might be a directory or permission issue
441
+ // Fall back to shell alias instead
442
+ return false;
443
+ }
444
+ }
445
+ }
446
+ // Create symlink
447
+ fs.symlinkSync("httpcat", hcPath);
448
+ return true;
449
+ }
450
+ catch (error) {
451
+ // Silently fail - will fall back to shell alias
452
+ // Don't log error here since fallback will handle it
453
+ return false;
454
+ }
455
+ }
456
+ /**
457
+ * Create "hc" alias in shell rc file
458
+ *
459
+ * @param shellType - The shell type (bash or zsh)
460
+ * @returns true if alias creation succeeded, false otherwise
461
+ */
462
+ export function createHcAlias(shellType) {
463
+ if (shellType === "unknown") {
464
+ return false;
465
+ }
466
+ try {
467
+ const homeDir = os.homedir();
468
+ const rcFile = shellType === "zsh"
469
+ ? path.join(homeDir, ".zshrc")
470
+ : path.join(homeDir, ".bashrc");
471
+ const aliasLine = `alias hc='httpcat'`;
472
+ // Check if alias already exists
473
+ if (fs.existsSync(rcFile)) {
474
+ const content = fs.readFileSync(rcFile, "utf-8");
475
+ if (content.includes("alias hc=")) {
476
+ return true; // Already exists
477
+ }
478
+ }
479
+ // Append alias to rc file
480
+ const newContent = fs.existsSync(rcFile)
481
+ ? fs.readFileSync(rcFile, "utf-8") + `\n# httpcat alias\n${aliasLine}\n`
482
+ : `# httpcat alias\n${aliasLine}\n`;
483
+ fs.writeFileSync(rcFile, newContent);
484
+ return true;
485
+ }
486
+ catch (error) {
487
+ console.error(chalk.red(`Failed to create hc alias: ${error}`));
488
+ return false;
489
+ }
490
+ }
491
+ /**
492
+ * Install shell completion for the detected shell
493
+ *
494
+ * @param program - Commander.js program instance (optional)
495
+ * @returns true if installation succeeded, false otherwise
496
+ */
497
+ export function installShellCompletion(program) {
498
+ const shell = detectShell();
499
+ if (shell === "unknown") {
500
+ console.log(chalk.yellow("⚠️ Could not detect shell type. Skipping completion installation."));
501
+ return false;
502
+ }
503
+ let completionScript;
504
+ if (shell === "zsh") {
505
+ completionScript = generateZshCompletion(program);
506
+ return installZshCompletion(completionScript);
507
+ }
508
+ else {
509
+ completionScript = generateBashCompletion(program);
510
+ return installBashCompletion(completionScript);
511
+ }
512
+ }
513
+ /**
514
+ * Create "hc" alias (tries symlink first, falls back to shell alias)
515
+ *
516
+ * @returns Object with success status and method used
517
+ */
518
+ export function installHcAlias() {
519
+ // Try symlink first
520
+ if (createHcSymlink()) {
521
+ return { success: true, method: "symlink" };
522
+ }
523
+ // Fallback to shell alias
524
+ const shell = detectShell();
525
+ const aliasSuccess = createHcAlias(shell);
526
+ return {
527
+ success: aliasSuccess,
528
+ method: aliasSuccess ? "alias" : "none",
529
+ };
530
+ }
531
+ //# sourceMappingURL=shell-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-setup.js","sourceRoot":"","sources":["../../src/utils/shell-setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/utils/status.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAUrD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAMtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,cAAc,EAAE,MAAM,GACrB,MAAM,CASR"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/utils/status.ts"],"names":[],"mappings":"AA6BA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAoBrD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAgBtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,cAAc,EAAE,MAAM,GACrB,MAAM,CASR"}
@@ -15,6 +15,7 @@ const CAT_RETRY_MESSAGES = [
15
15
  "🐱 Cat is trying again (because why not)...",
16
16
  ];
17
17
  let lastStatusLine = "";
18
+ let statusLineCount = 0;
18
19
  /**
19
20
  * Strip ANSI escape codes from a string to get the actual visual length
20
21
  */
@@ -25,25 +26,53 @@ function stripAnsiCodes(str) {
25
26
  /**
26
27
  * Write status message on the same line (overwrites previous)
27
28
  * Useful for retry messages that shouldn't spam the console
29
+ * Resets the status line count to 1 (start of a new status sequence)
28
30
  */
29
31
  export function writeStatusLine(message) {
30
- // Clear the previous line if it exists using ANSI escape sequence
31
- if (lastStatusLine) {
32
+ // If we have multiple status lines, we need to clear them all first
33
+ if (statusLineCount > 1) {
34
+ // Move up to the first line and clear all
35
+ for (let i = 1; i < statusLineCount; i++) {
36
+ process.stdout.write("\x1b[1A\r\x1b[K");
37
+ }
38
+ statusLineCount = 0;
39
+ }
40
+ // Clear the current line if it exists
41
+ if (lastStatusLine || statusLineCount > 0) {
32
42
  // Use \r to go to beginning of line and \x1b[K to clear to end of line
33
43
  process.stdout.write("\r\x1b[K");
34
44
  }
35
45
  // Write new message (no newline)
36
46
  process.stdout.write(message);
37
47
  lastStatusLine = message;
48
+ statusLineCount = 1;
38
49
  }
39
50
  /**
40
- * Clear the status line
51
+ * Write status message on a new line (adds to status lines)
52
+ * Useful for multi-line status messages that need to be cleared together
53
+ */
54
+ export function writeStatusLineNew(message) {
55
+ // Move to a new line and write the message
56
+ process.stdout.write("\n" + message);
57
+ statusLineCount++;
58
+ }
59
+ /**
60
+ * Clear all status lines
41
61
  */
42
62
  export function clearStatusLine() {
43
- if (lastStatusLine) {
44
- // Use \r to go to beginning of line and \x1b[K to clear to end of line
63
+ if (statusLineCount > 0) {
64
+ // First, clear the current line (where the cursor is)
45
65
  process.stdout.write("\r\x1b[K");
66
+ // Then move up and clear the remaining status lines
67
+ // We need to move up (statusLineCount - 1) times since we already cleared the current line
68
+ for (let i = 1; i < statusLineCount; i++) {
69
+ // Move cursor up one line: \x1b[1A
70
+ // Move to beginning of line: \r
71
+ // Clear to end of line: \x1b[K
72
+ process.stdout.write("\x1b[1A\r\x1b[K");
73
+ }
46
74
  lastStatusLine = "";
75
+ statusLineCount = 0;
47
76
  }
48
77
  }
49
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/utils/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,4CAA4C;IAC5C,oCAAoC;IACpC,iEAAiE;IACjE,0CAA0C;IAC1C,8CAA8C;IAC9C,oDAAoD;IACpD,0CAA0C;IAC1C,2CAA2C;IAC3C,yDAAyD;IACzD,6CAA6C;CAC9C,CAAC;AAEF,IAAI,cAAc,GAAW,EAAE,CAAC;AAEhC;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,4CAA4C;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,kEAAkE;IAClE,IAAI,cAAc,EAAE,CAAC;QACnB,uEAAuE;QACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,iCAAiC;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,cAAc,EAAE,CAAC;QACnB,uEAAuE;QACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,cAAc,GAAG,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACxD,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,UAAyB,EACzB,cAAsB;IAEtB,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,WAAW,GACf,UAAU,KAAK,IAAI;QACjB,CAAC,CAAC,aAAa,OAAO,IAAI,UAAU,GAAG;QACvC,CAAC,CAAC,aAAa,OAAO,GAAG,CAAC;IAC9B,MAAM,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,cAAc,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvF,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/utils/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"token-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/token-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAK7C;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,MAAM,UAAQ,GACb,OAAO,CAAC,MAAM,CAAC,CAkKjB"}
1
+ {"version":3,"file":"token-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/token-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA0B7C;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,MAAM,UAAQ,GACb,OAAO,CAAC,MAAM,CAAC,CA+LjB"}