@xona-labs/xpay 0.2.24 → 0.2.26
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/CHANGELOG.md +101 -78
- package/README.md +71 -69
- package/SKILL.md +22 -22
- package/dist/agenc/api.d.ts +8 -8
- package/dist/agenc/api.js +11 -11
- package/dist/agenc/hire.d.ts +4 -4
- package/dist/agenc/hire.js +17 -17
- package/dist/agenc/price.d.ts +1 -1
- package/dist/agenc/price.js +1 -1
- package/dist/biometric/index.d.ts +3 -3
- package/dist/biometric/index.js +6 -6
- package/dist/cli/accounts.d.ts +1 -1
- package/dist/cli/accounts.js +1 -1
- package/dist/cli/agenc.d.ts +2 -2
- package/dist/cli/agenc.js +4 -4
- package/dist/cli/balance.d.ts +1 -1
- package/dist/cli/balance.js +4 -4
- package/dist/cli/bento.d.ts +3 -3
- package/dist/cli/bento.js +8 -8
- package/dist/cli/bento.js.map +1 -1
- package/dist/cli/biometric.d.ts +1 -1
- package/dist/cli/biometric.js +8 -8
- package/dist/cli/common.js +6 -6
- package/dist/cli/common.js.map +1 -1
- package/dist/cli/discover.d.ts +2 -2
- package/dist/cli/discover.js +4 -4
- package/dist/cli/guardrail.d.ts +1 -1
- package/dist/cli/guardrail.js +3 -3
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +12 -12
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.js +2 -2
- package/dist/cli/magicblock.d.ts +1 -1
- package/dist/cli/magicblock.js +4 -4
- package/dist/cli/mcp-server.d.ts +2 -2
- package/dist/cli/mcp-server.d.ts.map +1 -1
- package/dist/cli/mcp-server.js +25 -22
- package/dist/cli/mcp-server.js.map +1 -1
- package/dist/cli/pay.d.ts +1 -1
- package/dist/cli/pay.js +1 -1
- package/dist/cli/report.d.ts +2 -2
- package/dist/cli/report.js +4 -4
- package/dist/cli/report.js.map +1 -1
- package/dist/cli/sana.d.ts +1 -1
- package/dist/cli/sana.js +3 -3
- package/dist/cli/shop.d.ts +1 -1
- package/dist/cli/shop.js +1 -1
- package/dist/cli/swap.d.ts +1 -1
- package/dist/cli/swap.js +3 -3
- package/dist/cli/token.d.ts +2 -2
- package/dist/cli/token.js +2 -2
- package/dist/cli/trade.d.ts +2 -2
- package/dist/cli/trade.js +8 -8
- package/dist/cli/trade.js.map +1 -1
- package/dist/cli/transfer.d.ts +1 -1
- package/dist/cli/transfer.js +1 -1
- package/dist/cli/x.d.ts +1 -1
- package/dist/cli/x.js +1 -1
- package/dist/cli/zauth.d.ts +1 -1
- package/dist/cli/zauth.js +5 -5
- package/dist/discover/cache.js +1 -1
- package/dist/discover/index.d.ts +2 -2
- package/dist/discover/index.js +6 -6
- package/dist/discover/orbitx402.d.ts +2 -2
- package/dist/discover/orbitx402.js +1 -1
- package/dist/discover/payai.js +1 -1
- package/dist/do/index.d.ts +2 -2
- package/dist/do/index.js +1 -1
- package/dist/guardrail/index.d.ts +4 -4
- package/dist/guardrail/index.js +14 -14
- package/dist/guardrail/index.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +2 -2
- package/dist/magicblock/client.d.ts +2 -2
- package/dist/magicblock/client.js +4 -4
- package/dist/profile/index.d.ts +3 -3
- package/dist/profile/index.js +3 -3
- package/dist/profile/storage.d.ts +1 -1
- package/dist/profile/storage.js +4 -4
- package/dist/profile/types.d.ts +6 -6
- package/dist/profile/types.js +1 -1
- package/dist/report/index.d.ts +1 -1
- package/dist/report/index.js +2 -2
- package/dist/sana/tools.js +8 -8
- package/dist/signers/raw-evm.d.ts +1 -1
- package/dist/signers/raw-evm.js +5 -5
- package/dist/signers/raw-solana.d.ts +1 -1
- package/dist/signers/raw-solana.js +4 -4
- package/dist/swap/index.d.ts +6 -6
- package/dist/swap/index.js +12 -12
- package/dist/token/index.d.ts +8 -8
- package/dist/token/index.js +14 -14
- package/dist/token/rwa.d.ts +3 -3
- package/dist/token/rwa.js +3 -3
- package/dist/tools/index.d.ts +15 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +71 -31
- package/dist/tools/index.js.map +1 -1
- package/dist/trading/discovery.d.ts +6 -6
- package/dist/trading/discovery.js +7 -7
- package/dist/trading/index.d.ts +6 -6
- package/dist/trading/index.js +13 -13
- package/dist/transfer/index.d.ts +4 -4
- package/dist/transfer/index.js +8 -8
- package/dist/types.d.ts +7 -7
- package/dist/use/index.d.ts +5 -5
- package/dist/use/index.js +20 -20
- package/dist/wallet/index.d.ts +2 -2
- package/dist/wallet/index.js +3 -3
- package/dist/x402/evm-payment.d.ts +4 -4
- package/dist/x402/evm-payment.js +6 -6
- package/dist/x402/extract.d.ts +1 -1
- package/dist/x402/extract.js +1 -1
- package/dist/x402/svm-payment.d.ts +2 -2
- package/dist/x402/svm-payment.js +2 -2
- package/dist/zauth/index.d.ts +4 -4
- package/dist/zauth/index.js +5 -5
- package/package.json +4 -3
package/dist/cli/report.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay report`
|
|
2
|
+
* `xpay report` - comprehensive USDC activity report via OrbitX402.
|
|
3
3
|
*
|
|
4
4
|
* Fetches daily / weekly / monthly aggregated data from the OrbitX402 API
|
|
5
|
-
* (on-chain data is resolved server-side
|
|
5
|
+
* (on-chain data is resolved server-side - no RPC calls from the CLI).
|
|
6
6
|
*/
|
|
7
7
|
import chalk from "chalk";
|
|
8
8
|
import { createXPay } from "../index.js";
|
|
@@ -33,7 +33,7 @@ export async function runReport(opts) {
|
|
|
33
33
|
const { summary, timeline, topCounterparties, topTransactions } = report;
|
|
34
34
|
const periodLabel = { daily: "Last 24h", weekly: "Last 7 days", monthly: "Last 30 days" }[period];
|
|
35
35
|
console.log("");
|
|
36
|
-
console.log(chalk.bold(` USDC Report
|
|
36
|
+
console.log(chalk.bold(` USDC Report - ${periodLabel}`));
|
|
37
37
|
console.log(chalk.dim(` ${report.address} · ${report.network} · ${elapsed}ms`));
|
|
38
38
|
console.log("");
|
|
39
39
|
// Summary
|
|
@@ -79,7 +79,7 @@ export async function runReport(opts) {
|
|
|
79
79
|
console.log(chalk.dim(" ── Biggest Transactions ───────────────────────────"));
|
|
80
80
|
for (const tx of topTransactions.slice(0, 5)) {
|
|
81
81
|
const dir = tx.direction === "sent" ? chalk.red("→ sent") : chalk.green("← recv");
|
|
82
|
-
const ts = tx.timestamp ? new Date(tx.timestamp).toLocaleDateString() : "
|
|
82
|
+
const ts = tx.timestamp ? new Date(tx.timestamp).toLocaleDateString() : " - ";
|
|
83
83
|
console.log(" " +
|
|
84
84
|
chalk.dim(ts.padEnd(12)) +
|
|
85
85
|
dir.padEnd(18) +
|
package/dist/cli/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/cli/report.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/cli/report.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/sana.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay sana link|unlink|status`
|
|
2
|
+
* `xpay sana link|unlink|status` - manage the Sana agent card integration.
|
|
3
3
|
*
|
|
4
4
|
* Once linked, the MCP server automatically registers sana_* tools so your
|
|
5
5
|
* agent can check the card balance, top it up, view transactions, etc.
|
package/dist/cli/sana.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay sana link|unlink|status`
|
|
2
|
+
* `xpay sana link|unlink|status` - manage the Sana agent card integration.
|
|
3
3
|
*
|
|
4
4
|
* Once linked, the MCP server automatically registers sana_* tools so your
|
|
5
5
|
* agent can check the card balance, top it up, view transactions, etc.
|
|
@@ -94,7 +94,7 @@ export function runSanaLink(apiKey, opts) {
|
|
|
94
94
|
const name = opts.profile ?? getActiveProfile();
|
|
95
95
|
setSanaApiKey(name, apiKey);
|
|
96
96
|
console.log(chalk.green(`✔ Sana key linked to profile "${name}".`));
|
|
97
|
-
console.log(chalk.dim(" Restart your MCP client
|
|
97
|
+
console.log(chalk.dim(" Restart your MCP client - sana_* tools will appear automatically."));
|
|
98
98
|
console.log("");
|
|
99
99
|
console.log(` ${chalk.bold("sana_card")} Card status & metadata`);
|
|
100
100
|
console.log(` ${chalk.bold("sana_card_balance")} Available spending power`);
|
|
@@ -110,7 +110,7 @@ export function runSanaUnlink(opts) {
|
|
|
110
110
|
const name = opts.profile ?? getActiveProfile();
|
|
111
111
|
clearSanaApiKey(name);
|
|
112
112
|
console.log(chalk.yellow(`⚠ Sana key removed from profile "${name}".`));
|
|
113
|
-
console.log(chalk.dim(" Restart your MCP client
|
|
113
|
+
console.log(chalk.dim(" Restart your MCP client - sana_* tools will disappear."));
|
|
114
114
|
}
|
|
115
115
|
export function runSanaStatus(opts) {
|
|
116
116
|
const name = opts.profile ?? getActiveProfile();
|
package/dist/cli/shop.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay shop <search|quote>`
|
|
2
|
+
* `xpay shop <search|quote>` - product discovery across Google Shopping,
|
|
3
3
|
* Amazon, and eBay via xona's x402-paywalled /shop/search endpoint. The
|
|
4
4
|
* search POST is paid from the active profile's wallet through the normal
|
|
5
5
|
* x402 flow (guardrail included); the quote preflight is free and needs no
|
package/dist/cli/shop.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay shop <search|quote>`
|
|
2
|
+
* `xpay shop <search|quote>` - product discovery across Google Shopping,
|
|
3
3
|
* Amazon, and eBay via xona's x402-paywalled /shop/search endpoint. The
|
|
4
4
|
* search POST is paid from the active profile's wallet through the normal
|
|
5
5
|
* x402 flow (guardrail included); the quote preflight is free and needs no
|
package/dist/cli/swap.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay swap <amount> <fromToken> <toToken>`
|
|
2
|
+
* `xpay swap <amount> <fromToken> <toToken>` - swap tokens in the wallet via
|
|
3
3
|
* Jupiter (Solana only). Subject to the active guardrail, enforced before
|
|
4
4
|
* signing. Shows a quote and asks for confirmation unless `-y`.
|
|
5
5
|
*/
|
package/dist/cli/swap.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay swap <amount> <fromToken> <toToken>`
|
|
2
|
+
* `xpay swap <amount> <fromToken> <toToken>` - swap tokens in the wallet via
|
|
3
3
|
* Jupiter (Solana only). Subject to the active guardrail, enforced before
|
|
4
4
|
* signing. Shows a quote and asks for confirmation unless `-y`.
|
|
5
5
|
*/
|
|
@@ -14,7 +14,7 @@ export async function runSwap(amountRaw, fromToken, toToken, opts) {
|
|
|
14
14
|
process.exit(1);
|
|
15
15
|
}
|
|
16
16
|
const slippageBps = opts.slippageBps ? Number(opts.slippageBps) : undefined;
|
|
17
|
-
// Unlock first
|
|
17
|
+
// Unlock first - Jupiter needs the wallet address (taker) even for a quote.
|
|
18
18
|
const profile = await unlockActive(opts);
|
|
19
19
|
const xpay = createXPay({ profile, guardrail: guardrailWithApproval(profile) });
|
|
20
20
|
let quote;
|
|
@@ -34,7 +34,7 @@ export async function runSwap(amountRaw, fromToken, toToken, opts) {
|
|
|
34
34
|
if (quote.outputUnverified) {
|
|
35
35
|
console.log("");
|
|
36
36
|
console.log(chalk.yellow(` ⚠ ${quote.to.symbol} (${quote.to.mint}) is NOT verified on Jupiter.`));
|
|
37
|
-
console.log(chalk.yellow(" Unverified tokens can be scams reusing a real ticker
|
|
37
|
+
console.log(chalk.yellow(" Unverified tokens can be scams reusing a real ticker - verify the mint."));
|
|
38
38
|
}
|
|
39
39
|
console.log("");
|
|
40
40
|
if (process.stdin.isTTY && !opts.yes) {
|
package/dist/cli/token.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay token find <query>`
|
|
2
|
+
* `xpay token find <query>` - search Solana tokens by ticker, name, or mint.
|
|
3
3
|
*
|
|
4
|
-
* Read-only (Jupiter Token API)
|
|
4
|
+
* Read-only (Jupiter Token API) - does not load a profile or touch keys.
|
|
5
5
|
*/
|
|
6
6
|
export interface TokenFindCmdOptions {
|
|
7
7
|
limit?: string;
|
package/dist/cli/token.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay token find <query>`
|
|
2
|
+
* `xpay token find <query>` - search Solana tokens by ticker, name, or mint.
|
|
3
3
|
*
|
|
4
|
-
* Read-only (Jupiter Token API)
|
|
4
|
+
* Read-only (Jupiter Token API) - does not load a profile or touch keys.
|
|
5
5
|
*/
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
import { findTokens } from "../token/index.js";
|
package/dist/cli/trade.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay trade <amount> <fromToken> <toToken>`
|
|
2
|
+
* `xpay trade <amount> <fromToken> <toToken>` - trade tokens on Robinhood
|
|
3
3
|
* Chain via Uniswap V3 (NOXA Fun launchpad). Buy a token with native ETH or
|
|
4
4
|
* sell it back to ETH. Subject to the active guardrail, enforced before
|
|
5
5
|
* signing. Shows a quote and asks for confirmation unless `-y`.
|
|
6
6
|
*
|
|
7
|
-
* `xpay trending`
|
|
7
|
+
* `xpay trending` - list what's hot on Robinhood Chain (read-only, no wallet).
|
|
8
8
|
*/
|
|
9
9
|
export interface TradeCmdOptions {
|
|
10
10
|
profile?: string;
|
package/dist/cli/trade.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay trade <amount> <fromToken> <toToken>`
|
|
2
|
+
* `xpay trade <amount> <fromToken> <toToken>` - trade tokens on Robinhood
|
|
3
3
|
* Chain via Uniswap V3 (NOXA Fun launchpad). Buy a token with native ETH or
|
|
4
4
|
* sell it back to ETH. Subject to the active guardrail, enforced before
|
|
5
5
|
* signing. Shows a quote and asks for confirmation unless `-y`.
|
|
6
6
|
*
|
|
7
|
-
* `xpay trending`
|
|
7
|
+
* `xpay trending` - list what's hot on Robinhood Chain (read-only, no wallet).
|
|
8
8
|
*/
|
|
9
9
|
import chalk from "chalk";
|
|
10
10
|
import inquirer from "inquirer";
|
|
@@ -72,7 +72,7 @@ function printQuote(quote) {
|
|
|
72
72
|
if (quote.unverified) {
|
|
73
73
|
console.log("");
|
|
74
74
|
console.log(chalk.yellow(` ⚠ ${quote.to.symbol} is NOT a confirmed NOXA Fun launch.`));
|
|
75
|
-
console.log(chalk.yellow(" Verify the contract address
|
|
75
|
+
console.log(chalk.yellow(" Verify the contract address - memecoin tickers are not unique and can be spoofed."));
|
|
76
76
|
}
|
|
77
77
|
if (quote.restriction) {
|
|
78
78
|
console.log("");
|
|
@@ -81,7 +81,7 @@ function printQuote(quote) {
|
|
|
81
81
|
}
|
|
82
82
|
console.log("");
|
|
83
83
|
}
|
|
84
|
-
/** Adaptive number formatting
|
|
84
|
+
/** Adaptive number formatting - thousands separators for big amounts, enough
|
|
85
85
|
* significant digits for small ones (memecoin token counts vs tiny ETH sums). */
|
|
86
86
|
function fmtAmount(n) {
|
|
87
87
|
if (n === 0)
|
|
@@ -112,12 +112,12 @@ export async function runTrending(opts) {
|
|
|
112
112
|
return;
|
|
113
113
|
}
|
|
114
114
|
for (const t of tokens) {
|
|
115
|
-
const price = t.priceUsd !== undefined ? `$${formatPrice(t.priceUsd)}` : "
|
|
116
|
-
const vol = t.volume24hUsd !== undefined ? `$${abbrev(t.volume24hUsd)}` : "
|
|
115
|
+
const price = t.priceUsd !== undefined ? `$${formatPrice(t.priceUsd)}` : " - ";
|
|
116
|
+
const vol = t.volume24hUsd !== undefined ? `$${abbrev(t.volume24hUsd)}` : " - ";
|
|
117
117
|
const chg = t.priceChange24hPct !== undefined
|
|
118
118
|
? (t.priceChange24hPct >= 0 ? chalk.green : chalk.red)(`${t.priceChange24hPct.toFixed(1)}%`)
|
|
119
|
-
: "
|
|
120
|
-
const flag = t.poolIsV4 ? chalk.dim(" [v4 pool
|
|
119
|
+
: " - ";
|
|
120
|
+
const flag = t.poolIsV4 ? chalk.dim(" [v4 pool - not tradeable via xpay yet]") : "";
|
|
121
121
|
console.log(` ${chalk.bold(t.symbol.padEnd(12))} ${price.padEnd(14)} 24h ${chg.padEnd(16)} vol ${vol}`);
|
|
122
122
|
console.log(` ${chalk.dim(t.address)}${flag}`);
|
|
123
123
|
}
|
package/dist/cli/trade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trade.js","sourceRoot":"","sources":["../../src/cli/trade.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"trade.js","sourceRoot":"","sources":["../../src/cli/trade.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/transfer.d.ts
CHANGED
package/dist/cli/transfer.js
CHANGED
package/dist/cli/x.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay x <user|posts> <handle>`
|
|
2
|
+
* `xpay x <user|posts> <handle>` - realtime X (Twitter) account data via
|
|
3
3
|
* xona's x402-paywalled proxy (at-cost passthrough of X API pay-per-use
|
|
4
4
|
* billing: ~$0.01 profile, ~$0.06 for 10 posts). Paid from the active
|
|
5
5
|
* profile's wallet through the normal x402 flow, guardrail included.
|
package/dist/cli/x.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay x <user|posts> <handle>`
|
|
2
|
+
* `xpay x <user|posts> <handle>` - realtime X (Twitter) account data via
|
|
3
3
|
* xona's x402-paywalled proxy (at-cost passthrough of X API pay-per-use
|
|
4
4
|
* billing: ~$0.01 profile, ~$0.06 for 10 posts). Paid from the active
|
|
5
5
|
* profile's wallet through the normal x402 flow, guardrail included.
|
package/dist/cli/zauth.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay zauth <reposcan|status>`
|
|
2
|
+
* `xpay zauth <reposcan|status>` - repository security scans via partner
|
|
3
3
|
* zauth's x402-paywalled endpoint. The scan POST is paid from the active
|
|
4
4
|
* profile's wallet through the normal x402 flow (guardrail included);
|
|
5
5
|
* status polling is free and needs no wallet.
|
package/dist/cli/zauth.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `xpay zauth <reposcan|status>`
|
|
2
|
+
* `xpay zauth <reposcan|status>` - repository security scans via partner
|
|
3
3
|
* zauth's x402-paywalled endpoint. The scan POST is paid from the active
|
|
4
4
|
* profile's wallet through the normal x402 flow (guardrail included);
|
|
5
5
|
* status polling is free and needs no wallet.
|
|
@@ -39,9 +39,9 @@ export async function runZauthScan(repoUrl, opts) {
|
|
|
39
39
|
process.exit(1);
|
|
40
40
|
}
|
|
41
41
|
if (isScanPending(data)) {
|
|
42
|
-
// Poll responses don't echo the sessionToken
|
|
42
|
+
// Poll responses don't echo the sessionToken - keep the kickoff's copy.
|
|
43
43
|
const sessionToken = data.sessionToken;
|
|
44
|
-
console.log(chalk.dim(` Scan started
|
|
44
|
+
console.log(chalk.dim(` Scan started - session ${sessionToken}`));
|
|
45
45
|
console.log(chalk.dim(" Waiting for results (status checks are free)…"));
|
|
46
46
|
try {
|
|
47
47
|
data = await pollRepoScan(sessionToken, { timeoutMs: 180_000 });
|
|
@@ -68,13 +68,13 @@ export async function runZauthStatus(sessionToken, opts) {
|
|
|
68
68
|
process.exit(1);
|
|
69
69
|
}
|
|
70
70
|
if (isScanning(data)) {
|
|
71
|
-
console.log(chalk.yellow(`Still scanning (session ${sessionToken})
|
|
71
|
+
console.log(chalk.yellow(`Still scanning (session ${sessionToken}) - try again in a bit.`));
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
74
|
render(data, opts);
|
|
75
75
|
}
|
|
76
76
|
// Completed reports carry `zauthScore` + `analysisMarkdown` (the human
|
|
77
|
-
// summary) plus a bulky `matches` array with full file contents
|
|
77
|
+
// summary) plus a bulky `matches` array with full file contents - show the
|
|
78
78
|
// summary, keep the bulk behind --json.
|
|
79
79
|
function render(data, opts) {
|
|
80
80
|
if (opts.json) {
|
package/dist/discover/cache.js
CHANGED
|
@@ -47,7 +47,7 @@ function writeDisk(key, data) {
|
|
|
47
47
|
writeFileSync(diskCachePath(key), JSON.stringify(blob));
|
|
48
48
|
}
|
|
49
49
|
catch {
|
|
50
|
-
// Best-effort
|
|
50
|
+
// Best-effort - cache failures should never break the call.
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
/** TTL is configurable at runtime; defaults to 10 min. */
|
package/dist/discover/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Discovery
|
|
2
|
+
* Discovery - find paid services across catalogs.
|
|
3
3
|
*
|
|
4
4
|
* Two sources, merged:
|
|
5
5
|
* - **OrbitX402** aggregates multiple x402 catalogs (its own probed
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* SOL and executed as escrow hires rather than x402 calls. Its API has no
|
|
9
9
|
* text search, so queries are matched locally (the catalog is small).
|
|
10
10
|
*
|
|
11
|
-
* One source failing never kills discovery
|
|
11
|
+
* One source failing never kills discovery - its error is stashed in
|
|
12
12
|
* {@link lastDiscoverWarnings} and the other source's results are returned.
|
|
13
13
|
*/
|
|
14
14
|
import type { DiscoverOptions, Resource } from "../types.js";
|
package/dist/discover/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Discovery
|
|
2
|
+
* Discovery - find paid services across catalogs.
|
|
3
3
|
*
|
|
4
4
|
* Two sources, merged:
|
|
5
5
|
* - **OrbitX402** aggregates multiple x402 catalogs (its own probed
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* SOL and executed as escrow hires rather than x402 calls. Its API has no
|
|
9
9
|
* text search, so queries are matched locally (the catalog is small).
|
|
10
10
|
*
|
|
11
|
-
* One source failing never kills discovery
|
|
11
|
+
* One source failing never kills discovery - its error is stashed in
|
|
12
12
|
* {@link lastDiscoverWarnings} and the other source's results are returned.
|
|
13
13
|
*/
|
|
14
14
|
import { fetchOrbitX402Resources } from "./orbitx402.js";
|
|
@@ -45,7 +45,7 @@ export async function discover(opts = {}) {
|
|
|
45
45
|
const sources = opts.sources ??
|
|
46
46
|
process.env.XPAY_DISCOVERY_SOURCES?.split(",").map((s) => s.trim()).filter(Boolean) ??
|
|
47
47
|
DEFAULT_SOURCES;
|
|
48
|
-
// The query is sent to OrbitX402, which searches and ranks server-side
|
|
48
|
+
// The query is sent to OrbitX402, which searches and ranks server-side -
|
|
49
49
|
// a ~50KB response instead of the full multi-MB catalog download. AgenC's
|
|
50
50
|
// catalog is small enough to fetch whole and filter locally.
|
|
51
51
|
const [orbitSettled, agencSettled] = await Promise.allSettled([
|
|
@@ -62,7 +62,7 @@ export async function discover(opts = {}) {
|
|
|
62
62
|
warnings = failures;
|
|
63
63
|
const enabledCount = DEFAULT_SOURCES.filter((s) => sources.includes(s)).length;
|
|
64
64
|
if (failures.length >= enabledCount && enabledCount > 0) {
|
|
65
|
-
throw new Error(`xpay.discover: all discovery sources failed
|
|
65
|
+
throw new Error(`xpay.discover: all discovery sources failed - ${failures.join("; ")}`);
|
|
66
66
|
}
|
|
67
67
|
if (query) {
|
|
68
68
|
const terms = query.split(/\s+/).filter(Boolean);
|
|
@@ -70,10 +70,10 @@ export async function discover(opts = {}) {
|
|
|
70
70
|
if (orbit.length > SERVER_QUERY_MAX) {
|
|
71
71
|
orbit = rankByScore(orbit, terms);
|
|
72
72
|
}
|
|
73
|
-
// AgenC: no server-side query param
|
|
73
|
+
// AgenC: no server-side query param - always match locally.
|
|
74
74
|
agenc = rankByScore(agenc, terms);
|
|
75
75
|
}
|
|
76
|
-
// Network filter
|
|
76
|
+
// Network filter - prefix match so "solana" matches "solana:5eykt4..."
|
|
77
77
|
// and "eip155:8453" matches exactly. The APIs have no network param yet.
|
|
78
78
|
if (opts.networks?.length) {
|
|
79
79
|
const wanted = opts.networks.map((n) => NETWORK_ALIASES[n] ?? n);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* OrbitX402 discovery client.
|
|
3
3
|
*
|
|
4
4
|
* Fetches from api.orbitx402.com/api/x402-discovery which combines
|
|
5
|
-
* orbitx402's own probed resources, PayAI catalog, and pay.sh catalog
|
|
5
|
+
* orbitx402's own probed resources, PayAI catalog, and pay.sh catalog -
|
|
6
6
|
* all in xpay's Resource shape. Pagination matches PayAI's format.
|
|
7
7
|
*/
|
|
8
8
|
import { type Resource } from "../types.js";
|
|
@@ -10,7 +10,7 @@ export interface OrbitX402ClientOptions {
|
|
|
10
10
|
endpoint?: string;
|
|
11
11
|
maxItems?: number;
|
|
12
12
|
limit?: number;
|
|
13
|
-
/** Server-side search
|
|
13
|
+
/** Server-side search - the API ranks and returns only matching resources. */
|
|
14
14
|
query?: string;
|
|
15
15
|
fetch?: typeof fetch;
|
|
16
16
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* OrbitX402 discovery client.
|
|
3
3
|
*
|
|
4
4
|
* Fetches from api.orbitx402.com/api/x402-discovery which combines
|
|
5
|
-
* orbitx402's own probed resources, PayAI catalog, and pay.sh catalog
|
|
5
|
+
* orbitx402's own probed resources, PayAI catalog, and pay.sh catalog -
|
|
6
6
|
* all in xpay's Resource shape. Pagination matches PayAI's format.
|
|
7
7
|
*/
|
|
8
8
|
import { ResourceSchema } from "../types.js";
|
package/dist/discover/payai.js
CHANGED
|
@@ -44,7 +44,7 @@ export async function fetchPayAIResources(opts = {}) {
|
|
|
44
44
|
offset = body.pagination.offset + rawItems.length;
|
|
45
45
|
}
|
|
46
46
|
else {
|
|
47
|
-
// No pagination block
|
|
47
|
+
// No pagination block - assume single-shot.
|
|
48
48
|
break;
|
|
49
49
|
}
|
|
50
50
|
// Server returned fewer items than requested → we hit the end.
|
package/dist/do/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Do
|
|
2
|
+
* Do - the thesis in one method. Discover by intent, pick the top result, use it.
|
|
3
3
|
*
|
|
4
4
|
* This is the API normies (and most agents) actually want. Power users compose
|
|
5
5
|
* {@link discover} + {@link use} manually when they need control over picking.
|
|
@@ -13,7 +13,7 @@ export interface DoArgs {
|
|
|
13
13
|
wallet: Wallet;
|
|
14
14
|
guardrail: Guardrail;
|
|
15
15
|
body?: unknown;
|
|
16
|
-
/** AgenC hire settings
|
|
16
|
+
/** AgenC hire settings - forwarded to `use()` when the top match is an AgenC listing. */
|
|
17
17
|
agenc?: AgencHireConfig;
|
|
18
18
|
}
|
|
19
19
|
export declare function doIt(args: DoArgs): Promise<UseResult>;
|
package/dist/do/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Do
|
|
2
|
+
* Do - the thesis in one method. Discover by intent, pick the top result, use it.
|
|
3
3
|
*
|
|
4
4
|
* This is the API normies (and most agents) actually want. Power users compose
|
|
5
5
|
* {@link discover} + {@link use} manually when they need control over picking.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Spending guardrail
|
|
2
|
+
* Spending guardrail - enforced *before* signing so a hallucinating agent
|
|
3
3
|
* can't sneak past it. This is the security primitive that makes xPay
|
|
4
4
|
* "agentic" rather than just "an SDK with a wallet".
|
|
5
5
|
*
|
|
@@ -18,7 +18,7 @@ export interface GuardrailConfig {
|
|
|
18
18
|
requireApprovalAbove?: number;
|
|
19
19
|
/**
|
|
20
20
|
* Optional callback invoked when {@link GuardrailConfig.requireApprovalAbove}
|
|
21
|
-
* is hit
|
|
21
|
+
* is hit - *or* when Bento escalates a call for human review. Implementor
|
|
22
22
|
* decides how to surface the prompt (biometric, push, webhook). Resolve
|
|
23
23
|
* `true` to allow, `false` to deny.
|
|
24
24
|
*/
|
|
@@ -31,7 +31,7 @@ export interface GuardrailConfig {
|
|
|
31
31
|
* Bento's `protect()` (prompt-injection / wallet-drain / intent analysis)
|
|
32
32
|
* *after* the local caps pass and *before* signing. Requires the wallet to
|
|
33
33
|
* be registered at https://app.bentoguard.xyz and `AGENT_WALLET_PRIVATE_KEY`
|
|
34
|
-
* in the environment
|
|
34
|
+
* in the environment - `createXPay` sets that automatically from the active
|
|
35
35
|
* profile. A `BLOCKED` verdict throws; an `ESCALATED` verdict defers to
|
|
36
36
|
* {@link GuardrailConfig.onApprovalRequired} (or fails closed if none is set).
|
|
37
37
|
*/
|
|
@@ -75,7 +75,7 @@ export declare class Guardrail {
|
|
|
75
75
|
/** Whether the Bento intent firewall is active on this instance. */
|
|
76
76
|
bentoEnabled(): boolean;
|
|
77
77
|
/**
|
|
78
|
-
* Toggle the Bento firewall on this live instance
|
|
78
|
+
* Toggle the Bento firewall on this live instance - lets the MCP
|
|
79
79
|
* `xpay_bento_enable` tool activate screening for the current session
|
|
80
80
|
* without a server restart. Persisting the flag to disk is separate
|
|
81
81
|
* (the caller does that via `setProfileBento`). Requires
|
package/dist/guardrail/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Spending guardrail
|
|
2
|
+
* Spending guardrail - enforced *before* signing so a hallucinating agent
|
|
3
3
|
* can't sneak past it. This is the security primitive that makes xPay
|
|
4
4
|
* "agentic" rather than just "an SDK with a wallet".
|
|
5
5
|
*
|
|
@@ -21,8 +21,8 @@ export class Guardrail {
|
|
|
21
21
|
async check(args) {
|
|
22
22
|
const usd = await this.estimateUsd(args.requirement);
|
|
23
23
|
// Host whitelist. Skipped for direct transfers and swaps (they target
|
|
24
|
-
// addresses/tokens, not hosts
|
|
25
|
-
// host)
|
|
24
|
+
// addresses/tokens, not hosts, `xpay://swap/...` would parse to a bogus
|
|
25
|
+
// host), amount caps still apply, so a leaked CLI can't drain the wallet.
|
|
26
26
|
if (!["transfer", "swap"].includes(args.resource.type) &&
|
|
27
27
|
this.config.allowedHosts &&
|
|
28
28
|
this.config.allowedHosts.length > 0) {
|
|
@@ -58,7 +58,7 @@ export class Guardrail {
|
|
|
58
58
|
throw new GuardrailError(`Call denied by approval hook`);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
// Bento intent firewall. Runs last
|
|
61
|
+
// Bento intent firewall. Runs last - it's a network round-trip to the
|
|
62
62
|
// Bento relayer, so the cheap deterministic checks above reject the
|
|
63
63
|
// obvious cases first. Only fires when explicitly enabled.
|
|
64
64
|
if (this.config.bento?.enabled) {
|
|
@@ -93,13 +93,13 @@ export class Guardrail {
|
|
|
93
93
|
if (/agent not found|security check failed|not\s+(?:been\s+)?registered/i.test(msg)) {
|
|
94
94
|
throw new GuardrailError("Bento is enabled but this agent wallet isn't registered. Log in to " +
|
|
95
95
|
"https://app.bentoguard.xyz with your owner wallet and register this agent " +
|
|
96
|
-
"address, then retry
|
|
96
|
+
"address, then retry - or run `xpay bento disable`.");
|
|
97
97
|
}
|
|
98
98
|
throw new GuardrailError(`Bento intent check failed: ${msg}`);
|
|
99
99
|
}
|
|
100
100
|
if (verdict.recommendation === "BLOCKED") {
|
|
101
101
|
const risk = verdict.riskScore !== undefined ? ` (risk ${verdict.riskScore}/100)` : "";
|
|
102
|
-
throw new GuardrailError(`Bento blocked this call
|
|
102
|
+
throw new GuardrailError(`Bento blocked this call - ${verdict.reasoning ?? "flagged as malicious intent"}${risk}`);
|
|
103
103
|
}
|
|
104
104
|
if (verdict.recommendation === "ESCALATED") {
|
|
105
105
|
// Ambiguous call. Reuse the same human-in-the-loop hook the local
|
|
@@ -112,8 +112,8 @@ export class Guardrail {
|
|
|
112
112
|
}
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
|
-
// No approver wired
|
|
116
|
-
const where = verdict.approveUrl ? `
|
|
115
|
+
// No approver wired - fail closed (treat ambiguous as blocked).
|
|
116
|
+
const where = verdict.approveUrl ? ` - approve at ${verdict.approveUrl}` : "";
|
|
117
117
|
throw new GuardrailError(`Bento escalated this call for human review${where}. Configure an ` +
|
|
118
118
|
"onApprovalRequired hook to handle escalations, or run `xpay bento disable`.");
|
|
119
119
|
}
|
|
@@ -129,7 +129,7 @@ export class Guardrail {
|
|
|
129
129
|
return 0;
|
|
130
130
|
if (req.scheme === "swap") {
|
|
131
131
|
// The swap module computes the input-side USD (Jupiter's estimate or
|
|
132
|
-
// spot price) and passes it along
|
|
132
|
+
// spot price) and passes it along - same trust boundary as the atomic
|
|
133
133
|
// amounts on any other requirement it builds.
|
|
134
134
|
const est = Number(req.extra?.usdEstimate);
|
|
135
135
|
if (Number.isFinite(est) && est >= 0)
|
|
@@ -147,11 +147,11 @@ export class Guardrail {
|
|
|
147
147
|
}
|
|
148
148
|
catch (err) {
|
|
149
149
|
if (this.hasCaps()) {
|
|
150
|
-
throw new GuardrailError(`cannot price a ${sol} SOL AgenC hire
|
|
150
|
+
throw new GuardrailError(`cannot price a ${sol} SOL AgenC hire - SOL/USD feed unavailable ` +
|
|
151
151
|
`(${err instanceof Error ? err.message : String(err)}). ` +
|
|
152
152
|
`Blocked because spending caps are configured.`);
|
|
153
153
|
}
|
|
154
|
-
return 0; // no caps to enforce
|
|
154
|
+
return 0; // no caps to enforce - nothing to compare against
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
// USDC has 6 decimals on every chain we currently support.
|
|
@@ -172,7 +172,7 @@ export class Guardrail {
|
|
|
172
172
|
return Boolean(this.config.bento?.enabled);
|
|
173
173
|
}
|
|
174
174
|
/**
|
|
175
|
-
* Toggle the Bento firewall on this live instance
|
|
175
|
+
* Toggle the Bento firewall on this live instance - lets the MCP
|
|
176
176
|
* `xpay_bento_enable` tool activate screening for the current session
|
|
177
177
|
* without a server restart. Persisting the flag to disk is separate
|
|
178
178
|
* (the caller does that via `setProfileBento`). Requires
|
|
@@ -191,7 +191,7 @@ export class GuardrailError extends Error {
|
|
|
191
191
|
/**
|
|
192
192
|
* Render a pending spend as the natural-language instruction Bento's
|
|
193
193
|
* `protect()` expects. Bento screens *intent*, so we describe what the call
|
|
194
|
-
* does in plain terms
|
|
194
|
+
* does in plain terms - amount, destination, and whether it's a service call,
|
|
195
195
|
* an escrow hire, or a direct transfer (the case most prone to a drain attempt).
|
|
196
196
|
*/
|
|
197
197
|
function describeSpend(resource, usd) {
|
|
@@ -227,7 +227,7 @@ async function loadBento() {
|
|
|
227
227
|
if (bentoModule)
|
|
228
228
|
return bentoModule;
|
|
229
229
|
// Non-literal specifier keeps TypeScript from resolving the optional package
|
|
230
|
-
// at build time
|
|
230
|
+
// at build time - it may not be installed in every environment.
|
|
231
231
|
const specifier = "@bentoguard/sdk";
|
|
232
232
|
try {
|
|
233
233
|
bentoModule = (await import(specifier));
|