httpcat-cli 0.2.12 → 0.2.13
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/README.md +346 -13
- package/Screenshot 2025-12-21 at 8.56.02/342/200/257PM.png +0 -0
- package/bun.lock +5 -0
- package/cat-spin.sh +417 -0
- package/dist/agent/ax-agent.d.ts.map +1 -0
- package/dist/agent/ax-agent.js +459 -0
- package/dist/agent/ax-agent.js.map +1 -0
- package/dist/agent/llm-factory.d.ts.map +1 -0
- package/dist/agent/llm-factory.js +82 -0
- package/dist/agent/llm-factory.js.map +1 -0
- package/dist/agent/setup-wizard.d.ts.map +1 -0
- package/dist/agent/setup-wizard.js +114 -0
- package/dist/agent/setup-wizard.js.map +1 -0
- package/dist/agent/tools.d.ts.map +1 -0
- package/dist/agent/tools.js +312 -0
- package/dist/agent/tools.js.map +1 -0
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +56 -46
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +133 -5
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/positions.d.ts.map +1 -1
- package/dist/commands/positions.js +51 -54
- package/dist/commands/positions.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +83 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +301 -13
- package/dist/index.js.map +1 -1
- package/dist/interactive/cat-spin.d.ts.map +1 -0
- package/dist/interactive/cat-spin.js +448 -0
- package/dist/interactive/cat-spin.js.map +1 -0
- package/dist/interactive/shell.d.ts.map +1 -1
- package/dist/interactive/shell.js +1244 -149
- package/dist/interactive/shell.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +1 -6
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/utils/loading.d.ts.map +1 -1
- package/dist/utils/loading.js +30 -0
- package/dist/utils/loading.js.map +1 -1
- package/dist/utils/token-resolver.d.ts.map +1 -1
- package/dist/utils/token-resolver.js +32 -0
- package/dist/utils/token-resolver.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { config } from "../config.js";
|
|
4
|
+
import { printCat } from "../interactive/art.js";
|
|
5
|
+
/**
|
|
6
|
+
* Setup wizard for AI agent API keys
|
|
7
|
+
* Similar pattern to privateKeyPrompt.ts with cat-themed UX
|
|
8
|
+
*/
|
|
9
|
+
export async function setupAIAgentWizard() {
|
|
10
|
+
console.log();
|
|
11
|
+
// Show wizard cat
|
|
12
|
+
printCat("wizard");
|
|
13
|
+
console.log(chalk.bold.cyan("🐱 Let's set up your cat...\n"));
|
|
14
|
+
// Check if already configured
|
|
15
|
+
const existingConfig = config.getAIAgentConfig();
|
|
16
|
+
if (existingConfig) {
|
|
17
|
+
const providerName = existingConfig.provider === "openai" ? "OpenAI" : "Anthropic";
|
|
18
|
+
console.log(chalk.yellow("📋 Current configuration:"));
|
|
19
|
+
console.log(chalk.dim(` Provider: ${providerName}`));
|
|
20
|
+
console.log(chalk.dim(` Model: ${existingConfig.model || "default"}`));
|
|
21
|
+
console.log();
|
|
22
|
+
console.log(chalk.cyan("You can update your configuration below.\n"));
|
|
23
|
+
}
|
|
24
|
+
// Security messaging
|
|
25
|
+
console.log(chalk.dim("🔒 Security & Privacy:"));
|
|
26
|
+
console.log(chalk.dim(" • Your API keys are stored locally and encrypted"));
|
|
27
|
+
console.log(chalk.dim(" • They are never sent to any server except the LLM provider"));
|
|
28
|
+
console.log(chalk.dim(" • Stored in: "), chalk.cyan(config.getConfigPath()));
|
|
29
|
+
console.log();
|
|
30
|
+
// Ask which provider (default to existing if configured)
|
|
31
|
+
const providerChoice = await inquirer.prompt([
|
|
32
|
+
{
|
|
33
|
+
type: "list",
|
|
34
|
+
name: "provider",
|
|
35
|
+
message: "Which AI provider would you like to use?",
|
|
36
|
+
choices: [
|
|
37
|
+
{
|
|
38
|
+
name: "OpenAI (GPT-4, GPT-3.5) - Recommended",
|
|
39
|
+
value: "openai",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Anthropic (Claude) - Great for complex tasks",
|
|
43
|
+
value: "anthropic",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
default: existingConfig?.provider || "openai",
|
|
47
|
+
},
|
|
48
|
+
]);
|
|
49
|
+
// Helper function to validate API key format
|
|
50
|
+
const validateApiKey = (input, provider) => {
|
|
51
|
+
if (!input || input.trim().length === 0) {
|
|
52
|
+
return "API key is required";
|
|
53
|
+
}
|
|
54
|
+
const trimmed = input.trim();
|
|
55
|
+
if (provider === "openai") {
|
|
56
|
+
// OpenAI keys can start with "sk-" (legacy) or "sk-proj-" (newer project keys)
|
|
57
|
+
// Newer project keys are much longer, so we just check prefix and minimum length
|
|
58
|
+
if (!trimmed.startsWith("sk-") && !trimmed.startsWith("sk-proj-")) {
|
|
59
|
+
return "Invalid OpenAI API key format. Keys should start with 'sk-' or 'sk-proj-'";
|
|
60
|
+
}
|
|
61
|
+
if (trimmed.length < 20) {
|
|
62
|
+
return "Invalid OpenAI API key length. Keys should be at least 20 characters long.";
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (provider === "anthropic") {
|
|
66
|
+
// Anthropic keys should start with "sk-ant-"
|
|
67
|
+
if (!trimmed.startsWith("sk-ant-")) {
|
|
68
|
+
return "Invalid Anthropic API key format. Keys should start with 'sk-ant-'";
|
|
69
|
+
}
|
|
70
|
+
if (trimmed.length < 40) {
|
|
71
|
+
return "Invalid Anthropic API key length. Keys should be at least 40 characters long.";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
};
|
|
76
|
+
// Ask for API key
|
|
77
|
+
const apiKeyAnswer = await inquirer.prompt([
|
|
78
|
+
{
|
|
79
|
+
type: "password",
|
|
80
|
+
name: "apiKey",
|
|
81
|
+
message: `Enter your ${providerChoice.provider === "openai" ? "OpenAI" : "Anthropic"} API key:`,
|
|
82
|
+
mask: "•",
|
|
83
|
+
validate: (input) => {
|
|
84
|
+
return validateApiKey(input, providerChoice.provider);
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
]);
|
|
88
|
+
// Ask for model (with defaults)
|
|
89
|
+
const defaultModel = providerChoice.provider === "openai" ? "gpt-4" : "claude-3-5-sonnet-20241022";
|
|
90
|
+
const modelAnswer = await inquirer.prompt([
|
|
91
|
+
{
|
|
92
|
+
type: "input",
|
|
93
|
+
name: "model",
|
|
94
|
+
message: `Model name [${defaultModel}]:`,
|
|
95
|
+
default: defaultModel,
|
|
96
|
+
},
|
|
97
|
+
]);
|
|
98
|
+
// Save to config
|
|
99
|
+
config.setAIAgentConfig({
|
|
100
|
+
provider: providerChoice.provider,
|
|
101
|
+
apiKey: apiKeyAnswer.apiKey.trim(),
|
|
102
|
+
model: modelAnswer.model.trim() || defaultModel,
|
|
103
|
+
});
|
|
104
|
+
console.log();
|
|
105
|
+
console.log(chalk.green("✅ Cat configured successfully!"));
|
|
106
|
+
console.log(chalk.dim(` Provider: ${providerChoice.provider === "openai" ? "OpenAI" : "Anthropic"}`));
|
|
107
|
+
console.log(chalk.dim(` Model: ${modelAnswer.model.trim() || defaultModel}`));
|
|
108
|
+
console.log();
|
|
109
|
+
console.log(chalk.cyan("🐱 You can now use the cat (or 'agent') with:"));
|
|
110
|
+
console.log(chalk.dim(" agent \"your question here\" (or 'cat \"your question here\"')"));
|
|
111
|
+
console.log(chalk.dim(" agent --chat (or 'cat --chat')"));
|
|
112
|
+
console.log();
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=setup-wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../src/agent/setup-wizard.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAE9D,8BAA8B;IAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACjD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,cAAc,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,qBAAqB;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,yDAAyD;IACzD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC3C;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,uCAAuC;oBAC7C,KAAK,EAAE,QAAQ;iBAChB;gBACD;oBACE,IAAI,EAAE,8CAA8C;oBACpD,KAAK,EAAE,WAAW;iBACnB;aACF;YACD,OAAO,EAAE,cAAc,EAAE,QAAQ,IAAI,QAAQ;SAC9C;KACF,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAoB,EAAE;QAC3E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAE7B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,+EAA+E;YAC/E,iFAAiF;YACjF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClE,OAAO,2EAA2E,CAAC;YACrF,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACxB,OAAO,4EAA4E,CAAC;YACtF,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,6CAA6C;YAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,OAAO,oEAAoE,CAAC;YAC9E,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACxB,OAAO,+EAA+E,CAAC;YACzF,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,kBAAkB;IAClB,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACzC;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,cAAc,cAAc,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,WAAW;YAC/F,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,OAAO,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;YACxD,CAAC;SACF;KACF,CAAC,CAAC;IAEH,gCAAgC;IAChC,MAAM,YAAY,GAChB,cAAc,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC;IAChF,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,eAAe,YAAY,IAAI;YACxC,OAAO,EAAE,YAAY;SACtB;KACF,CAAC,CAAC;IAEH,iBAAiB;IACjB,MAAM,CAAC,gBAAgB,CAAC;QACtB,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE;QAClC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,YAAY;KAChD,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,cAAc,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/agent/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAwE7C;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACjF,OAAO,CAAC,MAAM,CAAC,CA+GjB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,MAAM,CAAC,CA+CjB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;CAAE,GAC5E,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,EAAE,GACP,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,EAAE,GACP,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import { buyToken } from "../commands/buy.js";
|
|
2
|
+
import { sellToken } from "../commands/sell.js";
|
|
3
|
+
import { getTokenInfo } from "../commands/info.js";
|
|
4
|
+
import { listTokens } from "../commands/list.js";
|
|
5
|
+
import { getPositions } from "../commands/positions.js";
|
|
6
|
+
import { checkBalance } from "../commands/balances.js";
|
|
7
|
+
import { config } from "../config.js";
|
|
8
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
9
|
+
// Helper to get private key
|
|
10
|
+
function getPrivateKey() {
|
|
11
|
+
return config.getPrivateKey();
|
|
12
|
+
}
|
|
13
|
+
// Helper to check if test mode
|
|
14
|
+
function isTestMode(client) {
|
|
15
|
+
return client.getNetwork().includes("sepolia");
|
|
16
|
+
}
|
|
17
|
+
// Helper to safely serialize errors to strings
|
|
18
|
+
function serializeError(error) {
|
|
19
|
+
if (!error) {
|
|
20
|
+
return "Unknown error";
|
|
21
|
+
}
|
|
22
|
+
// If it's already a string, return it
|
|
23
|
+
if (typeof error === "string") {
|
|
24
|
+
return error;
|
|
25
|
+
}
|
|
26
|
+
// Try to get error message first (most common case)
|
|
27
|
+
if (error.message && typeof error.message === "string") {
|
|
28
|
+
return error.message;
|
|
29
|
+
}
|
|
30
|
+
// Try to stringify the error object, handling circular references
|
|
31
|
+
try {
|
|
32
|
+
// Use a replacer function to handle circular references
|
|
33
|
+
const seen = new WeakSet();
|
|
34
|
+
const serialized = JSON.stringify(error, (key, value) => {
|
|
35
|
+
if (typeof value === "object" && value !== null) {
|
|
36
|
+
if (seen.has(value)) {
|
|
37
|
+
return "[Circular]";
|
|
38
|
+
}
|
|
39
|
+
seen.add(value);
|
|
40
|
+
}
|
|
41
|
+
return value;
|
|
42
|
+
});
|
|
43
|
+
// If we got something meaningful, return it
|
|
44
|
+
if (serialized && serialized !== "{}" && serialized !== "null") {
|
|
45
|
+
return serialized;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// JSON.stringify failed, fall through to toString
|
|
50
|
+
}
|
|
51
|
+
// Last resort: try toString
|
|
52
|
+
try {
|
|
53
|
+
const str = String(error);
|
|
54
|
+
if (str && str !== "[object Object]") {
|
|
55
|
+
return str;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// toString also failed
|
|
60
|
+
}
|
|
61
|
+
// Final fallback
|
|
62
|
+
return "An error occurred (unable to serialize error details)";
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Tool: Buy tokens
|
|
66
|
+
* Args: { tokenIdentifier: string, amount: string, repeat?: number, delay?: number }
|
|
67
|
+
*/
|
|
68
|
+
export async function toolBuyToken(client, args) {
|
|
69
|
+
try {
|
|
70
|
+
// Validate required arguments
|
|
71
|
+
if (!args || typeof args !== "object") {
|
|
72
|
+
return JSON.stringify({
|
|
73
|
+
success: false,
|
|
74
|
+
error: "Invalid arguments: args must be an object",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (!args.tokenIdentifier || typeof args.tokenIdentifier !== "string") {
|
|
78
|
+
return JSON.stringify({
|
|
79
|
+
success: false,
|
|
80
|
+
error: "Invalid arguments: tokenIdentifier is required and must be a string",
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (!args.amount || typeof args.amount !== "string") {
|
|
84
|
+
return JSON.stringify({
|
|
85
|
+
success: false,
|
|
86
|
+
error: "Invalid arguments: amount is required and must be a string",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
const privateKey = getPrivateKey();
|
|
90
|
+
const isTest = isTestMode(client);
|
|
91
|
+
// Handle repeat mode
|
|
92
|
+
if (args.repeat && args.repeat > 1) {
|
|
93
|
+
const results = [];
|
|
94
|
+
let totalSpent = 0;
|
|
95
|
+
let stoppedEarly = false;
|
|
96
|
+
let stopReason = "";
|
|
97
|
+
for (let i = 1; i <= args.repeat; i++) {
|
|
98
|
+
try {
|
|
99
|
+
const result = await buyToken(client, args.tokenIdentifier, args.amount, isTest, true, // silent
|
|
100
|
+
privateKey);
|
|
101
|
+
results.push(result);
|
|
102
|
+
totalSpent += parseFloat(result.amountSpent);
|
|
103
|
+
// Check if token graduated
|
|
104
|
+
if (result.graduationReached) {
|
|
105
|
+
stoppedEarly = true;
|
|
106
|
+
stopReason = "Token graduated";
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
// Apply delay between iterations (except after the last one)
|
|
110
|
+
if (i < args.repeat && args.delay && args.delay > 0) {
|
|
111
|
+
await new Promise((resolve) => setTimeout(resolve, args.delay));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
// Handle insufficient funds gracefully
|
|
116
|
+
const errorMsg = serializeError(error);
|
|
117
|
+
if (errorMsg.includes("402") || errorMsg.includes("Insufficient")) {
|
|
118
|
+
stoppedEarly = true;
|
|
119
|
+
stopReason = "Insufficient funds";
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const lastResult = results[results.length - 1];
|
|
126
|
+
return JSON.stringify({
|
|
127
|
+
success: true,
|
|
128
|
+
totalBuys: results.length,
|
|
129
|
+
requestedBuys: args.repeat,
|
|
130
|
+
totalSpent: totalSpent.toFixed(2),
|
|
131
|
+
tokensReceived: lastResult.tokensReceived,
|
|
132
|
+
newPrice: lastResult.newPrice,
|
|
133
|
+
graduationProgress: lastResult.graduationProgress,
|
|
134
|
+
graduationReached: lastResult.graduationReached,
|
|
135
|
+
stoppedEarly,
|
|
136
|
+
stopReason: stoppedEarly ? stopReason : undefined,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// Single buy
|
|
141
|
+
const result = await buyToken(client, args.tokenIdentifier, args.amount, isTest, true, // silent
|
|
142
|
+
privateKey);
|
|
143
|
+
return JSON.stringify({
|
|
144
|
+
success: true,
|
|
145
|
+
tokensReceived: result.tokensReceived,
|
|
146
|
+
amountSpent: result.amountSpent,
|
|
147
|
+
newPrice: result.newPrice,
|
|
148
|
+
graduationProgress: result.graduationProgress,
|
|
149
|
+
graduationReached: result.graduationReached,
|
|
150
|
+
txHash: result.txHash,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
return JSON.stringify({
|
|
156
|
+
success: false,
|
|
157
|
+
error: serializeError(error),
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Tool: Sell tokens
|
|
163
|
+
* Args: { tokenIdentifier: string, amount: string | number | "all" }
|
|
164
|
+
*/
|
|
165
|
+
export async function toolSellToken(client, args) {
|
|
166
|
+
try {
|
|
167
|
+
// Validate required arguments
|
|
168
|
+
if (!args || typeof args !== "object") {
|
|
169
|
+
return JSON.stringify({
|
|
170
|
+
success: false,
|
|
171
|
+
error: "Invalid arguments: args must be an object",
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
if (!args.tokenIdentifier || typeof args.tokenIdentifier !== "string") {
|
|
175
|
+
return JSON.stringify({
|
|
176
|
+
success: false,
|
|
177
|
+
error: "Invalid arguments: tokenIdentifier is required and must be a string",
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (!args.amount || typeof args.amount !== "string") {
|
|
181
|
+
return JSON.stringify({
|
|
182
|
+
success: false,
|
|
183
|
+
error: "Invalid arguments: amount is required and must be a string",
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
const privateKey = getPrivateKey();
|
|
187
|
+
const result = await sellToken(client, args.tokenIdentifier, args.amount, true, // silent
|
|
188
|
+
privateKey);
|
|
189
|
+
return JSON.stringify({
|
|
190
|
+
success: true,
|
|
191
|
+
tokensSold: result.tokensSold,
|
|
192
|
+
usdcReceived: result.usdcReceived,
|
|
193
|
+
newPrice: result.newPrice,
|
|
194
|
+
txHash: result.txHash,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
return JSON.stringify({
|
|
199
|
+
success: false,
|
|
200
|
+
error: serializeError(error),
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Tool: Get token info
|
|
206
|
+
* Args: { tokenIdentifier: string }
|
|
207
|
+
*/
|
|
208
|
+
export async function toolGetTokenInfo(client, args) {
|
|
209
|
+
try {
|
|
210
|
+
// Validate required arguments
|
|
211
|
+
if (!args || typeof args !== "object") {
|
|
212
|
+
return JSON.stringify({
|
|
213
|
+
success: false,
|
|
214
|
+
error: "Invalid arguments: args must be an object",
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
if (!args.tokenIdentifier || typeof args.tokenIdentifier !== "string") {
|
|
218
|
+
return JSON.stringify({
|
|
219
|
+
success: false,
|
|
220
|
+
error: "Invalid arguments: tokenIdentifier is required and must be a string",
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
const account = privateKeyToAccount(getPrivateKey());
|
|
224
|
+
const info = await getTokenInfo(client, args.tokenIdentifier, account.address, true);
|
|
225
|
+
return JSON.stringify({
|
|
226
|
+
success: true,
|
|
227
|
+
name: info.name,
|
|
228
|
+
symbol: info.symbol,
|
|
229
|
+
address: info.address,
|
|
230
|
+
status: info.status,
|
|
231
|
+
price: info.price,
|
|
232
|
+
mcap: info.mcap,
|
|
233
|
+
graduationProgress: info.graduationProgress,
|
|
234
|
+
totalSupply: info.totalSupply,
|
|
235
|
+
userPosition: info.userPosition,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
return JSON.stringify({
|
|
240
|
+
success: false,
|
|
241
|
+
error: serializeError(error),
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Tool: List tokens
|
|
247
|
+
* Args: { page?: number, limit?: number, sortBy?: "mcap" | "created" | "name" }
|
|
248
|
+
*/
|
|
249
|
+
export async function toolListTokens(client, args) {
|
|
250
|
+
try {
|
|
251
|
+
const result = await listTokens(client, args.page || 1, args.limit || 20, args.sortBy || "mcap");
|
|
252
|
+
return JSON.stringify({
|
|
253
|
+
success: true,
|
|
254
|
+
tokens: result.tokens,
|
|
255
|
+
total: result.total,
|
|
256
|
+
page: result.page,
|
|
257
|
+
pages: result.pages,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
return JSON.stringify({
|
|
262
|
+
success: false,
|
|
263
|
+
error: serializeError(error),
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Tool: Get positions
|
|
269
|
+
* Args: {}
|
|
270
|
+
*/
|
|
271
|
+
export async function toolGetPositions(client, args) {
|
|
272
|
+
try {
|
|
273
|
+
const account = privateKeyToAccount(getPrivateKey());
|
|
274
|
+
const result = await getPositions(client, account.address);
|
|
275
|
+
return JSON.stringify({
|
|
276
|
+
success: true,
|
|
277
|
+
positions: result.positions,
|
|
278
|
+
total: result.total,
|
|
279
|
+
summary: result.summary,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
return JSON.stringify({
|
|
284
|
+
success: false,
|
|
285
|
+
error: serializeError(error),
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Tool: Check balance
|
|
291
|
+
* Args: {}
|
|
292
|
+
*/
|
|
293
|
+
export async function toolCheckBalance(client, args) {
|
|
294
|
+
try {
|
|
295
|
+
const balance = await checkBalance(getPrivateKey(), true);
|
|
296
|
+
return JSON.stringify({
|
|
297
|
+
success: true,
|
|
298
|
+
ethBalance: balance.ethBalance,
|
|
299
|
+
usdcBalance: balance.usdcBalance,
|
|
300
|
+
address: balance.address,
|
|
301
|
+
ethFormatted: balance.ethFormatted,
|
|
302
|
+
usdcFormatted: balance.usdcFormatted,
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
return JSON.stringify({
|
|
307
|
+
success: false,
|
|
308
|
+
error: serializeError(error),
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/agent/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAe7C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,eAAe,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkC7E;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,cAAc,CAAC,CAwCzB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAa5B;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAwND,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,QAAQ,GAAE,OAAe,EACzB,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,GAAE,MAAM,GAAG,aAAsB,GAC3C,OAAO,CAAC,IAAI,CAAC,CA0jDf;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAQjE"}
|