httpcat-cli 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +3 -0
- package/.github/workflows/rc-publish.yml +6 -0
- package/.github/workflows/release.yml +102 -0
- package/.github/workflows/sync-version.yml +31 -2
- package/README.md +1408 -109
- package/additions.txt +3 -0
- package/bun.lock +260 -25
- package/dist/agent/autonomous-trader.d.ts.map +1 -0
- package/dist/agent/autonomous-trader.js +362 -0
- package/dist/agent/autonomous-trader.js.map +1 -0
- package/dist/agent/ax-agent.d.ts.map +1 -1
- package/dist/agent/ax-agent.js +356 -18
- package/dist/agent/ax-agent.js.map +1 -1
- package/dist/agent/event-client.d.ts.map +1 -0
- package/dist/agent/event-client.js +82 -0
- package/dist/agent/event-client.js.map +1 -0
- package/dist/agent/log-stream.d.ts.map +1 -0
- package/dist/agent/log-stream.js +95 -0
- package/dist/agent/log-stream.js.map +1 -0
- package/dist/agent/memory/conversation-session.d.ts.map +1 -0
- package/dist/agent/memory/conversation-session.js +232 -0
- package/dist/agent/memory/conversation-session.js.map +1 -0
- package/dist/agent/memory/conversation-store.d.ts.map +1 -0
- package/dist/agent/memory/conversation-store.js +214 -0
- package/dist/agent/memory/conversation-store.js.map +1 -0
- package/dist/agent/memory/database-schema.d.ts.map +1 -0
- package/dist/agent/memory/database-schema.js +355 -0
- package/dist/agent/memory/database-schema.js.map +1 -0
- package/dist/agent/memory/decision-tracker.d.ts.map +1 -0
- package/dist/agent/memory/decision-tracker.js +274 -0
- package/dist/agent/memory/decision-tracker.js.map +1 -0
- package/dist/agent/memory/memory-manager.d.ts.map +1 -0
- package/dist/agent/memory/memory-manager.js +187 -0
- package/dist/agent/memory/memory-manager.js.map +1 -0
- package/dist/agent/memory/types.d.ts.map +1 -0
- package/dist/agent/memory/types.js +5 -0
- package/dist/agent/memory/types.js.map +1 -0
- package/dist/agent/message-formatter.d.ts.map +1 -0
- package/dist/agent/message-formatter.js +76 -0
- package/dist/agent/message-formatter.js.map +1 -0
- package/dist/agent/position-db.d.ts.map +1 -0
- package/dist/agent/position-db.js +154 -0
- package/dist/agent/position-db.js.map +1 -0
- package/dist/agent/simple-chat-ui-static.d.ts.map +1 -0
- package/dist/agent/simple-chat-ui-static.js +129 -0
- package/dist/agent/simple-chat-ui-static.js.map +1 -0
- package/dist/agent/simple-chat-ui.d.ts.map +1 -0
- package/dist/agent/simple-chat-ui.js +90 -0
- package/dist/agent/simple-chat-ui.js.map +1 -0
- package/dist/agent/tools.d.ts.map +1 -1
- package/dist/agent/tools.js +297 -4
- package/dist/agent/tools.js.map +1 -1
- package/dist/agent/ui.d.ts.map +1 -0
- package/dist/agent/ui.js +84 -0
- package/dist/agent/ui.js.map +1 -0
- package/dist/agent/unified-runtime.d.ts.map +1 -0
- package/dist/agent/unified-runtime.js +397 -0
- package/dist/agent/unified-runtime.js.map +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +272 -21
- package/dist/client.js.map +1 -1
- package/dist/commands/account.d.ts.map +1 -1
- package/dist/commands/account.js +187 -33
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +125 -0
- package/dist/commands/agent.js.map +1 -0
- 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 +226 -73
- package/dist/commands/balances.js.map +1 -1
- package/dist/commands/buy.d.ts.map +1 -1
- package/dist/commands/buy.js +149 -146
- 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/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +169 -411
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/claim.d.ts.map +1 -1
- package/dist/commands/claim.js +313 -29
- package/dist/commands/claim.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +151 -43
- 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 +63 -7
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +131 -47
- 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 +57 -23
- 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.d.ts.map +1 -1
- package/dist/commands/positions.js +76 -47
- 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.d.ts.map +1 -1
- package/dist/commands/sell.js +67 -34
- 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 -0
- package/dist/commands/swap.js +744 -0
- package/dist/commands/swap.js.map +1 -0
- 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.d.ts.map +1 -1
- package/dist/commands/transactions.js +29 -17
- 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 +351 -40
- package/dist/config.js.map +1 -1
- package/dist/index.js +4524 -924
- package/dist/index.js.map +1 -1
- package/dist/interactive/art.d.ts.map +1 -1
- package/dist/interactive/art.js +33 -1
- package/dist/interactive/art.js.map +1 -1
- package/dist/interactive/shell.d.ts.map +1 -1
- package/dist/interactive/shell.js +467 -2652
- 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/types/agent-info.d.ts.map +1 -0
- package/dist/types/agent-info.js +11 -0
- package/dist/types/agent-info.js.map +1 -0
- package/dist/ui/components/ScrollableList.d.ts.map +1 -0
- package/dist/ui/components/ScrollableList.js +72 -0
- package/dist/ui/components/ScrollableList.js.map +1 -0
- package/dist/ui/components/ThemeProvider.d.ts.map +1 -0
- package/dist/ui/components/ThemeProvider.js +87 -0
- package/dist/ui/components/ThemeProvider.js.map +1 -0
- package/dist/ui/components/ThemedBox.d.ts.map +1 -0
- package/dist/ui/components/ThemedBox.js +24 -0
- package/dist/ui/components/ThemedBox.js.map +1 -0
- package/dist/ui/components/agent/ChatHeader.d.ts.map +1 -0
- package/dist/ui/components/agent/ChatHeader.js +39 -0
- package/dist/ui/components/agent/ChatHeader.js.map +1 -0
- package/dist/ui/components/agent/Header.d.ts.map +1 -0
- package/dist/ui/components/agent/Header.js +14 -0
- package/dist/ui/components/agent/Header.js.map +1 -0
- package/dist/ui/components/agent/Input.d.ts.map +1 -0
- package/dist/ui/components/agent/Input.js +23 -0
- package/dist/ui/components/agent/Input.js.map +1 -0
- package/dist/ui/components/agent/Output.d.ts.map +1 -0
- package/dist/ui/components/agent/Output.js +23 -0
- package/dist/ui/components/agent/Output.js.map +1 -0
- package/dist/ui/components/chat/TokenChatUI.d.ts.map +1 -0
- package/dist/ui/components/chat/TokenChatUI.js +133 -0
- package/dist/ui/components/chat/TokenChatUI.js.map +1 -0
- package/dist/ui/components/shell/ShellHeader.d.ts.map +1 -0
- package/dist/ui/components/shell/ShellHeader.js +31 -0
- package/dist/ui/components/shell/ShellHeader.js.map +1 -0
- package/dist/ui/components/shell/ShellInput.d.ts.map +1 -0
- package/dist/ui/components/shell/ShellInput.js +151 -0
- package/dist/ui/components/shell/ShellInput.js.map +1 -0
- package/dist/ui/components/shell/ShellOutput.d.ts.map +1 -0
- package/dist/ui/components/shell/ShellOutput.js +8 -0
- package/dist/ui/components/shell/ShellOutput.js.map +1 -0
- package/dist/ui/hooks/useChatWebSocket.d.ts.map +1 -0
- package/dist/ui/hooks/useChatWebSocket.js +76 -0
- package/dist/ui/hooks/useChatWebSocket.js.map +1 -0
- package/dist/ui/hooks/useCommandHistory.d.ts.map +1 -0
- package/dist/ui/hooks/useCommandHistory.js +70 -0
- package/dist/ui/hooks/useCommandHistory.js.map +1 -0
- package/dist/ui/hooks/useDebounce.d.ts.map +1 -0
- package/dist/ui/hooks/useDebounce.js +17 -0
- package/dist/ui/hooks/useDebounce.js.map +1 -0
- package/dist/ui/hooks/useLogStream.d.ts.map +1 -0
- package/dist/ui/hooks/useLogStream.js +20 -0
- package/dist/ui/hooks/useLogStream.js.map +1 -0
- package/dist/ui/hooks/useVirtualScroll.d.ts.map +1 -0
- package/dist/ui/hooks/useVirtualScroll.js +70 -0
- package/dist/ui/hooks/useVirtualScroll.js.map +1 -0
- 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/constants.d.ts.map +1 -1
- 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 +46 -9
- 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/loading.d.ts.map +1 -1
- package/dist/utils/loading.js +25 -3
- package/dist/utils/loading.js.map +1 -1
- 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 +308 -129
- 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/rpc-helpers.d.ts.map +1 -0
- package/dist/utils/rpc-helpers.js +70 -0
- package/dist/utils/rpc-helpers.js.map +1 -0
- package/dist/utils/rpc-transport.d.ts.map +1 -0
- package/dist/utils/rpc-transport.js +87 -0
- package/dist/utils/rpc-transport.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/status.d.ts.map +1 -1
- package/dist/utils/status.js +34 -5
- package/dist/utils/status.js.map +1 -1
- package/dist/utils/token-resolver.d.ts.map +1 -1
- package/dist/utils/token-resolver.js +51 -8
- 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/issues.txt +2 -0
- package/package.json +24 -9
- 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/swap.logs +61 -0
- package/swapping.txt +108 -0
- package/test.txt +12 -0
- package/tests/fixtures/test-data.json +16 -0
- package/Screenshot 2025-12-21 at 8.56.02/342/200/257PM.png +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-cli-config.js","sourceRoot":"","sources":["../../src/utils/llm-cli-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-cli-detector.d.ts","sourceRoot":"","sources":["../../src/utils/llm-cli-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAwDD;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAqIlE"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM CLI Detection System
|
|
3
|
+
*
|
|
4
|
+
* This module detects installed LLM CLI tools that support MCP (Model Context Protocol) integration.
|
|
5
|
+
* It scans the system for:
|
|
6
|
+
* 1. CLI binaries in PATH (e.g., "codex", "gemini", "llm")
|
|
7
|
+
* 2. Configuration file locations (platform-specific)
|
|
8
|
+
* 3. Config directory existence
|
|
9
|
+
*
|
|
10
|
+
* Detection Strategy:
|
|
11
|
+
* - For each LLM tool, check both CLI availability AND config file locations
|
|
12
|
+
* - Some tools (like Claude Desktop) are file-only (no CLI)
|
|
13
|
+
* - Some tools (like Codex, Gemini) support both CLI commands and file-based config
|
|
14
|
+
* - Detection is non-intrusive - only checks for existence, doesn't modify anything
|
|
15
|
+
*
|
|
16
|
+
* Supported LLM Tools:
|
|
17
|
+
* 1. Claude Desktop - Desktop app (file-based config only)
|
|
18
|
+
* 2. Cursor IDE - Code editor (file-based config, workspace or global)
|
|
19
|
+
* 3. LLM Tools MCP - Simon Willison's LLM CLI with MCP plugin
|
|
20
|
+
* 4. MCP-Use CLI - Standalone MCP client CLI
|
|
21
|
+
* 5. MCP Client CLI - Another MCP client implementation
|
|
22
|
+
* 6. Codex CLI - OpenAI's Codex CLI (supports CLI + TOML file)
|
|
23
|
+
* 7. Gemini CLI - Google's Gemini CLI (supports CLI + extension JSON)
|
|
24
|
+
*/
|
|
25
|
+
import fs from "fs";
|
|
26
|
+
import path from "path";
|
|
27
|
+
import os from "os";
|
|
28
|
+
import { execSync } from "child_process";
|
|
29
|
+
/**
|
|
30
|
+
* Check if a command exists in PATH
|
|
31
|
+
*
|
|
32
|
+
* Uses `which` command to check if a CLI tool is available in the system PATH.
|
|
33
|
+
* This is used to detect CLI-based tools like Codex, Gemini, etc.
|
|
34
|
+
*
|
|
35
|
+
* @param command - Command name to check (e.g., "codex", "gemini")
|
|
36
|
+
* @returns true if command exists in PATH, false otherwise
|
|
37
|
+
*/
|
|
38
|
+
function commandExists(command) {
|
|
39
|
+
try {
|
|
40
|
+
// Use `which` to find command in PATH
|
|
41
|
+
execSync(`which ${command}`, { stdio: "ignore" });
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Command not found in PATH
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get platform-specific Claude Desktop config path
|
|
51
|
+
*
|
|
52
|
+
* Claude Desktop stores its config in different locations based on OS:
|
|
53
|
+
* - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
|
|
54
|
+
* - Windows: %APPDATA%/Claude/claude_desktop_config.json
|
|
55
|
+
* - Linux: ~/.config/Claude/claude_desktop_config.json
|
|
56
|
+
*
|
|
57
|
+
* @returns Platform-appropriate config file path
|
|
58
|
+
*/
|
|
59
|
+
function getClaudeDesktopConfigPath() {
|
|
60
|
+
const platform = process.platform;
|
|
61
|
+
if (platform === "darwin") {
|
|
62
|
+
// macOS: Application Support directory
|
|
63
|
+
return path.join(os.homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
|
|
64
|
+
}
|
|
65
|
+
else if (platform === "win32") {
|
|
66
|
+
// Windows: APPDATA environment variable
|
|
67
|
+
return path.join(process.env.APPDATA || "", "Claude", "claude_desktop_config.json");
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Linux and other Unix-like systems: ~/.config
|
|
71
|
+
return path.join(os.homedir(), ".config", "Claude", "claude_desktop_config.json");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Detect installed LLM CLI tools that support MCP integration
|
|
76
|
+
*
|
|
77
|
+
* Scans the system for all supported LLM CLI tools by checking:
|
|
78
|
+
* 1. CLI command availability (for tools with CLI interfaces)
|
|
79
|
+
* 2. Configuration file/directory existence (for file-based tools)
|
|
80
|
+
*
|
|
81
|
+
* Detection is done in parallel for all tools. Each tool has its own detection logic
|
|
82
|
+
* based on how it's typically installed and configured.
|
|
83
|
+
*
|
|
84
|
+
* @returns Array of detected LLM tools with their configuration metadata
|
|
85
|
+
*/
|
|
86
|
+
export async function detectInstalledLlms() {
|
|
87
|
+
const detected = [];
|
|
88
|
+
// 1. Claude Desktop - Desktop application (no CLI, file-based only)
|
|
89
|
+
// Check for config file or config directory existence
|
|
90
|
+
const claudeConfigPath = getClaudeDesktopConfigPath();
|
|
91
|
+
if (fs.existsSync(claudeConfigPath) || fs.existsSync(path.dirname(claudeConfigPath))) {
|
|
92
|
+
detected.push({
|
|
93
|
+
id: "claude-desktop",
|
|
94
|
+
name: "Claude Desktop",
|
|
95
|
+
configPath: claudeConfigPath,
|
|
96
|
+
installMethod: "file", // No CLI, only file-based config
|
|
97
|
+
configType: "json",
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
// 2. Cursor IDE - Code editor with MCP support
|
|
101
|
+
// Check both global (~/.cursor/mcp.json) and workspace (.cursor/mcp.json) configs
|
|
102
|
+
// Prefer global if both exist
|
|
103
|
+
const cursorGlobalPath = path.join(os.homedir(), ".cursor", "mcp.json");
|
|
104
|
+
const cursorWorkspacePath = path.join(process.cwd(), ".cursor", "mcp.json");
|
|
105
|
+
if (fs.existsSync(cursorGlobalPath) || fs.existsSync(path.dirname(cursorGlobalPath))) {
|
|
106
|
+
detected.push({
|
|
107
|
+
id: "cursor",
|
|
108
|
+
name: "Cursor IDE",
|
|
109
|
+
configPath: cursorGlobalPath,
|
|
110
|
+
installMethod: "file",
|
|
111
|
+
configType: "json",
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else if (fs.existsSync(cursorWorkspacePath) || fs.existsSync(path.dirname(cursorWorkspacePath))) {
|
|
115
|
+
// Fall back to workspace config if global doesn't exist
|
|
116
|
+
detected.push({
|
|
117
|
+
id: "cursor",
|
|
118
|
+
name: "Cursor IDE (Workspace)",
|
|
119
|
+
configPath: cursorWorkspacePath,
|
|
120
|
+
installMethod: "file",
|
|
121
|
+
configType: "json",
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// 3. LLM by Simon Willison (requires llm-tools-mcp plugin)
|
|
125
|
+
// Requires both: "llm" CLI command AND llm-tools-mcp plugin config directory
|
|
126
|
+
const llmToolsMcpPath = path.join(os.homedir(), ".llm-tools-mcp", "mcp.json");
|
|
127
|
+
if (commandExists("llm") && (fs.existsSync(llmToolsMcpPath) || fs.existsSync(path.dirname(llmToolsMcpPath)))) {
|
|
128
|
+
detected.push({
|
|
129
|
+
id: "llm-tools-mcp",
|
|
130
|
+
name: "LLM Tools MCP",
|
|
131
|
+
configPath: llmToolsMcpPath,
|
|
132
|
+
installMethod: "file",
|
|
133
|
+
configType: "json",
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// 4. MCP-Use CLI - Standalone MCP client
|
|
137
|
+
// Detection based on CLI command availability
|
|
138
|
+
if (commandExists("mcp-use")) {
|
|
139
|
+
detected.push({
|
|
140
|
+
id: "mcp-use",
|
|
141
|
+
name: "MCP-Use CLI",
|
|
142
|
+
configPath: path.join(os.homedir(), ".mcp-use", "config.json"),
|
|
143
|
+
installMethod: "cli", // Primarily CLI-based, but can fall back to file
|
|
144
|
+
configType: "json",
|
|
145
|
+
cliCommand: "mcp-use",
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
// 5. MCP Client CLI - Another MCP client implementation
|
|
149
|
+
// Check for CLI command OR config file existence
|
|
150
|
+
const mcpClientPath = path.join(os.homedir(), ".llm", "config.json");
|
|
151
|
+
if (commandExists("mcp-client") || fs.existsSync(mcpClientPath) || fs.existsSync(path.dirname(mcpClientPath))) {
|
|
152
|
+
detected.push({
|
|
153
|
+
id: "mcp-client",
|
|
154
|
+
name: "MCP Client CLI",
|
|
155
|
+
configPath: mcpClientPath,
|
|
156
|
+
installMethod: "file",
|
|
157
|
+
configType: "json",
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
// 6. Codex CLI (OpenAI) - Supports both CLI commands and TOML file config
|
|
161
|
+
// Check for CLI command OR config directory/file existence
|
|
162
|
+
const codexConfigPath = path.join(os.homedir(), ".codex", "config.toml");
|
|
163
|
+
if (commandExists("codex") || fs.existsSync(codexConfigPath) || fs.existsSync(path.dirname(codexConfigPath))) {
|
|
164
|
+
detected.push({
|
|
165
|
+
id: "codex",
|
|
166
|
+
name: "Codex CLI",
|
|
167
|
+
configPath: codexConfigPath,
|
|
168
|
+
installMethod: "both", // Supports both CLI and file-based config
|
|
169
|
+
configType: "toml", // Uses TOML format instead of JSON
|
|
170
|
+
cliCommand: "codex",
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
// 7. Gemini CLI (Google) - Supports both CLI commands and extension JSON files
|
|
174
|
+
// Uses extension-based architecture with JSON files in extensions directory
|
|
175
|
+
const geminiExtensionPath = path.join(os.homedir(), ".gemini", "extensions", "httpcat", "gemini-extension.json");
|
|
176
|
+
if (commandExists("gemini") || fs.existsSync(path.dirname(geminiExtensionPath))) {
|
|
177
|
+
detected.push({
|
|
178
|
+
id: "gemini",
|
|
179
|
+
name: "Gemini CLI",
|
|
180
|
+
configPath: geminiExtensionPath,
|
|
181
|
+
installMethod: "both", // Supports both CLI and file-based config
|
|
182
|
+
configType: "extension", // Uses extension JSON format
|
|
183
|
+
cliCommand: "gemini",
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
// 8. Claude CLI (Anthropic) - CLI tool for Claude
|
|
187
|
+
// Check for CLI command OR config file existence
|
|
188
|
+
// Claude CLI likely uses similar config format to Claude Desktop
|
|
189
|
+
const claudeCliConfigPath = path.join(os.homedir(), ".claude", "config.json");
|
|
190
|
+
if (commandExists("claude") || fs.existsSync(claudeCliConfigPath) || fs.existsSync(path.dirname(claudeCliConfigPath))) {
|
|
191
|
+
detected.push({
|
|
192
|
+
id: "claude-cli",
|
|
193
|
+
name: "Claude CLI",
|
|
194
|
+
configPath: claudeCliConfigPath,
|
|
195
|
+
installMethod: "both", // Supports both CLI and file-based config
|
|
196
|
+
configType: "json",
|
|
197
|
+
cliCommand: "claude",
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
return detected;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=llm-cli-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-cli-detector.js","sourceRoot":"","sources":["../../src/utils/llm-cli-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading.d.ts","sourceRoot":"","sources":["../../src/utils/loading.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"loading.d.ts","sourceRoot":"","sources":["../../src/utils/loading.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAW/B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,CAAC,CAAC,CAoEZ;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,GAAG,GAAG,IAAI,CAExE"}
|
package/dist/utils/loading.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ora from "ora";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { HttpcatError } from "../client.js";
|
|
4
|
+
import { clearStatusLine } from "./status.js";
|
|
4
5
|
// Custom cat-themed spinner frames
|
|
5
6
|
const CAT_SPINNER_FRAMES = ["🐱 ", " 🐱 ", " 🐱 ", " 🐱", " 🐱 ", " 🐱 "];
|
|
6
7
|
// Fallback spinner for terminals that don't support emoji
|
|
@@ -45,7 +46,17 @@ export async function withLoading(operation, options) {
|
|
|
45
46
|
}
|
|
46
47
|
const result = await operation();
|
|
47
48
|
if (spinner) {
|
|
48
|
-
|
|
49
|
+
if (options.clearOnSuccess) {
|
|
50
|
+
// Stop spinner without showing success message
|
|
51
|
+
spinner.stop();
|
|
52
|
+
// Clear the spinner line first (ora might leave text on the line)
|
|
53
|
+
process.stdout.write("\r\x1b[K");
|
|
54
|
+
// Clear all status lines (including any added during the operation, like "Found token")
|
|
55
|
+
clearStatusLine();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
spinner.succeed();
|
|
59
|
+
}
|
|
49
60
|
}
|
|
50
61
|
return result;
|
|
51
62
|
}
|
|
@@ -53,7 +64,8 @@ export async function withLoading(operation, options) {
|
|
|
53
64
|
// Special handling for 402 errors: x402-fetch handles payments automatically,
|
|
54
65
|
// but there may be a brief moment where the error surfaces before the payment completes.
|
|
55
66
|
// If we get a 402, wait a moment and retry once to give x402-fetch time to complete the payment.
|
|
56
|
-
|
|
67
|
+
// Skip retry if disableRetry is true
|
|
68
|
+
if (error instanceof HttpcatError && error.status === 402 && !options.disableRetry) {
|
|
57
69
|
// Don't mark spinner as failed yet - we'll retry
|
|
58
70
|
// Wait a short time for x402-fetch to complete payment processing
|
|
59
71
|
await new Promise(resolve => setTimeout(resolve, 1500));
|
|
@@ -62,7 +74,17 @@ export async function withLoading(operation, options) {
|
|
|
62
74
|
const retryResult = await operation();
|
|
63
75
|
// If retry succeeded, update spinner to success (spinner is still running)
|
|
64
76
|
if (spinner) {
|
|
65
|
-
|
|
77
|
+
if (options.clearOnSuccess) {
|
|
78
|
+
// Stop spinner without showing success message
|
|
79
|
+
spinner.stop();
|
|
80
|
+
// Clear the spinner line first (ora might leave text on the line)
|
|
81
|
+
process.stdout.write("\r\x1b[K");
|
|
82
|
+
// Clear all status lines (including any added during the operation, like "Found token")
|
|
83
|
+
clearStatusLine();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
spinner.succeed();
|
|
87
|
+
}
|
|
66
88
|
}
|
|
67
89
|
return retryResult;
|
|
68
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading.js","sourceRoot":"","sources":["../../src/utils/loading.ts"],"names":[],"mappings":"AAAA,OAAO,GAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"loading.js","sourceRoot":"","sources":["../../src/utils/loading.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/utils/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CASlF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if the API is currently in maintenance mode by querying the health endpoint
|
|
3
|
+
* @param client - HttpcatClient instance to use for the health check
|
|
4
|
+
* @returns Promise<boolean> - true if maintenance mode is active, false otherwise
|
|
5
|
+
*/
|
|
6
|
+
export async function checkMaintenanceMode(client) {
|
|
7
|
+
try {
|
|
8
|
+
const health = await client.get('/health');
|
|
9
|
+
return health.maintenance_mode === true || health.status === 'maintenance';
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
// If health check fails, assume API is down (not maintenance)
|
|
13
|
+
// This prevents false positives when the API is completely unavailable
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=maintenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/utils/maintenance.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAqB;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8DAA8D;QAC9D,uEAAuE;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;KAC/B,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CA6BxD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Configuration File Generator
|
|
3
|
+
*
|
|
4
|
+
* This module creates the base MCP configuration file (mcp.json) in the httpcat config directory.
|
|
5
|
+
* This file serves as a reference configuration that can be used by MCP clients or copied to
|
|
6
|
+
* other LLM CLI tool configurations.
|
|
7
|
+
*
|
|
8
|
+
* The configuration file format follows the MCP (Model Context Protocol) standard:
|
|
9
|
+
* - mcpServers: Object containing MCP server definitions
|
|
10
|
+
* - Each server has: command, args, and optional env variables
|
|
11
|
+
* - The private key is NOT included - MCP server reads from config file instead
|
|
12
|
+
*/
|
|
13
|
+
import fs from "fs";
|
|
14
|
+
import path from "path";
|
|
15
|
+
import os from "os";
|
|
16
|
+
import { execSync } from "child_process";
|
|
17
|
+
/**
|
|
18
|
+
* Create MCP configuration file in the config directory
|
|
19
|
+
*
|
|
20
|
+
* This function creates ~/.config/httpcat/mcp.json with the httpcat MCP server configuration.
|
|
21
|
+
* The file can be used as a reference or imported by other LLM CLI tools.
|
|
22
|
+
*
|
|
23
|
+
* Flow:
|
|
24
|
+
* 1. Determine config directory (defaults to ~/.config/httpcat)
|
|
25
|
+
* 2. Check if httpcat is globally installed (affects command/args)
|
|
26
|
+
* 3. Create config object with appropriate command and args
|
|
27
|
+
* 4. Note: Private key is NOT included - MCP server reads from config file instead
|
|
28
|
+
* 5. Write JSON file to disk
|
|
29
|
+
*
|
|
30
|
+
* @param configDir - Optional config directory path (defaults to ~/.config/httpcat)
|
|
31
|
+
*/
|
|
32
|
+
export function createMcpConfig(configDir) {
|
|
33
|
+
// Use provided directory or default to ~/.config/httpcat
|
|
34
|
+
const configPath = configDir || path.join(os.homedir(), ".config", "httpcat");
|
|
35
|
+
const mcpConfigPath = path.join(configPath, "mcp.json");
|
|
36
|
+
// Ensure config directory exists (create if it doesn't)
|
|
37
|
+
fs.mkdirSync(configPath, { recursive: true });
|
|
38
|
+
// Check if httpcat is globally installed to determine command format
|
|
39
|
+
// Global install: "httpcat mcp start"
|
|
40
|
+
// NPM package: "npx -y httpcat-cli mcp start"
|
|
41
|
+
const isGlobal = isHttpcatGlobal();
|
|
42
|
+
// Build MCP configuration object following MCP standard format
|
|
43
|
+
// Note: No HTTPCAT_PRIVATE_KEY in env - server reads from ~/.config/httpcat/config.json
|
|
44
|
+
const mcpConfig = {
|
|
45
|
+
mcpServers: {
|
|
46
|
+
httpcat: {
|
|
47
|
+
// Use "httpcat" if globally installed, otherwise "npx"
|
|
48
|
+
command: isGlobal ? "httpcat" : "npx",
|
|
49
|
+
// Args differ based on installation method
|
|
50
|
+
args: isGlobal ? ["mcp", "start"] : ["-y", "httpcat-cli", "mcp", "start"],
|
|
51
|
+
// No env vars - private key is read from config file by MCP server
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
// Write config file with pretty-printed JSON (2-space indent)
|
|
56
|
+
fs.writeFileSync(mcpConfigPath, JSON.stringify(mcpConfig, null, 2), "utf-8");
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if httpcat is globally installed
|
|
60
|
+
*
|
|
61
|
+
* Uses `which` command to check if "httpcat" is available in PATH.
|
|
62
|
+
* This determines whether to use "httpcat" directly or "npx httpcat-cli".
|
|
63
|
+
*
|
|
64
|
+
* @returns true if httpcat command exists in PATH, false otherwise
|
|
65
|
+
*/
|
|
66
|
+
function isHttpcatGlobal() {
|
|
67
|
+
try {
|
|
68
|
+
// Check if "httpcat" command exists in system PATH
|
|
69
|
+
execSync("which httpcat", { stdio: "ignore" });
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// Command not found - httpcat is not globally installed
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=mcp-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../src/utils/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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;AAsBzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,SAAkB;IACjD,yDAAyD;IACzD,MAAM,UAAU,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExD,wDAAwD;IACxD,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,qEAAqE;IACrE,sCAAsC;IACtC,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IAEnC,+DAA+D;IAC/D,wFAAwF;IACxF,MAAM,SAAS,GAAc;QAC5B,UAAU,EAAE;YACX,OAAO,EAAE;gBACR,uDAAuD;gBACvD,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;gBACrC,2CAA2C;gBAC3C,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC;gBACzE,mEAAmE;aACnE;SACD;KACD,CAAC;IAEF,8DAA8D;IAC9D,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe;IACvB,IAAI,CAAC;QACJ,mDAAmD;QACnD,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,wDAAwD;QACxD,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privateKeyPrompt.d.ts","sourceRoot":"","sources":["../../src/utils/privateKeyPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"privateKeyPrompt.d.ts","sourceRoot":"","sources":["../../src/utils/privateKeyPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAmBhC;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,CA8ExD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAqDhE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2B9D;AA4cD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxD"}
|