@moltzap/protocol 2026.503.3 → 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 +4 -1
  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 +70 -88
  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 +102 -63
  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 +113 -67
  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 +9 -3
  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
@@ -1,14 +1,27 @@
1
+ import { Config, ConfigProvider, Data, Effect, Option } from "effect";
2
+ export class ConformanceEnvError extends Data.TaggedError("ConformanceEnvError") {
3
+ }
4
+ const ConformanceNumRuns = Config.option(Config.string("CONFORMANCE_NUM_RUNS"));
5
+ const ConformanceArtifactDir = Config.all({
6
+ artifactDir: Config.option(Config.string("ARTIFACT_DIR")),
7
+ conformanceArtifactDir: Config.option(Config.string("CONFORMANCE_ARTIFACT_DIR")),
8
+ });
1
9
  export function conformanceNumRunsFromEnv() {
2
- const raw = process.env.CONFORMANCE_NUM_RUNS;
10
+ const raw = Option.getOrUndefined(Effect.runSync(ConformanceNumRuns.pipe(Effect.withConfigProvider(ConfigProvider.fromEnv()))));
3
11
  if (raw === undefined || raw === "")
4
12
  return undefined;
5
13
  const parsed = Number(raw);
6
14
  if (!Number.isInteger(parsed) || parsed < 1) {
7
- throw new Error(`CONFORMANCE_NUM_RUNS must be a positive integer: ${raw}`);
15
+ throw new ConformanceEnvError({
16
+ key: "CONFORMANCE_NUM_RUNS",
17
+ message: `CONFORMANCE_NUM_RUNS must be a positive integer: ${raw}`,
18
+ });
8
19
  }
9
20
  return parsed;
10
21
  }
11
22
  export function conformanceArtifactDirFromEnv() {
12
- return process.env.CONFORMANCE_ARTIFACT_DIR ?? process.env.ARTIFACT_DIR;
23
+ const env = Effect.runSync(ConformanceArtifactDir.pipe(Effect.withConfigProvider(ConfigProvider.fromEnv())));
24
+ return (Option.getOrUndefined(env.conformanceArtifactDir) ??
25
+ Option.getOrUndefined(env.artifactDir));
13
26
  }
14
27
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/testing/conformance/env.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/testing/conformance/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtE,MAAM,OAAO,mBAAoB,SAAQ,IAAI,CAAC,WAAW,CACvD,qBAAqB,CAIrB;CAAG;AAEL,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAChF,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzD,sBAAsB,EAAE,MAAM,CAAC,MAAM,CACnC,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAC1C;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAC/B,MAAM,CAAC,OAAO,CACZ,kBAAkB,CAAC,IAAI,CACrB,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CACpD,CACF,CACF,CAAC;IACF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,mBAAmB,CAAC;YAC5B,GAAG,EAAE,sBAAsB;YAC3B,OAAO,EAAE,oDAAoD,GAAG,EAAE;SACnE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CACxB,sBAAsB,CAAC,IAAI,CACzB,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CACpD,CACF,CAAC;IACF,OAAO,CACL,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,sBAAsB,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CACvC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/presence.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAmLzD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAqBzE;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAgC5E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAkDvE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAkDN;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAwCN;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CA0CN"}
1
+ {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/presence.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAsLzD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAqBzE;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAgC5E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAkDvE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAkDN;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAwCN;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CA0CN"}
@@ -11,9 +11,11 @@ import { PresenceSubscribe } from "../../schema/methods/presence.js";
11
11
  import { makeCloseableTestClient, makeTestClient, } from "../test-client.js";
12
12
  import { registerTestAgent } from "../agent-registration.js";
13
13
  import { PropertyInvariantViolation, registerProperty } from "./registry.js";
14
+ import { Connect } from "../../schema/methods/auth.js";
14
15
  const CATEGORY = "presence";
15
16
  const DEFAULT_TIMEOUT_MS = 5000;
16
17
  const DEFAULT_CAPTURE_CAPACITY = 256;
18
+ const EXPECTED_PRESENCE_SEQUENCE_LENGTH = 3;
17
19
  function violation(name, reason) {
18
20
  return new PropertyInvariantViolation({ category: CATEGORY, name, reason });
19
21
  }
@@ -130,7 +132,7 @@ export function registerReconnectStorm(ctx) {
130
132
  yield* acquireCloseableClient(ctx, NAME, a, "p3-a-client-2");
131
133
  yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "online" }, NAME);
132
134
  const sequence = yield* presenceStatusesFor(sub.client, a.agentId);
133
- if (sequence.length !== 3 ||
135
+ if (sequence.length !== EXPECTED_PRESENCE_SEQUENCE_LENGTH ||
134
136
  sequence[0] !== "online" ||
135
137
  sequence[1] !== "offline" ||
136
138
  sequence[2] !== "online") {
@@ -152,7 +154,7 @@ export function registerSameStateNoDoubleFire(ctx) {
152
154
  const aClient = yield* acquireCloseableClient(ctx, NAME, a, "p4-a-client");
153
155
  yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "online" }, NAME);
154
156
  yield* aClient
155
- .sendRpc("auth/connect", {
157
+ .sendRpc(Connect.name, {
156
158
  agentKey: a.apiKey,
157
159
  minProtocol: PROTOCOL_VERSION,
158
160
  maxProtocol: PROTOCOL_VERSION,
@@ -1 +1 @@
1
- {"version":3,"file":"presence.js","sourceRoot":"","sources":["../../../src/testing/conformance/presence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presence.js","sourceRoot":"","sources":["../../../src/testing/conformance/presence.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,6 @@ export declare function collectProperties(ctx: PropertyContext): ReadonlyArray<R
88
88
  * channel. Every tier module uses this wrapper — no direct `await
89
89
  * fc.assert(...)` at call sites.
90
90
  */
91
- export declare function assertProperty(category: PropertyCategory, name: string, body: () => Promise<void>): PropertyRun;
91
+ export declare function assertProperty(category: PropertyCategory, name: string, body: () => void | PromiseLike<void>): PropertyRun;
92
92
  export {};
93
93
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE3C;;;;;GAKG;AACH,KAAK,eAAe,GAAG,MAAM,CAAC;AAE9B;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB,oBAAoB,GACpB,eAAe,GACf,UAAU,GACV,WAAW,GACX,UAAU,GACV,UAAU,CAAC;;;;AAEf,qEAAqE;AACrE,qBAAa,wBAAyB,SAAQ,8BAE5C;IACA,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;;;;AAEL,wEAAwE;AACxE,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;CAAG;;;;AAEL,0EAA0E;AAC1E,qBAAa,gBAAiB,SAAQ,sBAEpC;IACA,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;CAAG;;;;AAEL,0DAA0D;AAC1D,qBAAa,0BAA2B,SAAQ,gCAE9C;IACA,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;CAAG;AAEL,qEAAqE;AACrE,MAAM,MAAM,eAAe,GACvB,wBAAwB,GACxB,mBAAmB,GACnB,gBAAgB,GAChB,0BAA0B,CAAC;AAE/B,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;CAC9D;AAeD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,WAAW,GACf,IAAI,CAQN;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,GACnB,aAAa,CAAC,kBAAkB,CAAC,CAGnC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACxB,WAAW,CAKb"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE3C;;;;;GAKG;AACH,KAAK,eAAe,GAAG,MAAM,CAAC;AAE9B;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB,oBAAoB,GACpB,eAAe,GACf,UAAU,GACV,WAAW,GACX,UAAU,GACV,UAAU,CAAC;;;;AAEf,qEAAqE;AACrE,qBAAa,wBAAyB,SAAQ,8BAE5C;IACA,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;;;;AAEL,wEAAwE;AACxE,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;CAAG;;;;AAEL,0EAA0E;AAC1E,qBAAa,gBAAiB,SAAQ,sBAEpC;IACA,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;CAAG;;;;AAEL,0DAA0D;AAC1D,qBAAa,0BAA2B,SAAQ,gCAE9C;IACA,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;CAAG;AAEL,qEAAqE;AACrE,MAAM,MAAM,eAAe,GACvB,wBAAwB,GACxB,mBAAmB,GACnB,gBAAgB,GAChB,0BAA0B,CAAC;AAE/B,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;CAC9D;AAeD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,WAAW,GACf,IAAI,CAQN;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,GACnB,aAAa,CAAC,kBAAkB,CAAC,CAGnC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GACnC,WAAW,CAKb"}
@@ -55,7 +55,7 @@ export function collectProperties(ctx) {
55
55
  */
56
56
  export function assertProperty(category, name, body) {
57
57
  return Effect.tryPromise({
58
- try: body,
58
+ try: () => Promise.resolve(body()),
59
59
  catch: (cause) => new PropertyAssertionFailure({ category, name, cause }),
60
60
  });
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/testing/conformance/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAuB3C,qEAAqE;AACrE,MAAM,OAAO,wBAAyB,SAAQ,IAAI,CAAC,WAAW,CAC5D,qCAAqC,CAKrC;CAAG;AAEL,wEAAwE;AACxE,MAAM,OAAO,mBAAoB,SAAQ,IAAI,CAAC,WAAW,CACvD,gCAAgC,CAKhC;CAAG;AAEL,0EAA0E;AAC1E,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CACpD,6BAA6B,CAK7B;CAAG;AAEL,0DAA0D;AAC1D,MAAM,OAAO,0BAA2B,SAAQ,IAAI,CAAC,WAAW,CAC9D,uCAAuC,CAKvC;CAAG;AAwBL,MAAM,UAAU,GAAG,IAAI,OAAO,EAAqC,CAAC;AAEpE,SAAS,cAAc,CAAC,GAAoB;IAC1C,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,GAAG,GAAG;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAoC,EAAE,CAAC,CAAC;SACzE,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAoB,EACpB,QAA0B,EAC1B,IAAY,EACZ,WAAmB,EACnB,GAAgB;IAEhB,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,CAAC,OAAO,CACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QAC/B,GAAG,GAAG;QACN,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;KACrC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,GAAoB;IAEpB,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA0B,EAC1B,IAAY,EACZ,IAAyB;IAEzB,OAAO,MAAM,CAAC,UAAU,CAAC;QACvB,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KAC1E,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/testing/conformance/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAuB3C,qEAAqE;AACrE,MAAM,OAAO,wBAAyB,SAAQ,IAAI,CAAC,WAAW,CAC5D,qCAAqC,CAKrC;CAAG;AAEL,wEAAwE;AACxE,MAAM,OAAO,mBAAoB,SAAQ,IAAI,CAAC,WAAW,CACvD,gCAAgC,CAKhC;CAAG;AAEL,0EAA0E;AAC1E,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CACpD,6BAA6B,CAK7B;CAAG;AAEL,0DAA0D;AAC1D,MAAM,OAAO,0BAA2B,SAAQ,IAAI,CAAC,WAAW,CAC9D,uCAAuC,CAKvC;CAAG;AAwBL,MAAM,UAAU,GAAG,IAAI,OAAO,EAAqC,CAAC;AAEpE,SAAS,cAAc,CAAC,GAAoB;IAC1C,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,GAAG,GAAG;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAoC,EAAE,CAAC,CAAC;SACzE,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAoB,EACpB,QAA0B,EAC1B,IAAY,EACZ,WAAmB,EACnB,GAAgB;IAEhB,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,CAAC,OAAO,CACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QAC/B,GAAG,GAAG;QACN,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;KACrC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,GAAoB;IAEpB,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA0B,EAC1B,IAAY,EACZ,IAAoC;IAEpC,OAAO,MAAM,CAAC,UAAU,CAAC;QACvB,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KAC1E,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-semantics.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/rpc-semantics.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAazD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAkDzE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAoD1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAkG1E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAqF5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAgBN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAoFN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAwGpE"}
1
+ {"version":3,"file":"rpc-semantics.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/rpc-semantics.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA0BzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA8DzE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAqD1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAoG1E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAwF5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAgBN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAsFN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAkHpE"}
@@ -9,19 +9,36 @@
9
9
  * Principle 3: every property body is `Effect<void, PropertyFailure>`.
10
10
  */
11
11
  import * as fc from "fast-check";
12
- import { Effect } from "effect";
12
+ import { Effect, Either } from "effect";
13
13
  import { arbitraryAnyCall, arbitraryConfidentCall, confidentOracleMethods, } from "../arbitraries/rpc.js";
14
14
  import { applyCall, authorizationOutcome, isIdempotent, } from "../models/dispatch.js";
15
15
  import { initialReferenceState } from "../models/state.js";
16
16
  import { ErrorCodes } from "../../schema/errors.js";
17
+ import { AgentsList } from "../../schema/methods/auth.js";
18
+ import { AppsOnBeforeDispatch } from "../../schema/methods/apps.js";
19
+ import { ConversationsList } from "../../schema/methods/conversations.js";
17
20
  import { canonicalJson, sortJsonArray } from "../canonicalize.js";
21
+ import { RpcResponseError } from "../errors.js";
18
22
  import { makeTestClient } from "../test-client.js";
19
23
  import { registerTestAgent } from "../agent-registration.js";
20
24
  import { allRpcMethods } from "../arbitraries/rpc.js";
21
25
  import { assertProperty, PropertyDeferred, PropertyInvariantViolation, PropertyUnavailable, registerProperty, } from "./registry.js";
26
+ import { eitherTag, leftOrNull } from "./_helpers.js";
22
27
  const CATEGORY = "rpc-semantics";
23
28
  const DEFAULT_TIMEOUT_MS = 3000;
24
29
  const DEFAULT_CAPTURE_CAPACITY = 64;
30
+ const MODEL_EQUIVALENCE_PROPERTY = "model-equivalence";
31
+ const AUTHORITY_POSITIVE_PROPERTY = "authority-positive";
32
+ const AUTHORITY_NEGATIVE_PROPERTY = "authority-negative";
33
+ const REQUEST_ID_UNIQUENESS_PROPERTY = "request-id-uniqueness";
34
+ const CALLER_CONTROLLED_S2C_TIMEOUT_PROPERTY = "caller-controlled-s2c-timeout";
35
+ const IDEMPOTENCE_PROPERTY = "idempotence";
36
+ const MODEL_NUM_RUNS_FLOOR = 10;
37
+ const MODEL_RUNS_PER_CONFIDENT_METHOD = 2;
38
+ const RESPONSE_CAPTURE_CAPACITY_PER_REQUEST = 4;
39
+ const REQUEST_ID_UNIQUENESS_NUM_RUNS = 5;
40
+ const TIMEOUT_LOWER_MARGIN_MS = 20;
41
+ const TIMEOUT_UPPER_MULTIPLIER = 4;
25
42
  /**
26
43
  * Model-equivalence — conditional oracle over the model-derived
27
44
  * confident set (architect #195 §4.1 + #197 §2).
@@ -56,8 +73,8 @@ const DEFAULT_CAPTURE_CAPACITY = 64;
56
73
  */
57
74
  export function registerModelEquivalence(ctx) {
58
75
  const K = confidentOracleMethods.length;
59
- const numRunsFloor = Math.max(10, 2 * K);
60
- registerProperty(ctx, CATEGORY, "model-equivalence", `when model predicts ok, server MUST return ok (K=${K} confident methods)`, assertProperty(CATEGORY, "model-equivalence", () => fc.assert(fc.asyncProperty(arbitraryConfidentCall(), (call) => {
76
+ const numRunsFloor = Math.max(MODEL_NUM_RUNS_FLOOR, MODEL_RUNS_PER_CONFIDENT_METHOD * K);
77
+ registerProperty(ctx, CATEGORY, MODEL_EQUIVALENCE_PROPERTY, `when model predicts ok, server MUST return ok (K=${K} confident methods)`, assertProperty(CATEGORY, MODEL_EQUIVALENCE_PROPERTY, () => fc.assert(fc.asyncProperty(arbitraryConfidentCall(), (call) => {
61
78
  const modelTag = applyCall(initialReferenceState, call).outcome._tag;
62
79
  if (modelTag === "error") {
63
80
  // Safety-net guard: `arbitraryConfidentCall` derived this
@@ -65,7 +82,11 @@ export function registerModelEquivalence(ctx) {
65
82
  // disagrees, applyCall became param-sensitive for the
66
83
  // kept method and the derivation must widen. Surface
67
84
  // loudly instead of silent short-circuit.
68
- throw new Error(`arbitraryConfidentCall drew ${call.method} with params ${JSON.stringify(call.params)} → model _tag: "error" — param-invariance contract broken; widen derivation to fc.sample-based check per architect #197 §2.2`);
85
+ return Effect.runPromise(Effect.fail(new PropertyInvariantViolation({
86
+ category: CATEGORY,
87
+ name: MODEL_EQUIVALENCE_PROPERTY,
88
+ reason: `arbitraryConfidentCall drew ${call.method} with params ${JSON.stringify(call.params)} → model _tag: "error" — param-invariance contract broken; widen derivation to fc.sample-based check per architect #197 §2.2`,
89
+ })));
69
90
  }
70
91
  return Effect.runPromise(Effect.scoped(Effect.gen(function* () {
71
92
  const agent = yield* registerTestAgent({
@@ -82,7 +103,10 @@ export function registerModelEquivalence(ctx) {
82
103
  const outcome = yield* client
83
104
  .sendRpc(call.method, call.params)
84
105
  .pipe(Effect.either);
85
- return outcome._tag === "Right" ? "ok" : "error";
106
+ return Either.match(outcome, {
107
+ onLeft: () => "error",
108
+ onRight: () => "ok",
109
+ });
86
110
  })).pipe(Effect.map((serverTag) => serverTag === "ok")));
87
111
  }), { seed: ctx.seed, numRuns: ctx.opts.numRuns ?? numRunsFloor })));
88
112
  // Keep `arbitraryAnyCall` import alive — used by sibling properties.
@@ -95,13 +119,13 @@ export function registerModelEquivalence(ctx) {
95
119
  * newly-registered agent), asserts a Right outcome.
96
120
  */
97
121
  export function registerAuthorityPositive(ctx) {
98
- registerProperty(ctx, CATEGORY, "authority-positive", "authorized agent → typed success on conversations/list", Effect.scoped(Effect.gen(function* () {
122
+ registerProperty(ctx, CATEGORY, AUTHORITY_POSITIVE_PROPERTY, "authorized agent → typed success on conversations/list", Effect.scoped(Effect.gen(function* () {
99
123
  const agent = yield* registerTestAgent({
100
124
  baseUrl: ctx.realServer.baseUrl,
101
125
  name: "ap",
102
126
  }).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
103
127
  category: CATEGORY,
104
- name: "authority-positive",
128
+ name: AUTHORITY_POSITIVE_PROPERTY,
105
129
  reason: `agent registration failed: ${e.body}`,
106
130
  })));
107
131
  const client = yield* makeTestClient({
@@ -112,17 +136,18 @@ export function registerAuthorityPositive(ctx) {
112
136
  captureCapacity: DEFAULT_CAPTURE_CAPACITY,
113
137
  }).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
114
138
  category: CATEGORY,
115
- name: "authority-positive",
139
+ name: AUTHORITY_POSITIVE_PROPERTY,
116
140
  reason: `client acquire failed: ${String(e)}`,
117
141
  })));
118
142
  const outcome = yield* client
119
- .sendRpc("conversations/list", {})
143
+ .sendRpc(ConversationsList.name, {})
120
144
  .pipe(Effect.either);
121
- if (outcome._tag === "Left") {
145
+ const failure = leftOrNull(outcome);
146
+ if (failure !== null) {
122
147
  return yield* Effect.fail(new PropertyInvariantViolation({
123
148
  category: CATEGORY,
124
- name: "authority-positive",
125
- reason: `authorized conversations/list failed: ${outcome.left._tag}`,
149
+ name: AUTHORITY_POSITIVE_PROPERTY,
150
+ reason: `authorized conversations/list failed: ${failure._tag}`,
126
151
  }));
127
152
  }
128
153
  })));
@@ -134,7 +159,7 @@ export function registerAuthorityPositive(ctx) {
134
159
  * with a typed error (not a success, not a crash).
135
160
  */
136
161
  export function registerAuthorityNegative(ctx) {
137
- registerProperty(ctx, CATEGORY, "authority-negative", "unauthenticated agent → typed denial on conversations/list", Effect.scoped(Effect.gen(function* () {
162
+ registerProperty(ctx, CATEGORY, AUTHORITY_NEGATIVE_PROPERTY, "unauthenticated agent → typed denial on conversations/list", Effect.scoped(Effect.gen(function* () {
138
163
  // We still need an agentKey to open the socket, but we skip
139
164
  // `auth/connect` so the server sees an un-authed session.
140
165
  const agent = yield* registerTestAgent({
@@ -142,7 +167,7 @@ export function registerAuthorityNegative(ctx) {
142
167
  name: "an",
143
168
  }).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
144
169
  category: CATEGORY,
145
- name: "authority-negative",
170
+ name: AUTHORITY_NEGATIVE_PROPERTY,
146
171
  reason: `agent registration failed: ${e.body}`,
147
172
  })));
148
173
  const client = yield* makeTestClient({
@@ -154,47 +179,48 @@ export function registerAuthorityNegative(ctx) {
154
179
  autoConnect: false,
155
180
  }).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
156
181
  category: CATEGORY,
157
- name: "authority-negative",
182
+ name: AUTHORITY_NEGATIVE_PROPERTY,
158
183
  reason: `client acquire failed: ${String(e)}`,
159
184
  })));
160
185
  const outcome = yield* client
161
- .sendRpc("conversations/list", {})
186
+ .sendRpc(ConversationsList.name, {})
162
187
  .pipe(Effect.either);
163
- if (outcome._tag === "Right") {
164
- return yield* Effect.fail(new PropertyInvariantViolation({
188
+ const error = yield* Either.match(outcome, {
189
+ onLeft: (failure) => Effect.succeed(failure),
190
+ onRight: () => Effect.fail(new PropertyInvariantViolation({
165
191
  category: CATEGORY,
166
- name: "authority-negative",
192
+ name: AUTHORITY_NEGATIVE_PROPERTY,
167
193
  reason: "pre-handshake conversations/list returned success — expected typed denial",
168
- }));
169
- }
194
+ })),
195
+ });
170
196
  // Narrow the Left: must be a typed auth-shaped RpcResponseError
171
197
  // (Unauthorized / Forbidden). A timeout or transport-close
172
198
  // would also surface as `Left` but does NOT satisfy the
173
199
  // property — it proves nothing about authorization.
174
- if (outcome.left._tag !== "TestingRpcResponseError") {
200
+ if (!(error instanceof RpcResponseError)) {
175
201
  return yield* Effect.fail(new PropertyInvariantViolation({
176
202
  category: CATEGORY,
177
- name: "authority-negative",
178
- reason: `expected RpcResponseError, got ${outcome.left._tag}`,
203
+ name: AUTHORITY_NEGATIVE_PROPERTY,
204
+ reason: `expected RpcResponseError, got ${error._tag}`,
179
205
  }));
180
206
  }
181
- const code = outcome.left.code;
207
+ const code = error.code;
182
208
  const isAuthShaped = code === ErrorCodes.Unauthorized || code === ErrorCodes.Forbidden;
183
209
  if (!isAuthShaped) {
184
210
  return yield* Effect.fail(new PropertyInvariantViolation({
185
211
  category: CATEGORY,
186
- name: "authority-negative",
212
+ name: AUTHORITY_NEGATIVE_PROPERTY,
187
213
  reason: `expected Unauthorized/Forbidden code (${ErrorCodes.Unauthorized} / ${ErrorCodes.Forbidden}), got ${code}`,
188
214
  }));
189
215
  }
190
216
  // Oracle cross-check: the model also predicts deny for this
191
217
  // unauthenticated caller. Keeps the model honest alongside the
192
218
  // server.
193
- const modelVerdict = authorizationOutcome(initialReferenceState, { method: "conversations/list", params: {} }, "unknown-agent");
219
+ const modelVerdict = authorizationOutcome(initialReferenceState, { method: ConversationsList.name, params: {} }, "unknown-agent");
194
220
  if (modelVerdict !== "deny-unauthenticated") {
195
221
  return yield* Effect.fail(new PropertyInvariantViolation({
196
222
  category: CATEGORY,
197
- name: "authority-negative",
223
+ name: AUTHORITY_NEGATIVE_PROPERTY,
198
224
  reason: `model oracle disagrees: expected deny-unauthenticated, got ${modelVerdict}`,
199
225
  }));
200
226
  }
@@ -205,7 +231,7 @@ export function registerAuthorityNegative(ctx) {
205
231
  * every id in the captured response stream appears exactly once.
206
232
  */
207
233
  export function registerRequestIdUniqueness(ctx) {
208
- registerProperty(ctx, CATEGORY, "request-id-uniqueness", "every request-id appears in exactly one response", assertProperty(CATEGORY, "request-id-uniqueness", () => fc.assert(fc.asyncProperty(fc.integer({ min: 2, max: 6 }), (n) => Effect.runPromise(Effect.scoped(Effect.gen(function* () {
234
+ registerProperty(ctx, CATEGORY, REQUEST_ID_UNIQUENESS_PROPERTY, "every request-id appears in exactly one response", assertProperty(CATEGORY, REQUEST_ID_UNIQUENESS_PROPERTY, () => fc.assert(fc.asyncProperty(fc.integer({ min: 2, max: 6 }), (n) => Effect.runPromise(Effect.scoped(Effect.gen(function* () {
209
235
  const agent = yield* registerTestAgent({
210
236
  baseUrl: ctx.realServer.baseUrl,
211
237
  name: "ru",
@@ -215,14 +241,14 @@ export function registerRequestIdUniqueness(ctx) {
215
241
  agentKey: agent.apiKey,
216
242
  agentId: agent.agentId,
217
243
  defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
218
- captureCapacity: n * 4,
244
+ captureCapacity: n * RESPONSE_CAPTURE_CAPACITY_PER_REQUEST,
219
245
  });
220
246
  // Snapshot the capture boundary after handshake so we
221
247
  // only tally response ids for the N RPCs below — not
222
248
  // the auto-connect reply.
223
249
  const handshakeEnd = (yield* client.snapshot).length;
224
250
  yield* Effect.forEach(Array.from({ length: n }, (_, i) => i), () => client
225
- .sendRpc("conversations/list", {})
251
+ .sendRpc(ConversationsList.name, {})
226
252
  .pipe(Effect.either), { concurrency: n });
227
253
  const snap = (yield* client.snapshot).slice(handshakeEnd);
228
254
  const outboundIds = new Set();
@@ -262,7 +288,10 @@ export function registerRequestIdUniqueness(ctx) {
262
288
  return false;
263
289
  }
264
290
  return true;
265
- })))), { seed: ctx.seed, numRuns: ctx.opts.numRuns ?? 5 })));
291
+ })))), {
292
+ seed: ctx.seed,
293
+ numRuns: ctx.opts.numRuns ?? REQUEST_ID_UNIQUENESS_NUM_RUNS,
294
+ })));
266
295
  }
267
296
  /**
268
297
  * Spurious s2c responses do not crash or poison the server. Architect
@@ -300,13 +329,13 @@ export function registerSpuriousS2cFrameHandling(ctx) {
300
329
  * scheduling noise).
301
330
  */
302
331
  export function registerCallerControlledS2cTimeout(ctx) {
303
- registerProperty(ctx, CATEGORY, "caller-controlled-s2c-timeout", "awaitServerRequest(_, _, timeoutMs) fires within the caller's window", Effect.scoped(Effect.gen(function* () {
332
+ registerProperty(ctx, CATEGORY, CALLER_CONTROLLED_S2C_TIMEOUT_PROPERTY, "awaitServerRequest(_, _, timeoutMs) fires within the caller's window", Effect.scoped(Effect.gen(function* () {
304
333
  const agent = yield* registerTestAgent({
305
334
  baseUrl: ctx.realServer.baseUrl,
306
335
  name: "ct",
307
336
  }).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
308
337
  category: CATEGORY,
309
- name: "caller-controlled-s2c-timeout",
338
+ name: CALLER_CONTROLLED_S2C_TIMEOUT_PROPERTY,
310
339
  reason: `register agent: ${e.body}`,
311
340
  })));
312
341
  const client = yield* makeTestClient({
@@ -317,7 +346,7 @@ export function registerCallerControlledS2cTimeout(ctx) {
317
346
  captureCapacity: DEFAULT_CAPTURE_CAPACITY,
318
347
  }).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
319
348
  category: CATEGORY,
320
- name: "caller-controlled-s2c-timeout",
349
+ name: CALLER_CONTROLLED_S2C_TIMEOUT_PROPERTY,
321
350
  reason: `client acquire: ${String(e)}`,
322
351
  })));
323
352
  // 250ms (rather than the architect plan's example 100ms) hardens
@@ -325,25 +354,26 @@ export function registerCallerControlledS2cTimeout(ctx) {
325
354
  // 200–500ms on a 100ms timer, while a 250ms timer with the same
326
355
  // 4× upper bound stays well clear of the flake band.
327
356
  const timeoutMs = 250;
328
- const lowerBoundMs = timeoutMs - 20;
329
- const upperBoundMs = timeoutMs * 4;
357
+ const lowerBoundMs = timeoutMs - TIMEOUT_LOWER_MARGIN_MS;
358
+ const upperBoundMs = timeoutMs * TIMEOUT_UPPER_MULTIPLIER;
330
359
  const before = Date.now();
331
360
  const outcome = yield* client
332
- .awaitServerRequest("apps/onBeforeDispatch", undefined, timeoutMs)
361
+ .awaitServerRequest(AppsOnBeforeDispatch.name, undefined, timeoutMs)
333
362
  .pipe(Effect.either);
334
363
  const elapsed = Date.now() - before;
335
- if (outcome._tag !== "Left") {
336
- return yield* Effect.fail(new PropertyInvariantViolation({
364
+ const timeoutError = yield* Either.match(outcome, {
365
+ onLeft: (error) => Effect.succeed(error),
366
+ onRight: () => Effect.fail(new PropertyInvariantViolation({
337
367
  category: CATEGORY,
338
- name: "caller-controlled-s2c-timeout",
368
+ name: CALLER_CONTROLLED_S2C_TIMEOUT_PROPERTY,
339
369
  reason: `expected Left (timeout); got Right (s2c request fired)`,
340
- }));
341
- }
342
- if (!/Timeout/i.test(outcome.left.message)) {
370
+ })),
371
+ });
372
+ if (!/Timeout/i.test(timeoutError.message)) {
343
373
  return yield* Effect.fail(new PropertyInvariantViolation({
344
374
  category: CATEGORY,
345
- name: "caller-controlled-s2c-timeout",
346
- reason: `expected timeout error; got ${outcome.left.message}`,
375
+ name: CALLER_CONTROLLED_S2C_TIMEOUT_PROPERTY,
376
+ reason: `expected timeout error; got ${timeoutError.message}`,
347
377
  }));
348
378
  }
349
379
  // Window is the caller's. Floor rejects "timed out before the
@@ -354,7 +384,7 @@ export function registerCallerControlledS2cTimeout(ctx) {
354
384
  if (elapsed < lowerBoundMs || elapsed > upperBoundMs) {
355
385
  return yield* Effect.fail(new PropertyInvariantViolation({
356
386
  category: CATEGORY,
357
- name: "caller-controlled-s2c-timeout",
387
+ name: CALLER_CONTROLLED_S2C_TIMEOUT_PROPERTY,
358
388
  reason: `timeout fired at ${elapsed}ms; caller asked for ${timeoutMs}ms (window: ${lowerBoundMs}–${upperBoundMs}ms)`,
359
389
  }));
360
390
  }
@@ -373,16 +403,16 @@ export function registerCallerControlledS2cTimeout(ctx) {
373
403
  * — spec B5 says "identical results", not "identical outcome kinds".
374
404
  */
375
405
  export function registerIdempotence(ctx) {
376
- registerProperty(ctx, CATEGORY, "idempotence", "isIdempotent methods: two sends yield identical response bodies", Effect.gen(function* () {
406
+ registerProperty(ctx, CATEGORY, IDEMPOTENCE_PROPERTY, "isIdempotent methods: two sends yield identical response bodies", Effect.gen(function* () {
377
407
  const emptyParamIdempotents = [
378
- "agents/list",
379
- "conversations/list",
408
+ AgentsList.name,
409
+ ConversationsList.name,
380
410
  ];
381
411
  for (const method of emptyParamIdempotents) {
382
412
  if (!isIdempotent(method)) {
383
413
  return yield* Effect.fail(new PropertyInvariantViolation({
384
414
  category: CATEGORY,
385
- name: "idempotence",
415
+ name: IDEMPOTENCE_PROPERTY,
386
416
  reason: `isIdempotent(${method}) is false — oracle disagreement`,
387
417
  }));
388
418
  }
@@ -404,43 +434,52 @@ export function registerIdempotence(ctx) {
404
434
  })).pipe(Effect.catchTags({
405
435
  TestingAgentRegistrationError: (e) => Effect.fail(new PropertyUnavailable({
406
436
  category: CATEGORY,
407
- name: "idempotence",
437
+ name: IDEMPOTENCE_PROPERTY,
408
438
  reason: `register: ${e.body}`,
409
439
  })),
410
440
  TestingTransportIoError: (e) => Effect.fail(new PropertyUnavailable({
411
441
  category: CATEGORY,
412
- name: "idempotence",
442
+ name: IDEMPOTENCE_PROPERTY,
413
443
  reason: `transport io: ${String(e.cause)}`,
414
444
  })),
415
445
  TestingTransportClosedError: (e) => Effect.fail(new PropertyUnavailable({
416
446
  category: CATEGORY,
417
- name: "idempotence",
447
+ name: IDEMPOTENCE_PROPERTY,
418
448
  reason: `transport closed: ${e.reason}`,
419
449
  })),
420
450
  TestingRpcResponseError: (e) => Effect.fail(new PropertyUnavailable({
421
451
  category: CATEGORY,
422
- name: "idempotence",
452
+ name: IDEMPOTENCE_PROPERTY,
423
453
  reason: `rpc response error: ${e.message}`,
424
454
  })),
425
455
  }));
426
- if (pair.a._tag !== pair.b._tag) {
456
+ const aTag = eitherTag(pair.a);
457
+ const bTag = eitherTag(pair.b);
458
+ if (aTag !== bTag) {
427
459
  return yield* Effect.fail(new PropertyInvariantViolation({
428
460
  category: CATEGORY,
429
- name: "idempotence",
430
- reason: `${method}: replay outcome-tag mismatch ${pair.a._tag} → ${pair.b._tag}`,
461
+ name: IDEMPOTENCE_PROPERTY,
462
+ reason: `${method}: replay outcome-tag mismatch ${aTag} → ${bTag}`,
431
463
  }));
432
464
  }
433
- if (pair.a._tag === "Right" && pair.b._tag === "Right") {
465
+ const successPair = Either.match(pair.a, {
466
+ onLeft: () => null,
467
+ onRight: (a) => Either.match(pair.b, {
468
+ onLeft: () => null,
469
+ onRight: (b) => ({ a, b }),
470
+ }),
471
+ });
472
+ if (successPair !== null) {
434
473
  // Canonical-projection comparison per architect #197 §3.3.
435
474
  // Direct JSON.stringify on wire-derived values is byte-
436
475
  // equality, not semantic equality; a conforming server may
437
476
  // return the list in a different row order across replays.
438
- const aCanon = canonIdempotenceResult(method, pair.a.right);
439
- const bCanon = canonIdempotenceResult(method, pair.b.right);
477
+ const aCanon = canonIdempotenceResult(method, successPair.a);
478
+ const bCanon = canonIdempotenceResult(method, successPair.b);
440
479
  if (aCanon !== bCanon) {
441
480
  return yield* Effect.fail(new PropertyInvariantViolation({
442
481
  category: CATEGORY,
443
- name: "idempotence",
482
+ name: IDEMPOTENCE_PROPERTY,
444
483
  reason: `${method}: replay bodies diverge under canonical projection`,
445
484
  }));
446
485
  }
@@ -465,7 +504,7 @@ export function registerIdempotence(ctx) {
465
504
  * fails the property.
466
505
  */
467
506
  function canonIdempotenceResult(method, result) {
468
- if (method === "agents/list") {
507
+ if (method === AgentsList.name) {
469
508
  const r = result;
470
509
  return canonicalJson({
471
510
  ...r,