@7h3/protocol 0.5.6 → 0.6.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/index.js CHANGED
@@ -147,7 +147,7 @@ async function me(e, t) {
147
147
  async function he(e, t, n) {
148
148
  return !t || t.alg !== n.alg ? !1 : n.alg === "HS256" ? fe(e, t.value, n.secret) : x(e, t.value, n.publicKey);
149
149
  }
150
- var ge = 864e5;
150
+ var ge = 864e5, _e = 3e4;
151
151
  function E(e, t = Date.now()) {
152
152
  let n = [], r = e.header ?? {}, i = e.body ?? {}, a = typeof r.version == "string" ? r.version : "", o = typeof r.messageId == "string" ? r.messageId : "", s = typeof r.sender == "string" ? r.sender : "", c = typeof r.nonce == "string" ? r.nonce : "", l = typeof r.timestampMs == "number" && Number.isFinite(r.timestampMs) ? r.timestampMs : NaN, u = typeof r.ttlMs == "number" && Number.isFinite(r.ttlMs) ? r.ttlMs : NaN, d = typeof i.content == "string" ? i.content : "";
153
153
  return a !== "7h3/0.1" && n.push({
@@ -174,6 +174,9 @@ function E(e, t = Date.now()) {
174
174
  })) : n.push({
175
175
  level: "error",
176
176
  message: "ttlMs must be a finite number"
177
+ }), Number.isFinite(l) && l > t + 3e4 && n.push({
178
+ level: "error",
179
+ message: `timestampMs is more than ${_e} ms in the future`
177
180
  }), Number.isFinite(l) && Number.isFinite(u) && l + u < t && n.push({
178
181
  level: "error",
179
182
  message: "Message TTL expired"
@@ -204,12 +207,12 @@ function D(e) {
204
207
  }
205
208
  //#endregion
206
209
  //#region src/protocolBinary.ts
207
- var _e = [
210
+ var ve = [
208
211
  65,
209
212
  73,
210
213
  80,
211
214
  66
212
- ], ve = Uint8Array.from(_e), ye = 1, be = 1024 * 1024, xe = 1, Se = 2, Ce = 4, we = 8, Te = new TextEncoder(), Ee = new TextDecoder(), De = /* @__PURE__ */ new Set([
215
+ ], ye = Uint8Array.from(ve), be = 1, xe = 1024 * 1024, Se = 1, Ce = 2, we = 4, Te = 8, Ee = new TextEncoder(), De = new TextDecoder(), Oe = /* @__PURE__ */ new Set([
213
216
  "PING",
214
217
  "PONG",
215
218
  "CAPS",
@@ -217,25 +220,25 @@ var _e = [
217
220
  "RESULT",
218
221
  "ERROR"
219
222
  ]);
220
- function Oe(e) {
221
- return Te.encode(e);
222
- }
223
223
  function ke(e) {
224
- return Ee.decode(e);
224
+ return Ee.encode(e);
225
225
  }
226
226
  function Ae(e) {
227
- return e === "ED25519" ? 2 : 1;
227
+ return De.decode(e);
228
228
  }
229
229
  function je(e) {
230
+ return e === "ED25519" ? 2 : 1;
231
+ }
232
+ function Me(e) {
230
233
  return e === 1 ? "HS256" : e === 2 ? "ED25519" : null;
231
234
  }
232
235
  function O(e) {
233
- return { bytes: Oe(e) };
236
+ return { bytes: ke(e) };
234
237
  }
235
238
  function k(e) {
236
239
  return e ? 4 + e.bytes.byteLength : 0;
237
240
  }
238
- var Me = class {
241
+ var Ne = class {
239
242
  bytes;
240
243
  view;
241
244
  offset = 0;
@@ -260,7 +263,7 @@ var Me = class {
260
263
  finish() {
261
264
  return this.bytes;
262
265
  }
263
- }, Ne = class {
266
+ }, Pe = class {
264
267
  bytes;
265
268
  offset = 0;
266
269
  constructor(e) {
@@ -291,14 +294,14 @@ var Me = class {
291
294
  }
292
295
  readString() {
293
296
  let e = this.readU32();
294
- return ke(this.readBytes(e));
297
+ return Ae(this.readBytes(e));
295
298
  }
296
299
  };
297
- function Pe(e) {
298
- let t = (e.header.recipient ? xe : 0) | (e.body.capability ? Se : 0) | (e.body.correlationId ? Ce : 0) | (e.signature ? we : 0), n = O(e.header.version), r = O(e.header.messageId), i = O(e.header.sender), a = O(e.header.nonce), o = O(e.body.intent), s = O(e.body.content), c = e.header.recipient ? O(e.header.recipient) : null, l = e.body.capability ? O(e.body.capability) : null, u = e.body.correlationId ? O(e.body.correlationId) : null, d = e.signature ? O(e.signature.keyId) : null, f = e.signature ? O(e.signature.value) : null, p = new Me(ve.byteLength + 1 + 1 + 8 + 4 + k(n) + k(r) + k(i) + k(a) + k(o) + k(s) + k(c) + k(l) + k(u) + +!!e.signature + k(d) + k(f));
299
- return p.writeBytes(ve), p.writeU8(ye), p.writeU8(t), p.writeU64(e.header.timestampMs), p.writeU32(e.header.ttlMs), p.writeString(n), p.writeString(r), p.writeString(i), p.writeString(a), p.writeString(o), p.writeString(s), c && p.writeString(c), l && p.writeString(l), u && p.writeString(u), e.signature && d && f && (p.writeU8(Ae(e.signature.alg)), p.writeString(d), p.writeString(f)), p.finish();
300
+ function Fe(e) {
301
+ let t = (e.header.recipient ? Se : 0) | (e.body.capability ? Ce : 0) | (e.body.correlationId ? we : 0) | (e.signature ? Te : 0), n = O(e.header.version), r = O(e.header.messageId), i = O(e.header.sender), a = O(e.header.nonce), o = O(e.body.intent), s = O(e.body.content), c = e.header.recipient ? O(e.header.recipient) : null, l = e.body.capability ? O(e.body.capability) : null, u = e.body.correlationId ? O(e.body.correlationId) : null, d = e.signature ? O(e.signature.keyId) : null, f = e.signature ? O(e.signature.value) : null, p = new Ne(ye.byteLength + 1 + 1 + 8 + 4 + k(n) + k(r) + k(i) + k(a) + k(o) + k(s) + k(c) + k(l) + k(u) + +!!e.signature + k(d) + k(f));
302
+ return p.writeBytes(ye), p.writeU8(be), p.writeU8(t), p.writeU64(e.header.timestampMs), p.writeU32(e.header.ttlMs), p.writeString(n), p.writeString(r), p.writeString(i), p.writeString(a), p.writeString(o), p.writeString(s), c && p.writeString(c), l && p.writeString(l), u && p.writeString(u), e.signature && d && f && (p.writeU8(je(e.signature.alg)), p.writeString(d), p.writeString(f)), p.finish();
300
303
  }
301
- function Fe(e, t = {}) {
304
+ function Ie(e, t = {}) {
302
305
  try {
303
306
  let n = t.maxFrameBytes ?? 1048576;
304
307
  if (e.byteLength > n) return {
@@ -309,13 +312,13 @@ function Fe(e, t = {}) {
309
312
  }],
310
313
  envelope: null
311
314
  };
312
- let r = new Ne(e);
315
+ let r = new Pe(e);
313
316
  if ([
314
317
  r.readU8(),
315
318
  r.readU8(),
316
319
  r.readU8(),
317
320
  r.readU8()
318
- ].some((e, t) => e !== _e[t])) return {
321
+ ].some((e, t) => e !== ve[t])) return {
319
322
  ok: !1,
320
323
  diagnostics: [{
321
324
  level: "error",
@@ -324,7 +327,7 @@ function Fe(e, t = {}) {
324
327
  envelope: null
325
328
  };
326
329
  let i = r.readU8();
327
- if (i !== ye) return {
330
+ if (i !== be) return {
328
331
  ok: !1,
329
332
  diagnostics: [{
330
333
  level: "error",
@@ -354,7 +357,7 @@ function Fe(e, t = {}) {
354
357
  }],
355
358
  envelope: null
356
359
  };
357
- if (!De.has(c.body.intent)) return {
360
+ if (!Oe.has(c.body.intent)) return {
358
361
  ok: !1,
359
362
  diagnostics: [{
360
363
  level: "error",
@@ -362,8 +365,8 @@ function Fe(e, t = {}) {
362
365
  }],
363
366
  envelope: null
364
367
  };
365
- if (a & xe && (c.header.recipient = r.readString()), a & Se && (c.body.capability = r.readString()), a & Ce && (c.body.correlationId = r.readString()), a & we) {
366
- let e = r.readU8(), t = je(e);
368
+ if (a & Se && (c.header.recipient = r.readString()), a & Ce && (c.body.capability = r.readString()), a & we && (c.body.correlationId = r.readString()), a & Te) {
369
+ let e = r.readU8(), t = Me(e);
367
370
  if (!t) return {
368
371
  ok: !1,
369
372
  diagnostics: [{
@@ -403,7 +406,7 @@ function Fe(e, t = {}) {
403
406
  }
404
407
  //#endregion
405
408
  //#region src/protocolReplay.ts
406
- var Ie = class {
409
+ var Le = class {
407
410
  items = [];
408
411
  peek() {
409
412
  return this.items[0];
@@ -439,7 +442,7 @@ var Ie = class {
439
442
  }, A = class {
440
443
  entries = /* @__PURE__ */ new Map();
441
444
  maxEntries;
442
- expiries = new Ie();
445
+ expiries = new Le();
443
446
  constructor(e = 1e4) {
444
447
  this.maxEntries = e;
445
448
  }
@@ -489,7 +492,7 @@ var Ie = class {
489
492
  consumeMany(e, t = Date.now()) {
490
493
  return e.map((e) => this.consume(e, t));
491
494
  }
492
- }, Le = class {
495
+ }, Re = class {
493
496
  store;
494
497
  constructor(e) {
495
498
  this.store = e;
@@ -520,7 +523,7 @@ var Ie = class {
520
523
  }
521
524
  return Promise.all(e.map((e) => this.consume(e, t)));
522
525
  }
523
- }, Re = class {
526
+ }, ze = class {
524
527
  entries = /* @__PURE__ */ new Map();
525
528
  maxEntries;
526
529
  constructor(e = 512) {
@@ -550,20 +553,20 @@ var Ie = class {
550
553
  this.entries.delete(e);
551
554
  }
552
555
  };
553
- function ze(e, t) {
556
+ function Be(e, t) {
554
557
  return `${t}|${e.alg}|${e.keyId}`;
555
558
  }
556
- function Be(e) {
559
+ function Ve(e) {
557
560
  if (!e || typeof e != "object") return !1;
558
561
  let t = e;
559
562
  return !!(t.header && t.body);
560
563
  }
561
- function Ve(e) {
564
+ function He(e) {
562
565
  if (!e || typeof e != "object") return !1;
563
566
  let t = e;
564
567
  return t.v === "7h3/0.1" && typeof t.mid == "string" && typeof t.i == "string";
565
568
  }
566
- function He(e) {
569
+ function Ue(e) {
567
570
  return {
568
571
  header: {
569
572
  version: e.v,
@@ -587,7 +590,7 @@ function He(e) {
587
590
  } : void 0
588
591
  };
589
592
  }
590
- function Ue(e) {
593
+ function We(e) {
591
594
  return {
592
595
  v: e.header.version,
593
596
  mid: e.header.messageId,
@@ -607,15 +610,15 @@ function Ue(e) {
607
610
  } : void 0
608
611
  };
609
612
  }
610
- function We(e) {
611
- if (e instanceof Uint8Array) return Fe(e);
613
+ function Ge(e) {
614
+ if (e instanceof Uint8Array) return Ie(e);
612
615
  try {
613
616
  let t = JSON.parse(e);
614
- return Ve(t) ? {
617
+ return He(t) ? {
615
618
  ok: !0,
616
619
  diagnostics: [],
617
- envelope: He(t)
618
- } : Be(t) ? {
620
+ envelope: Ue(t)
621
+ } : Ve(t) ? {
619
622
  ok: !0,
620
623
  diagnostics: [],
621
624
  envelope: t
@@ -639,19 +642,19 @@ function We(e) {
639
642
  }
640
643
  }
641
644
  function j(e, t = "json") {
642
- return t === "binary" ? Pe(e) : JSON.stringify(t === "compact" ? Ue(e) : e);
645
+ return t === "binary" ? Fe(e) : JSON.stringify(t === "compact" ? We(e) : e);
643
646
  }
644
- function Ge(e, t = "compact") {
645
- return JSON.stringify(t === "compact" ? e.map(Ue) : e);
647
+ function Ke(e, t = "compact") {
648
+ return JSON.stringify(t === "compact" ? e.map(We) : e);
646
649
  }
647
- function Ke(e) {
650
+ function qe(e) {
648
651
  try {
649
652
  let t = JSON.parse(e);
650
- return Array.isArray(t) ? t.map((e) => Ve(e) ? {
653
+ return Array.isArray(t) ? t.map((e) => He(e) ? {
651
654
  ok: !0,
652
655
  diagnostics: [],
653
- envelope: He(e)
654
- } : Be(e) ? {
656
+ envelope: Ue(e)
657
+ } : Ve(e) ? {
655
658
  ok: !0,
656
659
  diagnostics: [],
657
660
  envelope: e
@@ -689,7 +692,7 @@ async function M(e, t = {}) {
689
692
  ...e
690
693
  });
691
694
  }
692
- let o = typeof e == "string" || e instanceof Uint8Array ? We(e) : {
695
+ let o = typeof e == "string" || e instanceof Uint8Array ? Ge(e) : {
693
696
  ok: !0,
694
697
  diagnostics: [],
695
698
  envelope: e
@@ -747,7 +750,7 @@ async function M(e, t = {}) {
747
750
  diagnostics: s,
748
751
  envelope: o.envelope
749
752
  });
750
- let c, l = o.envelope.signature, u = ze(l, o.envelope.header.sender);
753
+ let c, l = o.envelope.signature, u = Be(l, o.envelope.header.sender);
751
754
  if (t.verificationMaterialCache && (c = t.verificationMaterialCache.get(u, n)), t.signatureResolver && (c ??= await t.signatureResolver(l, o.envelope.header.sender)), !c && l.alg === "HS256" && t.secretResolver) {
752
755
  let e = await t.secretResolver(l.keyId, o.envelope.header.sender);
753
756
  e && (c = {
@@ -814,7 +817,7 @@ async function M(e, t = {}) {
814
817
  envelope: o.envelope
815
818
  };
816
819
  }
817
- async function qe(e, t = {}) {
820
+ async function Je(e, t = {}) {
818
821
  let n = Math.max(1, Math.floor(t.batchConcurrency ?? Infinity));
819
822
  return (async (e) => {
820
823
  let r = Array(e.length), i = 0, a = Number.isFinite(n) ? Math.min(n, e.length) : e.length;
@@ -830,15 +833,15 @@ async function qe(e, t = {}) {
830
833
  nowMs: t.nowMs ?? Date.now(),
831
834
  reason: `items=${e.length};accepted=${r.filter((e) => e?.ok).length}`
832
835
  }), r;
833
- })(typeof e == "string" ? Ke(e).map((e) => e.ok && e.envelope ? e.envelope : e) : e);
836
+ })(typeof e == "string" ? qe(e).map((e) => e.ok && e.envelope ? e.envelope : e) : e);
834
837
  }
835
- var Je = class {
838
+ var Ye = class {
836
839
  options;
837
840
  constructor(e = {}) {
838
841
  this.options = {
839
842
  ...e,
840
843
  replayCache: e.replayCache ?? new A(),
841
- verificationMaterialCache: e.verificationMaterialCache ?? new Re()
844
+ verificationMaterialCache: e.verificationMaterialCache ?? new ze()
842
845
  };
843
846
  }
844
847
  receive(e, t = Date.now()) {
@@ -848,23 +851,23 @@ var Je = class {
848
851
  });
849
852
  }
850
853
  receiveBatch(e, t = Date.now()) {
851
- return qe(e, {
854
+ return Je(e, {
852
855
  ...this.options,
853
856
  nowMs: t
854
857
  });
855
858
  }
856
859
  };
857
- async function Ye(e) {
860
+ async function Xe(e) {
858
861
  return S(D(e), e.secret, e.keyId);
859
862
  }
860
863
  //#endregion
861
864
  //#region src/protocolCapabilities.ts
862
- var Xe = [
865
+ var Ze = [
863
866
  "binary",
864
867
  "compact",
865
868
  "json"
866
- ], Ze = ["fast", "receipt"];
867
- function Qe(e) {
869
+ ], Qe = ["fast", "receipt"];
870
+ function $e(e) {
868
871
  return {
869
872
  agent: e.agent,
870
873
  capabilities: e.capabilities ?? [],
@@ -873,10 +876,10 @@ function Qe(e) {
873
876
  ackModes: e.ackModes ?? ["receipt"]
874
877
  };
875
878
  }
876
- function $e(e) {
879
+ function et(e) {
877
880
  return JSON.stringify(e);
878
881
  }
879
- function et(e) {
882
+ function tt(e) {
880
883
  try {
881
884
  let t = JSON.parse(e);
882
885
  return typeof t.agent != "string" || !Array.isArray(t.capabilities) || !Array.isArray(t.wireFormats) || !Array.isArray(t.ackModes) || typeof t.batchMax != "number" || t.batchMax < 1 ? null : {
@@ -890,8 +893,8 @@ function et(e) {
890
893
  return null;
891
894
  }
892
895
  }
893
- function tt(e, t) {
894
- let n = Xe.find((n) => e.wireFormats.includes(n) && t.wireFormats.includes(n)) ?? "compact", r = Ze.find((n) => e.ackModes.includes(n) && t.ackModes.includes(n)) ?? "receipt";
896
+ function nt(e, t) {
897
+ let n = Ze.find((n) => e.wireFormats.includes(n) && t.wireFormats.includes(n)) ?? "compact", r = Qe.find((n) => e.ackModes.includes(n) && t.ackModes.includes(n)) ?? "receipt";
895
898
  return {
896
899
  wireFormat: n,
897
900
  batchMax: Math.max(1, Math.min(e.batchMax, t.batchMax)),
@@ -900,7 +903,7 @@ function tt(e, t) {
900
903
  }
901
904
  //#endregion
902
905
  //#region src/keyRotation.ts
903
- var nt = class {
906
+ var rt = class {
904
907
  records;
905
908
  constructor(e = []) {
906
909
  this.records = [...e];
@@ -919,12 +922,12 @@ var nt = class {
919
922
  return this.records.filter((r) => r.sender === t && r.keyId === e.keyId && r.alg === e.alg && r.status !== "revoked" && r.notBeforeMs <= n && n < r.notAfterMs).sort((e, t) => t.notBeforeMs - e.notBeforeMs)[0]?.material;
920
923
  }
921
924
  };
922
- function rt(e, t = () => Date.now()) {
925
+ function it(e, t = () => Date.now()) {
923
926
  return async (n, r) => e.resolveVerificationMaterial(n, r, t());
924
927
  }
925
928
  //#endregion
926
929
  //#region src/protocolAgent.ts
927
- var it = class {
930
+ var at = class {
928
931
  agentId;
929
932
  outboundSecret;
930
933
  keyId;
@@ -989,7 +992,7 @@ var it = class {
989
992
  if (e.body.intent === "CAPS") return this.createSignedIntent({
990
993
  recipient: e.header.sender,
991
994
  intent: "RESULT",
992
- content: $e(Qe({
995
+ content: et($e({
993
996
  agent: this.agentId,
994
997
  capabilities: this.capabilities,
995
998
  wireFormats: this.supportedWireFormats,
@@ -1017,11 +1020,11 @@ var it = class {
1017
1020
  }
1018
1021
  return null;
1019
1022
  }
1020
- }, at = class {
1023
+ }, ot = class {
1021
1024
  session;
1022
1025
  wireFormat;
1023
1026
  constructor(e) {
1024
- this.session = new it(e), this.wireFormat = e.wireFormat ?? "compact";
1027
+ this.session = new at(e), this.wireFormat = e.wireFormat ?? "compact";
1025
1028
  }
1026
1029
  toRaw(e) {
1027
1030
  return j(e, this.wireFormat);
@@ -1038,12 +1041,12 @@ var it = class {
1038
1041
  return r.response && await t(this.toRaw(r.response), r.response), r;
1039
1042
  }
1040
1043
  };
1041
- function ot(e) {
1042
- return new at(e);
1044
+ function st(e) {
1045
+ return new ot(e);
1043
1046
  }
1044
1047
  //#endregion
1045
1048
  //#region src/frameworkAdapters.ts
1046
- async function st(e, t, n = {}) {
1049
+ async function ct(e, t, n = {}) {
1047
1050
  return e.createRawIntent({
1048
1051
  recipient: n.recipient,
1049
1052
  intent: "TASK",
@@ -1052,7 +1055,7 @@ async function st(e, t, n = {}) {
1052
1055
  correlationId: n.correlationId
1053
1056
  });
1054
1057
  }
1055
- function ct(e) {
1058
+ function lt(e) {
1056
1059
  return {
1057
1060
  content: e.body.content,
1058
1061
  name: e.body.intent,
@@ -1066,7 +1069,7 @@ function ct(e) {
1066
1069
  }
1067
1070
  };
1068
1071
  }
1069
- async function lt(e, t, n = {}) {
1072
+ async function ut(e, t, n = {}) {
1070
1073
  return e.createRawIntent({
1071
1074
  recipient: n.recipient,
1072
1075
  intent: "TASK",
@@ -1075,7 +1078,7 @@ async function lt(e, t, n = {}) {
1075
1078
  correlationId: n.correlationId
1076
1079
  });
1077
1080
  }
1078
- function ut(e) {
1081
+ function dt(e) {
1079
1082
  return {
1080
1083
  role: e.body.intent === "TASK" ? "user" : "assistant",
1081
1084
  content: e.body.content,
@@ -1088,15 +1091,15 @@ function ut(e) {
1088
1091
  }
1089
1092
  };
1090
1093
  }
1091
- function dt(e) {
1094
+ function ft(e) {
1092
1095
  return `mcp.${e}`;
1093
1096
  }
1094
- async function ft(e, t, n = {}) {
1097
+ async function pt(e, t, n = {}) {
1095
1098
  async function r(e) {
1096
1099
  n.onPolicyEvent && await n.onPolicyEvent(e);
1097
1100
  }
1098
1101
  if (n.allowedMethods && !n.allowedMethods.includes(t.method)) {
1099
- let e = n.methodToCapability ? n.methodToCapability(t.method) : dt(t.method), i = {
1102
+ let e = n.methodToCapability ? n.methodToCapability(t.method) : ft(t.method), i = {
1100
1103
  intent: "TASK",
1101
1104
  recipient: n.recipient,
1102
1105
  capability: e,
@@ -1111,7 +1114,7 @@ async function ft(e, t, n = {}) {
1111
1114
  reason: "method_not_allowed"
1112
1115
  }), Error(`JSON-RPC method '${t.method}' is not allowed`);
1113
1116
  }
1114
- let i = n.methodToCapability ? n.methodToCapability(t.method) : dt(t.method), a = {
1117
+ let i = n.methodToCapability ? n.methodToCapability(t.method) : ft(t.method), a = {
1115
1118
  intent: "TASK",
1116
1119
  recipient: n.recipient,
1117
1120
  capability: i,
@@ -1165,7 +1168,7 @@ async function ft(e, t, n = {}) {
1165
1168
  })
1166
1169
  });
1167
1170
  }
1168
- function pt(e, t, n = {}) {
1171
+ function mt(e, t, n = {}) {
1169
1172
  if (e.body.intent === "ERROR") return {
1170
1173
  jsonrpc: "2.0",
1171
1174
  id: t,
@@ -1192,16 +1195,16 @@ function pt(e, t, n = {}) {
1192
1195
  }
1193
1196
  //#endregion
1194
1197
  //#region src/runtimePolicy.ts
1195
- function mt(e) {
1198
+ function ht(e) {
1196
1199
  return typeof e == "object" && !!e && !Array.isArray(e);
1197
1200
  }
1198
- function ht(e, t) {
1201
+ function gt(e, t) {
1199
1202
  if (typeof e != "string" || e.trim().length === 0) throw Error(`Invalid runtime policy: '${t}' must be a non-empty string`);
1200
1203
  return e;
1201
1204
  }
1202
- function gt(e) {
1203
- if (!mt(e)) throw Error("Invalid runtime policy: root must be an object");
1204
- let t = ht(e.version, "version"), n = ht(e.name, "name"), r = ht(e.status, "status");
1205
+ function _t(e) {
1206
+ if (!ht(e)) throw Error("Invalid runtime policy: root must be an object");
1207
+ let t = gt(e.version, "version"), n = gt(e.name, "name"), r = gt(e.status, "status");
1205
1208
  return {
1206
1209
  ...e,
1207
1210
  version: t,
@@ -1209,7 +1212,7 @@ function gt(e) {
1209
1212
  status: r
1210
1213
  };
1211
1214
  }
1212
- function _t(e) {
1215
+ function vt(e) {
1213
1216
  let t;
1214
1217
  try {
1215
1218
  t = JSON.parse(e);
@@ -1217,9 +1220,9 @@ function _t(e) {
1217
1220
  let t = e instanceof Error ? e.message : String(e);
1218
1221
  throw Error(`Invalid runtime policy JSON: ${t}`, { cause: e });
1219
1222
  }
1220
- return gt(t);
1223
+ return _t(t);
1221
1224
  }
1222
- async function vt(e) {
1225
+ async function yt(e) {
1223
1226
  if (typeof fetch == "function") {
1224
1227
  let t = await fetch(e);
1225
1228
  if (!t.ok) throw Error(`Failed to fetch runtime policy at '${e}': ${t.status} ${t.statusText}`);
@@ -1227,26 +1230,26 @@ async function vt(e) {
1227
1230
  }
1228
1231
  throw Error("No default runtime file reader available in this environment. Provide 'readTextFile' in loadRuntimePolicy(options).");
1229
1232
  }
1230
- async function yt(e = {}) {
1233
+ async function bt(e = {}) {
1231
1234
  let t = e.path ?? "AI_RUNTIME_POLICY.json";
1232
- return _t(await (e.readTextFile ?? vt)(t));
1235
+ return vt(await (e.readTextFile ?? yt)(t));
1233
1236
  }
1234
1237
  //#endregion
1235
1238
  //#region src/policyEnforcer.ts
1236
- function bt(e, t) {
1239
+ function xt(e, t) {
1237
1240
  if (!Array.isArray(e) || e.length !== 2) throw Error(`Invalid policy tuning range '${t}': expected [min,max]`);
1238
1241
  let n = Number(e[0]), r = Number(e[1]);
1239
1242
  if (!Number.isFinite(n) || !Number.isFinite(r) || n <= 0 || r < n) throw Error(`Invalid policy tuning range '${t}': expected positive ascending numbers`);
1240
1243
  return [Math.floor(n), Math.floor(r)];
1241
1244
  }
1242
- function xt(e) {
1245
+ function St(e) {
1243
1246
  return e === "http" || e === "ws" || e === "http-binary" || e === "http-batch" || e === "http-binary-batch" || e === "ws-batch" || e === "ws-binary" || e === "ws-binary-batch";
1244
1247
  }
1245
- function St(e) {
1248
+ function Ct(e) {
1246
1249
  let t = Number((e.slo_defaults ?? {}).drop_pct_max ?? .1), n = Number((e.slo_defaults ?? {}).p99_ms_max ?? 20), r = Number((e.tuning ?? {}).max_retry_attempts ?? 3), i = Array.isArray((e.tuning ?? {}).retriable_status_codes) ? (e.tuning ?? {}).retriable_status_codes.map((e) => Number(e)).filter((e) => Number.isFinite(e)) : [503], a = e.tuning ?? {}, o = a.batch_size, s = a.inflight_cap, c = a.retry_backoff_ms, l = (e) => ({
1247
- batchSizeRange: bt(o?.[`${e}_traffic`], `batch_size.${e}_traffic`),
1248
- inflightCapRange: bt(s?.[`${e}_traffic`], `inflight_cap.${e}_traffic`),
1249
- retryBackoffMsRange: bt(c?.[`${e}_traffic`], `retry_backoff_ms.${e}_traffic`)
1250
+ batchSizeRange: xt(o?.[`${e}_traffic`], `batch_size.${e}_traffic`),
1251
+ inflightCapRange: xt(s?.[`${e}_traffic`], `inflight_cap.${e}_traffic`),
1252
+ retryBackoffMsRange: xt(c?.[`${e}_traffic`], `retry_backoff_ms.${e}_traffic`)
1250
1253
  });
1251
1254
  function u(e) {
1252
1255
  return e.concurrency >= 100 ? "http-binary-batch" : e.latencySensitive ? "ws-batch" : e.compatibilityFirst ? "http" : "ws-batch";
@@ -1284,27 +1287,27 @@ function St(e) {
1284
1287
  };
1285
1288
  }
1286
1289
  async function N(e = {}) {
1287
- let t = await yt(e);
1290
+ let t = await bt(e);
1288
1291
  return {
1289
1292
  policy: t,
1290
- enforcer: St(t)
1293
+ enforcer: Ct(t)
1291
1294
  };
1292
1295
  }
1293
- function Ct(e) {
1294
- return xt(e);
1296
+ function wt(e) {
1297
+ return St(e);
1295
1298
  }
1296
1299
  //#endregion
1297
1300
  //#region src/mcpGateway.ts
1298
- var wt = [
1301
+ var Tt = [
1299
1302
  "tools/call",
1300
1303
  "resources/read",
1301
1304
  "prompts/get"
1302
1305
  ];
1303
- function Tt(e) {
1306
+ function Et(e) {
1304
1307
  return JSON.stringify(e);
1305
1308
  }
1306
- function Et(e, t, n) {
1307
- return Tt({
1309
+ function Dt(e, t, n) {
1310
+ return Et({
1308
1311
  jsonrpc: "2.0",
1309
1312
  id: e,
1310
1313
  error: {
@@ -1313,7 +1316,7 @@ function Et(e, t, n) {
1313
1316
  }
1314
1317
  });
1315
1318
  }
1316
- function Dt(e) {
1319
+ function Ot(e) {
1317
1320
  let t = JSON.parse(e);
1318
1321
  return t.jsonrpc !== "2.0" || typeof t.method != "string" || t.method.length === 0 || typeof t.id != "string" && typeof t.id != "number" ? null : {
1319
1322
  jsonrpc: "2.0",
@@ -1322,30 +1325,30 @@ function Dt(e) {
1322
1325
  params: t.params
1323
1326
  };
1324
1327
  }
1325
- function Ot(e) {
1328
+ function kt(e) {
1326
1329
  return e.includes("not allowed") ? -32601 : e.includes("not authorized") ? -32001 : e.includes("rate-limited") ? -32002 : -32603;
1327
1330
  }
1328
- function kt(e) {
1329
- let t = e.gatewayAgentId ?? "agent.gateway", n = e.workerAgentId ?? "agent.worker", r = e.allowedMethods ?? wt, i = e.workerCapabilityPrefix ?? "mcp.", a = e.gatewayWireFormat ?? "compact", o = e.workerWireFormat ?? "compact";
1331
+ function At(e) {
1332
+ let t = e.gatewayAgentId ?? "agent.gateway", n = e.workerAgentId ?? "agent.worker", r = e.allowedMethods ?? Tt, i = e.workerCapabilityPrefix ?? "mcp.", a = e.gatewayWireFormat ?? "compact", o = e.workerWireFormat ?? "compact";
1330
1333
  async function s(t) {
1331
1334
  e.onAuditEvent && await e.onAuditEvent({
1332
1335
  ...t,
1333
1336
  timestampMs: Date.now()
1334
1337
  });
1335
1338
  }
1336
- let c = ot({
1339
+ let c = st({
1337
1340
  agentId: t,
1338
1341
  outboundSecret: e.sharedSecret,
1339
1342
  sharedSecrets: { [n]: e.sharedSecret },
1340
1343
  wireFormat: a
1341
- }), l = ot({
1344
+ }), l = st({
1342
1345
  agentId: n,
1343
1346
  outboundSecret: e.sharedSecret,
1344
1347
  sharedSecrets: { [t]: e.sharedSecret },
1345
1348
  wireFormat: o,
1346
1349
  onTask: async (e) => ({
1347
1350
  intent: "RESULT",
1348
- content: Tt({
1351
+ content: Et({
1349
1352
  ok: !0,
1350
1353
  capability: e.body.capability,
1351
1354
  content: e.body.content
@@ -1358,12 +1361,12 @@ function kt(e) {
1358
1361
  if (!i) return null;
1359
1362
  let a = null;
1360
1363
  try {
1361
- let t = Dt(i);
1364
+ let t = Ot(i);
1362
1365
  if (!t) return await s({
1363
1366
  phase: "request_error",
1364
1367
  code: -32600,
1365
1368
  message: "Invalid Request"
1366
- }), Et(null, -32600, "Invalid Request");
1369
+ }), Dt(null, -32600, "Invalid Request");
1367
1370
  a = t.id, await s({
1368
1371
  phase: "request_received",
1369
1372
  id: t.id,
@@ -1384,7 +1387,7 @@ function kt(e) {
1384
1387
  policy: e
1385
1388
  });
1386
1389
  }
1387
- }, u = await ft(c, t, o), d = null;
1390
+ }, u = await pt(c, t, o), d = null;
1388
1391
  if (await l.handleRaw(u, async (e) => {
1389
1392
  d = e;
1390
1393
  }), !d) return await s({
@@ -1393,7 +1396,7 @@ function kt(e) {
1393
1396
  method: t.method,
1394
1397
  code: -32603,
1395
1398
  message: "AIP worker did not produce a response"
1396
- }), Et(a, -32603, "AIP worker did not produce a response");
1399
+ }), Dt(a, -32603, "AIP worker did not produce a response");
1397
1400
  let f = await c.receiveRaw(d);
1398
1401
  return !f.ok || !f.received ? (await s({
1399
1402
  phase: "verification_failed",
@@ -1401,24 +1404,24 @@ function kt(e) {
1401
1404
  method: t.method,
1402
1405
  code: -32603,
1403
1406
  message: "AIP verification failed"
1404
- }), Et(a, -32603, "AIP verification failed")) : (await s({
1407
+ }), Dt(a, -32603, "AIP verification failed")) : (await s({
1405
1408
  phase: "request_success",
1406
1409
  id: t.id,
1407
1410
  method: t.method
1408
- }), Tt(pt(f.received, t.id)));
1411
+ }), Et(mt(f.received, t.id)));
1409
1412
  } catch (e) {
1410
- let t = e instanceof Error ? e.message : "Internal error", n = Ot(t);
1413
+ let t = e instanceof Error ? e.message : "Internal error", n = kt(t);
1411
1414
  return await s({
1412
1415
  phase: "request_error",
1413
1416
  id: a,
1414
1417
  code: n,
1415
1418
  message: t
1416
- }), Et(a, n, t);
1419
+ }), Dt(a, n, t);
1417
1420
  }
1418
1421
  } };
1419
1422
  }
1420
- async function At(e) {
1421
- if (!e.runtimePolicy?.enabled) return kt(e);
1423
+ async function jt(e) {
1424
+ if (!e.runtimePolicy?.enabled) return At(e);
1422
1425
  let { enforcer: t } = await N(e.runtimePolicy.options);
1423
1426
  t.assertInvariant({
1424
1427
  signatureVerification: !0,
@@ -1431,7 +1434,7 @@ async function At(e) {
1431
1434
  latencySensitive: e.runtimePolicy.latencySensitive,
1432
1435
  compatibilityFirst: e.runtimePolicy.compatibilityFirst
1433
1436
  }), r = n.includes("binary") ? "binary" : "compact";
1434
- return kt({
1437
+ return At({
1435
1438
  ...e,
1436
1439
  gatewayWireFormat: r,
1437
1440
  workerWireFormat: r,
@@ -1447,7 +1450,7 @@ async function At(e) {
1447
1450
  }
1448
1451
  //#endregion
1449
1452
  //#region src/runtimePolicyManager.ts
1450
- var jt = class {
1453
+ var Mt = class {
1451
1454
  snapshot = null;
1452
1455
  options;
1453
1456
  constructor(e = {}) {
@@ -1477,7 +1480,7 @@ var jt = class {
1477
1480
  throw t;
1478
1481
  }
1479
1482
  }
1480
- }, Mt = {
1483
+ }, Nt = {
1481
1484
  dev: {
1482
1485
  environment: "dev",
1483
1486
  mode: "ws-batch",
@@ -1503,12 +1506,12 @@ var jt = class {
1503
1506
  retryMaxAttempts: 3
1504
1507
  }
1505
1508
  };
1506
- function Nt(e) {
1507
- return Mt[e];
1509
+ function Pt(e) {
1510
+ return Nt[e];
1508
1511
  }
1509
1512
  //#endregion
1510
1513
  //#region src/policyTelemetryFeedback.ts
1511
- function Pt(e) {
1514
+ function Ft(e) {
1512
1515
  let t = [], n = "normal";
1513
1516
  return e.dropPct > .1 && (t.push("reduce inflight cap"), t.push("reduce batch size"), t.push("increase retry backoff"), e.mode === "http" && e.concurrency >= 100 && t.push("switch to http-binary-batch"), n = e.dropPct > 2 ? "critical" : "warn"), e.p99Ms > 20 && (t.push("reduce batch size"), t.push("run adaptive benchmark and re-baseline"), n === "normal" && (n = "warn"), e.p99Ms > 100 && (n = "critical")), {
1514
1517
  severity: n,
@@ -1517,7 +1520,7 @@ function Pt(e) {
1517
1520
  }
1518
1521
  //#endregion
1519
1522
  //#region src/redisClient.ts
1520
- var Ft = class {
1523
+ var It = class {
1521
1524
  entries = /* @__PURE__ */ new Map();
1522
1525
  now;
1523
1526
  constructor(e = {}) {
@@ -1563,13 +1566,13 @@ var Ft = class {
1563
1566
  };
1564
1567
  return t;
1565
1568
  }
1566
- }, It = class {
1569
+ }, Lt = class {
1567
1570
  keyPrefix;
1568
1571
  client;
1569
1572
  constructor(e = {}) {
1570
1573
  if (this.keyPrefix = e.keyPrefix ?? "7h3:nonce:", e.client) this.client = e.client;
1571
1574
  else {
1572
- let e = new Ft();
1575
+ let e = new It();
1573
1576
  this.client = {
1574
1577
  set: (t, n, r) => e.set(t, n, {
1575
1578
  nx: r?.nx,
@@ -1588,7 +1591,7 @@ var Ft = class {
1588
1591
  px: Math.max(1, t)
1589
1592
  }) === null;
1590
1593
  }
1591
- }, Lt = class {
1594
+ }, Rt = class {
1592
1595
  nodes;
1593
1596
  constructor(e) {
1594
1597
  this.nodes = e;
@@ -1597,17 +1600,17 @@ var Ft = class {
1597
1600
  return (await Promise.all(this.nodes.map((n) => n.check(e, t)))).some((e) => e);
1598
1601
  }
1599
1602
  };
1600
- function Rt(e, t = {}) {
1601
- return zt(e) ? Vt(e, t) : new It(e);
1603
+ function zt(e, t = {}) {
1604
+ return Bt(e) ? Ht(e, t) : new Lt(e);
1602
1605
  }
1603
- function zt(e) {
1606
+ function Bt(e) {
1604
1607
  return typeof e == "object" && !!e && typeof e.set == "function" && (typeof e.pipeline == "function" || !("quit" in e));
1605
1608
  }
1606
- function Bt(e) {
1607
- return new Lt(e.map((e) => new It({ redisUrl: e })));
1609
+ function Vt(e) {
1610
+ return new Rt(e.map((e) => new Lt({ redisUrl: e })));
1608
1611
  }
1609
- function Vt(e, t = {}) {
1610
- let n = t.keyPrefix ?? "aip:replay:", r = t.errorBehavior ?? "fallback", i = t.onDegraded, a = t.fallback ?? (r === "fallback" ? Vt(new Ft(), {
1612
+ function Ht(e, t = {}) {
1613
+ let n = t.keyPrefix ?? "aip:replay:", r = t.errorBehavior ?? "fallback", i = t.onDegraded, a = t.fallback ?? (r === "fallback" ? Ht(new It(), {
1611
1614
  keyPrefix: n,
1612
1615
  errorBehavior: "reject"
1613
1616
  }) : void 0);
@@ -1647,7 +1650,7 @@ function Vt(e, t = {}) {
1647
1650
  }
1648
1651
  //#endregion
1649
1652
  //#region src/revocation.ts
1650
- var Ht = class {
1653
+ var Ut = class {
1651
1654
  revoked = /* @__PURE__ */ new Map();
1652
1655
  now;
1653
1656
  constructor(e = {}) {
@@ -1664,7 +1667,7 @@ var Ht = class {
1664
1667
  this.revoked.set(this.makeKey(e, t), n.untilMs ?? Infinity);
1665
1668
  }
1666
1669
  };
1667
- function Ut(e, t = {}) {
1670
+ function Wt(e, t = {}) {
1668
1671
  let n = t.keyPrefix ?? "aip:revoked:", r = t.errorBehavior ?? "reject", i = t.cacheTtlMs ?? 5e3, a = t.onDegraded, o = t.now ?? (() => Date.now()), s = /* @__PURE__ */ new Map();
1669
1672
  function c(e, t) {
1670
1673
  return `${n}${e}${t}`;
@@ -1696,7 +1699,7 @@ function Ut(e, t = {}) {
1696
1699
  }
1697
1700
  };
1698
1701
  }
1699
- function Wt(e, t, n = {}) {
1702
+ function Gt(e, t, n = {}) {
1700
1703
  let r = n.nowMsProvider ?? (() => Date.now());
1701
1704
  return async (n, i) => {
1702
1705
  if (!await t.isRevoked(i, n.keyId, r())) return e(n, i);
@@ -1704,7 +1707,7 @@ function Wt(e, t, n = {}) {
1704
1707
  }
1705
1708
  //#endregion
1706
1709
  //#region src/mcpWrapper.ts
1707
- function Gt(e, t, n) {
1710
+ function Kt(e, t, n) {
1708
1711
  return {
1709
1712
  jsonrpc: "2.0",
1710
1713
  id: e,
@@ -1714,15 +1717,15 @@ function Gt(e, t, n) {
1714
1717
  }
1715
1718
  };
1716
1719
  }
1717
- function Kt(e, t) {
1720
+ function qt(e, t) {
1718
1721
  return {
1719
1722
  ...e.receive,
1720
1723
  requireSignature: !0,
1721
1724
  replayCache: t
1722
1725
  };
1723
1726
  }
1724
- function qt(e, t) {
1725
- let n = t.wireFormat ?? "compact", r = t.ttlMs ?? 6e4, i = Kt(t, t.receive?.replayCache ?? new A());
1727
+ function Jt(e, t) {
1728
+ let n = t.wireFormat ?? "compact", r = t.ttlMs ?? 6e4, i = qt(t, t.receive?.replayCache ?? new A());
1726
1729
  async function a(e) {
1727
1730
  return j(await t.sign(e), n);
1728
1731
  }
@@ -1738,25 +1741,25 @@ function qt(e, t) {
1738
1741
  }
1739
1742
  return async (n) => {
1740
1743
  let r = await M(n, i), a = r.envelope?.header.sender, s = r.envelope?.header.messageId;
1741
- if (!r.ok || !r.envelope) return o(a, "ERROR", Gt(null, -32600, r.diagnostics.find((e) => e.level === "error")?.message ?? "AIP verification failed"), s);
1742
- if (r.envelope.header.recipient !== t.selfAgentId) return o(a, "ERROR", Gt(null, -32600, "Recipient mismatch: envelope not addressed to this agent"), s);
1744
+ if (!r.ok || !r.envelope) return o(a, "ERROR", Kt(null, -32600, r.diagnostics.find((e) => e.level === "error")?.message ?? "AIP verification failed"), s);
1745
+ if (r.envelope.header.recipient !== t.selfAgentId) return o(a, "ERROR", Kt(null, -32600, "Recipient mismatch: envelope not addressed to this agent"), s);
1743
1746
  let c;
1744
1747
  try {
1745
1748
  c = JSON.parse(r.envelope.body.content);
1746
1749
  } catch {
1747
- return o(a, "ERROR", Gt(null, -32700, "Parse error: envelope body is not JSON-RPC"), s);
1750
+ return o(a, "ERROR", Kt(null, -32700, "Parse error: envelope body is not JSON-RPC"), s);
1748
1751
  }
1749
1752
  let l;
1750
1753
  try {
1751
1754
  l = await e(c);
1752
1755
  } catch (e) {
1753
- l = Gt(c.id ?? null, -32603, e instanceof Error ? e.message : "Internal error");
1756
+ l = Kt(c.id ?? null, -32603, e instanceof Error ? e.message : "Internal error");
1754
1757
  }
1755
1758
  return o(r.envelope.header.sender, "RESULT", l, s);
1756
1759
  };
1757
1760
  }
1758
- function Jt(e) {
1759
- let t = e.wireFormat ?? "compact", n = e.ttlMs ?? 6e4, r = Kt(e, e.receive?.replayCache ?? new A());
1761
+ function Yt(e) {
1762
+ let t = e.wireFormat ?? "compact", n = e.ttlMs ?? 6e4, r = qt(e, e.receive?.replayCache ?? new A());
1760
1763
  return {
1761
1764
  async encodeRequest(r) {
1762
1765
  let i = D({
@@ -1784,8 +1787,8 @@ function Jt(e) {
1784
1787
  }
1785
1788
  };
1786
1789
  }
1787
- function Yt(e, t) {
1788
- let n = Jt(t);
1790
+ function Xt(e, t) {
1791
+ let n = Yt(t);
1789
1792
  return async (t) => {
1790
1793
  let { raw: r, messageId: i } = await n.encodeRequest(t);
1791
1794
  return n.decodeResponse(await e(r), { expectCorrelationId: i });
@@ -1793,11 +1796,11 @@ function Yt(e, t) {
1793
1796
  }
1794
1797
  //#endregion
1795
1798
  //#region src/mcpTransports.ts
1796
- function Xt(e) {
1799
+ function Zt(e) {
1797
1800
  if (typeof e != "string") throw Error("stdio adapter supports json/compact (string) wire formats; use the HTTP adapter for binary");
1798
1801
  return e;
1799
1802
  }
1800
- function Zt(t, n = {}) {
1803
+ function Qt(t, n = {}) {
1801
1804
  let r = n.input ?? process.stdin, i = n.output ?? process.stdout, a = e.createInterface({
1802
1805
  input: r,
1803
1806
  crlfDelay: Infinity
@@ -1806,7 +1809,7 @@ function Zt(t, n = {}) {
1806
1809
  r && (o = o.then(async () => {
1807
1810
  try {
1808
1811
  let e = await t(r);
1809
- i.write(`${Xt(e)}\n`);
1812
+ i.write(`${Zt(e)}\n`);
1810
1813
  } catch (e) {
1811
1814
  n.onError?.(e);
1812
1815
  }
@@ -1816,7 +1819,7 @@ function Zt(t, n = {}) {
1816
1819
  a.off("line", s), a.close();
1817
1820
  } };
1818
1821
  }
1819
- function Qt(t) {
1822
+ function $t(t) {
1820
1823
  let n = e.createInterface({
1821
1824
  input: t.input,
1822
1825
  crlfDelay: Infinity
@@ -1828,7 +1831,7 @@ function Qt(t) {
1828
1831
  };
1829
1832
  return n.on("line", i), {
1830
1833
  send(e) {
1831
- let n = Xt(e);
1834
+ let n = Zt(e);
1832
1835
  return new Promise((e) => {
1833
1836
  r.push(e), t.output.write(`${n}\n`);
1834
1837
  });
@@ -1838,7 +1841,7 @@ function Qt(t) {
1838
1841
  }
1839
1842
  };
1840
1843
  }
1841
- function $t(e, t = {}) {
1844
+ function en(e, t = {}) {
1842
1845
  return (n, r) => {
1843
1846
  let i = [];
1844
1847
  n.on("data", (e) => i.push(e)), n.on("error", () => {
@@ -1862,7 +1865,7 @@ function $t(e, t = {}) {
1862
1865
  });
1863
1866
  };
1864
1867
  }
1865
- function en(e) {
1868
+ function tn(e) {
1866
1869
  let t = e.fetchImpl ?? fetch, n = e.binary ? "application/octet-stream" : "application/json";
1867
1870
  return { async send(r) {
1868
1871
  let i = await t(e.url, {
@@ -1878,12 +1881,12 @@ function en(e) {
1878
1881
  }
1879
1882
  //#endregion
1880
1883
  //#region src/keyRegistry.ts
1881
- function tn(e) {
1884
+ function nn(e) {
1882
1885
  return { async getPublicKey(t) {
1883
1886
  return e[t] ?? null;
1884
1887
  } };
1885
1888
  }
1886
- function nn(...e) {
1889
+ function rn(...e) {
1887
1890
  return {
1888
1891
  async getPublicKey(t) {
1889
1892
  for (let n of e) {
@@ -1902,7 +1905,7 @@ function nn(...e) {
1902
1905
  }
1903
1906
  };
1904
1907
  }
1905
- function rn(e, t) {
1908
+ function an(e, t) {
1906
1909
  let n = t?.ttlMs ?? 6e4, r = /* @__PURE__ */ new Map();
1907
1910
  async function i(e, t) {
1908
1911
  let i = Date.now(), a = r.get(e);
@@ -1924,18 +1927,18 @@ function rn(e, t) {
1924
1927
  }
1925
1928
  //#endregion
1926
1929
  //#region src/cborCodec.ts
1927
- var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3, cn = 4, ln = 5, un = 7, dn = 244, fn = 245, pn = 246, mn = 24, hn = 25, gn = 26, _n = 27, vn = 27, yn = class {
1930
+ var P = new TextEncoder(), on = new TextDecoder(), F = 0, sn = 1, cn = 2, I = 3, ln = 4, un = 5, dn = 7, fn = 244, pn = 245, mn = 246, hn = 24, gn = 25, _n = 26, vn = 27, yn = 27, bn = class {
1928
1931
  chunks = [];
1929
1932
  encode(e) {
1930
1933
  return this.chunks = [], this._encode(e), this._concat();
1931
1934
  }
1932
1935
  _encode(e) {
1933
1936
  if (e == null) {
1934
- this.chunks.push(new Uint8Array([pn]));
1937
+ this.chunks.push(new Uint8Array([mn]));
1935
1938
  return;
1936
1939
  }
1937
1940
  if (typeof e == "boolean") {
1938
- this.chunks.push(new Uint8Array([e ? fn : dn]));
1941
+ this.chunks.push(new Uint8Array([e ? pn : fn]));
1939
1942
  return;
1940
1943
  }
1941
1944
  if (typeof e == "number") {
@@ -1973,7 +1976,7 @@ var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3,
1973
1976
  new DataView(t).setFloat64(0, e, !1), this.chunks.push(new Uint8Array(t));
1974
1977
  return;
1975
1978
  }
1976
- e >= 0 ? this._encodeHead(F, e) : this._encodeHead(on, -1 - e);
1979
+ e >= 0 ? this._encodeHead(F, e) : this._encodeHead(sn, -1 - e);
1977
1980
  }
1978
1981
  _float64Header() {
1979
1982
  return new Uint8Array([251]);
@@ -1983,10 +1986,10 @@ var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3,
1983
1986
  this._encodeHead(I, t.length), this.chunks.push(t);
1984
1987
  }
1985
1988
  _encodeByteString(e) {
1986
- this._encodeHead(sn, e.length), this.chunks.push(e);
1989
+ this._encodeHead(cn, e.length), this.chunks.push(e);
1987
1990
  }
1988
1991
  _encodeArray(e) {
1989
- this._encodeHead(cn, e.length);
1992
+ this._encodeHead(ln, e.length);
1990
1993
  for (let t of e) this._encode(t);
1991
1994
  }
1992
1995
  _encodeMapFromAnyEntries(e) {
@@ -2003,7 +2006,7 @@ var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3,
2003
2006
  value: t
2004
2007
  };
2005
2008
  });
2006
- t.sort((e, t) => this._compareBytes(e.keyEncoded, t.keyEncoded)), this._encodeHead(ln, t.length);
2009
+ t.sort((e, t) => this._compareBytes(e.keyEncoded, t.keyEncoded)), this._encodeHead(un, t.length);
2007
2010
  for (let { key: e, value: n } of t) {
2008
2011
  if (typeof e == "number" && Number.isInteger(e)) this._encodeHead(F, e);
2009
2012
  else {
@@ -2022,7 +2025,7 @@ var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3,
2022
2025
  value: t
2023
2026
  };
2024
2027
  });
2025
- t.sort((e, t) => this._compareBytes(e.keyEncoded, t.keyEncoded)), this._encodeHead(ln, t.length);
2028
+ t.sort((e, t) => this._compareBytes(e.keyEncoded, t.keyEncoded)), this._encodeHead(un, t.length);
2026
2029
  for (let { keyBytes: e, value: n } of t) this._encodeHead(I, e.length), this.chunks.push(e), this._encode(n);
2027
2030
  }
2028
2031
  _compareBytes(e, t) {
@@ -2043,48 +2046,58 @@ var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3,
2043
2046
  _encodeHeadBytes(e, t) {
2044
2047
  let n = e << 5;
2045
2048
  if (t <= 23) return new Uint8Array([n | t]);
2046
- if (t <= 255) return new Uint8Array([n | mn, t]);
2049
+ if (t <= 255) return new Uint8Array([n | hn, t]);
2047
2050
  if (t <= 65535) {
2048
2051
  let e = /* @__PURE__ */ new ArrayBuffer(3), r = new DataView(e);
2049
- return r.setUint8(0, n | hn), r.setUint16(1, t, !1), new Uint8Array(e);
2052
+ return r.setUint8(0, n | gn), r.setUint16(1, t, !1), new Uint8Array(e);
2050
2053
  }
2051
2054
  if (t <= 4294967295) {
2052
2055
  let e = /* @__PURE__ */ new ArrayBuffer(5), r = new DataView(e);
2053
- return r.setUint8(0, n | gn), r.setUint32(1, t, !1), new Uint8Array(e);
2056
+ return r.setUint8(0, n | _n), r.setUint32(1, t, !1), new Uint8Array(e);
2054
2057
  }
2055
2058
  let r = /* @__PURE__ */ new ArrayBuffer(9), i = new DataView(r);
2056
- return i.setUint8(0, n | _n), i.setBigUint64(1, BigInt(t), !1), new Uint8Array(r);
2059
+ return i.setUint8(0, n | vn), i.setBigUint64(1, BigInt(t), !1), new Uint8Array(r);
2057
2060
  }
2058
2061
  _concat() {
2059
2062
  let e = this.chunks.reduce((e, t) => e + t.length, 0), t = new Uint8Array(e), n = 0;
2060
2063
  for (let e of this.chunks) t.set(e, n), n += e.length;
2061
2064
  return t;
2062
2065
  }
2063
- }, bn = class {
2066
+ }, xn = 64, Sn = class {
2064
2067
  data;
2065
2068
  offset = 0;
2069
+ depth = 0;
2066
2070
  decode(e) {
2067
- return this.data = e, this.offset = 0, this._decode();
2071
+ return this.data = e, this.offset = 0, this.depth = 0, this._decode();
2068
2072
  }
2069
2073
  _decode() {
2074
+ if (this.depth >= 64) throw Error("CborDecoder: nesting depth exceeds maximum of 64");
2075
+ this.depth++;
2076
+ try {
2077
+ return this._decodeItem();
2078
+ } finally {
2079
+ this.depth--;
2080
+ }
2081
+ }
2082
+ _decodeItem() {
2070
2083
  let e = this._readByte(), t = e >> 5 & 7, n = e & 31;
2071
2084
  switch (t) {
2072
2085
  case F: return this._decodeUint(n);
2073
- case on: return -1 - this._decodeUint(n);
2074
- case sn: {
2086
+ case sn: return -1 - this._decodeUint(n);
2087
+ case cn: {
2075
2088
  let e = this._decodeUint(n);
2076
2089
  return this._readBytes(e);
2077
2090
  }
2078
2091
  case I: {
2079
2092
  let e = this._decodeUint(n), t = this._readBytes(e);
2080
- return an.decode(t);
2093
+ return on.decode(t);
2081
2094
  }
2082
- case cn: {
2095
+ case ln: {
2083
2096
  let e = this._decodeUint(n), t = [];
2084
2097
  for (let n = 0; n < e; n++) t.push(this._decode());
2085
2098
  return t;
2086
2099
  }
2087
- case ln: {
2100
+ case un: {
2088
2101
  let e = this._decodeUint(n), t = Object.create(null);
2089
2102
  for (let n = 0; n < e; n++) {
2090
2103
  let e = this._decode();
@@ -2092,11 +2105,11 @@ var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3,
2092
2105
  }
2093
2106
  return t;
2094
2107
  }
2095
- case un:
2108
+ case dn:
2096
2109
  if (n === 20) return !1;
2097
2110
  if (n === 21) return !0;
2098
2111
  if (n === 22) return null;
2099
- if (n === vn) {
2112
+ if (n === yn) {
2100
2113
  let e = this._readBytes(8);
2101
2114
  return new DataView(e.buffer, e.byteOffset, 8).getFloat64(0, !1);
2102
2115
  }
@@ -2106,16 +2119,16 @@ var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3,
2106
2119
  }
2107
2120
  _decodeUint(e) {
2108
2121
  if (e <= 23) return e;
2109
- if (e === mn) return this._readByte();
2110
- if (e === hn) {
2122
+ if (e === hn) return this._readByte();
2123
+ if (e === gn) {
2111
2124
  let e = this._readBytes(2);
2112
2125
  return new DataView(e.buffer, e.byteOffset, 2).getUint16(0, !1);
2113
2126
  }
2114
- if (e === gn) {
2127
+ if (e === _n) {
2115
2128
  let e = this._readBytes(4);
2116
2129
  return new DataView(e.buffer, e.byteOffset, 4).getUint32(0, !1);
2117
2130
  }
2118
- if (e === _n) {
2131
+ if (e === vn) {
2119
2132
  let e = this._readBytes(8);
2120
2133
  return Number(new DataView(e.buffer, e.byteOffset, 8).getBigUint64(0, !1));
2121
2134
  }
@@ -2131,16 +2144,16 @@ var P = new TextEncoder(), an = new TextDecoder(), F = 0, on = 1, sn = 2, I = 3,
2131
2144
  return this.offset += e, t;
2132
2145
  }
2133
2146
  };
2134
- function xn(e) {
2135
- return new yn().encode(e);
2147
+ function Cn(e) {
2148
+ return new bn().encode(e);
2136
2149
  }
2137
- function Sn(e) {
2138
- return new bn().decode(e);
2150
+ function wn(e) {
2151
+ return new Sn().decode(e);
2139
2152
  }
2140
2153
  //#endregion
2141
2154
  //#region src/envelopeCbor.ts
2142
- var Cn = "application/7h3-cbor";
2143
- function wn(e) {
2155
+ var Tn = "application/7h3-cbor";
2156
+ function En(e) {
2144
2157
  let t = /* @__PURE__ */ new Map();
2145
2158
  t.set(1, e.header.version), t.set(2, e.header.messageId), t.set(3, e.header.timestampMs), t.set(4, e.header.ttlMs), t.set(5, e.header.sender), e.header.recipient !== void 0 && t.set(6, e.header.recipient), t.set(7, e.header.nonce);
2146
2159
  let n = /* @__PURE__ */ new Map();
@@ -2152,21 +2165,21 @@ function wn(e) {
2152
2165
  let e = /* @__PURE__ */ new Map();
2153
2166
  e.set(1, i.alg), e.set(2, i.keyId), e.set(3, i.value), r.set(3, e);
2154
2167
  }
2155
- return xn(r);
2168
+ return Cn(r);
2156
2169
  }
2157
2170
  function L(e, t) {
2158
2171
  if (typeof e != "string") throw Error(`decodeEnvelopeCbor: ${t} must be a string`);
2159
2172
  return e;
2160
2173
  }
2161
- function Tn(e, t) {
2174
+ function Dn(e, t) {
2162
2175
  if (e !== void 0) return L(e, t);
2163
2176
  }
2164
- function En(e, t) {
2177
+ function On(e, t) {
2165
2178
  if (typeof e != "number" || !Number.isFinite(e)) throw Error(`decodeEnvelopeCbor: ${t} must be a finite number`);
2166
2179
  return e;
2167
2180
  }
2168
- function Dn(e) {
2169
- let t = Sn(e);
2181
+ function kn(e) {
2182
+ let t = wn(e);
2170
2183
  if (!t || typeof t != "object" || Array.isArray(t)) throw Error("decodeEnvelopeCbor: expected a map at top level");
2171
2184
  let n = t, r = n[1];
2172
2185
  if (!r || typeof r != "object" || Array.isArray(r)) throw Error("decodeEnvelopeCbor: missing header map (key 1)");
@@ -2176,8 +2189,8 @@ function Dn(e) {
2176
2189
  header: {
2177
2190
  version: L(i[1], "header.version"),
2178
2191
  messageId: L(i[2], "header.messageId"),
2179
- timestampMs: En(i[3], "header.timestampMs"),
2180
- ttlMs: En(i[4], "header.ttlMs"),
2192
+ timestampMs: On(i[3], "header.timestampMs"),
2193
+ ttlMs: On(i[4], "header.ttlMs"),
2181
2194
  sender: L(i[5], "header.sender"),
2182
2195
  nonce: L(i[7], "header.nonce")
2183
2196
  },
@@ -2185,11 +2198,11 @@ function Dn(e) {
2185
2198
  intent: L(o[1], "body.intent"),
2186
2199
  content: L(o[2], "body.content")
2187
2200
  }
2188
- }, c = Tn(i[6], "header.recipient");
2201
+ }, c = Dn(i[6], "header.recipient");
2189
2202
  c !== void 0 && (s.header.recipient = c);
2190
- let l = Tn(o[3], "body.capability");
2203
+ let l = Dn(o[3], "body.capability");
2191
2204
  l !== void 0 && (s.body.capability = l);
2192
- let u = Tn(o[4], "body.correlationId");
2205
+ let u = Dn(o[4], "body.correlationId");
2193
2206
  u !== void 0 && (s.body.correlationId = u);
2194
2207
  let d = n[3];
2195
2208
  if (d != null) {
@@ -2205,11 +2218,11 @@ function Dn(e) {
2205
2218
  }
2206
2219
  //#endregion
2207
2220
  //#region src/httpBinding.ts
2208
- var On = "x-7h3-envelope";
2209
- async function kn(e, t, n) {
2221
+ var An = "x-7h3-envelope";
2222
+ async function jn(e, t, n) {
2210
2223
  let r = t.headerName ?? "x-7h3-envelope", i = (Array.isArray(e["content-type"]) ? e["content-type"][0] : e["content-type"]) ?? "", a;
2211
2224
  if (i.includes("7h3-cbor") && n instanceof Uint8Array) try {
2212
- a = Dn(n);
2225
+ a = kn(n);
2213
2226
  } catch (e) {
2214
2227
  return {
2215
2228
  ok: !1,
@@ -2247,6 +2260,11 @@ async function kn(e, t, n) {
2247
2260
  };
2248
2261
  }
2249
2262
  let o = a.header.sender, s = a.signature.alg;
2263
+ if (!t.keyRegistry) return {
2264
+ ok: !1,
2265
+ reason: "unknown-sender",
2266
+ detail: "no key registry configured"
2267
+ };
2250
2268
  if (s === "ED25519") {
2251
2269
  let e = await t.keyRegistry.getPublicKey(o);
2252
2270
  if (!e) return {
@@ -2279,24 +2297,24 @@ async function kn(e, t, n) {
2279
2297
  envelope: a
2280
2298
  };
2281
2299
  }
2282
- async function An(e, t, n) {
2300
+ async function Mn(e, t, n) {
2283
2301
  let r = await w(e, t);
2284
2302
  if (n?.format === "cbor") {
2285
- let e = wn(r);
2303
+ let e = En(r);
2286
2304
  return {
2287
- headers: { "content-type": Cn },
2305
+ headers: { "content-type": Tn },
2288
2306
  body: e
2289
2307
  };
2290
2308
  }
2291
2309
  return { headers: { [n?.headerName ?? "x-7h3-envelope"]: JSON.stringify(r) } };
2292
2310
  }
2293
- async function jn(e, t, n, r) {
2311
+ async function Nn(e, t, n, r) {
2294
2312
  let i = await S(e, t, n);
2295
2313
  return { headers: { [r?.headerName ?? "x-7h3-envelope"]: JSON.stringify(i) } };
2296
2314
  }
2297
- function Mn(e) {
2315
+ function Pn(e) {
2298
2316
  return async function(t, n, r) {
2299
- let i = await kn(t.headers, e);
2317
+ let i = await jn(t.headers, e);
2300
2318
  if (!i.ok) {
2301
2319
  n.status(401).json({
2302
2320
  error: "7h3: request verification failed",
@@ -2308,13 +2326,13 @@ function Mn(e) {
2308
2326
  t["7h3Envelope"] = i.envelope, r();
2309
2327
  };
2310
2328
  }
2311
- async function Nn(e, t, n, r) {
2312
- let { headers: i } = await An(t, n, r), a = new Headers(e.headers);
2329
+ async function Fn(e, t, n, r) {
2330
+ let { headers: i } = await Mn(t, n, r), a = new Headers(e.headers);
2313
2331
  for (let [e, t] of Object.entries(i)) a.set(e, t);
2314
2332
  return new Request(e, { headers: a });
2315
2333
  }
2316
- async function Pn(e, t) {
2317
- return Nn(e, D({
2334
+ async function In(e, t) {
2335
+ return Fn(e, D({
2318
2336
  sender: t.sender,
2319
2337
  recipient: t.recipient,
2320
2338
  ttlMs: t.ttlMs ?? 6e4,
@@ -2324,7 +2342,7 @@ async function Pn(e, t) {
2324
2342
  }
2325
2343
  //#endregion
2326
2344
  //#region src/webhookBinding.ts
2327
- var R = "x-7h3-sig", z = "x-7h3-ts", Fn = 3e5, In = class {
2345
+ var R = "x-7h3-sig", z = "x-7h3-ts", Ln = 3e5, Rn = class {
2328
2346
  seen = /* @__PURE__ */ new Map();
2329
2347
  maxEntries;
2330
2348
  constructor(e = 1e4) {
@@ -2347,21 +2365,21 @@ var R = "x-7h3-sig", z = "x-7h3-ts", Fn = 3e5, In = class {
2347
2365
  function B(e, t) {
2348
2366
  return `${e}.${t}`;
2349
2367
  }
2350
- async function Ln(e, t) {
2368
+ async function zn(e, t) {
2351
2369
  let n = typeof e == "string" ? e : new TextDecoder().decode(e), r = Date.now(), i = await b(B(r, n), t.privateKey);
2352
2370
  return {
2353
2371
  [R]: i,
2354
2372
  [z]: String(r)
2355
2373
  };
2356
2374
  }
2357
- async function Rn(e, t) {
2375
+ async function Bn(e, t) {
2358
2376
  let n = typeof e == "string" ? e : new TextDecoder().decode(e), r = Date.now(), i = await de(B(r, n), t.secret);
2359
2377
  return {
2360
2378
  [R]: i,
2361
2379
  [z]: String(r)
2362
2380
  };
2363
2381
  }
2364
- async function zn(e, t, n) {
2382
+ async function Vn(e, t, n) {
2365
2383
  let r = typeof e == "string" ? e : new TextDecoder().decode(e), i = t[R], a = t[z];
2366
2384
  if (!i || !a) return !1;
2367
2385
  let o = Number(a);
@@ -2369,7 +2387,7 @@ async function zn(e, t, n) {
2369
2387
  let s = n.maxAgeMs ?? 3e5, c = Date.now();
2370
2388
  return !(c - o > s || !await x(B(o, r), i, n.publicKey) || n.replayCache && !await n.replayCache.consume(i, o + s, c));
2371
2389
  }
2372
- async function Bn(e, t, n) {
2390
+ async function Hn(e, t, n) {
2373
2391
  let r = typeof e == "string" ? e : new TextDecoder().decode(e), i = t[R], a = t[z];
2374
2392
  if (!i || !a) return !1;
2375
2393
  let o = Number(a);
@@ -2377,13 +2395,13 @@ async function Bn(e, t, n) {
2377
2395
  let s = n.maxAgeMs ?? 3e5, c = Date.now();
2378
2396
  return !(c - o > s || !await fe(B(o, r), i, n.secret) || n.replayCache && !await n.replayCache.consume(i, o + s, c));
2379
2397
  }
2380
- async function Vn(e, t, n) {
2381
- if (!await zn(e, t, n)) throw Error("7h3: webhook signature verification failed");
2398
+ async function Un(e, t, n) {
2399
+ if (!await Vn(e, t, n)) throw Error("7h3: webhook signature verification failed");
2382
2400
  return JSON.parse(e);
2383
2401
  }
2384
2402
  //#endregion
2385
2403
  //#region src/queueBinding.ts
2386
- async function Hn(e, t) {
2404
+ async function Wn(e, t) {
2387
2405
  let n = t.ttlMs ?? 36e5, r = typeof e == "string" ? e : JSON.stringify(e), i = {
2388
2406
  envelope: await w(D({
2389
2407
  sender: t.sender,
@@ -2396,7 +2414,7 @@ async function Hn(e, t) {
2396
2414
  };
2397
2415
  return JSON.stringify(i);
2398
2416
  }
2399
- async function Un(e, t) {
2417
+ async function Gn(e, t) {
2400
2418
  let n;
2401
2419
  try {
2402
2420
  n = JSON.parse(e);
@@ -2419,10 +2437,10 @@ async function Un(e, t) {
2419
2437
  envelope: n.envelope
2420
2438
  };
2421
2439
  }
2422
- async function Wn(e, t) {
2440
+ async function Kn(e, t) {
2423
2441
  return Promise.all(e.map(async (e) => {
2424
2442
  try {
2425
- let { payload: n, envelope: r } = await Un(e, t);
2443
+ let { payload: n, envelope: r } = await Gn(e, t);
2426
2444
  return {
2427
2445
  ok: !0,
2428
2446
  payload: n,
@@ -2439,20 +2457,20 @@ async function Wn(e, t) {
2439
2457
  }
2440
2458
  //#endregion
2441
2459
  //#region src/stream.ts
2442
- var Gn = "x-7h3-stream", V = new TextEncoder();
2460
+ var qn = "x-7h3-stream", V = new TextEncoder();
2443
2461
  function H() {
2444
2462
  if (typeof crypto > "u" || !crypto.subtle) throw Error("Web Crypto API is not available in this runtime");
2445
2463
  return crypto.subtle;
2446
2464
  }
2447
- function Kn() {
2465
+ function Jn() {
2448
2466
  return globalThis.Buffer;
2449
2467
  }
2450
2468
  function U(e) {
2451
- let t = Kn();
2469
+ let t = Jn();
2452
2470
  return (t ? t.from(e).toString("base64") : btoa(String.fromCharCode(...e))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
2453
2471
  }
2454
2472
  function W(e) {
2455
- let t = e.replace(/-/g, "+").replace(/_/g, "/").padEnd(Math.ceil(e.length / 4) * 4, "="), n = Kn();
2473
+ let t = e.replace(/-/g, "+").replace(/_/g, "/").padEnd(Math.ceil(e.length / 4) * 4, "="), n = Jn();
2456
2474
  if (n) return new Uint8Array(n.from(t, "base64"));
2457
2475
  let r = atob(t), i = new Uint8Array(r.length);
2458
2476
  for (let e = 0; e < r.length; e++) i[e] = r.charCodeAt(e);
@@ -2461,15 +2479,15 @@ function W(e) {
2461
2479
  function G(e) {
2462
2480
  return e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength);
2463
2481
  }
2464
- function qn() {
2482
+ function Yn() {
2465
2483
  let e = /* @__PURE__ */ new Uint8Array(16);
2466
2484
  return crypto.getRandomValues(e), U(e);
2467
2485
  }
2468
- var K = /* @__PURE__ */ new Map(), Jn = 128;
2469
- function Yn(e, t) {
2486
+ var K = /* @__PURE__ */ new Map(), Xn = 128;
2487
+ function Zn(e, t) {
2470
2488
  let n = `${e}:${t}`, r = K.get(n);
2471
2489
  if (r) return r;
2472
- K.size >= Jn && K.clear();
2490
+ K.size >= Xn && K.clear();
2473
2491
  let i = H(), a = W(e), o = (async () => {
2474
2492
  let e = await i.importKey("raw", G(a), "HKDF", !1, ["deriveBits"]), n = await i.deriveBits({
2475
2493
  name: "HKDF",
@@ -2484,42 +2502,42 @@ function Yn(e, t) {
2484
2502
  })();
2485
2503
  return o.catch(() => K.delete(n)), K.set(n, o), o;
2486
2504
  }
2487
- var q = /* @__PURE__ */ new Map(), Xn = 64;
2488
- function Zn(e) {
2505
+ var q = /* @__PURE__ */ new Map(), Qn = 64;
2506
+ function $n(e) {
2489
2507
  let t = q.get(e);
2490
2508
  if (t) return t;
2491
- q.size >= Xn && q.clear();
2509
+ q.size >= Qn && q.clear();
2492
2510
  let n = H().importKey("pkcs8", G(W(e)), { name: "Ed25519" }, !1, ["sign"]).catch((t) => {
2493
2511
  throw q.delete(e), t;
2494
2512
  });
2495
2513
  return q.set(e, n), n;
2496
2514
  }
2497
- var J = /* @__PURE__ */ new Map(), Qn = 64;
2498
- function $n(e) {
2515
+ var J = /* @__PURE__ */ new Map(), er = 64;
2516
+ function tr(e) {
2499
2517
  let t = J.get(e);
2500
2518
  if (t) return t;
2501
- J.size >= Qn && J.clear();
2519
+ J.size >= er && J.clear();
2502
2520
  let n = H().importKey("spki", G(W(e)), { name: "Ed25519" }, !1, ["verify"]).catch((t) => {
2503
2521
  throw J.delete(e), t;
2504
2522
  });
2505
2523
  return J.set(e, n), n;
2506
2524
  }
2507
- function er(e) {
2525
+ function nr(e) {
2508
2526
  let t = e.map((e) => `${e.i}:${e.d}`);
2509
2527
  return V.encode(t.join("\n"));
2510
2528
  }
2511
- async function tr(e) {
2529
+ async function rr(e) {
2512
2530
  let t = await H().digest("SHA-256", G(e));
2513
2531
  return new Uint8Array(t);
2514
2532
  }
2515
- var nr = class {
2533
+ var ir = class {
2516
2534
  opts;
2517
2535
  seq = 0;
2518
2536
  accum = [];
2519
2537
  hmacKeyPromise = null;
2520
2538
  constructor(e) {
2521
2539
  this.opts = {
2522
- nonce: e.nonce ?? qn(),
2540
+ nonce: e.nonce ?? Yn(),
2523
2541
  keyId: e.keyId ?? "stream-key",
2524
2542
  ...e
2525
2543
  };
@@ -2528,7 +2546,7 @@ var nr = class {
2528
2546
  return this.opts.nonce;
2529
2547
  }
2530
2548
  getHmacKey() {
2531
- return this.hmacKeyPromise ||= Yn(this.opts.privateKey, this.opts.nonce), this.hmacKeyPromise;
2549
+ return this.hmacKeyPromise ||= Zn(this.opts.privateKey, this.opts.nonce), this.hmacKeyPromise;
2532
2550
  }
2533
2551
  async computeChunkHmac(e, t) {
2534
2552
  let n = H(), r = await this.getHmacKey(), i = `${this.opts.nonce}:${e}:${t}`, a = await n.sign("HMAC", r, V.encode(i));
@@ -2547,7 +2565,7 @@ var nr = class {
2547
2565
  };
2548
2566
  }
2549
2567
  async finalize() {
2550
- let e = H(), t = await Zn(this.opts.privateKey), n = await tr(er(this.accum)), r = await e.sign("Ed25519", t, G(n)), i = U(new Uint8Array(r)), a = this.seq;
2568
+ let e = H(), t = await $n(this.opts.privateKey), n = await rr(nr(this.accum)), r = await e.sign("Ed25519", t, G(n)), i = U(new Uint8Array(r)), a = this.seq;
2551
2569
  return {
2552
2570
  i: a,
2553
2571
  d: "",
@@ -2557,7 +2575,7 @@ var nr = class {
2557
2575
  kid: this.opts.keyId
2558
2576
  };
2559
2577
  }
2560
- }, rr = class {
2578
+ }, ar = class {
2561
2579
  opts;
2562
2580
  expectedSeq = 0;
2563
2581
  accum = [];
@@ -2594,14 +2612,14 @@ var nr = class {
2594
2612
  };
2595
2613
  let t = H(), n;
2596
2614
  try {
2597
- n = await $n(this.opts.publicKey);
2615
+ n = await tr(this.opts.publicKey);
2598
2616
  } catch {
2599
2617
  return {
2600
2618
  ok: !1,
2601
2619
  reason: "invalid public key"
2602
2620
  };
2603
2621
  }
2604
- let r = await tr(er(this.accum)), i = W(e.sig);
2622
+ let r = await rr(nr(this.accum)), i = W(e.sig);
2605
2623
  return await t.verify("Ed25519", n, G(i), G(r)) ? {
2606
2624
  ok: !0,
2607
2625
  totalBytes: this.totalBytes,
@@ -2612,20 +2630,20 @@ var nr = class {
2612
2630
  };
2613
2631
  }
2614
2632
  };
2615
- function ir(e) {
2616
- return new nr(e);
2633
+ function or(e) {
2634
+ return new ir(e);
2617
2635
  }
2618
- function ar(e) {
2619
- return new rr(e);
2636
+ function sr(e) {
2637
+ return new ar(e);
2620
2638
  }
2621
- async function or(e, t) {
2622
- let n = new nr(t), r = [];
2639
+ async function cr(e, t) {
2640
+ let n = new ir(t), r = [];
2623
2641
  if (Array.isArray(e)) for (let t of e) r.push(await n.writeChunk(t));
2624
2642
  else for await (let t of e) r.push(await n.writeChunk(t));
2625
2643
  return r.push(await n.finalize()), r;
2626
2644
  }
2627
- async function sr(e, t) {
2628
- let n = new rr(t), r = e.slice(0, -1), i = e[e.length - 1];
2645
+ async function lr(e, t) {
2646
+ let n = new ar(t), r = e.slice(0, -1), i = e[e.length - 1];
2629
2647
  if (e.length === 0) return {
2630
2648
  ok: !1,
2631
2649
  reason: "empty chunk array — missing final frame"
@@ -2651,10 +2669,10 @@ async function sr(e, t) {
2651
2669
  }
2652
2670
  return n.finalize(i);
2653
2671
  }
2654
- function cr(e) {
2672
+ function ur(e) {
2655
2673
  return JSON.stringify(e);
2656
2674
  }
2657
- function lr(e) {
2675
+ function dr(e) {
2658
2676
  let t;
2659
2677
  try {
2660
2678
  t = JSON.parse(e);
@@ -2681,7 +2699,7 @@ function lr(e) {
2681
2699
  }
2682
2700
  //#endregion
2683
2701
  //#region src/wsBinding.ts
2684
- function ur(e, t) {
2702
+ function fr(e, t) {
2685
2703
  let n = 0, r = [], i = [];
2686
2704
  function a(e, n) {
2687
2705
  t.onVerifyFail?.(e, n);
@@ -2752,28 +2770,28 @@ function ur(e, t) {
2752
2770
  }
2753
2771
  };
2754
2772
  }
2755
- function dr(e, t) {
2756
- let n = new nr(t), r = async (t) => {
2773
+ function pr(e, t) {
2774
+ let n = new ir(t), r = async (t) => {
2757
2775
  let r = typeof t.data == "string" ? t.data : t.data.toString("utf8"), i = await n.writeChunk(r);
2758
- e.send(cr(i));
2776
+ e.send(ur(i));
2759
2777
  }, i = async () => {
2760
2778
  e.removeEventListener("message", r), e.removeEventListener("close", i);
2761
2779
  let t = await n.finalize();
2762
- e.send(cr(t));
2780
+ e.send(ur(t));
2763
2781
  };
2764
2782
  return e.addEventListener("message", r), e.addEventListener("close", i), n;
2765
2783
  }
2766
- function fr(e, t) {
2784
+ function mr(e, t) {
2767
2785
  return new Promise((n, r) => {
2768
2786
  let i = [], a = async (e) => {
2769
2787
  let a = typeof e.data == "string" ? e.data : e.data.toString("utf8"), o;
2770
2788
  try {
2771
- o = lr(a);
2789
+ o = dr(a);
2772
2790
  } catch (e) {
2773
2791
  s(), r(e);
2774
2792
  return;
2775
2793
  }
2776
- i.push(o), o.f && (s(), n(await sr(i, t)));
2794
+ i.push(o), o.f && (s(), n(await lr(i, t)));
2777
2795
  }, o = () => {
2778
2796
  s(), n({
2779
2797
  ok: !1,
@@ -2788,8 +2806,8 @@ function fr(e, t) {
2788
2806
  }
2789
2807
  //#endregion
2790
2808
  //#region src/grpcBinding.ts
2791
- var pr = "7h3-envelope-bin";
2792
- async function mr(e) {
2809
+ var hr = "7h3-envelope-bin";
2810
+ async function gr(e) {
2793
2811
  let t = await w(D({
2794
2812
  sender: e.sender,
2795
2813
  recipient: e.recipient,
@@ -2799,7 +2817,7 @@ async function mr(e) {
2799
2817
  }), e.privateKey);
2800
2818
  return { [e.metadataKey ?? "7h3-envelope-bin"]: JSON.stringify(t) };
2801
2819
  }
2802
- async function hr(e, t) {
2820
+ async function _r(e, t) {
2803
2821
  let n = e[t.metadataKey ?? "7h3-envelope-bin"], r = Array.isArray(n) ? n[0] : n instanceof Uint8Array ? new TextDecoder().decode(n) : n;
2804
2822
  if (!r) return {
2805
2823
  ok: !1,
@@ -2861,39 +2879,39 @@ async function hr(e, t) {
2861
2879
  envelope: i
2862
2880
  };
2863
2881
  }
2864
- function gr(e, t) {
2882
+ function vr(e, t) {
2865
2883
  return async (n) => {
2866
- let r = await hr(n.metadata, t);
2884
+ let r = await _r(n.metadata, t);
2867
2885
  if (!r.ok) throw Object.assign(Error(r.message), { code: r.code });
2868
2886
  return n["7h3Envelope"] = r.envelope, e(n);
2869
2887
  };
2870
2888
  }
2871
2889
  //#endregion
2872
2890
  //#region src/keyInfra.ts
2873
- function _r(e) {
2891
+ function yr(e) {
2874
2892
  return JSON.stringify(e);
2875
2893
  }
2876
- function vr(e) {
2894
+ function br(e) {
2877
2895
  let t = JSON.parse(e);
2878
2896
  if (t.version !== "7h3/0.1") throw Error(`unsupported version: ${t.version}`);
2879
2897
  return t;
2880
2898
  }
2881
- async function yr(e, t) {
2899
+ async function xr(e, t) {
2882
2900
  let n = e.replace(/\/$/, "") + "/.well-known/7h3-keys", r = new AbortController(), i = t?.timeout ? setTimeout(() => r.abort(), t.timeout) : void 0;
2883
2901
  try {
2884
2902
  let e = await fetch(n, { signal: r.signal });
2885
2903
  if (!e.ok) throw Error(`HTTP ${e.status} from ${n}`);
2886
- return vr(await e.text());
2904
+ return br(await e.text());
2887
2905
  } finally {
2888
2906
  i !== void 0 && clearTimeout(i);
2889
2907
  }
2890
2908
  }
2891
- function br(e) {
2909
+ function Sr(e) {
2892
2910
  let t = /* @__PURE__ */ new Map(), n = e?.cacheMs ?? 6e4, r = e?.timeout ?? 5e3;
2893
2911
  async function i(e) {
2894
2912
  let i = Date.now(), a = t.get(e);
2895
2913
  if (a && a.expiresAt > i) return a.doc;
2896
- let o = await yr(e, { timeout: r });
2914
+ let o = await xr(e, { timeout: r });
2897
2915
  return t.set(e, {
2898
2916
  doc: o,
2899
2917
  expiresAt: i + n
@@ -2910,7 +2928,7 @@ function br(e) {
2910
2928
  }
2911
2929
  } };
2912
2930
  }
2913
- var xr = class {
2931
+ var Cr = class {
2914
2932
  maxAgeMs;
2915
2933
  overlapMs;
2916
2934
  keys = [];
@@ -2960,7 +2978,7 @@ var xr = class {
2960
2978
  return this.keys.find((n) => n.id === e && (!n.expiresAt || n.expiresAt > t))?.publicKey ?? null;
2961
2979
  } };
2962
2980
  }
2963
- }, Sr = class {
2981
+ }, wr = class {
2964
2982
  revoked = /* @__PURE__ */ new Map();
2965
2983
  revoke(e, t) {
2966
2984
  this.revoked.set(e, {
@@ -2988,7 +3006,7 @@ var xr = class {
2988
3006
  getSharedSecret: e.getSharedSecret ? async (t, n) => this.isRevoked(t) || this.isRevoked(n) ? null : e.getSharedSecret(t, n) : void 0
2989
3007
  };
2990
3008
  }
2991
- }, Cr = class {
3009
+ }, Tr = class {
2992
3010
  windows = /* @__PURE__ */ new Map();
2993
3011
  maxKeys;
2994
3012
  constructor(e = {}) {
@@ -3022,10 +3040,10 @@ var xr = class {
3022
3040
  clear() {
3023
3041
  this.windows.clear();
3024
3042
  }
3025
- }, wr = new Cr();
3043
+ }, Er = new Tr();
3026
3044
  //#endregion
3027
3045
  //#region src/routePolicy.ts
3028
- function Tr(e, t) {
3046
+ function Dr(e, t) {
3029
3047
  let n = "^", r = 0;
3030
3048
  for (; r < e.length;) {
3031
3049
  let t = e[r];
@@ -3033,17 +3051,17 @@ function Tr(e, t) {
3033
3051
  }
3034
3052
  return n += "$", new RegExp(n).test(t);
3035
3053
  }
3036
- function Er(e, t) {
3037
- for (let n of e) if (Tr(n.path, t)) return n;
3054
+ function Or(e, t) {
3055
+ for (let n of e) if (Dr(n.path, t)) return n;
3038
3056
  return null;
3039
3057
  }
3040
- function Dr(e, t) {
3058
+ function kr(e, t) {
3041
3059
  return !e.allowedSenders || e.allowedSenders.length === 0 || e.allowedSenders.includes(t);
3042
3060
  }
3043
3061
  //#endregion
3044
3062
  //#region src/signedResponse.ts
3045
- var Or = "x-7h3-response";
3046
- async function kr(e, t) {
3063
+ var Ar = "x-7h3-response";
3064
+ async function jr(e, t) {
3047
3065
  let n = await w(D({
3048
3066
  sender: t.sender,
3049
3067
  recipient: t.recipient,
@@ -3052,10 +3070,10 @@ async function kr(e, t) {
3052
3070
  correlationId: t.correlationId,
3053
3071
  ttlMs: t.ttlMs ?? 6e4
3054
3072
  }), t.privateKey);
3055
- return { headers: { [Or]: JSON.stringify(n) } };
3073
+ return { headers: { [Ar]: JSON.stringify(n) } };
3056
3074
  }
3057
- async function Ar(e, t, n) {
3058
- let r = t[Or], i = Array.isArray(r) ? r[0] : r;
3075
+ async function Mr(e, t, n) {
3076
+ let r = t[Ar], i = Array.isArray(r) ? r[0] : r;
3059
3077
  if (!i) return {
3060
3078
  ok: !1,
3061
3079
  reason: "missing-header"
@@ -3089,21 +3107,21 @@ async function Ar(e, t, n) {
3089
3107
  }
3090
3108
  //#endregion
3091
3109
  //#region src/telemetry.ts
3092
- function jr(e) {
3110
+ function Nr(e) {
3093
3111
  return !e || Object.keys(e).length === 0 ? "__default__" : Object.entries(e).sort(([e], [t]) => e.localeCompare(t)).map(([e, t]) => `${e}=${t}`).join(",");
3094
3112
  }
3095
- function Mr(e) {
3113
+ function Pr(e) {
3096
3114
  return !e || Object.keys(e).length === 0 ? "" : `{${Object.entries(e).sort(([e], [t]) => e.localeCompare(t)).map(([e, t]) => `${e}="${t}"`).join(",")}}`;
3097
3115
  }
3098
3116
  var Y = class {
3099
3117
  counts = /* @__PURE__ */ new Map();
3100
3118
  labelSets = /* @__PURE__ */ new Map();
3101
3119
  increment(e) {
3102
- let t = jr(e);
3120
+ let t = Nr(e);
3103
3121
  this.counts.set(t, (this.counts.get(t) ?? 0) + 1), this.labelSets.has(t) || this.labelSets.set(t, e);
3104
3122
  }
3105
3123
  value(e) {
3106
- return this.counts.get(jr(e)) ?? 0;
3124
+ return this.counts.get(Nr(e)) ?? 0;
3107
3125
  }
3108
3126
  entries() {
3109
3127
  let e = [];
@@ -3113,7 +3131,7 @@ var Y = class {
3113
3131
  });
3114
3132
  return e;
3115
3133
  }
3116
- }, Nr = class {
3134
+ }, Fr = class {
3117
3135
  bucketBounds;
3118
3136
  states = /* @__PURE__ */ new Map();
3119
3137
  labelSets = /* @__PURE__ */ new Map();
@@ -3133,7 +3151,7 @@ var Y = class {
3133
3151
  this.bucketBounds = [...e].sort((e, t) => e - t);
3134
3152
  }
3135
3153
  observe(e, t) {
3136
- let n = jr(t);
3154
+ let n = Nr(t);
3137
3155
  this.states.has(n) || (this.states.set(n, {
3138
3156
  count: 0,
3139
3157
  sum: 0,
@@ -3143,7 +3161,7 @@ var Y = class {
3143
3161
  r.count++, r.sum += e, r.observations.push(e);
3144
3162
  }
3145
3163
  snapshot(e) {
3146
- let t = jr(e), n = this.states.get(t) ?? {
3164
+ let t = Nr(e), n = this.states.get(t) ?? {
3147
3165
  count: 0,
3148
3166
  sum: 0,
3149
3167
  observations: []
@@ -3169,9 +3187,9 @@ var Y = class {
3169
3187
  getBounds() {
3170
3188
  return [...this.bucketBounds];
3171
3189
  }
3172
- }, Pr = class {
3190
+ }, Ir = class {
3173
3191
  verifications_total = new Y();
3174
- verification_duration_ms = new Nr([
3192
+ verification_duration_ms = new Fr([
3175
3193
  .1,
3176
3194
  .5,
3177
3195
  1,
@@ -3185,15 +3203,15 @@ var Y = class {
3185
3203
  replay_detections_total = new Y();
3186
3204
  audit_entries_total = new Y();
3187
3205
  active_connections = new Y();
3188
- }, X = new Pr();
3189
- function Fr(e, t = "7h3") {
3206
+ }, X = new Ir();
3207
+ function Lr(e, t = "7h3") {
3190
3208
  let n = [];
3191
3209
  function r(e, r, i) {
3192
3210
  let a = `${t}_${e}`;
3193
3211
  n.push(`# HELP ${a} ${r}`), n.push(`# TYPE ${a} counter`);
3194
3212
  let o = i.entries();
3195
3213
  if (o.length === 0) n.push(`${a} 0`);
3196
- else for (let { labels: e, value: t } of o) e && Object.keys(e).length > 0 ? n.push(`${a}${Mr(e)} ${t}`) : n.push(`${a} ${t}`);
3214
+ else for (let { labels: e, value: t } of o) e && Object.keys(e).length > 0 ? n.push(`${a}${Pr(e)} ${t}`) : n.push(`${a} ${t}`);
3197
3215
  }
3198
3216
  function i(e, r, i) {
3199
3217
  let a = `${t}_${e}`;
@@ -3203,7 +3221,7 @@ function Fr(e, t = "7h3") {
3203
3221
  for (let e of i.getBounds()) n.push(`${a}_bucket{le="${e}"} 0`);
3204
3222
  n.push(`${a}_bucket{le="+Inf"} 0`), n.push(`${a}_sum 0`), n.push(`${a}_count 0`);
3205
3223
  } else for (let { labels: e, snapshot: t } of o) {
3206
- let r = e && Object.keys(e).length > 0 ? Mr(e) : "";
3224
+ let r = e && Object.keys(e).length > 0 ? Pr(e) : "";
3207
3225
  for (let [e, i] of Object.entries(t.buckets)) {
3208
3226
  if (e === "+Inf") continue;
3209
3227
  let t = r ? r.slice(0, -1) + `,le="${e}"}` : `{le="${e}"}`;
@@ -3215,28 +3233,28 @@ function Fr(e, t = "7h3") {
3215
3233
  }
3216
3234
  return r("verifications_total", "Total number of AIP envelope verifications, by result, algorithm, and transport", e.verifications_total), i("verification_duration_ms", "Verification latency in milliseconds", e.verification_duration_ms), r("rate_limit_hits_total", "Total number of rate-limit rejections, by sender and path", e.rate_limit_hits_total), r("sender_denials_total", "Total number of sender-denied (403) rejections, by sender and path", e.sender_denials_total), r("replay_detections_total", "Total number of replay-detected events, by transport", e.replay_detections_total), r("audit_entries_total", "Total number of audit log entries written, by type", e.audit_entries_total), r("active_connections", "Current active connections, by transport (WS/gRPC)", e.active_connections), n.join("\n") + "\n";
3217
3235
  }
3218
- function Ir(e = "/metrics", t = X, n = "7h3") {
3236
+ function Rr(e = "/metrics", t = X, n = "7h3") {
3219
3237
  return (r, i, a) => {
3220
3238
  if (r.url === e && (r.method === "GET" || r.method === void 0)) {
3221
- let e = Fr(t, n);
3239
+ let e = Lr(t, n);
3222
3240
  i.writeHead(200, { "content-type": "text/plain; version=0.0.4; charset=utf-8" }), i.end(e);
3223
3241
  } else a();
3224
3242
  };
3225
3243
  }
3226
3244
  //#endregion
3227
3245
  //#region src/capability.ts
3228
- var Lr = "x-7h3-capability";
3229
- function Rr(e) {
3246
+ var zr = "x-7h3-capability";
3247
+ function Br(e) {
3230
3248
  let t = [];
3231
3249
  return e.maxDelegations !== void 0 && t.push(`"maxDelegations":${e.maxDelegations}`), e.methods !== void 0 && t.push(`"methods":${JSON.stringify(e.methods)}`), t.push(`"pathGlob":${JSON.stringify(e.pathGlob)}`), `{${t.join(",")}}`;
3232
3250
  }
3233
3251
  function Z(e) {
3234
3252
  let t = [];
3235
3253
  t.push(`"delegationDepth":${e.delegationDepth}`), t.push(`"expiresAt":${e.expiresAt}`), t.push(`"id":${JSON.stringify(e.id)}`), t.push(`"issuedAt":${e.issuedAt}`), t.push(`"issuer":${JSON.stringify(e.issuer)}`), t.push(`"keyId":${JSON.stringify(e.keyId)}`), e.maxDelegations !== void 0 && t.push(`"maxDelegations":${e.maxDelegations}`), e.parentTokenId !== void 0 && t.push(`"parentTokenId":${JSON.stringify(e.parentTokenId)}`);
3236
- let n = `[${e.scopes.map(Rr).join(",")}]`;
3254
+ let n = `[${e.scopes.map(Br).join(",")}]`;
3237
3255
  return t.push(`"scopes":${n}`), t.push(`"subject":${JSON.stringify(e.subject)}`), t.push(`"version":${JSON.stringify(e.version)}`), `{${t.join(",")}}`;
3238
3256
  }
3239
- async function zr(e) {
3257
+ async function Vr(e) {
3240
3258
  let t = Date.now(), n = `cap-${t}-${y(6)}`, r = e.keyId ?? `${e.issuerId}-key`, i = e.maxDelegations ?? 0, a = {
3241
3259
  id: n,
3242
3260
  version: "7h3-cap/1",
@@ -3254,40 +3272,40 @@ async function zr(e) {
3254
3272
  signature: o
3255
3273
  };
3256
3274
  }
3257
- function Br(e, t) {
3275
+ function Hr(e, t) {
3258
3276
  return e === t || t === "*" && e !== "**";
3259
3277
  }
3260
- function Vr(e, t) {
3278
+ function Ur(e, t) {
3261
3279
  let n = e.split("/"), r = t.split("/"), i = 0;
3262
3280
  for (let e of r) {
3263
- if (e === "**") return !0;
3281
+ if (e === "**") return i < n.length;
3264
3282
  if (i >= n.length) return !1;
3265
3283
  let t = n[i];
3266
- if (t === "**" || !Br(t, e)) return !1;
3284
+ if (t === "**" || !Hr(t, e)) return !1;
3267
3285
  i += 1;
3268
3286
  }
3269
3287
  return i === n.length;
3270
3288
  }
3271
- function Hr(e, t) {
3272
- if (!Vr(e.pathGlob, t.pathGlob)) return !1;
3289
+ function Wr(e, t) {
3290
+ if (!Ur(e.pathGlob, t.pathGlob)) return !1;
3273
3291
  if (t.methods !== void 0) {
3274
3292
  if (e.methods === void 0) return !1;
3275
3293
  for (let n of e.methods) if (!t.methods.includes(n)) return !1;
3276
3294
  }
3277
3295
  return !0;
3278
3296
  }
3279
- function Ur(e, t) {
3280
- for (let n of e) if (!t.some((e) => Hr(n, e))) return !1;
3297
+ function Gr(e, t) {
3298
+ for (let n of e) if (!t.some((e) => Wr(n, e))) return !1;
3281
3299
  return !0;
3282
3300
  }
3283
- async function Wr(e) {
3301
+ async function Kr(e) {
3284
3302
  let { parentToken: t, delegatorId: n, newSubject: r } = e;
3285
3303
  if (n !== t.subject) throw Error(`delegatorId '${n}' does not match parentToken.subject '${t.subject}'`);
3286
3304
  let i = Date.now();
3287
3305
  if (i >= t.expiresAt) throw Error("Parent token is expired");
3288
3306
  if (t.maxDelegations !== void 0 && t.maxDelegations <= 0) throw Error("Parent token does not allow further delegation (maxDelegations=0)");
3289
3307
  let a = e.scopes ?? t.scopes;
3290
- if (!Ur(a, t.scopes)) throw Error("Delegated scopes exceed parent token scopes");
3308
+ if (!Gr(a, t.scopes)) throw Error("Delegated scopes exceed parent token scopes");
3291
3309
  let o = t.expiresAt - i;
3292
3310
  if (e.ttlMs > o) throw Error(`Delegated ttlMs (${e.ttlMs}) exceeds parent token remaining TTL (${o})`);
3293
3311
  let s = `cap-${i}-${y(6)}`, c = e.keyId ?? `${n}-key`, l = t.maxDelegations === void 0 ? void 0 : t.maxDelegations - 1, u = {
@@ -3308,12 +3326,12 @@ async function Wr(e) {
3308
3326
  signature: d
3309
3327
  };
3310
3328
  }
3311
- async function Gr(e, t, n) {
3329
+ async function qr(e, t, n) {
3312
3330
  if ((n?.now ?? Date.now()) >= e.expiresAt) return !1;
3313
3331
  let { signature: r, ...i } = e;
3314
3332
  return x(Z(i), r, t);
3315
3333
  }
3316
- async function Kr(e, t, n) {
3334
+ async function Jr(e, t, n) {
3317
3335
  if (e.length === 0) return {
3318
3336
  ok: !1,
3319
3337
  reason: "empty-chain"
@@ -3347,7 +3365,7 @@ async function Kr(e, t, n) {
3347
3365
  ok: !1,
3348
3366
  reason: `chain-broken: token[${n}].expiresAt exceeds token[${n - 1}].expiresAt`
3349
3367
  };
3350
- if (!Ur(i.scopes, t.scopes)) return {
3368
+ if (!Gr(i.scopes, t.scopes)) return {
3351
3369
  ok: !1,
3352
3370
  reason: `chain-broken: token[${n}].scopes exceed token[${n - 1}].scopes`
3353
3371
  };
@@ -3368,7 +3386,7 @@ async function Kr(e, t, n) {
3368
3386
  };
3369
3387
  }
3370
3388
  let i = e[e.length - 1];
3371
- return n?.requiredPathGlob !== void 0 && !qr(i, n.requiredPathGlob, n.requiredMethod) ? {
3389
+ return n?.requiredPathGlob !== void 0 && !Yr(i, n.requiredPathGlob, n.requiredMethod) ? {
3372
3390
  ok: !1,
3373
3391
  reason: "leaf-token-does-not-cover-required-scope"
3374
3392
  } : {
@@ -3377,19 +3395,19 @@ async function Kr(e, t, n) {
3377
3395
  chain: e
3378
3396
  };
3379
3397
  }
3380
- function qr(e, t, n) {
3381
- for (let r of e.scopes) if (Tr(r.pathGlob, t) && (r.methods === void 0 || n !== void 0 && r.methods.includes(n.toUpperCase()))) return !0;
3398
+ function Yr(e, t, n) {
3399
+ for (let r of e.scopes) if (Dr(r.pathGlob, t) && (r.methods === void 0 || n !== void 0 && r.methods.includes(n.toUpperCase()))) return !0;
3382
3400
  return !1;
3383
3401
  }
3384
- function Jr(e) {
3402
+ function Xr(e) {
3385
3403
  return JSON.stringify(e);
3386
3404
  }
3387
- function Yr(e) {
3405
+ function Zr(e) {
3388
3406
  return JSON.parse(e);
3389
3407
  }
3390
3408
  //#endregion
3391
3409
  //#region src/gateway.ts
3392
- function Xr(e) {
3410
+ function Qr(e) {
3393
3411
  if (!e.startsWith("/")) return null;
3394
3412
  let t = e;
3395
3413
  for (let e = 0; e < 5; e++) {
@@ -3414,14 +3432,14 @@ function Xr(e) {
3414
3432
  }
3415
3433
  return "/" + r.join("/");
3416
3434
  }
3417
- var Zr = class {
3435
+ var $r = class {
3418
3436
  config;
3419
3437
  rateLimiter;
3420
3438
  constructor(e) {
3421
- this.config = e, this.rateLimiter = new Cr(), !e.replayStore && (e.policies ?? []).some((e) => e.require !== "none") && console.warn("[7h3-protocol] createGateway(): no replayStore configured with signature-requiring policies. Nonce/replay protection will not survive multiple gateway instances or restarts. See docs/GATEWAY.md#production-safety.");
3439
+ this.config = e, this.rateLimiter = new Tr(), !e.replayStore && (e.policies ?? []).some((e) => e.require !== "none") && console.warn("[7h3-protocol] createGateway(): no replayStore configured with signature-requiring policies. Nonce/replay protection will not survive multiple gateway instances or restarts. See docs/GATEWAY.md#production-safety.");
3422
3440
  }
3423
3441
  async checkSenderAndRateLimit(e, t, n, r, i) {
3424
- if (e && !Dr(e, t)) {
3442
+ if (e && !kr(e, t)) {
3425
3443
  let e = performance.now() - i;
3426
3444
  return X.verifications_total.increment({
3427
3445
  result: "fail",
@@ -3454,13 +3472,13 @@ var Zr = class {
3454
3472
  return null;
3455
3473
  }
3456
3474
  async verify(e) {
3457
- let t = performance.now(), n = Xr(e.path);
3475
+ let t = performance.now(), n = Qr(e.path);
3458
3476
  if (n === null) return {
3459
3477
  ok: !1,
3460
3478
  status: 400,
3461
3479
  reason: "invalid-path"
3462
3480
  };
3463
- let r = Er(this.config.policies ?? [], n);
3481
+ let r = Or(this.config.policies ?? [], n);
3464
3482
  if (r?.require === "none" || !r && (this.config.defaultPolicy ?? "allow") === "allow") {
3465
3483
  let e = performance.now() - t;
3466
3484
  return X.verifications_total.increment({
@@ -3473,13 +3491,13 @@ var Zr = class {
3473
3491
  };
3474
3492
  }
3475
3493
  if (this.config.capabilityRegistry) {
3476
- let n = e.headers[Lr], i = Array.isArray(n) ? n[0] : n;
3494
+ let n = e.headers[zr], i = Array.isArray(n) ? n[0] : n;
3477
3495
  if (i) try {
3478
- let n = await Kr(Yr(i), this.config.capabilityRegistry, {
3496
+ let n = await Jr(Zr(i), this.config.capabilityRegistry, {
3479
3497
  requiredPathGlob: e.path,
3480
3498
  requiredMethod: e.method
3481
3499
  });
3482
- if (n.ok && qr(n.token, e.path, e.method)) {
3500
+ if (n.ok && Yr(n.token, e.path, e.method)) {
3483
3501
  let i = n.token.subject, a = await this.checkSenderAndRateLimit(r, i, "ED25519", e, t);
3484
3502
  if (a) return a;
3485
3503
  let o = performance.now() - t;
@@ -3530,7 +3548,7 @@ var Zr = class {
3530
3548
  reason: "no-matching-policy"
3531
3549
  };
3532
3550
  }
3533
- let i = await kn(e.headers, {
3551
+ let i = await jn(e.headers, {
3534
3552
  keyRegistry: this.config.keyRegistry,
3535
3553
  headerName: this.config.headerName
3536
3554
  });
@@ -3587,7 +3605,7 @@ var Zr = class {
3587
3605
  headers: { "content-type": "application/json" },
3588
3606
  body: JSON.stringify({ error: t.reason })
3589
3607
  };
3590
- let n = Xr(e.path), r = this.config.upstream.replace(/\/$/, "") + n, i = {};
3608
+ let n = Qr(e.path), r = this.config.upstream.replace(/\/$/, "") + n, i = {};
3591
3609
  for (let [t, n] of Object.entries(e.headers)) i[t] = Array.isArray(n) ? n[0] : n;
3592
3610
  t.sender && (i["x-7h3-sender"] = t.sender, i["x-7h3-verified"] = "true");
3593
3611
  let a = await fetch(r, {
@@ -3596,7 +3614,7 @@ var Zr = class {
3596
3614
  body: e.body
3597
3615
  }), o = await a.text(), s = { "content-type": a.headers.get("content-type") ?? "application/json" };
3598
3616
  if (this.config.privateKey !== void 0 && (this.config.signResponses ?? !0) && this.config.sender !== void 0) {
3599
- let e = await kr(o, {
3617
+ let e = await jr(o, {
3600
3618
  privateKey: this.config.privateKey,
3601
3619
  sender: this.config.sender,
3602
3620
  recipient: t.sender || void 0
@@ -3613,17 +3631,17 @@ var Zr = class {
3613
3631
  return this.rateLimiter;
3614
3632
  }
3615
3633
  };
3616
- function Qr(e) {
3617
- return new Zr(e);
3634
+ function ei(e) {
3635
+ return new $r(e);
3618
3636
  }
3619
- function $r(e) {
3637
+ function ti(e) {
3620
3638
  if (e.defaultPolicy !== "deny") throw Error("createProductionGateway(): defaultPolicy must be explicitly 'deny'. Unmatched routes must never be forwarded unverified in production.");
3621
3639
  if (!e.replayStore) throw Error("createProductionGateway(): replayStore is required. Use a shared store (Redis/KV/Durable Object) so nonce replay protection survives multiple instances and restarts.");
3622
- return new Zr(e);
3640
+ return new $r(e);
3623
3641
  }
3624
3642
  //#endregion
3625
3643
  //#region src/auditLog.ts
3626
- function ei(e) {
3644
+ function ni(e) {
3627
3645
  let t = [
3628
3646
  `"id":${JSON.stringify(e.id)}`,
3629
3647
  `"timestampMs":${e.timestampMs}`,
@@ -3631,7 +3649,7 @@ function ei(e) {
3631
3649
  ];
3632
3650
  return e.sender !== void 0 && t.push(`"sender":${JSON.stringify(e.sender)}`), e.path !== void 0 && t.push(`"path":${JSON.stringify(e.path)}`), e.method !== void 0 && t.push(`"method":${JSON.stringify(e.method)}`), e.envelopeId !== void 0 && t.push(`"envelopeId":${JSON.stringify(e.envelopeId)}`), e.failReason !== void 0 && t.push(`"failReason":${JSON.stringify(e.failReason)}`), e.upstream !== void 0 && t.push(`"upstream":${JSON.stringify(e.upstream)}`), e.responseStatus !== void 0 && t.push(`"responseStatus":${e.responseStatus}`), `{${t.join(",")}}`;
3633
3651
  }
3634
- var ti = class {
3652
+ var ri = class {
3635
3653
  entries = [];
3636
3654
  privateKey;
3637
3655
  maxEntries;
@@ -3643,7 +3661,7 @@ var ti = class {
3643
3661
  id: `audit-${Date.now()}-${y(5)}`,
3644
3662
  timestampMs: Date.now(),
3645
3663
  ...e
3646
- }, n = await b(ei(t), this.privateKey), r = {
3664
+ }, n = await b(ni(t), this.privateKey), r = {
3647
3665
  ...t,
3648
3666
  entrySignature: n
3649
3667
  };
@@ -3654,7 +3672,7 @@ var ti = class {
3654
3672
  return e?.type !== void 0 && (t = t.filter((t) => t.type === e.type)), e?.sender !== void 0 && (t = t.filter((t) => t.sender === e.sender)), e?.since !== void 0 && (t = t.filter((t) => t.timestampMs >= e.since)), e?.limit !== void 0 && (t = t.slice(-e.limit)), t;
3655
3673
  }
3656
3674
  async verify(e, t) {
3657
- return x(ei({
3675
+ return x(ni({
3658
3676
  id: e.id,
3659
3677
  timestampMs: e.timestampMs,
3660
3678
  type: e.type,
@@ -3670,7 +3688,7 @@ var ti = class {
3670
3688
  size() {
3671
3689
  return this.entries.length;
3672
3690
  }
3673
- }, ni = class {
3691
+ }, ii = class {
3674
3692
  async log(e) {}
3675
3693
  async query(e) {
3676
3694
  return [];
@@ -3682,25 +3700,25 @@ var ti = class {
3682
3700
  return 0;
3683
3701
  }
3684
3702
  };
3685
- function ri(e, t) {
3686
- return new ti(e, t?.maxEntries);
3703
+ function ai(e, t) {
3704
+ return new ri(e, t?.maxEntries);
3687
3705
  }
3688
3706
  //#endregion
3689
3707
  //#region src/otel.ts
3690
- var ii = null;
3691
- function ai(e) {
3692
- ii = e;
3708
+ var oi = null;
3709
+ function si(e) {
3710
+ oi = e;
3693
3711
  }
3694
- function oi() {
3695
- if (ii === null) return null;
3712
+ function ci() {
3713
+ if (oi === null) return null;
3696
3714
  try {
3697
- return ii.getTracer("7h3/protocol");
3715
+ return oi.getTracer("7h3/protocol");
3698
3716
  } catch {
3699
3717
  return null;
3700
3718
  }
3701
3719
  }
3702
- async function si(e, t) {
3703
- let n = oi();
3720
+ async function li(e, t) {
3721
+ let n = ci();
3704
3722
  if (n === null) return e(null);
3705
3723
  let r = n.startSpan("7h3.verify", t);
3706
3724
  try {
@@ -3711,8 +3729,8 @@ async function si(e, t) {
3711
3729
  r.end();
3712
3730
  }
3713
3731
  }
3714
- async function ci(e) {
3715
- let t = oi();
3732
+ async function ui(e) {
3733
+ let t = ci();
3716
3734
  if (t === null) return e(null);
3717
3735
  let n = t.startSpan("7h3.audit.write");
3718
3736
  try {
@@ -3731,39 +3749,39 @@ function Q(e) {
3731
3749
  function $(e) {
3732
3750
  return Buffer.from(e, "base64url");
3733
3751
  }
3734
- var li = Buffer.from("302e020100300506032b656e04220420", "hex"), ui = Buffer.from("302a300506032b656e032100", "hex");
3735
- function di(e) {
3752
+ var di = Buffer.from("302e020100300506032b656e04220420", "hex"), fi = Buffer.from("302a300506032b656e032100", "hex");
3753
+ function pi(e) {
3736
3754
  let t = $(e);
3737
3755
  return r({
3738
- key: Buffer.concat([li, t]),
3756
+ key: Buffer.concat([di, t]),
3739
3757
  format: "der",
3740
3758
  type: "pkcs8"
3741
3759
  });
3742
3760
  }
3743
- function fi(e) {
3761
+ function mi(e) {
3744
3762
  let t = $(e);
3745
3763
  return i({
3746
- key: Buffer.concat([ui, t]),
3764
+ key: Buffer.concat([fi, t]),
3747
3765
  format: "der",
3748
3766
  type: "spki"
3749
3767
  });
3750
3768
  }
3751
- function pi() {
3769
+ function hi() {
3752
3770
  let { privateKey: e, publicKey: t } = o("x25519"), n = e.export({ format: "jwk" });
3753
3771
  return {
3754
3772
  publicKey: t.export({ format: "jwk" }).x,
3755
3773
  privateKey: n.d
3756
3774
  };
3757
3775
  }
3758
- function mi(e, t, n) {
3776
+ function gi(e, t, n) {
3759
3777
  let r = s("sha256", a({
3760
- privateKey: di(e),
3761
- publicKey: fi(t)
3778
+ privateKey: pi(e),
3779
+ publicKey: mi(t)
3762
3780
  }), $(n), Buffer.from("7h3-enc/1", "utf8"), 32);
3763
3781
  return Buffer.from(r);
3764
3782
  }
3765
- function hi(e, n) {
3766
- let r = pi(), i = c(12), a = Q(i), o = mi(r.privateKey, n, a), s = Buffer.from(JSON.stringify(e), "utf8"), l = t("chacha20-poly1305", o, i, { authTagLength: 16 }), u = Buffer.concat([l.update(s), l.final()]), d = l.getAuthTag(), f = {
3783
+ function _i(e, n) {
3784
+ let r = hi(), i = c(12), a = Q(i), o = gi(r.privateKey, n, a), s = Buffer.from(JSON.stringify(e), "utf8"), l = t("chacha20-poly1305", o, i, { authTagLength: 16 }), u = Buffer.concat([l.update(s), l.final()]), d = l.getAuthTag(), f = {
3767
3785
  ephemeralPublic: r.publicKey,
3768
3786
  nonce: a,
3769
3787
  ciphertext: Q(u),
@@ -3774,14 +3792,14 @@ function hi(e, n) {
3774
3792
  ephemeralPublic: r.publicKey
3775
3793
  };
3776
3794
  }
3777
- function gi(e, t) {
3778
- let r = $(e).toString("utf8"), { ephemeralPublic: i, nonce: a, ciphertext: o, tag: s } = JSON.parse(r), c = mi(t, i, a), l = $(a), u = $(o), d = $(s), f = n("chacha20-poly1305", c, l, { authTagLength: 16 });
3795
+ function vi(e, t) {
3796
+ let r = $(e).toString("utf8"), { ephemeralPublic: i, nonce: a, ciphertext: o, tag: s } = JSON.parse(r), c = gi(t, i, a), l = $(a), u = $(o), d = $(s), f = n("chacha20-poly1305", c, l, { authTagLength: 16 });
3779
3797
  f.setAuthTag(d);
3780
3798
  let p = Buffer.concat([f.update(u), f.final()]);
3781
3799
  return JSON.parse(p.toString("utf8"));
3782
3800
  }
3783
- async function _i(e, t) {
3784
- let { encryptedContent: n } = hi(e.body, t.recipientX25519PublicKey);
3801
+ async function yi(e, t) {
3802
+ let { encryptedContent: n } = _i(e.body, t.recipientX25519PublicKey);
3785
3803
  return w({
3786
3804
  header: e.header,
3787
3805
  body: {
@@ -3792,12 +3810,12 @@ async function _i(e, t) {
3792
3810
  }
3793
3811
  }, t.senderEd25519PrivateKey);
3794
3812
  }
3795
- async function vi(e, t) {
3813
+ async function bi(e, t) {
3796
3814
  if (!await T(e, t.senderEd25519PublicKey)) throw Error("7h3/encryption: Ed25519 signature verification failed");
3797
3815
  return {
3798
3816
  envelope: e,
3799
- body: gi(e.body.content, t.recipientX25519PrivateKey)
3817
+ body: vi(e.body.content, t.recipientX25519PrivateKey)
3800
3818
  };
3801
3819
  }
3802
3820
  //#endregion
3803
- export { it as AgentSession, at as AipAgentAdapter, Lr as CAP_HEADER, Cn as CBOR_CONTENT_TYPE, bn as CborDecoder, yn as CborEncoder, Lt as ClusterRedisReplayStore, On as DEFAULT_HEADER, be as DEFAULT_MAX_BINARY_ENVELOPE_BYTES, Le as DistributedReplayCache, pr as GRPC_METADATA_KEY, ti as InMemoryAuditLog, Ft as InMemoryRedisLikeClient, A as InMemoryReplayCache, Ht as InMemoryRevocationStore, Re as InMemoryVerificationMaterialCache, In as InMemoryWebhookReplayCache, xr as KeyRotationManager, ge as MAX_TTL_MS, ni as NoopAuditLog, Zr as Protocol7h3Gateway, Pr as Protocol7h3Metrics, Or as RESPONSE_HEADER, It as RedisReplayStore, Sr as RevocationRegistry, nt as RollingKeyring, jt as RuntimePolicyManager, Gn as STREAM_HEADER, Je as SessionTransport, rr as SignedStreamReader, nr as SignedStreamWriter, Y as SimpleCounter, Nr as SimpleHistogram, Cr as SlidingWindowRateLimiter, Fn as WEBHOOK_DEFAULT_TTL_MS, R as WEBHOOK_SIG_HEADER, z as WEBHOOK_TS_HEADER, N as bootstrapRuntimePolicyEnforcer, Z as canonicalizeCapabilityToken, _ as canonicalizeEnvelope, Vn as consumeWebhook, ot as createAipAgentAdapter, Qe as createAipCapabilities, kt as createAipMcpGatewayRuntime, At as createAipMcpGatewayRuntimeWithPolicy, ri as createAuditLog, rn as createCachingKeyRegistry, Bt as createClusterReplayStore, nn as createCompositeKeyRegistry, D as createEnvelope, Qr as createGateway, br as createHttpKeyRegistry, en as createHttpMcpClient, $t as createHttpMcpHandler, Mn as createHttpMiddleware, rt as createKeyringSignatureResolver, Jt as createMcpClientCodec, Ir as createMetricsMiddleware, St as createPolicyEnforcer, $r as createProductionGateway, ft as createRawTaskFromJsonRpc, st as createRawTaskFromLangChain, lt as createRawTaskFromLlamaIndex, Rt as createRedisReplayStore, Ut as createRedisRevocationStore, Pn as createSignedFetchRequest, Ye as createSignedMessage, ir as createSignedStream, dr as createSignedWebSocketStream, tn as createStaticKeyRegistry, Qt as createStdioMcpClient, ar as createStreamVerifier, Sn as decodeCbor, We as decodeEnvelope, Ke as decodeEnvelopeBatch, Fe as decodeEnvelopeBinary, Dn as decodeEnvelopeCbor, lr as decodeStreamChunk, gi as decryptBody, Wr as delegateCapabilityToken, mi as deriveEncryptionKey, $e as encodeAipCapabilities, xn as encodeCbor, j as encodeEnvelope, Ge as encodeEnvelopeBatch, Pe as encodeEnvelopeBinary, wn as encodeEnvelopeCbor, cr as encodeStreamChunk, hi as encryptBody, yr as fetchWellKnownKeys, pe as generateEd25519KeypairBase64Url, pi as generateX25519KeyPair, oi as getOtelTracer, Nt as getRuntimeTuningPreset, wr as globalRateLimiter, Dr as isAllowedSender, Ct as isRuntimeMode, zr as issueCapabilityToken, yt as loadRuntimePolicy, Tr as matchGlob, Er as matchPolicy, X as metrics, tt as negotiateAipCapabilities, Xr as normalizeGatewayPath, vi as openEnvelope, et as parseAipCapabilities, Yr as parseCapabilityChain, _t as parseRuntimePolicyJson, vr as parseWellKnownKeys, y as randomHex, M as receiveEnvelope, qe as receiveEnvelopeBatch, fr as receiveSignedWebSocketStream, Pt as recommendPolicyAdjustments, Fr as renderPrometheusText, _i as sealEnvelope, Jr as serializeCapabilityChain, Zt as serveMcpOverStdio, _r as serveWellKnownKeys, ai as setOtelProvider, b as signCanonicalPayloadEd25519, de as signCanonicalPayloadHmac, w as signEnvelopeEd25519, S as signEnvelopeHmac, Nn as signFetchRequest, mr as signGrpcCall, An as signHttpRequest, jn as signHttpRequestHmac, Hn as signQueueMessage, kr as signResponse, or as signStream, Ln as signWebhook, Rn as signWebhookHmac, pt as toJsonRpcResponse, ct as toLangChainMessage, ut as toLlamaIndexMessage, qr as tokenMatchesScope, E as validateEnvelope, gt as validateRuntimePolicy, x as verifyCanonicalPayloadEd25519, fe as verifyCanonicalPayloadHmac, he as verifyCanonicalPayloadSignature, Kr as verifyCapabilityChain, Gr as verifyCapabilityToken, T as verifyEnvelopeEd25519, C as verifyEnvelopeHmac, me as verifyEnvelopeSignature, hr as verifyGrpcCall, kn as verifyHttpEnvelope, Wn as verifyQueueBatch, Un as verifyQueueMessage, Ar as verifyResponse, sr as verifyStream, zn as verifyWebhook, Bn as verifyWebhookHmac, ci as withAuditSpan, gr as withGrpcVerification, Wt as withRevocationCheck, si as withVerificationSpan, Yt as wrapMcpClient, qt as wrapMcpServer, ur as wrapWebSocket };
3821
+ export { at as AgentSession, ot as AipAgentAdapter, zr as CAP_HEADER, Tn as CBOR_CONTENT_TYPE, Sn as CborDecoder, bn as CborEncoder, Rt as ClusterRedisReplayStore, An as DEFAULT_HEADER, xe as DEFAULT_MAX_BINARY_ENVELOPE_BYTES, Re as DistributedReplayCache, hr as GRPC_METADATA_KEY, ri as InMemoryAuditLog, It as InMemoryRedisLikeClient, A as InMemoryReplayCache, Ut as InMemoryRevocationStore, ze as InMemoryVerificationMaterialCache, Rn as InMemoryWebhookReplayCache, Cr as KeyRotationManager, xn as MAX_CBOR_DEPTH, _e as MAX_CLOCK_SKEW_MS, ge as MAX_TTL_MS, ii as NoopAuditLog, $r as Protocol7h3Gateway, Ir as Protocol7h3Metrics, Ar as RESPONSE_HEADER, Lt as RedisReplayStore, wr as RevocationRegistry, rt as RollingKeyring, Mt as RuntimePolicyManager, qn as STREAM_HEADER, Ye as SessionTransport, ar as SignedStreamReader, ir as SignedStreamWriter, Y as SimpleCounter, Fr as SimpleHistogram, Tr as SlidingWindowRateLimiter, Ln as WEBHOOK_DEFAULT_TTL_MS, R as WEBHOOK_SIG_HEADER, z as WEBHOOK_TS_HEADER, N as bootstrapRuntimePolicyEnforcer, Z as canonicalizeCapabilityToken, _ as canonicalizeEnvelope, Un as consumeWebhook, st as createAipAgentAdapter, $e as createAipCapabilities, At as createAipMcpGatewayRuntime, jt as createAipMcpGatewayRuntimeWithPolicy, ai as createAuditLog, an as createCachingKeyRegistry, Vt as createClusterReplayStore, rn as createCompositeKeyRegistry, D as createEnvelope, ei as createGateway, Sr as createHttpKeyRegistry, tn as createHttpMcpClient, en as createHttpMcpHandler, Pn as createHttpMiddleware, it as createKeyringSignatureResolver, Yt as createMcpClientCodec, Rr as createMetricsMiddleware, Ct as createPolicyEnforcer, ti as createProductionGateway, pt as createRawTaskFromJsonRpc, ct as createRawTaskFromLangChain, ut as createRawTaskFromLlamaIndex, zt as createRedisReplayStore, Wt as createRedisRevocationStore, In as createSignedFetchRequest, Xe as createSignedMessage, or as createSignedStream, pr as createSignedWebSocketStream, nn as createStaticKeyRegistry, $t as createStdioMcpClient, sr as createStreamVerifier, wn as decodeCbor, Ge as decodeEnvelope, qe as decodeEnvelopeBatch, Ie as decodeEnvelopeBinary, kn as decodeEnvelopeCbor, dr as decodeStreamChunk, vi as decryptBody, Kr as delegateCapabilityToken, gi as deriveEncryptionKey, et as encodeAipCapabilities, Cn as encodeCbor, j as encodeEnvelope, Ke as encodeEnvelopeBatch, Fe as encodeEnvelopeBinary, En as encodeEnvelopeCbor, ur as encodeStreamChunk, _i as encryptBody, xr as fetchWellKnownKeys, pe as generateEd25519KeypairBase64Url, hi as generateX25519KeyPair, ci as getOtelTracer, Pt as getRuntimeTuningPreset, Er as globalRateLimiter, kr as isAllowedSender, wt as isRuntimeMode, Vr as issueCapabilityToken, bt as loadRuntimePolicy, Dr as matchGlob, Or as matchPolicy, X as metrics, nt as negotiateAipCapabilities, Qr as normalizeGatewayPath, bi as openEnvelope, tt as parseAipCapabilities, Zr as parseCapabilityChain, vt as parseRuntimePolicyJson, br as parseWellKnownKeys, y as randomHex, M as receiveEnvelope, Je as receiveEnvelopeBatch, mr as receiveSignedWebSocketStream, Ft as recommendPolicyAdjustments, Lr as renderPrometheusText, yi as sealEnvelope, Xr as serializeCapabilityChain, Qt as serveMcpOverStdio, yr as serveWellKnownKeys, si as setOtelProvider, b as signCanonicalPayloadEd25519, de as signCanonicalPayloadHmac, w as signEnvelopeEd25519, S as signEnvelopeHmac, Fn as signFetchRequest, gr as signGrpcCall, Mn as signHttpRequest, Nn as signHttpRequestHmac, Wn as signQueueMessage, jr as signResponse, cr as signStream, zn as signWebhook, Bn as signWebhookHmac, mt as toJsonRpcResponse, lt as toLangChainMessage, dt as toLlamaIndexMessage, Yr as tokenMatchesScope, E as validateEnvelope, _t as validateRuntimePolicy, x as verifyCanonicalPayloadEd25519, fe as verifyCanonicalPayloadHmac, he as verifyCanonicalPayloadSignature, Jr as verifyCapabilityChain, qr as verifyCapabilityToken, T as verifyEnvelopeEd25519, C as verifyEnvelopeHmac, me as verifyEnvelopeSignature, _r as verifyGrpcCall, jn as verifyHttpEnvelope, Kn as verifyQueueBatch, Gn as verifyQueueMessage, Mr as verifyResponse, lr as verifyStream, Vn as verifyWebhook, Hn as verifyWebhookHmac, ui as withAuditSpan, vr as withGrpcVerification, Gt as withRevocationCheck, li as withVerificationSpan, Xt as wrapMcpClient, Jt as wrapMcpServer, fr as wrapWebSocket };