xno-skills 3.3.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,7 +43,7 @@ xno-skills --help
43
43
 
44
44
  To pin to the current stable release instead:
45
45
  ```bash
46
- npm install -g xno-skills@3.3.0 && npx -y skills add CasualSecurityInc/xno-skills -g -y --all
46
+ npm install -g xno-skills@3.3.1 && npx -y skills add CasualSecurityInc/xno-skills -g -y --all
47
47
  ```
48
48
 
49
49
 
@@ -102,7 +102,7 @@ Exposes Nano wallet functions as tools for AI agents (Claude Desktop, Cursor, Co
102
102
  "mcpServers": {
103
103
  "nano": {
104
104
  "command": "npx",
105
- "args": ["-y", "-p", "xno-skills@3.3.0", "xno-mcp"]
105
+ "args": ["-y", "-p", "xno-skills@3.3.1", "xno-mcp"]
106
106
  }
107
107
  }
108
108
  }
@@ -118,7 +118,7 @@ Exposes Nano wallet functions as tools for AI agents (Claude Desktop, Cursor, Co
118
118
  codex mcp add nano \
119
119
  -c sandbox_mode="danger-full-access" \
120
120
  -c 'sandbox_permissions=["network-access"]' \
121
- -- npx -y -p xno-skills@3.3.0 xno-mcp
121
+ -- npx -y -p xno-skills@3.3.1 xno-mcp
122
122
  ```
123
123
  </details>
124
124
 
@@ -130,7 +130,7 @@ codex mcp add nano \
130
130
  "mcpServers": {
131
131
  "nano": {
132
132
  "command": "npx",
133
- "args": ["-y", "-p", "xno-skills@3.3.0", "xno-mcp"]
133
+ "args": ["-y", "-p", "xno-skills@3.3.1", "xno-mcp"]
134
134
  }
135
135
  }
136
136
  }
@@ -146,7 +146,7 @@ codex mcp add nano \
146
146
  "mcp": {
147
147
  "nano": {
148
148
  "type": "local",
149
- "command": ["npx", "-y", "-p", "xno-skills@3.3.0", "xno-mcp"],
149
+ "command": ["npx", "-y", "-p", "xno-skills@3.3.1", "xno-mcp"],
150
150
  "enabled": true
151
151
  }
152
152
  }
@@ -162,7 +162,7 @@ codex mcp add nano \
162
162
  "mcpServers": {
163
163
  "nano": {
164
164
  "command": "npx",
165
- "args": ["-y", "-p", "xno-skills@3.3.0", "xno-mcp"]
165
+ "args": ["-y", "-p", "xno-skills@3.3.1", "xno-mcp"]
166
166
  }
167
167
  }
168
168
  }
@@ -177,7 +177,7 @@ codex mcp add nano \
177
177
  "mcpServers": {
178
178
  "nano": {
179
179
  "command": "npx",
180
- "args": ["-y", "-p", "xno-skills@3.3.0", "xno-mcp"]
180
+ "args": ["-y", "-p", "xno-skills@3.3.1", "xno-mcp"]
181
181
  }
182
182
  }
183
183
  }
@@ -193,7 +193,7 @@ codex mcp add nano \
193
193
  "nano": {
194
194
  "type": "stdio",
195
195
  "command": "npx",
196
- "args": ["-y", "-p", "xno-skills@3.3.0", "xno-mcp"]
196
+ "args": ["-y", "-p", "xno-skills@3.3.1", "xno-mcp"]
197
197
  }
198
198
  }
199
199
  }
@@ -1,6 +1,6 @@
1
1
  export declare const pkg: {
2
2
  readonly name: "xno-skills";
3
- readonly version: "3.3.0";
3
+ readonly version: "3.3.1";
4
4
  };
5
- export declare const version: "3.3.0";
5
+ export declare const version: "3.3.1";
6
6
  //# sourceMappingURL=version.d.ts.map
@@ -2,7 +2,7 @@
2
2
  // Keep this in sync by running "npm run build" (prebuild hook).
3
3
  export const pkg = {
4
4
  name: "xno-skills",
5
- version: "3.3.0"
5
+ version: "3.3.1"
6
6
  };
7
7
  export const version = pkg.version;
8
8
  //# sourceMappingURL=version.js.map
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "requests": [
3
3
  {
4
- "id": "mpi7puylleds59",
4
+ "id": "mpig25o8l2eodo",
5
5
  "owsWalletId": "A",
6
6
  "accountIndex": 0,
7
7
  "address": "nano_3i1aq1cchnmbn9x5rsbap8b15akfh7wj7pwskuzi7ahz8oq6cobd99d4r3b7",
8
8
  "amountRaw": "10000000000000000000000000000",
9
9
  "reason": "explicit wallet test",
10
10
  "status": "pending",
11
- "createdAt": "2026-05-23T10:35:23.517Z",
12
- "updatedAt": "2026-05-23T10:35:23.517Z",
11
+ "createdAt": "2026-05-23T14:28:54.200Z",
12
+ "updatedAt": "2026-05-23T14:28:54.200Z",
13
13
  "receivedBlocks": []
14
14
  },
15
15
  {
16
- "id": "mpi7puzqdj7927",
16
+ "id": "mpig25p5o01ht9",
17
17
  "owsWalletId": "A",
18
18
  "accountIndex": 0,
19
19
  "address": "nano_3i1aq1cchnmbn9x5rsbap8b15akfh7wj7pwskuzi7ahz8oq6cobd99d4r3b7",
20
20
  "amountRaw": "500000000000000000000000000000",
21
21
  "reason": "status check test",
22
22
  "status": "pending",
23
- "createdAt": "2026-05-23T10:35:23.558Z",
24
- "updatedAt": "2026-05-23T10:35:23.558Z",
23
+ "createdAt": "2026-05-23T14:28:54.233Z",
24
+ "updatedAt": "2026-05-23T14:28:54.233Z",
25
25
  "receivedBlocks": []
26
26
  }
27
27
  ]
@@ -1,6 +1,6 @@
1
1
  export declare const pkg: {
2
2
  readonly name: "xno-skills";
3
- readonly version: "3.3.0";
3
+ readonly version: "3.3.1";
4
4
  };
5
- export declare const version: "3.3.0";
5
+ export declare const version: "3.3.1";
6
6
  //# sourceMappingURL=version.d.ts.map
@@ -2,7 +2,7 @@
2
2
  // Keep this in sync by running "npm run build" (prebuild hook).
3
3
  export const pkg = {
4
4
  name: "xno-skills",
5
- version: "3.3.0"
5
+ version: "3.3.1"
6
6
  };
7
7
  export const version = pkg.version;
8
8
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xno-skills",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "The Nano (XNO) toolkit for AI agents and developers. Send, receive, check balances, and manage payment requests without ever handling private keys.",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -77,6 +77,7 @@
77
77
  "@open-wallet-standard/core": "^1.3.2",
78
78
  "@openrai/nano-core": "^3.0.1",
79
79
  "commander": "^14.0.3",
80
+ "nano-rspow-node": "^0.5.13",
80
81
  "qrcode-svg": "^1.1.0",
81
82
  "qrcode-terminal": "^0.12.0",
82
83
  "zod": "^4.3.6"
@@ -73,7 +73,7 @@ When the environment provides `xno-mcp` tools (`wallet_list`, `wallet_send`, `wa
73
73
 
74
74
  If the client supports MCP, set it up as a "stdio" type MCP server:
75
75
 
76
- npx -y -p xno-skills@3.3.0 -- mcp
76
+ npx -y -p xno-skills@3.3.1 -- mcp
77
77
 
78
78
  MCP is the primary execution path because tools, schemas, and results are structured for the client. Use the included CLI script (`xno-skills`) only as a fallback when MCP is unavailable or the client cannot attach MCP servers. MCP and the CLI target EXACTLY the same underlying code paths — two access paths, not two different products.
79
79
 
@@ -82,16 +82,16 @@ MCP is the primary execution path because tools, schemas, and results are struct
82
82
  If `xno-mcp` tools are not available, or the user explicitly asks for CLI usage, fall back to the `xno-skills` CLI in this priority order:
83
83
 
84
84
  ```
85
- 1. bunx -y xno-skills@3.3.0 <command>
86
- 2. pnpm dlx xno-skills@3.3.0 <command>
87
- 3. npx -y xno-skills@3.3.0 <command>
85
+ 1. bunx -y xno-skills@3.3.1 <command>
86
+ 2. pnpm dlx xno-skills@3.3.1 <command>
87
+ 3. npx -y xno-skills@3.3.1 <command>
88
88
  ```
89
89
 
90
90
  Do **not** assume `xno-skills` is installed globally. Always use one of the above forms with `@latest` to get critical bugfixes and to prevent interactive prompts from freezing.
91
91
 
92
92
  Before guessing a subcommand, run `--help`:
93
93
  ```bash
94
- bunx -y xno-skills@3.3.0 --help
94
+ bunx -y xno-skills@3.3.1 --help
95
95
  ```
96
96
 
97
97
  ### 3. Wallet lifecycle → `ows` skill only
@@ -115,7 +115,7 @@ For wallet **create, import, rename, or delete**: delegate to the `ows` skill. D
115
115
  - **Proactivity on pending funds**: If you see pending funds during any balance check, call `wallet_receive` immediately. Do not wait for the user to ask.
116
116
  - **Persistence on "Account not found"**: This is normal for a brand-new, unopened account. Continue — `wallet_receive` will automatically build an open block (sets `previous` to zeros), sign it via OWS, generate PoW, and broadcast. Never conclude you are unauthorized or that OWS cannot sign Nano blocks.
117
117
  - **No mnemonic exports**: Never call `ows wallet export` or suggest exporting to a third-party wallet unless the user explicitly commands it.
118
- - **Supply chain**: Only use `xno-skills@3.3.0` and `@open-wallet-standard/core`. No other npm packages.
118
+ - **Supply chain**: Only use `xno-skills@3.3.1` and `@open-wallet-standard/core`. No other npm packages.
119
119
  - **Stop-loss**: If you have made 5 tool calls without completing the operation, stop and report what you tried, what failed, and ask for guidance. Hard limits: max 3 retries of the same failing tool; max 2 `config_set` RPC endpoint switches.
120
120
 
121
121
  ---
@@ -146,8 +146,8 @@ To **create** a new wallet, delegate to the `ows` skill. Then return here for al
146
146
 
147
147
  **Via CLI (required flags only):**
148
148
  ```bash
149
- bunx -y xno-skills@3.3.0 balance --wallet "my-wallet"
150
- bunx -y xno-skills@3.3.0 rpc account-balance <address>
149
+ bunx -y xno-skills@3.3.1 balance --wallet "my-wallet"
150
+ bunx -y xno-skills@3.3.1 rpc account-balance <address>
151
151
  ```
152
152
 
153
153
  Full options: [balance](references/balance.md), [rpc_account-balance](references/rpc_account-balance.md)
@@ -177,7 +177,7 @@ A Nano transfer shows as **pending** until the recipient publishes a receive blo
177
177
 
178
178
  **Via CLI (required flags only):**
179
179
  ```bash
180
- bunx -y xno-skills@3.3.0 receive --wallet "my-wallet"
180
+ bunx -y xno-skills@3.3.1 receive --wallet "my-wallet"
181
181
  ```
182
182
 
183
183
  Full options: [receive](references/receive.md)
@@ -209,7 +209,7 @@ The account must be opened (have a receive block) and have sufficient balance.
209
209
 
210
210
  **Via CLI (required flags only):**
211
211
  ```bash
212
- bunx -y xno-skills@3.3.0 send --wallet "my-wallet" --to "nano_..." --amount-xno 0.01
212
+ bunx -y xno-skills@3.3.1 send --wallet "my-wallet" --to "nano_..." --amount-xno 0.01
213
213
  ```
214
214
 
215
215
  Full options: [send](references/send.md)
@@ -321,7 +321,7 @@ Generates a terminal-friendly ASCII QR code for a Nano address, optionally with
321
321
 
322
322
  **Via CLI (required args only):**
323
323
  ```bash
324
- bunx -y xno-skills@3.3.0 qr nano_1abc...
324
+ bunx -y xno-skills@3.3.1 qr nano_1abc...
325
325
  ```
326
326
 
327
327
  Full options: [qr](references/qr.md)
@@ -348,7 +348,7 @@ All validation is **offline** — no network required.
348
348
 
349
349
  **Via CLI:**
350
350
  ```bash
351
- bunx -y xno-skills@3.3.0 validate nano_1abc...
351
+ bunx -y xno-skills@3.3.1 validate nano_1abc...
352
352
  ```
353
353
 
354
354
  Full options: [validate](references/validate.md)
@@ -375,10 +375,10 @@ XNO uses **30 decimal places**. Floating-point arithmetic is unsafe. Always use
375
375
 
376
376
  **Via CLI:**
377
377
  ```bash
378
- bunx -y xno-skills@3.3.0 convert 1 xno # all units
379
- bunx -y xno-skills@3.3.0 convert 1 knano
380
- bunx -y xno-skills@3.3.0 convert 1000000000000000000000000000000 raw
381
- bunx -y xno-skills@3.3.0 convert 1 xno --json
378
+ bunx -y xno-skills@3.3.1 convert 1 xno # all units
379
+ bunx -y xno-skills@3.3.1 convert 1 knano
380
+ bunx -y xno-skills@3.3.1 convert 1000000000000000000000000000000 raw
381
+ bunx -y xno-skills@3.3.1 convert 1 xno --json
382
382
  ```
383
383
 
384
384
  Full options: [convert](references/convert.md)
@@ -404,20 +404,20 @@ Present the user with this command to run locally:
404
404
 
405
405
  ```bash
406
406
  # Sign — run this yourself, replacing the placeholder with your actual key
407
- bunx -y xno-skills@3.3.0 sign "<message>" --key YOUR_PRIVATE_KEY_HEX
407
+ bunx -y xno-skills@3.3.1 sign "<message>" --key YOUR_PRIVATE_KEY_HEX
408
408
 
409
409
  # Sign with JSON output
410
- bunx -y xno-skills@3.3.0 sign "<message>" --key YOUR_PRIVATE_KEY_HEX --json
410
+ bunx -y xno-skills@3.3.1 sign "<message>" --key YOUR_PRIVATE_KEY_HEX --json
411
411
  ```
412
412
 
413
413
  For verify, the agent *can* run this directly (no secret material involved):
414
414
 
415
415
  ```bash
416
416
  # Verify
417
- bunx -y xno-skills@3.3.0 verify <nano_address> "<message>" <signature-hex>
417
+ bunx -y xno-skills@3.3.1 verify <nano_address> "<message>" <signature-hex>
418
418
 
419
419
  # Verify with JSON output
420
- bunx -y xno-skills@3.3.0 verify <nano_address> "<message>" <signature-hex> --json
420
+ bunx -y xno-skills@3.3.1 verify <nano_address> "<message>" <signature-hex> --json
421
421
  ```
422
422
 
423
423
  **NOMS standard (ORIS-001)**: Signatures are computed over a binary payload with a magic header, ensuring a valid signature cannot be misinterpreted as a Nano transaction block.
@@ -492,7 +492,7 @@ PoW input:
492
492
  { "name": "wallet_change_rep", "arguments": { "wallet": "my-wallet", "representative": "nano_..." } }
493
493
  ```
494
494
  ```bash
495
- bunx -y xno-skills@3.3.0 change-rep --wallet "my-wallet" --representative "nano_..."
495
+ bunx -y xno-skills@3.3.1 change-rep --wallet "my-wallet" --representative "nano_..."
496
496
  ```
497
497
 
498
498
  Full options: [change-rep](references/change-rep.md)
@@ -598,6 +598,11 @@ xno-skills about
598
598
  xno-skills about --json
599
599
  ```
600
600
 
601
+ ### MCP Server Crashes & "Not connected" Errors
602
+
603
+ - **OWS is an in-process library, NOT a daemon**: There is no background "OWS daemon" or wallet service running. `@open-wallet-standard/core` is a library loaded entirely in-process by the MCP server and CLI.
604
+ - **"Not connected" from MCP client**: If an MCP client/agent receives a "Not connected" error on `wallet_balance` or any other tool, it typically means the underlying `xno-mcp` server process has crashed (usually due to a Rust native addon panic during PoW or backend initialization) or was terminated. It does **not** mean a background daemon is down.
605
+
601
606
  ### PoW failures (`POW_FAILED` / timeout)
602
607
 
603
608
  **PoW is done locally by default.** xno-skills uses WASM-based Proof of Work that runs in-process — no external work peer is required.