@ninelives/agent-governance-sdk 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +363 -0
  2. package/dist/audit.d.ts +26 -0
  3. package/dist/audit.d.ts.map +1 -0
  4. package/dist/audit.js +107 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/cascade-containment.d.ts +84 -0
  7. package/dist/cascade-containment.d.ts.map +1 -0
  8. package/dist/cascade-containment.js +387 -0
  9. package/dist/cascade-containment.js.map +1 -0
  10. package/dist/client.d.ts +34 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +112 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/context-poisoning.d.ts +58 -0
  15. package/dist/context-poisoning.d.ts.map +1 -0
  16. package/dist/context-poisoning.js +410 -0
  17. package/dist/context-poisoning.js.map +1 -0
  18. package/dist/credential-vault.d.ts +213 -0
  19. package/dist/credential-vault.d.ts.map +1 -0
  20. package/dist/credential-vault.js +567 -0
  21. package/dist/credential-vault.js.map +1 -0
  22. package/dist/discovery.d.ts +80 -0
  23. package/dist/discovery.d.ts.map +1 -0
  24. package/dist/discovery.js +404 -0
  25. package/dist/discovery.js.map +1 -0
  26. package/dist/encryption/channel.d.ts +29 -0
  27. package/dist/encryption/channel.d.ts.map +1 -0
  28. package/dist/encryption/channel.js +78 -0
  29. package/dist/encryption/channel.js.map +1 -0
  30. package/dist/encryption/index.d.ts +9 -0
  31. package/dist/encryption/index.d.ts.map +1 -0
  32. package/dist/encryption/index.js +23 -0
  33. package/dist/encryption/index.js.map +1 -0
  34. package/dist/encryption/mesh-client.d.ts +281 -0
  35. package/dist/encryption/mesh-client.d.ts.map +1 -0
  36. package/dist/encryption/mesh-client.js +1110 -0
  37. package/dist/encryption/mesh-client.js.map +1 -0
  38. package/dist/encryption/ratchet.d.ts +38 -0
  39. package/dist/encryption/ratchet.d.ts.map +1 -0
  40. package/dist/encryption/ratchet.js +223 -0
  41. package/dist/encryption/ratchet.js.map +1 -0
  42. package/dist/encryption/registry-client.d.ts +136 -0
  43. package/dist/encryption/registry-client.d.ts.map +1 -0
  44. package/dist/encryption/registry-client.js +369 -0
  45. package/dist/encryption/registry-client.js.map +1 -0
  46. package/dist/encryption/x3dh.d.ts +80 -0
  47. package/dist/encryption/x3dh.d.ts.map +1 -0
  48. package/dist/encryption/x3dh.js +238 -0
  49. package/dist/encryption/x3dh.js.map +1 -0
  50. package/dist/framework-adapter.d.ts +63 -0
  51. package/dist/framework-adapter.d.ts.map +1 -0
  52. package/dist/framework-adapter.js +253 -0
  53. package/dist/framework-adapter.js.map +1 -0
  54. package/dist/identity.d.ts +124 -0
  55. package/dist/identity.d.ts.map +1 -0
  56. package/dist/identity.js +446 -0
  57. package/dist/identity.js.map +1 -0
  58. package/dist/index.d.ts +39 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +95 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/kill-switch.d.ts +22 -0
  63. package/dist/kill-switch.d.ts.map +1 -0
  64. package/dist/kill-switch.js +60 -0
  65. package/dist/kill-switch.js.map +1 -0
  66. package/dist/lifecycle.d.ts +50 -0
  67. package/dist/lifecycle.d.ts.map +1 -0
  68. package/dist/lifecycle.js +113 -0
  69. package/dist/lifecycle.js.map +1 -0
  70. package/dist/mcp.d.ts +41 -0
  71. package/dist/mcp.d.ts.map +1 -0
  72. package/dist/mcp.js +233 -0
  73. package/dist/mcp.js.map +1 -0
  74. package/dist/metrics.d.ts +123 -0
  75. package/dist/metrics.d.ts.map +1 -0
  76. package/dist/metrics.js +289 -0
  77. package/dist/metrics.js.map +1 -0
  78. package/dist/oci-manifest.d.ts +49 -0
  79. package/dist/oci-manifest.d.ts.map +1 -0
  80. package/dist/oci-manifest.js +182 -0
  81. package/dist/oci-manifest.js.map +1 -0
  82. package/dist/policy-backends/cedar.d.ts +15 -0
  83. package/dist/policy-backends/cedar.d.ts.map +1 -0
  84. package/dist/policy-backends/cedar.js +88 -0
  85. package/dist/policy-backends/cedar.js.map +1 -0
  86. package/dist/policy-backends/opa.d.ts +17 -0
  87. package/dist/policy-backends/opa.d.ts.map +1 -0
  88. package/dist/policy-backends/opa.js +74 -0
  89. package/dist/policy-backends/opa.js.map +1 -0
  90. package/dist/policy.d.ts +77 -0
  91. package/dist/policy.d.ts.map +1 -0
  92. package/dist/policy.js +760 -0
  93. package/dist/policy.js.map +1 -0
  94. package/dist/prompt-defense.d.ts +37 -0
  95. package/dist/prompt-defense.d.ts.map +1 -0
  96. package/dist/prompt-defense.js +229 -0
  97. package/dist/prompt-defense.js.map +1 -0
  98. package/dist/protocol-facets.d.ts +87 -0
  99. package/dist/protocol-facets.d.ts.map +1 -0
  100. package/dist/protocol-facets.js +728 -0
  101. package/dist/protocol-facets.js.map +1 -0
  102. package/dist/rings.d.ts +17 -0
  103. package/dist/rings.d.ts.map +1 -0
  104. package/dist/rings.js +61 -0
  105. package/dist/rings.js.map +1 -0
  106. package/dist/sandbox.d.ts +61 -0
  107. package/dist/sandbox.d.ts.map +1 -0
  108. package/dist/sandbox.js +199 -0
  109. package/dist/sandbox.js.map +1 -0
  110. package/dist/surface-parity.d.ts +45 -0
  111. package/dist/surface-parity.d.ts.map +1 -0
  112. package/dist/surface-parity.js +216 -0
  113. package/dist/surface-parity.js.map +1 -0
  114. package/dist/trust.d.ts +28 -0
  115. package/dist/trust.d.ts.map +1 -0
  116. package/dist/trust.js +209 -0
  117. package/dist/trust.js.map +1 -0
  118. package/dist/types.d.ts +422 -0
  119. package/dist/types.d.ts.map +1 -0
  120. package/dist/types.js +29 -0
  121. package/dist/types.js.map +1 -0
  122. package/dist/verify.d.ts +135 -0
  123. package/dist/verify.d.ts.map +1 -0
  124. package/dist/verify.js +356 -0
  125. package/dist/verify.js.map +1 -0
  126. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-client.js","sourceRoot":"","sources":["../../src/encryption/mesh-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export interface MessageHeader {
2
+ dhPublicKey: Uint8Array;
3
+ previousChainLength: number;
4
+ messageNumber: number;
5
+ }
6
+ export interface EncryptedMessage {
7
+ header: MessageHeader;
8
+ ciphertext: Uint8Array;
9
+ }
10
+ export interface RatchetState {
11
+ dhSelfPrivate: Uint8Array;
12
+ dhSelfPublic: Uint8Array;
13
+ dhRemotePublic: Uint8Array | null;
14
+ rootKey: Uint8Array;
15
+ chainKeySend: Uint8Array | null;
16
+ chainKeyRecv: Uint8Array | null;
17
+ sendMessageNumber: number;
18
+ recvMessageNumber: number;
19
+ previousSendChainLength: number;
20
+ skippedKeys: Map<string, Uint8Array>;
21
+ }
22
+ export declare class DoubleRatchet {
23
+ private state;
24
+ private maxSkip;
25
+ private constructor();
26
+ static initSender(sharedSecret: Uint8Array, remoteDHPublic: Uint8Array, maxSkip?: number): DoubleRatchet;
27
+ static initReceiver(sharedSecret: Uint8Array, dhKeyPair: {
28
+ privateKey: Uint8Array;
29
+ publicKey: Uint8Array;
30
+ }, maxSkip?: number): DoubleRatchet;
31
+ encrypt(plaintext: Uint8Array, associatedData?: Uint8Array): EncryptedMessage;
32
+ decrypt(message: EncryptedMessage, associatedData?: Uint8Array): Uint8Array;
33
+ private dhRatchetStep;
34
+ private skipMessages;
35
+ getState(): RatchetState;
36
+ static fromState(state: RatchetState, maxSkip?: number): DoubleRatchet;
37
+ }
38
+ //# sourceMappingURL=ratchet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratchet.d.ts","sourceRoot":"","sources":["../../src/encryption/ratchet.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,UAAU,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,UAAU,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACtC;AAiED,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAKP,MAAM,CAAC,UAAU,CACf,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,UAAU,EAC1B,OAAO,SAAW,GACjB,aAAa;IAsBhB,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAA;KAAE,EAC5D,OAAO,SAAW,GACjB,aAAa;IAkBhB,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,GAAE,UAA6B,GAAG,gBAAgB;IAuB/F,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,GAAE,UAA6B,GAAG,UAAU;IAgC7F,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,YAAY;IAyBpB,QAAQ,IAAI,YAAY;IAIxB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,SAAW,GAAG,aAAa;CAMzE"}
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.DoubleRatchet = void 0;
6
+ /**
7
+ * Double Ratchet algorithm for per-message forward secrecy.
8
+ *
9
+ * Spec: docs/specs/AGENTMESH-WIRE-1.0.md Section 8
10
+ * Reference: https://signal.org/docs/specifications/doubleratchet/ (CC0)
11
+ */
12
+ const ed25519_js_1 = require("@noble/curves/ed25519.js");
13
+ const chacha_js_1 = require("@noble/ciphers/chacha.js");
14
+ const hkdf_js_1 = require("@noble/hashes/hkdf.js");
15
+ const sha2_js_1 = require("@noble/hashes/sha2.js");
16
+ const hmac_js_1 = require("@noble/hashes/hmac.js");
17
+ const node_crypto_1 = require("node:crypto");
18
+ const randomBytes = (n) => {
19
+ const buf = new Uint8Array(n);
20
+ node_crypto_1.webcrypto.getRandomValues(buf);
21
+ return buf;
22
+ };
23
+ const KDF_INFO_RATCHET = new TextEncoder().encode("AgentMesh_Ratchet_v1");
24
+ const NONCE_LEN = 12;
25
+ const KEY_LEN = 32;
26
+ const MAX_SKIP = 100;
27
+ /**
28
+ * Aggregate cap on cached skipped keys across all DH rotations.
29
+ *
30
+ * The per-call cap (`maxSkip`) bounds a single skip burst within one
31
+ * receive chain; this cap bounds the lifetime accumulation. Without it,
32
+ * a session that survives many DH ratchet steps with persistent out-of-
33
+ * order tails grows `skippedKeys` without limit. Mirrors the Python
34
+ * core implementation (`_MAX_SKIPPED_KEYS_TOTAL`).
35
+ */
36
+ const MAX_SKIPPED_KEYS_TOTAL = 2000;
37
+ function generateDHPair() {
38
+ const privateKey = randomBytes(KEY_LEN);
39
+ const publicKey = ed25519_js_1.x25519.getPublicKey(privateKey);
40
+ return { privateKey, publicKey };
41
+ }
42
+ function kdfRoot(rootKey, dhOutput) {
43
+ const derived = (0, hkdf_js_1.hkdf)(sha2_js_1.sha256, dhOutput, rootKey, KDF_INFO_RATCHET, 64);
44
+ return [derived.slice(0, 32), derived.slice(32)];
45
+ }
46
+ function kdfChain(chainKey) {
47
+ const messageKey = (0, hmac_js_1.hmac)(sha2_js_1.sha256, chainKey, new Uint8Array([0x01]));
48
+ const nextChainKey = (0, hmac_js_1.hmac)(sha2_js_1.sha256, chainKey, new Uint8Array([0x02]));
49
+ return [messageKey, nextChainKey];
50
+ }
51
+ function encrypt(key, plaintext, aad) {
52
+ const nonce = randomBytes(NONCE_LEN);
53
+ const cipher = (0, chacha_js_1.chacha20poly1305)(key, nonce, aad);
54
+ const ct = cipher.encrypt(plaintext);
55
+ const result = new Uint8Array(NONCE_LEN + ct.length);
56
+ result.set(nonce, 0);
57
+ result.set(ct, NONCE_LEN);
58
+ return result;
59
+ }
60
+ function decrypt(key, data, aad) {
61
+ if (data.length < NONCE_LEN)
62
+ throw new Error("Ciphertext too short");
63
+ const nonce = data.slice(0, NONCE_LEN);
64
+ const ct = data.slice(NONCE_LEN);
65
+ const cipher = (0, chacha_js_1.chacha20poly1305)(key, nonce, aad);
66
+ return cipher.decrypt(ct);
67
+ }
68
+ function serializeHeader(h) {
69
+ const buf = new Uint8Array(40);
70
+ buf.set(h.dhPublicKey, 0);
71
+ const view = new DataView(buf.buffer);
72
+ view.setUint32(32, h.previousChainLength, false);
73
+ view.setUint32(36, h.messageNumber, false);
74
+ return buf;
75
+ }
76
+ function skippedKeyId(dhPub, n) {
77
+ return `${Buffer.from(dhPub).toString("hex")}:${n}`;
78
+ }
79
+ // Used to detect a DH ratchet step by comparing the locally-cached
80
+ // `dhRemotePublic` against the attacker-controlled header's `dhPublicKey`.
81
+ // The per-byte early-return loop leaked match-prefix length via timing; the
82
+ // X25519 public keys involved are exchanged in the clear over the wire so
83
+ // the leak yields no new information in the current protocol, but
84
+ // `crypto.timingSafeEqual` is the right primitive for key-shaped material
85
+ // and protects against the same comparison being lifted into a future caller
86
+ // that does treat the public key as sensitive (e.g. an unpublished one-time
87
+ // pre-key the recipient committed to but never broadcast).
88
+ function arraysEqual(a, b) {
89
+ if (a === null || b === null)
90
+ return a === b;
91
+ if (a.length !== b.length)
92
+ return false;
93
+ return (0, node_crypto_1.timingSafeEqual)(a, b);
94
+ }
95
+ class DoubleRatchet {
96
+ state;
97
+ maxSkip;
98
+ constructor(state, maxSkip) {
99
+ this.state = state;
100
+ this.maxSkip = maxSkip;
101
+ }
102
+ static initSender(sharedSecret, remoteDHPublic, maxSkip = MAX_SKIP) {
103
+ const dhSelf = generateDHPair();
104
+ const dhOutput = ed25519_js_1.x25519.getSharedSecret(dhSelf.privateKey, remoteDHPublic);
105
+ const [rootKey, chainKeySend] = kdfRoot(sharedSecret, dhOutput);
106
+ return new DoubleRatchet({
107
+ dhSelfPrivate: dhSelf.privateKey,
108
+ dhSelfPublic: dhSelf.publicKey,
109
+ dhRemotePublic: remoteDHPublic,
110
+ rootKey,
111
+ chainKeySend,
112
+ chainKeyRecv: null,
113
+ sendMessageNumber: 0,
114
+ recvMessageNumber: 0,
115
+ previousSendChainLength: 0,
116
+ skippedKeys: new Map(),
117
+ }, maxSkip);
118
+ }
119
+ static initReceiver(sharedSecret, dhKeyPair, maxSkip = MAX_SKIP) {
120
+ return new DoubleRatchet({
121
+ dhSelfPrivate: dhKeyPair.privateKey,
122
+ dhSelfPublic: dhKeyPair.publicKey,
123
+ dhRemotePublic: null,
124
+ rootKey: sharedSecret,
125
+ chainKeySend: null,
126
+ chainKeyRecv: null,
127
+ sendMessageNumber: 0,
128
+ recvMessageNumber: 0,
129
+ previousSendChainLength: 0,
130
+ skippedKeys: new Map(),
131
+ }, maxSkip);
132
+ }
133
+ encrypt(plaintext, associatedData = new Uint8Array()) {
134
+ const s = this.state;
135
+ if (!s.chainKeySend)
136
+ throw new Error("Send chain not initialized. Receive a message first.");
137
+ const [messageKey, nextChainKey] = kdfChain(s.chainKeySend);
138
+ s.chainKeySend = nextChainKey;
139
+ const header = {
140
+ dhPublicKey: s.dhSelfPublic,
141
+ previousChainLength: s.previousSendChainLength,
142
+ messageNumber: s.sendMessageNumber,
143
+ };
144
+ s.sendMessageNumber++;
145
+ const headerBytes = serializeHeader(header);
146
+ const aad = new Uint8Array(headerBytes.length + associatedData.length);
147
+ aad.set(associatedData, 0);
148
+ aad.set(headerBytes, associatedData.length);
149
+ const ciphertext = encrypt(messageKey, plaintext, aad);
150
+ return { header, ciphertext };
151
+ }
152
+ decrypt(message, associatedData = new Uint8Array()) {
153
+ const s = this.state;
154
+ const { header } = message;
155
+ const headerBytes = serializeHeader(header);
156
+ const aad = new Uint8Array(headerBytes.length + associatedData.length);
157
+ aad.set(associatedData, 0);
158
+ aad.set(headerBytes, associatedData.length);
159
+ // Check skipped keys
160
+ const skipId = skippedKeyId(header.dhPublicKey, header.messageNumber);
161
+ const skippedKey = s.skippedKeys.get(skipId);
162
+ if (skippedKey) {
163
+ s.skippedKeys.delete(skipId);
164
+ return decrypt(skippedKey, message.ciphertext, aad);
165
+ }
166
+ // DH ratchet step if sender's key changed
167
+ if (!arraysEqual(s.dhRemotePublic, header.dhPublicKey)) {
168
+ this.skipMessages(header.previousChainLength);
169
+ this.dhRatchetStep(header.dhPublicKey);
170
+ }
171
+ this.skipMessages(header.messageNumber);
172
+ const [messageKey, nextChainKey] = kdfChain(s.chainKeyRecv);
173
+ s.chainKeyRecv = nextChainKey;
174
+ s.recvMessageNumber++;
175
+ return decrypt(messageKey, message.ciphertext, aad);
176
+ }
177
+ dhRatchetStep(remoteDHPublic) {
178
+ const s = this.state;
179
+ s.previousSendChainLength = s.sendMessageNumber;
180
+ s.sendMessageNumber = 0;
181
+ s.recvMessageNumber = 0;
182
+ s.dhRemotePublic = remoteDHPublic;
183
+ let dhOutput = ed25519_js_1.x25519.getSharedSecret(s.dhSelfPrivate, s.dhRemotePublic);
184
+ [s.rootKey, s.chainKeyRecv] = kdfRoot(s.rootKey, dhOutput);
185
+ const newDH = generateDHPair();
186
+ s.dhSelfPrivate = newDH.privateKey;
187
+ s.dhSelfPublic = newDH.publicKey;
188
+ dhOutput = ed25519_js_1.x25519.getSharedSecret(s.dhSelfPrivate, s.dhRemotePublic);
189
+ [s.rootKey, s.chainKeySend] = kdfRoot(s.rootKey, dhOutput);
190
+ }
191
+ skipMessages(until) {
192
+ const s = this.state;
193
+ if (!s.chainKeyRecv)
194
+ return;
195
+ if (until - s.recvMessageNumber > this.maxSkip) {
196
+ throw new Error(`Too many skipped messages (${until - s.recvMessageNumber} > ${this.maxSkip})`);
197
+ }
198
+ while (s.recvMessageNumber < until) {
199
+ const [mk, next] = kdfChain(s.chainKeyRecv);
200
+ s.skippedKeys.set(skippedKeyId(s.dhRemotePublic, s.recvMessageNumber), mk);
201
+ s.chainKeyRecv = next;
202
+ s.recvMessageNumber++;
203
+ // Evict the oldest skipped key once the aggregate cap is exceeded.
204
+ // ES2015+ `Map` iteration order is insertion order, so the first
205
+ // key returned is the oldest insertion that survived all prior
206
+ // evictions. Mirrors the Python core implementation.
207
+ while (s.skippedKeys.size > MAX_SKIPPED_KEYS_TOTAL) {
208
+ const oldest = s.skippedKeys.keys().next();
209
+ if (oldest.done)
210
+ break;
211
+ s.skippedKeys.delete(oldest.value);
212
+ }
213
+ }
214
+ }
215
+ getState() {
216
+ return { ...this.state, skippedKeys: new Map(this.state.skippedKeys) };
217
+ }
218
+ static fromState(state, maxSkip = MAX_SKIP) {
219
+ return new DoubleRatchet({ ...state, skippedKeys: new Map(state.skippedKeys) }, maxSkip);
220
+ }
221
+ }
222
+ exports.DoubleRatchet = DoubleRatchet;
223
+ //# sourceMappingURL=ratchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratchet.js","sourceRoot":"","sources":["../../src/encryption/ratchet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { type PreKeyBundle } from "./x3dh";
2
+ export interface RegistryClientOptions {
3
+ /** Base URL, e.g. "http://registry:8082" (no trailing /v1). */
4
+ baseUrl: string;
5
+ /**
6
+ * Optional fetch implementation. Defaults to global fetch.
7
+ * Override for proxy tunneling or test injection.
8
+ */
9
+ fetchImpl?: typeof fetch;
10
+ /**
11
+ * Optional Ed25519-Timestamp signer. When set, the client adds the
12
+ * Authorization header to every request.
13
+ */
14
+ authSigner?: {
15
+ did: string;
16
+ sign: (msg: Uint8Array) => Uint8Array;
17
+ };
18
+ /** Per-request timeout in ms (default 10_000). */
19
+ timeoutMs?: number;
20
+ /** Number of retry attempts for 5xx / network errors (default 2). */
21
+ maxRetries?: number;
22
+ /** Base retry delay in ms (default 250). */
23
+ retryBaseDelayMs?: number;
24
+ }
25
+ export interface AgentRecord {
26
+ did: string;
27
+ capabilities: string[];
28
+ metadata: Record<string, string>;
29
+ registeredAt: Date;
30
+ lastSeen: Date;
31
+ reputationScore: number;
32
+ }
33
+ export interface DiscoverResult {
34
+ did: string;
35
+ capabilities: string[];
36
+ reputationScore: number;
37
+ lastSeen: Date;
38
+ }
39
+ export declare class RegistryError extends Error {
40
+ readonly status: number;
41
+ readonly body: string;
42
+ constructor(message: string, status: number, body: string);
43
+ }
44
+ export declare class RegistryClient {
45
+ private readonly baseUrl;
46
+ private readonly fetchImpl;
47
+ private readonly authSigner?;
48
+ private readonly timeoutMs;
49
+ private readonly maxRetries;
50
+ private readonly retryBaseDelayMs;
51
+ constructor(opts: RegistryClientOptions);
52
+ /**
53
+ * Register the agent in the registry. Idempotent: a 409 response
54
+ * (already registered) resolves successfully without throwing.
55
+ *
56
+ * @param did Client-supplied DID hint. Ignored when `popSigner`
57
+ * is provided (the server derives the canonical
58
+ * `did:mesh:<sha256(public_key)[:32]>` itself); kept
59
+ * for back-compat with pre-2533 (May-23-2026)
60
+ * registries that accept a body-supplied DID.
61
+ * @param identityKey When `popSigner` is set: the **Ed25519** identity
62
+ * public key (32 bytes). The server verifies the
63
+ * proof against this key.
64
+ * When `popSigner` is unset: legacy X25519 public
65
+ * key path, preserves the old wire shape.
66
+ * @param capabilities Capability strings the agent advertises. Include
67
+ * friendly display name here so peers can find this
68
+ * agent via `discover(name)`.
69
+ * @param metadata Arbitrary string metadata (e.g. {display_name}).
70
+ * @param popSigner Optional Ed25519 signer. When set, the client
71
+ * attaches proof-of-possession (the new wire
72
+ * shape introduced by AGT PR #2533, mandatory on
73
+ * registries built from main after 2026-05-23).
74
+ * Required by `ghcr.io/microsoft/agentmesh/registry:4.0.0+`.
75
+ * @returns The canonical agent DID (server-derived when popSigner is
76
+ * set; falls back to the caller-supplied `did` otherwise).
77
+ */
78
+ register(did: string, identityKey: Uint8Array, capabilities?: string[], metadata?: Record<string, string>, popSigner?: {
79
+ sign: (msg: Uint8Array) => Uint8Array;
80
+ }): Promise<{
81
+ did: string;
82
+ }>;
83
+ /** Look up an agent record. Returns null on 404. */
84
+ getAgent(did: string): Promise<AgentRecord | null>;
85
+ /** Deregister an agent. */
86
+ deleteAgent(did: string): Promise<void>;
87
+ /**
88
+ * Upload a pre-key bundle. Replaces any existing bundle for this DID.
89
+ *
90
+ * @param identityKey X25519 long-term key (32 bytes).
91
+ * @param identityKeyEd Ed25519 signing key (32 bytes) — REQUIRED for
92
+ * receivers to verify the signed pre-key signature.
93
+ * Pass `keyManager.identityKeyEd`.
94
+ * @param signedPreKey Output of X3DHKeyManager.generateSignedPreKey()
95
+ * @param oneTimePreKeys Output of X3DHKeyManager.generateOneTimePreKeys(N)
96
+ */
97
+ uploadPrekeys(did: string, identityKey: Uint8Array, identityKeyEd: Uint8Array, signedPreKey: {
98
+ keyId: number;
99
+ publicKey: Uint8Array;
100
+ signature: Uint8Array;
101
+ }, oneTimePreKeys: ReadonlyArray<{
102
+ keyId: number;
103
+ publicKey: Uint8Array;
104
+ }>): Promise<void>;
105
+ /**
106
+ * Fetch a peer's pre-key bundle for X3DH initiation. Atomically
107
+ * consumes one OPK on the registry side. Returns null on 404 (no
108
+ * bundle published).
109
+ *
110
+ * The returned PreKeyBundle is shaped for direct use with
111
+ * SecureChannel.createSender() / X3DHKeyManager.
112
+ *
113
+ * `identityKeyEd` (Ed25519, used to verify the signed pre-key
114
+ * signature) is included when the publisher uploaded it via
115
+ * `uploadPrekeys()`. Bundles that lack identity_key_ed (older clients)
116
+ * will fail verifyBundle() — peers must upgrade.
117
+ */
118
+ fetchPrekeys(did: string): Promise<PreKeyBundle | null>;
119
+ /**
120
+ * Search agents by capability. Capability matching on the registry
121
+ * side is exact-string (no globs); to find a friendly name, the agent
122
+ * must have published that name in its capabilities array at register
123
+ * time.
124
+ */
125
+ discover(capability: string, limit?: number): Promise<DiscoverResult[]>;
126
+ private request;
127
+ private requestOnce;
128
+ private delay;
129
+ }
130
+ /**
131
+ * Build an authSigner suitable for RegistryClientOptions.authSigner
132
+ * from a 32-byte Ed25519 secret key. This is a thin wrapper around
133
+ * @noble/curves so callers don't need to import noble themselves.
134
+ */
135
+ export declare function ed25519AuthSigner(did: string, ed25519PrivateKey: Uint8Array): NonNullable<RegistryClientOptions["authSigner"]>;
136
+ //# sourceMappingURL=registry-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../../src/encryption/registry-client.ts"],"names":[],"mappings":"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"}