@moltzap/protocol 2026.503.2 → 2026.503.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/test-fixtures/seed-data.d.ts.map +1 -1
  2. package/dist/test-fixtures/seed-data.js +52 -21
  3. package/dist/test-fixtures/seed-data.js.map +1 -1
  4. package/dist/testing/agent-registration.d.ts.map +1 -1
  5. package/dist/testing/agent-registration.js +48 -39
  6. package/dist/testing/agent-registration.js.map +1 -1
  7. package/dist/testing/arbitraries/frames.d.ts.map +1 -1
  8. package/dist/testing/arbitraries/frames.js +2 -1
  9. package/dist/testing/arbitraries/frames.js.map +1 -1
  10. package/dist/testing/arbitraries/from-typebox.d.ts.map +1 -1
  11. package/dist/testing/arbitraries/from-typebox.js +19 -10
  12. package/dist/testing/arbitraries/from-typebox.js.map +1 -1
  13. package/dist/testing/arbitraries/rpc.d.ts.map +1 -1
  14. package/dist/testing/arbitraries/rpc.js +12 -3
  15. package/dist/testing/arbitraries/rpc.js.map +1 -1
  16. package/dist/testing/captures.d.ts.map +1 -1
  17. package/dist/testing/captures.js +4 -3
  18. package/dist/testing/captures.js.map +1 -1
  19. package/dist/testing/codec.d.ts.map +1 -1
  20. package/dist/testing/codec.js +13 -5
  21. package/dist/testing/codec.js.map +1 -1
  22. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.d.ts.map +1 -1
  23. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js +7 -4
  24. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js.map +1 -1
  25. package/dist/testing/conformance/_helpers.d.ts +6 -1
  26. package/dist/testing/conformance/_helpers.d.ts.map +1 -1
  27. package/dist/testing/conformance/_helpers.js +24 -0
  28. package/dist/testing/conformance/_helpers.js.map +1 -1
  29. package/dist/testing/conformance/adversity.d.ts.map +1 -1
  30. package/dist/testing/conformance/adversity.js +76 -66
  31. package/dist/testing/conformance/adversity.js.map +1 -1
  32. package/dist/testing/conformance/boundary.d.ts.map +1 -1
  33. package/dist/testing/conformance/boundary.js +49 -39
  34. package/dist/testing/conformance/boundary.js.map +1 -1
  35. package/dist/testing/conformance/client/adversity.d.ts.map +1 -1
  36. package/dist/testing/conformance/client/adversity.js +20 -15
  37. package/dist/testing/conformance/client/adversity.js.map +1 -1
  38. package/dist/testing/conformance/client/boundary.d.ts.map +1 -1
  39. package/dist/testing/conformance/client/boundary.js +7 -5
  40. package/dist/testing/conformance/client/boundary.js.map +1 -1
  41. package/dist/testing/conformance/client/delivery.d.ts.map +1 -1
  42. package/dist/testing/conformance/client/delivery.js +26 -20
  43. package/dist/testing/conformance/client/delivery.js.map +1 -1
  44. package/dist/testing/conformance/client/rpc-semantics.d.ts.map +1 -1
  45. package/dist/testing/conformance/client/rpc-semantics.js +18 -15
  46. package/dist/testing/conformance/client/rpc-semantics.js.map +1 -1
  47. package/dist/testing/conformance/client/runner.d.ts +13 -8
  48. package/dist/testing/conformance/client/runner.d.ts.map +1 -1
  49. package/dist/testing/conformance/client/runner.js +17 -24
  50. package/dist/testing/conformance/client/runner.js.map +1 -1
  51. package/dist/testing/conformance/client/schema-conformance.d.ts.map +1 -1
  52. package/dist/testing/conformance/client/schema-conformance.js +11 -9
  53. package/dist/testing/conformance/client/schema-conformance.js.map +1 -1
  54. package/dist/testing/conformance/client/suite.d.ts.map +1 -1
  55. package/dist/testing/conformance/client/suite.js +2 -1
  56. package/dist/testing/conformance/client/suite.js.map +1 -1
  57. package/dist/testing/conformance/delivery.d.ts.map +1 -1
  58. package/dist/testing/conformance/delivery.js +98 -124
  59. package/dist/testing/conformance/delivery.js.map +1 -1
  60. package/dist/testing/conformance/env.d.ts +9 -0
  61. package/dist/testing/conformance/env.d.ts.map +1 -1
  62. package/dist/testing/conformance/env.js +16 -3
  63. package/dist/testing/conformance/env.js.map +1 -1
  64. package/dist/testing/conformance/presence.d.ts.map +1 -1
  65. package/dist/testing/conformance/presence.js +4 -2
  66. package/dist/testing/conformance/presence.js.map +1 -1
  67. package/dist/testing/conformance/registry.d.ts +1 -1
  68. package/dist/testing/conformance/registry.d.ts.map +1 -1
  69. package/dist/testing/conformance/registry.js +1 -1
  70. package/dist/testing/conformance/registry.js.map +1 -1
  71. package/dist/testing/conformance/rpc-semantics.d.ts.map +1 -1
  72. package/dist/testing/conformance/rpc-semantics.js +139 -107
  73. package/dist/testing/conformance/rpc-semantics.js.map +1 -1
  74. package/dist/testing/conformance/runner.d.ts +2 -2
  75. package/dist/testing/conformance/runner.d.ts.map +1 -1
  76. package/dist/testing/conformance/runner.js +5 -10
  77. package/dist/testing/conformance/runner.js.map +1 -1
  78. package/dist/testing/conformance/schema-conformance.d.ts.map +1 -1
  79. package/dist/testing/conformance/schema-conformance.js +160 -120
  80. package/dist/testing/conformance/schema-conformance.js.map +1 -1
  81. package/dist/testing/conformance/suite.d.ts +1 -1
  82. package/dist/testing/conformance/suite.d.ts.map +1 -1
  83. package/dist/testing/conformance/suite.js +12 -9
  84. package/dist/testing/conformance/suite.js.map +1 -1
  85. package/dist/testing/models/dispatch.d.ts.map +1 -1
  86. package/dist/testing/models/dispatch.js +58 -50
  87. package/dist/testing/models/dispatch.js.map +1 -1
  88. package/dist/testing/models/state.d.ts +3 -3
  89. package/dist/testing/models/state.d.ts.map +1 -1
  90. package/dist/testing/models/state.js +14 -1
  91. package/dist/testing/models/state.js.map +1 -1
  92. package/dist/testing/test-client.d.ts +22 -3
  93. package/dist/testing/test-client.d.ts.map +1 -1
  94. package/dist/testing/test-client.js +51 -31
  95. package/dist/testing/test-client.js.map +1 -1
  96. package/dist/testing/test-server.d.ts.map +1 -1
  97. package/dist/testing/test-server.js +7 -11
  98. package/dist/testing/test-server.js.map +1 -1
  99. package/dist/testing/toxics/client.d.ts.map +1 -1
  100. package/dist/testing/toxics/client.js +39 -25
  101. package/dist/testing/toxics/client.js.map +1 -1
  102. package/dist/testing/toxics/profile.d.ts.map +1 -1
  103. package/dist/testing/toxics/profile.js +4 -1
  104. package/dist/testing/toxics/profile.js.map +1 -1
  105. package/dist/version.d.ts +1 -1
  106. package/dist/version.js +1 -1
  107. package/package.json +1 -1
@@ -6,10 +6,13 @@
6
6
  * property bodies compiler-checked against `RpcMap`.
7
7
  */
8
8
  import * as fc from "fast-check";
9
+ import { Data } from "effect";
9
10
  import { rpcMethods, } from "../../rpc-registry.js";
10
11
  import { applyCall } from "../models/dispatch.js";
11
12
  import { initialReferenceState } from "../models/state.js";
12
13
  import { arbitraryForParams } from "./from-typebox.js";
14
+ class RpcArbitraryInvariantError extends Data.TaggedError("RpcArbitraryInvariantError") {
15
+ }
13
16
  /**
14
17
  * Ordered list of every `RpcMethodName`. Exposed so properties can assert
15
18
  * "every method exercised at least once" without going through `RpcMap`
@@ -22,7 +25,9 @@ const methodByName = new Map(rpcMethods.map((m) => [m.name, m]));
22
25
  export function arbitraryCallFor(method) {
23
26
  const def = methodByName.get(method);
24
27
  if (def === undefined) {
25
- throw new Error(`arbitraryCallFor: unknown method ${String(method)}`);
28
+ throw new RpcArbitraryInvariantError({
29
+ message: `arbitraryCallFor: unknown method ${String(method)}`,
30
+ });
26
31
  }
27
32
  return arbitraryForParams(def.paramsSchema).map((params) => ({
28
33
  method,
@@ -35,7 +40,9 @@ export function arbitraryCallFor(method) {
35
40
  */
36
41
  export function arbitraryAnyCall() {
37
42
  if (allRpcMethods.length === 0) {
38
- throw new Error("arbitraryAnyCall: rpcMethods empty");
43
+ throw new RpcArbitraryInvariantError({
44
+ message: "arbitraryAnyCall: rpcMethods empty",
45
+ });
39
46
  }
40
47
  return fc.constantFrom(...allRpcMethods).chain((m) => arbitraryCallFor(m));
41
48
  }
@@ -89,7 +96,9 @@ export const confidentOracleMethods = (() => {
89
96
  */
90
97
  export function arbitraryConfidentCall() {
91
98
  if (confidentOracleMethods.length === 0) {
92
- throw new Error("arbitraryConfidentCall: model has zero confident-oracle methods; flag needs-structural-rework");
99
+ throw new RpcArbitraryInvariantError({
100
+ message: "arbitraryConfidentCall: model has zero confident-oracle methods; flag needs-structural-rework",
101
+ });
93
102
  }
94
103
  return fc
95
104
  .constantFrom(...confidentOracleMethods)
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/testing/arbitraries/rpc.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,UAAU,GAGX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAWvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC,UAAU,CAAC,GAAG,CACvE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACd,CAAC;AAEF,+EAA+E;AAC/E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjE,gEAAgE;AAChE,MAAM,UAAU,gBAAgB,CAC9B,MAAS;IAET,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAC7C,CAAC,MAAM,EAAE,EAAE,CACT,CAAC;QACC,MAAM;QACN,MAAM,EAAE,MAA6B;KACtC,CAAU,CACd,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAiC,CAAC,GAAG,EAAE;IACxE,iEAAiE;IACjE,wDAAwD;IACxD,4DAA4D;IAC5D,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;QACjE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,EAAE,CAAC;AAEL;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE;SACN,YAAY,CAAC,GAAG,sBAAsB,CAAC;SACvC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/testing/arbitraries/rpc.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"captures.d.ts","sourceRoot":"","sources":["../../src/testing/captures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,EAAO,MAAM,EAAU,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC/C;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAwB/B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GACpC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAkC9B;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,GACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAQrB;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,GACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAQrB"}
1
+ {"version":3,"file":"captures.d.ts","sourceRoot":"","sources":["../../src/testing/captures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,EAAO,MAAM,EAAU,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAI/D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC/C;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAwB/B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GACpC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAkC9B;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,GACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAQrB;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,GACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAQrB"}
@@ -10,6 +10,7 @@
10
10
  * Toxiproxy (Tier D).
11
11
  */
12
12
  import { Effect, Ref, Stream, PubSub } from "effect";
13
+ const CAPTURE_FANOUT_CONCURRENCY = 8;
13
14
  const startTime = Date.now();
14
15
  /**
15
16
  * Ring-buffer + PubSub implementation. The Ref holds the bounded
@@ -58,14 +59,14 @@ export function mergeCaptures(buffers) {
58
59
  // merged copy: the source buffers are authoritative.
59
60
  const snapshot = Effect.gen(function* () {
60
61
  const snaps = yield* Effect.forEach(buffers, (b) => b.snapshot, {
61
- concurrency: "unbounded",
62
+ concurrency: CAPTURE_FANOUT_CONCURRENCY,
62
63
  });
63
64
  const flat = snaps.flat();
64
65
  return [...flat].sort((a, b) => a.at - b.at);
65
66
  });
66
- const stream = Stream.mergeAll(buffers.map((b) => b.stream), { concurrency: "unbounded" });
67
+ const stream = Stream.mergeAll(buffers.map((b) => b.stream), { concurrency: CAPTURE_FANOUT_CONCURRENCY });
67
68
  const clear = Effect.forEach(buffers, (b) => b.clear, {
68
- concurrency: "unbounded",
69
+ concurrency: CAPTURE_FANOUT_CONCURRENCY,
69
70
  }).pipe(Effect.asVoid);
70
71
  return {
71
72
  snapshot,
@@ -1 +1 @@
1
- {"version":3,"file":"captures.js","sourceRoot":"","sources":["../../src/testing/captures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captures.js","sourceRoot":"","sources":["../../src/testing/captures.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/testing/codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAAC,GAC7C,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,aAAa,CAAC,GAC/C,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,WAAW,GACX,WAAW,GACX,cAAc,GACd,wBAAwB,GACxB,gBAAgB,CAAC;AAErB,iDAAiD;AACjD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,UAAU,GAAG,SAAS,GAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAiF3C;AAaD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,MAAM,GACX,MAAM,CAoDR"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/testing/codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQ/C;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAAC,GAC7C,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,aAAa,CAAC,GAC/C,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,WAAW,GACX,WAAW,GACX,cAAc,GACd,wBAAwB,GACxB,gBAAgB,CAAC;AAErB,iDAAiD;AACjD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,UAAU,GAAG,SAAS,GAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAiF3C;AAaD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,MAAM,GACX,MAAM,CAoDR"}
@@ -11,6 +11,11 @@ import { Effect } from "effect";
11
11
  import { Value } from "@sinclair/typebox/value";
12
12
  import { RequestFrameSchema, ResponseFrameSchema, EventFrameSchema, } from "../schema/frames.js";
13
13
  import { FrameSchemaError } from "./errors.js";
14
+ const BIT_FLIP_VARIANTS = 8;
15
+ const OVERSIZED_PADDING_BYTES = 65_536;
16
+ const LCG_MULTIPLIER = 1_664_525;
17
+ const LCG_INCREMENT = 1_013_904_223;
18
+ const LCG_MODULUS = 0x100000000;
14
19
  /** Serialize a typed frame to the wire bytes. */
15
20
  export function encodeFrame(frame) {
16
21
  return JSON.stringify(frame);
@@ -110,7 +115,7 @@ export function malformFrame(base, kind, seed) {
110
115
  const pos = Math.floor(rand() * rawJson.length);
111
116
  const ch = rawJson.charCodeAt(pos);
112
117
  // Flip one bit in the low byte (XOR with 1<<bit).
113
- const bit = Math.floor(rand() * 8);
118
+ const bit = Math.floor(rand() * BIT_FLIP_VARIANTS);
114
119
  const flipped = String.fromCharCode(ch ^ (1 << bit));
115
120
  return rawJson.slice(0, pos) + flipped + rawJson.slice(pos + 1);
116
121
  }
@@ -125,7 +130,7 @@ export function malformFrame(base, kind, seed) {
125
130
  // Uses `_padding` field at top level of the JSON object, which
126
131
  // `additionalProperties: false` rejects — also triggers "extra-property"
127
132
  // under different framing, but here the point is byte-size.
128
- const padLen = 64 * 1024;
133
+ const padLen = OVERSIZED_PADDING_BYTES;
129
134
  const pad = "X".repeat(padLen);
130
135
  // Splice "_padding":"...", before the closing `}`.
131
136
  const idx = rawJson.lastIndexOf("}");
@@ -151,10 +156,13 @@ export function malformFrame(base, kind, seed) {
151
156
  }
152
157
  default: {
153
158
  const _exhaustive = kind;
154
- throw new Error(`malformFrame: unexpected kind ${String(_exhaustive)}`);
159
+ return absurdMalformedFrameKind(_exhaustive);
155
160
  }
156
161
  }
157
162
  }
163
+ function absurdMalformedFrameKind(kind) {
164
+ throw new Error(`malformFrame: unexpected kind ${String(kind)}`);
165
+ }
158
166
  /**
159
167
  * Deterministic LCG (Numerical Recipes constants). Given the same seed,
160
168
  * yields the same sequence of floats in [0, 1). Good enough for reproducible
@@ -163,8 +171,8 @@ export function malformFrame(base, kind, seed) {
163
171
  function lcg(seed) {
164
172
  let s = seed >>> 0 || 1;
165
173
  return () => {
166
- s = (Math.imul(s, 1664525) + 1013904223) >>> 0;
167
- return s / 0x100000000;
174
+ s = (Math.imul(s, LCG_MULTIPLIER) + LCG_INCREMENT) >>> 0;
175
+ return s / LCG_MODULUS;
168
176
  };
169
177
  }
170
178
  //# sourceMappingURL=codec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/testing/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/testing/codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GAIjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,aAAa,GAAG,aAAa,CAAC;AACpC,MAAM,WAAW,GAAG,WAAW,CAAC;AAwBhC,iDAAiD;AACjD,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,SAAiC;IAEjC,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,gBAAgB,CAAC;gBACnB,SAAS;gBACT,QAAQ,EAAE,SAAS;gBACnB,GAAG;gBACH,MAAM,EAAE,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACjF,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IACE,MAAM,KAAK,IAAI;YACf,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;YACnB,OAAQ,MAA4B,CAAC,IAAI,KAAK,QAAQ,EACtD,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,gBAAgB,CAAC;gBACnB,SAAS;gBACT,QAAQ,EAAE,SAAS;gBACnB,GAAG;gBACH,MAAM,EAAE,6CAA6C;aACtD,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAI,MAA2B,CAAC,IAAI,CAAC;QAC/C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,MAAkB,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,gBAAgB,CAAC;oBACnB,SAAS;oBACT,QAAQ,EAAE,SAAS;oBACnB,GAAG;oBACH,MAAM,EAAE,eAAe,CAAC,kBAAkB,EAAE,MAAM,CAAC;iBACpD,CAAC,CACH,CAAC;YACJ,KAAK,UAAU;gBACb,IAAI,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,MAAkB,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,gBAAgB,CAAC;oBACnB,SAAS;oBACT,QAAQ,EAAE,UAAU;oBACpB,GAAG;oBACH,MAAM,EAAE,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC;iBACrD,CAAC,CACH,CAAC;YACJ,KAAK,OAAO;gBACV,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,MAAkB,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,gBAAgB,CAAC;oBACnB,SAAS;oBACT,QAAQ,EAAE,OAAO;oBACjB,GAAG;oBACH,MAAM,EAAE,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC;iBAClD,CAAC,CACH,CAAC;YACJ;gBACE,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,gBAAgB,CAAC;oBACnB,SAAS;oBACT,QAAQ,EAAE,SAAS;oBACnB,GAAG;oBACH,MAAM,EAAE,uBAAuB,IAAI,EAAE;iBACtC,CAAC,CACH,CAAC;QACN,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,MAA0C,EAC1C,KAAc;IAEd,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAc,EACd,IAAwB,EACxB,IAAY;IAEZ,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,sEAAsE;IACtE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAEvB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,kDAAkD;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,iBAAiB,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,2EAA2E;YAC3E,+DAA+D;YAC/D,yEAAyE;YACzE,4DAA4D;YAC5D,MAAM,MAAM,GAAG,uBAAuB,CAAC;YACvC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,mDAAmD;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,OAAO,GAAG,GAAG,CAAC;YACrC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACzD,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,yEAAyE;YACzE,qEAAqE;YACrE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC9B,0CAA0C;YAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,OAAO,CAAC;YAC/B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,IAAI,CAAC;YAChC,OAAO,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAW;IAC3C,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,SAAS,GAAG,CAAC,IAAY;IACvB,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACV,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,WAAW,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"executable-proof-helpers.d.ts","sourceRoot":"","sources":["../../../../src/testing/conformance/__divergence_proofs__/executable-proof-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAU,MAAM,QAAQ,CAAC;AACtD,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAiBhC;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,GACnB,IAAI,CAON;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,GACnB,IAAI,CAON"}
1
+ {"version":3,"file":"executable-proof-helpers.d.ts","sourceRoot":"","sources":["../../../../src/testing/conformance/__divergence_proofs__/executable-proof-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAU,MAAM,QAAQ,CAAC;AACtD,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAMxB,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAiBhC;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,GACnB,IAAI,CAWN;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,GACnB,IAAI,CAWN"}
@@ -1,5 +1,8 @@
1
1
  import { Cause, Chunk, Effect, Option } from "effect";
2
2
  import { PropertyAssertionFailure, PropertyInvariantViolation, } from "../registry.js";
3
+ class ProofExpectationError extends Error {
4
+ name = "ProofExpectationError";
5
+ }
3
6
  export function runExpectingFailure(property) {
4
7
  return Effect.gen(function* () {
5
8
  const exit = yield* Effect.exit(property.run);
@@ -16,18 +19,18 @@ export function runExpectingFailure(property) {
16
19
  }
17
20
  export function expectInvariant(failure, propertyName) {
18
21
  if (!(failure instanceof PropertyInvariantViolation)) {
19
- throw new Error(`expected invariant failure, got ${failure._tag}`);
22
+ throw new ProofExpectationError(`expected invariant failure, got ${failure._tag}`);
20
23
  }
21
24
  if (failure.name !== propertyName) {
22
- throw new Error(`expected ${propertyName}, got ${failure.name}`);
25
+ throw new ProofExpectationError(`expected ${propertyName}, got ${failure.name}`);
23
26
  }
24
27
  }
25
28
  export function expectAssertionFailure(failure, propertyName) {
26
29
  if (!(failure instanceof PropertyAssertionFailure)) {
27
- throw new Error(`expected assertion failure, got ${failure._tag}`);
30
+ throw new ProofExpectationError(`expected assertion failure, got ${failure._tag}`);
28
31
  }
29
32
  if (failure.name !== propertyName) {
30
- throw new Error(`expected ${propertyName}, got ${failure.name}`);
33
+ throw new ProofExpectationError(`expected ${propertyName}, got ${failure.name}`);
31
34
  }
32
35
  }
33
36
  //# sourceMappingURL=executable-proof-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executable-proof-helpers.js","sourceRoot":"","sources":["../../../../src/testing/conformance/__divergence_proofs__/executable-proof-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAG3B,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,mBAAmB,CACjC,QAA4B;IAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,sBAAsB,CAAC,CACvE,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAwB,EACxB,YAAoB;IAEpB,IAAI,CAAC,CAAC,OAAO,YAAY,0BAA0B,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAwB,EACxB,YAAoB;IAEpB,IAAI,CAAC,CAAC,OAAO,YAAY,wBAAwB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"executable-proof-helpers.js","sourceRoot":"","sources":["../../../../src/testing/conformance/__divergence_proofs__/executable-proof-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAG3B,MAAM,gBAAgB,CAAC;AAExB,MAAM,qBAAsB,SAAQ,KAAK;IACrB,IAAI,GAAG,uBAAuB,CAAC;CAClD;AAED,MAAM,UAAU,mBAAmB,CACjC,QAA4B;IAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,sBAAsB,CAAC,CACvE,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAwB,EACxB,YAAoB;IAEpB,IAAI,CAAC,CAAC,OAAO,YAAY,0BAA0B,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,qBAAqB,CAC7B,mCAAmC,OAAO,CAAC,IAAI,EAAE,CAClD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,qBAAqB,CAC7B,YAAY,YAAY,SAAS,OAAO,CAAC,IAAI,EAAE,CAChD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAwB,EACxB,YAAoB;IAEpB,IAAI,CAAC,CAAC,OAAO,YAAY,wBAAwB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,qBAAqB,CAC7B,mCAAmC,OAAO,CAAC,IAAI,EAAE,CAClD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,qBAAqB,CAC7B,YAAY,YAAY,SAAS,OAAO,CAAC,IAAI,EAAE,CAChD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * property modules. Keep this file thin; promote utilities here only
4
4
  * when they would otherwise be duplicated verbatim.
5
5
  */
6
- import type { Effect } from "effect";
6
+ import { Effect, Either } from "effect";
7
7
  import type { TestClient } from "../test-client.js";
8
8
  import type { FrameSchemaError, RpcResponseError, RpcTimeoutError, TransportClosedError, TransportIoError } from "../errors.js";
9
9
  /**
@@ -14,4 +14,9 @@ import type { FrameSchemaError, RpcResponseError, RpcTimeoutError, TransportClos
14
14
  * change outside this sub-issue's scope; this helper localizes the cast.
15
15
  */
16
16
  export declare function sendUntypedRpc(client: TestClient, method: string, params: unknown): Effect.Effect<unknown, RpcResponseError | RpcTimeoutError | TransportClosedError | TransportIoError | FrameSchemaError>;
17
+ export declare function requireRight<A, E, F>(value: Either.Either<A, E>, onLeft: (error: E) => F): Effect.Effect<A, F>;
18
+ export declare function leftOrNull<A, E>(value: Either.Either<A, E>): E | null;
19
+ export declare function eitherTag<A, E extends {
20
+ readonly _tag: string;
21
+ }>(value: Either.Either<A, E>): "Right" | E["_tag"];
17
22
  //# sourceMappingURL=_helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_helpers.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/_helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,MAAM,CAAC,MAAM,CACd,OAAO,EACL,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,CACnB,CAEA"}
1
+ {"version":3,"file":"_helpers.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/_helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,MAAM,CAAC,MAAM,CACd,OAAO,EACL,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,CACnB,CAEA;AAcD,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAClC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GACtB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKrB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAKrE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACzB,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAKrB"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Conformance-suite shared helpers — small utilities used by multiple
3
+ * property modules. Keep this file thin; promote utilities here only
4
+ * when they would otherwise be duplicated verbatim.
5
+ */
6
+ import { Effect, Either } from "effect";
1
7
  /**
2
8
  * `apps/register` is server-handled but absent from the typed
3
9
  * `rpcMethods` registry (see `packages/protocol/src/rpc-registry.ts`);
@@ -8,4 +14,22 @@
8
14
  export function sendUntypedRpc(client, method, params) {
9
15
  return client.sendRpc(method, params);
10
16
  }
17
+ export function requireRight(value, onLeft) {
18
+ return Either.match(value, {
19
+ onLeft: (error) => Effect.fail(onLeft(error)),
20
+ onRight: (success) => Effect.succeed(success),
21
+ });
22
+ }
23
+ export function leftOrNull(value) {
24
+ return Either.match(value, {
25
+ onLeft: (error) => error,
26
+ onRight: () => null,
27
+ });
28
+ }
29
+ export function eitherTag(value) {
30
+ return Either.match(value, {
31
+ onLeft: (error) => error._tag,
32
+ onRight: () => "Right",
33
+ });
34
+ }
11
35
  //# sourceMappingURL=_helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../../src/testing/conformance/_helpers.ts"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAkB,EAClB,MAAc,EACd,MAAe;IASf,OAAQ,MAAM,CAAC,OAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../../src/testing/conformance/_helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUxC;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAkB,EAClB,MAAc,EACd,MAAe;IASf,OAAQ,MAAM,CAAC,OAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAcD,MAAM,UAAU,YAAY,CAC1B,KAA0B,EAC1B,MAAuB;IAEvB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAO,KAA0B;IACzD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;QACxB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACpB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAA0B;IAE1B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;QAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;KACvB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"adversity.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/adversity.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA4IzD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAiE1E;AAED,4CAA4C;AAC5C,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAcrE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAgEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAkD1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAgEvE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAyCzE"}
1
+ {"version":3,"file":"adversity.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/adversity.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA6KzD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA4D1E;AAED,4CAA4C;AAC5C,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAcrE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA2DtE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAmD1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAkEvE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAyCzE"}
@@ -18,13 +18,40 @@
18
18
  * Principle 3: every property body is `Effect<void, PropertyFailure>`
19
19
  * — no bare throws, no `Effect.void` shortcuts.
20
20
  */
21
- import { Clock, Effect } from "effect";
21
+ import { Clock, Effect, Either } from "effect";
22
22
  import { defaultToxicProfile } from "../toxics/defaults.js";
23
23
  import { makeTestClient } from "../test-client.js";
24
24
  import { registerTestAgent } from "../agent-registration.js";
25
+ import { TransportClosedError } from "../errors.js";
25
26
  import { PropertyDeferred, PropertyInvariantViolation, PropertyUnavailable, registerProperty, } from "./registry.js";
27
+ import { ConversationsCreate, ConversationsList, } from "../../schema/methods/conversations.js";
28
+ import { MessagesSend } from "../../schema/methods/messages.js";
26
29
  const CATEGORY = "adversity";
27
30
  const DEFAULT_CAPTURE_CAPACITY = 128;
31
+ const ID_RADIX = 36;
32
+ const RANDOM_SUFFIX_START = 2;
33
+ const RANDOM_SUFFIX_END = 8;
34
+ const LATENCY_CLIENT_TIMEOUT_MS = 6_000;
35
+ const SLICER_CLIENT_TIMEOUT_MS = 8_000;
36
+ const RESET_CLIENT_TIMEOUT_MS = 4_000;
37
+ const RESET_POLL_ATTEMPTS = 10;
38
+ const RESET_CLOSE_BUDGET_MS = 3_500;
39
+ const TIMEOUT_CLIENT_TIMEOUT_MS = 1_500;
40
+ const TIMEOUT_EXPECTED_BUDGET_MS = 3_000;
41
+ const SLOW_CLOSE_CLIENT_TIMEOUT_MS = 2_000;
42
+ const SLOW_CLOSE_BUDGET_MS = 5_000;
43
+ const TIMEOUT_SURFACE_PROPERTY = "timeout-surface";
44
+ function violation(name, reason) {
45
+ return new PropertyInvariantViolation({ category: CATEGORY, name, reason });
46
+ }
47
+ function randomIdSuffix() {
48
+ return Math.random()
49
+ .toString(ID_RADIX)
50
+ .slice(RANDOM_SUFFIX_START, RANDOM_SUFFIX_END);
51
+ }
52
+ function proxyName(prefix, seed) {
53
+ return `${prefix}-${seed}-${randomIdSuffix()}`;
54
+ }
28
55
  /** Acquire a TestClient that routes through the Toxiproxy proxy. */
29
56
  function acquireProxiedClient(ctx, proxy, name, defaultTimeoutMs, unavailable) {
30
57
  // Preserve the upstream path (e.g., `/ws`) when building the
@@ -97,24 +124,17 @@ export function registerLatencyResilience(ctx) {
97
124
  ctx,
98
125
  propertyName: "latency-resilience",
99
126
  description: "fan-out delivery survives added latency + jitter",
100
- proxyName: `lat-${ctx.seed}-${Math.random().toString(36).slice(2, 8)}`,
127
+ proxyName: proxyName("lat", ctx.seed),
101
128
  profile: defaultToxicProfile.latency,
102
129
  body: ({ proxy, unavailable, attachToxic }) => Effect.gen(function* () {
103
- const owner = yield* acquireProxiedClient(ctx, proxy, `lat-${ctx.seed}-o`, 6000, unavailable);
104
- const participant = yield* acquireProxiedClient(ctx, proxy, `lat-${ctx.seed}-p`, 6000, unavailable);
105
- const conv = yield* createOneOnOneConversation(owner, participant);
106
- if (conv.kind !== "ok") {
107
- return yield* Effect.fail(new PropertyInvariantViolation({
108
- category: CATEGORY,
109
- name: "latency-resilience",
110
- reason: conv.reason,
111
- }));
112
- }
130
+ const owner = yield* acquireProxiedClient(ctx, proxy, `lat-${ctx.seed}-o`, LATENCY_CLIENT_TIMEOUT_MS, unavailable);
131
+ const participant = yield* acquireProxiedClient(ctx, proxy, `lat-${ctx.seed}-p`, LATENCY_CLIENT_TIMEOUT_MS, unavailable);
132
+ const conversationId = yield* createOneOnOneConversation(owner, participant, "latency-resilience");
113
133
  yield* Effect.scoped(Effect.gen(function* () {
114
134
  yield* attachToxic;
115
135
  yield* owner.client
116
- .sendRpc("messages/send", {
117
- conversationId: conv.conversationId,
136
+ .sendRpc(MessagesSend.name, {
137
+ conversationId,
118
138
  parts: [{ type: "text", text: "lat-ping" }],
119
139
  })
120
140
  .pipe(Effect.either);
@@ -154,25 +174,18 @@ export function registerSlicerFraming(ctx) {
154
174
  ctx,
155
175
  propertyName: "slicer-framing",
156
176
  description: "partial-frame slicing preserves payload byte-identity",
157
- proxyName: `sli-${ctx.seed}-${Math.random().toString(36).slice(2, 8)}`,
177
+ proxyName: proxyName("sli", ctx.seed),
158
178
  profile: defaultToxicProfile.slicer,
159
179
  body: ({ proxy, unavailable, attachToxic }) => Effect.gen(function* () {
160
- const owner = yield* acquireProxiedClient(ctx, proxy, `sli-${ctx.seed}-o`, 8000, unavailable);
161
- const participant = yield* acquireProxiedClient(ctx, proxy, `sli-${ctx.seed}-p`, 8000, unavailable);
162
- const conv = yield* createOneOnOneConversation(owner, participant);
163
- if (conv.kind !== "ok") {
164
- return yield* Effect.fail(new PropertyInvariantViolation({
165
- category: CATEGORY,
166
- name: "slicer-framing",
167
- reason: conv.reason,
168
- }));
169
- }
170
- const token = `sli-token-${ctx.seed}-${Date.now().toString(36)}`;
180
+ const owner = yield* acquireProxiedClient(ctx, proxy, `sli-${ctx.seed}-o`, SLICER_CLIENT_TIMEOUT_MS, unavailable);
181
+ const participant = yield* acquireProxiedClient(ctx, proxy, `sli-${ctx.seed}-p`, SLICER_CLIENT_TIMEOUT_MS, unavailable);
182
+ const conversationId = yield* createOneOnOneConversation(owner, participant, "slicer-framing");
183
+ const token = `sli-token-${ctx.seed}-${Date.now().toString(ID_RADIX)}`;
171
184
  yield* Effect.scoped(Effect.gen(function* () {
172
185
  yield* attachToxic;
173
186
  yield* owner.client
174
- .sendRpc("messages/send", {
175
- conversationId: conv.conversationId,
187
+ .sendRpc(MessagesSend.name, {
188
+ conversationId,
176
189
  parts: [{ type: "text", text: token }],
177
190
  })
178
191
  .pipe(Effect.either);
@@ -205,27 +218,30 @@ export function registerResetPeerRecovery(ctx) {
205
218
  ctx,
206
219
  propertyName: "reset-peer-recovery",
207
220
  description: "reset_peer surfaces TransportClosedError without hanging",
208
- proxyName: `rst-${ctx.seed}-${Math.random().toString(36).slice(2, 8)}`,
221
+ proxyName: proxyName("rst", ctx.seed),
209
222
  profile: defaultToxicProfile.reset_peer,
210
223
  body: ({ proxy, unavailable, attachToxic }) => Effect.gen(function* () {
211
224
  const sender = yield* acquireProxiedClient(ctx, proxy, `rst-${ctx.seed}-s`,
212
225
  // Deadline > reset_peer.timeoutMs (2000); bounded so a
213
226
  // never-firing reset doesn't hang the suite.
214
- 4000, unavailable);
227
+ RESET_CLIENT_TIMEOUT_MS, unavailable);
215
228
  const observed = yield* Effect.scoped(Effect.gen(function* () {
216
229
  yield* attachToxic;
217
230
  const start = yield* Clock.currentTimeMillis;
218
- for (let i = 0; i < 10; i++) {
231
+ for (let i = 0; i < RESET_POLL_ATTEMPTS; i++) {
219
232
  const outcome = yield* sender.client
220
- .sendRpc("conversations/list", {})
233
+ .sendRpc(ConversationsList.name, {})
221
234
  .pipe(Effect.either);
222
- if (outcome._tag === "Left" &&
223
- outcome.left._tag === "TestingTransportClosedError") {
235
+ const transportClosed = Either.match(outcome, {
236
+ onLeft: (error) => error instanceof TransportClosedError,
237
+ onRight: () => false,
238
+ });
239
+ if (transportClosed) {
224
240
  return true;
225
241
  }
226
242
  yield* Effect.sleep("300 millis");
227
243
  const elapsed = (yield* Clock.currentTimeMillis) - start;
228
- if (elapsed > 3500)
244
+ if (elapsed > RESET_CLOSE_BUDGET_MS)
229
245
  return false;
230
246
  }
231
247
  return false;
@@ -247,47 +263,50 @@ export function registerResetPeerRecovery(ctx) {
247
263
  export function registerTimeoutSurface(ctx) {
248
264
  withToxicProxy({
249
265
  ctx,
250
- propertyName: "timeout-surface",
266
+ propertyName: TIMEOUT_SURFACE_PROPERTY,
251
267
  description: "timeout toxic surfaces typed RpcTimeoutError within budget",
252
- proxyName: `to-${ctx.seed}-${Math.random().toString(36).slice(2, 8)}`,
268
+ proxyName: proxyName("to", ctx.seed),
253
269
  profile: defaultToxicProfile.timeout,
254
270
  body: ({ proxy, unavailable, attachToxic }) => Effect.gen(function* () {
255
271
  // Client timeout must be LESS than the toxic's forwarding
256
272
  // timeout so the RPC hits the client-side deadline first.
257
273
  // defaultToxicProfile.timeout.timeoutMs = 5000. Set client to
258
274
  // 1500ms for a fast, clear timeout surface.
259
- const proxied = yield* acquireProxiedClient(ctx, proxy, `to-${ctx.seed}-c`, 1500, unavailable);
275
+ const proxied = yield* acquireProxiedClient(ctx, proxy, `to-${ctx.seed}-c`, TIMEOUT_CLIENT_TIMEOUT_MS, unavailable);
260
276
  const { outcomeTag, elapsed } = yield* Effect.scoped(Effect.gen(function* () {
261
277
  yield* attachToxic;
262
278
  const start = yield* Clock.currentTimeMillis;
263
279
  const outcome = yield* proxied.client
264
- .sendRpc("conversations/list", {})
280
+ .sendRpc(ConversationsList.name, {})
265
281
  .pipe(Effect.either);
266
282
  const elapsed = (yield* Clock.currentTimeMillis) - start;
267
283
  return {
268
- outcomeTag: outcome._tag === "Right" ? "success" : outcome.left._tag,
284
+ outcomeTag: Either.match(outcome, {
285
+ onLeft: (error) => error._tag,
286
+ onRight: () => "success",
287
+ }),
269
288
  elapsed,
270
289
  };
271
290
  }));
272
291
  if (outcomeTag === "success") {
273
292
  return yield* Effect.fail(new PropertyInvariantViolation({
274
293
  category: CATEGORY,
275
- name: "timeout-surface",
294
+ name: TIMEOUT_SURFACE_PROPERTY,
276
295
  reason: "RPC through timeout toxic unexpectedly succeeded",
277
296
  }));
278
297
  }
279
298
  if (outcomeTag !== "TestingRpcTimeoutError") {
280
299
  return yield* Effect.fail(new PropertyInvariantViolation({
281
300
  category: CATEGORY,
282
- name: "timeout-surface",
301
+ name: TIMEOUT_SURFACE_PROPERTY,
283
302
  reason: `expected RpcTimeoutError, got ${outcomeTag}`,
284
303
  }));
285
304
  }
286
- if (elapsed > 3000) {
305
+ if (elapsed > TIMEOUT_EXPECTED_BUDGET_MS) {
287
306
  return yield* Effect.fail(new PropertyInvariantViolation({
288
307
  category: CATEGORY,
289
- name: "timeout-surface",
290
- reason: `timeout fired at ${elapsed}ms, expected <3000ms`,
308
+ name: TIMEOUT_SURFACE_PROPERTY,
309
+ reason: `timeout fired at ${elapsed}ms, expected <${TIMEOUT_EXPECTED_BUDGET_MS}ms`,
291
310
  }));
292
311
  }
293
312
  }),
@@ -303,7 +322,7 @@ export function registerSlowCloseCleanup(ctx) {
303
322
  ctx,
304
323
  propertyName: "slow-close-cleanup",
305
324
  description: "slow_close toxic does not leak descriptors beyond 2s",
306
- proxyName: `sc-${ctx.seed}-${Math.random().toString(36).slice(2, 8)}`,
325
+ proxyName: proxyName("sc", ctx.seed),
307
326
  profile: defaultToxicProfile.slow_close,
308
327
  body: ({ proxy, unavailable, attachToxic }) => Effect.gen(function* () {
309
328
  const start = yield* Clock.currentTimeMillis;
@@ -312,49 +331,40 @@ export function registerSlowCloseCleanup(ctx) {
312
331
  // Effect.scoped unwinds, the client must release within the
313
332
  // 2s budget even though the toxic delays its close-frame.
314
333
  yield* Effect.scoped(Effect.gen(function* () {
315
- const _client = yield* acquireProxiedClient(ctx, proxy, `sc-${ctx.seed}-c`, 2000, unavailable);
334
+ const _client = yield* acquireProxiedClient(ctx, proxy, `sc-${ctx.seed}-c`, SLOW_CLOSE_CLIENT_TIMEOUT_MS, unavailable);
316
335
  // A single RPC proves the socket is alive before close.
317
336
  yield* _client.client
318
- .sendRpc("conversations/list", {})
337
+ .sendRpc(ConversationsList.name, {})
319
338
  .pipe(Effect.either);
320
339
  }));
321
340
  const elapsed = (yield* Clock.currentTimeMillis) - start;
322
- if (elapsed > 5000) {
341
+ if (elapsed > SLOW_CLOSE_BUDGET_MS) {
323
342
  return yield* Effect.fail(new PropertyInvariantViolation({
324
343
  category: CATEGORY,
325
344
  name: "slow-close-cleanup",
326
- reason: `scope release took ${elapsed}ms under slow_close (budget 5000ms)`,
345
+ reason: `scope release took ${elapsed}ms under slow_close (budget ${SLOW_CLOSE_BUDGET_MS}ms)`,
327
346
  }));
328
347
  }
329
348
  }),
330
349
  });
331
350
  }
332
- function createOneOnOneConversation(owner, participant) {
351
+ // ── helpers ──────────────────────────────────────────────────────────
352
+ function createOneOnOneConversation(owner, participant, propertyName) {
333
353
  return Effect.gen(function* () {
334
354
  const create = yield* owner.client
335
- .sendRpc("conversations/create", {
355
+ .sendRpc(ConversationsCreate.name, {
336
356
  type: "group",
337
357
  name: `adv-conv-${owner.agent.name}`,
338
358
  participants: [
339
359
  { type: "agent", id: participant.agent.agentId },
340
360
  ],
341
361
  })
342
- .pipe(Effect.either);
343
- if (create._tag === "Left") {
344
- return {
345
- kind: "error",
346
- reason: `conversations/create under toxic: ${create.left._tag}`,
347
- };
348
- }
349
- const id = create.right.conversation
350
- ?.id;
362
+ .pipe(Effect.mapError((error) => violation(propertyName, `conversations/create under toxic: ${error._tag}`)));
363
+ const id = create.conversation?.id;
351
364
  if (typeof id !== "string" || id.length === 0) {
352
- return {
353
- kind: "error",
354
- reason: "conversations/create returned no conversation.id",
355
- };
365
+ return yield* Effect.fail(violation(propertyName, "conversations/create returned no conversation.id"));
356
366
  }
357
- return { kind: "ok", conversationId: id };
367
+ return id;
358
368
  });
359
369
  }
360
370
  //# sourceMappingURL=adversity.js.map