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.
- package/.github/workflows/ci.yml +3 -0
- package/.github/workflows/rc-publish.yml +6 -0
- package/.github/workflows/release.yml +6 -0
- package/README.md +1306 -130
- package/bun.lock +2 -2
- package/dist/agent/ax-agent.d.ts.map +1 -1
- package/dist/agent/ax-agent.js +64 -1
- package/dist/agent/ax-agent.js.map +1 -1
- package/dist/agent/tools.d.ts.map +1 -1
- package/dist/agent/tools.js +107 -7
- package/dist/agent/tools.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +258 -11
- package/dist/client.js.map +1 -1
- package/dist/commands/account.d.ts.map +1 -1
- package/dist/commands/account.js +34 -14
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +114 -247
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/approve.d.ts.map +1 -0
- package/dist/commands/approve.js +505 -0
- package/dist/commands/approve.js.map +1 -0
- package/dist/commands/automation.d.ts.map +1 -0
- package/dist/commands/automation.js +346 -0
- package/dist/commands/automation.js.map +1 -0
- package/dist/commands/balances.d.ts.map +1 -1
- package/dist/commands/balances.js +31 -8
- package/dist/commands/balances.js.map +1 -1
- package/dist/commands/buy.d.ts.map +1 -1
- package/dist/commands/buy.js +88 -115
- package/dist/commands/buy.js.map +1 -1
- package/dist/commands/call.d.ts.map +1 -0
- package/dist/commands/call.js +51 -0
- package/dist/commands/call.js.map +1 -0
- package/dist/commands/cex.d.ts.map +1 -0
- package/dist/commands/cex.js +958 -0
- package/dist/commands/cex.js.map +1 -0
- package/dist/commands/claim.d.ts.map +1 -1
- package/dist/commands/claim.js +231 -4
- package/dist/commands/claim.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +88 -3
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/gasless-swap.d.ts.map +1 -0
- package/dist/commands/gasless-swap.js +232 -0
- package/dist/commands/gasless-swap.js.map +1 -0
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +58 -4
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/info.js +1 -1
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/launchpad.d.ts.map +1 -0
- package/dist/commands/launchpad.js +708 -0
- package/dist/commands/launchpad.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/market.d.ts.map +1 -0
- package/dist/commands/market.js +960 -0
- package/dist/commands/market.js.map +1 -0
- package/dist/commands/mcp-install.d.ts.map +1 -0
- package/dist/commands/mcp-install.js +387 -0
- package/dist/commands/mcp-install.js.map +1 -0
- package/dist/commands/opps.d.ts.map +1 -0
- package/dist/commands/opps.js +409 -0
- package/dist/commands/opps.js.map +1 -0
- package/dist/commands/perps.d.ts.map +1 -0
- package/dist/commands/perps.js +248 -0
- package/dist/commands/perps.js.map +1 -0
- package/dist/commands/portfolio.d.ts.map +1 -0
- package/dist/commands/portfolio.js +679 -0
- package/dist/commands/portfolio.js.map +1 -0
- package/dist/commands/positions.js +1 -1
- package/dist/commands/positions.js.map +1 -1
- package/dist/commands/predict.d.ts.map +1 -0
- package/dist/commands/predict.js +280 -0
- package/dist/commands/predict.js.map +1 -0
- package/dist/commands/predictions.d.ts.map +1 -0
- package/dist/commands/predictions.js +486 -0
- package/dist/commands/predictions.js.map +1 -0
- package/dist/commands/risk.d.ts.map +1 -0
- package/dist/commands/risk.js +225 -0
- package/dist/commands/risk.js.map +1 -0
- package/dist/commands/security.d.ts.map +1 -0
- package/dist/commands/security.js +244 -0
- package/dist/commands/security.js.map +1 -0
- package/dist/commands/sell.js +3 -3
- package/dist/commands/sell.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -0
- package/dist/commands/send.js +733 -0
- package/dist/commands/send.js.map +1 -0
- package/dist/commands/sign.d.ts.map +1 -0
- package/dist/commands/sign.js +1048 -0
- package/dist/commands/sign.js.map +1 -0
- package/dist/commands/swap.d.ts.map +1 -1
- package/dist/commands/swap.js +245 -2
- package/dist/commands/swap.js.map +1 -1
- package/dist/commands/system.d.ts.map +1 -0
- package/dist/commands/system.js +417 -0
- package/dist/commands/system.js.map +1 -0
- package/dist/commands/tools/index.d.ts.map +1 -0
- package/dist/commands/tools/index.js +2040 -0
- package/dist/commands/tools/index.js.map +1 -0
- package/dist/commands/trade.d.ts.map +1 -0
- package/dist/commands/trade.js +237 -0
- package/dist/commands/trade.js.map +1 -0
- package/dist/commands/transactions.js +1 -1
- package/dist/commands/transactions.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +429 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +91 -9
- package/dist/config.js.map +1 -1
- package/dist/index.js +4409 -1050
- package/dist/index.js.map +1 -1
- package/dist/interactive/art.d.ts.map +1 -1
- package/dist/interactive/art.js +33 -0
- package/dist/interactive/art.js.map +1 -1
- package/dist/interactive/shell.d.ts.map +1 -1
- package/dist/interactive/shell.js +81 -5
- package/dist/interactive/shell.js.map +1 -1
- package/dist/mcp/context.d.ts.map +1 -0
- package/dist/mcp/context.js +211 -0
- package/dist/mcp/context.js.map +1 -0
- package/dist/mcp/onboarding.d.ts.map +1 -0
- package/dist/mcp/onboarding.js +266 -0
- package/dist/mcp/onboarding.js.map +1 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +222 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +51 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +4119 -169
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/ui/components/shell/ShellInput.d.ts.map +1 -1
- package/dist/ui/components/shell/ShellInput.js +4 -0
- package/dist/ui/components/shell/ShellInput.js.map +1 -1
- package/dist/utils/admin.d.ts.map +1 -0
- package/dist/utils/admin.js +144 -0
- package/dist/utils/admin.js.map +1 -0
- package/dist/utils/autoSetup.d.ts.map +1 -0
- package/dist/utils/autoSetup.js +252 -0
- package/dist/utils/autoSetup.js.map +1 -0
- package/dist/utils/build-constants.d.ts.map +1 -0
- package/dist/utils/build-constants.js +10 -0
- package/dist/utils/build-constants.js.map +1 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +10 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +9 -3
- package/dist/utils/formatting.js.map +1 -1
- package/dist/utils/llm-cli-config.d.ts.map +1 -0
- package/dist/utils/llm-cli-config.js +963 -0
- package/dist/utils/llm-cli-config.js.map +1 -0
- package/dist/utils/llm-cli-detector.d.ts.map +1 -0
- package/dist/utils/llm-cli-detector.js +202 -0
- package/dist/utils/llm-cli-detector.js.map +1 -0
- package/dist/utils/maintenance.d.ts.map +1 -0
- package/dist/utils/maintenance.js +17 -0
- package/dist/utils/maintenance.js.map +1 -0
- package/dist/utils/mcp-config.d.ts.map +1 -0
- package/dist/utils/mcp-config.js +77 -0
- package/dist/utils/mcp-config.js.map +1 -0
- package/dist/utils/privateKeyPrompt.d.ts.map +1 -1
- package/dist/utils/privateKeyPrompt.js +287 -119
- package/dist/utils/privateKeyPrompt.js.map +1 -1
- package/dist/utils/process-cleanup.d.ts.map +1 -0
- package/dist/utils/process-cleanup.js +136 -0
- package/dist/utils/process-cleanup.js.map +1 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +56 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/shell-setup.d.ts.map +1 -0
- package/dist/utils/shell-setup.js +531 -0
- package/dist/utils/shell-setup.js.map +1 -0
- package/dist/utils/token-resolver.d.ts.map +1 -1
- package/dist/utils/token-resolver.js +42 -0
- package/dist/utils/token-resolver.js.map +1 -1
- package/dist/utils/x402-caller.d.ts.map +1 -0
- package/dist/utils/x402-caller.js +17 -0
- package/dist/utils/x402-caller.js.map +1 -0
- package/docs/README.md +28 -0
- package/docs/agent/README.md +18 -0
- package/docs/api/README.md +41 -0
- package/docs/cli/README.md +42 -0
- package/docs/guides/README.md +26 -0
- package/docs/implementation/README.md +18 -0
- package/docs/planning/README.md +19 -0
- package/docs/testing/README.md +15 -0
- package/docs/ux/README.md +16 -0
- package/package.json +9 -3
- package/scripts/cat-spin.sh +417 -0
- package/scripts/deprecate-rc-versions.js +58 -0
- package/scripts/inject-build-constants.js +43 -0
- package/scripts/monitor-foobar.js +117 -0
- package/test.txt +12 -0
- package/tests/fixtures/test-data.json +16 -0
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { execSync } from "child_process";
|
|
4
|
+
import { findHttpcatBinary } from "../utils/shell-setup.js";
|
|
5
|
+
import { readFileSync, realpathSync, lstatSync } from "fs";
|
|
6
|
+
import { fileURLToPath } from "url";
|
|
7
|
+
import { dirname, join, resolve } from "path";
|
|
8
|
+
// Get current version from package.json
|
|
9
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
+
const __dirname = dirname(__filename);
|
|
11
|
+
const packageJson = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf-8"));
|
|
12
|
+
const CURRENT_VERSION = packageJson.version;
|
|
13
|
+
/**
|
|
14
|
+
* Check if a command exists in PATH
|
|
15
|
+
*/
|
|
16
|
+
function commandExists(command) {
|
|
17
|
+
try {
|
|
18
|
+
execSync(`which ${command}`, { stdio: "ignore" });
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Detect the installation method based on binary location and available commands
|
|
27
|
+
*/
|
|
28
|
+
function detectInstallationMethod() {
|
|
29
|
+
const binaryPath = findHttpcatBinary();
|
|
30
|
+
if (!binaryPath) {
|
|
31
|
+
// Can't find binary, assume local dev
|
|
32
|
+
return "local";
|
|
33
|
+
}
|
|
34
|
+
// First, check if binary path indicates a global installation
|
|
35
|
+
// This should be checked BEFORE checking if it's a local symlink
|
|
36
|
+
// Check for npm/nvm installations first
|
|
37
|
+
if (binaryPath.includes(".nvm") || binaryPath.includes(".npm") || binaryPath.includes("node_modules")) {
|
|
38
|
+
if (commandExists("npm")) {
|
|
39
|
+
return "npm";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Check for yarn installations
|
|
43
|
+
if (binaryPath.includes(".yarn") || binaryPath.includes("yarn")) {
|
|
44
|
+
if (commandExists("yarn")) {
|
|
45
|
+
return "yarn";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Check for Homebrew installations
|
|
49
|
+
if (binaryPath.includes("/opt/homebrew/bin") || binaryPath.includes("/usr/local/bin")) {
|
|
50
|
+
if (commandExists("brew")) {
|
|
51
|
+
try {
|
|
52
|
+
execSync("brew list httpcat", { stdio: "ignore" });
|
|
53
|
+
return "homebrew";
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// Not installed via Homebrew, continue checking
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Now check if it's a symlink pointing to local project (yarn link scenario)
|
|
61
|
+
let resolvedBinary;
|
|
62
|
+
let isSymlink = false;
|
|
63
|
+
try {
|
|
64
|
+
const stats = lstatSync(binaryPath);
|
|
65
|
+
isSymlink = stats.isSymbolicLink();
|
|
66
|
+
resolvedBinary = realpathSync(binaryPath);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Can't resolve, continue with binaryPath
|
|
70
|
+
resolvedBinary = binaryPath;
|
|
71
|
+
}
|
|
72
|
+
// Check if it's a local development installation
|
|
73
|
+
// If binary is in the project's dist directory, it's local
|
|
74
|
+
const projectDistPath = join(__dirname, "../../dist/index.js");
|
|
75
|
+
const isLocalBinary = resolvedBinary === resolve(projectDistPath);
|
|
76
|
+
// If it's a symlink pointing to local project, but the symlink itself is in a global location,
|
|
77
|
+
// we should still update the global installation
|
|
78
|
+
if (isSymlink && isLocalBinary) {
|
|
79
|
+
// The symlink points to local, but check where the symlink is located
|
|
80
|
+
// If it's in a global bin directory, update the global installation
|
|
81
|
+
if (binaryPath.includes(".nvm") || binaryPath.includes(".npm") || binaryPath.includes("node_modules")) {
|
|
82
|
+
if (commandExists("npm")) {
|
|
83
|
+
return "npm";
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (binaryPath.includes(".yarn") || binaryPath.includes("yarn")) {
|
|
87
|
+
if (commandExists("yarn")) {
|
|
88
|
+
return "yarn";
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (binaryPath.includes("/opt/homebrew/bin") || binaryPath.includes("/usr/local/bin")) {
|
|
92
|
+
if (commandExists("brew")) {
|
|
93
|
+
try {
|
|
94
|
+
execSync("brew list httpcat", { stdio: "ignore" });
|
|
95
|
+
return "homebrew";
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Not installed via Homebrew
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// If it's actually a local binary (not symlinked), return local
|
|
104
|
+
if (isLocalBinary && !isSymlink) {
|
|
105
|
+
return "local";
|
|
106
|
+
}
|
|
107
|
+
// Default to npm if npm exists and we haven't determined the method yet
|
|
108
|
+
if (commandExists("npm")) {
|
|
109
|
+
return "npm";
|
|
110
|
+
}
|
|
111
|
+
// If we still can't determine, assume local
|
|
112
|
+
return "local";
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Fetch version information from npm registry
|
|
116
|
+
*/
|
|
117
|
+
async function fetchVersionInfo() {
|
|
118
|
+
const response = await fetch("https://registry.npmjs.org/httpcat-cli");
|
|
119
|
+
if (!response.ok) {
|
|
120
|
+
throw new Error(`Failed to fetch version info: ${response.status} ${response.statusText}`);
|
|
121
|
+
}
|
|
122
|
+
return (await response.json());
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get the latest version (stable or RC)
|
|
126
|
+
*/
|
|
127
|
+
async function getLatestVersion(rc = false) {
|
|
128
|
+
const registryData = await fetchVersionInfo();
|
|
129
|
+
if (rc) {
|
|
130
|
+
// Check for rc dist-tag first
|
|
131
|
+
if (registryData["dist-tags"].rc) {
|
|
132
|
+
return registryData["dist-tags"].rc;
|
|
133
|
+
}
|
|
134
|
+
// Otherwise, find the highest version with -rc suffix
|
|
135
|
+
const rcVersions = Object.keys(registryData.versions)
|
|
136
|
+
.filter((v) => v.includes("-rc"))
|
|
137
|
+
.sort((a, b) => {
|
|
138
|
+
// Parse version parts
|
|
139
|
+
const aMatch = a.match(/^(\d+)\.(\d+)\.(\d+)-rc\.?(\d+)$/);
|
|
140
|
+
const bMatch = b.match(/^(\d+)\.(\d+)\.(\d+)-rc\.?(\d+)$/);
|
|
141
|
+
if (!aMatch || !bMatch) {
|
|
142
|
+
// Fallback to string comparison
|
|
143
|
+
return b.localeCompare(a);
|
|
144
|
+
}
|
|
145
|
+
// Compare major, minor, patch
|
|
146
|
+
for (let i = 1; i <= 3; i++) {
|
|
147
|
+
const aVal = parseInt(aMatch[i]);
|
|
148
|
+
const bVal = parseInt(bMatch[i]);
|
|
149
|
+
if (aVal !== bVal) {
|
|
150
|
+
return bVal - aVal; // Descending order
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Compare RC number if same base version
|
|
154
|
+
const aRc = parseInt(aMatch[4]);
|
|
155
|
+
const bRc = parseInt(bMatch[4]);
|
|
156
|
+
return bRc - aRc;
|
|
157
|
+
});
|
|
158
|
+
if (rcVersions.length > 0) {
|
|
159
|
+
return rcVersions[0];
|
|
160
|
+
}
|
|
161
|
+
throw new Error("No RC version found");
|
|
162
|
+
}
|
|
163
|
+
// For stable versions, find the actual latest stable version
|
|
164
|
+
// This handles the case where latest tag might point to an older version
|
|
165
|
+
// but there's a newer stable version available
|
|
166
|
+
const allVersions = Object.keys(registryData.versions);
|
|
167
|
+
const stableVersions = allVersions
|
|
168
|
+
.filter((v) => !v.includes("-rc") && !v.includes("-beta") && !v.includes("-alpha"))
|
|
169
|
+
.sort((a, b) => {
|
|
170
|
+
const aParts = a.split(".").map(Number);
|
|
171
|
+
const bParts = b.split(".").map(Number);
|
|
172
|
+
const maxLen = Math.max(aParts.length, bParts.length);
|
|
173
|
+
for (let i = 0; i < maxLen; i++) {
|
|
174
|
+
const aVal = aParts[i] || 0;
|
|
175
|
+
const bVal = bParts[i] || 0;
|
|
176
|
+
if (aVal !== bVal) {
|
|
177
|
+
return bVal - aVal; // Descending order
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return 0;
|
|
181
|
+
});
|
|
182
|
+
// Return the highest stable version, or fall back to latest tag
|
|
183
|
+
return stableVersions.length > 0 ? stableVersions[0] : registryData["dist-tags"].latest;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Compare two version strings
|
|
187
|
+
* Returns: -1 if v1 < v2, 0 if v1 === v2, 1 if v1 > v2
|
|
188
|
+
*/
|
|
189
|
+
function compareVersions(v1, v2) {
|
|
190
|
+
// Parse version parts
|
|
191
|
+
const parseVersion = (v) => {
|
|
192
|
+
const match = v.match(/^(\d+)\.(\d+)\.(\d+)(?:-rc\.?(\d+))?$/);
|
|
193
|
+
if (match) {
|
|
194
|
+
return {
|
|
195
|
+
major: parseInt(match[1]),
|
|
196
|
+
minor: parseInt(match[2]),
|
|
197
|
+
patch: parseInt(match[3]),
|
|
198
|
+
rc: match[4] ? parseInt(match[4]) : null,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
// Fallback for non-standard versions
|
|
202
|
+
const parts = v.split("-")[0].split(".").map(Number);
|
|
203
|
+
return {
|
|
204
|
+
major: parts[0] || 0,
|
|
205
|
+
minor: parts[1] || 0,
|
|
206
|
+
patch: parts[2] || 0,
|
|
207
|
+
rc: null,
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
const v1Parsed = parseVersion(v1);
|
|
211
|
+
const v2Parsed = parseVersion(v2);
|
|
212
|
+
// Compare major, minor, patch
|
|
213
|
+
if (v1Parsed.major !== v2Parsed.major) {
|
|
214
|
+
return v1Parsed.major < v2Parsed.major ? -1 : 1;
|
|
215
|
+
}
|
|
216
|
+
if (v1Parsed.minor !== v2Parsed.minor) {
|
|
217
|
+
return v1Parsed.minor < v2Parsed.minor ? -1 : 1;
|
|
218
|
+
}
|
|
219
|
+
if (v1Parsed.patch !== v2Parsed.patch) {
|
|
220
|
+
return v1Parsed.patch < v2Parsed.patch ? -1 : 1;
|
|
221
|
+
}
|
|
222
|
+
// If base versions are equal, compare RC status
|
|
223
|
+
// Stable versions (no RC) are considered newer than RC versions of the SAME base version
|
|
224
|
+
// But if the RC is for a higher patch version (e.g., 0.3.0-rc.24 is RC for 0.3.1),
|
|
225
|
+
// we need to check if there's a newer stable version available
|
|
226
|
+
if (v1Parsed.rc === null && v2Parsed.rc !== null) {
|
|
227
|
+
// v1 is stable, v2 is RC - stable is newer if same base
|
|
228
|
+
return 1; // v1 is stable, v2 is RC, so v1 > v2
|
|
229
|
+
}
|
|
230
|
+
if (v1Parsed.rc !== null && v2Parsed.rc === null) {
|
|
231
|
+
// v1 is RC, v2 is stable - if same base version, stable is newer
|
|
232
|
+
// But if RC base version suggests a future release (e.g., 0.3.0-rc.24 for 0.3.1),
|
|
233
|
+
// we should check if there's a newer stable version
|
|
234
|
+
// For now, if base versions match, stable wins
|
|
235
|
+
// If they don't match, the higher version wins (handled above)
|
|
236
|
+
return -1; // v1 is RC, v2 is stable with same base, so v1 < v2
|
|
237
|
+
}
|
|
238
|
+
if (v1Parsed.rc !== null && v2Parsed.rc !== null) {
|
|
239
|
+
// Both are RC, compare RC numbers
|
|
240
|
+
if (v1Parsed.rc !== v2Parsed.rc) {
|
|
241
|
+
return v1Parsed.rc < v2Parsed.rc ? -1 : 1;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return 0; // Versions are identical
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Execute update command based on installation method
|
|
248
|
+
*/
|
|
249
|
+
function executeUpdate(method, version, json) {
|
|
250
|
+
let command;
|
|
251
|
+
switch (method) {
|
|
252
|
+
case "npm":
|
|
253
|
+
command = `npm install -g httpcat-cli@${version}`;
|
|
254
|
+
break;
|
|
255
|
+
case "yarn":
|
|
256
|
+
command = `yarn global add httpcat-cli@${version}`;
|
|
257
|
+
break;
|
|
258
|
+
case "homebrew":
|
|
259
|
+
// Homebrew doesn't support version pinning, always upgrades to latest
|
|
260
|
+
command = "brew upgrade httpcat";
|
|
261
|
+
break;
|
|
262
|
+
case "local":
|
|
263
|
+
throw new Error("Cannot update local development installation. Please run:\n git pull && yarn install && yarn build");
|
|
264
|
+
default:
|
|
265
|
+
throw new Error(`Unknown installation method: ${method}`);
|
|
266
|
+
}
|
|
267
|
+
if (json) {
|
|
268
|
+
console.log(JSON.stringify({ command, version, method }, null, 2));
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
console.log(chalk.cyan(`Running: ${command}`));
|
|
272
|
+
console.log();
|
|
273
|
+
try {
|
|
274
|
+
execSync(command, { stdio: "inherit" });
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
if (error.status === 1) {
|
|
278
|
+
// Command failed - might be permission issue
|
|
279
|
+
const errorMsg = error.message || String(error);
|
|
280
|
+
if (errorMsg.includes("EACCES") || errorMsg.includes("permission")) {
|
|
281
|
+
throw new Error(`Permission denied. Try running with sudo:\n sudo ${command}`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
throw error;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Create the update command
|
|
289
|
+
*/
|
|
290
|
+
export function createUpdateCommand() {
|
|
291
|
+
const updateCommand = new Command("update")
|
|
292
|
+
.description("Update httpcat CLI to the latest version (detects installation method automatically)")
|
|
293
|
+
.option("--rc", "Update to the latest RC (release candidate) version")
|
|
294
|
+
.addHelpText("after", `
|
|
295
|
+
Examples:
|
|
296
|
+
httpcat config update # Update to latest stable version
|
|
297
|
+
httpcat config update --rc # Update to latest RC version
|
|
298
|
+
|
|
299
|
+
This command automatically detects your installation method (npm, yarn, homebrew, or local)
|
|
300
|
+
and performs the appropriate update. It checks the npm registry for the latest version
|
|
301
|
+
and compares it with your current version before updating.
|
|
302
|
+
|
|
303
|
+
Supported installation methods:
|
|
304
|
+
• npm (global) - Uses 'npm install -g httpcat-cli@<version>'
|
|
305
|
+
• yarn (global) - Uses 'yarn global add httpcat-cli@<version>'
|
|
306
|
+
• homebrew - Uses 'brew upgrade httpcat'
|
|
307
|
+
• local - Shows instructions for manual update
|
|
308
|
+
|
|
309
|
+
The command will:
|
|
310
|
+
1. Detect your current installation method
|
|
311
|
+
2. Check for the latest available version
|
|
312
|
+
3. Compare with your current version
|
|
313
|
+
4. Update if a newer version is available
|
|
314
|
+
5. Show success message or error if update fails
|
|
315
|
+
`)
|
|
316
|
+
.action(async (options, command) => {
|
|
317
|
+
try {
|
|
318
|
+
const globalOpts = command.parent?.opts() || {};
|
|
319
|
+
const json = globalOpts.json || false;
|
|
320
|
+
const rc = options.rc || false;
|
|
321
|
+
if (!json) {
|
|
322
|
+
console.log();
|
|
323
|
+
console.log(chalk.cyan.bold("🔧 httpcat Update"));
|
|
324
|
+
console.log();
|
|
325
|
+
}
|
|
326
|
+
// Get current version
|
|
327
|
+
const currentVersion = CURRENT_VERSION;
|
|
328
|
+
if (!json) {
|
|
329
|
+
console.log(chalk.dim(`Current version: ${chalk.white(currentVersion)}`));
|
|
330
|
+
}
|
|
331
|
+
// Detect installation method
|
|
332
|
+
const method = detectInstallationMethod();
|
|
333
|
+
if (!json) {
|
|
334
|
+
console.log(chalk.dim(`Installation method: ${chalk.white(method)}`));
|
|
335
|
+
}
|
|
336
|
+
// Fetch latest version
|
|
337
|
+
if (!json) {
|
|
338
|
+
console.log(chalk.dim(`Checking for ${rc ? "latest RC" : "latest stable"} version...`));
|
|
339
|
+
}
|
|
340
|
+
const latestVersion = await getLatestVersion(rc);
|
|
341
|
+
if (!json) {
|
|
342
|
+
console.log(chalk.dim(`Available version: ${chalk.white(latestVersion)}`));
|
|
343
|
+
console.log();
|
|
344
|
+
}
|
|
345
|
+
// Compare versions
|
|
346
|
+
const comparison = compareVersions(currentVersion, latestVersion);
|
|
347
|
+
// Check if current version is an RC and latest stable has same base version
|
|
348
|
+
// In this case, the RC is actually newer (it's a release candidate for the next version)
|
|
349
|
+
const currentIsRc = currentVersion.includes("-rc");
|
|
350
|
+
const latestIsStable = !latestVersion.includes("-rc");
|
|
351
|
+
if (currentIsRc && latestIsStable) {
|
|
352
|
+
const currentBase = currentVersion.split("-rc")[0];
|
|
353
|
+
const latestBase = latestVersion.split("-")[0];
|
|
354
|
+
if (currentBase === latestBase) {
|
|
355
|
+
// RC version is newer than the stable with same base version
|
|
356
|
+
// This means the RC is for a future release (e.g., 0.3.0-rc.24 is for 0.3.1)
|
|
357
|
+
if (json) {
|
|
358
|
+
console.log(JSON.stringify({
|
|
359
|
+
current: currentVersion,
|
|
360
|
+
latest: latestVersion,
|
|
361
|
+
method,
|
|
362
|
+
upToDate: true,
|
|
363
|
+
message: "RC version is newer than latest stable with same base version",
|
|
364
|
+
}, null, 2));
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
console.log(chalk.yellow(`⚠️ You're on ${currentVersion}, which is a release candidate for a future version.`));
|
|
368
|
+
console.log(chalk.dim(` The latest stable version is ${latestVersion}, but your RC version is newer.`));
|
|
369
|
+
console.log(chalk.dim(` Wait for the stable release (e.g., 0.3.1) or use --rc to check for newer RCs.`));
|
|
370
|
+
}
|
|
371
|
+
process.exit(0);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
if (comparison >= 0) {
|
|
375
|
+
// Already on latest or newer
|
|
376
|
+
if (json) {
|
|
377
|
+
console.log(JSON.stringify({
|
|
378
|
+
current: currentVersion,
|
|
379
|
+
latest: latestVersion,
|
|
380
|
+
method,
|
|
381
|
+
upToDate: true,
|
|
382
|
+
}, null, 2));
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
console.log(chalk.green(`✅ Already on ${rc ? "latest RC" : "latest"} version (${currentVersion})`));
|
|
386
|
+
}
|
|
387
|
+
process.exit(0);
|
|
388
|
+
}
|
|
389
|
+
// Show update info
|
|
390
|
+
if (json) {
|
|
391
|
+
console.log(JSON.stringify({
|
|
392
|
+
current: currentVersion,
|
|
393
|
+
latest: latestVersion,
|
|
394
|
+
method,
|
|
395
|
+
upToDate: false,
|
|
396
|
+
}, null, 2));
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
console.log(chalk.yellow(`Updating from ${currentVersion} to ${latestVersion}...`));
|
|
400
|
+
console.log();
|
|
401
|
+
}
|
|
402
|
+
// Execute update
|
|
403
|
+
executeUpdate(method, latestVersion, json);
|
|
404
|
+
if (!json) {
|
|
405
|
+
console.log();
|
|
406
|
+
console.log(chalk.green(`✅ Successfully updated to ${latestVersion}!`));
|
|
407
|
+
console.log();
|
|
408
|
+
}
|
|
409
|
+
process.exit(0);
|
|
410
|
+
}
|
|
411
|
+
catch (error) {
|
|
412
|
+
const globalOpts = command.parent?.opts() || {};
|
|
413
|
+
const json = globalOpts.json || false;
|
|
414
|
+
if (json) {
|
|
415
|
+
console.error(JSON.stringify({
|
|
416
|
+
error: error.message || String(error),
|
|
417
|
+
}, null, 2));
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
console.error();
|
|
421
|
+
console.error(chalk.red(`❌ Update failed: ${error.message || String(error)}`));
|
|
422
|
+
console.error();
|
|
423
|
+
}
|
|
424
|
+
process.exit(1);
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
return updateCommand;
|
|
428
|
+
}
|
|
429
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAWhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAClD,WAAW,EAAE;QACX,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,OAAO,CAAC;QACrB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IAEF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;QAE3D,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -137,6 +137,13 @@ export class ConfigManager {
|
|
|
137
137
|
});
|
|
138
138
|
// Always sync from correct location to Conf's location on init
|
|
139
139
|
// This ensures Conf reads the right data
|
|
140
|
+
// If config file doesn't exist, create it with defaults
|
|
141
|
+
if (!fs.existsSync(this.configPath)) {
|
|
142
|
+
// Ensure directory exists
|
|
143
|
+
fs.mkdirSync(path.dirname(this.configPath), { recursive: true });
|
|
144
|
+
// Write defaults to config file
|
|
145
|
+
fs.writeFileSync(this.configPath, JSON.stringify(DEFAULT_CONFIG, null, 2));
|
|
146
|
+
}
|
|
140
147
|
if (fs.existsSync(this.configPath)) {
|
|
141
148
|
try {
|
|
142
149
|
// Validate JSON before copying
|
|
@@ -522,17 +529,30 @@ export class ConfigManager {
|
|
|
522
529
|
console.log(chalk.cyan("=".repeat(80)));
|
|
523
530
|
console.log();
|
|
524
531
|
if (!options.skipPrivateKey) {
|
|
525
|
-
//
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
532
|
+
// Check if import mode is enabled via environment variable
|
|
533
|
+
if (process.env.HTTPCAT_IMPORT_MODE === "true") {
|
|
534
|
+
// Use the nice wallet setup wizard instead of directly asking for private key
|
|
535
|
+
const { promptForPrivateKey } = await import("./utils/privateKeyPrompt.js");
|
|
536
|
+
await promptForPrivateKey();
|
|
537
|
+
console.log();
|
|
538
|
+
}
|
|
539
|
+
else {
|
|
540
|
+
// Auto-generate seed phrase for new users
|
|
541
|
+
const { autoSetupWallet } = await import("./utils/autoSetup.js");
|
|
542
|
+
await autoSetupWallet();
|
|
543
|
+
console.log();
|
|
544
|
+
}
|
|
529
545
|
}
|
|
530
546
|
// Network selection
|
|
531
|
-
const network = "eip155:
|
|
547
|
+
const network = "eip155:8453";
|
|
532
548
|
this.set("network", network);
|
|
533
549
|
console.log(chalk.green(`✅ Network set to: ${this.caip2ToNetwork(network)} (${network}) (testnet)\n`));
|
|
534
|
-
// Agent URL
|
|
535
|
-
|
|
550
|
+
// Agent URL - use correct default based on network
|
|
551
|
+
// base-sepolia (eip155:84532) -> testnet URL
|
|
552
|
+
// base (eip155:8453) -> mainnet URL
|
|
553
|
+
const defaultUrl = network === "eip155:8453"
|
|
554
|
+
? "https://agent-main.402.cat"
|
|
555
|
+
: "https://agent-test.402.cat";
|
|
536
556
|
const agentUrl = await this.prompt(`Agent URL [${defaultUrl}]: `, defaultUrl);
|
|
537
557
|
this.set("agentUrl", agentUrl);
|
|
538
558
|
console.log(chalk.green(`✅ Agent URL set to: ${agentUrl}\n`));
|
|
@@ -549,6 +569,68 @@ export class ConfigManager {
|
|
|
549
569
|
console.log();
|
|
550
570
|
console.log(chalk.dim(`Config saved to: ${this.getConfigPath()}`));
|
|
551
571
|
console.log();
|
|
572
|
+
// Shell setup (completion and alias)
|
|
573
|
+
await this.promptShellSetup();
|
|
574
|
+
}
|
|
575
|
+
async promptShellSetup() {
|
|
576
|
+
try {
|
|
577
|
+
const { detectShell, installShellCompletion, installHcAlias } = await import("./utils/shell-setup.js");
|
|
578
|
+
const shell = detectShell();
|
|
579
|
+
if (shell === "unknown") {
|
|
580
|
+
console.log(chalk.yellow("⚠️ Could not detect shell type. Skipping shell setup."));
|
|
581
|
+
console.log();
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
584
|
+
// Prompt for completion installation
|
|
585
|
+
const installCompletion = await this.prompt(`Install shell autocompletion for ${shell}? [Y/n]: `, "y");
|
|
586
|
+
if (installCompletion.toLowerCase() !== "n") {
|
|
587
|
+
console.log(chalk.cyan("Installing shell completion..."));
|
|
588
|
+
const success = installShellCompletion();
|
|
589
|
+
if (success) {
|
|
590
|
+
console.log(chalk.green(`✅ Shell completion installed for ${shell}!`));
|
|
591
|
+
console.log(chalk.dim(" Restart your terminal or run: source ~/." +
|
|
592
|
+
(shell === "zsh" ? "zshrc" : "bashrc")));
|
|
593
|
+
}
|
|
594
|
+
else {
|
|
595
|
+
console.log(chalk.yellow("⚠️ Failed to install shell completion. You can install it manually later with:"));
|
|
596
|
+
console.log(chalk.dim(` httpcat completion ${shell} >> ~/.${shell === "zsh" ? "zshrc" : "bashrc"}`));
|
|
597
|
+
}
|
|
598
|
+
console.log();
|
|
599
|
+
}
|
|
600
|
+
// Prompt for alias creation
|
|
601
|
+
const createAlias = await this.prompt("Create 'hc' alias for httpcat? [Y/n]: ", "y");
|
|
602
|
+
if (createAlias.toLowerCase() !== "n") {
|
|
603
|
+
console.log(chalk.cyan("Creating 'hc' alias..."));
|
|
604
|
+
const result = installHcAlias();
|
|
605
|
+
if (result.success) {
|
|
606
|
+
if (result.method === "symlink") {
|
|
607
|
+
console.log(chalk.green("✅ 'hc' alias created (symlink)!"));
|
|
608
|
+
console.log(chalk.dim(" You can now use 'hc' instead of 'httpcat' immediately."));
|
|
609
|
+
}
|
|
610
|
+
else {
|
|
611
|
+
console.log(chalk.green("✅ 'hc' alias created (shell alias)!"));
|
|
612
|
+
console.log(chalk.dim(" You can now use 'hc' instead of 'httpcat'. Restart your terminal or run:"));
|
|
613
|
+
if (shell === "zsh") {
|
|
614
|
+
console.log(chalk.dim(" source ~/.zshrc"));
|
|
615
|
+
}
|
|
616
|
+
else {
|
|
617
|
+
console.log(chalk.dim(" source ~/.bashrc"));
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
else {
|
|
622
|
+
console.log(chalk.yellow("⚠️ Failed to create 'hc' alias. You can create it manually with:"));
|
|
623
|
+
console.log(chalk.dim(` alias hc='httpcat'`));
|
|
624
|
+
console.log(chalk.dim(` Add this to your ~/.${shell === "zsh" ? "zshrc" : "bashrc"} file`));
|
|
625
|
+
}
|
|
626
|
+
console.log();
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
catch (error) {
|
|
630
|
+
// Non-fatal error - don't break the wizard
|
|
631
|
+
console.log(chalk.yellow("⚠️ Shell setup skipped due to error (non-fatal)"));
|
|
632
|
+
console.log();
|
|
633
|
+
}
|
|
552
634
|
}
|
|
553
635
|
prompt(question, defaultValue) {
|
|
554
636
|
return new Promise((resolve) => {
|
|
@@ -864,7 +946,7 @@ export class ConfigManager {
|
|
|
864
946
|
// Clear agent info cache since we switched environments
|
|
865
947
|
this.clearAgentInfoCache();
|
|
866
948
|
}
|
|
867
|
-
addEnvironment(name, agentUrl, network = "eip155:
|
|
949
|
+
addEnvironment(name, agentUrl, network = "eip155:8453") {
|
|
868
950
|
const envs = this.getEnvironments();
|
|
869
951
|
if (envs[name]) {
|
|
870
952
|
throw new Error(`Environment "${name}" already exists. Use a different name.`);
|
|
@@ -876,7 +958,7 @@ export class ConfigManager {
|
|
|
876
958
|
};
|
|
877
959
|
this.set("environments", envs);
|
|
878
960
|
}
|
|
879
|
-
updateEnvironment(name, agentUrl, network = "eip155:
|
|
961
|
+
updateEnvironment(name, agentUrl, network = "eip155:8453") {
|
|
880
962
|
const envs = this.getEnvironments();
|
|
881
963
|
if (!envs[name]) {
|
|
882
964
|
throw new Error(`Environment "${name}" does not exist. Use "httpcat env add" to create it.`);
|