httpcat-cli 0.3.0-rc.9 → 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 (203) 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 +6 -0
  4. package/README.md +1306 -130
  5. package/bun.lock +2 -2
  6. package/dist/agent/ax-agent.d.ts.map +1 -1
  7. package/dist/agent/ax-agent.js +64 -1
  8. package/dist/agent/ax-agent.js.map +1 -1
  9. package/dist/agent/tools.d.ts.map +1 -1
  10. package/dist/agent/tools.js +107 -7
  11. package/dist/agent/tools.js.map +1 -1
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/client.js +258 -11
  14. package/dist/client.js.map +1 -1
  15. package/dist/commands/account.d.ts.map +1 -1
  16. package/dist/commands/account.js +34 -14
  17. package/dist/commands/account.js.map +1 -1
  18. package/dist/commands/agent.d.ts.map +1 -1
  19. package/dist/commands/agent.js +114 -247
  20. package/dist/commands/agent.js.map +1 -1
  21. package/dist/commands/approve.d.ts.map +1 -0
  22. package/dist/commands/approve.js +505 -0
  23. package/dist/commands/approve.js.map +1 -0
  24. package/dist/commands/automation.d.ts.map +1 -0
  25. package/dist/commands/automation.js +346 -0
  26. package/dist/commands/automation.js.map +1 -0
  27. package/dist/commands/balances.d.ts.map +1 -1
  28. package/dist/commands/balances.js +31 -8
  29. package/dist/commands/balances.js.map +1 -1
  30. package/dist/commands/buy.d.ts.map +1 -1
  31. package/dist/commands/buy.js +88 -115
  32. package/dist/commands/buy.js.map +1 -1
  33. package/dist/commands/call.d.ts.map +1 -0
  34. package/dist/commands/call.js +51 -0
  35. package/dist/commands/call.js.map +1 -0
  36. package/dist/commands/cex.d.ts.map +1 -0
  37. package/dist/commands/cex.js +958 -0
  38. package/dist/commands/cex.js.map +1 -0
  39. package/dist/commands/claim.d.ts.map +1 -1
  40. package/dist/commands/claim.js +231 -4
  41. package/dist/commands/claim.js.map +1 -1
  42. package/dist/commands/create.d.ts.map +1 -1
  43. package/dist/commands/create.js +88 -3
  44. package/dist/commands/create.js.map +1 -1
  45. package/dist/commands/gasless-swap.d.ts.map +1 -0
  46. package/dist/commands/gasless-swap.js +232 -0
  47. package/dist/commands/gasless-swap.js.map +1 -0
  48. package/dist/commands/health.d.ts.map +1 -1
  49. package/dist/commands/health.js +58 -4
  50. package/dist/commands/health.js.map +1 -1
  51. package/dist/commands/info.js +1 -1
  52. package/dist/commands/info.js.map +1 -1
  53. package/dist/commands/launchpad.d.ts.map +1 -0
  54. package/dist/commands/launchpad.js +708 -0
  55. package/dist/commands/launchpad.js.map +1 -0
  56. package/dist/commands/list.d.ts.map +1 -1
  57. package/dist/commands/list.js +1 -1
  58. package/dist/commands/list.js.map +1 -1
  59. package/dist/commands/market.d.ts.map +1 -0
  60. package/dist/commands/market.js +960 -0
  61. package/dist/commands/market.js.map +1 -0
  62. package/dist/commands/mcp-install.d.ts.map +1 -0
  63. package/dist/commands/mcp-install.js +387 -0
  64. package/dist/commands/mcp-install.js.map +1 -0
  65. package/dist/commands/opps.d.ts.map +1 -0
  66. package/dist/commands/opps.js +409 -0
  67. package/dist/commands/opps.js.map +1 -0
  68. package/dist/commands/perps.d.ts.map +1 -0
  69. package/dist/commands/perps.js +248 -0
  70. package/dist/commands/perps.js.map +1 -0
  71. package/dist/commands/portfolio.d.ts.map +1 -0
  72. package/dist/commands/portfolio.js +679 -0
  73. package/dist/commands/portfolio.js.map +1 -0
  74. package/dist/commands/positions.js +1 -1
  75. package/dist/commands/positions.js.map +1 -1
  76. package/dist/commands/predict.d.ts.map +1 -0
  77. package/dist/commands/predict.js +280 -0
  78. package/dist/commands/predict.js.map +1 -0
  79. package/dist/commands/predictions.d.ts.map +1 -0
  80. package/dist/commands/predictions.js +486 -0
  81. package/dist/commands/predictions.js.map +1 -0
  82. package/dist/commands/risk.d.ts.map +1 -0
  83. package/dist/commands/risk.js +225 -0
  84. package/dist/commands/risk.js.map +1 -0
  85. package/dist/commands/security.d.ts.map +1 -0
  86. package/dist/commands/security.js +244 -0
  87. package/dist/commands/security.js.map +1 -0
  88. package/dist/commands/sell.js +3 -3
  89. package/dist/commands/sell.js.map +1 -1
  90. package/dist/commands/send.d.ts.map +1 -0
  91. package/dist/commands/send.js +733 -0
  92. package/dist/commands/send.js.map +1 -0
  93. package/dist/commands/sign.d.ts.map +1 -0
  94. package/dist/commands/sign.js +1048 -0
  95. package/dist/commands/sign.js.map +1 -0
  96. package/dist/commands/swap.d.ts.map +1 -1
  97. package/dist/commands/swap.js +245 -2
  98. package/dist/commands/swap.js.map +1 -1
  99. package/dist/commands/system.d.ts.map +1 -0
  100. package/dist/commands/system.js +417 -0
  101. package/dist/commands/system.js.map +1 -0
  102. package/dist/commands/tools/index.d.ts.map +1 -0
  103. package/dist/commands/tools/index.js +2040 -0
  104. package/dist/commands/tools/index.js.map +1 -0
  105. package/dist/commands/trade.d.ts.map +1 -0
  106. package/dist/commands/trade.js +237 -0
  107. package/dist/commands/trade.js.map +1 -0
  108. package/dist/commands/transactions.js +1 -1
  109. package/dist/commands/transactions.js.map +1 -1
  110. package/dist/commands/update.d.ts.map +1 -0
  111. package/dist/commands/update.js +429 -0
  112. package/dist/commands/update.js.map +1 -0
  113. package/dist/config.d.ts.map +1 -1
  114. package/dist/config.js +91 -9
  115. package/dist/config.js.map +1 -1
  116. package/dist/index.js +4409 -1050
  117. package/dist/index.js.map +1 -1
  118. package/dist/interactive/art.d.ts.map +1 -1
  119. package/dist/interactive/art.js +33 -0
  120. package/dist/interactive/art.js.map +1 -1
  121. package/dist/interactive/shell.d.ts.map +1 -1
  122. package/dist/interactive/shell.js +81 -5
  123. package/dist/interactive/shell.js.map +1 -1
  124. package/dist/mcp/context.d.ts.map +1 -0
  125. package/dist/mcp/context.js +211 -0
  126. package/dist/mcp/context.js.map +1 -0
  127. package/dist/mcp/onboarding.d.ts.map +1 -0
  128. package/dist/mcp/onboarding.js +266 -0
  129. package/dist/mcp/onboarding.js.map +1 -0
  130. package/dist/mcp/resources.d.ts.map +1 -0
  131. package/dist/mcp/resources.js +222 -0
  132. package/dist/mcp/resources.js.map +1 -0
  133. package/dist/mcp/server.d.ts.map +1 -1
  134. package/dist/mcp/server.js +51 -1
  135. package/dist/mcp/server.js.map +1 -1
  136. package/dist/mcp/tools.d.ts.map +1 -1
  137. package/dist/mcp/tools.js +4119 -169
  138. package/dist/mcp/tools.js.map +1 -1
  139. package/dist/mcp/types.d.ts.map +1 -1
  140. package/dist/ui/components/shell/ShellInput.d.ts.map +1 -1
  141. package/dist/ui/components/shell/ShellInput.js +4 -0
  142. package/dist/ui/components/shell/ShellInput.js.map +1 -1
  143. package/dist/utils/admin.d.ts.map +1 -0
  144. package/dist/utils/admin.js +144 -0
  145. package/dist/utils/admin.js.map +1 -0
  146. package/dist/utils/autoSetup.d.ts.map +1 -0
  147. package/dist/utils/autoSetup.js +252 -0
  148. package/dist/utils/autoSetup.js.map +1 -0
  149. package/dist/utils/build-constants.d.ts.map +1 -0
  150. package/dist/utils/build-constants.js +10 -0
  151. package/dist/utils/build-constants.js.map +1 -0
  152. package/dist/utils/errors.d.ts.map +1 -1
  153. package/dist/utils/errors.js +10 -1
  154. package/dist/utils/errors.js.map +1 -1
  155. package/dist/utils/formatting.d.ts.map +1 -1
  156. package/dist/utils/formatting.js +9 -3
  157. package/dist/utils/formatting.js.map +1 -1
  158. package/dist/utils/llm-cli-config.d.ts.map +1 -0
  159. package/dist/utils/llm-cli-config.js +963 -0
  160. package/dist/utils/llm-cli-config.js.map +1 -0
  161. package/dist/utils/llm-cli-detector.d.ts.map +1 -0
  162. package/dist/utils/llm-cli-detector.js +202 -0
  163. package/dist/utils/llm-cli-detector.js.map +1 -0
  164. package/dist/utils/maintenance.d.ts.map +1 -0
  165. package/dist/utils/maintenance.js +17 -0
  166. package/dist/utils/maintenance.js.map +1 -0
  167. package/dist/utils/mcp-config.d.ts.map +1 -0
  168. package/dist/utils/mcp-config.js +77 -0
  169. package/dist/utils/mcp-config.js.map +1 -0
  170. package/dist/utils/privateKeyPrompt.d.ts.map +1 -1
  171. package/dist/utils/privateKeyPrompt.js +287 -119
  172. package/dist/utils/privateKeyPrompt.js.map +1 -1
  173. package/dist/utils/process-cleanup.d.ts.map +1 -0
  174. package/dist/utils/process-cleanup.js +136 -0
  175. package/dist/utils/process-cleanup.js.map +1 -0
  176. package/dist/utils/retry.d.ts.map +1 -0
  177. package/dist/utils/retry.js +56 -0
  178. package/dist/utils/retry.js.map +1 -0
  179. package/dist/utils/shell-setup.d.ts.map +1 -0
  180. package/dist/utils/shell-setup.js +531 -0
  181. package/dist/utils/shell-setup.js.map +1 -0
  182. package/dist/utils/token-resolver.d.ts.map +1 -1
  183. package/dist/utils/token-resolver.js +42 -0
  184. package/dist/utils/token-resolver.js.map +1 -1
  185. package/dist/utils/x402-caller.d.ts.map +1 -0
  186. package/dist/utils/x402-caller.js +17 -0
  187. package/dist/utils/x402-caller.js.map +1 -0
  188. package/docs/README.md +28 -0
  189. package/docs/agent/README.md +18 -0
  190. package/docs/api/README.md +41 -0
  191. package/docs/cli/README.md +42 -0
  192. package/docs/guides/README.md +26 -0
  193. package/docs/implementation/README.md +18 -0
  194. package/docs/planning/README.md +19 -0
  195. package/docs/testing/README.md +15 -0
  196. package/docs/ux/README.md +16 -0
  197. package/package.json +9 -3
  198. package/scripts/cat-spin.sh +417 -0
  199. package/scripts/deprecate-rc-versions.js +58 -0
  200. package/scripts/inject-build-constants.js +43 -0
  201. package/scripts/monitor-foobar.js +117 -0
  202. package/test.txt +12 -0
  203. package/tests/fixtures/test-data.json +16 -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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;;GAIG;AACH,MAAM,UAAU,WAAW;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAChC,IAAI,CAAC;QACJ,8BAA8B;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,iDAAiD;YACjD,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACzC,OAAO,QAAQ,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,MAAM,CAAC;YACf,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,oBAAoB;IACrB,CAAC;IAED,mDAAmD;IACnD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;QAC9C,wBAAwB;QACxB,2BAA2B;KAC3B,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACJ,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,OAAO,CAAC;YAChB,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAa;IACnD,sEAAsE;IACtE,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,aAAa,GAA6B,EAAE,CAAC;IAEjD,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,wCAAwC;QACxC,QAAQ,GAAG,OAAO,CAAC,QAAQ;aACzB,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAE,GAAW,CAAC,OAAO,CAAC;aAC3C,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aAC7B,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,uBAAuB;QAE5E,mCAAmC;QACnC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAK,GAAW,CAAC,OAAO;gBAAE,SAAS;YACnC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM;gBAAE,SAAS;YAE7C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ;qBAC9B,MAAM,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAE,MAAc,CAAC,OAAO,CAAC;qBACjD,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;qBACnC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC;gBAEpD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,aAAa,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;gBACtC,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;SAAM,CAAC;QACP,wCAAwC;QACxC,QAAQ,GAAG;YACV,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;YAChD,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO;SAC3C,CAAC;QACF,uBAAuB;QACvB,aAAa,GAAG;YACf,SAAS,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC;YACzE,KAAK,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,CAAC;YAC1F,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC;YACtE,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACjD,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC;YAC1D,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;YACzB,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;YACzB,KAAK,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;SAC/F,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvC,mCAAmC;IACnC,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,eAAe,IAAI,YAAY,GAAG,yBAAyB,OAAO,sFAAsF,CAAC;QAC1J,CAAC;IACF,CAAC;IAED,OAAO;;;;;;;;;gBASQ,WAAW;;;;;EAKzB,eAAe;;;;;;;CAOhB,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAa;IAClD,yCAAyC;IACzC,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,aAAa,GAA4C,EAAE,CAAC;IAEhE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,gEAAgE;QAChE,QAAQ,GAAG,OAAO,CAAC,QAAQ;aACzB,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAE,GAAW,CAAC,OAAO,CAAC;aAC3C,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YACjB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAqB,CAAC;QACzC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAmB,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,uBAAuB;QAExF,mCAAmC;QACnC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAK,GAAW,CAAC,OAAO;gBAAE,SAAS;YACnC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM;gBAAE,SAAS;YAE7C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ;qBAC9B,MAAM,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAE,MAAc,CAAC,OAAO,CAAC;qBACjD,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;oBACpB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;oBAC3C,OAAO,CAAC,OAAO,EAAE,OAAO,CAAqB,CAAC;gBAC/C,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAmB,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC;gBAEhE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,aAAa,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;gBACtC,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;SAAM,CAAC;QACP,wCAAwC;QACxC,QAAQ,GAAG;YACV,CAAC,QAAQ,EAAE,sDAAsD,CAAC;YAClE,CAAC,WAAW,EAAE,qDAAqD,CAAC;YACpE,CAAC,OAAO,EAAE,4BAA4B,CAAC;YACvC,CAAC,QAAQ,EAAE,qCAAqC,CAAC;YACjD,CAAC,MAAM,EAAE,sBAAsB,CAAC;YAChC,CAAC,KAAK,EAAE,sDAAsD,CAAC;YAC/D,CAAC,KAAK,EAAE,+BAA+B,CAAC;YACxC,CAAC,WAAW,EAAE,gCAAgC,CAAC;YAC/C,CAAC,OAAO,EAAE,qBAAqB,CAAC;YAChC,CAAC,OAAO,EAAE,qCAAqC,CAAC;SAChD,CAAC;QACF,uBAAuB;QACvB,aAAa,GAAG;YACf,SAAS,EAAE;gBACV,CAAC,QAAQ,EAAE,8BAA8B,CAAC;gBAC1C,CAAC,KAAK,EAAE,+BAA+B,CAAC;gBACxC,CAAC,MAAM,EAAE,8BAA8B,CAAC;gBACxC,CAAC,MAAM,EAAE,2BAA2B,CAAC;gBACrC,CAAC,MAAM,EAAE,uBAAuB,CAAC;gBACjC,CAAC,WAAW,EAAE,qBAAqB,CAAC;gBACpC,CAAC,MAAM,EAAE,qCAAqC,CAAC;aAC/C;YACD,KAAK,EAAE;gBACN,CAAC,MAAM,EAAE,6BAA6B,CAAC;gBACvC,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;gBACrD,CAAC,oBAAoB,EAAE,kCAAkC,CAAC;gBAC1D,CAAC,eAAe,EAAE,yBAAyB,CAAC;gBAC5C,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;aAC/C;YACD,SAAS,EAAE;gBACV,CAAC,UAAU,EAAE,qBAAqB,CAAC;gBACnC,CAAC,SAAS,EAAE,mBAAmB,CAAC;gBAChC,CAAC,KAAK,EAAE,iBAAiB,CAAC;gBAC1B,CAAC,cAAc,EAAE,qBAAqB,CAAC;gBACvC,CAAC,WAAW,EAAE,iBAAiB,CAAC;aAChC;YACD,MAAM,EAAE;gBACP,CAAC,QAAQ,EAAE,qBAAqB,CAAC;gBACjC,CAAC,QAAQ,EAAE,eAAe,CAAC;gBAC3B,CAAC,QAAQ,EAAE,aAAa,CAAC;gBACzB,CAAC,SAAS,EAAE,cAAc,CAAC;aAC3B;YACD,MAAM,EAAE;gBACP,CAAC,OAAO,EAAE,8BAA8B,CAAC;gBACzC,CAAC,OAAO,EAAE,qBAAqB,CAAC;gBAChC,CAAC,KAAK,EAAE,qBAAqB,CAAC;gBAC9B,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBAC9B,CAAC,YAAY,EAAE,kCAAkC,CAAC;aAClD;YACD,GAAG,EAAE;gBACJ,CAAC,SAAS,EAAE,wDAAwD,CAAC;gBACrE,CAAC,OAAO,EAAE,2CAA2C,CAAC;aACtD;YACD,KAAK,EAAE;gBACN,CAAC,KAAK,EAAE,iCAAiC,CAAC;gBAC1C,CAAC,SAAS,EAAE,eAAe,CAAC;aAC5B;YACD,KAAK,EAAE;gBACN,CAAC,SAAS,EAAE,mBAAmB,CAAC;gBAChC,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAChC,CAAC,IAAI,EAAE,uBAAuB,CAAC;gBAC/B,CAAC,WAAW,EAAE,8BAA8B,CAAC;gBAC7C,CAAC,WAAW,EAAE,qBAAqB,CAAC;gBACpC,CAAC,OAAO,EAAE,iBAAiB,CAAC;gBAC5B,CAAC,KAAK,EAAE,gBAAgB,CAAC;gBACzB,CAAC,KAAK,EAAE,gBAAgB,CAAC;gBACzB,CAAC,KAAK,EAAE,gBAAgB,CAAC;gBACzB,CAAC,MAAM,EAAE,oBAAoB,CAAC;aAC9B;SACD,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,WAAW,GAAG,QAAQ;SAC1B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC;SAC1C,IAAI,CAAC,YAAY,CAAC,CAAC;IAErB,6BAA6B;IAC7B,IAAI,mBAAmB,GAAG,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI;iBAClB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC;iBAC1C,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACzB,mBAAmB,IAAI,YAAY,GAAG;;;cAG3B,OAAO;;;;;CAKpB,CAAC;QACA,CAAC;IACF,CAAC;IAED,uCAAuC;IACvC,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9C,eAAe,IAAI,YAAY,GAAG,4BAA4B,GAAG,oBAAoB,CAAC;IACvF,CAAC;IAED,OAAO;;;;;;;;UAQE,WAAW;;;;;;EAMnB,eAAe;;;EAGf,mBAAmB;CACpB,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,gBAAwB;IAC7D,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QACnE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEjD,kDAAkD;QAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,0BAA0B;QAC1B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAEpE,kDAAkD;QAClD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,sFAAsF,CAAC;YAE1G,0DAA0D;YAC1D,MAAM,aAAa,GAClB,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAC5C,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAE7C,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpB,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,2BAA2B,UAAU,IAAI,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC;aAAM,CAAC;YACP,qCAAqC;YACrC,MAAM,UAAU,GAAG,sFAAsF,CAAC;YAC1G,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,yBAAyB,UAAU,IAAI,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,gBAAwB;IAC5D,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE/C,mDAAmD;QACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,0BAA0B;QAC1B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAEpE,0CAA0C;QAC1C,MAAM,SAAS,GAAG,mCAAmC,CAAC;QACtD,MAAM,YAAY,GAAG,mCAAmC,CAAC;QAEzD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEzD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,UAAU,GAAG,YAAY,CAAC;YAE9B,2BAA2B;YAC3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBACtG,UAAU,IAAI,2BAA2B,SAAS,IAAI,CAAC;gBACvD,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;YAED,8BAA8B;YAC9B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,UAAU,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B,GAAG,YAAY,IAAI,CAAC;gBAC9E,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACb,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACzC,CAAC;QACF,CAAC;aAAM,CAAC;YACP,oCAAoC;YACpC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,yBAAyB,SAAS,KAAK,YAAY,IAAI,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC9B,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEvC,6BAA6B;QAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,6CAA6C;YAC7C,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACpD,IAAI,MAAM,KAAK,SAAS,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;oBAC5D,OAAO,IAAI,CAAC,CAAC,2BAA2B;gBACzC,CAAC;gBACD,sDAAsD;gBACtD,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACR,oDAAoD;gBACpD,IAAI,CAAC;oBACJ,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACR,wEAAwE;oBACxE,mCAAmC;oBACnC,OAAO,KAAK,CAAC;gBACd,CAAC;YACF,CAAC;QACF,CAAC;QAED,iBAAiB;QACjB,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,gDAAgD;QAChD,qDAAqD;QACrD,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,SAAoB;IACjD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,KAAK,KAAK;YACjC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,oBAAoB,CAAC;QAEvC,gCAAgC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,CAAC,iBAAiB;YAC/B,CAAC;QACF,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB,SAAS,IAAI;YACxE,CAAC,CAAC,oBAAoB,SAAS,IAAI,CAAC;QAErC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAa;IACnD,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAE5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,gBAAwB,CAAC;IAC7B,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACrB,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACP,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC7B,oBAAoB;IACpB,IAAI,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7C,CAAC;IAED,0BAA0B;IAC1B,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO;QACN,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;KACvC,CAAC;AACH,CAAC"}
@@ -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;AAM7C;;;;;;;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"}
@@ -2,6 +2,25 @@ import { listTokens } from '../commands/list.js';
2
2
  import chalk from 'chalk';
3
3
  import { config } from '../config.js';
4
4
  import { writeStatusLineNew } from './status.js';
5
+ import { getUSDCAddress } from './constants.js';
6
+ // Well-known token aliases for Base mainnet
7
+ // Note: USDC is handled separately with network-aware resolution
8
+ const BASE_TOKEN_ALIASES = {
9
+ // Native ETH
10
+ 'eth': '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',
11
+ // Wrapped ETH
12
+ 'weth': '0x4200000000000000000000000000000000000006',
13
+ // cbBTC (Coinbase Wrapped BTC)
14
+ 'cbbtc': '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
15
+ // DAI
16
+ 'dai': '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb',
17
+ // USDbC (Bridged USDC)
18
+ 'usdbc': '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
19
+ // AERO
20
+ 'aero': '0x940181a94A35A4569E4529A3CDfB74e38FD98631',
21
+ // DEGEN
22
+ 'degen': '0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed',
23
+ };
5
24
  /**
6
25
  * Resolves a token identifier (ID, name, or symbol) to a token ID
7
26
  *
@@ -17,6 +36,29 @@ export async function resolveTokenId(identifier, client, silent = false) {
17
36
  }
18
37
  // Check if it's a UUID (token ID) - trim first to handle whitespace
19
38
  const trimmedIdentifier = identifier.trim();
39
+ // Check for well-known token aliases (case-insensitive)
40
+ const aliasLower = trimmedIdentifier.toLowerCase();
41
+ // Special handling for network-aware tokens (USDC)
42
+ if (aliasLower === 'usdc') {
43
+ const network = client.getNetwork();
44
+ try {
45
+ const usdcAddress = getUSDCAddress(network);
46
+ if (!silent) {
47
+ writeStatusLineNew(chalk.dim(`✅ Resolved ${trimmedIdentifier.toUpperCase()} to ${usdcAddress}`));
48
+ }
49
+ return usdcAddress;
50
+ }
51
+ catch (error) {
52
+ throw new Error(`Failed to resolve USDC for network ${network}: ${error instanceof Error ? error.message : 'Unknown error'}`);
53
+ }
54
+ }
55
+ // Check other aliases
56
+ if (BASE_TOKEN_ALIASES[aliasLower]) {
57
+ if (!silent) {
58
+ writeStatusLineNew(chalk.dim(`✅ Resolved ${trimmedIdentifier.toUpperCase()} to ${BASE_TOKEN_ALIASES[aliasLower]}`));
59
+ }
60
+ return BASE_TOKEN_ALIASES[aliasLower];
61
+ }
20
62
  if (trimmedIdentifier === "") {
21
63
  throw new Error("Token identifier cannot be empty or whitespace only");
22
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"token-resolver.js","sourceRoot":"","sources":["../../src/utils/token-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-resolver.js","sourceRoot":"","sources":["../../src/utils/token-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402-caller.d.ts","sourceRoot":"","sources":["../../src/utils/x402-caller.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,GAAG,CAAC;CACb,GACL,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAWD"}
@@ -0,0 +1,17 @@
1
+ import { HttpcatClient } from "../client.js";
2
+ import { config } from "../config.js";
3
+ /**
4
+ * Call an arbitrary x402-protected HTTP endpoint with automatic payment handling
5
+ */
6
+ export async function callX402Endpoint(url, options = {}) {
7
+ // Create client with optional private key override
8
+ const privateKey = options.privateKey || config.getPrivateKey();
9
+ const client = await HttpcatClient.create(privateKey);
10
+ // Call the endpoint using the client's method
11
+ return await client.callX402Endpoint(url, {
12
+ method: options.method,
13
+ body: options.body,
14
+ headers: options.headers,
15
+ });
16
+ }
17
+ //# sourceMappingURL=x402-caller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402-caller.js","sourceRoot":"","sources":["../../src/utils/x402-caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,UAKI,EAAE;IAQN,mDAAmD;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAK,MAAM,CAAC,aAAa,EAAU,CAAC;IACzE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEtD,8CAA8C;IAC9C,OAAO,MAAM,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;QACxC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;AACL,CAAC"}