xno-skills 1.5.2 → 1.5.4

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.
@@ -1,6 +1,6 @@
1
1
  export declare const pkg: {
2
2
  readonly name: "xno-skills";
3
- readonly version: "1.5.2";
3
+ readonly version: "1.5.4";
4
4
  };
5
- export declare const version: "1.5.2";
5
+ export declare const version: "1.5.4";
6
6
  //# sourceMappingURL=version.d.ts.map
@@ -5,7 +5,7 @@ exports.version = exports.pkg = void 0;
5
5
  // Keep this in sync by running "npm run build" (prebuild hook).
6
6
  exports.pkg = {
7
7
  name: "xno-skills",
8
- version: "1.5.2"
8
+ version: "1.5.4"
9
9
  };
10
10
  exports.version = exports.pkg.version;
11
11
  //# sourceMappingURL=version.js.map
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "requests": [
3
3
  {
4
- "id": "mogj8e2n0bi3yc",
4
+ "id": "mogkau2r40zuif",
5
5
  "owsWalletId": "A",
6
6
  "accountIndex": 0,
7
7
  "address": "nano_1link1111111111111111111111111111111111111111111111111111111",
8
8
  "amountRaw": "10000000000000000000000000000",
9
9
  "reason": "explicit wallet test",
10
10
  "status": "pending",
11
- "createdAt": "2026-04-27T01:42:29.183Z",
12
- "updatedAt": "2026-04-27T01:42:29.183Z",
11
+ "createdAt": "2026-04-27T02:12:22.851Z",
12
+ "updatedAt": "2026-04-27T02:12:22.851Z",
13
13
  "receivedBlocks": []
14
14
  },
15
15
  {
16
- "id": "mogj8e3mw1dwqc",
16
+ "id": "mogkau3kay40wu",
17
17
  "owsWalletId": "A",
18
18
  "accountIndex": 0,
19
19
  "address": "nano_1link1111111111111111111111111111111111111111111111111111111",
20
20
  "amountRaw": "500000000000000000000000000000",
21
21
  "reason": "status check test",
22
22
  "status": "pending",
23
- "createdAt": "2026-04-27T01:42:29.218Z",
24
- "updatedAt": "2026-04-27T01:42:29.218Z",
23
+ "createdAt": "2026-04-27T02:12:22.880Z",
24
+ "updatedAt": "2026-04-27T02:12:22.880Z",
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: "1.5.2";
3
+ readonly version: "1.5.4";
4
4
  };
5
- export declare const version: "1.5.2";
5
+ export declare const version: "1.5.4";
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: "1.5.2"
5
+ version: "1.5.4"
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": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "description": "XNO CLI - Interact with the Nano cryptocurrency",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -21,6 +21,7 @@ complements:
21
21
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
22
22
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
23
23
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
24
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
24
25
 
25
26
  You are the definitive authority on Nano’s block-lattice architecture. **Your knowledge is taken EXCLUSIVELY from the official Nano documentation at https://docs.nano.org/ and the living whitepaper it references (as of April 2026).** This URL is the one true authoritative source for all technical details, protocol rules, block formats, ORV mechanics, and operational realities. Never reference or rely on any other documentation, blog posts, forums, or third-party sources for protocol mechanics.
26
27
 
@@ -119,13 +120,20 @@ This is the single most important protocol concept. Apply it automatically.
119
120
  - `link` = hash of Alice’s Send block
120
121
  - Bob signs and computes PoW.
121
122
  - Only after Bob’s Receive block is confirmed can he spend the funds.
122
-
123
123
  **Critical realities**:
124
124
  - The Send block is final for Alice, but the funds are **not spendable by Bob** until his Receive exists.
125
125
  - Bob can be completely offline when Alice sends — the pending sits forever until he claims it.
126
126
  - There is no “automatic receive.” The agent **must** explicitly publish the Receive block.
127
127
 
128
- ## Exact Block Creation Sequence
128
+ **Mandate for Agents**:
129
+ - A transaction task is **INCOMPLETE** if funds are merely pending.
130
+ - You MUST proactively settle all pending funds by publishing a receive block (via `wallet_receive`) as soon as the send is confirmed.
131
+ - Never wait for the user to ask you to "pocket" or "receive" funds if they have already sent them. Do it as the "next right thing" in your workflow.
132
+ - **Persistence**: If `wallet_receive` fails with "Account not found", it means you are opening the account. Simply continue; the tool will handle it. **Never conclude that OWS cannot sign Nano blocks.** OWS is the primary signer for this project.
133
+ - **The "Open" happens automatically**: Whether using the MCP tool `wallet_receive` or the CLI command `ows sign send-tx`, the transition from "unopened" to "opened" is handled seamlessly. The `send-tx` action in OWS is specifically designed to publish these blocks to the network.
134
+
135
+ ## Universal State Blocks (All Blocks Since 2018)
136
+ ...
129
137
  1. Fetch current frontier (`previous`).
130
138
  2. Build block data (account, previous, representative, balance, link).
131
139
  3. Serialize the data (excluding signature and work).
@@ -36,6 +36,7 @@ triggers:
36
36
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
37
37
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
38
38
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
39
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
39
40
 
40
41
  When a user asks "did you receive it?" / "check the balance", you need an on-chain data source. This skill queries a **Nano node RPC** (user-provided) for `balance` and `pending` (both in raw).
41
42
 
@@ -43,10 +44,13 @@ When a user asks "did you receive it?" / "check the balance", you need an on-cha
43
44
 
44
45
  Nano can show funds as **pending** until the receiving wallet publishes the receive/open block. Many wallet apps do this automatically; raw keys alone do not.
45
46
 
46
- **If you see pending funds, you must call `wallet_receive` to pocket them.**
47
+ **Mandate**:
48
+ - If you see **pending** funds during a balance check, you MUST proactively call `wallet_receive` to claim them.
49
+ - Do not wait for the user to ask you to receive.
50
+ - A transaction is not "received" until the `pending` balance moves to the `confirmed` balance.
47
51
 
48
52
  ## Well-known Public RPC Nodes
49
-
53
+ ...
50
54
  If the user doesn't have an RPC URL, suggest these public nodes:
51
55
  - `https://rpc.nano.org` (Nano Foundation)
52
56
  - `https://app.natrium.io/api/rpc` (Natrium)
@@ -31,6 +31,7 @@ triggers:
31
31
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
32
32
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
33
33
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
34
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
34
35
 
35
36
  Convert between different XNO cryptocurrency units with BigInt precision. XNO uses 30 decimal places, making floating-point arithmetic unsafe. Always use this skill for accurate conversions.
36
37
 
@@ -31,6 +31,7 @@ triggers:
31
31
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
32
32
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
33
33
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
34
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
34
35
 
35
36
  Nano wallet management is delegated to the **Open Wallet Standard (OWS)**. This provides a unified, policy-gated vault for all agent keys.
36
37
 
@@ -34,6 +34,7 @@ triggers:
34
34
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
35
35
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
36
36
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
37
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
37
38
 
38
39
  Generates a terminal-friendly ASCII QR code for a Nano address, optionally including an amount.
39
40
 
@@ -62,6 +62,7 @@ triggers:
62
62
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
63
63
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
64
64
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
65
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
65
66
 
66
67
  > **CRITICAL: CALL `wallet_list` FIRST.** Before any other wallet operation, you MUST call `wallet_list` to identify available OWS wallets. Never assume a wallet name or existence without discovery.
67
68
 
@@ -71,9 +72,24 @@ The `xno-mcp` MCP server is a private wallet custody service. You **CAN** send a
71
72
 
72
73
  - Access **named OWS wallets** (e.g. `"my-agent"`) via `wallet_list`.
73
74
  - **Key Security**: Secrets stay encrypted in the OWS vault (`~/.ows`). `xno-mcp` requests OWS to sign transactions without ever seeing the private key.
75
+ - **OWS Signing Capability**: Contrary to some hallucinations, **OWS DOES support Nano state block signing.** It is the primary way `xno-mcp` functions. Never assume OWS is limited to EVM chains.
76
+
77
+ ## Agent Chain of Thought (Mental Model)
78
+
79
+ When a user says "I sent funds" or you see "Pending" funds:
80
+ 1. **Goal**: Settle the funds immediately. A transaction is not "done" until it is Received.
81
+ 2. **Action**: Call `wallet_receive`.
82
+ 3. **Internal Objection**: "Wait, the account is unopened/not found."
83
+ 4. **Resolution**: "That is normal for Nano. `wallet_receive` will handle the Open block automatically. Proceed."
84
+ 5. **Internal Objection**: "Does OWS support Nano signing?"
85
+ 6. **Resolution**: "YES. The `xno-mcp` server uses OWS as its secure signing backend for all Nano operations. Proceed."
86
+ 7. **Internal Objection**: "Should I export the mnemonic so the user can use Nault/Natrium?"
87
+ 8. **Resolution**: "NO. NEVER export the mnemonic. That defeats the purpose of an agent wallet. Rely on the MCP tools."
88
+ 9. **Internal Objection**: "But how do I 'open' the account?"
89
+ 10. **Resolution**: "The `wallet_receive` tool, or manually calling `ows sign send-tx` with a generated receive block, handles the 'open' process automatically. It is a seamless part of receiving the first funds."
74
90
 
75
91
  ## Built-in Zero-Config Defaults
76
-
92
+ ...
77
93
  As of v1.1.0, `xno-mcp` automatically uses public RPC nodes and standard representatives for all operations. You do **NOT** need to configure anything to get started.
78
94
 
79
95
  ### Overriding Defaults (Optional)
@@ -106,6 +122,25 @@ Call MCP tool:
106
122
 
107
123
  To create a new wallet, use the `ows` CLI (outside of MCP) or the `nano-create-wallet` skill instructions.
108
124
 
125
+ ## The "Unopened Account" is NOT an Error
126
+
127
+ A "new" or "unopened" account chain (which returns "Account not found" from RPC) is a **very common situation** in a Nano context.
128
+ - It **MUST NOT** be treated as exceptional or a failure.
129
+ - When asked about an account or checking its balance, it is imperative to REPORT that the account is unused/unopened (e.g., "Balance is 0, but there are pending funds. The account is currently unopened.").
130
+ - This state **does not block any actions** if the account belongs to one of your wallets. It only means you must produce the receive block and publish it.
131
+ - **The "Open" happens automatically**: Whether using the MCP tool `wallet_receive` or the CLI command `ows sign send-tx`, the transition from "unopened" to "opened" is handled seamlessly. It is not a hallucination, it is by design.
132
+
133
+ ### Example CLI Workflow for Receiving Funds (Auto-Opens New Accounts)
134
+ If MCP tools fail and you must fall back to the CLI, this is the exact, proven workflow to receive pending funds (which automatically opens a new account) using OWS:
135
+
136
+ ```bash
137
+ # 1. Build the receive block (auto-detects the pending hash, sets previous to 0s for unopened accounts)
138
+ R_TXN=$(bunx -y xno-skills block receive -a <your_nano_address> --url <rpc_url>)
139
+
140
+ # 2. Sign and broadcast using OWS (send-tx automatically publishes the receive/open block to the network)
141
+ bunx -y ows sign send-tx --chain nano --wallet <wallet_name> --tx "$R_TXN"
142
+ ```
143
+
109
144
  ## Troubleshooting: "Account Not Found" (Receiving First Funds)
110
145
  On the Nano network, an account does not exist on the ledger until its first receive block (often called an "open" block) is published.
111
146
  - If you check a balance or attempt to build a block and receive an `"Account not found"` error, **this is normal for a brand new wallet**.
@@ -33,6 +33,7 @@ triggers:
33
33
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
34
34
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
35
35
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
36
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
36
37
 
37
38
  When you need XNO (e.g., for testing, for a task that requires funds, or because the operator offered), follow this workflow.
38
39
 
@@ -29,6 +29,7 @@ triggers:
29
29
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
30
30
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
31
31
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
32
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
32
33
 
33
34
  When the operator asks you to return funds (e.g., "send it back", "return the XNO", "refund"), follow this workflow carefully.
34
35
 
@@ -26,6 +26,7 @@ triggers:
26
26
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
27
27
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
28
28
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
29
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
29
30
 
30
31
  Sign an off-chain message (plain text) using a custodial wallet managed by `xno-mcp`. This follows the NOMS (Nano Off-chain Message Signature) / ORIS-001 standard.
31
32
 
@@ -28,6 +28,7 @@ triggers:
28
28
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
29
29
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
30
30
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
31
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
31
32
 
32
33
  Validates XNO (Nano) cryptocurrency addresses offline.
33
34
 
@@ -26,6 +26,7 @@ triggers:
26
26
  > - **PoW Validation:** Remember that a signed block without valid Proof of Work (PoW) cannot be broadcast. Ensure PoW is generated.
27
27
  > - **Persistence & Proactivity:** If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g., `wallet_receive` to open an account).
28
28
  > - **No Custom Scripts:** NEVER write custom Node.js/TypeScript scripts or use `curl` to interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.
29
+ > - **NEVER EXPORT MNEMONICS**: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use `ows wallet export` or suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.
29
30
 
30
31
  Verify an off-chain message signature (NOMS / ORIS-001 standard) against a Nano address or public key.
31
32