@odatano/nightgate-mcp 0.1.0 → 0.3.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 +36 -5
- package/dist/tools.js +454 -39
- package/dist/tools.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @odatano/nightgate-mcp
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@odatano/nightgate-mcp)
|
|
4
|
+
[](https://www.npmjs.com/package/@odatano/nightgate-mcp)
|
|
5
|
+
[](https://www.npmjs.com/package/@odatano/nightgate)
|
|
6
|
+
[](https://modelcontextprotocol.io/)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
|
|
3
10
|
MCP server that lets AI agents use [NIGHTGATE](https://github.com/ODATANO/NIGHTGATE),
|
|
4
11
|
the Midnight blockchain attestation layer: anchor documents, prove
|
|
5
12
|
zero-knowledge predicates over hidden fields, manage disclosure grants,
|
|
@@ -9,7 +16,24 @@ Wallet lifecycle (connect, send, deploy) is deliberately not exposed.
|
|
|
9
16
|
## Requirements
|
|
10
17
|
|
|
11
18
|
- Node.js >= 20
|
|
12
|
-
- A running NIGHTGATE instance
|
|
19
|
+
- A running NIGHTGATE instance, see the compatibility matrix below
|
|
20
|
+
|
|
21
|
+
## Compatibility
|
|
22
|
+
|
|
23
|
+
Pick the MCP line that matches your NIGHTGATE server. The pairing is not
|
|
24
|
+
cosmetic: from NIGHTGATE 0.16.0 on, content-tree leaves are SALTED, so every
|
|
25
|
+
field proof must carry its slot salt. An older MCP omits it and the server
|
|
26
|
+
rejects the call with 400.
|
|
27
|
+
|
|
28
|
+
| MCP | NIGHTGATE | Notes |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| **0.3.x** | **>= 0.16.0** (0.16.2 recommended) | Current. Adds the cross-root proofs, guarded anchoring and schema ids, and sends the per-field salts the salted leaves require. Does NOT work against 0.15.x and older, which know no salt parameters. |
|
|
31
|
+
| 0.2.x | 0.15.x | Bytes equality and set membership on unsalted leaves. Against 0.16.0 and newer every field proof fails with "fieldSalt is required". |
|
|
32
|
+
| 0.1.x | 0.14.x | Anchoring, numeric field predicates, disclosure, agent provenance. |
|
|
33
|
+
|
|
34
|
+
The verification tools are the exception: they only read live contract state
|
|
35
|
+
and keep working across the whole range, they simply cannot express the
|
|
36
|
+
newer claim kinds on an older server.
|
|
13
37
|
|
|
14
38
|
## Getting a NIGHTGATE instance
|
|
15
39
|
|
|
@@ -92,14 +116,21 @@ Or in a project `.mcp.json`:
|
|
|
92
116
|
| Tool | What it does |
|
|
93
117
|
|---|---|
|
|
94
118
|
| `verify_attestation` | Live-state check that a payload hash is attested in an AttestationVault (crawler-free, optional content-root check, optional cross-network read) |
|
|
95
|
-
| `verify_predicate` | Live-state check that a ZK
|
|
119
|
+
| `verify_predicate` | Live-state check that a ZK claim was recorded true on-chain, id-free: numeric predicates, `bytesEquality` (+ `expectedDigest`), `setMembership` (+ `setRoot`) and the cross-root kinds `documentIntegrity` / `documentDiff` (+ `payloadHashB`) |
|
|
96
120
|
| `verify_predicate_attestation` | Verify a server-issued predicate attestation by its row id |
|
|
97
121
|
| `verify_document` | Verify an anchored document by document id + sha256 |
|
|
98
|
-
| `prepare_document_proof` | Canonicalize a document into payloadHash + Merkle contentRoot + per-field proof inputs (
|
|
122
|
+
| `prepare_document_proof` | Canonicalize a document into payloadHash + salted Merkle contentRoot + schemaId + per-field proof inputs (incl. each slot salt) + the full `opening` the cross-root proofs need (synchronous) |
|
|
123
|
+
| `prepare_membership_set` | Build the canonical allow-list set tree: setRoot for verifiers, inclusion path for provers (synchronous) |
|
|
99
124
|
| `attest_agent_output` | Anchor agent-output provenance (canonical envelope, third-party verifiable; async job, NIGHTGATE >= 0.14.0) |
|
|
100
|
-
| `anchor_document` | Anchor a document content hash on-chain (async job) |
|
|
125
|
+
| `anchor_document` | Anchor a document content hash on-chain; with a `nonce` it is the guarded reveal that reclaims a front-run hash (async job) |
|
|
101
126
|
| `prove_field_predicate` | ZK proof that a hidden document field satisfies a threshold, without revealing it (async job) |
|
|
102
|
-
| `
|
|
127
|
+
| `prove_field_equality` | ZK proof that a string field carries exactly the value behind a public digest (async job) |
|
|
128
|
+
| `prove_field_membership` | ZK proof that a hidden string field is one of a public allow-list, without revealing which (async job) |
|
|
129
|
+
| `prove_field_predicates_batch` | Up to 8 claims on one document in ONE transaction, any mix of numeric / equality / membership / cross-root kinds (async job) |
|
|
130
|
+
| `prove_document_integrity` | ZK proof that a second document differs from the anchored one ONLY in a public slot mask, values hidden (async job) |
|
|
131
|
+
| `prove_document_diff` | ZK proof that two anchored documents differ at >= k of 16 slots, without revealing which (async job) |
|
|
132
|
+
| `prepare_anchor_commitment` | Compute the commitment + secret nonce for guarded anchoring (synchronous) |
|
|
133
|
+
| `commit_document_anchor` | Record that commitment on-chain, so a mempool observer cannot front-run the later reveal (async job) |
|
|
103
134
|
| `grant_disclosure` / `revoke_disclosure` | Attester-only on-chain disclosure ACL (async jobs) |
|
|
104
135
|
| `get_job_status` | Poll an async NIGHTGATE job until succeeded/failed |
|
|
105
136
|
|
package/dist/tools.js
CHANGED
|
@@ -11,7 +11,105 @@ const merkleSiblings = z.array(hex64('sibling')).length(4)
|
|
|
11
11
|
.describe('Depth-4 Merkle inclusion path: exactly 4 sibling digests (64 hex each)');
|
|
12
12
|
const merkleDirs = z.array(z.boolean()).length(4)
|
|
13
13
|
.describe('Exactly 4 booleans; true means the current node is the LEFT child');
|
|
14
|
+
const setSiblings = z.array(hex64('setSibling')).length(6)
|
|
15
|
+
.describe('Depth-6 membership-set path: exactly 6 sibling digests (64 hex each)');
|
|
16
|
+
const setDirs = z.array(z.boolean()).length(6)
|
|
17
|
+
.describe('Exactly 6 booleans; true means the current node is the LEFT child');
|
|
14
18
|
const POLL_HINT = 'Async: returns { jobId, status } immediately; poll get_job_status until succeeded or failed.';
|
|
19
|
+
/**
|
|
20
|
+
* Per-slot salt of a proof field. Content-tree leaves are SALTED, so every
|
|
21
|
+
* single-field proof needs the slot's salt from prepare_document_proof
|
|
22
|
+
* (field `salt`; batch claims carry it as `salt` too). Witness material.
|
|
23
|
+
*/
|
|
24
|
+
const fieldSalt = hex64('fieldSalt')
|
|
25
|
+
.describe('Per-slot salt of this field, from prepare_document_proof (fields[].salt). Witness material, never publish');
|
|
26
|
+
/** The shared 16-slot schema descriptor list from prepare_document_proof. */
|
|
27
|
+
const schemaSlots = z.array(z.object({
|
|
28
|
+
fieldKey: hex64('schema.fieldKey'),
|
|
29
|
+
kind: z.union([z.literal(0), z.literal(1), z.literal(2)])
|
|
30
|
+
.describe('0 = uint, 1 = bytes, 2 = padding'),
|
|
31
|
+
scale: z.union([z.string(), z.number()]).describe("Off-chain scaling of uint slots, '0' otherwise"),
|
|
32
|
+
})).length(16)
|
|
33
|
+
.describe('The 16-entry schema descriptor list returned by prepare_document_proof as `schema`. Both documents of a comparison MUST use the same one');
|
|
34
|
+
/** One document's full opening (salt seed + 16 slot values). */
|
|
35
|
+
const documentOpening = z.object({
|
|
36
|
+
saltSeed: hex64('saltSeed'),
|
|
37
|
+
slots: z.array(z.object({
|
|
38
|
+
present: z.boolean(),
|
|
39
|
+
value: z.string().optional().describe('uint slots: the scaled integer'),
|
|
40
|
+
valueDigest: hex64('slot.valueDigest').optional().describe('bytes slots: the value digest'),
|
|
41
|
+
})).length(16),
|
|
42
|
+
}).describe('A document\'s complete opening from prepare_document_proof (`opening`): salt seed plus all 16 slot values. WITNESS material for the whole document, never publish');
|
|
43
|
+
/** Batch claim shapes; claims may mix all kinds in one transaction. */
|
|
44
|
+
const numericClaim = z.object({
|
|
45
|
+
predicate: z.enum(['lessOrEqual', 'greaterOrEqual']),
|
|
46
|
+
fieldKey: hex64('fieldKey'),
|
|
47
|
+
value: z.string().regex(/^\d+$/, 'value must be a non-negative integer (decimal string)'),
|
|
48
|
+
salt: fieldSalt,
|
|
49
|
+
siblings: merkleSiblings,
|
|
50
|
+
dirs: merkleDirs,
|
|
51
|
+
threshold: scaledInt('threshold'),
|
|
52
|
+
unit: z.string().optional(),
|
|
53
|
+
});
|
|
54
|
+
const equalityClaim = z.object({
|
|
55
|
+
predicate: z.literal('bytesEquality'),
|
|
56
|
+
fieldKey: hex64('fieldKey'),
|
|
57
|
+
expectedValue: z.string().min(1).optional()
|
|
58
|
+
.describe('Raw expected string; the server digests the EXACT string'),
|
|
59
|
+
expectedDigest: hex64('expectedDigest').optional()
|
|
60
|
+
.describe('blake2b-256 of the exact expected string (64 hex)'),
|
|
61
|
+
salt: fieldSalt,
|
|
62
|
+
siblings: merkleSiblings,
|
|
63
|
+
dirs: merkleDirs,
|
|
64
|
+
}).superRefine((c, ctx) => {
|
|
65
|
+
if (!!c.expectedValue === !!c.expectedDigest) {
|
|
66
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'pass exactly one of expectedValue / expectedDigest' });
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const membershipClaim = z.object({
|
|
70
|
+
predicate: z.literal('setMembership'),
|
|
71
|
+
fieldKey: hex64('fieldKey'),
|
|
72
|
+
value: z.string().min(1).optional().describe('Raw member string (witness only)'),
|
|
73
|
+
valueDigest: hex64('valueDigest').optional().describe('blake2b-256 of the exact member string (witness only)'),
|
|
74
|
+
allowedValues: z.array(z.string().min(1)).min(1).max(64).optional()
|
|
75
|
+
.describe('The public allow-list; the server builds the canonical set root + path'),
|
|
76
|
+
setRoot: hex64('setRoot').optional().describe('Precomputed canonical set root (64 hex)'),
|
|
77
|
+
setSiblings: setSiblings.optional(),
|
|
78
|
+
setDirs: setDirs.optional(),
|
|
79
|
+
salt: fieldSalt,
|
|
80
|
+
siblings: merkleSiblings,
|
|
81
|
+
dirs: merkleDirs,
|
|
82
|
+
}).superRefine((c, ctx) => {
|
|
83
|
+
if (!!c.value === !!c.valueDigest) {
|
|
84
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'pass exactly one of value / valueDigest' });
|
|
85
|
+
}
|
|
86
|
+
const hasList = c.allowedValues !== undefined;
|
|
87
|
+
const hasPath = !!(c.setRoot || c.setSiblings || c.setDirs);
|
|
88
|
+
if (hasList && hasPath) {
|
|
89
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'pass either allowedValues or setRoot + setSiblings + setDirs, not both' });
|
|
90
|
+
}
|
|
91
|
+
if (!hasList && !(c.setRoot && c.setSiblings && c.setDirs)) {
|
|
92
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'allowedValues or setRoot + setSiblings + setDirs is required' });
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
/** Cross-root claim shapes: they relate the batch payload hash (document A) to a second document. */
|
|
96
|
+
const documentIntegrityClaim = z.object({
|
|
97
|
+
predicate: z.literal('documentIntegrity'),
|
|
98
|
+
payloadHashB: hex64('payloadHashB').describe('The second document (A is the batch payloadHash)'),
|
|
99
|
+
allowedMask: z.number().int().min(0).max(0xfffe)
|
|
100
|
+
.describe('Packed 16-bit mask, bit i = slot i MAY differ. Must leave at least one real schema slot constrained, otherwise the claim is vacuous and rejected'),
|
|
101
|
+
schema: schemaSlots,
|
|
102
|
+
openingA: documentOpening,
|
|
103
|
+
openingB: documentOpening,
|
|
104
|
+
});
|
|
105
|
+
const documentDiffClaim = z.object({
|
|
106
|
+
predicate: z.literal('documentDiff'),
|
|
107
|
+
payloadHashB: hex64('payloadHashB').describe('The second document (A is the batch payloadHash)'),
|
|
108
|
+
k: z.number().int().min(1).max(16).describe('Minimum number of differing slots to prove'),
|
|
109
|
+
schema: schemaSlots,
|
|
110
|
+
openingA: documentOpening,
|
|
111
|
+
openingB: documentOpening,
|
|
112
|
+
});
|
|
15
113
|
/**
|
|
16
114
|
* Phase A tool set: crawler-free verification, job polling, and the
|
|
17
115
|
* curated write path (anchoring, field predicates, disclosure).
|
|
@@ -27,6 +125,8 @@ export function registerTools(server, client) {
|
|
|
27
125
|
contractAddress: z.string().min(1).describe('AttestationVault contract address'),
|
|
28
126
|
payloadHash: hex64('payloadHash').describe('The attested payload hash (sha256, 64 hex)'),
|
|
29
127
|
contentRoot: hex64('contentRoot').optional().describe('Optional anchored content root to check (64 hex)'),
|
|
128
|
+
schemaId: hex64('schemaId').optional()
|
|
129
|
+
.describe('Optional anchored schema id to check; the result reports schemaOk, so an examiner can pin the canonical field list'),
|
|
30
130
|
network: z.enum(['preview', 'preprod', 'mainnet']).optional()
|
|
31
131
|
.describe('Read from another network public indexer instead of the configured one'),
|
|
32
132
|
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
@@ -35,33 +135,71 @@ export function registerTools(server, client) {
|
|
|
35
135
|
contractAddress: args.contractAddress,
|
|
36
136
|
payloadHash: args.payloadHash,
|
|
37
137
|
contentRoot: args.contentRoot,
|
|
138
|
+
schemaId: args.schemaId,
|
|
38
139
|
compiledArtifactRef: args.compiledArtifactRef,
|
|
39
140
|
network: args.network,
|
|
40
141
|
})));
|
|
41
142
|
server.registerTool('verify_predicate', {
|
|
42
|
-
description: 'Verify against LIVE Midnight contract state that a ZK
|
|
43
|
-
'
|
|
44
|
-
'
|
|
45
|
-
'verified:false)
|
|
143
|
+
description: 'Verify against LIVE Midnight contract state that a ZK claim was recorded true on-chain. ' +
|
|
144
|
+
'Id-free: works for proofs NIGHTGATE never saw. Numeric predicates (lessOrEqual / ' +
|
|
145
|
+
'greaterOrEqual) need threshold (the SAME scaled integer the circuit hashed; a scaling ' +
|
|
146
|
+
'mismatch yields verified:false) and optionally fieldKey for field-bound proofs. ' +
|
|
147
|
+
'bytesEquality needs fieldKey + expectedDigest; setMembership needs fieldKey + setRoot ' +
|
|
148
|
+
'(recompute it from the published list via prepare_membership_set).',
|
|
46
149
|
inputSchema: {
|
|
47
150
|
contractAddress: z.string().min(1).describe('AttestationVault contract address'),
|
|
48
151
|
payloadHash: hex64('payloadHash').describe('The attestation payload hash (64 hex)'),
|
|
49
|
-
predicate: z.enum(['lessOrEqual', 'greaterOrEqual'
|
|
50
|
-
|
|
51
|
-
|
|
152
|
+
predicate: z.enum(['lessOrEqual', 'greaterOrEqual', 'bytesEquality', 'setMembership',
|
|
153
|
+
'documentIntegrity', 'documentDiff']).describe('Claim kind'),
|
|
154
|
+
threshold: scaledInt('threshold').optional()
|
|
155
|
+
.describe('Numeric predicates only: scaled circuit integer threshold'),
|
|
156
|
+
fieldKey: hex64('fieldKey').optional()
|
|
157
|
+
.describe('Field key (64 hex); required for the numeric and bytes kinds, unused for the cross-root kinds'),
|
|
158
|
+
expectedDigest: hex64('expectedDigest').optional()
|
|
159
|
+
.describe("bytesEquality only: the public expected value digest"),
|
|
160
|
+
setRoot: hex64('setRoot').optional()
|
|
161
|
+
.describe("setMembership only: the canonical allow-list set root"),
|
|
162
|
+
payloadHashB: hex64('payloadHashB').optional()
|
|
163
|
+
.describe('Cross-root kinds: the second document. (A, B) order is part of the claim, query it as proven'),
|
|
164
|
+
allowedMask: z.number().int().min(0).max(0xffff).optional()
|
|
165
|
+
.describe('documentIntegrity only: the packed 16-bit mask that was proven'),
|
|
166
|
+
k: z.number().int().min(1).max(16).optional()
|
|
167
|
+
.describe('documentDiff only: the k that was proven'),
|
|
52
168
|
network: z.enum(['preview', 'preprod', 'mainnet']).optional()
|
|
53
169
|
.describe('Read from another network public indexer instead of the configured one'),
|
|
54
170
|
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
55
171
|
},
|
|
56
|
-
}, run(async (args) =>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
predicate
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
172
|
+
}, run(async (args) => {
|
|
173
|
+
if ((args.predicate === 'lessOrEqual' || args.predicate === 'greaterOrEqual') && args.threshold === undefined) {
|
|
174
|
+
throw new Error('threshold is required for the numeric predicates');
|
|
175
|
+
}
|
|
176
|
+
if (args.predicate === 'bytesEquality' && (!args.fieldKey || !args.expectedDigest)) {
|
|
177
|
+
throw new Error("predicate 'bytesEquality' requires fieldKey and expectedDigest");
|
|
178
|
+
}
|
|
179
|
+
if (args.predicate === 'setMembership' && (!args.fieldKey || !args.setRoot)) {
|
|
180
|
+
throw new Error("predicate 'setMembership' requires fieldKey and setRoot");
|
|
181
|
+
}
|
|
182
|
+
if (args.predicate === 'documentIntegrity' && (!args.payloadHashB || args.allowedMask === undefined)) {
|
|
183
|
+
throw new Error("predicate 'documentIntegrity' requires payloadHashB and allowedMask");
|
|
184
|
+
}
|
|
185
|
+
if (args.predicate === 'documentDiff' && (!args.payloadHashB || args.k === undefined)) {
|
|
186
|
+
throw new Error("predicate 'documentDiff' requires payloadHashB and k");
|
|
187
|
+
}
|
|
188
|
+
return client.callFunction('verifyPredicateState', {
|
|
189
|
+
contractAddress: args.contractAddress,
|
|
190
|
+
payloadHash: args.payloadHash,
|
|
191
|
+
fieldKey: args.fieldKey,
|
|
192
|
+
predicate: args.predicate,
|
|
193
|
+
threshold: args.threshold === undefined ? undefined : int64(args.threshold),
|
|
194
|
+
expectedDigest: args.expectedDigest,
|
|
195
|
+
setRoot: args.setRoot,
|
|
196
|
+
payloadHashB: args.payloadHashB,
|
|
197
|
+
allowedMask: args.allowedMask,
|
|
198
|
+
k: args.k,
|
|
199
|
+
compiledArtifactRef: args.compiledArtifactRef,
|
|
200
|
+
network: args.network,
|
|
201
|
+
});
|
|
202
|
+
}));
|
|
65
203
|
server.registerTool('verify_predicate_attestation', {
|
|
66
204
|
description: 'Verify a server-issued predicate attestation by its NIGHTGATE row id (UUID). ' +
|
|
67
205
|
'Confirms the proving transaction succeeded, with a crawler-free live-state fallback. ' +
|
|
@@ -91,10 +229,18 @@ export function registerTools(server, client) {
|
|
|
91
229
|
server.registerTool('prepare_document_proof', {
|
|
92
230
|
description: 'Turn a structured document into everything the proof tools need: canonical JSON and its ' +
|
|
93
231
|
'payloadHash (what anchor_document anchors), a Merkle contentRoot over an ORDERED list of ' +
|
|
94
|
-
'up to 16 proof fields, and per-field inclusion paths ready for prove_field_predicate
|
|
95
|
-
'
|
|
96
|
-
'
|
|
97
|
-
'
|
|
232
|
+
'up to 16 proof fields, and per-field inclusion paths ready for prove_field_predicate / ' +
|
|
233
|
+
'prove_field_equality / prove_field_membership. kind "uint" (default) scales a numeric ' +
|
|
234
|
+
'value; kind "bytes" (NIGHTGATE >= 0.16.0) enters a STRING field as the digest of the ' +
|
|
235
|
+
'exact string, feeding the equality/membership proofs. Keep the field order stable across ' +
|
|
236
|
+
'anchor and proof: it is part of the tree identity. Compute-only and synchronous, nothing ' +
|
|
237
|
+
'is stored server-side. Leaves are SALTED: the response carries a per-field `salt` (feed it ' +
|
|
238
|
+
'back as fieldSalt / claim salt), the full `opening` (salt seed + all 16 slots, needed for ' +
|
|
239
|
+
'the cross-root proofs) and `schemaId` (anchor it alongside the root). STORE the opening ' +
|
|
240
|
+
'with the document: losing the salt seed makes the anchored root unprovable, publishing it ' +
|
|
241
|
+
'makes leaf hashes guessable. Pass saltSeed to reproduce an EXISTING anchored root ' +
|
|
242
|
+
'byte-for-byte; omit it for a fresh document. The returned fields carry witness material ' +
|
|
243
|
+
'(scaled values / digests / salts): treat as sensitive. Store canonicalDocument at your ' +
|
|
98
244
|
'storageRef; re-serializing with different key order will not re-hash equal.',
|
|
99
245
|
inputSchema: {
|
|
100
246
|
document: z.record(z.unknown())
|
|
@@ -102,14 +248,19 @@ export function registerTools(server, client) {
|
|
|
102
248
|
proofFields: z.array(z.object({
|
|
103
249
|
field: z.string().min(1)
|
|
104
250
|
.describe('Dot-separated path into the document (e.g. invoice.total); a literal top-level key containing dots wins'),
|
|
251
|
+
kind: z.enum(['uint', 'bytes']).optional()
|
|
252
|
+
.describe("Leaf kind: 'uint' (default, numeric scaled value) or 'bytes' (string value entered as digest of the exact string)"),
|
|
105
253
|
scale: z.number().int().min(1).max(1_000_000_000).optional()
|
|
106
|
-
.describe(
|
|
254
|
+
.describe("Value scale (default 1000: milli-units); only valid for kind 'uint'"),
|
|
107
255
|
})).min(1).max(16).describe('ORDERED list of fields to make provable (leaf index = position)'),
|
|
256
|
+
saltSeed: hex64('saltSeed').optional()
|
|
257
|
+
.describe('Reuse a stored salt seed to reproduce an already-anchored root; omit for a fresh document (random seed)'),
|
|
108
258
|
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
109
259
|
},
|
|
110
260
|
}, run(async (args) => client.callAction('prepareDocumentProof', {
|
|
111
261
|
documentJson: JSON.stringify(args.document),
|
|
112
262
|
proofFieldsJson: JSON.stringify(args.proofFields),
|
|
263
|
+
saltSeed: args.saltSeed,
|
|
113
264
|
compiledArtifactRef: args.compiledArtifactRef,
|
|
114
265
|
})));
|
|
115
266
|
server.registerTool('attest_agent_output', {
|
|
@@ -148,7 +299,10 @@ export function registerTools(server, client) {
|
|
|
148
299
|
server.registerTool('anchor_document', {
|
|
149
300
|
description: 'Anchor a document content hash on the Midnight chain via the AttestationVault attest ' +
|
|
150
301
|
'circuit. Commits only the sha256 + public metadata; you are responsible for storing the ' +
|
|
151
|
-
'actual bytes at storageRef.
|
|
302
|
+
'actual bytes at storageRef. Plain attestation is first-come-first-served per hash, so a ' +
|
|
303
|
+
'mempool observer can front-run a visible hash: for a hash that is secret until anchoring, ' +
|
|
304
|
+
'use prepare_anchor_commitment + commit_document_anchor first and pass the nonce here, ' +
|
|
305
|
+
'which turns this call into the guarded REVEAL and reclaims a front-run hash. ' + POLL_HINT +
|
|
152
306
|
' Also returns documentId for verify_document.',
|
|
153
307
|
inputSchema: {
|
|
154
308
|
sha256: hex64('sha256').describe('sha256 of the document content (64 hex), becomes the on-chain payload hash'),
|
|
@@ -158,6 +312,8 @@ export function registerTools(server, client) {
|
|
|
158
312
|
contentType: z.string().optional().describe('MIME type, informational'),
|
|
159
313
|
size: z.number().int().nonnegative().optional().describe('Content size in bytes, informational'),
|
|
160
314
|
metadata: z.record(z.unknown()).optional().describe('Public metadata object; its hash is anchored alongside'),
|
|
315
|
+
nonce: hex64('nonce').optional()
|
|
316
|
+
.describe('Guarded REVEAL: the secret nonce from prepare_anchor_commitment, after commit_document_anchor finalized. Same sha256 and metadata as the commitment'),
|
|
161
317
|
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
162
318
|
idempotencyKey: z.string().optional().describe('Dedupes retries of the same anchor request'),
|
|
163
319
|
sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
|
|
@@ -168,6 +324,7 @@ export function registerTools(server, client) {
|
|
|
168
324
|
size: args.size,
|
|
169
325
|
storageRef: args.storageRef,
|
|
170
326
|
metadata: args.metadata === undefined ? undefined : JSON.stringify(args.metadata),
|
|
327
|
+
nonce: args.nonce,
|
|
171
328
|
sessionId: args.sessionId,
|
|
172
329
|
contractAddress: args.contractAddress,
|
|
173
330
|
compiledArtifactRef: args.compiledArtifactRef,
|
|
@@ -186,6 +343,7 @@ export function registerTools(server, client) {
|
|
|
186
343
|
fieldKey: hex64('fieldKey').describe('Canonical field id (64 hex, public)'),
|
|
187
344
|
value: z.string().regex(/^\d+$/, 'value must be a non-negative integer (decimal string)')
|
|
188
345
|
.describe('Scaled integer field value (witness only, never persisted)'),
|
|
346
|
+
fieldSalt,
|
|
189
347
|
siblings: merkleSiblings,
|
|
190
348
|
dirs: merkleDirs,
|
|
191
349
|
predicate: z.enum(['lessOrEqual', 'greaterOrEqual']).describe('Predicate operator'),
|
|
@@ -193,6 +351,7 @@ export function registerTools(server, client) {
|
|
|
193
351
|
sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
|
|
194
352
|
contractAddress: z.string().min(1).describe('AttestationVault deployment'),
|
|
195
353
|
contentRoot: hex64('contentRoot').optional().describe('Optional Merkle root (64 hex) to anchor first'),
|
|
354
|
+
schemaId: hex64('schemaId').optional().describe('Schema id of the field list, required whenever contentRoot is supplied'),
|
|
196
355
|
unit: z.string().optional().describe('Informational unit, e.g. kWh'),
|
|
197
356
|
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
198
357
|
idempotencyKey: z.string().optional().describe('Dedupes retries'),
|
|
@@ -202,7 +361,9 @@ export function registerTools(server, client) {
|
|
|
202
361
|
payloadHash: args.payloadHash,
|
|
203
362
|
fieldKey: args.fieldKey,
|
|
204
363
|
value: args.value,
|
|
364
|
+
fieldSalt: args.fieldSalt,
|
|
205
365
|
contentRoot: args.contentRoot,
|
|
366
|
+
schemaId: args.schemaId,
|
|
206
367
|
siblingsJson: JSON.stringify(args.siblings),
|
|
207
368
|
dirsJson: JSON.stringify(args.dirs),
|
|
208
369
|
predicate: args.predicate,
|
|
@@ -214,27 +375,160 @@ export function registerTools(server, client) {
|
|
|
214
375
|
idempotencyKey: args.idempotencyKey,
|
|
215
376
|
sponsorSessionId: args.sponsorSessionId,
|
|
216
377
|
})));
|
|
378
|
+
server.registerTool('prepare_membership_set', {
|
|
379
|
+
description: 'Build the canonical depth-6 membership-set tree over a public allow-list (NIGHTGATE ' +
|
|
380
|
+
'>= 0.16.0). Deterministic rule (digest each exact string, dedupe, sort ascending, pad by ' +
|
|
381
|
+
'repeating the last member digest), so ANYONE recomputes the same setRoot from the ' +
|
|
382
|
+
'published list alone: use the root to verify_predicate a setMembership claim. With ' +
|
|
383
|
+
'value/valueDigest it additionally returns the member inclusion path (witness material, ' +
|
|
384
|
+
'treat as sensitive); a non-member is a clean 400. Compute-only and synchronous.',
|
|
385
|
+
inputSchema: {
|
|
386
|
+
allowedValues: z.array(z.string().min(1)).min(1).max(64)
|
|
387
|
+
.describe('The public allow-list (up to 64 distinct values)'),
|
|
388
|
+
value: z.string().min(1).optional()
|
|
389
|
+
.describe('Optional member string to get the inclusion path for (pass this OR valueDigest)'),
|
|
390
|
+
valueDigest: hex64('valueDigest').optional()
|
|
391
|
+
.describe('Optional member digest (64 hex) instead of the raw value'),
|
|
392
|
+
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
393
|
+
},
|
|
394
|
+
}, run(async (args) => {
|
|
395
|
+
if (args.value !== undefined && args.valueDigest !== undefined) {
|
|
396
|
+
throw new Error('pass at most one of value / valueDigest');
|
|
397
|
+
}
|
|
398
|
+
return client.callAction('prepareMembershipSet', {
|
|
399
|
+
allowedValuesJson: JSON.stringify(args.allowedValues),
|
|
400
|
+
value: args.value,
|
|
401
|
+
valueDigest: args.valueDigest,
|
|
402
|
+
compiledArtifactRef: args.compiledArtifactRef,
|
|
403
|
+
});
|
|
404
|
+
}));
|
|
405
|
+
server.registerTool('prove_field_equality', {
|
|
406
|
+
description: 'Issue a ZK bytes-equality proof (NIGHTGATE >= 0.16.0): the anchored document field ' +
|
|
407
|
+
'carries EXACTLY the value behind the public expectedDigest. The digest IS the statement, ' +
|
|
408
|
+
'so this is an authenticity/binding proof, not confidentiality (a low-entropy value\'s ' +
|
|
409
|
+
'digest is dictionary-guessable). The field must be a kind:"bytes" leaf from ' +
|
|
410
|
+
'prepare_document_proof; siblings/dirs are its depth-4 inclusion path. If contentRoot is ' +
|
|
411
|
+
'supplied it is anchored first. ' + POLL_HINT,
|
|
412
|
+
inputSchema: {
|
|
413
|
+
payloadHash: hex64('payloadHash').describe('Attestation payload hash (64 hex)'),
|
|
414
|
+
fieldKey: hex64('fieldKey').describe('Canonical field id (64 hex, public)'),
|
|
415
|
+
expectedValue: z.string().min(1).optional()
|
|
416
|
+
.describe('Raw expected string (the server digests the EXACT string; pass this OR expectedDigest)'),
|
|
417
|
+
expectedDigest: hex64('expectedDigest').optional()
|
|
418
|
+
.describe('blake2b-256 of the exact expected string (64 hex)'),
|
|
419
|
+
fieldSalt,
|
|
420
|
+
siblings: merkleSiblings,
|
|
421
|
+
dirs: merkleDirs,
|
|
422
|
+
sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
|
|
423
|
+
contractAddress: z.string().min(1).describe('AttestationVault deployment'),
|
|
424
|
+
contentRoot: hex64('contentRoot').optional().describe('Optional Merkle root (64 hex) to anchor first'),
|
|
425
|
+
schemaId: hex64('schemaId').optional().describe('Schema id of the field list, required whenever contentRoot is supplied'),
|
|
426
|
+
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
427
|
+
idempotencyKey: z.string().optional().describe('Dedupes retries'),
|
|
428
|
+
sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
|
|
429
|
+
},
|
|
430
|
+
}, run(async (args) => {
|
|
431
|
+
if (!!args.expectedValue === !!args.expectedDigest) {
|
|
432
|
+
throw new Error('pass exactly one of expectedValue / expectedDigest');
|
|
433
|
+
}
|
|
434
|
+
return client.callAction('issueFieldEqualityAttestation', {
|
|
435
|
+
payloadHash: args.payloadHash,
|
|
436
|
+
fieldKey: args.fieldKey,
|
|
437
|
+
expectedValue: args.expectedValue,
|
|
438
|
+
expectedDigest: args.expectedDigest,
|
|
439
|
+
fieldSalt: args.fieldSalt,
|
|
440
|
+
contentRoot: args.contentRoot,
|
|
441
|
+
schemaId: args.schemaId,
|
|
442
|
+
siblingsJson: JSON.stringify(args.siblings),
|
|
443
|
+
dirsJson: JSON.stringify(args.dirs),
|
|
444
|
+
sessionId: args.sessionId,
|
|
445
|
+
contractAddress: args.contractAddress,
|
|
446
|
+
compiledArtifactRef: args.compiledArtifactRef,
|
|
447
|
+
idempotencyKey: args.idempotencyKey,
|
|
448
|
+
sponsorSessionId: args.sponsorSessionId,
|
|
449
|
+
});
|
|
450
|
+
}));
|
|
451
|
+
server.registerTool('prove_field_membership', {
|
|
452
|
+
description: 'Issue a ZK set-membership proof (NIGHTGATE >= 0.16.0): the anchored document field\'s ' +
|
|
453
|
+
'HIDDEN value is one of a public allow-list, without revealing which one. Supply the ' +
|
|
454
|
+
'allow-list directly (allowedValues: the server builds the canonical set root + path and ' +
|
|
455
|
+
'rejects a non-member with 400 BEFORE any proving) or a precomputed setRoot + setSiblings ' +
|
|
456
|
+
'+ setDirs from prepare_membership_set. The field must be a kind:"bytes" leaf from ' +
|
|
457
|
+
'prepare_document_proof; value/valueDigest stay witness material, never persisted. If ' +
|
|
458
|
+
'contentRoot is supplied it is anchored first. ' + POLL_HINT,
|
|
459
|
+
inputSchema: {
|
|
460
|
+
payloadHash: hex64('payloadHash').describe('Attestation payload hash (64 hex)'),
|
|
461
|
+
fieldKey: hex64('fieldKey').describe('Canonical field id (64 hex, public)'),
|
|
462
|
+
value: z.string().min(1).optional()
|
|
463
|
+
.describe('Raw member string (witness only; pass this OR valueDigest)'),
|
|
464
|
+
valueDigest: hex64('valueDigest').optional()
|
|
465
|
+
.describe('blake2b-256 of the exact member string (witness only)'),
|
|
466
|
+
allowedValues: z.array(z.string().min(1)).min(1).max(64).optional()
|
|
467
|
+
.describe('The public allow-list; pass this OR setRoot + setSiblings + setDirs'),
|
|
468
|
+
setRoot: hex64('setRoot').optional().describe('Precomputed canonical set root (64 hex)'),
|
|
469
|
+
setSiblings: setSiblings.optional(),
|
|
470
|
+
setDirs: setDirs.optional(),
|
|
471
|
+
fieldSalt,
|
|
472
|
+
siblings: merkleSiblings,
|
|
473
|
+
dirs: merkleDirs,
|
|
474
|
+
sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
|
|
475
|
+
contractAddress: z.string().min(1).describe('AttestationVault deployment'),
|
|
476
|
+
contentRoot: hex64('contentRoot').optional().describe('Optional Merkle root (64 hex) to anchor first'),
|
|
477
|
+
schemaId: hex64('schemaId').optional().describe('Schema id of the field list, required whenever contentRoot is supplied'),
|
|
478
|
+
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
479
|
+
idempotencyKey: z.string().optional().describe('Dedupes retries'),
|
|
480
|
+
sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
|
|
481
|
+
},
|
|
482
|
+
}, run(async (args) => {
|
|
483
|
+
if (!!args.value === !!args.valueDigest) {
|
|
484
|
+
throw new Error('pass exactly one of value / valueDigest');
|
|
485
|
+
}
|
|
486
|
+
const hasList = args.allowedValues !== undefined;
|
|
487
|
+
const hasPath = !!(args.setRoot || args.setSiblings || args.setDirs);
|
|
488
|
+
if (hasList && hasPath)
|
|
489
|
+
throw new Error('pass either allowedValues or setRoot + setSiblings + setDirs, not both');
|
|
490
|
+
if (!hasList && !(args.setRoot && args.setSiblings && args.setDirs)) {
|
|
491
|
+
throw new Error('allowedValues or setRoot + setSiblings + setDirs is required');
|
|
492
|
+
}
|
|
493
|
+
return client.callAction('issueFieldMembershipAttestation', {
|
|
494
|
+
payloadHash: args.payloadHash,
|
|
495
|
+
fieldKey: args.fieldKey,
|
|
496
|
+
value: args.value,
|
|
497
|
+
valueDigest: args.valueDigest,
|
|
498
|
+
allowedValuesJson: args.allowedValues === undefined ? undefined : JSON.stringify(args.allowedValues),
|
|
499
|
+
setRoot: args.setRoot,
|
|
500
|
+
setSiblingsJson: args.setSiblings === undefined ? undefined : JSON.stringify(args.setSiblings),
|
|
501
|
+
setDirsJson: args.setDirs === undefined ? undefined : JSON.stringify(args.setDirs),
|
|
502
|
+
fieldSalt: args.fieldSalt,
|
|
503
|
+
contentRoot: args.contentRoot,
|
|
504
|
+
schemaId: args.schemaId,
|
|
505
|
+
siblingsJson: JSON.stringify(args.siblings),
|
|
506
|
+
dirsJson: JSON.stringify(args.dirs),
|
|
507
|
+
sessionId: args.sessionId,
|
|
508
|
+
contractAddress: args.contractAddress,
|
|
509
|
+
compiledArtifactRef: args.compiledArtifactRef,
|
|
510
|
+
idempotencyKey: args.idempotencyKey,
|
|
511
|
+
sponsorSessionId: args.sponsorSessionId,
|
|
512
|
+
});
|
|
513
|
+
}));
|
|
217
514
|
server.registerTool('prove_field_predicates_batch', {
|
|
218
|
-
description: 'Batch variant of
|
|
219
|
-
'
|
|
220
|
-
'
|
|
221
|
-
'predicate
|
|
222
|
-
'
|
|
223
|
-
'
|
|
515
|
+
description: 'Batch variant of the field proof tools: prove up to 8 field-bound claims on ONE anchored ' +
|
|
516
|
+
'document in ONE transaction (7 if contentRoot is supplied, since the anchor occupies one ' +
|
|
517
|
+
'call slot). Claims may MIX the three kinds (NIGHTGATE >= 0.16.0), discriminated by ' +
|
|
518
|
+
'predicate: numeric (lessOrEqual/greaterOrEqual), bytesEquality, setMembership. Duplicate ' +
|
|
519
|
+
'claim tuples are dropped server-side. One false claim aborts the whole batch at local ' +
|
|
520
|
+
'proving time with zero on-chain effect. After submission the chain can finalize a ' +
|
|
521
|
+
'PARTIAL_SUCCESS subset; verify per claim via verify_predicate_attestation instead of ' +
|
|
522
|
+
'assuming all-or-nothing. ' + POLL_HINT,
|
|
224
523
|
inputSchema: {
|
|
225
|
-
payloadHash: hex64('payloadHash').describe('Shared attestation payload hash (64 hex)'),
|
|
226
|
-
claims: z.array(z.
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
siblings: merkleSiblings,
|
|
230
|
-
dirs: merkleDirs,
|
|
231
|
-
predicate: z.enum(['lessOrEqual', 'greaterOrEqual']),
|
|
232
|
-
threshold: scaledInt('threshold'),
|
|
233
|
-
unit: z.string().optional(),
|
|
234
|
-
})).min(1).max(8).describe('1-8 claims on the same payload hash'),
|
|
524
|
+
payloadHash: hex64('payloadHash').describe('Shared attestation payload hash; also document A of any cross-root claim (64 hex)'),
|
|
525
|
+
claims: z.array(z.union([numericClaim, equalityClaim, membershipClaim, documentIntegrityClaim, documentDiffClaim]))
|
|
526
|
+
.min(1).max(8)
|
|
527
|
+
.describe('1-8 claims on the same payload hash; any mix of numeric, bytesEquality, setMembership, documentIntegrity and documentDiff'),
|
|
235
528
|
sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
|
|
236
529
|
contractAddress: z.string().min(1).describe('AttestationVault deployment'),
|
|
237
530
|
contentRoot: hex64('contentRoot').optional().describe('Optional Merkle root anchored as first call of the same batch'),
|
|
531
|
+
schemaId: hex64('schemaId').optional().describe('Schema id of the field list, required whenever contentRoot is supplied'),
|
|
238
532
|
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
239
533
|
idempotencyKey: z.string().optional().describe('Dedupes retries'),
|
|
240
534
|
sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
|
|
@@ -246,7 +540,8 @@ export function registerTools(server, client) {
|
|
|
246
540
|
return client.callAction('issueFieldPredicateAttestationBatch', {
|
|
247
541
|
payloadHash: args.payloadHash,
|
|
248
542
|
contentRoot: args.contentRoot,
|
|
249
|
-
|
|
543
|
+
schemaId: args.schemaId,
|
|
544
|
+
claimsJson: JSON.stringify(args.claims.map((c) => 'threshold' in c ? { ...c, threshold: String(c.threshold) } : c)),
|
|
250
545
|
sessionId: args.sessionId,
|
|
251
546
|
contractAddress: args.contractAddress,
|
|
252
547
|
compiledArtifactRef: args.compiledArtifactRef,
|
|
@@ -254,6 +549,126 @@ export function registerTools(server, client) {
|
|
|
254
549
|
sponsorSessionId: args.sponsorSessionId,
|
|
255
550
|
});
|
|
256
551
|
}));
|
|
552
|
+
server.registerTool('prove_document_integrity', {
|
|
553
|
+
description: 'Prove that document B differs from anchored document A ONLY in the slots flagged by a ' +
|
|
554
|
+
'public 16-bit mask, values hidden: the version-integrity claim ("v2 changed nothing ' +
|
|
555
|
+
'outside the allowed fields"). Both documents must be anchored, prepared with the SAME ' +
|
|
556
|
+
'ordered field list (identical schemaId) and you need BOTH full openings, which is why ' +
|
|
557
|
+
'this only works for a party that holds both documents. A mask that frees every real slot ' +
|
|
558
|
+
'is vacuous and rejected; a slot that changed, appeared or disappeared outside the mask ' +
|
|
559
|
+
'fails at local proving time with zero on-chain effect. ' + POLL_HINT,
|
|
560
|
+
inputSchema: {
|
|
561
|
+
payloadHashA: hex64('payloadHashA').describe('Anchored document A (64 hex)'),
|
|
562
|
+
payloadHashB: hex64('payloadHashB').describe('Anchored document B; must differ from A'),
|
|
563
|
+
allowedMask: z.number().int().min(0).max(0xfffe)
|
|
564
|
+
.describe('Packed 16-bit mask, bit i = slot i MAY differ. At least one real schema slot must stay constrained'),
|
|
565
|
+
schema: schemaSlots,
|
|
566
|
+
openingA: documentOpening,
|
|
567
|
+
openingB: documentOpening,
|
|
568
|
+
sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
|
|
569
|
+
contractAddress: z.string().min(1).describe('AttestationVault deployment'),
|
|
570
|
+
contentRootA: hex64('contentRootA').optional().describe('Optional: anchor A\'s root in the same flow'),
|
|
571
|
+
contentRootB: hex64('contentRootB').optional().describe('Optional: anchor B\'s root in the same flow'),
|
|
572
|
+
schemaId: hex64('schemaId').optional().describe('Shared schema id, required whenever a contentRoot is supplied'),
|
|
573
|
+
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
574
|
+
idempotencyKey: z.string().optional().describe('Dedupes retries'),
|
|
575
|
+
sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
|
|
576
|
+
},
|
|
577
|
+
}, run(async (args) => client.callAction('issueDocumentIntegrityAttestation', {
|
|
578
|
+
payloadHashA: args.payloadHashA,
|
|
579
|
+
payloadHashB: args.payloadHashB,
|
|
580
|
+
allowedMask: args.allowedMask,
|
|
581
|
+
schemaJson: JSON.stringify(args.schema),
|
|
582
|
+
openingAJson: JSON.stringify(args.openingA),
|
|
583
|
+
openingBJson: JSON.stringify(args.openingB),
|
|
584
|
+
contentRootA: args.contentRootA,
|
|
585
|
+
contentRootB: args.contentRootB,
|
|
586
|
+
schemaId: args.schemaId,
|
|
587
|
+
sessionId: args.sessionId,
|
|
588
|
+
contractAddress: args.contractAddress,
|
|
589
|
+
compiledArtifactRef: args.compiledArtifactRef,
|
|
590
|
+
idempotencyKey: args.idempotencyKey,
|
|
591
|
+
sponsorSessionId: args.sponsorSessionId,
|
|
592
|
+
})));
|
|
593
|
+
server.registerTool('prove_document_diff', {
|
|
594
|
+
description: 'Prove that at least k of the 16 aligned slots differ between two anchored documents, ' +
|
|
595
|
+
'without revealing which slots or what values: the distinctness claim (k=1 is "provably ' +
|
|
596
|
+
'not the same document"). Same requirements as prove_document_integrity: identical field ' +
|
|
597
|
+
'list, both openings in hand. A difference is a value change or a field that appeared or ' +
|
|
598
|
+
'disappeared; both-empty slots compare equal and padding never counts. k above the real ' +
|
|
599
|
+
'count fails at local proving time with zero on-chain effect. ' + POLL_HINT,
|
|
600
|
+
inputSchema: {
|
|
601
|
+
payloadHashA: hex64('payloadHashA').describe('Anchored document A (64 hex)'),
|
|
602
|
+
payloadHashB: hex64('payloadHashB').describe('Anchored document B; must differ from A'),
|
|
603
|
+
k: z.number().int().min(1).max(16).describe('Minimum number of differing slots to prove'),
|
|
604
|
+
schema: schemaSlots,
|
|
605
|
+
openingA: documentOpening,
|
|
606
|
+
openingB: documentOpening,
|
|
607
|
+
sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
|
|
608
|
+
contractAddress: z.string().min(1).describe('AttestationVault deployment'),
|
|
609
|
+
contentRootA: hex64('contentRootA').optional().describe('Optional: anchor A\'s root in the same flow'),
|
|
610
|
+
contentRootB: hex64('contentRootB').optional().describe('Optional: anchor B\'s root in the same flow'),
|
|
611
|
+
schemaId: hex64('schemaId').optional().describe('Shared schema id, required whenever a contentRoot is supplied'),
|
|
612
|
+
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
613
|
+
idempotencyKey: z.string().optional().describe('Dedupes retries'),
|
|
614
|
+
sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
|
|
615
|
+
},
|
|
616
|
+
}, run(async (args) => client.callAction('issueDocumentDiffAttestation', {
|
|
617
|
+
payloadHashA: args.payloadHashA,
|
|
618
|
+
payloadHashB: args.payloadHashB,
|
|
619
|
+
k: args.k,
|
|
620
|
+
schemaJson: JSON.stringify(args.schema),
|
|
621
|
+
openingAJson: JSON.stringify(args.openingA),
|
|
622
|
+
openingBJson: JSON.stringify(args.openingB),
|
|
623
|
+
contentRootA: args.contentRootA,
|
|
624
|
+
contentRootB: args.contentRootB,
|
|
625
|
+
schemaId: args.schemaId,
|
|
626
|
+
sessionId: args.sessionId,
|
|
627
|
+
contractAddress: args.contractAddress,
|
|
628
|
+
compiledArtifactRef: args.compiledArtifactRef,
|
|
629
|
+
idempotencyKey: args.idempotencyKey,
|
|
630
|
+
sponsorSessionId: args.sponsorSessionId,
|
|
631
|
+
})));
|
|
632
|
+
server.registerTool('prepare_anchor_commitment', {
|
|
633
|
+
description: 'Phase 0 of guarded anchoring: compute the opaque commitment for commit_document_anchor ' +
|
|
634
|
+
'plus the nonce the later reveal needs. Compute-only and synchronous. STORE the nonce and ' +
|
|
635
|
+
'keep it SECRET until the reveal: it is exactly what a mempool front-runner cannot forge. ' +
|
|
636
|
+
'Pass the same metadata here and to anchor_document. Use this when the payload hash is ' +
|
|
637
|
+
'secret until anchoring; for publicly known identifiers, registrar pre-assignment is the ' +
|
|
638
|
+
'better protection.',
|
|
639
|
+
inputSchema: {
|
|
640
|
+
sha256: hex64('sha256').describe('sha256 of the document content (64 hex)'),
|
|
641
|
+
metadata: z.record(z.unknown()).optional()
|
|
642
|
+
.describe('Public metadata object; MUST equal the metadata passed to anchor_document later'),
|
|
643
|
+
nonce: hex64('nonce').optional().describe('Reuse a specific nonce; omit for a fresh random one'),
|
|
644
|
+
},
|
|
645
|
+
}, run(async (args) => client.callAction('prepareAnchorCommitment', {
|
|
646
|
+
sha256: args.sha256,
|
|
647
|
+
metadata: args.metadata === undefined ? undefined : JSON.stringify(args.metadata),
|
|
648
|
+
nonce: args.nonce,
|
|
649
|
+
})));
|
|
650
|
+
server.registerTool('commit_document_anchor', {
|
|
651
|
+
description: 'Phase 1 of guarded anchoring: record the opaque commitment on-chain. Observers learn ' +
|
|
652
|
+
'nothing about the payload. Once this job finalizes, call anchor_document with the SAME ' +
|
|
653
|
+
'sha256 and metadata plus the nonce to reveal; a plain attest that front-ran the reveal is ' +
|
|
654
|
+
'taken over in-circuit, and everything the front-runner recorded meanwhile (content root, ' +
|
|
655
|
+
'disclosure grants, claims) stops counting. ' + POLL_HINT,
|
|
656
|
+
inputSchema: {
|
|
657
|
+
commitment: hex64('commitment').describe('The commitment from prepare_anchor_commitment (64 hex)'),
|
|
658
|
+
sessionId: z.string().uuid().describe('Wallet session id that signs and submits; the SAME session must reveal'),
|
|
659
|
+
contractAddress: z.string().min(1).describe('AttestationVault deployment'),
|
|
660
|
+
compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
|
|
661
|
+
idempotencyKey: z.string().optional().describe('Dedupes retries'),
|
|
662
|
+
sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
|
|
663
|
+
},
|
|
664
|
+
}, run(async (args) => client.callAction('commitDocumentAnchor', {
|
|
665
|
+
commitment: args.commitment,
|
|
666
|
+
sessionId: args.sessionId,
|
|
667
|
+
contractAddress: args.contractAddress,
|
|
668
|
+
compiledArtifactRef: args.compiledArtifactRef,
|
|
669
|
+
idempotencyKey: args.idempotencyKey,
|
|
670
|
+
sponsorSessionId: args.sponsorSessionId,
|
|
671
|
+
})));
|
|
257
672
|
server.registerTool('grant_disclosure', {
|
|
258
673
|
description: 'Grant a disclosure level for an attestation to a grantee identity, on-chain via the ' +
|
|
259
674
|
'AttestationVault. Attester-only: the transaction is rejected in-circuit unless the ' +
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAmB,MAAM,aAAa,CAAC;AAExE,MAAM,KAAK,GAAG,mBAAmB,CAAC;AAClC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAC7B,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,4BAA4B,CAAC,CAAC;AAE/D,8EAA8E;AAC9E,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CACjC,CAAC,CAAC,KAAK,CAAC;IACN,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,kDAAkD,CAAC;IACpF,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEL,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KACvD,QAAQ,CAAC,wEAAwE,CAAC,CAAC;AACtF,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAC9C,QAAQ,CAAC,mEAAmE,CAAC,CAAC;AAEjF,MAAM,SAAS,GAAG,8FAA8F,CAAC;AAEjH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,MAAuB;IACtE,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,oFAAoF;YACpF,qFAAqF;YACrF,mFAAmF;QACrF,WAAW,EAAE;YACX,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAChF,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACxF,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACzG,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAC1D,QAAQ,CAAC,wEAAwE,CAAC;YACrF,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SAC9G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE;QAC5C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,4FAA4F;YAC5F,4FAA4F;YAC5F,wFAAwF;YACxF,oFAAoF;QACtF,WAAW,EAAE;YACX,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAChF,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACnF,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACnF,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC;YAChH,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YACrG,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAC1D,QAAQ,CAAC,wEAAwE,CAAC;YACrF,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SAC9G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE;QAC1C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,WAAW,EACT,+EAA+E;YAC/E,uFAAuF;YACvF,uEAAuE;QACzE,WAAW,EAAE;YACX,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SACnF;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,YAAY,CAAC,4BAA4B,EAAE;QAChD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;KACpD,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,yFAAyF;YACzF,4FAA4F;YAC5F,uDAAuD;QACzD,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC1D,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YAC5F,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;YAC5G,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SAC9G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE;QACpC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;KAC9C,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EACT,0FAA0F;YAC1F,2FAA2F;YAC3F,wFAAwF;YACxF,wFAAwF;YACxF,yFAAyF;YACzF,wFAAwF;YACxF,6EAA6E;QAC/E,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC5B,QAAQ,CAAC,qEAAqE,CAAC;YAClF,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrB,QAAQ,CAAC,yGAAyG,CAAC;gBACtH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;qBACzD,QAAQ,CAAC,yCAAyC,CAAC;aACvD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iEAAiE,CAAC;YAC9F,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SAC9G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,UAAU,CAAC,sBAAsB,EAAE;QACxC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3C,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;QACjD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;KAC9C,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,wFAAwF;YACxF,0FAA0F;YAC1F,sFAAsF;YACtF,oDAAoD,GAAG,SAAS;QAClE,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YAC/F,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAChF,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACtF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACjF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC1E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC7E,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;YAC3G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAC3G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;YAC9G,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YAC7G,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACjE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC1G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE;QACrC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,uFAAuF;YACvF,0FAA0F;YAC1F,+EAA+E,GAAG,SAAS;YAC3F,+CAA+C;QACjD,WAAW,EAAE;YACX,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,4EAA4E,CAAC;YAC9G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAC5F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACjF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACzF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACvE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAChG,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YAC7G,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YAC7G,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YAC5F,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC1G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjF,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,sFAAsF;YACtF,6FAA6F;YAC7F,0FAA0F;YAC1F,0FAA0F;YAC1F,4FAA4F;YAC5F,+CAA+C,GAAG,SAAS;QAC7D,WAAW,EAAE;YACX,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC/E,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,uDAAuD,CAAC;iBACtF,QAAQ,CAAC,4DAA4D,CAAC;YACzE,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACnF,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YAC9F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACjF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC1E,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YACtG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACpE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YAC7G,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACjE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC1G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,UAAU,CAAC,gCAAgC,EAAE;QAClD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3C,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,WAAW,EACT,sFAAsF;YACtF,uFAAuF;YACvF,qFAAqF;YACrF,0FAA0F;YAC1F,mFAAmF;YACnF,mEAAmE,GAAG,SAAS;QACjF,WAAW,EAAE;YACX,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACtF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC;gBAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,uDAAuD,CAAC;gBACzF,QAAQ,EAAE,cAAc;gBACxB,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;gBACpD,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC;gBACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACjF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC1E,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;YACtH,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YAC7G,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACjE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC1G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACjB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,qCAAqC,EAAE;YAC9D,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9F,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,sFAAsF;YACtF,qFAAqF;YACrF,mFAAmF;YACnF,eAAe,GAAG,SAAS;QAC7B,WAAW,EAAE;YACX,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACnF,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACzE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvD,QAAQ,CAAC,8CAA8C,CAAC;YAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACjF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC1E,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YAC7G,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACjE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC1G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE;QACnC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,+EAA+E;YAC/E,sCAAsC,GAAG,SAAS;QACpD,WAAW,EAAE;YACX,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACnF,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACzE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACjF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC1E,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YAC7G,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACjE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC1G;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE;QACpC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,iFAAiF;YACjF,yFAAyF;YACzF,uFAAuF;YACvF,+EAA+E;QACjF,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SAC9E;KACF,EACD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE;QAChC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC,CACN,CAAC;AACJ,CAAC;AAOD;;;;GAIG;AACH,SAAS,WAAW,CAAC,OAAwB;IAC3C,OAAO,SAAS,GAAG,CAAI,EAAiC;QACtD,OAAO,KAAK,EAAE,IAAO,EAAuB,EAAE;YAC5C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;oBACrC,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;oBACxF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC/F,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvE,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odatano/nightgate-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "MCP server exposing NIGHTGATE (Midnight blockchain attestation layer) to AI agents",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
6
9
|
"type": "module",
|
|
7
10
|
"main": "dist/index.js",
|
|
8
11
|
"bin": {
|