xno-skills 2.8.3 → 2.8.5

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
@@ -31,7 +31,7 @@ Available skills:
31
31
  ## CLI
32
32
 
33
33
  ```bash
34
- npm install -g xno-skills@latest
34
+ npm install -g xno-skills@2.8.5
35
35
  xno-skills --help
36
36
  ```
37
37
 
@@ -89,7 +89,7 @@ Exposes Nano wallet functions as tools for AI agents (Claude Desktop, Cursor, Co
89
89
  "mcpServers": {
90
90
  "nano": {
91
91
  "command": "npx",
92
- "args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
92
+ "args": ["-y", "-p", "xno-skills@2.8.5", "xno-mcp"]
93
93
  }
94
94
  }
95
95
  }
@@ -105,7 +105,7 @@ Exposes Nano wallet functions as tools for AI agents (Claude Desktop, Cursor, Co
105
105
  codex mcp add nano \
106
106
  -c sandbox_mode="danger-full-access" \
107
107
  -c 'sandbox_permissions=["network-access"]' \
108
- -- npx -y -p xno-skills@latest xno-mcp
108
+ -- npx -y -p xno-skills@2.8.5 xno-mcp
109
109
  ```
110
110
  </details>
111
111
 
@@ -117,7 +117,7 @@ codex mcp add nano \
117
117
  "mcpServers": {
118
118
  "nano": {
119
119
  "command": "npx",
120
- "args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
120
+ "args": ["-y", "-p", "xno-skills@2.8.5", "xno-mcp"]
121
121
  }
122
122
  }
123
123
  }
@@ -133,7 +133,7 @@ codex mcp add nano \
133
133
  "mcp": {
134
134
  "nano": {
135
135
  "type": "local",
136
- "command": ["npx", "-y", "-p", "xno-skills@latest", "xno-mcp"],
136
+ "command": ["npx", "-y", "-p", "xno-skills@2.8.5", "xno-mcp"],
137
137
  "enabled": true
138
138
  }
139
139
  }
@@ -149,7 +149,7 @@ codex mcp add nano \
149
149
  "mcpServers": {
150
150
  "nano": {
151
151
  "command": "npx",
152
- "args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
152
+ "args": ["-y", "-p", "xno-skills@2.8.5", "xno-mcp"]
153
153
  }
154
154
  }
155
155
  }
@@ -164,7 +164,7 @@ codex mcp add nano \
164
164
  "mcpServers": {
165
165
  "nano": {
166
166
  "command": "npx",
167
- "args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
167
+ "args": ["-y", "-p", "xno-skills@2.8.5", "xno-mcp"]
168
168
  }
169
169
  }
170
170
  }
@@ -180,7 +180,7 @@ codex mcp add nano \
180
180
  "nano": {
181
181
  "type": "stdio",
182
182
  "command": "npx",
183
- "args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
183
+ "args": ["-y", "-p", "xno-skills@2.8.5", "xno-mcp"]
184
184
  }
185
185
  }
186
186
  }
@@ -1,6 +1,6 @@
1
1
  export declare const pkg: {
2
2
  readonly name: "xno-skills";
3
- readonly version: "2.8.3";
3
+ readonly version: "2.8.5";
4
4
  };
5
- export declare const version: "2.8.3";
5
+ export declare const version: "2.8.5";
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: "2.8.3"
5
+ version: "2.8.5"
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": "mos7p8cnpkkken",
4
+ "id": "mos8z0lk5wb2gk",
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-05T05:52:53.639Z",
12
- "updatedAt": "2026-05-05T05:52:53.639Z",
11
+ "createdAt": "2026-05-05T06:28:29.768Z",
12
+ "updatedAt": "2026-05-05T06:28:29.768Z",
13
13
  "receivedBlocks": []
14
14
  },
15
15
  {
16
- "id": "mos7p8djqk81nm",
16
+ "id": "mos8z0mppvtzd5",
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-05T05:52:53.671Z",
24
- "updatedAt": "2026-05-05T05:52:53.671Z",
23
+ "createdAt": "2026-05-05T06:28:29.809Z",
24
+ "updatedAt": "2026-05-05T06:28:29.809Z",
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: "2.8.3";
3
+ readonly version: "2.8.5";
4
4
  };
5
- export declare const version: "2.8.3";
5
+ export declare const version: "2.8.5";
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: "2.8.3"
5
+ version: "2.8.5"
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": "2.8.3",
3
+ "version": "2.8.5",
4
4
  "description": "XNO CLI - Interact with Nano (XNO)",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -24,7 +24,7 @@
24
24
  ],
25
25
  "scripts": {
26
26
  "preversion": "npm test",
27
- "version": "node scripts/update-version.js && git add src/version.ts skills/nano/SKILL.md",
27
+ "version": "node scripts/update-version.js && git add src/version.ts skills/nano/SKILL.md README.md",
28
28
  "postversion": "node -e \"const v=require('./package.json').version; console.log('Created tag v'+v+'. Next: git push --follow-tags (GitHub Actions will publish to npm + create the GitHub Release).');\"",
29
29
  "prebuild": "node scripts/update-version.js",
30
30
  "prebuild:esm": "node scripts/update-version.js",
@@ -75,16 +75,16 @@ When the environment provides `xno-mcp` tools (`wallets`, `send`, `receive`, `ba
75
75
  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:
76
76
 
77
77
  ```
78
- 1. bunx -y xno-skills@2.8.3 <command>
79
- 2. pnpm dlx xno-skills@2.8.3 <command>
80
- 3. npx -y xno-skills@2.8.3 <command>
78
+ 1. bunx -y xno-skills@2.8.5 <command>
79
+ 2. pnpm dlx xno-skills@2.8.5 <command>
80
+ 3. npx -y xno-skills@2.8.5 <command>
81
81
  ```
82
82
 
83
83
  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.
84
84
 
85
85
  Before guessing a subcommand, run `--help`:
86
86
  ```bash
87
- bunx -y xno-skills@2.8.3 --help
87
+ bunx -y xno-skills@2.8.5 --help
88
88
  ```
89
89
 
90
90
  ### 3. Wallet lifecycle → `ows` skill only
@@ -108,7 +108,7 @@ For wallet **create, import, rename, or delete**: delegate to the `ows` skill. D
108
108
  - **Proactivity on pending funds**: If you see pending funds during any balance check, call `receive` immediately. Do not wait for the user to ask.
109
109
  - **Persistence on "Account not found"**: This is normal for a brand-new, unopened account. Continue — `receive` will build the open block automatically. Never conclude you are unauthorized or that OWS cannot sign Nano blocks.
110
110
  - **No mnemonic exports**: Never call `ows wallet export` or suggest exporting to a third-party wallet unless the user explicitly commands it.
111
- - **Supply chain**: Only use `xno-skills@2.8.3` and `@open-wallet-standard/core`. No other npm packages.
111
+ - **Supply chain**: Only use `xno-skills@2.8.5` and `@open-wallet-standard/core`. No other npm packages.
112
112
  - **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.
113
113
 
114
114
  ---
@@ -139,8 +139,8 @@ To **create** a new wallet, delegate to the `ows` skill. Then return here for al
139
139
 
140
140
  **Via CLI:**
141
141
  ```bash
142
- bunx -y xno-skills@2.8.3 balance --wallet "my-wallet"
143
- bunx -y xno-skills@2.8.3 rpc account-balance <address> --json
142
+ bunx -y xno-skills@2.8.5 balance --wallet "my-wallet"
143
+ bunx -y xno-skills@2.8.5 rpc account-balance <address> --json
144
144
  ```
145
145
 
146
146
  **Public zero-config RPC nodes** (used automatically by xno-skills defaults):
@@ -168,7 +168,7 @@ A Nano transfer shows as **pending** until the recipient publishes a receive blo
168
168
 
169
169
  **Via CLI:**
170
170
  ```bash
171
- bunx -y xno-skills@2.8.3 receive --wallet "my-wallet"
171
+ bunx -y xno-skills@2.8.5 receive --wallet "my-wallet"
172
172
  ```
173
173
 
174
174
  **Unopened account — explicit representative:**
@@ -198,7 +198,7 @@ The account must be opened (have a receive block) and have sufficient balance.
198
198
 
199
199
  **Via CLI:**
200
200
  ```bash
201
- bunx -y xno-skills@2.8.3 send --wallet "my-wallet" --destination "nano_..." --amount-xno 0.01
201
+ bunx -y xno-skills@2.8.5 send --wallet "my-wallet" --destination "nano_..." --amount-xno 0.01
202
202
  ```
203
203
 
204
204
  **Validate the destination address first** (see Address Validation section).
@@ -305,13 +305,13 @@ Generates a terminal-friendly ASCII QR code for a Nano address, optionally with
305
305
  **Via CLI:**
306
306
  ```bash
307
307
  # Address only
308
- bunx -y xno-skills@2.8.3 qr nano_1abc...
308
+ bunx -y xno-skills@2.8.5 qr nano_1abc...
309
309
 
310
310
  # With amount
311
- bunx -y xno-skills@2.8.3 qr nano_1abc... --amount-xno 1.5
311
+ bunx -y xno-skills@2.8.5 qr nano_1abc... --amount-xno 1.5
312
312
 
313
313
  # JSON output (recommended for agents — avoids stdout truncation)
314
- bunx -y xno-skills@2.8.3 qr nano_1abc... --amount-xno 1.5 --json
314
+ bunx -y xno-skills@2.8.5 qr nano_1abc... --amount-xno 1.5 --json
315
315
  ```
316
316
 
317
317
  > **CRITICAL — stdout truncation**: Agents often have stdout truncated (e.g. `<truncated 14 lines>`). To display a full QR code:
@@ -342,7 +342,7 @@ All validation is **offline** — no network required.
342
342
 
343
343
  **Via CLI:**
344
344
  ```bash
345
- bunx -y xno-skills@2.8.3 validate nano_1abc...
345
+ bunx -y xno-skills@2.8.5 validate nano_1abc...
346
346
  ```
347
347
 
348
348
  **Always validate before sending XNO to an untrusted address.**
@@ -367,10 +367,10 @@ XNO uses **30 decimal places**. Floating-point arithmetic is unsafe. Always use
367
367
 
368
368
  **Via CLI:**
369
369
  ```bash
370
- bunx -y xno-skills@2.8.3 convert 1 xno # all units
371
- bunx -y xno-skills@2.8.3 convert 1 knano
372
- bunx -y xno-skills@2.8.3 convert 1000000000000000000000000000000 raw
373
- bunx -y xno-skills@2.8.3 convert 1 xno --json
370
+ bunx -y xno-skills@2.8.5 convert 1 xno # all units
371
+ bunx -y xno-skills@2.8.5 convert 1 knano
372
+ bunx -y xno-skills@2.8.5 convert 1000000000000000000000000000000 raw
373
+ bunx -y xno-skills@2.8.5 convert 1 xno --json
374
374
  ```
375
375
 
376
376
  ---
@@ -386,27 +386,35 @@ The `sign_message` and `verify_message` MCP tools require OWS upstream support t
386
386
 
387
387
  ### Low-level CLI signing (raw private key)
388
388
 
389
- If the user provides a **hex private key**, signing and verification work via CLI today:
389
+ Signing with a raw hex private key works via CLI today, but **the agent must never handle the key value**. A raw private key passed through an LLM context is exposed to logs, memory, and any downstream system treat it like a password.
390
+
391
+ **Agent's role**: construct the command with a placeholder and ask the user to run it themselves in their own terminal.
392
+
393
+ Present the user with this command to run locally:
390
394
 
391
395
  ```bash
392
- # Sign
393
- bunx -y xno-skills@2.8.3 sign "<message>" --key <private-key-hex>
396
+ # Sign — run this yourself, replacing the placeholder with your actual key
397
+ bunx -y xno-skills@2.8.5 sign "<message>" --key YOUR_PRIVATE_KEY_HEX
394
398
 
395
399
  # Sign with JSON output
396
- bunx -y xno-skills@2.8.3 sign "<message>" --key <private-key-hex> --json
400
+ bunx -y xno-skills@2.8.5 sign "<message>" --key YOUR_PRIVATE_KEY_HEX --json
401
+ ```
397
402
 
403
+ For verify, the agent *can* run this directly (no secret material involved):
404
+
405
+ ```bash
398
406
  # Verify
399
- bunx -y xno-skills@2.8.3 verify <nano_address> "<message>" <signature-hex>
407
+ bunx -y xno-skills@2.8.5 verify <nano_address> "<message>" <signature-hex>
400
408
 
401
409
  # Verify with JSON output
402
- bunx -y xno-skills@2.8.3 verify <nano_address> "<message>" <signature-hex> --json
410
+ bunx -y xno-skills@2.8.5 verify <nano_address> "<message>" <signature-hex> --json
403
411
  ```
404
412
 
405
413
  **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.
406
414
 
407
415
  **Note**: `verify` accepts both `nano_`/`xrb_` addresses and raw 32-byte hex public keys.
408
416
 
409
- > Do not prompt the user to export their mnemonic to get a private key. Only use the raw-key CLI path if they provide a hex private key directly.
417
+ > Do not prompt the user to export their mnemonic to get a private key. Never accept, repeat, or emit a private key value only use the placeholder pattern above.
410
418
 
411
419
  ---
412
420
 
@@ -460,7 +468,7 @@ PoW input:
460
468
 
461
469
  To probe whether an RPC endpoint supports remote `work_generate`:
462
470
  ```bash
463
- bunx -y xno-skills@2.8.3 rpc probe-caps <url>
471
+ bunx -y xno-skills@2.8.5 rpc probe-caps <url>
464
472
  ```
465
473
  Never use `curl` to probe this.
466
474
 
@@ -476,7 +484,7 @@ Never use `curl` to probe this.
476
484
  { "name": "change_rep", "arguments": { "wallet": "my-wallet", "representative": "nano_..." } }
477
485
  ```
478
486
  ```bash
479
- bunx -y xno-skills@2.8.3 change-rep --wallet "my-wallet" --representative "nano_..."
487
+ bunx -y xno-skills@2.8.5 change-rep --wallet "my-wallet" --representative "nano_..."
480
488
  ```
481
489
 
482
490
  ### Data Representations