@xona-labs/xpay 0.1.25 → 0.1.28
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 +47 -0
- package/README.md +22 -8
- package/SKILL.md +101 -0
- package/dist/cli/mcp-server.d.ts +14 -9
- package/dist/cli/mcp-server.d.ts.map +1 -1
- package/dist/cli/mcp-server.js +133 -15
- package/dist/cli/mcp-server.js.map +1 -1
- package/dist/guardrail/index.d.ts +10 -0
- package/dist/guardrail/index.d.ts.map +1 -1
- package/dist/guardrail/index.js +14 -0
- package/dist/guardrail/index.js.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,53 @@ versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.28] – 2026-06-23
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **Bento firewall controls exposed as MCP tools.** Agents can now manage the
|
|
13
|
+
intent firewall directly, not just via the CLI:
|
|
14
|
+
- `xpay_bento_status` — read whether screening is on (and the agent wallet to register).
|
|
15
|
+
- `xpay_bento_enable` — turn it on; returns the agent wallet address to register at app.bentoguard.xyz.
|
|
16
|
+
- `xpay_bento_disable` — turn it off; the escape hatch when the wallet isn't registered and payments are being rejected.
|
|
17
|
+
Enable/disable take effect live on the running guardrail (no restart) and
|
|
18
|
+
persist to the profile. Only available on profile-backed wallets — raw-key
|
|
19
|
+
(`XPAY_SOLANA_SECRET`) mode reports `profileBacked: false`.
|
|
20
|
+
- **`Guardrail.bentoEnabled()` / `setBentoEnabled()`** for runtime toggling.
|
|
21
|
+
|
|
22
|
+
## [0.1.27] – 2026-06-23
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- **`SKILL.md` — framework-agnostic onboarding guide.** A single page that
|
|
26
|
+
teaches any agent (Claude, Codex, OpenAI, Gemini, custom) how to drive xPay:
|
|
27
|
+
zero-config setup, the tool surface, the pay-per-call model, the safety rules
|
|
28
|
+
(guardrail, transfer confirmation, Bento), and copy-paste recipes. Shipped in
|
|
29
|
+
the npm package so hosts can read it from `node_modules/@xona-labs/xpay`.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- **README MCP section leads with zero-config onboarding.** The primary example
|
|
33
|
+
is now the no-env "agent gets its own wallet" config; bring-your-own-wallet
|
|
34
|
+
(`XPAY_SOLANA_SECRET` / `XPAY_PASSPHRASE` / `XPAY_NO_AUTO_WALLET`) is shown as
|
|
35
|
+
the override, matching the wallet-source precedence.
|
|
36
|
+
|
|
37
|
+
## [0.1.26] – 2026-06-23
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
- **Zero-config wallet onboarding for the MCP server.** Drop xPay into any
|
|
41
|
+
agent host with no env at all — on first boot the agent is given its own
|
|
42
|
+
persistent wallet (generated, saved under `~/.xpay`/`XPAY_HOME`, address
|
|
43
|
+
printed to stderr to fund). Reused on every later boot, so the agent keeps a
|
|
44
|
+
stable address. The wallet source order is: existing profile → raw key env
|
|
45
|
+
(`XPAY_SOLANA_SECRET` / `XPAY_EVM_KEY`) → auto-provision. Bring-your-own-key
|
|
46
|
+
always takes precedence; auto-provision is only the last resort.
|
|
47
|
+
- Encrypts at rest when `XPAY_PASSPHRASE` is set, plaintext otherwise.
|
|
48
|
+
- Opt out with `XPAY_NO_AUTO_WALLET=1` to restore the strict "no wallet"
|
|
49
|
+
error.
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
- **`mcp-server.ts` header now documents the zero-config form as primary.** The
|
|
53
|
+
previous example showed `XPAY_PASSPHRASE` alone, which only works once a
|
|
54
|
+
profile already exists — a setup trap for fresh hosts.
|
|
55
|
+
|
|
9
56
|
## [0.1.25] – 2026-06-23
|
|
10
57
|
|
|
11
58
|
### Fixed
|
package/README.md
CHANGED
|
@@ -136,7 +136,8 @@ for (const block of response.content) {
|
|
|
136
136
|
|
|
137
137
|
## MCP server (Claude Desktop / Cursor / Codex)
|
|
138
138
|
|
|
139
|
-
Drop xPay into any MCP host's config — no code
|
|
139
|
+
Drop xPay into any MCP host's config — **no code, no keys, no `xpay init`.** On
|
|
140
|
+
first boot the agent is given its own wallet automatically:
|
|
140
141
|
|
|
141
142
|
```jsonc
|
|
142
143
|
// ~/Library/Application Support/Claude/claude_desktop_config.json
|
|
@@ -144,18 +145,31 @@ Drop xPay into any MCP host's config — no code changes on the agent side.
|
|
|
144
145
|
"mcpServers": {
|
|
145
146
|
"xpay": {
|
|
146
147
|
"command": "npx",
|
|
147
|
-
"args": ["-y", "@xona-labs/xpay", "mcp"]
|
|
148
|
-
"env": {
|
|
149
|
-
"XPAY_PASSPHRASE": "<your-passphrase>"
|
|
150
|
-
}
|
|
148
|
+
"args": ["-y", "@xona-labs/xpay", "mcp"]
|
|
151
149
|
}
|
|
152
150
|
}
|
|
153
151
|
}
|
|
154
152
|
```
|
|
155
153
|
|
|
156
|
-
|
|
154
|
+
That's the whole setup. The generated wallet's **Solana address is printed to
|
|
155
|
+
stderr on first run** — fund it with USDC and the agent can pay. It persists
|
|
156
|
+
under `~/.xpay` and is reused on every later boot, so the address is stable.
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
The host sees the core tools: `xpay_discover`, `xpay_use`, `xpay_do`, `xpay_transfer`, `xpay_balance`, `xpay_report`, `xpay_guardrail`, plus `xpay_bento_status` / `xpay_bento_enable` / `xpay_bento_disable` to manage the [Bento intent firewall](#guardrail). If you've linked a Sana key (see below), eight additional `sana_*` tools are also registered automatically.
|
|
159
|
+
|
|
160
|
+
**Bring your own wallet instead** — the wallet source order is *existing profile → key env → auto-generate*, so any of these overrides the generated wallet:
|
|
161
|
+
|
|
162
|
+
```jsonc
|
|
163
|
+
"env": {
|
|
164
|
+
"XPAY_SOLANA_SECRET": "<base58 key>", // use a wallet you already hold
|
|
165
|
+
"XPAY_PASSPHRASE": "<passphrase>", // or unlock/encrypt a profile
|
|
166
|
+
"XPAY_NO_AUTO_WALLET": "1" // or disable auto-generation entirely
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
On macOS, with [biometric unlock](#biometric-unlock-macos) enabled on a profile, the server shows one Touch ID dialog at startup instead of keeping the passphrase in host config.
|
|
171
|
+
|
|
172
|
+
See **[SKILL.md](SKILL.md)** for a framework-agnostic guide to driving these tools from any agent.
|
|
159
173
|
|
|
160
174
|
## Profiles
|
|
161
175
|
|
|
@@ -300,7 +314,7 @@ Public RPCs work for development but rate-limit hard. Production deployments sho
|
|
|
300
314
|
**v0.1 (current):**
|
|
301
315
|
- ✅ CLI: init, accounts, balance, discover, pay, transfer, report, guardrail, mcp
|
|
302
316
|
- ✅ SDK: full parity with CLI; tool exporters for Claude / OpenAI / Gemini
|
|
303
|
-
- ✅ MCP server on stdio with
|
|
317
|
+
- ✅ MCP server on stdio with 10 core tools (incl. Bento firewall controls)
|
|
304
318
|
- ✅ Solana + Base mainnet with disk caching
|
|
305
319
|
- ✅ Optional Sana agent card integration (`xpay sana link`) — 8 additional `sana_*` tools
|
|
306
320
|
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xpay
|
|
3
|
+
description: >-
|
|
4
|
+
Give an AI agent its own wallet and let it discover and pay for services.
|
|
5
|
+
Use when the agent needs to find a paid API/service, pay for a call (x402 /
|
|
6
|
+
USDC), send USDC to an address, check its balance, or review spending. Works
|
|
7
|
+
from any agent framework (Claude, Codex, OpenAI, Gemini, custom) via MCP, CLI,
|
|
8
|
+
or SDK.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# xPay — a wallet and payment rail for agents
|
|
12
|
+
|
|
13
|
+
xPay lets an agent **find a service, pay for it, and get the result** without
|
|
14
|
+
writing any payment plumbing. It hides x402, USDC, RPC, and multi-network
|
|
15
|
+
routing behind a flat set of tools.
|
|
16
|
+
|
|
17
|
+
The fastest mental model: `discover` (find a paid service) → `use` (pay + call
|
|
18
|
+
it) → you get the response. Or skip straight to `do` (find the best service for
|
|
19
|
+
an intent and call it in one step).
|
|
20
|
+
|
|
21
|
+
## Setup (zero-config)
|
|
22
|
+
|
|
23
|
+
Add xPay as an MCP server — no keys, no init:
|
|
24
|
+
|
|
25
|
+
```jsonc
|
|
26
|
+
{ "mcpServers": { "xpay": { "command": "npx", "args": ["-y", "@xona-labs/xpay", "mcp"] } } }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
On first run the agent is given its **own wallet**. Its Solana address is
|
|
30
|
+
printed to the server's stderr — **fund that address with USDC** and the agent
|
|
31
|
+
can pay. The wallet persists and is reused across restarts.
|
|
32
|
+
|
|
33
|
+
To use a wallet you already hold instead, set `XPAY_SOLANA_SECRET` (base58) in
|
|
34
|
+
the MCP `env`. To require an explicit wallet (no auto-generation), set
|
|
35
|
+
`XPAY_NO_AUTO_WALLET=1`.
|
|
36
|
+
|
|
37
|
+
## Tools
|
|
38
|
+
|
|
39
|
+
| Tool | Use it to |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `xpay_discover` | Find paid services by natural-language query. Returns ranked candidates with price, network, and payee. |
|
|
42
|
+
| `xpay_use` | Pay for and call a specific service. Pass the full `resource` object from `xpay_discover` (preferred), or a `resourceUrl`. Handles the x402 402-challenge → pay → retry flow. |
|
|
43
|
+
| `xpay_do` | One step: discover the best service for an intent **and** call it. Use when you don't need to compare options. |
|
|
44
|
+
| `xpay_transfer` | Send USDC (or any Solana SPL token) directly to an address. In the MCP server this returns a confirmation code; you must then call `xpay_transfer_confirm` — never auto-confirm without the user's approval. |
|
|
45
|
+
| `xpay_balance` | The wallet's balance per network, plus its addresses (use this to tell the user where to send funds). |
|
|
46
|
+
| `xpay_report` | Spending/income report (daily / weekly / monthly). |
|
|
47
|
+
| `xpay_guardrail` | Read the active spending caps (per-tx, per-day, allowed hosts, approval threshold). |
|
|
48
|
+
| `xpay_bento_status` | Check whether the Bento intent firewall is on (read-only). |
|
|
49
|
+
| `xpay_bento_enable` | Turn the Bento intent firewall on. Returns the agent wallet address to register at app.bentoguard.xyz. |
|
|
50
|
+
| `xpay_bento_disable` | Turn the Bento firewall off — use if the wallet isn't registered and payments are rejected. |
|
|
51
|
+
|
|
52
|
+
## How payment works
|
|
53
|
+
|
|
54
|
+
Services price calls in **USDC** over the **x402** protocol (typically fractions
|
|
55
|
+
of a cent to a few cents per call). `xpay_use` / `xpay_do` settle the payment
|
|
56
|
+
and call the service in one round-trip — the agent just receives the result. A
|
|
57
|
+
small platform fee ($0.01 USDC) applies per paid call.
|
|
58
|
+
|
|
59
|
+
The agent pays from its own wallet, so **it must be funded first**. If a call
|
|
60
|
+
fails for lack of funds, ask the user to send USDC to the address from
|
|
61
|
+
`xpay_balance` (Solana mainnet or Base).
|
|
62
|
+
|
|
63
|
+
## Safety — built in, respect it
|
|
64
|
+
|
|
65
|
+
- **Spending guardrail.** Per-tx and per-day USD caps and an allowed-host list
|
|
66
|
+
are enforced *before* signing. A blocked call throws; don't try to route
|
|
67
|
+
around it — surface the limit to the user.
|
|
68
|
+
- **Transfers need confirmation.** `xpay_transfer` only *stages* a transfer; it
|
|
69
|
+
returns a code. Show the user the amount + destination and only call
|
|
70
|
+
`xpay_transfer_confirm` after they approve. Never move funds unprompted.
|
|
71
|
+
- **Bento intent firewall (optional).** When enabled, every payment is screened
|
|
72
|
+
for malicious intent (prompt-injection, wallet-drain) before signing. A
|
|
73
|
+
`BLOCKED` result means stop. Toggle with `xpay_bento_enable` /
|
|
74
|
+
`xpay_bento_disable`; it requires a one-time wallet registration at
|
|
75
|
+
app.bentoguard.xyz, and until then payments are rejected — disable it to fall
|
|
76
|
+
back to local caps if you don't want to register.
|
|
77
|
+
|
|
78
|
+
## Recipes
|
|
79
|
+
|
|
80
|
+
**Find and pay for a service**
|
|
81
|
+
1. `xpay_discover { query: "image alt-text generation" }`
|
|
82
|
+
2. Pick a candidate, then `xpay_use { resource: <that object>, body: { ... } }`
|
|
83
|
+
3. Use the returned `data`.
|
|
84
|
+
|
|
85
|
+
**One-shot**
|
|
86
|
+
- `xpay_do { query: "translate this text to Japanese", body: { text } }`
|
|
87
|
+
|
|
88
|
+
**Receive funds**
|
|
89
|
+
- `xpay_balance` → give the user the Solana address to send USDC to.
|
|
90
|
+
|
|
91
|
+
**Send funds (with approval)**
|
|
92
|
+
1. `xpay_transfer { amount: 5, to: "<address>", token: "USDC" }` → returns a code
|
|
93
|
+
2. Confirm details with the user
|
|
94
|
+
3. `xpay_transfer_confirm { confirmationCode: "<code>" }`
|
|
95
|
+
|
|
96
|
+
## CLI / SDK
|
|
97
|
+
|
|
98
|
+
The same capabilities exist as a CLI (`xpay discover|pay|transfer|balance|…`)
|
|
99
|
+
and a TypeScript SDK (`createXPay({ profile })` → `xpay.discover/use/do/transfer`).
|
|
100
|
+
The tool names mirror the CLI so the mental model is identical across all three.
|
|
101
|
+
See the [README](README.md) for CLI and SDK details.
|
package/dist/cli/mcp-server.d.ts
CHANGED
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* xPay MCP server.
|
|
3
3
|
*
|
|
4
|
-
* Exposes every CLI capability as an MCP tool over stdio.
|
|
5
|
-
*
|
|
4
|
+
* Exposes every CLI capability as an MCP tool over stdio. Zero-config — drop
|
|
5
|
+
* this into any Claude Desktop / Cursor / Codex / agent-framework config and
|
|
6
|
+
* on first boot the agent is given its own persistent wallet:
|
|
6
7
|
*
|
|
7
8
|
* {
|
|
8
9
|
* "mcpServers": {
|
|
9
10
|
* "xpay": {
|
|
10
11
|
* "command": "npx",
|
|
11
|
-
* "args": ["-y", "@xona-labs/xpay"]
|
|
12
|
-
* "env": { "XPAY_PASSPHRASE": "<your-passphrase>" }
|
|
12
|
+
* "args": ["-y", "@xona-labs/xpay", "mcp"]
|
|
13
13
|
* }
|
|
14
14
|
* }
|
|
15
15
|
* }
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* XPAY_HOME override ~/.xpay/ root (mirrors the CLI)
|
|
17
|
+
* The generated wallet's address is printed to stderr on first run — fund the
|
|
18
|
+
* Solana address with USDC to let the agent pay. It persists under ~/.xpay and
|
|
19
|
+
* is reused on every later boot.
|
|
21
20
|
*
|
|
22
|
-
*
|
|
21
|
+
* Configuration via env (all optional):
|
|
22
|
+
* XPAY_PROFILE profile to load/create (default: active, else "default")
|
|
23
|
+
* XPAY_PASSPHRASE encrypt the wallet at rest (also unlocks an existing one)
|
|
24
|
+
* XPAY_HOME override ~/.xpay/ root (mirrors the CLI)
|
|
25
|
+
* XPAY_NO_AUTO_WALLET error instead of auto-generating when nothing is configured
|
|
26
|
+
*
|
|
27
|
+
* To use a wallet you already hold instead of a generated one:
|
|
23
28
|
* XPAY_SOLANA_SECRET, XPAY_EVM_KEY, XPAY_EVM_NETWORK
|
|
24
29
|
*/
|
|
25
30
|
export declare function startMcpServer(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAiCH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA6MpD"}
|
package/dist/cli/mcp-server.js
CHANGED
|
@@ -1,33 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* xPay MCP server.
|
|
3
3
|
*
|
|
4
|
-
* Exposes every CLI capability as an MCP tool over stdio.
|
|
5
|
-
*
|
|
4
|
+
* Exposes every CLI capability as an MCP tool over stdio. Zero-config — drop
|
|
5
|
+
* this into any Claude Desktop / Cursor / Codex / agent-framework config and
|
|
6
|
+
* on first boot the agent is given its own persistent wallet:
|
|
6
7
|
*
|
|
7
8
|
* {
|
|
8
9
|
* "mcpServers": {
|
|
9
10
|
* "xpay": {
|
|
10
11
|
* "command": "npx",
|
|
11
|
-
* "args": ["-y", "@xona-labs/xpay"]
|
|
12
|
-
* "env": { "XPAY_PASSPHRASE": "<your-passphrase>" }
|
|
12
|
+
* "args": ["-y", "@xona-labs/xpay", "mcp"]
|
|
13
13
|
* }
|
|
14
14
|
* }
|
|
15
15
|
* }
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* XPAY_HOME override ~/.xpay/ root (mirrors the CLI)
|
|
17
|
+
* The generated wallet's address is printed to stderr on first run — fund the
|
|
18
|
+
* Solana address with USDC to let the agent pay. It persists under ~/.xpay and
|
|
19
|
+
* is reused on every later boot.
|
|
21
20
|
*
|
|
22
|
-
*
|
|
21
|
+
* Configuration via env (all optional):
|
|
22
|
+
* XPAY_PROFILE profile to load/create (default: active, else "default")
|
|
23
|
+
* XPAY_PASSPHRASE encrypt the wallet at rest (also unlocks an existing one)
|
|
24
|
+
* XPAY_HOME override ~/.xpay/ root (mirrors the CLI)
|
|
25
|
+
* XPAY_NO_AUTO_WALLET error instead of auto-generating when nothing is configured
|
|
26
|
+
*
|
|
27
|
+
* To use a wallet you already hold instead of a generated one:
|
|
23
28
|
* XPAY_SOLANA_SECRET, XPAY_EVM_KEY, XPAY_EVM_NETWORK
|
|
24
29
|
*/
|
|
25
30
|
import { randomInt } from "crypto";
|
|
26
31
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
27
32
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
28
33
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
29
|
-
import { createXPay, loadProfile } from "../index.js";
|
|
34
|
+
import { createXPay, loadProfile, initProfile, deriveKeysFromMnemonic } from "../index.js";
|
|
30
35
|
import { profileExists } from "../profile/storage.js";
|
|
36
|
+
import { readProfileConfig, setProfileBento } from "../profile/index.js";
|
|
31
37
|
import { rawSolanaSigner } from "../signers/raw-solana.js";
|
|
32
38
|
import { rawEvmSigner } from "../signers/raw-evm.js";
|
|
33
39
|
import { forClaude } from "../tools/index.js";
|
|
@@ -37,7 +43,7 @@ import { guardrailWithApproval } from "./common.js";
|
|
|
37
43
|
const pendingTransfers = new Map();
|
|
38
44
|
const TRANSFER_EXPIRY_MS = 5 * 60 * 1000; // 5 minutes
|
|
39
45
|
export async function startMcpServer() {
|
|
40
|
-
const xpay = await buildXPay();
|
|
46
|
+
const { xpay, profileName } = await buildXPay();
|
|
41
47
|
const sanaApiKey = await resolveSanaApiKey();
|
|
42
48
|
const { tools, handlers } = forClaude(xpay, { sanaApiKey });
|
|
43
49
|
// --- MCP-only: two-step confirmation for transfers ---
|
|
@@ -94,6 +100,26 @@ export async function startMcpServer() {
|
|
|
94
100
|
required: ["confirmationCode"],
|
|
95
101
|
},
|
|
96
102
|
},
|
|
103
|
+
{
|
|
104
|
+
name: "xpay_bento_status",
|
|
105
|
+
description: "Check whether the Bento intent firewall is active. When on, every payment is " +
|
|
106
|
+
"screened for malicious intent (prompt-injection, wallet-drain) before signing. Read-only.",
|
|
107
|
+
inputSchema: { type: "object", properties: {} },
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: "xpay_bento_enable",
|
|
111
|
+
description: "Turn ON the Bento intent firewall for this agent's wallet. Returns the agent wallet " +
|
|
112
|
+
"address, which must be registered once at app.bentoguard.xyz (logging in with the " +
|
|
113
|
+
"owner wallet) before protection takes effect — until then payments are rejected.",
|
|
114
|
+
inputSchema: { type: "object", properties: {} },
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: "xpay_bento_disable",
|
|
118
|
+
description: "Turn OFF the Bento intent firewall. Use this if the wallet isn't registered at the " +
|
|
119
|
+
"Bento dashboard and payments are being rejected with 'Agent not found'. Payments then " +
|
|
120
|
+
"fall back to the local spending caps only.",
|
|
121
|
+
inputSchema: { type: "object", properties: {} },
|
|
122
|
+
},
|
|
97
123
|
];
|
|
98
124
|
handlers["xpay_transfer_confirm"] = async (input) => {
|
|
99
125
|
const code = String(input.confirmationCode ?? "").trim();
|
|
@@ -115,6 +141,58 @@ export async function startMcpServer() {
|
|
|
115
141
|
});
|
|
116
142
|
};
|
|
117
143
|
// --- end MCP-only confirmation ---
|
|
144
|
+
// --- MCP-only: Bento intent firewall controls ---
|
|
145
|
+
// status + enable + disable. Disable is intentionally available so the agent
|
|
146
|
+
// can recover when the wallet isn't registered and payments are rejected.
|
|
147
|
+
const BENTO_DASHBOARD = "https://app.bentoguard.xyz/";
|
|
148
|
+
const agentSolanaAddress = () => {
|
|
149
|
+
try {
|
|
150
|
+
return xpay.wallet.address("solana");
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
return "";
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
handlers["xpay_bento_status"] = async () => {
|
|
157
|
+
const persisted = profileName ? Boolean(readProfileConfig(profileName).bento?.enabled) : false;
|
|
158
|
+
return {
|
|
159
|
+
enabled: xpay.guardrail.bentoEnabled(),
|
|
160
|
+
persisted,
|
|
161
|
+
profileBacked: Boolean(profileName),
|
|
162
|
+
agentWallet: agentSolanaAddress(),
|
|
163
|
+
dashboard: BENTO_DASHBOARD,
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
handlers["xpay_bento_enable"] = async () => {
|
|
167
|
+
if (!profileName) {
|
|
168
|
+
return {
|
|
169
|
+
ok: false,
|
|
170
|
+
error: "Bento requires a profile-backed wallet. This server is running with a raw key " +
|
|
171
|
+
"(XPAY_SOLANA_SECRET), so there's no profile to enable it on.",
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
setProfileBento(profileName, true); // persist for future boots
|
|
175
|
+
xpay.guardrail.setBentoEnabled(true); // activate for this session
|
|
176
|
+
return {
|
|
177
|
+
ok: true,
|
|
178
|
+
enabled: true,
|
|
179
|
+
agentWallet: agentSolanaAddress(),
|
|
180
|
+
action_required: `Register this agent wallet at ${BENTO_DASHBOARD} (log in with your owner wallet). ` +
|
|
181
|
+
`Until it's registered, payments are rejected with "Agent not found" — call ` +
|
|
182
|
+
`xpay_bento_disable to fall back to local caps if you don't want to register.`,
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
handlers["xpay_bento_disable"] = async () => {
|
|
186
|
+
if (profileName)
|
|
187
|
+
setProfileBento(profileName, false); // persist
|
|
188
|
+
xpay.guardrail.setBentoEnabled(false); // deactivate for this session
|
|
189
|
+
return {
|
|
190
|
+
ok: true,
|
|
191
|
+
enabled: false,
|
|
192
|
+
note: "Bento intent screening is off. Payments now rely on the local spending caps only.",
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
// --- end Bento controls ---
|
|
118
196
|
const server = new Server({ name: "xpay", version: "0.1.0" }, { capabilities: { tools: {} } });
|
|
119
197
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
120
198
|
tools: mcpTools.map((t) => ({
|
|
@@ -148,7 +226,8 @@ export async function startMcpServer() {
|
|
|
148
226
|
/**
|
|
149
227
|
* Build the XPay client the MCP host will use. Preference order:
|
|
150
228
|
* 1. A loaded profile (the common case after `xpay init`).
|
|
151
|
-
* 2. Raw signer envs (for
|
|
229
|
+
* 2. Raw signer envs (for a wallet the operator already holds).
|
|
230
|
+
* 3. Auto-provision a fresh wallet (zero-config onboarding) and persist it.
|
|
152
231
|
*/
|
|
153
232
|
async function buildXPay() {
|
|
154
233
|
const profileName = process.env.XPAY_PROFILE ?? getActiveProfile();
|
|
@@ -157,9 +236,13 @@ async function buildXPay() {
|
|
|
157
236
|
name: profileName,
|
|
158
237
|
passphrase: process.env.XPAY_PASSPHRASE ?? (await biometricMcpPassphrase(profileName)),
|
|
159
238
|
});
|
|
239
|
+
// Expose the agent's own key so a runtime `xpay_bento_enable` can activate
|
|
240
|
+
// protect() without a restart. In-process only; it's the wallet's own key.
|
|
241
|
+
process.env.AGENT_WALLET_PRIVATE_KEY ??= deriveKeysFromMnemonic(profile.mnemonic).solana.secretKeyBase58;
|
|
160
242
|
// No TTY here — approvals above the guardrail threshold surface as a
|
|
161
243
|
// system Touch ID dialog when the profile has biometric unlock enabled.
|
|
162
|
-
|
|
244
|
+
const xpay = createXPay({ profile, guardrail: guardrailWithApproval(profile, { interactive: false }) });
|
|
245
|
+
return { xpay, profileName };
|
|
163
246
|
}
|
|
164
247
|
// Fallback: ephemeral raw signers.
|
|
165
248
|
const networks = (process.env.XPAY_NETWORKS ?? "solana,base").split(",");
|
|
@@ -172,10 +255,18 @@ async function buildXPay() {
|
|
|
172
255
|
signers[evmNet] = rawEvmSigner({ privateKey: process.env.XPAY_EVM_KEY, network: evmNet });
|
|
173
256
|
}
|
|
174
257
|
if (Object.keys(signers).length === 0) {
|
|
258
|
+
// Nothing configured — give the agent its own wallet (zero-config
|
|
259
|
+
// onboarding). Opt out with XPAY_NO_AUTO_WALLET for the strict behaviour.
|
|
260
|
+
if (!process.env.XPAY_NO_AUTO_WALLET) {
|
|
261
|
+
return autoProvisionXPay(profileName);
|
|
262
|
+
}
|
|
175
263
|
throw new Error(`xpay-mcp: no profile "${profileName}" found and no raw signer env set. ` +
|
|
176
|
-
`Run \`xpay init
|
|
264
|
+
`Run \`xpay init\`, set XPAY_SOLANA_SECRET / XPAY_EVM_KEY, or unset ` +
|
|
265
|
+
`XPAY_NO_AUTO_WALLET to auto-generate a wallet.`);
|
|
177
266
|
}
|
|
178
|
-
|
|
267
|
+
// Raw-key mode: no profile on disk, so bento's profile-gated flag can't be
|
|
268
|
+
// toggled — profileName is null and the bento tools report that.
|
|
269
|
+
const xpay = createXPay({
|
|
179
270
|
networks,
|
|
180
271
|
signers,
|
|
181
272
|
guardrail: {
|
|
@@ -184,6 +275,33 @@ async function buildXPay() {
|
|
|
184
275
|
allowedHosts: process.env.XPAY_ALLOWED_HOSTS?.split(","),
|
|
185
276
|
},
|
|
186
277
|
});
|
|
278
|
+
return { xpay, profileName: null };
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Zero-config onboarding: no profile and no key configured, so generate a
|
|
282
|
+
* fresh wallet for the agent, persist it under ~/.xpay (or XPAY_HOME), and
|
|
283
|
+
* surface the address. Encrypted when XPAY_PASSPHRASE is set, otherwise
|
|
284
|
+
* plaintext (file-permission protected) — fine for a low-balance agent wallet.
|
|
285
|
+
*
|
|
286
|
+
* Runs once: the next boot finds the profile and loads it via the normal path,
|
|
287
|
+
* so the agent keeps the same address across restarts. All notices go to
|
|
288
|
+
* stderr — stdout is the MCP JSON-RPC channel and must stay clean.
|
|
289
|
+
*/
|
|
290
|
+
async function autoProvisionXPay(profileName) {
|
|
291
|
+
const passphrase = process.env.XPAY_PASSPHRASE || undefined;
|
|
292
|
+
const created = await initProfile({ name: profileName, passphrase });
|
|
293
|
+
process.stderr.write(`\n[xpay-mcp] No wallet found — generated one for this agent.\n` +
|
|
294
|
+
`[xpay-mcp] profile: ${profileName}\n` +
|
|
295
|
+
`[xpay-mcp] Solana: ${created.addresses.solana}\n` +
|
|
296
|
+
`[xpay-mcp] Base/EVM: ${created.addresses.evm}\n` +
|
|
297
|
+
`[xpay-mcp] stored: ${created.path}` +
|
|
298
|
+
(passphrase ? " (encrypted)\n" : " (UNENCRYPTED — set XPAY_PASSPHRASE to encrypt at rest)\n") +
|
|
299
|
+
`[xpay-mcp] Fund the Solana address with USDC so the agent can pay.\n` +
|
|
300
|
+
`[xpay-mcp] The recovery phrase lives in ${created.path} — back it up.\n\n`);
|
|
301
|
+
const profile = await loadProfile({ name: profileName, passphrase });
|
|
302
|
+
process.env.AGENT_WALLET_PRIVATE_KEY ??= deriveKeysFromMnemonic(profile.mnemonic).solana.secretKeyBase58;
|
|
303
|
+
const xpay = createXPay({ profile, guardrail: guardrailWithApproval(profile, { interactive: false }) });
|
|
304
|
+
return { xpay, profileName };
|
|
187
305
|
}
|
|
188
306
|
/**
|
|
189
307
|
* Resolve the Sana API key. Preference:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAapD,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;AAC5D,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAEtD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAE5D,wDAAwD;IACxD,sFAAsF;IACtF,oFAAoF;IACpF,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAY,CAAC;QAC9B,MAAM,KAAK,GAAI,KAAK,CAAC,KAA4B,IAAI,MAAM,CAAC;QAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,OAA6B,CAAC;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,OAA8B,CAAC;QAEvD,uDAAuD;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;gBAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,IAAY,CAAC;QACjB,GAAG,CAAC;YACF,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3C,CAAC,QAAQ,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAErC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE;YACzB,MAAM;YACN,EAAE;YACF,KAAK;YACL,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,GAAG,GAAG,kBAAkB;SACpC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/G,OAAO;YACL,MAAM,EAAE,sBAAsB;YAC9B,OAAO;YACP,OAAO,EACL,oBAAoB,OAAO,IAAI;gBAC/B,oEAAoE,IAAI,KAAK;gBAC7E,8EAA8E;SACjF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG;QACf,GAAG,KAAK;QACR;YACE,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EACT,yCAAyC;gBACzC,sHAAsH;YACxH,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,gBAAgB,EAAE;wBAChB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6CAA6C;qBAC3D;iBACF;gBACD,QAAQ,EAAE,CAAC,kBAAkB,CAAC;aAC/B;SACF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EACT,+EAA+E;gBAC/E,2FAA2F;YAC7F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SAChD;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EACT,sFAAsF;gBACtF,oFAAoF;gBACpF,kFAAkF;YACpF,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SAChD;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EACT,qFAAqF;gBACrF,wFAAwF;gBACxF,4CAA4C;YAC9C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SAChD;KACF,CAAC;IAEF,QAAQ,CAAC,uBAAuB,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACnC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACtG,CAAC;QAED,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAA8B;YAC/C,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC,CAAC;IACF,oCAAoC;IAEpC,mDAAmD;IACnD,6EAA6E;IAC7E,0EAA0E;IAC1E,MAAM,eAAe,GAAG,6BAA6B,CAAC;IACtD,MAAM,kBAAkB,GAAG,GAAW,EAAE;QACtC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,QAAQ,CAAC,mBAAmB,CAAC,GAAG,KAAK,IAAI,EAAE;QACzC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/F,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YACtC,SAAS;YACT,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC;YACnC,WAAW,EAAE,kBAAkB,EAAE;YACjC,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC,CAAC;IAEF,QAAQ,CAAC,mBAAmB,CAAC,GAAG,KAAK,IAAI,EAAE;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EACH,gFAAgF;oBAChF,8DAA8D;aACjE,CAAC;QACJ,CAAC;QACD,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,2BAA2B;QAC/D,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B;QAClE,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,kBAAkB,EAAE;YACjC,eAAe,EACb,iCAAiC,eAAe,oCAAoC;gBACpF,6EAA6E;gBAC7E,8EAA8E;SACjF,CAAC;IACJ,CAAC,CAAC;IAEF,QAAQ,CAAC,oBAAoB,CAAC,GAAG,KAAK,IAAI,EAAE;QAC1C,IAAI,WAAW;YAAE,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU;QAChE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,8BAA8B;QACrE,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,mFAAmF;SAC1F,CAAC;IACJ,CAAC,CAAC;IACF,6BAA6B;IAE7B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAClC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;SAClE,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,gBAAgB,EAAE,CAAC;IACnE,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;YAChC,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;SACvF,CAAC,CAAC;QACH,2EAA2E;QAC3E,2EAA2E;QAC3E,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;QACzG,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACxG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;IAED,mCAAmC;IACnC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;IACtF,MAAM,OAAO,GAAqC,EAAE,CAAC;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAY,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,kEAAkE;QAClE,0EAA0E;QAC1E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YACrC,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,qCAAqC;YACvE,qEAAqE;YACrE,gDAAgD,CACnD,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,QAAQ;QACR,OAAO;QACP,SAAS,EAAE;YACT,QAAQ,EAAE,UAAU,CAAC,iBAAiB,CAAC;YACvC,SAAS,EAAE,UAAU,CAAC,kBAAkB,CAAC;YACzC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC;SACzD;KACF,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IAErE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gEAAgE;QAC9D,0BAA0B,WAAW,IAAI;QACzC,0BAA0B,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI;QACtD,0BAA0B,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;QACnD,0BAA0B,OAAO,CAAC,IAAI,EAAE;QACxC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,2DAA2D,CAAC;QAC7F,sEAAsE;QACtE,2CAA2C,OAAO,CAAC,IAAI,oBAAoB,CAC9E,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;IACzG,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB;IAC9B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,gBAAgB,EAAE,CAAC;QACnE,sEAAsE;QACtE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;QACxD,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,sBAAsB,CAAC,WAAmB;IACvD,IAAI,CAAC;QACH,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,OAAO;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1E,OAAO,CACL,CAAC,MAAM,uBAAuB,CAAC,WAAW,EAAE,4BAA4B,WAAW,GAAG,CAAC,CAAC;YACxF,SAAS,CACV,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC"}
|
|
@@ -64,6 +64,16 @@ export declare class Guardrail {
|
|
|
64
64
|
private checkBento;
|
|
65
65
|
/** Sum of recent spend, in USD, within the last 24h. */
|
|
66
66
|
recentSpend(): number;
|
|
67
|
+
/** Whether the Bento intent firewall is active on this instance. */
|
|
68
|
+
bentoEnabled(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Toggle the Bento firewall on this live instance — lets the MCP
|
|
71
|
+
* `xpay_bento_enable` tool activate screening for the current session
|
|
72
|
+
* without a server restart. Persisting the flag to disk is separate
|
|
73
|
+
* (the caller does that via `setProfileBento`). Requires
|
|
74
|
+
* `AGENT_WALLET_PRIVATE_KEY` in the environment for `protect()` to run.
|
|
75
|
+
*/
|
|
76
|
+
setBentoEnabled(enabled: boolean): void;
|
|
67
77
|
}
|
|
68
78
|
export declare class GuardrailError extends Error {
|
|
69
79
|
constructor(message: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAOD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEhC,MAAM,GAAE,eAAoB;IAIxC;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgEzF;;;;;;;OAOG;YACW,UAAU;IAqDxB,wDAAwD;IACxD,WAAW,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAOD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEhC,MAAM,GAAE,eAAoB;IAIxC;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgEzF;;;;;;;OAOG;YACW,UAAU;IAqDxB,wDAAwD;IACxD,WAAW,IAAI,MAAM;IAKrB,oEAAoE;IACpE,YAAY,IAAI,OAAO;IAIvB;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGxC;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/guardrail/index.js
CHANGED
|
@@ -120,6 +120,20 @@ export class Guardrail {
|
|
|
120
120
|
const dayAgo = Date.now() - 24 * 60 * 60 * 1000;
|
|
121
121
|
return this.history.filter((h) => h.at >= dayAgo).reduce((s, h) => s + h.usd, 0);
|
|
122
122
|
}
|
|
123
|
+
/** Whether the Bento intent firewall is active on this instance. */
|
|
124
|
+
bentoEnabled() {
|
|
125
|
+
return Boolean(this.config.bento?.enabled);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Toggle the Bento firewall on this live instance — lets the MCP
|
|
129
|
+
* `xpay_bento_enable` tool activate screening for the current session
|
|
130
|
+
* without a server restart. Persisting the flag to disk is separate
|
|
131
|
+
* (the caller does that via `setProfileBento`). Requires
|
|
132
|
+
* `AGENT_WALLET_PRIVATE_KEY` in the environment for `protect()` to run.
|
|
133
|
+
*/
|
|
134
|
+
setBentoEnabled(enabled) {
|
|
135
|
+
this.config.bento = { ...this.config.bento, enabled };
|
|
136
|
+
}
|
|
123
137
|
}
|
|
124
138
|
export class GuardrailError extends Error {
|
|
125
139
|
constructor(message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xona-labs/xpay",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.28",
|
|
4
4
|
"description": "Discovery and usage layer for agentic commerce — multi-network wallet, x402 payments, 20k+ services via PayAI and other catalogs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"files": [
|
|
13
13
|
"dist",
|
|
14
14
|
"README.md",
|
|
15
|
+
"SKILL.md",
|
|
15
16
|
"CHANGELOG.md",
|
|
16
17
|
"LICENSE"
|
|
17
18
|
],
|