@x402api/agent-wallet-cli 0.1.0
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 +15 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +4 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +336 -0
- package/dist/cli.js.map +1 -0
- package/package.json +35 -0
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# `@x402api/agent-wallet-cli`
|
|
2
|
+
|
|
3
|
+
Installs the `x402api` executable for persistent Base, Solana, and TRON agent
|
|
4
|
+
wallets and exact x402 payment artifacts.
|
|
5
|
+
|
|
6
|
+
The CLI is pre-release. Run `x402api help --json` for the machine-readable
|
|
7
|
+
command summary. Unlock material is accepted only from standard input or an
|
|
8
|
+
owner-only file named by `X402API_WALLET_PASSWORD_FILE`; passphrases are never
|
|
9
|
+
accepted as command-line values.
|
|
10
|
+
|
|
11
|
+
`wallet notify-refill` signs a short-lived refill intent and sends it to the
|
|
12
|
+
configured `X402API_NOTIFICATION_URL`. x402api resolves the verified refill
|
|
13
|
+
contact, tenant display name, and purchased product from the subscription
|
|
14
|
+
reference; the CLI never accepts an arbitrary recipient email or untrusted
|
|
15
|
+
tenant/product display text.
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
ADDED
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type Io = {
|
|
2
|
+
stdout: (value: string) => void;
|
|
3
|
+
stderr: (value: string) => void;
|
|
4
|
+
readStdin: () => Promise<string>;
|
|
5
|
+
};
|
|
6
|
+
export declare function runCli(args: string[], options?: {
|
|
7
|
+
io?: Io;
|
|
8
|
+
environment?: NodeJS.ProcessEnv;
|
|
9
|
+
}): Promise<number>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAuBA,KAAK,EAAE,GAAG;IACR,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAiWF,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAC5B,GACL,OAAO,CAAC,MAAM,CAAC,CA4CjB"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { lstat, readFile } from "node:fs/promises";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { AgentWalletError, AttemptStore, asAgentWalletError, authorizePayment, backupWallet, createWallet, defaultDataRoot, importWallet, listWallets, readWalletBalance, readWalletMetadata, requestRefillNotification, retireWallet, walletPaths, } from "@x402api/agent-wallet-core";
|
|
4
|
+
const HELP = {
|
|
5
|
+
version: 1,
|
|
6
|
+
binary: "x402api",
|
|
7
|
+
commands: [
|
|
8
|
+
"wallet create --name <name> --network <network>",
|
|
9
|
+
"wallet list",
|
|
10
|
+
"wallet show --wallet <name>",
|
|
11
|
+
"wallet address --wallet <name>",
|
|
12
|
+
"wallet balance --wallet <name>",
|
|
13
|
+
"wallet notify-refill --wallet <name> --subscription-reference <id> --renew-by <UTC> --target-balance-atomic <amount> --reason <renewal|low_balance>",
|
|
14
|
+
"wallet backup --wallet <name> --output <file>",
|
|
15
|
+
"wallet import --name <name> --input <file>",
|
|
16
|
+
"wallet retire --wallet <name> --confirm <name>",
|
|
17
|
+
"wallet sweep --wallet <name> --to <address>",
|
|
18
|
+
"payment authorize --wallet <name> --request-envelope <file> --artifact-out <file>",
|
|
19
|
+
"payment status --attempt <id>",
|
|
20
|
+
"payment artifact --attempt <id> --output <file>",
|
|
21
|
+
"payment abandon --attempt <id>",
|
|
22
|
+
"payment reconcile --attempt <id>",
|
|
23
|
+
],
|
|
24
|
+
passwordSources: ["--password-stdin", "X402API_WALLET_PASSWORD_FILE"],
|
|
25
|
+
rpcEnvironment: [
|
|
26
|
+
"X402API_BASE_RPC_URL",
|
|
27
|
+
"X402API_SOLANA_RPC_URL",
|
|
28
|
+
"X402API_TRON_RPC_URL",
|
|
29
|
+
],
|
|
30
|
+
notificationEnvironment: ["X402API_NOTIFICATION_URL"],
|
|
31
|
+
};
|
|
32
|
+
function parseArguments(args) {
|
|
33
|
+
const positionals = [];
|
|
34
|
+
const values = new Map();
|
|
35
|
+
const flags = new Set();
|
|
36
|
+
const booleanFlags = new Set(["json", "password-stdin"]);
|
|
37
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
38
|
+
const value = args[index];
|
|
39
|
+
if (!value.startsWith("--")) {
|
|
40
|
+
positionals.push(value);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const name = value.slice(2);
|
|
44
|
+
if (!/^[a-z][a-z0-9-]*$/.test(name) || values.has(name) || flags.has(name)) {
|
|
45
|
+
throw new AgentWalletError("invalid_input", `invalid or duplicate option: ${value}`);
|
|
46
|
+
}
|
|
47
|
+
if (booleanFlags.has(name)) {
|
|
48
|
+
flags.add(name);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const optionValue = args[index + 1];
|
|
52
|
+
if (optionValue === undefined || optionValue.startsWith("--")) {
|
|
53
|
+
throw new AgentWalletError("invalid_input", `option requires a value: ${value}`);
|
|
54
|
+
}
|
|
55
|
+
values.set(name, optionValue);
|
|
56
|
+
index += 1;
|
|
57
|
+
}
|
|
58
|
+
return { positionals, values, flags };
|
|
59
|
+
}
|
|
60
|
+
function required(parsed, name) {
|
|
61
|
+
const value = parsed.values.get(name);
|
|
62
|
+
if (value === undefined || value.length === 0) {
|
|
63
|
+
throw new AgentWalletError("invalid_input", `--${name} is required`);
|
|
64
|
+
}
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
function rejectUnknown(parsed, allowedValues, allowedFlags = ["json"]) {
|
|
68
|
+
for (const name of parsed.values.keys()) {
|
|
69
|
+
if (!allowedValues.includes(name)) {
|
|
70
|
+
throw new AgentWalletError("invalid_input", `unknown option: --${name}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
for (const name of parsed.flags) {
|
|
74
|
+
if (!allowedFlags.includes(name)) {
|
|
75
|
+
throw new AgentWalletError("invalid_input", `unknown flag: --${name}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async function readPasswordFile(path) {
|
|
80
|
+
const absolute = resolve(path);
|
|
81
|
+
const stat = await lstat(absolute).catch((error) => {
|
|
82
|
+
if (error.code === "ENOENT") {
|
|
83
|
+
throw new AgentWalletError("password_required", "wallet password file was not found");
|
|
84
|
+
}
|
|
85
|
+
throw error;
|
|
86
|
+
});
|
|
87
|
+
if (!stat.isFile() ||
|
|
88
|
+
stat.isSymbolicLink() ||
|
|
89
|
+
stat.size < 12 ||
|
|
90
|
+
stat.size > 4096 ||
|
|
91
|
+
(process.platform !== "win32" && (stat.mode & 0o077) !== 0) ||
|
|
92
|
+
(typeof process.getuid === "function" && stat.uid !== process.getuid())) {
|
|
93
|
+
throw new AgentWalletError("wallet_storage_unsafe", "wallet password file must be an owner-only regular file");
|
|
94
|
+
}
|
|
95
|
+
return readFile(absolute, "utf8");
|
|
96
|
+
}
|
|
97
|
+
function normalizePassphrase(value) {
|
|
98
|
+
const normalized = value.replace(/\r?\n$/, "");
|
|
99
|
+
if (normalized.includes("\n") || normalized.includes("\r")) {
|
|
100
|
+
throw new AgentWalletError("password_required", "wallet passphrase must be one line");
|
|
101
|
+
}
|
|
102
|
+
return normalized;
|
|
103
|
+
}
|
|
104
|
+
async function passphrase(parsed, io, environment) {
|
|
105
|
+
const passwordFile = environment.X402API_WALLET_PASSWORD_FILE;
|
|
106
|
+
if (parsed.flags.has("password-stdin") && passwordFile) {
|
|
107
|
+
throw new AgentWalletError("password_required", "configure exactly one wallet password source");
|
|
108
|
+
}
|
|
109
|
+
if (parsed.flags.has("password-stdin"))
|
|
110
|
+
return normalizePassphrase(await io.readStdin());
|
|
111
|
+
if (passwordFile)
|
|
112
|
+
return normalizePassphrase(await readPasswordFile(passwordFile));
|
|
113
|
+
throw new AgentWalletError("password_required", "use --password-stdin or X402API_WALLET_PASSWORD_FILE");
|
|
114
|
+
}
|
|
115
|
+
function rpcConfiguration(environment) {
|
|
116
|
+
return {
|
|
117
|
+
...(environment.X402API_BASE_RPC_URL
|
|
118
|
+
? { base: environment.X402API_BASE_RPC_URL }
|
|
119
|
+
: {}),
|
|
120
|
+
...(environment.X402API_SOLANA_RPC_URL
|
|
121
|
+
? { solana: environment.X402API_SOLANA_RPC_URL }
|
|
122
|
+
: {}),
|
|
123
|
+
...(environment.X402API_TRON_RPC_URL
|
|
124
|
+
? { tron: environment.X402API_TRON_RPC_URL }
|
|
125
|
+
: {}),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function publicWallet(metadata) {
|
|
129
|
+
return {
|
|
130
|
+
version: metadata.version,
|
|
131
|
+
wallet: metadata.name,
|
|
132
|
+
network: metadata.network,
|
|
133
|
+
address: metadata.address,
|
|
134
|
+
createdAt: metadata.createdAt,
|
|
135
|
+
...(metadata.maximumPaymentAtomic === undefined
|
|
136
|
+
? {}
|
|
137
|
+
: { maximumPaymentAtomic: metadata.maximumPaymentAtomic }),
|
|
138
|
+
...(metadata.retiredAt === undefined ? {} : { retiredAt: metadata.retiredAt }),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
async function dispatch(parsed, io, environment) {
|
|
142
|
+
const [group, action] = parsed.positionals;
|
|
143
|
+
if (group === "help" || group === "--help" || group === undefined) {
|
|
144
|
+
rejectUnknown(parsed, [], ["json"]);
|
|
145
|
+
return HELP;
|
|
146
|
+
}
|
|
147
|
+
const paths = walletPaths(defaultDataRoot(environment));
|
|
148
|
+
if (group === "wallet" && action === "create") {
|
|
149
|
+
rejectUnknown(parsed, ["name", "network", "maximum-payment-atomic"], [
|
|
150
|
+
"json",
|
|
151
|
+
"password-stdin",
|
|
152
|
+
]);
|
|
153
|
+
const network = required(parsed, "network");
|
|
154
|
+
const metadata = await createWallet({
|
|
155
|
+
walletsDirectory: paths.wallets,
|
|
156
|
+
name: required(parsed, "name"),
|
|
157
|
+
network,
|
|
158
|
+
passphrase: await passphrase(parsed, io, environment),
|
|
159
|
+
...(parsed.values.has("maximum-payment-atomic")
|
|
160
|
+
? { maximumPaymentAtomic: required(parsed, "maximum-payment-atomic") }
|
|
161
|
+
: {}),
|
|
162
|
+
});
|
|
163
|
+
return {
|
|
164
|
+
...publicWallet(metadata),
|
|
165
|
+
storage: "local-encrypted-keystore",
|
|
166
|
+
status: "created_unfunded",
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
if (group === "wallet" && action === "list") {
|
|
170
|
+
rejectUnknown(parsed, []);
|
|
171
|
+
return { version: 1, wallets: (await listWallets(paths.wallets)).map(publicWallet) };
|
|
172
|
+
}
|
|
173
|
+
if (group === "wallet" && ["show", "address"].includes(action ?? "")) {
|
|
174
|
+
rejectUnknown(parsed, ["wallet"]);
|
|
175
|
+
return publicWallet(await readWalletMetadata(paths.wallets, required(parsed, "wallet")));
|
|
176
|
+
}
|
|
177
|
+
if (group === "wallet" && action === "balance") {
|
|
178
|
+
rejectUnknown(parsed, ["wallet"]);
|
|
179
|
+
const metadata = await readWalletMetadata(paths.wallets, required(parsed, "wallet"));
|
|
180
|
+
return readWalletBalance({
|
|
181
|
+
network: metadata.network,
|
|
182
|
+
address: metadata.address,
|
|
183
|
+
rpc: rpcConfiguration(environment),
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
if (group === "wallet" && action === "notify-refill") {
|
|
187
|
+
rejectUnknown(parsed, ["wallet", "subscription-reference", "renew-by", "target-balance-atomic", "reason"], ["json", "password-stdin"]);
|
|
188
|
+
const notificationUrl = environment.X402API_NOTIFICATION_URL;
|
|
189
|
+
if (!notificationUrl) {
|
|
190
|
+
throw new AgentWalletError("notification_not_configured", "X402API_NOTIFICATION_URL is required");
|
|
191
|
+
}
|
|
192
|
+
return requestRefillNotification({
|
|
193
|
+
walletsDirectory: paths.wallets,
|
|
194
|
+
wallet: required(parsed, "wallet"),
|
|
195
|
+
passphrase: await passphrase(parsed, io, environment),
|
|
196
|
+
rpc: rpcConfiguration(environment),
|
|
197
|
+
notificationUrl,
|
|
198
|
+
subscriptionReference: required(parsed, "subscription-reference"),
|
|
199
|
+
renewBy: required(parsed, "renew-by"),
|
|
200
|
+
targetBalanceAtomic: required(parsed, "target-balance-atomic"),
|
|
201
|
+
reason: required(parsed, "reason"),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
if (group === "wallet" && action === "backup") {
|
|
205
|
+
rejectUnknown(parsed, ["wallet", "output"]);
|
|
206
|
+
const output = await backupWallet({
|
|
207
|
+
walletsDirectory: paths.wallets,
|
|
208
|
+
name: required(parsed, "wallet"),
|
|
209
|
+
output: required(parsed, "output"),
|
|
210
|
+
});
|
|
211
|
+
return { version: 1, wallet: required(parsed, "wallet"), backupPath: output };
|
|
212
|
+
}
|
|
213
|
+
if (group === "wallet" && action === "import") {
|
|
214
|
+
rejectUnknown(parsed, ["name", "input"], ["json", "password-stdin"]);
|
|
215
|
+
const metadata = await importWallet({
|
|
216
|
+
walletsDirectory: paths.wallets,
|
|
217
|
+
name: required(parsed, "name"),
|
|
218
|
+
input: required(parsed, "input"),
|
|
219
|
+
passphrase: await passphrase(parsed, io, environment),
|
|
220
|
+
});
|
|
221
|
+
return { ...publicWallet(metadata), status: "imported" };
|
|
222
|
+
}
|
|
223
|
+
if (group === "wallet" && action === "retire") {
|
|
224
|
+
rejectUnknown(parsed, ["wallet", "confirm"], ["json", "password-stdin"]);
|
|
225
|
+
const wallet = required(parsed, "wallet");
|
|
226
|
+
const active = await new AttemptStore(paths.attempts).activeForWallet(wallet);
|
|
227
|
+
if (active.length > 0) {
|
|
228
|
+
throw new AgentWalletError("attempt_ambiguous", "wallet has non-terminal payment attempts and cannot be retired", { details: { attemptIds: active.map((record) => record.attemptId) } });
|
|
229
|
+
}
|
|
230
|
+
const metadata = await retireWallet({
|
|
231
|
+
walletsDirectory: paths.wallets,
|
|
232
|
+
name: wallet,
|
|
233
|
+
passphrase: await passphrase(parsed, io, environment),
|
|
234
|
+
confirmation: required(parsed, "confirm"),
|
|
235
|
+
});
|
|
236
|
+
return { ...publicWallet(metadata), status: "retired" };
|
|
237
|
+
}
|
|
238
|
+
if (group === "wallet" && action === "sweep") {
|
|
239
|
+
rejectUnknown(parsed, ["wallet", "to"]);
|
|
240
|
+
throw new AgentWalletError("operation_not_supported", "sweep is release-gated until per-rail fee and destination conformance tests pass");
|
|
241
|
+
}
|
|
242
|
+
if (group === "payment" && action === "authorize") {
|
|
243
|
+
rejectUnknown(parsed, ["wallet", "request-envelope", "artifact-out"], ["json", "password-stdin"]);
|
|
244
|
+
return authorizePayment({
|
|
245
|
+
walletsDirectory: paths.wallets,
|
|
246
|
+
attemptsDirectory: paths.attempts,
|
|
247
|
+
wallet: required(parsed, "wallet"),
|
|
248
|
+
passphrase: await passphrase(parsed, io, environment),
|
|
249
|
+
requestEnvelopePath: required(parsed, "request-envelope"),
|
|
250
|
+
artifactPath: required(parsed, "artifact-out"),
|
|
251
|
+
rpc: rpcConfiguration(environment),
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
if (group === "payment" && action === "status") {
|
|
255
|
+
rejectUnknown(parsed, ["attempt"]);
|
|
256
|
+
return new AttemptStore(paths.attempts).get(required(parsed, "attempt"));
|
|
257
|
+
}
|
|
258
|
+
if (group === "payment" && action === "artifact") {
|
|
259
|
+
rejectUnknown(parsed, ["attempt", "output"]);
|
|
260
|
+
const attempt = required(parsed, "attempt");
|
|
261
|
+
const output = await new AttemptStore(paths.attempts).copyArtifact(attempt, required(parsed, "output"));
|
|
262
|
+
return { version: 1, attemptId: attempt, artifactPath: output };
|
|
263
|
+
}
|
|
264
|
+
if (group === "payment" && action === "abandon") {
|
|
265
|
+
rejectUnknown(parsed, ["attempt"]);
|
|
266
|
+
const attempt = required(parsed, "attempt");
|
|
267
|
+
const store = new AttemptStore(paths.attempts);
|
|
268
|
+
const current = await store.get(attempt);
|
|
269
|
+
if (["settled", "fulfilled", "terminal_failed"].includes(current.state)) {
|
|
270
|
+
throw new AgentWalletError("invalid_input", `cannot abandon attempt in ${current.state}`);
|
|
271
|
+
}
|
|
272
|
+
const record = await store.updateState(attempt, "abandoned_local");
|
|
273
|
+
return {
|
|
274
|
+
version: 1,
|
|
275
|
+
attemptId: attempt,
|
|
276
|
+
state: record.state,
|
|
277
|
+
warning: "Local abandonment cannot reverse an authorization or settlement.",
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
if (group === "payment" && action === "reconcile") {
|
|
281
|
+
rejectUnknown(parsed, ["attempt"]);
|
|
282
|
+
const record = await new AttemptStore(paths.attempts).get(required(parsed, "attempt"));
|
|
283
|
+
throw new AgentWalletError("attempt_ambiguous", "reconciliation requires the merchant's authoritative status adapter; reuse the exact artifact", { details: { attemptId: record.attemptId, state: record.state } });
|
|
284
|
+
}
|
|
285
|
+
if (group === "pay") {
|
|
286
|
+
throw new AgentWalletError("operation_not_supported", "full payer mode is deferred until signer-only conformance is complete");
|
|
287
|
+
}
|
|
288
|
+
throw new AgentWalletError("invalid_input", "unknown x402api command");
|
|
289
|
+
}
|
|
290
|
+
export async function runCli(args, options = {}) {
|
|
291
|
+
const io = options.io ??
|
|
292
|
+
{
|
|
293
|
+
stdout: (value) => process.stdout.write(value),
|
|
294
|
+
stderr: (value) => process.stderr.write(value),
|
|
295
|
+
readStdin: async () => {
|
|
296
|
+
const chunks = [];
|
|
297
|
+
for await (const chunk of process.stdin) {
|
|
298
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
299
|
+
if (chunks.reduce((size, item) => size + item.length, 0) > 4096) {
|
|
300
|
+
throw new AgentWalletError("password_required", "wallet passphrase input is too large");
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return Buffer.concat(chunks).toString("utf8");
|
|
304
|
+
},
|
|
305
|
+
};
|
|
306
|
+
let parsed;
|
|
307
|
+
try {
|
|
308
|
+
parsed = parseArguments(args);
|
|
309
|
+
if (!parsed.flags.has("json")) {
|
|
310
|
+
throw new AgentWalletError("invalid_input", "--json is required for the V1 CLI contract");
|
|
311
|
+
}
|
|
312
|
+
const result = await dispatch(parsed, io, options.environment ?? process.env);
|
|
313
|
+
io.stdout(`${JSON.stringify(result)}\n`);
|
|
314
|
+
return 0;
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
const normalized = asAgentWalletError(error);
|
|
318
|
+
const payload = {
|
|
319
|
+
version: 1,
|
|
320
|
+
error: {
|
|
321
|
+
code: normalized.code,
|
|
322
|
+
message: normalized.message,
|
|
323
|
+
retryable: normalized.retryable,
|
|
324
|
+
...(normalized.details === undefined ? {} : { details: normalized.details }),
|
|
325
|
+
},
|
|
326
|
+
};
|
|
327
|
+
if (parsed?.flags.has("json") ?? args.includes("--json")) {
|
|
328
|
+
io.stdout(`${JSON.stringify(payload)}\n`);
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
io.stderr(`${normalized.code}: ${normalized.message}\n`);
|
|
332
|
+
}
|
|
333
|
+
return normalized.exitCode;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@x402api/agent-wallet-cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Command-line wallet for autonomous x402 purchases.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=22"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md"
|
|
13
|
+
],
|
|
14
|
+
"bin": {
|
|
15
|
+
"x402api": "./dist/bin.js"
|
|
16
|
+
},
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/cli.d.ts",
|
|
20
|
+
"import": "./dist/cli.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"types": "./dist/cli.d.ts",
|
|
24
|
+
"main": "./dist/cli.js",
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc -p tsconfig.build.json",
|
|
27
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"test:coverage": "vitest run --coverage",
|
|
30
|
+
"lint": "tsc --noEmit -p tsconfig.json"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@x402api/agent-wallet-core": "0.1.0"
|
|
34
|
+
}
|
|
35
|
+
}
|