@xona-labs/xpay 0.1.25 → 0.1.27
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 +34 -0
- package/README.md +21 -7
- package/SKILL.md +95 -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 +48 -12
- package/dist/cli/mcp-server.js.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,40 @@ versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.27] – 2026-06-23
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **`SKILL.md` — framework-agnostic onboarding guide.** A single page that
|
|
13
|
+
teaches any agent (Claude, Codex, OpenAI, Gemini, custom) how to drive xPay:
|
|
14
|
+
zero-config setup, the tool surface, the pay-per-call model, the safety rules
|
|
15
|
+
(guardrail, transfer confirmation, Bento), and copy-paste recipes. Shipped in
|
|
16
|
+
the npm package so hosts can read it from `node_modules/@xona-labs/xpay`.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **README MCP section leads with zero-config onboarding.** The primary example
|
|
20
|
+
is now the no-env "agent gets its own wallet" config; bring-your-own-wallet
|
|
21
|
+
(`XPAY_SOLANA_SECRET` / `XPAY_PASSPHRASE` / `XPAY_NO_AUTO_WALLET`) is shown as
|
|
22
|
+
the override, matching the wallet-source precedence.
|
|
23
|
+
|
|
24
|
+
## [0.1.26] – 2026-06-23
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
- **Zero-config wallet onboarding for the MCP server.** Drop xPay into any
|
|
28
|
+
agent host with no env at all — on first boot the agent is given its own
|
|
29
|
+
persistent wallet (generated, saved under `~/.xpay`/`XPAY_HOME`, address
|
|
30
|
+
printed to stderr to fund). Reused on every later boot, so the agent keeps a
|
|
31
|
+
stable address. The wallet source order is: existing profile → raw key env
|
|
32
|
+
(`XPAY_SOLANA_SECRET` / `XPAY_EVM_KEY`) → auto-provision. Bring-your-own-key
|
|
33
|
+
always takes precedence; auto-provision is only the last resort.
|
|
34
|
+
- Encrypts at rest when `XPAY_PASSPHRASE` is set, plaintext otherwise.
|
|
35
|
+
- Opt out with `XPAY_NO_AUTO_WALLET=1` to restore the strict "no wallet"
|
|
36
|
+
error.
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
- **`mcp-server.ts` header now documents the zero-config form as primary.** The
|
|
40
|
+
previous example showed `XPAY_PASSPHRASE` alone, which only works once a
|
|
41
|
+
profile already exists — a setup trap for fresh hosts.
|
|
42
|
+
|
|
9
43
|
## [0.1.25] – 2026-06-23
|
|
10
44
|
|
|
11
45
|
### 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 seven core tools: `xpay_discover`, `xpay_use`, `xpay_do`, `xpay_transfer`, `xpay_balance`, `xpay_report`, `xpay_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
|
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
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
|
+
|
|
49
|
+
## How payment works
|
|
50
|
+
|
|
51
|
+
Services price calls in **USDC** over the **x402** protocol (typically fractions
|
|
52
|
+
of a cent to a few cents per call). `xpay_use` / `xpay_do` settle the payment
|
|
53
|
+
and call the service in one round-trip — the agent just receives the result. A
|
|
54
|
+
small platform fee ($0.01 USDC) applies per paid call.
|
|
55
|
+
|
|
56
|
+
The agent pays from its own wallet, so **it must be funded first**. If a call
|
|
57
|
+
fails for lack of funds, ask the user to send USDC to the address from
|
|
58
|
+
`xpay_balance` (Solana mainnet or Base).
|
|
59
|
+
|
|
60
|
+
## Safety — built in, respect it
|
|
61
|
+
|
|
62
|
+
- **Spending guardrail.** Per-tx and per-day USD caps and an allowed-host list
|
|
63
|
+
are enforced *before* signing. A blocked call throws; don't try to route
|
|
64
|
+
around it — surface the limit to the user.
|
|
65
|
+
- **Transfers need confirmation.** `xpay_transfer` only *stages* a transfer; it
|
|
66
|
+
returns a code. Show the user the amount + destination and only call
|
|
67
|
+
`xpay_transfer_confirm` after they approve. Never move funds unprompted.
|
|
68
|
+
- **Bento intent firewall (optional).** When enabled, every payment is screened
|
|
69
|
+
for malicious intent (prompt-injection, wallet-drain) before signing. A
|
|
70
|
+
`BLOCKED` result means stop.
|
|
71
|
+
|
|
72
|
+
## Recipes
|
|
73
|
+
|
|
74
|
+
**Find and pay for a service**
|
|
75
|
+
1. `xpay_discover { query: "image alt-text generation" }`
|
|
76
|
+
2. Pick a candidate, then `xpay_use { resource: <that object>, body: { ... } }`
|
|
77
|
+
3. Use the returned `data`.
|
|
78
|
+
|
|
79
|
+
**One-shot**
|
|
80
|
+
- `xpay_do { query: "translate this text to Japanese", body: { text } }`
|
|
81
|
+
|
|
82
|
+
**Receive funds**
|
|
83
|
+
- `xpay_balance` → give the user the Solana address to send USDC to.
|
|
84
|
+
|
|
85
|
+
**Send funds (with approval)**
|
|
86
|
+
1. `xpay_transfer { amount: 5, to: "<address>", token: "USDC" }` → returns a code
|
|
87
|
+
2. Confirm details with the user
|
|
88
|
+
3. `xpay_transfer_confirm { confirmationCode: "<code>" }`
|
|
89
|
+
|
|
90
|
+
## CLI / SDK
|
|
91
|
+
|
|
92
|
+
The same capabilities exist as a CLI (`xpay discover|pay|transfer|balance|…`)
|
|
93
|
+
and a TypeScript SDK (`createXPay({ profile })` → `xpay.discover/use/do/transfer`).
|
|
94
|
+
The tool names mirror the CLI so the mental model is identical across all three.
|
|
95
|
+
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;AAgCH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA8HpD"}
|
package/dist/cli/mcp-server.js
CHANGED
|
@@ -1,32 +1,37 @@
|
|
|
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 } from "../index.js";
|
|
30
35
|
import { profileExists } from "../profile/storage.js";
|
|
31
36
|
import { rawSolanaSigner } from "../signers/raw-solana.js";
|
|
32
37
|
import { rawEvmSigner } from "../signers/raw-evm.js";
|
|
@@ -148,7 +153,8 @@ export async function startMcpServer() {
|
|
|
148
153
|
/**
|
|
149
154
|
* Build the XPay client the MCP host will use. Preference order:
|
|
150
155
|
* 1. A loaded profile (the common case after `xpay init`).
|
|
151
|
-
* 2. Raw signer envs (for
|
|
156
|
+
* 2. Raw signer envs (for a wallet the operator already holds).
|
|
157
|
+
* 3. Auto-provision a fresh wallet (zero-config onboarding) and persist it.
|
|
152
158
|
*/
|
|
153
159
|
async function buildXPay() {
|
|
154
160
|
const profileName = process.env.XPAY_PROFILE ?? getActiveProfile();
|
|
@@ -172,8 +178,14 @@ async function buildXPay() {
|
|
|
172
178
|
signers[evmNet] = rawEvmSigner({ privateKey: process.env.XPAY_EVM_KEY, network: evmNet });
|
|
173
179
|
}
|
|
174
180
|
if (Object.keys(signers).length === 0) {
|
|
181
|
+
// Nothing configured — give the agent its own wallet (zero-config
|
|
182
|
+
// onboarding). Opt out with XPAY_NO_AUTO_WALLET for the strict behaviour.
|
|
183
|
+
if (!process.env.XPAY_NO_AUTO_WALLET) {
|
|
184
|
+
return autoProvisionXPay(profileName);
|
|
185
|
+
}
|
|
175
186
|
throw new Error(`xpay-mcp: no profile "${profileName}" found and no raw signer env set. ` +
|
|
176
|
-
`Run \`xpay init
|
|
187
|
+
`Run \`xpay init\`, set XPAY_SOLANA_SECRET / XPAY_EVM_KEY, or unset ` +
|
|
188
|
+
`XPAY_NO_AUTO_WALLET to auto-generate a wallet.`);
|
|
177
189
|
}
|
|
178
190
|
return createXPay({
|
|
179
191
|
networks,
|
|
@@ -185,6 +197,30 @@ async function buildXPay() {
|
|
|
185
197
|
},
|
|
186
198
|
});
|
|
187
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Zero-config onboarding: no profile and no key configured, so generate a
|
|
202
|
+
* fresh wallet for the agent, persist it under ~/.xpay (or XPAY_HOME), and
|
|
203
|
+
* surface the address. Encrypted when XPAY_PASSPHRASE is set, otherwise
|
|
204
|
+
* plaintext (file-permission protected) — fine for a low-balance agent wallet.
|
|
205
|
+
*
|
|
206
|
+
* Runs once: the next boot finds the profile and loads it via the normal path,
|
|
207
|
+
* so the agent keeps the same address across restarts. All notices go to
|
|
208
|
+
* stderr — stdout is the MCP JSON-RPC channel and must stay clean.
|
|
209
|
+
*/
|
|
210
|
+
async function autoProvisionXPay(profileName) {
|
|
211
|
+
const passphrase = process.env.XPAY_PASSPHRASE || undefined;
|
|
212
|
+
const created = await initProfile({ name: profileName, passphrase });
|
|
213
|
+
process.stderr.write(`\n[xpay-mcp] No wallet found — generated one for this agent.\n` +
|
|
214
|
+
`[xpay-mcp] profile: ${profileName}\n` +
|
|
215
|
+
`[xpay-mcp] Solana: ${created.addresses.solana}\n` +
|
|
216
|
+
`[xpay-mcp] Base/EVM: ${created.addresses.evm}\n` +
|
|
217
|
+
`[xpay-mcp] stored: ${created.path}` +
|
|
218
|
+
(passphrase ? " (encrypted)\n" : " (UNENCRYPTED — set XPAY_PASSPHRASE to encrypt at rest)\n") +
|
|
219
|
+
`[xpay-mcp] Fund the Solana address with USDC so the agent can pay.\n` +
|
|
220
|
+
`[xpay-mcp] The recovery phrase lives in ${created.path} — back it up.\n\n`);
|
|
221
|
+
const profile = await loadProfile({ name: profileName, passphrase });
|
|
222
|
+
return createXPay({ profile, guardrail: guardrailWithApproval(profile, { interactive: false }) });
|
|
223
|
+
}
|
|
188
224
|
/**
|
|
189
225
|
* Resolve the Sana API key. Preference:
|
|
190
226
|
* 1. Profile config.json → sana.apiKey (set via `xpay sana link`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/cli/mcp-server.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.27",
|
|
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
|
],
|