httpcat-cli 0.2.11 → 0.2.12-rc.2

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 (57) hide show
  1. package/.github/workflows/sync-version.yml +19 -3
  2. package/README.md +346 -13
  3. package/Screenshot 2025-12-21 at 8.56.02/342/200/257PM.png +0 -0
  4. package/bun.lock +8 -1
  5. package/cat-spin.sh +417 -0
  6. package/dist/agent/ax-agent.d.ts.map +1 -0
  7. package/dist/agent/ax-agent.js +459 -0
  8. package/dist/agent/ax-agent.js.map +1 -0
  9. package/dist/agent/llm-factory.d.ts.map +1 -0
  10. package/dist/agent/llm-factory.js +82 -0
  11. package/dist/agent/llm-factory.js.map +1 -0
  12. package/dist/agent/setup-wizard.d.ts.map +1 -0
  13. package/dist/agent/setup-wizard.js +114 -0
  14. package/dist/agent/setup-wizard.js.map +1 -0
  15. package/dist/agent/tools.d.ts.map +1 -0
  16. package/dist/agent/tools.js +312 -0
  17. package/dist/agent/tools.js.map +1 -0
  18. package/dist/client.d.ts.map +1 -1
  19. package/dist/client.js +18 -0
  20. package/dist/client.js.map +1 -1
  21. package/dist/commands/balances.d.ts.map +1 -1
  22. package/dist/commands/balances.js +43 -41
  23. package/dist/commands/balances.js.map +1 -1
  24. package/dist/commands/chat.d.ts.map +1 -1
  25. package/dist/commands/chat.js +56 -46
  26. package/dist/commands/chat.js.map +1 -1
  27. package/dist/commands/create.d.ts.map +1 -1
  28. package/dist/commands/create.js +133 -5
  29. package/dist/commands/create.js.map +1 -1
  30. package/dist/commands/positions.d.ts.map +1 -1
  31. package/dist/commands/positions.js +51 -54
  32. package/dist/commands/positions.js.map +1 -1
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +296 -20
  35. package/dist/config.js.map +1 -1
  36. package/dist/index.js +316 -15
  37. package/dist/index.js.map +1 -1
  38. package/dist/interactive/cat-spin.d.ts.map +1 -0
  39. package/dist/interactive/cat-spin.js +448 -0
  40. package/dist/interactive/cat-spin.js.map +1 -0
  41. package/dist/interactive/shell.d.ts.map +1 -1
  42. package/dist/interactive/shell.js +2001 -180
  43. package/dist/interactive/shell.js.map +1 -1
  44. package/dist/mcp/tools.d.ts.map +1 -1
  45. package/dist/mcp/tools.js +1 -6
  46. package/dist/mcp/tools.js.map +1 -1
  47. package/dist/mcp/types.d.ts.map +1 -1
  48. package/dist/utils/loading.d.ts.map +1 -1
  49. package/dist/utils/loading.js +30 -0
  50. package/dist/utils/loading.js.map +1 -1
  51. package/dist/utils/privateKeyPrompt.d.ts.map +1 -1
  52. package/dist/utils/privateKeyPrompt.js +13 -9
  53. package/dist/utils/privateKeyPrompt.js.map +1 -1
  54. package/dist/utils/token-resolver.d.ts.map +1 -1
  55. package/dist/utils/token-resolver.js +32 -0
  56. package/dist/utils/token-resolver.js.map +1 -1
  57. package/package.json +3 -1
package/dist/config.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import Conf from "conf";
2
2
  import { createInterface } from "readline";
3
3
  import chalk from "chalk";
4
+ import path from "path";
5
+ import os from "os";
6
+ import fs from "fs";
4
7
  import { decryptData, encryptData, seedPhraseToPrivateKey, getAddressFromPrivateKey } from "./utils/wallet.js";
5
8
  const DEFAULT_ENVIRONMENTS = {
6
9
  local: {
@@ -30,21 +33,186 @@ const DEFAULT_CONFIG = {
30
33
  export class ConfigManager {
31
34
  store;
32
35
  session = null;
36
+ configPath;
33
37
  constructor() {
38
+ // Explicitly define where we want the config file
39
+ const configDir = path.join(os.homedir(), ".config", "httpcat");
40
+ this.configPath = path.join(configDir, "config.json");
41
+ // Ensure the directory exists
42
+ fs.mkdirSync(configDir, { recursive: true });
43
+ // Migrate from old config location first
44
+ this.migrateFromOldLocation();
45
+ // Migrate from wrong location if Conf previously created ~/.config/config.json
46
+ const wrongPath = path.join(os.homedir(), ".config", "config.json");
47
+ if (fs.existsSync(wrongPath)) {
48
+ // Always prefer the correct location, but sync if needed
49
+ if (!fs.existsSync(this.configPath)) {
50
+ // Copy from wrong location to correct location
51
+ try {
52
+ fs.copyFileSync(wrongPath, this.configPath);
53
+ }
54
+ catch (error) {
55
+ // Silently fail
56
+ }
57
+ }
58
+ else {
59
+ // Both exist - use the one with newer modification time
60
+ try {
61
+ const wrongTime = fs.statSync(wrongPath).mtimeMs;
62
+ const correctTime = fs.statSync(this.configPath).mtimeMs;
63
+ if (wrongTime > correctTime) {
64
+ // Wrong file is newer, copy it to correct location
65
+ fs.copyFileSync(wrongPath, this.configPath);
66
+ }
67
+ }
68
+ catch (error) {
69
+ // Silently fail
70
+ }
71
+ }
72
+ }
73
+ // Initialize Conf WITHOUT cwd - let it use default location, then we'll redirect
74
+ // Conf's default on macOS is ~/Library/Preferences/httpcat-nodejs/config.json
75
+ // But we want ~/.config/httpcat/config.json
76
+ // So we'll initialize Conf normally, then manually sync to our desired location
34
77
  this.store = new Conf({
35
78
  projectName: "httpcat",
36
79
  defaults: DEFAULT_CONFIG,
80
+ // Don't use cwd - it causes issues
37
81
  });
82
+ // Always sync from correct location to Conf's location on init
83
+ // This ensures Conf reads the right data
84
+ if (fs.existsSync(this.configPath)) {
85
+ try {
86
+ // Ensure Conf's directory exists
87
+ const confDir = path.dirname(this.store.path);
88
+ fs.mkdirSync(confDir, { recursive: true });
89
+ // Copy from correct location to Conf's location
90
+ fs.copyFileSync(this.configPath, this.store.path);
91
+ // Force Conf to reload by creating a new instance with the synced file
92
+ // Actually, Conf should auto-reload, but let's make sure by re-reading
93
+ this.store = new Conf({
94
+ projectName: "httpcat",
95
+ defaults: DEFAULT_CONFIG,
96
+ });
97
+ }
98
+ catch (error) {
99
+ // Silently fail
100
+ }
101
+ }
38
102
  // Migrate old privateKey format on first access
39
103
  this.migrateLegacyPrivateKey();
40
104
  }
105
+ /**
106
+ * Migrate config from old location to new location (~/.config/httpcat)
107
+ */
108
+ migrateFromOldLocation() {
109
+ try {
110
+ // Get old config location (default conf location without cwd)
111
+ const oldStore = new Conf({
112
+ projectName: "httpcat",
113
+ defaults: DEFAULT_CONFIG,
114
+ });
115
+ const oldPath = oldStore.path;
116
+ // Get new config location
117
+ const newConfigDir = path.join(os.homedir(), ".config", "httpcat");
118
+ const newPath = path.join(newConfigDir, "config.json");
119
+ // Check if old config exists and has data
120
+ if (fs.existsSync(oldPath)) {
121
+ const oldData = oldStore.store;
122
+ const hasOldData = Object.keys(oldData).length > 0 &&
123
+ (oldData.privateKey || oldData.accounts || oldData.encryptedPrivateKey || oldData.encryptedSeedPhrase);
124
+ // Check if new config already exists
125
+ const newConfigExists = fs.existsSync(newPath);
126
+ if (hasOldData && !newConfigExists) {
127
+ // Ensure new config directory exists
128
+ fs.mkdirSync(newConfigDir, { recursive: true });
129
+ // Copy the config file
130
+ fs.copyFileSync(oldPath, newPath);
131
+ // Also copy any other files in the old directory (if any)
132
+ const oldDir = path.dirname(oldPath);
133
+ if (fs.existsSync(oldDir)) {
134
+ const files = fs.readdirSync(oldDir);
135
+ for (const file of files) {
136
+ if (file !== "config.json") {
137
+ const oldFile = path.join(oldDir, file);
138
+ const newFile = path.join(newConfigDir, file);
139
+ if (fs.statSync(oldFile).isFile()) {
140
+ fs.copyFileSync(oldFile, newFile);
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+ catch (error) {
149
+ // Silently fail migration - don't break the app if migration fails
150
+ // The user can manually copy if needed
151
+ }
152
+ }
41
153
  get(key) {
154
+ // Always check the correct path first and sync if needed
155
+ if (this.store.path !== this.configPath && fs.existsSync(this.configPath)) {
156
+ try {
157
+ // Check if correct file is newer or Conf's file doesn't exist
158
+ const needsSync = !fs.existsSync(this.store.path) ||
159
+ (fs.existsSync(this.store.path) &&
160
+ fs.statSync(this.configPath).mtimeMs > fs.statSync(this.store.path).mtimeMs);
161
+ if (needsSync) {
162
+ // Ensure Conf's directory exists
163
+ const confDir = path.dirname(this.store.path);
164
+ fs.mkdirSync(confDir, { recursive: true });
165
+ // Copy from correct location to Conf's location
166
+ fs.copyFileSync(this.configPath, this.store.path);
167
+ // Recreate Conf instance to force reload
168
+ this.store = new Conf({
169
+ projectName: "httpcat",
170
+ defaults: DEFAULT_CONFIG,
171
+ });
172
+ }
173
+ }
174
+ catch (error) {
175
+ // Silently fail
176
+ }
177
+ }
42
178
  return this.store.get(key);
43
179
  }
44
180
  set(key, value) {
45
181
  this.store.set(key, value);
182
+ // Always sync to the correct path after any write
183
+ if (this.store.path !== this.configPath && fs.existsSync(this.store.path)) {
184
+ try {
185
+ // Ensure directory exists
186
+ fs.mkdirSync(path.dirname(this.configPath), { recursive: true });
187
+ // Copy from Conf's location to correct location
188
+ fs.copyFileSync(this.store.path, this.configPath);
189
+ }
190
+ catch (error) {
191
+ // Silently fail sync - not critical
192
+ }
193
+ }
46
194
  }
47
195
  getAll() {
196
+ // Ensure we sync before getting all data
197
+ if (this.store.path !== this.configPath && fs.existsSync(this.configPath)) {
198
+ try {
199
+ const needsSync = !fs.existsSync(this.store.path) ||
200
+ (fs.existsSync(this.store.path) &&
201
+ fs.statSync(this.configPath).mtimeMs > fs.statSync(this.store.path).mtimeMs);
202
+ if (needsSync) {
203
+ const confDir = path.dirname(this.store.path);
204
+ fs.mkdirSync(confDir, { recursive: true });
205
+ fs.copyFileSync(this.configPath, this.store.path);
206
+ this.store = new Conf({
207
+ projectName: "httpcat",
208
+ defaults: DEFAULT_CONFIG,
209
+ });
210
+ }
211
+ }
212
+ catch (error) {
213
+ // Silently fail
214
+ }
215
+ }
48
216
  return this.store.store;
49
217
  }
50
218
  has(key) {
@@ -57,15 +225,54 @@ export class ConfigManager {
57
225
  this.store.clear();
58
226
  }
59
227
  getConfigPath() {
60
- return this.store.path;
228
+ // Return the path we want to use (the correct one)
229
+ return this.configPath;
61
230
  }
62
231
  isConfigured() {
63
- // Check new format first
232
+ // First, try to read directly from the correct path as a fallback
233
+ // This ensures we check the actual file location
234
+ if (fs.existsSync(this.configPath)) {
235
+ try {
236
+ const configData = JSON.parse(fs.readFileSync(this.configPath, "utf-8"));
237
+ // Check if it has accounts or private key
238
+ if (configData.accounts && configData.accounts.length > 0) {
239
+ return true;
240
+ }
241
+ if (configData.privateKey || configData.encryptedPrivateKey || configData.encryptedSeedPhrase) {
242
+ return true;
243
+ }
244
+ }
245
+ catch (error) {
246
+ // If direct read fails, fall through to Conf check
247
+ }
248
+ }
249
+ // Also ensure we've synced from the correct path to Conf
250
+ if (this.store.path !== this.configPath && fs.existsSync(this.configPath)) {
251
+ try {
252
+ const needsSync = !fs.existsSync(this.store.path) ||
253
+ (fs.existsSync(this.store.path) &&
254
+ fs.statSync(this.configPath).mtimeMs > fs.statSync(this.store.path).mtimeMs);
255
+ if (needsSync) {
256
+ const confDir = path.dirname(this.store.path);
257
+ fs.mkdirSync(confDir, { recursive: true });
258
+ fs.copyFileSync(this.configPath, this.store.path);
259
+ // Recreate Conf to force reload
260
+ this.store = new Conf({
261
+ projectName: "httpcat",
262
+ defaults: DEFAULT_CONFIG,
263
+ });
264
+ }
265
+ }
266
+ catch (error) {
267
+ // Silently fail
268
+ }
269
+ }
270
+ // Check new format first via Conf
64
271
  const accounts = this.get("accounts");
65
272
  if (accounts && accounts.length > 0) {
66
273
  return true;
67
274
  }
68
- // Check legacy format
275
+ // Check legacy format via Conf
69
276
  return this.has("privateKey") && !!this.get("privateKey");
70
277
  }
71
278
  /**
@@ -112,24 +319,10 @@ export class ConfigManager {
112
319
  console.log(chalk.cyan("=".repeat(80)));
113
320
  console.log();
114
321
  if (!options.skipPrivateKey) {
115
- // Private key
116
- console.log(chalk.dim("🔒 Security & Privacy:"));
117
- console.log(chalk.dim(" • Your private key is stored locally on your machine only"));
118
- console.log(chalk.dim(" • It is never sent to any server or third party"));
119
- console.log(chalk.dim(" • It is only used locally to sign transactions"));
120
- console.log(chalk.dim(` • Stored in: ${this.getConfigPath()}`));
121
- console.log(chalk.dim(" • Alternative: Use HTTPCAT_PRIVATE_KEY environment variable"));
322
+ // Use the nice wallet setup wizard instead of directly asking for private key
323
+ const { promptForPrivateKey } = await import("./utils/privateKeyPrompt.js");
324
+ await promptForPrivateKey();
122
325
  console.log();
123
- const privateKey = await this.prompt("Enter your private key (with 0x prefix): ");
124
- if (!privateKey ||
125
- !privateKey.startsWith("0x") ||
126
- privateKey.length !== 66) {
127
- throw new Error("Invalid private key format. Must start with 0x and be 66 characters long.");
128
- }
129
- this.set("privateKey", privateKey);
130
- console.log(chalk.green("✅ Private key saved"));
131
- console.log(chalk.dim("🔐 Remember: Your private key stays on your machine."));
132
- console.log(chalk.dim(" It is never transmitted to any server or third party.\n"));
133
326
  }
134
327
  // Network selection
135
328
  const network = "base-sepolia";
@@ -492,6 +685,89 @@ export class ConfigManager {
492
685
  }
493
686
  return this.get("agentUrl");
494
687
  }
688
+ /**
689
+ * AI Agent configuration methods
690
+ */
691
+ getAIAgentConfig() {
692
+ return this.get("aiAgent");
693
+ }
694
+ hasAIAgentConfig() {
695
+ const agentConfig = this.getAIAgentConfig();
696
+ return !!(agentConfig?.provider && agentConfig?.apiKey);
697
+ }
698
+ setAIAgentConfig(config) {
699
+ // Encrypt API key if password is set
700
+ if (config?.apiKey) {
701
+ const password = this.getPassword();
702
+ if (password) {
703
+ const encrypted = encryptData(config.apiKey, password);
704
+ this.set("aiAgent", {
705
+ ...config,
706
+ apiKey: encrypted,
707
+ });
708
+ }
709
+ else {
710
+ // No password - store as plain (but in apiKey field)
711
+ this.set("aiAgent", config);
712
+ }
713
+ }
714
+ else {
715
+ this.set("aiAgent", config);
716
+ }
717
+ }
718
+ /**
719
+ * Validate OpenAI API key format
720
+ */
721
+ validateOpenAIApiKey(apiKey) {
722
+ // OpenAI keys can start with "sk-" (legacy) or "sk-proj-" (newer project keys)
723
+ // Newer keys are much longer, so we just check prefix and minimum length
724
+ const trimmed = apiKey.trim();
725
+ return (trimmed.startsWith("sk-") || trimmed.startsWith("sk-proj-")) && trimmed.length >= 20;
726
+ }
727
+ /**
728
+ * Validate Anthropic API key format
729
+ */
730
+ validateAnthropicApiKey(apiKey) {
731
+ // Anthropic keys should start with "sk-ant-" and have reasonable length
732
+ const trimmed = apiKey.trim();
733
+ return trimmed.startsWith("sk-ant-") && trimmed.length >= 20;
734
+ }
735
+ getAIAgentApiKey() {
736
+ const agentConfig = this.getAIAgentConfig();
737
+ if (!agentConfig?.apiKey) {
738
+ return undefined;
739
+ }
740
+ const password = this.getPassword();
741
+ let apiKey;
742
+ if (password) {
743
+ // Decrypt using session
744
+ this.ensureSessionValid();
745
+ try {
746
+ apiKey = decryptData(agentConfig.apiKey, password);
747
+ }
748
+ catch (error) {
749
+ throw new Error("Failed to decrypt AI agent API key. Session may have expired.");
750
+ }
751
+ }
752
+ else {
753
+ // No password - stored as plain
754
+ apiKey = agentConfig.apiKey;
755
+ }
756
+ // Trim whitespace that might have been accidentally included
757
+ apiKey = apiKey.trim();
758
+ // Validate API key format based on provider
759
+ if (apiKey && agentConfig.provider) {
760
+ if (agentConfig.provider === "openai" && !this.validateOpenAIApiKey(apiKey)) {
761
+ throw new Error("Invalid OpenAI API key format. OpenAI keys should start with 'sk-'. " +
762
+ "Please run 'agent --setup' (or 'cat --setup') to reconfigure your API key.");
763
+ }
764
+ if (agentConfig.provider === "anthropic" && !this.validateAnthropicApiKey(apiKey)) {
765
+ throw new Error("Invalid Anthropic API key format. Anthropic keys should start with 'sk-ant-'. " +
766
+ "Please run 'agent --setup' (or 'cat --setup') to reconfigure your API key.");
767
+ }
768
+ }
769
+ return apiKey;
770
+ }
495
771
  }
496
772
  export const config = new ConfigManager();
497
773
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}