@odatano/nightgate-mcp 0.11.0 → 0.14.0

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
@@ -8,19 +8,21 @@
8
8
  # @odatano/nightgate-mcp
9
9
 
10
10
  [![npm](https://img.shields.io/npm/v/@odatano/nightgate-mcp)](https://www.npmjs.com/package/@odatano/nightgate-mcp)
11
- [![NIGHTGATE](https://img.shields.io/badge/NIGHTGATE-%3E%3D%200.24.0-4b0082)](https://www.npmjs.com/package/@odatano/nightgate)
11
+ [![NIGHTGATE](https://img.shields.io/badge/NIGHTGATE-%3E%3D%200.35.0-4b0082)](https://www.npmjs.com/package/@odatano/nightgate)
12
12
  [![MCP](https://img.shields.io/badge/MCP-server-2ea44f)](https://modelcontextprotocol.io/)
13
13
  [![License](https://img.shields.io/badge/license-Apache--2.0-yellow)](LICENSE)
14
14
 
15
- MCP server for [NIGHTGATE](https://github.com/ODATANO/NIGHTGATE), the Midnight
16
- attestation layer: anchor documents, prove zero-knowledge claims over hidden
17
- fields, manage disclosure grants, verify against live contract state. Agents
18
- write through fee sponsoring: they build and prove locally, a sponsor pays.
15
+ MCP server for [NIGHTGATE](https://github.com/ODATANO/NIGHTGATE) on Midnight.
16
+ Anchors documents, proves zero-knowledge claims over hidden fields, grants and
17
+ verifies disclosure against live contract state; swaps shielded tokens over an
18
+ offer board and mints them on a token factory. Transactions are sponsored, the
19
+ agent holds no NIGHT. The chain is read through the
20
+ [ODATANO API](https://api.odatano.dev): no indexer, no node.
19
21
 
20
22
  ## Quick start
21
23
 
22
- Get an `oda_…` key at [api.preprod.odatano.dev](https://api.preprod.odatano.dev)
23
- (Cardano wallet sign-in, giveaway code, or tADA over x402), then:
24
+ Get an `oda_…` key at [api.odatano.dev](https://api.odatano.dev) (Cardano
25
+ wallet sign-in, a redeem code, or tADA over x402), then:
24
26
 
25
27
  ```json
26
28
  {
@@ -41,114 +43,15 @@ The hosted gateway is the default (Midnight preprod). The same key works for
41
43
 
42
44
  ## Tools
43
45
 
44
- | Tool | What it does |
45
- |---|---|
46
- | `verify_attestation`, `verify_predicate`, `verify_predicate_attestation`, `verify_document` | Check records and ZK claims against live contract state; absent = `verified: false` |
47
- | `prepare_document_proof`, `prepare_membership_set` | Build proof inputs: salted content tree, set root |
48
- | `anchor_document`, `attest_agent_output` | Anchor a document hash or an agent-output envelope (async) |
49
- | `prove_field_predicate`, `prove_field_equality`, `prove_field_membership` | ZK claims over one hidden field (async) |
50
- | `prove_field_predicates_batch` | Up to 8 claims in one transaction (async) |
51
- | `prove_document_integrity`, `prove_document_diff` | ZK claims across two documents (async) |
52
- | `grant_disclosure`, `revoke_disclosure` | On-chain disclosure ACL (async) |
53
- | `build_sponsorable_transaction`, `get_attester_identity` | Build, prove and sign locally; the attester id and shielded keys it builds under |
54
- | `sponsor_unbound_transaction`, `sponsor_finalized_transaction` | Hand locally built bytes to a sponsor that pays and submits (async) |
55
- | `get_swap_wallet`, `read_swap_offer` | Shielded coins of the local wallet; what an offer gives and wants |
56
- | `build_swap_offer`, `take_swap_offer`, `revert_swap_offer` | Build one half of a shielded swap locally, take an offer, release a half |
57
- | `sponsor_swap` | Hand both halves of a swap, or a board offer plus the taker half, to a sponsor that merges, pays and submits (async) |
58
- | `post_swap_offer`, `list_swap_offers`, `retire_swap_offer` | The server's offer board: post a maker half, find open offers, take yours down |
59
- | `get_swap_offer`, `my_swap_offers`, `get_board_status` | Follow one offer, see your own posts and their fills, read the board's counts without credentials |
60
- | `mint_token` | Mint a shielded token with a name of your own on a token factory: built here with the seed as issuer and sponsored, or by a server session (async) |
61
- | `grant_disclosure_to_holders`, `revoke_holder_disclosure`, `claim_disclosure`, `holder_claim_key` | Disclose a document to the holders of a token; read it with the secret behind a registered claim key |
62
- | `derive_token_type` | Token type a minting contract produces |
63
- | `get_job_status` | Poll an async job; batches report `chainSegments`, swaps `swap` |
64
- | `analytics_*` | Midnight aggregates via ODATANO ASTRA, when the host serves it |
65
-
66
- Errors carry the server's HTTP status and `code` (`INVALID_ARGUMENT`, ...).
67
-
68
- ## Fee sponsoring
69
-
70
- 1. `build_sponsorable_transaction` builds and proves the call locally (needs
71
- `@odatano/nightgate-tx` installed next to the server and `NIGHTGATE_SEED_HEX`).
72
- 2. `sponsor_unbound_transaction`; the server's sponsor pool pays.
73
- 3. `get_job_status` with the returned `sessionId`, then `verify_attestation`.
74
-
75
- `failed` / `CHAIN_EXECUTION_FAILED`: landed but not applied; build again, never
76
- resubmit the same bytes.
77
-
78
- ## Shielded swaps
79
-
80
- Two wallets exchange two shielded tokens without a contract. Each side builds
81
- one half, the halves mirror each other, a sponsor merges them and pays the fee.
82
- Needs `@odatano/nightgate-tx` >= 0.8.0 next to the server and `NIGHTGATE_SEED_HEX`.
83
-
84
- 1. `get_swap_wallet`: balance, free coins and `spendable` per token type. The
85
- first call starts the sync of the shielded coins (about 5 minutes from
86
- genesis, seconds with `NIGHTGATE_SWAP_STATE_FILE`).
87
- 2. Maker: `build_swap_offer` with `give` and `want` returns the offer file
88
- (`swapoffer1...`) to publish, or `post_swap_offer` puts it on the server's
89
- board.
90
- 3. Taker: `list_swap_offers` or `read_swap_offer`, then `take_swap_offer` with
91
- `expect`, `submit: true` and, for a board entry, its `offerId`. It builds
92
- the mirror half and submits both; the server's sponsor pool pays.
93
- 4. `get_job_status` with the returned `sessionId`; the result carries `swap`.
94
- The maker follows the offer with `get_swap_offer` or `my_swap_offers`
95
- (`filled` + `filledTxHash`); `list_swap_offers` with `status: all` and
96
- `since` is the board's change feed.
97
-
98
- - One half spends at most `NIGHTGATE_SWAP_MAX_INPUTS` coins, the smallest that
99
- fit. `give.amount` above `spendable` is refused before proving.
100
- - An offer fills once. Its coins stay reserved in the maker's wallet until the
101
- swap lands or `revert_swap_offer` releases them.
102
- - A refused submission keeps the proven half: `sponsor_swap` with its `halfId`.
103
- - The sponsor needs swaps switched on and both token types on its list; an
104
- agent grant needs `sponsorSwap` in `allowedActions`.
105
- - With `NIGHTGATE_PROOF_SERVER_URL` the proof server sees the coins a half
106
- spends: use one you run yourself.
107
- - Tokens to swap: `mint_token` mints on a token factory to this wallet (or
108
- any other wallet, given both of its keys). Without a `sessionId` the seed is
109
- the issuer: the mint is built and proven here (needs
110
- `@odatano/contract-token-factory` next to `@odatano/nightgate-tx`; the
111
- prover keys come from the package's release assets on first use) and the
112
- sponsor pays. A landed mint makes the type known to the sponsor.
113
- - `get_board_status` says whether a sponsor is ready before anything is built.
46
+ [docs/tools.md](docs/tools.md) lists every tool and the two flows: fee
47
+ sponsoring (build and prove here, a sponsor pays) and shielded swaps (two
48
+ halves, one sponsor). Errors carry the server's HTTP status and `code`.
114
49
 
115
50
  ## Configuration
116
51
 
117
- | Variable | Default | Purpose |
118
- |---|---|---|
119
- | `ODATANO_ACCESS_KEY` | unset | `oda_…` key, or an `ngat_…` agent grant on a direct instance |
120
- | `ODATANO_ACCESS_URL` | `https://api.preprod.odatano.dev` | Gateway or a direct NIGHTGATE host |
121
- | `ODATANO_ACCESS_USER` / `_PASSWORD` | unset | Basic auth of a direct instance |
122
- | `NIGHTGATE_SEED_HEX` | unset | Seed (128 hex) for local building and swaps; never a tool argument |
123
- | `NIGHTGATE_NETWORK` | `preprod` | Network of the local builder |
124
- | `NIGHTGATE_PROOF_SERVER_URL` | unset | Prove on a proof server instead of in-process |
125
- | `NIGHTGATE_SWAP_STATE_FILE` | unset | File for the swap wallet's state; it holds the wallet's coins, keep it like a key |
126
- | `NIGHTGATE_SWAP_MAX_INPUTS` | `4` | Most coins one swap half spends; the sponsor's limit applies |
127
- | `NIGHTGATE_TIMEOUT_MS` | `30000` | Per-request timeout |
128
-
129
- Also: `NIGHTGATE_SERVICE_PATH`, `NIGHTGATE_INDEXER_SERVICE_PATH`, `ODATANO_ANALYTICS_URL`, `NIGHTGATE_INDEXER_HTTP_URL`,
130
- `NIGHTGATE_INDEXER_WS_URL`, `NIGHTGATE_NODE_URL`, `NIGHTGATE_ZK_CONFIG_BASE_URL`,
131
- `NIGHTGATE_ZK_CACHE_DIR`.
132
-
133
- ## Own instance
134
-
135
- ```bash
136
- docker run -d -p 4004:4004 -e ENCRYPTION_KEY=$(openssl rand -hex 32) \
137
- -e NIGHTGATE_HTTP_PASSWORD=change-me -v nightgate-data:/data ghcr.io/odatano/nightgate:latest
138
- ```
139
-
140
- Then `ODATANO_ACCESS_URL=http://localhost:4004`, `ODATANO_ACCESS_USER=nightgate`,
141
- `ODATANO_ACCESS_PASSWORD=change-me`. For agents, create a grant with
142
- `createAgentGrant` and pass its `ngat_…` token as `ODATANO_ACCESS_KEY`.
143
-
144
- ## Compatibility
145
-
146
- NIGHTGATE >= 0.24.0; `chainSegments` needs >= 0.28.0, swaps need >= 0.29.0, the offer board and holder disclosure need >= 0.30.0, `get_swap_offer`, `my_swap_offers`, `get_board_status`, the server way of `mint_token` and the `status`/`since` filters need >= 0.30.1; the sponsor tools without a sponsor session id need >= 0.32.0.
147
- `@odatano/nightgate-tx` >= 0.10.2 for local building (local minting also needs `@odatano/contract-token-factory`). Per version: [CHANGELOG](CHANGELOG.md).
148
-
149
- Local building needs ONE `@midnight-ntwrk/ledger-v8` in the install
150
- (`npm ls @midnight-ntwrk/ledger-v8`). `expected instance of ...` means two:
151
- `npm dedupe`.
52
+ [docs/configuration.md](docs/configuration.md): every variable, an own
53
+ NIGHTGATE instance, version requirements. Needs NIGHTGATE >= 0.35.0, which the
54
+ hosted gateway runs.
152
55
 
153
56
  ## Development
154
57
 
package/dist/builder.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { NightgateMcpConfig } from './config.js';
1
+ import { type NightgateMcpConfig } from './config.js';
2
+ import { type TxBytesInfo } from './built.js';
2
3
  /**
3
4
  * Call kinds this tool can prepare; one per attestation-vault helper.
4
5
  *
@@ -36,11 +37,12 @@ export interface BuildInput {
36
37
  merkleProof?: Record<string, unknown>;
37
38
  /** Cross-root witness bundle { schema, openingA, openingB } for the two comparison calls. */
38
39
  docPair?: Record<string, unknown>;
40
+ /** Where to write the built bytes as base64, for a hand-over outside this process. */
41
+ outFile?: string;
39
42
  }
40
- export interface BuildOutput {
43
+ export interface BuildOutput extends TxBytesInfo {
41
44
  channel: 'unbound' | 'bound';
42
- unboundTxB64?: string;
43
- finalizedTxB64?: string;
45
+ file?: string;
44
46
  attesterId: string;
45
47
  provingMode: string;
46
48
  serializedBytes: number;
package/dist/builder.js CHANGED
@@ -5,13 +5,16 @@
5
5
  * or a proof server) and sign an AttestationVault call on THIS machine with
6
6
  * the seed from `NIGHTGATE_SEED_HEX`, so the key and the attestation secret
7
7
  * never travel; the result is the fee-unpaid transaction the sponsor tools
8
- * submit. The package is an OPTIONAL peer dependency (it carries the Midnight
9
- * SDK): the tool is always registered and reports how to install it when it
10
- * is missing.
8
+ * submit. Contract state comes from the NIGHTGATE API unless an indexer is
9
+ * configured. The package is an OPTIONAL peer dependency (it carries the
10
+ * Midnight SDK): the tool is always registered and reports how to install it
11
+ * when it is missing.
11
12
  */
12
13
  import { join } from 'node:path';
13
14
  import { tmpdir } from 'node:os';
15
+ import { builderChainOptions } from './config.js';
14
16
  import { txExport } from './tx-module.js';
17
+ import { holdBuilt, writeTxFile } from './built.js';
15
18
  /**
16
19
  * Call kinds this tool can prepare; one per attestation-vault helper.
17
20
  *
@@ -68,7 +71,7 @@ async function loadModules(ref = DEFAULT_ARTIFACT) {
68
71
  }
69
72
  catch (err) {
70
73
  modules.delete(ref);
71
- throw new Error(`local building of '${ref}' needs @odatano/nightgate-tx >= 0.8.0 next to the MCP server ` +
74
+ throw new Error(`local building of '${ref}' needs @odatano/nightgate-tx >= 0.12.2 next to the MCP server ` +
72
75
  '(npm install @odatano/nightgate-tx): ' + (err instanceof Error ? err.message : String(err)));
73
76
  }
74
77
  })();
@@ -76,13 +79,6 @@ async function loadModules(ref = DEFAULT_ARTIFACT) {
76
79
  }
77
80
  return entry;
78
81
  }
79
- function defaults(network) {
80
- return {
81
- indexerHttpUrl: `https://indexer.${network}.midnight.network/api/v4/graphql`,
82
- indexerWsUrl: `wss://indexer.${network}.midnight.network/api/v4/graphql/ws`,
83
- nodeUrl: `wss://rpc.${network}.midnight.network/`,
84
- };
85
- }
86
82
  /**
87
83
  * One builder per VAULT LINEAGE (the seed is fixed, the circuits are not);
88
84
  * created on first use. A 16-slot and a 32-slot vault need different
@@ -98,7 +94,6 @@ async function getBuilder(config, ref = DEFAULT_ARTIFACT) {
98
94
  entry = (async () => {
99
95
  const { createTxBuilder, Contract } = await loadModules(ref);
100
96
  const network = config.network;
101
- const d = defaults(network);
102
97
  // An explicit zkConfigBaseUrl pins ONE lineage, so it only applies to
103
98
  // the default ref; anything else derives its own from the server.
104
99
  const zkBase = ref === DEFAULT_ARTIFACT && config.zkConfigBaseUrl
@@ -107,9 +102,7 @@ async function getBuilder(config, ref = DEFAULT_ARTIFACT) {
107
102
  const opts = {
108
103
  seedHex: config.seedHex,
109
104
  networkId: network,
110
- indexerHttpUrl: config.indexerHttpUrl ?? d.indexerHttpUrl,
111
- indexerWsUrl: config.indexerWsUrl ?? d.indexerWsUrl,
112
- nodeUrl: config.nodeUrl ?? d.nodeUrl,
105
+ ...builderChainOptions(config),
113
106
  zkConfigBaseUrl: zkBase,
114
107
  contractClass: Contract,
115
108
  contractName: ref,
@@ -230,17 +223,18 @@ export async function buildSponsorable(config, input) {
230
223
  const mods = await loadModules(ref);
231
224
  const call = prepareCall(mods, input, b.attestationSecret, String(b.attesterId));
232
225
  const built = await b.buildSponsorable({ contractAddress: input.contractAddress, call, bind: input.bind ? true : false });
226
+ const b64 = String(input.bind ? built.finalizedTxB64 : built.unboundTxB64);
227
+ if (input.outFile)
228
+ await writeTxFile(input.outFile, b64);
233
229
  const out = {
230
+ ...holdBuilt(b64),
234
231
  channel: input.bind ? 'bound' : 'unbound',
232
+ ...(input.outFile ? { file: input.outFile } : {}),
235
233
  attesterId: String(b.attesterId),
236
234
  provingMode: String(b.provingMode ?? (config.proofServerUrl ? 'server' : 'wasm')),
237
235
  serializedBytes: Number(built.serializedBytes ?? 0),
238
236
  buildMs: Date.now() - t0,
239
237
  };
240
- if (input.bind)
241
- out.finalizedTxB64 = built.finalizedTxB64;
242
- else
243
- out.unboundTxB64 = built.unboundTxB64;
244
238
  return out;
245
239
  }
246
240
  const identities = new Map();
@@ -272,7 +266,6 @@ export async function attesterIdentity(config) {
272
266
  return {
273
267
  attesterId: String(b.attesterId),
274
268
  network: config.network,
275
- // from @odatano/nightgate-tx 0.8.0 on
276
269
  ...(b.addresses?.shielded ? { shieldedAddress: String(b.addresses.shielded) } : {}),
277
270
  ...(b.shieldedKeys ? { coinPublicKey: String(b.shieldedKeys.coinPublicKey), encryptionPublicKey: String(b.shieldedKeys.encryptionPublicKey) } : {}),
278
271
  };
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAA2B,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,4BAA4B;IAC5B,mBAAmB;CACX,CAAC;AAGX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,mBAAmB,EAAE,sBAAsB,CAAU,CAAC;AAE1F,MAAM,CAAC,MAAM,gBAAgB,GAAsB,mBAAmB,CAAC;AAoCvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyC,CAAC;AACjE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmC,CAAC;AAE5D,KAAK,UAAU,WAAW,CAAC,MAAyB,gBAAgB;IAClE,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,CAAC,KAAK,IAAwB,EAAE;YACtC,IAAI,CAAC;gBACH,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC3C,MAAM,CAAC,iCAAiC,CAAC;oBACzC,MAAM,CAAC,6BAA6B,CAAC;oBACrC,GAAG,KAAK,sBAAsB;wBAC5B,CAAC,CAAC,MAAM,CAAC,4CAA4C,CAAC;wBACtD,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC;iBACtD,CAAC,CAAC;gBACH,OAAO;oBACL,eAAe,EAAE,EAAE,CAAC,eAAsB;oBAC1C,gBAAgB,EAAG,EAAU,CAAC,gBAAgB;oBAC9C,KAAK,EAAE,KAAY;oBACnB,QAAQ,EAAG,KAAa,CAAC,QAAQ;iBAClC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,sBAAsB,GAAG,iEAAiE;oBAC1F,uCAAuC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAC7F,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,UAAU,CAAC,MAA0B,EAAE,MAAyB,gBAAgB;IAC7F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;IAClI,CAAC;IACD,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,sEAAsE;YACtE,kEAAkE;YAClE,MAAM,MAAM,GAAG,GAAG,KAAK,gBAAgB,IAAI,MAAM,CAAC,eAAe;gBAC/D,CAAC,CAAC,MAAM,CAAC,eAAe;gBACxB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,cAAc,GAAG,EAAE,CAAC;YACzC,MAAM,IAAI,GAA4B;gBACpC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,OAAO;gBAClB,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBAC9B,eAAe,EAAE,MAAM;gBACvB,aAAa,EAAE,QAAQ;gBACvB,YAAY,EAAE,GAAG;gBACjB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,EAAE,GAAG,CAAC;aAC7E,CAAC;YACF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;gBAC5B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,MAAuC,EAAE,GAAW;IACpE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,4BAA4B,CAAC,CAAC;IACtH,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAe,EAAE,KAAiB,EAAE,iBAA6B,EAAE,aAAqB;IAC3G,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,mBAAmB,KAAK,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,WAAmB,EAAE,YAAoB,EAAU,EAAE;QACzF,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QACjG,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAClF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC;YAC7E,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;QAC/B,IAAI,CAAC,KAAK,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,wBAAwB,IAAI,wCAAwC,CAAC,CAAC;QACjI,OAAO,KAAK,CAAC,WAAkB,CAAC;IAClC,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,4EAA4E,CAAC,CAAC;QACrI,OAAO,KAAK,CAAC,OAAc,CAAC;IAC9B,CAAC,CAAC;IACF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACrG,OAAO,KAAK,CAAC,0BAA0B,CAAC;gBACtC,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;gBACzD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAA4B,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;gBACjE,WAAW,EAAE,OAAO,CAAC,uCAAuC,CAAC,EAAE,iBAAiB,EAAE,SAAS;aACrF,CAAC,CAAC;QACZ,CAAC;QACD,KAAK,oBAAoB;YACvB,OAAO,KAAK,CAAC,yBAAyB,CAAC;gBACrC,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;gBACzD,cAAc,EAAE,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC;gBAC7C,WAAW,EAAE,OAAO,CAAC,2BAA2B,CAAC,EAAE,iBAAiB,EAAE,SAAS;aACzE,CAAC,CAAC;QACZ,KAAK,sBAAsB;YACzB,OAAO,KAAK,CAAC,2BAA2B,CAAC;gBACvC,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;gBACzD,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;gBAC/B,WAAW,EAAE,OAAO,CAAC,kDAAkD,CAAC,EAAE,iBAAiB,EAAE,SAAS;aAChG,CAAC,CAAC;QACZ,KAAK,4BAA4B;YAC/B,OAAO,KAAK,CAAC,iCAAiC,CAAC;gBAC7C,UAAU,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;gBAClD,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,SAAS;aAC3E,CAAC,CAAC;QACZ,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,wBAAwB,CAAC;gBACpC,UAAU,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;gBAClD,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,SAAS;aACvD,CAAC,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACxI,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,wBAAwB,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACpL,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAClF,OAAO,KAAK,CAAC,sBAAsB,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC9I,CAAC;QACD,KAAK,kBAAkB;YACrB,OAAO,KAAK,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACxI,KAAK,kBAAkB;YACrB,OAAO,KAAK,CAAC,uBAAuB,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACtI,KAAK,cAAc;YACjB,OAAO,KAAK,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC5I,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA0B,EAAE,KAAiB;IAClF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,IAAI,gBAAgB,CAAC;IAC1D,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1H,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,OAAO;QAAE,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,GAAG,GAAgB;QACvB,GAAG,SAAS,CAAC,GAAG,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACzC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACjF,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;QACnD,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;KACzB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiC,CAAC;AAS5D,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAA0B;IAC3D,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC9G,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IAChE,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAiE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;YACxJ,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAClG,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC;gBACjC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;gBACrD,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE,CAAC;gBAC3D,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,mBAAmB,IAAI,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;QACL,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA0B;IAG/D,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpJ,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ /** What was built or sent: `txId` is the sha256 of the bytes, so both ends compare one value. */
2
+ export interface TxBytesInfo {
3
+ txId: string;
4
+ characters: number;
5
+ bytes: number;
6
+ }
7
+ export declare function describeTx(b64: string): TxBytesInfo;
8
+ /** Keeps the bytes for one transaction TTL, at most HOLD_MAX at a time. */
9
+ export declare function holdBuilt(b64: string): TxBytesInfo;
10
+ export declare function heldTx(txId: string): string;
11
+ /** A file holding the transaction as base64 text or as the raw bytes. */
12
+ export declare function readTxFile(path: string): Promise<string>;
13
+ export declare function writeTxFile(path: string, b64: string): Promise<void>;
14
+ export interface TxSource {
15
+ txId?: string;
16
+ file?: string;
17
+ b64?: string;
18
+ }
19
+ /** Exactly one source names the bytes. The base64 argument is kept for callers without a file. */
20
+ export declare function resolveTxSource(source: TxSource, b64Name: string): Promise<{
21
+ b64: string;
22
+ sent: TxBytesInfo;
23
+ }>;
package/dist/built.js ADDED
@@ -0,0 +1,58 @@
1
+ // Built transaction bytes stay in this process or in a file; a tool argument carries their id or path.
2
+ // A model reproducing 16,000 base64 characters verbatim drops some, and the sponsor reads a damaged transaction.
3
+ import { createHash } from 'node:crypto';
4
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
5
+ import { dirname } from 'node:path';
6
+ const HOLD_MS = 60 * 60 * 1000;
7
+ const HOLD_MAX = 64;
8
+ const held = new Map();
9
+ export function describeTx(b64) {
10
+ const bytes = Buffer.from(b64, 'base64');
11
+ return { txId: createHash('sha256').update(bytes).digest('hex'), characters: b64.length, bytes: bytes.length };
12
+ }
13
+ /** Keeps the bytes for one transaction TTL, at most HOLD_MAX at a time. */
14
+ export function holdBuilt(b64) {
15
+ const info = describeTx(b64);
16
+ const now = Date.now();
17
+ for (const [id, entry] of held)
18
+ if (now - entry.at > HOLD_MS)
19
+ held.delete(id);
20
+ while (held.size >= HOLD_MAX)
21
+ held.delete(held.keys().next().value);
22
+ held.set(info.txId, { b64, at: now });
23
+ return info;
24
+ }
25
+ export function heldTx(txId) {
26
+ const entry = held.get(txId);
27
+ if (!entry)
28
+ throw new Error(`no transaction with txId ${txId} is held by this server process: build it again, or pass its file`);
29
+ return entry.b64;
30
+ }
31
+ const BASE64_TEXT = /^[A-Za-z0-9+/=\s]+$/;
32
+ /** A file holding the transaction as base64 text or as the raw bytes. */
33
+ export async function readTxFile(path) {
34
+ let raw;
35
+ try {
36
+ raw = await readFile(path);
37
+ }
38
+ catch (err) {
39
+ throw new Error(`transaction file ${path} is not readable: ${err.message}`);
40
+ }
41
+ if (raw.length === 0)
42
+ throw new Error(`transaction file ${path} is empty`);
43
+ const text = raw.toString('latin1');
44
+ return BASE64_TEXT.test(text) ? text.replace(/\s+/g, '') : raw.toString('base64');
45
+ }
46
+ export async function writeTxFile(path, b64) {
47
+ await mkdir(dirname(path), { recursive: true });
48
+ await writeFile(path, b64, { mode: 0o600 });
49
+ }
50
+ /** Exactly one source names the bytes. The base64 argument is kept for callers without a file. */
51
+ export async function resolveTxSource(source, b64Name) {
52
+ const given = [source.txId, source.file, source.b64].filter((v) => v !== undefined && v !== '').length;
53
+ if (given !== 1)
54
+ throw new Error(`pass exactly one of txId, file or ${b64Name}`);
55
+ const b64 = source.txId ? heldTx(source.txId) : source.file ? await readTxFile(source.file) : String(source.b64);
56
+ return { b64, sent: describeTx(b64) };
57
+ }
58
+ //# sourceMappingURL=built.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"built.js","sourceRoot":"","sources":["../src/built.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -3,10 +3,10 @@ import type { NightgateMcpConfig } from './config.js';
3
3
  export declare class NightgateApiError extends Error {
4
4
  readonly status: number;
5
5
  readonly code: string | undefined;
6
- /** Extra fields of a gateway error body (unitsLeft, price, topup, products, validUntil, retryAfterSeconds). */
6
+ /** `retryAfterSeconds` from `Retry-After`, plus the extra fields of a gateway error body (unitsLeft, price, topup, products, validUntil). */
7
7
  readonly detail?: Record<string, unknown> | undefined;
8
8
  constructor(status: number, code: string | undefined, message: string,
9
- /** Extra fields of a gateway error body (unitsLeft, price, topup, products, validUntil, retryAfterSeconds). */
9
+ /** `retryAfterSeconds` from `Retry-After`, plus the extra fields of a gateway error body (unitsLeft, price, topup, products, validUntil). */
10
10
  detail?: Record<string, unknown> | undefined);
11
11
  }
12
12
  /**
package/dist/client.js CHANGED
@@ -4,7 +4,7 @@ export class NightgateApiError extends Error {
4
4
  code;
5
5
  detail;
6
6
  constructor(status, code, message,
7
- /** Extra fields of a gateway error body (unitsLeft, price, topup, products, validUntil, retryAfterSeconds). */
7
+ /** `retryAfterSeconds` from `Retry-After`, plus the extra fields of a gateway error body (unitsLeft, price, topup, products, validUntil). */
8
8
  detail) {
9
9
  super(message);
10
10
  this.status = status;
@@ -31,7 +31,8 @@ export function apiError(status, payload, headers, fallback) {
31
31
  return new NightgateApiError(status, undefined, err, Object.keys(detail).length ? detail : undefined);
32
32
  }
33
33
  const e = (err ?? {});
34
- return new NightgateApiError(status, e.code, e.message ?? fallback);
34
+ const retry = headers.get('retry-after');
35
+ return new NightgateApiError(status, e.code, e.message ?? fallback, retry ? { retryAfterSeconds: Number(retry) } : undefined);
35
36
  }
36
37
  export function int64(value) {
37
38
  const digits = String(value);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -35,6 +35,7 @@ export interface NightgateMcpConfig {
35
35
  seedHex?: string;
36
36
  /** Midnight network the builder targets; default preprod. */
37
37
  network: string;
38
+ /** A Midnight indexer and node for the builders to read the chain from. Without them the NIGHTGATE API is read. */
38
39
  indexerHttpUrl?: string;
39
40
  indexerWsUrl?: string;
40
41
  nodeUrl?: string;
@@ -50,3 +51,7 @@ export interface NightgateMcpConfig {
50
51
  swapMaxInputs?: number;
51
52
  }
52
53
  export declare function loadConfig(env?: NodeJS.ProcessEnv): NightgateMcpConfig;
54
+ /** The NIGHTGATE connection as the txbuilder's `api` option takes it: same host, same credentials. */
55
+ export declare function apiConnectOptions(config: NightgateMcpConfig): Record<string, unknown>;
56
+ /** Where a local builder reads contract state: the configured indexer and node, else the NIGHTGATE API. */
57
+ export declare function builderChainOptions(config: NightgateMcpConfig): Record<string, unknown>;
package/dist/config.js CHANGED
@@ -22,8 +22,8 @@ export function loadConfig(env = process.env) {
22
22
  token: env.ODATANO_ACCESS_KEY || undefined,
23
23
  username: env.ODATANO_ACCESS_USER || undefined,
24
24
  password: env.ODATANO_ACCESS_PASSWORD || undefined,
25
- servicePath: env.NIGHTGATE_SERVICE_PATH ?? '/api/v1/nightgate',
26
- indexerServicePath: env.NIGHTGATE_INDEXER_SERVICE_PATH ?? '/api/v1/indexer',
25
+ servicePath: env.NIGHTGATE_SERVICE_PATH ?? '/odata/v4/midnight',
26
+ indexerServicePath: env.NIGHTGATE_INDEXER_SERVICE_PATH ?? '/odata/v4/midnight-indexer',
27
27
  analyticsUrl,
28
28
  timeoutMs,
29
29
  seedHex,
@@ -38,4 +38,28 @@ export function loadConfig(env = process.env) {
38
38
  swapMaxInputs,
39
39
  };
40
40
  }
41
+ /** The NIGHTGATE connection as the txbuilder's `api` option takes it: same host, same credentials. */
42
+ export function apiConnectOptions(config) {
43
+ const agent = config.token?.startsWith('ngat_');
44
+ return {
45
+ baseUrl: config.baseUrl,
46
+ servicePath: config.servicePath,
47
+ indexerServicePath: config.indexerServicePath,
48
+ timeoutMs: config.timeoutMs,
49
+ ...(agent ? { agentToken: config.token } : config.token ? { token: config.token } : {}),
50
+ ...(config.username && (agent || !config.token) ? { username: config.username, password: config.password } : {}),
51
+ };
52
+ }
53
+ /** Where a local builder reads contract state: the configured indexer and node, else the NIGHTGATE API. */
54
+ export function builderChainOptions(config) {
55
+ if (config.indexerHttpUrl && config.indexerWsUrl) {
56
+ return {
57
+ indexerHttpUrl: config.indexerHttpUrl,
58
+ indexerWsUrl: config.indexerWsUrl,
59
+ nodeUrl: config.nodeUrl ?? `wss://rpc.${config.network}.midnight.network/`,
60
+ walletSync: false,
61
+ };
62
+ }
63
+ return { api: apiConnectOptions(config), walletSync: false };
64
+ }
41
65
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAwDA,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,iCAAiC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClG,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,IAAI,SAAS,CAAC;IACnD,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,gCAAgC,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,aAAa,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,yBAAyB,uBAAuB,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,OAAO,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpG,OAAO;QACL,OAAO;QACP,KAAK,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS;QAC1C,QAAQ,EAAE,GAAG,CAAC,mBAAmB,IAAI,SAAS;QAC9C,QAAQ,EAAE,GAAG,CAAC,uBAAuB,IAAI,SAAS;QAClD,WAAW,EAAE,GAAG,CAAC,sBAAsB,IAAI,mBAAmB;QAC9D,kBAAkB,EAAE,GAAG,CAAC,8BAA8B,IAAI,iBAAiB;QAC3E,YAAY;QACZ,SAAS;QACT,OAAO;QACP,OAAO;QACP,cAAc,EAAE,GAAG,CAAC,0BAA0B,IAAI,SAAS;QAC3D,YAAY,EAAE,GAAG,CAAC,wBAAwB,IAAI,SAAS;QACvD,OAAO,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS;QAC5C,eAAe,EAAE,GAAG,CAAC,4BAA4B,IAAI,SAAS;QAC9D,UAAU,EAAE,GAAG,CAAC,sBAAsB,IAAI,SAAS;QACnD,cAAc,EAAE,GAAG,CAAC,0BAA0B,IAAI,SAAS;QAC3D,aAAa,EAAE,GAAG,CAAC,yBAAyB,IAAI,SAAS;QACzD,aAAa;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/factory.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { NightgateMcpConfig } from './config.js';
1
+ import { type NightgateMcpConfig } from './config.js';
2
2
  export interface MintInput {
3
3
  contractAddress: string;
4
4
  name: string;
package/dist/factory.js CHANGED
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { dirname } from 'node:path';
11
11
  import { fileURLToPath } from 'node:url';
12
+ import { builderChainOptions } from './config.js';
12
13
  import { txExport } from './tx-module.js';
13
14
  import { seedIdentity } from './builder.js';
14
15
  const FACTORY_PACKAGE = '@odatano/contract-token-factory';
@@ -23,27 +24,16 @@ async function loadFactoryModule() {
23
24
  });
24
25
  return factoryModule;
25
26
  }
26
- function defaults(network) {
27
- return {
28
- indexerHttpUrl: `https://indexer.${network}.midnight.network/api/v4/graphql`,
29
- indexerWsUrl: `wss://indexer.${network}.midnight.network/api/v4/graphql/ws`,
30
- nodeUrl: `wss://rpc.${network}.midnight.network/`,
31
- };
32
- }
33
27
  /** One builder per process; the package resolves from this install, not the caller's cwd. */
34
28
  async function getFactoryBuilder(config) {
35
29
  builder ??= (async () => {
36
- const createTxBuilder = await txExport('createTxBuilder', 'minting', '0.10.2');
37
- const d = defaults(config.network);
30
+ const createTxBuilder = await txExport('createTxBuilder', 'minting', '0.12.2');
38
31
  const opts = {
39
32
  seedHex: config.seedHex,
40
33
  networkId: config.network,
41
- indexerHttpUrl: config.indexerHttpUrl ?? d.indexerHttpUrl,
42
- indexerWsUrl: config.indexerWsUrl ?? d.indexerWsUrl,
43
- nodeUrl: config.nodeUrl ?? d.nodeUrl,
34
+ ...builderChainOptions(config),
44
35
  package: FACTORY_PACKAGE,
45
36
  from: HERE,
46
- walletSync: false,
47
37
  };
48
38
  if (config.proofServerUrl) {
49
39
  opts.provingMode = 'server';
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAA2B,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAsBrD,IAAI,aAAuC,CAAC;AAC5C,IAAI,OAAiC,CAAC;AAEtC,KAAK,UAAU,iBAAiB;IAC9B,aAAa,KAAK,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACtD,aAAa,GAAG,SAAS,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,iBAAiB,eAAe,wCAAwC,eAAe,KAAK;YAC5F,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CACnD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,6FAA6F;AAC7F,KAAK,UAAU,iBAAiB,CAAC,MAA0B;IACzD,OAAO,KAAK,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAkD,iBAAiB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChI,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,OAAO;YACzB,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC9B,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,IAAI;SACX,CAAC;QACF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC9C,CAAC;QACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAA0B,EAAE,KAAgB;IAC1E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,kGAAkG,CAAC,CAAC;IACtH,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,2IAA2I,CAAC,CAAC;IAC/J,CAAC;IACD,MAAM,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnE,QAAQ,CAAiD,0BAA0B,EAAE,SAAS,EAAE,QAAQ,CAAC;QACzG,QAAQ,CAA8C,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC;QACzF,QAAQ,CAA+G,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC;KAC3J,CAAC,CAAC;IACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACtH,MAAM,CAAC,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,CAAC;QACrC,eAAe;QACf,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;QAC9G,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjJ,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;QACxC,SAAS,EAAE,IAAI;QACf,MAAM;QACN,SAAS,EAAE,MAAM;QACjB,sBAAsB,EAAE,SAAS;QACjC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;QACnD,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;KACzB,CAAC;AACJ,CAAC;AAED,4BAA4B;AAC5B,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC;IACrB,OAAO,GAAG,SAAS,CAAC;IACpB,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC;YAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACnE,CAAC;AACH,CAAC"}