memeputer 1.1.2 → 1.1.4
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/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +40 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/formatting.test.d.ts +2 -0
- package/dist/__tests__/formatting.test.d.ts.map +1 -0
- package/dist/__tests__/formatting.test.js +57 -0
- package/dist/__tests__/formatting.test.js.map +1 -0
- package/dist/__tests__/wallet.test.d.ts +2 -0
- package/dist/__tests__/wallet.test.d.ts.map +1 -0
- package/dist/__tests__/wallet.test.js +30 -0
- package/dist/__tests__/wallet.test.js.map +1 -0
- package/dist/commands/agents.js +2 -2
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/balance.js +1 -1
- package/dist/commands/balance.js.map +1 -1
- package/dist/commands/command.d.ts.map +1 -1
- package/dist/commands/command.js +59 -14
- package/dist/commands/command.js.map +1 -1
- package/dist/commands/prompt.d.ts +3 -0
- package/dist/commands/prompt.d.ts.map +1 -0
- package/dist/commands/{ask.js → prompt.js} +19 -10
- package/dist/commands/prompt.js.map +1 -0
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +16 -6
- package/dist/lib/config.js.map +1 -1
- package/dist/utils/formatting.d.ts +2 -0
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +13 -1
- package/dist/utils/formatting.js.map +1 -1
- package/package.json +17 -12
- package/vitest.config.ts +9 -0
- package/dist/commands/ask.d.ts +0 -3
- package/dist/commands/ask.d.ts.map +0 -1
- package/dist/commands/ask.js.map +0 -1
- package/dist/commands/pfp.d.ts +0 -3
- package/dist/commands/pfp.d.ts.map +0 -1
- package/dist/commands/pfp.js +0 -99
- package/dist/commands/pfp.js.map +0 -1
- package/dist/lib/api.d.ts +0 -56
- package/dist/lib/api.d.ts.map +0 -1
- package/dist/lib/api.js +0 -160
- package/dist/lib/api.js.map +0 -1
- package/dist/lib/x402Client.d.ts +0 -14
- package/dist/lib/x402Client.d.ts.map +0 -1
- package/dist/lib/x402Client.js +0 -105
- package/dist/lib/x402Client.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "memeputer",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "CLI tool for interacting with Memeputer AI agents via x402 payments",
|
|
5
5
|
"bin": {
|
|
6
6
|
"memeputer": "./dist/index.js"
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
"type": "module",
|
|
10
10
|
"scripts": {
|
|
11
11
|
"dev": "echo '✅ CLI is ready! Run: cd apps/cli && tsx src/index.ts -- agents'",
|
|
12
|
-
"test": "
|
|
12
|
+
"test": "vitest",
|
|
13
|
+
"test:run": "vitest run",
|
|
14
|
+
"test:ui": "vitest --ui",
|
|
13
15
|
"build": "tsc",
|
|
14
16
|
"start": "node dist/index.js",
|
|
15
17
|
"prepublishOnly": "npm run build"
|
|
@@ -27,26 +29,29 @@
|
|
|
27
29
|
"license": "MIT",
|
|
28
30
|
"repository": {
|
|
29
31
|
"type": "git",
|
|
30
|
-
"url": "https://github.com/memeputer/memeputer"
|
|
32
|
+
"url": "https://github.com/memeputer/memeputer-oss.git",
|
|
33
|
+
"directory": "packages/cli"
|
|
31
34
|
},
|
|
32
35
|
"homepage": "https://memeputer.com",
|
|
33
36
|
"bugs": {
|
|
34
|
-
"url": "https://github.com/memeputer/memeputer/issues"
|
|
37
|
+
"url": "https://github.com/memeputer/memeputer-oss/issues"
|
|
35
38
|
},
|
|
36
39
|
"dependencies": {
|
|
37
|
-
"
|
|
38
|
-
"ora": "^8.0.1",
|
|
39
|
-
"chalk": "^5.3.0",
|
|
40
|
-
"axios": "^1.6.5",
|
|
40
|
+
"@memeputer/sdk": "workspace:*",
|
|
41
41
|
"@solana/web3.js": "^1.98.4",
|
|
42
|
-
"
|
|
43
|
-
"bs58": "^
|
|
44
|
-
"
|
|
42
|
+
"axios": "^1.7.7",
|
|
43
|
+
"bs58": "^6.0.0",
|
|
44
|
+
"chalk": "^5.3.0",
|
|
45
|
+
"commander": "^11.1.0",
|
|
46
|
+
"dotenv": "^16.3.1",
|
|
47
|
+
"ora": "^8.0.1"
|
|
45
48
|
},
|
|
46
49
|
"devDependencies": {
|
|
47
50
|
"@types/node": "^20.10.6",
|
|
51
|
+
"@vitest/ui": "^4.0.8",
|
|
48
52
|
"tsx": "^4.7.0",
|
|
49
|
-
"typescript": "^5.3.3"
|
|
53
|
+
"typescript": "^5.3.3",
|
|
54
|
+
"vitest": "^4.0.8"
|
|
50
55
|
},
|
|
51
56
|
"engines": {
|
|
52
57
|
"node": ">=18.0.0"
|
package/vitest.config.ts
ADDED
package/dist/commands/ask.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,gBAAgB,IAAI,OAAO,CAoM1C"}
|
package/dist/commands/ask.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pfp.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pfp.d.ts","sourceRoot":"","sources":["../../src/commands/pfp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,gBAAgB,IAAI,OAAO,CAmI1C"}
|
package/dist/commands/pfp.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { Connection } from "@solana/web3.js";
|
|
3
|
-
import ora from "ora";
|
|
4
|
-
import chalk from "chalk";
|
|
5
|
-
import axios from "axios";
|
|
6
|
-
import { writeFileSync } from "fs";
|
|
7
|
-
import { resolve } from "path";
|
|
8
|
-
import { loadConfig, getDefaultWalletPath } from "../lib/config.js";
|
|
9
|
-
import { loadWallet, formatPublicKey } from "../lib/wallet.js";
|
|
10
|
-
import { AgentsApiClient } from "../lib/api.js";
|
|
11
|
-
import { formatSuccess, formatError, formatInfo, formatAgent, } from "../utils/formatting.js";
|
|
12
|
-
export function createPfpCommand() {
|
|
13
|
-
return new Command("pfp")
|
|
14
|
-
.description("Generate a profile picture with PFPputer")
|
|
15
|
-
.argument("<prompt>", "Description of the PFP you want to generate")
|
|
16
|
-
.option("-w, --wallet <path>", "Path to Solana wallet keypair")
|
|
17
|
-
.option("-o, --output <path>", "Save image to file path")
|
|
18
|
-
.option("--json", "Output in JSON format")
|
|
19
|
-
.option("-q, --quiet", "Suppress progress output")
|
|
20
|
-
.action(async (prompt, options) => {
|
|
21
|
-
try {
|
|
22
|
-
const config = loadConfig();
|
|
23
|
-
const apiUrl = config.apiUrl;
|
|
24
|
-
const rpcUrl = config.rpcUrl;
|
|
25
|
-
const walletPath = options.wallet || config.wallet || getDefaultWalletPath();
|
|
26
|
-
if (!walletPath) {
|
|
27
|
-
console.error(formatError("No wallet specified. Use --wallet or set MEMEPUTER_WALLET"));
|
|
28
|
-
process.exit(1);
|
|
29
|
-
}
|
|
30
|
-
const quiet = options.quiet || options.json;
|
|
31
|
-
// Load wallet
|
|
32
|
-
let spinner = quiet ? null : ora("Loading wallet...").start();
|
|
33
|
-
const wallet = loadWallet(walletPath);
|
|
34
|
-
if (spinner) {
|
|
35
|
-
spinner.succeed(`Wallet loaded: ${formatPublicKey(wallet.publicKey.toBase58())}`);
|
|
36
|
-
}
|
|
37
|
-
// Connect to Solana
|
|
38
|
-
spinner = quiet ? null : ora("Connecting to Solana...").start();
|
|
39
|
-
const connection = new Connection(rpcUrl, "confirmed");
|
|
40
|
-
if (spinner) {
|
|
41
|
-
spinner.succeed("Connected to Solana");
|
|
42
|
-
}
|
|
43
|
-
// Call PFPputer API with x402 payment
|
|
44
|
-
spinner = quiet
|
|
45
|
-
? null
|
|
46
|
-
: ora(`Generating PFP with ${formatAgent("PFPputer")}... (processing payment)`).start();
|
|
47
|
-
const apiClient = new AgentsApiClient(apiUrl);
|
|
48
|
-
const result = await apiClient.interact("pfpputer", prompt, wallet, connection);
|
|
49
|
-
if (spinner) {
|
|
50
|
-
spinner.succeed(`PFP generated by ${formatAgent("PFPputer")}`);
|
|
51
|
-
}
|
|
52
|
-
// Download image if requested
|
|
53
|
-
if (options.output && result.mediaUrl) {
|
|
54
|
-
spinner = quiet ? null : ora("Downloading image...").start();
|
|
55
|
-
const imageResponse = await axios.get(result.mediaUrl, {
|
|
56
|
-
responseType: "arraybuffer",
|
|
57
|
-
});
|
|
58
|
-
const outputPath = resolve(options.output);
|
|
59
|
-
writeFileSync(outputPath, imageResponse.data);
|
|
60
|
-
if (spinner) {
|
|
61
|
-
spinner.succeed(`Image saved to ${chalk.cyan(outputPath)}`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
// Output results
|
|
65
|
-
if (options.json) {
|
|
66
|
-
console.log(JSON.stringify({
|
|
67
|
-
success: result.success,
|
|
68
|
-
response: result.response,
|
|
69
|
-
mediaUrl: result.mediaUrl,
|
|
70
|
-
signature: result.transactionSignature,
|
|
71
|
-
savedTo: options.output ? resolve(options.output) : null,
|
|
72
|
-
}, null, 2));
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
console.log();
|
|
76
|
-
console.log(formatSuccess("PFP Generated!"));
|
|
77
|
-
console.log();
|
|
78
|
-
console.log(chalk.white(result.response));
|
|
79
|
-
console.log();
|
|
80
|
-
if (result.mediaUrl) {
|
|
81
|
-
console.log(formatInfo(`Image URL: ${chalk.underline(result.mediaUrl)}`));
|
|
82
|
-
}
|
|
83
|
-
if (result.transactionSignature) {
|
|
84
|
-
console.log(formatInfo(`Transaction: ${chalk.underline(`https://solscan.io/tx/${result.transactionSignature}`)}`));
|
|
85
|
-
console.log(chalk.green("💚 You paid $0 in gas fees (PayAI Facilitator covered it)!"));
|
|
86
|
-
}
|
|
87
|
-
if (options.output) {
|
|
88
|
-
console.log(formatInfo(`Saved to: ${chalk.cyan(resolve(options.output))}`));
|
|
89
|
-
}
|
|
90
|
-
console.log();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
console.error(formatError(error.message || "Failed to generate PFP"));
|
|
95
|
-
process.exit(1);
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=pfp.js.map
|
package/dist/commands/pfp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pfp.js","sourceRoot":"","sources":["../../src/commands/pfp.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api.d.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Connection, Keypair } from "@solana/web3.js";
|
|
2
|
-
export interface AgentInfo {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
description: string;
|
|
6
|
-
price: number;
|
|
7
|
-
category: string;
|
|
8
|
-
examplePrompts: string[];
|
|
9
|
-
payTo: string;
|
|
10
|
-
}
|
|
11
|
-
export interface InteractionResult {
|
|
12
|
-
success: boolean;
|
|
13
|
-
response: string;
|
|
14
|
-
format: "text" | "image" | "video" | "audio";
|
|
15
|
-
mediaUrl?: string;
|
|
16
|
-
statusUrl?: string;
|
|
17
|
-
imageUrl?: string;
|
|
18
|
-
etaSeconds?: number;
|
|
19
|
-
transactionSignature?: string;
|
|
20
|
-
agentId?: string;
|
|
21
|
-
error?: string;
|
|
22
|
-
}
|
|
23
|
-
export interface StatusCheckResult {
|
|
24
|
-
status: "pending" | "processing" | "completed" | "failed";
|
|
25
|
-
message?: string;
|
|
26
|
-
imageUrl?: string;
|
|
27
|
-
mediaUrl?: string;
|
|
28
|
-
error?: string;
|
|
29
|
-
}
|
|
30
|
-
export declare class AgentsApiClient {
|
|
31
|
-
private baseUrl;
|
|
32
|
-
constructor(baseUrl: string);
|
|
33
|
-
/**
|
|
34
|
-
* List all available agents from the x402 resources endpoint
|
|
35
|
-
*/
|
|
36
|
-
listAgents(): Promise<AgentInfo[]>;
|
|
37
|
-
/**
|
|
38
|
-
* Interact with an agent using x402 payment
|
|
39
|
-
* Manual x402 flow: 402 → create payment → retry with X-PAYMENT header
|
|
40
|
-
*/
|
|
41
|
-
interact(agentId: string, message: string, wallet: Keypair, connection: Connection): Promise<InteractionResult>;
|
|
42
|
-
/**
|
|
43
|
-
* Check status of async operation
|
|
44
|
-
* Status URLs point to agents-api proxy (no auth required)
|
|
45
|
-
*/
|
|
46
|
-
checkStatus(statusUrl: string): Promise<StatusCheckResult>;
|
|
47
|
-
/**
|
|
48
|
-
* Poll status URL until completion or timeout
|
|
49
|
-
*/
|
|
50
|
-
pollStatus(statusUrl: string, options?: {
|
|
51
|
-
maxAttempts?: number;
|
|
52
|
-
intervalMs?: number;
|
|
53
|
-
onProgress?: (attempt: number, status: StatusCheckResult) => void;
|
|
54
|
-
}): Promise<StatusCheckResult>;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=api.d.ts.map
|
package/dist/lib/api.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAEnC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAsBxC;;;OAGG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,iBAAiB,CAAC;IA8G7B;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwBhE;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;KAC9D,GACL,OAAO,CAAC,iBAAiB,CAAC;CAyB9B"}
|
package/dist/lib/api.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { createPaymentTransaction } from "./x402Client.js";
|
|
3
|
-
export class AgentsApiClient {
|
|
4
|
-
baseUrl;
|
|
5
|
-
constructor(baseUrl) {
|
|
6
|
-
this.baseUrl = baseUrl;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* List all available agents from the x402 resources endpoint
|
|
10
|
-
*/
|
|
11
|
-
async listAgents() {
|
|
12
|
-
const response = await axios.get(`${this.baseUrl}/x402/resources`);
|
|
13
|
-
const data = response.data;
|
|
14
|
-
// Parse new x402 format: { x402Version: 1, accepts: [...] }
|
|
15
|
-
const acceptsList = data.accepts || [];
|
|
16
|
-
const agents = acceptsList.map((accept) => ({
|
|
17
|
-
id: accept.extra?.agentId || accept.agentId || "unknown",
|
|
18
|
-
name: accept.extra?.agentName || accept.name || "Unknown Agent",
|
|
19
|
-
description: accept.description || "AI agent",
|
|
20
|
-
price: accept.extra?.pricing?.amount ||
|
|
21
|
-
parseFloat(accept.maxAmountRequired || "10000") / 1_000_000,
|
|
22
|
-
category: accept.extra?.category || "General AI",
|
|
23
|
-
examplePrompts: accept.extra?.examplePrompts || [],
|
|
24
|
-
payTo: accept.payTo || "",
|
|
25
|
-
}));
|
|
26
|
-
return agents;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Interact with an agent using x402 payment
|
|
30
|
-
* Manual x402 flow: 402 → create payment → retry with X-PAYMENT header
|
|
31
|
-
*/
|
|
32
|
-
async interact(agentId, message, wallet, connection) {
|
|
33
|
-
try {
|
|
34
|
-
// Step 1: Make request without payment (will get 402)
|
|
35
|
-
let response;
|
|
36
|
-
try {
|
|
37
|
-
response = await axios.post(`${this.baseUrl}/x402/interact`, { agentId, message }, {
|
|
38
|
-
headers: {
|
|
39
|
-
"Content-Type": "application/json",
|
|
40
|
-
"User-Agent": "memeputer-cli",
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
if (error.response?.status !== 402) {
|
|
46
|
-
throw error;
|
|
47
|
-
}
|
|
48
|
-
// Got 402 - payment required
|
|
49
|
-
response = error.response;
|
|
50
|
-
}
|
|
51
|
-
if (response.status === 402) {
|
|
52
|
-
// Step 2: Get payment requirements from 402 response
|
|
53
|
-
const paymentReq = response.data;
|
|
54
|
-
// x402 format has payment details in accepts array
|
|
55
|
-
const acceptDetails = paymentReq.accepts?.[0];
|
|
56
|
-
if (!acceptDetails) {
|
|
57
|
-
throw new Error(`No payment details in 402 response. Response: ${JSON.stringify(paymentReq)}`);
|
|
58
|
-
}
|
|
59
|
-
const recipient = acceptDetails.payTo;
|
|
60
|
-
const amountMicroUsdc = parseInt(acceptDetails.maxAmountRequired || "10000");
|
|
61
|
-
const amountUsdc = amountMicroUsdc / 1_000_000;
|
|
62
|
-
const feePayer = acceptDetails.extra?.feePayer;
|
|
63
|
-
const scheme = acceptDetails.scheme || "exact";
|
|
64
|
-
const network = acceptDetails.network || "solana";
|
|
65
|
-
if (!recipient) {
|
|
66
|
-
throw new Error(`No recipient wallet (payTo) found in 402 response.`);
|
|
67
|
-
}
|
|
68
|
-
// Step 3: Create and sign payment transaction
|
|
69
|
-
const { signature: paymentHeader } = await createPaymentTransaction(connection, wallet, recipient, amountUsdc, scheme, network);
|
|
70
|
-
// Step 4: Retry request with X-PAYMENT header
|
|
71
|
-
response = await axios.post(`${this.baseUrl}/x402/interact`, { agentId, message }, {
|
|
72
|
-
headers: {
|
|
73
|
-
"Content-Type": "application/json",
|
|
74
|
-
"X-PAYMENT": paymentHeader,
|
|
75
|
-
"User-Agent": "memeputer-cli",
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
// Parse successful response
|
|
80
|
-
const data = response.data;
|
|
81
|
-
return {
|
|
82
|
-
success: data.success || true,
|
|
83
|
-
response: data.response || data.message || "",
|
|
84
|
-
format: data.format || "text",
|
|
85
|
-
mediaUrl: data.mediaUrl || data.media_url,
|
|
86
|
-
statusUrl: data.statusUrl || data.status_url,
|
|
87
|
-
imageUrl: data.imageUrl || data.image_url,
|
|
88
|
-
etaSeconds: data.etaSeconds || data.eta_seconds,
|
|
89
|
-
transactionSignature: data.transactionSignature,
|
|
90
|
-
agentId: data.agentId || agentId,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
// Better error messages
|
|
95
|
-
if (error.response) {
|
|
96
|
-
const status = error.response.status;
|
|
97
|
-
const data = error.response.data;
|
|
98
|
-
if (status === 402) {
|
|
99
|
-
throw new Error(`Payment required but payment was rejected. Check your USDC balance.`);
|
|
100
|
-
}
|
|
101
|
-
if (data?.error) {
|
|
102
|
-
throw new Error(data.error);
|
|
103
|
-
}
|
|
104
|
-
throw new Error(`API error (${status}): ${JSON.stringify(data)}`);
|
|
105
|
-
}
|
|
106
|
-
throw error;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Check status of async operation
|
|
111
|
-
* Status URLs point to agents-api proxy (no auth required)
|
|
112
|
-
*/
|
|
113
|
-
async checkStatus(statusUrl) {
|
|
114
|
-
try {
|
|
115
|
-
const response = await axios.get(statusUrl);
|
|
116
|
-
// Handle both wrapped (ok()) and unwrapped responses
|
|
117
|
-
const data = response.data.data || response.data;
|
|
118
|
-
return {
|
|
119
|
-
status: data.status || "pending",
|
|
120
|
-
message: data.message,
|
|
121
|
-
imageUrl: data.imageUrl || data.image_url,
|
|
122
|
-
mediaUrl: data.mediaUrl || data.media_url,
|
|
123
|
-
error: data.error,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
if (error.response?.data) {
|
|
128
|
-
return {
|
|
129
|
-
status: "failed",
|
|
130
|
-
error: error.response.data.error || "Status check failed",
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
throw error;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Poll status URL until completion or timeout
|
|
138
|
-
*/
|
|
139
|
-
async pollStatus(statusUrl, options = {}) {
|
|
140
|
-
const maxAttempts = options.maxAttempts || 60; // 5 minutes at 5s intervals
|
|
141
|
-
const intervalMs = options.intervalMs || 5000;
|
|
142
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
143
|
-
const result = await this.checkStatus(statusUrl);
|
|
144
|
-
if (options.onProgress) {
|
|
145
|
-
options.onProgress(attempt, result);
|
|
146
|
-
}
|
|
147
|
-
if (result.status === "completed" || result.status === "failed") {
|
|
148
|
-
return result;
|
|
149
|
-
}
|
|
150
|
-
if (attempt < maxAttempts) {
|
|
151
|
-
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
status: "failed",
|
|
156
|
-
error: "Timeout waiting for completion",
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=api.js.map
|
package/dist/lib/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/x402Client.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Connection, Keypair, VersionedTransaction } from "@solana/web3.js";
|
|
2
|
-
/**
|
|
3
|
-
* Create a simple USDC payment transaction (for CLI use)
|
|
4
|
-
* This creates a signed transaction that can be sent in the X-PAYMENT header
|
|
5
|
-
*/
|
|
6
|
-
export declare function createPaymentTransaction(connection: Connection, payer: Keypair, recipient: string, amountUsdc: number, scheme?: string, network?: string): Promise<{
|
|
7
|
-
transaction: VersionedTransaction;
|
|
8
|
-
signature: string;
|
|
9
|
-
}>;
|
|
10
|
-
/**
|
|
11
|
-
* Get USDC balance for a wallet
|
|
12
|
-
*/
|
|
13
|
-
export declare function getUsdcBalance(connection: Connection, keypair: Keypair): Promise<number>;
|
|
14
|
-
//# sourceMappingURL=x402Client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x402Client.d.ts","sourceRoot":"","sources":["../../src/lib/x402Client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,OAAO,EAIP,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAYzB;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAgB,EACxB,OAAO,GAAE,MAAiB,GACzB,OAAO,CAAC;IAAE,WAAW,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAsInE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,CAejB"}
|
package/dist/lib/x402Client.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { ComputeBudgetProgram, TransactionMessage, VersionedTransaction, } from "@solana/web3.js";
|
|
2
|
-
import { getAssociatedTokenAddress, createTransferCheckedInstruction, createAssociatedTokenAccountInstruction, TOKEN_PROGRAM_ID, } from "@solana/spl-token";
|
|
3
|
-
import { PublicKey } from "@solana/web3.js";
|
|
4
|
-
// USDC mint on Solana mainnet
|
|
5
|
-
const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
|
|
6
|
-
/**
|
|
7
|
-
* Create a simple USDC payment transaction (for CLI use)
|
|
8
|
-
* This creates a signed transaction that can be sent in the X-PAYMENT header
|
|
9
|
-
*/
|
|
10
|
-
export async function createPaymentTransaction(connection, payer, recipient, amountUsdc, scheme = "exact", network = "solana") {
|
|
11
|
-
try {
|
|
12
|
-
const recipientPubkey = new PublicKey(recipient);
|
|
13
|
-
// Convert USDC amount to micro-USDC (6 decimals)
|
|
14
|
-
const amount = Math.floor(amountUsdc * 1_000_000);
|
|
15
|
-
// Get token accounts (allowOwnerOffCurve fixes wallet adapter key issues)
|
|
16
|
-
const payerTokenAccount = await getAssociatedTokenAddress(USDC_MINT, payer.publicKey, true, // allowOwnerOffCurve - critical for wallet adapter keys!
|
|
17
|
-
TOKEN_PROGRAM_ID);
|
|
18
|
-
const recipientTokenAccount = await getAssociatedTokenAddress(USDC_MINT, recipientPubkey, true, // allowOwnerOffCurve - critical for wallet adapter keys!
|
|
19
|
-
TOKEN_PROGRAM_ID);
|
|
20
|
-
// Build instructions array
|
|
21
|
-
const instructions = [];
|
|
22
|
-
// Add ComputeBudget instructions FIRST (required by facilitator!)
|
|
23
|
-
instructions.push(ComputeBudgetProgram.setComputeUnitLimit({
|
|
24
|
-
units: 40_000,
|
|
25
|
-
}));
|
|
26
|
-
instructions.push(ComputeBudgetProgram.setComputeUnitPrice({
|
|
27
|
-
microLamports: 1,
|
|
28
|
-
}));
|
|
29
|
-
// Check if recipient token account exists, if not create it
|
|
30
|
-
const recipientAccountInfo = await connection.getAccountInfo(recipientTokenAccount);
|
|
31
|
-
if (!recipientAccountInfo) {
|
|
32
|
-
console.log(` 📝 Recipient token account doesn't exist, will create it`);
|
|
33
|
-
instructions.push(createAssociatedTokenAccountInstruction(payer.publicKey, // payer
|
|
34
|
-
recipientTokenAccount, // ata
|
|
35
|
-
recipientPubkey, // owner
|
|
36
|
-
USDC_MINT, // mint
|
|
37
|
-
TOKEN_PROGRAM_ID));
|
|
38
|
-
}
|
|
39
|
-
// Add the transfer instruction (use checked version like agent-to-agent payments)
|
|
40
|
-
instructions.push(createTransferCheckedInstruction(payerTokenAccount, USDC_MINT, recipientTokenAccount, payer.publicKey, amount, 6, // USDC has 6 decimals
|
|
41
|
-
[], TOKEN_PROGRAM_ID));
|
|
42
|
-
// Get recent blockhash
|
|
43
|
-
const { blockhash } = await connection.getLatestBlockhash("confirmed");
|
|
44
|
-
// Set facilitator as fee payer for gas-free transactions!
|
|
45
|
-
const facilitatorPublicKey = new PublicKey("2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4");
|
|
46
|
-
// Create VersionedTransaction (x402 standard)
|
|
47
|
-
const message = new TransactionMessage({
|
|
48
|
-
payerKey: facilitatorPublicKey,
|
|
49
|
-
recentBlockhash: blockhash,
|
|
50
|
-
instructions,
|
|
51
|
-
}).compileToV0Message();
|
|
52
|
-
const transaction = new VersionedTransaction(message);
|
|
53
|
-
// Find which signature slot corresponds to the user's public key
|
|
54
|
-
// The facilitator is at index 0 (fee payer), user is at a different index
|
|
55
|
-
const userPubkey = payer.publicKey;
|
|
56
|
-
const staticAccountKeys = transaction.message.staticAccountKeys;
|
|
57
|
-
const userSignatureIndex = staticAccountKeys.findIndex((key) => key.equals(userPubkey));
|
|
58
|
-
// Sign with user's wallet (facilitator will add its signature)
|
|
59
|
-
transaction.sign([payer]);
|
|
60
|
-
// Serialize transaction
|
|
61
|
-
const serialized = transaction.serialize();
|
|
62
|
-
const serializedTx = Buffer.from(serialized).toString("base64");
|
|
63
|
-
// Extract the user's signature from the correct slot (bs58 encoded)
|
|
64
|
-
const bs58 = await import("bs58");
|
|
65
|
-
const userSignature = userSignatureIndex >= 0 &&
|
|
66
|
-
transaction.signatures?.[userSignatureIndex] &&
|
|
67
|
-
!transaction.signatures[userSignatureIndex].every((b) => b === 0)
|
|
68
|
-
? bs58.default.encode(transaction.signatures[userSignatureIndex])
|
|
69
|
-
: undefined;
|
|
70
|
-
// Create X-PAYMENT header in x402 format (minimal format matching agent-to-agent)
|
|
71
|
-
// This matches the exact format from @payai/x402-solana
|
|
72
|
-
const paymentPayload = {
|
|
73
|
-
x402Version: 1,
|
|
74
|
-
scheme: scheme,
|
|
75
|
-
network: network,
|
|
76
|
-
payload: {
|
|
77
|
-
transaction: serializedTx,
|
|
78
|
-
signature: userSignature, // Include signature for reference (optional)
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
// Encode as base64
|
|
82
|
-
const paymentHeader = Buffer.from(JSON.stringify(paymentPayload)).toString("base64");
|
|
83
|
-
return { transaction, signature: paymentHeader };
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
console.error("Error creating payment transaction:", error);
|
|
87
|
-
throw new Error(`Failed to create payment: ${error instanceof Error ? error.message : String(error)}`);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get USDC balance for a wallet
|
|
92
|
-
*/
|
|
93
|
-
export async function getUsdcBalance(connection, keypair) {
|
|
94
|
-
try {
|
|
95
|
-
const tokenAccount = await getAssociatedTokenAddress(USDC_MINT, keypair.publicKey, true, // allowOwnerOffCurve - critical for wallet adapter keys!
|
|
96
|
-
TOKEN_PROGRAM_ID);
|
|
97
|
-
const balance = await connection.getTokenAccountBalance(tokenAccount);
|
|
98
|
-
return parseFloat(balance.value.uiAmount?.toString() || "0");
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
// Token account doesn't exist or other error
|
|
102
|
-
return 0;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=x402Client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x402Client.js","sourceRoot":"","sources":["../../src/lib/x402Client.ts"],"names":[],"mappings":"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"}
|