fuego-cli 1.2.0 → 1.3.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 CHANGED
@@ -74,6 +74,7 @@ fuego dashboard
74
74
  | `fuego contacts` | Manage your contacts |
75
75
  | `fuego fund` | Show funding options: MoonPay link + QR code |
76
76
  | `fuego send` | Send SOL, USDC, or USDT to an address or contact |
77
+ | `fuego purch` | Purchase products via x402 (Amazon, Shopify, etc.) |
77
78
 
78
79
  ### Project Management
79
80
 
@@ -305,9 +306,49 @@ fuego send melanie 5 --token USDT --yes
305
306
 
306
307
  ---
307
308
 
309
+ ### `fuego purch <product-url>`
310
+
311
+ Purchase products via x402/Purch.xyz (Amazon, Shopify, etc.) using USDC on Solana.
312
+
313
+ ```bash
314
+ # Purchase from Amazon
315
+ fuego purch https://amazon.com/dp/B071G6PFDR \
316
+ --email user@example.com \
317
+ --name "John Doe" \
318
+ --address-line1 "123 Main St" \
319
+ --address-line2 "Apt 4B" \
320
+ --city "Austin" \
321
+ --state TX \
322
+ --postal-code 78701 \
323
+ --country US
324
+ ```
325
+
326
+ **Required Options:**
327
+ - `--email <email>` — Email for order notifications
328
+ - `--name <name>` — Full name for shipping
329
+ - `--address-line1 <address>` — Street address line 1
330
+ - `--city <city>` — City
331
+ - `--state <state>` — State/Province code (e.g., TX)
332
+ - `--postal-code <code>` — Postal/ZIP code
333
+
334
+ **Optional:**
335
+ - `--address-line2 <address>` — Apartment, suite, etc.
336
+ - `--country <code>` — Country code (default: US)
337
+
338
+ **How it works:**
339
+ 1. Sends product URL and shipping info to Purch.xyz
340
+ 2. Receives x402 payment challenge ($0.01 USDC fee)
341
+ 3. Builds and signs x402 payment transaction
342
+ 4. Submits payment to Purch.xyz
343
+ 5. Receives order transaction (ready for final submission)
344
+
345
+ **Note:** The final order transaction is displayed but not automatically submitted. Review the output to complete the purchase.
346
+
347
+ ---
348
+
308
349
  ### `fuego install [options]`
309
350
 
310
- Install the [Fuego project](https://github.com/willmcdeezy/fuego) — Rust server, Python scripts, and dashboard.
351
+ Install the [Fuego project](https://github.com/willmcdeezy/fuego) — Rust server, scripts, and dashboard. Automatically runs `npm install` after cloning.
311
352
 
312
353
  **Auto-detection:**
313
354
  1. Checks for `~/.openclaw/workspace` first (OpenClaw agent machines)
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF3E"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA2F3E"}
@@ -37,6 +37,10 @@ export async function installCommand(options) {
37
37
  // Clone the main Fuego repo
38
38
  const repoUrl = 'https://github.com/willmcdeezy/fuego.git';
39
39
  execSync(`git clone ${repoUrl} "${installPath}"`, { stdio: 'pipe' });
40
+ spinner.text = 'Installing dependencies...';
41
+ spinner.color = 'green';
42
+ // Run npm install in the installed directory
43
+ execSync('npm install', { cwd: installPath, stdio: 'pipe' });
40
44
  spinner.stop();
41
45
  // Get the commit hash as version
42
46
  const commitHash = execSync('git rev-parse --short HEAD', {
@@ -49,10 +53,14 @@ export async function installCommand(options) {
49
53
  const cdPath = relativePath.startsWith('..') ? installPath : relativePath;
50
54
  const safeCdPath = cdPath.includes(' ') ? `"${cdPath}"` : cdPath;
51
55
  showSuccess('🔥 Fuego Installed Successfully!', `Location: ${chalk.cyan(installPath)}\nVersion: ${chalk.cyan(commitHash)}`);
52
- showInfo('🚀 Next Steps', [
56
+ showInfo('🚀 You are all set!', [
53
57
  `cd ${safeCdPath}`,
54
- 'npm install',
55
- 'npm run start'
58
+ '',
59
+ 'Next steps:',
60
+ ' • Start the server: fuego serve',
61
+ ' • Fund your wallet: fuego fund',
62
+ ' • Open dashboard: fuego dashboard',
63
+ ' • Check balance: fuego balance'
56
64
  ]);
57
65
  flameDivider();
58
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ interface PurchOptions {
2
+ email: string;
3
+ name: string;
4
+ addressLine1: string;
5
+ addressLine2?: string;
6
+ city: string;
7
+ state: string;
8
+ postalCode: string;
9
+ country?: string;
10
+ }
11
+ export declare function purchCommand(productUrl: string, options: PurchOptions): Promise<void>;
12
+ export {};
13
+ //# sourceMappingURL=purch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purch.d.ts","sourceRoot":"","sources":["../../src/commands/purch.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2G3F"}
@@ -0,0 +1,104 @@
1
+ import chalk from 'chalk';
2
+ import { spawn } from 'child_process';
3
+ import path from 'path';
4
+ import { loadWalletConfig, findFuegoPath } from '../lib/config.js';
5
+ import { showSuccess, showInfo, showError, flameDivider } from '../lib/ascii.js';
6
+ export async function purchCommand(productUrl, options) {
7
+ console.log();
8
+ // Validate required options
9
+ if (!options.email || !options.name || !options.addressLine1 || !options.city || !options.state || !options.postalCode) {
10
+ console.log(chalk.red('❌ Missing required options.'));
11
+ console.log(chalk.gray('\nUsage:'));
12
+ console.log(chalk.gray(' fuego purch <product-url>'));
13
+ console.log(chalk.gray(' --email <email>'));
14
+ console.log(chalk.gray(' --name <full-name>'));
15
+ console.log(chalk.gray(' --address-line1 <street-address>'));
16
+ console.log(chalk.gray(' --address-line2 <apartment/suite>'));
17
+ console.log(chalk.gray(' --city <city>'));
18
+ console.log(chalk.gray(' --state <state-code>'));
19
+ console.log(chalk.gray(' --postal-code <zip>'));
20
+ console.log(chalk.gray(' --country <country-code>'));
21
+ console.log(chalk.gray('\nExample:'));
22
+ console.log(chalk.gray(' fuego purch https://amazon.com/dp/B071G6PFDR \\'));
23
+ console.log(chalk.gray(' --email <your-email@example.com> \\'));
24
+ console.log(chalk.gray(' --name "<your-full-name>" \\'));
25
+ console.log(chalk.gray(' --address-line1 "<your-street-address>" \\'));
26
+ console.log(chalk.gray(' --address-line2 "<apartment-or-suite>" \\'));
27
+ console.log(chalk.gray(' --city "<your-city>" \\'));
28
+ console.log(chalk.gray(' --state <ST> \\'));
29
+ console.log(chalk.gray(' --postal-code <ZIP> \\'));
30
+ console.log(chalk.gray(' --country <CC>'));
31
+ process.exit(1);
32
+ }
33
+ // Load wallet
34
+ const walletConfig = loadWalletConfig();
35
+ if (!walletConfig) {
36
+ console.log(chalk.red('❌ No wallet found. Run "fuego create" first.'));
37
+ process.exit(1);
38
+ }
39
+ // Show order preview
40
+ showInfo('🛒 x402 Purchase Preview', [
41
+ `Product: ${chalk.cyan(productUrl)}`,
42
+ `Email: ${chalk.cyan(options.email)}`,
43
+ `Name: ${chalk.cyan(options.name)}`,
44
+ `Address: ${chalk.cyan(options.addressLine1)}${options.addressLine2 ? ', ' + options.addressLine2 : ''}`,
45
+ `City: ${chalk.cyan(options.city)}, ${chalk.cyan(options.state)} ${chalk.cyan(options.postalCode)}`,
46
+ `Country: ${chalk.cyan(options.country || 'US')}`,
47
+ `Wallet: ${chalk.gray(walletConfig.publicKey)}`,
48
+ `Network: ${chalk.gray('mainnet-beta')}`
49
+ ]);
50
+ console.log();
51
+ console.log(chalk.blue('⏳ Processing x402 payment via Purch.xyz...'));
52
+ // Find fuego installation path and call Node.js script
53
+ const fuegoPath = findFuegoPath();
54
+ if (!fuegoPath) {
55
+ showError('Fuego installation not found. Run "fuego install" first.');
56
+ process.exit(1);
57
+ }
58
+ const scriptPath = path.join(fuegoPath, 'scripts', 'x402_purch.mjs');
59
+ const args = [
60
+ scriptPath,
61
+ '--product-url', productUrl,
62
+ '--email', options.email,
63
+ '--name', options.name,
64
+ '--address-line1', options.addressLine1,
65
+ '--city', options.city,
66
+ '--state', options.state,
67
+ '--postal-code', options.postalCode,
68
+ '--country', options.country || 'US'
69
+ ];
70
+ if (options.addressLine2) {
71
+ args.push('--address-line2', options.addressLine2);
72
+ }
73
+ const nodeProcess = spawn('node', args);
74
+ let output = '';
75
+ let errorOutput = '';
76
+ nodeProcess.stdout.on('data', (data) => {
77
+ output += data.toString();
78
+ process.stdout.write(data);
79
+ });
80
+ nodeProcess.stderr.on('data', (data) => {
81
+ errorOutput += data.toString();
82
+ });
83
+ nodeProcess.on('close', (code) => {
84
+ if (code === 0) {
85
+ // Check if payment was successful
86
+ if (output.includes('PAYMENT ACCEPTED') || output.includes('SUCCESS')) {
87
+ showSuccess('✅ x402 Payment Complete!', 'Order transaction received from Purch.xyz');
88
+ }
89
+ else if (output.includes('failed') || output.includes('❌')) {
90
+ showError('Payment was not accepted. Check output above for details.');
91
+ process.exit(1);
92
+ }
93
+ else {
94
+ showSuccess('✅ x402 Purchase Flow Complete', '');
95
+ }
96
+ flameDivider();
97
+ }
98
+ else {
99
+ showError(`x402 purchase failed: ${errorOutput || 'Unknown error'}`);
100
+ process.exit(1);
101
+ }
102
+ });
103
+ }
104
+ //# sourceMappingURL=purch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purch.js","sourceRoot":"","sources":["../../src/commands/purch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAUA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAiCD,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmHxG"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAUA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAiCD,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkHxG"}
@@ -84,30 +84,29 @@ export async function sendCommand(recipient, amount, options) {
84
84
  }
85
85
  console.log();
86
86
  console.log(chalk.blue('⏳ Executing transaction via Fuego...'));
87
- // Find fuego installation path and call Python script
87
+ // Find fuego installation path and call Node.js script
88
88
  const fuegoPath = findFuegoPath();
89
89
  if (!fuegoPath) {
90
90
  showError('Fuego installation not found. Run "fuego install" first.');
91
91
  process.exit(1);
92
92
  }
93
- const scriptPath = path.join(fuegoPath, 'scripts', 'fuego_transfer.py');
94
- const pythonProcess = spawn('python3', [
93
+ const scriptPath = path.join(fuegoPath, 'scripts', 'fuego_transfer.mjs');
94
+ const nodeProcess = spawn('node', [
95
95
  scriptPath,
96
- '--from', walletConfig.publicKey,
97
96
  '--to', resolvedAddress,
98
97
  '--amount', amount,
99
98
  '--token', token
100
99
  ]);
101
100
  let output = '';
102
101
  let errorOutput = '';
103
- pythonProcess.stdout.on('data', (data) => {
102
+ nodeProcess.stdout.on('data', (data) => {
104
103
  output += data.toString();
105
104
  process.stdout.write(data);
106
105
  });
107
- pythonProcess.stderr.on('data', (data) => {
106
+ nodeProcess.stderr.on('data', (data) => {
108
107
  errorOutput += data.toString();
109
108
  });
110
- pythonProcess.on('close', (code) => {
109
+ nodeProcess.on('close', (code) => {
111
110
  if (code === 0) {
112
111
  // Extract signature from output if present
113
112
  const sigMatch = output.match(/Signature: ([A-Za-z0-9]+)/);
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAe7F,SAAS,eAAe;IACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,uDAAuD;IACvD,IAAI,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qBAAqB;IACrB,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,YAAY;IACZ,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAc,EAAE,OAAoB;IACvF,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kBAAkB;IAClB,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,cAAc;IACd,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oBAAoB;IACpB,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,SAAS,cAAc,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kBAAkB;IAClB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kBAAkB;IAClB,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,SAAS,GAAG,SAAS,KAAK,eAAe,CAAC;IAChD,QAAQ,CAAC,wBAAwB,EAAE;QACjC,SAAS,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE;QAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;QACtG,WAAW,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACtD,YAAY,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;KACzC,CAAC,CAAC;IAEH,uBAAuB;IACvB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC/D,YAAY,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAEhE,sDAAsD;IACtD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE;QACrC,UAAU;QACV,QAAQ,EAAE,YAAY,CAAC,SAAS;QAChC,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACvC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACjC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3D,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,CACT,qBAAqB,EACrB,WAAW,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,CACpI,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,YAAY,EAAE,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,uBAAuB,WAAW,IAAI,eAAe,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAe7F,SAAS,eAAe;IACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,uDAAuD;IACvD,IAAI,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qBAAqB;IACrB,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,YAAY;IACZ,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAc,EAAE,OAAoB;IACvF,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kBAAkB;IAClB,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,cAAc;IACd,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oBAAoB;IACpB,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,SAAS,cAAc,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kBAAkB;IAClB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kBAAkB;IAClB,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,SAAS,GAAG,SAAS,KAAK,eAAe,CAAC;IAChD,QAAQ,CAAC,wBAAwB,EAAE;QACjC,SAAS,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE;QAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;QACtG,WAAW,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACtD,YAAY,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;KACzC,CAAC,CAAC;IAEH,uBAAuB;IACvB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC/D,YAAY,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAEhE,uDAAuD;IACvD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAEzE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE;QAChC,UAAU;QACV,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3D,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,CACT,qBAAqB,EACrB,WAAW,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,CACpI,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,YAAY,EAAE,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,uBAAuB,WAAW,IAAI,eAAe,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ import { rpcCommand } from './commands/rpc.js';
12
12
  import { contactsAddCommand, contactsListCommand, contactsShowCommand, contactsRemoveCommand } from './commands/contacts.js';
13
13
  import { sendCommand } from './commands/send.js';
14
14
  import { fundCommand } from './commands/fund.js';
15
+ import { purchCommand } from './commands/purch.js';
15
16
  import { showBanner } from './lib/ascii.js';
16
17
  import { getFuegoCliVersion } from './lib/config.js';
17
18
  async function main() {
@@ -102,6 +103,18 @@ async function main() {
102
103
  .requiredOption('-t, --token <token>', 'Token to send (SOL, USDC, USDT)')
103
104
  .option('-y, --yes', 'Skip confirmation and send immediately')
104
105
  .action(sendCommand);
106
+ program
107
+ .command('purch <product-url>')
108
+ .description('Purchase products via x402/Purch.xyz (Amazon, Shopify, etc.)')
109
+ .requiredOption('--email <email>', 'Email for order notifications')
110
+ .requiredOption('--name <name>', 'Full name for shipping')
111
+ .requiredOption('--address-line1 <address>', 'Street address line 1')
112
+ .option('--address-line2 <address>', 'Apartment, suite, etc. (optional)')
113
+ .requiredOption('--city <city>', 'City')
114
+ .requiredOption('--state <state>', 'State/Province code (e.g., TX)')
115
+ .requiredOption('--postal-code <code>', 'Postal/ZIP code')
116
+ .option('--country <code>', 'Country code (default: US)', 'US')
117
+ .action(purchCommand);
105
118
  await program.parseAsync(process.argv);
106
119
  }
107
120
  main().catch((error) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fuego-cli",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Command-line interface for Fuego - the sovereign Solana wallet for AI agents",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -54,6 +54,12 @@ export async function installCommand(options: InstallOptions): Promise<void> {
54
54
  const repoUrl = 'https://github.com/willmcdeezy/fuego.git';
55
55
  execSync(`git clone ${repoUrl} "${installPath}"`, { stdio: 'pipe' });
56
56
 
57
+ spinner.text = 'Installing dependencies...';
58
+ spinner.color = 'green';
59
+
60
+ // Run npm install in the installed directory
61
+ execSync('npm install', { cwd: installPath, stdio: 'pipe' });
62
+
57
63
  spinner.stop();
58
64
 
59
65
  // Get the commit hash as version
@@ -74,10 +80,14 @@ export async function installCommand(options: InstallOptions): Promise<void> {
74
80
  `Location: ${chalk.cyan(installPath)}\nVersion: ${chalk.cyan(commitHash)}`
75
81
  );
76
82
 
77
- showInfo('🚀 Next Steps', [
83
+ showInfo('🚀 You are all set!', [
78
84
  `cd ${safeCdPath}`,
79
- 'npm install',
80
- 'npm run start'
85
+ '',
86
+ 'Next steps:',
87
+ ' • Start the server: fuego serve',
88
+ ' • Fund your wallet: fuego fund',
89
+ ' • Open dashboard: fuego dashboard',
90
+ ' • Check balance: fuego balance'
81
91
  ]);
82
92
 
83
93
  flameDivider();
@@ -0,0 +1,125 @@
1
+ import chalk from 'chalk';
2
+ import { spawn } from 'child_process';
3
+ import path from 'path';
4
+ import { loadWalletConfig, findFuegoPath } from '../lib/config.js';
5
+ import { showSuccess, showInfo, showError, flameDivider } from '../lib/ascii.js';
6
+
7
+ interface PurchOptions {
8
+ email: string;
9
+ name: string;
10
+ addressLine1: string;
11
+ addressLine2?: string;
12
+ city: string;
13
+ state: string;
14
+ postalCode: string;
15
+ country?: string;
16
+ }
17
+
18
+ export async function purchCommand(productUrl: string, options: PurchOptions): Promise<void> {
19
+ console.log();
20
+
21
+ // Validate required options
22
+ if (!options.email || !options.name || !options.addressLine1 || !options.city || !options.state || !options.postalCode) {
23
+ console.log(chalk.red('❌ Missing required options.'));
24
+ console.log(chalk.gray('\nUsage:'));
25
+ console.log(chalk.gray(' fuego purch <product-url>'));
26
+ console.log(chalk.gray(' --email <email>'));
27
+ console.log(chalk.gray(' --name <full-name>'));
28
+ console.log(chalk.gray(' --address-line1 <street-address>'));
29
+ console.log(chalk.gray(' --address-line2 <apartment/suite>'));
30
+ console.log(chalk.gray(' --city <city>'));
31
+ console.log(chalk.gray(' --state <state-code>'));
32
+ console.log(chalk.gray(' --postal-code <zip>'));
33
+ console.log(chalk.gray(' --country <country-code>'));
34
+ console.log(chalk.gray('\nExample:'));
35
+ console.log(chalk.gray(' fuego purch https://amazon.com/dp/B071G6PFDR \\'));
36
+ console.log(chalk.gray(' --email <your-email@example.com> \\'));
37
+ console.log(chalk.gray(' --name "<your-full-name>" \\'));
38
+ console.log(chalk.gray(' --address-line1 "<your-street-address>" \\'));
39
+ console.log(chalk.gray(' --address-line2 "<apartment-or-suite>" \\'));
40
+ console.log(chalk.gray(' --city "<your-city>" \\'));
41
+ console.log(chalk.gray(' --state <ST> \\'));
42
+ console.log(chalk.gray(' --postal-code <ZIP> \\'));
43
+ console.log(chalk.gray(' --country <CC>'));
44
+ process.exit(1);
45
+ }
46
+
47
+ // Load wallet
48
+ const walletConfig = loadWalletConfig();
49
+ if (!walletConfig) {
50
+ console.log(chalk.red('❌ No wallet found. Run "fuego create" first.'));
51
+ process.exit(1);
52
+ }
53
+
54
+ // Show order preview
55
+ showInfo('🛒 x402 Purchase Preview', [
56
+ `Product: ${chalk.cyan(productUrl)}`,
57
+ `Email: ${chalk.cyan(options.email)}`,
58
+ `Name: ${chalk.cyan(options.name)}`,
59
+ `Address: ${chalk.cyan(options.addressLine1)}${options.addressLine2 ? ', ' + options.addressLine2 : ''}`,
60
+ `City: ${chalk.cyan(options.city)}, ${chalk.cyan(options.state)} ${chalk.cyan(options.postalCode)}`,
61
+ `Country: ${chalk.cyan(options.country || 'US')}`,
62
+ `Wallet: ${chalk.gray(walletConfig.publicKey)}`,
63
+ `Network: ${chalk.gray('mainnet-beta')}`
64
+ ]);
65
+
66
+ console.log();
67
+ console.log(chalk.blue('⏳ Processing x402 payment via Purch.xyz...'));
68
+
69
+ // Find fuego installation path and call Node.js script
70
+ const fuegoPath = findFuegoPath();
71
+ if (!fuegoPath) {
72
+ showError('Fuego installation not found. Run "fuego install" first.');
73
+ process.exit(1);
74
+ }
75
+
76
+ const scriptPath = path.join(fuegoPath, 'scripts', 'x402_purch.mjs');
77
+
78
+ const args = [
79
+ scriptPath,
80
+ '--product-url', productUrl,
81
+ '--email', options.email,
82
+ '--name', options.name,
83
+ '--address-line1', options.addressLine1,
84
+ '--city', options.city,
85
+ '--state', options.state,
86
+ '--postal-code', options.postalCode,
87
+ '--country', options.country || 'US'
88
+ ];
89
+
90
+ if (options.addressLine2) {
91
+ args.push('--address-line2', options.addressLine2);
92
+ }
93
+
94
+ const nodeProcess = spawn('node', args);
95
+
96
+ let output = '';
97
+ let errorOutput = '';
98
+
99
+ nodeProcess.stdout.on('data', (data) => {
100
+ output += data.toString();
101
+ process.stdout.write(data);
102
+ });
103
+
104
+ nodeProcess.stderr.on('data', (data) => {
105
+ errorOutput += data.toString();
106
+ });
107
+
108
+ nodeProcess.on('close', (code) => {
109
+ if (code === 0) {
110
+ // Check if payment was successful
111
+ if (output.includes('PAYMENT ACCEPTED') || output.includes('SUCCESS')) {
112
+ showSuccess('✅ x402 Payment Complete!', 'Order transaction received from Purch.xyz');
113
+ } else if (output.includes('failed') || output.includes('❌')) {
114
+ showError('Payment was not accepted. Check output above for details.');
115
+ process.exit(1);
116
+ } else {
117
+ showSuccess('✅ x402 Purchase Flow Complete', '');
118
+ }
119
+ flameDivider();
120
+ } else {
121
+ showError(`x402 purchase failed: ${errorOutput || 'Unknown error'}`);
122
+ process.exit(1);
123
+ }
124
+ });
125
+ }
@@ -112,18 +112,17 @@ export async function sendCommand(recipient: string, amount: string, options: Se
112
112
  console.log();
113
113
  console.log(chalk.blue('⏳ Executing transaction via Fuego...'));
114
114
 
115
- // Find fuego installation path and call Python script
115
+ // Find fuego installation path and call Node.js script
116
116
  const fuegoPath = findFuegoPath();
117
117
  if (!fuegoPath) {
118
118
  showError('Fuego installation not found. Run "fuego install" first.');
119
119
  process.exit(1);
120
120
  }
121
121
 
122
- const scriptPath = path.join(fuegoPath, 'scripts', 'fuego_transfer.py');
122
+ const scriptPath = path.join(fuegoPath, 'scripts', 'fuego_transfer.mjs');
123
123
 
124
- const pythonProcess = spawn('python3', [
124
+ const nodeProcess = spawn('node', [
125
125
  scriptPath,
126
- '--from', walletConfig.publicKey,
127
126
  '--to', resolvedAddress,
128
127
  '--amount', amount,
129
128
  '--token', token
@@ -132,16 +131,16 @@ export async function sendCommand(recipient: string, amount: string, options: Se
132
131
  let output = '';
133
132
  let errorOutput = '';
134
133
 
135
- pythonProcess.stdout.on('data', (data) => {
134
+ nodeProcess.stdout.on('data', (data) => {
136
135
  output += data.toString();
137
136
  process.stdout.write(data);
138
137
  });
139
138
 
140
- pythonProcess.stderr.on('data', (data) => {
139
+ nodeProcess.stderr.on('data', (data) => {
141
140
  errorOutput += data.toString();
142
141
  });
143
142
 
144
- pythonProcess.on('close', (code) => {
143
+ nodeProcess.on('close', (code) => {
145
144
  if (code === 0) {
146
145
  // Extract signature from output if present
147
146
  const sigMatch = output.match(/Signature: ([A-Za-z0-9]+)/);
package/src/index.ts CHANGED
@@ -13,6 +13,7 @@ import { rpcCommand } from './commands/rpc.js';
13
13
  import { contactsAddCommand, contactsListCommand, contactsShowCommand, contactsRemoveCommand } from './commands/contacts.js';
14
14
  import { sendCommand } from './commands/send.js';
15
15
  import { fundCommand } from './commands/fund.js';
16
+ import { purchCommand } from './commands/purch.js';
16
17
  import { showBanner } from './lib/ascii.js';
17
18
  import { getFuegoCliVersion } from './lib/config.js';
18
19
 
@@ -122,6 +123,19 @@ async function main() {
122
123
  .option('-y, --yes', 'Skip confirmation and send immediately')
123
124
  .action(sendCommand);
124
125
 
126
+ program
127
+ .command('purch <product-url>')
128
+ .description('Purchase products via x402/Purch.xyz (Amazon, Shopify, etc.)')
129
+ .requiredOption('--email <email>', 'Email for order notifications')
130
+ .requiredOption('--name <name>', 'Full name for shipping')
131
+ .requiredOption('--address-line1 <address>', 'Street address line 1')
132
+ .option('--address-line2 <address>', 'Apartment, suite, etc. (optional)')
133
+ .requiredOption('--city <city>', 'City')
134
+ .requiredOption('--state <state>', 'State/Province code (e.g., TX)')
135
+ .requiredOption('--postal-code <code>', 'Postal/ZIP code')
136
+ .option('--country <code>', 'Country code (default: US)', 'US')
137
+ .action(purchCommand);
138
+
125
139
  await program.parseAsync(process.argv);
126
140
  }
127
141