@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.
- package/dist/test-fixtures/seed-data.d.ts.map +1 -1
- package/dist/test-fixtures/seed-data.js +52 -21
- package/dist/test-fixtures/seed-data.js.map +1 -1
- package/dist/testing/agent-registration.d.ts.map +1 -1
- package/dist/testing/agent-registration.js +4 -1
- package/dist/testing/agent-registration.js.map +1 -1
- package/dist/testing/arbitraries/frames.d.ts.map +1 -1
- package/dist/testing/arbitraries/frames.js +2 -1
- package/dist/testing/arbitraries/frames.js.map +1 -1
- package/dist/testing/arbitraries/from-typebox.d.ts.map +1 -1
- package/dist/testing/arbitraries/from-typebox.js +19 -10
- package/dist/testing/arbitraries/from-typebox.js.map +1 -1
- package/dist/testing/arbitraries/rpc.d.ts.map +1 -1
- package/dist/testing/arbitraries/rpc.js +12 -3
- package/dist/testing/arbitraries/rpc.js.map +1 -1
- package/dist/testing/captures.d.ts.map +1 -1
- package/dist/testing/captures.js +4 -3
- package/dist/testing/captures.js.map +1 -1
- package/dist/testing/codec.d.ts.map +1 -1
- package/dist/testing/codec.js +13 -5
- package/dist/testing/codec.js.map +1 -1
- package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.d.ts.map +1 -1
- package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js +7 -4
- package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js.map +1 -1
- package/dist/testing/conformance/_helpers.d.ts +6 -1
- package/dist/testing/conformance/_helpers.d.ts.map +1 -1
- package/dist/testing/conformance/_helpers.js +24 -0
- package/dist/testing/conformance/_helpers.js.map +1 -1
- package/dist/testing/conformance/adversity.d.ts.map +1 -1
- package/dist/testing/conformance/adversity.js +76 -66
- package/dist/testing/conformance/adversity.js.map +1 -1
- package/dist/testing/conformance/boundary.d.ts.map +1 -1
- package/dist/testing/conformance/boundary.js +49 -39
- package/dist/testing/conformance/boundary.js.map +1 -1
- package/dist/testing/conformance/client/adversity.d.ts.map +1 -1
- package/dist/testing/conformance/client/adversity.js +20 -15
- package/dist/testing/conformance/client/adversity.js.map +1 -1
- package/dist/testing/conformance/client/boundary.d.ts.map +1 -1
- package/dist/testing/conformance/client/boundary.js +7 -5
- package/dist/testing/conformance/client/boundary.js.map +1 -1
- package/dist/testing/conformance/client/delivery.d.ts.map +1 -1
- package/dist/testing/conformance/client/delivery.js +26 -20
- package/dist/testing/conformance/client/delivery.js.map +1 -1
- package/dist/testing/conformance/client/rpc-semantics.d.ts.map +1 -1
- package/dist/testing/conformance/client/rpc-semantics.js +18 -15
- package/dist/testing/conformance/client/rpc-semantics.js.map +1 -1
- package/dist/testing/conformance/client/runner.d.ts +13 -8
- package/dist/testing/conformance/client/runner.d.ts.map +1 -1
- package/dist/testing/conformance/client/runner.js +17 -24
- package/dist/testing/conformance/client/runner.js.map +1 -1
- package/dist/testing/conformance/client/schema-conformance.d.ts.map +1 -1
- package/dist/testing/conformance/client/schema-conformance.js +11 -9
- package/dist/testing/conformance/client/schema-conformance.js.map +1 -1
- package/dist/testing/conformance/client/suite.d.ts.map +1 -1
- package/dist/testing/conformance/client/suite.js +2 -1
- package/dist/testing/conformance/client/suite.js.map +1 -1
- package/dist/testing/conformance/delivery.d.ts.map +1 -1
- package/dist/testing/conformance/delivery.js +70 -88
- package/dist/testing/conformance/delivery.js.map +1 -1
- package/dist/testing/conformance/env.d.ts +9 -0
- package/dist/testing/conformance/env.d.ts.map +1 -1
- package/dist/testing/conformance/env.js +16 -3
- package/dist/testing/conformance/env.js.map +1 -1
- package/dist/testing/conformance/presence.d.ts.map +1 -1
- package/dist/testing/conformance/presence.js +4 -2
- package/dist/testing/conformance/presence.js.map +1 -1
- package/dist/testing/conformance/registry.d.ts +1 -1
- package/dist/testing/conformance/registry.d.ts.map +1 -1
- package/dist/testing/conformance/registry.js +1 -1
- package/dist/testing/conformance/registry.js.map +1 -1
- package/dist/testing/conformance/rpc-semantics.d.ts.map +1 -1
- package/dist/testing/conformance/rpc-semantics.js +102 -63
- package/dist/testing/conformance/rpc-semantics.js.map +1 -1
- package/dist/testing/conformance/runner.d.ts +2 -2
- package/dist/testing/conformance/runner.d.ts.map +1 -1
- package/dist/testing/conformance/runner.js +5 -10
- package/dist/testing/conformance/runner.js.map +1 -1
- package/dist/testing/conformance/schema-conformance.d.ts.map +1 -1
- package/dist/testing/conformance/schema-conformance.js +113 -67
- package/dist/testing/conformance/schema-conformance.js.map +1 -1
- package/dist/testing/conformance/suite.d.ts +1 -1
- package/dist/testing/conformance/suite.d.ts.map +1 -1
- package/dist/testing/conformance/suite.js +12 -9
- package/dist/testing/conformance/suite.js.map +1 -1
- package/dist/testing/models/dispatch.d.ts.map +1 -1
- package/dist/testing/models/dispatch.js +58 -50
- package/dist/testing/models/dispatch.js.map +1 -1
- package/dist/testing/models/state.d.ts +3 -3
- package/dist/testing/models/state.d.ts.map +1 -1
- package/dist/testing/models/state.js +14 -1
- package/dist/testing/models/state.js.map +1 -1
- package/dist/testing/test-client.d.ts +22 -3
- package/dist/testing/test-client.d.ts.map +1 -1
- package/dist/testing/test-client.js +51 -31
- package/dist/testing/test-client.js.map +1 -1
- package/dist/testing/test-server.d.ts.map +1 -1
- package/dist/testing/test-server.js +7 -11
- package/dist/testing/test-server.js.map +1 -1
- package/dist/testing/toxics/client.d.ts.map +1 -1
- package/dist/testing/toxics/client.js +9 -3
- package/dist/testing/toxics/client.js.map +1 -1
- package/dist/testing/toxics/profile.d.ts.map +1 -1
- package/dist/testing/toxics/profile.js +4 -1
- package/dist/testing/toxics/profile.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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 =
|
|
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
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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 !==
|
|
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(
|
|
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: () =>
|
|
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,
|
|
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,
|
|
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":"
|
|
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(
|
|
60
|
-
registerProperty(ctx, CATEGORY,
|
|
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
|
-
|
|
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
|
|
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,
|
|
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:
|
|
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:
|
|
139
|
+
name: AUTHORITY_POSITIVE_PROPERTY,
|
|
116
140
|
reason: `client acquire failed: ${String(e)}`,
|
|
117
141
|
})));
|
|
118
142
|
const outcome = yield* client
|
|
119
|
-
.sendRpc(
|
|
143
|
+
.sendRpc(ConversationsList.name, {})
|
|
120
144
|
.pipe(Effect.either);
|
|
121
|
-
|
|
145
|
+
const failure = leftOrNull(outcome);
|
|
146
|
+
if (failure !== null) {
|
|
122
147
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
123
148
|
category: CATEGORY,
|
|
124
|
-
name:
|
|
125
|
-
reason: `authorized conversations/list failed: ${
|
|
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,
|
|
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:
|
|
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:
|
|
182
|
+
name: AUTHORITY_NEGATIVE_PROPERTY,
|
|
158
183
|
reason: `client acquire failed: ${String(e)}`,
|
|
159
184
|
})));
|
|
160
185
|
const outcome = yield* client
|
|
161
|
-
.sendRpc(
|
|
186
|
+
.sendRpc(ConversationsList.name, {})
|
|
162
187
|
.pipe(Effect.either);
|
|
163
|
-
|
|
164
|
-
|
|
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:
|
|
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 (
|
|
200
|
+
if (!(error instanceof RpcResponseError)) {
|
|
175
201
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
176
202
|
category: CATEGORY,
|
|
177
|
-
name:
|
|
178
|
-
reason: `expected RpcResponseError, got ${
|
|
203
|
+
name: AUTHORITY_NEGATIVE_PROPERTY,
|
|
204
|
+
reason: `expected RpcResponseError, got ${error._tag}`,
|
|
179
205
|
}));
|
|
180
206
|
}
|
|
181
|
-
const 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:
|
|
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:
|
|
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:
|
|
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,
|
|
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 *
|
|
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(
|
|
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
|
-
})))), {
|
|
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,
|
|
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:
|
|
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:
|
|
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 -
|
|
329
|
-
const upperBoundMs = timeoutMs *
|
|
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(
|
|
361
|
+
.awaitServerRequest(AppsOnBeforeDispatch.name, undefined, timeoutMs)
|
|
333
362
|
.pipe(Effect.either);
|
|
334
363
|
const elapsed = Date.now() - before;
|
|
335
|
-
|
|
336
|
-
|
|
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:
|
|
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(
|
|
370
|
+
})),
|
|
371
|
+
});
|
|
372
|
+
if (!/Timeout/i.test(timeoutError.message)) {
|
|
343
373
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
344
374
|
category: CATEGORY,
|
|
345
|
-
name:
|
|
346
|
-
reason: `expected timeout error; got ${
|
|
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:
|
|
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,
|
|
406
|
+
registerProperty(ctx, CATEGORY, IDEMPOTENCE_PROPERTY, "isIdempotent methods: two sends yield identical response bodies", Effect.gen(function* () {
|
|
377
407
|
const emptyParamIdempotents = [
|
|
378
|
-
|
|
379
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
452
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
423
453
|
reason: `rpc response error: ${e.message}`,
|
|
424
454
|
})),
|
|
425
455
|
}));
|
|
426
|
-
|
|
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:
|
|
430
|
-
reason: `${method}: replay outcome-tag mismatch ${
|
|
461
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
462
|
+
reason: `${method}: replay outcome-tag mismatch ${aTag} → ${bTag}`,
|
|
431
463
|
}));
|
|
432
464
|
}
|
|
433
|
-
|
|
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,
|
|
439
|
-
const bCanon = canonIdempotenceResult(method,
|
|
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:
|
|
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 ===
|
|
507
|
+
if (method === AgentsList.name) {
|
|
469
508
|
const r = result;
|
|
470
509
|
return canonicalJson({
|
|
471
510
|
...r,
|